なんとな~くしあわせ?の日記

ClojureとかAWSの設定とかをメモする技術ブログ

paizaオンラインハッカソン7 にScalaで挑戦

恋愛SLG: プログラミングで彼女をつくる|paizaオンラインハッカソン7 paiza.jp見てるだけで悲しくなる題名ですが、そういうのにあえて挑戦するのが私です。あー彼女欲しい。この先答え↓

C++のbindはちょっと面白そうだった

Stackoverflowにて面白そうな問題を発見。stackoverflow.comというのは、今の自分の課題として関数を関数に渡してその結果を受け取りたいというものがあったのだ。Scalaだと関数オブジェクト渡すか、ラムダ式渡す感じでかるーくやれるのだが。C++の場合、記…

wine-1.8 自力サポートメモ

Debian sidでwine-1.8が使えるようになったので早速更新してみた。 なんか突然音声が出なくなった 正確に言うとUSBのヘッドセットだけ認識されなくなった。winecfgを起動して出てくるウィンドウの内、「出力デバイス」、「音声出力デバイス」が選べなくなる…

StackでHeskellプロジェクトを作ってみる

Haskellプログラム開始3時間勢がAdvent Calendarを書いたよHaskell Advent Calendar 2015 23日目の @Hiroyuki-Nagata です. 前の人は @MasashiSalvador57fさん,次の人は @philoponさん です.qiita.com qiita.com何気にQiitaは始めて投稿したな。

正規表現を関数オブジェクトにしてandThenで連結してみる

関数オブジェクトと関数合成を使うとなんか便利になることもあるという記事のつもりScala Advent Calendar 2015 20日目の @Hiroyuki-Nagata です. 前の人は @gakuzzzzさん,次の人は @ishi_kuroさん です. www.adventar.org andThenを使ってみる Scalaには…

magitメモ

magit使ってるとたびたびハマる マニュアル Magit User Manual リモートのブランチがmasterにマージされたときにmagit上からブランチを削除できない magit-branch-manager からの b-k でブランチ消せるんですが、リモートでマージ済みだと消せないときがある…

Scalatraとnon-blocking APIについてメモ

Scalatraを少しだけお仕事で使ったのですが、よく考えたらその仕組みを知らないなあと思ったので復習を兼ねて記事を書いてみます。Scala Advent Calendar 2015 6日目の @Hiroyuki-Nagata です. 前の人は @xuwei_kさん,次の人は @dakatsukaさん です. www.…

すごいHaskell たのしく学ぼう 読解3

すごいHaskell延長戦です。 あまりHaskell自体を使う気はないので、概念だけ読み取って実際的な話は飛ばす。すごいHaskellたのしく学ぼう!作者: Miran Lipovaca出版社/メーカー: オーム社発売日: 2012/09/21メディア: Kindle版購入: 4人 クリック: 9回この…

第133回東京エリアDebian勉強会に参加した

2015年はScalaの年でした。10回ぶりぐらいにDebian勉強会に行った。eventdots.jpdotsは全然今まで知らなかったのですが、IT勉強会用の会場をかなり良心的に貸してくれる場所らしいです。渋谷のカラオケパセラの近くにあります。当日は隣で別のIT勉強会をやっ…

すごいHaskell たのしく学ぼう 読解2

はい、すごいHaskell後半戦です。 あまりHaskell自体を使う気はないので、概念だけ読み取って実際的な話は飛ばす(IO/モジュール)。すごいHaskellたのしく学ぼう!作者: Miran Lipovaca出版社/メーカー: オーム社発売日: 2012/09/21メディア: Kindle版購入:…

すごいHaskell たのしく学ぼう 読解1

動機 Java, C++ → Scalaとやってきて、気づいたことはJavaからScalaに受け継がれたのはJVMとしての便利さだけであり、関数型言語的要素はむしろHaskellから受け継がれているということだ。さっそく調査班はYodobashiで以下を購入した。すごいHaskellたのしく…

SQLもプログラミング言語…っぽい3

SQL

テーブルの自己結合 以下のようなテーブルがあり CREATE TABLE name("pkey" text, "number" int, "family_name" text, "name" text); INSERT INTO name("pkey", "number", "family_name", "name") VALUES (00001, 12345, "山田", "太郎"); INSERT INTO name(…

キャメルケースやスネークケースの相互変換

これをJavaやScala、Groovyでやる場合、guavaが使いやすいようだ。最初正規表現でやろうとしたけど、キャプチャした文字列がうまく変換できない(めんどくさい)のでライブラリを使用した。stackoverflow.com import com.google.common.base.CaseFormat._ LO…

Eclipse Kepler/Junoでプロジェクトをビルドした時 "JPA Java Change Event Handler" が永久に止まらない

そんな経験、あなたにもありませんか? どうやらバグらしいです。 Java Persistence APIとは? JSR*1によればThe Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 338 The Java Persistence API is the Java API for…

MacでEmacs用にJAVA_HOME設定した

たぶん他にもいい方法はありそうだが ;; JAVA_HOME (setenv "JAVA_HOME" (replace-regexp-in-string "\n$" "" (shell-command-to-string "/usr/libexec/java_home -v 1.7"))) Emacs: Set Environment Variables within Emacsqiita.comstackoverflow.com

Grape動かそうとしたらmavenリポジトリからのダウンロードに失敗していた話

エラーログ ・plexus-utils;3.0.8と2.0.7だけが何故か落ちてこない DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Work failed: java.lang.RuntimeException: Error grabbing Grapes -- [download failed: org.codehaus.plexus#plexus-ut…

Emacsでスネークケースをキャメルケースに一括変換する

まず、 M-x replace-regxp を実行、変換対象に _\([a-z]\) → \,(upcase \1) を入れる。検索してたら見つけた Emacs: Find & Replace Tutorial

Scala Refactoring

scala-refactoring Scala RefactoringScalaのソースコードをリファクタリングするためのライブラリ。もちろんリファクタリングの内容を考えてくれるのではなく、一定の処理を自動化する。eclipseやIntelliJ IDEAなどのIDEで実行されるような処理を提供するラ…

最近のchefとかknifeとか

ネット上にはいろいろな情報が流れているが、現在のchef $ chef --version Chef Development Kit Version: 0.7.0 chef-client version: 12.4.1 berks version: 3.2.4 kitchen version: 1.4.2の場合、cookbookを作る際は $ chef generate cookbook <NAME>で始めたほ</name>…

D言語でstatic constな関数を定義したかった

以下のようなコードを定義すると、新しいgdcではエラーとなる コード [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッmelpon.org import std.stdio; void main() { const string data = test_for_const(); pragma(msg, data); } static const string test_for_const() { retu…

最近読んだ漫画で面白かったやつ

Kindleを使い始めてから漫画をインスタントに消費している気がする… ゴールデンカムイ ゴールデンカムイ 1 (ヤングジャンプコミックス)作者: 野田サトル出版社/メーカー: 集英社発売日: 2015/01/19メディア: コミックこの商品を含むブログ (11件) を見る日露…

ScalaのSomeを使ってJavaのメソッドを呼び出すとき

正しい値・例外・nullという3値が返る可能性があるとき scala.util.control.Exception.allCatch を使えばいいのでは、と思ったが allCatch.opt { 式 } と書くと、式がnullの場合Some(null)というバッドな感じになる(なぜ?)。 allCatch.optを使った時の3…

Androidがハッキングされて遠隔操作された

表題通り、かなりびっくりしたので記録を残しておく Androidがおかしな挙動をする 一度目の怪現象 (1)chromeが勝手に操作される 7月31日(金)9時ごろ、ウォーキング中にchromeが勝手に起動して以下のような履歴が残る (2)LINEで勝手にメッセージ…

関数型Scalaの集いに行ってきました

関数型Scalaの集い (2015/07/25 13:00〜)connpass.com 感想 始めてドワンゴに行きました(会場はドワンゴ セミナールーム 歌舞伎座タワー 14F)。 以前最後に出席したScala関連の勉強会が、2012-07-21なので、3年ぶりぐらいにそれ関連の勉強会に行ったことに…

AWSの罠

設定を事前にしておかないと、インスタンス再起動時にホスト名が変わってしまう…qiita.com上記からの引用 cloud-init用の事前環境設定EC2インスタンスコピー時に環境設定が変わってしまう問題を防ぐために以下を行います。 ・vi /etc/cloud/cloud.cfg ・pres…

Chefで実行結果が失敗だとしても無視してレシピを実行する方法

バッドプラクティスです ・「|| true」 とレシピに記述すれば必ず実行結果がtrueになるので、エラーをガン無視できます execute "start_foo" do command "killall java || true && service tomcat start end

ちょっとしたRubyスクリプトで日付の加算減算

get next/previous month from a Time objectstackoverflow.comちょっとしたRubyスクリプトで日付の加算減算をやろうとしたとき、何かとRailsを使わされそうになるようだ。自分的にはベストアンサーはこれ。これなら特にimportするライブラリもない。ruby - …

GnuPG 鍵を作る

鍵の生成 恥ずかしいことに以前作っていたGPGの鍵がなくなってしまったので新たに作りなおすことにした。参考にするサイトは以下: GnuPG 鍵の作り方 - keysignparty-ja PGP/GPG gpgチートシート 1分でわかるPGP - 村川猛彦 登録メールアドレスの変更 GnuPG …

Play framework 2.x でユニットテストした

パッケージごとに機能を整理 org.specs2.mutable.Specification ・Spec2を使う、まあコピペのコピペなんすけど ・Spec2のユニットテストは自然言語っぽいDSL(?)で書ける play.api.test.Helpers ・TestServer(3333)でほんとにテスト用のアプリケーションサ…

ensimeをscalaのコーディングで実戦投入していく

ensimeとは github.com What is ENSIME?ENSIME is the ENhanced Scala Interaction Mode for Emacs. It provides many features that are commonly found only in IDEs, such as live error-checking, symbol inspection, package/type browsing, and basic …

foltia-bootstrap

だんだんいい感じになってきた。 foltiaの初期設定で行う物理チャンネルの指定をGUI化した。 使った技術は PHP/jQuery/インチキAjax/bootstrap

Chefを使用してfoltiaをインストールした

前々から準備していたfoltiaのchefを使ったインストールが出来上がった。github.com これは何? サーバー設定ツール「Chef」を使用してアニメ録画用ソフトウェアfoltiaのサーバへのインストールを自動で行います 使い方 Vagrantでテストする場合 virtualbox…

PXEネットワークブートでLinuxをインストールする

もういちいちインストールごとにCDにLinuxのイメージ焼きたくないでござる! じゃあPXEブートやろうぜ 何ができるの? ・CDにLinuxを焼かずにインストールできる ・CD/DVDドライブがないマシンにLinuxがインストールできる 要件 ・WANにつながったネットワー…

vagrant-tramp が地味に嬉しいという話

vagrant-trampというelispがある。trampはemacsでリモートのファイルをまるでローカルであつかっているかのように操作できるelispであるが、vagrant-trampはそのvagrant用である。dougm/vagrant-trampgithub.comインストールは例のごとくpackage.elから取っ…

Chef + Vagrant + Berkshelf の連携

前回の続き、Chef + Vagrant を使ってみる - なんとな~くしあわせ?の日記nantonaku-shiawase.hatenablog.com ツールについての概要 ・chefはcookbookというスクリプトの集合を使って、そのスクリプトの通りにソフトウェアをインストールする ・cookbookは…

アジャイルサムライを読んだ

アジャイルサムライ――達人開発者への道作者: Jonathan Rasmusson出版社/メーカー: オーム社発売日: 2014/06/25メディア: Kindle版この商品を含むブログ (3件) を見る 感想 ・読みやすい! 目次 ・これは今まで思っていたことと違うなあ、という部分をかいつ…

PythonにおけるDBドライバごとのプレースホルダの違いなど

最近少しPythonなどに触れている。そこでぶつかった話 psycopg2 Postgresql用のPythonのDB用ドライバ実装、psycopg2を使うと以下のような見た目のコードになる Basic module usage — Psycopg 2.6 documentation >>> cur.execute( ... """INSERT INTO some_ta…

Chef + Vagrant を使ってみる

目的 ・ 環境構築自動化 ・ お勉強 ・ この記事はメモ 目標 ・ foltia(Linuxによるアニメ等の録画サーバ)のインストール自動化 ツールについての概要 ・chef はLinuxなどのOSにフレームワークや環境を作るためのツール ・vagrant はvirtualbox等の仮想環境…

Git rebase --onto --root で過去の歴史を改変する

あるリポジトリの最初のコミット以前に歴史を継ぎ足したい、という需要があるかもしれません。 Gitならできます、それ。さっそくやってみましょう。 リポジトリAの歴史 新しい歴史を始めたリポジトリである これをNewDealリポジトリと呼ぶことにする、コミッ…

rEFItでMac OS XとLinuxをデュアルブートさせた

以下のサイトを参考にしてDebian勉強会中に作業した rEFItを使ったマルチブート【Mac】 - TACATAKATACA BLOG rEFItを使ったマルチブート【Mac】 - TACATAKATACA BLOGMacBook に OSX と CentOS デュアルブート成功! MacBook に OSX と CentOS デュアルブート…

第123回 東京エリアDebian勉強会に参加した

2014年はデスマーチの年でしたが、今年は多分違うと思う。久しぶりにDebian勉強会に行った。東京エリアDebian勉強会(2015/2/21(土)) - connpass LT内容など GNU/kFreeBSD における Jail 構築を試してみた @dictoss氏 資料等はconnpassに上がっているようで…

最近読んだ漫画とかで楽しかったやつ

ネットがいまだに開通しないしプログラミングもしにくいので最近読んだ漫画とか紹介する。 山賊ダイアリー 山賊ダイアリー(1) (イブニングKC)作者: 岡本健太郎出版社/メーカー: 講談社発売日: 2011/12/22メディア: コミック購入: 9人 クリック: 105回この商…

システム開発名言

また人月の神話から、 孫引きになってしまうので元の文章を載せたかったが見つからない。 In my experience most of the complexities which are encountered in systems work are symptoms of organizational malfunctions. Trying to model this reality w…

ウォーターフォール型の開発の問題点 〜人月の神話〜

最近本を読む時間ができたので、人月の神話を何回も読みなおしている。できれば、要約をブログで公開できたらと思い準備している。人月の神話【新装版】作者: Jr Frederick P. Brooks,滝沢徹,牧野祐子,富澤昇出版社/メーカー: 丸善出版発売日: 2014/04/22メ…

JaneClone 1.1.5をリリースした

表題どおり、今回の更新は主にバグ修正がメイン。リアルが忙しく、開発に対するモチベーションが減少していたが、 協力者が増えた CI環境を構築できた ことは嬉しかった アプリケーションの配布サイトも更新してみた、ダウンロードは以下から JaneClone by H…

openssl-1.0.2をLinuxからMinGW64向けにクロスコンパイルした

表題どおり 昔のバージョンでもいい気がしたけど、やっぱ脆弱性あると嫌だねーってことで MinGW64 $ wget https://www.openssl.org/source/openssl-1.0.2.tar.gz $ tar xvf openssl-1.0.2.tar.gz $ cd openssl-1.0.2 $ CROSS_COMPILE=x86_64-w64-mingw32- ./…

configureでいろいろ設定する

autotoolsのちょっとしたまとめを書く autotoolsの導入 全く初めての状態からの導入は以下の記事から Autoconf, Automakeを使う - なんとな~くしあわせ?の日記 Autoconf, Automakeを使う - なんとな~くしあわせ?の日記ライセンスについては以下から auto…

libxml2でHTMLを整形する

だいぶ前にlibxml2を使ってHTMLをパースした。libxmlでHTMLParserを使う - なんとな~くしあわせ?の日記 libxmlでHTMLParserを使う - なんとな~くしあわせ?の日記libxml2のAPIを見ていると、HTMLの整形も出来るらしいのでやってみた。 使用したAPI htmlDo…

wine-1.6 自力サポートメモ

wineで困った時、 自力解決したこと一覧 なんか突然音声が出なくなった この辺から Debianと音声出力デバイス - なんとな~くしあわせ?の日記 音声の再生がクソ早いんですけど…? 同様の問題が以下に ワイWineの音声の再生がメチャ早くて恐ろしくチリチリ言…

TravisとAppVeyorでCIをやってみる

CIをやってみよう 今回もまったく趣味の世界な話 GitHubに登録しているソースコードをCIのサービスに登録して毎回ビルドしてもらう。 CIのホスティングサービス 実務だとJenkinsなどを使ってプロジェクトで作ったソースコードをビルドしたり、エラーが出たら…