サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
unknownplace.org
TLDR: Google Drive経由で同期していたorgファイルなどの同期をSyncthingを使うように変更したら劇的に便利になった、という話。 最近はorg-modeを使いたおしている[1]のだが、いままではorgファイルの同期をGoogle Drive経由でやっていた。 これにいろいろ不満あった: grive2がちょいちょい動かなくなる grive2がちょくちょくビルドできなくなる or OAuth認証ができなくなる Androidとの同期が微妙 1は、Google Driveへの同期ツールとしてgrive2というのを使っているのだが、このgrive2がたまーにうごかなくなることがある。 これはほとんどの場合、ArchLinuxでgrive2は公式パッケージには入っておらずAURになっているがboostに依存している、というのが原因。boostが更新されてもAURであるgrive
E この1年ほどメイン開発環境をWindowsにしてみる、というのをやってみていたが、1年たってもしっくりこないままなので、結局Linuxに戻してしまった。 ただ、Windowsの良かった点もいくつかあって、一番はリモートデスクトップがとても良くできているところ。 自分の普段使いのマシン構成は、高スペックデスクトップPC + Surface Go 2 で、Surface Goはかなり非力なのでそれ単体で仕事をしたりするのはかなり厳しい。 しかし、Windowsのリモートデスクトップを使えば、Surface Goから違和感なくデスクトップPCを操作することができ、安定したネット環境さえあればどこでもそれで十分作業ができる。これはなかなか良い体験だった。 リモートデスクトップが実用的に使えると、Surface Goはサブマシンとしてかなり良い。iPadの代わりのタブレットとしての用途だけでなく
最近(といっても半年くらいたってる気がするが)、Notionからorg-modeへドキュメント管理を戻している。 NotionはUS移住前から使っているので、2年以上使っていたことになる。もともとorg-modeを完全に置き換える形で、 タスク・習慣管理 メモ ブックマーク ゲーム・読書・映画記録 家族とのドキュメント共有 などかなりガチで使うようになっていたのだが、根本的な文章の書き味がEmacs上でやるのと比べ致命的に悪いという問題があった。 また、Roam ResearchとかObsidianのようなブレインマップを構築するようなノートアプリがいろいろ出てきているのも気になっていた。Notionでそういうことをするのはなかなか難しそうに思う。 そんな中で、org-modeでRoam Researchみたいなことをするorg-roamというものを知って、しばらく試していたのだが、なかな
若い頃からコーヒーが好きで、おそらく高校生(もしかしたら中学生かも)くらいから習慣的に飲んでいて、20代のころはそれこそ一日中コーヒーを飲んでいた。 僕と一緒に仕事をしたことがある人は、職場にコーヒー道具一式を持ち込んでいたから、どのくらいコーヒー狂いか知っているだろう😅 それでも、効果的な睡眠を模索していると午後のカフェイン摂取は厳禁、みたいな話があったり、そもそもカフェインのとりすぎはよくないという風潮なので、ここ5年ほどは朝一のコーヒー+仕事始めのコーヒーの2回だけ淹れる、という感じになっていた。 ただ、1回につき2杯分淹れ、奥さんが欲しいといったら半分あげる、みたいな感じなので、日によってかなり摂取量にバラつきがあった。全部一人で飲んだ日は4杯分、600ml以上摂取してることになる。[1] 特に健康に影響があるのは感じでいなかったのだけど、最近またいろんなところでカフェイン摂取を
もう1年近く前の話なのだけど、去年の4月から HOMMA Inc. でソフトウェアエンジニアとして働いている。 最近(といってもこれも数ヶ月前の話なんだけど😅)ジョインしてくれたエンジニアがSlackに入ったときに僕を見つけて驚いた、と言っていて、そういえばどこにも所属をあきらかにしてなかったな、などと思ったのでいまこれを書いている。 ポートランドに移住してから、いままでやっていた日本の仕事を継続して手伝いつつ、こちらでの仕事を探していた。そんな時に以前からの知人であるきょろちゃんが以下の記事を書いていて、とても興味を持った。 ソフトウェアエンジニアとして家を建てる仕事をはじめました - SF Tech-Tech スキル的に、自分はWebのバックエンドからキャリアを始めたが、興味あることに手を出しまくった結果、いまではWeb&Mobile開発はフロントエンド・バックエンドどちらもできるし
WSL1/2環境としてArchWSLを愛用してきたけど、そろそろ自分でWSLイメージを作ってみたいな。という思いがあり、公式ページのドキュメントに従って自分のイメージを作ってみようとしたのだが、いかんせん、Visual Studioの知識がなさすぎて、Distro Launcherのビルドすらままならない😭 Visual Studio 2019、installできるcomponentの選択肢が多過ぎてなにが必要なのか、とかが全然わからない。まじで難しいなぁ。ビルドしようとするときに足りてなかったら教えてくれる、とかそういう心づかいが欲しい…。 それでしばらく調べてみたら、Distro Launcherを使わずにイメージを作ってる人を発見: Custom WSL Image - Spatacoli なんだ、 wsl --import なんていう方法もあるんだ。しかも、dockerイメージか
何をいってるんだ…、というタイトルですが😅 Surface Go 2 をサブ機として愛用していて、主な用途は会議中のPenでのメモ取りと、あとはKindleやYoutube/Netflix試聴といったiPadっぽい使い方が中心だけど、 たまにこれで仕事もしたりする。 そういう時は母艦にリモートデスクトップして作業している。画面サイズは小さくなってしまうが、そこそこの回線速度があれば、まったく違和感なく作業できてなかなか体験が良い。 唯一の問題としては、リモートデスクトップで繋いだ瞬間、母艦のほうのPCはログイン画面に戻ってしまうということ。 多くの場合これはまったく問題ない挙動なのだが、そのままの状態だと、リビングのTVでPCからストリーミングでゲームをしようとすると動かないのですね。[1] PCのある部屋まで行かず、リモートからログイン状態に戻すことはできないかと思って検索した結果、
COVID-19の状況の中、9月から本格的に長男(1st grade)のリモート授業もはじまり、共働き&子ども2人という我が家はかなり苦しい生活ルーチーンになっている。 1st gradeの授業はまだまだ親のサポートが必要。とくにうちの子の場合はいまのところ英語があまりできないので、そのサポートも必要というのも大きいが。 またそのサポートをしている間もまだまだ一人だけで遊んだりするのが難しい次男(3歳)もいるという。そういう状況だと、日中に満足に仕事をこなすのがかなり難しい。 どうしているかというと、まず、夫婦の仕事をする時間をずらした。昼間は基本的に自分が仕事、妻が子どもたちを見る。 夜に自分が子どもたちを寝かせ、妻がそのあと仕事をする。結果妻は夜遅くまで仕事をすることになるので朝は遅くまで寝てもらう。朝食を作ったり、朝の授業のサポートなどは僕がやる。[1] そんなわけで、夫婦おたがいに
X410というX Window Serverがかなり便利。X WindowをVNCみたいにまるっと表示するのではなくて、アプリケーション毎にWindowを分けて表示してくれるモードがあり[1]、LinuxのGUIアプリを普通のWindowsアプリと同じように扱える。 ただあくまでLinux上で動いているものなので、フォントとか日本語入力とか、キーボード周りの設定とかはもちろんLinux側で設定する必要がある。 日本語入力に関しては、それが必要なアプリは自分の使うアプリではいまのところEmacsしかないが、Emacsはそれ自体で日本語入力が可能なので特に設定する必要がない。 自分がEmacsのためにインストールしたのは以下: # Emacsで使ってるメインフォント yay -S otf-source-han-code-jp # 英数日本語以外&絵文字用 yay -S noto-fonts n
WSLで動くLinuxとクリップボードを共有する方法は僕が知るかぎりでも、 clip.exeを使う X Window Serverを経由する などがある。自分はGUIアプリを使うこともあるので、もともとX Serverを立てているということもあり、汎用性が高い2のほうを使っている。 実際、 # copy cat foo.txt | xsel -bi # paste xsel -bo > foo.txt というような操作はLinuxを使う時と一緒なので覚えやすい。自分はtmuxでcopyすると自動でXのクリップボードにもcopyされるという設定をもともと使っているので、それがそのまま使えるというのもありがたい。 ただ、このXのクリップボードをWindows側と共有してくれるには、それに対応したX Window Serverを使う必要がある。 自分は X410 というのを使っている。[1] W
サブPCとしてSurface Goを使っていることもあって、やっぱりメイン環境がHiDPIじゃないのがきになってきていたので、 4Kモニタを導入してみたのだが、Linuxで使おうとするといろいろ問題がでてきた。 まず、LinuxでのHiDPI設定というのはいまだにこなれてなくて、アプリごとにいろいろな設定をする必要がある。詳しくはArchWikiの該当ページとかを参照。 まぁまだそれは良いとして、いまの自分の環境のように、HiDPIなモニタとそうじゃないモニタが混在しているマルチモニタ環境だと、HiDPI設定をしたアプリを普通のモニタで表示するとめっちゃでっかく表示されてしまったりと、かなりツラいことになる。 HiDPIなモニタで環境を統一してしまえばいいのかもしれないが、個人的にはHiDPIなモニタと、144Hzなど高リフレッシュレートのモニタの組み合せが現状ゲーマーエンジニア的にはベス
TL;DR: hexedit --color 良い。 バイナリーファイルを編集するというような機会は、いままでそんなになかった。 表示して確認したいということはそこそこあったが、編集するということはあってもせいぜい1byte書き換えるとかその程度。 なのでだいたい、 hexdump か Emacs の hexl-mode でことたりてた。 ただ最近わりとがっつりバイナリーを編集する必要があって、いままでのようにhexl-modeを使っていたのだが、 ガーっと入力できるのはasciiだけで、hex値での入力は毎回 C-M-x をおして1byteずつやらなければいけない。 めちゃくちゃ不便。 そもそもhexl-modeはそのようにがっつりバイナリーをいじる用途向けではなさそうだ。 適当に検索すると Linuxで大きめのファイルの扱えるバイナリエディタ - Qiita Top Hex Edito
しばらくiOSアプリのクライアントサイドばかり開発していてサーバサイドプログラムにご無沙汰だったのだけど、 最近またGoでアプリのサーバサイドを書くようになった。 ちょうど xhyve が話題になっているのもあって、OS X の仮想環境がアツい感じだったので、 ひさしぶりに Docker で開発してみよう、と思いたち、Dockerを使ったアプリ開発をやってみている。 docker-compose を使って依存ミドルウェアも一緒に立ち上げる docker-compose [1] というのを使うと、複数のコンテナを同時に立てられ、それぞれにリンクも良い感じにやってくれる。 開発環境を作るにはもってこいのツールだ。 GoのWebアプリ サンプルとして以下のようなアプリを考える。 // main.go package main import ( "fmt" "log" "net/http" "gi
Kibana や Grafana を使う時に、これらはjsのツールなので、 Erasticsearch や InfluxDB といったバックエンドサービスにjsからアクセスできるようにする必要がある。 そのためには、 普通にバックエンドサービスのportを開放 nginxとかでリバースプロクシ とかする必要があり、めんどくさい。 さらにセキュリティのことを考えると、2の方法のうえに、nginxでSSL+Basic認証なんかにする必要があってよりめんどくさい。 さらに、僕はBasic認証が嫌いだ。 昔は Firefox + 1Password で良い感じにBasic認証の入力が行えたが、いまはだめになってしまったし、 Basic認証だとアカウントの管理もめんどくさい。 なので、Google認証なhttpdでリバースプロクシもできる、gateというツールを作った。 https://github
進行中のGitHubプロジェクトが増えてくると、そのプロジェクトページをブラウザ上で即座に開くことができず、手間取ることが増えてきた。 hub とか、 gh というようなコマンドラインツールを使うと、手元のチェックアウトしたパスで、 $ gh browse とかすれば対応するGitHubのページを開くことができる。 最初はこれを使ってがんばろうと思ったのだけど、やっぱりカレントディレクトリの情報をベースに開くものだから、他の場所にいるといちいちcdしないといけないのが面倒。 また、シェル履歴との相性も悪い。 $ gh-open ~/path/to/repo みたいにしてcloneしたディレクトリを指定してあげるだけで動くものがあれば、どこにいても動くし、履歴も上手に使える。 というわけで作った: typester/gh-open ちょろっと作ったものだけど、やはりこちらのほうが使いやすい。
Emacsで、C/C++/Objective-C とかを書く時、clangを使った補完 clang-complete-async を使っている。 いままではiOS用の設定決めうちで使っていたのだが、 たまにMacアプリを書くときにcflags切り替えがめんどくさい 外部ライブラリを使っているプロジェクトで、そのライブラリのヘッダがよまれない と言った不満があった。 ちょっと最近またMacアプリを書いていてよしなにやってくれるやつが欲しいな〜という熱がたかまったので作ってみた。 typester/clang-complete-helper 何をするやつ? 編集しているファイルから、xcodeプロジェクトを探して、その設定を読んでよしなにCFLAGSをセットしてくれるやつ。 なのでこれを使えば、xcodeのプロジェクトのファイルであればなにも考えなくてもclangによる補完が効くようになる。
Goの cgo という機能を使うと、GoからCの世界のコードを呼んだり、呼ばれたりすることができる。 Perlで言うところのXSというやつだ。 このcgoを使ったGoプログラムは、昔はMakefileを利用してビルドしていたそうだが、 1.0からは go get や go build と言った、go toolがcgoに対応したのでそういうことも必要なくなっている。 cgoの基本的な使い方 まずは import "C" として、Cという疑似パッケージをimportする。 このパッケージを使うと、 C.fprintf(...) というような感じでCの世界にアクセスできるようになる。 また、このimport文の直前のコメントはCのコードとして解釈される。 なので、 package main /* #include <stdio.h> void hello() { fprintf(stderr,
Go言語は gdbでのデバッグがサポートされている のだが、OS X でそれを使おうとしたらいろいろ罠にはまったのでここに記しておく。 (このエントリ執筆時の手元の環境は OS X 10.9(.0) Mavericks + Xcode 5.0.1) 罠一覧 OS X 付属のgdbが古い Xcode 5.0.1のclangだとgdbのビルドがこける ビルドするgdbはpython2にリンクさせないとGo付属のruntime-gdb.pyが動かない[1] ビルドしたgdbにコード署名をしないと他プロセスをアタッチできない OS X 付属のgdbが古い Goのコードをgdbでデバッグするには、gdb 7.1以上が必要ということだが、OS X (Xcode?) 付属のgdbは古くて使えない。 手元のバージョンは GNU gdb 6.3.50-20050815 (Apple version gdb-
2013年8月末で面白法人カヤックを退職し、新しく会社を設立しました。 カヤックには約9年間お世話になり、とても多くのことを学ばせてもらいました。 とくにクリエーターとしての自分の考え方は、ほぼカヤックで養われたと言っても過言ではないでしょう。 そういう意味でカヤックは僕の第二の親のような存在であり、鎌倉方面には足を向けて寝られません。 本当にありがとうございました。 カヤックは面白法人とか名乗っていますが、実は非常にまじめな集団です。 たとえば、経営理念についても、とても真摯に向かいあっています。 経営理念とはただの飾りではなく、まさに会社の存在意義であり、社員全員がそれを意識して仕事をしなければ意味がない。 そんなことから半年に一度、全社員で経営理念について考えるための全員社長合宿、というものをやっていたりします。 そんな環境で、自分も個人としての理念を磨いてきました。 昔のカヤックス
MacBook Air をメインにしてから以降、本体のストレージ領域が小さいことから、音楽データや写真データなどは、 外付けの USB HDD に保存するようにしているのだが、1つの HDD にしか保存していなかったので、 こいつが死んだら困るなぁ、と思っていた。 しかし、なんとかしないと、と思いつつもそのままの状態ですでに3年近くたってしまっていた。(笑) それでも最近夏の暑さのためか、周りで HDD の故障の話をよく聞くようになってきたし、そろそろやらねばさすがにヤバイと、 ようやく重い腰をあげた次第だ。 方法としては、とりあえず、RAID1でミラーリングし、HDD自体の耐障害性のみを高めるということにした。[1] 今までの環境 今までは Mac mini に USB HDD を接続して、それを共有することで NAS 代わりにしていた。 これはだいぶお手軽で、OS X はソフトウェアR
Twilio というサービスで決済サービスの障害があったらしいが、恐しいことにこのサービス、 決済情報をRedisで管理していたらしい、というのをRedis作者、antirez氏のblogで知った。 Twilio incident and Redis - Antirez weblog この件に関しては、Twilio自体も 調査報告 を出している。簡単にまとめるとこういう感じだ: TwilioではRedisを single-master, multi-slave なレプリケーション環境で使用している ネットワーク障害で一時的に master-slave 間の接続が切れたことにより、master-slave間のデータの再同期が発生 この再同期がすべてのslaveに対して同時に発生したため、masterの負荷が高くなり、結果決済サービスの障害が発生 この負荷を解決するためmasterを再起動する
技術評論社さんの 「データベースエンジニア養成読本」 に、Redisの紹介記事を書かせていただいた。 データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!] (Software Design plus)posted with amazlet at 13.06.24 技術評論社 売り上げランキング: 857 Amazon.co.jpで詳細を見る 最近、僕自身があまり「Redis Redis」言わなくなったせいか、周りからよく「Redisもう飽きたんですか?」とか言われることが多いのだけど、 全然そんなことはなくて、むしろあって当たり前の、空気のような存在になっているから特に話題にしなくなったんだと思う。 Redisを使う前と後では明らかにアプリケーションの作り方が変わったので、 2012年マイイノベーション として紹介したくらいだ。 あとはもはや僕自身が騒がず
このサイトでは org-modeで書いた原稿をBlosxomを使って表示している と前に書いたが、 その環境もだいぶ落ち着いてきたので、ここにまとめておく。 手元で試してみる このサイトの構成をまるっとそのまま githubにあげてある ので、 だれでもすぐに試してみることができる。 git cloneと依存ライブラリのインストール まず、 git clone して、 # git clone git clone https://github.com/typester/unknownplace.org.git cd unknownplace.org cpanm を使ってPerlの依存ライブラリをインストール # 依存ライブラリをインストール cpanm --installdeps . 実行 plackupで簡単に動作させられるように app.psgi を同封してあるので BLOSXOM_CO
homebrew の Go用のレシピ を見た人は、その中にこんなオプションが定義されているのに気がついたかもしれない: option 'cross-compile-all', "Build the cross-compilers and runtime support for all supported platforms" option 'cross-compile-common', "Build the cross-compilers and runtime support for darwin, linux and windows" Goはクロスコンパイルが可能なようにビルドしておけば、簡単に他の環境で動くバイナリを作ることができるようになっているらしい。 Goがダイナミックライブラリに依存しない実行バイナリを作るという特徴と併せて考えると非常におもしろい(そして、使える)機能だと思
個人的には文書書くのは markdown-mode + outline-minor-mode で満足していたし、org-mode に手を出す気はあまりしてなかったのだけど、 Emacs界隈の情報を見ているとやっぱり便利そうなので、バージョン8.0が出る頃に試しに使ってみた。 そうしたら思った以上に便利で、結局今では、日々のメモ、原稿執筆、タスク管理など、いろいろなことをorg-modeでやるようになってしまった。 最初、org-modeに手を出しにくかった(出したくなかった)大きな理由は、編集環境がほぼEmacsだけに限られてしまうということがあった。 しかしこれは org-mode を使ってみると、org-mode があまりに高機能なので、他の環境に移植するのがつらいからだ、ということが分かった。 org-modeで文章を書く org-modeにはいろいろな機能・使い方があり、詳しくはi
最近Go言語を始めた。MacにGoの実行環境を入れ、Emacsで編集するところまで、一通りまとめておく。 Goの導入 (for OS X) いろいろ方法があるようだけど、僕はカジュアルに brew install go で済ませた。 GOPATH 環境変数は最初プロジェクト毎に設定して使おうかと思っていたんだけど、 後述するgocodeやgo-flymakeといったツールを使う場合、手元のGOPATHは1つにしてしまったほうが便利なので、 export GOPATH=$HOME/dev/go-workspace というのをshellの設定に定義して、手元ではこの共通のPATHを使うようにした。 これは問題がでたらまた考える。 PATHを通す homebrewで入れたツールをEmacsから使うためには、 homebrewのbinディレクトリを exec-path に追加する必要がある。 (a
VLCってたしかYouTube動画の再生に対応してたよなーと思いだして試してみたけど、 現在の最新バージョンの2.0.5でも今のYouTubeの仕様に対応できてないのか、YouTube動画の URL を開こうとしてもエラーになってしまう。 ためしにナイトリービルドでためしてみたらOKだった。 けど、ナイトリービルドを常用するのも嫌だ。しかし、このYouTubeのハンドリングはどうもluaの拡張でやっているだけみたいなので、 その拡張ファイルだけバックポートするだけでいけそうだということで、やってみたらちゃんと動いた。 具体的には、 VLC.app/Contents/MacOS/share/lua/playlist/youtube.luacVLC.app/Contents/MacOS/share/lua/playlist/youtube_homepage.luac の2ファイルを上書きしてあ
最近、 Perlの話題を日本語で – Lingr お気軽なかんじで、Perl に関する話題をしましょう。 初心者のかたでも御気軽にPerl の質問など、もりもりしてください♪ というLingrの部屋が盛りあがってる。 最初はブラウザで見ていたんだけど、だんだんつらくなってきたので、APIを使ってirssiでLingrチャットができるのを作りました。 https://github.com/typester/irssi-lingr ~/.irssi/scripts に置いて、 irssi内から、 /run lingr /set lingr_user your_lingr_username /set lingr_password your_lingr_password /set lingr_api_key your_api_key # オプション /lingr start で lingr/* と
ATOKをMacを使いはじめてからずっと使っているので、そこそこ長い付き合いではあるけれど、 和英混在入力の使い勝手が悪く、いつも混在入力をするときに、ATOK自体のON/OFFをして対応してしまっていた。 この使い方は注意しないと、変な文節を学習させてしまうことになる。 例えば、 nodeよりperlが好き。 のような文章で、英語の部分ではATOKをOFFにするような入力をしていると、 「が好き」という文章をATOKに教えこませてしまう。このような意図しない学習結果が積みかさなると、普通の文章の変換も苦になるほどATOKの調子が悪くなってしまう。 そのような状態になるたびに、辞書をクリアしたり、 そもそもこのようなことを避けるために、「が」で一旦確定させるクセをつけるなどして、対応してきたが、そんなことを考えながら文章かくのであれば、もっとシンプルな、SKKのような入力方法にしちゃえばい
次のページ
このページを最初にブックマークしてみませんか?
『unknownplace.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く