何度やっても同じ

ただの日記

技術

scala-sshでscp

github.com PublicKeyLoginはデフォルトで ~/.ssh/id_rsa と ~/.ssh/id_dsa を秘密鍵として使う。んだけど、環境によるんすかね、"~" がユーザのホームディレクトリとして展開されないので、鍵は自分でちゃんとフルパス指定。 val host = "xxx.example.com" …

IntelliJ IDEAでコードスタイルの設定

Preferences -> Editor -> Scala とりあえず初期状態からこの辺を変更。メソッド定義が長いときに引数を改行したら ( に整列するのキモい。 Spaces -> Other -> New line after annotations ✓ Wrapping and Braces -> Keep when reformatting -> Simple bloc…

phpbrewでphpインストール

Mac, Mojave. https://github.com/phpbrew/phpbrew/wiki/Requirement にある手順 xcode-select --install brew install automake autoconf curl pcre bison re2c mhash libtool icu4c gettext jpeg openssl libxml2 mcrypt gmp libevent brew link icu4c bre…

VPN接続設定

tunnelblickのインストール。 $ brew search tunnelblick ==> Casks tunnelblick tunnelblick-beta tunnelblick-beta ある。 $ brew cask install tunnelblick おわり。

gitのコミットメッセージでハッシュ記号 # をつかう

GitHubのIssue番号をコミットメッセージに含めようとすると # 以降がコメントになって消えてしまう。 git config でコメント記号を変える。 git config core.commentChar ";"

Mac(Mojave)にjava6と7と8をインストール

お仕事の都合でJava 6と7と8をインストール。 support.apple.com Java6はこれ、しかたない。7と8はhomebrewで。AdoptOpenJDKでいこうと思ったけれどJava7はなかったので7はZuluのをインストール $ brew tap AdoptOpenJDK/openjdk $ brew cask install adopto…

Sequel Pro のお気に入りの移行(mac)

qiita.com などを参考にしようと思ったけどやめて、結局パスワードはキーチェーンを漁ってSequel Proのものをひとつずつ調べ、お気に入りは手動で入れ直した。

日本語フォントのサブセットを作成してWEBフォントとして使う

サンプルとして「手書き風総合書体 - きろ字」をサブセット化してみました。 きろ字ダウンロード 上のリンク先でTTFファイルをダウンロードします。 「サブセットフォントメーカー」「WOFFコンバータ」をダウンロード いずれも武蔵システムが公開してくれて…

CSSのfont-familyに長いこと悩んで最近こうなった

ヒラギノ角ゴとメイリオの並び順については、Macにメイリオがインストールされている場合よりも、Windowsにヒラギノがインストールされている場合のほうが結果が悲惨、ということもあり、メイリオを先にもってくるケースが多いようです(下記URL参照)。自分…

GAEでTwitterみたいなフォロー関係を実現する - fanout problem

http://dl.google.com/io/2009/pres/W_0415_Building_Scalable_Complex_App_Engines.pdf古い資料ですが。何か驚くべき手法が……!? と思って読んだらそういうわけでもなく。大勢のフォロワーに向けてパブリッシングするメッセージエンティティに、フォロワー…

DNS増幅反射攻撃の踏み台になってしまった

お恥ずかしい……警視庁の資料が、詳細な攻撃方法まで載っていてわかりやすい。 なるほどねえ。そうやるんですか( ..)φメモメモ http://www.npa.go.jp/cyberpolice/server/rd_env/pdf/20060711_DNS-DDoS.pdf攻撃の詳細まで知らなくても、とにかく誰からの問い…

oauth/access_token にアクセストークンを要求した結果と、SignedRequest内に格納されているアクセストークンで、expiresの数値の意味が違うメモ

パラメータとしてcodeを渡してoauth/access_tokenにアクセストークンを要求した場合、expiresの値として返ってくるのは、例えば↓くらいの数値で、これはトークン生成時からの有効期限(単位:秒)を表している。この例の秒数は日にち換算するとちょうど60日…

Java + facebook Graph API メモ

Graph API は restfb Graph API の呼び出しはrestfb。きれいに設計されていてとても使いやすい。オブジェクトをGETしたいときは、オブジェクトの種類を問わずfetchObjectまたはfetchConnectionを使う。これはすべてのオブジェクトを一意なIDで管理していて型…

jQueryの謎: new jQuery.fn.init と jQuery.prototype

jQueryのソースを読んでいて、よく理解できない点が2つ。軽く調べて、一応の結論を得たのでメモっておきます。まずは2つの問題をまとめておきます。 new jQuery.fn.init 問題 問題の箇所を2.0.0b1から抜粋すると、以下のとおりなのですが、line:51~ jQuery…

きろ字WOFF

きろ字 http://www.ez0.net/distribution/font/kiloji/をダウンロードして、武蔵システムのWOFFコンバータ http://opentype.jp/woffconv.htmでTTFをWOFFに変換。さいこー。 3MB超えるので未キャッシュ状態での表示はちょっと遅いですけど。

GAEの開発環境という言葉がまぎらわしい

デプロイしたからといってそこが本番環境とは限らないのですよね。GAE上に開発用アプリケーションをつくることはよくあるわけで。特にホスト名の管理が必要なアプリの場合。たとえば、あるURLを特定のホスト名でしか見れなくする、あるいはリダイレクトする…

ブログとか縦長のサイトで下にスクロールしまくってもサイドバーのコンテンツを追跡表示しつづけるあれ

jQueryプラグインにした。あとでプロジェクトにまとめてgithubにUPしよう。 (function($) { $.fn.track = function(offset) { offset = offset || 0; this.each(function() { var self = $(this); var initialCss = { position: self.css("position"), top: …

そういえばImagesServiceで元画像がgifだと画像データがおかしくなる

ネガみたいな色になったり、PNGで出力しても透過背景がまっくろになったり。数年前にも同じ問題で悩んだ記憶はあるのだけど、どうやって解決したのか覚えていなくて再び悩んでしまいました。二度と悩まないようメモっておこうと思う。解決方法は、この問題が…

ブロブストアに格納した画像データの扱い方

編集せずそのまま返したい場合 ふつうにBlobstoreからレスポンスに流し込めばおk。 BlobKey key = new BlobKey(asString("key")); BlobstoreService blobstore = BlobstoreServiceFactory.getBlobstoreService(); blobstore.serve(key, response); サムネイ…

Silm3でリクエストパラメータをオブジェクトモデルに自動変換

employees[0].name employees[0].address.zipCode employees[0].address.line1 employees[1].name employees[1].address.zipCode employees[1].address.line1 ...たとえばこんなリクエストパラメータを受け取って、EmployeeとAddressオブジェクトのグラフを…

TwitterのOAuth認証プロセスがリダイレクトループしたとき

原因はいくつかパターンがあるようですが、サーバサイドがJavaの場合、誤ったURLリライティングによってリダイレクトループに陥ることがあります。というか、陥りました。一見問題なさげな次のコードですが(slim3使ってます)。。。 StringBuffer callbackU…

BlobstoreService + slim3 でプチはまり

Blobstoreにファイルをアップロードするのといっしょにサーバにパラメータを渡す必要があったので、実現方法を二つほど考えたのですが、 multipartで送る Blobアップロード後に呼び出されるパスにあらかじめクエリ文字列でパラメータを埋め込んでおく どちら…

GAEJ PDFのテキスト抽出

Apache PDFBoxを使ってPDFのテキスト抽出を行おうとすると、java.awtパッケージのクラス(GAEJのホワイトリストに含まれない)を使っている関係でエラーが発生します。テキスト抽出にjava.awt関連クラスは不要なので、使用個所を削りまくってGAEJ上で動作す…

GAEJ Blobstoreのでっかいファイルをダウンロード

BlobstoreService blobstore = BlobstoreServiceFactory.getBlobstoreService(); BlobKey key = new BlobKey(asString("key")); response.setHeader("Content-disposition", "attachment; filename=hogehoge"); blobstore.serve(key, response); 何か理由が…

counter-resetはスコープを構成する

連番を表示したくて下のようなCSSを書いたのですが、各行の先頭すべてに "1." と表示されてしまい、「???」となったので調べました。 <style> #list li:before { counter-increment: item; content: counter(item) "."; } </style> <ul id="list"> <li>ひー</li> <li>ふー</li> <li>ほえー</li> </ul> とりあえずさっき…

古いTwitterウィジェットのコードをメモっとく

新しいウィジェットでは検索キーワードを動的に変えたりできないですよね……。というわけで。featuresプロパティはカスタマイズされているのか何なのかよくわかりません。プロフィール <script src="http://widgets.twimg.com/j/2/widget.js"></script> <script> new TWTR.Widget({ version: 2, type: 'profile', rpp: 3, interval: 6…

Twitter Bootstrapのfluidレイアウトで右側にあるカラムを、横幅が狭いときに上側に表示したい

こんなHTMLがあるとして…… <div class="row-fluid"> <div id="content" class="span8">めいんこんてんつ</div> <div id="sidebar" class="span4">サイドバー</div> </div> ブラウザ幅767px以下で表示すると、サイドバー要素がメインコンテンツの下に表示されてしまうわけだけど、これをメインコンテンツの上に表示するにはどうすればよいかということで。まずはHTML要素…

google日本語入力用、ピンインを声調付きで入力できる辞書

つくった。http://dl.dropbox.com/u/523141/pinyin.txtこれ↑をインポート。 入力モードを「半角英数」にして(言語バーの表示が _A のようになる)使ってください。

GAE/JでKuromojiを使って形態素解析

http://atilika.org/confluence/pages/viewpage.action?pageId=131141↑でKuromojiをダウンロードして、展開して出てきた kuromoji-x.x.x.jar を普通に WEB-INF/lib に配置して、下のようなコード(slim3)を書くだけ。jarファイルが約11MBで、辞書付きの形態…

GAE/JでApache XML-RPCをつかう

Apache XML-RPCそのまんま使おうとしたら案の定エラーが出たので、 リクエストXMLの生成 レスポンスXMLの解析 の2点のみをApache XML-RPCにやらせて、HttpURLConnectionの操作は自分で行うことにした。 必要なライブラリは以下の3つ。xxxのところはバージョ…