タグ

ブックマーク / keens.github.io (14)

  • プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog

    κeenです。最近JEITAのソフトウェアエンジニアリング技術ワークショップ2020に参加したんですが、そこで五十嵐先生、柴田さん、Matzとパネルティスカッションをしました。その議論が面白かったので個人的に話を広げようと思います。 年末年始休暇に書き始めたんですが体調を崩したりと色々あって執筆に時間がかかってしまいました。 時間を置いて文章を書き足していったので継ぎ接ぎ感のある文体になってるかもしれませんがご容赦下さい。 というのを踏まえて以下をお読み下さい。 いくつか議題があったのですが、ここで拾うのは一番最後の「プログラミング言語の未来はどうなるか」という話題です。 アーカイブが1月末まで残るようです。もうあと数日しかありませんが間に合うかたはご覧下さい。 そのとき各人の回答を要約すると以下でした。 五十嵐先生:DSLを簡単に作れる言語というのが重要。それとプログラム検証、プログラム

    プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
  • 論文メモ: HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack | κeenのHappy Hacκing Blog

    G. Ottoni. “HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack,” PLDI 2018 を読んだメモ。 PLDIのaccepted paper。FacebookよりHHVMの第2世代JITエンジンで使われている手法の紹介。 Method JITでもTracing JITでもなくRegionベースでJITする話。 HHVMはHackとPHPを動かすが、Hackの型情報は捨ててしまう。Hackの型システムはunsoundらしい。世知辛い。 バイトコードインタプリタとJITでOSRして相互に実行を交代できる「よくある」JITエンジン。 HHVMのJITでは以下の4つをしている。 type specialization profile-guided optimizations side exits reg

    論文メモ: HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack | κeenのHappy Hacκing Blog
  • プログラミングを目的にしてもいいと思う | κeenのHappy Hacκing Blog

    文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigainoteという記事を読みました。 この記事に書かれていることが私の身にも覚えがあります。特に私と同い年の方のようなので自分に重ねてしまうところもあります。 ですが多少似たところはあってもやっぱり他人なので全然違う体験もしています。そういう体験を書いてみようと思います。もし該当記事を読んで絶望した人がいるなら別の例もあるよということで参考にしてください。 私は「パソコンの中身が知りたい。多分プログラミングとかいうやつを勉強したら分かる気がする。」くらいのモチベーションでプログラミングをはじめました。 ゴールがあやふやですし、結局のところ「プログラミングをする」が目標になってるので迷子になるのは必至ですね。実際そういう時期がありました。 そんな私でも今はプログラマとして生きています。以下に、私が遭遇した課題とそ

    プログラミングを目的にしてもいいと思う | κeenのHappy Hacκing Blog
  • isucon7予選のアプリをRustに移植したから解説するね | κeenのHappy Hacκing Blog

    κeenです。こういう流れがあったので移植しました。 keenさんが「2028年、Rust でイケてる web application framework はこれだ!」みたいな記事を書くとと "余力" が生まれるかもしれません…!! — FUJI Goro (@__gfx__) 2018年8月28日 まずISUCONを知らない方に雑に説明しておくと、意図的に遅く作られたWebアプリケーションが与えられるので7時間くらいでどれくらい高速化できるかを競うコンテストです。 このお題のWebアプリケーションが参加者や流行りに合わせて複数言語で提供されるのですが、今年はRustが来そうだということで参加者の肩慣らしのために過去問を移植しましたというお話。 ひとまずソースコードは こちら 手元でベンチマークをしてみた限り、Pythonの2倍くらいは速いもののGoには劣るようでした。これの考察については

    isucon7予選のアプリをRustに移植したから解説するね | κeenのHappy Hacκing Blog
  • 雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog

    κeenです。雰囲気でシェルを使ってる人が多いとのことだったので少しばかり込み入った知識を。 あと一応POSIX準拠かどうかも気にしながらやっていきます。 基礎知識編 シェルの種類 まず、POSIXにシェルが定義されています。 これに最低限の機能で準拠しているものをPOSIXシェルと呼ぶことにします。いわゆる/bin/shです。具体的な実装はbsh、ash、dashあたりでしょうか。 最低限の機能以上に色々拡張されているシェルを拡張POSIXシェルと呼ぶことにします。具体的な実装はbash、zsh、kshなどでしょうか。 ここでは触れませんがPOSIX準拠でないシェルも存在してcshやtcshなどのシェルがあります。あと確か最近話題のfishも違ったような。 さて、1つ問題になるのは普段使いのコマンドラインはおおむね拡張POSIXシェルでしょうが、サーバで使うシェルやデプロイスクリプトで呼

    雰囲気でシェルを使っている人のためのシェル入門 | κeenのHappy Hacκing Blog
  • 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog

    κeenです。最近同期/非同期、ブロッキング/ノンブロッキング、直接形式/継続渡し形式あたりが混乱してきたので個人的に整理します。 あくまで私個人の理解を纏めただけなので誤謬などに注意して下さい。 追記: @tanaka_akrさんから指摘されたのですが、用語の説明が間違っていそうだったので書き直しました。 diffはこちら 非同期とノンブロッキングはよく混同されます。また、非同期処理の記述形式として直接形式や継続渡し形式などがあります。 私自身違う言葉だなとは思いつつも混同したり違いを忘れたりしています。 非同期もノンブロッキングもナイーブなIOに比べると速い方式だな程度の理解でいてそんなに困らないと思ってますし混同や誤用に目くじらを立てるつもりもありません。 しかしながら3者を区別しないと意味を成さない文脈で3者を混同している技術を何度か見掛けたので(自分の中で)整理しようと思ったのが

    非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
  • メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog

    κeenです。 今回の話は別にRustに限ったものではないのですが、よくRustを始めたばかりの人がスタックとヒープが分からないと言っているのをみかけるので少しメモリの話をしますね。 厳密な話というよりは雰囲気を掴んで欲しいという感じです。 メモリは配列 プログラム(プロセス)のメモリには実行するプログラム(機械語)やグローバル変数/定数、関数の引数やローカル変数、その他プログラムで使うデータ領域などを置きます。 プロセスに割り当てられるメモリというのは、1つの巨大なのっぺらな配列みたいなものです。サイズも決まってます。64bit OSなら2^64 byteです。 0 2^64 +--------------- ----+ | | | | | ~~ | | +--------------- ----+ これは仮想的なメモリなので実際の物理メモリに2^64 byteの配列がドンと確保される訳

    メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
  • サイバーエージェントを退職しました | κeenのHappy Hacκing Blog

    このエントリはEx CyberAgent Developers Advent Calendar 2016 - Adventar1日目の記事です。 元サイバーエージェントの人がわいわいやります。 κeenです。二年弱勤めたサイバーエージェント退職したのでその旨について。 サイバーエージェントの思い出 サイバーエージェントに興味をもつきっかけになったのも入社することになったのも学生の頃からずっと参加し続けていたLispMeetUpでした。 LispMeetUpでは長らく会場としてCAのセミナールームを使わせてもらっていました。 そこでエンジニアに対して気軽に施設を提供するCAや社員の@potix2さんを知って、そのまま@potix2さんの手引でCAに入社する運びとなりました。 「面接でLispは口にしない方が良い。100%落ちる。」なんて言ってた割にはLisp繋りで入社しました。 Cyber

    サイバーエージェントを退職しました | κeenのHappy Hacκing Blog
  • 2016年注目していきたい技術 | κeenのHappy Hacκing Blog

    2016年個人的に注目したいというか力を入れたいというか成行を見守りたいというか、そんな技術達を書き連ねていく。ものによっては「何を今更」と思うかもしれないがあくまで私にとって、だ。 順不同。 Apache Drill 公式。様々なデータソースに対してANSI SQLでクエリを投げれるやつ。 ビッグデータの時代にETL無しで迅速にデータを分析出来るようにするために開発されてるらしい。 様々なデータソースというのは当に凄くて、CSVとJSONをJOIN出来たりする。 あるいはTSVの生ログとRDBにあるマスタデータをJOIN出来たりする。 個人的にはデータベースから抽出したCSVにクエリを投げたい時に便利かな、と思って注目してる。viewや一時テーブルを作る権限がないデータベースだってある。 あるいは、Zookeeperを使って分散モードで実行も出来るのでBigQueryみたいなのをオンプ

    2016年注目していきたい技術 | κeenのHappy Hacκing Blog
  • isucon にCommon Lispチームで出た | κeenのHappy Hacκing Blog

    κeenです。 isucon に@nitro_idiot(深町さん)と@Rudolph_MillerのCommon Lispチームで出てきました。チーム名clfreaks。勿論Common Lispで再実装しました。 因みに深町さんは今回使ったWebサーバーのwooを含めCommon Lispのライブラリを多数公開している世界一のCommon Lisper、ルドルフさんは元Common Lispの会社のCTO。 前日 κeen 「あとはwooがunixソケット使えたら嬉しいんですがまあ、いいでしょう。」 fukamachi 「今からやれば明日には間に合うな」 fukamachi 「ローカルでは一応動いた。間に合いそうである」 fukamachi 「5倍ちょっとくらい速いかな」 この間1時間半足らず。 κeen 「練習してて気付いたんですけどデプロイツールってどうしましょう。」 fukama

    isucon にCommon Lispチームで出た | κeenのHappy Hacκing Blog
  • ISUCONこれまでの流れ | κeenのHappy Hacκing Blog

    予備に作ったスライド

  • SMLでPNGデコーダを作ろうとして分かったこと | κeenのHappy Hacκing Blog

    月初会で飛び入りLTのために作った雑なスライド。

  • 独学のプログラミング | κeenのHappy Hacκing Blog

    誰向けなのか分からない。多分5年後くらの初心を忘れた自分が読めば良いと思う。あるいは、独学でプログラミングを始めようとしてる人が参考にするのかもしれない。 私はプログラミングを独学で学んだ。 初めて触ったのは中学生のとき、ネットゲームのギルドのホームページを作ろうとなってHTMLCSSJavaScriptという存在を知った。イヌでもわかるJavaScript講座を見てメモ帳で書いた20行くらいのスクリプトが当時の最高傑作だった。 それから名前の訊いたことのあったC言語を学ぼうとしたが、Vijuaru Stajioのインストールが出来なくて挫折した。CとC++とC#の違いも分ってなかった。 その後、ネットゲームもしなくなり高校の間は全くプログラミングに触れずに大学に入った。 1年夏学期の情報の授業でシェルを知った。最初は慣れなかったが次第に使えるようになって、家でもコマンドプロンプトを使

    独学のプログラミング | κeenのHappy Hacκing Blog
  • チーム「銀杏絶滅しろ」でisucon学生賞もらってきました | κeenのHappy Hacκing Blog

    しばらく間が空きました。まあ、その間のことはいつかまとめて書きます。今回は isucon#3について。 先日、isucon#3の予選を突破したと書きましたが、日曜にその決勝戦があったので報告です。 準備 とりあえずyokoteさんが予定が入って参加できないので@c0umeさんと二人で毎週会って予選の問題を解き直しつつSQLの勉強とかやってました。MariaDBを試したりもしましたが大して変んないねーとか。最終的に4万点くらいになったのかな?あとisucon#2で複数台構成の練習とか地味にデプロイツールCapistranoのお勉強とかもしてました。非常に便利です。 当日 サークルを休む許可も貰えたので何事も心配なく10時にヒカリエに集合。名札とかもらって格的な感じ。 お題のアプリは画像版ツイッターで、処理的には投稿された画像を生/中/小にサイズ変更して返すのがほとんど。htmlはインデック

    チーム「銀杏絶滅しろ」でisucon学生賞もらってきました | κeenのHappy Hacκing Blog
  • 1