アプリなら、コメントが見やすい!
トップへ戻る
画像生成AI
onk.hatenablog.jp
1 文字エイリアスのすゝめ 1 文字エイリアスが好きで、例えば alias s="git status -sb" している。 入社してからの 4 年半で溜めた 53 万行の .zsh_history から集計すると、 $ history 1 | awk '{ print $2 }' | sort | uniq -c | sort -nr | head 121714 g 114128 s 57124 v 34210 cd 26095 tig 23281 rg 11382 plenv 10837 t 9647 :q 6867 ll となった。ちなみに以下の略です。 alias g="git" alias s="git status -sb" function v() {vi -p ${${=*/:/ +}/:*}} alias t="tig" alias :q="exit" alias ll=
吉祥寺.pm30 で、チューニングがテーマだったので、マネージャとメンバー間で期待値をチューニングするという LT をしてきた。 トークタイトルは熊とワルツを。トム・デマルコの本です。 熊とワルツを リスクを愉しむプロジェクト管理 作者:トム デマルコ,ティモシー リスター日経BPAmazon 「管理」という言葉 「管理」と訳される単語は色々ある goo 和英辞書 によると 〔経営〕management 〔経営,運営〕administration 〔統制〕control 〔監督〕supervision 英辞郎 on the WEB によると administration〔【略】admin. ; adm.〕 caretaking(建物・土地などの) caretaking〈英〉(学校などの公共施設の) charge conduct(業務などの) control custody(大事な物の) d
はてなは 7 月決算なので期のふりかえりをやっていたんだが、今期は「放っておくと進まない仕事を進めるために、時間を確保する」ことで進むようになった期だった。ちなみに前期は「放っておくと進まない仕事を進めるために、締切を設定する (強制力を持たせる)」ことで進めようとしていた期だった。 放っておくと進まない仕事とは、優先順位が低い仕事のこと。やってもやらなくても直ちに影響はない仕事をどうやったら進められるのかというのは長年ずっと課題だったが、やっと自分の中である程度答えが見えてきたかもしれないので記しておく。書き出してみたら至って普通なんだけど、以下をやっている。 見積もる 締切を作る 締切を宣言する 時間を押さえる 見積もる チームで見積もりを行い、まずはタスクの重さや実現方法についての共通認識を持つ。 タスクを分解する、とも言い換えられる。やるべきなんだけど気が重い仕事はとにかく分解しま
実装を進める上で障害になりそうなところを先回りして直してるように見えるけど、一体どうやって検知しているかという話題。 結論から言うと「慣れです」なんだけど、こういう考え方があるよというのを紹介しておく。 mikadomethod.info ちょうど10年ぐらい前に話題になった手法だけど、考え方としてはまだまだ現役です。 概要は本家なりこの辺のリンク先なりを見て貰って。 開発者のためのソフトウェアテストのスキルアップ | Think IT(シンクイット) 大規模コードをリファクタリングする方法『ミカドメソッド(Mikado Methood)』について | Futurismo テストとリファクタリングに関する深い方法論 #wewlc_jp レガシーソフトウェア改善ガイド | Amazon 僕の理解は 1 ループ目 やりたいことを実現するコードを書く ギャップが無ければサクッと実装して終わり
developer.hatenastaff.com タイトルは前回のゲストの id:hitode909 に合わせた。 blog.sushi.money 自分の声を聞き返すのが苦手なので、自分では Amazon Transcribe で読み返しました。 誰の台詞かの判定もできる 読み返してみたんですが、 プライベートチャンネルに招待されたらとりあえず数年分のログ全部読んだ Slack キーワード通知に設定しているワード 100 連発 - id:onk のはてなブログ みたいな、情報ジャンキーとしての話が目立ってますね。そこそこ得意技です。 異動を計画するに当たって気にしていることとか、技術ブログをレビューするときに気にしていることみたいなのは、それぞれ別にまとめておきたいな。 そんな話をしました。よければ聞いてください。 developer.hatenastaff.com 似た話をファインデ
発表資料作り、全体的な流れは 1 週間ぐらいかけて構想して、半日使って 15,000 字ほど書いて (コード片含む)、半日使ってスライドに起こす(結果として 6000 字ぐらい使う)、って感じですね。貯めた文字列を組み合わせている最中に構想とは別のストーリーが降ってくることも多い。— Takafumi ONAKA (@onk) July 3, 2018 ツイート貼り付けたら書きたいことが終わってしまった。 ↓は資料の作成途中の姿。↑で 15,000 って言ってるけど、余裕で超えてるな。 $ wc 20220305_yapc_japan_online.md 409 970 26111 20220305_yapc_japan_online.md 喋るといいんじゃないかってことを、とにかく書き出してまず文字数を稼いで 一度 k0kubun/md2key で Keynote に流し込んで すごく雑
この記事は Rubyist近況[1] Advent Calendar 2021 の 20 日目の記事です。すみません、1 日遅れです。完全に 21 日目のつもりでいた。。 忘年会が無いのでご挨拶代わりです。皆さんお久しぶりでーすノシ 昨日は 1 スレ目 は id:Sixeight さんの 近況 - ちなみに、2 スレ目 は id:shucream さんの 2021-12-19 | けんちゃんくんさんのWeb日記 でした。似たような年齢なのでマネージャが続きますね。私もです。 今年の目標 達成見込みです。 予約したので目標達成に限りなく近づいた。あとは行くだけ https://t.co/LIPT8lJMxt— Takafumi ONAKA (@onk) December 18, 2021 丸 2 年切ってないので 25-30cm ぐらい伸びてんのかな。髪ブラできる長さになってしまった。人生最
おはようございます。onk です。2021年12月18日の、朝です。11時なので、朝というか、昼ですね。ここでタイマーをセット。 この記事は、やんちゃクラブリスナー Advent Calendar 2021、18 日目の、記事です。 やんちゃさん、誕生日おめでとうございます 本日 18 日は yancya の誕生日です。 知ったのいつだっけな。 @chiastolite による誕生日 Advent Calendar 界隈でよく話題に上がるので以前からワイワイしている。 adventar.org 誕生日 Advent Calendar、@yancya 氏に取られたw— Takafumi ONAKA (@onk) November 4, 2014 @onk 実は同じなんですよねw— yancya (@yancya) November 4, 2014 @chiastolite @onk おめでと
Hatena Engineer Seminar #17 にて発表しました。 hatena.connpass.com Hatena::Letの式年遷宮 from Takafumi ONAKA www.slideshare.net 発表内容をかいつまんで記事にも書いておきます。 Hatena::Let とは はてラボ のサービスの一つ。 僕も入社するまで、はてラボ == ベータ版、だと思ってたんですが、 ラボならではの挑戦的なサービス 運用費が会社持ちで、会社の名前で出しても良い、はてなスタッフの有志が運営するサービス、という制度 も含んでいます。 で、Hatena::Let は、現在は主に id:onk が開発している、ブックマークレットをかんたんに作成・公開できるサービスです。 ソフトウェア式年遷宮とは 初出は 2013 年の id:kenjiskywalker によるもので、このときはイ
先日 Wantedly さんのエンジニアリングマネージャー座談会に出演させていただいた。 wantedly.connpass.com テーマは、「エンジニアリングマネージャーの課題を相談したい人が多い」「その相談パブリックにしよう」なので、自分が最近課題に思っている「変化の速度感」についてざっくばらんに会話できたらなーというのが期待だった。 イベント中には、大きく 4 つの話をしたのかな。それぞれ会話の中では話しきれなかったことも補足しつつ書いていく。 技術スタックが違うチーム プロダクトと専門組織のバランス 専門組織を立ち上げるポイント 採用と oss-guild 技術スタックが違うチーム リンク先を見て貰うと顕著に分かると思うけど、はてなでは、そこそこバラバラな技術スタックを使っている。 hatenacorp.jp インフラは AWS、Google Cloud (オンプレはやっと撲滅し
昨日「動いたけどチームメンバーを説得するのが面倒で、秘蔵のブランチになってしまう」って言ったけど、この気持ちはどこから出てくるのか。 分かりやすい Cons があると、反発が予想できて、その反発を解決するところまで労力を割くほどの気持ちが無いので困る。「直ちに問題になるわけじゃないが、どちらかというとやった方がいい、でもリスクもある」という選択肢を選べずにズルズルと現状維持に向かう圧力は、ある。チームの同質性が高いうちはほとんど困らないんだが、人数が増えたり、別の職種が増えたりするごとに「面倒」さはどうしても増していく。 我々の信念として以下を持ってはいるが、現状維持に向かう圧力がある中で変化を加えるのはそこそこ労力が要り、閾値を超えると変化が発生しなくなってしまう。 業務・開発フローは「変えることは無条件に正しい」くらいに思って良いと思っています。 素早く変えてもし仮にダメだったら素早く
タイトルがすべて。 思いついたら手を動かしてしまう性質なので、秘蔵のブランチを大量に持っている。 秘蔵のブランチというのは、動いたけどチームメンバーを説得するのが面倒とか、テスト書くのが面倒とか、だいたい動いているけどやりきるのが面倒とかで main にマージしていないヤツ。 例えばフレームワークのメジャーバージョン上げるブランチとか、依存ライブラリをより一般的/現代的なものに交換するブランチや、より良い設計を思いついたのでガッと書き換えてしまうブランチが多いかな。 だいたい 1 年所属していると 80 ブランチぐらい溜まるので、週 1 つ以上は何か作りかけてる計算になる。 ローカルブランチの数、プロンプトに出しておくかな……。(秘蔵のブランチが溜まってる— Takafumi ONAKA (@onk) March 28, 2017 もちろん自分でいいアイディアだと思っているから実装している
1on1 で伝えたので外にも書いておく。 プロダクトやチーム、メンバーのフェーズ まず現状分析。 自プロダクトは PPM で言う花形、金のなる木、問題児、負け犬のいずれに当たるのか 勢い MAX でめっちゃ盛り上げるのか、地味に役割を達成するのか。自チーム全集中なのか他チームのフォローに回るのかみたいな方針が変わる 自チームは エラスティックリーダーシップ で言うサバイバルモード、学習モード、自己組織化モードのいずれに当たるのか チームを改善しなければいけないのか、プロダクトだけを見ていて良いのか。チームで改善できるのか、リーダーや外部の強い意志が必要なのか 各メンバーは、期待される役割において SL理論 で言うとどのフェーズなのか 指示的行動が必要だとマイクロマネジメントすることになり、マネージャ/メンター的な人/行動を増やす必要がある 役割を網羅しているか こういう軸で考えていることが
何番煎じか分からないけど、最近やったので。 前提知識 AWS Lambda + Amazon API Gateway で HTTP リクエストを受け付けることができる AWS Lambda ではコンテナイメージを動かせる New for AWS Lambda – Container Image Support | AWS News Blog AWS Lambda で Sinatra アプリを動かすための公式サンプルがある https://github.com/aws-samples/serverless-sinatra-sample つまりコンテナ化した Sinatra アプリを Lambda 上にデプロイして HTTP リクエストを受け付けることができる。 動かす準備はもう全部整っていて、お手軽そうですね。 Ruby アプリを Lambda で動かすコンテナイメージを作る Sinatra
エゴサが趣味なので、社内の Slack のキーワード通知をめちゃくちゃ便利に使っている。 slack.com 何か見ておくと良いことがありそうなものを片っ端から通知するようにしているんだけど、100 個が上限なの知ってた? 100 個以上設定しようとするとこうなる 僕はこんなキーワードを入れています。適当に分類しながら見てみよう。 自分 onk, o/nk, on/k, おんく, 大仲, onaka, 眼科 自分の名前やハンドルネームを入れておくと、どこかで自分が呼ばれたときに気づけるようになる。 定時外だと親切でキーワード通知避けのために / を入れて発言する人もいるので、それも通知させるためにこういうキーワードになっています。戸籍ネームはほっっとんど呼ばれることは無いんだけど、念のため。 「眼科」は中心性漿液性網脈絡膜症になってるっぽいけど放置してたら T シャツが作られたので、戒めの
現状 各部屋のグッズはこんなモン。 玄関 天井に人感センサー電球 外には Netatmo Weather の室外モジュール 寝室 Google Nest Mini Nature Remo 3 テレビとエアコンを赤外線リモコンで操作 SwitchBot Plug ホットカーペットを操作 Philips Hue 仕事部屋 SwitchBot Plug ホットカーペットを操作 Philips Hue *3 LDK Google Nest Hub Nature Remo 3 シーリングライトを赤外線リモコンで操作 SwithBot 指ロボット 台所の電気スイッチを操作 SwitchBot Plug ホットカーペットを操作 Android TV Philips Hue ブリッジ SwitchBot Hub Mini 以上で 照明 Philips Hue、Nature Remo、SwithBot 指ロ
Gemfile 内で切り替える こういう ENV で切り替えるやつとか、eval_gemfile を使うやつとか。 https://github.com/discourse/discourse/blob/v2.6.2/Gemfile#L9-L16 def rails_master? ENV["RAILS_MASTER"] == '1' end if rails_master? gem 'arel', git: 'https://github.com/rails/arel.git' gem 'rails', git: 'https://github.com/rails/rails.git' else # NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explic
例えば日記を書くときに、午前 2 時に書いたものは前日分としたいことがある。またユーザがメチャクチャ多いサービスでは、0:00 を回ったら翌日のログインボーナスを配る、としていると、まだユーザが多い時間にサーバの処理が要求されて大変なので、28:00 を日付変更線にしたいことがある。 こういうときには module AppTime def self.beginning_of_day(time) t = time.change(hour: 4) t <= time ? t : t - 1.day end end を作って、 AppTime.beginning_of_day(Time.current) を使うと「アプリ内の日付変更線では何日なのか」が取れる。 # 02:00 は前日扱い time = Time.zone.parse("2021-01-31 02:00") AppTime.beg
去年 に引き続き、今年買ったものコーナー。 はてなに入社して明らかに変わったのが「日常をブログに残すようになった」ことで、その中でも「今年買ってよかったもの」はついタグを追ってしまうし追ったら買っちゃうし経済がどんどん回ってしまう。よくない。 だいたい買った順です。 SmartSleep ディープスリープ ヘッドバンド id:threetreeslight のツイートを見て買った またKoteraさんにデバイス教えてもらった。 Deep Sleepをboostできて睡眠品質向上できるらしい 🤔 毎日のtotal sleep timeが5.5hなので、めっちゃ期待したい。 SmartSleep ディープスリープ ヘッドバンド https://t.co/eNtkK2N6N6 ちょっと高いけど、だめだったら返品できるし買ってみるか。 pic.twitter.com/6pw4zusn54— th
本記事は、はてなエンジニア Advent Calendar 2020 の 18 日目の記事です。昨日は id:YaaMaa さんでした。 yaamaa-memo.hatenablog.com 社内チャットではこの話で盛り上がったときにトライ木も作られており、良い頭の体操になっていました。 さて、本題。 Hatena::Let を眺めていて、こんな URL に気づいた。 http://let.st-hatelabo.com/onk/let.iframe?code_id=g5G0uOeEqfcA;key= クエリパラメータにセミコロン……! パッと考えるとこれは { code_id => "g5G0uOeEqfcA;key=" } となりそうで、というか Ruby で実際にパースするとそうなる。 uri = URI("http://let.st-hatelabo.com/onk/let.ifr
設計ナイト2020 を受けて、今どんなアーキテクチャを選ぶべきかという話をしたくなったのだ。 kichijojipm.connpass.com 設計ナイトで高ぶった結果1時間コースの発表資料が完成したので供養場所を探しています。聞いてくれ!!!— Takafumi ONAKA (@onk) 2020年11月1日 お前誰よ 2000年代前半に SI 2000年代後半にブログ、SNS 2010年代にソーシャルゲーム 2020年代に UGC サービス をやってきた人間。数百万〜数億行のデータ、月間数千万〜数十億 imp 程度を主戦場にしています。 今日の話 DDD と PofEAA から学ぶパターン/アンチパターン Rails によって発見された、密結合で速く走れるソフトウェア 今求められているアーキテクチャ 昂ぶって 15,000 字ぐらい書いてしまった。 DDD と PofEAA から学ぶパ
id:uzulla、id:moznion と共に curl gotti というチーム名で出場しました。このメンバーでやるのは去年に引き続き 2 回目。 三行で 最高得点 2125 で予選通過ならず 繰り上がり当選した!!! ほぼいつもの力が出せた。ので実力不足である。。 とても楽しめた良問だった。ありがとうございます 多分この辺の施策をやったんだと思う condition.json を静的に返す 雑に INDEX 張る features の LIKE 検索を正規化して撲滅 xxxRangeId カラムを追加 なぞって検索の N+1 改善 PHP のチューニング DB のチューニング ORDER BY popularity DESC, id ASC をどうにかする DB 2 台構成に Bot に 503 を返す 自分が考えたことや手を動かしたことは分かるんだけど、それ以外のチームメンバーがや
「いつもの」が結構ありそうなので書いておく。 app.rb ペラ 1 でツラくなったときの対策はだいたい sonots パイセンの ちっちゃくはじめておっきく育てる sinatra アプリの作り方 に書いてあって、これは今でも有効なので読んでおくと良いです。 ディレクトリ構成 REPO ├── app.rb ├── bin/ ├── config/ │ ├── database.yml │ ├── initializers/ │ └── locales/ ├── config.ru ├── Gemfile ├── Gemfile.lock ├── helpers/ ├── models/ ├── public/ └── views/ sinatra らしさをなるべく残してある 例えば config/boot.rb を用意するかは非常に悩んだのだけれど、起点は app.rb であって欲しい
gorogoro.rb とは 大江戸Ruby会議08でぺんさんが最後に再生していた頭のおかしい (褒め言葉) Quine。 僕の発表の最後に紹介したごろごろしたQuineコードです #oedo08 pic.twitter.com/mkp8TaVaVt— ぺん! (@tompng) February 11, 2020 コードはこちら https://gist.github.com/tompng/45d93b3386b5986a94b9c3c8beecba69 実装を見ていく アスキーアートプログラミング構文 まず見慣れた (毎年 Ruby 会議に参加しているうちになぜか見慣れてしまった) アスキーアートプログラミング構文が使われている。 eval((c=%{ ... }).split*'') 詳しくは あなたの知らない超絶技巧プログラミングの世界 の第 2 章を参照だけど、%{} の中がプロ
このエントリは はてなエンジニア Advent Calendar 2019 の 18 日目のエントリです。 qiita.com 前日は id:ikesyo さんによる 2019年のSwiftモック事情 でした。 ikesyo.hatenablog.com SQL を分析したい 今日の話。DB 負荷を継続的に計測していきたいのです。 そんなときに Percona Toolkit って良いライブラリがあるので、これを使っていきましょう。 SQL を分析するときは以下のようなことを考えます。 本番環境でログを採取 normalize グルーピング EXPLAIN マズいクエリを見つけたらアラート発報 それぞれ見ていきましょう。 ログの採取 色々眺めたいので一旦 tcpdump を使います。 流れるクエリだけじゃなくて response も全部採取しているので、秒で GB 単位のデータが溜まってい
2019-04-01 に「チーフエンジニア」という肩書きを手に入れてしまった。 はてなのエンジニア組織にはチーフエンジニアという役割のエンジニアがいて、評価や採用、その他大小諸々の施策を通じて、技術部門全体の生産性と幸福度を向上させるのがその仕事です。 はてなのエンジニアのバリューズ - Hatena Developer Blog 前職でも新卒採用、中途採用のお手伝いはしていたのだけれど、今は主業務の一つとして担当しているので、僕がどこを見ているのか、というのを書きとめておこう。 履歴書 チラ見しています。 「通勤片道1時間ぐらいかかりそうだけど大丈夫かなぁ?」とか「趣味がルービックキューブじゃん! はてなの speedcubing 部と戦わせたろ」とかを見ています。 職務経歴書 まぁまぁ見ています。 プロジェクトで使った技術、特にアーキテクチャについてを一番見ていると思います。次にプロジ
blog.hokkai7go.jp dekolife.hatenablog.com なるほどね。ヨサソウ 状態の悪さがわかる指標 起きてるにも関わらず出社する気が起きなくて午後までボーッとしてる なんかおなか空いてる気がする 分かってるのに分かりたくない駄々っ子状態になる 他人への要求水準が高くなる 改善案 楽しいタスクをやる テスト前に掃除する的なヤツ 寝る マンガ読む ゲームする 食べる しんどいときに何やっても良くはならないので、今この瞬間の負荷を減らさないといけないと思う。なので本来は「タスクを減らすよう関係者と握る」「後で良いものを本当に後で良いとラベリングして視界/脳内から追い出す」が良い。(とは思っているものの、実践できないので、迷惑を掛けることでアラートを上げてマネージャに何とかして貰おう) 寝るのは強制的にタスクを追い出せるのでオススメです。マンガ・ゲームは、それに集中で
マルチテナントのアプリケーションを作っていて、サブドメインでアクセスしたらそのテナントのデータを表示したい。 apartment gem を使うのが一般的だと思うが、 builderscon tokyo 2018 で つらくないマルチテナンシーを求めて: 全て見せます! SmartHR データベース移行プロジェクトの裏側 という発表を聞いたので、せっかくなら organization_id を全テーブルに持たせる感じのデータ構造にしようと考えた。 以下のような作戦です。 (1) サブドメインを rack middleware で見て、 ActiveSupport::CurrentAttributes に保存する class OrganizationInjector def initialize(app) @app = app end def call(env) req = ActionDi
京都への観光旅行で終わってしまうと怖いと思って明けるまで待っていたんだけど、どうも有休発生と混同していたっぽい。 よく考えたら半年って長いよね。 というわけで株式会社はてなに入社していました。 マンガチームで GigaViewer というマンガビューワを作っています。 また CTO 室を兼務し、生産性向上に向けての取り組みを行っています。 さぁ日記書くぞ!
次のページ
このページを最初にブックマークしてみませんか?
『id:onk のはてなブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く