タグ

ブックマーク / higepon.hatenablog.com (14)

  • 突発性脳脊髄液減少症になり1ヶ月以上寝たきりだった話 - higepon blog

    時間のない人向けのまとめ ある日突然激しい頭痛に見舞われ即入院。 突発性脳脊髄液減少症(低髄液圧症候群)と診断され手術。何らかの原因で、脳脊髄液が硬膜から漏れて髄液圧が低下することで頭痛などの症状が起こる病気。 起立性頭痛(頭痛があるがしばらく横になると楽になる)がある場合は病院に行き症状を医師に伝えよう。 確定診断・治療できる病院&先生はとても少ない。関東エリアならS病院T先生。 このまとめについて ある日の朝、原因不明の激しい頭痛に見舞われた際の、入院、手術、回復までのまとめ。最近少しずつ知られるようになった病気で(ラジエーションハウス~放射線科の診断レポート~でも取り上げられた)。正しく診断してもらえない場合が多いようだ。病院をたらい回しにされ、心療内科でうつ病と誤診されることもある。何ヶ月も原因不明で苦しむこともある。ここに詳細な記録を残すことで同じ病気にかかった人が、正しい診断・

    突発性脳脊髄液減少症になり1ヶ月以上寝たきりだった話 - higepon blog
    gfx
    gfx 2020/02/15
    うおお…つら…。おつかれさまでした。
  • Tech Lead(TL/テックリード)の役割 - サンフランシスコではたらくソフトウェアエンジニア - higepon blog

    Tech Lead(TL/テックリード)の役割。聞きなれない名前かもしれない。リードプログラマやテクニカルリードと呼ばれることも。過去にいくつものチーム(最大で10人以上)の Tech Lead をやってきた自分の経験を踏まえて書いてみる。 Tech Lead の主な役割 Tech Lead はエンジニア班長と言いかえるとイメージがわきやすいかもしれない 顧客に提供したい価値(プロダクトゴール)を正しく理解する エンジニアチームの生産性を可能な限り最大化。プロダクトマネージャ・デザイナと顧客に価値を提供する Product の Launch に責任を持つ Product の Launch 後のメンテナンスに責任を持つ エンジニアを過負荷から守る ときにはマネージャ、プロダクトマネージャのアイデア、スケジュールに NO を言う。代替案を提示する チーム内のテクニカルデザイン、採用技術などに責

    Tech Lead(TL/テックリード)の役割 - サンフランシスコではたらくソフトウェアエンジニア - higepon blog
    gfx
    gfx 2015/08/07
  • エンジニアからみた良いプロダクトマネージャとは? - サンフランシスコではたらくソフトウェアエンジニア - higepon blog

    エンジニアからみた良いプロダクトマネージャ(以下PM)とは。rebuildfm #98で id:naoya さん(@naoya_ito)から PM についての話があったので便乗して書いてみる。※プロダクト(製品)マネージャはプロジェクトマネージャとは全然違う職種なので注意。 結論から先に。エンジニアから見た良い PM とは「つねにユーザーのことを考えた上でプロダクトに信念を持っている人」だと思う。それは当たり前じゃないか?と思った人は正しい。でも常にそれをできる PM は多くはない。幸いにも僕は多くの優秀な PM仕事をさせてもらったのでそこから学んだことをまとめてみよう。 PM の役割 まずは PM の役割から見ていこう。スタートアップの CEO の役割からエンジニア、デザイナーをマイナスした感じと言ったら伝わるだろうか。 もう少し具体的に PM がやっていることを挙げてみよう。 自分

    エンジニアからみた良いプロダクトマネージャとは? - サンフランシスコではたらくソフトウェアエンジニア - higepon blog
    gfx
    gfx 2015/07/25
  • スーパーエンジニアへの道―技術リーダーシップの人間学 を読んだ - higepon blog

    スーパーエンジニアの道というと大げさだが原題は「Becoming a Technical Leader」。年齢的にもそして現ポジションもリーダーシップが必要なので読んでみた。著者はエンジニア出身でかつ、リーダーシップのセミナーを主催しているので、リーダーシップにまつわる現実的な話がたくさん。すこし冗長で読みづらかったので各章毎にマインドマップもどきを描きながら読んだ(例 これ)。 先日 id:secondlife さんにインタビューしていただいた記事 でも少し触れているのだがここ数年 Tech Lead という役割で仕事をしている。その体験との内容を重ねながら読み進めた。この手のにありがちな「リーダーになるのは素晴らしい!」とか「強いリーダーになる方法!」などは一切ない。むしろ「リーダーって大変だけど。そこまでしてなりたいの?よく考えて。」とか失敗例がたくさん載っていて面白かった。某外

    スーパーエンジニアへの道―技術リーダーシップの人間学 を読んだ - higepon blog
    gfx
    gfx 2015/04/27
  • もう flex 使わない、これからは re2c - ひげぽん OSとか作っちゃうかMona-

    flex & bison をやめて re2c & bison にしたらパーサが速くなった。re2c は UTF32 の入力に対応しているので非常にすっきり書けるし設計も歪まない。 re2c is a tool for writing very fast and very flexible scanners. Unlike any other such tool, re2c focuses on generating high efficient code for regular expression matching. re2c は flex とは互換がなく独自のマクロなどを定義しなくてはいけないので注意。サンプルとドキュメントの少ないのもマイナスポイント。 それこそ UTF32 を利用している例なんて見つけられなかった。 re2c で多分難しいのは YYFILL (flex でいうところ

    もう flex 使わない、これからは re2c - ひげぽん OSとか作っちゃうかMona-
    gfx
    gfx 2012/02/08
  • サイボウズ・ラボ株式会社を退職しました - Higepon’s blog - Mona OS and Mosh

    2012/1/15 をもちましてサイボウズ・ラボ株式会社を退職することになりました。 お世話になったみなさん当にありがとうございました。 各分野でのトップレベルのエンジニアに囲まれた 4 年間は当に刺激的でした。ラボでは良い上司(畑さん)に恵まれラボのミッションに沿う形で、比較的自由に研究・開発に取り組むことができました。外に出ているだけでも Mosh / Mio / outputz など。どのプロジェクトでも自分が実現したいこと、自分の能力と真摯に向き合う必要のあったかけがえのないプロジェクトでした。この 4 年間に学んださまざまなことは、今の自分を形成する「成分」の中でも大きな割合を占めていることを感じています。サイボウズ・ラボおよびサイボウズのみなさま当にありがとうございました。 1 月末から新しい職場でソフトウェアエンジニアとして新たな一歩を踏み出します。みなさま今後ともよろ

    サイボウズ・ラボ株式会社を退職しました - Higepon’s blog - Mona OS and Mosh
    gfx
    gfx 2012/01/16
    お疲れさまでした!
  • 0. Table of Contents - WebKit porting to Mona OS - higepon blog

    I started porting WebKit to my own OS, Mona OS (http://www.monaos.org). Here are some memorandums of the porting process. I wish these would be useful to other OS developers. 1. Building WebKit on Linux 2. Where should I start from? 3. STL 4. STL port was done 5. libjscore.a 6. Disabled PLATFORM(QT) 7. ICU required RTTI 8. Build Mingw gcc-4.6.1 9. How to support C++ RTTI and exceptions on your hob

    0. Table of Contents - WebKit porting to Mona OS - higepon blog
  • 7.Parse - v8 ソースコードリーディング - higepon blog

    ParserApi::PartialPreParse から PreParse の結果のデータ構造を見ていく。 DoPreParse の結果は ParserRecorder に記録されるようだ。Parse の結果に影響を与える各種フラグを見た後に Parser の体へ。 FunctionLiteral* Parser::DoParseProgram(Handle<String> source, bool in_global_context, StrictModeFlag strict_mode, ZoneScope* zone_scope) { void* Parser::ParseSourceElements(ZoneList<Statement*>* processor, int end_token, bool* ok) { かを見て Scope を作る。 scanner が Toke

    7.Parse - v8 ソースコードリーディング - higepon blog
    gfx
    gfx 2011/07/26
  • 3.文字列・数値 - v8 ソースコードリーディング - higepon blog

    文字列 文字列を見ていこう。 v8.h の class String 。 V8EXPORT int Length() const; V8EXPORT int Utf8Length() const; があるのが時代を感じる。 文字列の Write も Ascii, UTF16, UTF8 用がある。面白いのは V8EXPORT static v8::Local Empty(); 長さがゼロの文字列を static メンバで持っていること。これは真似したいね。 External String というモノがあってどうやら v8 の heap 外に割り当てられた文字列を管理するようなものだ。外部文字列を v8 heap で割り当てられた class で wrap してる。 文字列の割り当ては New で NewSymbol というのもある。シンボルの実体は intern された文字列という実装っぽ

    3.文字列・数値 - v8 ソースコードリーディング - higepon blog
    gfx
    gfx 2011/07/19
  • 2.Trueオブジェクト Oddball など - v8 ソースコードリーディング - higepon blog

    include/v8.h プリミティブ型の定義があるので見てみよう。 Handle GC で追跡できるようにオブジェクトをハンドルで管理する。 GC がオブジェクトを移動する可能性があるので参照ではなくてハンドル。 Handle は値渡しで使われ heap に確保されない Handle は Local と Persistent 2種類ある 後述 Local 軽量な Handle スタックに allocate される HandleScope で寿命管理される Persistent Handle HandleScope scope とは Handle のコンテナ スタックに allocate される Script コンパイル済み JavaScript 。 Script::compile でコンパイル。 Run New で作られた Script は Context independent Com

    2.Trueオブジェクト Oddball など - v8 ソースコードリーディング - higepon blog
    gfx
    gfx 2011/07/18
  • 分散 Key-Value ストア mio-0.0.1alpha をリリースしました - higepon blog

    分散 Key-Value ストア mio-0.0.1alpha をリリースしました。(mio-0.0.1-alpha.tar.gz) Mio とは何か? 範囲検索(range query) が出来る KVS です。例えば「key が "1000"〜"2000" にあるものを昇順に10件取り出す」という検索が可能です。 Mio は memcached 互換プロトコルを実装しているので、多くのプログラミング言語から簡単にアクセスする事が可能です。(後述のコード例参照) Mio のアーキテクチャ Mio は Skip Graphs(スキップグラフ)というアルゴリズムに基づいて実装されています。詳細はErlang 分散システム勉強会での発表資料 Mio - a distributed Skip Graph based orderd KVSをご参照ください。 インストール 最新の Erlang をイ

    分散 Key-Value ストア mio-0.0.1alpha をリリースしました - higepon blog
  • ひげぽん OSとか作っちゃうかMona- - 末尾再帰

    最近一部で盛り上がっている「末尾再帰」について自分の理解を確認するのも兼ねて書いてみます。 (そもそも自分がふったのがきっかけっぽいので)。 上級者の方は間違い等に厳しくつっこんでもらえると助かります:-) 背景 自分が末尾再帰を知ったのは多分Schemeの勉強を始めた頃だったと思います。 例えばSICPというでは20ページあたりにこっそりと出てきます。 そのころの理解はかなり浅いもので「ふーん。」程度でした。 さて後日Schemeの処理系を実装することになりR5RSというSchemeの仕様書を読んだところ Scheme の実装は真正に末尾再帰的(properly tail-recursive) であることが要求されている。これは,たとえ繰返し計算が 構文的に再帰的手続きで記述されているときでも,定数空間 でその繰返し計算を実行することを可能にする とあり末尾再帰のことを詳しく知る必要性

  • Foreign Function Interface をいくつか見てまわる - higepon blog

    動機 VM を C++ に移植開始したのだけど、以前 M さんから指摘のあった C/C++ を呼び出すインターフェースもしくはその逆、つまりForeign Function Interface について考えるなら今しかないので考えよう。 同年代のスーパープログラマ M さんに「どうやって勉強したら良いだろうか?」と問うたら即答。 まずは、CommonLispのdefun-c-callableとchunkあたりを調べて 次にJavaのJNIとC#のP/Invoke周り(特にcustomのmarshalerとか)を調べて 後はrubyとかgaucheの共有ライブラリあたりしっときゃいいんじゃね? だそうです。 ひぇ。まだまだ彼には追いつける気がしない。 Common Lisp の defun-c-callable defun-c-callable は obsolete で defun-fore

    Foreign Function Interface をいくつか見てまわる - higepon blog
    gfx
    gfx 2010/03/12
  • JIT コンパイルまとめ - higepon blog

    Mosh のパフォーマンスを向上させたいので JIT コンパイル周りを調べてみました。誤りや不足がありましたらご指摘いただけると助かります。 何か? Just in time コンパイルの略。実行時に必要になった時点で動的にコードを生成する仕組み。 VM 型のインタプリタにおいて、実行時に bytecode を native code にコンパイルすることを指すことが多い。 必要になった時点のコンパイルではあるが、Pre-JIT のように起動時にまとめて JIT コンパイルする場合もある。 目的・効果 インタプリタの良いところを維持しつつインタプリタ実行速度を高速化。AOT コンパイラが出力するコードの速度に近づける。 JIT が AOT (Ahead of time)と比較して有利な点 実行時の統計情報を利用できる 実行ホストに最適化されたコードを利用できる JIT コンパイルされる対象

    JIT コンパイルまとめ - higepon blog
  • 1