limitusus’s diary

主に技術のことを書きます

AWSのコストを取得するgemを調べた

AWSは料金表を提供していますが、JSONを取得してごにょごにょ…と自分でやるのは何か違う気がします。どうせgemくらい誰か作ってるだろう、ということで少し調べてみました。 tl;dr 今のところamazon-pricingを使うか、やっぱり自前で書くのがいいのではない…

RDS logをRubyでダウンロード

AuroraのAudit log検証をしていて、「これ定期的にS3にアップロードしないと消えるよね?」って話になったので、まずはRDSから取ってくるとこからだね…ってことでやってみることにしました。 候補手段 方法はいくつかあるんですが、 1. rds-cliを使う もうde…

terraformのprovider aliasを使うときのtips

最近よくterraformで構成管理とか構築をやってて、ハマったのでメモ。 やろうとしたこと AWS ap-northeast-1で主な構成を組んでいて、CloudFrontでの静的コンテンツ配信をhttpsで行いたい。このときACMを利用するが、証明書はus-east-1に配置する必要がある…

はてなブログに移行しました

ふと思い立ったのではてなダイアリーからはてなブログへと移行を行いました。 既存記事は移行ツールにより全てリダイレクトされているはず… 一番人気の Server::Starterに対応するとはどういうことか - limitusus’s diary も正常に移行されています。

El CapitanでUSB-Serialを使う

OSX

その手の人には常識かもしれないんですが、OS X 10.10あたりからドライバ署名されていないもののインストールができなくなってますね。 手元にあるUSB-CVRS9はLinuxで問題なく動いていたので気付くのが遅れてしまいました。サンワサプライ USB-RS232Cコンバ…

EBSがattachされたらSlackに通知する仕組みを作った

AWS Lambdaを以前から使ってみたいなあと思っていたのですが、「何かの操作にhookする」というので試してみました。今回は「任意のEBS VolumeがEC2 instanceにattachされたら(AttachVolume)Slackのwebhookを叩いて通知する」というのをやってみました。Pytho…

ISUCON5 予選通過してきた

9/26,9/27で開催されたISUCON5の予選に9/27分で参加して通過してきました。3人チームで出場しましたが、自分の視点での時系列でまとめておこうと思います。 (書いてある内容は自分の作業だけではありません) 概要 spec: n1-highcpu-4 (4vCPU, 3.5GB RAM) 1台…

YAPC::Asia 2015レポ

去る8/20,8/21でYAPC::Asia 2015に行ってきました。2012,2013ではstaff参加し、2014,2015は普通の参加者です。 今年は最後のYAPC::Asiaということで、(個人スポンサーチケットは買えなかったけど)参加してきました。 本当はスタッフ参加できればよかったのだ…

うるう秒をテストしたら仮想インタフェースが落ちた話

今月末はうるう秒が予定されていますね。 http://jjy.nict.go.jp/news/leaps2015.htmlこれについては様々なところで「何が影響を受ける?」「どう対応する?」などが書かれています。今回はその中でも、「事前に試験環境でうるう秒を入れてみる」ことについ…

Perlからshared objectの関数を呼び出す

今回のお題 foo.so に含まれている関数 void func(void) をPerlから呼び出す。 プロトタイプ宣言の通り、引数は取らないし戻り値もない(あるいは見ない)。 やりかたはいくつかあって、 普通ならXSモジュールを書いて対応する。 ただこのシンプルな目的のた…

Perlのglobはもうshellを呼ばない

もう10年以上前の話だが、メモ。IPAのセキュア・プログラミング講座にある4-2. Perl の危険な関数には以下の記載がある。 便利な<> 構文,glob関数であるが,実は内部的にシェルを呼び出している。そのためリスト7の1行目のような文字列を渡した場合,パス…

PerlでGoogle Calendar APIを勉強

アラートのメール通知がきたらGoogle Calendarに記入しておくとあとで振り返るのが簡単なんじゃないかなーと思ったので、まずはお勉強から。 要素 できるようになってから振り返ると、以下の要素を理解する必要があった。 REST OAuth 2.0 Application Creden…

PerlでTwitter API SSL化に対応するたった1行

手元でTwitterの古いpostを削除するスクリプトをcron実行してるのですが、Twitter APIってSSLのみ対応になったのをすっかり放置してしまっていました。 cron実行に失敗してメール通知が来たので1週間くらい経ってようやく対応。Net::Twitterを使っているので…

Parallel::Fork::BossWorkerAsyncがいい感じ

先日 id:hirose31 と 並列処理はParallel::ForkManagerとかParallel::Preforkが定番だけど、もうちょっと効率よくやりたいこともある P::ForkManagerはタスクごとにforkするので負荷の分散は綺麗にできるが、タスクの数だけforkが発生して効率がよくない P::…

Server::Starterに対応するとはどういうことか

StarletやStarmanと組み合わせてよく使われているServer::Starterですが、普段気にしないような部分を読む機会があったのでメモ。Server::Starterは --port (TCP) や --path (Unix Domain Socket) を渡すとこれでlisten(2)して起動するworkerに引き渡してく…

YAPC::Asia 2013 Staff Report

去年の YAPC::Asia 2012にStaff参加してきた - Limitの日記 に引き続き、今年も YAPC::Asia 2013 のStaffとして参加してきました。 今年も「ブログを書くまでがYAPC::Asia」ということで、書きます。今年は僭越ながら多目的教室2という部屋のリーダーを仰せ…

MacBook Air 11インチ用ケース

4年くらい前に800円くらいで買ったケースがだいぶボロボロになってしまったので、いっそのこと、ということで新しいのを買うことに。 近所の電器店で眺めて、収まりのよさそうなやつを選択。いい感じ。だが、結果的にはAmazonで買った方が安かったじゃないか…

MacのDockが暴走した

最近メインで使っているのはMacbook Air (Lion) なのだけど、数日前から妙に動きが重くなり、ファンもうるさくなったのでちょっと調べてみた。 まずhtopで長めてみると Dock がCPU 100%食っていた。原因はまずこれだ。 減少としては17秒くらいに1回DockがSIG…

YAPC::Asia 2012にStaff参加してきた

日本で最も大きなPerlの会議、YAPC::Asia 2012に参加してきました。 去年は学生チケットで参加させていただいたのですが、今年はボランティアスタッフとして。ということで、スタッフをやりながら印象に残った発表などを書いていきます。 前夜祭の日は参加で…

Githubの証明書問題をまっとうに解決する

github SSL certificate problem - A Life Less Ordinary と同じ問題に遭遇してしまったので、まっとうな解決策を探ってみたところ、無事に解決できたのだが、どうやら同じようなことをしているページが見つからなかったので書いておく。 error: SSL certifi…

Twitterの過去履歴を消去するtwdelを書いた

今まで数多くのTwitterクライアントアプリが書かれてきて、誰もが様々な方法で手軽にPOSTできるようになっている。 一方、過去の自分の歴史を抹消したいと考える需要もあるにもかかわらず、その需要に応えるアプリケーションは見当たらない。そこで、今回 tw…

libsqlite3.so を差し替える

ちょっと聞かれたので調べてみた。 目的 オリジナル libsqlite3.so.0 を実装したので、これを /module/libsqlite3.so.0 とし、 Python から使えるようにしたい。 Python で import sqlite3とすると最終的に /usr/lib/python2.7/lib-dynload/_sqlite3.so が読…

iccをインストールした記録

Intel C コンパイラって買わないと使えないのかと思ってたけど、非商用ならば無料でインストールできることがわかったので実際にやってみた。 ダウンロードまで これは 2011 年 11 月 18 日の操作記録だが、サイト更新に伴いページ構成が変更されたりリンク…

perlbrewがぶっ壊れた話

ちょっと事情があってperl5.6.2をperlbrewでインストールしたらperlbrewがぶっ壊れてしまい、そんな古いものでトラブったレポートなんて書かれてなかったのでその話。

lookupDictionary.js を直してみた

とっても便利な Vimperator プラグインの lookupDictionary.js。 どうやら ALC 側で XPath が変更されてしまったらしく結果が帰ってこなくなってしまったため、簡単に修正。 Index: lookupDictionary.js ==================================================…

Python で signal と threading を両立してみた

経緯 最近書いているプログラムで無限ループするワーカースレッドを立てまくるものがあって, それを signal で安全に終了させる手段が知りたかった. 課題プログラム 以下のようなプログラムがあります. import threading import time def loopfunc(event): p…

Embarrassingly Parallel なプログラムを pthread で並列化してみた

C

やったこと 後輩の授業で Embarrassingly Parallel なプログラムを並列化するという課題が出ていたので、ちょっとやってみました。実際に使ったコードはgithubで公開中です。公開は課題の締切後に行いました。 課題1 1次元関数の数値積分の区間分割による並…

「事業仕分けに対する緊急声明」を聞いてきた

大学にいる人間として(, そして一利害関係者として), ちょっと真面目に生意気なことを書いてみます. 何があったのか 大学でノーベル賞・フィールズ賞受賞者による事業仕分けに対する緊急声明と 科学技術予算をめぐる緊急討論会 - お知らせ - 東京大学 大学院…

Goをビルドしてみた

Google が Go という言語処理系をリリースしたので、さっそくビルドしてみました。 環境 Debian GNU/Linux 2.6.26-2-amd64 #1 SMP Wed Aug 19 22:33:18 UTC 2009 x86_64 GNU/Linux 手順 環境変数の設定 Go では環境変数をいくつか設定しておく必要があります…

基本情報技術者の資格持ってたって無駄

「基本情報持ってます」とか言ってる人は大抵役に立たない可能性を秘めている。頭でっかちな知識だけが先行していて実感がないから。 実際にあった例 基本情報を持っている人 DBを編集したんだけど反映されない。なぜ? 原因はコミットしてなかったこと。基…

Google Document にファイルをアップロードするバッチを作ってみた

GitHub に上げたので最新ソースは GitHub からどうぞhttp://github.com/limitusus/google_docs_up/ Motivation 普段研究室のサーバにログインして作業することが多いので、メールもサーバ上で Emacs を立ち上げ、その上で Mew を使ってメールを読んでいます…

ドワンゴインターン2008/2009

注意:ここで書かれているのは基本的にドワンゴインターン2008の内容です。去年 ドワンゴインターン行ってきた - Limitの日記 で書いた通り、去年のドワンゴインターン2008に参加したわけだけど、何の因果かインターン2009の最終発表会を見学させていただく…

JauntyにアップグレードしたらGnomeのメニューが動作しなくなった

この間使っているUbuntuをHardyからIntrepid、さらにJauntyへとアップグレードした。 それ自体は、アップグレード中にログアウトしていまいXが起動不能となり冷や汗かきながら復旧したことを除いて何の問題もなくうまくいったように見えた。ところが問題は見…

ghcまわりのパッケージが壊れたらしい

どうもaptでいろいろやってるうちにパッケージを壊してしまったらしい。 % sudo apt-get update % sudo apt-get upgrade などすると最後にこんなメッセージを吐いて終了してしまう libghc6-http-dev (30010004-2) を設定しています ... ghc-pkg: cannot find…

Rakudo Perl6をソースからビルドしてみた

Perl使いとしてはやはりPerl6のビルドくらいはやっておかないとということでやってみた。 環境 OS Ubuntu 8.10 Intrepid Ibex Server Parrotのインストール % svn co https://svn.parrot.org/parrot/trunk parrot % cd parrot % perl Configure.pl --prefix=…

VirtualBoxをインストールした

以前にVMware Server 2をインストールして(VMware Server 2を入れてみた)、この記事は割といろんなところで役にたったのか分かりませんがリンクされていました。 今回は別に人柱というわけではないですが、Ubuntu 8.04(Hardy)で手軽に使えるもう1つの仮想…

Ackermann関数を書いてみた

授業でAckermann関数が出てきて、それが関数型っぽい感じだったので、ちょこっとだけ勉強したHaskellで書いてみました。 ソースは追記。経験がないのでひどいコードかもしれませんがご容赦>< まだHaskellのデータ構造は詳しく勉強していないので、表を作る…

卒論発表見てきたよ

先輩の卒論審査会・発表会を見てきました。先輩が卒論で何をやっていたのか、指導教員からどのような指導を受けていたのか、卒論というのはどの程度教授陣に期待されているものなのかを知ることができました。 発表を見ていて気になったこと 発表の仕方 返事…

デブサミ2009のLT見たよ

試験期間中ということもあり会場にはいけなかったのですがDevelopers Summit 2009のコミュニティLTがUstreamで中継されていたので見ました!http://codezine.jp/trackback/devsumi2009/ 勉強会勉強会 - よしおかひろたか 結論 Googleカレンダー(勉強会大集…

fork(2)とexecve(2)を使ってみた

OSの授業で扱っていたfork(2)とexecve(2)ですが,実際に使ってみたことがなかったので実際に試しに使ってみました. 別に特別なことをしたかったわけではないので,とりあえずシェルと同じように動いてくれればいいかなーという設計になっています.暇な時間に大…

Linuxのプロセス毎メモリ使用量を調べてみた

大学の課題で「いろいろな条件下で各プロセスのメモリ使用量を調べよ」というのが出ました。メモリ使用量は/proc/PID/smapsに書かれているということを知ったので、それを使ってみることにしました。 もうレポート提出してからだいぶ日が経過したので公開し…

simple-hatena-modeからPOSTしてみるなど

簡単すぎだろ

hcreate_rなどを使ってみた

現在作成中のプログラムでハッシュ表を使いたいなーと思っていたらPOSIX, GNU拡張に存在するらしい、ということで調べてみました。もちろん基本はman hcreateを読むことですね。 今回は複数のハッシュ表を使う必要があるので、GNU拡張のhcreate_rなどのreent…

PugsをHardyに手動でインストールした

andLinuxではaptで簡単にPugsをインストールできたのにHardyでは見つからなかったよ?レポジトリ登録してないせいかな?とも思ったのですが面倒だったので手動で入れました。 せっかくなので手順を残しておきます。 Pugsって? 現在開発中のPerl6のインタラ…

みくのかんづめ

またまたGeekじゃないです。日常です。届きました。大好きな初音ミクの曲をよくつくっているOSTER ProjectがCDを出すと聞いて思わず予約してしまったCD。帰宅したら置かれていました。さっそく開けてみます・・・待ってました!ということで今聞き始めたとこ…

駒場祭に行ってきたよ

全然Geekな感じじゃない記事なんですが、まあたまには、ということで。 高校時代の友人が私は行く必要ないって行ったんだけどどうしても行きたいというので、通っている大学の学祭におでかけしてきました。何か午後はライブ+バイトだということで午前中だけ…

Tsukuba.R#3に行ってきたよ

ひょんなことから触ったことのない言語Rに関する集まりであるTsukuba.R#3に参加してきてしまいました。というわけでそのレポ。 経緯 Tsukuba.R#3を開催することは知ってたのですが、私はRなんて使ったことないので参加はしないつもりだったのです。でもほら…

Tween.exe.configからcrochetの設定ファイルを生成

id:showyou がこんなことを言っていたので作ってみた。PerlerなのでPerlでキモく実装。バグがあったらごめんなさい。 準備 XML::ParserはPerl標準モジュールではない(と思う)ので、以下の手順などでCPANから入れてください。 $ perl -MCPAN -e 'install XM…

VMware Server 2を入れてみた

経緯 ITproのRSSを購読していたら米VMwareが無償の仮想化ソフトの新版を公開,管理機能を強化:ITproの記事を発見したので、さっそく入れてみた 出たばかりなので試している人が全然いないですよね 人柱的な意味合いもあります OS環境 ホストOS Ubuntu Linux …

Cygwin+Apache2+Subversion

タイトル通り、Cygwin+Apache2+Subversionの設定を行ってみたのでその記録。 パッケージ入れる これは素直にCygwinのsetup.exeを使って入れる。 Subversionのレポジトリ作る 今回は/var/svnをルートとして、/var/svn/reposをレポジトリとしてみた $ mkdir /v…