タグ

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

  • エンジニアの働き方とかについてのエモい記事 | κeenのHappy Hacκing Blog

    κeenです。 非エンジニアのマネージャがエンジニアチームと上手くやる方法の記事に影響を受けてエンジニアとしての意見を書いてみようかなと。 非エンジニア向けのつもりです。 ここでいうエンジニアはソフトウェアエンジニアのことです。 Disclaimer ある程度客観的になるように気をつけてますがあくまで私個人の意見です。エンジニアを代表するようなものではありません。 κeenはまだエンジニア3年目くらいの若造なのて「それは違うんじゃねーの」と思ったところがあったら多分あなたが正しいです。 仕事内容 エンジニア仕事は外から見たら何してるかよくわからないらしいですね。 ふつう仕事の成果物はエンジニアの間でしか共有してないのでまあ、そうなるでしょう。 なので「何をしているか」を説明するのはやめて「仕事しているときにどんな気持ちか」を話しましょう。 エンジニア仕事は頭脳労働です。 それも問題解決

    エンジニアの働き方とかについてのエモい記事 | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2018/01/15
  • 2017年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog

    κeenです。年始に2017年注目していきたい技術 | κeenのHappy Hacκing Blogってのを書いたので雑に振り返ります。あと個人的な一年の総括を。 ※個人メモなので雑多な記述が多いです。 2017年注目していきたかった技術 今年一年でどうなったかを見ていく。 WebAssembly 各ブラウザでも使えるようになったし盛り上がってる。 WebAssembly Advent Calendarも盛況だったし個人的にもGCを書いた。 RustやClangがemscriptenを通さず吐けるようになってるしツーリング周りでも改善された。 今の所ゲーム系の人が注目してるみたいだけどもっと裾野が広がったらいいな。 QUIC 確実に進んでるはずなんだけど今年あんまり話題にならなかった。 個人的には古いやつだけど仕様を読んだ。 推奨になるのいつだろう。 Idris 1.1.1も出てる。Id

    2017年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2018/01/01
  • Rustのトランザクション抽象化ライブラリ作った | κeenのHappy Hacκing Blog

    κeenです。最近KeenS/transaction-rs: The transaction abstraction library and its executors for rustというライブラリをリリースしたのでそれについて。 モチベーション Rustでドメインロジックを書いていると以下のようなコードが出てきました。 (実際はもうちょっと複雑ですが質ではないので簡略化します) struct GroupPgDao(r2d2::Pool<ConnectionManager<PgConnection>>); impl GroupPgDao { fn get_conn(&self) -> &PgConnection { /*... */ } fn delete_user(&self, user: &User, group: &Group) -> Result<()> { let cn =

    Rustのトランザクション抽象化ライブラリ作った | κeenのHappy Hacκing Blog
  • 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog

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

    非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
  • Rust風にデザインパターン23種 | κeenのHappy Hacκing Blog

    κeenです。 GoFのデザインパターンは有名ですが、言語機能によっては単純化できたりあるいは不要だったりするのでRust風に書き換えたらどうなるか試してみます。 発端はこのツイート。 デザインパターン、古いJavaの機能の足りなさのワークアラウンド的なテクニックも含まれてるからあまり宜しくないんだよね。enumやクロージャで十分なのもいくつかある。 Rustで写経、デザインパターン23種 - Qiitahttps://t.co/MhpS3Z2OlF — κeen (@blackenedgold) 2017年5月5日 一応誤解のないように説明しておくと、該当のQiitaの記事に不満がある訳ではなくてGoFのデザインパターンついての言及です。 リンク先のコードで十分な時にはここでは流すのでリンク先も同時に参照下さい。 また、比較しやすいようにサンプルコードはリンク先のものに則って書きます。

    Rust風にデザインパターン23種 | κeenのHappy Hacκing Blog
  • Rust in Production | κeenのHappy Hacκing Blog

    Rustプログラマミートアップでの発表用

    y_uuki
    y_uuki 2017/05/01
  • メモリとスタックとヒープとプログラミング言語 | κ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
  • 2016年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog

    κeenです。年始に2016年注目していきたい技術 | κeenのHappy Hacκing Blogってのを書いたので雑に振り返ります。あと個人的な一年の総括を。 ※個人メモなので雑多な記述が多いです。 Apache Drill ちょっとづつ進化してるようだけどそこまで広まってる気配なし。因みに自分はチーム移動で使う用事がなくなったのであんまり使ってない Rust めっちゃ使った。大分進化してる。ハンズオンのチュータやったりLT会の玄人枠で発表したりもした。あと年明けにハンズオン第2回のチュータやる。 Apache Kafka めっちゃ使った。便利。道具箱の中身が増えた。便利。 Floki 5月で開発停止したっぽい。残念。 RobotS 開発は続いてるようだけど流行ってはない。うーん、アクターいけると思ったんだけどなぁ。 Redox 開発は継続中。ISOのリリースとかもあったしそれなりに

    2016年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2016/12/31
    すごい
  • 気付いたらRustの環境構築がかなり楽になってた | κeenのHappy Hacκing Blog

    κeenです。ここのところRustの開発ツール回りでリリースが続いてセットアップが楽になってるようだったので最新の情報をお届けします。 とりあえず私は既存の環境があるので一旦全て破棄してから再度セットアップしてみます。 Rustのインストール rustup.rs - The Rust toolchain installerがリリースされたので以下で一発です。 $ curl https://sh.rustup.rs -sSf | sh そして をシェルのrcファイルに書き加えたらOKです。 今のシェルにも反映するには同じく上記のコマンドを打ちます。 周辺ツールのインストール cargoがあるので楽ですね # コードフォーマッタ $ cargo install rustfmt # 補完、定義ジャンプなど $ cargo install racer まあまあ時間がかかります。 エディタ(Emac

    気付いたらRustの環境構築がかなり楽になってた | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2016/12/29
  • サイバーエージェントを退職しました | κ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
    y_uuki
    y_uuki 2016/12/01
  • multirustが非推奨になったようなのでrustupに移行する | κeenのHappy Hacκing Blog

    κeenです。どうやらもうそろそろRustのツールチェーン管理はmultirustじゃなくてrustupを使った方が良さそうなので移行しようと思います。 きっかけはmultirustにそういうコミットがされたから。 もうmultirustじゃなくてrustup使え、と。 Update README.md · brson/multirust@84c3459https://t.co/ySeRB50x5C — κeen (@blackenedgold) 2016年6月10日 因みにrustupはrust-lang/rustup.sh: The rustup.sh script for installing Rust from release channelsではなくrust-lang-nursery/rustup.rs: The Rust toolchain installerの方です。インスト

    multirustが非推奨になったようなのでrustupに移行する | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2016/06/13
  • Rustとは何か。どんな言語か。 | κeenのHappy Hacκing Blog

    異種プログラミング言語格闘勉強会での発表用。 主に初心者/使ったことのない人にRustを紹介する内容

    y_uuki
    y_uuki 2016/05/02
  • LXDがリリースされたらしい | κeenのHappy Hacκing Blog

    κeenです。頭痛い。LXDがリリースされたようなので1つ記事をば。 LXDはLinuxで動く軽量仮想化コンテナ、LXCのラッパでREST APIとCLIが提供されています。 LXC、LXD共にUbuntuの開発元、Canonicalが開発しています。 LXCについては初期のDockerがバックエンドに使っていたので知名度もそこそこあるかと思いますが、 そのラッパであるLXDはこの度ようやく正式リリースされました。 既にDockerがあるのになぜわざわざ新たにLXDを使うんだって気もしますが、対象とするレイヤーが違います。 Dockerはアプリケーションコンテナ、つまりアプリケーションを動かすためのプロセスより強い分離環境を提供するために使われますが LXDはシステムコンテナ、つまり仮想マシンより軽い仮想化環境を提供します。 なのでファイルシステムはCopy on Writeしませんし一度

    LXDがリリースされたらしい | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2016/05/02
  • Rustのゼロコスト抽象化 | κeenのHappy Hacκing Blog

    κeenです。今日Twitter上でのやりとりから少し面白いことが分かったのでそれについて。 最近1.0が出たKotlinについて、水島さんがツイートしてました。 nullableに対してはmapとかの高階関数を一切使えないのが痛い。 ?. でカバーできるケースは一部だけだ。zero-overhead null-safetyと唄っとるが、代わりにnullチェックお化けになるわけで、どこがzero-overheadだ #kotlin_dis — 水島 宏太(Klassic作成中) (@kmizu) 2016年2月29日 それについて私が無関係なツイートを。 全く無関係だけどRustはOptionみたいな0-1の型をnull or valueに最適化するそうな。これこそがゼロコスト抽象かな https://t.co/5Y7cBEyrMe — κeen (@blackenedgold) 2016

    Rustのゼロコスト抽象化 | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2016/05/02
  • 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
  • Shell Scriptを書くときのテクニック10選 | κeenのHappy Hacκing Blog

    κeenです。LLで書かれた動作のもっさりしてるコマンドラインツールよりシェルスクリプトが好きです。 しかしシェルスクリプトを書く時にはハマり所も多いです。ということでハマりそうなところと対処法を共有しますね。 1. 変数は基クォート 変数には空白が入り得ます(特にパス名とか)。あるいは空である可能性もあります。

    Shell Scriptを書くときのテクニック10選 | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2015/10/14
  • 就活について思ったことをここに書き記す | κeenのHappy Hacκing Blog

    私は今4年生なので去年の今頃は就活なんてものをしていた。下の代から若干日程が変わっているがそろそろ就活ムードが出てきているのでなんか吐いておく。思い出かもしれないし愚痴かもしれないし毒かもしれない。経験かもしれないし他人の代弁かもしれない。後輩の役に立つかもしれないし人事の方に向けたメッセージかもしれない。 念のために書いておくが私はIT系の会社のプログラマ、エンジニア職ばかり応募していた。他の業界、職種に当て嵌まるとは限らない。 注意 良かった企業は名前を出す、悪かった企業はここには名前を書かない方針にする。悪かった企業の具体名が知りたかったら@blackenedgoldに訊いて下さい。 リクナビ、メール 周りの流れに乗せられてリクナビに登録することになる。個人情報を大量に打ち込む。すると大量のメールが届く。正直、情報量はゼロに近い。メールは受信しないにチェックした方が良い。 リクナビの

    就活について思ったことをここに書き記す | κeenのHappy Hacκing Blog
    y_uuki
    y_uuki 2015/02/08
    “面接でLispは口にしない方が良い。100%落ちる。”
  • 1