読者です 読者をやめる 読者になる 読者になる

タオルケット体操

サツバツいんたーねっと

プログラミング初心者向けのシンプルなObserverパターンの解説

プログラミング初心者向けにPythonで説明するObserverパターンの実装の仕方

文系プログラマーの罪悪感

わかりやすく文系でくくりましたけど、正確には非情報系出身と言った方が適当かもしれませぬ。 私めは完全なる門外漢、未経験からこの業界に入った男です。思えば恥の多い生涯を送って来ました。 インターネットを徘徊してると色々なノイズが目につきます。…

「年収を下げて経験を買いに行く」転職をしても後悔しない準備

転職は経験を買いに行く人生のタイミング(えふしん) - Yahoo!ニュース 転職は経験を買いに行く人生のタイミング(えふしん) - 個人 - Yahoo!ニュース 上の素敵なブログを読んでおもったこと。 思えば僕も年収を下げて経験を買いに行く系の転職をした 去年末…

JavaScriptの便利メソッドとかの状況についてのメモ

最近よくJSかいてる。 色々な便利機能についてネットネット記事を発見するけど、JavaScriptのことはとりあえず疑うマンなのでそれが本当にIEとかIEで動くのか不安でならない。 でもメソッドの動作とかについて説明はしてても、それが使い物になるかどうかわ…

はてな用の「あわせて読みたい」ウィジェット作った

追記: 導入とかを楽にした版があるのでこっちのほうが楽だとおもいます あわせて読みたいウィジェットをGitHub経由で配信するようにした - タオルケット体操 あわせて読みたいウィジェットをGitHub経由で配信するようにした - タオルケット体操 同一カテゴリ…

Python Prompt Toolkitで快適便利 Python REPL生活が向上な

GitHubのトレンドリポジトリを眺めてたら面白そうなのを見つけました。 jonathanslenders/python-prompt-toolkit · GitHub prompt_toolkit is a Library for building powerful interactive command lines in Python. It ships with a nice interactive Pyth…

これどうすんのからの「頑張ります」って空しすぎるなって思った話

これは特にプログラミングのお仕事しててめっちゃ思うんだけども、例えば逆に「勤務管理表(エクセル方眼紙)を書いて提出します」みたいなお話だとすげーシンプルで、超頑張ってキーボード叩いて速攻で印刷して走って上司に提出すればある程度の物理的限界…

CSSだけで簡単にPinterest風味なカラムレイアウトするやつ

PinterestとかいうSNSがあるみたいです。 なんかオシャレ系? な写真共有系SNS? みたいな感じっぽいです。 段組みみたいになってるレイアウトがちょっと前にもてはやされてたりとかしてた気がします。 例によって、あの手のレイアウトはjQueryプラグインで…

ノウハウの共有文化がない場所にコードレビューをねじ込んでみた結果とか

「コードレビューをキメると品質も上がるし自分のレベルも上がるので最高」みたいな論が巷を賑わせていて、以前はそういうイケてる制度を指をくわえてみるのみだったのだけれど、最近職場と、それと個人的に関わったプロジェクトでコードレビュー制を無理矢…

RxJS-haxeつくった

HaxeからRxJSを使えるようにするexternが欲しかったけどなかったので作った。 hachibeeDI/RxJS-haxe · GitHub とりあえず、Observableのメソッドは9割くらい実装を終えた(たぶん)。 他は僕が必要になる度に実装しようとおもう。足りねぇ! みたいなことを…

学校教育とプログラミングは相性が悪い そして適性とかの話

最近はあまり話題にのぼらない気もしていますが、何かと動きの遅い我が国でもプログラミング必修化の流れはちゃくちゃくと進んでいるような感じを感じます。 プログラミングの義務化についての問題点は、カリキュラムや、適切なスキルをもった教師の明らかな…

RxJSでリスト要素絞り込み操作を簡単に実装する

Reactive-Extensions/RxJS · GitHub というものがあります。 詳しいところはGitHubのREADMEとかを読んでもらうとして、RxJSはReactiveExtensionという、'.NET上でLINQ風にReactiveProgrammingを行えるようにする' ライブラリのJavaScript版実装です。 僕の記…

Pythonにてクラス自体をFalseとして評価する

Pythonを書いていて、クラス自体をbool文脈の中でFalseとして扱うための方法です。 知っての通り、PythonではNone, 空文字, 0以外の全てのオブジェクトはbool文脈の中ではTrueと等価の扱いを受けます。 しかし、自作クラスのインスタンスなどをFalseとして評…

PythonによるOptional再考 Swiftの?. とか

ツイッタアーで多言語使いになることのメリット的なものをつぶやいたりやかなかったりしてたら、以下のツイートあたりから、やっぱ型システムありき言語ほどじゃなくてもRubyやPythonでOptionalなものをどうにかする方法欲しいよねみたいな気持ちが再燃した…

pecoからCodicを使って変数名とか考える

pecoはやってますね。超便利だし早いです。 しかも簡単かつ直感的にスクリプト書けます。みんな使いましょう。 さて、表題のスクリプトを利用する前にcodicの辞書が入ったcsvが必要です。 僕はCodic.vimを使っていて、用意するのもめんどくさいので該当Vimプ…

Haskellの合成演算子 . をPythonで 〜関数合成によるCollection処理の実装

メソッドチェインを利用した関数合成の実現案的な。当然ですが実用性汎用性ともに一切ございません。 事前に用意しておく必要があるので、Haskellでの.みたいな汎用性は一切ないですウワー。ただ、あらかじめ決められたオブジェクトへの関数の合成に応用する…

Pythonのローカル変数をシンタクスハイライトするVimプラグインをリリースした

ここ https://github.com/hachibeeDI/python_hl_lvar.vim 前のエントリ (Pythonのローカル変数をシンタクスハイライトするVimプラグインを書きはじめた - タオルケット体操) の時点での問題をいくつか修正して、Python部分の簡単なテストを書いた。 前回まで…

Pythonでパターンマッチめいたモノを作ってみる with Rubyのブロック渡しっぽい見た目

今回説明するものを実装したソースコードは https://github.com/hachibeeDI/masala/blob/master/masala/match.py で読めます。 Rubyで内部DSL的なものを実現する際の常套手段として、ブロックを使うものがあります。 わかりやすい例としては、RakeやSinatra…

初心者による「チュートリアル通りやったのに動きません!」という嘆きを8割解決する気がする3つの質問返し

1. バージョンはどうなってる? 古いドキュメントを見ているパターンや、保守的なディストリの都合で古い環境を使っているパターン。 2. ファイルのパーミッション(権限)はどうなってる? かなり親切なチュートリアルじゃない限り、権限周りについての言及…

Pythonのローカル変数をシンタクスハイライトするVimプラグインを書きはじめた

ネタ元 Rubyのローカル変数をシンタクスハイライトするVimプラグインを書いた - TODESKING hachibeeDI/python_hl_lvar.vim · GitHub まだめっちゃ微妙! とりあえずカーソルがある関数のみハイライトしてるけど、単にsyntaxを指定しているだけなので関係ない…

Pythonの表現力だって負けてへんぞみたいな感じでforwardableをRubyから移植する

こんばんわ。 最近、社内でにわかにRubyistが増えているせいで、Pythonの表現力がクソでRubyが最強みたいな不当なディスりを時々耳にします。何故人は争いの種を蒔き続けるのか、悲しいことですね。 僕はぶっちゃけどっちの言語も好きなんですけど、的外れな…

Option型はPython的じゃない?

Option型とかMaybeがなんなのかの説明は、今更必要ないだろうから省く。 ググればいくらでも出てくる。 今現在、大抵の言語は上記に相当する機能を持っている。 Haskellについてはいうまでもあるまい。ScalaやHaxeは組み込みでOption型を実装している。Groov…

Sphinxを業務で使うならテーマは自作したほうが良い理由

要望にすぐ答えられる。これ。 たぶんスッと導入出来た人ってのは少なくて、色々と苦労の果ての政治的やり取りのはてに導入があったりするのだろう。僕は現職では苦労しなかったけど。 導入に渋ってた人ってのは、使い始めた後も何かとつまらない難癖をつけ…

「プログラミング初心者」にもなれない人の特徴を考えてみた

photo by CollegeDegrees360 曰く、プログラミングという技能は素質に大きく左右されるもので、出来る人間と出来ない人間の間には大きな溝があるという。 これは僕の(大して長くない)経験からしても納得出来る話で、また下記のエントリーなどを参考するに…

camelCaseのメソッドをsnake_caseでも呼べるようにするスニペット

たいした事してないけどメモ 古いコードがcamelCaseで書かれていることはまれによくある。 class Hoge(object): def getHogeResult(self): return 'hoge' こういうの。 これを こうして >>> from hoge import Hoge >>> hoge = Hoge() >>> hoge.get_hoge_resu…

setftとset ft=vimの違い

今までなんとなく使ってたし、ブログとかでも特に言及とかはない感じだったので漫然と混在して使ってました。 しかし、ここのところファイルタイプ検出が不安定で$HOME/.vim/filetype.vimを設定しなおしてて気になったので:help setfiletypeしてみたらずばり…

AngularJSへの雑感を書く

ここ二、三週間ほど、Angularを使ってUI作ってるので雑感を。 まず、僕がJsNoobで、他のクライアントサイドMV*を使った事はほとんどない(ember.jsはチュートリアルだけやってみて心が折れてやめた)ことを付け加えておく。 Angularの第一印象は、独自タグと…

pypiのclassifiersを探すUniteのSourceをつくった

ルー大柴っぽいタイトル hachibeeDI/unite-pypi-classifiers 最近、PythonのパッケージをPypi方式にまとめるようにしているのだけれど、その中のclassifiersを探すのがとてもだるいのでつくった。あとはinsertする時に、勝手にクォートで囲むようにとかそう…

Sphinxのテーマを作った

スヒンクスのテーマを自作してみたけど、ちょっと作るだけなら以外に簡単だったよっていうはなし。 なおマークアップ力やセンスの欠如により周囲からは大不評の様子(かなしみ)。 まだ作り込みがイマイチだけど、リポジトリとかサンプルはここ hachibeeDI /…

勉強のためにWebSocketServer実装してた

ちょっと前から勉強のためと、それとHaxe/Nekoで動作するWebSocketServerが欲しかったので作ってました。 一応haxelibをのぞいてみたところ、二つほど存在してたんですけども、微妙な感じだったので。 例によってソースはgithub hachibeeDI/Haxe-WebsocketSe…

Haxe/NekoでIRCクライアント作/った/り中

引き続きネットワークの勉強ということで、簡単そうなIRCクライアントを実装しました。TCPの性質をしらんまま実装してハマったりしましたが、自分がいかに抽象層でしか呼吸していなかったか痛感できて気持ちよかったです。 最初はGoでチャレンジしていたので…

Go言語でネットワークのべんきょう

貧弱マンですこんばんわ。 プログラマーになって以降、一度もまともにネットワークの勉強をしたことがなかったのですが、仕事で扱っている製品がソッチ系なのもあって「甘えんな」という周囲の圧力が高まってきました。 ですが参考書読むだけだと5秒で飽きる…

canvasってクソしんどいと思ったらCreateJSとかいうものがあったっぽいin Haxe

もはやCanvasを触ってみるだけでなんとなく価値があるアトモスフィアを出せた時期も今は昔、世間の関心は次世代のなんかに移ってひさしいですね? ともあれ、HaxeたのしいしHaxeといったらtoJsなのでガンバロ!

Haxeで書いたコードをJavaScriptから呼ぶ方法

HaxeとJavaScriptの連携 上記のように、Haxeで書いたコードをJavaScriptから呼び出すには、@:exposeを使います。 以下のコードはHaxe3のコンパイラを使ってコンパイルしています。 とりあえず適当な例が思いつかないので、お気に入りの画像を使った記事ツイ…

練習に良いときいたのでライフゲーム

練習に良いときいたので、そういや実装したことないなぁとか考えながらHaxeの練習のために超ググりながらじっそうした。 ソースは例によってGithubに。 hachibeeDI/haxe_lifegame JavaScriptもHaxeも手探りで書いてるから、名前やら書き方やらメンバが所属す…

マイブーム

最近Haxeやってる。 モダンな機能はだいたいサポートしていて、結構気持ち良くコード書ける。 ただちょっと触っていて、リスト操作周りが若干直感に反する感じがあったりしてもにょった。 例えばLambdaがIteratorをサポートしていないとか。 なので (0...10)…

実際簡単なレキシカルスコープとかクロージャとかそういうの

JavaScriptの頻出テクニックにして、それ以外の言語でも基礎教養的な雰囲気のある クロージャとスコープですが、なんとなく小難しそうな雰囲気をまとっていたりするせいか いまいち浸透していないので簡単にまとめようと思いました。 用語の細かい定義とかは…

社内で新人教育と称してVim勉強会を行ったことのまとめ

社内で新人教育と称して、新人の僕が皆にVimを教える会で言ったりなんだりしたことのまとめになります。 なんで今更エディタの勉強なんか……と思われる向きもいるかと思いますので、Vim勉強会を開くに至った経緯を軽く説明します。 僕の所属する部のチームは…

C++書くにあたってVimで最低限準備したこと(殴り書き)

必要にかられて。 そして賢い補完なしのコーディング生活は嫌なので。 そしてlibclangの場所を探したりで結構ハマりまくったのでメモ。とりあえずはこれで正常に動いてるっぽいけどまた追記あるかも。