General-purpose Programming Language implemented with Go and LLVM. Presentation at Go Con Spring 2017
General-purpose Programming Language implemented with Go and LLVM. Presentation at Go Con Spring 2017
When writing an HTTP server or client in Go, timeouts are amongst the easiest and most subtle things to get wrong: there’s many to choose from, and a mistake can have no consequences for a long time, until the network glitches and the process hangs. HTTP is a complex multi-stage protocol, so there's no one-size fits all solution to timeouts. Think about a streaming endpoint versus a JSON API versu
【追記】この記事をきっかけに、名著「ノンデザイナーズ・デザインブック」の20周年記念特典eBookの制作に協力させていただきました。詳しくはこちらを御覧ください。 ノンデザイナーズ・デザインブック20周年記念の特典に寄稿しました デザイナーである・なしに関わらず、仕事の中で伝えたいことを「図」で説明する機会は多々あります。提案書で事業内容を説明することもあるでしょうし、具体的な数値をグラフで説明することもあるでしょう。そんな中でこんな指摘を受けたことはありませんか? ・最終的に何を言いたいのか結論が見えないよ。 ・関係性が複雑すぎて理解しずらいんだけど。 ・要素が多すぎて全てを把握するのが大変。 ・何をどこから見れば良いの? ・結局一番言いたいことはなんなの? ・文字サイズがたくさんありすぎてまとまりがないね。 ・安っぽいチラシみたいでダサイなぁ。 ・全体的にバランスが偏ってて不安定。 ・
TLS 1.3は現在策定中ですが、 前方秘匿性 の問題から RSAのみ を用いた鍵委共有が禁止になる見込みです。(詳細は後述します) HTTPSとは 次に、HTTPSです。 HTTPS - Wikipedia HTTPS(Hypertext Transfer Protocol Secure)は、HTTPによる通信を安全に(セキュアに)行うためのプロトコルおよびURIスキームである。 厳密に言えば、HTTPS自体はプロトコルではなく、SSL/TLSプロトコルによって提供される セキュアな接続の上でHTTP通信を行うこと をHTTPSと呼んでいる。 とのことです。 HTTPの説明を割愛するとすれば、「SSL/TLSでセキュアにHTTPをやる」というだけの説明で済んでしまいます。 最近では個人情報等の観点から全てのサイトをHTTPSにするような動きが見られますが、元々HTTPSが使われやすかった
class: center, middle # Implicit 再入門 Scala関西Summit 2016/10/08 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * 株式会社 Tech to Value * Japan Scala Association --- class: left, middle # [Scala Matsuri 2017](http://2017.scalamatsuri.org/) ## CFPとスポンサー募集中! --- class: center, middle ## **Implicit** と聞いて ## まず何を思い浮かべるでしょうか? --- class: center, middle ##
#関数型なんたら でGCの話を聴いて、SML#のGCの論文を読んで色々感じたのでエントリー。 Snapshot GC まず、湯浅先生のSnapshot GC (解説)。並列、並行、インクリメンタルにGCが出来る。恐らく一番性能が出るとのこと。解説ではmark & sweepだけど私が聴いたのはCopyingだった。 勿論並行にするにはライトバリアが必要なんだけどその辺にまつわる話。並行じゃなくても世代別GCでもライトバリアが必要になるからその辺も頭に入れて聴いてほしい。Copyingはアロケーションが鬼のように速いのが特徴。mallocの感覚でメモリ確保が重いとか思ってると感覚が狂う。なので新たなオブジェクトを作るコストは非常に低い。そこにオブジェクトの変更にはライトバリアが付くとなると、大きくないオブジェクトの場合 オブジェクトを変更するより新たに作った方がコストが低くなる 。一応言って
You can find discussions on Hacker News and Reddit I’ve seen a bunch of articles lately which promote the Go language’s latest garbage collector in ways that trouble me. Some of these articles come from the Go project itself. They make claims that imply a radical breakthrough in GC technology has occurred. Here is the initial announcement of a new collector in August 2015: Go is building a garbage
私も「テクニカルエバンジェリスト」などという大層な肩書を会社からいただいており、講演や連載記事などの執筆を行っていますが、私のプレゼン技術は数年前にMSの西脇さんのプレゼンセミナーに参加させていただいて学んだものがほとんどで、正直言うとこのような記事を書いて講釈を垂れるような立場ではありません。 しかし、直近で西脇さんのセミナーがないということと、会社も大きくなり同僚が増えていく中で、速やかに自分のプレゼン技術を共有しなければならないという状況になったため、恥ずかしながら自分なりの方法を説明するためにこの記事を執筆することにしました。 プレゼンとは銘打っていますが、実際にはプレゼンだけでなく、ブログの記事執筆などさまざまな表現の場で活用することができます。"present"とは「伝える」「表現する」という意味であることからもわかるかと思います。 著者の経験 公開イベントでのプレゼンは、小さ
Writing assembly language is something best left for the experts. To write code that runs directly on your microprocessor you need to know how memory segmentation works, what the intended use of each register is, how codes executes in real and protected modes and much, much more. And, of course, modern compilers will usually produce faster, more optimized code than you ever could, without making a
コンパイラを作ってみたいと思っていても、アセンブリ言語はよくわからない。 パーサーみたいなコードは書いたことがあるけれど、コード生成の処理はさっぱりだ。 実行ファイルをバイナリエディターで見るとかなにそれ怖い。 そんな私なのですが、LLVMに興味を持ち始めています。 SwiftやRust、あるいはEmscriptenなど、近年注目されている言語やコンパイラ技術の中枢にはLLVMがあります。 アセンブリはよく分からなくてもLLVMを使いこなせるようになれば、マルチプラットフォームで実行ファイルを生成できる言語処理系を作るのではないか。 コンパイラ作ってみたいな、LLVMを使ってみようかなと思っている今日このごろです。 ところが、いざLLVMを勉強しようと思ってもどこから始めればいいかよく分かりませんでした。 マニュアルは巨大で読む気が起きないし、リファレンスを見てもさっぱりです。 雰囲気はわ
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
xkcdとは 世界一で最も人気のあるウェブ漫画の一つです xkcd: Code Quality 3 ランダル・マンローが2005年9月に開設 皮肉や風刺が得意。理系ネタが結構多い。 現在は週3回更新されている キャラやフォントが特徴的 これとか皮肉が効いてていいですね!好きです A : 寝ないの? B : 寝られないんだ、大事なことがある A : なによ? B : 誰かがインターネットでボロを出してるんだ xkcd: Duty Calls 実はmatplotlibを使えば、グラフをxkcd風に仕立てられます。しかもたった一行で!今回はその紹介をします xkcdとは matplotlibで、xkcd requirement 使い方 MatplotlibのHPもxkcd風に サンプルを見てみる 3D 円グラフ 最後に matplotlibで、xkcd requirement matplotli
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? リキッドレイアウトのように幅が常に変動するレイアウトのデザインは、動かないカンプからは実際の挙動が読み取れず、デザイナーの意図が汲み取りきれないことが多い。また、複雑化するアニメーションの実装においても、カンプだけではコミュニケーションに不備が生まれてしまう。ほかにも、CMSを使った案件ではデザインカンプと実際のデータの間に齟齬がある可能性もある。 実装効率を高めてスケジュール通りに仕事を終わらせるには、とにかく事前に仕様を固めることが大事だ。ワイヤーフレームやデザインの途中の段階からなるべくデザイナーとコミュニケーションを重ね、想定外
今回は私が今までチームマネジメントやヒューマンマネジメントを通して学んだTIPSを整理してみたいと思います。 マネジメント(≒コミュニケーション)を支える技術について都度メモして、自分への戒めとして利用していたものを箇条書きにまとめました。 ある特定の状況だけでしか適用できないものが多いですが、応用はいろいろ効くと思っています。 マネジメントの立場にこれからチャレンジしていきたい人の一助になればと思ってます。 ※自分向けのメモを整理しただけなので、一般的にこうあるべきという内容ではありません。 会議編 -全員の参加を促そう 全員の発言機会が均等になっているか常に意識しよう 一言でも意見を言うことによって、その議題を決めたという意識を持てる - 自分自身(チーム自身)で決めたという感覚に落としもう 「決められたこと」ではなく、「自分たちで決めたこと」という意識を促そう その決定が実行されなか
究極のマッシュポテトをつくるには? マッシュポテトは昔からある料理ですが、専門店ができるなど根強い人気があります。今日は家でもできる『究極のマッシュポテト』をご紹介します。 世界一のマッシュポテトと聞くと、ジョエル・ロブションの『じゃがいものピュレ』が挙げられます。ジョエル・ロブションがまだジャマンという店のオーナーシェフだった時代に発表したこの料理について、彼はのちに「自分が三ツ星を穫れたのはじゃがいものピュレとグリーンサラダのおかげ」と語っています。 では、おいしいじゃがいものピュレとはなんでしょう? それはさらりとした口溶けで、少しも粘ついてなく、豊かな風味のものです。反対にまずいマッシュポテトは糊のようにベタつき、口や歯にくっつき、舌に膜がかかったようになるもの。今日はそれを避ける方法をいくつかお教えします。 マッシュポテト (ジェフリー・スタインガーデンとヘストン・ブルメンタール
築地にて牡丹海老を四尾買いました 昨年11月に築地場外にオープンした「築地魚河岸」にて、牡丹海老を買いました。「築地魚河岸」は午前5時から9時まではプロ向け、9時以降は一般の人も買い物できるという施設です。小分けになっている代わりに割高という観光客向けの商品もありますが、よく探すと珍しいものや面白いものも見つかります。場内よりは歩きやすく商品についての説明も聞きやすく、場外より混み合ってもいないので、べんりに利用しています。 写真の大きな牡丹海老はロシア産で1尾250円でした。 牡丹海老を刺身で食べる 買ってきた海老を真水でざっと洗い、殻を取り除き、腹開きにして背ワタを取り、調理酒で洗います。その後、琺瑯のタッパーの中に脱水シート(なければキッチンペーパー)をしいて、海老をのせて軽く塩をして、蓋をして冷蔵庫で半日ほど寝かせました。 大木代吉本店 福島県 こんにちは料理酒 720ml 出版社
Rust は、Firefox を開発する Mozilla が開発し、次世代ブラウザの開発に使っているプログラミング言語です。借用検査という概念を導入することによりメモリ安全およびデータ競合安全をコンパイラが保証する言語であり、2015年中頃の安定版のリリースあたりから次第に注目を集めるようになりました。 メモリ安全とは、メモリの範囲外アクセスや二重解放、ヌル参照、未初期化領域へのアクセスがない状態を表します。ただし、Rust の言うメモリ安全とは、メモリリークをしないことを保証するものではありません。 データ競合安全とは、あるひとつのオブジェクトに対しての読み込みおよび書き込みのが同時に起き結果が不定になる状態にならないことを表します。競合状態とは異なります。 無名関数という概念を様々な言語が次々と導入したように、プログラミング言語は相互に影響を及ぼし徐々に変化しています。Rust は「寿
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く