何度やっても同じ

ただの日記

CentOS7でNginxでWordPressあとPHP5と7切り替え

qiita.com PHPバージョンの切り替えについては、だいたいこのサイトで。 worklog.be Nginx+WordPressの設定はこちらで。 nginxはデフォでユーザnginxで実行されていて、それはいいのだけど、php-fpmはユーザapacheで実行されてしまうので、nginxに統一したい…

外部にメール送信できるようPostfix設定

saslauthd設定 /etc/sysconfig/saslauthd /etc/shadow を利用した認証方法に変更 # MECH=pam MECH=shadow 再起動してOSユーザ名とパスを使って動作確認。 $ service saslauthd restart $ testsaslauthd -u user -p pass 0: OK "Success." postfix設定 /etc/p…

scala-sshでscp

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

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

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

Javaの正規表現で \p{Han} がPatternSyntaxException

Java8と9で確認した。それ以降のバージョンでは確認していない。 Pattern p = Pattern.compile("\\p{Han}+"); Matcher m = p.matcher("吾輩は猫である"); while (m.find()) { System.out.println("matched: " + m.group()); } が Exception in thread "main"…

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…

バッテリー膨張で修理にだしたMacbook Proが返ってきた

バッテリーが膨張して平らなテーブルに置いてもPCの中央部分が接地してガタつくので、修理に出した。 最初の電話サポートでは情報をもらえず後でわかったことなのだけれど、修理の際、Apple直か正規サービスプロバイダかで、料金がちがう。プロバイダのほう…

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…

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古い資料だけど。何か驚くべき手法が書かれているのか?と思って読んだらそういうわけでもなく。大勢のフォロワーに向けてパブリッシングするメッセージエンティティに…

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 = functio…

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

position: fixed に設定すると、設定した瞬間のleft値で固定されてしまうので、横にスクロールした場合、追跡表示要素がx軸的にも同じ位置に表示されてしまう。じゃますぎ。というわけで、http://xfan.hateblo.jp/entry/2013/01/20/101604に var offsetLeft …

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のところはバージョ…