Building Better People: How to give real-time feedback that sticks.
OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。
今更聞けないDockerのしくみ(「Dockerとは?」から「docker-composeファイルを1人で作れるようになる」まで)RubyRailsDockerdockerfiledocker-compose はじめに なんとな〜くdockerを使い始めてはや4年ほど。 既存のプロジェクトにアサインされた場合はdockerファイルに何が記載されているかなんて意識せずコマンドを実行するだけで、何か自分で一から作る時は、誰かが作ったものをどこからか持ってきて済ませていた。 こんな感じなのでdockerをなんとなく扱えてはいるが細かいところを全く理解できてない。 今回は人に説明できるくらい理解できるようになろうとした男の記事です。 ハンズオン形式でやっていきますので一緒に手を動かしながらやってみていただけると嬉しいです。 対象とする読者 これからdockerをは0から理解したい人 なんとなくdo
Read this article in English. はじめに 見つけやすく、インストールしやすいソフトウェアパッケージは、開発者にとって使いやすいです。React、Ruby on Rails、Airflow のような有名な OSS は良い事例です。しかし、社内の非公開のコードは、企業秘密として世間から隠されることが多いです。権限を持っている人のみ見ることができて、オープンソースのように npm gem や pip で簡単にインストールすることもできません。 その結果、社内のコードがうまく再利用されなくなる(あるいはできなくなる)ことがあります。各チームはそれぞれ独立したコードベースを持ち、他のチームにコードを共有したくても、満足がいく解決策を導き出すことが難しかったりします。戦略を立てないままでは、それぞれの独立したコードベースを充実させ続け「社内共通のライブラリー」が遠い夢のよう
ソースのURL デモ動画 なぜOSSにするのか? 2021年7月〜11月にかけて、アーティストが独自の音楽ストリーミングアプリを作れるサービスを開発していました。 事業として上手くいかなそうで、事業撤退するのでOSSにします。 LPはこちらです。 -> https://origify.app/ このソース誰得? SwiftUIを使って音が流れるようなアプリケーションを作りたい人 なぜ作ったのか? 地元の山梨で活動している同じ中学だったアーティストが 「CDが売れない。ストリーミングの分配率が低い。」などの 悩みを抱えていたので、 その悩みを解決したいと思い、このサービスを作り始めました。 サービス名はOrigifyです。 事業がうまくいきそうだったら、VCから資金調達をして、サービスを始めようと思っていました。 なぜこの事業を撤退したのか? 権利関係が難しい Apple StoreとGoo
この記事について Webエンジニアになって早1年半。railsのデバッグをする時にはエディターのデバッガーでスマートにできていたが、javascriptになるといつもconsole.log();ばかりを使って原始的なデバッグをしていた。。。 そんな脳筋な過去の自分に教えてやるための記事です。 console.log({変数名}); 「いきなりconsole.log();の紹介かい!!!」って思われるかもしれませんが、この技を知ったときは「なんで知らんかったんや。。。」って思うくらい便利だったので最初に紹介します。 以下のようなHTMLがある場合 <form> <input type="text" value="名無しの権兵衛" id="name"> <input type="text" value="80歳" id="age"> <input type="text" value="バスケ"
Photo by Jexo on Unsplash はじめに Pythonは、主にそのシンプルさと習得のしやすさから、最近では非常に人気があります。 データサイエンスや機械学習、ウェブ開発、スクリプト記述、自動化など、幅広い分野で利用することができます。 この記事はかなり長いので、すぐ始めましょう。 1. forループのelse条件 今までにPythonのあらゆるコードを見てきたとしても、次のfor-elseは見逃している可能性があります。私も数週間前に初めて見ました。 これはリストを繰り返すfor-elseメソッドで、リストを反復処理しているにもかかわらずelse条件もあるという、非常に珍しいものです。これは、JavaやRuby、JavaScriptなどの他のプログラミング言語では見られません。 実際にどのようなものか、例を見てみましょう。例えば、リストに奇数がないか調べているとします。
自分は Ebiten という 2D ゲームエンジン (ゲームライブラリ) を趣味で開発しています。使用しているプログラミング言語は Go です。 2013 年 6 月に最初のコミットを行ったので、現在 8 周年の 9 年目です。 Ebiten は「くまのレストラン」などのモバイル及び Nintendo Switch 向けゲームで使われており、一定の実績があります。 ゲームエンジンの開発は一朝一夕では終わりません。Unity や RPG ツクールといった既製品がある中、ゲームエンジンをわざわざ自作することは酔狂かもしれません。ではなぜそのようなことをしたのでしょうか。端的に言うと「ミニマムな API で実用的な 2D ゲームが作れるかどうか」ということを証明したかったのです。自分の美的感覚の追求です。この目的に気づいたのは割と最近のことです。やっていくうちに「自分がやりたかったのはこういうこ
PHPとPythonとRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 本稿では3言語の連想配列の従来実
今さらながら『Go言語でつくるインタプリタ』のとおりにMonkey言語を作ってみました。個人的に名著だと思います。 実際に買ったのはKindleの日本語版です。 英語版はこちら。 公式サイト↓には既に続編の「Writing A Compiler in Go」もありますので、こちらもそのうちやってみたいです(やってます)。 サイト: Writing An Interpreter In Go | Thorsten Ball サイト: Writing A Compiler In Go | Thorsten Ball 同書の特徴 同書の大きな特徴は「読みながら実際に作ってみる」ことを主眼においていることです。 それなりの規模のプログラミング言語を作ろうとすると、昔は(今でも)yaccやlexといったツールを使うことがよくあったようです(なおRubyの場合はbison(yaccの実装のひとつ)以外は
皆さん異世界転生ラノベをご存知ですか?チートし放題な主人公たち好き勝手しやがってとか思っています?最近は「初級魔法で無双する」「生活魔法で無双する」みたいな話流行ってますよね。 でも、別に異世界なんていかなくても、転生しなくても、プログラミングのチートスキルなんて簡単に身につけられるんですよ。 ※ここでいうチートスキルは本来の意味のチートではないのでご注意ください。そっちのスキル身につけるのは楽しいかもしれませんが、本筋ではありません。 ※ここでいう「初級魔法」はラノベ読まない人の想像する初級魔法ではないことがほとんどなのでご注意を 特定のプログラミングスキルを身につけると、派生スキルが勝手にポコポコ生えてきたり、派生スキルの習得コストが圧倒的に安くなります。 たとえば、なにか一つのプログラミング言語をマスターした人なら、他のプログラミング言語を覚えるときのコストが低くなるというのは直感的
ref: https://www.lambdanote.com/collections/frontpage/products/ruby-ruby おかげさまで、ASCII.jp で連載していた『Ruby で学ぶ Ruby』が紙の本になる運びとなりました。わーい。『Ruby でつくる Ruby ― ゼロから学びなおすプログラミング言語入門』と微妙にタイトルが変わったので注意。 一番大切なことを先に言っておくと、書店に並ぶ予定はありません。ラムダノート株式会社という出版社の直販サイトで購入できます。アスキーじゃないの?と聞かないでください。追記:今はいろいろ購入方法が増えました。『Ruby でつくる Ruby』の購入方法をご参照ください。 ラムダノートは『型システム入門』のときにもお世話になった編集の鹿野さんが立ち上げた新しい出版社です。鹿野さんと高尾さんの編集コンビは、技術書については知る限
個人的によく使う or 人に教える正規表現チェックツールをまとめました お役に立てますと幸いです 目次 Debuggex: Online visual regex tester Regexper Regular Expression Test Drive 正規表現チェックツール - Kaizen Platform RegexPlanet - Online Regular Expression (Regex) Testing and Cookbook Regex Tester Online regex tester and debugger Rubular: a Ruby regular expression editor and tester 1.Debuggex: Online visual regex tester 対応言語 JavaScript, Python, PCRE 正規表現を
今日のre:InventでDeep Learningを使った音声合成サービスのAmazon Pollyが発表されました。 正直、DLを使ったの音声合成が話題になったのなんて今年に入ってからだと思っていたのに、もう商用化したんか!という気持ちでいっぱいです。 Amazon Polly – 文章から音声へ、47の声と24の言語 | Amazon Web Services ブログ Amazon Polly – Lifelike Text-to-Speech [2016/12/02追記] PollyがDLベースという話は https://aws.amazon.com/jp/polly/ に、"Polly is an Amazon AI service that uses advanced deep learning technologies to synthesize speech that so
こんにちは、技術部開発基盤グループの小室 (id:hogelog) です。 みんなのウェディングは OSS となった Kuroko2 を早速導入したので、その Kuroko2 の導入方法をブログにて共有します。 何故 Kuroko2 を導入したか みんなのウェディングではジョブ管理ツールとして主に Rundeck を利用していました。汎用のジョブ管理ツールとして開発されている Rundeck は非常に多機能で様々な処理を柔軟に実行できます。雑多なバッチ処理が稼働していたみんなのウェディングのシステムを一つのジョブ管理ツールに集約させるには非常に便利なものでした。 しかし運用を続けるうちにいくつかの難点が見つかってきました。 スケジュール実行がいきなり過去のジョブ定義に巻き戻る(ことが稀にある) https://github.com/rundeck/rundeck/issues/1447 M
漫画家の坂本タクマさんの書いた「Rubyではじめるシステムトレード (現代の錬金術師シリーズ)」という本がある。 この本がかなりの名著だ。 繰り返し読んでる。 Rubyを学びたい人には是非お勧めしたい。 この本はシステムトレードの検証プログラムを作りながら、Rubyを勉強する本だ。 普通の初心者向けのプログラム本は、使い道のない「お買い物プログラム」とかで学ぶことが多い。 だが、この本で使う検証プログラムは実用的で拡張性も高い。 実際に使える。検証できる。素晴らしい。 この検証プログラムは本を購入すればダウンロードすることができる。 この検証プログラムだけで、本の定価代以上の価値はある。 というか、私にとっては数十万円以上の価値がある。 これが三千円で買えてしまう。ありがたい。 本の内容はプログラム初心者向けに丁寧に書かれている。 最初から読んでいけば、分からないところは出てこないと思う。
サークルのslackで動かしているはんこをつくるbotです。 こんな感じに受け取った文字列をはんこ画像にして返します。 たまにこのブログ上でも登場していたのですが、折角なのでソースを公開しておきます。 gist.github.com 全体は2つのrubyのスクリプトで構成されています。 はんこ画像を生成するmakehanko.rbとslackと通信して文字列を受け取ったりはんこ画像を投稿したりするhanyu_hanko.rbです。 つまり、makehanko.rbだけで独立したはんこ画像生成機として使うことができます。 makehanko.rbの使い方 画像に文字をいれるためにrmagickというライブラリ(gem)に依存しています。 これはimagemagickというツールをrubyから扱うためのラッパーのようなものなので、まずimagemagickのインストールが必要です。 私が動かし
依存関係 natto が利用できる必要があります。 使い方 Rhymer::Parser.newの引数に文章を渡すと、検査結果が含まれたインスタンスが生成されます。インスタンスのrhymesメソッドを実行すると、韻を踏んでいるフレーズの組み合わせの配列が返されます。 require "rhymer" rhymer = Rhymer::Parser.new("今日はとても良い天気ですね。こんな日は自然に元気になります。") rhymer.rhymes.each do |rhyme| puts [rhyme[0], rhyme[1]].join(" ") end require "rhymer" lyric = <<"LYRIC" 1853年(嘉永6年)、長崎の出島への折衝のみを前提としてきた幕府のこれまでの方針に反して、江戸湾の目と鼻の先である浦賀に黒船で強行上陸したアメリカ合衆国のマシュー
MERY のサーバーサイドエンジニアの @saidie です。 MERY では画像アップロードや記事投稿による検索インデックス作成などなど、ユーザからのリクエスト起因で起こる時間のかかる処理の多くを非同期に行うことでレスポンスタイムの向上に努めています。また、重複した非同期処理が並行して走ることによる スループット の劣化を分散ロックを用いた 排他制御 で緩和する取り組みなども行っています。 MERY は Ruby on Rails を用いて開発されており、非同期処理には Ruby 製の フレームワーク である Sidekiq を採用しています。この記事では Sidekiq と Redis による分散ロックを使って、同一の非同期処理が(あまり)重複しないような MERY の非同期処理システムについてご紹介します。 Sidekiq Sidekiq はクライアントサー バモ デルのマルチスレッ
LINEBOT API公開記念でただ同じ事を返すだけのボットを作ってみた。 アカウントや設定とかは、 https://developers.line.me から適当にやってください。 まず最初にハマるところは、Callback URLです。どうやらポート番号も必要なので、https://example.com:443/callbackなどのように443を指定してください。 LINE_CHANNEL_ID, LINE_CHANNEL_SECRET, LINE_CHANNEL_MIDは適当な物を指定して下記を実行すると「オウム返しBot」の出来上がり。 APIを呼ぶにはWhitelistにIPを登録する必要があるので、Herokuなどで動かす事はできません。 【追記】 LINE BOT をとりあえずタダで Heroku で動かすを見ると、Fixieっていうアドオンを使えばHerokuでも行ける
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く