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

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

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

AOJ - ITP1_7_B を解いてみた

偉そうに書いてるが、これは序の口の問題である。。。 AOJ - ITP1_7_B 解法1 algorithm - Finding all possible combinations of numbers to reach a given sum - Stack Overflow アルゴリズム 処理フロー 結果 解法2 Given an array A[] and a number x, …

Bash/Octaveで順列・組み合わせ

Bashで計算しようとしたのだが、結論から言うと遅すぎて使えない。Octaveで計算すると早かったのでそっちを推奨する。 Bash 順列 (nPr) bash - Generate combinations of elements with echo - Stack Overflow 参考になったが、これはCombinationではなくPer…

Javaで簡単な組み合わせの総数 nCr を求めてみる

Aizu Online Judgeをやっていて、求められんかな?と思ったので。 速さとかは遅いと思う。 実働してるやつ [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ 参考 stackoverflow.com ソースコード import java.util.ArrayList; import java.util.Arrays; import java.util.Lis…

Monger + mLab + ClojureでMongoDBに触る

MongoDBはいわゆるNoSQLで、きっちり行と列を定めなければいけないRDBと違い、JSONをそのままぶっこめる。 今趣味で触っているプログラムに使おうと思い、Mongerをクライアントライブラリとして使用してみた。 準備編 Monger ClojureのMongoDBクライアント側…

leiningenで作るuberjarがmavenでできたらいいと思ったら出来なかった話

Leiningenでuberjarを作る Clojureの日本語ガイドにあるように -> Part7: どのようにして Heroku へデプロイするか Leiningenから lein uberjar と打てばいわゆるFAT Jarができる。これは依存ライブラリを全て含んでいるのでJavaさえあれば実行できる。 Mave…

Spring Session

Qiitaに記事を書きました。qiita.com

Clojureを使ってみる

たまたまClojureを触ってみて、なんだか良さそうだと感じたのでいろいろ書き散らしている。 環境構築が比較的容易で、WEBアプリが作りやすそうなのがよかった。あとScalaほど四角四面ではなく、Groovyほど壊れにくい*1 環境構築 yoppi.hatenablog.comまずこ…

x86 汎用命令 - ModR/M の解説

ModR/Mについては前もちょっと記事を書いたけど、まだちょっと中途半端だったのでもう一度まとめます。nantonaku-shiawase.hatenablog.com ModR/Mの実際の例 ModR/Mの構造 ModR/Mバイトの構造 '''/r'''および'''/7'''の意味 regとr/mで使われるレジスタコー…

Let's Encryptを手動更新

blog.apar.jpだいたいここの指示にしたがえばよしこんなエラーが出た。 Cleaning up challenges Attempting to renew cert from /etc/letsencrypt/renewal/freestylewiki.xyz.conf produced an unexpected error: At least one of the required ports is alr…

Heroku + Plack + plenvを試す

ある目的のためにPlackをHerokuに上げたいと思っていた。で、試したので手順を書いておく。 plack-testing 今回試したリポジトリ github.com 手順 初期設定 plenv Rubyで言うところのrbenv、結構古いPerlじゃないと依存関係がぶっ壊れる $ git clone git://g…

ls: unparsable value for LS_COLORS environment variable が出た時

環境変数のパースでトチると出るらしいBug #1038914 “lucid to precise: invalid $LS_COLORS after upgrade...” : Bugs : coreutils package : Ubuntuリンク先にあるように、ワークアラウンドとしては eval "$(dircolors -b)" を実行すればいいようだ。以下…

CSSで作るモーダルなダイアログの紹介

モーダルダイアログ。それはWEB開発では避けられない小技。普段なにげなく使われてるWEBシステムでも、たぶん「削除」や「決定」前には出てくるのではないでしょうか。でもこれホント面倒なんです、同業者しかわかってくれないだろうなあ… 昔だとどうしたっ…

HTTP GETの容量制限とか

Is there a limit to the length of a GET request? stackoverflow.comやはりStackOverflowは有能すぎる。ぼくの推しアンサーはこれ http://stackoverflow.com/a/266341/2565527 Not in the RFC, no, but there are practical limits. (RFC内には指定は無い…

Emacsの対Ruby用装備を整える

去年の前半はScalaでわいわいやっていて、Emacsもensime前提で設定していたのですが去年の暮れから今年にかけてRubyを書かなくてはいけなくなったのでRuby用のelispをそろえていきます。 Ruby用elisp しかしアレです。Emacs+Java/Scalaだと情報が少ないので…

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

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

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

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

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回この…

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

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

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

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

Scala Refactoring

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

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…

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

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

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

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

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

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

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

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

JaneClone 1.1.5をリリースした

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

configureでいろいろ設定する

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

libxml2でHTMLを整形する

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

TravisとAppVeyorでCIをやってみる

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

C言語でダブルポインタ

C言語のポインタを使ってみる とは言ってもC++なのだが、 ポインタはメモリのある位置を指し示す事ができる。 適当に文字列や配列を設定してその先頭要素を指定したら、ポインタは配列の中身を動き回れる。 #include <cstdio> #include <cstdlib> int main() { const char* ar</cstdlib></cstdio>…

msys2 + pacmanをproxy環境で使う

msys2の設定 x86_64ネイティブなmsysがリリースされているので、社内環境でも使用できるようにしてみた。以下、Qiitaの引用 Windowsでgccなどを利用できるMSYS2の環境設定など Windowsでgccなどを利用できるMSYS2の環境設定など - Qiita Windowsでgccなどを…

Rubyる

引き続きRubyを使ってみる、また他の言語とくらべてみる リストを使う処理 Ruby書いてると他の言語でmain関数を忘れてしまう… Ruby [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ list = Array.new() list.push("a") list.push("b") list.push("c") list.each{|str| puts(s…

不思議なRuby

Rubyを練習がてら使おうとしているのだが不思議な現象に出くわした ["Ruby" "is" "wonder" "?"].each { |str| print(str, "\n") } [ 0,1,'A','B'].each { |x| puts x } これを実行すると以下の出力が得られる Rubyiswonder? 0 1 A B[Wandbox]三へ( へ՞ਊ ՞)へ…

Javaの拡張for文でConcurrentModificationException

拡張for文を多用した結果wwwwwww 反省のための記事 やろうとしたこと for文の中でコレクションを回し条件に一致したものを削除・更新したい 拡張for文ってJava SE 1.5でサポートされているので大して新しくないですね 結果 バグった 原因 スレッドセーフじゃ…

MinGW-w64を効率よくビルドするための冴えた方法

MinGW-w64-build-scripts 以前MinGW-w64環境を作成した際に紹介したrubenvbのビルド環境が以下のGitHubで公開されているので、少々改造を施して動かせるようにした。本家 rubenvb/MinGW-w64-build-scripts · GitHub私のfork Hiroyuki-Nagata/MinGW-w64-build…

wineでMinGW + msysを動かす - 3

以前、Linux上でminttyを動かすところまで行ったwineでMinGW + msysを動かす - 2 - なんとな~くしあわせ?の日記今度はこのままWIN32プログラミングまで手を伸ばしてみる Wineのバージョンは1.7.16、Debian 7.4 Wheezyでテスト。MinGW + msys + minttyの起…

o2onのUNIX移植進捗

表題通り、最近はちょっとo2onの移植がマイブーム。当初ソースを見た時は一瞬で諦めていたのだが、なんかわからんけどだいぶC++読み書きできるようになってきた。comskipの移植とかもやったしやってやれないことはない。 移植の目的 ・P2Pアプリケーションに…

イベント処理メモ

やりたいこと:WIN32アプリケーションのクロスプラットフォームな移植 WIN32 thread的処理をPOSIX threadで peventが便利じゃぞ neosmart/pevents · GitHubたぶんこんな感じ? あとで追記… _beginthreadex #ifdef _WIN32 /** win32 thread */ OtakuHandle = …

第 83 回 関西 Debian 勉強会に参加した

表題通り、関西Debian勉強会に参加してきた。 ちなみに今月で私がプログラミング始めて丸3年、Debian使いだして丸1年になる(だからどうというわけではないが)。Debian使い始めたのはつい最近な気がしていたがもう1年経ったらしい… メインPCをDebianに移…

comskipのUNIX化

CMカットの自動化を求めて 以前comskipのオプションをうまく使えば、CMカットが楽勝だと聞いていろいろ試してみた。関連記事 foltiaで全自動CMカットを実現しよう :宗子時空 CMスキップ - だえもんだもん一応自前の環境、Debian GNU/Linuxでビルドできるよう…

C言語のお勉強

comskipをいじっていたらいろいろC言語の課題にぶつかったのでメモ書き 文法とかはどうでもいいんだ、仕様を実装できる仕組みを知りたいのだ。 プリプロセッサで処理分け #ifdef〜#endifに以下を定義してコードを分岐させる _WIN32 … MSW, 32 ビット プラッ…

UNIX向けソフトウェアをMinGWに移植する際のテクニック

UNIX向けソフトウェアをMinGWに移植する 最近MinGWのクロスコンパイラを使ってcurlppとspidermonkeyのビルドができるようになった。これはつまり、もともとLinux/Mac/MSVC向けでしか動かなかったものをMinGWでビルドできるようにしたということである。その…

git clone時にエラーとなる

git cloneに失敗する wxWidgetsのリポジトリをcloneしようとしたら以下の様なメッセージが表示されて失敗した。 $git clone <link> Cloning into 'name_project'... Password for '<link>': remote: Counting objects: 100% (659/659), done. error: RPC failed; result=</link></link>…

UNIXコマンドで作業を効率化

三種のコマンド:awk, sed, grep および find, xargs, tr, sort, uniq etc. etc. そんなコマンドを皆さん使いこなしていることだろうと思う。 sedでなんでもやる sedで検索してたら恐ろしいものを見つけた。sedで他のUNIXコマンドを代用するというものだ。 S…

wxWidgets-2.9.5 msw

ビルドしようとしたら Win9.x系のコードがundefined referenceになってた...ほげー環境:Debian Wheezy コンパイラ: $ /usr/x86_64-w64-mingw32/bin/gcc --version gcc (rubenvb-4.7.2-release) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. T…

列挙型の管理(C++)

定義した列挙型の数が多くて困る wxWidgetsでソースを書いていると、制御用の列挙型の定義がどんどん多くなっていく。列挙型を定義することで、プログラム自体は書きやすくなるのですが…あと列挙型を文字列として取り出したくなってきた。 EnumString.h 最低…

JaneClone開発状況

Macサポートできそう Macクソだ、Macクソだと言いつつもバグを潰しているうちにJaneCloneの基本的な機能が使えるようになった。フォントをMonaに変更したらこの通り。ID抽出がバグってるが気にしない AAも綺麗に表示された、画像の人物は三尋木プロ あとはど…

wxWidgetsでのスレッド間通信

発端 スレッド間通信なんてけったいなものは、普通趣味のプログラミングでは使わない(たぶん) 使おうと思ったのは純粋にそれが必要になったからだ。 やりたかったこと アプリケーションにログを出したかった。 古くはIEのステータスバーに出るログのように…

Importing inline functions in MinGW

MinGWでクロスコンパイルしようとして壁にぶつかったので翻訳エラーメッセージは warning: '~~~' redeclared without dllimport attributec++ - Importing inline functions in MinGW - Stack Overflow 質問者 I'm using a shared library that defines inli…