タグ

programmingに関するrskyのブックマーク (40)

  • Goならわかるシステムプログラミング第2版が出たので書評しますね - moriyoshiの日記

    少し前になりますが、3月23日に、渋川よしきさんの著された「Goならわかるシステムプログラミング 第2版 」が発売されました。初版と比べてかなり加筆されておりパワーアップしているので、初版をすでにお持ちの方でもさらに興味深く読むことのできる内容に仕上がっている、というのが第一印象です。 残念ながら初版発売時に記事にする機会がなかったのですが、あらためて今回書評したいなと思いましたので、徒然書いていきたいと思います。 このは実はシステムプログラミングのではないかもしれない 「システムプログラミング」とは何でしょう。正直私にもわかりません。その語をはじめに思い浮かべた人は、プログラミングという概念のその中にあえて「システムプログラミング」という分類を作ろうと思い至ったということですから、きっと「非システムプログラミング」というものもあるということでしょう。知らんけど。しかし、これは書の位

    Goならわかるシステムプログラミング第2版が出たので書評しますね - moriyoshiの日記
    rsky
    rsky 2022/05/18
    読み物として非常に面白かった。moriyoshi++
  • Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run

    KOBA789 です。みなさん DBMS は好きですか。私は好きです。 最近、自作 DBMS をずっと作っていて、ようやく最低限の機能ができたので公開をしました。 (とはいえコードを書いていたのは正味2日ほど。設計と勉強に2週間かかった) github.com この記事ではこれを作った目的と、そのちょっとした詳細についてご紹介します。 目的 Disk-Oriented DBMS の学習に適している Rust で書かれた実装が欲しかった、というのが理由です。 DBMS の勉強に適している実装というのは意外と多くありません。 MySQL や PostgreSQL といった有名な実装は実用的である一方でコード量は非常に多く、また細かな最適化によって教科書的なアルゴリズムと実際のコードの差が大きくなっているため、初学者にとっては構造を把握しづらくなっています。 教科書的な実装の Disk-Orie

    Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • AtCoderでの勉強の仕方(コンテスト編) - chokudaiのブログ

    AtCoder (アットコーダー) 毎週アルゴリズム系のプログラミングコンテストを開催しているAtCoderですが、それを使って、どのように勉強すれば良いのか?というのは、結構困っている人がいるようです。 そこで、社長お勧めの、誰でも簡単に続けられる勉強方法を伝授します。 1、コンテストに参加する とりあえず、AtCoderで勉強をしたいなら、過去問を解くより、リアルタイムのコンテストに参加することがお勧めです。 自分ではなかなか勉強する気が起こらない・・・。という人でも、時間が決まったコンテストであれば参加できる、という人は多くいるようです。 たまに開催出来ないことがありますが、毎週土曜日、午後9時から10時半、または11時まで、コンテストが開催されています。 ある程度コンテストに慣れた人向けのAtCoder Regular Contestと、初心者~中級者向けのAtCoder Begi

    AtCoderでの勉強の仕方(コンテスト編) - chokudaiのブログ
  • 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary

    original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,

    【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
  • CC500: a tiny self-hosting C compiler

    Introduction I wrote this tiny compiler, which translates a subset of C into x86 machine code, for fun. It has no use, unless it counts as educational. I called it CC500 because I initally guessed it would take about 500 lines. It turned out to be about 600 lines even without the comments and blank lines. With the comments and blank lines it has about 750 lines. It could be made shorter, but I wan

  • コード内で「現時刻」を気軽に取得してはいけない | Nekoya press

    日付を扱う処理についていろいろまとめたついでに、わりと簡単なことだけど知らないと落とし穴にハマる系のネタを。 日頃いろいろな処理を書いていて、現時刻を扱うこともは少なくないはずです。ですが、これを適当にやっていると困ることが多々あります。 実行中に「現時刻」を元にした処理がい違う 例えばこんなコード。ログ集計とかやってるイメージです。 class Analyzer(object): def analyze(self): logfile = datetime.datetime.now().strftime('my_log_file.%H') self.save(self.analyze_logfile(logfile)) def save(self, result): now = datetime.datetime.now() self.result[now.hour] = result

  • STGの敵の出現パターンとか、敵の飛行曲線とか、弾幕とかを安直に書くための言語STGL作った - ABAの日誌

    STGL demo (http://abagames.sakura.ne.jp/stgl/) 上のページ行って、「START」ボタン押せば遊べます。左に書いてあるのがSTGL。 大昔に弾幕を書くための言語としてBulletMLってのを作ったけど、これは弾幕専用なので、敵の飛行曲線とかは書けなかった。あとXMLなので記述が冗長。この辺がかねてから不満だった。 飛行曲線、もっといえばステージパターンも含めて、STGの基動作を安直に書ける方法があればいいのになー、ってのは前から思ってたんだけど、なかなかうまい方法が見つからなかった。いろいろ考えた結果、とりあえず今回のSTGLっていうのに落ち着いた。これがベストではないだろうが、それなりに簡易な言語仕様でまあまあいろいろ書けるというバランスにしたつもり。 STGLの特徴としては、 1関数 = 1アクター なので関数呼び出し=アクターの生成。 ア

    STGの敵の出現パターンとか、敵の飛行曲線とか、弾幕とかを安直に書くための言語STGL作った - ABAの日誌
    rsky
    rsky 2013/03/13
    “STGの敵の出現パターンとか、敵の飛行曲線とか、弾幕とかを安直に書くための言語STGL作った”
  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • 例外設計における大罪 - 契約

    PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624

    例外設計における大罪 - 契約
    rsky
    rsky 2013/01/28
    よく過剰防衛してしまうので気をつける
  • プログラミング、これからの10 年 (pdf)

    rsky
    rsky 2012/09/08
    千葉先生の予知能力に震える
  • JCR 2.0 SQL-2 Grammar

    These railroad diagrams are based on the JCR 2.0 specification. The diagrams are created with a small Java program and this BNF. The program uses the BNF parser / converter of the the H2 database engine. Please send feedback to the Jackrabbit User List. Query

  • 現代ゲームデザイナー向け基礎教養本::Colorful Pieces of Game

    の5つの要素技術について、僕が大いに参考にしているを並べる次第。もちろん、自分の浅学菲才をなんとかするために、日夜参考にするレベルw 実は、これ全部横には並べてあるのだけど、なんの説明もしていないも同然だし、一度自分自身の整理もかねてレビューを書いておこうという次第。 もちろん、あなたが天才なら、こんなものいらない。 世の中には、普通の人が壁になって苦しむことを簡単に乗り越えていく超人がウン万人に一人ぐらいいる。そしてそういう人はみんな「え? なんか難しい?」とか平気で言う。 けれど、たいていの人(もちろん僕も含めてw)は、そうじゃない。そして、そうじゃない人にとっては、こういう困ったときに立ち返れる基礎知識はとても大事だと思っている。 ■ゲームエンジン・アーキテクチャ ともかく長い・デカいだけど、近代的なゲームエンジンに必要とされている要素のすべてについて、ほぼ網羅的に解説されている

  • volnitsky: Boyer-Mooreより高速な文字列検索アルゴリズム? - karasuyamatenguの日記

    http://volnitsky.com/project/str_search/ 開発したアルゴリズムに自ら自分の名前を付けている度胸が気にいった。普通そういうのって、周りから呼ばれてそうなると思うんだが… ps3やwiiを含む10以上のプラットフォームで複数の既存アルゴリズムと比較している徹底ぶりだ。実装はstlのC++で1ページ。 査読付き学術雑誌で発表しないでいきなりウェブに公開されたこのアリゴリズム。物かどうか、ハッカーによる検証を待つしかない。 グリゴリー・ペレルマンもポアンカレ予想の解決を学術雑誌抜きでいきなりネットで公開したからありえるな。

    volnitsky: Boyer-Mooreより高速な文字列検索アルゴリズム? - karasuyamatenguの日記
  • 今年の年賀状ネタ - 桜花な日々

    去年(http://d.hatena.ne.jp/rofi/20100417/1271519352)に引き続き今年もやりました。 長いので詳細は続きから。 今年のネタ みなさん今年の干支は何でしょうか? そうですね、みなさん大好きうさみみ年兎年ですね! ということで今年のネタはこれです! #include <stdio.h>/* q=" =;;; $a= 'us' .'a' .'c' .'c' ;; $a=~ s/c/mi/g ;print $a; exit(); q&*/ #/**/ define p(c) putc(c ,stdout ) void pr( char *s, int/* */ e) {char *t =s ;for (; *s ;++s){ /* */ switch( *s ){ case 96: if (e) p(*s);else pr (t ,1);break; /

    今年の年賀状ネタ - 桜花な日々
    rsky
    rsky 2011/01/10
    “後にそれぞれの詳細は述べますが、このようにひとつのソースを複数の言語で実行できるものをpolyglotと言うそうです。”
  • そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな

    Java入門ブックガイド(入門編)よりよき入門書と出会うために」を読んで。 第一印象として、よりよきJava入門ブックガイドに出会う必要があるなということ。 コマンドラインでは慣れ親しめない サブタイトルに「慣れ親しむことが上達の秘訣」とあるけども、コマンドラインで慣れ親しむのは難しいと思います。 「慣れ親しむことが上達の秘訣」が正しいのであれば、IDEで慣れ親しんだほうが上達するのではないでしょうか? 現実問題として、書籍を買って勉強する人は強制されて勉強するわけではないです。自分の時間をやりくりして入門書を読んでいます。 そして、まだプログラムの面白さを知りません。 コマンドラインでコンパイルエラーが出たとき、じっくりとそのエラーを読み解くのではなく、そこでくじけてやめる可能性が高いと思われます。 それよりは、IDEでエラーを入力段階で修正しつつ進むほうがいいと思います。 javac

    そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな
  • プログラミング言語 「天使ちゃんマジ天使」と「ブブゼラ」を作ってみたよ - ( ꒪⌓꒪) ゆるよろ日記

    今AngelBeats!見てます。天使ちゃんマジ天使でいいと思います。 で、だいぶ前に作ったScala版のちょっと草植えときますね型言語 Grassを改造して、プログラミング言語 「天使ちゃんマジ天使」とプログラミング言語 「ブブゼラ」を作ってみたよ。 Grassは、id:uenoB 作の型無しラムダ計算がベースをした関数型言語らしいです。(6/22追記) ちょっと草植えときますね型言語 Grassについてはこちら。 世界で最初のGrassプログラム - Garage uenoB ちょっと草植えときますね型言語 Grass プログラミング言語 「天使ちゃんマジ天使」 ちょっと草植えときますね型言語 Grassの派生言語というかまんまです。 Grassで使用する文字(w,W,v)をそれぞれ(天使, マジ, ! )に置き換えただけです。 wを出力するプログラム: 天使ちゃんマジマジ天使天使ちゃ

    プログラミング言語 「天使ちゃんマジ天使」と「ブブゼラ」を作ってみたよ - ( ꒪⌓꒪) ゆるよろ日記
  • Web アプリの MVC 設計まとめ - もやし日記

    MVC 設計について考えていたときに、ちょうどその辺りの話をされている方々が居たので、今の考えをまとめてみました。 目次 前提 肥大化するコントローラを避ける ビジネスロジックをどこに書けば良いのか コントローラとモデルの間にもう一つの層があるとうまくいく? まとめ 前提対象は Web アプリケーションで、画面数(ビューの数)は数個〜100個程度の規模です。WordPressTwitter、37signals のサービスのようなものを作ろうとするとき、どういう MVC 設計をしていくかについて考えます。巨大なシステム、金融系システム、基幹系システムなどを作る場合とは異なる考え方もあると思います(そもそも MVC を使わない、など)。 肥大化するコントローラを避ける例えば、八百屋さんで「60円で仕入れたリンゴ1つを100円で売った」こと(Sales Transaction)を記録する場合を

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • そろそろ FizzBuzz に飽きた : にぽたん研究所

    コードサンプルによく出てくる FizzBuzz だが、もう飽きたから、俺はこれから NabeAtzz で行こうと思う。 use strict; use warnings; use Encode; use Lingua::JA::Numbers; for my $num ( 1 .. 40 ) { print((!($num % 3) || $num =~ /3/ ? encode('utf8', num2ja($num, +{ style => "hiragana" })) : $num), "\n"); } 期待する結果: 実行結果: % ./NabeAtzz.pl 1 2 さん 4 5 ろく 7 8 きゅう 10 11 じゅうに じゅうさん 14 じゅうご 16 17 じゅうはち 19 20 にじゅういち 22 にじゅうさん にじゅうよん 25 26 にじゅうなな 28 29 さんじゅ

    そろそろ FizzBuzz に飽きた : にぽたん研究所