数学やりなおし(0)
機械学習で出てくる数式を理解したい
機械学習に一歩踏み込むと、必ず数式が出ます。高校生のときに数学ⅢCまで学んだものの、記憶はゼロで数式が出てきた途端ホワイトアウトしてしまうのが常でした。数年まえから縁あって、線形代数の勉強会や高校数学の勉強会に出席させていただいているうちにまた数学への興味が出てきました。これを機にPRMLに出てくる数式が分かるようになるまで頑張ります。
投稿理由は心が折れないために
今回はまた1年ほどブランクがあるため、基礎からやり直します。独学なので、心が折れないようにここに進捗を投稿していこうと思います。
私の前提数学
数Ⅰ、Ⅱ、A、Bは多分覚えています。
数Ⅲ、Cはやばいです。
SHIROBAKO adventar ~どんどんLED~
SHIROBAKOのadventarに参加させてもらいました!!!
SHIROBAKOとわたし
SHIROBAKO、言わずと知れた2015年神アニメです。モノづくりに関係した仕事であれば、他人事ではないあるあるの話がたくさんでてきて・・涙なしには見れません。主人公の成長を通して、自分の過去も顧みたりしてとても感慨深いアニメです。
木下監督は理想のプロダクトオーナーだなあ
最終的に良いプロダクトを完成させている点、納期に間に合っている点においてSHIROBAKOのチームは本当にいいチームだと思います。得に私はいつも思いますが監督と一緒に働きたいなあと思ってます。自分の理想をガンとして持っていて(時にはそれがめんどくさいこともあるけど)主張してくれる、そういう人の意見をヒアリングしながら、マッシュアップしていくような職場が理想。なかなか監督はレアな存在ですよね!
で、何をやるか・・ネタは?
POV(LEDの残像で文字を表示するやつです)作ってで"ドンドン" って表示させて、ドーナツ!2015お疲れ様でしたー!って占めたかったんですよ。個人的に2015年はArduinoにはまった年だったので、それを使ってやりたかった。
万策つきたぁーーー。IDEのバージョン上げたらAVR書き込みができなくなった。
いまもう14日ですよ!ArduinoIDEのバージョンを、最近他の基盤(ESP8266)で開発をするために上げたんです。1.0.5系 -> 1.6系に。そしたら!Atmega328に書き込みができなくなって今ですよ。もうね今日は解決できないです。インフルエンザでちょと熱が高いんです。ふんだり蹴ったりです。しかし、配線もPOVのプログラムを作り終わっているのでそれをアップして、後は熱が下がり次第ということで許してください。ごめんなさい。
配線
Arduino互換であるAtmega328を使ったArduino互換機を使って開発してます。
LEDはI/Oピン6~13の8本を使います。
材料はこれです。
Arduino互換と、LED8個、抵抗8本です。
配線後は以下です。LEDをそれぞれIOピンに抵抗を介したうえで接続してあげます。
POVのプログラム
ダイナミック点灯(常時点灯していると電池消費がすごいので、切り替えを高速でやる手法)を使ってます^-^!基本的にdelayは予期しない動きになって非常に悲しい事態に陥ることがあるので、sleep目的ではTimeroneを使います。当プログラムをIDE上でコンパイルするにはTimeroneのヘッダファイルが必要です。
#include <TimerOne.h> // common var // leds int leds[] = {6, 7, 8, 9, 10, 11, 12, 13}; #define NUMBER_OF_LEDS (sizeof(leds)/sizeof(int)) // menu unsigned long led = 0; // wait unsigned long start = 0; unsigned long now = 0; unsigned long elapsed = 0; // pov unsigned char pos = 0; unsigned char i = 0; // led #define TIMER_US 100 // ScanRate (Duration of one LED period) 100mS = uS 100000 //unsigned long frames = 0; // ++ on every 'frame' of the LED bar volatile bool LSTATE[8]; // Desired state for each LED (can use 0 / 1 or LOW / HIGH) volatile int LDRAW = 0; // Which LED are we 'drawing' right now? //Standard Millis timers //const long interval = 1000; // interval at which to blink (milliseconds) void setup() { // LED 6,7,8,9,10,11,12,13 for (led=0; led<NUMBER_OF_LEDS; led++) { pinMode(leds[led], OUTPUT); } // led Timer1.initialize(TIMER_US); // Initialise timer 1 Timer1.attachInterrupt( timerIsr ); // attach the ISR routine here } // -------------------------- // timerIsr() 1x milli second interrupt ISR() // Called every time the hardware timer 1 times out. // -------------------------- void timerIsr() { noInterrupts(); // temporarilly disable interrupts digitalWrite(leds[LDRAW], LOW); // turn the current LED off LDRAW++; // move to the next.. if (LDRAW >= NUMBER_OF_LEDS){ // reset to zero if necessary LDRAW = 0; //frames++; LSTATE[7] = LOW; } digitalWrite( leds[LDRAW], LSTATE[LDRAW]); // set new current LED state interrupts(); // restart interrupts } // get out of the ISR ASAP void loop(){ pov(); } // !!notice!! mydelay can not user inside interrput. void myDelay(unsigned long ms) { // ms: duration // start: timestamp start = millis(); for (;;) { // now: timestamp now = millis(); // elapsed: duration elapsed = now - start; if (elapsed >= ms) return; } } // led //----------------------------- //----------- common // all off void led_off() { byte bitmap_led_off[] = { 0b00000000 }; led_flash_by_order_arry(bitmap_led_off, sizeof(bitmap_led_off)/sizeof(byte),400); } // 指定されている配列のみHIGHにして、あとはLOWにする void led_flash_by_order_arry(byte *array_order, int bitmap_size, unsigned long ms) { // first byte big array for(i=0; i<bitmap_size; i++){ start = millis(); for(;;) { now = millis(); for(led=0;led<NUMBER_OF_LEDS;led++) { LSTATE[led] = (array_order[i]>>led)&0b00000001 ? 1 : 0; } // check system timer elapsed = now - start; if (elapsed >= ms) break; } } } void pov(){ // pov byte bitmap_pov[] = { 0b00000000, 0b11111110, 0b00010000, 0b00010010, 0b00010100, 0b00000010, 0b00000100, 0b00000000, 0b00010000, 0b00010000, 0b10010000, 0b10000000, 0b01000000, 0b00111110, 0b00000000 }; led_flash_by_order_arry(bitmap_pov, sizeof(bitmap_pov)/sizeof(byte),5); }
来年は・・
もっと体力つけたいです。
mysqlのタイムゾーンがUTCでapplication.rbのconfig.time_zone=localの場合、date/datetimeをgroupするとタイムゾーンがUTC使われる件
Model.group("date(convert_tz(created_at,'UTC','[your_time_zone]'))").countをやったときに
configに設定しているtime_zoneではなくてUTCで帰ってくる。
対応↓
mysqlで、タイムゾーンの設定が読み込まれているか確認する
↓NULLが返ってきたら読み込む作業を行う必要がある
mysql> select convert_tz(now(), 'UTC', 'Asia/Tokyo'));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
convert_tz(now(), 'UTC', 'JST') |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
NULL |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
mysql> select convert_tz(now(), 'UTC', 'Asia/Tokyo');
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
convert_tz(now(), 'UTC', 'Asia/Tokyo') |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2015-06-30 22:28:22 |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1 row in set (0.00 sec)
読み込み作業
convert_tzがnilを返してくる場合shellコマンドラインで、実行
MySQL :: MySQL 5.5 Reference Manual :: 10.6 MySQL Server Time Zone Support
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
warningが出て、そのwarningがでたtime_zoneが必要な場合は要調査。
使わないtime_zoneのwarningなら無視でOK
以下でNULL以外が帰れば、OKconvert_tzが使える。
mysql> select convert_tz(now(), 'UTC', 'Asia/Tokyo');
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
convert_tz(now(), 'UTC', 'Asia/Tokyo') |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2015-06-30 22:28:22 |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1 row in set (0.00 sec)
↓ありがとうございましたstackoverflow.com
弥生会計H14で、サポート入っていない+心当たりがない「事業所データが見つかりませんでした」が発生した場合
死ぬかとオモタ。
事業所データがふっとんだかと思った;;
サポート入っていないと全く対応してもらえないことに注意する。
ちなみに、事業所データを自分で削除してしまった場合はこの手順では復旧できません。
バックアップからの復旧を試みてください。
以下の手順は、動作OSがWindows Serverの場合です。またSQL Serverを使っているバージョンH11以降でないと対応できません。
1) SQL Serverのログを見よう。以下フォルダあたりに。
D:\YHDB\MSSQL.1\MSSQL\LOG\
2) エラーログがあればこの手順は有効
3) スタート->SQL Server構成マネージャ
4) YAYOIのSQL Serverを再起動する
直った・・・・。
確定はできないが、OS再起動時にSQL Serverとの通信がうまく出来なくなってしまった模様だ。
コネクションでエラーが出ていた。
SQL Server等を見れないと解決できないエラー。。。
なんというか、エンジニア以外が対応するのは無理だろうなあ。
サポート入っていないと全くサポート受けられないのはつらい
サポートの金額が、ソフトウェアと同値なのもつらい
法改正のたびに有料で買いなおす必要があるのもつらい。特に消費税回り・・・!
はー。恐ろしすぎた。