金曜日, 7月 31, 2009

MicrosoftとYahoo!が検索分野で10年間に渡る提携を発表した狙い

マイクロソフト社とヤフーは検索エンジンを共同開発するという話題があがってますよね。

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)

金曜日, 7月 10, 2009

Firefox で埋め込み画像の機能

つい先だって ver. 3.5 の発表されたFirefox ですが、Firefox には IE にはない機能があります。

埋め込み画像の機能です。画像を(バイナリでなく)文字コード化して表示できます。

ページを保存するだけで、中の画像が別ファイルなしで表示できます。

タグのフォーマットは、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は何でもいいとなれば独占市場が切り崩せると、いう夢物語が現実に...?

火曜日, 6月 30, 2009

中国政府、「検閲ソフト」義務化を延期 新華社報道

中国は30日、検閲ソフト Green Dam の義務化を延期すると発表したという。

検閲ソフトは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)

金曜日, 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)

月曜日, 6月 08, 2009

中国政府、PCに監視ソフト搭載を義務づけへ 米WSJ

中国政府は、販売するPCにサイトをフィルターする監視ソフト搭載を義務付けるという。

記事からすると、有害サイトをフィルターするウイルス対策アプリのように、常駐して外部へのアクセスを監視するものらしい。

もしそうだとすると、ユーザーに使う意図がなければプロセスを殺すことが可能であり、義務付ける意味はない。さらに、リナックスなどのように、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を作ってるんですね。

火曜日, 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が使用されたという。

ソマリ語の数字

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

水曜日, 4月 15, 2009

NHKのラジオ語学講座がネットで視聴できるようになりました

いつのまにかNHKのラジオ語学講座がネットで視聴できるように(一週間分のみ)なってました。

ラジオ番組の音声が聞けます 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.


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:


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 になります。

下記のようにすると判別できます。



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はいい。

単なる、ディレクトリ比較のプログラムです。



/* 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でのクラスの書き方をアップしておきます。



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);
}

PHP: 定数を扱う

プロジェクトごとの定数を扱うクラス Config\Constants の紹介です。 <?php namespace Config; class Constants {     public const DB_USER = "linguist...