サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
会話術
shinkufencer.hateblo.jp
After Kaigi on Rails LT NightでLTしたのでその登壇後記です。 発表したスライド speakerdeck.com 伝えたかったこと 認知負荷という言葉が独り歩きしがちなので、基礎的な概念を抑えてほしかった その上で自分たちの身の回りの「課題外在性負荷」を探してもらえればと思った 補遺編 今回のテーマ選定について Kaigi on Railsのプロポーザルも落ちてしまい、イベントが迫るうちに自分も喋りたくなり、関連イベントのLT枠がまだ空いていたので応募しました。 最初は去年の発表で語りそびれた部分の補遺編でもやろうかなぁと思ったんですが、色々なところでハードルをあげられてしまったので、急遽新作を作ることにしました。 何を話すか…と考えたときに、書籍プログラマー脳を読んだときに衝撃を受けたのでどこかで自分の脳内整理も含めて取り組みたいなと思っていたので、登壇ドリブ
p12ってiOSのAPNs証明書とかでも見かけるけどコレ自体は一体なんなのかという話をざっくりまとめる PKCS12とは p12はPublic-Key Cryptography Standards(略称PKCS)の12番目の仕様であり、パスワードに基づく鍵(暗号)により保護された秘密鍵と、それに関連する公開鍵証明書を保管するために一般に利用されるファイルフォーマットの定義のことである。 ざっくり説明すると、鍵や証明書をひとつのファイルにまとめて取り扱うための形式。p12やpfx(Personal Information Exchange)と呼ばれたりする。 p12ファイルから取り出せるもの 公開鍵 秘密鍵 クライアント証明書 中間CA証明書 が含まれる、秘密鍵とクライアント証明書は取り出すのにパスワードを必要とするが、公開鍵はパスワードは不要。 参考リンク PKCS #12 個人情報交換フ
モデリングの学び方:座談会 - connpassを見たよメモです。ディスカッション形式だったので、話の流れになぞらえてまとめていきます。 本日の話し手 この会でメインで喋られていたのは以下の方々 増田さん かとじゅんさん ミノ駆動さん hirodragonさん 藤岡さん 原田さん 高崎さん 本日の趣旨説明と増田さんの考えるモデリングに関して まずは下記の資料を使いながら今日の催しの趣旨説明と増田さんの考えるモデリングに関しての話があった。 speakerdeck.com 上記の資料にもあるが以下の話が冒頭で行われた 今回の話し手の属性に関しての話(共通的な部分もありつつも自社サービスを持つ人たち3人と、受託開発を主に行う人たち3人という構成) まずは前提の話としての増田さんのモデリングの考え方のダイジェスト説明 効果的なモデリングの考え方(要点をうまく表現する名前を見つける、認知不可の軽減
知らない人は知らない機能。ちなみにこれはスケジュールドクエリでもできる。 やり方 クエリエディタの「クエリの設定」から表示されるウィンドウで設定できる。 送信先で「クエリ結果の宛先テーブルを設定する」を選ぶと実行後にデータを扱う挙動が加わる 『空の場合に書き込む』は文字通り対象テーブルが空の場合のみ検索結果をINSERTする。 『テーブルを追加する』の場合は結果をすべてINSERTする。 『テーブルを上書きする』の場合は既存のテーブル情報をすべて捨てて、結果を入れ直す なお、テーブルがない場合は作られるので事前に作る必要などはない。 参考リンク クエリ結果の書き込み | BigQuery | Google Cloud
「このブログはほぼ毎日更新しているという体裁だが、実際はリアルタイムに更新できていない、ある意味毎日更新という結果整合性だけが伴っている。」という話なんだけど、結果整合性ってなんだっけ、というのまっさらな話からざっくり理解するためのメモ 言葉の意味 分散データベースの文脈で使われることが多く、データの更新の一貫性を即時担保するものではなく、更新後に一定時間経過していれば正しく更新データを取得できるという整合性の考え方 英語を直訳すると『最終的な一貫性』となり、和訳では『結果整合性』という訳が当てられ、2つの意味を統合すると直感的にわかりすい。 解説 言葉としては分散システムで使われる事が多い。分散システムでは同一のデータを複数のコンピュータやシステムに分散して配置し、データそのものも複製して配置する。単一のシステムであればDBも単一なので問題ないが、分散化することによりDBも複製して配置す
QiitaのほうがMarkdownが綺麗にかけるので、実例込み版はそっちに書いた qiita.com 要約 COUNT(カラム) でカラムがNULLでないものをカウントする カラム には id == 1 のような条件式が指定できる、が条件式は1か0のどちらかが返却されるので全てがカウントされてしまう。 OR条件はNULLを組み合わせることにより、 対象 OR NULL とすると 対象が 0 か NULL になると NULLに置き換わる(ただし対象が数値の場合) 条件式 OR NULL にすると、条件にあてはまらないものは全てNULLになる そのため COUNT (条件式 OR NULL) にすると条件式に合致したものが1になり、1のカラムだけをカウントするので意図通りになる なので条件式の結果が0じゃないと意図しない結果になるので注意されたい。 あとがき その瞬間は原理を理解してなるほど!
travel_backってどこで使うんだ…?と使い所に関して挙動を確認してたらたどり着いたメモ。 環境 $ bin/rails -v Rails 5.2.2 理由と解説 travel_back というリアル時刻に戻す機能があるのだが、一昔の前のブログをさがすと「ブロックなしの travel_to をしたら必ずやってね!」という文章がたくさんでてくる RSpec : 時刻のテストではtravel_toしたら必ずtravel_backしてね - カクカクしかじか RSpec で安全に Timecop する - Qiita しかし5.2系にてこれを修正するPRが出され、マージされている TimeHelpers moduleでafter_teardownメソッドを定義し、テスト終了時に自動でtravel_backを呼び出すよう修正しています。 これにより、block無しのtravelやtravel
� という文字があるがクエスチョンマークだし、ググりにくいしはで、実際コレはなんなんだというメモ � とは ブラウザによっては見えない可能性があるので以下の画像のような文字 ※Specials (Unicode block) - Wikipedia) より引用 これは代替文字(REPLACEMENT CHARACTER)と呼ばれるもの。 REPLACEMENT CHARACTER UTF-8だと U+FFFD とされる文字であり、他の文字コードからUTF-8に置き換えたときに該当する文字がないときなどに使用される、らしい。 これらの変換はエディタや環境でよしなにやる部分なので、該当する文字があっても、表示時にない場合はコレに置き換えてしまうことがある様子。 関連リンク Specials (Unicode block) - Wikipedia) .NET での文字エンコード | Micros
これどこだと通用するの?と思ったので軽く調べる TL;DR PHPが言語デフォルトで相互変換でき、Railsだとそれに親しいことができる機能がある。 対象とする表記 下記のようなクエリストリング http://example.com/home?values%5B0%5D=zero&values%5B1%5D=one&values%5B2%5D=two URIエンコードしてるから見づらいが、デコードするとこんなクエリ values[0]=zero&values[1]=one&values[2]=two 添字を指定して配列っぽい記述だけど、配列?みたいな記述 そもそもクエリストリングの仕様に配列の言及があるのか そもそもとして ? 以降のフォーマットに関してどういう値設計にするかのルールは特に記述されていない しかし、query 構成要素はしばしば "key=value" の対の形式で識別する
派生用語なのでまとめて TLD Top Level Domain の略。URLの文字列に使われるドメインにおいて、最上位レベルのドメイン文字列のことを指す。世界レベルで何があるかは決まっておりIANAが管理している。詳しくはWikipedia参考のこと。 トップレベルドメイン - Wikipedia eTLD Public Suffix と同等の意味で使われる Effecitve Top Level Domain のこと。mozillaが策定、管理している考え方で、Cookie維持の観点で従来のTLDだけでは正しく範囲を特定できないので、実質的にトップレベルドメインであるようなものをリストとして管理する、という考えがありその際に用いられる言葉。 eTLDの対象リストは以下のサイトで公開されている。 Public Suffix List なお、CookieとTLDの考え方に関しては以下のサイ
ググってもわからない、かつ「議論が平行線をたどる」の派生かと思ったのでめちゃくちゃ混乱したのでメモ 解説 元は英語の「orthogonal」の直訳。 数学用語から派生して下記のように表現することがある A is orthogonal to B は「A と B は別問題だ」と訳してあげるといいケースがあります. - 英語表現のメモ:"A is orthogonal to B"=「A と B は別問題だ」 - left over junk なぜ別概念かというのは上記のブログに丁寧な説明があって 中学校の代数幾何を思い浮かべていただくと,タテ軸とヨコ軸は直角に交わります.これはいちばん基本的な orthogonal の関係と言えるでしょう.タテとヨコはべつべつの次元で,たとえばタテの位置はそのままにヨコの位置だけを変えることができます. こういう場合,「直交する」ということは「次元がちがう」とい
期末とロール転換でエンジニア的な仕事が減っているのもあり、スライド回顧録です。 speakerdeck.com 動画版は下記 おはようございます。本日公開の動画(1/2)は、株式会社永和システムマネジメント @koic さんによる『Rails コントリビューションから学んだ Git / GitHub 術』です。 #railsdmhttps://t.co/ThUmQmo3n2— カルパスちゃん (@yoshi_hirano) April 25, 2018 GitHubのコミット粒度とか書き方のお作法って育ってきた環境にめちゃくちゃ依存するし、ややもすると「プロダクトを作ることが仕事なのにそんな細かいところでいちゃもんつけるのは成長を阻害している」という旨のことを言われかねないので、意識合わせが難しいジャンルの1つです。 そこに関してOSSの場合はこういう書き方がいいという解説をされているもの
真面目に調べたことなかったのでメモ 環境 $ bin/rails -v Rails 5.2.2.1 違い as_jsonはJSONに近いハッシュに変換してくれる、to_jsonはその更に先で完全に文字列化してくれる 例 対象となるハッシュは以下 demo_hash = {hoge: "huga"} #=> {:hoge=>"huga"} as_json demo_hash.as_json #=> {"hoge"=>"huga"} [10] pry(main)> demo_hash.as_json.class #=> Hash キーがシンボルから文字列に代わったHashになったことがわかる to_json demo_hash.to_json #=> "{\"hoge\":\"huga\"}" [12] pry(main)> demo_hash.to_json.class #=> String
あんまり書かれていないのでメモ的な 基本文法 /remind {{対象}} {{文言}} {{時間設定}} /remind me 10秒後に教えて in 10 seconds 書き方 ダブルコーテーションすればいい そうするとこのように出力される 参考リンク リマインダーを設定する – Slack
受け取ったJSONをそのまま別のところに受け流す、みたいな処理の時に取る手法に関してググってもストレートヒットしなかったのでメモ。 環境 rails (5.2.0) 経緯 こんなJSONをPOSTで受け取るエンドポイントがあった場合 { "title": "タイトル", "body": "こんにちわ", } Rails上ではよしなに params の配列に入れてくれるので params["key名"] で取得できるようにしてくれる。 params["title"] # => "タイトル" しかし、仮にJSONのstirngそのものが欲しい場合はどうするか?という場合。 やり方と例 request.body.read を使う。そうするとbodyまんまのStringが取得できる 参考リンク RailsでPOSTリクエストのbodyをJSONで受け取る - あんパン
Unite2019Tokyoを早めに切り上げて勉強会はしご、本業のほうのRailsの勉強会である、Rails Developers Beer Bash 〜Railsのトレンドとこれから〜 に行ってきたよメモ 各発表の感想 2週間でRails5.1 > Rails6 タイムアタックチャレンジ 資料でっす #railsbeerbash https://t.co/TqHFAsVWPd— shiro16 (@_shiro16) September 26, 2019 感想 今日の発表までのタイムアタック 過去にアップデート経験している方なので、ノウハウが生かされているのと、再現性のあるノウハウということが示される発表だった。 5.1からのアップデートでも5.2を踏むほうがいいんだな…というのが知見として得られた感じ。 関連リンク minne の Rails を 5 にアップグレードしました - ペパ
ネタが無いときのスライド回顧録のコーナーです。 speakerdeck.com 論理削除と呼ばれるものはたくさんあり、delete_flgカラム作るとか、paranoiaみたいなgemを使うとかいろいろありますが、そういうことが話題にあがったときに「その削除フラグは本当に必要なのか?」と振り替えるために見ると良い資料です。 削除フラグは設計における脳内停止というのはこのスライドが発表された勉強会と同じ発表で和田さんがされているので、モデリングの観点でもインプットしておくとよいです。削除に対する構えかたがいろいろ変わります。 関連リンク SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 論理削除Casual Talksでの議論を見て、削除フラグの採用を全力で阻止して本当に良かったと思った - valid,invalid 27. 論理削除とは何か?どのような解法があるのか? w/ t
時事ネタ、かつ暫定的なトラブルシュート 環境 CiecleCI (version2) でCIを動かしている Railsアプリ bundle installなどを.circleci/config.ymlでやってる DBはMySQL JSのコードも有るので使っていたイメージは circleci/ruby:2.6.3-node-browsers 発端 とあるタイミングから動いていたCIが突然失敗するようになった、エラーとしては rake aborted! LoadError: libmariadbclient.so.18: cannot open shared object file: No such file or directory - /home/circleci/rails_app/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2
問題に対して因果関係に重きをおいて分類するフレームワーク、クネビンフレームワークをまとめる 「クネビン(カネヴィン)フレームワーク(Cynefin Framework)」とは 問題の種類を因果関係、秩序だったものか、突発できであるかなどの観点から捉えて分類し、どのように解決すべきかのアプローチをまとめたもの。図に表すと下記の通り。 Cynefin framework - Wikipedia を元にしたクネビンフレームワークの図 名称 説明とプラクティスの種類 単純 因果関係が単純な誰にでも解がわかる問題、ベストプラクティスが適用できる 困難 因果関係が複雑で解が複数あるような問題、専門家による分析でベストではない最適な解、グッドプラクティスを得ることができるような問題 複雑 分析だけでは到底解が出ない問題。繰り返し調査をしたりしながら問題を感知して解としてプラクティスを導き出す。 カオス
盲目的に書いていたけどそうなんだ、と思ったのでメモ 環境 $ docker -v Docker version 18.06.1-ce, build e68fc7a 出典 Docker Documentation のEXPOSEの項目に下記のような記載がある The EXPOSE instruction does not actually publish the port. It functions as a type of documentation between the person who builds the image and the person who runs the container, about which ports are intended to be published. To actually publish the port when running the
レガシーをぶっつぶせ。現場でDDD! にいってまいりましたのでメモ。 今回はDX(デジタルトランスフォーメーション)レポートに取り上げられていた技術的負債の塊であるレガシーシステムに立ち向かうためのDDDということで現場のどろどろ感を出してくイベントという趣旨。 各発表の感想 ソフトウェアの核心にある複雑さに立ち向かう 本日のオープニングで発表したスライドです。 - ドメイン駆動設計でなぜつくるのか? - 「核心にある複雑さ」とは何か? - その複雑さにどう立ち向かうか? ソフトウェアの核心にある複雑さに立ち向かう #genbadeDDD https://t.co/CZYBI0Gkho— 増田 亨. (@masuda220) 2019年5月11日 感想 ソフトウェアにおける複雑さの根源に対する向き合いかた、切り分け方の考え方の話 変更容易性が高いことは開発におけるすべての面において有効とい
JSONで改行を表現するときは \\n つまり \n を \ でエスケープせよということなのだが、他にもエスケープする文字は何があるのかのメモ 出典 RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format 対象の文字 『"(ダブルコーテーション)』 『\(バックスラッシュ)』 『/(スラッシュ)』 『\b(バックスペース)』 『\f(改ページ)』 『\n(改行)』 『\r(キャリッジリターン)』 『\t(タブ)』 余談 Railsなどはリクエストパラメータとして受け取ったときは勝手にデコードするし、レスポンスパラメータとしてJSON返すときは勝手にエンコードしてくれたりする。 ただし、iOS/Androidのネットワークライブラリだと、そこまでよしなにやってくれなかったりするので、気をつけること。 参
実はTimecopはいらなくなったという話題の実践編 環境 rails (5.1.5) rspec (3.7.0) やり方 helperに追記 rails_helper.rbのお好みのところに追加 RSpec.configure do |config| # 中略 config.include ActiveSupport::Testing::TimeHelpers end 使い方 travel_to で囲む context "現在時刻かどうかは" do it "こんな感じでテストをかく" do travel_to('2018-3-10 8:00'.to_time) do expect(Time.zone.now).to eq(Time.new(2018, 3, 10, 8, 0, 0)) end end end around をつかうと、複数のitにも対応できるのでそちらも便利。 conte
非エンジニアからもらったクエリがすごかったので紹介 前提条件 STANDARD SQLです やり方 先月月初日 FORMAT_DATE("%Y%m%d",DATE_TRUNC(DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 MONTH), MONTH)) 原理 # 当日東京時間 CURRENT_DATE('Asia/Tokyo') # 当日東京時間 から 1ヶ月前 DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 MONTH) # 当日東京時間 から 1ヶ月前 で 年月情報のみにする DATE_TRUNC(DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 MONTH), MONTH) # 当日東京時間 から 1ヶ月前 で 年月情報のみにして YYMMD
雰囲気でリーダーをやっている関係で悩みが絶えないので エンジニアのマネージメントで悩んでいる人が集まる会 #1 に行ってきました。 各発表の感想 エンジニアリングマネージャーでいるのがつらくなったときは さきほどの資料です! エンジニアリングマネージャーでいるのがつらくなったときは #EM集会https://t.co/npRskhkIY5— める@5/5ファミコンバンド! (@c5meru) February 26, 2019 感想 自分が衝撃を受けた記事の一つ「コードレビューを受けるのがつらくなったときは」のめるさんの発表 ブログに書かれていた記事の拡大版 プレイヤーにいつでも戻れるようにしておくみたいなところは観点としてなるほどと思ったり サーヴァントリーダーシップに関してはキャラクターが結構 システム開発が売り物ではない会社ならではの悩みがあってなるほどな…という感じだった。 ブログ
評価者になったりならなかったりだけど、ちゃんと芯のある立場でやったことないので来るべき時のために VOYAGE GROUP エンジニアの公開ガチ評価会 に行ってきたよメモ 各発表の感想 5分でわかる技術力評価会 VOYAGE GROUP エンジニアの公開ガチ評価会 でプレゼンした「5分でわかる技術力評価会」を公開しました。 #vg_tech_assessment https://t.co/OO6Za0NHfO— Masanori KOGA (@makoga) February 4, 2019 感想 コンパクトに5分で伝える評価制度、抑えるところを抑えたプレゼンでわかりやすかったです。 課題感からしっかりと地道に解決していったということが月日から見て取れた 一部のメンバーだけではなく、全員でフィードバック会をやるなどみんなでちゃんと制度を作っていくというのが感じられた 関連リンク エンジニア
昨日の録画が上がってて、作業しながら聞いてたら面白かったので昨日の記事に追従する形おまとめした。 (1/21 コメントいただいたので、コメントで補足頂いた部分に注記を足しました!ありがとうございます!) 発表のまとめ Ad www.youtube.com トークメモ トラッキング 広告主としては電話番号や住所のような個人情報は欲しくないが、もっと匿名性のある情報はほしい。 GDPRの考え方により、個人情報の範囲が拡張されて、閲覧履歴すらも個人情報とみなされると日本でもその時流が来る可能性がある。 デジタルマーケティングなので、ユーザに合わせたよりよいものを出すためのものだが、どんどん規制が厳しくなっている セキュリティ ユーザが任意で広告トラッキングをさせないためのITP (Intelligent Tracking Prevention) を回避するような業者も出てきているが、あまりよろし
次世代 Web カンファレンス 2019に行ってきました。 各発表の感想 全部パネルディスカッションなので自分が見てきたセッションのメモでお送りします。あとで録画が出るのでちゃんと見たいかたはそちらを御覧ください。また登壇者はconnpassなどをご参照のこと。 SRE www.youtube.com twitter.com トークまとめ お三方個別に意見を喋られてましたが、まとめたダイジェスト風になります。 行う業務の比率に関して リアクティブとプロアクティブという形でタスクを分ける手法をとっていて、それらが50%ずつになる運用をしている リアクティブとは差し込みやアラート対応などの業務 プロアクティブとはモニタリングの改善などもともと計画的にやろうとしてた業務 SRE本のトイル(toil)とリアクティブは同じ意味だが、言葉が強すぎる ロードマップを敷いて、それ以外の差し込みタスクという
Everyone Outputer#1 「ぼくのわたしのセイチョウ・ジャーニー」 で話してきたのでメモです。 発表したスライド speakerdeck.com まさにこのブログのことを喋ってきました。 スライド中のワード補遺編 スライドで引用風に説明していたワードたちをこちらでご紹介します。 基本的にはその日やってきたことを書く 自分はぼんやり始めたんですが、自分のやっていき方間違ってないかもなと自信的なものが割と明確に補強されたのが以下のカックさんの記事とスライド。 kakakakakku.hatenablog.com 中でも「業務のネタは書ける!」というのもここでだいぶ補強された 休み宣言 一回記事ににもしたけどRubyで有名な koic さんのブログが元ネタ shinkufencer.hateblo.jp 本人にも補足されビビる 最近、優先順位の都合で書けていないので、そのうち復帰す
次のページ
このページを最初にブックマークしてみませんか?
『shinkufencer.hateblo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く