セカイノカタチ

世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め

マーブルワーズ

プログラミング

ScalaのFutureに渡す ExecutionContext の挙動がわかりにくいので図解する

Scalaには、非同期実行をサポートするために Future というクラスがあります。 正確にはJavaにも同名の仕組みがあるのですが、それをちょっと便利にした感じのものです。 Futureの仕組みを簡単に言うと、関数を渡すと別のThreadでその関数を実行してくれるも…

fold沼について

久しぶりに、#rpscalaにて発表をしました。 最近TLなんかでfoldの話しが盛り上がっていたので、foldについて簡単にまとめたスライドです。 fold沼について あまり、深みのある話しは無いのですが、Markdownで書いたのでブログにも転載しておこうと、下記に貼…

輪廻はIOモナドだった。またはIOモナドは輪廻だった

みなさん、輪廻してますか? 「輪廻とはなんなのでしょうか?」という話題にも興味があるのですが、それは今回は置いといて、この話は完全にネタです。^^; まず、輪廻と一口に言っても、仏教だけの用語ではなく、インド方面に広く浸透している考え方なので、…

Amazon Dash Buttonをエマージェンシーコールボタンにしてみた

キュキュット Dash Button出版社/メーカー: Amazon発売日: 2016/12/05メディア: エレクトロニクスこの商品を含むブログを見る エリエール Dash Button出版社/メーカー: Amazon発売日: 2016/12/05メディア: エレクトロニクスこの商品を含むブログを見る さて…

JavaとGenericsと私(と、時々モノイド)

mattn.kaoriya.net というわけで、通りすがりに見かけた記事ですが、Genericsの使い方について、ちょっと引っ掛かったのでコードを書いてみました。 import java.util.List; import java.util.Arrays; public class Foo { public static <T> T sum(List<T> list) {</t></t>…

FirefoxにWebAssemblyが搭載されたらしいので試してみた

Firefox、ゲームなどをネイティブ並に高速実行する「WebAssembly」を採用 - PC Watch こんな感じで、PC系のニュースサイトで話題になっているので試してみた。 WebAssembly とは、ブラウザ上でバイトコードを実行できるようにする標準規格で、今まで実質的に…

ThinkPadのBluetoothキーボード KT-1255 の使い方メモ

レノボ・ジャパン ThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード - 日本語 0B47181出版社/メーカー: レノボ・ジャパン発売日: 2013/06/25メディア: Personal Computersこの商品を含むブログ (22件) を見る 毎度使い方を忘れてググっても碌な…

テストしようよ

先日、息子と遊んでいると私達が「作品入れ」と呼んでいるファイルを持ってきて、私にこう言った。 「ここのぶぶんにはいる紙がないんだよねー」 そこで私は、部屋に戻ってA4サイズのコピー用紙を持ってきて提案してみた。 「これなら入るんじゃない?」 す…

バグのないプログラム書くことができると思っている上司を上手く説得する方法

anond.hatelabo.jp バグのないプログラム。 プログラマーにとっては、聖杯であろうと思います。 元増田は、「バグのないプログラムを書く方法」や「バグのないプログラムを書くことができるか?」ではなく、「バクのないプログラムを書くことができると思っ…

「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる 第7章

この記事は、Scala Advent Calendar 2016の18日目の記事になる予定です。 ふふふ。順調に3日間途切れてる。^^; ということで、4日目の僕が颯爽と記事を透過できればカッコ良かった(?)んですが、順調に何も書いていません。 掲題の通り、久し振りに完全自己満…

React.jsでハマっている

React.js「に」ハマっているわけではありません。 確かに便利だけど、微妙に惜しい感じですね。 色々ハマったのですが、後日自分でも忘れてしまいそうなので、自分用のメモということで愚痴を書きます。 「Target container is not a DOM element.」問題 Rea…

記号オペレータのググラビリティの低さよ

愚痴です。 そして、久しぶりにプログラミングに関するネタです。 最近、Reactを使ってみているのですが、下記のようなコードを見かけました。 <Hoge {...this.props} /> この、(...)が、構文なのか例文なんで処理を省略しているのかわからずに悩んだのですが、頼みの綱のGoogle様は</hoge>…

愚かであることの大切さ

さて、トランプ氏が第45代アメリカ大統領に就任することになりそうですね。 今回の大統領選にも関係しますが、わりと普遍的な事実として、主張の強さと正確さというのは、反比例する関係にあります。 こうしてブログを書いていても、より「正確に書こう」と…

映画のロケ地で「おくりびと」ごっこ

酒田在住プログラマーのタマニチェンコこと玉置です。 なんか、車で移動していてたまたま「おくりびと」のロケ地を通りかかったので、(うっかり友人が持っていた)ニコンのD750で、それっぽく撮影してもらいました。 「おくりびと」と言っても、2008年の映画…

山形県酒田市と僕

小学校の作文のタイトルは、必ず「○○と僕」でした。 さて、山形県酒田市で仕事を始めてからそろそろ1ヶ月経つわけですが、現在、東京と山形間、正確には小平と酒田間を往復する生活を送っています。 小平⇔酒田間というのは、こんな感じで、約500キロほどあり…

東京の会社を退職して山形に移住することにしました

9月いっぱいで所属していた会社を退社し、山形に移住することにしました。 僕は、40歳で妻子持ちなので「レールに沿ったつまらない人生はもう嫌だ」とか言う気持ちは毛頭ないのですが、色々思うところがあって、生まれ育った東京を離れ、新天地を目指すこと…

素早く失敗する

medium.com 凄く良い記事です。 「UNIXという考え方」や「達人プログラマー」など、ハッカーのバイブルとも言うべき名著ですし、あらゆる近代的な成功法則は、なるべく早く試すことを推奨しているように思えます*1。 僕の座右の銘は「素早く失敗する」です。…

Windows 10 アニバーサリーアップデートで、bash(ubuntu)が使えるようになった

Windows10にUbuntuのサブシステムをインストールし、bash及び、Linuxのバイナリが動くという機能が、アニバーサリーアップデートで公開されました。 以前から、インサイダープレビュー版ではリリースされていた機能ですが、通常版のWindows10でも使えるよう…

システム開発時のネーミングついて

※ 筆者の特性上、話題の対象が業務システム開発に偏っていることを予めご承知おき下さい システムのネーミングですが、困りますよね。 長年業務システム開発で、DB設計などに携わった身として、少しだけコツをお話したいと思います。 前提 まず、前提として…

プログラミングとは、世界の複雑さを難しさに変換する作業だ

プログラミングとは、世界の複雑さを難しさに変換する作業だ。 人月の神話によれば、ソフトウェアの複雑さは付帯的事項ではなく、本質的だという。 世の中は、複雑にできている。 膨大なデータとルールが存在し、リアルタイムに互いに相関しながら変化し続け…

EvernoteからAtom+Markdown+Dropboxに乗り換えてみて

[↑マルチディスプレイの図(左からWindows,Mac,Linux)] さて。Evernoteショックから一週間が経ちました。 qtamaki.hatenablog.com 前回の記事で、Evernoteから、Atom + DropBox + Markdown構成への移行を決意したわけですが、結果として「超快適」です。^^ 現…

Evernoteからの引越し先を考える

blog.evernote.com 昨日、Evernoteから、突然の通知がありました。 30日の猶予を設けて、無料プランの利用端末数を2台に制限するとのお達し。 ざわざわ... これはマズイ。 ということで、早速引越し先を検討しました。 もともと、Evernoteを便利なメモ帳とし…

システム開発の見積もりは、覚悟と覚悟のぶつかり合いだ

システム開発の見積もりには、色々な手法があります。 ファンクションポイントとかCOCOMO法とか。 これらはなるべく見積もりの根拠を確かにし、実際の工数とのブレがなくなるようにするために考え出された方法です。 しかし、いくら根拠を以って正確に見積も…

システムの発注者は自分に必要なシステムを自分で知らない

システム開発系のエントリーでちょいちょい言及していますが、自分が欲しいと思うものが、本当に必要だったものとは限らないと言う話です。 もうちょっと、強く言うと、コンピュータによるシステムは、「作ってみて」「改良」しないと、本当に必要なものを知…

ウォーターフォールが成功する可能性

agnozingdays.hatenablog.com すっかり、書くのを忘れていたのですが、ウォーターフォールプロジェクトでも成功することがあります。 それどころか、エンタープライズ系システム開発プロジェクトの成功率は、24~28%ぐらいだったはずなので、100本プロジェク…

日本がウォーターフォールを脱却できないのは予算取りのせい

simplearchitect.hatenablog.com なんか、SIっぽい話題が多いですね。 アジャイルの時にも書きましたが、日本でユーザー企業が、SI案件を発注するまでの間には、「予算取り」という工程が欠かせません。 元記事では、主に開発者サイドにフォーカスしてウォー…

絵に描いたようなSI炎上案件を見たので過去の経験から勝手に解説する

www.tsubakimoto-neko.com 絵に描いたようなSI炎上案件ですね。 僕も長らくシステム開発業界に漬かっていますので、身につまされる思いです。 自分の拙い経験から、行間からあふれる業界の闇を勝手に解説したいと思います。 営業主導で案件が決まる 30%OFFの…

アジャイルは死んだのか?

www.infoq.com 死んだというか、死んでないと思いますけど、よく耳にするのはこんな感じでしょうか。 パターン1 元々向いてない分野に無理やり導入しようとした パターン2 聞きかじった程度の上司が始めてドキュメントを無くしただけで後は何も変わらず状況…

日本のSIerはいつまで親の脛をかじり続ける気なのか

かつての技術大国日本 かつて、日本は技術立国と言われ、機械電気電子産業において、世界に名だたる企業を幾つも輩出し、それこそ日の出の勢いで世界を席巻した。 これらの産業が好調だった頃、日本におけるシステム開発とは、それらの巨大な利益を挙げる企…

Phantomjsソースを読んでQtWebkitのAPIについて調べた

Phantomjsとは、Headless browserといって、画面を表示しないブラウザを裏で持ち、そことのやりとりをJavaScriptで行うというコンセプトのツールになります。 モチベーション Webスクレイパーを作ろうと思ったのですが、最近のサイトはJavaScriptで動的にコ…