tech

豆腐ぶっかけ丼サイトを作りました

豆腐ぶっかけ丼があまりにも好きすぎて、豆腐ぶっかけ丼の写真共有サイトを作りましたw 豆腐ぶっかけ丼 ユーザ登録すると自分の豆腐ぶっかけ丼写真を投稿できるようになります。 (写真をみるだけならユーザ登録不要です)

Android端末にインストールされているアプリ一覧の取得

Androidの端末にインストールされているアプリ一覧を取得するサンプルプログラムです。 ポイントはこの2点。 探したいアプリの条件をIntentに設定する PackageManagerで条件(Intent)にあうアプリの一覧を取得 import java.util.List; import android.app.Act…

画像を使わずCSSだけで星形のチェックボックスを作る

CSSだけを使って星形のチェックボックスを作ってみました。ただしWebKitだけ。AndroidのChromeLiteでもOKです。 input[type="checkbox"]{ -webkit-appearance:none; line-height:5em; width:5em; height:5em; border:solid 1px #ddd; background:-webkit-gra…

剰余(あまり)の計算について

最近、仕事で暗号技術を使うことがあり、暗号技術入門として有名なアリス本を読んでみました。 すごくわかりやすいので、おすすめです! アリス本には公開鍵暗号の1つRSAについて計算方法が詳しく書いてあります。RSAでは剰余(あまり)を求める計算を暗号の基…

レインボーテーブルを使ったハッシュの復号とSalt

会社の勉強会で発表したネタです。 レインボーテーブルという方法を使ってパスワードハッシュを復号してみようと言うお話と、パスワードハッシュを作るときにSaltを使おうというお話です。 ちなみに僕が実装したレインボーテーブルはhttp://h13i32maru.jp/mi…

java.langでBase64実装

AndroidアプリでBase64を使う必要があったのですが、どうやらAndroidには入っていないようです。 (ドキュメントには存在するんだけどなー Base64 | Android Developers)ないなら作るか。というわけで、Base64を実装してみました。 先に白状しておくと、非常…

TwitterをGoogle風にするスクリプト「CustomTwitter」を新Twitterに対応させました

新Twitterになってから、動作してなかったCustomTwitterをようやく更新することができました!CustomTwitter for Greasemonkey これは何? TwitterのサイトをGoogleの検索結果風のデザインに変更できます 特定ユーザのツイートを強調表示、非表示にできます …

Android超入門 - JDK,Eclipse,AndroidSDK -

業務でAndroidアプリを作ることになったということもあり、Androidの勉強をしています。Java , Eclipseも初めてなので、色々苦労しながらやっております。 JDKのインストールから、AndroidでHelloWolrdを表示するまでのメモです。 参考書籍は「Android2.1プ…

プログラミングコンテストチャレンジブックのAnts問題が面白い!

最近友達3人でRubyの勉強会を週一回しています。「プログラミング言語 Ruby」を20ページくらいみんなで読んでいきます。読み終えたらRubyで一つプログラムを書いて、みんなで検討するというゆるい感じの勉強会です。 最近は「プログラミングコンテストチャレ…

vim再入門

僕はかれこれ5年くらいvimを使ってるんだけど、それにしてはvimを知らなさすぎると思って、勉強しなおしてみました。 参考書籍は「オライリー 入門vi」なのでvimじゃなくてviの基礎から勉強。 で、今まで使っていたコマンドと、新たに覚えた使えそうなコマン…

VirtualBoxのGuestOSにSSHで接続する

僕はMacなので、VMWareじゃなくてVirtualBoxを使っています(VMWare Fusionは有料)。で、そのGuestOSにSSHで接続する設定をしたのでメモ。 ネットワークはNATを使っているので、ポートフォワードの設定が必要です。 Macのターミナルを立ち上げて以下のコマン…

Rubyでメモ化を使ってフィボナッチ数を求める

最近友達と始めたRubyの勉強会でお題として、フィボナッチ数を求めるプログラムを書いてみました。 メモ化という仕組みを実装したり、そのメモ化をさらに改善したり、再帰じゃない方法で書いてみたりと色々面白かったので、ちょっとまとめておきます。 フィ…

Ubuntu10.04のtracにTracAccountManagerプラグインをインストール

最近個人的にtracを構築したのですが、TracAccountManagerの入れ方がわからず、色々困ったのでメモ。 最終的にはeasy_installを使えばすんなりいけました。 tracのバージョンは0.11.7です。 AccountManagerをインストール 参考 : http://trac-hacks.org/wiki…

時間の比較は文字列と数値のどちらが早い?

最近会社でapacheのアクセスログ解析というのをperlを使って行っています。例えばこんな感じのログがテキストファイルに保存されています。 ... 2010-09-20 21:30:12 A.B.C.D http://example.com/hoge.html ... 2010-09-20 21:30:13 W.X.Y.Z http://example.…

Ubuntu10.04へのtracのインストール覚え書き

個人的にwikiが必要になったのでUbuntu10.04にtracをインストールしました。今回はその覚え書きです。 The Trac Project Trac is an enhanced wiki and issue tracking system for software development projects. wiki + ticket + svnは社内でも結構使われ…

オブジェクトの作り方

「5継承」からのメモ 一般的なクラス型言語では元となるクラスを定義し、そのクラスからオブジェクトを作ります。 var $h = new Hoge(); javascriptはプロトタイプ型言語なので、クラスというものがありません。ではどういう風にオブジェクトを作るのかとい…

PHPカンファレンス2010テックデイに行ってきたよ

昨日は友達(PHPは全く使わない)をさそってPHPカンファレンス2010テックデイに行ってきました。 PHPカンファレンス2010 僕はこういうカンファレンス(外部の勉強会も)行ったことがなくて、どんなのかなーと思ってたら意外とゆるい感じで楽しかったです。今回…

これでクロージャも怖くない

「4.10クロージャ」からのメモ。 javascriptにはブロックスコープがありません。しかし関数スコープが通常の言語の関数スコープとは異なっていて、クロージャという機能をもっています。 クロージャ - Wikipedia クロージャ(クロージャー、closure、閉包)…

クロージャを使ってメモ化

「4.15メモ化」からのメモ。 この本によるとメモ化とは 関数は、不要な処理を省略するために、前回の操作結果をオブジェクトに記憶しておくことができる。この最適化はメモ化と呼ばれる クロージャの説明と同じく、これも言葉だけじゃわかりづらいと思うので…

関数の呼び出し

「4.3関数の呼び出し」からのメモ。 ある関数が呼び出されたときその関数内でのthisの指し示すものは、関数の呼び出し方によって4つの場合がある。 メソッド呼び出し 関数呼び出し コンストラクタ呼び出し apply呼び出し メソッド呼び出し オブジェクトのメ…

PHP5.3.2のpdo_mysqlインストールで少しハマったところメモ

PHP5.3.2::PDOを使ってMySQLを操作するにはpdo_mysql.soというドライバが必要です。PDO自体はPHPに組み込みなのでインストールしなくても良いのですが、pdo_mysql.soは別途インストールが必要です。 必要パッケージのインストール 環境はUbuntu10.04で作成。…

さくらVPSをレンタルしてみた

VPSとは「バーチャル・プライベート・サーバ」の略で、仮想サーバをレンタルできるものです。もちろんroot権限がありますし、サービスによっては好きなOSを入れられたりします。 バーチャル・プライベート・サーバ - Wikipedia さくらもこのVPSを月額980円で…

PHPのクロージャ(無名関数)

PHP5.3.0からクロージャ(無名関数)を使用できるようになっているみたいです。 PHP: 無名関数 - Manual 無名関数はクロージャとも呼ばれ、 関数名を指定せずに関数を作成できるようにするものです。 コールバック パラメータとして使う際に便利ですが、用途…

さくらサーバでRuby::DBIからエラーがでるようになった

9/1に僕がさくらサーバを使って運営しているTooxが動かなくなってました。会社から帰ってきて調査してみたところ、どうやらRuby::DBIが使えなくなってるもよう。 test.rb #!/usr/local/bin/ruby require "dbi" test.rb実行結果 /usr/local/lib/ruby/site_rub…

プロパティおよびメソッドへのアクセス

「6.3プロパティおよびメソッドへのアクセス」からのメモ。 PHPでのオブジェクトの代入は参照渡しになります。参照ではなくコピーしたい場合はclone構文を使います。 age = 10; $foo = clone $hoge; $foo->age = 20; echo "\$hoge->age = {$hoge->age}\n"; e…

インターフェースと抽象メソッド

「6.4.5インターフェース」「6.4.6抽象メソッド」からのメモ。 PHPであるクラスに特定のメソッドを実装されることを強制するにはインターフェースや抽象メソッドを使用します。 インターフェース hoge(); ?> ClassA::hoge() 抽象メソッド 抽象メソッドを一つ…

コンストラクタ

「6.4.7コンストラクタ」からのメモ。 PHPで親クラスのコンストラクタは自動的に呼び出されないので、サブクラスで呼び出す必要があります。 (デストラクタも同じ)

シリアライズ

「6.6シリアライズ」からのメモ。 PHPではオブジェクトをシリアライズするのにはserialize()/unserialize()を使用します。 name = "alice"; $en…

配列の要素のフィルタリング

「5.9.4配列の要素のフィルタリング」からのメモ。 array_filter()を使った配列のフィルタリング Array ( [0] => 9 [1] => 23 [3] => 7 )インデックスが張り直されないので、注意が必要。

配列の使用法

「5.10配列の使用法」からのメモ。 和集合 Array ( [0] => a [1] => b [2] => c [3] => aa [4] => cc ) 積集合