サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
www.todesking.com
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure $ openssl s_client -connect d1lto7any9tcj3.cloudfront.net:443 -debug CONNECTED(00000003) write to 0x7fad93d087e0 [0x7fad94007000] (130 bytes => 130 (0x82)) 0000 - 80 80 01 03 01 00 57 00-00 00 20 00 00 39 00 00 ......W... ..9.. 0010 - 38 00 00 35 00 00 16 00-00 13 00 00 0a 07 00 c0 8..5............ 0020 - 00 00 33 00 00 3
前回切断したのはじつに2007年のことで、そのモチベーションなどについてはこちらに発表資料がある。 さて近年ErgoDoxの普及などで分割キーボードに注目が集まっており、個人的にも作業姿勢(スタンディングデスク使用)との兼ね合いから興味があり、よしとりあえずその辺のキーボードを買ってきて切ろうという勢いが出てきたのでProgress Touch Retroと糸鋸などが購入された。 これがProgress Touch Retroです。ヨドバシ店舗で「USB接続、テンキーレス、US配列、黒軸」という条件のキーボードが発見できなかったのでテンキーありのものを買った。 キーボードにおいては2016年もこのようなことが度々発生するため、DIYの必要性は未だ存在する。 背景がスポーツ新聞なのはコンビニにそれしかなかったからです。皆さんは本当にどうでもいいことを気にする。 開封の儀 基盤は二層。ベタGN
Mac用の小型外付けトラックパッドがほしくて、しかし市販品が2種類(Apple Magic Trackpad, Logicool t651)しかなくてどちらもクソでかいという現状があり、MacBookの部品で自作できたらいいなというのがモチベーションです。 とりあえずebayでGENUINE APPLE MACBOOK AIR A1465 11” MID 2013 TRACK PAD 923-0429買った。 MacBookの部品を使用した外付けトラックパッド自作には前例があり、以下のページで紹介されてます。 Macbook pro trackpad conversion - bounav.free.fr MacBook TrackPad USB化計画 - Gm7add9 これらの資料によれば2008年くらいまでのモデルのトラックパッドはUSBインタフェースを内蔵しているため改造が容易、そ
あらすじ 入力デバイス配置の都合上、 超小型のL字型Micr USBコネクタ付きケーブルがないと困るということとなったが入手できなかったので自作した。 詳細 とりあえず剥く 不要な部分をガンガン切ってから適切に配線する。電源用途なのでデータ線省略できて楽。 ホットボンドで固める。ホットボンド最高!!(強度はない) 使用風景。あまりにコンパクトすぎて何がなんだかわからん状態となった。通常のコネクタ使うとキーボードとトラックパッドの間が2センチ以上空きます。 以上です。良かったですね。 5年前にもMicroじゃないUSBで同じことやってたのを思い出した
// jQueryでHTMLエスケープする例 function escape(content) { return $('<div />').text(content).html() }
todesking/nyandoc Javadoc/Scaladocのhtmlをmarkdownに変換するコマンドを作りました。便利です。 scala-libraryの変換済みアーカイブも提供してます: http://todesking.github.io/nyandoc/scala-docs-markdown-2.11.5.zip
KeyNoteでスライド作ってると、シンタクスハイライトしたコードを貼りたくなることがあるのですが、Vimでやろうとすると非常に厄介。 選択領域のHTML化自体は:TOhtmlコマンドで可能 HTMLをそのままKeyNoteにコピペするとプレインテキスト扱いになる 生成されたHTMLをファイルに保存→Safariで開く→コピペ という手順を踏むことで貼り付け可能 あまりにもつらいので調査したところ、textutilとpbcopyコマンド(どちらもMac標準だと思います)を組み合わせることで解決することがわかった。 copy_html.vim " 選択領域(またはファイル全体)のハイライトをHTML化→rtf化してクリップボードにコピーするコマンド command! -nargs=0 -range=% CopyHtml call s:copy_html() function! s:copy_
コンパイラ型言語において、動的に生成した処理を実行したいという状況がある。例えば、 言語処理系 DBに格納された複雑な条件を元にしたフィルタ処理 遺伝的プログラミング Javaには以前からJavaScriptエンジン(Rhino)が同梱されていたが、Java 8からはNashornと呼ばれる高速化されたエンジンになった。従来よりも圧倒的に速いらしいので、動的コード生成が必要な場所で使えるかどうか、パフォーマンス特性について調べてみた。 結論としては、 関数の実行速度は超高速。Scalaでナイーブに実装したインタプリタより速い。 かわりに関数定義が遅い(すごく) 動的に生成したい処理が小数で、評価回数がすごく多い場合はインタプリタ作るよりもJSに変換してNashornで実行したほうが高速。 関数定義/実行比が大きい場合は、オーバヘッドがあるので自分でインタプリタ書いたほうがいい。 以下詳細。
タイトルがわかりやすい。 環境 Scala 2.11.4 sbt 0.13.6 テストフレームワークはScalaTest使ってます sbtでカバレッジを測定する+COVERALLSに送信する Scalaのカバレッジ測定、scctというのが一般的だったけど、なにか色々あって現在はScoverageという名前になって開発が継続されています。 Scoverageの最新バージョンはScala2.10をサポートしていないので注意しましょう(旧バージョン指定したら動くかも。試してないけど。) 導入は以下の通り。 // project/plugins.sbt resolvers += Classpaths.sbtPluginReleases // sbtでScoverage使えるようにするプラグイン addSbtPlugin("org.scoverage" %% "sbt-scoverage" % "0
プリセットされた設定を使うぶんには問題なかったんだけど、textobj-userで定義したテキストオブジェクトを surroundでも使おうとしたら不可能なことが発覚(削除処理決め打ちでカスタマイズの余地がない)。 どうしたものかと思って調査してたらvim-operator-surroundが良さそうだったので乗り換えた。 基本設定 " surround.vimはアンインストールしておきましょう NeoBundle 'kana/vim-operator-user' NeoBundle 'rhysd/vim-operator-surround' " 公式サンプルだとsa/sd/srだがsurround.vimに合わせた nmap ys <Plug>(operator-surround-append) nmap ds <Plug>(operator-surround-delete) nmap
match式のパターンとしてunapply/unapplySeqが定義されたオブジェクトを指定することで、動作をカスタマイズできる。 参考資料は例によってScala Language Specification Version 2.9(pdf)。ちょっと古いけどこのへんのルールは今も変わってないと思われる。Chapter 8あたり。 引数 メソッド
Scalaのforは構文糖衣なんだけど、書き方に応じてmapやflatMapやforEachに変換されてよくわからないので、ルールをまとめた。 参考資料: Scala Language Specification Version 2.9(pdf)。ちょっと古いけどこのへんのルールは今も変わってないと思われる。 ステップ1 出現する全てのnot irrefutableなパターン部(※)を持つジェネレータp <- eを以下の形に変形する p <- e.withFilter { case p => true; case _ => false } ※not irrefutable: 必ずマッチするとは限らないようなパターンの意。 ステップ2 すべてのfor内包表記が消滅するまで、以下のルールを繰り返し適用する ジェネレータの変換に関するルール パターン: p <- e; if g p <- e.w
RubyはScalaに比べてクソとかいう話ではなく、Scalaから見たRubyの興味深い点のご紹介みたいな趣旨の発表です。発表資料が見にくくて申し訳ございません。 なぜかトリに発表することになった結果、Scalaのイベントで延々とRubyの話をしてる異常者みたいな印象が強化されたけど、私はただ、言語の多様性について皆さんに考えていただこうと…… RubyとScalaの印象についてですが、動的でアジリティとハック性に優れるRubyと、静的で記述性が高くアカデミック要素の強いScalaという感じですね。エコシステムの変化が激しくて、関連フレームワークのアップデートを怠るとすぐ死ぬのはどちらにも共通した特性(そういうのがつらい人はジャバエイトをやるとよい)。 私はJava出身といってもmavenエコシステムに関する知識に乏しかったので、mavenの上に載ってるsbtの依存性管理には悩まされました
Ruby2.2でObject#itselfというメソッドが導入されるとのこと。 group_by等のメソッドで「その要素自身」を返すブロックを渡したいことはたまにあるので、{|x| x} のかわりに&:itselfって書けばいいのは便利ですね。 という記事を読んで、以前同じ動機でgemを作ったことを思い出した。 1_as_identity_function 名前そのままなんだけど、なんと!! &1 で {|x| x} 相当です。便利。
しばらく前ですが、Scalive #1というところでLTしてきました。 Scalaのコンパイルを3倍速くした話 こういう実務寄りのScalaイベントって珍しい気がしますね。なんと発表者が誰もモナドって言わなかった!! その代わりコンパイル速度について言及されまくってましたが……。 3月末からScalaでアドテクやるという会社に転職したのでScalaでアドテクをやってますが、Rubyでソシャゲやるのとそれほど感覚は変わらない。どちらも制限時間付きの大量リクエストをさばく必要があるけど、それなりのインフラがあれば、あとはふつうに高品質なコードを書いて粛々とレスポンスを返すのみですよワハハ。なのでハイパフォーマンスまわりのおもしろい話はできません。まあ常識で設計してふつうに開発すればいいんじゃないの。とか言ってると強い人から殴られそうだな…… 最近は技術的負債の返済を主なミッションとしてビルドシ
で/cores/core.{PID}にコアダンプが出力されるようになる。 なんかcore file size: cannot modify limit: Operation not permittedとか言われて変更できないことがある(参照)けど、どうにかする。 gdbでコアダンプ読む
https://github.com/todesking/is_ascii_capable.mac is_ascii_capableコマンドが0を返したらIME無効、1だったら有効というやつです(IMEまわりのアーキテクチャに明るくないので用語はいいかげん)。ビルドは各自でやってください。 日本語入力と相性の悪いエディタをどうにかするために作ったけど2014年にもなってなんでこのような苦労を……(社会はきびしい)。
参照: http://stackoverflow.com/questions/2348399/why-does-java-net-urls-hashcode-resolve-the-host-to-an-ip 公式ドキュメントによると: public boolean equals(Object obj) … 2 つの URL オブジェクトが等しいのは、同じプロトコルを持ち、同じホストを参照し、ホスト上のポート番号が同じで、ファイルとファイルのフラグメントが同じ場合です。 2 つのホストが等価と見なされるのは、両方のホスト名が同じ IP アドレスに解決されるか、どちらかのホスト名を解決できない場合は、大文字小文字に関係なくホスト名が等しいか、両方のホスト名が null に等しい場合です。 ホスト比較には名前解決が必要なので、この操作はブロック操作です。 java.net.URL#equals
Ripperの出力とかParseletの解析結果などを扱うのに、ArrayやHashでパターンマッチして中身を取り出す処理を多用する必要があったのでパターンマッチライブラリを作りました。 GitHub: todesking/patm 同様のライブラリとしてはpattern-matchがあります。 機能面ではpattern-matchのほうが豊富ですが、PATMは高速なのが売りです(DSLによるメソッド定義を使用した場合、ネイティブRubyコードにコンパイルされるため50倍くらい速い。case式内で使用した場合でも7倍程度)。ベンチマークについてはこの記事の下のほう参照。 主な機能 DSLによるメソッド定義 extend Patm::DSL することで define_matcherを使ったメソッド定義が可能です。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Rubyはローカル変数への参照と無引数のメソッド呼び出しを同じ記法で書けるので、コードを読むときに混乱したりtypoでNoMethodErrorを出してがっかりすることが多々あります。 幸いなことにこれらは静的に解析することができるので、ローカル変数への参照を色付けするVimプラグインを書いた。 Github/ruby_hl_lvar.vim すごく便利な気がする!!!!!!! Rubyインタフェース(>=1.9)が有効になったVimが必要なのでご注意ください。MacVim 7.4 KaoriYa 20140107で動作確認しました。 しくみ Ruby1.9以降に標準添付されているripperというライブラリで、Rubyの構文解析をしてローカル変数への参照を取り出しています。 require 'ripper' Ripper.sexp(<<EOS) a = 10 b = 20 c = a +
(このコンテンツは書きかけです) はじめに 人体に電流を流すことで、筋肉を動かしたり感覚をコントロールしたりできることはよく知られています。 しかし、それには特殊な電極や高電圧が必要。一般の人が気軽に人体に電流を流すことは難しい状況でした。 このプロジェクトでは、 入手が容易な部品で 簡単に作れる マイコンから制御可能な 人体用電流源を作成することを目標としています。 注意 このデバイスは 大変危険 です。使用方法を間違えると死ぬ可能性があるので気をつけてください。 死なないまでも、感電はします。 現在のステータス プロトタイプを作成しました。 今後の課題としては、 極性を制御する方法がない(リレーを追加して解決する予定) 筋肉を制御できるかどうか確認していない(5ミリアンペア程度を定常的に流しても反応しないため、パルス状に瞬間的大電流を流す必要がありそうです。あるいは、電極の位置に問題が
自己紹介 d:id:gnarl twitter:todesking いちおう情報系 興味 プログラミング言語処理系 ソフトウェア・アーキテクチャ(オブジェクト指向設計とか) 機械学習(ニワカ) 推薦エンジンを作ってるチームに所属してます 最近の仕事: javaでニュース記事の特徴語を解析して云々 ruby+sinatraでなんかつくる仕事 アジェンダ(1) 推薦システムとはなにか 推薦システムの種類 コンテンツベース、行動ベース ユーザ-アイテム、アイテム-アイテム モデルベース、メモリベース この辺の話は皆さんのほうが専門家ですね…… 省略します アジェンダ(2) 推薦システムの精度をはかる MAE/RMSE Precision, Recall 推薦システムの抱える問題点 スパースネスの問題 コールドスタートの問題 この辺の話を長々とすると会場の研究者にしらけた顔をされる…… 省略します
図形言語 On Browser SICP 2.2.4の図形言語(picture language)をブラウザ上に実装したものです。 Opera 9.27,Firefox 2.0.0.14にてテストしました。残念ながらIEでは動きません。 Firefoxの場合ロード中に固まりますが、仕様です。Scheme処理系の速度はそう速くないため、高速なマシンが必要かもしれません。 Examples ; だいたいSICPのサンプルに準じてるはずです ; 基本要素 (draw wave) (draw triangle) ; 変形 (draw (flip-vert triangle)) (draw (flip-horiz wave)) ; 合成 (draw (beside wave triangle)) (draw (below wave triangle)) ; 繰り返し (draw (corner-sp
Tiny Scheme implementation with javascript description 言語開発合宿で作成した、Scheme(的なもの)のjavascript実装です。 継続と末尾再帰最適化まで実装しました。継続のほうは本当に仕様を満足しているかどうか不安ですが。 マクロは、ありません 詳しい説明はblogのほうに。 features parse SExpr variable reference create/call closure tail-call optimization continuation quote ('expr) , dotted pair( (x . y) ) , comment( ;; ) etc is not supported. console hold log Examples basic operations 1 (define x 1
javascriptでmigemoっぽいことをするサンプル 説明 migemo(平仮名カタカナのみ) つくりたかったからつくっただけですし漢字もちゃんとしてくれるJavascript/migemoというプロダクトが既にある。 デモ migemo: ひらがな かたかな ひらカタ テスト: : 関連プロダクト:候補しぼりこみUI、migemo使用 ソース migemo.js ローマ字からmigemoな正規表現を作る 依存ライブラリとかは特にないはずです テスト migemo_test
次のページ
このページを最初にブックマークしてみませんか?
『todesking.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く