サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
nitamago-archive.hatenablog.com
stat関数は、ファイルやディレクトリについての情報を返す。 デバイスとかを触るには知っておかないといけませんね。 Manpage of STAT といっても、stat()で得られるstat構造体は、中身を見てみないと何かよくわかりません。 (manを読めば何の意味を持つのか、はある程度わかるけど) なので、とりあえず、statで情報を出力するプログラムを作ってみました。 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <stdio.h> void print_stat(struct stat *st) { printf("st_dev: %10d\n", (int)st->st_dev); printf("st_ino: %10d\n", (int)st->st_ino); printf(
以下のURLにアクセスするとランダムなページの飛べるということを知った。 http://ja.wikipedia.org/wiki/Special:Randompage ブックマークツールバーに置いておくといい感じ。 via:blog@slightlyblue: wikipediaのランダムページへ飛ぶ
PythonのマイクロフレームワークFlaskについて調べていたら以下の記事を見つけました。 Pythonのマイクロフレームワーク「Flask」ならApp EngineのTwitter Botが15行で書ける | TRIVIAL TECHNOLOGIES on CLOUD 練習がてらマネしようと思いましたが、今はTwitterの認証方法がOAuthなので、その形で作り直してみます。 TwitterのライブラリはTweepyを使うことにします。 #coding: utf-8 import random import tweepy from flask import Flask app = Flask(__name__) consumer_key = "your consumer key" consumer_secret = "your consumer secret" my_access_t
例えば、対話モードでPython使用中に、hogeというライブラリを編集して再度読み込ませたい場合、reload(hoge)で再ロードすることができる。 では、 from hoge import * という形式で読み込んだときはどうすればよいか。 ひとつの方法としては、一旦hogeをimportしてからreloadし、from 〜を実行する import hoge reload(hoge) from hoge import * その場合結局hogeオブジェクトもできてしまうが、対話モードで手軽に試しているときなら気にしないでいいと思う。 参考 Re: using reload() with "from ... import *"
for文でrangeをインデックスにして使うときにちょっとハマったのでメモ。(Python 2.5.5) ハマってたこと リストを逆順にするreverse()メソッドを使おうとして、 a = range(10) a.reverse() #=> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] となるのに、 a = range(10).reverse() #=> None となってしまう。そのため、for文で使いにくくて困っていた。 解決方法 結局、やり方としては3種類ぐらいあるみたい。 rangeの第3引数に-1を指定 reversed(list)を使う スライスを使う rangeの第3引数に-1を指定 rangeの第3引数は生成する配列の数値の間隔。 ただし、range(10)の逆順を得ようとすると、第1,2引数もそれぞれ1引かないといけないので使いづらい。 range(10
ここの練習問題をやっていると、コンパイル時にこんな警告がよく出る。 $ javac jp/co/itboost/stexam/algo/MailRuleExamMain.java 注:./jp/co/itboost/stexam/algo/RuleList.java の操作は、未チェックまたは安全ではありません。 注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。 自分で解く部分ではないので何度かスルーしたが、気になって調べてみた。 Java 2 SDK バージョン5.0(1.5.0)では,新たに型安全性のための「型チェックの技法」が導入されています。この新しい機能は,従来のJava 2 SDK 1.4.XベースのCollectionsフレームワークの機能と整合しません。 書籍サポート:ひとりでできる Java 実践入門:サポートページ|g
長らく欲しい欲しいと言いながらあとひとポチがなかなかできなかったMacBook Proをようやく購入することができました。今週後半に届く予定なので、届いてからやるべきことを参考に。 最初は素のMac OSを楽しんで、開発環境も整えられるといいな。 Macの基本 何はともあれ、基本操作を覚えていないと何もできない。 アップル - Macを使いこなそう - Macの基本 まずはオフィシャルなものを一通りみないとね。 意味不明なMacのショートカット記号 | デジイチ最新情報! 電気屋でMacを触ったとき、確かに意味不明でした。助かる。 Mac使う際、覚えておくとテキスト入力がかなり楽になるショートカットなど | goryugo, addicted to Evernote Emacsは慣れているのでこれはうれしい。 Mac初心者が覚えると便利な9つのショートカットキー。 | 僕がMacを使う理由
あのオレンジ色のデザインによっては不似合い甚だしいハイライト(枠と網掛け)を消すには、 -webkit-tap-highlight-color: rgba(0, 0, 0, 0); と、入れる。 参考 Android のブラウザのフォーカスが z-index を無視しているバグがなおらない - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech
現象 5月4〜5日のどこかで、Twitterの吐くユーザタイムラインが変わったようだ。 その前を正確に把握していないのだが、現在のRSS(たとえば私のツイートのRSSはこんな感じ)では、 <rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:georss="http://www.georss.org/georss" xmlns:twitter="http://api.twitter.com"> ... <twitter:source> <a href="http://www.atebits.com/" rel="nofollow">Tweetie</a> </twitter:source> <twitter:place/> ... </rss> という風に、twitter名前空間ができている。 私は、このRSSを
CVSからとってきたEmacsをmakeしようとしたらmakeinfoがないと怒られた。 apt-get install makeinfoしても出てこないのでなんのパッケージに入っているのかわからない。 texinfoというパッケージに入っているらしい。 makeinfoがない - ひげぽん OSとか作っちゃうかMona- ということなので、texinfoをインストールして実行してみたが今はUbuntuのパッケージマネージャで普通にEmacs 22がインストールできるのでそちらを入れた。 追記 早速トラックバックをいただきました。ありがとうございます。 aptパッケージシステムにおいて、ファイルがどこのパッケージに入っているかを知るにはapt-file searchを使う。 そこでapt-file searchですよ - ’(rubikitch wanna be (a . lisper))
Ubuntu 9.10のマシンにADP2を繋げてadbから操作しようとして少しハマっていたが、なんとかできるようになった。 手順としては、 AndroidManifest.xmlファイルでandroid:debuggable="true"にする Dev Phone側でUSB debuggingを有効にする ホスト側(Ubuntu)のマシンで/etc/udev/rules.d/51-android.rulesを作成する adbをroot権限で実行する。 具体的には、1〜3はDeveloping on a Device | Android Developersに記載されているのでそちらを参考に。 私は4でしばらく躓いていた。 誤ってユーザ権限で実行すると、 $ adb devices List of devices attached ???????????? no permissions とか
W3C - Offline Web Applications 日本語訳 - HTML5.JPによるとJavaScriptからローカルDBを扱えるとのことなので、サンプルコードを拝借しながら試してみた。Google Chromeでは既にHTML5の新機能の実装は入ってきているようで、簡単なノートアプリを作成したらさっくりと動いてしまいました。 こちらで試せます→testdatabase.html コード <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>web database test</title> <script type="text/javascript"> var db = window.openDatabase("notes","","notes app", 1048576); function clearNo
Windows環境からLinux(Ubuntu)環境にファイルを転送したときにファイル名に日本語を用いていると、Ubuntu側で文字化けしてしまいます。どうやら、Windows側はShift_JISで、Ubuntu側はUTFー8でファイル名を管理していることが原因のようです。 転送にWinSCPを使っていると、アプリケーションではこの違いを吸収することができないとのことなので、転送後にUbuntu側でファイル名を一括変更するという対応をすることにしました。 その際に使うのがconvmvというコマンドです。 Ubuntuならば、 $ sudo apt-get install convmvでインストールできます。 その後、 convmv -f sjis -t utf8 *で変換後のファイル名を確認し(この時点ではまだファイル名変換は実行されません)、 convmv --notest -f sj
いいものみっけた。 会社、社内の別拠点、出張先でそれぞれネットワークに接続するときに、いちいちプロキシの設定が異なっていて行くたびにFirefoxの設定をしなくてはいけなくて面倒でした。 そこで簡単にプロキシon/off&プロキシの種類を切り替えられるアドオンを検索…結構あるのね…その中でも一番レーティングが高かったこれをチョイス。 FoxyProxy :: Add-ons for Firefox 必要なプロキシをいくつか登録しておき、あとはステータスバーから簡単に切り替え。 これは離れられなくなりそうです。 スクリーンショット プロキシ追加画面その1 プロキシ追加画面その2 URLのパターンでフィルタ
先週の日曜の話なので鮮度は落ちてしまってますが、思い出せる限り書いてみます。 午前中は別件の用事があったため午後からの参加。ってリストを見直してみたら山田さんの発表からだから、5つしか見てなかったんだね…。 議事メモ的なことは既に色々な方が書かれていますので5名の方の発表を見て感じたことを。 (タイムスケジュールなどは第3回 SBM研究会 のメモ - Tocotonistの日記(晴れのち快晴)をご参考) 内容的に気になった発表 江原さんの「SocialDict - 英文Webページのスマートな注釈・辞書引きシステム」という発表が、システム全体としては面白かった。推薦システムの多くは「好き or not」な観点だが、「知ってる or not」な観点で学習を促進するという意図が興味深かった。英語学習だけでなく日本語の単語の意味や漢字の読みに応用ができれば、ニュース系の記事からは需要がありそうな
前にHeroku+Git+Sinatraで簡単Webアプリというエントリを書いてから、全然Sinatraを触っていなかったので、後述するサイトを参考にしながら、一人用ブックマークサイトを作ってみた。今回は主にビューのHamlとモデルのDataMapperを組み合わせて使ってみるのが目的。(といっても、参考エントリのコードに多少手を入れただけだけども) コード hitoribookmark.rb require 'rubygems' require 'sinatra' require 'dm-core' require 'haml' DataMapper::setup(:default, ENV['DATABASE_URL'] || 'sqlite3:db.sqlite3') ### class definition ### class Post include DataMapper::Re
せっかくWebKitが搭載されている上にJavaからWebKitを使うクラスも用意されているとあらば、使ってみないわけにはいかない。というわけで、ぐぐりながら単純なアプリを作成。 Androidアプリでインターネット接続するためには、作成する前にすることがあるらしい。 WebkitにURLを指定して、起動時にそのURLのサイトを表示するだけのサンプルアプリを作成していたところ、Socketエラーになってしまい解決方法が見つからずかなりはまった。 Androidアプリでインターネット接続する為に必要な設定(android.permission.INTERNET) - WillFeed 解決方法は、AndroidManifest.xmlにpermissionの一文を入れることだそうだ。最近なのか前からなのか知らないけど、直接XMLをいじらなくてもADTでは選択式でできるみたい。 よく見たら、公
最近、EC2とかGAEとか、簡単Webデプロイサービスが流行りですが、ようやく無料で簡単に使えるRubyのサービスも出たようです。それが、Heroku(ハーオークと読むらしい)。無料で使える環境は、容量5MBと少ないですが、個人で簡単なサービスをするだけなら十分かと思います。SSLも使えるみたいですので。 Herokuで容量・性能以外で選べるサービスはこんな感じ。 詳しいことは参考リンク先にお任せするとして、ちょっくら試してみました。 必要な環境 最低限、以下が必要です。 Herokuアカウント Git SSH鍵 gemで以下も入れておきましょう。 $ sudo gem install heroku sinatra 手順 1. 適当にディレクトリを切って、以下のファイルを作ります。 myhello.rb require 'rubygems' require 'sinatra' get '/
2009/04/24 01:01 ニコニコにアップした動画を最後に追記 Evernoteは、メモの同期機能や便利なスクリーンキャプチャ機能でかなり重宝しているツールです。 今日、いつものように無駄にデスクトップのスクリーンキャプチャして遊んでいたとき、ふと右クリックすると、そのファンタスティックな機能に気づいたのでした。 その機能とは、 キャプチャ画像の上に手描きでお絵かき さらに、その線が…(ひっぱってみる) ができるというものです。 Drawing Mode(お絵かきモード) Evernoteをインストールすると、PrintScreenキーを押したときに独自のキャプチャモードになります。そのときに右クリックすると、以下のようなメニューが出ます。 この一番上の「Toggle Drawing Mode」を選択する(または、ショートカットのDを押す)と、キャプチャ領域にお絵かきできるようにな
複数の式からなる関数マクロに、こんな表現があった。 #define nullcheck(x) do { \ if (x == NULL) { \ printf("NULL!\n"); \ } else { \ printf("not NULL!\n"); \ } \ } while(0) なぜdo〜while(0)で囲ってあるのかと思ったが、こうすることによって文末のセミコロンが抜けた場合にコンパイルが通ってしまうことを避けられるから、のらしい。 /* コンパイル通る */ #define nullcheck1(x) if (x == NULL) { \ printf("NULL!\n"); \ } else { \ printf("not NULL!\n"); \ } int main(int argc, char* argv[]) { int *x = NULL; nullcheck1
Emacsやvimでは矢印などの記号を入力したときに表示される文字幅が半角分になってしまい、表示が崩れることがあります。それぞれのエディタで、以下のようにすることでこの問題を解決できます。 情報元は、Emacs22 + UTF-8 における文脈依存な文字幅の問題についてです。 vimの場合 .vimrcに以下の設定を追加します。 set ambiwidth=double Emacsの場合 .emacsに以下を追加します。 (utf-translate-cjk-set-unicode-range '((#x00a2 . #x00a3) ; ¢, £ (#x00a7 . #x00a8) ; §, ¨ (#x00ac . #x00ac) ; ¬ (#x00b0 . #x00b1) ; °, ± (#x00b4 . #x00b4) ; ´ (#x00b6 . #x00b6) ; ¶ (#x00d7
第1回は不参加だったのでそれと比較することはできないですが、以下の点がよかったと感じました。 研究者と事業者と利用者の三者それぞれの観点から話を聞けた 普段使っているサービスの裏話が聞けた(オフレコなのはなかったですが) Twitter推奨のためリアルタイムに色んな人の感想を聞くことができた あとは細かな感想など。午後から参加したので、午前の方の発表は聞けてません。 ミニプレゼン「ブロガーから見たSBM」 広木 大地氏「普通のヤツらのメタをゆけ」 実は最初はボケーっとしててちゃんと聞いてなかったので帰宅してもう一度プレゼン資料を見直しましたw ソーシャルブックマークサービスの特性やセキュリティ上の問題などを細かくまとめてくれていた感じ。資料として何回も見直すのがいいと思います。 それにしても今はこんなにもSBMサービスがあるんですね。言われるまで知りませんでした。 美谷 広海氏「ソーシャル
「組み込みソフトウェア」とは何か 〜PC系ソフトウェアとの違い〜 - キャズムを超えろ! 私自身は組み込みソフトの中でも上位レイヤなアプリしかしたことないのでドライバ開発の事情はよく知りませんが、それでもPCソフトと違う部分はいくつか経験しました。 時計が合ってない 電源を入れたら毎回1970/01/01 9:00からのスタートなので、何らかの方法で時計を合わせないといけません。テレビなら放送波、イーサからNTPで時刻合わせなどをまずしなければなりません。特にSSL接続を行う場合は尚更。 あるはずの関数が使えない 組み込みベンダやuClinuxなどOSだと、PC Linux上で当たり前のように使っていた関数がなかったりします。私の経験では、getaddrinfoが使えなかったので代替関数を作成して名前引きを行ったことがありました。 メモリの使い方に気を配らないといけない これは組み込みに限
条件にマッチしたファイルに一個ずつ-exec以下のコマンドを適用していく。これは便利。 % find . -name \*~ -exec rm {} \; ⇒ カレントディレクトリ以下の *~ をリストアップして「rm 検索したファイル名」を実行する。{}の場所には検索したファイル名が入る。; はコマンドの終了を表すが、シェルに「;」を解釈させず、find へ「;」を渡すためにエスケープしてある。また、「{}」と「\」の間には必ずスペースを空けなくてはならない。 UNIXの部屋 検索:find (*BSD/Linux/Solaris) 今回は、サンプルファイルを一気にコンパイル、ということをやったので-execでよいのだが、例えばgrepなどの場合はfindとxargsの組み合わせで使った方がよいらしい。 ソースの中から文字列「hogehoge」を検索するには % find . -name
前回も軽く触れたけれども、automake/autoconfでビルド環境を作るのは少し面倒な印象があった。 ところが、autoreconfを使うと途中の面倒な作業を大幅に軽減できることがわかったので、メモがてら一連の流れについて書くことにする。 手順 ソースコードを用意する Makefile.amを用意する configure.acを用意する autoreconfを実行 あとは./configure && make && make install 1. ソースコードを用意する 今回は、以下のような簡単なソースコード(hello.c)からhelloという実行バイナリを作成するプロジェクトを作成する。 #include <stdio.h> int main(int argc, char* argv[]) { printf("Hello, world!\n"); return 0; } 2. M
iTunes on Ubuntu 8.04 - 逃げの一手 CoolDriverの日記 ここのとおりにPlayOnLinuxとwineはインストールが簡単に完了。 しかし、iTunesのインストーラをダウンロードしてインストールを実行してみるもエラーが出てインストールできず。 他の解説サイトも見てみるが、いずれのサイトでもバイナリのファイル名はiTunesSetup.exeとかそういう感じ。今ダウンロードできるのはiTunes8Setup.exe。これが原因だろうか…。 結局解決できず、そこまで優先度高くないので放置決定。 追記 コメントにて、ここから古いiTunesをダウンロードできるとの情報をいただきました。 早速ダウンロードして再度PlayOnLinuxを実行してみたところ、、、ん、、勝手に何かダウンロードして、、、自分の落としてきたiTunesSetup.exeを指定するまでもなく
ソーシャルブックマークに投稿するスクリプトの動作テストをするときに、 いくらテスト目的とは言え、コード内に直接パスワードを記述するのは嫌ですよね。 (特に近くに人がいる場合) そんなとき、パスワードだけ実行時に入力するようにすればその悩みもちょっと解決。 最初は、 print 'password: ' password = $stdin.gets.chop としていたのですが、これだと実行時に、 $ ruby hoge.rb password: (ここに打った内容が表示されてしまう)なので、パスワードをタイプしている間はコンソールに表示されないようにしたい。 ということで少し調べてみるとMLに以下のような投稿が。 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/5702 :rubyでパスワードをユーザから受け取りたいと
今Rubyで作っているちょっとしたシミュレータでイベント管理をするために、イベント(Eventクラス)とイベント管理のテーブル(EventTable)をそれぞれちまちま作っていたのですが、最初は各イベントが自作オブジェクトなため、ちまちまリンクトリストみたいなのを実装していました。しかし、ComparableモジュールをMixinして、<=>メソッドを定義すれば、便利なメソッドを使ったりできるとのことで、やってみました。 class Event include Comparable # Mixin attr_reader :time, :node, :job def initialize time_at, node, job @time = time_at @node = node @job = job end def <=>(other) self.time <=> other.time
よく使う割りに毎回覚えてなくてぐぐってしまう上にmanで読んでもよく理解できないのでメモ。 dateコマンドを使う。 (なんかコマンド) > output`date +%Y%m%d%H%M`これで、時刻まで付けたファイル名をつけられる。 例えば、output200804202348 とか。
次のページ
このページを最初にブックマークしてみませんか?
『にたまごほうれん草アーカイブ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く