strftime
(PHP 4, PHP 5, PHP 7)
strftime — 根据区域设置格式化本地时间／日期
说明
string strftime ( string $format [, int $timestamp = time() ] )
返回用给定的格式字串对给出的 timestamp 进行格式输出后的字符串。如果没有给出时间
戳则用当前的本地时间。月份和星期几以及其它和语言有关的字符串写法和用 setlocale
() 设定的当前的区域有关。
可能不是所有的转换标记都被 C 库文件支持，这种情况下 PHP 的 strftime() 也不支持
。此外，不是所有的平台都支持负的时间戳，因此日期的范围可能限定在不早于 Unix 纪
元。这意味着例如 %e, %T，%R 和 %D（可能更多）以及早于 Jan 1, 1970 的时间在
Windows，一些 Linux 发行版本，以及其它几个操作系统中无效。对于 Windows 系统，所
支持的转换标记可在 » MSDN 网站找到。
参数
format
format 里能够识别的格式字串有以下标记：
格式 描述 返回值示例
日 --- ---
%a 当前区域星期几的简写 Sun 到 Sat
%A 当前区域星期几的全称 Sunday 到 Saturday
%d 月份中的第几天，十进制数字（范围从 01 到 31） 01 到 31
月份中的第几天，十进制数字，一位的数字前会加上
%e 一个空格（范围从 ' 1' 到 '31'）在 Windows 上尚 1 到 31
未按描述实现。更多信息见下方。
%j 年份中的第几天，带前导零的三位十进制数（范围从 001 到 366
001 到 366）
%u 符合 ISO-8601 星期几的十进制数表达 [1,7]，1 表 1 (星期一) 到 7 (星期
示星期一 日)
%w 星期中的第几天，星期天为 0 0 (星期天) 到 6 (星期
六)
周 --- ---
%U 本年的第几周，从第一周的第一个星期天作为第一天 13 (for the 13th full
开始 week of the year)
%V - 本年第几周的 ISO-8601:1988 格式，范围从 01 01 到 53 (where 53
%V 到 53，第 1 周是本年第一个至少还有 4 天的星期， accounts for an
星期一作为每周的第一天。（用 %G 或者 %g 作为指 overlapping week)
定时间戳相应周数的年份组成。）
本年的第几周数，从第一周的第一个星期一作为第一 46 (for the 46th week
%W 天开始 of the year beginning
with a Monday)
月 --- ---
%b 当前区域月份的简写 Jan 到 Dec
%B 当前区域月份的全称 January 到 December
%h 当前区域月份的简写（%b 的别名） Jan 到 Dec
%m 两位数的月份 01 (是一月份) 到 12
(是十二月份)
年 --- ---
%C 两位数显示世纪（年份除以 100，截成整数） 19 是 20 世纪
2 位数的年份，符合 ISO-8601:1988 星期数（参见 比如：2009年1月6日那
%g %V）。和 %V 的格式和值一样，只除了如果 ISO 星期 一周是 09。
数属于前一年或者后一年，则使用那一年。
%G %g 的完整四位数版本 比如：2009年1月3日那
一周是 2008.
%y 两位数显示年份 比如： 09 是 2009，79
是 1979
%Y 四位数显示年份 比如： 2038
时间 --- ---
%H 以 24 小时格式显示两位小时数 00 到 23
%I 以 12 小时格式显示两位小时数 01 到 12
%l（
'L' 以 12 小时格式显示小时数，单个数字前含空格 1 到 12
的小
写）
%M 两位的分钟数 00 到 59
%p 指定时间的大写 “AM” 或 “PM” 比如： 00:31 是 AM ，
22:23 是PM
%P 指定时间的小写 “am” 或 “pm” 比如：00:31 是 am ，
22:23 是pm
%r 和 "%I:%M:%S %p" 一样 比如： 21:34:17 是
09:34:17 PM
比如： 12:35 AM 是
%R 和 "%H:%M" 一样 00:35，4:44 PM 是
16:44
%S 两位数字表示秒 00 到 59
%T 和 "%H:%M:%S" 一样 比如： 09:34:17 PM 是
21:34:17
%X 当前区域首选的时间表示法，不包括日期 例如： 03:59:16 或
15:59:16
%z 从 UTC 的时区偏移或简写（由操作系统决定） 比如：东部时间是
-0500 或 EST
%Z %z 没有给出的 UTC 的时区偏移或简写（由操作系统 比如： -0500 或 EST
决定） 是东部时间
时间
和日 --- ---
期戳
比如： 2009 年 2 月 5
%c 当前区域首选的日期时间表达 日上午 12:45:10 是
Tue Feb 5 00:45:10
2009
%D 和 "%m/%d/%y" 一样 比如： 2009 年 2 月 5
日是 02/05/09
%F Same as "%Y-%m-%d" (commonly used in database 比如：2009 年 2 月 5
datestamps) 日是 2009-02-05
比如： 1979 年 9 月
%s Unix纪元的时间戳（和 time() 函数一样） 10 日上午 8 点 40 分
00 秒是 305815200
%x 当前区域首选的时间表示法，不包括时间 比如： 2009 年 2 月 5
日是 02/05/09
其他 --- ---
%n 换行符("\n") ---
%t Tab 字符("\t") ---
%% 文字上的百分字符("%") ---
这个参数的最大长度是 1023 个字符。
Warning
尽管 ISO 9889:1999（当前的 C 标准）明确指出一周从星期一开始，但是 Sun
Solaris 的一周似乎从星期天开始并作为 1。所以 %u 的结果也许不会和手册里描述
得一样。
Warning
仅针对 Windows：这个函数里 %e 修饰符修饰符还不能支持 Windows。为了得到这个
值可以用 %#d 修饰符来代替。下例说明了如何写一个跨平台支持的函数。
Warning
仅针对 Mac OS X：这个函数里 %P 修饰符还不能支持 Mac OS X。
timestamp
可选的 timestamp 参数是一个 integer 的 Unix 时间戳，如未指定，参数值默认为
当前本地时间。也就是说，其值默认为 time() 的返回值。
返回值
根据指定的 timestamp 或未给出 timestamp 是使用当前本地时间，返回 format 格式化
的字符。月份、星期名和其他与语言相关的字符串遵守 setlocale() 设置的当前区域设置
。
错误／异常
在每次调用日期/时间函数时，如果时区无效则会引发 E_NOTICE 错误，如果使用系统设定
值或 TZ 环境变量，则会引发 E_STRICT 或 E_WARNING 消息。参见
date_default_timezone_set()。
由于输出依赖于 C 库，所以一些转换标记并不被支持。在 Windows 上，使用未知的转换
标记将导致 5 E_WARNING 信息，并返回 FALSE。在其他的操作系统上，你可能不能得到任
何 E_WARNING 信息，并且可能输出未经转换的转换标记。
更新日志
版本 说明
5.1.0 现在发布 E_STRICT 和 E_NOTICE 时区错误。
范例
如果你的系统里安装了各自的语言环境则下例能够正常运行。
Example #1 strftime() 区域的例子
Example #2 ISO 8601:1988 week number example
Example #3 %e 修改器跨平台兼容的例子
%#d', $format);
}
echo strftime($format);
?>
Example #4 显示所有已知和未知的格式
'A full textual representation of the day',
'B' => 'Full month name, based on the locale',
'C' => 'Two digit representation of the century
(year divided by 100, truncated to an integer)',
'D' => 'Same as "%m/%d/%y"',
'E' => '',
'F' => 'Same as "%Y-%m-%d"',
'G' => 'The full four-digit version of %g',
'H' => 'Two digit representation of the hour in 24-hour format',
'I' => 'Two digit representation of the hour in 12-hour format',
'J' => '',
'K' => '',
'L' => '',
'M' => 'Two digit representation of the minute',
'N' => '',
'O' => '',
'P' => 'lower-case "am" or "pm" based on the given time',
'Q' => '',
'R' => 'Same as "%H:%M"',
'S' => 'Two digit representation of the second',
'T' => 'Same as "%H:%M:%S"',
'U' =>
'Week number of the given year, starting with the first Sunday as the first week'
,
'V' =>
'ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week'
,
'W' =>
'A numeric representation of the week of the year, starting with the first Monday as the first week'
,
'X' => 'Preferred time representation based on locale, without the date',
'Y' => 'Four digit representation for the year',
'Z' => 'The time zone offset/abbreviation option NOT given by %z
(depends on operating system)',
'a' => 'An abbreviated textual representation of the day',
'b' => 'Abbreviated month name, based on the locale',
'c' => 'Preferred date and time stamp based on local',
'd' => 'Two-digit day of the month (with leading zeros)',
'e' => 'Day of the month, with a space preceding single digits',
'f' => '',
'g' =>
'Two digit representation of the year going by ISO-8601:1988 standards (see %V)
',
'h' => 'Abbreviated month name, based on the locale (an alias of %b)',
'i' => '',
'j' => 'Day of the year, 3 digits with leading zeros',
'k' => '',
'l' => 'Hour in 12-hour format, with a space preceeding single digits',
'm' => 'Two digit representation of the month',
'n' => 'A newline character ("\n")',
'o' => '',
'p' => 'UPPER-CASE "AM" or "PM" based on the given time',
'q' => '',
'r' => 'Same as "%I:%M:%S %p"',
's' => 'Unix Epoch Time timestamp',
't' => 'A Tab character ("\t")',
'u' => 'ISO-8601 numeric representation of the day of the week',
'v' => '',
'w' => 'Numeric representation of the day of the week',
'x' => 'Preferred date representation based on locale, without the time',
'y' => 'Two digit representation of the year',
'z' => 'Either the time zone offset from UTC or the abbreviation
(depends on operating system)',
'%' => 'A literal percentage character ("%")',
);
// Results.
$strftimeValues = array();
// Evaluate the formats whilst suppressing any errors.
foreach($strftimeFormats as $format => $description){
if (False !== ($value = @strftime("%{$format}"))){
$strftimeValues[$format] = $value;
}
}
// Find the longest value.
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));
// Report known formats.
foreach($strftimeValues as $format => $value){
echo "Known format : '{$format}' = ", str_pad("'{$value}'",
$maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}
// Report unknown formats.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format =>
$description){
echo "Unknown format : '{$format}' ", str_pad(' ', $maxValueLength), (
$description ? " ( {$description} )" : ''), "\n";
}
?>
以上例程的输出类似于：
Known format : 'A' = 'Friday' ( A full textual representation of the day )
Known format : 'B' = 'December' ( Full month name, based on the locale )
Known format : 'H' = '11' ( Two digit representation of the hour in 24-hour format )
Known format : 'I' = '11' ( Two digit representation of the hour in 12-hour format )
Known format : 'M' = '24' ( Two digit representation of the minute )
Known format : 'S' = '44' ( Two digit representation of the second )
Known format : 'U' = '48' ( Week number of the given year, starting with the first Sunday as the first week )
Known format : 'W' = '48' ( A numeric representation of the week of the year, starting with the first Monday as the first week )
Known format : 'X' = '11:24:44' ( Preferred time representation based on locale, without the date )
Known format : 'Y' = '2010' ( Four digit representation for the year )
Known format : 'Z' = 'GMT Standard Time' ( The time zone offset/abbreviation option NOT given by %z (depends on operating system) )
Known format : 'a' = 'Fri' ( An abbreviated textual representation of the day )
Known format : 'b' = 'Dec' ( Abbreviated month name, based on the locale )
Known format : 'c' = '12/03/10 11:24:44' ( Preferred date and time stamp based on local )
Known format : 'd' = '03' ( Two-digit day of the month (with leading zeros) )
Known format : 'j' = '337' ( Day of the year, 3 digits with leading zeros )
Known format : 'm' = '12' ( Two digit representation of the month )
Known format : 'p' = 'AM' ( UPPER-CASE "AM" or "PM" based on the given time )
Known format : 'w' = '5' ( Numeric representation of the day of the week )
Known format : 'x' = '12/03/10' ( Preferred date representation based on locale, without the time )
Known format : 'y' = '10' ( Two digit representation of the year )
Known format : 'z' = 'GMT Standard Time' ( Either the time zone offset from UTC or the abbreviation (depends on operating system) )
Known format : '%' = '%' ( A literal percentage character ("%") )
Unknown format : 'C' ( Two digit representation of the century (year divided by 100, truncated to an integer) )
Unknown format : 'D' ( Same as "%m/%d/%y" )
Unknown format : 'E'
Unknown format : 'F' ( Same as "%Y-%m-%d" )
Unknown format : 'G' ( The full four-digit version of %g )
Unknown format : 'J'
Unknown format : 'K'
Unknown format : 'L'
Unknown format : 'N'
Unknown format : 'O'
Unknown format : 'P' ( lower-case "am" or "pm" based on the given time )
Unknown format : 'Q'
Unknown format : 'R' ( Same as "%H:%M" )
Unknown format : 'T' ( Same as "%H:%M:%S" )
Unknown format : 'V' ( ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week )
Unknown format : 'e' ( Day of the month, with a space preceding single digits )
Unknown format : 'f'
Unknown format : 'g' ( Two digit representation of the year going by ISO-8601:1988 standards (see %V) )
Unknown format : 'h' ( Abbreviated month name, based on the locale (an alias of %b) )
Unknown format : 'i'
Unknown format : 'k'
Unknown format : 'l' ( Hour in 12-hour format, with a space preceeding single digits )
Unknown format : 'n' ( A newline character ("\n") )
Unknown format : 'o'
Unknown format : 'q'
Unknown format : 'r' ( Same as "%I:%M:%S %p" )
Unknown format : 's' ( Unix Epoch Time timestamp )
Unknown format : 't' ( A Tab character ("\t") )
Unknown format : 'u' ( ISO-8601 numeric representation of the day of the week )
Unknown format : 'v'
注释
Note: %G 和 %V，如果数字编号系统未能充分理解，基于 ISO 8601:1988 的星期数可
能得出未预期的结果。见上面的 %V 和以下的例子。
参见
• » 在线 strftime() 格式设计工具
• setlocale() - 设置地区信息
• mktime() - 取得一个日期的 Unix 时间戳
• strptime() - 解析由 strftime 生成的日期／时间
• gmstrftime() - 根据区域设置格式化 GMT/UTC 时间／日期
• » Open Group specification of strftime()
User Contributed Notes 32 notes
===============================================================================
If strange characters are returned use utf8_encode(strftime()) for UTF-8
characters
===============================================================================
strftime not format microsecond (decimal part of seconds).
This function add '%f' key in format to render microsecond (6 digits) also.
Example :
Results are :
REF:1393937303.6615
FMT:13:48:23.661500
FMT:13h 48min 23s 661500µs
Note : Here the decimal part of microtime is on 4 digits due to default
precision
===============================================================================
This is what worked in my case:
it displays: miércoles 22 de octubre de 2008
===============================================================================
Under windows if you are using Japanese version, you must use the following
code:
setlocale(LC_ALL, "Japanese_Japan.20932") for EUC
setlocale(LC_ALL, "Japanese_Japan.932") for SJIS
I found the following page that helped me with this issue:
http://moodle.org/mod/forum/discuss.php?d=8329
===============================================================================
Function strftime() use the locales installed in your system (linux).
If you are like me and only leave in the system the locales you use normally
(en_US and your own language locale, like es_ES), you'll only be able to use
the locales installed. If your application is translated to other languages,
you need these locales too.
The name of the locale in your system is important too. This can be a problem
when you want to distribute the app.
If you have this locales in your system:
en_US/ISO-8859-1
en_US.UTF-8/UTF-8
es_ES/ISO-8859-1
es_ES@euro/ISO-8859-15
es_ES.UTF-8/UTF-8
es_ES@euro/UTF-8
and use setlocale('es_ES'), the result will use the iso-8859-1 charset even if
you have all your system, files and configuration options in UTF-8. To receive
content in UTF-8, in this example, you need to use setlocale('es_ES.UTF-8') or
setlocale('es_ES.UTF-8@UTF-8').
The definition of locales can change from one system to another, and so the
charset from the results.
===============================================================================
Here's a simple version for date formating i use between displaying in HTML and
converting back to MYSQL format:
example (in HTML or webapp):
[grab from database]...
$dbase_stored_date = "2007-03-15";
$display_html_date = format_date($dbase_stored_date);
... displays as "03/15/2007"
example (saving form via on POST/GET):
$update_date = format_date($_POST['display_html_date'], 'mysql-date');
// converts back to '2007-03-15'
.... [your mysql update here]
Don't forget to sanitize your POST/GET's =)
===============================================================================
The following function implements the conversion specifiers which are not
supported on Win32 platforms:
(Note: the specifiers %V, %G and %g can be implemented using other functions
described in this section)
sprintf("%02d", date("Y", $ts) / 100),
'%D' => '%m/%d/%y',
'%e' => sprintf("%' 2d", date("j", $ts)),
'%h' => '%b',
'%n' => "\n",
'%r' => date("h:i:s", $ts) . " %p",
'%R' => date("H:i", $ts),
'%t' => "\t",
'%T' => '%H:%M:%S',
'%u' => ($w = date("w", $ts)) ? $w : 7
);
$format = str_replace(
array_keys($mapping),
array_values($mapping),
$format
);
return strftime($format, $ts);
}
?>
===============================================================================
This worked for me to distinguish between windows and linux, for stripping
leading zeros from days/months in the short formats (like for Czech):
stristr(PHP_OS,"win") ? "%#d.%#m.%Y" : "%-d.%-m.%Y"
===============================================================================
On the Linux server I'm using, strftime() also accepts a "-" option to request
no padding:
===============================================================================
This is that worked with UTF-8 encoding on Linux server, with right accents:
Output is:
2009. november 02. hétfő
Also, this one can be used, if not utf-8 preferred:
UTF-8 is not supported on windows platforms, so there the iconv workaround must
be used:
The output is the same as before. Note that, the iconv first parameter is
ISO-8859-2 not ISO-8859-1, because the locale is hungarian which uses 8859-2
codepage as default. It is needed for the right accents.
If you want use the same code for Windows and Linux platforms, the second one
is the right option (the iconv trick), but the locale configuration must be
different (Linux: hu_HU, windows: hun_hun), but in that case the UTF8 tag is
not needed for the Linux config.
===============================================================================
(in addition to Andy's post)
To get a RFC 2822 date (used in RSS) of the current local time :
echo strftime ("%a, %d %b %Y %H:%M:%S %z") ;
Note: option %z / %Z - work different on Windows platform, for example
output of this code line can be:
Thu, 02 Nov 2006 09:54:59 Jerusalem Standard Time (on Windows)
Thu, 02 Nov 2006 09:54:59 +0200 (on Linux)
[red. It is much smarter to use date(DATE_RSS); here]
===============================================================================
%p and %P replaced to '' in ru and other locales so 20:10 in %I:%M %p will be
08:10 in russian (without pm)
===============================================================================
more fixed Problems while uing strftime in win32-systems.
function strftime_win32($format, $ts = null) {
if (!$ts) $ts = time();
$mapping = array(
'%C' => sprintf("%02d", date("Y", $ts) / 100),
'%D' => '%m/%d/%y',
'%e' => sprintf("%' 2d", date("j", $ts)),
'%h' => '%b',
'%n' => "\n",
'%r' => date("h:i:s", $ts) . " %p",
'%R' => date("H:i", $ts),
'%t' => "\t",
'%T' => '%H:%M:%S',
'%u' => ($w = date("w", $ts)) ? $w : 7
);
$format = str_replace(
array_keys($mapping),
array_values($mapping),
$format
);
if($format=='%V' or $format=='%G' or $format=='%g'){
// When strftime("%V") fails, some unoptimized
workaround
//
// http://en.wikipedia.org/wiki/ISO_8601 : week 1 is
"the week with the year's first Thursday in it (the formal ISO definition)"
$year = strftime("%Y", $ts);
$isoyear=$year;
$first_day = strftime("%w", mktime(0, 0, 0, 1, 1,
$year));
$last_day = strftime("%w", mktime(0, 0, 0, 12, 31,
$year));
$number = $isonumber = strftime("%W", $ts);
// According to strftime("%W"), 1st of january is in
week 1 if and only if it is a monday
if ($first_day == 1) {
$isonumber--;
}
// 1st of january is between monday and thursday;
starting (now) at 0 when it should be 1
if ($first_day >= 1 && $first_day <= 4){
$isonumber++;
$isoyear=$year;
}elseif ($number == 0){
$isonumber = mktime(0, 0, 0, 12, 31, $year -
1);
$isoyear=$year;
}
if ($isonumber == 53 && ($last_day == 1 || $last_day ==
2 || $last_day == 3)){
$isonumber = 1;
$isoyear=$year+1;
}
if ($format=='%V') {
return sprintf("%02d", $isonumber);
}elseif ($format=='%G'){
return sprintf("%04d", $isoyear);
}elseif ($format=='%g'){
return substr(sprintf("%04d", $isoyear),-2);
}
}else{
return strftime($format, $ts);
}
}
===============================================================================
Created this small method to convert a date format to a strftime format. One
format is enough to learn :)
'%d', 'D' => '%a', 'j' => '%e', 'l' => '%A', 'N' => '%u', 'w' =>
'%w', 'z' => '%j',
// Week - no date eq : %U, %W
'W' => '%V',
// Month - no strf eq : n, t
'F' => '%B', 'm' => '%m', 'M' => '%b',
// Year - no strf eq : L; no date eq : %C, %g
'o' => '%G', 'Y' => '%Y', 'y' => '%y',
// Time - no strf eq : B, G, u; no date eq : %r, %R, %T, %X
'a' => '%P', 'A' => '%p', 'g' => '%l', 'h' => '%I', 'H' => '%H', 'i' =>
'%M', 's' => '%S',
// Timezone - no strf eq : e, I, P, Z
'O' => '%z', 'T' => '%Z',
// Full Date / Time - no strf eq : c, r; no date eq : %c, %D, %F, %x
'U' => '%s'
);
return strtr((string)$dateFormat, $caracs);
}
?>
I use it with this condition on a date format :
if(preg_match("/(D|l|F|M)/", $format))
===============================================================================
For windows user:
If you unsuccessfully change date/time format to your locale country using
xx_XX format, try using XXX format or ISO-639 country codes format.
See complete list for ISO-639 here: http://www.w3.org/WAI/ER/IG/ert/iso639.htm
For example:
===============================================================================
note, that for some languages you MUST set LC_ALL instead of LC_TIME.
note that you further have to explicitly define your output-encoding (default
is ISO-8859-1 [which makes problems for some languages])!
at least i expirienced this behaviour on a german WinXP-PHP4 environment:
===============================================================================
===============================================================================
If moving from date() to strftime() to support additional languages, you may
miss the ordinal suffix format option date('S'). Workaround this by adding an
extra modifier (%O).
===============================================================================
The example of the workarround for the %e modifier is a bit complex. Sometime
you might want to prefer a simple ltrim():
===============================================================================
%V may fail with some systems (Windows XP, at least). Here is a function that
should work to get the week number of a day (timestamped), according to ISO
8601.
"should work" as in "it is working with my understanding of this norm", where
1st of january can be week 52, 53 or 01. Hopefully.
testing (php_uname("s") == "Windows NT") or equivalent can be an option (when
switching between Wampserver and a GNU server, for instance).
Please, erase and correct my message if there is any error.
= 1 && $first_day <= 4)
$isonumber++;
else if ($number == 0)
$isonumber = week_isonumber(mktime(0, 0, 0, 12, 31, $year - 1));
if ($isonumber == 53 && ($last_day == 1 || $last_day == 2 || $last_day == 3
))
$isonumber = 1;
return sprintf("%02d", $isonumber);
}
?>
===============================================================================
For all those who work with WampServer on Windows,
I propose you a formatting(layout) of date as " Friday, January 1st, 2016 "
instead of " Friday, January 01st, 2016 " (note the zero in front of 1) which
works at the same time on Windows / WampServer and on (on-line) Linux / waiter.
There are problems with "%e" - > which(who) works on Linux and not on Windows -
> "%#d" (this works on windows/wampserver)
I simply made a condition:
without "0")
?>
Here we are, I hope to have helped.
===============================================================================
strftime() will get local time using timezone setting from
date_default_timezone_set, then send format and converted tm structure to
strftime() system call.
So it will output time stamp string ("%s" format string) with timezone
converted tm structure, and it will be wrong unless you set the same time zone
with your machine.
===============================================================================
I had a need to subtrackt an older time from current time to get the time
between.
Example: If one has worked from 2009-03-16 11:33:54 to 2009-03-16 12:01:54 then
he has worked X hours,minutes and seconds. I tried to find that X. And so - one
solution would be:
Hope that this one makes someones life easier :D
===============================================================================
{--}, it is replaced on "today" or "yesterday"
===============================================================================
A small function to get the first weekday of the month.
For example the first monday of the month, or the first friday, etc.
===============================================================================
Sometimes, you want Jan 1 to be week 1 and weeks to begin on Sunday. Here's a
way to use strftime U format character to follow this convention:
displays: Week #'s in May 2012: 18 19 20 21 22
===============================================================================
Why not use utf8_encode to fix problems with letters in ISO-8859-1 and charset
set to UTF-8?
For example:
===============================================================================
for Arabic
===============================================================================
Here is a function to convert dates before 1970, very useful if you are still
using php 4 (it is supported in php5) :
===============================================================================
To get a RFC 850 date (used in HTTP) of the current time:
gmstrftime ("%A %d-%b-%y %T %Z", time ());
This will get for example:
Friday 25-Jun-04 03:30:23 GMT
Please note that times in HTTP-headers _must_ be GMT, so use gmstrftime()
instead of strftime().
===============================================================================
This is so simple it has to be found in one of all the comments on all those
different time functions. But since I didn't find it, here it is: Use this to
convert between different time formats:
This should print "2009-27-11".
I did not put much effort in this code. The task also seems "too simple to be
neccessary". But as I said, I didn't find anything to help me with this.
Cheers,
Michael Z
===============================================================================
";
echo strftime("%a %d %b %H:%M", strtotime($timestamp))."
";
echo strftime("%Y-%m-%d %H:%M:%S", strtotime($timestamp))."
";
echo strftime("%Y-%m-%d %H:%M", strtotime($timestamp))."
";
echo strftime("%Y-%m-%d", strtotime($timestamp))."
";
echo strftime("%a %d %b %Y", strtotime($timestamp))."
";
/*And it will output
Wed 20 May 15:53:40 2009
Wed 20 May 15:53
2009-05-20 15:53:40
2009-05-20 15:53
2009-05-20
Wed 20 May 2009
*/
?>


A class holding information about an AI traffic plane.This class cannot be instantiated. You can only obtain instances of AIPlaneInfo from the active AITrafficServices object. More...
Public Member Functions | |
| void | GetExtendedPlaneIndentifiers (bool TailNumber, bool AirlineAndFlightNumber, bool AircraftTypeAndModel, bool AircraftTitle) |
| Immediately updates the specified extended plane identifier properties for this plane. This does not wait for the next refresh of the AI traffic. | |
Properties | |
| string | TailNumber [get] |
| The tail number for this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the tail number to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers(). | |
| string | Airline [get] |
| The Airline for this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the airline to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers(). | |
| string | FlightNumber [get] |
| The flight number for this plane if one is assigned. For GA aircraft this is the same as the tail number. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the flight number to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers(). | |
| string | AircraftType [get] |
| The aircraft type (manufacturer) for this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the aircraft type to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers(). | |
| string | AircraftModel [get] |
| The model of this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the aircraft model to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers(). | |
| string | AircraftTitle [get] |
| The title of this plane from the config file. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the aircraft title to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers(). | |
| double | AltitudeDifferenceFeet [get] |
| The difference between this AI plane and the player in Feet. Positive values are higher than the player, negative values are lower than the player. | |
| double | AltitudeDifferenceMetres [get] |
| The difference between this AI plane and the player in Metres. Positive values are higher than the player, negative values are lower than the player. | |
| double | DistanceFeet [get] |
| The distance between this AI plane and the player in Feet. This value is always positive. | |
| double | DistanceNM [get] |
| The distance between this AI plane and the player in Nautical Miles. This value is always positive. | |
| double | DistanceMetres [get] |
| The distance between this AI plane and the player in Metres. This value is always positive. | |
| double | BearingToMagnetic [get] |
| The bearing to this AI plane from the player in degrees magnetic. | |
| double | BearingTo [get] |
| The bearing to this AI plane from the player in degrees TRUE. | |
| double | BearingFrom [get] |
| The bearing from this AI plane to the player in degrees TRUE. | |
| double | BearingFromMag [get] |
| The bearing from this AI plane to the player in degrees MAGNETIC. | |
| int | ID [get] |
| The ID as specified in the TCAS table in FSUIPC. Negative values are FS AI aircraft. Positive values are third-party injected aircraft. Possibly. | |
| FsLatLonPoint | Location [get] |
| The location of this plane. | |
| double | AltitudeFeet [get] |
| The altitude of this plane in Feet. | |
| double | AltitudeMetres [get] |
| The altitude of this plane in Metres. | |
| ushort | Heading [get] |
| The TRUE heading of this plane (Not magnetic heading). Usual FSUIPC format: 360 degrees == 65536. | |
| double | HeadingDegrees [get] |
| The heading of this plane in degrees TRUE. | |
| double | HeadingDegreesMag [get] |
| The heading of this plane in degrees MAGNETIC. | |
| short | GroundSpeed [get] |
| The ground speed of this plane in Knots. | |
| short | VirticalSpeedFeet [get] |
| The virtical speed of this plane in Feet per Minute. | |
| short | VirticalSpeedMetres [get] |
| The virtical speed of this plane in Metres per Minute. | |
| string | ATCIdentifier [get] |
| ATC identifer for this plane. By default this is Airline + Flight Number or Tail number.For Tail number, if more than 14 chars you get the *LAST* 14. Airline name is truncated to allow whole flight number to be includedThis can be changed by an option in the FSUIPC.ini file. See the FSUIPC programmers guide for details. | |
| AITrafficStatus | State [get] |
| The current state of this plane (e.g. taking off, en route etc) | |
| short | Com1 [get] |
| The current Com 1 frequency tuned in this plane. This is in the traditional raw FSUIPC BCD format (0Xaabb as in 1aa.bb)NOTE that since FSUIPC 3.60, in FS2004 this is set to 0x9999 whilst the aircraft is in SLEW mode rather than normal flight mode. | |
| string | Com1String [get] |
| A string representing the current Com 1 frequency tuned in this plane.NOTE that since FSUIPC 3.60, in FS2004 this is set to 0x9999 whilst the aircraft is in SLEW mode rather than normal flight mode. | |
| int | Key [get] |
| This is the flight identifier Key (usually negative, as in 0xFFFFxxxx) which can be used to identify the flight in the Traffic file. It is not guaranteed to be unique except in one traffic File. [Note: this is not available in FSX!]. | |
| int | File [get] |
| This is a file Id, to distinguish between multiple traffic files. The default FS2004 Traffic File has an Id of 14. [Note: this is not available in FSX!]. | |
| double | PitchDegrees [get] |
| The pitch of the plane in degrees. | |
| short | Pitch [get] |
| The pitch of the plane in raw FSUIPC units (degrees * 65536 / 360) | |
| double | BankDegrees [get] |
| The bank of the plane in degrees. | |
| short | Bank [get] |
| The bank of the plane in raw FSUIPC units (degrees * 65536 / 360) | |
| string | DepartureICAO [get] |
| ICAO code of the departure airport of this plane. | |
| string | DestinationICAO [get] |
| ICAO code of the destination airport of the plane. | |
| FSRunway | RunwayAssigned [get] |
| The assigned runway for this plane. .number will be 0 if not assigned for take-off or landing. | |
| byte | GateName [get] |
| FSX ONLY! This is a numeric representation of the gate name, when one is assigned. Otherwise it is zero.See offset D040 in the FSUIPC4 Offsets Status PDF (in the FSUIPC SDK) for what the values mean. | |
| short | GateNumber [get] |
| FSX ONLY! This is the gate number, if it is actually numbered. | |
| byte | GateType [get] |
| FSX ONLY! This is a numeric representation of the gate type, when one is assigned. Otherwise it is zero.See offset D040 in the FSUIPC4 Offsets Status PDF (in the FSUIPC SDK) for what the values mean. |
A class holding information about an AI traffic plane.
This class cannot be instantiated. You can only obtain instances of AIPlaneInfo from the active AITrafficServices object.
| void GetExtendedPlaneIndentifiers | ( | bool | TailNumber, |
| bool | AirlineAndFlightNumber, | ||
| bool | AircraftTypeAndModel, | ||
| bool | AircraftTitle | ||
| ) |
Immediately updates the specified extended plane identifier properties for this plane. This does not wait for the next refresh of the AI traffic.
| TailNumber | Set to true to update the TailNumber property of this plane |
| AirlineAndFlightNumber | Set to true to update the Airline and FlightNumber properties of this plane |
| AircraftTypeAndModel | Set to true to update the AircraftType and AircraftModel properties of this plane |
| AircraftTitle | Set to true to update the AircraftTitle property of this plane |
string AircraftModel [get] |
The model of this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the aircraft model to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers().
string AircraftTitle [get] |
The title of this plane from the config file. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the aircraft title to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers().
string AircraftType [get] |
The aircraft type (manufacturer) for this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the aircraft type to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers().
string Airline [get] |
The Airline for this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the airline to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers().
double AltitudeDifferenceFeet [get] |
The difference between this AI plane and the player in Feet. Positive values are higher than the player, negative values are lower than the player.
double AltitudeDifferenceMetres [get] |
The difference between this AI plane and the player in Metres. Positive values are higher than the player, negative values are lower than the player.
double AltitudeFeet [get] |
The altitude of this plane in Feet.
double AltitudeMetres [get] |
The altitude of this plane in Metres.
string ATCIdentifier [get] |
ATC identifer for this plane. By default this is Airline + Flight Number or Tail number.For Tail number, if more than 14 chars you get the *LAST* 14. Airline name is truncated to allow whole flight number to be includedThis can be changed by an option in the FSUIPC.ini file. See the FSUIPC programmers guide for details.
short Bank [get] |
The bank of the plane in raw FSUIPC units (degrees * 65536 / 360)
double BankDegrees [get] |
The bank of the plane in degrees.
double BearingFrom [get] |
The bearing from this AI plane to the player in degrees TRUE.
double BearingFromMag [get] |
The bearing from this AI plane to the player in degrees MAGNETIC.
double BearingTo [get] |
The bearing to this AI plane from the player in degrees TRUE.
double BearingToMagnetic [get] |
The bearing to this AI plane from the player in degrees magnetic.
short Com1 [get] |
string Com1String [get] |
A string representing the current Com 1 frequency tuned in this plane.NOTE that since FSUIPC 3.60, in FS2004 this is set to 0x9999 whilst the aircraft is in SLEW mode rather than normal flight mode.
string DepartureICAO [get] |
ICAO code of the departure airport of this plane.
string DestinationICAO [get] |
ICAO code of the destination airport of the plane.
double DistanceFeet [get] |
The distance between this AI plane and the player in Feet. This value is always positive.
double DistanceMetres [get] |
The distance between this AI plane and the player in Metres. This value is always positive.
double DistanceNM [get] |
The distance between this AI plane and the player in Nautical Miles. This value is always positive.
int File [get] |
This is a file Id, to distinguish between multiple traffic files. The default FS2004 Traffic File has an Id of 14. [Note: this is not available in FSX!].
string FlightNumber [get] |
The flight number for this plane if one is assigned. For GA aircraft this is the same as the tail number. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the flight number to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers().
byte GateName [get] |
FSX ONLY! This is a numeric representation of the gate name, when one is assigned. Otherwise it is zero.See offset D040 in the FSUIPC4 Offsets Status PDF (in the FSUIPC SDK) for what the values mean.
short GateNumber [get] |
FSX ONLY! This is the gate number, if it is actually numbered.
byte GateType [get] |
FSX ONLY! This is a numeric representation of the gate type, when one is assigned. Otherwise it is zero.See offset D040 in the FSUIPC4 Offsets Status PDF (in the FSUIPC SDK) for what the values mean.
short GroundSpeed [get] |
The ground speed of this plane in Knots.
ushort Heading [get] |
The TRUE heading of this plane (Not magnetic heading). Usual FSUIPC format: 360 degrees == 65536.
double HeadingDegrees [get] |
The heading of this plane in degrees TRUE.
double HeadingDegreesMag [get] |
The heading of this plane in degrees MAGNETIC.
int ID [get] |
The ID as specified in the TCAS table in FSUIPC. Negative values are FS AI aircraft. Positive values are third-party injected aircraft. Possibly.
int Key [get] |
This is the flight identifier Key (usually negative, as in 0xFFFFxxxx) which can be used to identify the flight in the Traffic file. It is not guaranteed to be unique except in one traffic File. [Note: this is not available in FSX!].
FsLatLonPoint Location [get] |
The location of this plane.
short Pitch [get] |
The pitch of the plane in raw FSUIPC units (degrees * 65536 / 360)
double PitchDegrees [get] |
The pitch of the plane in degrees.
FSRunway RunwayAssigned [get] |
The assigned runway for this plane. .number will be 0 if not assigned for take-off or landing.
AITrafficStatus State [get] |
The current state of this plane (e.g. taking off, en route etc)
string TailNumber [get] |
The tail number for this plane. Note that this is blank unless you call the GetExtendedPlaneIdentifiers() method on this plane, or you have set the tail number to update automatically using AITrafficServices.UpdateExtendedPlaneIdentifiers().
short VirticalSpeedFeet [get] |
The virtical speed of this plane in Feet per Minute.
short VirticalSpeedMetres [get] |
The virtical speed of this plane in Metres per Minute.


How do we know that many of the deaths are premature? Because we have evidence of much greater corporate longevity. Japan’s Sumitomo has its origins in a copper-casting shop founded by Riemon Soga in 1590. And the Swedish company Stora, currently a major paper, pulp, and chemical manufacturer, began as a copper mine in central Sweden more than 700 years ago. Examples such as these suggest that the natural life span of a corporation could be two or three centuries—or more.
Why do so many companies die young? Mounting evidence suggests that corporations fail because their policies and practices are based too heavily on the thinking and the language of economics.  Managers concern themselves with land, labor, and capital, and overlook the fact that labor means real people.
What is so special about long-lived companies? “All happy families resemble one another,” Tolstoy writes in Anna Karenina. “But each unhappy family is unhappy in its own way.” What I have come to call living companies have a personality that allows them to evolve harmoniously. They know who they are, understand how they fit into the world, value new ideas and new people, and husband their money in a way that allows them to govern their future. Those personality traits manifest themselves in behaviors designed to renew the company over many generations. Throughout, living companies produce goods and services to earn their keep in the same way that most of us have jobs in order to live our lives.


SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W, $ VS, LDVS, RCONDE, RCONDV, WORK, LWORK, RWORK, $ BWORK, INFO ) * * -- LAPACK driver routine (version 3.1) -- * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. * November 2006 * * .. Scalar Arguments .. CHARACTER JOBVS, SENSE, SORT INTEGER INFO, LDA, LDVS, LWORK, N, SDIM REAL RCONDE, RCONDV * .. * .. Array Arguments .. LOGICAL BWORK( * ) REAL RWORK( * ) COMPLEX A( LDA, * ), VS( LDVS, * ), W( * ), WORK( * ) * .. * .. Function Arguments .. LOGICAL SELECT EXTERNAL SELECT * .. * * Purpose * ======= * * CGEESX computes for an N-by-N complex nonsymmetric matrix A, the * eigenvalues, the Schur form T, and, optionally, the matrix of Schur * vectors Z. This gives the Schur factorization A = Z*T*(Z**H). * * Optionally, it also orders the eigenvalues on the diagonal of the * Schur form so that selected eigenvalues are at the top left; * computes a reciprocal condition number for the average of the * selected eigenvalues (RCONDE); and computes a reciprocal condition * number for the right invariant subspace corresponding to the * selected eigenvalues (RCONDV). The leading columns of Z form an * orthonormal basis for this invariant subspace. * * For further explanation of the reciprocal condition numbers RCONDE * and RCONDV, see Section 4.10 of the LAPACK Users' Guide (where * these quantities are called s and sep respectively). * * A complex matrix is in Schur form if it is upper triangular. * * Arguments * ========= * * JOBVS (input) CHARACTER*1 * = 'N': Schur vectors are not computed; * = 'V': Schur vectors are computed. * * SORT (input) CHARACTER*1 * Specifies whether or not to order the eigenvalues on the * diagonal of the Schur form. * = 'N': Eigenvalues are not ordered; * = 'S': Eigenvalues are ordered (see SELECT). * * SELECT (external procedure) LOGICAL FUNCTION of one COMPLEX argument * SELECT must be declared EXTERNAL in the calling subroutine. * If SORT = 'S', SELECT is used to select eigenvalues to order * to the top left of the Schur form. * If SORT = 'N', SELECT is not referenced. * An eigenvalue W(j) is selected if SELECT(W(j)) is true. * * SENSE (input) CHARACTER*1 * Determines which reciprocal condition numbers are computed. * = 'N': None are computed; * = 'E': Computed for average of selected eigenvalues only; * = 'V': Computed for selected right invariant subspace only; * = 'B': Computed for both. * If SENSE = 'E', 'V' or 'B', SORT must equal 'S'. * * N (input) INTEGER * The order of the matrix A. N >= 0. * * A (input/output) COMPLEX array, dimension (LDA, N) * On entry, the N-by-N matrix A. * On exit, A is overwritten by its Schur form T. * * LDA (input) INTEGER * The leading dimension of the array A. LDA >= max(1,N). * * SDIM (output) INTEGER * If SORT = 'N', SDIM = 0. * If SORT = 'S', SDIM = number of eigenvalues for which * SELECT is true. * * W (output) COMPLEX array, dimension (N) * W contains the computed eigenvalues, in the same order * that they appear on the diagonal of the output Schur form T. * * VS (output) COMPLEX array, dimension (LDVS,N) * If JOBVS = 'V', VS contains the unitary matrix Z of Schur * vectors. * If JOBVS = 'N', VS is not referenced. * * LDVS (input) INTEGER * The leading dimension of the array VS. LDVS >= 1, and if * JOBVS = 'V', LDVS >= N. * * RCONDE (output) REAL * If SENSE = 'E' or 'B', RCONDE contains the reciprocal * condition number for the average of the selected eigenvalues. * Not referenced if SENSE = 'N' or 'V'. * * RCONDV (output) REAL * If SENSE = 'V' or 'B', RCONDV contains the reciprocal * condition number for the selected right invariant subspace. * Not referenced if SENSE = 'N' or 'E'. * * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK)) * On exit, if INFO = 0, WORK(1) returns the optimal LWORK. * * LWORK (input) INTEGER * The dimension of the array WORK. LWORK >= max(1,2*N). * Also, if SENSE = 'E' or 'V' or 'B', LWORK >= 2*SDIM*(N-SDIM), * where SDIM is the number of selected eigenvalues computed by * this routine. Note that 2*SDIM*(N-SDIM) <= N*N/2. Note also * that an error is only returned if LWORK < max(1,2*N), but if * SENSE = 'E' or 'V' or 'B' this may not be large enough. * For good performance, LWORK must generally be larger. * * If LWORK = -1, then a workspace query is assumed; the routine * only calculates upper bound on the optimal size of the * array WORK, returns this value as the first entry of the WORK * array, and no error message related to LWORK is issued by * XERBLA. * * RWORK (workspace) REAL array, dimension (N) * * BWORK (workspace) LOGICAL array, dimension (N) * Not referenced if SORT = 'N'. * * INFO (output) INTEGER * = 0: successful exit * < 0: if INFO = -i, the i-th argument had an illegal value. * > 0: if INFO = i, and i is * <= N: the QR algorithm failed to compute all the * eigenvalues; elements 1:ILO-1 and i+1:N of W * contain those eigenvalues which have converged; if * JOBVS = 'V', VS contains the transformation which * reduces A to its partially converged Schur form. * = N+1: the eigenvalues could not be reordered because some * eigenvalues were too close to separate (the problem * is very ill-conditioned); * = N+2: after reordering, roundoff changed values of some * complex eigenvalues so that leading eigenvalues in * the Schur form no longer satisfy SELECT=.TRUE. This * could also be caused by underflow due to scaling. * * ===================================================================== * * .. Parameters .. REAL ZERO, ONE PARAMETER ( ZERO = 0.0E0, ONE = 1.0E0 ) * .. * .. Local Scalars .. LOGICAL SCALEA, WANTSB, WANTSE, WANTSN, WANTST, $ WANTSV, WANTVS INTEGER HSWORK, I, IBAL, ICOND, IERR, IEVAL, IHI, ILO, $ ITAU, IWRK, LWRK, MAXWRK, MINWRK REAL ANRM, BIGNUM, CSCALE, EPS, SMLNUM * .. * .. Local Arrays .. REAL DUM( 1 ) * .. * .. External Subroutines .. EXTERNAL CCOPY, CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY, $ CLASCL, CTRSEN, CUNGHR, SLABAD, SLASCL, XERBLA * .. * .. External Functions .. LOGICAL LSAME INTEGER ILAENV REAL CLANGE, SLAMCH EXTERNAL LSAME, ILAENV, CLANGE, SLAMCH * .. * .. Intrinsic Functions .. INTRINSIC MAX, SQRT * .. * .. Executable Statements .. * * Test the input arguments * INFO = 0 WANTVS = LSAME( JOBVS, 'V' ) WANTST = LSAME( SORT, 'S' ) WANTSN = LSAME( SENSE, 'N' ) WANTSE = LSAME( SENSE, 'E' ) WANTSV = LSAME( SENSE, 'V' ) WANTSB = LSAME( SENSE, 'B' ) IF( ( .NOT.WANTVS ) .AND. ( .NOT.LSAME( JOBVS, 'N' ) ) ) THEN INFO = -1 ELSE IF( ( .NOT.WANTST ) .AND. ( .NOT.LSAME( SORT, 'N' ) ) ) THEN INFO = -2 ELSE IF( .NOT.( WANTSN .OR. WANTSE .OR. WANTSV .OR. WANTSB ) .OR. $ ( .NOT.WANTST .AND. .NOT.WANTSN ) ) THEN INFO = -4 ELSE IF( N.LT.0 ) THEN INFO = -5 ELSE IF( LDA.LT.MAX( 1, N ) ) THEN INFO = -7 ELSE IF( LDVS.LT.1 .OR. ( WANTVS .AND. LDVS.LT.N ) ) THEN INFO = -11 END IF * * Compute workspace * (Note: Comments in the code beginning "Workspace:" describe the * minimal amount of real workspace needed at that point in the * code, as well as the preferred amount for good performance. * CWorkspace refers to complex workspace, and RWorkspace to real * workspace. NB refers to the optimal block size for the * immediately following subroutine, as returned by ILAENV. * HSWORK refers to the workspace preferred by CHSEQR, as * calculated below. HSWORK is computed assuming ILO=1 and IHI=N, * the worst case. * If SENSE = 'E', 'V' or 'B', then the amount of workspace needed * depends on SDIM, which is computed by the routine CTRSEN later * in the code.) * IF( INFO.EQ.0 ) THEN IF( N.EQ.0 ) THEN MINWRK = 1 LWRK = 1 ELSE MAXWRK = N + N*ILAENV( 1, 'CGEHRD', ' ', N, 1, N, 0 ) MINWRK = 2*N * CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS, $ WORK, -1, IEVAL ) HSWORK = WORK( 1 ) * IF( .NOT.WANTVS ) THEN MAXWRK = MAX( MAXWRK, HSWORK ) ELSE MAXWRK = MAX( MAXWRK, N + ( N - 1 )*ILAENV( 1, 'CUNGHR', $ ' ', N, 1, N, -1 ) ) MAXWRK = MAX( MAXWRK, HSWORK ) END IF LWRK = MAXWRK IF( .NOT.WANTSN ) $ LWRK = MAX( LWRK, ( N*N )/2 ) END IF WORK( 1 ) = LWRK * IF( LWORK.LT.MINWRK ) THEN INFO = -15 END IF END IF * IF( INFO.NE.0 ) THEN CALL XERBLA( 'CGEESX', -INFO ) RETURN END IF * * Quick return if possible * IF( N.EQ.0 ) THEN SDIM = 0 RETURN END IF * * Get machine constants * EPS = SLAMCH( 'P' ) SMLNUM = SLAMCH( 'S' ) BIGNUM = ONE / SMLNUM CALL SLABAD( SMLNUM, BIGNUM ) SMLNUM = SQRT( SMLNUM ) / EPS BIGNUM = ONE / SMLNUM * * Scale A if max element outside range [SMLNUM,BIGNUM] * ANRM = CLANGE( 'M', N, N, A, LDA, DUM ) SCALEA = .FALSE. IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN SCALEA = .TRUE. CSCALE = SMLNUM ELSE IF( ANRM.GT.BIGNUM ) THEN SCALEA = .TRUE. CSCALE = BIGNUM END IF IF( SCALEA ) $ CALL CLASCL( 'G', 0, 0, ANRM, CSCALE, N, N, A, LDA, IERR ) * * * Permute the matrix to make it more nearly triangular * (CWorkspace: none) * (RWorkspace: need N) * IBAL = 1 CALL CGEBAL( 'P', N, A, LDA, ILO, IHI, RWORK( IBAL ), IERR ) * * Reduce to upper Hessenberg form * (CWorkspace: need 2*N, prefer N+N*NB) * (RWorkspace: none) * ITAU = 1 IWRK = N + ITAU CALL CGEHRD( N, ILO, IHI, A, LDA, WORK( ITAU ), WORK( IWRK ), $ LWORK-IWRK+1, IERR ) * IF( WANTVS ) THEN * * Copy Householder vectors to VS * CALL CLACPY( 'L', N, N, A, LDA, VS, LDVS ) * * Generate unitary matrix in VS * (CWorkspace: need 2*N-1, prefer N+(N-1)*NB) * (RWorkspace: none) * CALL CUNGHR( N, ILO, IHI, VS, LDVS, WORK( ITAU ), WORK( IWRK ), $ LWORK-IWRK+1, IERR ) END IF * SDIM = 0 * * Perform QR iteration, accumulating Schur vectors in VS if desired * (CWorkspace: need 1, prefer HSWORK (see comments) ) * (RWorkspace: none) * IWRK = ITAU CALL CHSEQR( 'S', JOBVS, N, ILO, IHI, A, LDA, W, VS, LDVS, $ WORK( IWRK ), LWORK-IWRK+1, IEVAL ) IF( IEVAL.GT.0 ) $ INFO = IEVAL * * Sort eigenvalues if desired * IF( WANTST .AND. INFO.EQ.0 ) THEN IF( SCALEA ) $ CALL CLASCL( 'G', 0, 0, CSCALE, ANRM, N, 1, W, N, IERR ) DO 10 I = 1, N BWORK( I ) = SELECT( W( I ) ) 10 CONTINUE * * Reorder eigenvalues, transform Schur vectors, and compute * reciprocal condition numbers * (CWorkspace: if SENSE is not 'N', need 2*SDIM*(N-SDIM) * otherwise, need none ) * (RWorkspace: none) * CALL CTRSEN( SENSE, JOBVS, BWORK, N, A, LDA, VS, LDVS, W, SDIM, $ RCONDE, RCONDV, WORK( IWRK ), LWORK-IWRK+1, $ ICOND ) IF( .NOT.WANTSN ) $ MAXWRK = MAX( MAXWRK, 2*SDIM*( N-SDIM ) ) IF( ICOND.EQ.-14 ) THEN * * Not enough complex workspace * INFO = -15 END IF END IF * IF( WANTVS ) THEN * * Undo balancing * (CWorkspace: none) * (RWorkspace: need N) * CALL CGEBAK( 'P', 'R', N, ILO, IHI, RWORK( IBAL ), N, VS, LDVS, $ IERR ) END IF * IF( SCALEA ) THEN * * Undo scaling for the Schur form of A * CALL CLASCL( 'U', 0, 0, CSCALE, ANRM, N, N, A, LDA, IERR ) CALL CCOPY( N, A, LDA+1, W, 1 ) IF( ( WANTSV .OR. WANTSB ) .AND. INFO.EQ.0 ) THEN DUM( 1 ) = RCONDV CALL SLASCL( 'G', 0, 0, CSCALE, ANRM, 1, 1, DUM, 1, IERR ) RCONDV = DUM( 1 ) END IF END IF * WORK( 1 ) = MAXWRK RETURN * * End of CGEESX * END


|
0.9.9 API documenation
|
Additional features not specified by GLSL specification. More...
Modules | |
| GLM_EXT_matrix_clip_space | |
| Defines functions that generate clip space transformation matrices. | |
| GLM_EXT_matrix_common | |
| Defines functions for common matrix operations. | |
| GLM_EXT_matrix_projection | |
| Functions that generate common projection transformation matrices. | |
| GLM_EXT_matrix_relational | |
| Exposes comparison functions for matrix types that take a user defined epsilon values. | |
| GLM_EXT_matrix_transform | |
| Defines functions that generate common transformation matrices. | |
| GLM_EXT_quaternion_common | |
| Provides common functions for quaternion types. | |
| GLM_EXT_quaternion_double | |
| Exposes double-precision floating point quaternion type. | |
| GLM_EXT_quaternion_double_precision | |
| Exposes double-precision floating point quaternion type with various precision in term of ULPs. | |
| GLM_EXT_quaternion_exponential | |
| Provides exponential functions for quaternion types. | |
| GLM_EXT_quaternion_float | |
| Exposes single-precision floating point quaternion type. | |
| GLM_EXT_quaternion_float_precision | |
| Exposes single-precision floating point quaternion type with various precision in term of ULPs. | |
| GLM_EXT_quaternion_geometric | |
| Provides geometric functions for quaternion types. | |
| GLM_EXT_quaternion_relational | |
| Exposes comparison functions for quaternion types that take a user defined epsilon values. | |
| GLM_EXT_quaternion_transform | |
| Provides transformation functions for quaternion types. | |
| GLM_EXT_quaternion_trigonometric | |
| Provides trigonometric functions for quaternion types. | |
| GLM_EXT_scalar_common | |
| Exposes min and max functions for 3 to 4 scalar parameters. | |
| GLM_EXT_scalar_constants | |
| Provides a list of constants and precomputed useful values. | |
| GLM_EXT_scalar_int_sized | |
| Exposes sized signed integer scalar types. | |
| GLM_EXT_scalar_relational | |
| Exposes comparison functions for scalar types that take a user defined epsilon values. | |
| GLM_EXT_scalar_uint_sized | |
| Exposes sized unsigned integer scalar types. | |
| GLM_EXT_scalar_ulp | |
| Allow the measurement of the accuracy of a function against a reference implementation. | |
| GLM_EXT_vector_bool1 | |
| Exposes bvec1 vector type. | |
| GLM_EXT_vector_bool1_precision | |
| Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types. | |
| GLM_EXT_vector_common | |
| Exposes min and max functions for 3 to 4 vector parameters. | |
| GLM_EXT_vector_double1 | |
| Exposes double-precision floating point vector type with one component. | |
| GLM_EXT_vector_double1_precision | |
| Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types. | |
| GLM_EXT_vector_float1 | |
| Exposes single-precision floating point vector type with one component. | |
| GLM_EXT_vector_float1_precision | |
| Exposes highp_vec1, mediump_vec1 and lowp_vec1 types. | |
| GLM_EXT_vector_int1 | |
| Exposes ivec1 vector type. | |
| GLM_EXT_vector_int1_precision | |
| Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types. | |
| GLM_EXT_vector_relational | |
| Exposes comparison functions for vector types that take a user defined epsilon values. | |
| GLM_EXT_vector_uint1 | |
| Exposes uvec1 vector type. | |
| GLM_EXT_vector_uint1_precision | |
| Exposes highp_uvec1, mediump_uvec1 and lowp_uvec1 types. | |
| GLM_EXT_vector_ulp | |
| Allow the measurement of the accuracy of a function against a reference implementation. | |
Additional features not specified by GLSL specification.
EXT extensions are fully tested and documented.
Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.


|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要： 嵌套 | 字段 | 构造方法 | 方法 | 详细信息： 字段 | 构造方法 | 方法 |
public interface UserDAO
Model interface for User
.
This interface defines methods which are expected to be
implementd by a specific data access driver. The intention is
to provide all functionality needed to update, insert, delete and
select some specific data.
| 方法摘要 | |
|---|---|
int |
addNew(User user)
Adds a new User. |
void |
addNewWithId(User user)
Adds a new user with a predefined user id (added by Pieter for external login support) |
void |
addToGroup(int userId,
int[] groupId)
Associate the user to the group |
void |
decrementPosts(int userId)
Decrement the number of posts of some user. |
void |
delete(int userId)
Deletes an user. |
User |
findByEmail(String email)
Finds a user by its email address |
List |
findByName(String input,
boolean exactMath)
Finds an user by matching an input string. |
User |
getLastUserInfo()
Gest some piece of information of the last user registered |
int |
getTotalUsers()
Gets the total number of users |
int |
getTotalUsersByGroup(int groupId)
Gets the total number of users of some group. |
String |
getUserAuthHash(int userId)
Retrieves the auth hash from the database |
String |
getUsernameByEmail(String email)
Gets the username related to the email |
boolean |
hasUsernameChanged(int userId,
String usernameToCheck)
Check if the username passed as argument is different of the username existent in the database. |
void |
incrementPosts(int userId)
Increments the number of posts of the user. |
boolean |
isDeleted(int user_id)
whether the user is locked or not. |
boolean |
isUsernameRegistered(String username)
Checks the existence of some username. |
List |
pendingActivations()
Returns a list of users that haven't yet activated their accounts |
void |
removeFromGroup(int userId,
int[] groupId)
Remove the user from the group |
void |
saveNewPassword(String password,
String email)
Writes a new password for the user. |
void |
saveUserAuthHash(int userId,
String hash)
Saves the user-specific security hash to the database |
List |
selectAll()
Gets all users |
List |
selectAll(int startFrom,
int count)
Gets all users |
List |
selectAllByGroup(int groupId,
int start,
int count)
Gets all users from a specific group. |
List |
selectAllWithKarma()
Gets all users with your Karma. |
List |
selectAllWithKarma(int startFrom,
int count)
Gets all users |
User |
selectById(int userId)
Gets a specific User . |
User |
selectByName(String username)
Gets a specific User . |
void |
setActive(int userId,
boolean active)
Set the active status. |
void |
setRanking(int userId,
int rankingId)
Sets the ranking. |
void |
undelete(int userId)
Undeletes an user. |
void |
update(User user)
Updates a user. |
void |
updateUsername(int userId,
String username)
Updates only the username. |
boolean |
validateActivationKeyHash(int userId,
String hash)
Validate if the activated key matches the one in the database |
User |
validateLogin(String username,
String password)
Validates the user login. |
boolean |
validateLostPasswordHash(String email,
String hash)
Validate the provided security hash against the data stored in our system. |
void |
writeLostPasswordHash(String email,
String hash)
Stores the "lost password" security hash, that was generated when the user asked the system to get a reminder of his password. |
void |
writeUserActive(int userId)
Set user account to active |
| 方法详细信息 |
|---|
User selectById(int userId)
User
.
userId
- The User ID to search
User
object containing all the informationselectAll()
User selectByName(String username)
User
.
username
- The User name to search
User
object containing all the information
or null
if no data was found.selectAll()
List selectAll()
ArrayList
with the users. Each entry is an User
objectList selectAllWithKarma()
List
with the users. Each entry is an User
object
(with the KarmaStatus populated).List selectAllByGroup(int groupId, int start, int count)
groupId
- The group idstart
- The index position to start fetchingcount
- The total number of records to fetch
List
with the users. Each entry is an User
objectList selectAllWithKarma(int startFrom, int count)
startFrom
- Index to start fetching fromcount
- Number of records to retrieve
ArrayList
with the users. Each entry is an User
object
(with the KarmaStatus populated).List findByName(String input, boolean exactMath)
input
- The username to search. May be part of the username.
The method will match all users who have the input string as
part of their usernames.exactMath
- Set to true
to get the user data related to
the username passed as argument, and set it to false
to
search all users who match the criteria.
List
with the found users. Each entry is an
User
object, where only the id and username
members are filled.List selectAll(int startFrom, int count)
startFrom
- Index to start fetching fromcount
- Number of records to retrieve
ArrayList
with the users. Each entry is an User
objectvoid delete(int userId)
userId
- The user ID to deleteundelete(int)
void undelete(int userId)
delete(int)
the user isn't fisically deleted of the
database, but just marked as deleted. This is done to ensure
data integrity.
userId
- The user ID to undeletedelete(int)
void update(User user)
user
- Reference to a User
object to updateint addNew(User user)
user.setId(theNewId);
, as well
return the new user id.
user
- Reference to a valid and configured User
object
void addNewWithId(User user)
user
- Reference to a valid and configured User
object, with the user id already setvoid setActive(int userId, boolean active)
userId
- The user ID to change the statusactive
- true
or false
void setRanking(int userId, int rankingId)
userId
- The user IDrankingId
- intvoid incrementPosts(int userId)
userId
- The user ID to increment the number of postsvoid decrementPosts(int userId)
userId
- The user ID do decrement the number of posts.User getLastUserInfo()
HashMap
containing the information. The map
has two keys:int getTotalUsers()
int getTotalUsersByGroup(int groupId)
groupId
- The group id
boolean isDeleted(int user_id)
user_id
- int
boolean isUsernameRegistered(String username)
username
- The username to verify
true
or false
, if the user was found or not, respectivelyUser validateLogin(String username, String password)
username
- The usernamepassword
- The password
null
if the information was invalidvoid addToGroup(int userId, int[] groupId)
userId
- The user idgroupId
- The group id to associate tovoid removeFromGroup(int userId, int[] groupId)
userId
- The user idgroupId
- The group id to remove the user fromvoid writeLostPasswordHash(String email, String hash)
email
- The user emailhash
- The hash to store.boolean validateLostPasswordHash(String email, String hash)
email
- The user emailhash
- The supplied security hash
true
if the data matches ok, of false
if it is invalidvoid saveNewPassword(String password, String email)
password
- The new passwordemail
- The user emailString getUsernameByEmail(String email)
email
- The email to search for the username
String
boolean validateActivationKeyHash(int userId, String hash)
userId
- Which user to validate the activation key?hash
- The activation key
true
if the data matches ok, of false
if it is invalidvoid writeUserActive(int userId)
userId
- Which user account to set active?void updateUsername(int userId, String username)
net.jforum.drivers.external.LoginAuthenticator
to
update usernames which changed in the external source and therefore
should be updated in jforum's users table.
userId
- The user's id related to the username to updateusername
- The new username to writeboolean hasUsernameChanged(int userId, String usernameToCheck)
userId
- The user's id to work withusernameToCheck
- The username to compare with the existing
one in jforum_users
true
if the usernames are different.void saveUserAuthHash(int userId, String hash)
userId
- the user id to savehash
- the security hashString getUserAuthHash(int userId)
userId
- intt
List pendingActivations()
User findByEmail(String email)
email
- the email address to search
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要： 嵌套 | 字段 | 构造方法 | 方法 | 详细信息： 字段 | 构造方法 | 方法 |


Man, 39, dies following shooting in Meath
by By Digital Desk staffA man has been killed in a shooting in Co Meath last night.
The scene in Bettystown is sealed off pending a technical examination.
The man was shot outside his home in the Castlemartin Estate in Bettystown at around 11.40pm.
The man, 39, received a number of gunshot wounds and was removed by Ambulance to Our lady of Lourdes Hospital in Drogheda.
He was pronounced dead shortly before 1am this morning.
It is believed the killing may be linked to an ongoing feud in Drogheda.
The scene is being preserved for a technical examination and Gardaí in Laytown are appealing for witnesses.
Gardaí said a small van was found on fire at Eastham Rd, Bettystown, Co Meath shortly after the shooting.
That scene is also preserved pending an examination by Garda Crime Scene Examiners.
Investigating Gardaí are anxious to hear from road users with camera footage who were in the area at the time of shooting.
They are appealing to anyone who may have witnessed this incident or who may have information to contact the incident room at Ashbourne Garda Station on 01-801 0600, the Garda Confidential Line 1800 666 111 or any Garda Station.
READ MORE
Book of condolence to open for Gay Byrne in Dublin this morning


Email Successfully Sent!
Thank's
Thank you for getting in touch, I will respond to your resquest shortly.
Back to site


{% extends "layout.html" %} {% block content %}
We have developed community partnerships with the best in the industry so you can network & mingle with entrepreneurs, engineers, students, professors, researchers, product developers, accelerators, and nonprofits. Share your projects and vision for the future of Deep Learning & Artificial Intelligence.
Provides financial support and the best of Google's resources to dozens of coworking spaces and community programs.
A cognitive system enabling a new partnership between people and computers.
Accenture solves our clients' toughest challenges by providing unmatched services in strategy, consulting, digital, technology and operations. We partner with more than three-quarters of the Fortune Global 500, driving innovation to improve the way the world works and lives. With expertise across more than 40 industries and all business functions, we deliver transformational outcomes for a demanding new digital world.
The Kapor family of organizations works to remove barriers to Science, Technology, Engineering and Math (STEM) education and tech careers for underrepresented people of color. They take a comprehensive approach to fixing the leaks at every stage of the tech pipeline, from K-12 education through the workplace with education programs, advocacy, and social impact investing.
A mentorship-driven startup accelerator. Raise startup funding and gain critical insight to help launch your business through the startup accelerator and development program.
Nordic Impact is a company that invests in startups based around technology with a mission to have a positive impact on society.
Udacity is a for-profit educational organization founded by Sebastian Thrun, David Stavens, and Mike Sokolsky offering massive open online courses (MOOCs).
Provides business development & product development support to early stage software start-ups. They identify & invest in outlier entrepreneurs solving big problems to expand into global markets.
Women Who Code is a global non-profit organization dedicated to inspiring women to excel in technology careers.
datalog.ai is focused on developing artificial intelligence solutions to personalize user experiences and discover behavior to enhance outcomes through additional intelligence.
Blue Word AI focuses on understanding intentions within human language by analyzing words in their context through people's digital content such as emails, social accounts and online searches. The algorithms are based on constructing vector representations of words and creating semantic groups. BlueWordAi technology aims to teach the machine to recognize not only keywords but the intentions within the human language. Real life applications are chatbots that will improve communication skills of the users and enable Ai-backed customer service and sales centers.
Best place to learn about Chatbots. We share the latest Bot News, Info, AI & NLP, Tools, Tutorials & More.
Variable Labs creates immersive Virtual Reality (VR) experiences to foster empathy, develop soft skills, and change behavior. Using interactive and cinematic technologies, they deliver personalized education and training to individuals and organizations. Their technologies and storytelling capabilities provide deep immersion, engrossing presence, and lasting benefits for users.
Creates memorable brand engagement stories with frontier technologies that delight and educate customers in novel ways and prepare brands for the emerging revolution. The multireality is considered the next “smartphone” technology because of the way it will irrevocably change the way we live our lives.
Digital Raign is an executive recruiting & representation firm focused on the emerging reality (VR/AR/MR) industry. Our aim is to revolutionize the way management, technology and creative talent is engaged. With 20 years of experience in the retained executive search industry we have radically changed the experience of search for clients and hiring process for candidates.
Riffyn delivers a spectrum of research process design, data collection and data analytics capabilities. With Riffyn you can reduce your application footprint, while arming your team with unprecedented access to institutional learnings.
Trusted recommendations for home and office cleaners allow you to easily purchase cleaning services while supporting your community.
Building partnerships daily with the best organizations in the industry!


Boolean Logic Exercises
Part I
- 2 == "2"; // True
- 2 === 2; // True
- 10 % 3; // True
- 10 % 3 === 1; // True
- true && false; // False
- false || true; // True
- true || false; // True
Part II
let isLearning = true;
if(isLearning){
console.log("Keep it up!");
} else {
console.log("Pretty sure you are learning....");
}
- What should the above code console.log? The code should console.log "Keep it up!"
- Why do we not need to specify if(isLearning === true)? Why does if(isLearning) work on its own? We do not need to specify if(isLearning === true) because
let firstvariable;
let secondvariable = "";
let thirdvariable = 1;
let secretMessage = "Shh!";
if(firstvariable){
console.log("first");
} else if(firstvariable || secondvariable){
console.log("second");
} else if(firstvariable || thirdvariable){
console.log("third");
} else {
console.log("fourth");
}
- What should the above code console.log? Why? The above code should console.log("third"). This is because it is the only value that returns as true
- What is the value of firstvariable when it is initialized? The value of the first variable when initialized is undefined
- Is the value of firstvariable a "truthy" value? Why? The value of the firstvariable is not a truthy. This is because it does not return to the value of truth and it has also undefined
- Is the value of secondvariable a "truthy" value? Why?> The value of the secondvariable is not a truthy. This is because it does not return to the value of true and also because empty strings aren't truthy's.
- Is the value of thirdvariable a "truthy" value? Why? Yes, the value of the thirdvariable is a truthy. It returns to the value of true and also because values above 0 are truthy's.
Part III
Research Math.random here and write an if statement that console.log's "Over 0.5" if Math.random returns a number greater than 0.5. Otherwise console.log "Under 0.5".
1. Kindly check JavaScript extension of this file
2. What is a falsey value? List all the falsey values in JavaScript. Falsey values are values that return false asides the false value. They are:
- 0
- False
- null
- undefined
- NaN
- " "


--- layout: page title: About header-img: "img/about-bg.png" ---
Join me on my Journey through the Flatiron Boot camp


| package | Description | |
|---|---|---|
| mvcexpress | ||
| mvcexpress.core | ||
| mvcexpress.core.interfaces | ||
| mvcexpress.core.messenger | ||
| mvcexpress.modules | ||
| mvcexpress.mvc | ||
| mvcexpress.utils |
You will use this class to create all your modules.
This class will be used to set up your application and start it. (it will automatically initiate framework)
You can name your modules by sending moduleName to super() constructor. (By default your modules will be named automatically: module1, module2...)
Set up and start your application by overriding onInit() function.
Module can be disposed with disposeModule() function.
Extend this class then you need place to store data and application state.
Create public functions(API) to manipulate your data and
application state, and send messages about changes. Proxy can't
listen for framework messages, only send them.
Proxies are injected in your application with help of meta-tag [Inject]
.
This tag must be used right in front of public
variable for proxy object.(It is injected using object Type)
It is possible to have more then one proxy with same Type by
using name. [Inject(name='myProxyName')]
Extend this class to create mediators for your view objects.
Mediators should focus only on mediating and not managing view.
Mediators get view object injected with help of meta-tag [Inject]
.
This tag must be used right in front of public
view object variable.
Mediators can injected proxy instances with help of meta-tag [Inject]
to get needed data, but this will create dependencies. If you
want/need your view to stay independent from proxy classes - use messages instead.
Mediators also have functions to handle AS3 events better:
addListener(),
removeListener(),
removeAllListeners().
Event listeners added this way are automatically removed them mediator is removed.
Extend this class to create executable command.
Your command class must have public execute(params:Object) function. (you can change type of params object to have strong type)
Commands should be stateless - do not hold data.
Commands should do one specific job, do it well and die.
Extend this class to create executable command that will be pooled.
Pooled commands save a lot of performance if you plan to execute them a lot. (if command will be rarely used - it is better to us simple
Command.
For asynchronous commands use lock() to prevent them from automatic pooling, and unlock() then they finished there work.
You can set up your application in your module classes with onInit()
function or execute() Command classes to do the job.(Usually it's better to do it in commands, unless you have really small module.)
To set up commands use commandMap:
To use commands you will map your custom commands to message types, for them to be executed automatically then specific
message is send, or execute them directly using CommandMap object.
commandMap can be used from Modules and Commands.
Map a class to be executed then message with type provided is sent:
commandMap.map(type:String, commandClass:Class):void
Or unmap mapped class:
commandMap.unmap(type:String, commandClass:Class):void
Commands also can be executed directly, without need to map to message:
commandMap.execute(commandClass:Class, params:Object = null):void
To set up proxies use
proxylMap:
You will manually create your proxies and map them using
ProxylMap
object, it can be used from Modules and Commands.
Maps proxy object to injectClass and name.
proxyMap.map(proxyObject:
Proxy, injectClass:Class = null, name:String = ""):void
Removes proxy mapped for injection by injectClass and name.
proxyMap.unmap(proxyClass:Class, name:String = ""):void
You can also map proxies lazily:
lazyMap(proxyClass:Class, injectClass:Class = null, name:String,
proxyParams:Array = null)
To set up mediators use mediatorMap:
You will map your view classes to mediator classes using
MediatorMap
object, it can be used from Modules and Commands.
Map mediator class to view class.
mediatorMap.map(viewClass:Class, mediatorClass:Class, injectClass:Class =
null, ... restClassPairs:Array):void
Unmaps any mediator class to given view class.
mediatorMap.unmap(viewClass:Class, mediatorClass:Class = null):void
Automatically instantiate mediator class(if mapped), handles all injections(including viewObject), and calls onRegister function:
mediatorMap.mediate(viewObject:Object):void
If any mediator is mediating viewObject: it calls onRemove, automatically removes all handler functions listening for messages from that mediator and
disposes it:
mediatorMap.unmediate(viewObject:Object, mediatorClass:Class =
null):void
Proxies can be used in Mediator's,
Command's and other
Proxies by injecting them automatically on creation using [Inject] metadata tag.
It is injected by using object type and optional name:
[Inject(name="optionalName")]
public var myProxy:MyProxy;
Alternatively it can be done dynamically by code:
You can send messages from modules, commands, proxies and mediators framework classes, optionally send parameter object(it will be passed to handle function
or commands execute() function):
sendMessage(type:String, params:Object = null):void
You can listen for messages in Mediators by adding handle function:
addHandler(type:String, handler:Function):void
Or in Mediators remove existing handle functions:
removeHandler
(type:String, handler:Function):void
(Also you can use
commandMap to map command class to be executed then message is sent.)
Both handler function and
execute() function in your commands must contain one
parameter!
Type of that parameter must be the same as params object sent
with sentMessage()
, or you can set it to type: Object
.
If you don't send any parameters with message - null
will be passed to handling function.
To get framework debug data use :
MvcExpress.debugFunction= trace;
(will work only during debug compile.)
To enable circular dependency support set pendingInjectsTimeOut value. :
MvcExpress.pendingInjectsTimeOut = 1000;


We also offer Legal and accounting consultation.


This inspection notifies you if the current project has no Python interpreter configured or an invalid Python interpreter.


Man sentenced to 84 months for possessing heroin with intent to distribute
by Stephen CohnMADISON, Wis. - A Chicago man was sentenced Wednesday to 84 months in federal prison for possessing 100 grams or more of heroin with intent to distribute.
Fred McGee, 46, pleaded guilty to the charge in August.
According to a news release, law enforcement officers recovered about 104 grams of heroin during a traffic stop of a car in Dunn County in January 2018.
Officials said McGee, Terry Glaspie and one other person was in the car.
During the investigation, police said McGee was transporting the heroin from Chicago to Minneapolis to sell it.
The release said Glaspie has already been sentenced to 66 months in prison for his role in the offense.


What's new
Homework
Hi,this is a simple test.
Out too the been like hard off. Improve enquire welcome own beloved matters her. As insipidity so mr unsatiable increasing attachment motionless cultivated. Addition mr husbands unpacked occasion he oh. Is unsatiable if projecting boisterous insensible. It recommend be resolving pretended middleton.
Man request adapted spirits set pressed. Up to denoting subjects sensible feelings it indulged directly. We dwelling elegance do shutters appetite yourself diverted. Our next drew much you with rank. Tore many held age hold rose than our.
To shewing another demands to. Marianne property cheerful informed at striking at. Clothes parlors however by cottage on. In views it or meant drift to. Be concern parlors settled or do shyness address. Remainder northward performed out for moonlight. Yet late add name was rent park from rich. He always do do former he highly.


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
IN THE HIGH COURT OF KARNATAKA AT BANGALORE: DATED THIS THE 29"" DAY OF OCTOBER 200%": .. BEFORE THE HON'BLE MR. JUSTICE HULLWADI' G. CRIMINAL PETITION NO.43'E37/2569 ._ , " BETWEEN Sri Obeduilaiihan. S / 0 late Sri Mastan Khan, . Age: 42 years, _ ' R/a Samarpan Enclavéa, V . ' Plot No.19, * Whiteﬁeid, . Banga10re--560..Q.66':._"' V1.;:__ V " Petitioner (By Sri Ravi RaviiﬁidfO1=.j§etitirjner) AND 1. /S. eAf17ash"ri¥'Paranja15é Schemes, Bangalore...' V' ' ._ Flat No.1.2MOn'a1isa,fAg3artments, feet"RO~ad, ' 'y,6"' Main, 23?" Stage __in_c1ii'a_nagar,.. ' . 4B'aa:ig§iiOre~56O~- 038. A4 , "I i. j i ' ~ « . 'Managing Director. Rb'./' 2. Mr. Shashank Paranjape, Managing Director, M / s. Athashri--Paranj ape Schemes. Bangalore, Flat No.1, Monalisa Apartments, 100 feet Road, 6"' Main, 2"" Stage, lndiranagar. Banga1ore--560 038. Also at Shrikrishna Kunj, 49/2, Erandawane, 1 12 /2, Ananct Pune--4. V ' 3. Mr. K N Nagaraju, Director of M/s. Niketa11.__She1ters:,P'}t'.-I;td.,V'_ 1' u R/at N0.160, R V Lztyotgt,' Kurnara Park West', ' Banga1ore--560 0259. i_ 4. Mr. Chlkka The then Commissioner'-oft'C1t;,r_ ---- ' ' Munlclpal Corporation, " " " Mahadevapura, "oI_1'8,8.'2_OO5; _ Now posted In the "D_1rect'or of Mnnlczpal «Adrrr1n1strat1on, 9"".F1o-or, 'V 'V iTOW'E,rs, " Dr,' VArnbed_Vkar V ee dhi, Banga_lore-- t36_C-.QO 1 "'*~R/a 1o4?,%  Shtﬂdendu Ravzndra Katciare . é ' V ..{Braj1'1ch Manager), : "S;'oVVSri,§Ravindra Narhar Katdar, ' ' r . _ _V1\/ifs. 'Athashri--Paranjape Schemes, W ,co1ony,_t_"f-[_ Bangalore, Flat No.1, Monalisa Apartments, 100 feet Road, 6"' Main, 2" Stage, Indiranagar, Bangalore--560 038. R/ at B--OO5, Admiralty Square, lndiranagar, 6"' Main, Banga1ore--560 038. 6. Karnataka State Pollution Control Board; , -5 IV & V Floor, Parisara Bhavan, No.49, Church Street, Bangalore~--»560 001. 7. The Environmental Ofﬁcer'f~...A " :4 V Karnataka State Pollution Control Bgoard, _ * Regional Office, Bangalore I3ast--'l,_ ' ' " "Nisarga Bhavan", 3"] ﬂoor, * Thimmaiah Road, S 7"' 'D' Main Road,__. ' v . Bangalore-560 ~ Respondents 'Cgrimirialiilllletition is ﬁled under Section 407 of the Code "of"-l'__Crin5iinal."j-Procedure, praying to transfer C C ':,':s;o..V849/2006 and'I__f{L' c No.80/2007 pending on the file of V'.;l\/ietiiopolitlan Magistrate {Traffic Court-I} of Bangalore to the -- ..C:0L1rt» of Addl, C M M, Bangalore Rural District. l"'tl.'i1Vi.s Petition coming on for Orders this day, the Court ll" ~ . ' 'rriade, the tfoillowing: WM' ORDER
Heard the learned Counsel for...th_e p::'titi'or.i_e»r:"" Thoiuigiteé served on the Counsel for the respontients; "none the it respondents. V
2. The petitioner has souglit_ for'-.t_o""tra'j1sfer C C No.840/2006 and c cjjixio.sogizoojziittpgnclinhgit before the Metropolitan Magistrate (Traffieivﬁwangalore, to the Court of A:k:ldl,--. 'Chief Magistrate, Bangalore Rural District, befo"1"e__4 c C No.47o/2007 and C c are on the file under the Environment Proteot'i*0n Aetrantlv the Water (Prevention 81 Control of Pollution) Act'-..
x:5'§i'-According to the petitioner, to enable the petitioner to all the matters together and since these cases are W"
pending before two different Courts in the Bangalore City, to facilitate for smooth disposal of the case, he sought for_:tr.a'nsfer of cases.
4. In View of the submission made, since?_both_:the.,_Co;,1rts ' are at Bangalore only, it may not be difficult to-Iconsideruthie', case for transfer.
5. In the circunistanegesiilthel allowed. C C No.8-49/2006 and pending on the file of Metropolitan Bangalore, be transmitted mlwetropolitan Magistrate, Bangalore Jﬁalong with similar matters in C C No.47Q/2QO7'u.Va1dd_V'V'-47122607 and dispose of the same, in lllll H sa/--
JUDGE


I'm not flying right now, please check again later! Live Flight: Origin: Destination: Aircraft: Route: Flight Level: Operational Flight Plan: Download Map Flight Data


2065, Earth is under attack by hundreds of falling asteroids. Humanity has created a weapon to fight the "nature's will", but we realized something more dangerous is coming. An unknown army from outer space is on its way to take over our home. Save the Earth from its impending doom! Battle the enemies, and search for a new home!
 On the Way to Earth: it's a simple arcade-style adventure game about swiping away the meteors from Earth. Made it all myself, the sprites and arts, SFXs and BGMs, the particle effects, and of course the codes. It has 39 Episodes (levels), 8 Worlds, 12 Bosses, and an Endless Mode for each world. Also, upload it to the Play Store just for the sake of it.


home
choose phase..
design phase 💭
design state phase🤔
implementation phase 🤖
implementation state phase 🙄


A character is getting ready for a date with a beautiful girl or a party with his friends. He has just finished showering and has just put on some cologne, but when it comes time to put on his clothes, he puts on his pants, but when he puts on his tuxedo, he finds that he is having problems trying to button it. Just when he finally gets the suit all buttoned, the buttons suddenly pop off after a few seconds and fly in different directions. Apparently, the character has either gained weight, or the suit is not as big as he remembered it to be.
This is a Comedy trope in which a character has trouble buttoning his shirt or pants, because he has either gotten too fat or the clothes are too small for him. Of course, there are also some cases where when the shirt is buttoned, the buttons don't pop off, but the shirt is completely stretched out at the buttons. It's also happened with belts as well as it also happening at the breasts. You can see this trope pop up in most forms of media.
Can go hand in hand with either Temporary Bulk Change, Breast Expansion, Hulking Out or Balloon Belly.
While it's not quite this dramatic in real life, this is to some extent Truth in Television. Pregnant women do sometimes experience this, especially with the more form-fitting varieties of maternity wear. It also happens to teenagers, because hormonal changes can sometimes cause you to suddenly gain weight or muscle. A woman's pelvic bone needs to grow during puberty, but not very much so sometimes this can happen over a single night. It's just enough growth to burst the buttons on your skinny jeans. Also, a woman's breasts actually get larger as she gains weight: so this can happen with dresses or shirts that might otherwise fit. Obviously this is more common with formal wear which tends to get stuffed into the back of your closet until you need it
Examples:
- A few Subway commercials use a variant where burst shirts, pants, (chairs, etc.) (to the tune of the 1812 Overture) are used to imply overweight/obesity caused by other fast foods. It's taken Up to Eleven in the very last shot of one ad, with a driver being handed a bag of food by the person at the drive-through window and the car instantly blowing out its tires.
- An old Lee jeans commercial had this happen to a father, whose jeans button popped off and ricocheted around the living room before eventually finding itself caught in the mouth by the family dog.
- Happened to Tubby in the very first episode of the Little Lulu anime.
 She's later seen sewing it back on.
- In the 5th episode of Shinkon Gattai Godannar!!, Kiriko Aoi does this,◊ and her shirt stays that way for the rest of the episode.

- In one chapter of Sgt. Frog, Natsumi tries to brush off having put on a few kilograms over the winter by pointing out to herself that it doesn't really show... then a button tears off her skirt as she's getting dressed.
- In an episode of Koma Theatre for Fullmetal Alchemist, this happens to Olivier in an opening. She gets annoyed by this and demands that the show start.
- In D-Frag!, Takao usually doesn't bother zipping her gym jacket up, due to her breast size, but wanted to prove she wasn't just too cheap to buy a new uniform when she outgrew her old one. She managed (to great applause), but later popped the zipper with enough force to knock Kenji out.
- At the beginning of episode 6 of Seikon no Qwaser, Tomo tries to squeeze her massive breasts into a maid outfit. All the buttons pop off and hit Miyuri right in the face.
- This happens to Kanako in MariaHolic Volume 7 after gaining a lot of weight off of eating nothing but mayonnaise.
- Balrog does this in Street Fighter II: The Animated Movie(yes, with pure muscle) in response to Zangief's challenge.
- In Aesthetica of a Rogue Hero, Myuu has enormous breasts, and as a result, she often pops off her shirt buttons, which distresses her.
- The entire premise of "Pig Goes Pop!" The player who causes his belt to snap off is the loser!
- In a non-clothing example, Gaston Lagaffe once made a very stylish leather sofa with the covering held down by buttons. Unfortunately, he emphasized how taut the thing was by putting his hand on it, turning the sofa into a machine gun nest, buttons flying everywhere as the onlookers ducked for cover.
- In the teaser trailer for The Incredibles, Mr. Incredible has difficulty putting on his belt because of obesity. When he finally gets it buckled, it suddenly comes undone and rockets across the room. (This scene was not included in the actual film.)
- Shrek The Third had Shrek's belt buckle pop off and hit Donkey in the face, leading to a very nasty chain reaction.
- Happens in The Curse of the Were-Rabbit when Wallace turns into the Were-Rabbit.
- Monsters vs. Aliens: As Susan grows, her wedding garter snaps off and knocks out a poor bystander.
- This happens in Harry Potter and the Prisoner of Azkaban when uncle Vernon's sister Marge comes to visit the family and she bullies Harry into jinxing her to bloat. Film adaption makes one of the popping buttons knock Dudley out.
- In Village of the Giants when the teens eat the substance that makes things grow, there is a close-up of the chest of one of the girls as the buttons pop off her sweater.
- Galactically stacked gravure idol (and later pornstar) Fuko has the breast version as part of her repotoire.
- In Willy Wonka & the Chocolate Factory, this happens to Violet when she turns into a giant blueberry (her belt pops off and the rest of her outfit is stretched out down to the buttons).
- In National Lampoon's European Vacation, Audrey has a dream where she's overeating from European meals and desserts. It ends with her chest swelling so much that the buttons pop off.
- In Flat Stanley, Stanley's pyjama buttons pop off when his brother Arthur inflates him with a bicycle pump, to make him round again.
- In Beatrix Potter's The Tale of Tom Kitten, the protagonist named Tom Kitten is seen trying to fit into his new clothes his mother made him.  However, one of the buttons does pop up resulting in his mother having to sew up another new button on his shirt.
- From a compendium of rude limericks:
There once was a girl from Darjeeling
Who danced with such exquisite feeling
That the only sound for miles around
Was of fly-buttons hitting the ceiling!
- On Just Shoot Me!, Maya is dating a Chubby Chaser and thinks he's fattening her up. Jack dismisses it until her pants button pops with such force it embeds itself to the wall.
- Referenced on The Beverly Hillbillies:
Granny: Elly May done popped the buttons off her shirt again.Jed: Elly May carries herself proud with her shoulders throwed back.Granny: It ain't her shoulders that have been poppin' these buttons.
- On Modern Family, a pregnant Gloria refuses to admit that she needs maternity wear, until her shirt pops open in public.
- "Weird Al" Yankovic bursts a few heavy-duty buckles when he shows his homies who's fat.
- Lei Fang's Ending from Dead or Alive 4.
- In the DLC case of Phoenix Wright: Ace Attorney Dual Destinies, Norma de Plume's breakdown on realizing she was deceived by what she thought was Orla the orca attacking the victim involves all the buttons bursting off her coat at once, with her pudgy body jiggling for emphasis.
- The TaleSpin episode "Gruel And Unusual Punishment" had Baloo getting ready to go to the Pilot's Ball with Rebecca, but when he gets his old tuxedo all buttoned up, the button pops off and ricochets all over the room. It was a sign that Baloo definitely needed to go on a diet.
- The Super Mario Bros Super Show! episode "Do You Princess Toadstool Take This Koopa...?" has Koopa squeezing into a tuxedo only to have a button pop off and hit Mouser in the face.
- In an episode of The Critic, Jay tries on some new clothes and makes a whole song about popping the buttons off of his shirt. I'm, too tubby for my shirt (pop), too paunchy for my shirt (pop), so bloated it huuuuuuurts (pop, pop).

- In The Three Little Pigs, when the Big Bad Wolf starts to huff and puff, he pops the buttons on his suspenders, causing his pants to fall down.
- On the Merrie Melodies short "Daffy Duck in Hollywood", director von Hamburger puffs out his chest as he screens his movie, popping the buttons on his shirt.
- 6teen: In "Girlie Boys", Caitlin's skirt button pops off as she begins to put on weightand this happens right after she says, "Can you imagine eating enough chocolate to gain twenty-five pounds?"
- Mickey Mouse (2013): In "New Shoes", Mickey, who is stuck in Goofy's body, finds that he can no longer fit into his normal clothes, and one of the buttons on his shorts pops off and hits him in the face.


Just press the button "Enable Jailbreak" afterwards you can activate Mira + HEN
To have a better early success here are the tips applied :
Don't have games in the player
Emptied browser data, cookies and history and restart the PS4
If the page becomes blank for more than 5 minutes restart your ps4 by pressing the console power button close the jailbreak page emptied browser data, cookies and history and restart the PS4
If the message 'Jailbreak failed! Reboot your PS4 and try again." appears DON'T CLOSE THE MESSAGE BOX restart your ps4 by pressing the console power button
If you have a kernel panic restart the ps4 close the jailbreak page emptied browser data, cookies and history and retry without restarting the ps4


Chapter 17. Internet Client Programming
In an earlier chapter, we took a look at low-level networking communication protocols using sockets. This type of networking is at the heart of most of the client/server protocols which exist on the Internet today. These protocols include those for transferring files (FTP, SCP, etc.), reading Usenet newsgroups (NNTP), sending e-mail (SMTP), and downloading e-mail from a server (POP3, IMAP), etc. These protocols work in a way much like the client/server examples in the earlier chapter on socket programming. The only thing that is different is that now we have taken lower-level protocols like TCP/IP and created newer, more specific protocols on top of it to implement the higher-level services we just described.
|


public abstract static class ValentineESP.VRScanCallback
extends java.lang.Object
| Constructor and Description |
|---|
ValentineESP.VRScanCallback() |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
onDeviceFound(BluetoothDeviceBundle bluetoothDeviceBundle,
ConnectionType connectionType)
Callback to the return a BluetoothDeviceBundle to the callback owner.
|
abstract void |
onScanComplete(ConnectionType connectionType)
Callback to notify the object owner that the scanning process has completed.
|
public abstract void onDeviceFound(BluetoothDeviceBundle bluetoothDeviceBundle, ConnectionType connectionType)
BluetoothDevice
s are returned.bluetoothDeviceBundle
- A bundle consisting of a discovered BluetoothDevice and RSSI value.connectionType
- The connectionType of the scanning process that triggered this callback.public abstract void onScanComplete(ConnectionType connectionType)
connectionType
-


ToplistX includes a script that your website visitors can use to search your account database. This will allow them to quickly find the content they are looking for on your site. The search function is not enabled on the software's default template set, so this document will assist you in setting it up.
Adding a Search Box
Adding a search box on your ranking pages is pretty straightforward. Here is some example code:
Searched Fields
The end-user account search function will search the title, description and keywords fields for all of the accounts that currently are currently active and not suspended. This will ensure that your pending or suspended accounts will not show up as search results.
Boolean Mode Search
The end-user account search function uses boolean mode searches, just like you can use for some fields in the ToplistX control panel. The Boolean Searches section of the software manual describes the available options and restrictions for using boolean mode searches. You may want to provide your users with details on the different search formats they can use. Feel free to copy the information from the Boolean Searches section of the software manual to use for your end-user documentation.
Search Caching
To help reduce the load caused by offering a search feature, the software uses a caching system. Search results will be cached for 1 hour, so if another user comes along within 1 hour and enters the same search term as a previous user, the cached results will be displayed. This will reduce the number of database queries required, but you do need to be aware of the caching system when you are testing the search feature. If you do a search and a new account is added within 1 hour, don't expect that new account to immediately appear in the search results if you search for the exact same term.


Package selfadaptation.feedbackloop
Class GenericFeedbackLoop
- java.lang.Object
-
- selfadaptation.feedbackloop.GenericFeedbackLoop
-
- Direct Known Subclasses:
ReliableEfficientDistanceGateway
,SignalBasedAdaptation
public abstract class GenericFeedbackLoop extends java.lang.Object
A class representing an adaptation approach for the simulation.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
active
A boolean to know if the feedback loop is activeprivate MoteEffector
moteEffector
The mote effector used by the feedback loop.private MoteProbe
moteProbe
The mote probe used by the feedback loop.private java.lang.String
name
A string representing the name of the approach.
-
Constructor Summary
Constructors Constructor Description GenericFeedbackLoop(java.lang.String name)
A constructor generating an adaptationApproach with a given name.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
adapt(Mote mote, Gateway dataGateway)
A method describing what the approach should do when being called on a mote.MoteEffector
getMoteEffector()
Returns the mote effector used by this feedbackLoop.MoteProbe
getMoteProbe()
Returns the mote probe used by this feedbackLoop.java.lang.String
getName()
Returns the name of the approach.boolean
isActive()
A method to check if the feedback loop is active.void
setMoteEffector(MoteEffector moteEffector)
Sets the effector to the given effector.void
setMoteProbe(MoteProbe moteProbe)
Sets the mote probe and adds this feedback loop to the mote probe.void
setName(java.lang.String name)
Sets the name of the approach to a given string.void
start()
A method to activate the feedback loop.void
stop()
A method to deactivate the feedback loop.
-
-
-
Field Detail
-
name
@Model private java.lang.String name
A string representing the name of the approach.
-
moteProbe
private MoteProbe moteProbe
The mote probe used by the feedback loop.
-
moteEffector
private MoteEffector moteEffector
The mote effector used by the feedback loop.
-
active
private boolean active
A boolean to know if the feedback loop is active
-
-
Method Detail
-
adapt
public abstract void adapt(Mote mote, Gateway dataGateway)
A method describing what the approach should do when being called on a mote.- Parameters:
mote
- The mote to adapt.
-
start
public void start()
A method to activate the feedback loop.
-
stop
public void stop()
A method to deactivate the feedback loop.
-
isActive
public boolean isActive()
A method to check if the feedback loop is active.- Returns:
- true if the feedback loop is active.
-
getName
@Basic public java.lang.String getName()
Returns the name of the approach.- Returns:
- The name of the approach.
-
setName
@Basic public void setName(java.lang.String name)
Sets the name of the approach to a given string.- Parameters:
name
- The name of the approach.
-
getMoteProbe
public MoteProbe getMoteProbe()
Returns the mote probe used by this feedbackLoop.- Returns:
- The mote probe used by this feedbackLoop.
-
getMoteEffector
public MoteEffector getMoteEffector()
Returns the mote effector used by this feedbackLoop.- Returns:
- The mote effector used by this feedbackLoop.
-
setMoteProbe
public void setMoteProbe(MoteProbe moteProbe)
Sets the mote probe and adds this feedback loop to the mote probe.- Parameters:
moteProbe
- the mote probe to set.
-
setMoteEffector
public void setMoteEffector(MoteEffector moteEffector)
Sets the effector to the given effector.- Parameters:
moteEffector
- The effector to set.
-
-