タグ

ブックマーク / hakobe932.hatenablog.com (7)

  • gitのcommit objectの中身 - はこべにっき ♨

    commitって結局なんなの?というはなしです.commitの中身を表示してデータの実体を見てみます. あわせて読みたい: Git for Computer Scientists 適当なcommitのobject id ( = SHA1 )を得るためにgit show-refでmasterブランチのHEAD commitのobject idを得ます. $ git show-ref refs/heads/master # master の HEAD の commit の obeject id を表示 216640790e88d6fd794a96fd1a7c81dd2ad86981 refs/heads/master 以下のようにして,git cat-file でcommitの内容を表示できます.treeにはcommitが発生した時点でのファイルツリーを再現するための情報が入っています.par

    gitのcommit objectの中身 - はこべにっき ♨
    hatz48
    hatz48 2019/12/05
  • PythonでWebアプリケーション作る練習をした - はこべにっき ♨

    最近流行っている雰囲気があるPythonだけど、僕も年末にふと気分が高まったので、練習をしてみた。 自分にとってはPerlRubyよりも先に勉強した、初めてのスクリプト言語がPythonだったので、ちょっとだけ思い入れがある。とはいえ、何年も前に初めてのPythonで勉強した後は、稀に使うくらいだったのでPythonならではの良い書き方とか、良いライブラリの知見とかは全然持ってなかった。 そこで、Pythonに入門しなおしてPython流を思い出した後、自分が気になっているWeb開発をやってみてどういうもんなのかを一通りやってみた。 このエントリは、GoでWebアプリケーション作る練習をしたの続編です(さらに続きはないでしょう)。 入門 Python3 を読んだ 入門 Python 3 作者: Bill Lubanovic,斎藤康毅,長尾高弘出版社/メーカー: オライリージャパン発売日:

    PythonでWebアプリケーション作る練習をした - はこべにっき ♨
    hatz48
    hatz48 2017/01/17
  • ピープルウェアを読んだ - はこべにっき ♨

    この前id:hitode909くんからピープルウェアを貰ったので読んだ。非常に面白くて、興味深い話が多かった。 ピープルウエア 第3版 作者: トム・デマルコ,ティモシー・リスター,松原友夫,山浦恒央出版社/メーカー: 日経BP社発売日: 2013/12/18メディア: 単行(ソフトカバー)この商品を含むブログ (6件) を見る このは、作者のトム・デマルコさんとティモシー・リスターさんが10年に及んだ調査と、自身のソフトウェア開発の経験をもとに、ソフトウェア開発における人に関する問題をたくさんのコラムを通じて教えてくれる。冒頭には以下のようにある。 実際のところ、ソフトウェア開発上の問題の多くは、技術的というより社会学的なものである。 いろんなレイヤにおける人の問題についてそれぞれ章がわかれていて、個人からオフィスやチーム、さらには会社組織のはなしへと続く。結構マネージャー視点ぽいコ

    ピープルウェアを読んだ - はこべにっき ♨
  • Scalaのfor comprehension - はこべにっき ♨

    Scala の for 文には、いろんな機能がある(参考: Scalacheat - Scala Documentation)。for comprehension というやつで、for文を書くと実際には対象オブジェクトのメソッド呼び出しに変換される。 val nestedList = List(List(1,2,3), List(4,5,6)) for { list <- nestedList num <- list } println(num) たとえばこのようにコードを書くと、実際には以下の様にforeachを使ったコードが実行されているらしい。 val nestedList = List(List(1,2,3), List(4,5,6)) nestedList.foreach({ list => list.foreach({ num => println(num) }) }) for

    Scalaのfor comprehension - はこべにっき ♨
  • ソフトウェアにうまい前提を与える - はこべにっき ♨

    ソフトウェア機能が、普通はユーザはこういう利用方法はしないだろう、という前提にもとづいて作られていることがある。 先日の経験を例に上げると、ちょっと理由があって自分のGmailの全メール一度にアーカイブ操作をしてみようとしたことがある。メールは8万件くらいあった。普通のユーザは一度に8万件もアーカイブ操作をしたりしないと思う。 実際に操作を実行してみたところ、「実行しています」というようなメッセージがしばらく表示された後、「リクエストの実行に問題が出ているようです」というようなメッセージが表示されてしまった。メッセージの内容は不安に感じるところがあったが、結果としては、すべてのメールがちゃんとアーカイブされため、大きな不満はなかった。 ユーザがこういうめちゃくちゃなことをすることは稀であり、一般的なリクエストのタイムアウトを過ぎたために、UIが問題を報告したのだと思う。実際にソフトウェアを

    ソフトウェアにうまい前提を与える - はこべにっき ♨
    hatz48
    hatz48 2013/12/29
    うまいことしたい。
  • Go言語の気に入ったところ/気に入らなかったところ - はこべにっき ♨

    二日間ほど集中してgo言語でコード書いたので、その間に感じたことをまとめてみます。普段はだいたいPerlJavaScriptでWebアプリケーションを書いています。 まとめの要約 go言語良い Webアプリケーション書くならPerlとかRubyが良い PerlとかRuby書ける人がミドルウェア書くならgo言語良い 気に入ったところ コンパイルエラーが親切 たとえば気楽な気持ちで以下のようなコードを書くと package main import ("fmt"; "net/http"; "log") func main() { resp := http.Get("http://hatenablog.com/") fmt.Println(math.Pi) } 以下のように丁寧に問題箇所を教えてくれます。 ./hoge.go:6: imported and not used: "log" ./h

    Go言語の気に入ったところ/気に入らなかったところ - はこべにっき ♨
    hatz48
    hatz48 2013/12/21
    わかりやすい
  • 型グロブ - はこべにっき ♨

    型グロブはある名前を持つ変数をすべて持っているような特殊な型だ。*symという風に識別子に*をつけると得ることができる。*はワイルドカードの意味として使われてて、そこにはどんな記号でもはいるってことか。 型グロブをハッシュのように扱うと、各型のリファレンスを得ることができる。 *sym{SCALAR} # \$sym *sym{ARRAY} # \@sym *sym{HASH} # \%sym *sym{CODE} # \&sym *sym{GLOB} # \*sym *sym{IO} # ????? 型グロブから型グロブへの代入は、識別子のエイリアスを作ることになる。 $foo = 'hakobe'; @foo = (0,1,2); *bar = *foo; print "$bar\n"; print "@bar\n"; のようにすると、fooという名前の変数とbarという名前の変数はま

    型グロブ - はこべにっき ♨
    hatz48
    hatz48 2012/06/18
  • 1