男おひとりさま道 [読書]
割れOS? [メモ]
元々はWarez(ウェアーズ)という、ライセンス認証を不正に改変、キーを不正入手することで非合法的にソフトを利用することを言います。
これをローマ字読みすると「ワレズ」と読めるので、そこから略して「割れ」というようになりました。
Warez(ウェアーズ)とはインターネットなどを用いて非合法に配布・販売されている商用ソフトウェアのこと、あるいは非合法な方法でソフトウェアなどをやりとりする行為の総称である。"ware"に"z"を付けた言葉。
かつて日本ではWarez行為を行う者は故意にローマ字読みで「ワレザー(Warezer)」と呼ばれていた。現在、日本においてWarezが配布されているところは主にWinnyなどのファイル共有ソフトであり、その行為をする利用者も、「ワレザー」や、さらに侮蔑的な「ワレ厨」と呼ばれることがある。
参考サイト
生き残るメディア 死ぬメディア [読書]
生き残るメディア 死ぬメディア 出版・映像ビジネスのゆくえ (アスキー新書)
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2010/12/09
- メディア: Kindle版
虚言と虚飾の国・韓国 [読書]
VBプログラミングチップス(文字列操作) [開発環境]
◆Convert メソッド
- ChangeType オーバーロード。 指定したオブジェクトと等価の値と指定した型を持つObject を返します。
- FromBase64CharArray base 64 の数字で構成される Unicode 文字配列の指定サブセットを等価の 8 ビット符号なし整数の配列に変換します。パラメータにより、入力配列のオフセットとしてのサブセットと、変換する配列の要素の数が指定されます。
- FromBase64String base 64 の数字で構成される指定した String 形式の値を等価の 8 ビット符号なし整数の配列に変換します。
- GetTypeCode 指定したオブジェクトの TypeCode を返します。
- IsDBNull 指定したオブジェクトの型が DBNull かどうかを示す値を返します。
- ToBase64CharArray 8 ビット符号なし整数の配列を等価の base 64 の数字で構成される
- Unicode 文字配列サブセットへ変換します。パラメータにより、入力配列および出力配列のオフセットとしてのサブセットと、変換する入力配列の要素の数が指定されます。
- ToBase64String オーバーロード。 8 ビット符号なし整数配列の値を、base 64 の数字で構成される等価の String 形式に変換します。
- ToBoolean オーバーロード。 指定した値を等価のブール値に変換します。
- ToByte オーバーロード。 指定した値を 8 ビット符号なし整数に変換します。
- ToChar オーバーロード。 指定した値を Unicode 文字に変換します。
- ToDateTime オーバーロード。 指定した値を DateTime に変換します。
- ToDecimal オーバーロード。 指定した値を Decimal の数値に変換します。
- ToDouble オーバーロード。 指定した値を倍精度浮動小数点数に変換します。
- ToInt16 オーバーロード。 指定した値を 16 ビット符号付き整数に変換します。
- ToInt32 オーバーロード。 指定した値を 32 ビット符号付き整数に変換します。
- ToInt64 オーバーロード。 指定した値を 64 ビット符号付き整数に変換します。
- ToSByte オーバーロード。 指定した値を 8 ビット符号付き整数に変換します。
- ToSingle オーバーロード。 指定した値を単精度浮動小数点数に変換します。
- ToString オーバーロード。 指定した値を、それと等価な String 形式に変換します。
- ToUInt16 オーバーロード。 指定した値を 16 ビット符号なし整数に変換します。
- ToUInt32 オーバーロード。 指定した値を 32 ビット符号なし整数に変換します。
- ToUInt64 オーバーロード。指定した値を 64 ビット符号なし整数に変換します。
参考サイト
Marshal.PtrToStructure メソッド (IntPtr, Type) VBコーディングで悩んだこと [開発環境]
C#版のサンプルコードを参考にVBでコーディングしても、期待した結果が得られなかった原因がMarshal.PtrToStructure の使用方法にあったので記録しておく。
CTypeを使用し、指定の構造体型に式を変換する必要があった。
' マネージ構造体を作成し、アンマネージ メモリに転送した後、PtrToStructure メソッドを使用してマネージ メモリに再度転送するコード例。
Imports System
Imports System.Runtime.InteropServices' 構造体
Public Structure Point
Public x As Integer
Public y As Integer
End Structure
Module Module1Sub Main()
' 構造体の宣言
Dim p As Point
p.x = 1
p.y = 1Console.WriteLine("The value of first point is " + p.x.ToString + " and " + p.y.ToString + ".")
' 構造体用のアンマネージメモリを確保
Dim pnt As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(p))Try
' 構造体をアンマネージメモリにコピー
Marshal.StructureToPtr(p, pnt, False)' 別の構造体宣言
Dim anotherP As Point' アンマネージデータをマネージ構造体にマーシャリング(データ変換)
anotherP = CType(Marshal.PtrToStructure(pnt, GetType(Point)), Point)
' C#の場合、以下の記述となるので要注意
' anotherP = (Point)Marshal.PtrToStructure(pnt, typeof(Point));
' または
' Marshal.PtrToStructure(pnt, anotherP.GetType());
' となるので注意Console.WriteLine("The value of new point is " + anotherP.x.ToString + " and " + anotherP.y.ToString + ".")
Finally
' アンマネージメモリの解放
Marshal.FreeHGlobal(pnt)
End TryConsole.ReadKey()
End SubEnd Module
参考サイト
- http://www.mnc.co.jp/INtime/user/intimedev.php?.NET%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A4%CB%A4%AA%A4%B1%A4%EB%B6%A6%CD%AD%A5%E1%A5%E2%A5%EA%A5%A2%A5%AF%A5%BB%A5%B9%CA%FD%CB%A1
- http://msdn.microsoft.com/ja-jp/library/4ca6d5z7(v=vs.80).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-4
VBプログラミングチップス(Marshal) [開発環境]
◆System.Runtime.InteropServices.Marshall
アンマネージ メモリの割り当て、アンマネージ メモリ ブロックのコピー、マネージ型からアンマネージ型への変換などができる。
Copyメソッド
- Marshal.Copy (Byte[], Int32, IntPtr, Int32) "1 次元の 8 ビット符号なし整数のマネージ配列のデータをアンマネージ メモリ ポインタにコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (Char[], Int32, IntPtr, Int32) "1 次元の文字列のマネージ配列のデータをアンマネージ メモリ ポインタにコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (Double[], Int32, IntPtr, Int32) "1 次元の倍精度浮動小数点数のマネージ配列のデータをアンマネージ メモリ ポインタにコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (Int16[], Int32, IntPtr, Int32) "1 次元の 16 ビット符号付き整数のマネージ配列のデータをアンマネージ メモリ ポインタにコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (Int32[], Int32, IntPtr, Int32) "1 次元の 32 ビット符号付き整数のマネージ配列のデータをアンマネージ メモリ ポインタにコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (Int64[], Int32, IntPtr, Int32) "1 次元の 64 ビット符号付き整数のマネージ配列のデータをアンマネージ メモリ ポインタにコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr, Byte[], Int32, Int32) "アンマネージ メモリ ポインタのデータを 8 ビット符号なし整数のマネージ配列にコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr, Char[], Int32, Int32) "アンマネージ メモリ ポインタのデータを文字列のマネージ配列にコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr, Double[], Int32, Int32) "アンマネージ メモリ ポインタのデータを倍精度浮動小数点数のマネージ配列にコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr, Int16[], Int32, Int32) "アンマネージ メモリ ポインタのデータを 16 ビット符号付き整数のマネージ配列にコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr, Int32[], Int32, Int32) "アンマネージ メモリ ポインタのデータを 32 ビット符号付き整数のマネージ配列にコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr, Int64[], Int32, Int32) "アンマネージ メモリ ポインタのデータを 64 ビット符号付き整数のマネージ配列にコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr, IntPtr[], Int32, Int32) アンマネージ メモリ ポインタのデータをマネージ IntPtr 配列にコピーします。
- Marshal.Copy (IntPtr, Single[], Int32, Int32) "アンマネージ メモリ ポインタのデータを単精度浮動小数点数のマネージ配列にコピーします。
.NET Compact Framework によってサポートされています。" - Marshal.Copy (IntPtr[], Int32, IntPtr, Int32) 1 次元のマネージ IntPtr 配列のデータをアンマネージ メモリ ポインタにコピーします。
- Marshal.Copy (Single[], Int32, IntPtr, Int32) "1 次元の単精度浮動小数点数のマネージ配列のデータをアンマネージ メモリ ポインタにコピーします。
.NET Compact Framework によってサポートされています。"
参考サイト
プロセス間通信の特徴 [開発環境]
同期機能
◆クリティカルセクション
同時には一つのスレッドだけがリソースにアクセスするような複数スレッド間同期に用いられる。クリティカルセクションは同一のプロセス内のスレッド間でのみ利用できる。
◆ミューテックス
共有リソースにアクセスできるスレッドを同時には一つに制限するための同期オブジェクト。複数プロセスにまたがって使用できる。
◆イベント
プロセス/スレッド間で「待ち」「通知」を行うための同期オブジェクト
◆セマフォ
共有リソースに同時にアクセスできるスレッドの数を「一定数以下」という形で設定できる同期オブジェクト。
通信機能
◆共有メモリ
原始的なプロセス間通信で、普通のメモリのようにアクセスできるメモリです。 プロセスはプロセス固有のアドレス空間を持っていますが、共有メモリに確保されたメモリは 特別の空間で、プロセス間で共有されます。
プロセス間通信で最もシンプルで高速なものではないかと思います。使い道としては複数のプロセスでデータを共有したり、メッセージやフラグとして使用するのにも良いと思います。
◆メールスロット
メッセージをランダムにポストするプロセス/スレッドとそれを受け取って順次処理するプロセス/スレッドの組み合わせを構成する通信機能。
メールスロットはいわば簡易メッセージキューであり,メッセージの到着を待ち受けるプロセスと,メッセージをポスト(発信)するプロセスの間を取り持ってくれる仕組みである。送信側プログラムが送り出した「メッセージ」が次々とメールスロットにポストされ,読み出し側プログラムはそれを順に取り出して処理することができる。
メールスロットはサービスプロセスに次々と情報を投入し収集させるといった場面で利用できる。ただし,接続先を強く意識した処理,とくにアクセスコントロールについてはメールスロットへの書き込みを特定のアカウントに制限できるといったことだけであり,きめ細かな処理を行う場合には名前付きパイプの方が向いている。
◆名前付きパイプ
複数のプロセス/スレッド間で双方向の通信チャネルを開設できる通信機能
「名前付きパイプ」はシステム上の複数プロセスが双方向にデータを交換できる通信チャネルである。生成時に設定する上限の個数の範囲内で同時に複数の名前付きパイプを設けることができ,1つのサーバプログラムが複数のクライアントプログラムと通信することが可能である
名前付きパイプを使うときには,メールスロットと同じように「メッセージ」の単位で通信をするモードと,バイトストリームとして読み書きするモードの2つのモードが選べる。
参考サイト
- http://www.ipa.go.jp/security/awareness/vendor/programmingv1/b08_02.html
- http://linuxgcc.sytes.net/sys013.php
50代から上手に生きる人ムダに生きる人 [読書]
50代から上手に生きる人 ムダに生きる人: 「徒然草」に学ぶ後悔しない人生 (知的生きかた文庫)
- 作者: 清水 義範
- 出版社/メーカー: 三笠書房
- 発売日: 2012/12/22
- メディア: 文庫
phpMyAdminを使う(テーブル作成編) [WEBサービス]
1. テーブルの作成
「データーベース」タブをリックし、テーブルを作成するデーターベースを選択します。
テーブル管理画面が表示されるので、テーブル名とカラム数を入力します。
テーブル名”test_user_tb”、カラム数”3”を入力し「作成」ボタンを押します。
作成するテーブルの詳細設定画面が現れるので、必要な個所を設定し「保存する」ボタンを押します。
今回は以下の値を設定しました。データ型の詳細について以下参照。
http://kozy.heteml.jp/pukiwiki/MySQL%2520%25A5%25C7%25A1%25BC%25A5%25BF%25B7%25BF/index.html
列名 | データ型 | 説明 |
user_id | int(4) | 4ケタまでの整数 |
user_name | varchar(100) | 100文字までの文字列 |
user_email | varchar(100) | 100文字までの文字列 |
“sample_db”に"test_user_tb"テーブルが登録されました。
以上でphpMyAdminの使うシリーズは終了です。
参照サイト
- http://www.dbonline.jp/phpmyadmin/table/index1.html
- http://kozy.heteml.jp/pukiwiki/MySQL%2520%25A5%25C7%25A1%25BC%25A5%25BF%25B7%25BF/index.html