サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
円安とは
mikage014.hatenadiary.org
A. Base64へのエンコードで添付ファイルが10MBを超えてしまうから メールデータは一旦全てテキストデータに置き換えられて送信されます。 添付ファイル(バイナリデータ)をテキストに置き換えるときにサイズが大きくなってしまうのでメールサイズの上限ギリギリのファイルを添付するとエラーになって送信できません。 Base64 - Wikipedia Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。具体的には、A–Z, a–z, 0–9 までの62文字と、記号2つ (+ , /) 、さらにパディング(余った部分を詰める)のための記号として = が用いられる。この変換
svn, rsync, lftpを使ったデプロイ 開発環境はWindows、テストサーバーはCentOS、本番サーバーはFreeBSD。 CakePHP1.2、開発環境とテストサーバーはDB共用で、本番サーバーのDBはlocalhostという環境。 バージョン管理はSubversion(Trac)を利用。 本番サーバーはFTPでしかアクセスできない。 今まではテストサーバーにsvn exportしてapp/tmp を777にするスクリプトを作ってテストサーバーにデプロイ、動作確認した後、svnのログを見ながら手元のソースをFTPでちまちまアップロード(!)していたけど、modelキャッシュを消し忘れたり更新するファイルが足りなかったり、開発環境用のconfigを上書きして動かなくなったりしてさすがによろしくないと思っていたので改善してみました。 問題 svn exportするのに時間がかか
CakePHP+PostgreSQLの組み合わせで開発できるようにするメモ。 LAPP環境の構築、アクセス制御の設定が終わっていることが前提です。 LAMP/LAPP環境の構築 on Ubuntu 10.10 - mikage014の日記 PostgreSQLのアクセス制御 - mikage014の日記 CakePHPの配置 http://cakephp.jp/ から CakePHP 1.3.8 をダウンロードします。 ホームディレクトリの/work_php/cakephp に配置します。 $ mkdir work_php $ cd ~/ダウンロード $ unzip cakephp-cakephp-1.3.8-0-g33afe21.zip $ mv cakephp-cakephp-41cd0e4 ~/work_php/cakephp http://localhost/work_php/ で
PHPWordを使うとWord2007以降で使われているdocx形式のWord文書を扱うことができます。これを利用してWord文書のテンプレートを読み込んで、値を埋めて出力することができます。よくある帳票処理に使えます。また、Win32OLEを経由しないのでLinuxでも動きます。 Wordテンプレートに日本語を埋め込む PHPWordのExampleフォルダにTemplate.phpがあるのでこれをコマンドプロンプトなりで実行してみましょう。うまく動いたら置き換える文字列を日本語にして実行してみます。 <?php require_once '../PHPWord.php'; $PHPWord = new PHPWord(); $document = $PHPWord->loadTemplate('Template.docx'); $document->setValue('Value1',
プロセスが大量に発生して重くなっているときにプロセスをまとめて、もしくは様子見に10プロセス程killしたりするときに使えます。 10プロセスkill、消えたのを確認してまた10プロセスkill、というようなことができます。 フィルター(条件)をパイプで繋いでいくやり方は、条件を付けたり外したりが簡単にできるのでトラブルシューティングで威力を発揮します。 プロセス名を指定してまとめてkillする kill `ps -ef | grep ProcessName | awk '{print $2;}'` プロセス名を指定してプロセスIDの大きい順にkillする kill `ps -ef | grep ProcessName | awk '{print $2;}' | sort -nr` プロセス名を指定して最初の10プロセスをkillする kill `ps -ef | grep Process
RubyとCOM WordやExcel*1はCOM(Component Object Model)を通して外部から操作することができます。 ファイルを開く 文字列を置換する 印刷する 保存する 別名で保存する 形式を変更して保存する これらの操作を組み合わせてフォーマットの一括変換や定型文書の差し込み処理を行うことができます。 RubyにはWin32OLEライブラリが付属していてCOMオブジェクトを操作することができます。RubyからWord・Excelを操作する場合、通常はMicrosoft OfficeのCOMを呼び出すことになります。 つまりRubyでWord・Excelをバッチ処理したいマシンにはMicrosoft Officeがインストールされている必要があります。しかし、ここでMicrosoft Officeと互換性のあるOpenOffice.orgのCOMを使うことができます
6/11の第9回山口県WEB勉強会では2会場を繋いでのSkype座談会でハウリングに悩まされました。2会場で共にスピーカー・マイクを使うと音声がループしてハウリングが起きます。原理的にハウリングを無くすにはサテライト会場が全員イヤホンにするのがいいかなと思ってできるだけ安価な方向で機材を揃えてみました。 6ポートイヤホン分配器 1,000円x2 @三月兎 ミニS(オス)-フォンS(オス)ケーブル 150円x3 @サウンドハウス 4chヘッドホンアンプ HA400 Microamp 1,950円 @サウンドハウス ミニフォンS(F)-フォンS(M) 80円x5 @サウンドハウス イヤホン延長ケーブル*1 200円x5 @マルツパーツ館 秋葉原店 計5,800円。この装備で1つのイヤホン/ライン出力から12人までイヤホンが使えます。6ポート分配機が4つあれば20人までOKです。5人までなら6ポ
Ubuntu10.10がいい感じだったのでうちのノートPCにもいれてみました。ただ、80GBのSSDが埋まってたので120GBのSSDを買ってきて(言い訳:Ubuntuを入れるため)ddでまるっとコピーして空いた領域にUbuntuをインストール。ついにIntel G2シリーズをコンプしてしまいました…。 それではデュアルディスプレイの設定にいってみましょう。 追加ドライバの導入 システム>システム管理>追加のドライバ からAMDのグラフィックドライバを追加します。 同時にCatalyst Control Centerがインストールされます。 デュアルディスプレイの設定 システム>設定>ATI Catalyst Control Center(管理者モード) を起動します ディスプレイマネージャでセカンダリモニタを有効にするとデュアルディスプレイになります。 たったこれだけ。簡単ですね。
今関わっている案件でレコードの更新履歴があるとうれしいなという話を聞いて、 システム設計日記 http://masuda220.jugem.jp/?eid=350 の「記録は不変( immutable )」パターンを思い出して実装してみました。 ビジネスのイベント記録の原則は、不変 ( immutable ) です。 一度記録したら、その記録を「削除」したり「変更」することを禁止する。 データベースで言えば、insert 文はOKだけど、update 文、 delete 文は ダメ、ということ。 テストシナリオ 案件を管理するテーブルがあり、進行に従って案件のステータスを変えて行くことを考えます。 id 案件番号 案件名 概要 ステータス 日付 1 10-001 案件A Aシステムの開発 0 2010/04/01 2 10-002 案件B Bシステムの開発 0 2010/04/10 3 1
TwitterのBASIC認証が6月末で廃止されるので、はてなブックマークをWebHook経由でTwitterに投稿するPHPスクリプトをOAuth対応に書き直してみました。Bit.lyの短縮URLにも対応していますので、bit.lyのアクセス解析も利用できます。書き直すにあたって以下のサイトを参考にしました。 PHP+OAuthでTwitter - SDN Project PHPからbit.lyやtr.im等のURL短縮サービスをまとめて扱える「PEAR::Services_ShortURL」:phpspot開発日誌 OAuthにtwitteroauth, Bit.lyの短縮URLにPEAR::Services_ShortURLを利用したのでコーディングしたのははてブWebHookからのPOSTメッセージを受け取って140文字以内に収めてtwitteroauthに渡すまで。BASIC認証
第3回山口県WEB勉強会 ATND: 第3回山口県WEB勉強会 Googleグループ: 山口県WEB勉強会 時間割: 第3回 山口県WEB勉強会 時間割 勉強会の流れ 今回は前半が発表、後半がワークショップでした。 12時〜13時 名刺交換タイム 13時〜16時 発表+ディスカッション 16時〜18時 ワークショップ 発表 「JAVAアプレットを見直してみよう」@shibatchii 「萩商工高校情報デザイン科の取り組みについて」@wataru_m 「LOFTY手伝ってくださる方募集!」@lotusmie @imiho429 「CMS」@lesson5 ディスカッション iPhone 4 の自慢をしてください クラウド環境の経験者いますか? 首都圏以外で勉強会を開くには?/続けて行くには? ワークショップ スマートフォンアプリを使ったビジネスモデルを考える 個々の内容は他の方のブログに任せ
第1回俺ツイ 山口県Web勉強会で顔なじみになった大石さん(@meso_oishi)発案の山口県プログラマー協会、その第一回目のイベント「俺ツイッタークライアント」をつくろう in 山口に参加しました。 ピザとビールをつまみつつ俺ツイッタークライアントを作ろうという企画で、参加者は8名。第一回目は懇親会の時間も切り詰めて12:00〜20:30まで全て開発時間。 終わりまでに間に合わせようと、久しぶりに集中して開発しました。同じ場所でみんなで集中して開発というのもこれまでにない不思議な感覚。家だとどうしてもだらーんとしてしまうので、いい刺激になりました。 蓋を開けてみれば、C#, PHP, Ruby, Perl, schema, Word VBA, Excel VBAとみんなバラバラな言語。id:sakurako_sさんの記事を見て思い出しましたが、集まって開発するイベントをハッカソンという
ActiveRecord::Baseクラスのcolumnsメソッドでカラムの情報が取得できます。 nameにフィールド名、typeにフィールド型が入っています。 null NULL値の許可 sql_type SQL型 name フィールド名 scale 位取り precision 精度 limit ? type フィールド型 default デフォルト値 primary プライマリキー CREATE文でusersテーブルを作ってActiveRecordからカラム情報を参照してみます。 テーブル定義 CREATE TABLE users ( id serial, name text, age int, email text, tel text, created_at timestamp, updated_at timestamp ); ActiveRecordでカラム情報を参照する requ
GUIでは仮想ディスクのサイズは2TBまでしか指定できませんが、CUIだと2TB以上のサイズを指定することができます。VBoxManage createhdコマンドで仮想ディスクを作ります。 ホストOS、ゲストOSとも2TB以上のディスクが認識できるOSであることが前提です。 C:\Windows\System32> D:\Package\VirtualBox\VBoxManage createhd Usage: VBoxManage createhd --filename <filename> [--size <megabytes>|--sizebyte <bytes>] [--diffparent <uuid>|<filename> [--format VDI|VMDK|VHD] (default: VDI) [--variant Standard,Fixed,Split2G,Stre
とりあえず集まる まずは集まってみましょうという@hero3050gさんの呼びかけに応えて西は福岡、北は長門、東は周南から20人以上が集まりました。Webデザイナー:プログラマー比が半々くらい、インフラな方やこれから勉強していきたいという方々も集まりました。 山口県WEB勉強会 → http://groups.google.co.jp/group/yamaguchiwebgroup/ 勉強会の進行 各自、「発表したいこと」「質問したいこと」「やってみたいこと」などをざっくり書く。 ホワイトボードに書き出す。 似たようなテーマをまとめる。 進行役が決めた順序に沿って、テーマごとに出席者が発言していく。 というスタイルで行われました。私がこれまで参加してきた勉強会はタイムテーブルがあって誰が何を話すか事前に決まっている事が多かったので新鮮でした。実物は見たこと無いのですが、アンカンファレンスに
“VIM for (PHP) Programmers” slides and resources » Andrei Zmievski を展開して使っている環境でScalaのsyntax highlightを有効にするメモ http://www.vim.org/scripts/script.php?script_id=1780 から scala.vim をダウンロードして ~/.vim/syntax/ に配置する ~/.vim/filetype.vimを編集する " " Filetype detection " augroup filetypedetect " Detect .txt as 'text' autocmd! BufNewFile,BufRead *.txt setfiletype text autocmd! BufNewFile,BufRead *.scala setfilet
第9回テーマ 「LLVM」 - Online.sg 講師は@ujm オリンピックまっただ中のバンクーバーからのUSTREAMでした。 現地では毎晩花火が上がるそうで、花火の音も聞こえてきました=D ホントに時間と場所の壁は無くなったなぁと。 LLVMとは The Low Level Virtual Machine (LLVM) is a compiler infrastructure, written in C++, which is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages. LLVM was originally developed as a research inf
10月3日は中秋の名月でした。 せっかくなので月を撮影したときの記録を残しておきたいと思います。 使用した機材は Canon Kiss Digital X + EF-S 55-250 F4-5.6IS です。 デジタル一眼レフではありますがどちらもエントリーモデルで、今なら後継機とレンズのセットが格安で手に入ります。 必須 デジタル一眼レフカメラ 望遠レンズ(キットレンズでOK。200mm〜) あれば便利 手振れ補正機能 または 三脚 まずはめいっぱい望遠にして一発撮ってみましょう。 Autoで撮影すると真っ白に撮れると思います。 ISO800 でAutoで撮った結果、絞りf5.6 シャッター速度1/4(秒) で撮影されました。 送信者 2009_10_03_長門峡〜月夜 夜なので高感度、低速シャッターが必要だとずっと思っていましたが、月はかなり明るいので低感度(ISO100)、高速シャッ
今回で2回目の参加。 第7回 テーマ「Sinatra」 - Online.sg 本編 id:kabiyの高速な説明をBGMにUbuntu 9.10でサンプルコードを動かしていた。 sinatraの他サンプルコードの動作に必要なパッケージを追加。rubyは入ってた(以前に入れた?) $ sudo apt-get install rubygems1.8 sqlite3 libsqlite3-ruby $ sudo gem install sinatra activerecord haml $ ruby shop_initialize.rb DEPRECATION WARNING: require "activerecord" is deprecated and will be removed in Rails 3. Use require "active_record" instead.. (
最新の方が良かろうと思ってRuby1.9.1を入れたもののRedmineが上手くインストールできなくてRuby1.8.7にバージョンを下げた時のメモ Ruby1.9.1をインストール # cd /usr/local/src/ # wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p243.tar.gz # tar xvzf ruby-1.9.1-p243.tar.gz # cd ruby-1.9.1-p243 # ./configure # make # make install バージョン確認 # ruby --version ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux] Ruby1.9.1をアンインストール インストールしたファイルリストが .installed.l
持ち帰ってウチの会社で使えるかどうかという観点でメモしたものをまとめました。一部Twitter #pcj09から補完してます(^^; しばらくぶりに参加してみて 7割が初参加。順調に新しい開発者が増えている様子 Oracle青山センターの環境が素晴らしかった。電源、無線LAN、飲み物有り。トイレからの眺めが絶景 リアルタイム性が高まっていた ustreamによる中継で現地にいなくても講演内容が聞ける Twitterからの質問が拾われていたり、講演の3分後には技評さんのレポートが上がっていたり エネルギーをもらった 開発者の方が多数集まっていて、講演を聴きながらインストールしていたり、Twitterで関連情報が次々と出てきたり Poken欲しい。社長買いませんか?:D http://poken.jp/ja/ CMS NetCommons 講演タイトル [B-2]NetCommonsでオープン
使い方はとっても簡単です! HookHubの設定 HookHub(http://www.hookhub.com)でアカウントを登録します(Googleアカウントでログインできます) ログインして Update Twitter from Hatena::Star を開きます(http://www.hookhub.com/Mikage/hook/143) 「Fork」ボタンを押して自分のアカウントにコードを取り込み、そのまま「Submit」を押して保存します。「はて☆すた」とかは好みで変更して下さい。 画面の下の方の Web Hooks URI (only you can see) に、自分専用のWeb Hooks URIが表示されるのでメモ帳などに控えておきます 上部メニューから「Config」を開きます 画面の下の方の「Config」で、Name と Value の入力ボックスがあるので、
Intel Matrix RAIDを使うと2つの異なるRAIDレベルを混在できるらしい。 http://www.intel.co.jp/jp/support/chipsets/imsm/sb/cs-020681.htm マトリクス RAID とは、 2 つの同じ、もしくは異なるレベルの RAID ボリュームを、単一の RAID アレイ上に作成することです。 ということで、GA-EP35-DS3RのICH9RでRAIDを組んでみた。 構成 2本のデータディスクをICH9Rに繋いでRAID0ボリュームとRAID1ボリュームを作成する。 ICH9Rはデータディスク専用にしてその他のドライブはGIGABYTE-SATA2側にまとめた。 接続は以下の通り。 [ICH9R] PORT-0: HGST HDT722516DLA380(データ用) PORT-1: HGST HDT722516DLA380(
RAIDが壊れたらどのように通知・表示されるのか? またどのように復旧すれば良いのか? ということで実際にRAIDを壊して実験してみました。 まずは構成から 構成 2本のデータディスクをICH9Rに繋いでRAID0ボリュームとRAID1ボリュームを構成。 ICH9Rはデータディスク専用にしてその他のドライブはGIGABYTE-SATA2側にまとめてある。 マザーボードはGA-EP35-DS3Rを使用。 接続は以下の通り。 [ICH9R] PORT-0: HGST HDT722516DLA380(データ用) → ここが壊れた、という想定 PORT-1: HGST HDT722516DLA380(データ用) PORT-2: なし PORT-3: なし PORT-4: なし PORT-5: なし [GIGABYTE-SATA2] PORT-0: Seagate ST3320620AS(システム用
このページを最初にブックマークしてみませんか?
『mikage014の日記』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く