You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
2018年の夏に僕はセキュリティキャンプ(以下「セキュキャン」)というイベントでCコンパイラ作成コースの授業を行いました。授業はとてもうまくいったといってよいと思います。参加者は6人だったのですが、6人全員プログラミング技術がかなり飛躍的に向上したようですし、そのうち3人は期間中にセルフホスト(自分の書いているコンパイラで自分のコンパイラ自身をコンパイルできること)まで漕ぎ着けることができました。 この文章では、その授業をどのように僕が教えたのかということと、生徒にできるだけ多くのことを学んでもらって自信をつけてもらうために僕が何を気をつけていたのかという2つの点について説明します。 セキュキャンとはセキュキャンは5日間の合宿イベントで、学生を対象としてコンピュータセキュリティやプログラミングについて教えるというものです。いくつものコースが用意されているのですが、僕が受け持ったのは「集中コ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んだ。 なぜソースコードを綺麗に書くのかから始まり、オブジェクト指向、コンポーネントの原則、アーキテクチャと体系的にまとまっている良い内容だった。 この記事では、本書の内容の引用を踏まえながら自分の考えの振り返りをまとめたものである。 実際にGoで実装したりしたので、なにか間違いなどあれば指摘していただきたい。 クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた 対象読者 ・Clean Architecture 達人に学ぶソフトウェアの
UNIX 開発者の一人である Ken Thompson が初期の UNIX にバックドアを仕掛けていたと言われている通称 Thompson hack を自作Cコンパイラで再現してみました。 Thompson hack は UNIX のログイン処理のコンパイル時にバックドアを仕掛けるようなコンパイラを作り、さらにコンパイラのソースコードからその痕跡を消し去るという神業です。 元ネタは Reflections on Trusting Trust という1983年に Ken Thompson が Dennis Ritchie と共にチューリング賞を受賞した際の記念公演です。 Ken Tohmpson はこの細工をしたコンパイラを配布したことはないと主張しているそうですが、このバックドアを利用したと見られる不審なログインがあったという報告もあったとのことで、実際にはベル研究所の外部に配布されていた
エンジニアを目指して今プログラミングを勉強している人向けに、開発に関してより知識を深められる新人研修スライドをまとめました。 Progateやプログラミングスクールだけでは学べない内容ばかりなので、新人エンジニアの人は目を通しておくといいです。 各企業で新人研修で実際に使われた資料なので、どんなことが開発の現場では求められるのかということが掴めます。 ここにある内容を100%理解することは難しいですが、少なからずインターンや就職をする時に役立つはずです(わからない箇所は本などを読んで補足しましょう)。 ▶プログラミングを効率良く勉強したい人はこちらの記事 もオススメ 全員共通で読むべきスライド Cookpad★ この資料で学べること リクルートテクノロジーズ★ この資料で学べること Git/コードレビュー GMOペパボ この資料で学べること GMOペパボ この資料で学べること GMOペパボ
A modern web staple. Grain is a new language that puts academic language features to work. Let's Go Powered by WebAssembly Enter the future. Grain compiles directly to WebAssembly, taking full advantage of its speed and efficiency. Sensible Types No runtime type errors, ever. Every bit of Grain you write is thoroughly sifted for type errors, with no need for type annotations. Our Vision Grain aims
This website uses cookies for account and order processing. By using this site you understand and agree to our use of cookies, our Terms Of Use, and Privacy Policy Alec Sharp, in the recent book Smalltalk by Example [SHARP], points up a very valuable lesson in few words: Procedural code gets information then makes decisions. Object-oriented code tells objects to do things. — Alec Sharp That is, yo
大学生3年生の子に「私プログラミングの才能がないのでしょうか?」という質問をいただいた。色々考えさせられる質問だったのでnoteにも共有してみたいと思う。 彼女の学科では全員、ぷよぷよで対戦するプログラムを作っているらしい。彼女自身も頑張ったが、トップレベルの人たちにはとても勝てそうにないと感じているそうだ。果たして彼女は才能ないのだろうか? 才能とはなんだろうか? 3月と4月生まれの子は本質的は差がない。あるのは唯一学年が異なることだろう。4月生まれの子は小学一年生の時点ではかなりのアドバンテージを持っているのだ。その結果勝てるのでどんどん楽しくなる。これが才能なのだろうか?ぷよぷよで勝ち始めた子達はその時点で4月生まれになったのだ。彼女が才能がないんじゃないかと自分を疑っている間にも、どんどん4月生まれ達は上手くなっていくのだ。 4月生まれがどんどん走っていくので追いつけない?実際には
プログラミングに関する格言みたいなのは昔から結構あって、例えばYAGNIみたいに日本でも十分浸透してるのは多いんだけど、やっぱり新しい概念はどんどん生まれていくので追いかけていると面白い。 というわけで、最近知った中でもっと日本でも言及されても良いと思ったやつを3つ紹介。 Simple Made Easy Rich Hickey(Clojure言語の作者)による講演(2011年)のタイトル。全文はここで読める。英語しんどくてPOSTDに投げたんだけど音沙汰がない。まだ全部見てないから和訳欲しい。 内容としては、みんな安易に「簡単」なものを選びがちだけど「シンプル」なものの方が価値あるぜ、というもの。曰く、「シンプル」は絶対的・客観的な指標だけど「簡単」は相対的・主観的なもの。例えば英語の話者にとってドイツ語は難しいが、それは自分にとって「遠い」存在であるだけで悪いものじゃない。 「慣れてい
「3台のディスプレイで描かれる広大なステージ」「魚介類を模した巨大ボス」「プレイヤーの選択で攻略ルートが分岐」など、画期的な設計で知られるアーケードゲーム「ダライアス」(1986年/タイトー)。この名作シューティングを、個人でメガドライブへ移植した猛者が現れました。完成度半端ない。
2015年7月(46歳)から始めた、「C言語でのゲームプログラミングの学習」。当初の目標をほぼ達成することができました。「メガドライブ版ダライアス」完成です。C言語の勉強を始めてから約3年かかりました。ゲームバランス調整、動作確認、バグ修正などまだまだ改善の余地がありそうなので念のためβ版としています。 中学生の頃に一度挫折したゲームプログラミングですが、最近は沢山の書籍や、ネットでも多くの情報を得ることができます。またゲームプログラミングに必要なソフトも充実しています。 *ドットエディタ(EDGE, Photoshop)や、音楽作成ツール (DefleMask, VGM Maker)、秀逸なメガドライブ開発ツールであるSGDKなど。 またブログやツイッターでの皆様からの暖かいアドバイスや応援のメッセージのお陰で、モチベーションを3年間も維持することができました。自分だけの力では途中で挫折
Rubyコミッター・Yuguiに学ぶ、コードに書くべき「適切なコメント」と「適切な場所」 Rubyコミッター・園田裕貴(Yugui)さんが、長年の経験で体得したソースコードに書くべき「コメントの技法」を教えてくれました。 プログラミングにおいて、どんな初心者でも書けるけれど、適切に書くのは上級者でないと難しいもの。それがコメント(=ソースコードに書かれている注釈やメモ)です。 不適切なコメントをつけても、プログラムの動作には影響しません。しかし、書き方の巧拙によって、コードの可読性や理解のしやすさには雲泥の差が出ます。良質なコメントが良質なコードをつくるのです。 今回はRubyコミッターでありgrpc-gatewayの開発者でもあるSupership株式会社の園田裕貴(Yugui)さんに、優れたエンジニアがどんな観点を持ち、どんなコメントを書いているのかを聞きました。 園田 裕貴(そのだ・
使いたい人のための継続入門継続渡し形式call/ccは普通の関数call-with系関数call-with-procedurecall-with-continuation-procedurecall-with-current-continuation評価順序と継続call/ccパズルお手元マルチスレッド部分継続reset/pcとcall/pc環境破壊と部分継続部分継続の使用法PRINT-AND-NEXT-REPL議論質問お手元マルチスレッドのサンプルプログラムについて 使いたい人のための継続入門 とりあえず殴り書き。 くどかったり冗長な文章になってたり、重複してたり、間違ってたり、 おおいなる勘違いをしてたり、恥をカいてたりするかもしれないけどご愛敬。 藁をもつかみたい気持ちで継続を使えるようになりたい人は読んでみてください。 ただし所詮は藁です。(w 継続渡し形式 例によって階乗fact
Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を紐
プログラマーはクソコードが大好きです。プログラマーが仕事を進める上でクソコードは本来全力で回避するべき対象であるにも関わらず、プログラマーはクソコードの話題が大好きです。みんな張り切って自分が経験してきたクソコードの話で盛り上がります。 昨日こんなツイートをしました。 プログラマーとして数年経験していれば誰でもクソコードの1つや2つ見たことあると思いますが、今まで「これはクソ」と思ったコードにはどんなものがありましたか?リプ欄で共有いただければ幸いです。 — 米村歩@日本一残業の少ないIT企業社長 (@yonemura2006) April 26, 2018 そうしたら出るわ出るわ。皆さんのクソコード事例集があっという間に集合知として蓄積されていきました。エンジニアであれば誰しもクソコードの話題では盛り上がらざるを得ないわけですが、今回上記のツイートを私はある意図があって投稿しました。 そ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く