Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
こんにちは!ChatWork CTOの山本です。 ChatWorkでは一年前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断をしました。 Scala採用までの経緯を三行で: カウボーイ開発で約4年間積み上げてきたPHPのシステムがもはや限界ゼロベースでつくりなおそうと開発合宿を開催。満場一致でScalaに決定!しかし社内にScalaを書ける人は誰もいないのであった・・(どうすんの・・?)参考記事: チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。 というわけで勢いのままScala採用を決めたはいいものの、ここからどうしよう・・・という状態でした。 そこから約一年。ChatWorkのScala開発はどうなってるの?とご質問いただく機会も増えましたので、現在の状況含め、Scalaってど
わざと両方のタイトルをblogのタイトルに入れてみました(ながい・・・) レビューに少しだけ関わりました。自分が翻訳したわけではありません。あくまでもレビューです 原著 Functional Programming in Scala Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear) 作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/03/20メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る http://book.impress.co.jp/books/1114101091 作者達はおそらく訳されて今の時期にでることをあまり知らない?だろうから、知らせるのと感謝の意を伝えるtweet↓(そしてサンプ
2013-12-19 Scalaを使い始めてから半年だけど印象をまとめてみる Scala 僕はScalaを使い始めてだいたい半年というところです。業務で使ってるんですが、最近になってやっと楽しさが少しわかり始めたところで印象をまとめてみました。主観性が高いので異論・反論のある人も多いかもしれません 覚えることが多い ※個人差があります Scala は様々な文化のごった煮なところがあるため、様々な文化を知ってないとツライです。よく better Java として簡単に使えるよという甘言をささやく人がいますが、better Java として使うにはそもそも Java の知識が必要なわけですし、better Java なコードを書いてると、「varやミュータブルコレクション使っていいのは小学生までだよね」とか「while文なんて普通使わない」とか「Enumerationじゃなくて代数型データ構造
みなさん、こんにちは。グリーのかとじゅん(@j5ik2o)です。 このエントリは GREE Advent Calendar 2013 の 18日目の記事です。よろしくお願いします。 私がグリーに入社してやっていることは、プログラミング言語 Scalaとドメイン駆動設計(以下、DDD)の布教活動です。布教活動といっても宣伝するだけでは具体性に欠けるので、実際に開発チームに入ってScalaやDDDの技術支援を行っています。本エントリでは、Scalaを用いたDDDの設計と実装をどのように行っているかを、DDDを知らない人でもできるだけわかりやすく説明したいと思います(Scalaわかっていると読みやすいですが、あんまり複雑なコードは出てこないのでなんとなく読めるのではないかと思います)。なお、DDDの実践例は他にもあります。一例だと思って読んでいただければ幸いです(先日のSNSチームでのドメイン駆
列挙順自体はとくに意味ありません。あと「どの最適化がどのくらい速くなるのか?」を詳細に計ったことはないですし、「原理的にこうなってるから(ry」というのを説明するに過ぎません。中には「JITで無意味になるようなどうでもいい細かすぎること」も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。本当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の
「少数精鋭の開発メンバーで、短期間に新しい検索サービスを始められた」。特許情報などの無料検索サービスで200万人以上の会員を抱えるアスタミューゼ。同社でサービス開発を統括する三木隆史プラットフォーム事業部部長は、こう語る。スピードの秘密は、開発言語選びにあった。 同社が採用したのは、業務系システムの開発で主流になっているJavaでも、Webシステムで人気を博すRubyやPythonでもない。「関数型プログラミング言語」と呼ばれるオープンソースの開発言語の一つ、「Scala(スカラ)」だ。 Scalaは今、世界的な注目を集める。米ツイッターや米リンクトイン、英ガーディアンなど海外の名だたる企業が自社サービスの開発に採用したことで一気にその名を知らしめた。Scalaの推進企業である米タイプセーフは2012年8月に1400万米ドル(約11億円)の資金を調達。Webアプリケーションや分散処理システ
これはScalaを使った開発の雰囲気を感じてもらうための文章です。 ここでできるようになること Scalaプロジェクトの作成 簡単なScalaコードの作成 テストコードの実行 ログの表示 コードの実行時間の計測 システムにインストールできる形のパッケージを作成 準備 UNIX環境(Linux、 Mac OS X、あるいは Cygwin をWindowsでセットアップする) javaコマンドが使えること (環境変数PATHの設定など) その他、curl, GNU makeなどのコマンド インターネット接続 (ここから15分です) Scalaプロジェクトの作成 Scalaプロジェクトの必要最低限のひな形をGitHub上にscala-minとして作成してあります。以下のようにダウンロードしながら展開します。 $ mkdir myproject $ cd myproject $ curl -L h
こんにちは初めましてー。2011年度新卒の田中です。 12月から急に寒くなってきましたね。 11月が暖かかったからといって油断していませんか? 私は完全に油断していました。まだ冬服を買っていません。 さて、まだ暖かかった11月、ドワンゴでScala勉強会という熱いイベントがありました。 私は最近Scalaを勉強し始めたのですが、この勉強会で、Scalaの魅力的な機能をたくさん知ることができました。 今回はScala勉強会から持ち帰った情報や今まで私が勉強してきたことを元に、Scalaのどこが魅力的なのかを記事をしていこうと思います。 それではよろしくお願いいたします。 対象読者 Javaを書いたことがある方 Scalaを知りたい方 Scalaを始めたばかりの方 Scala? ドワンゴはエンジニア同士の技術交流が盛んな会社で、プログラミング言語を中心に日々、情報交換、議論が行われています。
Kestrelは大規模かつ高速に運用できるメッセージキューサーバーです。Twitterで使っています。 ソースはhttps://github.com/robey/kestrelよりチェックアウトできます。 ・特徴 Kestrelは特徴として – memcachedプロトコルをサポートしており、クライアントのプラットフォーム非依存 – Scalaで書かれており、高速なJVMの恩恵を受けることが出来る – 全部で2500行ほどとシンプル – 基本メモリベースで高速だがメッセージはファイルシステムにジャーナルが記録されており耐障害性が確保されている – キューから取り出したメッセージをクライアントがacknowledgeするまで捨てないことで処理漏れを防ぐことができる といったことが挙げられます。 ・Memcachedプロトコル Memcachedプロトコルの基本は非常に簡単で、setコマンドで
前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 本記事では、ScalaとJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaはJavaの
なぜ、いまScalaなのか? TwitterがScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。
1階受付:インストール等 / 1階案内版:コマンド / 2階:書き方 / 3階:文と式 / 4階:関数 / 5階:オブジェクト指向 / 6階:型 / 7階:注釈等 / 屋上:言語仕様要約 / 雲:scalaパッケージ概観 / 青空:その他の付属パッケージ概観 なお、以上の解説はJavaの文法とコマンドや標準ライブラリ等を一応知っていることを前提(現行のScalaはなおJavaライブラリへの依存度が高くScalaだけで完結できる状態では無い。なお、Scalaのコンパイラ自体はJava1.4用のコードも吐けるが、標準ライブラリが多く1.5を前提としている)とし、その違いだけをとりあえずは書き留めるものである。もっぱら文法やライブラリ参照用であることを目指しているので、例や特長等は次のリンクを参照されたい(なおただし、原著者たちの配慮にもかかわらず、それらの例は関数型言語に関する事前の概要的把握
● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア Twitterは独自に開発した分散フレームワークの「Gizzard」をオープンソースとして公開しました。GizzardはScalaで書かれたJavaVM上で動作するミドルウェアで、PHPやRubyといったWebアプリケーションからの要求を自動的にデータベースに分散することで、大規模で可用性の高い分散データベースを容易に実現するためのものです。 Gizzard:フォルトトレラントな分散データベースを実現 The Twitter Engineering Blog: Introducing Gizzard, a framework for creating distributed datastores Twitterのブログにポストされた「Introducing Gizzard
Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「
Scalaプラグインが優秀と聞いて、少し前からIntelliJ IDEA Community Editionを使い始めました。Scalaのサポートは期待通り充実していたんですが、IDE自体も快適で、Eclipseから本気で乗り換えたくなってきました。 初めは、Eclipseと比べてエディタの操作感がかなり違うように見えて、とっつきにくく感じたんですが、それは単にEclipseの機能との対応関係が分かっていなかっただけで、少し馴染めば逆にIntelliJのエディタの方が使いやすい気がします。 以下、Eclipseのエディタに慣れた人向けに、IntelliJ IDEAで設定した方が良さそうな項目や機能の対応関係などを書いてみます。 最初にすること Eclipse風キーマップの使用 設定の"Keymap"で"Eclipse"を選択します。キーバインドの大部分がEclipseと共通になります。 フ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く