Screaming Loud

研究・プログラミングなど気づいたことをメモをしています。読書記録はこちらに記載しています。https://bookmeter.com/users/75944

初めての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/…

もうそろそろ規約変更になってしまうが・・・。

そういえば、昔書いてずっと使ってたDynamicDNS自動更新スクリプトがあったので、晒す。 #coding:utf-8 import subprocess import re import time from optparse import OptionParser CRT_IPF = '/usr/ddns/CRT_IP.dat' NEW_IPF = '/usr/ddns/NEW_IP.dat' LO…

SolrをレプリケーションしてBrokerを立てて、分散検索をやる方法

CentOSにSolrを入れた時、分散検索を行うためBrokerをどう立てればよいかわからなかったので、そのメモを残しておきます。 Solrはマイナーバージョンが変わるだけで結構仕様が変わるので厄介です。 構成 CentOS6.3 Solr4.4.0 やったこと まずは、Solrのレプ…

contextからactivityのクラス名を取得する

contextからactivityのクラス名を取得しようとしていたのですが、なかなかWeb上になくハマったのでメモしておきます。 PackageInfo pInfo; String className = ""; try { pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), con…

SpringMVCの構築でハマった原因

結構、ハマる人が多かったのでまとめてみた。 SuccessView isn't set → BindExceptionのクラスのインポートが間違っている。 正しくはimport org.springframework.validation.BindException; 変数が表示されない →${}の形にしているか? jspのページがHTMLタ…

シェルで書いたtreeコマンドの編集

shellスクリプトの練習です。 treeコマンドで表示されるtreeだけを抽出。 treeの行数を同時に表示 一番に見出しを表示させる この3点を実装しました。引数に取ったディレクトリを見ます。 もし、引数に何も無ければ、コマンドラインからの入力を受付ます。 …

MacにおけるF1+コマンドの利用

Mac

Macで同じアプリケーション内のウィンドウを切り替えるには Command + F1キーというのは、有名だと思う。 しかし、この設定をしてもなぜか動かない。 そして、F1ボタンだけ効かないという状況になっていた。原因は以下のチェックボックスに抜けがあった。F1,…

EclipseにGithubのアカウントをクローンする方法

SSH関連設定 まず、設定 > 一般 > ネットワーク設定 > SSH2で公開鍵を作る。もし、持っていれば、ロードする。 GitHubにSSHキーを登録。すでに同じ、コンピュータから登録していれば、その暗号鍵をeclipseで利用する。 リポジトリのクローン ウィンドウ > ビ…

BloomFilterをjavaとpythonで書いてみた。

Javaほんとに面倒くさい。 慣れていないからなのか?BloomFilterを両方で書いてみた。 python # -*- coding:utf-8 -*- from bitarray import bitarray import hashlib import sys class BloomFilter(object): def __init__(self,bitLength): self.bitarr = b…

Suffix ArrayをPythonとJavaで比較

Javaの勉強を始めたので、JavaでSuffix Arrayの実装をやってみた。 一応今日中にやるという目標を立てていたので、達成できてよかった。Python # coding:utf-8 ''' 1,文字列を分解する関数 2,ソートする関数 3,配列に格納する関数 ''' def suffix_arra…

Grazie ローマを回って。

卒業旅行と称して、初のヨーロッパ旅行でイタリアのローマに7日間行ってきた。 7日間とは言っても、移動時間が長いので実質4日くらい。 長時間飛行機はホント疲れた。 タバコと路駐 イタリアに来て思ったのがタバコと路駐(路チューも多いw)がものすご…

CodeKata 9:会計システムの帰還

CodeKataの和訳シリーズ。 今回はCodeKata: Kata Nine: Back to the CheckOutです。 スーパーの会計システムの話ですね。スーパーに戻ろう。今週は、「りんご1個50セント、3個だと1.3ドル」というような価格体系の会計システムを実装してみよう。Kata1を振り…

即興プログラミング

つい先日、医学部の友達と旅行に行ってきた。 飲んでいたら医学系のちょっとした豆知識とかも教えてもらい楽しませてもらった。 そんな中、「パソコンでなんか作れるの?」という質問がきた。 まぁありがちだが、医学部の友達はグーグルのGUIでWebサイトとか…

CodeKata 8:目的の衝突

CodeKata和訳シリーズ。 今回はCodeKata: Kata Eight: Conflicting Objectivesを訳します。なんでコードを書くのだろうか?その一つとして、特定の問題を解決するためだろう。それに付随して世界に価値を提供できるということもある。しかし、それは本質的な…

CodeKata 7:どうしたらいいんだろうか??

引き続きCode Kataの和訳を作ります。 リンクはCodeKata: Kata Seven: How'd I Do?です。前回のKataのいくつかはプログラミングの挑戦だった。この週は実用的なものに戻ろう。このKataではコード(自分のコードだ!)を批判的に読むことを練習する。いい練習…

CodeKata 6:アナグラム

今回はアナグラムのお話。 リンクはCodeKata: Kata Six: Anagrams。今週は実用的な実装をやめて、クロスワードを解いてみよう。イギリスでは、よく新聞のクロスワードをやって何時間も無駄にしていた。クロスワード好きはイギリスの暗号クロスワードをアメリ…

CodeKata 5:ブルームフィルタ

今回はCodeKata: Kata Five - Bloom Filtersを訳した。 ブルームフィルタについての練習。 集合の中の要素を見つけなければいけない状況になった場合、たくさんのアルゴリズムを実装しなければいけなくなったりする。 集合が小されば、ビット配列が使える。 …

CodeKata 4:データマンジング

今日はCodeKata: Kata Four: Data Mungingを訳します。タイトルの「マンジング」(munge)は、あるデータを見慣れないものに変換するということらしいです。 mungeの意味 - 英和辞典 Weblio辞書Martin FowlerはKata2という難しい問題を出してくれたが、Yet an…

CodeKata 3 : どれくらい大きい?どれくらい速い?

今日は3つ目となるCodeKata: Kata Three: How Big, How Fast?を訳した。大雑把な見積もりが出来るのは重要な才能だ。 せっせとコーディングしているとき、突然おおよそどれくらい大きいデータ構造を扱うのか、またループがどれくらいの速さで回るのか算出し…

CodeKata 2 : 空手チョップ

2つめのCodeKata: Kata Two -- Karate Chopを訳しました。 バイナリチョップ(もしくはもっとつまらないバイナリサーチって呼ばれている)は,ソートされた配列からある値が格納されている位置を見つけるものだ。 値を探す度に、考慮中の配列を2分割すること…

CodeKata1:スーパーマーケットの価格

情熱プログラマー(オーム社)に載っている「いますぐやろう」の項目で紹介されていたCodeKataをやってみようと思い、とりあえず和訳をしてみました。 まずは、一つ目CodeKata: Code Kata One - Supermarket Pricingを和訳してみました。このkata(型)はDFW…

CodeKataとは?

CodeKataという開発者のための練習サイトがある。 これは情熱プログラマー ソフトウェア開発者の幸せな生き方という本に薦められていたサイトだ。そこで、そのサイトの問題を1ヶ月程度で考えてみることにした。 ついでなので、和訳を載せることにした。まず…

論理的に批判する力を鍛える

文章を読んでいて矛盾する点を批判する力をつけたいと思ったことはないだろうか? 自分はいつも論理的に批判することが苦手であったため,批判する力を養いたかった.そこで,自分が良いと思った「これは批判する力がつく!」と思った批判力の養い方を紹介す…

frozenset型のイテレーション速度

以前,set型とlist型のイテレーション速度 - Screaming Loudを比較したが,frozenset型に関してはどうなのだろうか?と疑問を持ち.比較してみた.実験の仕方は同じだが,以下のようになった. set 12.19 list 11.01 frozenset 22.92frozensetのイテレーショ…

2013年を迎えるにあたり

2013年がやってきました.2012年は振り返りません.さて,自分にとって今年はゴールの年でありスタートの年です.今年でついに学生生活も終わり(修論が提出できれば…),社会人としての一歩を踏み出す年です. 今年の目標 何かで一番を取る 今まで新年の抱…

Pythonで実装する類似度計算

A = {"みかん":5,"りんご":8,"ぶどう":2} B = {"みかん":5,"なし":8,"ぶどう":2,"もも":1} 辞書の要素は{単語:その出現頻度}という構成です.この2つのベクトルの類似度を計算する尺度を紹介する. PMIなど共起についての尺度は使わず,単純なベクトルの比較…

set型とlist型のイテレーション速度

set型とlist型のイテレーションによるスピードの違いを調べてみた. setiter = set(range(100000000)) listiter = list(setiter) test = "" import time #set型のかかった時間 start = time.clock() for a in setiter: test = a print time.clock() - start …

pythonでoptionを関数へ

pythonでコードを書く時,メインモジュールを使っていると思う. 自分はいつもそのメインモジュールの中にoption系を全部書いていた. option系って勝手に言ってるけど,要はコマンドラインでoptionをつけるモジュール. →15.4. argparse — コマンドラインオ…