Posts

【日記】ハッカーと画家を読んで

  • POST
今日はAmazonで注文したあれこれが届いた。 そして先日購入したハッカーと画家を読み始めた。 ハッカーと画家を読んで 現在3章を読んでいる。 1章の「なぜオタクはもてないか」には、 現代人が生きていく上、特に中学までに知っておけば人生がガラリと変わっていたかもしれない、真理が書いてあった。 虐めにあい、自殺を考えている様々な子供達を社会に羽ばたかせる事が出来るかもしれない。 でも、30に到達してようやく「人は万物において行った分しか成長出来ない」事を知ったからこの章の価値がわかるだけなのかもしれない… 2章の「ハッカーと画家」は少し説明しづらい。 ハッカーはエンジニアとも、科学者とも異なるという事が書かれていた。 ハッカーがどのように生きていくべきかの指標が描かれているようだ。 3章からはどんどんハッカーとは何かに迫っていく模様。 明日も使って読破したい。 Amazon で注文したあれこれ ブックスタンド 電動リクライニングベッド USB PD対応のUSB充電ハブ 午前中はリクライニングベッドの組み立てを行った。 同僚に教わったブックスタンドは超絶便利だった。 昼からは昼食、ゲームをしてだらけてしまったが…

【日記】Gauche の勉強の進捗+その他

  • POST
今日は仕事を少し早く上がらせてもらって、 ヨドバシでケーブルを購入して帰宅した。 帰りにポストを見ると注文していた「プログラミングGauche」が届いていたので、早速勉強開始。 今日の成果 20P 4章1.1まで読んだ。 全体は460P以上もあるので続くかどうか少し心配ではある。 LISPの起源やS式、機能を取り込みファットになったCommon LISPと、 ライブラリがあんだろ知らねえよ勝手に作れを維持したSchemeに別れたあたり。 2〜3章はGaucheの特徴、設計思想や誕生の背景等が記載してあった。 Gaucheはフランス語で左、少しぐらいは正しくなくてもいいからゆるくやろうぜ的な意味が込められているとか・・・ その他 朝痛感したけど、起きた瞬間ベッドにテーブルが付いているのは素敵。 作業がはかどりすぎてやばい、廃人ぶりもはかどりそうでやばい。 …というわけで、誘惑には勝てず電動リクライニングベッドを通販で購入。 お値段は3万だった。 日曜日に購入した入門用万年筆のkakunoを使ってみた。 ボールペンとは一線を画すかき心地はやばい… 一応従来のボールペンとしてJetstreamはあると安心だが、他は全てこれで統一してしまってもいいかも。 ヨドバシでLISPの別の本と、USB-TypeCのケーブルを購入… ケーブルは2mのものを購入したが少し短いと感じる。 明日3mのケーブルと交換出来ないか聞いてみたい。

【日記】Gauche の勉強の進捗+その他

  • POST
今日はGaucheの勉強と買い物、掃除等を行った。 新言語ということでどんどん日記を書き出していこうと思う。 元々のプログラミング言語に対する考え 元々プログラミング言語は適材適所である。 Linuxのコア機能として作られている最速の高級言語であるC言語があるが、 低機能であったり、文法が未成熟でバグが出やすい仕様であったり、 メモリやポインタの事を常に意識する必要がある。 昔はPCのスペックが悪く、より低階層に触れる実行効率の良い言語である必要があったが、昨今ではその問題が解消してきた。 Ruby や Python 、Scala 等の良い言語の登場により、格段に読みやすくなり、バグも出づらくなったと感じる。 もちろん私が職場で使っている LiveScript もその一つで、PHPした知らなかった自分の世界が大きく広がったきっかけとなった。 これからの世界は多少実行効率を犠牲にしても、 可読性やバグの少なさ、シンプルさ…等の要素の強い言語に置き換わっていくだろう。 先日まではこのように考えていた。 Scheme / Gauche と出会ったきっかけ 知人が LISP にハマった。 彼が言うには、世の中のハッカー達は LISP で仕事をしているらしい。 LISP のマクロを組み、Java のコード等に置き換えてそれを納品しているというのだ。 それほどまでに簡潔で美しい関数型言語があるとのこと。 詳しく話を聞くと、その中でも Scheme の Gauche を使い出したと聞く。 軽く調べた感じでは、Common LISP や Clojure と並ぶ三大LISPの一つ(自分の勝手な感想です)らしい。 Common LISP は実装を拡張してきた経緯からごちゃごちゃしている箇所もあるらしく、 新しく始めるなら Scheme や Clojure がお勧めらしい。 自分も友人も Java や JVM にはさっぱり興味がないので、必然的に Scheme を選択という流れだ。 とりあえず REPL を入れると勉強が捗ると教わり、 Gauche というREPLをインストールした。 Macbookに入れるのは一瞬だった。 brew install gauche echo '(print (list->string (reverse (string->list "アルゴリズム"))))' | gosh ムズリゴルア ああ、これは簡潔で美しい言語だ。 一発で LISP や Scheme の持つ魅力に取り憑かれてしまった。

【働クリッカー】0.25秒達成

  • POST
試行錯誤の結果 何回かやって得られた感想を箇条書き start関数を叩くまでタイムがスタートしない 初期処理のコストは実質0 関数や変数等の準備を十分行ってから望む事が出来る cash、items、pricesは単なる変数に思えるが上書きできない ES6で実装されたgetterを使っているものと思われる 本気でハックすれば突破出来る?…多分不可能なのだろう 用意されているloop関数は超絶遅い 2番目の引数がms単位でsetIntervalと同じ作りだと思われる 製作者が発表している0.8sですら、1msに1度しか実行できないloop関数では800回程度しか実行出来ない 800回のwork()で1億とか到底無理で、関数内でfor文を回して1000回程度のwork()を叩きまくる糞関数を定義することになる つか、それがまかりとおるなら最初からfor文で回せばよくね? 1秒以内に何万とwork()関数を実行する為、shikakuとprogramming以外は取る必要無し if文は遅い 条件判定式自体のコストはそれほどではないのだが、何万work()を実行する事になるのでその度に調査していては無駄。 for、whileと様々なループ文を試してみたが、再帰関数が最速なようだ あくまでElectronで使われているV8のエンジン固有の話だと思われる これが多分最速だと思います うちの環境(MacbookPro Retina13インチ)で0.24秒をマークした。 works_num = function(num) { return function(){ for (var i = 0; i < num; i++) { work(); } } }; shikaku = function shikakutore(it, works, loop){ return function(){ for (var i = 0; i < loop; i++) { works(); purchase(it); } }; }; shikaku_tore = shikaku(0, works_num(20), 25); program_tore = shikaku(4, works_num(500), 1); hatarake = (function(){ function hatarake(){ shikaku_tore(); program_tore(); cash < 100000000 ?

【ConoHa】APIからデフォルトのイメージ一覧を取得する

  • POST
※本投稿は調査段階のメモ書きです 何処で取れるのか? イメージ一覧取得(nova) - Compute Service https://www.conoha.jp/docs/compute-get_images_list.html ログインしてトークンを受け取っていないと使えない ログインしなくてもアクセス出来そうな情報ではあるのだが… $ curl https://compute.tyo1.conoha.io/v2/1864e71d2deb46f6b47526b69c65a45d/images Authentication required 今やろうとしてること 仕事であちこちのブランチをちょこちょこ弄るのに苦戦中。 これを解決するために、ConoHaのインスタンスを複数作って臨機応変に対応出来るようにしたい。 利用予定の技術 これらを駆使してインスタンスを好きな時に生やせる仕組みを作る BitBucket ConoHa API Vagrant Ansible 進捗 VagrantでConoHaのインスタンスを作成する際、正確なプラン名、イメージ名が必要になる。 しかし、公式のAPIを眺めても理解出来なかったので、結局ググッて他のサイトからどのAPIが該当するのか調べる事になった。 というのも、イメージと一言に言っても今回の目的であるテンプレートのイメージの他に、ユーザーが登録したISOイメージ、スナップショット等がありどれが対象かは一目で分かりづらい。 最終的にはコマンドラインツール化等もしていきたいので、手早くしないとね…