Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事を書くに至った経緯 僕が代表をしている株式会社KOSKAでは製造業の原価管理をIoTで自動化するGenkanというサービスを提供しております。 そんな弊社では半年前、バックエンドをRuby onRailsからScalaに移行したのですが、その効果が思ったよりだいぶ大きく、いずれこの効果を共有したいなーと思っていました。 弊社ではスタートアップで全員ほぼ未経験状態のScalaを採用するという挑戦をした結果、「Scalaを書きたい」というレベルの高い人材をかなりの確率で捕まえられるようになり、開発がものすごい加速した上に堅牢になっ

本当にScala化できるんですか? 増井:今日は、チャットワークをPHPからScalaに切り替えるお話を伺うためにやって来ました。 山本:はい。 増井:僕がこの話を知ったのは、ちょうど2年ぐらい前に読んだブログのエントリだったんです。いきなり失礼なんですが、僕はこの話を知って、ぶっちゃけアホじゃないかと思ったんですよ。 山本:あはは(笑) 増井:基本的に開発言語やフレームワーク、方法論を同時に変えるって結構大きな変更ですよね? 山本:そう思います。 増井:それなのに、この決断を発表された当時、御社にはScalaエンジニアがいなかったそうじゃないですか。「本当に大丈夫なのかな?」と思って、気になってたんです。昨年春には「Scala採用を決めて一年たった、CTOの雑感」というエントリをポストされていましたが、さらに1年経った今はどんな状況なんですか? 山本:ひと言で申し上げると「絶賛移行中」と

別に知見は書いてないですが、なるほどなーと思ったという感想を書いたエントリです。ScalazとHaskellのFunctorの提供するmap(fmap)は、引数の順番が異なります。Scalaz の Functor defmap[A, B](r: F[A])(f: A => B): F[B] F[A] なFunctor値が最初の引数で、A => B な関数が次の引数で、F[B]なファンクター値が返り値 Haskell の Functor fmap :: f => (a -> b) -> f a -> f b (a -> b) な関数が最初の引数で、f a なファンクター値が次の引数で、f b なファンクター値が返り値。 つまり第一引数と第二引数が逆。 ふつうに考えるとScalaz のやつが直感的に思えます。C言語とかでも、ある構造体を操作するための関数って大体第一引数にその構造体を渡
2011-04-23 Akka の作者として益々注目を集めている Jonas Bonér が 2008年に書いた “Real-WorldScala: Dependency Injection (DI)” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2008年10月6日 Jonas Bonér 著 2011年4月22日 eed3si9n 訳 さて、実戦でのScala シリーズ第二弾の今回は、Scala を用いた Depenency Injection (DI) の実装をみていきたい。Scala は、備わっている言語機構だけを用いても何通りかの DI を実現できる非常に豊かでディープな言語だが、必要に応じて既存のJava DI フレームワークを使うこともできる。 Triental では、一つの戦略に落ち着くまで三つの異なる方法を試した
● [Scala]RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
[まとめ] LL脳がscalaの勉強を始めたよ LL脳がscalaの勉強を始めたよ その83Scalaコップ本の23章の続きをやっていきますよ。今回はfor式によるクエリーからやっていきますデス(´・ω・`) for式によるクエリー for式の記法はデータベース的に利用することが可能みたいですな(´・ω・`)なのでそんなクエリー的なfor式の使い方をいくつか見ていきますよ まずはデータベースとして利用する本棚を用意します //本オブジェクトをケースクラスで定義しますね case class Book(title:String, authors:String*) //本を束ねて本棚を構築しますデス val books:List[Book] = { List( Book("吾輩は猫である", "夏目漱石"), Book("山月記", "中島敦"), Book("臨終まで", "梶井久")
大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtremeProgramming実践レポート』(ともに翔泳社発行。後者は共著)などがある。Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま

ネタ元 業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 結論から先に言うと、3と10以外は結構直接的にscalaで解決できるというか、javaに比べてscalaの方が便利だとおもいます。*1 あと、元ネタのblogの人はgroovy詳しいみたいですが・・・ groovyとscala比べるとgroovyの方が手軽で便利だったり、scalaのほうが型安全だったり*2いろいろあるかもしれませんが、groovyあまり詳しくないので、その辺の言及というか、比較はやめておきます。*3 1.標準APIのチェック例外が扱いにくい チェック例外ってなにそれおいしいの?(・ω・)java Field field; try { field = getClass().getField("testField"); Object value = field.get(this); }
Error processing snippet: content_id=main Reason: Method Not Found XML causing thiserror: <body xmlns="http://www.w3.org/1999/xhtml"> <div id="globalWrapper"> <h1 class="title">Simply Lift </h1> <h2 class="author"> David Pollak </h2> <h2 class="Date"> September 8, 2011 </h2> <div class="Standard"> Copyright © 2010-2011 by David Pollak<br/> This document is licensedCreative Commons Attribution,
liftは若干癖があるフレームワークなので勉強を始めると最初に画面遷移あたりで引っかかるかもしれません。 最初はどのファイルが呼ばれているのかすらよくわからないかもしれません。リンクでどんなURLを指定すれば良いのか迷います。 調べているとsitemapってのを書く必要があるみたいだけど、書き方も一見よくわかりにくいため、戸惑うかもしれません。 そこで色々な指定方法があるので、一部ですがまとめていきたいと思います。 今回の本題のsitemapの前に画面が表示される流れだけ簡単に説明しときます。 sbtでプロジェクトを作成した標準的な場合を前提に話します。 まず[プロジェクト]/src/webapp/templates-hidden/default.htmlが呼ばれます。 その中にデフォルトで以下のような記述があります。 default.html <div id="content" ></d
![*[scala][lift]Liftの入門(sitemap編) - メイクミラクル 〜大逆転〜](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2fd6dbb7768569b0bf7f4c13672de9109397750955%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fcdn.image.st-hatena.com%252Fimage%252Fscale%252F49864b1817412fb5125dcf08a05e7e930bf76036%252Fbackend%253Dimagemagick%253Bversion%253D1%253Bwidth%253D1300%252Fhttps%25253A%25252F%25252Fcdn-ak.f.st-hatena.com%25252Fimages%25252Ffotolife%25252Fi%25252Fishibashits%25252F20110413%25252F20110413233151.jpg&f=jpg&w=240)
■ [scala] foursquareが半年かけてScala+Liftに移行した話 foursquareがLiftに切り替えたという話を聞いてびっくりしましたが、どうやら本当だった模様。 スライド:foursquare.com &scala/lift 以下、内容抜粋 もとはPHP+Apache+MySQLだったが、エンジニアが書いたものじゃなく、これからの拡張のためには書き直すべきだった 静的型・コンパイル言語が好き。Wicketを試したけど、Object型使いすぎなのと関数がfirst-classでないのがちょっとJavaの頃からなるべく関数的に書くようにしてたんで、Scalaは自然 コールバック書くだけでAjaxになるのはいいね! まあせっかくスタートアップなんだし、変わった・面白いものを使ってみたかったってのはある リライトについて (書き換え中は?)PHPとセッションの共有と

Emacs上で動作するScala IDEです。 開発はgithubで薦められていて、なかなか活発なようです。 Downloads · aemoncannon/ensime ·GitHub こんな機能があります。 補完 エラーチェック デバッガ クラスブラウザ リファクタリングetc... まだ開発途中で不完全なところもありますが、それでもかなり便利です。 動作にはscala-modeが必要なのでscala-modeのインストールをしといてください。 =>EmacsでつくるScala開発環境 前編(scala-mode) - tototoshiの日記 インストールscala,ensimeのバージョンはそれぞれscala: 2.8.0 ensime: 2.8.0-0.3.0 として話を進めます。 (ちなみにscalaとensimeのバージョンを合わせたほうがいいのかどうかはわかりませ

※2011/4/17追記jrebelプラグインの設定がもれていたので追記しました。 liftで開発環境を整える際に知らないと手間がかかるのでまとめておきます。ここではintellijを利用します。 IDEはintellijの他にはEclipse、Netbeans、ensimeなどがあります。ビルドツールには、sbtとmavenがあります。昔はmavenでしたが、最近はsbtの利用が推奨されているようです。 今回構築する環境のバージョンは以下の通りです。 intellij:10 sbt:0.74 lift:2.3scala:2.8.1.final 注:OSはMacを利用しています。Windows環境とは多少異なる部分がありますがWindowsでも構築したとこがありますが問題ないと思います。 intellijのダウンロード intellijを以下のサイトからダウンロードします。 http:

Twitterが分散フレームワーク「Gizzard」公開!Scalaで書かれたShardingを実現するミドルウェアTwitterは独自に開発した分散フレームワークの「Gizzard」をオープンソースとして公開しました。GizzardはScalaで書かれたJavaVM上で動作するミドルウェアで、PHPやRubyといったWebアプリケーションからの要求を自動的にデータベースに分散することで、大規模で可用性の高い分散データベースを容易に実現するためのものです。 Gizzard:フォルトトレラントな分散データベースを実現 TheTwitter EngineeringBlog: Introducing Gizzard, a framework forcreating distributed datastoresTwitterのブログにポストされた「Introducing Gizzard

Qcon Tokyo 2010Scala + Lift による 超実用開発 Takafumi Miki @ PatentBureau.Co.,Ltd PatentBureau Co., Ltd. ご来場頂き ありがとうございます。 PatentBureau Co., Ltd. まずは、自己紹介 PatentBureau Co., Ltd. 自己紹介 • 三木 隆史 • 株式会社パテントビューロ所属 • twitter: kuma3_neko3 • インフラ、サーバーエンジニア • データベースエンジニア • アプリケーションエンジニア • 研究・開発部門マネージャー PatentBureau Co., Ltd. 「何でも屋さん」だね PatentBureau Co., Ltd. ・・・という事で PatentBur
最近の私の仕事はRuby onRails 案件ばかりだ。そうなる以前、流行しつつあるRails を横目に見ながらJava 案件に取り組んでいた頃は、Java の融通の利かない言語仕様に苛立ち、一刻も早くJava からRuby へ移行したいと思っていた。しかし、実際にRuby で開発を行ってみると、そこには譲れないトレードオフがあった。Eclipse 上のJava コードは、死んだ文字列ではなく、呼びかければ応えてくれるオブジェクトだったが、Aptana RadRails 上のRuby コードは、それとは程遠い代物だった。補完はまともに働かず、依存先へのナビゲーションや依存元の検索はインテリジェントでなく、リファクタリング支援は貧弱。これは、特定ツールの未成熟の問題というよりも、動的型付け言語のアイデンティティに関わる問題だろう。そして、Rails アプリケーションの実行速度
WebサービスをScala+LiftでUI Firstに作る 1.WebサービスをScala+LiftでUI Firstに作る~ LiftのView-Firstを生かしたワークフローでアプリ開発 ~ Fungoing LLC / Satoshi MiyauchiTwitter : @nothijiri 2. Overview Satoshi Miyauchi @nohijiri フリーのプランナ/Webディレクタ デザイン、マークアップ、プログラム、サーバ、ネットワークも一応やる 2010年10月にPHPからScalaに移行 自身でもWebサービスを企画開発しておりプラットフォームにScala+Lift+PostgreSQL+MongoDBを選択 サービス開発の経験をもとに、LiftのView-Firstについて紹介 Page : 1 3. Liftの開発StyleはView-Fir
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く