Screaming Loud

日々是精進

あなたはPlayに貢献していますか?

少し偉そうなタイトルをつけてしまったのですが、Playを使っている方はぜひやるといいなーと思ったことを紹介します。それは・・・・、 PlayFrameworkの翻訳 です。あんまり気づかないかもしれませんが、じつはプルリクで全て管理しています。 (別に自分は…

プロジェクトを始める前に確認しておきたいこと

Web開発などをスタートする際に、どういうスタートを切ればいいかに困った、プラス、プロジェクトを始めるという経験をして振り返ったときに、こうすればよかったみたいなのがあったので、次のプロジェクトではそれを活かせるように書き留めておこうと思いま…

GitLFSを触ってみた

最近GitHubが発表したGitLFSを触ってみたので、まとめました。話題のGOで作られています。ただGitLFSということで、なんかすごいことをやってるのかと思いきや、案外ふつうのコトをやっていたので、内容は薄いです。さらに、GOに対する知識が少ないからかテ…

ドメイン駆動設計についてのまとめ その1

ドメイン駆動設計について勉強・実践しているため、そのアウトプットととして、まとめていきたいと思います。 【ソフトウェアはなぜ作る必要があるのか?】 大前提として、ソフトウェアはなぜ作るのか?ということを認識している必要があります。 【なぜ導入…

読書を続けてく上で気をつけたい3つのこと

最近流行っている○つのことという形式でタイトルをつけてみました。 自分としては、あまり好きではないですが、読者は読みやすいかなと思って。読書は、知識を貯める上で非常に重要なことです。 様々な経営者は、読書を推奨しており、例えばビル・ゲイツも必…

道玄坂LT 〜統計・機械学習編〜

道玄坂LT祭り 第2回目でした。前回同様がっつり盛り上がりました。 今回印象的だったのは、マエショリストの大切さを説いてる人が多かったことです。DMMの方が、Sparkの話をしていましたが、なかなか運用つらそうです。とりあえず、あとで読むために発表ス…

Slickで複数のDBスキーマのトランザクションを行う

Slickでのトランザクション Slickでトランザクション処理を行うとすれば、公式のドキュメントに載っているように以下の様な処理を書けば良いと思います。 db.withTransaction{ implicit session => // your queries go here } 一般的にDB間をまたいでトラン…

初めてのLTの発表@実戦でのScala

人生で初めてLT発表をしてきました。今まで、研究室や社内の勉強会では積極的に発表はしていたのですが、 いざ外部となると、ものすごく緊張しました。やはり、社内などの小さいコミュニティであれば、 聴講者のレベル感などがだいたいわかるので、それに合…

scala(Jsoup)でHTMLパース

scalaでHTMLをパースする処理を書いてみました。scalaで書かれた純粋なHTMLパーサが見つからなかったので、Java製のJsoupを利用しました。とくにハマるポイントはなかったのですが、 注意点としてはJavaのチェック例外に対してtry-catchで囲まなくてもコンパ…

influxDBとMySQLの比較

influxDB 時系列用のデータベースとして作られています。 Goで書かれており、導入に際して特に依存しているものはありません。 用途 DevOpsのためのデータ計測の格納先としての利用です。2013年に大きく盛り上がったinfluxDBを少し遊んでみようと思い、いく…

scalaでssh処理(ssh, scpなど)

scalaでssh処理をしたい!ってなった時に、まず思いつくのは、sys.processだと思います。 sys.processを使えば、生のコマンドが実行できますので、自由にsshだったりなんだったりできます。しかし、sprayやAkkaのコミッターである sirthias (Mathias) · GitH…

slickで動的なwhere句を書く

slickで動的にwhere句を書く方法を悩んだ結果、しょぼいやり方になってしまったので、 読者の方の知恵を借りたいと思います。 目的 一般的なwhereとかlikeとかを、条件が入力されれば、追加するみたいな形を作りたい 作った結果 全部mapでつなぎたいのですが…

DynDNSが有料化に

経緯 長らくサーバにドメインを割り当てるために、DDNSを使っていました。 なんとそのDDNSが広告必須掲載が必須になってしまいました。 Dynamic DO!.jp - 資料000022 - 特に、一般公開しているサービスではないので、広告掲載で必要クリック数を稼ぐというこ…

slickとspecs2を使った際のハマったエラー文

一応、slickとタイトルに書いてありますが、ハマったのは、specs2の仕様に対してです。 やってたこと specs2を使い、Model周りのテスト。 該当クラス以外のメソッドに対しては、Mockを差し込んでテスト。 ハマったこと その1 【謎のエラー】 [error] Invali…

slickでコネクションプーリング

slickでコネクションプーリングを使おうとしても、slick自体ではサポートしていない。 Connections / Transactions — Slick 2.0.0-M3 documentationそこで、リンク先にも書いてあるように、Javaの資産であるコネクションプーリング用ライブラリが必要になる…

振り返ることの大切さ

日々の仕事に忙殺されていると、振り返ることを忘れてしまう。目の前のことに夢中になり、手当たり次第こなしていく。でもその目の前のことをこなすだけというのは、実は現実逃避だったりする。しっかり時間を取って、立ち止まって考えてみる。 悩んでいるこ…

slickのupdateで動的にクエリを作れなくてハマった

slickでは、SQLを書かずにクエリを投げられます。その書き方に関しては、 Coming from SQL to Slick — Slick 2.1.0 documentationに書いてあります。ただ、少し違ったことをしようとするとなかなか実現できません。 今回実現しようとしていたこと update文で…

slickのcode generatorをmysqlで動かしてみた

slickのcode generatorを使ってみました。code generatorとは、DBの接続するscalaファイルをsbtコマンドを使うことで作成してくれるものです。slick/slick-codegen-example slick/slick-codegen-example · GitHub では、H2Driverを使っての例なため、MySQLDr…

ScalaBlitzの使い方

ScalaBlitzの使い方をめちゃくちゃ簡単にまとめてみました。 ScalaBlitzとはなんなのか? ユーザが何も気にすることなく、並列化を行えるライブラリ、それがScalaBlitzである。 なんで作った? Scala2.9で並列コレクションがリリースされた。 ネイティブに並…

PyConJp2014に参加してきた

この季節は、カンファレンスてんこ盛りですね。今日は、PyConJpに参加してきました。 基調講演 HerokuのKenneth Reitz氏でした。 普通にPython3をdisってましたねw DeepLearning for Image Recognition in Python DeepLeaning自体の難しいことは話さず、ラ…

ScalaBlitzってのが速いらしいので、とりあえず走らせてみた

ScalaBlitzというライブラリがあります。 ScalaBlitz | ScalaBlitzScalaBlitzはどういうライブラリかというと Use ScalaBlitz optimize block, to make collection operations faster! Simply import the scala.collection.optimizer package, and take full…

ScalaMatsuri2014に参加した

基調講演 - Scala 進化論 The Evolution of Scala from Odersky The Evolution of ScalaScalaがどうやって生まれたか? そしてこれからどういう方向で進んでいくのか? みたいな話。 Pizza言語というScalaのベースとなったというのがあったらしく、初めて聞…

sprayの起動とテストなど

ベンチマークがくっそ速くて、JVM最速と思われるspray*1の日本語記事が全然ないです。ってことで、起動方法とテストの方法をメモしておきます。sprayの起動などの操作は、sbtのコンソール上で行います。 起動 $ sbt [info] Set current project to workspace…

scalaの無名関数でハマった

今回は無名関数周りでハマりました。特定のURL「http://hoge.com」に対して、 入力したものを結合するという実装をしていました。無名関数内でパターンマッチを行い、返り値を出し分けるという実装をしました。 val url = {id:Option[String] => { id match …

scalaで非同期処理をつなげるとき

現在、非常に苦戦しております。非同期処理を順番に行うように実装する方法がなかなか見つかっておりません。とりあえず、やってみた実装方法はこんな感じ。 def get(apiUrl: String): Future[JsValue] = { WS.url(apiUrl).get().map { response => response…

ScalaのListとVector適当に比較してみた。

まだまだscalaをよくわかってないんですが、 以下のように乱数リストを作って、 それを文字列にするというめっちゃくちゃなことをしてみたら java.lang.OutOfMemoryErrorが出ちゃいました。 調べたら、色々出てきました。モバイル開発系(K)-Scala Tips JVMの…

PlayFrameworkで出たplay.PlayExceptions$CompilationException: Compilation error[IO error while decoding ... ]

PlayFrameworkを使って複数人で開発していたところ、 あるブランチをマージした途端、 急に play.PlayExceptions$CompilationException: Compilation error[IO error while decoding /hoge/target/scala-2.11/src_managed/main/routes_reverseRouting.scala …

2013年に学んだこと

【プログラミングに関して】 2013年は修士を卒業し、企業に就職した年でした。 と同時に2013年は、プログラミング生活としては、大きく変革しました。 今まではPython一本でしたが、Javaを始めいろいろな言語を触ることになりました。 一つの言語に固執する…

今日のawkコマンド 最初or 最後のフィールドの値のみ除外

以下のようなファイルがあった時、先頭の数値のみ取り除きたいときのawkコマンド $ cat a.txt 1 ls 2 touch test 3 test 4 echo "hoge hoge" > test こんな場合、$0と代入を組み合わせるとできる! # 最初のフィールドを除外する場合 $ awk '{$1="";print $0…

CentOS6でheartbeatとpacemakerを導入した時にハマったポイント

ハマったポイント heartbeatがyumで入れられない epelレポジトリを追加しないと、heartbeatがyumに入らない。 最新CentOS6-64bitのepelのレポジトリは以下のページにある。 epel-release-6-8.noarch.rpmと書かれたリンクからダウンロード。 Index of /Linux/…