タグ

ブックマーク / www.artonx.org (20)

  • L'eclat des jours(2021-04-30)

    _ ライティングソフトウェア 翔泳社の野村さんから1ヵ月前くらいにもらったライティングソフトウェア を 連休に読んでみるかと開いたら、想像しているものと違って驚いた。 タイトルからコードのかと思ったら、全然違う。 そもそもよく見たら副題が「プロダクトとプロジェクトを泥沼から救う工学的手法」とかある。 さすがに、それはこけおどしだなという点も見られるが(リスクの計算のためにΣを持ち出して来て、それは確かにリスクは最初の時点からリリースした後までどんどこ積みあがるものだから正しくはあるけれど)そこで持ち出して来ているコストをリスクが上回る点を求める関数の正しさは保証できないのだから、現実的な正しさとはつながらない。 と書いてふと気づいたが、そういうレベルの話ではないのか。 そうではなく、説得力のある見積もりを提示するための基礎資料を作成する必要がある場合に、過去の類似プロジェクトなどから求め

    yyamano
    yyamano 2021/04/30
  • L'eclat des jours(2019-05-09)

    _ WTF経済 読了したのでメモ。 4部構成。 全体としては一貫した主張をするためのエッセー。未来予測という確立させようがない分野に対してそれなりに成功しているオライリーという人の考え方を示し、どう未来がなりそうなのか、そのためにはどうしなければならないか(日憲法と同じく、良いものを守るには不断の努力が大切というやつだ)を考えたもの。 結論としては、パーソナライズされたタイムスケジュールと人類の生産能力の向上によって働き方や政府のあり方も変えられるし、その方向に進んでいるように見える。とはいえ、いくらでも悪くすることはできるので、皆さん、人類全体の福祉という観点から行動を律しようよ、という内容。 第1部は、オライリーがオライリーであるためにどういう機会にどう考えてどう行動したかという内容。こうであろうというマップ(鳥瞰)がなければ正しく考えることはできないが、一方実際はこうであるという現

    yyamano
    yyamano 2019/05/20
  • Clean Architecture 達人に学ぶソフトウェアの構造と設計 L'eclat des jours(2018-07-29)

    _ Clean Architecture 達人に学ぶソフトウェアの構造と設計 アスキーの鈴木さんからアンクル・ボブのクリーンアーキテクチャをもらったので、読んだ。 おもしろかった。内容にもほぼ同意できるし、良いことがたくさん書いてある。 ただ、読みやすくない(正確ではない。350ページのに対して付録などを除外しても文34章に分割しているので、読むのはたやすい。ただし、内容が相当前後するし、依存関係が逆転している章もある。全体像を示してから細部へ進むと言えなくもないのだが、全体像を説明するための用語は細部で説明されるため、逆に全体像を理解するのが難しくなっている(とおれは感じた)ところもある。また、おまけが唐突に最後に来るので、なに昔話してるんだ爺さん、みたいな印象も受けることをもって、読みやすくないとここでは表現した)。 書が最も重視して、そのためにおそらく書籍の作り方にまで影響して

    yyamano
    yyamano 2018/12/14
  • L'eclat des jours(2018-05-31)

    _ rubyでアドホックにxlsxを読む(1:モチベーション) マスター登録系のWebアプリケーションで、一括登録させたい場合、CSVが比較的利用されていると思う。思う理由は、非プログラマーにとって、デスクトップでの入力アプリケーションといえば、Excelと相場が決まっているからだ。 Excelに入力させた情報をWebにアップロードするなら、ネイティブな形式(xlsかxlsx)が来は望ましいのだが、ネイティブな形式はバイナリーなので伝統的にCSVが選ばれるのだろう。 CSVは文字列内の,の扱いなどそれなりに厄介なので、タブ区切りのtsvというのが後から出てきたが、後発の悲しさでそれほど主流ではない。というか、よくわからないが、移出形式のファイルといえばcsvというのが不文律みたいだ。 で、これが格的に厄介になったのは文字コードがからむからだ。 ビジネスの文脈で絵文字が出てくることはそれ

    yyamano
    yyamano 2018/06/22
  • なぜUnixはUnixなのか(Unix考古学を読み始めた) - L'eclat des jours(2016-04-27)

    _ なぜUnixはUnixなのか(Unix考古学を読み始めた) アスキーの鈴木さんにUnix考古学を頂いたので読み始めて、シェヘラザードの代わりに寝台の脇に置いて何夜か過ぎて大体半分読んだ。 抜群におもしろい。単なる読み物としてもおもしろいのだが、おおそういう理由でそうだったのか/こうなっているのかという説明が(あとがきを読むと、筆者は類書をネタにしているのではなく(ゼロではないだろうけど)、当事者たちのログや論文を読むことで事実関係を掘り起こして推測して結論づけたりしている。なるほど、その作業は電子の地層から掘り起こして塵を払ってつなぎ合わせて当時を復元していく作業にそっくりだ。それで「考古学」なのだな)なかなかに快刀乱麻で読んでいて実に楽しいのだ。 まずまえがきにぶっとぶ。 読み進めて次の文章に腰を抜かした。 人づてに聞いた話だが、著者の藤田氏は1970年代生まれよりも若い年代に書を

    yyamano
    yyamano 2016/04/27
    “なぜUnixはUnixなのか(Unix考古学を読み始めた)”
  • L'eclat des jours(2015-08-18)

    _ 調子に乗ったtry with resources 久々にJavaでHTTPクライアントを書いて、そういえば1.4.2の頃はコネクションタイムアウトすら設定できなかったからSocketを使ったなぁとか思い出しながらJDKのドキュメントを眺めているとURLConnectionが随分とまともになっているようで感心しがてら使うことにした。 が、好事魔多し。ついtry with resourcesが使えるので次のように書いて失敗した。 urlconn.setDoOutput(true); urlconn.connect(); String response = null; try (OutputStream os = urlconn.getOutputStream(); InputStream is = urlconn.getInputStream(); ByteArrayOutputStrea

    yyamano
    yyamano 2015/08/21
    ふと気づいて仕様を眺めたらfinal fieldについては must be definitely assigned at the end of every constructor of the class in which it is declared
  • L'eclat des jours(2014-08-31)

    _ Mozillaはプラットフォームに敬意を払っている やはりWindowsでも動かしたいよなぁとFireRubyをいじっていていろいろ戸惑う。 OSXと異なり、firefox-binがない。 でも、C:\Program Files (x86)\Mozilla Firefoxをつらつら眺めると、XULなどの構成には特に違いもない。さらに見ると、firefox.exeが妙に小さい。 それにしても、空白入りディレクトリに、自分のディレクトリまで空白を入れるところに感心した。いきなりC:\のルートにインストールしろとかたわけたことを平然と書いているカスは見習うべきだろう。 それはそれとして、ということは体をDLLとして、exeは単なるローダーに過ぎないのだろう。 つまり-binは不要な可能性が高い。 そこで、firefox -app ... のように試してみたらエラーになる(後に、この時点で引

    yyamano
    yyamano 2014/08/31
    “Mozillaはプラットフォームに敬意を払っている”良くあるPOSIX脳と違って、ちゃんとDOSコマンドラインの流儀に従っているのか! と感心した。
  • L'eclat des jours(2014-08-19)

    _ Firefoxを使うデスクトップアプリケーションのメモ Firefoxの開発者用資料は、MDNにまとまっていはいるのだが、微妙に情報が古かったり持って回っていたり新しい情報もあるのだが最初に古い情報(ただし現在でも問題なし)がメインにあったりして、決して読みやすくはない。というか、実感として読みやすくなかった。 でも、オープンな情報としては悪いできではない。不足しているものは利用するものが補えば良いだけかも知れない。 というわけで、先週に学んだことをまとめておく。 ・Geckoの組み込み Embedding Mozillaが入口なのだが、どうも壮大な廃墟っぽい。 ・XULRunner そこでさらにいろいろ見ていくと、組み込みをうまく行うためのフレームワークとしてXULRunnerというものを見つけられる。 具体的にはXULRunnerというブートローダーを利用してJavaScript

    yyamano
    yyamano 2014/08/21
  • L'eclat des jours(2014-07-25)

    _ 最近のおれの考えるWebアプリケーション Insider.NETの連載が終わった。 ASP.NETによる軽量業務アプリ開発 全部で6回にまとめたが、最後の2回(能書き部分を入れると最後の3回分)が当然(まとめになるわけだし)一番の要点だ。 一昨年あたりから、単発のWebアプリケーション開発を何度かやっていたのだが、やるたびにどんどんシンプルになっていって、結局、余分なことをまったくやらずに、ASPXだけでASP.NETを使ってちゃちゃっと作るのが一番ではないかと考えている。 もちろん前提がいくつもあって、ごく少人数(できれば1人)の開発であるとか、クライアント側にいろいろ制約を付けられるであるとか(あるいは極端に制約があるクライアントである、逆のようだが結局は同じ意味だ)、Windowsモノリシック(RDBSQL Serverで、.NET Framework 4(3.5で十分)以上を

    yyamano
    yyamano 2014/08/04
  • L'eclat des jours(2014-06-11)

    _ 2つの想像力 文系と理系という分類はくだらないと思うが、次の切り口であればまあわからなくもない。 その切り口とは想像力に関するものだ。 最初に違和感をおぼえたのは、以前『子どもの思考力を高める「スクイーク」 理数力をみるみるあげる魔法の授業』(それにしても冗長な題だな)のアランケイのあとがきを読んだ時だ。 そこでアラン・ケイは次のように書いている。 人間というものは、所詮、頭の中の物語を作ることしかできなくて、地球の気候変動よりもサーベル・タイガーに興味を持ってしまうような頭の構造をしています。 子どもの思考力を高める「スクイーク」 理数力をみるみるあげる魔法の授業(BJ・アレン=コン) これだけだとなんだかわかりにくいが、雑誌(もしかするとWebかも知れないが)のインタビューでアラン・ケイが、テレビで氷河期の話をやるというので楽しみに観たら、サーベル・タイガーの親子がうろうろするくだ

    yyamano
    yyamano 2014/06/12
    "こちらの想像力はアラン・ケイが唾棄している物語的(叙述的)想像力と言えよう。"
  • 詳細設計書は死んだ。とっくの昔に死んでいる。でも生き返る必要はある - L'eclat des jours(2014-03-11)

    _ 詳細設計書は死んだ。とっくの昔に死んでいる。でも生き返る必要はある 流儀や呼び名はいろいろあるだろうが、ここでは3種類あることにする。 ・要件定義書 要件を定義したもので、ユースケースについて記述したものだ。 ・機能設計書 要件を機能として記述したものだ ・詳細設計書 機能を実装に落とし込むものだ で、詳細設計書って何それおいしいの? ということだが、もちろん不味い。むしろ毒だと言うべきで、そんなものを記述するよりさっさとプログラムを書けば良いし、その時間を使ってテストプログラムを書けばさらに良い。 特に、1990年以降、オブジェクト(あるいはクラス)ライブラリが拡充され、APIがほとんどなんでもやってくれて、コンポーネントがそこら中に転がり始めてからは、単にそれらをグルーでつないでいくのがほとんどなのだから、そんなものを書いてもまったく意味がない。 しかし、実はそう単純でもない。 問

    yyamano
    yyamano 2014/03/15
    汎用言語でうまくDDDすれば同じようなことは実現できるけど、よりシンプルな記述ができて、ソリューションドメインの実装と分離できる仕組みがないと、うまく運用していけないってことなんだろう。
  • L'eclat des jours(2013-10-25)

    _ WebMVCと設計パターン WebMVC(面倒なので以降はただのMVC。J2EEのMVCがSmalltalkのMVCと異なるMVCだということは既に10年以上の歴史があるのだから、今更どうでもよろしい)というのは、Transaction Script PatternとDomain Modelの間にまたがるスペクトラムだ。これがMVCの最大の特徴であり利点なのだが、なぜか、Transaction Script PatternとDomain Modelの両極端の声の大きい人が自分の視点を叫ぶ(実際に前者で声が大きい人はいない。彼らは沈黙のうちにコードを広める)。そこで混乱が生まれ、最悪のTransaction Script Pattern実装(貧血)と最悪のDomain Model実装(血 )が幅をきかせることになる。といっても、最悪のDomain Modelは普通は作れないのでそれほど

    L'eclat des jours(2013-10-25)
    yyamano
    yyamano 2013/10/25
    プログラマは構造が好きだから、解決しようとしている問題が何かを忘れちゃうんだよね。
  • L'eclat des jours(2013-10-06)

    _ 突然クッキー アマゾンの注文をいろんなマシンからするのだが、あらためて面白いなと思うのは、アマゾンのログインユーザの識別クッキーが、ユーザだけではなくマシンにも紐づいていることだ。 そのため、iPadからアマゾンへ入ると履歴やお勧めがiPadから参照するものが多く(文学が多い)、HTCJからアマゾンへ入ると雑多で(ぶくま読みとかするかして、そこからアマゾンを参照することが多いからだな)、メインのPCからはオーディオやグッズばかりになる。 既に購入した商品のページでは、どの端末から入っても購入済みと表示される(というか、アカウントがおれになっているから当然だけど)ので、ログインユーザに紐づいているのは間違いないが、それだけではなくログインしたマシンにも紐づいている(最後にログインした日時に紐づけているのかも知れないけど)。 Facebookとかだと、これまでログインしたことがないマシン

  • 今、Cで開発するためのスタンダードを知るための本 - L'eclat des jours(2013-09-30)

    _ 今、Cで開発するためのスタンダードを知るための 例によってアスキーの鈴木さんから、をもらった。花井さんのモダンC言語プログラミングだ。なお、似たような題の洋書があって、しかも花井さんは翻訳もするので、そのの翻訳書と勘違いされる可能性もありそうだが、完全にオリジナルだ。 Cは、Unixと共に(というか少し遅れて)生まれたということは、すでに40年以上の歴史があり、それだけの年月がたてば、COBOLなどと同じく老害言語と言われてもこれっぽっちもおかしくはない。 ところが、COBOLと異なり開発者市場がどんどん先細り(あるいは固定化)されるということはなく、むしろ増えている。それどころか最近の調査では最も利用されている(TIOBE 2013)。 一方、C++が先鞭をつけたビジネスプログラミングへのオブジェクト指向プログラミングの適用は、Java、Objective-C、C#と種類を増や

    yyamano
    yyamano 2013/09/30
  • L'eclat des jours(2013-03-04)

    _ 型付けと変更に対する強さ (時事解説) shiroさんが召喚されたという点が、今回の発端となった(と僕は読んだけど)『変数に型がないということの利点について考える』の一番の成果だったのではないだろうか。 最初にshiroさんは、変更に対する強さというものを、平衡状態の長短として考えることを提案する(『型付けと変更の時定数』)。強い型付けであれば、非平衡状態は比較的すぐに解消する(ただし非平衡状態では実行できない)。弱い型付けであれば、非平衡状態でもそれなりに実行できる。 読んで考えた。これは実体験としてわかる。 それまでchar buff[]だったものをstd::string buffに修正する必要が仮にあったとすれば、とにかく宣言を先に変えてしまう。そしてmake cleanしてmakeし直せば、少なくとも修正しなければならない箇所はその時点ですべて網羅できる(もっとも、表面的にしか

    yyamano
    yyamano 2013/03/04
  • L'eclat des jours(2012-05-07)

    _ BKを1つ見つけた 会員登録とかで、メールにURLを埋め込んで送るってのがある。で、そのURLをクリックすることで登録が完了するとか。 こういうURLを作る時、改行は避けられたら避けたほうが良いだろうけど、amzon.toくらいに金をかけられればともかく、短縮URLは使わないほうが良いだろうね(そういうの気にしない人ばっかりだというのは別の話だ)。 でも、ここでのBKはそういうのではない。 実は2つのQueryパラメータを取るサービスでやってしまったのだった。 具体的にはパラメータが2つある(後悔先に立たないが2つ使うように作ってしまったのだった)。1つは受付番号で、もう1つは登録IDだ。 学んだことは次の3つ。 1) できるだけ、QueryStringを使わず、URL埋め込みを利用する。 たとえば、受付番号が32001、登録IDのハッシュが1111e53dというパラメータを与えたいと

    yyamano
    yyamano 2012/05/09
    1) できるだけ、QueryStringを使わず、URL埋め込みを利用する、2) でも、諸般の事情でそうできなかった場合には、登録IDを先にする、3) でも、それが無理なら、パラメータ名の先頭は「reg」では無いものにする。
  • 生存戦略そこが聞きたい - L'eclat des jours(2012-04-03)

    _ 生存戦略そこが聞きたい secondlifeさんの『なぜ XXX がダメか』を読み、いろいろ去来するものがあるのだ。胸ではなく脳を。 特に、なぜMochiKitの選択で謝っているのかは知りたいところだ。進化が止まった点なのか、それとも別の問題なのか。前者なら、SI的な視点からは逆に安定性という意味で問題ない選択ということになるし(つまり、それはそれで参考になる選択であったわけだし)、後者ならそれはケーススタディとして知りたいところだ。 で、まあ過去10年以上、おれさまプロトコルかHTTPかとか、DCOMかおれおれXML-RPC over HTTPかとか、貴族なXMLとボヘミアンなXMLつまりDTDかWXSかRelax-NGか無手勝かとか、おれさまかStrutsかとか、おれさまかSpringかとか、ASP.NETのWebFormかMVCかとか、WFCかASMXかとか、XMLかJSONかと

  • L'eclat des jours(2010-11-01)

    _ 達人出版会からを出します いよいよ試験公開が始まった高橋(takahashim)さん(おめでとうございます!)の達人出版会から、Ruby環境構築講座 Windows編というを出します(β版は出ました、と過去形)。RubyKaigi2010企画の野良ビルダー養成講座のテキストを加筆修正したものです。お忙しいなかレビューをしてくださった、なかむら(う)(unak)さん、樽家(taru)さん、ありがとうございます。 書は、Visual Studio Express Edition(C++)を利用したMSWin32版MRI 1.9の構築方法を、コマンドライン開発環境の作り方、依存するライブラリの構築、Rubyのmakeの仕組みやステップなどの詳細から解説したものです。拡張ライブラリの構築からはコマンドラインだけでなく、IDEへのプロジェクトの組み込み方やソースコードレベルデバッガの設定な

    yyamano
    yyamano 2010/11/01
  • 続ACIDからBASE - L'eclat des jours(2009-11-13)

    _ 続ACIDからBASE 以前、acmqueueのBASEに関する記事の前半だけを勝手翻訳したが、続きをwinplusさんが翻訳してくれた。 実のところ、2フェーズコミットという技術は早すぎた自動化だと思う。えらく大層なことと複雑な仕組みではあるけれど、さっきまでオンラインだったシステムは直後もオンラインだろうという程度のあやふやな確信に頼って自動化しているだけのものだ。 よく似たシステムに、同時期にでてきたRPC(ORPCもそうだ)がある。 前提が高信頼性が確保できるクリーンルーム内の複数のノードから構成された分散システムだとしか思えない。それにしてもマシンは落ちるしネットワークは切れる。2フェーズコミットは、絶対に通信が可能だということと相手のプロセス(マシン)が落ちないことを前提としたシステムだという矛盾がある。SYNに対するACKを2時間待ってしまえばすでに成り立たないのだ。 早

  • RubyScriptTemplate

    スクリプトを書くときの最初のテンプレートをいくつかメモ スクリプトの実行 if $0 == __FILE__ # 実行 end ファイルを更新する require 'fileutils' require 'tempfile' def update(name) tf = Tempfile.new("foo") File.open(name, 'r').each do |line| # tf.puts(line) end tf.close File.rename(name, name + '.bak') FileUtils.copy_file(tf.path, name) end Excelシートを巡回する require 'win32ole' def read_sheets(file) begin excel = WIN32OLE.new('Excel.Application') excel

    yyamano
    yyamano 2008/07/31
  • 1