サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
perltips.twinkle.cc
ALTER TABLE 既存のテーブル名 RENAME TO 新しいテーブル名; でテーブル名は変更できるのだが、テーブルが1つにとどまらない場合、テキストファイルでまずは1行に1テーブル名のリストを作って、後は秀丸エディタを使って置換する。 たとえば、Drupal でテーブル名にプリフィックス yourname_ を使っていたとして、 本来のテーブル名はそのままで、myname_ のプリフィックスに変えたい場合、秀丸エディタを使って置換するときは、正規表現を有効にして、置換前の文字列を yourname_(.*) 置換後の文字列を ALTER TABLE yourname_\1 RENAME TO myname_\1; とすればいいと思う。
ver.1.5 から kvm on Ubuntu に力を入れている模様。kvm は簡単にインストールできる印象。 apt-get install eucalyptus-cloud eucalyptus-cc は、同じマシンでよい。MANAGED モードを考えるなら eucalyptus-nc だけは別のマシンにインストールする。よりアマゾンの環境に近づけたいなら MANAGED モードにする(Elastic IP が利用できるから)。 シスコの高級なスイッチングハブは使えなかったので NETGEAR の安いハブを使った。DHCP からアドレスが取得できない、VLAN で接続できない、などのトラブルは安いハブに変えてみるべき。 → それでも解決しなかったら、クラウドコントローラのマシンで vconfig add eth0 10; ipconfig eth0.10 192.168.1.1 up
手順としては次の通り。 openssl をインストール。 # sudo apt-get install openssl 秘密鍵を作る(仮に server.key としよう)。 # sudo openssl genrsa -out server.key 4096 (パスワードなしの場合、2048 バイトのキーは弱すぎて証明書としてはもはや無効) # sudo openssl genrsa -des3 -out server.key 4096(パスワードありの場合、2048 バイトのキーは弱すぎて証明書としてはもはや無効) 公開鍵を作る(server.csr としよう)。 # sudo openssl req -new -key server.key -out server.csr 署名付の証明書を作る(server.crt としよう。有効期間はオレオレなので 10年くらいでいいだろう^^;)
Ubuntu の Apache の設定ファイルの場所は /etc/apache2/site-available/default である。従って、 Perl をデフォルトのディレクトリ /var/www で動かすには、Perl と Apache の関連モジュールを apt-get でインストールした後、次のようにする。 # vi /etc/apache2/site-available/default <Directory /var/www/> Options Indexes FollowSymLinks MultiViews +ExecCGI # ここと DirectoryIndex index.cgi # ここを追加。index.cgi はおまけ。 AddHandler cgi-script .cgi .pl # もし Perl (拡張子は .cgi か .pl)を有効にしたい場合はこの行
以下にリンク論文がある。 https://labs.google.com/papers/gfs-sosp2003.pdf 日本語の解説は Google File System(GFS)技術メモ が詳しい。以下、私も重要だと思ったポイントを挙げておこう。 (システム構成) マスター、チャンクサーバ 、クライアントの3種類。基本的に安いPCでシステムが構築できるようにしている。 PC は壊れる(信頼はしていない)のが前提のもとにシステムを設計している。 チャンクサーバにデータを格納する。 データは可用性向上(万一のため)3つのチャンクサーバに格納している。チャンクサーバが同じ電源を使っていたりしたら全部データが飛ぶ可能性があるので、さすがに別のラックのチャンクサーバ同士に保存するとか、空きディスク容量が多いチャンクサーバ(すなわち新品)へ、とか考慮している。データは基本的に64MBの固定長。分
Eucalyptus 1.5.1 を Ubuntu 9.04 (Jaunty) にインストールすると、確実に You should have at least 32 loop devices というエラーが出て Front-end (eucalyptus-cloud)が 起動できない 。 # ls -la /dev/loop* としてみると、loop back device が 0~7 の 8つしかないことに気づく。じゃ増やすには?と、いろいろとググっても /etc/modules の loop の行を loop max_loop=255 にしろとかしか書いてない。 ところが最近の Linux はカーネルに loop back device のモジュールがマージされているようなので、Ubuntu 9.04 (Jaunty) では、 rmmod loop; modprobe loop max
多角形、たとえば四角形^^; (x1, y1) ... (x4, y4) の中心を求める。正確には、多角形の重心の座標を求める。 データとしては 4つの座標データがセミコロン(;)で区切られている、 $data = '242.18,525.87;243.16,581.93;294.83,580.61;294.00,525.50;'; みたいな初期データを考える(それぞれの x1, y1 の座標はさらにカンマで区切られている)。 で、 多角形の中心点の座標の求め方 ( https://okwave.jp/qa2534558.html ) で議論されている内容を PHP 化すると、以下のようになると思う(本当にいいのだろうか?)。 <?php $data = '242.18,525.87;243.16,581.93;294.83,580.61;294.00,525.50;'; $set = e
Ubuntu で、GUI に頼らずネットワークを無理やり手動で、設定ファイルによって設定するには、/etc/network/interfaces ファイルをいじる。サーバに 2枚 eth0、eth1 という名前のイーサネットカードがくっついていて(eth0 とか eth1 という名前は ifconfig -a コマンドで確認する)、eth0 にスタティックな IP(192.168.0.1 など)、eth1 に DHCP による IP アドレスを割り当てるには、次のようにする。 # vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0 auto eth1 iface eth0 ine
ほとんどのプログラミング言語では、 if~else~を1行で書く方法 がある。C をはじめ、多くのプログラミング言語では、 条件 ? 真の場合 : 偽の場合 という書式(もちろん、C をベースにしている Java も)となる。if(条件) { 真の場合 } else { 偽の場合} と同義である。これを 三項演算子 という。慣れないと意味不明だろうが、筆者はわりと好んで使う。以下に Perl、PHP、JavaScrip、そして Python と、それぞれの例で考えてみよう。 Perl の場合 my $isWorking = 1; $str = $isWorking ? 'Yes' : 'No'; print str; # $isWorking が 1 すなわち真なら、$str = 'Yes'; と同じ意味になる。 PHP の場合 var $str = 'some string'; retu
Amazon EC2 は何もしないと DHCP でグローバル IP アドレスが割り当てられる。これはサーバを立ち上げるときには大変困る。EC2 でサーバを立ち上げた後、アプリから割り振られた IP アドレスを知るにはどうしたらいいのだろう?ひとつには、ec2-describe-instances で現在起動しているインスタンスの一覧を出して調べていく…という方法があるが、あまりスマートではない。というわけで、次のようにするとよいと思う。 curl https://169.254.169.254/2008-02-01/meta-data/public-ipv4 この例のように Amazon EC2 では、 https://169.254.169.254/2008-02-01/meta-data/パラメータ という URL で、サーバ内部から curl を使って 調べることができるようだ。 と
以下の encrypt メソッドの引数に String でテキスト文字列を渡すと、暗号化されたものがバイト列で返ってくる。復号は decrypt の引数にそのバイト列を渡す。両メソッド共、crypt_spec 引数に AES を指定すれば AES で暗号するし、DES を指定すれば DES で暗号化する。 import java.io.*; import java.security.*; import javax.crypto.*; import javax.crypto.spec.*; // CHANGE THIS VALUE DEPENDING ON WHAT YOU WANT public static final int MESSAGE_LENGTH = 1024; /** * @param text * Message to encrypt * @param
bash では、様々なコマンドを`(バッククオーテーション)で囲むと、そのコマンドを変数に入れたりすることができる。つまり、何か処理を始めたり終わったことをメールで通知する場合は次のようにする。 #!/bin/bash echo 'Subject: Started: your_program' > temp.txt echo 'To: yourname@yourdomain.com' >> temp.txt echo 'Started.' >> temp.txt cat temp.txt | `sendmail -t -i` rm temp.txt your_program (←ここに処理したいプログラム名(時間がかかるもの)を書く) echo 'Subject: Comp
PHP には配列中の重複するレコードを削除するための、 array_unique という専用の関数がある。 <?php $array = array('a', 'b', 'c', 'x', 'y', 'a', 'z', 'z'); <font color="blue">$array = array_unique($array);</font> foreach ($array as $elment) { print "$element\n"; } ?> 結果 a b c x y z
モジュールやパッケージをファイルに切り出した場合は、これらの実行の準備が済んだことを Perl インタプリタに知らせるために、パッケージの最後で真を返す必要がある。本来なら return 1; と書くべきなのだが、そこは Perl、多くのモジュールの省略して 1; だけ書かれている。ファイル最後の 1; は return 1; なのである。 package pkg1; sub foo { print "passed\n"; } <font color="red"><strong>1;</strong></font> # ここは return 1; と同じ意味 参考リンク rythmfactory smart - パッケージとモジュール
Outlook 2003 で、自動的に bcc を送るには、以下のコードをメニュー|ツール|マクロ|Visual Basic Editor (ALT+F11)のプロジェクトエクスプローラの中で、Project → Microsoft Office Outlook Objects → ThisOutlookSession のウィンドウに貼り付ける。 青字 の部分は、bcc に送るメールアドレスを記入する。Outlook の マクロ実行のセキュリティは、ツール→マクロ→セキュリティのところを、「中」にしておかけねばならない 。こうすると Outlook を起動するごとにマクロを有効にするかどうかのダイアログボックスが出るが、仕方がない。 以下のコードは、「 in Microsoft Outlook 2000 or later versions">To automatically add an
配列の中にある重複するレコードを削除する場合、Perl なのでいろいろな方法があると思うが、以下のコードを試してみて欲しい。 #/usr/bin/perl -w my @array = ('a', 'b', 'c', 'a'); my %count; @array = grep {!$count{$_}++} @array; print @array; # 出力は abc となる。 1;
まずは SNMP の基本用語から。 SNMP のサーバ側は、SNMP エージェントという。具体的には snmpd のことで、Ubuntu だと apt-get install snmpd でインストールできる。 SNMP クライアント側は、SNMP マネージャという。具体的には MRTG や snmpget、snmpwalk コマンドのことで、apt-get install mrtg や apt-get install snmp でインストールされるもの。 マシンのトラフィックを監視したかったら、監視対象のマシンで snmpd を動かす。監視する側は MRTG というシステムを設定する。そうするとブラウザから監視対象のマシンの入出力のトラフィックのグラフが見られたりする。 監視対象のマシンでは、/etc/snmp/snmpd.conf を設定する。Ubuntu の場合はデフォルトの設定を少
MySQL では、 デフォルトのストレージエンジンが MyISAM となっているが、これを InnoDB に変えられるらしい (テーブル単位で)。そして、 InnoDB の方がパフォーマンスがよいらしい? ?・・・元はといえば、 Open Tech Press | MySQLデータのバックアップ方法 の記事を読んだことがきっかけ。ここに興味深い一文がある。 多くのMySQLサイトは、本来のデータベーストランザクションとより優れた書き込みパフォーマンスを得るために、MyISAMテーブルからInnoDBテーブルにデータを移行している。 …といっても、「MyISAM?確かに phpMyAdmin でみると MyISAM ってあったっけ。難しそうだから放置」できた私には、Inno何のことかさっぱりわからなかったのでググってみたところ、確かに書き込みトランザクションがたくさん発生するケースでは In
ずばり、J2SE のドキュメントのページ「 cookie サポート 」が詳しい。以下のコードを参照のこと。 String protocol = "http"; String hostname = "yourdomain.com"; int port = 80; String file = "/"; try { URL url = new URL(protocol, hostname, port, file); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); // Input OK conn.setDoOutput(true); // Output OK conn.setUseCaches(false); // Cache NG conn.setReq
Perl だとほんの数行で書けてしまうことが Java だと結構かかる (C だともっとかかる)。以下は STR_URL で指定した URL の内容 (HTML) を取ってきてコンソールに表示する例。何をしているかはコメントをご覧ください。 import java.net.URL; import java.net.HttpURLConnection; import java.io.InputStreamReader; import java.io.BufferedReader; ... // アクセスする URL を文字列に設定する。 String STR_URL = "https://perltips.twinkle.cc/"; // URLを作成する。 URL url = new java.net.URL(STR_URL); // 接続を取得する (接続は new して作るのではなく、
Drupal でのモジュール開発を理解するということは node のコンセプト(コンテンツタイプ)と hook システム(hook と呼ばれるコールバック関数)とフォーム($form)を理解するということでもある。 「 Drupal で、モジュールを開発するために必要な最低限の hook 」 では、Drupal の hook について説明したが、ここでは具体的にモジュールを実装してみることにする。そのモジュールの名前は「hook」。 Drupal 5 からは、yourmodule .info 、yourmodule .install 、yourmodule .module 、yourmodule .css の 4つのファイルが必要となった。ゆえに hook という名前のモジュールを作る場合、hook .info 、hook .install 、hook .module 、hook .css
インターネットで最も使われている暗号化通信は SSL/TLS であろう。 SSL は Secure Socket Layer の略で、 TLS は Transport Layer Security の略、前者はバージョン3まで Netscape によって作られ、後者は IETF で仕様が策定されているものである。 SSLv3 ≒ TLS 1.0 であり、SSLv3 は TLS 1.0 相当だと思えばよい。だからよく SSL/TLS と表記されることが多いのだ。今では SSLv3 も使われているために混在するが、今後は TLS 1.0 以降が使われていくことになるだろう。なお、TLS 1.0 は RFC2246 である。 その SSL/TLS であるが、このプロトコルは実は私は RFC を読んでも意味がまったくわからなかった。しかし心配する必要はない。理解できないのはあなたの頭が悪いからでな
シリコンバレー在住エンジニアの、Perl、PHP、AJAX、Drupal、Java の小枝集です。( 7,823,387 since 2005.02.20 ) user warning: Table 'twinkle_perltips.perltips_cache' doesn't exist query: DELETE FROM perltips_cache WHERE cid = 'variables' in /var/www/drupal-5.23/includes/database.mysql.inc on line 174. user warning: Table 'twinkle_perltips.perltips_cache' doesn't exist query: DELETE FROM perltips_cache WHERE cid = 'variables' in
MySQL (まぁ、単なる SQL)で、データベース中の重複レコードを除いて検索するには distinct を使うのが定石だが、その逆に重複レコードのみ抽出・取得したい場合はどのようにしたらよいのだろう?結論は、以下のようにすればよい。 select * from テーブルA where 列A in (select 列A from テーブルA group by 列A having count(*) > 1); 重複項目のあるデータを抽出 (教えて SQL) 【重複レコードを取得する】 (My wonderful living)
インスタンスの /mnt ディレクトリに鍵ペアをアップロード # scp -i id_rsa-gsg-keypair pk-xxxxx.pem cert-xxxxx.pem root@domU-12-34-31-00-00-05.usma1.compute.amazonaws.com:/mnt ←入力 ボリュームをバンドル # ec2-bundle-vol -d /mnt -k /mnt/pk-xxxxx.pem -c /mnt/cert-xxxxx.pem -u <your_EC2_user_id> -r i386 ←入力 # ls –la /mnt/image.* (で確認) イメージ(AMI)を S3 にアップロード # ec2-upload-bundle -b <your-s3-bucket> -m /mnt/image.manifest.xml -a <aws-access-ke
基本的には =WEEKDAY(セル, パラメータ) 関数を使う。曜日は数字でしか取得できないので、数字に対応した日本語の曜日を自分で表示してあげる必要がある。めんどい。 =WEEKDAY() 関数の第1引数には A1 などのセルのアドレス、第2引数がトリッキーで、何も指定しないと日曜日の値が 1 となる。つまり、 第2引数に何も設定しなかった場合は日曜日から始まって日曜日~月曜日が 1~7(デフォルト) 第2引数を 1 に設定した場合は日曜日から始まって日曜日~月曜日が 1~7(デフォルトと同じ動作) 第2引数を 2 に設定した場合は月曜日から始まって月曜日~日曜日が 1~7 第2引数を 3 に設定した場合は月曜日から始まって月曜日~日曜日が 0~6 となる。以下の表を参考にして欲しい。 また、A1 のセルの日付を見て、月~金までの曜日を表示したい場合は、A2 を次のようにする(A1 のセ
Linux で、ネットワークカード(ネットワークインターフェイス)(NIC)を再起動するには、まず # ifconfig -a というコマンドをたたいてネットワークインターフェイスの名前を調べなければならない。このコマンドを実行すると、eth0 とか出てくるから、それがネットワークインターフェイスの名前。それを元に、 (停止) ifconfig eth0 down または ifdown eth0 (起動) ifconfig eth0 up または ifup eth0 とする。
Amazon EC2 とは、Amazon Elastic Compute Cloud の略で、Elastic Compute Cloud の頭文字が E C C = E C x 2 となることから、Amazon EC2 と呼んでいる。この EC2、要は Amazon による VPS サービスだと思えばいいのだが、VPS と違う点もいくつかある。それは、 課金は通常の VPS のように月額単位ではなく、時間単位である。サーバ起動は Amazon が用意した Java ベースのコマンドラインツールで自分の好きなときにいくつでも起動させることができる。起動したサーバのことをインスタンスという。 しかし、1つ立てるごとにそれぞれ課金される。 サーバをシャットダウンしたら、サーバのデータはすべて消滅する。インスタンスの消滅はデータの消滅を意味する。万一サーバがダウンしたらインスタンスが消えることにな
次のページ
このページを最初にブックマークしてみませんか?
『Perl Tips | ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く