おやつの時間をお知らせしてくれるUnixコマンド:at teatime (他...)
January 08, 2013 at 08:30 PM | categories: unix, tips, linux |Favorite Linux Commands(http://clippy.in/b/YJLM9W) で紹介されてたコマンドのうち知らなかったものをメモ。
at
入力されたコマンドを指定されたタイミングで実行するようにスケジュールする。 cronに登録するほどでもない単発のコマンドを実行したいときとかにつかう。 時間の指定には現在の時刻からの経過時間や絶対時間の他にteatimeやmidnightといった文字列もつかえる。 ちなみにteatimeは午後4時。 出力先を指定しなければコマンドの出力はcronと同じようにメールにとぶ。$TTYにリダイレクトしてやればコマンドを実行した端末に表示させることもできる。
例
echo "echo おやつの時間です > $TTY"| at teatime echo "echo はろー > $TTY" | at now + 3 minute
mtr
tracerouteとpingをあわせたようなもの。tracerouteより表示がみやすい。 ネットワークのどこで時間がかかってるのか一目でわかる。
例
mtr mojavy.com
column
入力テキストをいい感じのカラム表示にフォーマットしてくれる。 縦に長い出力するコマンドとか、そのままだと出力がみづらいときとかにつかう。
例
gem list | column mount | column -t grep -v '^#' /etc/apt/sources.list | column -t
reset
端末をリセットする。 うっかりバイナリファイルをcatとかしてしまって端末が壊れてしまった場合に端末を閉じずに復帰できる。
sshfs
ssh経由でリモートのファイルシステムをマウントできる。
例
sshfs name@server:/path/to/dir /path/to/mount/point fusermount -u /path/to/mount/point # unmount
その他
以下はコマンド自体の機能ではないけど覚えておくと便利かもしれないもの
curl ifconfig.me
ifconfig.meというサイトがある。自分のグローバルIPがわかる。
dig +short txt .wp.dg.cx
dnsクエリでwikipediaのエントリーがみれる。
例
$ dig +short txt banana.wp.dg.cx "Banana is the common name for herbaceous plants of the genus Musa and for the fruit they produce. It is one of the oldest cultivated plants. They are native to tropical South and Southeast Asia, and are likely to have been first domesticated in Papua New " "Guinea. Today, they are cultivated throughout the tropics. They are grown in at least 107 countries, primarily for their... http://en.wikipedia.org/wiki/Banana"
ウェブエンジニアのためのオンラインツールまとめ
November 20, 2012 at 02:30 AM | categories: web, tips |The Web engineer's online toolboxというまとめ記事が便利そうだったので、実際に試しつつ抄訳してみました。(一部のコメントと体裁は変えています。)
目次
一覧
RequestBin
httpリクエストを保存するエンドポイントを作ってくれる。
Create a RequestBin のボタンをクリックするとURLが表示されるので、そこをHTTPクライアントからたたくとRequestBin側にリクエスト内容が記録される。 ソースも公開されてるのでローカルで立ちあげることもできる。
githubのwebhookのhelpも参考にどうぞ。
Hurl
httpリクエストを実行してくれる。パーマリンクも作ってくれるので、POSTリクエストもコピペで他の人と共有できる。
- 類似サービス: REST test test , Apigee console
httpbin
HTTPリクエスト側でレスポンスのHTTP status codeやレスポンスやリダイレクト、cookieなどを制御できる。HTTPクライアントのテストに便利。
- 類似サービス: UrlEcho
REDbot
HTTPのリソースをチェックしてくれる。問題を検出したら改善案のサジェストもしてくれる。
- 類似サービス: HTTP lint
WebGun
webhookを簡単に作るためのAPIを提供している。現在はまだベータっぽい。
Apify
ウェブページをスクレイピングしてJSON API化してくれる。 CSSセレクタかxpathに名前をつけて設定するだけでよしなにやってくれる。
Unicorn
前述のREDbotはHTTPをチェックしてくれるけど、こちらはHTMLドキュメントがW3Cに準拠してるかをバリデートしてくれる。
- 類似サービス: HTML lint
Feed validator
こちらはRSSとATOMフィードをバリデートしてくれる。
Link checker
リンクを再帰的にたどって、重複やリンク切れをチェックしてくれる。
Host tracker
ウェブサイトのモニタリングサービス。定期的にpingして、問題があった場合はメール通知してくれる。
Pingdom Full page test
ウェブページのロード時間を計測、解析してくれる。リクエストを実行するサーバは米国しかないので国内だとちょっと使いづらい。 類似サービスのWeb page testならTokyoが選べる。
HAR viewer
HTTP tracking toolsで生成されたHTTP Archive (HAR)形式のログをビジュアライズしてくれる。
CORS proxy
クロスドメインでjsを実行できるようにヘッダを追加してレスポンスしてくれるプロキシ。
Browserling
ブラウザ上で動くインタラクティブなクロスブラウザ。メジャーなブラウザは大体サポートされている。 動作は重いけど表示確認くらいになら無料のままでも使えそう。
WebSocket Echo Test
WebSocketをテストできるエコーサーバ。
YQL
ウェブサービスからとってきたデータをSQLっぽい言語で整形できる。
Yahoo Pipes
ウェブサービスをGUIでマッシュアップできる。
Apiary
良い感じのREST APIドキュメントをインタラクティブなインスペクタをつかってジェネレートできる。まだベータ。
- 類似サービス: Swagger
おわりに
- いくつかのツールはサーバに負荷をかけてしまう可能性があるので注意してつかってください。
- 他にもなにかあれば教えてもらえるとうれしいです。
細かすぎて伝わらないAndroid開発のはまりどころまとめ その1
November 07, 2012 at 12:00 PM | categories: android, tips |これまでandroidアプリを開発しててはまったことがたまってきたのでまとめておきます。順不同です。 その2はまたねたがたまってきたらたぶんそのうち。
目次
- 目次
- onAnimationEndでviewの階層を操作するとNullPointerExceptionでおちる
- Animationが動かない
- WindowManagerにaddViewしたときの挙動
- Activityが横向きでスタートした場合と縦向きでスタートしたときで表示倍率が違う
- onCreateが何回もよばれる
- popupWindowのサイズが変わらない
- HttpURLConnectionが 0byteのresponseを返す
- org.apache.http.impl.client.DefaultHttpClientがすごく遅い
- eclipseのAndroid pluginが動かなくなった
- WebViewで表示されるコンテンツが小さすぎる
- java.lang.RuntimeException: Stub!
- jarとして配布するandroidライブラリ内にリソースを埋め込むことはできない
- android-maven-plugin から mvn eclipse:eclipse でeclipse用にエクスポートすることはできない
onAnimationEndでviewの階層を操作するとNullPointerExceptionでおちる
Viewをフェードアウトして親Viewからremoveする、というような動作をしたい場合に、普通にonAnimationEndの中でremoveViewとかするとNullPointerExceptionでおちます。onAnimationEndの中でViewの階層構造を操作するような処理をしてはだめらしいです。回避するには、Handlerをつかってタイミングをずらしてやるとよいです。
Animationが動かない
AnimationさせるViewには親Viewが存在している必要があります。WindowManagerはViewではないので、WindowManagerにaddViewしたViewをアニメーションさせたい場合は空のRelativeLayoutとかにaddViewしてから、RelativeLayoutのほうをWindowManagerにaddViewしてやる必要があります。
WindowManagerにaddViewしたときの挙動
WindowManagerにもaddViewできますが、通常のViewとは挙動が違います。
- 背景透過はWindowManager.LayoutParam.format に TRANSLUCENT をセットすればよいです。
- dimでフェードインできますが、その際のdurationを変更する方法は分かりませんでした。
- BACKボタンはきかなくなります。自分でKeyEventを処理してやる必要があります。android.widget.PopupWindowのdispathKeyEventのソースが参考になります。
Activityが横向きでスタートした場合と縦向きでスタートしたときで表示倍率が違う
onCreateが何回もよばれる
回転やキーボード表示のタイミングでもonCreateがよばれます。AndroidManifest.xmlでconfigChangesを設定することで回避できます。
popupWindowのサイズが変わらない
popupWindowのsetWidth, setHeightは次回以降の表示サイズしか変えられません。既に表示しているポップアップウィンドウのサイズはそのままです。invalidateしても無駄です。
HttpURLConnectionが 0byteのresponseを返す
コネクションプールとkeepaliveがらみで問題が発生する場合があるみたいです。SDKのバージョンとウェブサーバ側の設定も影響します。
System.setProperty("http.keepAlive", "false")
で回避はできるようです。これに遭遇したときは、org.apache.http.impl.client.DefaultHttpClientの方を使うことにしたので詳細は追ってません。
org.apache.http.impl.client.DefaultHttpClientがすごく遅い
httpsでリクエストを投げると、ウェブサーバ側の負荷が高いわけでもネットワークが細いわけでもないのに、返ってくるまでなぜか数秒かかる場合があります。こちらもkeepaliveがらみの問題っぽいです。これもウェブサーバ側の設定が影響します。 試した限りでは以下のような状況でした。
- setHeader("Connection", "close") しても効果なし
- setKeepAliveStrategyでdurationを 0とか1にしても効果なし
- Connection closeしないウェブサーバならすぐレスポンスが返ってくる
- httpならすぐレスポンスが返ってくる
ここ( http://hc.apache.org/httpclient-3.x/sslguide.html ) のKnown limitations and problemsをみるとそれっぽい既知の問題があるようですが、根が深そうだったので詳細は追ってません。
eclipseのAndroid pluginが動かなくなった
なぜかeclipseでAndroid pluginが動かなくなるときがありました。詳細をメモるのを忘れてしまいましたが、以下の手順で直ったような気がします。
- Android Support Libraryをアンインストール
- eclipse再起動
- 新しいAndroidプロジェクトを作るとダイアログでライブラリのインストールを促されるのでそれに従う
- android プラグインをアップデート
WebViewで表示されるコンテンツが小さすぎる
通常ビューのスケールとWebViewのスケールは別です。setScaleで調整する必要があります。 これはたぶんiOSでも同様かと。
java.lang.RuntimeException: Stub!
android.jar内のコードはdalvikvmの外で実行することはできません。問答無用でタイトルの例外が飛びます。 エラーメッセージはもうちょいなんとかならなかったのか。
参考
- http://stackoverflow.com/questions/7247502/using-android-jar-in-java-project-runtimeexception-stub
- http://www.slideshare.net/miyatay/abc2011w
jarとして配布するandroidライブラリ内にリソースを埋め込むことはできない
リソースIDを列挙しているRパッケージはjarにそのまま入れることはできますが、そのリソースIDは不正なものとなります。 ライブラリにリソースを含めたい場合は、ソースも含めたプロジェクトをまるごと配布するしかないようです。
ごく小さなアイコン画像だけとかであればバイナリデータをソース中に埋め込んでしまう、というのも手です。 iOSならBundleという仕組みがあります。
android-maven-plugin から mvn eclipse:eclipse でeclipse用にエクスポートすることはできない
androidでもmavenは使えますが、androidのmavenプロジェクトは通常の方法(mvn eclipse:eclipse)ではeclipseにインポートできません。 以下のファイルを手動でつくってみたらとりあえずいけました。
- .classpath
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src/main/java"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath>
- .project
<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>project-name</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>com.android.ide.eclipse.adt.ApkBuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>com.android.ide.eclipse.adt.AndroidNature</nature> <nature>org.eclipse.jdt.core.javanature</nature> </natures> </projectDescription>
- project.properties
# Project target. target=android-10 # if it is a library # android.library=true
まあ、なんというか、Androidはいろいろ残念ですね。
iOSはこういう仕様なのかバグなのかよくわからないようなものが少ないし、OSバージョンの入れ換わりが早くて対応バージョンも少なくて済む分、個人的な体感ではandroidアプリの工数はiOSの3割増しという感じ。
UbuntuでPDFの日本語フォントが表示できないときの対処メモ
November 02, 2012 at 12:00 PM | categories: pdf, tips, ubuntu |Ubuntu 12.04 で日本語フォントのはいったpdfを開くと、日本語の部分が空白になって以下のようなエラーログが表示されてしまっていた。
Error (13373): No font in show/space Error (13412): No font in show/space Error (13497): No font in show/space Error (13515): No font in show Error (13555): No font in show/space Error (13572): No font in show Error (13607): No font in show/space Error: Missing language pack for 'Adobe-Japan1' mapping Error: Missing language pack for 'Adobe-Japan1' mapping Error: Missing language pack for 'Adobe-Japan1' mapping Error: Missing language pack for 'Adobe-Japan1' mapping Error: Missing language pack for 'Adobe-Japan1' mapping Error: Missing language pack for 'Adobe-Japan1' mapping Error: Missing language pack for 'Adobe-Japan1' mapping Error: Unknown font tag 'C0_0' Error (231): No font in show Error: Unknown font tag 'C0_1'
pdfビューワはDocument Viewerでもokularでも同様だった。
そこで、このあたりを参考に、
sudo apt-get install poppler-data
としたらちゃんと表示されるようになった。
redmineのメールを効率良くフィルタリングする
July 24, 2012 at 11:30 PM | categories: tips, redmine |redmineからとぶメールのヘッダにはX-Redmine-Issue-AuthorとかX-Redmine-Issue-Assigneeとかついているのでフィルタが簡単にできます。
いままでgmailでフィルタリングしてたので気付かなかった。。
メールクライアントはgmailのウェブアプリで十分だと思ってましたが、メーラはデスクトップアプリのほうが便利ですね。
About Me
mojavy |
Recent posts
95/5 Mbps とは
(August 30, 2015 at 04:22 PM)組み込み用プログラミング言語のパフォーマンス比較
(April 21, 2015 at 01:10 AM)最近読んだ本
(April 05, 2015 at 01:23 PM)Phabricatorを使ったワークフローについて
(March 02, 2015 at 08:55 PM)dnsimpleでダイナミックDNSをつかう
(December 23, 2014 at 08:02 PM)www2014のアドテク関連のResearch Trackメモ
(October 06, 2014 at 09:05 PM)flappymacs がMELPAに登録されました
(July 16, 2014 at 01:07 AM)EmacsでFlappy Birdっぽいもの書きました
(July 10, 2014 at 08:01 PM)
Recent Popular posts
Popular posts
Categories
- C (rss) (3)
- R (rss) (1)
- adtech (rss) (1)
- advent calendar (rss) (2)
- algorithms (rss) (2)
- android (rss) (2)
- aws (rss) (1)
- blog (rss) (2)
- blogofile (rss) (3)
- books (rss) (1)
- c++ (rss) (1)
- chef (rss) (4)
- common lisp (rss) (10)
- debian (rss) (2)
- dns (rss) (1)
- elasticsearch (rss) (1)
- elf (rss) (1)
- elisp (rss) (1)
- emacs (rss) (5)
- english (rss) (1)
- game (rss) (2)
- gearman (rss) (1)
- git (rss) (1)
- github (rss) (1)
- gitlab (rss) (1)
- golang (rss) (2)
- history (rss) (1)
- impress.js (rss) (1)
- internet (rss) (1)
- ios (rss) (3)
- jekyll (rss) (1)
- jenkins (rss) (1)
- linux (rss) (4)
- lisp (rss) (2)
- ltsv (rss) (1)
- lua (rss) (1)
- mac (rss) (3)
- mach-o (rss) (1)
- memo (rss) (2)
- mustache (rss) (1)
- note (rss) (1)
- objective-c (rss) (4)
- os (rss) (1)
- osx (rss) (2)
- others (rss) (1)
- paco (rss) (1)
- pdf (rss) (1)
- php (rss) (2)
- postfix (rss) (1)
- programming (rss) (12)
- project management (rss) (1)
- python (rss) (5)
- quicklinks (rss) (6)
- raspberry pi (rss) (2)
- redmine (rss) (1)
- reveal.js (rss) (1)
- ruby (rss) (10)
- sbcl (rss) (2)
- security (rss) (1)
- shell (rss) (2)
- smtp (rss) (1)
- solr (rss) (1)
- statistics (rss) (2)
- tips (rss) (10)
- tmux (rss) (3)
- toml (rss) (1)
- tools (rss) (1)
- twitter (rss) (1)
- ubuntu (rss) (1)
- unix (rss) (5)
- v8 (rss) (1)
- web (rss) (7)
- xcode (rss) (1)
- zeromq (rss) (2)
Archives
- August 2015 (1)
- April 2015 (2)
- March 2015 (1)
- December 2014 (1)
- October 2014 (1)
- July 2014 (3)
- March 2014 (6)
- February 2014 (4)
- November 2013 (3)
- October 2013 (4)
- September 2013 (2)
- July 2013 (2)
- June 2013 (2)
- May 2013 (1)
- April 2013 (6)
- March 2013 (3)
- February 2013 (8)
- January 2013 (5)
- December 2012 (1)
- November 2012 (6)
- October 2012 (7)
- August 2012 (1)
- July 2012 (9)
- June 2012 (1)
- April 2012 (1)
- December 2011 (2)
- November 2011 (2)