Safari on iPad has a bug -- does not draw Arabic/Persian scripts right when font tag is in between.
It should look like the bottom but looks like the top, the supposed connected form of the letter appear in an independent form.
Firefox either on the Ubuntu platform or the Windows seems to draw it correctly.
火曜日, 6月 21, 2011
水曜日, 6月 08, 2011
DataGridView: 初期値を指定する
DataGridView を使うと、テーブル形式でデータを扱うことができます。
それぞれのコラムで、値を限定し、ドロップダウンリストで選択できるようにすることもできます。
ただし、この場合には、値に制限がつくことになるので、つねに決められた値を設定してやる必要があります。
つまり、新規にデータを追加する場合など、値を空白とすることはできません。
この際には、データを追加するたびに、初期値を設定してやる必要があります。
なぜかDataTableなどではデフォルト値を設定するメソッドがありません。
イベントをフックし、値を設定してやります。
次に示すコードは、それぞれのコラムの値に適応した初期値を新規作成されたデータに設定するやり方を示したものです。
本来ならば、設定するコラムでそれぞれデフォルト値を設定できるような仕組みになっているべきではあると思います。
それぞれのコラムで、値を限定し、ドロップダウンリストで選択できるようにすることもできます。
ただし、この場合には、値に制限がつくことになるので、つねに決められた値を設定してやる必要があります。
つまり、新規にデータを追加する場合など、値を空白とすることはできません。
この際には、データを追加するたびに、初期値を設定してやる必要があります。
なぜかDataTableなどではデフォルト値を設定するメソッドがありません。
イベントをフックし、値を設定してやります。
次に示すコードは、それぞれのコラムの値に適応した初期値を新規作成されたデータに設定するやり方を示したものです。
private void dataGridView1_CellFormatting(object sender
, DataGridViewCellFormattingEventArgs e)
{
if (e.Value == null)
{
switch (e.ColumnIndex)
{
case 0:
e.Value=dataGridView1.Rows.Count;
break;
case 1:
break;
case 2:
e.Value = "Instant";
break;
case 3:
break;
case 4:
e.Value = "0";
break;
case 5:
e.Value = "0 sec";
break;
}
}
}
本来ならば、設定するコラムでそれぞれデフォルト値を設定できるような仕組みになっているべきではあると思います。
The formality problem: Java and C# -- extended class
Small things get in the way.
The way to write extended classes in Java and C# differs slightly.
Just for the record the following cases depicts the differences.
The extended class -- the case with Java:
The extended class -- the case with C#:
The way to write extended classes in Java and C# differs slightly.
Just for the record the following cases depicts the differences.
The extended class -- the case with Java:
public class NewClassTest
{
class A
{
int i=0;
A(int i)
{
this.i=i;
}
}
class B extends A
{
B()
{
super(1);
}
}
public void test()
{
System.out.println(new B().i);
}
public static void main(String args[])
{
new NewClassTest().test();
}
}
The extended class -- the case with C#:
class Class1
{
protected string value = "to be overwritten";
public Class1(string convert)
{
value = convert;
}
}
class Class2 : Class1
{
public Class2(string additional, string convert)
: base(convert)
{
value = convert + additional;
}
public string value { get; set; }
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Class2 test = new Class2(" additional text", "original text");
label1.Text = test.value;
}
}
土曜日, 6月 04, 2011
C# プログレスバーの色を変える
C#のライブラリでは、プログレスバーの色を変えるメソッドが用意されていません。
そこで、「メモリ容量がいっぱいになりました」的な状態を示すために、プログレスバーの色を緑から赤に変える方法を紹介します。
このように、Win32APIを呼び出す関数を用意して、エラー状態をセットしてやります。
もとの緑色に変更するには、ノーマル状態に戻してやります。
追記: ここで注意せねばならないのは、プログレスバーのバグで、エラー状態を設定した時点では値が変更されません。
エラー状態を設定したら、値の変更を再度行う必要があります。
これはWindowsのバグらしいです。
そこで、「メモリ容量がいっぱいになりました」的な状態を示すために、プログレスバーの色を緑から赤に変える方法を紹介します。
using System.Runtime.InteropServices;
const int WM_USER = 0x400;
const int PBM_SETSTATE = WM_USER + 16;
const int PBM_GETSTATE = WM_USER + 17;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
このように、Win32APIを呼び出す関数を用意して、エラー状態をセットしてやります。
public enum ProgressBarStateEnum : int
{
Normal = 1,
Error = 2,
Paused = 3,
}
public static void SetState(ProgressBar pBar, ProgressBarStateEnum state)
{
SendMessage(pBar.Handle, PBM_SETSTATE, (IntPtr)state, IntPtr.Zero);
}
SetState(progressBar1, ProgressBarStateEnum.Error);
もとの緑色に変更するには、ノーマル状態に戻してやります。
SetState(progressBar1, ProgressBarStateEnum.Normal);
追記: ここで注意せねばならないのは、プログレスバーのバグで、エラー状態を設定した時点では値が変更されません。
エラー状態を設定したら、値の変更を再度行う必要があります。
これはWindowsのバグらしいです。
if (progressBar1.Maximum * .9 < len)
{
progressBar1.Value = 0;
SetState(progressBar1, ProgressBarStateEnum.Normal);
progressBar1.Value = len;
SetState(progressBar1, ProgressBarStateEnum.Error);
}
else
{
progressBar1.Value = len;
SetState(progressBar1, ProgressBarStateEnum.Normal);
}
水曜日, 6月 01, 2011
フォームで、まとめてイベントを管理 AddMessageFilter()
Windows フォームで、まとめてイベントを管理したいとします。
その場でテキストエディターを立ち上げて、文字列を編集するときなど、部品全てについてイベント処理しなければなりません。
テキストエディターで編集して、コンポーネントからフォーカスが外れたとき、イベントを管理する必要があります。
これが意外な難関で、WinProcをオーバーライドしても、このメソッドではイベントが処理されません。個々のコンポーネントで処理しなければなりません。
そこで用意されているのが、ApplicationクラスにあるAddMessageFilter()メソッドです。
Application.AddMessageFilter(new MyMessageFilter())
このような形で、MessageFilter派生クラスを指定してやります。
イベント処理は、MessageFilterクラスのPreFilterMessage()メソッドで行います。
ここで、WM_NCLBUTTONDBLCLK 、WM_NCLBUTTONDOWN はタイトルバーでのイベントで、WM_LBUTTONDOWNはクライアントエリアで発生するイベントを指します。
こんな感じです。
その場でテキストエディターを立ち上げて、文字列を編集するときなど、部品全てについてイベント処理しなければなりません。
テキストエディターで編集して、コンポーネントからフォーカスが外れたとき、イベントを管理する必要があります。
これが意外な難関で、WinProcをオーバーライドしても、このメソッドではイベントが処理されません。個々のコンポーネントで処理しなければなりません。
そこで用意されているのが、ApplicationクラスにあるAddMessageFilter()メソッドです。
Application.AddMessageFilter(new MyMessageFilter())
このような形で、MessageFilter派生クラスを指定してやります。
イベント処理は、MessageFilterクラスのPreFilterMessage()メソッドで行います。
ここで、WM_NCLBUTTONDBLCLK 、WM_NCLBUTTONDOWN はタイトルバーでのイベントで、WM_LBUTTONDOWNはクライアントエリアで発生するイベントを指します。
こんな感じです。
private const int WM_LBUTTONDOWN = 0x201;
private const int WM_NCLBUTTONDBLCLK = 0x00A3;
private const int WM_NCLBUTTONDOWN = 0x00A1;
public bool PreFilterMessage(ref Message msg)
{
switch (msg.Msg)
{
case WM_NCLBUTTONDBLCLK:
case WM_NCLBUTTONDOWN:
case WM_LBUTTONDOWN:
{
int lparam = (int)msg.LParam;
int x = lparam & 0xffff;
int y = lparam >> 16;
Simulator simulator = (Simulator)sender;
Point pos = simulator.RichTextBox1.PointToClient(new Point(x, y));
Rectangle rect = new Rectangle(0, 0, simulator.RichTextBox1.Bounds.Width
, simulator.RichTextBox1.Bounds.Height + SystemInformation.HorizontalScrollBarThumbWidth);
if (!rect.Contains(pos))
{
simulator.focusOff();
}
}
break;
}
return false;
}
日曜日, 5月 22, 2011
C# クラスのAPIレファレンスの自動生成
C#には、自動的にクラスのAPIレファレンスを作成する機能があります。
Visual Studioでは、プロジェクトのプロパティでXMLファイルを出力できます。
あとはSandcastle Help File Builderなどを使ってレファレンスの形にします。
Visual Studioでは、プロジェクトのプロパティでXMLファイルを出力できます。
あとはSandcastle Help File Builderなどを使ってレファレンスの形にします。
土曜日, 5月 07, 2011
C#の、プリンタの状態を示すクラス
C#では、プリンタの状態を示すクラスがあって便利です。
プリンタサーバーを指定するクラス PrintServer 、プリンタキューのリストを返すクラス PrintQueueCollection が準備されています。
プリンタキューからジョブリストを得るメソッド GetPrintJobInfoCollection もあります。
プリンタサーバーを指定するクラス PrintServer 、プリンタキューのリストを返すクラス PrintQueueCollection が準備されています。
プリンタキューからジョブリストを得るメソッド GetPrintJobInfoCollection もあります。
LocalPrintServer myPrintServer = new LocalPrintServer();
PrintQueueCollection myPrintQueues = myPrintServer.GetPrintQueues();
string jobList = "";
foreach (PrintQueue pq in myPrintQueues)
{
if (!pq.IsWaiting)
{
PrintJobInfoCollection jobs = pq.GetPrintJobInfoCollection();
foreach (PrintSystemJobInfo job in jobs)
{
jobList = jobList + "Job: " + job.JobName + " ID: " + job.JobIdentifier+"\n";
}
}
}
土曜日, 4月 09, 2011
C#の多次元配列
C#では、配列の宣言がJavaと異なります。
角カッコが、型のほうにつく。
(C#)
string[] nameList={"Ann","Chris","Freda","Darlene","Toni"};
こんな感じです。
これがJavaだと、変数名のほうにつきます。
(Java)
String list[]={"Brad","Alfie","Chris"};
こんなことでも、結構ストレスになるものです。
C#では、多次元配列がさらに特殊な形をとります。
(C#)
int[,] intList = { { 1, 2 }, { 3, 4 } };
あれ、というような意外感があるように思います。
さらに、Javaのように宣言する配列は、C#ではjagged配列という、また別なデータ構造を意味します。
これは、配列の配列という位置づけで、それぞれの配列の要素に、任意の配列を指定できます。
逆に言うと、それぞれの配列の要素に配列を指定しなければなりません。
(C#)
int[][] jaggedList =new int[2][];
jaggedList[0] = new int[2];
jaggedList[1] = new int[3];
注意が必要です。
角カッコが、型のほうにつく。
(C#)
string[] nameList={"Ann","Chris","Freda","Darlene","Toni"};
こんな感じです。
これがJavaだと、変数名のほうにつきます。
(Java)
String list[]={"Brad","Alfie","Chris"};
こんなことでも、結構ストレスになるものです。
C#では、多次元配列がさらに特殊な形をとります。
(C#)
int[,] intList = { { 1, 2 }, { 3, 4 } };
あれ、というような意外感があるように思います。
さらに、Javaのように宣言する配列は、C#ではjagged配列という、また別なデータ構造を意味します。
これは、配列の配列という位置づけで、それぞれの配列の要素に、任意の配列を指定できます。
逆に言うと、それぞれの配列の要素に配列を指定しなければなりません。
(C#)
int[][] jaggedList =new int[2][];
jaggedList[0] = new int[2];
jaggedList[1] = new int[3];
注意が必要です。
土曜日, 4月 02, 2011
仕事でC#を使うことに。
C#は、Javaもどきとしか認識しておりませんでしたが、なんといってもマイクロソフトのVisual Studioつき。
IDEが完備しているのは強い。情報もある、といえるでしょう。
使いやすい。
イベントの処理の方法など、VC・C++などと同様に扱えます。
無意味な数値を極力使わないJava系のよさも引き継いています
リソースに「番号」を振り分ける悪趣味は、ここにはない。
コンポーネントに追加した順番ですべてが決まります。
--
Eclipse と比較すると、ヘルプやサンプルコードにすぐにアクセス出来ない、遠い感じがします。
情報はすべからくHTML形式にして、ネットに置いて欲しいものです。
IDEが完備しているのは強い。情報もある、といえるでしょう。
使いやすい。
イベントの処理の方法など、VC・C++などと同様に扱えます。
無意味な数値を極力使わないJava系のよさも引き継いています
リソースに「番号」を振り分ける悪趣味は、ここにはない。
コンポーネントに追加した順番ですべてが決まります。
--
Eclipse と比較すると、ヘルプやサンプルコードにすぐにアクセス出来ない、遠い感じがします。
情報はすべからくHTML形式にして、ネットに置いて欲しいものです。
水曜日, 12月 29, 2010
電子書籍:世界標準、日本語も対応 EPUB縦書き可能に
電子書籍のEPUBが日本語に正式対応するという。
来年5月に完成予定のEPUB3.0は縦書きや句読点の禁則処理、ルビ表記などに対応するという。
電子書籍市場は爆発的な伸びを見せており、2010年は前年度比3倍超という試算があるという。
→ 電子書籍:世界標準、日本語も対応 EPUB縦書き可能に (2010-12-29)
来年5月に完成予定のEPUB3.0は縦書きや句読点の禁則処理、ルビ表記などに対応するという。
電子書籍市場は爆発的な伸びを見せており、2010年は前年度比3倍超という試算があるという。
→ 電子書籍:世界標準、日本語も対応 EPUB縦書き可能に (2010-12-29)
水曜日, 12月 01, 2010
水曜日, 10月 27, 2010
世界一安全な日本ドメイン
米マカフィーの「危険なウエブサイトの世界分布2010」によると、日本(.jp)ドメインは危険度0.1%と2年連続で最も安全な国別ドメインとなったという。
→ 最も危険な国別ドメインはベトナム マカフィー調査 (2010-10-27)
→ 最も危険な国別ドメインはベトナム マカフィー調査 (2010-10-27)
金曜日, 10月 22, 2010
Amazon.comのQ3決算、39%増収で16%増益
米アマゾン社は21日、同年代3四半期の決算を前年同期比39%増と発表したという。
→ Amazon.comのQ3決算、39%増収で16%増益 (2010-10-22)
フランスのFNACでも電子ブックを売っているようです。
→ E-book : La Fnac attaque Amazon avec sa liseuse FnacBook
全世界的な現象ですね。
→ Amazon.comのQ3決算、39%増収で16%増益 (2010-10-22)
フランスのFNACでも電子ブックを売っているようです。
→ E-book : La Fnac attaque Amazon avec sa liseuse FnacBook
全世界的な現象ですね。
月曜日, 10月 04, 2010
Firefoxをもっと便利にする10のテクニック
Firefox のショートカットやツールバー、アイコンについての記事をマイコミジャーナルで発見しました。
ちょうどこんなのが欲しかった 的な工夫が満載です。
ちょうどこんなのが欲しかった 的な工夫が満載です。
http://journal.mycom.co.jp/articles/2010/10/04/firefox-useful-10-tips/index.html
日曜日, 5月 09, 2010
ほぼ全社がグーグル電子書籍承認 印刷本から急速シフト
グーグルは9日、共同通信との取材で、同社が6月下旬に予定している電子書籍の販売に、米国のほぼ出版社ほぼ全社が参加していると述べたという。
→ ほぼ全社がグーグル電子書籍承認 印刷本から急速シフト (2010-5-10)
→ 【出版】iPad登場で電子書籍、価格上昇の怪 (2010-5-6)
→ グーグル独占に懸念も 米国の電子書籍市場 (2010-5-10)
アマゾン・ドット・コムの Kindle や、アップル社の iPad ですね、まったくすばらしいです。
一瞬にして本がダウンロードできる。電源をオンにすると自動的に今日の新聞がダウンロードされる。レイアウトなんてのもばっちりです。タブレットってのもいいものです。
iPad なんかだと、極めて自然な動作で、ページが見事にめくれます。動作をためらうと、それなりにページがふわっと止まってくれるわけです。これがやみつきになる。
もちろん、何冊でもメモリの許す限り保有することができます。多くの本を手元に所有する安心感。さらに、ポテンシャルとして可能な限りの本を所有することの出来る期待感。
読みながら辞書が引けるということもあります。
早いところ、日本の書籍が読みたいと切に思います。
→ ほぼ全社がグーグル電子書籍承認 印刷本から急速シフト (2010-5-10)
→ 【出版】iPad登場で電子書籍、価格上昇の怪 (2010-5-6)
→ グーグル独占に懸念も 米国の電子書籍市場 (2010-5-10)
アマゾン・ドット・コムの Kindle や、アップル社の iPad ですね、まったくすばらしいです。
一瞬にして本がダウンロードできる。電源をオンにすると自動的に今日の新聞がダウンロードされる。レイアウトなんてのもばっちりです。タブレットってのもいいものです。
iPad なんかだと、極めて自然な動作で、ページが見事にめくれます。動作をためらうと、それなりにページがふわっと止まってくれるわけです。これがやみつきになる。
もちろん、何冊でもメモリの許す限り保有することができます。多くの本を手元に所有する安心感。さらに、ポテンシャルとして可能な限りの本を所有することの出来る期待感。
読みながら辞書が引けるということもあります。
早いところ、日本の書籍が読みたいと切に思います。
水曜日, 5月 05, 2010
火曜日, 5月 04, 2010
米アップルの「iPad」販売が100万台突破、電子書籍150万冊
米アップル社は3日、iPad の販売台数が先月30日まで100万台に達したと発表したという。
→ 米アップルの「iPad」販売が100万台突破、電子書籍150万冊 (2010-5-4)
電子書籍のダウンロード数も圧倒的です。
日本の電子書籍のコンソーシアムはいったいどうなっているんでしょうか。
→ 米アップルの「iPad」販売が100万台突破、電子書籍150万冊 (2010-5-4)
電子書籍のダウンロード数も圧倒的です。
日本の電子書籍のコンソーシアムはいったいどうなっているんでしょうか。
水曜日, 4月 14, 2010
金曜日, 4月 02, 2010
グーグル社名変更など IT関連企業各社のエープリルフール
恒例のエイプリル・フールの面白ネタをいくつか。
* グーグルが社名をトピカに変更
これって、カンザス州の州都トピカが、3月限定で市名を「グーグル」に変更したことへの返礼とかいうことです。べつに企業城下町ということではなくて、グーグル社に光ファイバー網をひいてほしいという要請の一環とのことです。
* ヤフーのトップ画面が3D
これは本当に画面が用意してあって、アメコミ風のSilverlightでなんちゃってページが置いてありました。広告にカーソルを当てると飛び出てくる趣向で、悪くないアイデアといえるでしょう。
* ユーチューブが動画のテキスト版配信を開始
これは完全にありえないやつで、バンド幅が節約できるとの触れ込みつき。
→ グーグル社名変更など IT関連企業各社のエープリルフール (2010-4-2)
→ カンザス州都は「グーグル市」、過去には「トピカチュウ」も (2010-4-2)
→ グーグルの「エープリルフール」不発 (2010-4-2)
* グーグルが社名をトピカに変更
これって、カンザス州の州都トピカが、3月限定で市名を「グーグル」に変更したことへの返礼とかいうことです。べつに企業城下町ということではなくて、グーグル社に光ファイバー網をひいてほしいという要請の一環とのことです。
* ヤフーのトップ画面が3D
これは本当に画面が用意してあって、アメコミ風のSilverlightでなんちゃってページが置いてありました。広告にカーソルを当てると飛び出てくる趣向で、悪くないアイデアといえるでしょう。
* ユーチューブが動画のテキスト版配信を開始
これは完全にありえないやつで、バンド幅が節約できるとの触れ込みつき。
→ グーグル社名変更など IT関連企業各社のエープリルフール (2010-4-2)
→ カンザス州都は「グーグル市」、過去には「トピカチュウ」も (2010-4-2)
→ グーグルの「エープリルフール」不発 (2010-4-2)
土曜日, 2月 27, 2010
水曜日, 2月 24, 2010
ダライ・ラマもツイッター=中国を刺激?
チベットのダライラマ法王は23日、ツイッターに登録、利用を始めたことが分かったという。法王は、ロサンゼルスでツイッター社の最高経営責任者(CEO)に会い、登録を決めたという。IDは DalaiLama で、フォロワーが急増中という。
→ ダライ・ラマもツイッター=中国を刺激? (2010-2-24)
→ ダライ・ラマもツイッター=中国を刺激? (2010-2-24)
水曜日, 2月 10, 2010
IE9でSVGに対応の可能性 - MicrosoftがSVG WGに参加
→ IE9でSVGに対応の可能性 - MicrosoftがSVG WGに参加 (2010-1-7)
マイクロソフトは、W3Cのワーキンググループに参加するそうです。
IE9で、SVGに対応する可能性が出てきました。
SVGのように、構造化されたグラフィクスがウェブ上で使えるようになると、素晴らしい世界が広がります。
現在、ウェブでページを書くとき、ちょっと凝ったふうに表示しようと思えば、いっさいがっさい、全部、画像ファイルにして読み込まねばなりません。
タイトルを大きく書こうと思えば、そのような画像ファイルを用意し、背景を描くなりなんなりせねばなりません。
SVGなら、スタイルシートで、ベクトル画を指定できます。
大きく文字を書いて、背景にグラデーションをかけて、下線を引く、などの動作が、画像ファイルでなくて、コードで指定できる。
画像ファイルでないので、転送速度はもちろん速くなります。
そして、構造化されたグラフィクスとして、自動生成できるようになります。
利点は、自動生成できることばかりにあるわけではありません。
文字コードで記述されるということは、つまり、ALTタグなどで指定しなくても検索が可能になるということです。
さらに、Javascriptなどと組み合わせれば、データを動的に指定して画像にすることができます。
Javascriptとの組み合わせでは、かなり高度なアプリやゲームができます。
ただし、コンパイルせずにコードをそのまま流す形になります。
フラッシュやシルバーライトと競合する可能性があります。
SVG規格は、HTML5規格でHTMLページへの組み込みが可能になります。
他にベクトル描画規格としては、Canvasなどがあります。
SVGとCanvasと、健全な競争による切磋琢磨が期待されます。
マイクロソフトは、W3Cのワーキンググループに参加するそうです。
IE9で、SVGに対応する可能性が出てきました。
SVGのように、構造化されたグラフィクスがウェブ上で使えるようになると、素晴らしい世界が広がります。
現在、ウェブでページを書くとき、ちょっと凝ったふうに表示しようと思えば、いっさいがっさい、全部、画像ファイルにして読み込まねばなりません。
タイトルを大きく書こうと思えば、そのような画像ファイルを用意し、背景を描くなりなんなりせねばなりません。
SVGなら、スタイルシートで、ベクトル画を指定できます。
大きく文字を書いて、背景にグラデーションをかけて、下線を引く、などの動作が、画像ファイルでなくて、コードで指定できる。
画像ファイルでないので、転送速度はもちろん速くなります。
そして、構造化されたグラフィクスとして、自動生成できるようになります。
利点は、自動生成できることばかりにあるわけではありません。
文字コードで記述されるということは、つまり、ALTタグなどで指定しなくても検索が可能になるということです。
さらに、Javascriptなどと組み合わせれば、データを動的に指定して画像にすることができます。
Javascriptとの組み合わせでは、かなり高度なアプリやゲームができます。
ただし、コンパイルせずにコードをそのまま流す形になります。
フラッシュやシルバーライトと競合する可能性があります。
SVG規格は、HTML5規格でHTMLページへの組み込みが可能になります。
他にベクトル描画規格としては、Canvasなどがあります。
SVGとCanvasと、健全な競争による切磋琢磨が期待されます。
金曜日, 1月 22, 2010
Mozilla、「Firefox 3.6」正式版をリリース
Firefox 3.6 が公開されたという。
Javascriptの実行速度が20%以上高速となったほか、「ペルソナ」でメニューの背景を変えることができる。
→ Mozilla、「Firefox 3.6」正式版をリリース (2010-1-22)
→ 「Firefox 3.6」公開、プラグインチェックなど新機能を搭載 (2010-1-22)
→ ペルソナ 公式サイト
Javascriptの実行速度が20%以上高速となったほか、「ペルソナ」でメニューの背景を変えることができる。
→ Mozilla、「Firefox 3.6」正式版をリリース (2010-1-22)
→ 「Firefox 3.6」公開、プラグインチェックなど新機能を搭載 (2010-1-22)
→ ペルソナ 公式サイト
欧州連合、米Oracleの米Sun買収を承認
EUは21日、米オラクルによる米サン・マイクロシステムズの買収を承認したという。
→ 欧州連合、米Oracleの米Sun買収を承認 (2010-1-22)
→ EUが米OracleのSun買収を承認、「PostgreSQLが代替になりえる」 (2010-1-22)
→ 欧州委員会、Oracle による Sun 買収を制限なしで承認 (2010-1-22)
→ 欧州連合、米Oracleの米Sun買収を承認 (2010-1-22)
→ EUが米OracleのSun買収を承認、「PostgreSQLが代替になりえる」 (2010-1-22)
→ 欧州委員会、Oracle による Sun 買収を制限なしで承認 (2010-1-22)
水曜日, 1月 20, 2010
Googleの無料パブリックDNSサービス「Google Public DNS」を使ってネットのアクセス速度を上昇させる方法
米グーグル社は Google Public DNS という無料のパブリックDNSサービスを昨年12月3日に発表したという。
→ Google Public DNSとは (2010-1-20)
→ Googleの無料パブリックDNSサービス「Google Public DNS」を使ってネットのアクセス速度を上昇させる方法 (2010-1-20)
確かに、本当に、そのままアクセスが早くなりました。おためしあれ
→ Google Public DNSとは (2010-1-20)
→ Googleの無料パブリックDNSサービス「Google Public DNS」を使ってネットのアクセス速度を上昇させる方法 (2010-1-20)
確かに、本当に、そのままアクセスが早くなりました。おためしあれ
米中両政府、グーグル問題で複数回の協議
キャンベル米国務次官補は19日、中国当局のネット検閲について複数回の会合を持ったほか、数日以内にさらに協議する方針という。
→ 自由なインターネット使用について中国と数回会合、今後さらに協議=米国務次官補 (2010-1-20)
→ 米中両政府、グーグル問題で複数回の協議 (2010-1-20)
→ 自由なインターネット使用について中国と数回会合=米国務次官補 (2010-1-20)
→ 自由なインターネット使用について中国と数回会合、今後さらに協議=米国務次官補 (2010-1-20)
→ 米中両政府、グーグル問題で複数回の協議 (2010-1-20)
→ 自由なインターネット使用について中国と数回会合=米国務次官補 (2010-1-20)
火曜日, 1月 19, 2010
独仏の政府機関、「IE」の利用を控えるよう勧告
マイクロソフト社は14日、IE(Internet Explorer)のゼロデイ脆弱性により、複数の米国企業へのサイバー攻撃に利用されたことを認めたという。
ドイツ政府とフランス政府は、マイクロソフトのIEの使用を控えるよう国民に呼びかけているという。
→ グーグルのセキュリティ侵害はIEのゼロデイ脆弱性が原因--マイクロソフトが認める (2010-1-19)
→ 独仏の政府機関、「IE」の利用を控えるよう勧告 (2010-1-19)
→ ドイツやフランスの政府機関、「IEの利用中止」を推奨 (2010-1-19)
ドイツ政府とフランス政府は、マイクロソフトのIEの使用を控えるよう国民に呼びかけているという。
→ グーグルのセキュリティ侵害はIEのゼロデイ脆弱性が原因--マイクロソフトが認める (2010-1-19)
→ 独仏の政府機関、「IE」の利用を控えるよう勧告 (2010-1-19)
→ ドイツやフランスの政府機関、「IEの利用中止」を推奨 (2010-1-19)
土曜日, 1月 16, 2010
USB3.0
USB3.0製品、出てますねー
規格は2008年11月に正式発表されてます。
最大データ転送速度が5Gbps。
物理的に、ピンの数が9本となってますが、後方互換性ありとかで、USB1.1,USB2.0のコネクタが使えるらしい。
通信速度を上げているため、スペクトラム拡散やシールドなど電磁放射雑音対策が必須となり、最大伝送距離が短くなっているそうです(推定約3mという)。
符号化形式は、8B/10B。通信モードは全二重。給電能力が最大900mA。省電力を目指し、ポーリング排除、4つの待機モード。
→ usb3.0のニュース検索結果
規格は2008年11月に正式発表されてます。
最大データ転送速度が5Gbps。
物理的に、ピンの数が9本となってますが、後方互換性ありとかで、USB1.1,USB2.0のコネクタが使えるらしい。
通信速度を上げているため、スペクトラム拡散やシールドなど電磁放射雑音対策が必須となり、最大伝送距離が短くなっているそうです(推定約3mという)。
符号化形式は、8B/10B。通信モードは全二重。給電能力が最大900mA。省電力を目指し、ポーリング排除、4つの待機モード。
→ usb3.0のニュース検索結果
木曜日, 1月 14, 2010
米グーグル、メールの安全強化 暗号化機能、標準仕様に
米グーグル社は、同社の無料メールサービス「Gメール」を暗号化し、サイバー攻撃に対処するという。
グーグルは、中国からサイバー攻撃を受けたと発表しており、安全性向上に努めるという。
米マイクロソフトとヤフーは13日、グーグル社と協力して事態に対処すると発表したという。
→ 米グーグル、メールの安全強化 暗号化機能、標準仕様に
→ マイクロソフトやヤフー、相次ぎグーグル支持 サイバー攻撃巡り
→ 米ヤフーにも中国でグーグル同様のサイバー攻撃-関係者
グーグルは、中国からサイバー攻撃を受けたと発表しており、安全性向上に努めるという。
米マイクロソフトとヤフーは13日、グーグル社と協力して事態に対処すると発表したという。
→ 米グーグル、メールの安全強化 暗号化機能、標準仕様に
→ マイクロソフトやヤフー、相次ぎグーグル支持 サイバー攻撃巡り
→ 米ヤフーにも中国でグーグル同様のサイバー攻撃-関係者
水曜日, 1月 13, 2010
中国事業から撤退辞さず=人権活動家狙ったサイバー攻撃で-米グーグル
米グーグル社は12日、中国語サイトの検索結果の検閲受け入れを停止を目指し、中国政府と交渉すると発表したという。
→ 中国事業から撤退辞さず=人権活動家狙ったサイバー攻撃で-米グーグル (2010-1-13)
ヤフー、マイクロソフト、シスコが検閲反対に協力・賛同するかどうか注目されている。
2006年にはこの4社は、中国政府の要請で検閲ソフトを使用し、情報を提供したために、言論の自由を損ない、民主活動家の弾圧に加担したとして米下院の公聴会に呼び出され、非難されている。
→ 中国政府の検閲に協力的なIT企業を批難、米国下院議会
グーグル検索を使えないとすれば、実はそれだけで「制裁」そのものだと思いますね。
→ グーグル問題/中国は情報統制をやめよ (2010-1-16)
→ 中国事業から撤退辞さず=人権活動家狙ったサイバー攻撃で-米グーグル (2010-1-13)
ヤフー、マイクロソフト、シスコが検閲反対に協力・賛同するかどうか注目されている。
2006年にはこの4社は、中国政府の要請で検閲ソフトを使用し、情報を提供したために、言論の自由を損ない、民主活動家の弾圧に加担したとして米下院の公聴会に呼び出され、非難されている。
→ 中国政府の検閲に協力的なIT企業を批難、米国下院議会
グーグル検索を使えないとすれば、実はそれだけで「制裁」そのものだと思いますね。
→ グーグル問題/中国は情報統制をやめよ (2010-1-16)
日曜日, 1月 10, 2010
A4サイズの電子ブック 「QUE」
A4サイズの電子ブックが4月に発売になるそうです。
英Plastic Loic社のQUEproReaderという製品で、タッチスクリーンでボタンはひとつ。
無線LAN対応のモデルが$649、携帯電話網対応モデルが$799。
Barns and Noblesなどと提携しているとかで、雑誌・新聞が毎日、自動的にダウンロードされてどこでも読める。書籍の iPod 版とかいうコンセプトだとか。
電子書籍市場の拡大と充実が楽しみです。
→ メールも読める電子書籍リーダー「QUE」、Plastic Logicが発表――発売は4月半ば (2010-1-11)
→ 書籍端末 はや乱戦 米見本市に20社超参加 (2010-1-15)
CPUは、米Marvell社の、ARMベースの「ARMADA」だそうです。
→ MarvellとE-Ink、電子書籍リーダー用プロセッサを提供 (2010-1-11)
→ ARMADA 100
英Plastic Loic社のQUEproReaderという製品で、タッチスクリーンでボタンはひとつ。
無線LAN対応のモデルが$649、携帯電話網対応モデルが$799。
Barns and Noblesなどと提携しているとかで、雑誌・新聞が毎日、自動的にダウンロードされてどこでも読める。書籍の iPod 版とかいうコンセプトだとか。
電子書籍市場の拡大と充実が楽しみです。
→ メールも読める電子書籍リーダー「QUE」、Plastic Logicが発表――発売は4月半ば (2010-1-11)
→ 書籍端末 はや乱戦 米見本市に20社超参加 (2010-1-15)
CPUは、米Marvell社の、ARMベースの「ARMADA」だそうです。
→ MarvellとE-Ink、電子書籍リーダー用プロセッサを提供 (2010-1-11)
→ ARMADA 100
火曜日, 12月 22, 2009
土曜日, 12月 19, 2009
CIAと外務省サイトを検索するChrome拡張機能
CIAと外務省サイトを検索するChrome拡張機能を作ってみました。
→ CIA Search
拡張機能は、まだ Chrome のベータ版でしか機能しませんが、すでに多くの拡張機能がアップされています。
ポップアップのウィンドウでは、ドロップダウンリストがそのままでは実装できないので注意が必要です。
→ CIA Search
拡張機能は、まだ Chrome のベータ版でしか機能しませんが、すでに多くの拡張機能がアップされています。
ポップアップのウィンドウでは、ドロップダウンリストがそのままでは実装できないので注意が必要です。
木曜日, 12月 17, 2009
Chrome Extensions
Google Chrome browser seem to get the momentum now that many extensions are available.
→ Chrome Extensions
Sensible enough, it runs Javascript. The objects are custom made, though, and it will take time to get them all.
→ Google Chrome Extensions (Labs)
A code like this will set a listener. The specified callback function will be invoked when the icon is clicked.
When the extension is invoked, it creates popup window. It could create empty background window. The current selected window is called contents window and scripts and css's etc for the window can be specified in .json file.
→ Overview
Google Chrome 拡張機能では、それぞれ任意のページ(background), サイトを開いたときに起動する(contents), アイコンをクリックすると表示される(popup)などで指定するコードを起動できる。
→ Chrome Extensions
Sensible enough, it runs Javascript. The objects are custom made, though, and it will take time to get them all.
→ Google Chrome Extensions (Labs)
A code like this will set a listener. The specified callback function will be invoked when the icon is clicked.
chrome.browserAction.onClicked.addListener(function(tab) {
alert(tab.url);
});
When the extension is invoked, it creates popup window. It could create empty background window. The current selected window is called contents window and scripts and css's etc for the window can be specified in .json file.
→ Overview
Google Chrome 拡張機能では、それぞれ任意のページ(background), サイトを開いたときに起動する(contents), アイコンをクリックすると表示される(popup)などで指定するコードを起動できる。
水曜日, 12月 09, 2009
Chromeの拡張機能が利用可能に - Googleがベータ提供開始
Chrome に拡張機能がついたベータ版がでたそうです。
→ Chromeの拡張機能が利用可能に - Googleがベータ提供開始 (2009-12-9)
ベータ版のダウンロードが必要です。
拡張機能のページで検索できるようです。
→ Chromeの拡張機能が利用可能に - Googleがベータ提供開始 (2009-12-9)
ベータ版のダウンロードが必要です。
拡張機能のページで検索できるようです。
土曜日, 12月 05, 2009
ウルドゥー語の表示
土曜日, 11月 28, 2009
PHPで、棒グラフ
PHPで、棒グラフなど書くことができます。画像に書き出してそれをHTMLのページに埋め込むことができるということです。データベースからデータを読み出して、グラフにして表示することが、オンラインで可能です。
以下のコードを、.php ファイルに保存して、ApacheなどPHPの動く環境でブラウザでアクセスすると、t.png の画像ファイルができて棒グラフになっているはずです。
以下のコードを、.php ファイルに保存して、ApacheなどPHPの動く環境でブラウザでアクセスすると、t.png の画像ファイルができて棒グラフになっているはずです。
$data=array();
array_push($data,1);
array_push($data,2);
array_push($data,3);
$width=300;
$height=10+10*count($data);
$image=imagecreatetruecolor($width,$height);
$white=imagecolorallocate($image,255,255,255);
imagefilledrectangle($image,0,0,$width,$height,$white);
$black=imagecolorallocate($image,0,0,0);
$i=0;
foreach($data as $item)
{
$y0=5+10*$i;
$x1=$item*10;
imagefilledrectangle($image,0,$y0,$x1,$y0+10,$black);
$i++;
}
$filename="t.png";
imagepng($image,$filename);
imagedestroy($image);
?>
金曜日, 11月 20, 2009
木曜日, 11月 12, 2009
インテル、AMDと和解 1100億円支払いで
AMD(アドバンスト・マイクロ・デバイシズ)社がインテル社を独禁法で訴えていた件で12日、インテルは12億5千億ドル(約1100億円)をAMDに支払うことで和解したという。
→ インテル、AMDと和解 1100億円支払いで (2009-11-13)
→ インテル、AMDとの訴訟で和解 独禁法違反巡り (2009-11-13)
→ 米インテルがAMDと全訴訟で和解、12.5億ドル支払い (2009-11-13)
→ インテル、AMDと和解 1100億円支払いで (2009-11-13)
→ インテル、AMDとの訴訟で和解 独禁法違反巡り (2009-11-13)
→ 米インテルがAMDと全訴訟で和解、12.5億ドル支払い (2009-11-13)
火曜日, 11月 10, 2009
日曜日, 10月 11, 2009
PHP: ディレクトリを丸ごとコピーします。
ディレクトリを丸ごとコピーします。
readdir の返り値はファイル名なので、フルパスではありません。
is_dir の引数には、もとのディレクトリとフルパスを指定します。
ファイルの存在は file_exists で検査します。
To copy a directory recursively in PHP:
readdir の返り値はファイル名なので、フルパスではありません。
is_dir の引数には、もとのディレクトリとフルパスを指定します。
ファイルの存在は file_exists で検査します。
To copy a directory recursively in PHP:
function copyDirectory($imageDir, $destDir)
{
$handle=opendir($imageDir);
while($filename=readdir($handle))
{
if(strcmp($filename,".")!=0
&& strcmp($filename,"..")!=0)
{
if(is_dir("$imageDir/$filename"))
{
if(!empty($filename) && !file_exists("$destDir/$filename"))
mkdir("$destDir/$filename");
copyDirectory("$imageDir/$filename","$destDir/$filename");
}
else
{
if(file_exists("$destDir/$filename"))
unlink("$destDir/$filename");
copy("$imageDir/$filename","$destDir/$filename");
}
}
}
}
水曜日, 10月 07, 2009
アマゾンの電子書籍リーダー「Kindle」が日本へも出荷開始
Amazon.com は国際版 Kindle の販売を10月19日から開始すると発表したという。
→ アマゾンの電子書籍リーダー「Kindle」が日本へも出荷開始 (2009-10-7)
→ Amazon.com
→ Kindle Goes International — With a Little Help From AT&T (2009-10)
米電子リーダー市場で争うソニーは、12月に Reader の Daily Edition を発表するとしている。
→ ソニー、3G内蔵の新Reader Daily Editionを発表、図書館からの貸し出しも対応 (2009-8-26)
→ アマゾンの電子書籍リーダー「Kindle」が日本へも出荷開始 (2009-10-7)
→ Amazon.com
→ Kindle Goes International — With a Little Help From AT&T (2009-10)
米電子リーダー市場で争うソニーは、12月に Reader の Daily Edition を発表するとしている。
→ ソニー、3G内蔵の新Reader Daily Editionを発表、図書館からの貸し出しも対応 (2009-8-26)
木曜日, 9月 10, 2009
パナソニックもLED電球に参入
省電力・小型・長寿命なLED電球に、続々と企業が参入で、期待大。
→ パナソニック、LED電球に参入 10月発売へ (2009-9-10)
→ パナソニックもLED電球に参入 (2009-9-10)
→ 三菱、60W白熱電球相当の明るさのLED電球 (2009-9-10)
アキバで売ってる安いのだと、青っぽかったりしてトイレとかだと使えるってカンジですけどね。エコだと思うといいもんです。
→ パナソニック、LED電球に参入 10月発売へ (2009-9-10)
→ パナソニックもLED電球に参入 (2009-9-10)
→ 三菱、60W白熱電球相当の明るさのLED電球 (2009-9-10)
アキバで売ってる安いのだと、青っぽかったりしてトイレとかだと使えるってカンジですけどね。エコだと思うといいもんです。
金曜日, 9月 04, 2009
MySQLの行く末を保証せよ - EU、OracleのSun買収について詳細調査を開始
欧州委員会は3日、データベース大手のオラクルのサン買収について、追加の調査を実施すると発表したという。
オラクルがMySQLを保有するサンを買収することで、MySQLが有料化されたり、開発が止まったりする懸念について調査するという。
欧州委員会の最終決定は、2010年1月19日以降になるという。
→ MySQLの行く末を保証せよ - EU、OracleのSun買収について詳細調査を開始 (2009-9-4)
オラクルがMySQLを保有するサンを買収することで、MySQLが有料化されたり、開発が止まったりする懸念について調査するという。
欧州委員会の最終決定は、2010年1月19日以降になるという。
→ MySQLの行く末を保証せよ - EU、OracleのSun買収について詳細調査を開始 (2009-9-4)
金曜日, 8月 14, 2009
米マイクロソフトのZuneHD、iPod下回る価格設定
マイクロソフト社は13日、ポータブル・メディアプレーヤーZune(ズーン)HDの価格設定を発表したという。
ZuneHD は、Windows CE を搭載、CPUは ARM ベースの NVIDIA Tegra 。
iPod に対抗するとし、価格は219.99ドル(16GBモデル)、289.99ドル(32GBモデル)、発売予定日は9月15日という。
FMラジオ機能があるほか、HDMI端子がついており、テレビに動画が送れるという。
→ 米マイクロソフトのZuneHD、iPod下回る価格設定 (2009-8-14)
→ ZuneHD
→ zunerama
オプションでFM電波を飛ばせるため、カーステレオで音楽が聴けるということでした。
日本発売は予定がないそうです。
ZuneHD は、Windows CE を搭載、CPUは ARM ベースの NVIDIA Tegra 。
iPod に対抗するとし、価格は219.99ドル(16GBモデル)、289.99ドル(32GBモデル)、発売予定日は9月15日という。
FMラジオ機能があるほか、HDMI端子がついており、テレビに動画が送れるという。
→ 米マイクロソフトのZuneHD、iPod下回る価格設定 (2009-8-14)
→ ZuneHD
→ zunerama
オプションでFM電波を飛ばせるため、カーステレオで音楽が聴けるということでした。
日本発売は予定がないそうです。
金曜日, 7月 31, 2009
MicrosoftとYahoo!が検索分野で10年間に渡る提携を発表した狙い
マイクロソフト社とヤフーは検索エンジンを共同開発するという話題があがってますよね。
→ MicrosoftとYahoo!が検索分野で10年間に渡る提携を発表した狙い (2009-7-30)
もっぱら、グーグルばかり使ってた人間ですが、自分のサイトが登録されていなかったので...(笑・なぜだろう)
→ 言語学のページ
楽天のサイトなのに理由が分かりません。
競争があるのはありがたい、と実感したという顛末でした。
→ MicrosoftとYahoo!が検索分野で10年間に渡る提携を発表した狙い (2009-7-30)
もっぱら、グーグルばかり使ってた人間ですが、自分のサイトが登録されていなかったので...(笑・なぜだろう)
→ 言語学のページ
楽天のサイトなのに理由が分かりません。
競争があるのはありがたい、と実感したという顛末でした。
日曜日, 7月 26, 2009
Microsoftが欧州でWindows 7に「ブラウザ選択画面」,ECが歓迎の声明
米マイクロソフト社は24日、新たに販売されるWindows7に「バロット・スクリーン」(投票画面)を設置し、ブラウザを選択できるようにすると発表したという。
PCに標準搭載されるOSに、特定のソフトウエアがバンドルされることは市場独占につながるとする意見に対し、マイクロソフト社は自社のブラウザ、IEをバンドルしない方針を表明していた。
欧州委員会はこのマイクロソフト社の方針に否定的コメントを発表していたという。
これに対し、マイクロソフト社は5種類のブラウザから選択できる「バロット・スクリーン」の設置を提案しているのだという。
マイクロソフト社は、IE, Firefox,Safari,Google Chrome,Opera を提案しているという。
PCメーカーは、ブラウザをプリインストールすることができるという。
→ Microsoftが欧州でWindows 7に「ブラウザ選択画面」,ECが歓迎の声明 (2009-7-26)
個人的には、アドオンの豊富なFirefox、起動の早いChrome,IEしか対応していないサイトがあるのでIE ...といったところが好みですね。
特に、アドオンでムカつく画像を消せたり、CSSを変えられたりできるので、Firefoxに一票。adblockとstylish、flashblockなどお勧めです。
もちろん、IEならIE7Proを使うと、広告がブロックできます。アドオンを有効にして、ツールメニューからIE7Pro preferencesをクリック。広告ブロックにチェックを入れると、広告がカットできます。
選べると、シェアが変動するので、サイトのほうも対応して変わってくる。
楽しみですね。標準化なるか、あるいはブラウザを指定するようになるか。
標準化したところで、ChromeOSの登場とか。
月曜日, 7月 20, 2009
Microsoft、「オンライン版Office」でGoogleに対抗
サンが買収されるまで、仮想マシンを散々に言ってきたマイクロソフトがこうである。「どこまで仮想化できるか」
そのマイクロソフトはオンラインのオフィスを提供する予定と発表している。
金のためにマイクロソフトは技術の発展を止めた、というのは不都合な真実というよりは現在の、特に米国の、そして日本の企業文化に対する理解への必要性を理解するべきであろう。
「仮想化したら重い」という批判とともに、仮想化・標準化は絶対にいい、かならず必要になる、メモリ制限などなくなるに決まっているという意見がある。
先走るのは、技術的にデメリットがあるというより、社会的なアクセプタンスの問題が生じる。
→ Microsoft、「オンライン版Office」でGoogleに対抗 (2009-7-14)
そのマイクロソフトはオンラインのオフィスを提供する予定と発表している。
金のためにマイクロソフトは技術の発展を止めた、というのは不都合な真実というよりは現在の、特に米国の、そして日本の企業文化に対する理解への必要性を理解するべきであろう。
「仮想化したら重い」という批判とともに、仮想化・標準化は絶対にいい、かならず必要になる、メモリ制限などなくなるに決まっているという意見がある。
先走るのは、技術的にデメリットがあるというより、社会的なアクセプタンスの問題が生じる。
→ Microsoft、「オンライン版Office」でGoogleに対抗 (2009-7-14)
金曜日, 7月 10, 2009
Firefox で埋め込み画像の機能
つい先だって ver. 3.5 の発表されたFirefox ですが、Firefox には IE にはない機能があります。
埋め込み画像の機能です。画像を(バイナリでなく)文字コード化して表示できます。
ページを保存するだけで、中の画像が別ファイルなしで表示できます。
タグのフォーマットは、IMGタグにBASE64でエンコードされた画像を記述します。
PHPコードで、試験的に画像ファイルを読み込んで、埋め込んで表示するコードを書いてみました。
base64_encode()関数を用いて画像ファイルをエンコードし、埋め込んでいます。
埋め込み画像の機能です。画像を(バイナリでなく)文字コード化して表示できます。
ページを保存するだけで、中の画像が別ファイルなしで表示できます。
タグのフォーマットは、IMGタグにBASE64でエンコードされた画像を記述します。
PHPコードで、試験的に画像ファイルを読み込んで、埋め込んで表示するコードを書いてみました。
$fileName="hatch.gif";
$fd=fopen($fileName,"r");
$contents=fread($fd,filesize($fileName));
fclose($fd);
echo "<img src='data:image/gif;base64,". base64_encode($contents)."'>";
base64_encode()関数を用いて画像ファイルをエンコードし、埋め込んでいます。
水曜日, 7月 08, 2009
米グーグルがパソコン用OS「Google Chrome OS」を開発
Google社は8日、ネットブックOS「Google Chrome OS」を開発中と発表。
→ 米グーグルがパソコン用OS「Google Chrome OS」を開発 (2009-7-8)
ブラウザ上でのアプリは、見た目が統一されており、広く普及しているため、Windowsに取って代わるだけの標準となりうる脅威として語られて久しい。
ブラウザだけ動けば、OSは何でもいいとなれば独占市場が切り崩せると、いう夢物語が現実に...?
→ 米グーグルがパソコン用OS「Google Chrome OS」を開発 (2009-7-8)
ブラウザ上でのアプリは、見た目が統一されており、広く普及しているため、Windowsに取って代わるだけの標準となりうる脅威として語られて久しい。
ブラウザだけ動けば、OSは何でもいいとなれば独占市場が切り崩せると、いう夢物語が現実に...?
火曜日, 6月 30, 2009
中国政府、「検閲ソフト」義務化を延期 新華社報道
中国は30日、検閲ソフト Green Dam の義務化を延期すると発表したという。
検閲ソフトはPCにインストールしてネットへのアクセスを制限するもので、建前上は有害サイトへのアクセスを自動的に阻むとしていた。
検閲ソフトは、技術上の問題があったとして批判があったほか、サイト許可リストへの著作権の問題やアクセス許可を国家が行うことへの非難が国内外から殺到しており、米国政府も懸念を表明していた。
→ 中国政府、「検閲ソフト」義務化を延期 新華社報道 (2009-6-30)
検閲ソフトはPCにインストールしてネットへのアクセスを制限するもので、建前上は有害サイトへのアクセスを自動的に阻むとしていた。
検閲ソフトは、技術上の問題があったとして批判があったほか、サイト許可リストへの著作権の問題やアクセス許可を国家が行うことへの非難が国内外から殺到しており、米国政府も懸念を表明していた。
→ 中国政府、「検閲ソフト」義務化を延期 新華社報道 (2009-6-30)
月曜日, 6月 15, 2009
コード盗用に脆弱性――中国フィルタリングソフトの問題、米研究者が指摘
米ミシガン大学の研究者らは11日、中国政府がPCメーカーなどに義務付けようとしているフィルタリングのソフト「Green Dam」に、脆弱性を発見したと発表したという。
「Green Dam」は、URLでアクセスを規制するほか、画像を選択的に規制、さらになんとテキスト入力フィールドで入力をチェックするという。
米ミシガン大学のスコット・ウォルチョク氏、ランディ・ヤオ氏、アレックス・ホルダーマン氏らは、「Green Dam」に、URLリクエスト処理のプロセスでバッファオーバーランの脆弱性と、更新プログラムでの脆弱性があるとしている。
さらに、Solid Oak Software社は12日、URLのブラックリストの著作権について CyberSitter からの盗用であると発表しているという。
Solid Oak Software社と米ミシガン大学のグループは、PCメーカーらに「Green Dam」の搭載をとめるよう働きかけていくとしている。
→ 中国政府指定の検閲ソフトにセキュリティ脆弱性--米大学研究チームが警告 (2009-6-15)
→ 中国がPCメーカーに導入義務づけのフィルタリングソフトに盗用疑惑 (2009-6-15)
→ コード盗用に脆弱性――中国フィルタリングソフトの問題、米研究者が指摘 (2009-6-15)
「Green Dam」は、URLでアクセスを規制するほか、画像を選択的に規制、さらになんとテキスト入力フィールドで入力をチェックするという。
米ミシガン大学のスコット・ウォルチョク氏、ランディ・ヤオ氏、アレックス・ホルダーマン氏らは、「Green Dam」に、URLリクエスト処理のプロセスでバッファオーバーランの脆弱性と、更新プログラムでの脆弱性があるとしている。
さらに、Solid Oak Software社は12日、URLのブラックリストの著作権について CyberSitter からの盗用であると発表しているという。
Solid Oak Software社と米ミシガン大学のグループは、PCメーカーらに「Green Dam」の搭載をとめるよう働きかけていくとしている。
→ 中国政府指定の検閲ソフトにセキュリティ脆弱性--米大学研究チームが警告 (2009-6-15)
→ 中国がPCメーカーに導入義務づけのフィルタリングソフトに盗用疑惑 (2009-6-15)
→ コード盗用に脆弱性――中国フィルタリングソフトの問題、米研究者が指摘 (2009-6-15)
金曜日, 6月 12, 2009
ウィンドウズ7欧州版、IE搭載せず…独占禁止法に配慮か
マイクロソフト社は11日、Windows 7の欧州版に、同社のブラウザであるIEをバンドルしないと発表したという。
OSにソフトを標準搭載することで、健全な競争が阻害されるという批判に対する、EU競争法(独占禁止法)に基づく処置という。IEについては、「タブ機能」の実装で出遅れるなど、ブラウザ間の競争が健全でないという批判があった。プラグインやアドオンの開発のオープンさ、アプリの起動・動作のスピードなど、ブラウザ間の競争に対する要望は強い。
OSがアプリを標準搭載しないということは、ユーザーにとって、そのままでは動かない、ソフトをインストールする必要がある、ユーザーがばらばらなソフトを使うので標準化されないといったデメリットがある。なんといっても、標準装備というのは便利である。コンテンツを提供する側、ソフト開発側にとっても、標準化されていれば作りやすい。マイクロソフト社の製品が重宝され、必要とされてきた理由のもっとも大きなものである。
ブラウザはOSに代わってデスクトップと同等の機能、標準化されたインターフェースを持ちうるものとして、さらに既存メディアに代わるものとして、重要な意味を持つ。マイクロソフト社が、ブラウザ上でのアプリやアプレットの動作を規制、あるいは阻害する危険性については論議がある。ブラウザ間の競争を促進することは、有効な選択肢をユーザーに与え、多様化をもたらすものであると同時に、開発者側には競争による高機能化と利便性の向上を約束するものである。
今回の措置で、PCベンダーや販売業者は任意のブラウザを搭載して販売できるようになるという。ブラウザ・ベンダー間の競争は、ブラウザ間の競争そのものではなく、ユーザーに有効な選択肢を与えるものであるかどうかは、ベンダーの処置による、という。欧州委員会では、マイクロソフト社に選択肢を提供することを義務付ける案などさまざまな可能性を示唆しているという。
→ ウィンドウズ7欧州版、IE搭載せず…独占禁止法に配慮か (2009-6-12)
→ EU、欧州版「Windows 7」からIEを削除する措置に賛否の混じった評価 (2009-6-12)
→ マイクロソフト、欧州向けにIE非搭載のWindows 7を提供へ (2009-6-12)
OSにソフトを標準搭載することで、健全な競争が阻害されるという批判に対する、EU競争法(独占禁止法)に基づく処置という。IEについては、「タブ機能」の実装で出遅れるなど、ブラウザ間の競争が健全でないという批判があった。プラグインやアドオンの開発のオープンさ、アプリの起動・動作のスピードなど、ブラウザ間の競争に対する要望は強い。
OSがアプリを標準搭載しないということは、ユーザーにとって、そのままでは動かない、ソフトをインストールする必要がある、ユーザーがばらばらなソフトを使うので標準化されないといったデメリットがある。なんといっても、標準装備というのは便利である。コンテンツを提供する側、ソフト開発側にとっても、標準化されていれば作りやすい。マイクロソフト社の製品が重宝され、必要とされてきた理由のもっとも大きなものである。
ブラウザはOSに代わってデスクトップと同等の機能、標準化されたインターフェースを持ちうるものとして、さらに既存メディアに代わるものとして、重要な意味を持つ。マイクロソフト社が、ブラウザ上でのアプリやアプレットの動作を規制、あるいは阻害する危険性については論議がある。ブラウザ間の競争を促進することは、有効な選択肢をユーザーに与え、多様化をもたらすものであると同時に、開発者側には競争による高機能化と利便性の向上を約束するものである。
今回の措置で、PCベンダーや販売業者は任意のブラウザを搭載して販売できるようになるという。ブラウザ・ベンダー間の競争は、ブラウザ間の競争そのものではなく、ユーザーに有効な選択肢を与えるものであるかどうかは、ベンダーの処置による、という。欧州委員会では、マイクロソフト社に選択肢を提供することを義務付ける案などさまざまな可能性を示唆しているという。
→ ウィンドウズ7欧州版、IE搭載せず…独占禁止法に配慮か (2009-6-12)
→ EU、欧州版「Windows 7」からIEを削除する措置に賛否の混じった評価 (2009-6-12)
→ マイクロソフト、欧州向けにIE非搭載のWindows 7を提供へ (2009-6-12)
月曜日, 6月 08, 2009
中国政府、PCに監視ソフト搭載を義務づけへ 米WSJ
中国政府は、販売するPCにサイトをフィルターする監視ソフト搭載を義務付けるという。
記事からすると、有害サイトをフィルターするウイルス対策アプリのように、常駐して外部へのアクセスを監視するものらしい。
もしそうだとすると、ユーザーに使う意図がなければプロセスを殺すことが可能であり、義務付ける意味はない。さらに、リナックスなどのように、OSを変えてしまえばまったく意味はない。そのような情報が、ユーザーの間で広まらないようにすることで、ある程度のフィルタリングを強制することができるが、そうなると自由な世界の住民をすべて敵に回しているわけであり、考えにくい。
中国政府は、プロバイダや検索エンジンに規制をかけていることで悪評が高い。WikiやYoutubeを閲覧できなくするという究極の愚民政策は、中国政府に「守られている」という意識よりは、「阻害されている」という反発をより多く招くものである。法の網をくぐること、が正義になるようでは、建設的発想はもたらされない。
建前にも、誰も、自国民でさえ納得のできない愚民政策を続けるより、判断をユーザーに委譲することで責任を負う義務を課し、建設的な発想に多数が納得する、選挙、投票による意思決定システムを打ち立てるよう要請したいものである。
→ 中国政府、PCに監視ソフト搭載を義務づけへ 米WSJ (2009-6-8)
記事からすると、有害サイトをフィルターするウイルス対策アプリのように、常駐して外部へのアクセスを監視するものらしい。
もしそうだとすると、ユーザーに使う意図がなければプロセスを殺すことが可能であり、義務付ける意味はない。さらに、リナックスなどのように、OSを変えてしまえばまったく意味はない。そのような情報が、ユーザーの間で広まらないようにすることで、ある程度のフィルタリングを強制することができるが、そうなると自由な世界の住民をすべて敵に回しているわけであり、考えにくい。
中国政府は、プロバイダや検索エンジンに規制をかけていることで悪評が高い。WikiやYoutubeを閲覧できなくするという究極の愚民政策は、中国政府に「守られている」という意識よりは、「阻害されている」という反発をより多く招くものである。法の網をくぐること、が正義になるようでは、建設的発想はもたらされない。
建前にも、誰も、自国民でさえ納得のできない愚民政策を続けるより、判断をユーザーに委譲することで責任を負う義務を課し、建設的な発想に多数が納得する、選挙、投票による意思決定システムを打ち立てるよう要請したいものである。
→ 中国政府、PCに監視ソフト搭載を義務づけへ 米WSJ (2009-6-8)
水曜日, 4月 29, 2009
オバマ大統領のアドバイザーに、GoogleのEric Schmidt氏ら任命
オバマ大統領の科学技術関連の助言を行うアドバイザーに、GoogleからEric Schmidt氏、MicrosoftのCraig Mundle氏ら20人を任命
→ オバマ大統領のアドバイザーに、GoogleのEric Schmidt氏ら任命 (2009-4-28)
Schmidt氏は、lexを作ってるんですね。
→ オバマ大統領のアドバイザーに、GoogleのEric Schmidt氏ら任命 (2009-4-28)
Schmidt氏は、lexを作ってるんですね。
火曜日, 4月 21, 2009
ソマリ語
ソマリ語は、アジアアフリカ語族の低地東クシ語に属する言語で、他にオロモ語などがクシ語に分類される。内戦状態であったため、教育制度が確立しておらず標準化されておらず、表記のゆれが大きい。Digil/Roxanweyn方言などがあるという。
イスラム法を導入するほどイスラム教の勢力が強く、アラビア語の借用語が多い。アラビア語で朝はサバフであるが、ソマリ語でsubaxとなる。おはようはsubax wanaagsan(スバフ ワナーグサン)。-sanや-anは形容詞につく語尾という。ほか、Qahtaniからの借用語が多いという。
「止まれ」がjoogso(ジョーグソ)。 「はい」がhaa(ハェー)で、「いいえ」がmaya(マヤ)。 「ありがとう」がmahad sanid(マハッド・サニッド)。「こんにちは」がiska warran(イスカ・ワラン)。
長母音・短母音、前舌音・後舌音が区別され、合計5x4=20個の母音がある。長母音・短母音の区別は母音の重複で表し、前舌音・後舌音は表記上で区別されない。
声調があり、声調によって意味が異なる場合がある。
日本語と同じく、膠着語でSOVである。不定冠詞は表記しない。
1972年からローマ字が使われているが、かつてはアラビア文字(Wadeed's writing)が, 20世紀前半にはOsmanya scriptや Borama scriptが使用されたという。
イスラム法を導入するほどイスラム教の勢力が強く、アラビア語の借用語が多い。アラビア語で朝はサバフであるが、ソマリ語でsubaxとなる。おはようはsubax wanaagsan(スバフ ワナーグサン)。-sanや-anは形容詞につく語尾という。ほか、Qahtaniからの借用語が多いという。
「止まれ」がjoogso(ジョーグソ)。 「はい」がhaa(ハェー)で、「いいえ」がmaya(マヤ)。 「ありがとう」がmahad sanid(マハッド・サニッド)。「こんにちは」がiska warran(イスカ・ワラン)。
長母音・短母音、前舌音・後舌音が区別され、合計5x4=20個の母音がある。長母音・短母音の区別は母音の重複で表し、前舌音・後舌音は表記上で区別されない。
声調があり、声調によって意味が異なる場合がある。
日本語と同じく、膠着語でSOVである。不定冠詞は表記しない。
1972年からローマ字が使われているが、かつてはアラビア文字(Wadeed's writing)が, 20世紀前半にはOsmanya scriptや Borama scriptが使用されたという。
ソマリ語の数字
1 hal ハル
2 laba ラボ
3 seddex セッデフ
4 afar アファル
5 shan シャン
6 lix リフ
7 todoba トドボ
8 sideed シデード
9 sagaal サガール
10 toban トバン
11 kow iyo toban ク・イユ・トバン
12 laba iyo toban ラボ・イユ・トバン
13 sedex iyo toban セデフ・イユ・トバン
14 afar iyo toban アファル・イユ・トバン
15 shan iyo toban シャン・イユ・トバン
16 lix iyo toban リフ・イユ・トバン
17 todoba iyo toban トドボ・イユ・トバン
18 sideed iyo toban シデード・イユ・トバン
19 sagaal iyo toban サガール・イユ・トバン
20 labaatan ラバータン
30 soddon ソッドン
40 afartan アファルタン
50 konton コントン
60 lixdan リフダン
70 todobaatan トドバータン
80 sideetan シデータン
90 sagaashan サガーシャン
100 boqol ボコル
オラクルのサン買収、狙いはハードウェアとソフトウェアの統合システム
オラクルがサンを74億ドルで買収したということです。
サンの買収は、IBMなどの交渉など、メディアの注目が集まっていましたね。
→ オラクルのサン買収、狙いはハードウェアとソフトウェアの統合システム (2009-4-21)
オラクルはデータベースからの収益が約5割だそうです。
→ ■[企業経営]オラクル、サン買収の先にはCommentsAdd Star
サンは以前にMySQLを買収しているので、行方が気になるところではあります。
→ ■[雑感]どうなるMySQL。オラクルがサンを買収CommentsAdd Starshingotadahasaqui
サンの買収は、IBMなどの交渉など、メディアの注目が集まっていましたね。
→ オラクルのサン買収、狙いはハードウェアとソフトウェアの統合システム (2009-4-21)
オラクルはデータベースからの収益が約5割だそうです。
→ ■[企業経営]オラクル、サン買収の先にはCommentsAdd Star
サンは以前にMySQLを買収しているので、行方が気になるところではあります。
→ ■[雑感]どうなるMySQL。オラクルがサンを買収CommentsAdd Starshingotadahasaqui
水曜日, 4月 15, 2009
NHKのラジオ語学講座がネットで視聴できるようになりました
いつのまにかNHKのラジオ語学講座がネットで視聴できるように(一週間分のみ)なってました。
→ ラジオ番組の音声が聞けます 4月6日10:00~ストリーミング開始
快挙ですね。
復習できるし、リピーターとしても毎日の「収穫」が期待できるようになってます。
→ ラジオ番組の音声が聞けます 4月6日10:00~ストリーミング開始
快挙ですね。
復習できるし、リピーターとしても毎日の「収穫」が期待できるようになってます。
木曜日, 3月 26, 2009
MySQL: Counting Rows that Has Same Value
There are many ways to count rows in a database. Here shows grouping the rows and counting them in MySQL database. The keywords are: "group by" to sort out the rows and "as" keyword to set the value to a variable.
Suppose the database has a table 'species' with 'en' field. The "group by" command will set up just one row for each 'en' value. Along with 'en' value, count(en) value will be retrieved in descending order as being set by "order by" command. The results will be a table with representative 'en' value with the count of it.
Suppose the database has a table 'species' with 'en' field. The "group by" command will set up just one row for each 'en' value. Along with 'en' value, count(en) value will be retrieved in descending order as being set by "order by" command. The results will be a table with representative 'en' value with the count of it.
SELECT en, count( en ) AS cnt
FROM `species`
GROUP BY en
ORDER BY cnt DESC
Java: Drawing Lines of Various Width
Line drawing in Java with Graphics2D, is simple and straight foward except that the line width matters in coordinating the figures you would like to draw. Setting stroke, any line width can be set as follows:
The next step is, however, rather counter-intuitive. The line will be drawn half the pixels left from the coordinate that you specify.
The drawing command will draw line that fills the area (x0,y0) to (x1,y1).
int lineWidth=3;
BasicStroke stroke=new BasicStroke((float)lineWidth);
g2D.setStroke(stroke);
The next step is, however, rather counter-intuitive. The line will be drawn half the pixels left from the coordinate that you specify.
int d=(int)((double)(lineWidth-1)/2.0);
The drawing command will draw line that fills the area (x0,y0) to (x1,y1).
g2D.drawLine(x0+d,y0+d,x1-(lineWidth-d),y1-(lineWidth-d));
火曜日, 3月 17, 2009
プログラミング言語の選択
いわゆる文学の書体というものもあるが、ベストセラーの類いはすでに書き方が変化している。つまり、軽く読める雑誌風の、ときにはファッション雑誌風の意味の取れない文章が「もっとも身近」な種類の人間がいる。
そのトレンドにあらがうつもりはないが、間投詞を多く使い、ひらがなを主体とし、論理より感覚に訴えるノリを好むかどうかは、個人の選択である。それっぽくさ、てな感じで、って書くやりかた?ちょっと抵抗あるっていうやつ?分かる?
プログラミング言語の選択は、まさに政治そのものである。強大な国力を持つ国の言語が、その性質にかかわらず周辺国を制覇するのと同様に、無理にも書き方を同化しろという圧力が常にかかる。
「たいていの人間は英語を話す」と言えば、その意は自明であろう。「たいていの人間は***を使う」と書いて別言語、別ライブラリの使用者の反感をもろに買う。もちろん、英語が主流となるかどうかは、フランスなど国の政策に大きく影響される。
言葉の習得は一生の仕事である。人間が安いところで常に軽はずみな判断による負担が個人にかかる。真剣に選択された言葉の重みは、一生引きずって歩かねばならない支えであり、重荷である。
そのトレンドにあらがうつもりはないが、間投詞を多く使い、ひらがなを主体とし、論理より感覚に訴えるノリを好むかどうかは、個人の選択である。それっぽくさ、てな感じで、って書くやりかた?ちょっと抵抗あるっていうやつ?分かる?
プログラミング言語の選択は、まさに政治そのものである。強大な国力を持つ国の言語が、その性質にかかわらず周辺国を制覇するのと同様に、無理にも書き方を同化しろという圧力が常にかかる。
「たいていの人間は英語を話す」と言えば、その意は自明であろう。「たいていの人間は***を使う」と書いて別言語、別ライブラリの使用者の反感をもろに買う。もちろん、英語が主流となるかどうかは、フランスなど国の政策に大きく影響される。
言葉の習得は一生の仕事である。人間が安いところで常に軽はずみな判断による負担が個人にかかる。真剣に選択された言葉の重みは、一生引きずって歩かねばならない支えであり、重荷である。
金曜日, 3月 13, 2009
JTable から値を取り出すときの注意
JTable は、Java で表形式のデータを扱うのにとても便利。
Swing を読み込んで、TableModel を設定して、TableCellEditor クラスを使うなど使いこなすと応用が利きます。
ここで、気づいた点をひとつ。
入力済みの数値はそのまま Integer ですが、編集を可能にして入力を得ると、値は String になります。
下記のようにすると判別できます。
Swing を読み込んで、TableModel を設定して、TableCellEditor クラスを使うなど使いこなすと応用が利きます。
ここで、気づいた点をひとつ。
入力済みの数値はそのまま Integer ですが、編集を可能にして入力を得ると、値は String になります。
下記のようにすると判別できます。
Object obj=table.getValueAt(i,0);
String className=obj.getClass().getName();
if(className.equals("java.lang.String"))
{
String str=(String)obj;
events.events.get(i).from=Integer.parseInt(str);
}
else if(className.equals("java.lang.Integer"))
{
Integer intValue=(Integer)obj;
events.events.get(i).from=(int)intValue;
}
水曜日, 3月 11, 2009
Java: ディレクトリ比較
今日はちょっと会社でいやなことがあったので...
言いたいことも言えず。
だから...Javaで書いて、動くのを確認 (こうでなきゃ)。
やっぱりJavaはいい。
単なる、ディレクトリ比較のプログラムです。
言いたいことも言えず。
だから...Javaで書いて、動くのを確認 (こうでなきゃ)。
やっぱりJavaはいい。
単なる、ディレクトリ比較のプログラムです。
/* Compare.java -- directory comparison program
*
* Copyright (C) 2009 Erica Asai
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
import java.io.*;
public class Compare
{
public void compare(String src, String dest)
{
try
{
File srcDir=new File(src);
if(!srcDir.isDirectory())
{
return;
}
File destDir=new File(dest);
if(!destDir.isDirectory())
{
return;
}
String srcList[]=srcDir.list();
String destList[]=destDir.list();
for(int i=0;i<srcList.length;i++)
{
int j=0;
while(!destList[j].equals(srcList[i]) && ++j<destList.length);
if(destList.length<=j)
{
System.out.println("(-)"+src+"\\"+srcList[i]);
}
else
{
compare(src+"\\"+srcList[i],dest+"\\"+destList[j]);
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
Compare compare=new Compare();
if(2==args.length)
{
String src=args[0];
String dest=args[1];
compare.compare(src,dest);
}
}
}
水曜日, 2月 25, 2009
PHP: PDOやmysqliクラスのない環境
サーバーによって、PHPの環境が違うことがあります。
特に、データベース周りでいくつものパッケージがあるため、PHPのバージョンによって書き方が変わってきます。
PDOを使っていたのに、サーバーで使えない環境だった場合。
mysqliクラスを使っていたのにサーバーでクラスが発見できない場合。
せっかくあるコードが使えないということは、コードのリユースの面から不効率です。
対策としては、mysql*関数で書き直すか、あとは自前でクラスを作る。
そんなときのために、PHPでのクラスの書き方をアップしておきます。
作り方としては、mysqliクラス、PDOクラスなど、クラスを作ってメソッドを実装する形となります。
クラス間でやりとりがある場合など、クラスを作って実装します。
ソースを変えずにポータブルなコードが可能になります。
特に、データベース周りでいくつものパッケージがあるため、PHPのバージョンによって書き方が変わってきます。
PDOを使っていたのに、サーバーで使えない環境だった場合。
mysqliクラスを使っていたのにサーバーでクラスが発見できない場合。
せっかくあるコードが使えないということは、コードのリユースの面から不効率です。
対策としては、mysql*関数で書き直すか、あとは自前でクラスを作る。
そんなときのために、PHPでのクラスの書き方をアップしておきます。
if(!class_exists("mysqli"))
{
class mysqli
{
public $dbname;
function __construct($host,$dbuser,$dbpassword,$dbname)
{
$this->dbname=$dbname;
echo $dbuser;
if(!mysql_connect($host,$dbuser,$dbpassword))
echo "No DB connection established";
}
function query($sql)
{
if(!mysql_select_db($this->dbname))
echo "Database not selected";
return new mysqli_result(mysql_query($sql));
}
};
class mysqli_result
{
public $records;
function __construct($results)
{
$this->records=$results;
}
function fetch_assoc()
{
return mysql_fetch_assoc($this->records);
}
};
作り方としては、mysqliクラス、PDOクラスなど、クラスを作ってメソッドを実装する形となります。
クラス間でやりとりがある場合など、クラスを作って実装します。
ソースを変えずにポータブルなコードが可能になります。
日曜日, 2月 15, 2009
PHP: Resizing image files
The way to resize image files in PHP is straight foward yet not as simple as it should be. Nevertheless, the PHP image library is equipped with image manipulation functions. Here is a function that does the job -- resizing factor should be edited to suit your needs.
function resizePhoto($fileName,$dest)
{
header('Content-type: image/jpeg');
list($width, $height) = getimagesize($fileName);
$ratio=((float)$height)/$width;
$newWidth=90;
$newHeight=(int)($newWidth*$ratio);
$thumb = imagecreatetruecolor($newWidth, $newHeight);
$source = imagecreatefromjpeg($fileName);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
imagejpeg($thumb,$dest);
}
土曜日, 2月 14, 2009
Xampp on Vista
Xampp mysql won't start on Vista. Moreover, the admin app emits warnings relentlessly looking for a dll. The MySQL installation must be done separately, works fine with MySQL 5.1.
The Japanese messages appear on xampp control panel and administrator page seems to have mixed interpretation of the word "stop" and "stopped".
Calling the PDO class method query() crashes Apache -- stops the service. Apache 2.2, PHP 5.2.8, MySQL 5.1 (separate installation).
The Japanese messages appear on xampp control panel and administrator page seems to have mixed interpretation of the word "stop" and "stopped".
Calling the PDO class method query() crashes Apache -- stops the service. Apache 2.2, PHP 5.2.8, MySQL 5.1 (separate installation).
木曜日, 1月 29, 2009
デジタル・フォトフレーム
ひさしぶりに電気店へ行くと、新製品がオンパレードでこの業界の進歩にいまさらながら驚いた。
デジタル一眼レフも機能が向上して、ソニーのαシリーズのものなど、自動焦点の機能が向上して「一瞬にしてピントが合う」。
フォトフレームがはやりだという。液晶モニタにメモリリーダーがついたもので、デジカメ写真・動画などが額縁感覚で飾れる。スライドショー機能はデジカメにもついており、テレビ画面につなげばそのまま画像が楽しめるが、そのまま画像が表示できる手軽さがある。大きさはさまざまで、携帯サイズの安いものから、インテリア感覚の高級品まで勢ぞろいしている。無線LAN機能がついたものもあり、ネットにつなげるという。しかし、見たところFlickrやYahooフォト、Youtubeやニコ動などとの連携はないらしい。
どうぜ小さな画面なら、iPod、ミニノートを置けばいいというのもある。電力を食うというきらいがあるが、ネット接続に苦労するということはない。DVDプレーヤーを置けばいいというのもある。
店頭で商品を見て惹かれてしまい、帰ってきて使わなくなったデジカメを取り出してテレビ画面につないだ。フォトフレーム代わりにスライドショーで眺めている。画面はテレビ画面のほうが大きく、それなりに迫力はある。
デジタル一眼レフも機能が向上して、ソニーのαシリーズのものなど、自動焦点の機能が向上して「一瞬にしてピントが合う」。
フォトフレームがはやりだという。液晶モニタにメモリリーダーがついたもので、デジカメ写真・動画などが額縁感覚で飾れる。スライドショー機能はデジカメにもついており、テレビ画面につなげばそのまま画像が楽しめるが、そのまま画像が表示できる手軽さがある。大きさはさまざまで、携帯サイズの安いものから、インテリア感覚の高級品まで勢ぞろいしている。無線LAN機能がついたものもあり、ネットにつなげるという。しかし、見たところFlickrやYahooフォト、Youtubeやニコ動などとの連携はないらしい。
どうぜ小さな画面なら、iPod、ミニノートを置けばいいというのもある。電力を食うというきらいがあるが、ネット接続に苦労するということはない。DVDプレーヤーを置けばいいというのもある。
店頭で商品を見て惹かれてしまい、帰ってきて使わなくなったデジカメを取り出してテレビ画面につないだ。フォトフレーム代わりにスライドショーで眺めている。画面はテレビ画面のほうが大きく、それなりに迫力はある。
火曜日, 1月 27, 2009
ImageIO.write(): To save transparent PNG image files
The ImageIO class and its write method that comes with JDK1.60 does not support writing out transparent GIF images (at least in the way shown below). The write method of the class won't write out proper GIF format files with a transparent color. The method will create PNG files all right. The following shows how to save an image file. Suppose you have (BufferedImage)bufferedImage that you want to save:
FileOutputStream out=new FileOutputStream(fileName);
String descriptor="PNG";
BufferedImage image=new BufferedImage(right-left,bottom-top,BufferedImage.TYPE_INT_ARGB);
Graphics2D g=(Graphics2D)image.getGraphics();
g.drawImage(bufferedImage,0,0,right-left,bottom-top,left,top,right,bottom,this);
g.dispose();
ImageIO.write(image,descriptor,out);
out.flush();
金曜日, 1月 16, 2009
JFileChooser: Directory Selection

Java's JFileChooser is a handy UI component in file(s) or directory(directories) selection. As with all Java OOP classes, the set up of the JFileChooser class goes through four steps: 1. instantiate the class 2. set the parameters 3. show off the class 4. wait for the return value (is modal). The JFileChooser class works fine with file selections -- selecting a single/multiple files, setting file extension filters, and retrieve a new file name if the file does not exist.
The trouble is, the case with a directory/directories selection. The JFileChooser class can filter out all the file names, and that part is ok. But when the user enters a new directory name, the filtering would hinder the class to get the non-existent directory name. The user can not select non-existent directory name.
Here shows DirFilter class that can avoid the situation and let the application have the choice either to create or reject the user request.
class DirFilter extends javax.swing.filechooser.FileFilter
{
public String getDescription()
{
return "Directories";
}
public boolean accept(File file)
{
if(file.exists())
{
if(file.isDirectory())
{
return true;
}
else
{
return false;
}
}
else
{
file.mkdir();
return true;
}
}
}
The idea is, to set up a filter for the JFileChooser class, by passing the filter class to JFileChooser. Then the application can decide whether to create a directory of the specified name or to discard it. The filter class should be the one that FileFilter interface be implemented. A word of caution is that there are java.io.FileFilter and javax.swing.filechooser.FileFilter -- the latter should be specified.
The following shows the setting of the new filter class via addChoosableFileFilter() method.
JFileChooser dlg=new JFileChooser(".");
dlg.setDialogType(JFileChooser.SAVE_DIALOG);
dlg.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
dlg.addChoosableFileFilter(new DirFilter());
int retval=dlg.showDialog(this,null);
if(retval==JFileChooser.APPROVE_OPTION)
{
...
木曜日, 1月 08, 2009
DIVタグをネストすると、マージンをとった場合にIE7とFirefoxで結果が違う。
Nested DIV -- Firefox3
Nested DIV -- IE7
DIVタグをネストすると、マージンをとった場合にIE7とFirefoxで結果が違う。IE7は内部のブロック要素のマージンの長さだけ外部のブロックのサイズを変更する。Firefoxでは、なぜか内部のマージンに合わせて外部のブロックも移動する。しかも不可解なことに、外部ブロックにボーダーをつけると位置が移動する。要注意。
ソースはこちら→ div.html
日曜日, 1月 04, 2009
The Art of UNIX Programming
The Art of UNIX Programming という本があって面白く書いてある。記述のどこまでが反語なのか計りかねるところがまた興味深い本である。さらに、おそらくは日本などでも散見される意見がちりばめてあってより熟考を迫られる。
まず、意図的にはUNIXに檄を飛ばす内容となっている。そのための、現状の把握の過程が書かれている。数々の、名の知れた頭のよい人たちのウインクが見えるような本である。立場から、マイクロソフトにはまったく「反対」を唱え、協調あるいは融和、妥協など交渉する気配を見せていない。これは政治的闘争というものに他ならない。政治問題化しては問題は解決しない。Windowsプラットフォームの問題点として、文書形式がプロプラエタリなバイナリであること、アプリ間でデータの交換がやりにくいことなどを列挙しているが、問題の解決方法として、Windowsと対決するなどまったく現実的ではない。政治的リアリティとしては、その筋からWindows製品にも多くの注文が寄せられ、さまざまな改変が加えられている。Word文書形式のオープン化などは、強い要望によって成し遂げられた改革である。XML形式での文書データの交換形式の普及は、UNIX対Windowsの対決より、より実際的であり、効果的な解決方法である。
本書には、プログラムに関するポリシーであり助言が書かれている。簡略化すること、モジュール化すること、「美しく入り組んだ構成物」は矛盾という。データ構造が重要なこと、最適化がコードを重く長くすること、「まず動かし、正しくして、速くせよ」というKent Backの台詞を引用している。が、固陋なまでにC言語を使い、Java言語をスクリプト扱いする記述には、「Javaのほうがずっとスマートに美しく書ける」「CのライブラリよりJavaのクラス構造」といいたい。
しかし、銃保有があたかも反体制であるかのように書くのはまったくばかげている。
まず、意図的にはUNIXに檄を飛ばす内容となっている。そのための、現状の把握の過程が書かれている。数々の、名の知れた頭のよい人たちのウインクが見えるような本である。立場から、マイクロソフトにはまったく「反対」を唱え、協調あるいは融和、妥協など交渉する気配を見せていない。これは政治的闘争というものに他ならない。政治問題化しては問題は解決しない。Windowsプラットフォームの問題点として、文書形式がプロプラエタリなバイナリであること、アプリ間でデータの交換がやりにくいことなどを列挙しているが、問題の解決方法として、Windowsと対決するなどまったく現実的ではない。政治的リアリティとしては、その筋からWindows製品にも多くの注文が寄せられ、さまざまな改変が加えられている。Word文書形式のオープン化などは、強い要望によって成し遂げられた改革である。XML形式での文書データの交換形式の普及は、UNIX対Windowsの対決より、より実際的であり、効果的な解決方法である。
本書には、プログラムに関するポリシーであり助言が書かれている。簡略化すること、モジュール化すること、「美しく入り組んだ構成物」は矛盾という。データ構造が重要なこと、最適化がコードを重く長くすること、「まず動かし、正しくして、速くせよ」というKent Backの台詞を引用している。が、固陋なまでにC言語を使い、Java言語をスクリプト扱いする記述には、「Javaのほうがずっとスマートに美しく書ける」「CのライブラリよりJavaのクラス構造」といいたい。
しかし、銃保有があたかも反体制であるかのように書くのはまったくばかげている。
日曜日, 12月 21, 2008
仮想マシンでUbuntuを動かす
Windows上で、VMWareなど仮想マシンを使うと、UbuntuなどLinuxマシンを動かすことができる。
仮想マシンに置く、システムのイメージが大きいため、ダウンロードに時間がかかることに注意。
まず、VMWare Playerをダウンロードする(登録が必要)。
起動したPlayerから、「Download」アイコンをクリックして、イメージの置いてあるサイトにアクセスする。
Ubuntuなど必要なシステムのイメージを選択し、ダウンロードする。
ダウンロードしたいファイルが、BitTorrent形式のものであれば、Vuzeなどをインストールしてダウンロードする。
ファイルが7-Zipなどの形式で圧縮されていれば、解凍用アプリをダウンロードして解凍する。
Playerから、イメージを選択して起動する。
パスワードは、イメージの置いてあるサイトに記載されている。
仮想マシンに置く、システムのイメージが大きいため、ダウンロードに時間がかかることに注意。
まず、VMWare Playerをダウンロードする(登録が必要)。
起動したPlayerから、「Download」アイコンをクリックして、イメージの置いてあるサイトにアクセスする。
Ubuntuなど必要なシステムのイメージを選択し、ダウンロードする。
ダウンロードしたいファイルが、BitTorrent形式のものであれば、Vuzeなどをインストールしてダウンロードする。
ファイルが7-Zipなどの形式で圧縮されていれば、解凍用アプリをダウンロードして解凍する。
Playerから、イメージを選択して起動する。
パスワードは、イメージの置いてあるサイトに記載されている。
月曜日, 12月 15, 2008
正式版となったGoogle Chromeを試す
GoogleのChromeブラウザの製品版が出たというので、早速使ってみると、軽くて速い。とまどったのは、ブックマークの登録。右クリックにも、メニューにも項目がない。ドキュメントによると、登録にはアドレスバー左の星印をクリックする。ちょっとひっかかる設定ではある。
Javascriptに関して言えば、Firefoxと異なり、document.documentElement.scrollTop に設定はなく document.body.scrollTop を使わねばならない。同様に、screen.width には設定はなく、screen.availWidth を用いなければならない。バグかと思われたのは、moveTo() と resizeTo() を続けると、最後の設定しか有効でない点。つまり、moveTo() を最後に持ってくるとウインドウのサイズの設定が崩れ、resizeTo() を持ってくるとウインドウの位置が左上(0,0)に設定される。
→ 正式版となったGoogle Chromeを試す (2008-12-12)
Javascriptに関して言えば、Firefoxと異なり、document.documentElement.scrollTop に設定はなく document.body.scrollTop を使わねばならない。同様に、screen.width には設定はなく、screen.availWidth を用いなければならない。バグかと思われたのは、moveTo() と resizeTo() を続けると、最後の設定しか有効でない点。つまり、moveTo() を最後に持ってくるとウインドウのサイズの設定が崩れ、resizeTo() を持ってくるとウインドウの位置が左上(0,0)に設定される。
→ 正式版となったGoogle Chromeを試す (2008-12-12)
木曜日, 12月 11, 2008
日曜日, 12月 07, 2008
ブラウザ間の差違
ブラウザ間の差違による調整は、ブラウザ開発社が各社で規格を適宜変更するため、困難である。ブラウザ規格が統一されていれば、ページ製作者の苦労は軽減される。OSが統一されていれば、プログラマの仕事の大半がより創造的なものになる。しかし、WindowsおよびIEの絶対的な支配権力を要求することは、独裁下の官僚のぐちにすぎない。すべての人間が理解できる程度に同じであることを要求するのは、独裁的支配権を要求するのと同意である。異なる団体間の調整をすることは、同じであることを強要するものではない。しかし、IEのバグをかばわなければならない理由はない。Internet Explorerには、背景がスクロールで出現したり消えたりするバグがある。ズームを指定すると直るという。ほかに、IEには、改行で隙間が開くというバグがある。さらに、IEでは、DIVのスタイルがテーブルのスタイルより優先される。
月曜日, 12月 01, 2008
IE8 does not support filter:alpha ...
The hell with it -- IE8 does not support filter:alpha. It works without DOCTYPE specification but not with any of the type being spedified at the top of the page like as you would do just like a good citizen that follow all those laws and orders. Just specify IE7 mode and it works fine with the filter:alpha css or whatever. This. Here.
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
金曜日, 11月 28, 2008
雑感
妙に気張ったサイトがあるが、必要もないのにリフレクションの類を使うのは意味がないだけでなく、コンセプトをあいまいにするという欠点がある。
「あ、IEがサポートした!」など一喜一憂したくない。さらに悪いのは、「あ、IEがサポートしてない!」である。この対処法はいくらもあるが、基本線に徹するのもひとつの生き方である。ところが、基本中の基本と考えているようなことがサポートされていない場合などあり、その解決だけで時間がかかる。
最初から汎用性のない機能を説明するなどまったくテキストとして方針がなっていない。その辺の配慮が、教育的配慮というものである。他人の造ったプログラム言語を説明するには、それなりの配慮がいる。もっともよく使う演算子、関数に、決まった形式がなかったり指定されていなかったり冗長であったりすると、汚いプログラムになる。
Firefoxで対応していない機能もある。ブラウザでルビに対応しないのがあり、不便である。括弧書きはいかにもよくない。日本語に特有な機能であり、ブラウザの開発にも開発者およびサポーターの使う言語に依存する部分がある。
「あ、IEがサポートした!」など一喜一憂したくない。さらに悪いのは、「あ、IEがサポートしてない!」である。この対処法はいくらもあるが、基本線に徹するのもひとつの生き方である。ところが、基本中の基本と考えているようなことがサポートされていない場合などあり、その解決だけで時間がかかる。
最初から汎用性のない機能を説明するなどまったくテキストとして方針がなっていない。その辺の配慮が、教育的配慮というものである。他人の造ったプログラム言語を説明するには、それなりの配慮がいる。もっともよく使う演算子、関数に、決まった形式がなかったり指定されていなかったり冗長であったりすると、汚いプログラムになる。
Firefoxで対応していない機能もある。ブラウザでルビに対応しないのがあり、不便である。括弧書きはいかにもよくない。日本語に特有な機能であり、ブラウザの開発にも開発者およびサポーターの使う言語に依存する部分がある。
火曜日, 11月 25, 2008
PHP: Encrypting the Passwords
Nowadays, you need passwords everywhere, to access to blog admin page, to view member-only BBS, to read articles only available to the selected few, etc. All those sites require passwords. The passwords should be secured at a safe place and they should be safely protected -- encrypted. In PHP,
Here the secret seed of this encryption is "ea" (happens to be my initials). This is a one way ticket to the password protected world -- there is no way to reverse the encryption unless you decipher the mechanism of PHP's encryption. In the real world checking of passwords, simply compare the resulting mysterious bunch of digits and letters with with the passwords that you would like to check -- with the encrypted ones, with the same secret seed.
Notice that the string comparison is done with
crypt function does the work. It encrypts in a pattern that can be set by another secret keyword.
crypt($password,"ea")
Here the secret seed of this encryption is "ea" (happens to be my initials). This is a one way ticket to the password protected world -- there is no way to reverse the encryption unless you decipher the mechanism of PHP's encryption. In the real world checking of passwords, simply compare the resulting mysterious bunch of digits and letters with with the passwords that you would like to check -- with the encrypted ones, with the same secret seed.
strcmp(crypt($entered_password,"ea"),$password_stored_somewhere)==0
Notice that the string comparison is done with
strcmp -- it is PHP's ancient trap. Never compare strings with == operator. PHP's inherent conversion machine might convert the string to some integer (or to any type) before doing the comparison.
土曜日, 11月 01, 2008
金曜日, 10月 17, 2008
PHPの配列
PHPでは、配列をハッシュのように使えます。便利です。値を変数に置くと、読みやすいコードを書くことができます。
春分の日・秋分の日の算出方法は、こちらを参照させていただきました。
$springEquinoxDay=(int)(20.8431 + 0.242194 * ( $year - 1980))
- (int)((double)($year - 1980)/4) ;
$springEquinox=array(3,$springEquinoxDay,"春分の日");
$automnEquinoxDay=(int)(23.2488 + 0.242194 * ( $year - 1980))
- (int)(($year - 1980)/ 4);
$automnEquinox=array(9,$automnEquinoxDay,"秋分の日");
$official_holidays=array( array(1,1,"元旦"),
array(2,11,"建国記念日"),
$springEquinox,
array(4,29,"昭和の日"),
array(5,3,"憲法記念日"),
array(5,4,"みどりの日"),
array(5,5,"こどもの日"),
$automnEquinox,
array(11,3,"文化の日"),
array(11,23,"勤労感謝の日"),
array(12,23,"天皇誕生日"));
春分の日・秋分の日の算出方法は、こちらを参照させていただきました。
水曜日, 10月 15, 2008
PHPでのログイン管理
PHPでのログイン管理において、クッキーを使ってセッション番号によって判別する方法を示します。
session_start();
$sessionid=session_id();
if(strcmp($_SESSION['sid'],$sessionid)!=0)
{
$user=$_REQUEST['user'];
$password=$_REQUEST['password'];
if(strcmp($user,$user_cfg)!=0)
{
header('Location: index.php?message=noUser');
}
if(strcmp($password,$password_cfg)!=0)
{
header('Location: index.php?message=noPassword');
}
if(strcmp($user,$user_cfg)==0 && strcmp($password,$password_cfg)==0)
$_SESSION['sid']=$sessionid;
}
セッション番号を記録し、現在のセッション番号と比較するのに、ここではセッション変数を用いています。
セッション変数$_SESSION['sid']に記録されたセッション番号と、session_id()で得られる現在のセッション番号を比較します。もし一致しなければ、ログイン情報をチェックし、一致しなければログイン画面index.phpに移行します。一致すればセッション変数に現在のセッション番号を記録します。
session_start();
$sessionid=session_id();
if(strcmp($_SESSION['sid'],$sessionid)!=0)
{
$user=$_REQUEST['user'];
$password=$_REQUEST['password'];
if(strcmp($user,$user_cfg)!=0)
{
header('Location: index.php?message=noUser');
}
if(strcmp($password,$password_cfg)!=0)
{
header('Location: index.php?message=noPassword');
}
if(strcmp($user,$user_cfg)==0 && strcmp($password,$password_cfg)==0)
$_SESSION['sid']=$sessionid;
}
セッション番号を記録し、現在のセッション番号と比較するのに、ここではセッション変数を用いています。
セッション変数$_SESSION['sid']に記録されたセッション番号と、session_id()で得られる現在のセッション番号を比較します。もし一致しなければ、ログイン情報をチェックし、一致しなければログイン画面index.phpに移行します。一致すればセッション変数に現在のセッション番号を記録します。
月曜日, 10月 13, 2008
職人芸
昨日は、お隣さんに、庭を拝見させていただいた。日本風の邸宅から、見事に手入れされた庭木が見える。いわく、「刈り込みというのはね」「職人芸なんですよ」「自然に」「はさみが動く」「理論じゃない」。先が見えなければ、刈り込むにもうまくいかないだろうと意見を述べたのだが、「いや、そうじゃない」「波長があって」とおっしゃる。
そんなに技術を魔術にしては困る、それじゃあいったいどうやって教わればいいんだろう、と思ったのだが、あくまで確信をこめて「どこに植えたらいいかって、それさえまったく飲み込めない人間もいるんですよこれが」とこれはまた頓着なくおっしゃる。
興味深く思ったのは、そういえばコンピュータに関しても似たような言い回しがあって、やはり「波長が」と言うのである。「どうも合わない」と思われるノリのブログもあれば、結果が明日になって出てくるようなコンパイルはしたくないという波長もある。しかし、他人に「Javaとは波長が合う」と言っても、Javaでプログラムを組み、別言語を使用したことがなければ、意味は通じない。「つまらないことに引っかからなくてすむから書きやすい」といっても、これも抽象的な話である。
だから、ようするにそういうことであろうと結論付けている。ようするに、Javaプログラムの書きやすさなど、説明しようとすれば「あるべきところに、ちゃんと備わっている」としか言いようがない。それは、類まれなる設計のよさからくるものであり、使う人の質と数によるものであり、ひいては設計したチームのリーダーシップによるものである。
ちなみに、植物を植えつけるなら分散して、いくつかの株に分け、どの場所がもっとも適しているかを見るのが安全である。日当たりと水はけと風通しと、植物でも科によって種によって、好む場所が違う。ある程度の見当をつけたら、さまざまに試みるのがコツというものだと思っている。
そんなに技術を魔術にしては困る、それじゃあいったいどうやって教わればいいんだろう、と思ったのだが、あくまで確信をこめて「どこに植えたらいいかって、それさえまったく飲み込めない人間もいるんですよこれが」とこれはまた頓着なくおっしゃる。
興味深く思ったのは、そういえばコンピュータに関しても似たような言い回しがあって、やはり「波長が」と言うのである。「どうも合わない」と思われるノリのブログもあれば、結果が明日になって出てくるようなコンパイルはしたくないという波長もある。しかし、他人に「Javaとは波長が合う」と言っても、Javaでプログラムを組み、別言語を使用したことがなければ、意味は通じない。「つまらないことに引っかからなくてすむから書きやすい」といっても、これも抽象的な話である。
だから、ようするにそういうことであろうと結論付けている。ようするに、Javaプログラムの書きやすさなど、説明しようとすれば「あるべきところに、ちゃんと備わっている」としか言いようがない。それは、類まれなる設計のよさからくるものであり、使う人の質と数によるものであり、ひいては設計したチームのリーダーシップによるものである。
ちなみに、植物を植えつけるなら分散して、いくつかの株に分け、どの場所がもっとも適しているかを見るのが安全である。日当たりと水はけと風通しと、植物でも科によって種によって、好む場所が違う。ある程度の見当をつけたら、さまざまに試みるのがコツというものだと思っている。
土曜日, 10月 11, 2008
C++/CLI でのプログラミング
先日、Visual C++ 2005 Expressでプログラムを書いていて、理解できないコンパイルエラーに悩んだ。何かと言うと、このコンパイルがキーワードチェックをしない。
array<int>^ array={5,4,3,2,1};
array<int>^ test;
分かってみればどうということもないが、「type 'int' unexpected」と出るので、構文のどこがまずいのか、探し出すのに手間取った。
C++/CLI では、Managed C++ をさらに改良した構文を用いて、どこかしらJavaの方式を継承した気配の言語が実装されている。現行のC++からの移行というより、整合性のある構文で、いわく違和感のないプログラム形式を目指しているという。
デリゲートとは、クラス構造を超えてメソッドにアクセスするポインタである。なんと足し算、引き算がある。メソッドを足された順に呼び出すという。
メタなクラス記述用クラスである属性クラスを使える。複数指定でき、引数もとる。Javaのアノテーション機能のことだという。しかし、Javaではドキュメンテーションにしか使わない。
タイプをメタで記述するテンプレートもある。ジェネリックもある。ジェネリックであればMSILで使えるという。制限もつく。推測でタイプを決めるという。
packがないのはプログラムでコンポーネントを記述するメリットを生かしていないと思う。
array<int>^ array={5,4,3,2,1};
array<int>^ test;
分かってみればどうということもないが、「type 'int' unexpected」と出るので、構文のどこがまずいのか、探し出すのに手間取った。
C++/CLI では、Managed C++ をさらに改良した構文を用いて、どこかしらJavaの方式を継承した気配の言語が実装されている。現行のC++からの移行というより、整合性のある構文で、いわく違和感のないプログラム形式を目指しているという。
デリゲートとは、クラス構造を超えてメソッドにアクセスするポインタである。なんと足し算、引き算がある。メソッドを足された順に呼び出すという。
メタなクラス記述用クラスである属性クラスを使える。複数指定でき、引数もとる。Javaのアノテーション機能のことだという。しかし、Javaではドキュメンテーションにしか使わない。
タイプをメタで記述するテンプレートもある。ジェネリックもある。ジェネリックであればMSILで使えるという。制限もつく。推測でタイプを決めるという。
packがないのはプログラムでコンポーネントを記述するメリットを生かしていないと思う。
火曜日, 10月 07, 2008
PHPの出力を取得し、文字コードを変換する
PHPでは、include()関数を使って別のPHPプログラムの出力結果を読み込む方法があります。
読み込む際に、同時に日本語文字コードの変換を行うやり方を以下に示します。
include("news/news.php");
読み込む際に、同時に日本語文字コードの変換を行うやり方を以下に示します。
ob_start();
include("news/news.php");
$eucContents=ob_get_contents();
ob_end_clean();
$utf8Contents=mb_convert_encoding($eucContents,"UTF-8","EUC-JP");
echo $utf8Contents;
水曜日, 9月 24, 2008
Compare.java
The following is a Java command line tool that searches each line of the file in another file specified. To compile,
javac Compare.java
To run the program,
java Compare data.txt file.txt
javac Compare.java
To run the program,
java Compare data.txt file.txt
import java.io.*;
public class Compare
{
public boolean contains(String str, String text)
{
boolean found=false;
if(0<=text.indexOf(str))
{
found=true;
}
return found;
}
private String readFile(String fileName)
{
String text="";
try
{
FileInputStream fis=new FileInputStream(fileName);
InputStreamReader isr=new InputStreamReader(fis,"utf-8");
BufferedReader reader=new BufferedReader(isr);
String line="";
while((line=reader.readLine())!=null)
{
//System.out.println(line);
text+=line+"\n";
}
}
catch(Exception e)
{
e.printStackTrace();
}
return text;
}
public void compareLine(String org, String dest)
{
String text=readFile(dest);
try
{
FileInputStream fis=new FileInputStream(org);
InputStreamReader isr=new InputStreamReader(fis,"utf-8");
BufferedReader reader=new BufferedReader(isr);
String line="";
while((line=reader.readLine())!=null)
{
if(contains(line,text))
{
System.out.print("o ");
}
else
{
System.out.print("x ");
}
System.out.println(line);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
if(1<args.length)
{
Compare compare=new Compare();
compare.compareLine(args[0],args[1]);
}
}
}
木曜日, 8月 28, 2008
PHPによるデータベースアクセス
PHPでは、PDOというクラスを使うと、MySQLなどデータベースへのアクセスが簡潔に記述できます。クエリ操作など、データベース関連の関数が抽象化されているので、データベースに非依存のコードを書くことができます。例外処理機能があるので、よりわかりやすいコードを書くことができます。
手順としては、クラスをインスタンス化し、メンバ関数を実行します。結果はオブジェクトとして返されるので、メンバ関数を使用すると順次値を引き出すことができます。返される値は、デフォルトで連想配列および数値を引数とする配列となります。
オートインクリメントで値を設定している場合には、
手順としては、クラスをインスタンス化し、メンバ関数を実行します。結果はオブジェクトとして返されるので、メンバ関数を使用すると順次値を引き出すことができます。返される値は、デフォルトで連想配列および数値を引数とする配列となります。
try
{
$dbh=new PDO('mysql:dbname='.$MYSQL_DATABASE.';host='.$MYSQL_HOST,$MYSQL_USER,$MYSQL_PASSWORD);
$dbh->query("SET NAMES UTF8");
$sql="select * from photos where data_no=".$data_no;
$photoSet=$dbh->query($sql);
if(!empty($photoSet))
{
while($row=$photoSet->fetch())
{
echo $row['filename'];
}
}
}
catch (PDOException $e)
{
echo $e->getMessage();
}
$dbh=null;
オートインクリメントで値を設定している場合には、
lastInsertId()を使うとインデックス値を得ることができます。
$dbh->query($sql);
$data_no=$dbh->lastInsertId();
金曜日, 8月 22, 2008
フォームでブラウザが勝手に文字コードを変換
フォームで日本語の文字列を受け渡す場合に、ブラウザが勝手に文字列をEUCやShift-JISなどに変換してしまう場合があります。
エンコードされた文字列がなんであるかを知りたい場合に、
まず、フォームにhidden属性で、テスト用の文字列を指定します。
<input type="hidden" name="JapaneseEncoding" value="テスト用文字列">
フォームから値を受け取るPHPのページで、
文字コードが判定できれば、
$encoding=mb_detect_encoding($_REQUEST['JapaneseEncoding'],"ascii,jis,utf-8,euc-jp,sjis");
mb_convert_encoding($str,"utf-8",$encoding);
エンコードされた文字列がなんであるかを知りたい場合に、
mb_detect_encoding 関数を使うことができます。まず、フォームにhidden属性で、テスト用の文字列を指定します。
<input type="hidden" name="JapaneseEncoding" value="テスト用文字列">
フォームから値を受け取るPHPのページで、
mb_detect_encoding 関数を用いて文字コードを判定します。文字コードが判定できれば、
mb_convert_encoding 関数を用いて、コード変換することができます。$encoding=mb_detect_encoding($_REQUEST['JapaneseEncoding'],"ascii,jis,utf-8,euc-jp,sjis");
mb_convert_encoding($str,"utf-8",$encoding);
木曜日, 8月 21, 2008
PHPでHTMLタグを取り除く
PHPでは、HTMLを「文字通り表示する」 htmlspecialchars($str) という関数がある。
不等号が含まれる文章やコードなど、HTMLタグをそのまま表示するときに使う。
それでは、その逆の「タグを除去する」関数があるかといえば、特に設定されていない(らしい)。
正規表現を使うと、それらしきものができる。しかし、クォートで囲まれたカギ括弧などには対応しない。
contents$str="<html a=\">\">contents</html>";
echo mb_ereg_replace("<[^>]*>","",$str);
クォートで囲まれたカギ括弧などは、特別に指定しなければならない。
echo mb_ereg_replace("<[^>]*\".*\"[^>]*>","",$str);
不等号が含まれる文章やコードなど、HTMLタグをそのまま表示するときに使う。
それでは、その逆の「タグを除去する」関数があるかといえば、特に設定されていない(らしい)。
正規表現を使うと、それらしきものができる。しかし、クォートで囲まれたカギ括弧などには対応しない。
contents$str="<html a=\">\">contents</html>";
echo mb_ereg_replace("<[^>]*>","",$str);
クォートで囲まれたカギ括弧などは、特別に指定しなければならない。
echo mb_ereg_replace("<[^>]*\".*\"[^>]*>","",$str);
グルジア語について

グルジア語について リンク集
→ サバイバル・グルジア語 (音声つき、おすすめ)
→ グルジア語の数体系
→ グルジア語のアルファベット
→ グルジア語 (Wiki)
→ グルジア文字 (Wiki)
→ グルジア語のすすめ
→ グルジアへ旅立つ人のためのグルジア語
→ FONTS.GE (グルジア語フォント)
→ グルジア文字をローマ字に変換してくれるサイト
→ THE GEORGIAN LANGUAGE (文法まとめ)
→ Georgian Language (学習サイト)
→ グルジア語の能格
→ グルジア語文法 (単行本)
→ 【動画・アニメ】 The Magic Egg (jadosnuri kvertskhi)
グルジア語はフランス語のように、20進法(vigesimal)をとる。20*n+m の形で、65であれば、3x20+5と表す。
グルジア語の語変化で、母音を省略して短縮する(syncope)という形がある。megobari(友人) < megobrebi(友人、複数)
数あるグルジア語のアルファベット表記のなかで、現在使われているものは、Mxedruli, Mkhedruli (軍隊の、世俗の)という。
グルジア語では、me iaponeli var.(მე იაპონელი ვარ, 日本人です)のように、SOVの文型をとることができる。
sakartvelo (グルジア国)というのは、kartveli (グルジア人)に sa~o をつけたものという。
グルジア語をローマ字化する際に、放出音(ejective)の表記が標準によって異なるため、注意が必要である。さらに、グルジア文字での表記での放出音が酷似している。 პარასკევი (p'arask'evi, 金曜日)という単語をみてほしい。კპვとすべて異なる文字である。კがkの放出音、პがpの放出音、ვはvを表す。
ちなみに、グルジア語で、NOはアラ არა (ara)といい、千をアタシ ათსი (atsi)という。
グルジア語の人称代名詞とコピュラ 動画
| 単数 | 複数 | |
|---|---|---|
| 1 | მე ვარ (me var) | ჩვენ ვართ (chven vart) |
| 2 | შენ ხარ (shen xar) | თქვენ ხართ (tkven xart) |
| 3 | ის არის (is aris) | ისინი არიან (isini arian) |
名詞の格変化の基本形 → Noun Declension
| 主格 Nominative | ეს არის წიგნი (is aris ts'igni) | これは本です | ~は |
|---|---|---|---|
| 呼格 Vocative | მზეო! (mzeo!) | 太陽よ! | ~よ! |
| 対与格 Dative | წერს წერილს (ts'ers ts'erils) | 手紙を書く | ~を、~に |
| 所有格 Genitive | იმერეთის მხარე (imeretis mxare) | イメレティ地区 | ~の |
| 具格 Instrumental | მე ვწერ ფანქრით (me vts'er pankrit) | 私は鉛筆で書く | ~で |
| 副詞格 Adverbial | მეგობრად (megobrad) | 友人として | ~として |
規則動詞の活用
წერ (to write)
| 単数 | 複数 | |
|---|---|---|
| 1 | ვწერ (vts'er) | ვწერთ (vts'ert) |
| 2 | წერ (ts'er) | წერთ (ts'ert) |
| 3 | წერს (ts'ers) | წერენ (ts'eren) |
規則動詞の過去形
| 単数 | 複数 | |
|---|---|---|
| 1 | დავწერე (davts'ere) | დავწერეთ (davts'eret) |
| 2 | დაწერე (dats'ere) | დაწერეთ (dats'eret) |
| 3 | დაწერა (dats'era) | დაწერეს (dats'eres) |
グルジア語で動詞の命令形、書け!(da-ts'er-e, დაწერე)は、直訳で書いた!と過去形(アオリスト)となる。
グルジア語の動詞は、アラビア語と同じように語根から派生形を作る。派生形の、人称と数による変化形は、基本形とは異なる。派生形は、語根の前につく母音(PV)と、後につく要素(P/FSF)を変化させ、-d 形、-i 形などの変化形がある。
-i 形では、დახატავს (da=khat'-av-s) を დაიხატება (da=i-khat'-eb-a) のように、PVに i を、P/FSFに eb に変化させる。-d 形では、ააშენებს (a=a-shen-eb-s) を აშენდება (a=shen-d-eb-a) のように、PVを取り除き、P/FSFに d を加える。派生系の人称と数による変化形は以下のようになる。
| 単数 | 複数 | |
|---|---|---|
| 1 | ავშენდები (a=v-shen-d-eb-i) | ავშენდებით (a=v-shen-d-eb-it) |
| 2 | აშენდები (a=shen-d-eb-i) | აშენდებით (a=shen-d-eb-it) |
| 3 | აშენდება (a=shen-d-eb-a) | აშენდებიან (a=shen-d-eb-ian) |
数詞(基数)
1. ერთი erti
2. ორი ori
3. სამი sami
4. ოთხი otkhi
5. ხუთი khuti
6. ექვსი ekvsi
7. შვიდი shvidi
8. რვა rva
9. ცხრა tskhra
10. ათი ati
11. თერთმეტი (tertmet'i)
12. თორმეტი (tormet'i)
13. ცამეტი (tsamet'i)
14. თოთხმეტი (totkhmet'i)
15. თხუთმეტი (tkhutmet'i)
16. თექვსმეტი (tekvsmet'i)
17. ჩვიდმეტი (chvidmet'i)
18. თვრამეტი (tvramet'i)
19. ცხრამეტი (tskhramet'i)
20. ოცი (otsi)
met'i とは"more"を意味するという。
30. ოცდაათი, otsdaati
40. ორმოცი, ormotsi
50. ორმოცდაათი, ormotsdaati
60. სამოცი, samotsi
70. სამოცდაათი, samotsdaati
80. ოთხმოცი, otkhmotsi
90. ოთხმოცდაათი, otkhmotsdaati
100. ასი, asi
200. ორასი, orasi
300. სამასი, samasi
1000. ათასი, atasi
曜日の表し方
日曜日ქვირა (kvira)
月曜日ორშაბათი (orshabati)
火曜日სამშაბათი (samshabati)
水曜日ოთხშაბათი (otkhshabati)
木曜日ხუთშაბათი (khutshabati)
金曜日პარასკევი (p'arask'evi)
土曜日შაბათი (shabati)
昨日 გუშინ (gushin)
今日 დღეს (dghes)
明日 ხვალ (khval)
グルジア文字は、アルメニア文字との類似が指摘されており、ギリシア文字あるいはパフラヴィー文字から発展したものと考えられているという。(ルイ・ジャン・カルヴェ「文字の世界史」)
この本では、パフラヴィー文字がパルティアで使われたと書いてあるが、パフラヴィー語は、サーサーン朝ペルシアの公用語である。
パルティア(247BC頃~226AD)はイランで国の祖として称えるサーサーン朝ペルシア(226-651)の始祖アルダシール1世より前の古代王朝で、共通語としてギリシア語とアラム語を使用したという。ヴォロガセス1世の時代には非ヘレニズムの風潮が高まり、パフラヴィー語を使用したという。ゾロアスター教の勢いが強まるのは、非ヘレニズムの動きからという。
サーサーン朝ペルシアはゾロアスター教を国教としているが、聖典「アヴェスター」はアヴェスター語で書かれており、サーサーン朝の時代にすでに解読が困難になっていたという。教祖ザラスシュトラの直言とされるガーサー部分は解釈が分かれるという。アヴェスター語はサンスクリット語ときわめて近いという。アラム文字を基本としたアルファベットであるアヴェスター文字で記述するという。
火曜日, 8月 05, 2008
Google Maps ストリートビューが凄すぎて2ちゃんは祭りに
GoogleMap では(ちょっと衝撃的な)ストリートビューが公開されました。
さっそく、近所の散歩を楽しんできました(実際に散歩するより楽しいかも)。
→ GoogleMap (ストリートビューボタンをクリック)
すごい。
一般メディアおよび新聞、IT関連のニュースメディアを含め、なぜ書いていないのか不思議。と、よく考えてみると、米国では先に公開されていることに気づきました。なんだ。
→ Google Maps ストリートビューが凄すぎて2ちゃんは祭りに (2008-8)
さっそく、近所の散歩を楽しんできました(実際に散歩するより楽しいかも)。
→ GoogleMap (ストリートビューボタンをクリック)
すごい。
一般メディアおよび新聞、IT関連のニュースメディアを含め、なぜ書いていないのか不思議。と、よく考えてみると、米国では先に公開されていることに気づきました。なんだ。
→ Google Maps ストリートビューが凄すぎて2ちゃんは祭りに (2008-8)
水曜日, 7月 30, 2008
PHP: ランダムなファイル名を返す関数
Windows環境のApache+PHPでは、tempnam()関数が正常に動作しないようです。仕様かもしれませんが、拡張子は.tmpが自動的についてしまうし、プレフィックスの指定が3文字になるようです。ランダムなファイル名を返す関数を作ってみたので、参考になればと思います。
引数にファイル名の長さを指定してください。
引数にファイル名の長さを指定してください。
function tempFile($length)
{
$alphanumeric="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$len=strlen($alphanumeric);
$name="";
for($i=0;$i<$length;$i++)
{
$index=rand(0,$len-1);
$name.=substr($alphanumeric,$index,1);
}
return $name;
}
金曜日, 7月 25, 2008
iPhoneという奇跡

iPod はトラブルフリーである。なにせ、マニュアルがない。実際、説明抜きでも分かるほど使いやすい。感に入ったように「うん、いいね。ぜんぜん違う」「なるほどね。これ皆んな欲しがるわけだ」という返答をもらっている。そうだと思う。動画を動かして、映画など見ていると特に大きなその画面の無駄のないスペースの使い方がアートだと思う。
→ iPhoneという奇跡 (2008-7-13)
土曜日, 7月 19, 2008
WikiにおけるJavaの記述
Java の基本コンセプトは、無論のこと「仮想化」である。そのためには、言語仕様が明確であることが要求される。毎月、あるいは半年毎に変わる仕様にあわせて、仮想マシンを作りたいと思う技術者はいない。
言語仕様もさることながら、ライブラリの仕様もはっきり定義されていなければならない。このあいだ作り上げたプログラムが、ライブラリのAPIを勝手に変更されたために、意味もない警告を出してくる状況は、決して快いものではない。
言葉がいいかげんに使われるものではなく、遊びではないように、プログラミング言語を規定する側はより一層の思いやりを必要とする。プログラムは、単なるアルゴリズムの記述ではあるが、それを読み解くのはコンパイラだけではなく、記述するのは人間だからである。
Java言語の表記法が、C言語に近いのは、時代、社会的背景によるものである。しかし、Javaでは、ベタにメモリアドレスを扱うC言語とは異なり、より安全で自然なプログラミング言語である。範囲外の配列の引数は、例外処理される。オブジェクトはもちろん、それとして扱うことができる。
→ Java
言語仕様もさることながら、ライブラリの仕様もはっきり定義されていなければならない。このあいだ作り上げたプログラムが、ライブラリのAPIを勝手に変更されたために、意味もない警告を出してくる状況は、決して快いものではない。
言葉がいいかげんに使われるものではなく、遊びではないように、プログラミング言語を規定する側はより一層の思いやりを必要とする。プログラムは、単なるアルゴリズムの記述ではあるが、それを読み解くのはコンパイラだけではなく、記述するのは人間だからである。
Java言語の表記法が、C言語に近いのは、時代、社会的背景によるものである。しかし、Javaでは、ベタにメモリアドレスを扱うC言語とは異なり、より安全で自然なプログラミング言語である。範囲外の配列の引数は、例外処理される。オブジェクトはもちろん、それとして扱うことができる。
→ Java
火曜日, 7月 08, 2008
PHPの変数には、文字通り、どんな型の値を放り込むことが可能です
PHPの変数には、文字通り、どんな型の値を放り込むことが可能です。つまり、数値や文字列を返すはずの関数の返り値に、FALSEを返し、例外処理ができます。例として、ゼロでの割り算を例外処理したい場合のコードを挙げておきます。
PHPでは、変数に型を自由に指定できるため、型を含めて判断したい場合には、見慣れない===(イコールサインを3つ重ねた演算子)や!==など使うことができます。
→ PHPの比較演算子
function divide($x,$y)
{
if($y!=0)
$result=$x/$y;
else
$result=FALSE;
return $result;
}
$x=10;
$y=0;
$z=divide($x,$y);
echo "$x divided by $y equals to ";
if($z)
{
echo "$z";
}
else
{
echo "... undefined";
}
PHPでは、変数に型を自由に指定できるため、型を含めて判断したい場合には、見慣れない===(イコールサインを3つ重ねた演算子)や!==など使うことができます。
→ PHPの比較演算子
木曜日, 7月 03, 2008
PHPについて -- 型変換、可変変数、グローバル変数
PHPは、サーバーサイドで動くスクリプト言語ですが、これがとても便利。やみつきになります。使っていて、PHPの言語仕様で、気づいた点を3つ。
1.PHPでは、文字列が数値にキャスト(型変換)できる。全角数字を半角に変換するには、mb_convert_kana()を用いる。
2.PHPでは、文字列を変数として評価することができる。(Lispでいう、eval)
3.PHPでは、関数を定義する際に、外部変数(グローバル変数)は関数内でそれと指定せねばならない。関数内での外部変数への代入は、外部変数そのものの値を変えない。
1.PHPでは、文字列が数値にキャスト(型変換)できる。全角数字を半角に変換するには、mb_convert_kana()を用いる。
$a=(int)"10";
$str = mb_convert_kana($str, "a");
$a=(int)$str;
2.PHPでは、文字列を変数として評価することができる。(Lispでいう、eval)
$variableName="newVariable";
$newVariable="value";
echo $$variableName;
3.PHPでは、関数を定義する際に、外部変数(グローバル変数)は関数内でそれと指定せねばならない。関数内での外部変数への代入は、外部変数そのものの値を変えない。
$globalValue=100;
function summit($politicalFactor)
{
global $globalValue;
return $globalValue*$politicalFactor;
}
$globalValue=summit(1.3);
水曜日, 7月 02, 2008
「Firefox 3」がギネスブックに認定,公開初日ダウンロード件数の世界記録
一日で最多のダウンロード数をギネス記録にしよう!という、6月17日に行われた「ダウンロード・デイ」。Firefox 3のダウンロード数は800万を超え、見事世界記録を達成したとのこと。現時点で、ダウンロード数は2870万件とか。
→ 「Firefox 3」がギネスブックに認定,公開初日ダウンロード件数の世界記録 (2008-7-3)
→ 「Firefox 3」がギネスブックに認定,公開初日ダウンロード件数の世界記録 (2008-7-3)
土曜日, 6月 28, 2008
Firefox3の新機能

Firefox3の新機能といえば、表示(V)-ズーム(Z)-拡大(I)あるいは縮小(O)で、画像を含めてページが拡大・縮小できる、ということに先日、気がついたのですが...既出でしょうか。スマート・ロケーションバーは、確かに便利。日本語のページタイトルが出てくるのでありがたい。印刷関係の機能は、IEのほうが便利なような...IEだと、選択した部分だけプレビューして印刷が可能で、紙が無駄になりません。
→ 「Firefox 3」が公開、その内容に迫る (2008-6-18)
→ Firefox 3 - 機能概要
→ Firefox 3 ダウンロード
木曜日, 6月 26, 2008
GenaratePassword.java
As the name suggests -- this snippet generates an 8-letter password (that's all).
public class GeneratePassword
{
public static void main(String args[])
{
String alphanumeric="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
int len=alphanumeric.length();
for(int i=0;i<8;i++)
{
int index=(int)Math.floor(Math.random()*len);
System.out.print(alphanumeric.charAt(index));
}
}
}
火曜日, 6月 24, 2008
端末は2万3000円から iPhoneで料金プラン

アップル社の iPhone がついに7月11日に発売。昨日23日、ソフトバンクモバイルはついに料金設定を発表したようです。端末が8GBのもので2万3040円、16GBのもので3万4560円(等差数列ですねこれは)。インターネット接続が定額の「パケット定額フル」プランで月々7280円からの2年間契約が条件とか。
→ 端末は2万3000円から iPhoneで料金プラン (2008-6-23)
→ iPhone 割賦で月々960円から ソフトバンク発表 (2008-6-24)
→ 端末は2万3000円から iPhoneで料金プラン (2008-6-23)
登録:
投稿 (Atom)
Flask の Blueprint のテンプレート問題
Flask の Blueprint は、ルート、静的ファイル、テンプレートをまとめて管理できます。しかし、テンプレートが指定できません。 ここでは、Blueprint の template_folder の問題点と回避策を説明します。 Blueprint のテンプレート問題...
-
Qt はまってます。Mac でも書いたアプリがコンパイルできて、しっかり動くのを確認しました。このあいだ Chitubox が Qt 使ってるのを知ってうれしかったです。 Mac でもそのまま動くんですが、アプリのアイコンの設定はプラットフォーム依存です。 公式マニュアルでも設定...
-
コンデンサマイク 極性があります コンデンサマイクがようやく届きました。モジュールではないのでそのままでは信号が弱いので使えません。信号を増幅する必要があります。 ちょっとした手間ですが、首尾よく動いてくれました。この回路の応用で、使えるマイクが出来ます。 ...
-
今日ホール素子が届きました。 ホール素子ってのは ホール効果 を利用して磁場を感知するセンサーです。 iPad のケースとか、閉じると電源が切れてくれますよね。ケースのカバーの磁石の磁場をホール素子が感知してるわけです。 さっそくホール素子を使ってみよう!電圧...



