K2さんの雑記
2003-05-03(Sat) ごーるでんうぃーく3日目■ え、もう3日目うーん。早い。昨日はビールを2本飲んだら、それだけでへべれけで、野球もないし、8時頃に寝ちゃった。起きたら8時前だった(^^; ■ TTBaseオープンソース化おばけさんにまがりさせてもらって、TTBaseオープンソース化計画準備委員会のページを立ち上げました。参加してくださる方は、あちらに参加表明をお願いします。 本日のツッコミ(全2件) [ツッコミを入れる]
2005-05-03(Tue)■ GW休出2日目今日の仕事で、一応自分でできるところはすべてやってしまった。後は人の仕事待ちとか人に聞いたり人に頼んだりしなければいけない仕事。なので、本当は明日も休出予定だったのだが、やめ。 [ツッコミを入れる]
2014-05-03(Sat)■ [本]フロー体験 喜びの現象学
集中して物事を行うと、生産性は上がる。 自分にも特別に集中している時間があったという経験はしていて、たとえば設計作業をやっているときとか、特別な本を読んでいるときとか、そういうときにはアウトプットの質と量が格段に違うと感じていた。 そういうのをフロー状態と呼んでいるというのを、ライフハック的なページで読んだかで知っていた。先日ちょっとしたきっかけで、フロー状態についての本を読もうと思った。それで、調べてみると、ミハイ・チクセントミハイのこの本がどうやら原本であり、購入して読んでみた。 もっと手法的なことが主になる本だと思っていたのだが、いやはや、これは一種の哲学書だな。読んでみると物事や世界の見方が変わるような予感がする。 内容的には、以下のページがまとまっていてよい。 本書の内容があまりにも幅広く、ちょっと要約とかを上記のページ以上に書く気が起きないので、とりあえずここまで。 2回通読の後、3回目に入ってしまった。 [ツッコミを入れる]
2016-05-03(Tue)■ サーバー更新2台の3TBのHDDをGPTでフォーマットした後、前の1TBからデータをすべてコピーし(約900GB)、その後、ARAID99-2000にセット。 ここで3TB認識されるかどうか不安だったが、無事認識。 その後、もう一台のHDDをセカンダリースロットに突っ込み、リビルドを開始。これで1日ほど待てば、RAID1として動作できるはず。 PCの筐体は20年選手。ARAID99-2000も約10年選手。筐体はちょっとでかいけど、買い換えるところまではいかず。 PS(5/4)
PS2(5/4) 前面パネルのBuzzerスイッチをいじっていたら、SEC側がOFFになってしまって、またリビルドが0%から始まってしまった。DafaultモードとSingleモードを切り替えるスライドスイッチに手があたってしまったかも。もしかしたら、スイッチの接触が悪くなっているのかもしれない。 [ツッコミを入れる]
2017-05-03(Wed)■ Pythonちょっとpythonやってみよぅかなと思って、Anacondaを入れてぼちぼちやってます。インタープリタモードで一通り打ち込んだ後、ソースファイルを作ろうと思ってK2Editorを使ったら、「そういやぁ、Pythonの定義ファイルなんて作ってなかったなぁ。定義ファイルひたすら作ってた時って、もうPythonあったっけ?」てなことになって、さて困った。まぁ色分けなんてなくてもいいっちゃぁいいのだけど、やっぱテンション下がります。 いやぁ、しかし今でもK2Editorを使ってくださっている人々は作者以外にもいるんですね。ちゃんとPython設定を作り込んでくれている方がいました。ありがたく使わせていただきます。 ちなみに、仕事場も家もWindows10になりましたが、K2Editor/TaskPrize/プリン/TTBaseとも現役です。(TTBaseはコミュニティでみなさんやってくださってそうなので安心です) ちなみに(2)、Pythonはメジャーになった2.0系は2000年に出ていると言うことで、K2Editorの開発とかぶっていると言えばかぶってます。当時の私はひたすらRuby派だったし、言語オタクという感じでもなかったので、Pythonについてはあまりよく知りませんでした。 ■ UTF-8固定でK2Editorを使うPythonのソースファイルはUTF-8を使う必要あり。 K2Editorを.pyファイルに割り付けたが、毎回SJISからUTF-8に変更するのは面倒だし忘れるので、なんか文字コード固定する方法あったよなぁと、過去の記憶をたどる。 起動オプションを/o8としてK2Editorを起動すれば、UTF-8モード固定になるので、これを使って.pyに関連付けできればよい。K2E.exeをコピーしてK2EU8.exeにリネーム。K2EU8.optファイルを作って、一行目に/o8と書いて保存。これで、K2EU8.exeを起動すればUTF-8に固定されるので、関連付けをK2EU8.exeに変更した。 本当は、ファイルタイプ別の設定でさくっと設定できれば一番よいのだけどね。修正してほしい。作者誰だっけ(笑) ■ [本]ゼロから作るDeep Learningちょっと人工知能に関わることもありそうなので、Pythonも勉強できるしちょうどいいなぁとこの本を購入して、PC片手に読み始めた。
まだPython使えるようにしたところだけど。 この前に、基礎知識として以下の本もさっと読みました。
[ツッコミを入れる]
2018-05-03(Thu)■ そういうわけで、JavaScript昨日の、Google Maps JavaScript API使用を業務で使おうと思うのだが、今まで全くJavaScriptにさわったことがなかったので、このGWを利用してJavaScriptを勉強してやろうと思った。 テキストは、改訂新版JAVASCRIPT本格入門。Kindle版を購入。 電子書籍を読みながらコーディングするのは、ディスプレイが2枚あると簡単なんだが、ノートPCのみの場合は、iPad miniの出番。iPad miniで書籍を読んで、ノートPCでコーディングする。 本日の勉強部屋はスタバ。 letとvarの違いES2015から追加された変数宣言のためのletは、varと以下の点で違う。
すぐ忘れてしまうので、メモ。 JavaScriptでは、連想配列と「オブジェクト」が同じ?「オブジェクト」は多くの言語では、最も基本になるクラスに与えられる名称であることが多いが、JavaScriptの場合は、連想配列を「オブジェクト」と呼ぶようだ。 教科書にはNoteとして同じであることが示されているが、理由までは書いてない。うまく「オブジェクト」と連想配列という言葉がつながらない。違和感しかない。 おまけに!、連想配列の個々のデータは、「プロパティ」、このプロパティが関数の場合(関数も格納することができる)、特別に「メソッド」と呼ぶらしい! ということは、連想配列が「クラス」に近い言葉として定義されていると言うことなのだろうか。 もうちょっと学ぶと合点がいくかもしれないので、このまま進めます。 追記アクセス方法で、通常 obj['x'] としてアクセスするのは自然だが、JavaScriptの場合は、同様に、 obj.x でアクセスできるらしい。 ああ、これはオブジェクトだな。ちょっと合点した。 追記2読み進めると、 var today = new Date(); のコードで、todayがオブジェクトである意味の記述が教科書本文に出てきた。 ここでまた混乱。 このコードは、他の言語ではクラス生成してインスタンスをtodayに入力するものだが、JavaScriptの場合は、オブジェクトは連想配列だと習った。とすると、new Date()という記述は、連想配列を作成するという意味なのだろうか…… 読み進めよう。 インクリメント・デクリメント演算子はあり前置演算と後置演算の区別もあり。最近の言語では珍しい?(そもそも最近の言語ではないのか……) 等価判定は===イコールを3つ重ねる演算子は始めて見た。 追記==も等価演算子。しかしながら、両辺のデータ型が違う場合は、数値(文字列や論理型)や基本型(オブジェクトの場合)に変換して比較する。両辺とも参照型の場合は、参照先が等しいかどうかを判定する。 ===は、データ型も同じ場合にtrueになるより厳密な等価演算子。 ==は、無理矢理型変換をして比較をするので、バグを生みやすい。 教科書ではできるだけ===を使うように記述されている。 数値やundefinedなどの論理値0やNaN、""、null、undefinedはfalse、それ以外はtrueと見なされる。最近の言語ではちょっと違和感がある実装? and、orの際の短絡演算false && Aや、true || Aの場合、Aを実行する前に結果が確定しているから、Aは実行されない。C言語等ではおなじみ。 時代背景からか、C言語に近い実装が多いね。 使用例として、 var msg = ''; msg = msg || 'Default String.'; という例が紹介されている。msgが空文字の時に、"Default String."を代入するというものだが、これはあまり感心できないな。テクニックとしてはわかるけど、もう少しわかりやすく書くべき。 switch文はC言語仕様とほぼ同じ今や他の言語では見ることがなくなったbreak文が必要なcase句。使い方によっては便利だが、わかりにくくなるデメリットの方が大きいので、現在ではこのような仕様を持つsiwtch-case文は他の言語には見られない。 配列要素をfor文で列挙する場合for ... inは、連想配列の場合だけに使う。配列では副作用があるので、推奨されていない。 また、通常のfor文で列挙する場合も、毎回配列のlengthプロパティ(メソッド?)にアクセスするとレガシーブラウザの場合は性能が劣化するため、以下のように初期化ブロックで変数に取り出しておくのが推奨されている。 var data = ['apple', 'orange', 'banana']; for (var i = 0, len = data.length; i < len; i++) { console.log(data[i]; } または、for ... of文で、値を列挙する。(ただしES2015以降) for(var value of data) { console.log(value); } ラベル構文必要悪なラベルジャンプ的なものもある。ただしgotoよりもさらにややこしい。 kuku: for(var i = 1; i < 10; i++) { for (var j = 1; j < 10; j++) { var k = i * j; if (k > 30) break kuku; document.write(k + ' '); } document.write('<br />'); } break文で、2重forループの外に脱出する例だが、ラベルは先頭にあり、このラベルは外側のforループを装飾しているという解釈となる。 これはややこしく美しくない言語仕様だと感じる。使うことはほとんどないだろう。 ■ html記述で間違えた場合、ブラウザはエラーを返してくれないの?例をこなしていくときに、JavaScriptが動かない場合はあった。特にブラウザはエラーも吐かないし、よくわからなくて、htmlをよく見ると、 <script type="text/jacascript" src="scripts/foo.js"></script> ^^^ とミスタイプしていた。 Chromeのデベロッパーツールでもエラーは吐いてくれないし、気づくのに時間がかかってしまった。エラーを吐いてもらう方法を見つけられていないだけなのかな? ■ Visual Studio Codeの上書きモードJavaScriptのコーディングには、Visual Studio Codeを使用している。コードの自動補完などの機能が多彩。 コードを入力していて、繰り返しで文字を変更したいシチュエーションに出くわした。 console.log(x0); console.log(x1); console.log(x2); console.log(x3); console.log(x4); console.log(x5); console.log(x6); console.log(x7); これを入力する場合、最初の行を入力、コピーペーストで8行作って、上から0を1,2,3,4……と変換していくということをよくしますよね。その際には、上書きモードを使って上書きしていく方が、入力が早くできます。 で、Insertキーを押してみたが、上書きモードに切り替わらない。 え、上書きモードがないの?と、仕方がないのでBSを押しながら全部書き換えた。 ふと、キーバインドされてないだけであるのでは?とぐぐってみると、拡張機能で上書きモードがインストールできるようだ(拡張機能:overtype)。不用意に押してしまう人がいるので、デフォルトではインストールされていないらしい。 無事、上書きモードが使えるようになりました。 ■ 疲れたので本日は終わり改訂新版JAVASCRIPT本格入門という本ですが、非常に丁寧に説明されていて、不明な箇所がほとんど無く、よい本です。私にとっては全く難しくはなかったのですが、プログラミング言語初挑戦の人には難しいかもしれません(といってもK&Rが最初の本という人も多かったと思うので、それに比べれば1/10くらいとっつきやすいと思います)。 コードを打ち込みながら、約30%進みました。 Kindle版もレイアウトがよいので、非常に読みやすいです。 [ツッコミを入れる]
1965|09|
|
//
自己紹介
自己紹介
広告
計るだけダイエット
つっこみリスト
TrackBacks
日記仲間
な/
す/
ひ/
最近の日記
|
◆ nao [TTBaseオープンソース化..か。前からソースは見てるので(^^;特に新しい事のような気がしない。参加表明は..ど..]
◆ K2 [変更したい人が変更できるような環境にしたいだけだから、あんまり肩肘張らなくてもいいんじゃないかな。リリースの管理だけ..]