サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
studio3104.hatenablog.com
近年、日本の大企業、特に非デジタルの領域でビジネスを成長させてきた業種・業態の企業において、例外なく DX に関連する取り組みを推進・進行している。そして、大きな取り組みの成功事例もよく目にするようになってきている。しかしながら大多数がその成功事例を有する先行者のフォロワーに過ぎないというのが実情であろう。筆者は2022年1月からある大手 JTC の開発組織で中間管理職をしているマネジメント2年生の所謂 DX課長 であり、渦の中で藻掻く者のうちのひとりである。たかが1年間、されど1年間ではあるが、1年間藻掻く中で思うこと感じること考えてることがあるので、このタイミングで文章としてダンプしていく。 そもそも DX とは何なのか 定義、解釈、認識が曖昧なまま『DX をやっていく』を継続したときに起こること 認知が歪み、頭手足がバラバラの方向に進もうとする ローカルスコープで独自の解釈を反映した
とは言ってみたものの実際にはちょうど1年前くらいからやってました。始めてからすぐ Premium 買ってたので。 うおお、LeetCode の Premium が Expire していた、、— Satoshi SUZUKI (@studio3104) December 11, 2020 ではなんで「半年間で」なのかというと、今年の前半は英語の勉強をがっつりやってたので英語と仕事以外のことは何もしてなかったから。 そして300問はまだいってないんだけど、英語漬けから空けた6月アタマから数えて半年経過の今月末には300問いくだろうという見込みがあるということでタイトルはこのようにした。 1年間で LeetCode の問題を290問解いてみて ということで改めて。@sugyan と @fushiroyama *1 に影響されて始めたんだが、続ければ続くものですね。 自分は "コードの書けないイン
もういつから出社していないかも忘れてしまった。2ヶ月くらい経ったんだろうか。 テレカンしてるときとオンライン英会話してるときは子どもたちは気を遣ってものすごく静かにしてくれる。カミさんはお構いなしで大音量で韓国ドラマ観てる。— Satoshi SUZUKI (@studio3104) April 16, 2020 つい数日前まではリビングのソファのサイドデスク(?)にラップトップを置いて地べたに座って仕事をしていた。テレカンするときは子供たちはテレビの音を小さくするなどして静かにしていてくれたがそれ以外のときはほぼアニメがつきっぱなしなので集中力を大きく削がれる。息子は一生 Dr. STONE を見続けている。そして天真爛漫な妻はテレカンもお構い無しでドデカ生活音を発してくるので寝室に退避することもしばしば。このような状況下では自分だけではなく家族にとっても無視できないストレスがあったはず
Chrome を起動し直してから Cmd + Shift + t で全部生き返るよ。 意外と知らない人が多いようなのでしたためておこう。
当エントリはこちらのエントリに対してのアンサーソングです。 whywaita.hateblo.jp このような辛辣とも思える ブコメ をしただけでは前途ある若者が業界に失望してしまうかもしれないのでちゃんと書いておく。 "インフラの仕事がしたいのに求人がない"について - なぜにぽえむ 何を指してインフラエンジニアとしたいのかわからんけどそれなり以上のところでコードも書けないでぽちぽちコマンド叩くだけの仕事なんてねえよ > "「エンジニア」って一括りにされてる例が多い… (アプリケーションの 2016/04/13 14:31 b.hatena.ne.jp このようなシゴトがしたい、 大規模なサービスのサーバ管理とかしたい イケてるインフラ管理としてクラウド使ったりしたい 自社のバックボーンで足りなくなったリソースをクラウドに外だししたりとか でも実際には こういう求人がない… インターンも
※これは Python Advent Calendar 2015 2日目のエントリです。 各モデルが共通のカラムや振る舞いを持つようになってきたら Django でアプリケーションを開発していると、各モデルに共通のカラムを持たせたり、共通の振る舞いをさせたりしたいということが起こると思います。 そのような場合は、各モデルに対して同じような実装を施すのではなく、Abstract Model を定義して各モデルがそれを継承するようにするのが自然でしょう。 例えば以下の様な感じです。 from django.db import models class CommonAbstractModel(models.Model): created_datetime = models.DateTimeField(auto_now_add=True) updated_datetime = models.Dat
Rubyist でしたが Python もはじめました。 パーフェクト Python を Kindle で購入しましたが、検索出来ないし文字を選択できないのでコピペ出来なくて大変不便なので、物理版を購入すれば良かったと後悔しております。 話が逸れました。本題に。 これを書いている現在、当方 Python 歴数日 なので温かいアドバイスなどあれば是非ともよろしくお願いいたしますm(__)m 雛形を作る paster create を実行し、プロジェクトの設定を対話的に入力していきます。 $ pip install python_boilerplate_template $ paster create こんな感じになる。 $ tree -C hoge hoge ├── hoge │ └── __init__.py ├── hoge.egg-info │ ├── PKG-INFO │
5時間モノの alter table が Lost connection to MySQL server during query したんだけど show processlist するとまだ動いてるっぽいから放置しとけば完遂するのかなと思ってるんだけど大丈夫だろうか、、、 2015-03-30 16:47:05 via Twitter for iPhone とりあえず show processlist してまだ動いてるっぽかったら、datadir 配下で #sql-xxxx_xxxxx.ibd な名前のファイルが育っているかどうか確認する。 タイムスタンプが更新されていればテンポラリテーブルへのデータコピーが生きてるということになるので、あとは show processlist を監視して終わるのを待てば良い。 で、終わったっぽかったら show create table を確認して変更が
複数の my.cnf を比較して差異を知りたいが、通常のファイル同士の比較(diff) ではわかりにくいしそもそも知りたい情報を得るのはつらい。 ということがあり作成していた書き捨てのスクリプトがあったのだが、整理してテストまで書いて rubygems に放流した。 mycnf | RubyGems.org | your community gem host studio3104/mycnf · GitHub mycnf.gem 機能概要 parse my.cnf のファイルパスを食わせると parse して hash を返す generate 上記の parse のフォーマットの hash を食わせると my.cnf を文字列で返す compare 上記の parse のフォーマットの hash を複数食わせると、比較しやすいフォーマットで hash を返す (ファイルパスを複数食わせて
良いイベントでございました。 LT の機会をいただきありがとうございました。 Validation Night - connpass しゃべったこと focuslight-validator という、おもに HTTP リクエストパラメタのヴァリデーションのために使うモジュールの紹介をしました。 LT なのに 40p 超のスライド作っちゃって、ガーッと駆け足でやったけど 90s くらいオーバーして迷惑をかけてしまった。 focuslight-validator focuslight/focuslight-validator · GitHub スライドにも書いたけど、汎用的に使えるヴァリデーションモジュールです。 名前から察すると、Focuslight 専用なの?って思わなくもない*1けど、Rails でも Padrino でも使える(と思う。使ったことはない。)汎用的なヴァリデーションモジュ
背景 自分が仕事で書く WEB アプリケーションは多くの場合が小粒で、何か書く場合には sinatra を使っています。 さらにテンプレートエンジンは slim で、ビューが必要な場合は twitter bootstrap を使って書きます。 で、新規で何か書き始める時に、それっぽいディレクトリ構成を作って、twitter bootstrap とか jquery とかをダウンロードして解凍してそれっぽいところに設置してー(もしくは既存プロジェクトをディレクトリごとコピーしてきて要らないファイル消してネームスペース変更してー)、とかっていうローテクな感じのことを毎回手動で行っていて、すっと実装に入れない!めんどくせー!ってなることが多いので、いったん整備してみました。 studio3104/ore-no-sinatra-skelton · GitHub 構成 javascript/css ラ
タイトル通りの挙動を、このエントリを書いている現在で javascript がまったく得意ではない自分が jquery で書くとこんな感じになります。 きっともっとまともな書き方があるんでしょうけども、非常に冗長な感じですね。 vue.js で書いてみた めっちゃスッキリした。 el で指定したセレクタの配下がスコープになるので、上記の jquery のように挙動ごとにセレクタを指定しなくて良くて(きっともっとまともな書き方があるんでしょうけども)スッキリ書けて良い。
tmux 1.8 (それ以前のバージョンは知らない) では、ペイン分割時に現在フォーカスのあるペインのカレントディレクトリで新しいペインを作ってくれたが、どうやら 1.9 からはそうではなくなった模様。 だいぶ不便なので、.tmux.conf をこのようにした。 ( | や - での分割はデフォルトではないので注意です ) # ペインを縦分割 unbind % bind | split-window -h -c "#{pane_current_path}" if-shell '[[ "`tmux -V`" =~ 1\.8 ]]' 'bind | split-window -h' # ペインを横分割 unbind '"' bind - split-window -v -c "#{pane_current_path}" if-shell '[[ "`tmux -V`" =~ 1\.8 ]]'
こういう感じのアプリケーションがあったとします。 で、この例だとまったくファットじゃないんだけど、Controller がファットになってきてしまった場合に、いい感じに分割したくなることもありますよね。 ということでとりあえずこうしてみた。 各クラスが Sinatra::Base を継承するではなくて、Base を設けてそれを継承するようにしているのは、各クラス内でそれぞれ before を書きたくなかったからです。 が、このように書いてしまうと、リクエストパスによっては 1 回のリクエスト中に before 内の処理が複数回実行されてしまいます。(実際に before に適当に p 123 とか書いて起動して、アクセスしてみるとわかる) それだと最悪なので、最終的にこうした。 ルーティングを config.ru に書きたくなかったので、定数化して呼び出すようにしています。 参考 Sina
「ブログを書くまでが YAPC::Asia」とのことですので、このエントリを以って僕の YAPC::Asia 2014 が終わってしまいます。 インフラエンジニアは死んだ インフラエンジニア(狭義)は死んだ - YAPC::Asia Tokyo 2014 トークに応募したきっかけ 「声を上げない層をターゲットにしよう」ということを、トーク募集期間中に実行委員長の和田裕介さんがブログに書かれていました。 僕が2年連続でベストトーク賞をとれた訳 #yapcasia - ゆーすけべー日記 で、よく観察してみると、グレイトな ライブラリやサービスをつくっているハッカーは 「ただ口も声も大きいから」目立っているだけで、1,000人という規模の来場者からしたら 実はごく少数のマイノリティなんすよね。 ああ、なるほど。と思いました。 なんか、いわゆるそういう声の大きい人たちの評判、反応ばかり気にしてしま
タイトルの通りの話。書いてる今めっちゃ酔ってるし意図した通り伝わるかわからないけど。そして酔ってる帰り道でiPhoneで書いてるので装飾とかまったくしてなくて読みにくいです。 本題。例えば仕事で何かわからないこととか方向性で悩んでることがあったとします。そういう場合は1人で悩んでいるよりもまわりの誰かに相談しながら考えたりするほうが良い場合が多いと思います。 なので聞きます。聞いたら、「あー、それは筋が悪い。」とだけ返ってきてそれで終わりだったとします。そんなことは現実的にはあまりないかも知れないけど、そういうこともあるでしょう。色々な人がいますから。 そのショートアンサーを出した人にどういう意図があるのかということを考えたりとかしますよね普通。 •とりあえず今忙しすぎて君の相手をしている場合ではないが無視するのはアレなのでいったんショートアンサー•そんなレベルのことは自力で考えて解決でき
MySQLのスロークエリログを一覧したりサマライズしたり出来るNata2というツールを作ったので、MySQL Casual Talks vol.6で発表させてもらった。 id:oranieさんが早速試してみてくれて、書いてくれたブログエントリにたくさんのブクマがついて大変にありがたい限りです。 MySQLのslow query logを可視化するnata2が大変便利そう - iをgに変えるとorangeになることに気づいたoranieの日記 使い方などをもう少し詳しく 発表当時はドキュメントがまったくなくて大変に雑な感じだったり、発表で説明しきれなかった部分もあったので、ここで改めて少し詳しい解説をします。 Nata2とは パーズされたスロークエリログをHTTP Postで登録し、件数グラフ、スロークエリログの履歴、mysqldumpslow相当のサマライズなどの表示が出来るウェブアプリケ
トーク採択していただきました。インフラエンジニア(狭義)は死んだ ソーシャルメディアでの拡散などしてくださった皆様有難うございます!!!1 初日の朝イチでだいぶ早いですが、早起きしてお越しいただけると大変うれしいです。 2014-08-29 10:20:00 に 慶應義塾日吉キャンパス内 協生館 2F 多目的教室2 でお待ちしております。よろしくお願い致します。
HRForecast には EMBED の機能があり、iframe で別のページ(別のアプリケーション)にグラフを埋め込むことが出来ます。 ただ、埋め込む先のアプリケーションによっては、グラフ名と 1週間,1ヶ月,1年 などのレンジ指定、CSVエクスポートが置かれているヘッダ領域、グラフ名と値が表示される右側のラベル領域が不要な場合もあるかなと思います。 ので、pull-request して取り込んでもらいました。 suppress graph headers or labels when specified respective options #26 指定するクエリストリングと参考画像 iframe の中の URL のクエリストリングによって表示が変わります。 ヘッダもラベルも消したい場合 graphheader=0&graphlabel=0 ヘッダだけ消したい場合 graphhead
graphite にメトリクスをポストする fluent-plugin を書きました 先に github で公開されていた fluent-plugin-graphite がありましたが、イチから書いて gem release いたしました https://github.com/studio3104/fluent-plugin-graphite http://rubygems.org/gems/fluent-plugin-graphite なぜイチから書いたのか 以下のような箇所に懸念があり、修正だと結局まるっと書き直すのと変わらないと思いイチから書いてしまいました 先行プラグインは、 Fluent::BufferedOutput を継承し、内部でサンプリングやカウントなどの計算をしていたが、そういうのは他のプラグインに任せて、来た値をそのまま投げてあげればいいのではないかと思った レコード
HRForecast の API で値を投げた時に返ってくる JSON に、これまではエラーの有無とエラーメッセージだけでしたが、POST 成功時にはグラフの情報が含まれるようになりました。 { :metricses => [ [0] { :section_name => "test_section", :id => "1", :colors => "[\"#99cc33\"]", :updated_at => nil, :service_name => "test_service", :graph_name => "test_graph", :color => "#99cc33", :meta => "{\"color\":\"#99cc33\"}", :created_at => nil, :sort => "0" } ], :error => 0 } 他にもいくつかの JSON AP
インストールや設定などは、pt-agent のドキュメントの通りに進めれば難なくこなせるはずですので割愛します。 感想 以下の点などを加味して考慮した結果、思っていたほどいいモノではないような気がしました。 ざっと使ってみただけなので誤っている点などあるかも知れませんが、ご容赦を。 「ここちがうよ!」「こうすればもっといいよ!」みたいなのよろしくお願い申し上げます。 pt-agent というエージェントを root 権限で動かさなくてはならない pt-agent の設定は、Percona Cloud Tools の WEB 画面からも設定変更を行えます。 例えば以下画像だと、How often to report のところをいじるとサーバ上にある cron のファイルが書き換えられます。 インターネットから操作するのに root 権限あげちゃうのか、、、って感じ。 [追記] root じゃ
テキストベースの IRC クライアントとして有名な WeeChat ですが、IRC Bouncer としても使えることがわかり、使ってみたら大変によさそうであったので共有いたします。 旧環境 最近まではこんな感じで ZNC に IRC サーバに繋ぎっぱなしにさせて、クライアントが繋いできたときは設定された行数をプレイバックするみたいにして使っていた。 +--------------+ IRC +---------+ IRC +-------------+ | LimeChat(PC) | ---------> |+-------+| -----> | Company IRC | +--------------+ || ZNC || +-------------+ +------------------+ IRC |+-------+| IRC +----------+ | LimeChat
昨年に引き続いて、今年も参加してまいりました。 じぶんのちいささをしった kazeburoさんのトークを拝聴して、大筋では仰っていること、ご説明されていた内容は理解出来ましたが、なんとなくぼんやりした感じになってしまいました。 UNIXプロセスとかシステムコールについてほとんどちゃんと理解していなかったからでした。 ほう、さすがベテランのスーパエンジニアさんや!で片付けてしまうのは簡単です。 そうではなくて、知ってしかるべきことを知らなかったのであればそれを埋める努力をしなくてはならないし、そういうところ甘かったな、と。 そもそものセンスとか、経験値積んだ上で霊力上げないとー、とかではなく、知ってるか知らないかというところで、何か問題に直面したとき、それを解決するために取れる手法、手段の幅が変わっていってしまうのであれば、学ぼうとしない理由がないですね。と思った次第です。 まぁ、現状の問題
使い方はgithubのREADMEと、コマンドのヘルプにだいたい書いてあります。 https://github.com/studio3104/houcho どういうツール? serverspecの実行対象とspecの組み合わせを定義し、どのように管理、実行するかというところを解決するツールです。 atnodesのようにspecと対象ホストを引数に与えて実行させることも出来ますし、独自のロールを定義しておいてそれを実行させることも出来ます。 多くの場合サーバの情報はすでに他のシステムやファイルなどで管理されていることが多いかと思いますが、CloudForecastの設定からホストグループを作成して、それをhouchoで作成した独自のロールにアタッチすることも出来ますので、CloudForecastをお使いの環境においてはロール管理を多重にしなくてはならないということがなくなります。 Clou
Provisioning Frameworks Casual Talks vol.1という勉強会を開催しました。 内容については参加者や登壇者の方々のエントリなどをご覧いただくとして、自分は主催者目線で開催においての反省などを綴ります。 個人的反省 mizzyさんにserverspecの話での登壇を依頼しなかった ほとんどの登壇者が #serverspec の話をしている。 #pfcasual 2013-05-10 21:19:03 via YoruFukurou mizzyさんに #serverspec の話をしていただくように依頼しなかったこと、だいぶ罪深いな。 #pfcasual 2013-05-10 21:20:53 via YoruFukurou 発表者6名中4名がserverspecについて何らかの言及をされていました。 なんで登壇依頼しなかったんでしょうね・・・ もともとは、
chef-xbuild を作った! - Studio3104::BLOG.new cookbook を作ったので opscode に公開しました。手順を残しておきます。 sign up & get API key http://community.opscode.com にアクセスしてサインアップします。 https://community.opscode.com/users/[YOUR USER NAME]/user_key/new にアクセスして、鍵をダウンロードします。 Upload あとはこんな感じのコマンドを叩くだけ。 CATEGORY は ココからいずれかを選択します。 knife cookbook site share [COOKBOOK NAME] [CATEGORY] -o [PATH TO COOKBOOK] -k [PATH TO PRIVATE KEY] -u [Y
サーバーのセットアップは perlbrew とかじゃなくてよくね? という時のライフハック - blog.64p.org 本番環境でのperl/ruby/nodeのセットアップ - tagomorisのメモ置き場 本番環境で使う LightweightLanguages を **env とかで入れるのはアレだよね。な流れに乗ってそういう環境を作る Chef の Cookbook を書きました。 作ったとは言っても、tagomoris/xbuild · GitHub をそのまま cookbook に書き換えた、という感じです。 chef-xbuild https://github.com/studio3104/chef-xbuild お気軽にお試しいただけます。 Ruby 実行環境があり、Virtualbox がインストールされていれば、簡単に試していただくことが出来ますのでご興味を持たれま
次のページ
このページを最初にブックマークしてみませんか?
『Studio3104::BLOG.new』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く