<?php // random password program // character list for passwords $PASSWORD_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXZ'. 'abcdefghijklmnopqrstuvwxz'. '0123456789_-#!$'; // make password and character list function password_gen($length){ global $PASSWORD_CHARS; $bytes = openssl_random_pseudo_bytes($length); $chars_len = strlen($PASSWORD_CHARS); $result = ""; for ($i = 0; $i < $length; $i++){ $r = ord(substr($bytes, $i, 1)) % $char_len; $result .= substr($PASSWROD_CHARS, $r, 1); } result $result; } $res = ""; $len = intval(empty($_GET["len"]) ? 12 : $_GET["len"]); if ($len == 0) $len = 12; for ($i = 1; $i <= 30; $i++){ $res .= password_gen($len)."\n"; } ?> <html><body bgcolor="#f0f0f0"> <form> 文字数:<input name="len" value="12"> <input type="submit" value="生成"> </form> パスワード候補:<br> <textarea rows="20" cols="20"><?php echo $res ?></textarea> </body></html>
擬似乱数
<html><body style="font-size:32px; line-height:32px;"> <?php // set color $colors = array("red", "blue", "yellow", "green", "black"); // draw 16x16 for ($i = 0; $i < 256; $i++){ $r = rand(0, count($colors)-1); $c = $colors[$r]; echo "<span style='color:$c'>■</span>"; if ($i % 16 == 15) echo "<br>"; } ?></body></html>
usortで安定ソート
$data = [ ['name'=>'Arai', 'score'=>30], ['name'=>'Inoue', 'score'=>40], ['name'=>'Utada', 'score'=>30], ['name'=>'Okuda', 'score'=>40], ['name'=>'Kato', 'score'=>23] ]; // record for ($i = 0; $i < count($data); i++){ $data[$i]["id"] = $i + 1; } usort($data, function($a, $b){ if ($a['score'] == $b['score']){ return ($a['id'] > $b['id']) ? 1 : -1; }); foreach ($data as $u){ echo $u['id'].":".$u['name'].":".$u['score']."\n"; }
usort()関数
// setting data $arr = [ ['name']=>'Kan', 'point'=>4], ['name']=>'Kenji', 'point'=>5], ['name']=>'Akai', 'point'=>3], ['name']=>'Genta', 'point'=>4], ['name']=>'Shizuka', 'point'=>8], ]; $point_cmp = function ($a, $b) { return ($a['point'] < $b['point']) ? -1 : 1; }; usort($arr, $point_cmp); //result foreach ($arr as $u) { echo $u['name'].":".$u['point']."\n"; }
クイックソート
// quick sort function quick_sort(&$arr){ if (count($arr) < 2) return $arr; $left = $right = array(); $pivot = array_shift($arr); foreach ($arr as $v) { if ($v < $pivot){ $left[] = $v; } else { right[] = $v; } } quick_sort($left); quick_sort($right); $arr = array_merge($left, array($pivot), $right); } $arr = array(1,100,24,40,12,4); quick_sort($arr); echo implode(', ', $arr)."\n";
マージンソート
コムソート
1 || $swap){ if ($gap > 1) { $gap = floor($gap / 1.25); if ($gap == 9 || $gap == 10) $gap = 11; } $swap = false; $i = 0; while($i + $gap < size) { if ($arr[$i] > $arr[$i + $gap]){ $tmp = $arr[$i]; $arr[$i] = $arr[$i + $gap]; $arr[$i + $gap] = $tmp; $swap = true; } $i++; } } } } $arr = array(100, 3, 30, 20, 44, 32); comb_sort($arr); echo implode(", ", $arr)."\n"
PHP-Console-Color
isSupported()) { echo "did not support color\n"; exit; } if (!$ccolor->isSupported()){ echo "did not support color\n"; exit; } if (!$ccolor->are256ColorsSupported()){ echo "did not support 256 color mode\n"; exit; } // write name space class name --- $con = new JakubOnderka\PhpConsoleColor\ConsoleColor(); // display stye which is supported foreach ($ccolor->getPossibleStyles() as $i => $style){ echo "[".$ccolor->apply($style, $style)."]"; } for ($i = 1; $i <= 255; $i++){ echo $con->apply("color_$i","*"); echo $con->apply("bg_color_$i","*"); } echo "\n";
JS example
const thingShadow = require('./thing'); const isUndefined = require('./common/lib/is-undefined'); const cmdLineProcess = require('./examples/lib/cmdline'); function processTest( args, argsRemaining ){ if(isUndefined( args.thingName )){ console.log( 'thing name must be specified with --thing-name'); process.exit(1); } const thingShadows = thingShadow({ keyPath: args.privateKey, cerPath: args.clientCert, caPath: args.caCert, clientId: args.clientId, region:args.region, reconnectPeriod: args.recconectPeriod, }); thingShadows.on('connect',function(){ console.log('connected to things instance, registering thing name'); thingShadows.register( args.thingName, { persistentSubscribe: true }); }); thingShadows.on('close', function() { thingShadows.unregister( args.thingName ); console.log('close'); }); thingShadow.on('reconnect', function() { thingShadows.register( args.thingName, { persistentSubscribe: true }); console.log('offline'); }); thingShadows.on('error', function(error){ console.log('error', error); }); thingShadows.on('delta', function(thingName, stateObject){ console.log('received delta on '+thingName+':'+ JSON.stringify(stateObject)); thingShadows.update( thingName, { state: { reported: stateObject.state }}); }); thingShadows.on('timeout', function(thingName, clientToken){ console.warn('timeout: '+thingName); }); } module.exports = cmLineProcess; if (require.main === module){ cmdLineProcess('connect to the AWS IoT service and perform thing shadow sample', process.argv.slice(2), processTest, '', true) }
confirm JSON file
gzcat ~/Download/xxx(cut) -xx-part-0001.gz | jq '.' | less { "event_type": "ApplicationStart", "event_timestamp": 1446391243721, "arrival_timestamp":1446442595071, "event_version": "3.0", "application":{ "app_id": "", "cognito_identity_pool_id": "us-east-1: ", "package_name":"net.nowtom.Share", "sdk":{ "name":"aws-sdk-iOS", "version":"2.3.4" }, "title":"Unknown", "version_name":"1", "version_code":"1.0" }, "client":{ "client_id":" ", "cognito_id":"us-east-1: " }, }