サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
blog.clouder.jp
よくターミナルで、catとかlessとかファイルなどを見たときに2バイト文字が化けて出力されて以降にlsなどの出力がガタガタになるときありますよね。 あれ、ないですか?それは幸せですね。 僕はよくあるんですけど、そういうときの対処法を昔だれかに聞いて、それ以来この状態になるとずっと今回紹介する技を使ってきています。 やり方は簡単です、ターミナルに以下のコマンド(?)を打つだけです。 % echo ^[c でも、単純に「echo スペース ハット ブラケット c」って打ってもだめです。 実際には「echo Ctrl-v Esc c」と打っています。 このあとリターンを押せば、あら不思議。 ガタガタしてた出力が直ります。 他にも対処法あると思いますが、僕がよく使うのはこれです。 これはエスケープシーケンスの1種で、この用途以外にもターミナルで色などを変えることもできます。ネットで調べると色の定
MySQL Manual | 6.2.1 数値型 MySQL には、INT(4) のように、型の基本キーワードに続いて整数値の表示幅をかっこ内に指定できるオプションがあります。このオプションの表示幅の指定は、カラムに指定された幅より小さい幅を持つ値で表示の左側を埋める目的で使用されますが、そのカラムに格納できる値の範囲が制限されたり、そのカラムに指定された幅を超える幅を持つ値の桁数が制限されたりすることはありません。オプションの拡張属性 ZEROFILL と組み合せて使用した場合、デフォルトのスペースに代わってゼロが埋め込まれます。けっこう勘違いしている人がいそうなのですが、mysqlの型でint(?)とか、?に数字を入れますが、この数字は上記の通りZEROFILLをした際にスペースに代わってゼロが埋め込まれる際の幅なのです。自分は勘違いというかあまりよくわかっていませんでした…。 つまり
iOS7 SDKから新たに追加されたUIKit Dynamicsというのを使ってみたのでご紹介。 UIKit Dynamicsは簡単に言うと、UIKitのビューたちを簡単に物理的に動かすことができるようになるAPIです。 使い方もとても簡単で、UIDynamicAnimatorというビューを動かすためのクラスに対して、用意されたBehaviorクラスを設定させてやるだけで、ビューを動かすことができます。 例えば、あるView Controllerのself.view上にあるtargetViewというビューを、pointで示すポイントに吸い付かせるように動かすコードは以下にように3行で書けます。 CGPoint point = CGPointMake(100.0f, 100.0f); UIDynamicAnimator *animator = [[UIDynamicAnimator allo
dateコマンドで今の時刻の1日前とかを求めるのってよくやると思いますが、 dateコマンドはOSによって方言があってオプションをいつも忘れて毎回調べたりしてるので メモがわりに書いておりきます。 1日前をもとめたいときは? BSD系 % date -v-1d Linux系 % date --date '1 days ago' 1日前をもとめつつフォーマットを整えたいときは? BSD系 % date -v-1d +%Y%m%d Linux系 % date --date '1 days ago' +%Y%m%d ある指定した日の1日前とかを求める方法。 BSD系 % date -j -v-1d -f %Y%m%d 20081201 +%Y%m%d ※この「-j」を付け忘れるとシステムの時間が変わっちゃうので注意 Linux系 % date --date '20081201 1days ago
markdown2impressってのを書きました。 https://github.com/yoshiki/markdown2impress これはmarkdownで書いた文章をimpress.jsに対応したHTMLに変換するものです。impress.jsっていうのは、CSS3をつかって文字とかをぎゅんぎゅん動かすことのできるプレゼンフレームワークです(prezi.comにインスパイアされて作ったらしい)。 impress.jsを使ってプレゼンをゼロから作ってもいいんですが、HTMLをいちいち書くのめんどかったのでmarkdown形式で書いたものをそれ用に変換してくれたらいいなと思って書いてみました。基本的にはmarkdownで書いた文章の1つのセクションが1つのスライドになるようになっていて、githubのリポジトリのREADME.mdをこのプログラムで変換するとプレゼンに変換されます。
なんかネットワークの問題を調べていたらtcpのリトライが発生している模様。 でもイメージトークしててもしょうがないので本当にリトライが発生しているのかtcpdumpで調べてみたんだけど、なにせ情報量が多過ぎる。 そんでtcpdumpの情報の解析方法を調べているうちにmiruoってのを見つけて、使ってみたら便利だったのでご紹介。 miruoはDSAS開発者の部屋の「高負荷サイトのボトルネックを見つけるには」で使い方とかも含めて紹介されています。 ダウンロードは↓からどうぞ。 TCPセッションモニタ「miruo」 これは便利だ。
先日メインで使ってるDoCoMoのフィーチャーフォンをGalaxy Nexusに機種変したのですが、それまでiPhoneで受け取っていたim.kayac.comの通知をAndroidでも受け取りたくなったのでどういう方法があるのか調べてみました。 im.kayac.comはGoogle Talk(Jabber)でも通知ができるので、やるとしたらその方向しかないんだろうなぁと思いつつググってみると案の定Google Talkのアプリで通知を受け取るっていう記事がいくつかみつかりました。 でも、なんか「素のGoogle Talkで通知を確認するのはなんかクールじゃない!」 と思っちゃったので、それ以外の方法ないのかといろいろ探してみたらみつかりました。 (みつかったというかアプリを利用して足りない部分は自分で作ったんですが...) 簡単に方法を説明しちゃうと、自前でXMPPのクライアントを立て
最近Androidの開発をしていまして、例にもれずEclipseが体に合わないため(というかEmacsが好きなため?)、Emacsで開発をしています。 しかし、いままでJavaで本格的に開発したことなかったのでEmacsにおけるJavaの開発環境がまったく整備されていないので、EmacsでもうちょっとJavaの開発がしやすくする便利なモードないのかなと調べてみました。 いろいろ調べてみたら、JDEE − Java Development Environment for Emacsってのがあったのですがなんかごてごてしていて、そんなモリモリの機能いらないんだよなぁと思っていたら「ajc-java-complete」っていうのをみつけました。 ajc-java-completeは名前の通りauto-completeやyasnippetと連携して補完することをメインにしたものになっていて、今も開
GNU Parallelがすごすぎて生きるのがつらいを見て使ってみました。 そもそも複数のサーバのaccess_logをtail -fで一括で見たかったからです。 GNU Parallelからダウンロードして % ./configure % make % make install でインストールは終了。簡単! Perlで書かれてるんでコンパイルとか必要ないっす。 インストールしたら目的のサーバ群に対して tail -f /path/to/access_log を発行するだけ。 % parallel -u ssh {} 'tail -f /path/to/access_log' :::: /path/to/server_list.txt こうするとserver_list.txtに列挙されてるサーバに対してtail -f /path/to/access_logが実行されます。 -u っていうオ
MacBook Airの11インチを遅ればせながら購入したclouderです、こんにちは。 購入したその日にさっそく開発環境を整えようとXcode4を入れて、iPhoneアプリ開発を...と思いきや、Perlの開発を始めたんですが、いくつかのCPANモジュールがインストール(コンパイル)できないのに気付きました。 コンパイル時のエラーは以下のようなもの。 lipo: can't open input file: /var/tmp/hoge.out (No such file or directory) どうやらXSなどのコンパイルが必要なモジュールでこの現象がおこっているようです。いろいろ調べてみたら、コンパイルオプションに「-arch ppc」があるのにppcのアーキテクチャのファイルが適切な場所にないからエラってしまうようです。 なんでだよーと思いつつ、Xcode4のREADMEを見た
仕事でアプリのボトルネックを探しているという話をしたら、hideokiさんが 「YAPC::Asia 2010 で cho45 が紹介してた Devel::KYTProf がいいよー」 って言ってたので、使ってみたらだいぶよかったのでご紹介。 Devel::KYTProfの作者はid:onishiさんで、リポジトリはhttp://github.com/onishi/perl5-devel-kytprofにあります。 このモジュール、何ができるモジュールかっていうと(まぁcho45さんの発表動画見ればわかるのですが)、モジュール名とメソッド名を指定してやると、そのメソッドの処理にかかった時間をさくっと調べられるというものです。 たとえば Foo::Controller::Bar の baz() って関数の処理時間が知りたかったら、そのアプリケーションのメインモジュールに use Devel:
ふとAtomPPで認証に用いられるWSSE Username Tokenを喋ってみたくなり試してみた。 その一部始終は下記である。 話相手となったのは、AtomPPを提供しているlivedoor Blogです。 また大丈夫だとは思ったのですが念の為Username、PasswordDigestの部分に関しては仮の物に書換えてあります。 % telnet cms.blog.livedoor.com 80 Trying 203.131.198.212... Connected to cms.blog.livedoor.com. Escape character is '^]'. GET /atom HTTP/1.0 X-WSSE: UsernameToken Username="clouder", PasswordDigest="NU0ydnNkNHhsc0ZGc3VydGs1MWRSRWR1
gitを手動でmakeしたんですが、コマンド系はさくっとmakeできるのに、make docがなにやらいろんな用意が必要で、めんどくさかったのでメモっておきます。(id:gfxに言われて書いてみたけど、正直参考になるかわかりませんw) ちなみに、ここに書いてあることはMac OS X 10.6.4でしか試してません。 あと、今回make docをする上で以下のサイトを参考にしました。 Tigerのときのメモっぽいけど...。 https://wincent.com/wiki/Installing_Git_1.5.2.3_on_Mac_OS_X_Tiger まずは、make docに必要なソフトウェア。(あ、もしかしたらこれ以外に元々入ってて気付かなかったものがあるかもしれません...) asciidoc gettext(getoptに必要) getopt(xmltoに必要) xmlto 最
githubとかで他の人のリポジトリをforkしたあとに、元のリポジトリの更新を取り込む方法。 $ git remote add foo git://元のリポジトリ $ git fetch foo $ git merge foo/master これでいける。 たぶん他にも方法はあると思うんだけど 追記(2010-06-25) lestrratさんから git pull foo でいけますお。 その前にgit checkout -b for_merge したほうが安全だと思うけど。 との返信を頂いた。 なるほど、その方が簡単ですね。
シェルスクリプト書いてて調べるのに時間かかったのでメモしておく。 ifのOR表現 if [ "x$val1" = "xfoo" -o "x$val2" = "xbar" ] then ... fi でOK。「-o」なんですね。 一生懸命「||」って書いてました...。
タイトルの問題ですが、自分はよく以下のような関数でやります。 HTML::TreeBuilderのas_HTML()がうまいことやってくれます。 (実際にはHTML::Element::as_HTML()ですが) sub _complement_html { my $broken_html = shift; my $html = do { no strict 'refs'; no warnings 'redefine'; local *HTML::Entities::encode_entities = sub {}; local *HTML::Entities::decode = sub {}; my $tree = HTML::TreeBuilder->new; $tree->parse( $broken_html ); $tree->as_HTML; }; $html =~ s#<ht
2010-03-05に行われたYokohama.pm #5でData::ObjectDriverについて発表したプレゼンを公開します。少しわかりづらい部分を加筆・修正したり、あとなんとなく英語にしてみました。 個人的にD::ODは、やれることは少ないけど、その分ソースが少ないので処理の全部を把握できるし、キャッシュやパーティショニングもサポートしてて使いやすいので、好きなORMの1つです。 興味がある方は是非使ってみてください。
なんか急に書いてみようと思い立ちました。 すべてを書ききれてないし、どの会社なのか、なんのプログラマなのか、どんな立場なのか、だれから見てなのかなど多角的に見たら正しくなかったり当てはまらないところもあるかもですが、個人的になんとなく「よいプログラマってなんだろう?」について現時点で思っていることをまとめてみました。 ちなみに、これらは今の時点で思っていることなので、またしばらくしたら変ってくるかもしれません。 目的への近道を知っている バグってる箇所を効率的に見付ける方法を知っている 目的の実装をする近道を知っている ターミナルでの操作が早い(我流でもよい) 広い視野で設計できる 場当たり的な対応をしない 場当たり的な対応ができる(敢えて) 複数人での開発を意識できる プログラム・作業量・インフラなどのコストを計算できる 自分の書いたプログラムの影響範囲を把握している 実装が早い 無駄な
最近Tokyo Cabinet(正確にはTokyo Tyrant経由でTokyo Cabinet)のテーブルデータベースを使っているんですが、どうも検索が遅いなぁと思ったらインデックスを張り忘れてて、Tokyo (Cabinet|Tyrant)でどうやってインデックスを張るのかを調べたので、そのまとめです。 実際にTCのテーブルデータベースでインデックスをどう張るのかというと、foo.tctってDBのnameってカラムにインデックスを張るとすると % tctmgr setindex foo.tct name ってやればOK。実際には張るインデックスのタイプが選べますが、その辺はドキュメントに載っていますのでそちらをご覧ください。 PerlモジュールのTokyoCabinetを使って張る場合は、 my $tdb = TokyoCabinet::TDB->new; $tdb->open("fo
追記: githubにリポジトリを作りました。 #soozy@freenodeでidコールされてて、なにかと思ったらText::MicroTemplateのEmacsのメジャーモードがあったらいいねーみたいな話しだったのでてきとうにでっちあげてみた。 そしたらすぐにimakado先生が問題あるところを修正をしてくれました。 imakado++ まだT::MTのパッケージには入れてないですがgithubのリポジトリの権限はもらったので問題なさそうだったら入れさせて頂こうかと思います。 名前はIRCですでに呼ばれてたtmt-modeにしてみた。
自分はずっと環境変数TERMにvt100を設定していたのですがvt100だとemacsとか使ったときに色が付かないというのがあってここしばらくはxterm-colorを設定していたんです。 でも、xterm-colorだとAlternate Screen Bufferといって、lessやmanやviなどの使用時に使う前の画面状態を覚えておいて、それらが終了したときに元の画面に戻すという機能あって、それがが有効になってしまい、これをどうやったら回避できるのかずっと悩んでいました。 これが有効になってると、直前まで見てたファイルを参考にコマンドを打ったりしたいのにそれが消えてしまい開発効率半減、いや半減以下になってしまうのです(個人的に)。 ということで昨日ずっとその解決法を探していたら、やっとみつけました。 http://slashdot.jp/~doda/journal/438524 詳し
二日目はちょっと仕事があって午後からの参加になってしまったのですが感想をば。 まずは、見たかったけど時間的に見られなかったものとしては 大規模画像配信を支えるPerl(id:kazeburoさん) Asynchronous Programming for (A)synchronous Communication(id:malaさん) かなぁ。 他にもいくつかあるけど、その辺はあとで録画を見ようと思います。 次に見たもので印象深いのはYuvalのKiokuDBですね。前々から使おうと思って使ってなかったので、これを機会にちょっといじってみようと思います。 あとはmiyagawaさんの「Remedie: Building a desktop app using Perl, SQLite and jQuery」を途中から見たのですが、今までデスクトップアプリは作ったことないんですがなんか作
前夜祭のYokohama.pmはそつがなく終わり、ほっとしたのも束の間。 YAPC::Asia 2009 1日目が本日行われました。 いろいろなセッションを見させて頂きましたが、その中でも個人的に面白かったものとしては LT、Ficia、PSGI/Plack、そしてAnyEvent ですかね。 LT以外は単純に自分が知らないものの話ということで大変興味深く聞かせて頂きました。 Ficiaは今迄あまり弄っていないmod_perl2のチューニングや設定うんぬん。PSGI/Plackはこれから期待の内容。AnyEventは今後いろいろと実務でも遊びでも使えそうということで、これからじっくりいじってみようと思いました。 あと懇親会は、去年以上に多くの方とリアルで話すことでいろいろと刺激を受けることができました。 やっぱりこういうのは必要だなぁと思った。 明日は2日目。そして最終日となりますのが今か
mod_rounded_cornersという角丸を生成するための Apacheモジュール(Apache2系用)を作りました。 というか会社のなんかのミーティングで誰かが 言ってたので勉強がてら作ってみた。 http://github.com/yoshiki/mod_rounded_corners/tree/master インストールは下記のようにすればOK。 % autoconf % ./configure % make # make install 設定はhttpd.confに <VirtualHost *:80> ServerName rounded-corners.example.com <Loction /> SetHandler rounded-corners </Location> </VirtualHost> て感じで書けばOK。 今のところはLocationが「/」以外だと
Androidの開発環境を構築して、HelloAndroidするまで。 JDK 6、antをインストール Mac OS XだとDeveloper Tools入れてると Javaとantは既にインストールされてるかも? JDK6 http://developer.android.com/sdk/1.5_r3/index.html ant http://ant.apache.org/bindownload.cgi Android SDK http://java.sun.com/javase/downloads/index.jsp Android SDKをインストール(といっても解凍して適当な場所に置くだけ) 以下のようにtools/をPATHに追加(↓はtcsh用のもの)。 .bashrcとか.tcshrcとかに書いとけばOK。 あと場合によってはJava用にCLASSPATHの設定が必要かも
自分用メモ。 もし、/はBasic認証したいけど、/fooと/barだけは制限をかけたくないという場合は、Locationディレクティブに以下のようにすればよい。 <Location ~ ^/(?!foo|bar)/> AuthType Basic AuthUserFile foobar.htpasswd AuthName BasicAuth require valid-user </Location>
次のページ
このページを最初にブックマークしてみませんか?
『Clouder::Blogger』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く