Folioscope

プログラミング/Unix系/デザイン/CG などのメモがもりもり

Qiitaの記事を書くときは、それっぽいアイコンを見出しに置くと、それっぽい記事に見える

最近技術的な記事は Qiita に投稿することとなり、こちらの記事はめっきりと減りました。たまにはこちらにも投稿したくて、Qiitaに関する記事を一つ。Qiitaの記事を書くときは、それっぽいアイコンを見出しに置くと、それっぽい記事に見える、という内容の記…

LEDでモールス信号

LEDでモールス信号を出力するプログラムを作りました。 Morse Code for LED in Linux · GitHub sysfsなどに出力すると、コンピュータのLEDを使ってモールス信号を送ることができます。 echo 'Hello World, Goodbye' | a.out >/sys/class/leds/input0\:\:caps…

学内システムインテグレータのようなことをしたお話

自分は大学院生活で、およそ2年間、学内システムインテグレータのようなことをした。NAISTの学生宿舎内のネットワークは、学生ボランティアの委員会により保守・管理されており、自分もその委員に属していた。その活動を何も残さないのは勿体無いので、その…

新しいコンピュータを組んだ

Phenom IIマシンが動かなくなっておよそ1年、ついに新しいPCを組みました。 構成は CPU: Intel Core i7-6700 メモリ: 8GB x 4 SSD: PCIe SSD 128GB OS: Arch Linux です。しあわせ。

中学2年生のときに作ったスクリーンセーバー

GUIプログラミングを始めた人が作りたいもの、 そして中学2年生が見てワクワクするもの、 それは共通して映画「マトリックス」の緑の文字が画面上に覆い尽くされるアレです。 自分が中学2年生のとき、C++とWin32APIを使ってGUIアプリケーションにハマってい…

人の絵文字のデフォルトが黄色い理由

人権団体からの要望で、Unicode 8.0 で肌の色が導入されたのは有名な話です。 すでにAppleやTwitterでは肌の色のEmojiに対応していますが、同時に肌の色のデフォルトが黄色 になりました。 これは黄色人種が優遇されているとか、黄色人種を差別しているとか…

Electron + Git でエンジニア向けのノートアプリ作ってます [WIP]

ElectronとGitを使って、エンジニア向けのノートアプリを作ってます。 github.com ノートアプリはたくさんあるけど、自分に合うノートアプリを作りました。 主な機能は以下のとおりです。 Gitベースでバージョン管理 Markdownで書ける 好きなエディタを使え…

Qiita始めました

Qiita始めちゃいました qiita.com カジュアルに情報発信しよう Qiitaのように一つのサービスに多人数が記事を投稿すると、やはり記事の質にばらつきがでます。 Qiitaではたくさんの有益な記事にも巡りあえましたが、時々残念記事に遭遇してげんなりした経験…

Twitterの文字数制限の緩和で気軽にパッチが送れる

Twitterの文字数制限が10000文字になるのではと盛り上がってますが、これが実現されるとTwitterでバグ報告だけでなく、気軽にパッチも送れそうです。 そこでTwitterでパッチまで送れるか調べてみます。 Gitプロジェクトのリポジトリの各コミットからパッチを…

Bashのバージョン管理ツールを作りました

開発環境を容易に構築するために、 Node.jsだとnvm、Rubyだとrvmのような、 各言語のインタプリタをローカルにインストールツールが多くあります。 Bashでもそれがしたかったので、作りました。 github.com インストール まずGitHbuのプロジェクトを $HOME/.…

Rails脳でNode.jsに足を踏み込んだら、いろいろと思い出した

技術的なことはあまり含みません。 Node.jsを始めましたが、プログラマとしてごく当たり前のことすら忘れかけていたことが分かったので、記事にしました。 Node.jsを始める Node.jsはじめました。 正確には、Electronを使って便利ツールを作りたくなったので…

Bashでstdout/stderr/exit codeをキャプチャ

sh

Shell Script Advent Calendar 2015 7日目の記事です。 BashのちょっとしたTipsです。 Bashに限らないかも知れませんが、検証環境がBashしかありませんでした。 問題 Bashで $(command) と書くと、commandがサブシェルで実行され、 stdout(標準出力)を変数…

Travis CI がテストするブランチとPull Req. のビルドは異なる

GitHubとTravis CIを連携すると、PRを立てたときデフォルトだとpushとPRそれぞれに対してCIが走る。 2つも要らないんじゃないかと思いつつ放置してたが、push側はパスしたのにPR側がFAILしたということがあった。 同じリビジョンに対してテストしてると思っ…

git stash -u が .gitignore のファイルを削除する

git stash -u と bundler git stash には、untrackedなファイルをまとめて退避する、 -u | --include-untracked オプションがある。 新しくファイルを作ったがまだコミットしてない時に、git stash -u をよくする。 便利だ。 問題はbundlerを使うRubyプロジ…

Bash用ユニットテストフレームワーク作りました

sh

Bash用テストフレームワークに、Batsやshunit2がありますが、イケてないなーと思ってたら、気づいたら自分で作ってました。 github.com テストの結果はモダンなテストフレームワークのように、カラフルに表示します。 またFAIL時は、FAILしたテストの結果を…

SNSのIDを、まるで髪でも切るように、ひと思いにバッサリと

インターネット上のIDを変えた。 唐突ではなく、半年前から変えようかとずっと悩んでました。 自分はインターネットアイドルじゃないので、影響は少ないと思いますが、なかなか踏みきれませんでした。 なぜ変えたか 変えた理由は2つあります。 ひとつは、前…

RailsプラグインのテストのためのテストRailsプロジェクト

Railsのプラグインを開発するときには、テスト用のRailsプロジェクトが必要になりますね。 そこでテスト用のRailsプロジェクトをプロジェクトのサブディレクト以下に作成して、specからRailsアプリをテストできるようにします。 ディレクトリ構成は以下のと…

複雑な設定ファイルを動的に生成

はじめに 「巨大化した設定ファイルを階層的に書きたい...」だとか「実行する環境によって読み込む設定を動的に変えたい...」とか思ったことはありませんか? RubyのDSLのように自由度が高かったらすぐに実現できますが、設定ファイルはそうにはいきません。…

チーム内情報共有ツールrendezvousがちょっとよさ気

チーム内での情報共有ツールの和製Railsアプリ、rendezvousを少し使ってみましたという記事です。 github.com wikiなどは古典的な情報共有ツールとして使われていますが、使いやすいとは言い難いですし、モダンじゃないです。 だからesa.ioとかQiita:Teamと…

タッチバッドのスクロール機能を残したままマウス移動を無効化

photo by kBoey pictures ThinkPadは、タッチパッドとポインティングスティック(赤乳首)の両方が搭載されてます。 同じ機能がある部品が2つあるのは冗長で、キー入力中の誤感知などの問題もありますが、 無効化するには75mmx35mmの物理領域を占めるのでも…

「通信の最適化」に関する感想

photo by e53 数週間前から、携帯キャリアの「通信の最適化」が話題となっている。具体的な内容は、送受信される画像の圧縮やメタ情報を削除して、通信するデータ量を減らそうというものである。 そんな通信の最適化が、物議をかもしている。 今回の問題点を…

中古サーバの購入を考える

photo by Anirudh Koul 別に家でサーバを立てるわけではない。自宅のデスクトップPCが壊れてからしばらく経つが、自宅では惨めな思いでラップトップを叩いてる。そこでいい加減デスクトップPCを新調したいと思っている。これまではDDR2時代の化石なので、マ…

Unicode 9.0 予想

Unicode 8.0 が6月17日に正式に仕様として発表されて、しばらく経つ。 人種差別問題へも、人の顔と肌の色を定義した制御文字を組合せて使うことで対応した。 単純に言うと「か」と「゛」を組合せて「が」を表示する、いわば合成文字だ。 なんとも開発者泣か…

LaTeXのビルドシステムとテンプレートプロジェクトを作りました

TeX/LaTeXのややこしいビルド手順を、Makefileに起こして公開していましたが、TeX/LaTeXプロジェクトのテンプレートにPOWER UPしました。 github.com ディレクトリ構造は、Middleman風に、ソースコードをsourceディレクトリに配置します。またローカルなtexm…

GitHubのcontributionsを編集できるChrome Extension作った

GitHubのcontributionsを編集できるChrome Extension作った github.com インストール Gitリポジトリからcloneして $ git clone https://github.com/ueokande/github-pseudo-contributions.git Google Chrome/Chromiumで chrome://extensions/を開いて追加す…

operator!=のオーバーロードを省く

operator== がオーバーロードされていたら、 operator!= の値は自明なので、定義を省きたい。 struct Num { Num(int x) : x(x) {} bool operator==(Num y) const { return x == y.x; } int x; }; というクラスを定義したときに、Numクラスの比較結果は、 Num…

C++でRubyのdoブロックっぽいこと

多くのケースの場合、メソッドに渡すクロージャは一つなので、Rubyのdoブロックのようにクロージャを書くための文法があるのは理にかなっている。 C++でも同じことはできないかなーと思って、少し書いてみた。 C++の文法自体を変えることはできないけど、目…

std::tupleのhead/last/init/tail

今日は久しぶりにC++っぽいコードを書いていた。僕の知識もC++03止まりだったので、std::tupleを操作するメタメタしいプログラムを書いてみた。std::getにsize_t...を渡して展開するの面倒だなーと思ってたら、std::index_sequenceという、便利なヘルパクラ…

新生活が捗るディレクトリ移動のaliasたち

sh

大きなプロジェクトは、ディレクトリ構造が深くなりがち。 そうなるとディレクトリの上下移動が激しくなり指が死ぬ。 そこで自分がいつも使っているaliasを紹介します。 気に入ったaliasは.bash_profileや.bashrcにメモしましょう。 ../.../.... ディレクト…

asset pipelineとうまく付き合う

Railsの、初心者をハマらせる目玉機能といえば、asset pipeline。 そしてそいつといつも仲がいい、turbolinks。 この一見悪そうだが、実はできる奴らとのつきあい方をご紹介。 それぞれの機能の簡単な紹介 asset pipeline 開発中にバラバラに書いていたJSやC…