2009-01-01から1年間の記事一覧

Scala言語

Scala(Scalable Language) Javaの派生言語らしい。 The Scala Programming Language Scala Wiki

Perlの引数を内部コード化する

ファイル入出力や標準入出力は、binmodeでエンコーディングを設定しておけば、自動的に内部コードに変換されるが、環境変数やコマンドライン引数は変換されない事があるため、別の処理で内部コード化する必要がある。 その処理をサブルーチンとして用意して…

Macでスクリーンショットを取るキーショートカット

Mac

ブラウザを使ってブログなどに書き込み、送信する際、固まってしまい、更新すると内容が消失してしまう事がある。 そんな時に、慌てて書き込み内容のバックアップを取ろうとしても、文字が選択できず、コピーが取れない場合がある。 画面ごとコピーできれば…

Flexハンズオンセミナー

今日、Flexユーザー会のActionScript3とFlex Builder3の勉強会に参加した。 各自ノートPCを持ち寄って、それぞれインストールしたAdobe Flash CS4とAdobe Flex Builder3を使ってハンズオン形式で学んでいくという内容である。 自分はMacBookを持って参加した…

Perl DBIでAccessクエリに接続し、データをハッシュの配列で取得する際、キーが重複する事がある

クエリの中に複数のテーブルでリレーションを作った場合、SELECT文で取り出す際のフィールド名は、「テーブルA.フィールドB」という風に表される事がある。特に、複数のテーブルに同じフィールド名が使われている場合、これがないとフィールドの区別が付かな…

VirtualBoxの仮想HD容量の上限を増やす

Mac

VirtualBoxの仮想HDは可変サイズで設定しても、作った後から最大容量より増やす事といった機能が無い。 そこで、このページを参考にしてみたところ、HDの内容を保持したまま容量を増やす事に成功した。 http://d.hatena.ne.jp/AkiSuTe/20090421/1240311507仮…

Macに仮想OSをインストールする

Mac

Macのインストールが一通り済んだところで、今度は仮想OSを入れて、複数のOS環境下で開発を行うことになった。 VirtualBoxでWindowsXPをインストール ソフトはSun VirtualBoxで、OSはWindows XP。 OSのインストールは問題なくできたが、必要な開発環境がイン…

Macを使う

Mac

機種はMacBookProでOSはMac OS X バージョン10.6.1。 持ち運びしながら仕事できるよう会社から支給された。 インストール 出荷時の状態からHDインストールできるため、画面の指示に従ってインストール作業を進めた。しかし、初っ端から流れる3D映像が凄い。 …

mapで繰り返し処理を短縮・追記

サブルーチンを使わずに、さらに短縮してみる。 my %table_hash = map{ my $name = $_; my $fh; open $fh, '; close $fh; map { $_ =~ s/[\r\n]$//g } @text; $name => [ map{ [split(',', $_)] } @text ]; } ('a', 'b');

mapで繰り返し処理を短縮

カンマ区切りデータをまとめる map不使用 my $fh; my @table; my $table_hashref = {}; open $fh, ') { $line =~ s/[\r\n]$//g; my @record = split(',', $line); push @table, \@record; } $table_hashref->{'a'} = \@table; open $fh, ') { $line =~ s/[\r…

PerlでShiftJIS::Regexpモジュールを使う際の注意点

2バイト文字のコードにエスケープ文字コード「0x5c」(¥または\)が含まれるいわゆる「ダメ文字」をマッチングパターンに使う際、文字データをそのまま使うと意図したマッチング結果にならない場合がある。 そこで、これを避けるためにマッチングパターンに含…

指定フォルダ内の重複ファイルを検出するプログラム

指定したフォルダ内の(サブフォルダ内も含む)全てのファイル名とサイズを取得し、同じサイズのファイル同士を比較して、内容が全く同じファイルを検出するPerlスクリプト。 UTF8用なので、ソースコードもUTF8にする必要がある。Shift-JISにする場合は、"¥"…

世界一変なプログラムコード

IOCCC(国際邪悪なCコードコンテスト) Perlについて調べてリンクを辿っていたらこんな記事を見つけた。 http://ja.wikipedia.org/wiki/IOCCC 記事より引用 IOCCCとは「The International Obfuscated C Code Contest(国際邪悪なCコードコンテスト)」の略称…

Perl正規表現の罠と罠はずし その3

文字列を複数行として扱う修飾子「m」を付けると、改行文字による行区切りの後を行頭、前を行末と見なすので、行頭・行末アンカーを置き換えなくてもそのまま使える。 $text = "12345\nABCDEFG\n12345\n"; print '=' x 10 . '(1-0)' . '=' x 10 . "\n"; prin…

Perl正規表現の罠と罠はずし その2

マッチングパターン「.」に改行文字を含める場合、マッチング修飾子「s」を用いるが、行末アンカー「$」を付けた場合に、キチンと行末(改行の前もしくは文字列の末尾)を認識するマッチングパターンは以下のようになる。 (?:(?:$)|(?=[\n])) 行頭・行末それ…

Perl正規表現の罠と罠はずし

改行文字を含む文字列をマッチング対象とし、改行文字もただの文字として扱う場合、オプションにsを付けるが、行頭アンカー(^)を付けた文字列をマッチングパターンにすると、うまくマッチングしない不具合が起こる。 そこで、行頭アンカーを"(?:(?:^)|(? my …

PerlでCP932文字コードの2バイト文字によるマッチングを行う

Perlで全角2バイト文字をマッチングすると、CP932(ShiftJIS)環境では文字区切りが存在しないため、誤判定や文字化けの元になる。 UTF8にコード変換すれば一発で解決するが、機種依存文字などの特殊文字や、複数の区分に重複登録されている文字などの関係で、…

Perlでの日本語マッチング

金村さんに教えてもらった参考サイト Perl 5.8.x Unicode関連 404 Blog Not Found:perl - Encode 入門 perl5.8のUnicodeサポート Shift-JISテキストを正しく扱う WindowsでPerlを使うもんじゃない

JGGUG Grails/Groovy勉強会 第3回@名古屋

今回はノートPCの持込OKだったが、自分は用意していなかったので、ノートと筆記具のみ。 内容は今まで学んだもの+αと言った感じで、Groovyのマップとクロージャーの仕組み、応用的な文法、そしてGroovy Web ConsoleというWeb上でGroovyコマンドを実行できる…

PerlでAccessデータベースに接続

Accessデータベースのテーブルからフィールド名を取得する方法 ODBC経由でデータベースと接続するには my %TYPES = $db->ColAttributes(SQL_COLUMN_TYPE_NAME); TYPESにはフィールド名と型名のハッシュマップが格納される。

PerlでExcelファイルをCSV形式に変換

Win32::OLEモジュールを使うと、PerlからWordやExcelなどのファイルにアクセスできるようになる。ExcelシートからCSV形式への変換は、xlsファイルから読み込んだブックのセルの内容を取得し、カンマで連結したものをシート別にファイルへ書き出す方法と、xls…

PerlからODBC経由でAccessファイルの内容を操作する

ODBCはWindowsで標準サポートされているデータベースドライバで、他の言語からでも使える。 JavaでJDBCを使ったが、そのようなものだろう。 Perlの場合はDBIモジュールからデータベースとして接続できるらしい。 ODBCによるAccess操作 SQLステートメント

Accessトレーニング

金村さんに教えてもらったページ群。 ある程度決まった所要時間で読み進めて行く事で学べるので便利。 Access 入門 http://office.microsoft.com/training/training.aspx?AssetID=RC061181381041 他のユーザーが作成したデータベースで作業する http://offic…

Accessを使いこなすためにDB設計の基本をおさらいしてみた

Java, Perl, Grailsを勉強する過程で、何度もSQLのDBを設計してきたが、予備知識はSQL操作とテーブルの第1〜第3正規形のみで、デザインの心得のようなものは纏まった形で勉強したことが無く、自分で考え付いたものを何となく形にしていた。(他人のアイデア…

Accessの操作法を覚える

内部的にはSQLらしいが、SQLコマンドではなくGUIを使って、DB構造をデザインしていく形となる。 オブジェクトを作成 それぞれの違いはまだはっきりと分からないが、以下のようなものをデザインすることになる。 テーブル クエリ フォーム レポート ページ マ…

LinuxPCとWindowsPCの同時使用

会社で使われていないWindowsXPのPCを使う事になり、LinuxとWindows、2台のPCを並べる事にした。 ただし、モニタとマウス・キーボードを共用にするため、CPU切り替えアダプタを用意する事に。 使えそうなアダプタは、ELECOM製で型番KVM-KP2の2又ケーブルであ…

文字コードCP932がよく分からないのでWikiで調べてみた

Microsoftコードページ932 - Wikipedia Windows-31J、MS932、CP932は、Microsoft社では同じ意味で使われているが、CP932はベンダ毎に様々な独自仕様があったため、その名残として、JavaではCP932とMS932(Windows-31Jと同じ)で呼び分けられているらしい。

Perlの配列操作に関する知識の食べ残し

配列の末尾の添字を得るには @TEST_ARRAY = (1 .. 5); print $#TEST_ARRAY . "\n"; @TEST_ARRAY = (); print $#TEST_ARRAY . "\n"; 4 -1 配列を後方から参照する添字の書き方 @TEST_ARRAY = (1 .. 5); print $TEST_ARRAY[-1] . "\n"; print $TEST_ARRAY[-2] …

出社3日目

今日はPerlの文字列処理に集中。 Perlの文字コードに関する操作 例えば、CP932で書かれたファイルをバイナリデータとして読み込み解析する場合、Perlだと内部コードはUTF8になるので、文字列リテラルとの照合の際、そのままだと正しい結果にならない。 さら…

出社2日目

Webアプリの配備 WARファイルの生成 GrailsからTomcatに移植するには、GrailsでWARファイルを作成し、Tomcatに配備すればよい。 Webアプリの完成版をWARで出力するGrailsコマンド $ grails prod war TomcatにWARファイルを配備 Tomcat6なら、Managerを使えば…