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

Ruby で Twitter

Ruby で Twitter をやってみました。本家:ここに簡単な例が出ています。http://twitter.rubyforge.org/ ドキュメント http://twitter.rubyforge.org/twitter/"gem 'twitter'" がないと "uninitialized constant Twitter (NameError)" というエラーが出る。 …

PREPARE で SQL を準備し、 EXECUTE によりパラメータのみの実行。

「まつもとゆきひろコードの世界」の「11章 セキュリティについて」の中で SQL インジェクション対策として、パラメータを外部から与えて実行する例が掲載されています。 SQL インジェクション対策でなくても SQL の組み立て実行が分離され、都合が良さそう…

makecab.exe でファイルを圧縮する

圧縮するファイルのリスト PS C:\Users\hoge\f> cat filename.txt "C:\Users\hoge\f\sample.exe" "C:\Users\hoge\f\sample.f" "C:\Users\hoge\f\sample.fs"圧縮の実行。/V2 は冗長モード(1〜3)。/F filename.txt はファイルによる指定。 PS C:\Users\hoge\f>…

SQL server 2005 Express で BACKUP と RESTORE

とりあえずサーバの全データをバックアップし、デスクトップの SQL server 2005 Express にリストアしてみた。 PS C:\db> cat C:\db\FullBackup.sql BACKUP DATABASE dbname TO DISK = 'c:\db\dbname.bak' WITH INIT PS C:\db> sqlcmd -i C:\db\FullBackup.s…

Ruby で SQL server に接続

Ruby で SQL server に接続できたのでメモ。 #!ruby -Ks require 'win32ole' module OpenRecordset def [] field self.Fields.Item(field).Value end def []= field,value self.Fields.Item(field).Value = value end def each_record if self.EOF or self.B…

噛みくだいて貰ったので理解できるクロージャの話

Python Hack : 噛めば噛むほどおいしくなるクロージャの話中島聡さんにクロージャを分り易く解説していただいたので、Ruby でやってみました。 conf=0 data=0 def _get_from_disk(conf,data) config = "初期設定:conf=#{ conf += 1}" lambda do |arg| config…

cpio: MD5 チェックサムが適合しません。

$ sudo rpm -Uvh /usr/src/redhat/RPMS/i386/autoconf-2.64-1.i386.rpm 準備中... ########################################### [100%] 1:autoconf ########################################### [100%] エラー: アーカイブの伸長に失敗: ファイル /bin/cat…

USBメモリのマウント

USBメモリを刺しても自動的にマウントされなかった。 sudo tail -f /var/log/messagesとして USBメモリを刺すと以下が表示された。 Oct 2 12:52:33 ns kernel: usb 2-1: new high speed USB device using ehci_hcd and address 2 Oct 2 12:52:33 ns kernel: …

Exif Viewer で確認したGPS情報

「【注意喚起】iPhoneから個人情報が漏洩している可能性アリ!」というのが気になったので確認してみました。以下はPCに転送した生画像の Exif です。PhotoShare、twitpic にアップされた画像では確認出来ませんでした。経度、緯度の数字は'*'に入れ替えてあ…

Visual Basic で可変長引数

最後のパラメータ名の前に、キーワード ByVal ParamArray を指定する。 http://msdn.microsoft.com/ja-jp/library/9z7h91e4(VS.80).aspx UBound 関数:使用できる添字の最大値を返す。 Module Module1 Public Sub TestFunction(ByVal Arg1 As String, ByVal …

Gauche DBI(Postgresql) の NULL は "" を返す。

Gauche DBI(Postgresql) の NULL は "" を返す。 (use dbi) (use gauche.collection) (define (select-db dbname sql) (guard (e ((<dbi-error> e) (raise e))) (let* ((conn (dbi-connect (string-append "dbi:pg:dbname=" dbname))) (result (dbi-execute (dbi-prepar</dbi-error>…

Gauche で DBI(Postgresql)

まず、Postgresql のドライバを入れる。 $ wget http://www.kahua.org/download/dbi/Gauche-dbd-pg-0.2.1.tgz $ tar zxf Gauche-dbd-pg-0.2.1.tgz $ cd Gauche-dbd-pg-0.2.1 $ ls $ lv README $ which pg_config /usr/bin/pg_config $ rpm -qf /usr/bin/pg_c…

ERROR: character 0xf9f5 of encoding "EUC_JP" has no equivalent in "UTF8"

PostgreSQL から pg_dump した EUC_JP のファイルを UTF8 の PostgreSQL に読み込ませるとエラーになる。 ●文字コード表(EUC-JP) [12836/12836] - [技術資料] ぺんたん info http://pentan.info/doc/euc_list2.html F9F5 FAB1 EFA891 FA11 粼 &#64017; FACB …

hexdump : バイナリファイルをダンプする

od は先に覚えたから出てくるのだけれども、hexdump が出てこないのでメモ。 ~$ echo "郄"|nkf -s|od -x 0000000 fcfb 000a ~$ echo "郄"|nkf -s|hexdump -C 00000000 fb fc 0a |...| ~$ echo "郄"|nkf -e|od -x 0000000 e2fc 000a ~$ echo "郄"|nkf -e|hexd…

拡張メソッド

Ruby の特異メソッドのような拡張メソッドが Visual Basic 2008 から使えるようになったようです。 Module StringExtenstions <System.Runtime.CompilerServices.Extension()> _ Public Sub Extension(ByVal str As String) Console.WriteLine(str & "拡張メソッド!!") End Sub End Module Module Module1 </system.runtime.compilerservices.extension()>…

リスト文字列を1文字ずつパース 再帰じゃないよ編

再帰によるパースは大きいテキストでこけるので再帰しないバージョン。 Imports System Imports System.Collections.Generic ' Ruby の Fixnum っぽいクラス Public Class Fixnum Private num_ As Integer Public Sub New(ByVal n As Integer) Me.num_ = n E…

DateTime を使う。

d.Date.ToString のように文字列に変換して切り出せばどうにでも。 Module Module1 Sub Main() Dim d As DateTime d = DateTime.Now System.Console.WriteLine(d.Date) '=> 2009/07/28 0:00:00 System.Console.WriteLine(d.Date.GetType) '=> System.DateTim…

TextBox に文字列を追加する。

TextBox の文字列を改行コードを境に分割し、リストに収納。 文字列をリストに追加したのち、改行コードを加え、TextBoxへコピー。 Public Class MemoControl Private ListObj As List(Of String) Public Sub New() Me.ListObj = New List(Of String) End Su…

'HttpUtility' は 'Web' のメンバではありません。

URLをエンコードするのに System.Web.HttpUtility.UrlEncode を使おうとすると「'HttpUtility' は 'Web' のメンバではありません。」のエラー。 Dim client As New WebClient client.QueryString("db") = "dbname" client.QueryString("tp") = "typeName" cl…

リスト文字列を1文字ずつパース VB編

Ruby で書いた「リスト文字列を1文字ずつパース」をVBで書きました。 これは実際に仕事に使おうと思うのだけれども、本物のリストでやった方がこの先面白そうです。 Imports System Imports System.Collections.Generic Public Class ListString Private str…

WebClient で Basic 認証サイトにアクセス

Imports System Imports System.Text Imports System.Net ' http://www.atmarkit.co.jp/fdotnet/dotnettips/799base64/base64.html Public Class Base64String Private enc As Encoding Public Sub New(ByVal encStr As String) enc = Encoding.GetEncoding(…

XML 設定ファイルを読み込んで Dictionary に設定する。

Visual Basic の Dictionary は Hash のようなものです。Smalltalk に Dictionary というのがりますので Smalltalk 由来かも知れません。 XML ファイル <configure> <item> <key>hoge</key> <value>http://www.example.com</value> </item> <item> <key>Googel</key> <value>http://www.google.com</value> </item> </configure> Imports System Imports System.…

リスト文字列を1文字ずつパース

深さを自由に表現できるリストをパースする まず、どのような動作をすれば良いか書いてみる。 str=%([["A",["B"]],["C","1"]]) 希望する結果 リストをスタックに保存 そのための 結果 しながら管理する様子 命令 [] s0[] s[0]=[] [[]] [[]] s0[] s1[] s[1]=[…

VB で 関数プログラミングっぽいことをする。

VB で 関数プログラミングっぽいことをするのに便利なように Head や Tail をくっつけてみました。 Imports System Imports System.Collections.Generic Public Class ListObject Private Lstr As New List(Of Object) Sub New() Me.Lstr = New List(Of Obje…

オブジェクトの型を調べる

Module Module1 Sub Main() System.Console.WriteLine((123).GetType) ' => System.Int32 System.Console.WriteLine((123.456).GetType) ' => System.Double System.Console.WriteLine((123).ToString.GetType) ' => System.String System.Console.WriteLine…

クラスを作ってみる

Public Class ListString Private str As String = "" Sub New(ByVal Name As String) Me.str = Name End Sub Public Property Name() As String Get Return str End Get Set(ByVal value As String) str = value End Set End Property Public Function Head…

文字列を1文字ずつパースして配列の配列を作る

VB は分からないので今度はRubyで。 class String def head; self[0].chr end def tail; self[1...(self.length)] end end class Array def head; self[0] end def tail; self[1...(self.length)] end end str=%([["3014","Null","0-16-087"],["1999","10","…

文字列を1文字ずつパースしてリストのリストを作りたい

str="[ [\"3014\",\"Null\",\"0-16-087\"], [\"1999\",\"10\",\"0-06-074\"] ]" addItem :: a -> [[a]] -> [[a]] addItem item ls = (init ls)++(((last ls)++item:[]):[]) eval :: [Char] -> [[[Char]]] -> [Char] -> Bool -> [[[Char]]] eval [] out _ _ =…

VBScript の Eval を使う

ScriptControlによるeval(AccessにあってVBに無いもの)より。 Module Module1 Function VBSEval(ByVal vbsExp As String) Dim sc As Object sc = CreateObject("ScriptControl") sc.Language = "VBScript" VBSEval = sc.Eval(vbsExp) sc = Nothing End Func…

yum update のエラー

以下のようなエラーが出るので 「File "/usr/bin/yum", line 29, in ?」で検索したところ、[FC4]Yumでエラーが出た場合の対応がヒット。 「sudo yum clean all」を実行したところでなくなった。なんだこれ? Traceback (most recent call last): File "/usr/…