サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
nazoking.hatenablog.com
最近 angularJS に対する期待の低下が著しくてつらい。 なんだかんだで SPA から jQuery に戻った話 - ボクココ Angularの問題では はてなブックマーク - mizchi のブックマーク - 2015年5月18日 みんな使いどころを間違ってるんや。1年半くらい使ってて不満もあるけど自分のよく使う範囲では angularJS 最強だと思う。 angularJS が向いてるのは Single Page Application ではない angularJS が向いてるのは ◎ フォームのような細かい部品を多用 & DOMツリーとデータスコープがほぼ一致していてユーザの入力をサーバに送ったりする webアプリ。管理画面、マイページ、業務アプリなど △ Single Page Application ← 簡単に作れるけどページ間の連携が必要ないならサーバ側で分けてしまった方
peco は補完候補を gui で絞り込みできるコマンドラインツール。chocolatey でインストールできる。 choco install pecoインストールした後に git 用 bash から実行するとなんかエラーが出て動かないが、cmd 経由だと使えるっぽいので ~/.bashrc に alias peco='cmd /C,peco'としておくと、普通に peco 使える。 あとはこのへんの関数定義すると便利っぽい http://qiita.com/sona-tar/items/fe401c597e8e51d4e243
この投稿は Git Advent Calendar 2014の 10日目の記事です。 昨日は kyanro@github さんの githubとgoogleを利用して世界征服の意図を調べる でした。 明日は @a-suenami さんです。社内に git サーバがあったりしてデプロイするときに git pull できずに rsync を使っていたりする全国の皆様こんにちは。rsyncだとデプロイ先で緊急修正したときや試行錯誤したあとにgitリポジトリに書き戻すのが大変だったりしませんか? EC2 でリポジトリサーバたてられればいいけど EC2 のインスタンスはそれだけに使うにはちょっと高い。せめて s3 にリポジトリがおけたら…… できます。 git ではなく jgit です。git を java で実装した jgit というプロジェクトがあります*1。 その中に jgit.sh という
この記事は Play framework Advent Calendar 2014 の9日目です。 昨日は @nazoking さんの play2.3 の sbt-web を使わず node で代替システムを作るための資料 でした。 明日は @xuwei_k さんの 2014年に自分がしたpull req です。 play でアプリを立ち上げて ps axwwww とかでプロセス見たときに恐ろしいことになっているのにお気づきでしょうか・・・ /usr/bin/java -classpath /opt/myapp/lib/org.scala-lang.scala-library-2.10.0.jar:/opt/myapp/lib/play.play_2.10-2.1.3.jar:/opt/myapp/lib/play.sbt-link-2.1.3.jar:/opt/myapp/lib/org
この記事は Play framework Advent Calendar 2014 の8日目です。 昨日は @gakuzzzz さんの ActionFunction の紹介 でした。 明日は @nazoking さんの play アプリケーションのクラスパス指定を短くする です。 さて、 play2.3 から asset のコンパイルなどを sbt-web という仕組みが受け持つようになりました。 https://www.playframework.com/documentation/ja/2.3.x/Migration23 https://www.playframework.com/documentation/ja/2.3.x/Assets build.sbt に pipelineStages := Seq(rjs, digest, gzip)のように記述してコンパイルすると /asse
utf8 → utf8mb4 とか! 既存のフィールドが100とかあったりするとちまちまやってられないのでsqlを生成する。 まずこうして ALTER DATABASE hogedb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; それから mysqldump -d hogedb |grep -E ' CHARACTER SET |CREATE TABLE'|sed \ -e 's/CHARACTER SET utf8/CHARACTER SET utf8mb4/' \ -e 's/ `/ MODIFY `/' \ -e 's/CREATE TABLE/ DEFAULT CHARACTER SET utf8mb4;\nALTER TABLE/' \ -e 's/($//' > alter.sqlすると DEFAULT CHARACTER
最近増えてきた json の扱いに困っていませんでしょうか? jqよくわからん、使い慣れたgrepやawkやperlのワンライナー使いたい。 そこで json2line を作りました。 https://github.com/nazoking/json2line python 2.6 以上で動きます。たぶん pip install https://github.com/nazoking/awsxx/wiki/dist/json2line-0.0.1.tar.gzでインストール出来ます。 こんな感じ $ aws ec2 describe-instances --filters name=tag:Name,values=ft02 | json2line --tsv -l Reservations.OwnerId 6765247xxxxx Reservations.ReservationId r-
便利なプラグインがあったのでそれ使った方がいいよ! vagrant plugin install vagrant-multi-puttyで vagrant puttyが使えるようになります。
最新(今日なら 1.1.5 )をダウンロード http://downloads.vagrantup.com/ インストール c:\vagrant\vagrant\bin\vagrant が出来ていることを確認 ( 1.2.0 だと "C:\Program Files (x86)\HashiCorp\Vagrant" にインストールされるようになったようです。以下適当に読み替えてください)←スペースがあるとmakeに失敗する! 1.2.2からは C:\HashiCorp\Vagrant にインストールされる模様なので其方にした方がいいかも c:\vagrant\vagrant\embedded\config.yml の内容を変更 C:\vagrant-temp\staging\embedded を → C:\vagrant\vagrant\embedded に変更( 1.2.0 だと - "
Play!frameworkの2.1がリリースされたのでハイライトまとめた Play!framework2.0.xから2.1へ移行する時にやったこと を見ながらやったけどそれだけじゃうまく動いてない。 パッケージ名がいくつか変わった play.api.PlayException.UsefulException => play.api.UsefulException null を返していたプロパティーなどがOptionを返す用になった UsefulException.cause など cookie.maxAge など Html.+ が非推奨になって Html.+= に json の扱いが変わった jacksonの新しいやつ使ってたけど変更が大変そうだったので使わないようにした Json.toJson が使えなくなった multipartFormDataパーサがファイル未送信時もテンポラリファ
チケットは「それをすることによって何が起こるか?それがされていないために何ができないか?」が大事だ。何をするか?はチケットのタイトルに書かれる。「何ができていないか?」がわかるようにした方がいい。 Redmineのデフォルトのステータスは次の物だけれど 新規 新たに登録されたもの。作業は未着手。 進行中 担当者が作業に着手。 解決 担当者の作業が終了。テスト/レビュー待ち。 フィードバック 差し戻し。作業が完了したものについてテストやレビューを行った結果、修正や追加の作業が必要となったもの。 終了 作業終了。 却下 作業を行わずに終了。採用されなかった新機能の提案、バグとして報告されたが修正する必要のないもの(報告者の誤認など) チケットのステータスの意味 | Redmine.JP 大抵「新規→終了」という流れになる。なぜなら「終了」以外に変更する意味があまり見いだせないからだ。また状況と
モチベーション ネットワーク設定をNATにするとホストOSからゲストOSのIPにアクセス出来ない。かといって他のアダプタにバインドするとホストOS以外からアクセスできてセキュリティー的な事気をつけないといけなくなって面倒くさいですよね……あとネットワークに接続してないときにIPなくなるしノートで無線と有線とemobile使い分けてたりとかすると毎回設定変更しないといけなくなるし、ホストがDHCPだとゲストも毎回IP変わる。 方法 NATとLoopback Adapterを使います。ゲストOSからはNAT経由でインターネットに出る。ホストOSからゲストOSにアクセスするにはLoopback Adapterを使います。 ホストにMicrosoft Loopback Adapterをインストール Loopback AdapterのIPを固定IPにする 仮想マシンの設定でネットワークの設定を アダ
これを適当なところにおいて trash.rb hoge.txtみたいにすると捨てられます。 ただ内部のcygpathがちょっとバグってて : などが名前に入ってるファイルを捨てることが出来ません助けて!
Redmineのチケットの担当者選択ボックスを関係者のみに絞り込むプラグインを作りました。 https://github.com/nazoking/redmine_assign_narrowdown Redmineチケットは主に「報告者←→実作業者」の間でやりとりされますが、担当者欄には常に全プロジェクトメンバーが表示されます。20人くらいになると選ぶ時間だけでもったいない。 このプラグインを導入すると、チケットの返信時に、担当者選択欄の横に「関係者のみ」というチェックボックスが現れます。それをチェックすると、そのページに名前の出ている人のみが表示されるようになります。たいていの場合、担当者と起票者です。他にウオッチャー、過去のコメントを付けた人などが紛れ込む場合があります。 普通のプラグインと同じように ruby script/plugin install git://github.co
centosのpythonが2.4でtailの+2とかが使えないなんて…… #!/bin/bash URL=$1 XPATH=$2 if [ "$XPATH" == "" ]; then echo "XPATH 解析。引数 [URL] [XPATH]" exit -1 fi XML=$(mktemp) || exit -1 curl -s $DOCUMENT > $XML echo "cat ${XPATH}"| xmllint --shell $XML |awk '{if(n>1){print t} t=$1;n++}' rm $XML xpath.sh http://example.com/hudson/job/hogebuild/lastSuccessfulBuild/api/xml "//revision/revision/text()" とかする 複数の値があると ----- み
同期というか、apacheの認証情報にredmineで使っているデータベースを使う方法。 Redmine には Apache-perlモジュールとして Redmine.pm というのがある。 http://www.redmine.org/wiki/1/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl 例えばredmineを /sites/redmine にインストールしたとすると /sites/redmine/extra/svn/Redmine.pm がそれ。 centos の場合は yum install httpd-devel mod_perlあと yum install perl-Digest-SHA1 perl-DBIこれだとDBIが古くてDBD::SQLiteが入れられないようなので(sqliteをデ
https://github.com/nazoking/perl-apache-authn-googleapps perlの書き方とかドキュメントの書き方とかどうやったらCPANにあげられるのかとかテストの書き方とか英語とか全然分からないので知ってる人は何とかして欲しいです。apache のユーザ認証を Redmine で行う Redmine.pm を見ながら作りました。 使い方は、GoogleApps.pm をダウンロードして、/usr/lib/perl/Apache/Authn/GoogleApps.pm みたいなところにコピーして(詳しい場所は自分のlinuxさんと相談)、httpd.conf に PerlLoadModule Apache::Authn::GoogleApps <Location /svn> AuthType Basic AuthName GoogleAccount
Docomo Web Mail というサービスをドコモが行っていて、i-mode宛のメールをwebから閲覧できます。 http://dwmail.jp/ でも転送機能とかがないので、rubyでなんとかするライブラリを作りました。 RubyGems に登録したので、 gem install docomo_web_mailer でインストールできます。 使い方は、まずはドコモWEBメールのアカウントを登録して、 require 'rubygems' require 'docomo_web_mailer' login_id, password = dwメールのid,パスワード your_smtp_server,your_smtp_server_port = SMTPサーバ,ポート forwarding_mail_address = 転送先メールアドレス mailer = DocomoWebMai
iPhone4は解像度が高いので、画像を切り替えないと、もやっとする。 【Webアプリ】iPhone4 で画像をきれいに表示する色々な方法【試行錯誤編】 | KAYAC DESIGNER'S BLOG - カヤックの意匠部によるデザインやマークアップの話 Retinaディスプレイに画像を最適化させるのって意外とめんどいよね! という現実に打ちのめされたので、まとめてみます。 によると ぜんぶ高解像度の画像にする → 3Gで表示が重いかも 画像を2種類つくって切り替える → 画像の数が多いとひとつひとつCSS指定するのが辛すぎる 画像はスケーラブルなデータ形式で用意する → 次に作るときはそうしよう…… 画像はそもそも使わないデザインにする → 次に作るときはそうしよう…… ということで決定打はなさそうな感じ。 でも、画像の切り替えって USER_AGENT 見て mod_rewrite で
日本の携帯のメール機能は素晴らしい。何が素晴らしいって、「差出人の名前を自分のアドレス帳で書き換えてくれる」機能が素晴らしい。 なんかよくわかんないけど国際化とか言ってメールの自分の名前を英語で入れてる奴は死んだ方がいいですね。欧米か!日本語になって他方が絶対識別しやすいじゃないですか。Y,A,M,D ……あ山田さん とかっていう考える時間を返して欲しいですよね。 会社名が入ってない奴も社会人としてどうか。どこの山田だよ!みたいな。 かといって社名がやたら長いのを律儀に入れててメールの差出人欄からはみ出して、名前の部分が見えない奴も困ります。寿限無寿限無コーポレーションの誰だよ! ってメール開かないと見えないとか。 あと同姓同名とかいたら最悪。どっちの?開発部の方?営業の方? たまに携帯からメールくれるときに名前がついて無くて暗号化されたメールアドレスのまま表示される でも、相手のメールの
eclipseのアイコンを変える(windows) を自動でやるスクリプト。プロジェクト毎にアイコンを入れ替えると複数のプロジェクトを受け持つ場合にとても便利!エクリプスのアイコンやスプラッシュも書き換えているのでalt+TABでもどのエクリプスか分かります! ↓ 140行目辺りのエクリプスアイコン、フォルダーアイコンのURL or パスは自分の好きなのに書き換えてください。 コマンドラインから ruby \ruby\eclipse-icon.rb \projects\Hoge\workspaceの様にすると、 \projects\Hoge\workspace をワークスペースト認識 その子か兄弟ディレクトリに eclipseで始まるフォルダがあると、それをエクリプス実行ファイルのフォルダと認識 \projects\Hoge\workspace\favicon.gif (or png, g
ソースを表示してもソースをダウンロード始めたりとか、URLの末尾しか見てないのでjavascriptでなくても出てくるとか、挙動が気に入らないので、出ないようにする。 // URLを監視しているcontent-policyを削除 Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager).deleteCategoryEntry("content-policy","@greasemonkey.mozdev.org/greasemonkey-service;1","@greasemonkey.mozdev.org/greasemonkey-service;1",true,true); // スクリプトを表示したときに通知エリアに出るそれの動作が、そのままだと旨く動かないので変更 GM_BrowserUI.inst
http://d.hatena.ne.jp/nazoking/20100514/1273774142 の続き 細かいというか解説がいらないのいろいろ すべてがオブジェクト オブジェクト指向型言語javaにおいてObjectではないものがある。int,long,floatなど。 たとえば 1.toString() はコンパイルできない。 しかし! scalaでは「すべてがオブジェクト」なので、上のコードはなんの問題もなくコンパイルできる。javaではいろんなところでintとIntegerの変換をしてやる必要があるが、scalaではそれは全部コンパイラが面倒を見てくれる。 クラス階層はこんな感じ Any +--AnyVal | +-Int | +-Byte | +-: | +--AnyRef <=Object +- String +- 普通のクラス +- : デフォルト値付き引数 scala2
http://d.hatena.ne.jp/nazoking/20100513/1273688373 の続き javaでよくあるこういうの InputStream is = new FileInputStream(new java.io.File("hoge.txt")); try{ // is を使ったなんか }finally{ is.close(); } で、closeの付け忘れとかあるので何とかしたい。付け忘れなくても、長いし。 しかし「なんか」の部分はよく変わるので固定化できない。File.readAsString() のような関数にすることは可能だが、メモリに載らない場合とかもあるし、string型じゃないので欲しいときもあるし、最初の数バイト読めばいいだけかも知れないし、途中でシークしてなんかするのかも知れない。 あと、上の例だとcloseの部分が一行ですむからいいけど、例えば
eclipse万歳!ということでscala+eclipseで初めてみる。社内でscalaを広めるために勉強会をするための準備だから、java使いの視点から書く。とりあえずゴールは「scalaでプロジェクトやってみよう」と大人の力を持った誰かに言わせること。だから 簡単に始められるように javaと連携出来る点を強調。javaのコードにscalaを混ぜても安全! javaのアンナ問題やこんな問題が解決することを、さりげなく という勉強会用パワポ(のようなもの)が最終出力の予定。 用意する物 java実行環境 1.6って書いてあるけど。僕は1.6が入ってた eclipse http://www.eclipse.org/downloads/ どれでもいいんじゃないかなぁ 一番小さそうなjava developmentのやつにした scala-eclipseプラグイン http://www.sca
世の中のjava脳な奴らのためにちょっと調査してやるか。 javaとどうよ http://d.hatena.ne.jp/nazoking/20100513/1273688372 の続き とりあえずjavaのインターフェースを実装できないとこっそりjavaの中に入り込めないよね。 import java.lang.Runnable; public class Fuga { public static void main(String[] args) { Runnable n = new Hoge(); n.run(); } } ってな時に、Hogeクラスをscalaで実装するにはどうしたらいいのか? class Hoge extends AnyRef with java.lang.Runnable{ def run():Unit ={ println("running!"); } } でした
S2Junit4 for eclipse や Quick Junitで指定したメソッドが実行できない Seaser2.4.15 から対応 https://www.seasar.org/issues/browse/CONTAINER-54?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel Seaser2.4.15 以上なのに指定したメソッドが実行できない( java.lang.NoSuchMethodError: org.junit.runner.manipulation.Filter.apply(Lorg/junit/runner/Runner;)V ) junit4.5だとそんなエラーが出る→junit4.4.jarを使う様にする トランザクションが変な風に効いてコミットが出来ていないように見える( 論
次のページ
このページを最初にブックマークしてみませんか?
『nazokingのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く