読者です 読者をやめる 読者になる 読者になる

Screaming Loud

研究・プログラミングなど気づいたことをメモをしています

Scala用のコレクション操作の拡張ライブラリsansyo(山椒)を作りました

タイトルの通り、Scala用のコレクション操作の拡張ライブラリを作りました。 名前はsansyoです。 意味としては、 「山椒は小粒でもぴりりと辛い」 から来ていて、コレクションの拡張ライブラリのため、小さいですが便利になるものとして作りました。 ライブ…

最新技術とビジネスとしての成功

自分のツイートをまとめてみた。混同しがちだけど、最新技術を使うってこととビジネスを成功させるってことは同一ベクトルではない。— Yuto Suzuki (鈴木 雄登) (@moc_yuto) 2017年2月15日 もちろん最新技術がプロセスを簡略化することは多いけど、組織的と…

「考える」とはなんだろうか

考えるとはなんだろうか?時々「自分は考えずに行動してしまうなー」と思っていますが、 そのときの考えるとはなんなのでしょうか? 数学の問題 例えば、数学の問題を考えることについて これは、ある解けない問題に対して、自分の知っているパターンを次々…

2016年に読んだ本のまとめ

昨年末に読んだ本をまとめましたが、今年もやってみたいと思います。 昨年のリンクはこちら→ 2015年に読んだ本を振り返る - Screaming Loud今年読んだ冊数は42冊でした。 昨年が30冊なので増えたのですが、前半にすごい高いペースで読んでいたのが、多くなっ…

Slackから始めるChatOps

先日発表したChatOps事例のスライドを共有します。 Slackから始めるChatOps from Yuto Suzuki www.slideshare.net 連携のハマりどころ この発表でちゃんと伝えてないので補足です。

Play2.4で非推奨のGlobalSettingをなくす

Play2.4で非推奨、かつPlay2.5ではなくなっているGlobalSettingの消し方を紹介します。 なかなか大変なので、ブログにまとめておきました。 Global.scalaで書いていたコード Play2.3で書いていたGlobal.scalaのコードを記載します。 object Global extends W…

fileを開いて指定行数分取得する

fileを開いて、指定行数の分だけ取得するというロジックを作成していたのですが、 そもそもinputが指定行数以上あるかどうかを知りたかったので、そこもうまく取得できるような実装にする必要がありました。BufferedReaderで最後の値が、nullになるので、nul…

Scalaの値クラスのバグ?

値クラスを使っていて不可解な挙動があったので、まとめたのとその対処法をメモしておきます。 値クラスとは 値クラスとはIntやStringが継承しているAnyValを継承させたクラスです。 一つの値しか持ちませんが拡張メソッドを実装できるため、DDDなどを実現す…

ServerlessConf Tokyoに参加してきました。

serverlessconfに参加してきました。 serverlessに関しての知見があまりなかったので、すごい有意義な勉強会となりました。 そもそもserverlessとは serverlessによって実現できること serverlessの思想 現状 そもそもserverlessとは パネルディスカッション…

spray-canで何故か同時に接続できずconnection reset by peerが発生する

sprayフレームワークを使っていると、HTTPリクエストの部分はspray-canを利用すると思います。しばらく、spray-canを使っていたのですが、いくつか重い処理を走らせるとCPUを使い切っていないのに、sprayがリクエストを受け付けなくなってしまい、502 BadGat…

ドメイン駆動を実践してみた

以前(http://yuutookun.hatenablog.com/entry/2015/04/04/190539)、ドメイン駆動に関して調べてみてから、ちょこちょこ勉強しつつ、ちょうど自分の新規プロジェクトが動き始めたので、反映させてみた感想をまとめてみました。 概要 ・採用したDDD手法 ・言…

チームをスケールさせる

社会的にはチームで働くということが多いです。 一般的には一人で働くより複数人で働くほうがスケールするからです。 しかし、チームとは単純な足し算ではなく、マネジメントコストがかかったり、コミュニケーションコストがかかったりするため、悪くなると…

csshxでマルチスクリーンの場合に裏側に隠れてしまう問題

みなさんはcsshxつかってますか??csshxの素晴らしさに関しては、以下で共有されてます。 人間とウェブの未来 - csshXが素晴らしすぎる件 csshXを使ってリモートホストの一括操作を行う | Developers.IO 複数のサーバーに ssh ログインして一括操作できる …

scalaのクエリビルダー「quill」を使ってみた

takezoeさんがquillを紹介していたので、 Scalaの新しいデータベースアクセスライブラリ「quill」を試してみた - たけぞう瀕死ブログ 実際にどんな感じで使えるのかを試してみました。http://getquill.io/getquill.io結論、Slick2系から置き換えるのはなかな…

早速githubのPRテンプレート機能を使ってみた。

Git

GithubのPRテンプレート機能が出たということで、試しに使ってみた。 何が追加されたか? GithubのIssueとPRのテンプレートができた。PRはデフォルトでこんな感じで表示される まあ普通のテンプレートですね。 どうやって使うのか? プロジェクトのルートデ…

Hadoop Spark Conference Japan 2016 に参加したときのメモ

Hadoop Spark Conference Japan 2016に参加したので、その聞いた内容をまとめました。 Spark MLlib Now and Beyond Spark自体はコントリビュータが多いプロダクトsparkでは、2つのの機械学習ライブラリがある。 spark.mllib: RDDというデータフレームを利用…

最短でsbtのコマンドを追加する方法

sbtと打つとREPLが起動し、runしたりtestが走らせられたり色んな挙動をさせられる。しかし、自分でコマンドを作ろうと調べてみると、案外出てこない。ということで最短でコマンド作成を紹介します。 最短でHelloという文字を出力させる Helloという文字列を…

scalaNLPに含まれているライブラリを調べてみる

Scalaにもnumpy, scipyのような数値計算ライブラリがあります。ScalaNLPというレポジトリで登録されています。 github.comでは、どんなものがあるか調べてみます。 breeze Breezeは、数値計算ライブラリです。 numpyのようなもので、行列計算などを操作する…

scalaからProcessを使って違うディレクトリでshを叩く

scalaでは他の言語でもできるように、コマンドを叩くことができます。実際に色んな方が、Processの仕方を紹介をしています。 scala.sys.process | Scalaの標準ライブラリを使ってみる | mwSoft Scala 2.9.0のscala.sys.processパッケージが便利過ぎる件につ…

The server quit without updating PID fileが発生して起動できない。

YosemiteからEICapitanにアップデートしたんですが、 その際にMySQLが起動できなくなったので、その解決法を共有します。【環境】 MacOSX 10.11.2 $ mysql --version mysql Ver 14.14 Distrib 5.6.26, for osx10.10 (x86_64) using EditLine wrapper (brew…

scala(breeze)で重回帰を実装

重回帰とは 重回帰は色んな所に転がっているので今更書かなくてもって感じですが、簡単に。 ある地域の住宅価格を求めたいとなった時に、ランダムで価格を当てるよりも何かの影響を受けて価格が変動すると考えるのが自然です。そこで上のような住宅価格は色…

2015年を振り返る

昨日は読んだ本を振り返りましたが、全体を振り返ってみます。今年は、Scalaを本格的に触った年でもあり、Angularを触った年でもありました。 また、トレーナーとしての経験も多く積みました。 1〜5月 前年からのプロジェクトを引き続き行っていました。 …

2015年に読んだ本を振り返る

以下サイトを見てまとめて記録として残しておくのはいいなぁと思ったので、自分が読んだ本に関してもまとめてみます。 blog.kentarok.org自分は読書メーターを利用して読書記録をつけているので、以下を見てもらえれば把握できるかと思います。 bookmeter.co…

slickのcase classをつくるのがめんどくさかったので、スクリプトで作った

slickのcase classをつくるのがめんどかったので、SQLを投げればcase classとTableを生成するスクリプト作りました。 (すでにslick-code-generatorとかある。車輪の再発明。。) Schema code generation — Slick 2.0.0-RC1 documentation 作った経緯として…

新しいfirefoxのweb extensionsがChromeExtentionとの互換性そのままだった

今回、firefox dev conferenceに参加してきました。www.mozilla.jp そこで聞いてきた、webextensionsに関して試してみたので、ログっておきます。firefoxはアドオンの機能に関して、Chromeの拡張機能と同じ仕様を搭載することを発表しています。dev.mozilla.…

slickにおける動的にwhere句を作る

Slickにおける動的where句の作り方 現在最新は3系ですが環境としては、Slick2.1での書き方での紹介です。 Documentation | SlickSlickにおいて動的にwhere句を作るのは、案外Scalaを始めたばかりだとうまくいきません。以下の様なクラスに対して複数の検索を…

社内勉強会でDeepLearningの話をしました。

もともと自分が知りたかったということもあり、DeepLearningの話を社内勉強会で発表しました。そもそも機械学習自体を知らない人もいるので、入門的な機械学習とはなにか?から始めたのですが、 結局、中途半端に数式をいれたり削ったりしたために、結局わか…

MacのYosemiteからEI Capitanにアップデートした際のbrewの対応

特に問題なくアップデートできました。EI Captianから/usr/localを自分で作れなくなったので、EI Capitanからbrewのデフォルトである/usr/local/Cellarが使えません。 ただ、Yosemiteからの移行の場合は、すでに/usr/local/Cellarが作られているはずで、問題…

anyenvで入れたphpenvに対して、composerを使う

デフォルトではcomposerなどがホームディレクトリに入ってしまうので、 anyenvで入れたphpenvで切り替えた時に、対応ができません。anyenvの入れ方はyuutookun.hatenablog.com を参照してください。 ですので、別の入れ方をする必要があります。phpenv 環境…

anyenvでphpenvとかpyenvとかenv系をまとめて管理する

実行環境 OSX Yosemite phpenvが入らない phpのバージョンを管理するphpenvを入れようと brew install phpenv brew install php-build をしたところ、phpenvが動かなかった*1ために、anyenvを入れることにしました。anyenvはphpだけではなく、ruby, python, …

深層学習本の再帰型ネットワークの誤字

深層学習本を読んでいて間違いを見つけたのですが、問い合わせ先がわからないので、ここで共有したいと思います。Chapter7の再帰型ニューラルネットの7.6.2の「コネクショニスト時系列分類法」で に対する真のラベル の冗長表現を表すときに、 と記載してい…

ニューラルネットワークについてまとめてみた。

ニューラルネットワークについてあんまり勉強してなかったので、勉強がてらまとめてみました。 順伝搬型ネットワーク 解くべき問題として、以下3つがあげられます。 回帰 2値分類 多クラス分類 画像認識などは、1カテゴリ1クラスとして画像を多クラス分…

単層パーセプトロンをScalaで実装

久しぶりに実装してみました。 多分実装できていると思います。。実装に関してはPythonと同じ位簡単なんですが、 Scalaでやる場合は、データセットの読み込みとかランダムデータを作るのが結構めんどいんで、どうするのがいいのかってところが困りますね。以…

ScalaにおけるSeq, Option, Futureとmap,flatMap の扱い

Scalaにおける一つ目の関門は、forやmapを使ってOption型を操作することだと思います。そこで、forやOptionやFutureを理解しやすいようなイメージを共有したいと思います。 Scalaでのmap 「Scalaの型でのラッピングは同じ扱い」 これは何かというと、Seqであ…

今更ながらdockerを触ってみた

docker触ってみたんですが、めちゃくちゃ簡単ですね。今はさらに Kitematic っていうMacのGUI上でdockerの操作ができるものも出てました。今回やってみたのは、このKitematicではなく、 Boot2docker by boot2docker でdockerを起動してみました。*1 docker起…

flywayに関して発表しました!

今回はflywayに関して、発表しました。flywayとは、DBのマイグレーションツールです。マイグレーションツールというと、RailsのActiveRecordが一番有名かと思いますが、 言語を問わず、存在します。今回は、ScalaやJavaなどのJVMと親和性が高いflywayに関し…

Firefoxを使っていて、アドレスバーがグレーアウトする問題

Firefoxユーザなら見覚えがあるかもしれませんが、 以下のようにアドレスバーがグレーアウトしてしまう問題があります。 この問題が起こると何ができないかというと、アドレスバーにいれるとURLでの履歴検索ができなくなってしまいます。これの発生条件とし…

Firefoxで入れているプラグイン

Firefoxでつかっているプラグインを紹介します。 最近は、Chromeのほうが充実してて困ってます。。。1,Evernote WebClipper エバーノートをつかってるなら必須ですね。2,FireFTP FTPソフトを入れなくても、FTPがつかえるプラグインです。 昔使ってたので…

あなたは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でつなぎたいのですが…