サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
joker1007.hatenablog.com
自分が所属している会社のメンバーの教育用資料として、それなりの規模のデータを扱う時に前提として意識しておかなければいけないことをざっくりまとめたので、弊社特有の話は除外して公開用に整理してみました。 大規模データ処理、分散処理に慣れている人にとっては今更改めて言うことじゃないだろ、みたいな話ばかりだと思いますが、急激にデータスケールが増大してしまったりすると環境に開発者の意識が追い付かないこともあるかと思います。 そういったケースで参考にできるかもしれません。 弊社は基本的にAWSによって運用されているので、AWSを前提にした様なキーワードやサービス名が出てきます。後、句読点があったり無かったりしますが、ご容赦ください。 追記: 社内用の資料の編集なのでかなりハイコンテキストな内容だから誤解するかもしれませんが、これらはそもそもRDBの話ではありません。(関係無くは無いけど) 1000万オ
早朝の寝る前ぐらいの時間にぼやっと下記の様なツイートしたらちょっと反応を貰ったので、取り留めは無いが自分なりに考えていることを書いてみる。 人を育てるのも仕事の内というのは完全にその通りなんだが、そこにドキュメントや本があるから読みます、触って作ってみます、生きたコードを読みます、以外に学ぶ方法なんかねえし、知らねえよ。ただやればいいだけの事に説明も何も無いんだよな……。マジ分からん……。— joker1007 (アルフォートおじさん) (@joker1007) March 2, 2023 タイトルは雑に書いたけど、能力を高めるというと範囲が広過ぎるので、技術的な意味でできる事が増える、ということをテーマとして話をしていこうと思う。基本的に自分の考え方の話なのでそこは御留意ください。 ツイートした通りで、状況や対象に依って割合は変わるかもしれないが基本的にそのためにやることは3つしかないと
最近、パーフェクトRuby on Railsの増補改訂版をリリースさせていただいた身なので、久しぶりにRailsについて書いてみようと思う。 まあ、書籍の宣伝みたいなものです。 数日前に、noteというサービスでWebフロント側に投稿者のIPアドレスが露出するという漏洩事故が起きました。これがどれぐらい問題かは一旦置いておいて、何故こういうことになるのか、そしてRailsでよく使われるdeviseという認証機構作成ライブラリのより良い使い方について話をしていきます。 (noteがRailsを使っているか、ここで話をするdeviseを採用しているかは定かではないので、ここから先の話はその事故とは直接関係ありません。Railsだったとしても恐らく使ってないか変な使い方してると思うんですが、理由は後述) 何故こんなことが起きるのか そもそも、フロント側に何故IPアドレスを送ってんだ、という話です
英字キーボード配列にできて開発ユースに耐えうるノートPCがとても選択し辛い昨今、なんとなく安牌ポジションだったMBPについにさよならしました。 元々、Macを好んで使っていたというより、解像度が高くて英字配列にできて電池の持ちが良いというノートPCがMBPだっただけで使ってたのですが。 一番大きな要因がコンテナの利用頻度が増えて開発環境も含めてDockerを使う様になったので、Macだとどうにも面倒だという点です。 docker-machineのデフォルトとかdocker for Macのデフォルトが遅過ぎて話にならないし、dinghy使ってもdocker-sync使っても微妙でかつ面倒くさい。 普通にLinux上で直接動かせるなら、無駄な苦労だと思って、まず開発用PCをLinuxにしようと決めました。 そしたら新しいMBPが30万越えるのに、一世代前のCPUとメモリでドヤ顔してくるわ、キ
Macを捨ててThinkpadにGentooを入れて開発環境としてから2ヶ月が過ぎた。 世の中にはMacから離れようとしてThinkpadを買ったら、矢印キーボード押しにくいとかタッチパッドがクソなので、Macに戻っていった人も居るみたいですが、私としては至極快適に過ごしております。 そもそもThinkpadのタッチパッドは基本無効化するものなのでどうでもいい。まあそのスペース邪魔なんだよ、とは思いますがw Wi-Fiの無効化キーを誤爆するという危険があるらしいが、Gentooだと頑張って設定しないとそういう特殊なキーはそもそも動かないので、そんな危険もなく安全ですね。 Gentoo入れてタッチパッドを無効化すれば、Windows10というOSも使わなくていいし、全て解決するんではないでしょうか。 前置きはこのぐらいにして、色々と使うものが安定してきたので今の環境について書いていきます。
Stack OverflowのTDD Anti-patterns catalogueというスレがとても面白かったので訳してみた。 Stack Overflowのvoting機能でアンチパターンへの投票を行っている感じ。 上から投票の多い順になっている。 得票数はこの記事執筆時点(2013.7.9)のもの。 SQLアンチパターンっぽく、パターン名はそのまま片仮名にしてみた。 また、内容がかなり被っているとか、状況がかなりレアじゃないかと思うものは、一部省略しました。 (ブコメで訳間違ってるよ、って教えてもらったので、一部修正しました 2013.7.10) フリーライド (テストのただ乗り) 50pt 新しいテストケースを書くのではなく、他の機能のテストに新しいアサーションを追加して既存のテストケースに乗っかる。 セカンドクラス シティズン (二等市民) 47pt プロダクションコードのように
そろそろ忘年会シーズンですね。年末の飲酒予定がちらほらと埋まってきている頃だと思います。 というわけで、日本酒を飲んだ経験ならRubyist界の中でもトップクラスと勝手に自負しているこのjoker1007が、年末に向けてオススメの日本酒を紹介したいと思います。 居酒屋で日本酒を選ぶ時や、酒屋で買って宅飲みする時の参考にしていただけると幸いです。 ちなみに、書いてる内容は私の主観であって明確な根拠があるわけじゃありません。 私の味覚が適当な場合もあるし、同じ銘柄でも作り方によってはかなり違った味わいになるし、年によっても味は結構変わりますので最終的には勘に頼ってくださいw 鉄板 まず、ここ最近の俺的鉄板銘柄をいくつか。自分が旨味のしっかりした銘柄の純米吟醸が好きなので、その辺りで美味しい所が多いです。 東洋美人 (山口県) 少し前に大規模な水害に遭って蔵元がかなりの被害を受けましたが、その後
備忘録兼、初心者向けのメソッド一覧。 余裕があればRails編とかも書こうかな。 これ忘れてるとか何事?とかいう突っ込みがあれば是非お願いします。 もうちょっとコードの具体例書きたかったけど、めんどくさくなってきたw Array Array#combination(n), Array#permutation(n) 配列のデータを元に組み合わせ(順列)を作ってくれます。 ブロックを渡さない場合はEnumeratorで組み合わせの各要素を列挙します。 Enumerator Enumerator#with_index(offset = 0) Enumeratorの各要素に合わせてindexを列挙してくれるEnumeratorを返す。 each_sliceやcombination等にメソッドチェインで繋げて使う。 Enumerator#with_object(obj) with_indexと同様で
Electronで動作する動画ファイル及びJPG in Zip向けのファイルブラウザを作ってみました。 構成としてはElectron+React+Reduxで、gulpfile以外はbabelを使って書いてます。 そこそこ今風な感じを目指して、一部flowtypeとかも取り入れてますが、割と適当な感じで使ってます。 実は以前Node.jsで同じもの作ってたんだけど、せっかくちゃんとデスクトップアプリとして作れるようになったしReactにも慣れたのでElectronと今の技術で作り直してみたのがこれです。名前も同じだったりする。 https://github.com/joker1007/blackalbum https://github.com/joker1007/blackalbum/releases/download/v0.2.0/BlackAlbum-darwin-x64-0.2.0.
この記事は闇 Advent Calendar 2013 - Adventarの19日目です。 なんか前回の記事を書いたjugyoさんが非常にインパクトの強い話をぶち込んできたおかげで、次の俺どうしようかって感じで困ってますが、私は普通に鬱屈してる感情を書くだけなんで、そんな面白い話は無いです。自分語りのオナニーをして終わりです。 変な期待をしてる人が居るかもしれませんが、私はマジで何も関わってないのでコメントのしようが無いし。 俺の経緯 私は大学生になるぐらいまで、ただPCでゲームして、エロ動画を見て2chを眺めているだけだった。 貧乏だったので、バイトして金溜めてPCを新調した時、古いPCを活用する方法を考えて、Linuxでルーターを作る事にした。 そこからLAMP構成ってやつでプログラミングの真似事をやりだした。 実際の所、私はエロ動画及び画像の収集と管理を楽にするためにプログラミング
Twitterでちらっと見かけたので、自分も良い点と悪い点をまとめてみようと思う。 良い点 電車に乗らなくて良い ミーティング開始の5分前まで寝てられる 人の話し声がしない 話しかけられずに済む 疲れたらいつでもベッドにダイブできる ちゃんとアウトプットしてれば、仕事している様に見せなくてもいい 寝間着で仕事ができる ハイスペックなPCが使える WiFiが不安定みたいなトラブルが少ない 良い椅子が使える ヘッドホン無しで音楽が聞ける いきなり歌い出しても、誰も変な目で見ないし、迷惑がかからない 基本的に引き篭りなので、自宅の環境が快適になる様に腐心した結果、大抵のオフィスより自宅の方が執務環境として優秀であり、自宅より仕事に関する物の水準が高い会社というのをほぼ見たことがない。 そして、日常生活において、歌うというのが精神の健康上とても大事なので、音楽を聞きながら突然歌い出したりしたいのだ
先日のKaigi on Rails中の雑談として @ima1zumi さんから、RDBに対して秒間1000コミットぐらいで処理が詰まってる場合ってどうするのが良いのか、という質問を受けまして、雑談の中で色々答えてたんですが、せっかくだから記事にまとめておこうと思います。 ちょっとしたKaigi Effectって感じですね。 今回のKaigi on Railsのトークの中では、 数十億のレコードを持つ5年目サービスの設計と障害解決 by KNR - Kaigi on Rails 2023 の話なんかは割と関連がありますね。ユーザーの行動履歴というのは、ユーザー数 * N * タイムスパンで増えていくレコードなので、書き込みとデータ量が爆発しがちです。トランザクションで堅牢に処理しなければいけないケースもそこまで多くないので、RDBだと書き込みに対する処理が過剰なケースが多い。実際のところこの
近況報告、というかタイトル通りなのですが、CTOとしてデビューすることになりました。 7月から、最近お世話になってたReproという所のCTOという肩書を得ました。 自営業の個人事業主からいきなりCTOですよw まあ、CTOといっても、そこのフェーズ次第でやることってのは色々と変わってくると思います。 私の当面のミッションは、中長期的なアーキテクチャの方針決定とそれを実際に形にすること。 そしてリクルーティング、つまり転職斡旋おじさん業です。 なので、責任とコミットする割合が増えるだけで、そんなに今までとやってることは変わらないと思う……多分。 まさか自分がCTOになるとは全然思ってなかったんですが、30歳も越えたし肩書きと共に仕事するのも新しい挑戦としては良いかと思いました。 後は、収入ラインとかIT健保の任意継続が切れた後の社会保障の確保ですかね……。まあ、金は大事ですよね。 他にも色
最近、wayland移行も大分安定して、デスクトップで利用するアプリも多少変化したので、最近利用しているものをまとめておこうと思う。 基本的にGNONEやKDE Plasmaみたいな重厚なデスクトップ環境は使わないタイプなので、そういうラインナップになっている。 開発で必須、みたいなやつはこの記事には余り入れてない。 ウインドウマネージャー Hyprland waylandで動作するタイル型ウインドウマネージャー。ヌルヌル動くのが気持ち良いだけでなく、機能的にもよく出来ている。開発が活発なのも良い。 waylandで画面共有のために利用されるxdg-desktop-portalのために独自実装を持っていてswayでは出来なかったウインドウ単位の画面共有が出来る。 という訳でwaylandのタイル型ウインドウマネージャーといえばswayがメジャーだが、最近はHyprlandを利用している。
実はこれが初「で、お前だれよ?」エントリです。 最初の転職の時は、書くと愚痴と怒りしか出てこなさそうだったので書かなかったw およそ3年半ぶり二度目の転職、というか初の失職です。会社員を辞めてフリーランスになりました。 実は、年末の時点で退職を考えてたんですが、ちょっとタイミングが微妙に噛み合わなかったんで、1月から3月までの間は週に半分フリーランスという形で仕事してました。 で、4月から本格的に退職して完全にフリーランスです。 ITゼネコンの頂点みたいな会社に心疲れて2年半ちょっとで転職したので、もうプログラマーになってからの方が長いのかーと思うと感慨深いですね。 プログラマーとしても4年目に突入して、いよいよ中堅というかおっさん界の中でも中ぐらいのおっさんになってきた感じです。 今回会社を辞めたのは別に仕事に不満があったわけではないです。流石に完全にゼロでもないですがw 基本的には受託
Railsのバージョンは3.2.8時点のものです。(2012/8/21追記) 前回の冒頭で書いてたので、Rails版も書いてみようと思う。 要は、困ったらリファレンスマニュアルのそれっぽいところ見れば、 Ruby/Railsは大体解決してくれるよ(しかもスマートに)って感じなので、 悩んだらハマる前に一回公式に帰るのもいい手段だと思ってます。 でも、RailsのAPIリファレンスどこに何書いてるか分かりづらいと思う。 例えば、has_many関連には、実は:after_addとか:before_removeとか、 その手のコールバックをProcで渡せるんだけど、メソッドの説明の所に書いてないんよね。 上の方のクラス全体の説明の所にAssociation Callbackって項目があって、 そこで地味に説明されてたりとか。 この辺、もしかしてpull request候補かな。 メインはAct
ちょっと前にいつだったか、自分の開発環境についてまとめた記事でも書こうかと思っていたんですが、 ついでだからShibuya.rbでLTのネタにしてしまえと、話をしてきました。 ちなみに、今回のShibuya.rbは何か話したい人が居たらどうぞって感じだったのですが、 いつのまにかLT大会になってましたw 俺のRails開発環境 View more presentations from joker1007 内容としては至極一般的な環境だと思いますが、 資料アップしたところ結構反響があったので、 やっぱ人の環境は皆気になってるのかなーと。 後は、これからRails始める人とかかな? 資料の補足 インテグレーションテスト cucumberを使ってるのは慣れによる所も大きいですが、 今は業務上の理由でコード書く人とテストケース書く人が分離しているので、 request specは使ってなかったりし
このエントリはRails developer meetup 2017で発表した内容をブログとして書き出したものです。 サンプルのスニペットが多いので資料の代わりにエントリとして公開します。 スライド用のmarkdownを元に起こしたものなので、少し読み辛いかもしれませんがご容赦ください。 ECSとは Dockerコンテナを稼動するためのクラスタを管理してくれるサービス 使えるリソースを計測し、自動でコンテナの配置先をコントロールしてくれる kubernetesではない。最近、kubernetesが覇権取った感があって割と辛い 今はEC2が割とバックエンドに透けて見えるのだが、Fargateに超期待 ECS or EKS :tired_face: RailsアプリのDockerize オススメの構成 実際にデプロイするimageは一つにする 例えばstagingやproduction等のデプ
とてもとても悲しいので、とりあえずやったことと言い訳を書いて気を紛らわせることにする。 敗北した身でグダグダ言うのが格好悪いことは百も承知だが、人間には魂の救済が必要であることをご理解いただきたい。 序盤〜方針決定 最初パスワードのコピペミス等でサーバーからガンガンBANされて、そもそもログインできなくなる。これで10分から20分ぐらい無駄にした気がする。 テザリングにIPを切り替えたり、他のノードから入ったりして、何とか公開鍵でログインできる環境を整える。 適当にベンチ流してスコアを取る前に、nginxのログ設定や構成を確認しalpを使って集計できる準備を整えた。デフォルト実装とRuby実装でベンチを流す。その裏で実装を一通り読む。 ざっくり図を書いて、相談。とにかく/iconsを何とかしないと話が進まないので、静的ファイルとして書き出してCache-Controlだよね、までは即決。
どうもAmazonがフライングでパブリック状態にしてしまったのが補足されてしまったので、想定してないタイミングで世の中に通知されてしまいましたが、Railsの本を書かせていただきました。 パーフェクト Ruby on Rails: すが まさお, 前島 真一, 近藤 宇智朗, 橋立 友宏 元々はパーフェクトRubyを書いた後にスペースの都合で削ったRailsの章があって勿体無いという話から出てきた本です。 タイトルは最初決まってなかったんですが、最終的にパーフェクトシリーズの一つということになりました。 タイトルこそパーフェクトって付いてますが、この本は他の言語解説系の本とはちょっと雰囲気が違う感じになっています。 まあ、執筆スケジュールとかページ数によるスペースの限界という理由もありますが(Rails本の中ではかなり薄い方)、網羅性というより仕事でRails使ってる人達の知識とか考えに重
コロナが蔓延してから美味しいものを食べるために外食するという行為がほぼ無くなってしまい、お金を稼ぐモチベーションが薄れていたので、いっそ散財してモチベーションを取り戻そうと思い、自宅の環境改善としてオーディオにお金をぶち込んでみた。 ついでにMacを使わなくなってしばらく経つのに、iPhoneとの連携のためにiTunesとfoobar2000を無理やりLinuxで使ってたのを止めようと思いソフトウェア周りも一新することに決めた。 ハードウェア刷新 新しいヘッドホン 基本的に音楽はヘッドホンで聴くのだが、自分はゼンハイザーというメーカーのヘッドホンが昔から好きなので、まずは、そこのフラッグシップモデルであるHD800Sを買う。 実はHD820という後継のモデルもあったのだが、レビューを見る限りでは低音が多少HD800Sより強く出るが、HD800Sを持ってる人が買い替える程じゃないというコメン
2012年もそろそろ終わりという感じなので、今年を振り返るようなエントリも書いておこうかと思います。 今年はなんといっても、転職してプログラマとして仕事をするようになった年です。 この前のDevLove2012がちょうど前職辞めてから1年ぐらいで、感無量って感じです。 しばしば「あれ?そんなもん?」と言われるんですが、私はプロのグラマーとしては1年生で、今まではただの趣味の人でした。 まあ、前職でも肩書きとしてはエンジニアでしたが・・・。 あんまり、元ガチSIerという気配が無いらしいw まあ、あっちじゃ不良社員だったからねw 社会人になってから、時間の過ぎる速さに驚くばかりですが、今年はいい意味であっという間だったかなという感じです。 そういえば、退職エントリ的なのもちゃんと書いてなかったので、1年経ってからそれっぽい話も書いてみます。 そもそも、私は新卒で就職した某大手SIerで働いて
今日Rubyを書いていて、なんじゃこれと思った動作があった。 試しに以下のコードを実行してみて欲しい。 class Foo attr_reader :hoge, :fuga, def initialize(a, b) p a p b end end Foo.new 実行してみると分かるが、これには例外が出ない。 initializeで定義した必須引数はどうなったのか? よくよく見るとattr_readerの引数の末尾に,がある。 つまり、このコードは分かりやすく書くと以下の様になる。 class Foo attr_reader(:hoge, :fuga, def initialize(a, b) p a p b end) end Foo.new このコードを更に分かり易く書くとこうなる。 class Foo def initialize(a, b) p a p b end attr_rea
既に大きい書店の店頭には並んでいる所もあるようで、自分もアキバの書泉で現物を見てきました。 立ち読みして、ほほーうとやってる著者の図って感じです。 献本させていただいた方にも、既に届いていて読んだよーって言ってくれてる方がちらほら。 参考になったと言っていただけて、とても嬉しく思っています。 さて、今回はちょっと自分の担当した部分と思ってた事について少し書いてみたいと思います。 私が担当したのは、3章のアセットについてと4章のlibディレクトリ周り+Railsのロードパスについて、そして9章のモデル実践編みたいな所です。 一応それぞれありますが、主に言いたいのは9章についてですw 3章について CoffeeとSassについて、どの程度解説するか非常に悩みました。 実際、書くとなるとリファレンスマニュアルを日本語で解説する、以上の事はページ数的にできない。 かといって、昨今のRailsアプリ
書籍紹介は既にいくつか書かれているんで、私は自分の担当した箇所の話を書こうかと思います。 本日(5/17)改訂2版 パーフェクトRubyが発売されます - すがブロ 改訂2版 パーフェクトRubyが出版されました - esm アジャイル事業部 開発者ブログ 改訂2版 パーフェクトRuby:書籍案内|技術評論社 私は、どっちかというと大きく書き直す所をメインで担当していました。主にテストコードの章です。後Refinementsについても少し書いてます。 テストコードの章では、書籍紹介にある様にtest-unitを採用しています。 fluentdプラグイン関連のテストコードはtest-unitで書かれていることが多いのですが、最近その辺りを結構触っているので、私が書きますよと手を挙げさせていただきました。 Refinementsについては、恐らく数少ないproduction環境でもRefine
仙台で行われたRubyKaigi 2018に参加してきました。 RubyKaigiは毎年最高のイベントなのですが、今年は総合的に今迄で最も良い体験ができたRubyKaigiでした。 実績解除 今回のRubyKaigiで初めてメインスピーカーとして登壇することができました。 私が初めてRubyKaigiに参加したのが、確か2011年で1stシーズンのFINALとして開催された時でした。 そして、その頃からずっとThe RubyKaigiのメインスピーカーというのは憧れの場であったのですが、7年の歳月を経て辿り着くことができたことを本当に嬉しく思っています。 今回の発表内容は「Hijacking Ruby Syntax in Ruby」というタイトルで話をさせていただきました。 Asakusa.rbで雑談してたのが切っ掛けで、@tagomoris さんと盛り上がってRubyのダイナミックな機能
職場でcassandraの運用を開始したので、選定理由とか運用してみて得た知見や所感等を書いてみようと思う。 (まだ十分に知見を得たとは良い難いので、間違った印象を得ていたり、より良いオペレーションに気付いていない可能性があります。) cassandraの採用理由 そもそもの目的はホットデータの書き込み先としての利用です。要件としては以下の様なものがあります。 エンドユーザー端末の数に比例するので、書き込みのスケーラビリティが必要 書き込みデータは更新される 一件単位、もしくは数秒単位の短かいサイクルでバッファチャンクを書き込む必要がある prestoで読み込める (最悪connectorは書いてもいいが、できれば避けたい) 一度に数百万件ぐらいまで読み込む可能性があるので、それなりに読み込みもスケールして欲しいし、レンジスキャンにもある程度効率が求められる。 元々、データ加工で潰しが効く
長らく改訂版をお待たせしていたパーフェクトRailsがついに新しくなります。 私は、やはり人間は締切が近くならないと働かない、という極めて重要な事実を改めて学ぶことができたのが良かったと思っています。 そろそろ献本させていただいた本は届き始めている様で、ブログやTwitter等で紹介していただけて嬉しい限りです。 全体の解説や紹介はそちらに任せるとして、私は今回担当していた箇所が大きく変わったので、それについての感想や裏話を書こうかと思います。 前回担当していた箇所 前回は、基本的に終盤のRailsの基本機能を越えたアプリケーションを作る時に助けになる章を担当していました。 元々は、そういう仕事としてRailsアプリケーションを書く上で気にしておきたいこと、というのが書かれた本が余り無く、何とかそういう本を作りたいという思いがあったので、あの辺りの章を担当させてもらいました。 正解の無い部
RubyConf 2018のRubyKaigi関連トラックに採択されたので、登壇するためにロサンゼルスまで行ってきました。 RubyKaigiトラックということで、内容はRubyKaigiの再演でした。 学生の時にめっちゃ貧乏だったのもあって、今迄海外に行く機会が全く無かったので、実はこれが初の海外旅行であり、当然ながら英語で発表するのも初めてだったので大分緊張しましたが、本番ではそれなりにウケたという手応えがあったので、今迄の登壇経験が上手いこと活きたんだろうと思っています。(後で松田さんとそらはーさんに、めっちゃ発音突っ込まれたけど……) 共同登壇者であるtagomorisさんには、トーク以外でも色々と滞在中にお世話になったので改めて感謝を!ありがとうございます! 録画はあるらしいので、もうちょっとしたらyoutubeとかに上がるだろうと思います。 発表の仕方については、流石に普段英語
次のページ
このページを最初にブックマークしてみませんか?
『joker1007’s diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く