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
なんとなく1年を振り返って 今年も色々あったなあ サイボウズの技術顧問になった 1番大きな変化はなんといってもこれでしょう。 パラレルキャリアがクローズアップされた時期と重なったこともあり、SNS等でも大きく 取り上げられましたし、朝日新聞にも WEBRONZA: 「一生に、何社で働く? 一度に、 何社で働く?」 http://webronza.asahi.com/science/articles/2017103000014.html にて取り上げられました 青色確定申告を始めた 前述の理由により確定申告が必須になり、あわてて個人事業主登録と青色確定申告の申請をしてきました。 確定申告ソフトは最初MF確定申告にしようと思ってたんだけど、とても不愉快な思いをすることがあって (具体的には過去のデータが消えて、サポートが復活を拒否した)、ちょっと事業の会計管理という重要部分を おまかせするパー
Apache Kafka: Producer, Broker and Consumer2017年は生まれて始めてApache Kafkaを本格的に業務利用(PoCではなく本番運用)した年でした。Apache Kafka的なメッセージングミドルウェアそのもののは、社内的な事情でよく使っていたのでその使い勝手に対して困惑はほとんど無かったですし、ミドルウェアとして非常に安定しているため、Kafkaクラスタそのものでの不具合らしい不具合が発生したことは一度もありませんでした。 しかし、Kafkaのトピック設計などに関してのベストプラクティスは事例ベースでもあまり見かけたことがなく、チームメンバーと悩むことも多かったです。このストーリーでは、主にKafkaを利用したアプリ設計で考えたことや失敗したことを振り返りつつ共有します。なお、パーティション数や各種バッファサイズなどのチューニング要素は今回取
Lobiチームの長田です。 今回はkatsubushiというアプリケーションを紹介します。 https://github.com/kayac/go-katsubushi katsubushiはid発番を行うアプリケーションです。 水平分割されたデータベースに対してユニークなidを発番するために作られました。 なお、本記事中の「データベース」はMySQLを指します。 katsubushiの特徴 Snowflakeと同様のアルゴリズムでid発番 SnowflakeはTwitter社がかつて公開していたid発番アプリケーションです。 https://github.com/twitter/snowflake/tree/master 既にメンテナンスされておらず、masterブランチにはその旨が書かれたREADMEしか残されていません。 タグが切られているので、ソースコード等はそちらで確認できます。
Erlangのサーバを簡単に実装できるOPTのgen_server ビヘイビア(behaviour)を利用して、Key-Valueストアを実装してみました。set, get, delete命令しか実装していません。 なぜ gen_serverでサーバを実装すべきなのか 実装が容易で本番稼働での実績が十分な点はもちろんですが、次のようなメリットが存在します。 名前付きプロセス、タイムアウトの設定、デバッグ情報の付与、予期しないメッセージの処理、ホットコードローディング、特定エラーへの対処、様々なサーバシャットダウン手法への対応、スーパバイザ対応。 1. サーバ起動 最低限の部品だけ実装してサーバを稼働させます。動くだけで命令できない状態 -module(tests). -include_lib("eunit/include/eunit.hrl"). -author("hami"). %% A
これはPySpaアドベントカレンダー2017のエントリーです。 三年前に家、今月は車とローンをガシガシ組んだりしたのですが、お金を借りるということについて、まだまだ否定的な人がいたりするので、借りるということはどういうことなのかまとめてみます。 お金についての教育は日本にはないので、将来、子どもたちにお金について説明するための考えの整理でもあります。 特に、今は働き方改革という名の下に副業もできるようになってきました。去年ぐらいから自動車ローンも繰り上げ返済が可能になりましたし、残価設定ローンとの組み合わせで戦略の幅が広がったので、定期的に入る収入を当てにしたローンとくらべて、副業する人に優しくなっています。このあたりはお金を借りたことがある人も、そうじゃない人にも参考になるかなと思います。 お金を借りる==時間を買う 日本だと「お金を借りる」ことを蛇蝎のように嫌がる人、恐怖を覚える人が数
さて、「ワンオペ育児」という単語を聞いたことはあるかと思います。読んで字のごとく、一人で子育てをすることです。牛丼チェーンのワンオペで深夜対応すると言うところから転じてできた言葉だと思いますが、僕自身仕事がら海外出張1週間とか結構あるので、出張中「ワンオペ育児辛い」という疲弊したメッセージが妻から届くこともしばしばありました。 まぁ、そうは言っても仕事だし仕方ないよねと思いながら申し訳ない気持ちでいっぱいだったのですが、幸か不幸か妻が利き手を手術し数ヶ月使えないという展開になりました。そう、僕のもとにもワンオペ育児がやってきたのです。 我が家は、小学校低学年1人と幼稚園児が1人という4人家族です。実家はお互い現在居住地から遠く、ヘルプはあてにできない状況。今でこそ包丁は握れないけど、力のいらないことならできるようになってきたので、かなり分担できていますが、術後当初は二人いる子供の面倒を見な
八ケ岳連峰(長野・山梨県)では、年末年始の休暇を雪山で過ごす登山客でにぎわっている。 日本百名山にも選ばれる最高峰・赤岳(標高2899メートル)の中腹にある山小屋・赤岳鉱泉では、大みそかの宿泊者が200人を超え、屋外にも40張りほどのテントが張られ年越しを迎えた。
結論 jsone を採用するべき。 JSON のパースで速度がボトルネックになるような場面がないため、ピュア Erlang なライブラリで十分 jsone の try_ を付けるだけで ok/error になるというシンプルで迷わない map にももちろん対応している 長い間利用してるが不具合が一切出ていない。定期的なメンテナンスもされている。最新版への追従も問題ない。 jiffy https://github.com/davisp/jiffy NIF で書かれているため性能が良い。 jsone の約 3 倍程度早い。 速度を求めたい場合は jiffy を採用するのもあり、ただ NIF なので何かあったら Erlang VM 事巻き込んで落ちるので要注意。 JSON という外部とのやり取りをする部分で、そこまでしてリスクを取りたくない。
2018年始まって早々、僕はムカついているんです。この日本社会に。 世界一のスピードで少子化にまっしぐらなんです。でも明らかにおかしいだろ、っていう制度が山積みなんですよ、我が国は。 今日はそれを皆さんにご紹介したいと思います。 (1)少子化なのに、出産費用は保険が効かない 僕たちは妊娠相談ダイヤルやってるんですが、こういう相談が来ます。 「妊娠中なんですが、お金がなくて病院に行けない。自宅で産もうと思う」 自宅出産は、母子の命に関わります。 そんな明らかに危険な行為を、なぜせざるを得ないのでしょうか。 日本では、出産費用が平均約50万円かかります。 東京だと平均約61万円です。 日本では「出産は病気では無い」から、保険は適用外です。(先進諸国の多くは無償) その代わり、出産一時金という補助金が出ますが、これが42万円。 東京だと平均20万円以上の、全国だと約10万円の差額持ち出しがかかっ
By LINE Engineering | 2014.09.25 2021.01.08LINE Engineering Blog official account LINEとマイクロサービス LINEのアプリは、トークをはじめとして、電話、ショップ、公式アカウントなど、多数のサービスで構成されていますが、これらのサービスはモノリシックな単一のシステムとして開発されているわけではありません。それぞれ独立したシステムとして開発・運用され、お互いにAPIを介してコミュニケーションする、いわゆるSOAやマイクロサービスと呼ばれるアーキテクチャになっています。 本エントリでは、大規模なマイクロサービス環境において、システムのトレーサビリティを向上させるためのLINEバックエンドの取り組みを紹介します。 マイクロサービスの課題 最近よく耳にするマイクロサービスですが、その利点は、システムを扱いやすい小
Golang ってネットワークを扱うのが凄く楽で色んな物が作りたくなるんだけど、いつも pubsub っぽいのが欲しくなって毎回作ってる気がしたので汎用的に扱えるインタフェースを作った。 mattn/go-pubsub - GitHub https://github.com/mattn/go-pubsub 使い方は簡単で、まず subscribe 側はある型を引数に持つコールバックで Sub を呼び出す。 ps := pubsub.New() ps.Sub(func(i int) { fmt.Println("int subscriber: ", i) }) そして publish 側はある型を指定して Pub を呼び出す。 ps.Pub(1) Pub された値と同じ型の引数を持つ subscriber のみがメッセージを受け取れるという仕組み。構造体も渡せるので複雑なメッセージ内容もOK
socat っていうツールを使ってみたところソケット関連のちょっとした操作をこなすのにすこぶる使い勝手が良かった。 インストール Mac OS X なら Homebrew でインストールできる。 $ brew install socat $ which socat /usr/local/bin/socat Echo サーバを立てる socat コマンドにはソケットの入力と出力を指定する。 以下のようにすると TCP 8080 ポートで接続を待ち受けて出力は入力をそのまま cat することで TCP の Echo サーバになる。 v オプションで通信内容を表示する。 $ socat -v tcp-listen:8080 system:cat 別のターミナルから telnet コマンドで接続してみる。 $ telnet localhost 8080 Trying ::1... telnet:
自分はリファクタリングが好きなので、リファクタリングに対する考えとかを書いてみる事にした。 前提としては自社製品、さらにパッケージソフトウェアのためデプロイは存在しない。リリースは一ヶ月に一回程度。ソースコードは 10 万行未満。 自分がリファクタリングするのは機能追加に飽きた時。ペーストしては月1回程度で、多い方だと思う。よく飽きる。 リファクタリングをする時はまず、コードを端から端まで読みながらコメントをしていくところから始める。その後、またコードを端から端まで読みながらコメントを読みつつ、どんなリファクタリングをするか決めていく。そして、決めたらブランチを切って作業。 とにかく、手を付けるコードを読むことが重要だと思っている。人間は適当なものでコードを適当に理解している事が多いので、一度頭を空っぽにしてコードを読むと「この辺は大丈夫」と思っていた部分も全然大丈夫じゃないことがある。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く