With best-in-class Jira integration, and built-in CI/CD, Bitbucket Cloud is the native Git tool in Atlassian’s Open DevOps solution. Join millions of developers who choose to build on Bitbucket.
![bitbucketの使い方](https://cdn-ak-scissors.b.st-hatena.com/image/square/570c299690af977bd245c4f893f34ac99efa05a6/height=288;version=1;width=512/https%3A%2F%2Fwac-cdn.atlassian.com%2Fdam%2Fjcr%3Af92b1a2a-10cd-4f82-bb2a-aa00400f4288%2Fbitbucket-cloud-features-opengraph.png)
あまり使ったことがないので、メモを兼ねて試してみます。 Groovy Groovyの場合は、Closureクラスのインスタンスを合成します。使用するメソッドは、leftShift(<<)とrightShift(>>)です。 def add2 = { x -> x + 2 } def multiply3 = { x -> x * 3 } def multiply3AndAdd2 = add2 << multiply3 // f << g は f(g(x)) def add2AndMultiply3 = add2 >> multiply3 // f >> g は g(f(x)) println(multiply3AndAdd2(2)) // (3 * 2) + 2 => 8 println(add2AndMultiply3(2)) // (2 + 2) * 3 => 12 f << g でf(
4/4-5 に行われた JavaOne Tokyo 2012 の JVM言語BoFに、スピーカーとして参加してきました。 BoFの概要は以下のような感じです。 JavaVM上で動作するさまざまなプログラミング言語 (Groovy、JRuby、Scalaなど) のコミュニティや興味を持つ個人が集まって、各言語のチュートリアルや最新情報、使用実績などの情報交換を行います。プレゼンテーション、各言語を使ったコーディング大会、ライトニング・トークなどの形式で、ユーザ間の交流を促すBoFとして開催し、言語を超えて活用が進むJavaVMの日本ユーザの裾野を広げます。飛び入り参加大歓迎、楽しい時間にしたいと思います。 https://oj-events.jp/public/session/view/173 僕は ScalaJP からコーディング大会の Scala 担当として発表させて頂きました。 あのじ
最近、業務でこそっとGroovyを使いだしているのですが、軽くクロージャ周りでハマったのでメモ。 別に階乗のプログラムが書きたかったわけではないのですが、サンプルとして。 def factorial = { n -> if (n > 0) { n * factorial(n - 1) } else { 1 } } println(factorial(args[0].toInteger())) こんなプログラムを書いて、実行します。 $ groovy recur_closure.groovy 5 Caught: groovy.lang.MissingMethodException: No signature of method: recur_closure.factorial() is applicable for argument types: (java.lang.Integer) va
Scalaは、スイス連邦工科大学ローザンヌ校のMartin Odersky(マーティン・オーダスキー)教授率いるチームが開発しているプログラミング言語です。オープンソース(BSDライセンスに似たSCALA LICENSE)で開発・公開されており、その範囲内で自由に利用できます。最初に、“なぜ、Scalaの人気が高まっているのか”を説明します。 Scalaは、オブジェクト指向に加えて関数型言語の特徴を備えた比較的新しい言語です。この、“オブジェクト指向に加えて”というのがポイントです。新しいパラダイム(問題解決のための考え方)を、従来のパラダイムに重ね合わせていることから、マルチパラダイムの言語ともいわれます。 ちなみにScalaという名前は、Scalable Language(拡張性のある言語)の短縮形です。そのスケーラブルという言葉には、「小さいプログラムも大規模なプログラムも同じ概念で
前回(id:fits:20110925)、並列コレクション等で Web コンテンツをダウンロードする処理を実装してみましたが、今回はその非同期処理版を Groovy, Scala, F# で実装してみました。(主な仕様は前回と同じ) 実行例 groovy async_download_web.groovy destdir < urls.txt今回、非同期処理のために使用した機能は以下の通りです。 Groovy : GPars Scala : 限定継続 + Actor F# : 非同期ワークフロー サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20111016/ Groovy の場合: GPars 非同期処理でも GPars が使えます。 GParsPool.withPool や GParsExecutorsPool
複数のWebコンテンツ(HTMLや画像など)をダウンロードする際に 1件ずつ処理していたのでは非効率です。 というわけで、並列的にWebコンテンツをダウンロードするプログラムを Groovy, Scala, C#, Java, Ruby で実装してみました。 主な仕様は以下で、外部ライブラリを使用せずに実装しました。 実行時の第1引数で出力先ディレクトリを指定 ダウンロード対象の URL を標準入力で指定(改行区切りで複数指定) URL 内のファイル名を出力ファイル名として使用 実行例 groovy download_web.groovy destdir < urls.txtサンプルソースは http://github.com/fits/try_samples/tree/master/blog/20110925/ Groovy の場合 Groovy 1.8 では GPars が同梱されてい
2011年9月7日水曜日 Java がサポートされたクラウド環境 Heroku で Play!Scala を試す Tweet 先日Herokuで「Heroku for Java」の発表がされました。 http://blog.heroku.com/archives/2011/8/25/java/ Herokuはスケールアウト可能なクラウド上のプラットフォーム環境です。 言語はRuby、Node.js、Clojureに対応しているので、最近のクラウドを取り巻く環境が簡単に手に入ります。 今回のJavaの対応により、さらに開発者にとって身近な環境になったという印象をうけます。そしてHerokuは今後も色々な言語に対応していく予定であるとも言っています。 これを機に触って見て感触を試してみようと思う方も多いのでは無いでしょうか? salesforceのブログでも発表があり、Mavenや
最近、Groovyの書籍を読んでAST変換に興味を持ちまして…。んで、ちょっと試しにやってみたいことがあったのですが、それをやるにはScalaのCompiler Pluginを書く必要があるみたいですね。 Scala Compiler Pluginを利用すると、 コンパイル時にチェックの追加 よく使うライブラリなどの最適化 ScalaのSyntaxを書き換える なんてことが可能になるようです。 いきなりハードルが高いことやるのもなんなので、本家のサンプルをまずは写経してみましょう。 Writing Scala Compiler Plugins http://www.scala-lang.org/node/140 子の例は、0除算チェックを行うプラグインで、こういうScalaソース object DivByZeroTest { def main(args: Array[String]): U
前回はLiftの基本的な使い方を紹介し、簡単なウェブアルバムサービスを作りました。今回はこのウェブアルバムサービスを拡張しながら、より発展的なLiftの機能やテクニックを紹介していきます。 今回紹介することは次の通りです。 ユーザーアカウントの扱い方 Boxモナドを使ったテクニック Ajaxの実装方法 前回作ったウェブアルバムサービスではすべてのアルバムが公開されました。しかし、実際は家族や友人だけにみてほしい場合もありますよね。例えば結婚式やオフ会での写真を参加者だけで共有したり、子供の成長の記録を家族や親戚で共有できたらとても便利です。 今回は前回のウェブアルバムサービスを拡張し、いろいろな人に使ってもらえるようアカウントを導入し、アルバムごとの権限を導入し、ユーザーが設定できるようにします。 1. アカウントの導入 まずはユーザーアカウントを導入します。Liftにはユーザーアカウント
Scala2.9から、DynamicってのでRubyのmethod_missing的なことができるようになる.....ハズだったんだが、 2.9正式リリースの数時間前にいきなりこの機能はサポートされなくなった。 といっても全く使えなくなったわけではなく、scalacやscalaコマンドに-Xexperimentalオプションを使えば使えるようになる。 で、Dynamicってどんなのかというと、Dynamicというトレイトを実装したクラスは、定義されていないメソッドが呼び出されるとapplyDynamic(methodName:String)(args:Any*)というメソッドが代わりに呼び出されるようになる。 scala> class Foo extends Dynamic { | def applyDynamic(methodName:String)(args:Any*) = { | p
こんなタイトルを付けてみましたが、これは単なる冗談でなく、「関数型」というなんだか小難しそうなイメージが定着している概念を知ること無く、JavaプログラマにScalaを説明してみようという試みです。この記事で、少しでもScalaに対するとっつきずらさを払拭できたらなあと思っています。 Scalaの主な機能 クラス:Javaのクラスと記法が違いますが、大体同じです。 class A { } トレイト:メソッドも実装できる便利なインタフェースです。 trait A { def hoge() { println("hoge") } } class B extends A {} new B().hoge インタフェースにメソッドが定義できて嬉しいですね。 オブジェクト:GoFのシングルトンパターンを言語レベルでサポートしただけです。 object A { val i = 10 } とかやると、Aと
Scala言語の創始者Martin Odersky氏は5月12日、Scalaを専門とするオープンソース企業「Typesafe」を共同で立ち上げたことを発表した。Scalaとミドルウェアの「Akka」を組み合わせたスタック「Typesafe Stack」を提供する。 ScalaはOdersky氏がスイスのスイス連邦工科大学(EPFL)で開発したプログラミング言語。Java仮想マシンで動き、オブジェクト指向言語と関数言語の両方の特徴を持つ。Twitter、Facebook、Foursquareなどが利用している。 Akkaはイベント主導のミドルウェア。Java仮想マシン上で、並行、分散、フォールトトレラントなシステムを構築できるという。Scalaで構築されており、ScalaとJava APIを持つ。 Odersky氏は、Akkaを開発したJonas Boner氏と共同でTypesafeを設立、
groovy 1.8 では、memoize によってクロージャのメモ化が出来るようになったけれど、scala だってできるもん、という負け惜しみエントリ。 普通の自動メモ化 サクっと作ったものを(1〜5引数対応)をGistに上げたので簡単に紹介。 実装のポイントは単純で、下記の通り。 // 1変数関数をメモ化する(2変数以上は tupled/untupledで対応) def memoize[ArgT, RetT](f: ArgT => RetT): ArgT => RetT = { val memo = scala.collection.mutable.Map.empty[ArgT, RetT] arg => memo.getOrElseUpdate(arg, f(arg)) } こんな風にして使う。 object Main extends Application { val fib: I
本日、日本Javaユーザーグループ(JJUG)主催のCCC 2014 SpringというJavaの勉強会に行ってきました。会場は、ベルサール西新宿で、都営大江戸線都庁前のA5出口を出て、新宿中央公園の5分くらい歩いたところにありました。今はスマートフォンで地図を確認しながら行けるので、初めての場所でも方向音痴の私でも電車の駅さえ間違わなければ大丈夫ですね。 CCCというのはCross Community Conferenceの略で、さまざまなコミュニティーの交流の場となる会議という趣旨でしょうか?このCCCというイベントは2012から開催されているようなのですが(CCC | 日本Javaユーザーグループ)、今回初めて参加させていただきました。残念ながら個人的な都合から、基調講演と午後の前半のセッションのみで後半と懇親会には参加できませんでしたが、参加したセッションについてまとめます。その他
テストを書いているとモックオブジェクトを使う機会が多いと思います。そのモックオブジェクトは自前で作るよりは、JMockやMockito*1などのフレームワークを利用した方が楽でしょう。 今回は機能的に、ほぼ最強と思われるJMockitを紹介します。 これが、他のモックフレームワークとの機能比較です。 MockingToolkitComparisonMatrix - jmockit - A feature matrix comparing several mocking toolkits. - Project Hosting on Google Code 機能が多ければ使いやすいか。そんなことはないと思います。しかし、これは使いやすいかもと周りの人からお勧めがあったので、実際に使ってどんなところが使えるのか検証してみたので、書いてみます。あと、最後にScalaで使えるか試してみました。 あ、
有限会社ITプランニング勤務のプログラマー。Scala、OCaml、F#などの静的型付け関数型言語を利用したシステム開発業務に従事。定理証明支援器Coqやモデル発見器Alloyといった形式手法ツールの業務への応用にも興味を持っている。 Scalaの標準ライブラリは、Java程大きくありませんが、パーサーコンビネーターを筆頭に小粒でもぴりりと辛い逸品が揃っています。この記事でご紹介する「アクター」もその一つ、マルチスレッドのスパゲッティをおいしいペペロンチーノに変えてくれる、魔法のスパイスです。new Threadとしたくなったら、一歩立ち止まってscala.actorsパッケージの扉を叩いてみてください。 なお、本稿では2回にわたって、アクターとは何なのか、アクターを使うとどのような事が可能なのかをご紹介する予定です。並行処理に興味があったり、なんらかの形で並行処理に触れたりしたことがあれ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く