programming一覧

重複した行を削除したい! 行の並べ替えをしない Perl スクリプト

同じ行の繰り返しが気になる

the rest of the family
(きみたちは──みんな違うからいいんだよ)

コマンドライン・シェル「NYAOS」のログなど、重複する行が いくつもあるファイルは、ものすご~~~く気になります。

いままでは、「そ~太」というツールを使っていました。ところが、「行を並べ替えてから、前後で同じ行を削除する」という仕様です。

名前のとおりで正しい。でも、モヤモヤが残る──。

もっと、こう、ドラッグ──────アンド・ドロップ的な手軽さで、気持ちよくスッキリしたいピー!(ピー?)

『ULTIMATE Perl』に答えあり

山ほどある「買ったけれど理解できなかったプログラミング本」を、なんとなく読み返してみる──。すると、水野 貴明氏の『ULTIMATE Perl』に、そのものずばりの答えが載っていました!

続きを読む


YouTube の「埋め込みコード」を Valid にする! HTML5 時代編

YouTube 動画の「埋め込みコード」

YouTube 動画の新旧「埋め込みコード」
リトルモンスターなら──貼らずには いられない)

YouTube で公開されている動画をブログで紹介したいぜ! ──ブロガ (Blog + er) なら、食欲と同じレベルで湧いてくる欲求ですよね。たぶん。

全ブロガの 98 割は、YouTube が提供する標準の「埋め込みコード」で満足することでしょう。「みんなと一緒」は、この国でも・あの国でも、絶対的な正義なのです。

ところが──、今も昔も、ゆーちゅーぶ先生が教えてくれるコードは、(X)HTML 的に・W3C 的に「よろしくない」。

そこで、以前は下の User Script を利用していました。これを GreasemonkeyScriptish などから使うと、Valid な HTML コードを出してくれます。

Valid YouTube Embed for Greasemonkey

しかし、現在のユーチューブは仕様が変更されました。

このスクリプトを使うには、わざわざ以前の埋め込みコードを使用するという項目にチェックを入れる必要があります。──この記事の上にある画像を参照してくださいね。

その上、ユーザ・スクリプトを利用しても、それほどクリーンなコードでもない……。

今回は、イイ感じに埋め込みコードを変更する方法──のヒントを紹介します。ちょっと歯切れが悪いのは、続きを読んでの お楽しみ……。

続きを読む


UTF-8 の文字化け対策! 「美乳」ではなく「†(ダガー)」を使う

文字化けと対策

Fight Mojibake!!!
(これからも── Mojibake と戦い続ける)

「文字化け」しているウェブサイトは、最近では見なくなりました(と思いたい)。

大昔──、まだ人類が石のヤリでマンモスと戦っていたころは、何度も何度もウェブ・ブラウザの「文字コード」を手動で変更していましたよね。何もかもが懐かしい──。

石のヤリ:
Internet Explosion ──もとい Internet Explore 6
マンモス:
Yahoo!ジオシティーズ

──いや、両方とも世間では健在ですけれど。

ウェブ上の文章が異常な状態で表示される原因は、おもに「文字コード」の問題です。ソフトウエアと人間の両方が成長することで、じょじょに改善されているけれど──。

文字化け – Wikipedia

Unicode 版「美乳テーブル」

ところが、まだまだ文字は化ける!

そこで、UTF-8 時代の「おまじない」として、次のページで面白いアイデアを紹介しています。

Unicode 版美乳テーブルを探せ

これをちょっとだけ改変して、利用してみました。

続きを読む


Tombloo で Amazon の画像を投稿できない! 問題を改善するパッチ

「Amazon の拡大画像を share するパッチ」の適用ページを広げる

≪Dad's tail is great fun!≫
(いつかは大きくなる──と期待を込めて)

TomblooAmazon.co.jp を仲良くさせるパッチを書きました。このパッチを適用させると、次の効果があります。

  • 「Photo – Amazon」が動作しないページを修正する
  • 拡大画像がある場合は(なるべく)そちらを Post
  • リンク用の HTML をコピー(※オプション・後述)

パッチのインストールは、下のページにある「raw」リンクからどうぞ。

tombloo.service.extractors.zoomPhotoAmazon.js – GitHub

続きを読む


Tombloo で Amazon の商品を投稿する際にタイトルを修正するパッチ

Tombloo の「Amazon タイトル問題」を直すパッチ

LolliBlue Giraffe and Amber the Mod Dollie
(ツギハギだらけでも──愛らしい)

現在、TomblooAmazon の商品を Postすると、タイトルが異常になります。

この問題を解決するパッチを書きました。次のページにある「raw」からインストールできます。

tombloo.service.extractors.amazon.extract.js – GitHub

パッチのインストール方法などは、下のページをご覧ください。ここのページにあるパッチも必携ですよ!

Tomblooパッチのインストールに失敗しなくなるパッチ | 圧縮電子精神音楽浮遊構造体

お困りの方は お試しくださいね。

──で終わりたいところですが、以下、メンドウな説明書きが続きます……。

(この記事を書き上げる直前に気がつきました。今回のパッチは Amazon.co.jp でしか動作を確認していません! もう疲れ切ったので、あとは だれか たのむ)

続きを読む


MySQL データベースが更新された場合のみ動作するシェルスクリプト

データベース(MySQL)をバックアップ

I?MySQL (by Kevin Severud)
(愛しているから──守りたい)

下記の動作をするシェルスクリプトを自作しました。

  1. MySQL データベースに変更があったら、
  2. データベース全体をバックアップし、
  3. TAR + GZIP 形式で圧縮して、
  4. さらに圧縮ファイルをメール送信する。

残念ながら、今のところMovable Type で利用しているデータベース専用のシェルスクリプトですが、便利に使っています。

下の場所からダウンロードして、環境に合わせて内容を変更し、CRON ジョブなどに設定してご利用ください。

http://asiamoth.com/dl/sh/backup-db.sh

このスクリプトの特徴・特長

よくあるスクリプトのようですが、「データベースに変更が加えられたら、バックアップする」という動作は、けっこう珍しいと思う。ほかに似たスクリプトが見つからなかったため、自作しました。

「私はプロのプログラマです(キリッ」という人が書いたコードでも、けっこう「走らせたら問答無用でバックアップする」というスクリプトばかりなんですよね。このエコな時代に……。

改良したい点

なぜか、「MySQL のデータベースが更新された」ことを、どうやって取得するのかが分かりませんでした。この部分を、ぜひとも改良して欲しいですね。>どなたか

MT(バージョン 5 で確認)だと、最終の更新日時が下の SQL 式で取得できます。

SELECT log_modified_on FROM mt_log ORDER BY log_modified_on DESC LIMIT 1;

MySQL のデータベース自体が更新された日時も、カンタンな SQL 式で絶対に分かるはず。

ということで、添削希望です!!


MTLoop 内で MTIf, MTUnless を使うと __value__ が異常になる

MTLoop の仕様に注意

Fruit Loop (by Thomas Hawk) (by Thomas Hawk)

タイトルの通りなのだが、「なんのこっちゃ」と思われるだろう。Movable Type というブログ・システムの話だが、少々マニアックな内容だ。

Movable Type: 世界標準の CMS プラットフォーム

実例を挙げる。そのほうが話が早い。

MT4.1x 以上で、下記ページのサンプルコードを適当なインデックス・テンプレートに張り付けて実行する。

MTLoop | テンプレートタグリファレンス

期待通りの結果(月の略称と名称が並んだリスト)が得られるはずだ。

さて、本題だ。上に挙げたサンプルに対して「8 月は除いて表示したい」と思ったとする。あなたなら、どう書く? ただし、<mt:loop> の内部のみを書き換える、というのが条件だ。

続きを読む


『独習 PHP』で勉強中

PHP 勉強中

『独習 PHP』で勉強中です(お前もか~、と言う人も多いのでは?)。

photo

独習PHP
山田 祥寛
翔泳社 2006-01-24
楽天ブックス: 独習PHP

PHPによるWebアプリケーションスーパーサンプル 活用編 MySQL入門以前 PHPによるWebアプリケーションスーパーサンプル 第2版 PHPサイバーテロの技法―攻撃と防御の実際 まるごとPHP!〈Vol.1〉

by G-Tools , 2008/01/30

きっかけは pha さん

きっかけは(もちろん)、この記事。

田口元の「ひとりで作るネットサービス」探訪:「圧縮新聞」「訃報ドットコム」始めて半年で数々のサービスを生み出す、自称"ニート"──phaさん – ITmedia Biz.ID

その後、id:pha さんの記事を読んで、(「うーん、さんぜんえん か……」)──す、すぐに『独習 PHP』を買いました。

全ての文系ブロガーはPHPをやるべき – phaのニート日記

続きを読む


プログラマへ質問: こんなプログラム言語があったら──

プログラマへ質問

突然ですが質問です。アナタがプログラマだとして──

あなたの愛するプログラム言語に、ある日 突然、呪いをかけられました!

  • 次の物が使えなくなりました:
    • 変数
    • 配列 / リスト
    • ハッシュ / 連想配列
    • 関数 / サブルーチン
    • ポインタ / 参照
    • その他いろいろ……
  • 次の仕様変更がありました:
    • クラスは全て継承
    • 環境によって、実行結果が まちまち
      • 「標準」に準じた環境が ほぼ皆無
      • もっとも「標準」から遠い環境が世界標準
    • 何年も前から既知のバグが どっさり

──さて、アナタはそれでも、その言語を愛することが できますか?

(「CPAN」が使えなくなる、だけで充分かも・笑)

「そんな言語ねーよ w」というアナタへ──

……

……

……

つ 「CSS

(長くなったので、明日に続きます……。ここからが面白いよ! たぶん)


「JavaScript ファイルの縮小(Minify)」が なぜ難しいか?

JavaScript を縮小・圧縮したい!

PHP の勉強も兼ねて、

「JavaScript ファイルを自動的に縮小(Minify)して、(gzip)圧縮する」

というスクリプトを作っています──と何度も書いて来ましたが、

結論: \(^o^)/ 無理

という、残念な結果に終わりそうです(8 割方 予想が付いていたけど)。

今回は、それがなぜ難しいのか という話と、/packer/ は やっぱり凄い! という話です。

目標

やりたいこと:

  • PHP4 で作る
  • 自動で処理する
  • JavaScript ファイルから
    • コメントを削除
    • 余分な空白・改行を削除

たったこれだけのことですが、じつは ものすごく難しいです。ちなみに、「PHP4」で、というのは、ただ単に ここのサーバで動いているのが PHP4 だから、というだけの理由です。PHP5 だと、類似のスクリプトはいくつかあるのですが……。

「そんなの、2 分でできるよ」というひと向けに、下記の(わざとらしい)"sample.js" をどうぞ。

/***/
/**
*  comment
*  // comment
*/
/*@cc_on
//  http://d.hatena.ne.jp/amachang/20071010/1192012056
var doc = document;          // comment
eval('var document = doc');  // comment
@*/
/*@cc_on document.write('"IE!"\n'); @*/     // comment
var hoge = "/* hoge */\n";
var fuga = '"/* fuga */"\n';
var foo  = "//* foo *//\n";
var bar  = '"\'//* bar *//\'"\n';
document.write(hoge + fuga + foo + bar);

上記のコードを Minify すると、こうなるはずです。──そんなスクリプト、書けますか?

/*@cc_on var doc=document;eval('var document = doc');@*//*@cc_on document.write('"IE!"\n');@*/var hoge="/* hoge */\n";var fuga='"/* fuga */"\n';var foo="//* foo *//\n";var bar='"\'//* bar *//\'"\n';document.write(hoge+fuga+foo+bar);

続きを読む