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

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…

BashでChefっぽいこと

sh

photo by Éole Itamae便利説 Chefっぽいことと言っておきながら、軽量ChefのItamaeしか触ったことありません。 しかし便利ですよね。 Itamae - Infra as Code 現状確認会 // Speaker Deck しかしChefにせよ、itamaeにせよ、環境を入れないと使えません。 と…

デスクトップコンピュータの在り方を考える

photo by Accretion Disc うちのデスクトップコンピュータが壊れた。おそらくマザーボードがお逝きになられた。ちょうど6年前に買ったのでそろそろ寿命だ。幸いラップトップがあるので、現在はそちらで作業している。次のコンピュータをどうしようかと周りの…

ACアダプタの抜き挿しをデスクトップ通知する

全体の構成 ACアダプタを抜き挿しからデスクトップ通知までの流れは、大体次のようになる。 少し複雑だが、汎用性とカスタマイズ性とお行儀を考えて、journal経由にした。 event logger [AC adapter] ------> [acpid] ---------> | | | journal | [Desktop] …

JBL PebblesをLinuxで

USBを伝わってデジタル信号でスピーカーに伝搬するので、音にメリハリが出ました。しかしボリュームコントロールがLinuxで動作しなかったので、星4つです★★★★☆ 2015-01-11 追記 : Linuxでもフツーに動きました。 結果からいうと、USBでもスピーカーが普通に…

VAIO Care for Linux

VAIO Proが届いて3日、Linuxを入れて快適に作業できています。 ArchWikiを見て知ったのですが、VAIO特有のいたわり充電などの機能ががLinuxでも使えるそうです。 /sys/以下からアクセスできるあたり、ハードウェアかミドルウェアあたりで制御しているのでし…

VAIO Pro 11 が届いた

photo by Alexandre Kitamura そろそろ軽いラップトップが欲しかったので、VAIO Pro 11を買ってしまった。 VAIO株式会社になってから、コスト削減のためかカスタマイズ性が低くなり、英字キーボードも選べなくなってしまった。これだけが非常に心残りである…

ターミナルでバッテリの状態を取得

ターミナルでバッテリー残量が表示できれば便利ですね。 Linuxだと/sys/class/power_supply/BAT*にバッテリー情報があります。 デバイスをファイルとしてアクセスできるのは便利ですね。 それが黒い画面でも取得すれば便利という話。 あとはプロンプトに表示…

openSUSEからArch Linuxに移行したお話

photo by wallyg openSUSE 13.2がリリースされましたが、そろそろopenSUSEも飽きてきたので、Arch Linuxに移ってみようと思いました。 その感想。 充実のドキュメント おそらく多くのLinuxユーザは、一度は検索結果にひかかっているであろう、ArchWiki。 こ…

Unicodeで伝わる間違った日本文化

寒くなってきた今日このごろ、おでんが食べたくなったらUnicodeのU+1F362がある。 しかしU+1F362には大きな間違いがある。 それはUnicode Character Code ChartsのMiscellaneous Symbols and Pictographsに載っている。 seafood on skewer、日本語にすると「…

zypperを使ってパッケージにパッチをあててインストール

多くのLinuxディストリビューションがそうであるように、 openSUSEのリポジトリには、パッケージのソースコードも含まれています。 幸いopenSUSEのZypperは、バックエンドにRPMを使用しているので、 基本的な手順はRPMのビルドとほとんど変わりません。 基本…

ブラウザ上のSVGとCanvasで1pxの線がぼやける訳

先日、ブラウザ上のSVGとCanvasで1pxの線がぼやける という記事を書きましたが、 原因はブラウザの実装ではなく、仕様をよく読まなかった自分でした。 同様の現象がStack Overflowにも投稿されていました。 google chrome - SVG rectangle blurred in all br…

NATやGatewayやDHCP以下のマシンに外出先からでもアクセス

photo by Listen Missy! MicroServerが届いたのでサーバ周りの整理をしています。 外部からもアクセスしたいのですが、もちろんうちの学校にはFirewallがあります。 よくあるサーバが立てにくい環境でも外部からサーバにアクセスできるよう、 自分のVPSにSSH…

CSS, SVG, Canvas による描画結果の比較

HTMLで図形を描く方法に、次のものがある。 CSS CSS3から使用できるタグが増え、図形も描ける程度になりました。しかし他の2つと違い用途が異なるので、自由度は高くありません。 SVG HTML5からSVG形式に対応し、``要素によってインラインで図形をペタペタ貼…

私のプログラミング言語3本の柱

photo by isawnyu 新しい言語も始めたことだし、自分が主に使っている言語を振り返ってみる。 アプリケーションを作る言語 C++です。 最近はあまり触れていないのですけど、やはり安定の言語です。 小規模から大規模まで使うことができ、 特にデスクトップア…

今になってRubyを触っている

photo by afternoon_sunlight Rubyがその界隈で浸透してもう何年にもなりますが、今更Rubyの門を叩いてみました。 これまでWebでよく使われている言語に、まともに触ったことがありません。 Perlはもう既に過去の言語になりつつあり、Pythonは少し触ったけど…

X11 forwardingができない時

photo by zopeuse 研究室で新しいマシンが降ってきたので、早速Linuxをインストール。 ちょっといいスペックなので、これで自分専用のワークステーションだ、と喜んでいましたが、SSHサーバで少しトラブルが。 $ ssh -X my_workstation X11 forwarding reque…

Omniboxのautocompleteをオフにするのは諦めたほうが良い

photo by Varawut.com Google Chrome/Chromiumのアドレスバーっぽい物、正式名書はOmnibox というそうです。 Omniboxは検索履歴から入力内容を自動で補完します。 しかしこの機能、人によっては煩わしく感じ、自分もその一人です。 この機能、オフにできない…

Chromium/Vimium に移行した

Vromeと肩を並べるほど(と思っている)Vimiumに移行しました。 VromeはVimiumよりカスタマイズ性が高くてイイ!!と思ってたのですが、どうも動作が不安定で... 安定性を重視してVimiumに移行しました。 Vromeよりは機能は少ないですが、基本的な機能は大体…

Chromium/Vrome をしばらく使ってみたが

Chromium/Vrome のここがイイ 多機能 数あるCromium向けVimperator風プラグインの中からVromeを選んだ理由には、その機能性の高さにあります。 キーマップの自由度や、設定項目の多さは、自分の知る限り一番です。 特に自分が気に入っているものは、set disa…

こうしてまたFIrefoxユーザがひとり減ったわけだ

もうMozillaとFirefoxには愛想がつきた。 標準のWebブラウザをChromiumに設定し、Firefoxをすかさず消した。 そう、Thunderbirを消したように。 ここ数ヶ月、Firefoxは、邪悪なDRMを実装したり、新規タブに広告を表示するなどといった不穏な動きを示している…