月: 2011年8月

YQLってすごい!Yahoo! Query Language

投稿者:isc_blog

YQLっていうすごいサービスを発見しました。
ウェブ上の情報を取得・・・抽出してXMLかJSON(選択)で出力する っていうサービスみたいです。

そして英語が苦手な私はよくわかっていない・・・

ただ、なにかに使えそうなので、書いておきます。

YQLを知ったのはこちらの記事↓
YQLを使用してWordPressのRSSをjsonで取得してjQueryで表示する|webOpixel
※[DEMO]で見られるページのコードが短いっ! ※ご自身で確認なさって下さい。

例えば、このブログのRSSをJSONで取得したい場合は
YQLのコンソールに進みます。
で、YOUR YQL STATEMENT っていうところに
[sql]
select * from rss where url=’http://blog.iscw.jp/?feed=rss2′
[/sql]
と入れて
[JSON]選んで「TEST」ボタン押すっ!

するとこんな画面が表示されます・・・
(さらに…)

2011年8月8日

ちょいメモ WORD文書内のテーブルを分割する方法

投稿者:isc_blog

ふとWORDで文書作っていて・・・
「なにぃ!」というところがあって調べたのでメモ!

それは「WORDのテーブルの中で分割する方法」です。

結果こちら↓
Word2003以前と2007以降で違います。

~WORD2003以前はこちら

くっついた表を2つに分ける−表の分割|インストラクターのネタ帳

WORD2007~はこちら

Word2010で表の分割は?|インストラクターのネタ帳

助かりました。ありがとうございました!

2011年8月7日

WindowsでObjective-C やってみた

投稿者:isc_blog

先日、Macbookをヤフオクでゲット!
でもまだ来ていません。

・・・が、Objective-Cやりたい病が収まらないのでWindowsでやってみました。

参考資料はこちら↓↓
WindowsでObjective-C | ほんまの走り書き技術メモ
いやぁ感謝します!!

GNUstep Windows Installerより下記順番にダウンロード→インストール

GNUstep System
GNUstep Core
SystemPreferences.app
Gorm.app
Calculator.app




その後、テキストエディタを用意して hello.m ファイルを作ります。
※適当なフォルダに保存します。
[cpp]
#import <stdio.h>
#import <objc/Object.h>

@interface TestClass : Object
– (void) getMessage;
@end

@implementation TestClass
– (void) getMessage {
printf("Hello Objective-C World\n");
}
@end

int main(int argc, char *argv[]) {
id obj = [ TestClass alloc ];
[ obj getMessage ];

return 0;
}
[/cpp]
インストールしたGNUstepの中に移動
msys.batを起動しコマンドを打ちます。

まず、hello.mを作成したフォルダに移動

gcc -o hello hello.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString -enable-auto-import
※↑一行です。
と打ちます。

すると・・・なにも出ないですが・・・コンパイル完了です。

./hello.exe と打って実行!


$ ./hello.exe
Hello Objective-C World

出来ました!
なんかやっぱりこの瞬間のためにプログラマやってますなぁ!

2011年8月6日

WordPressプラグイン「Throws SPAM Away」アップデートしました。→1.3

投稿者:isc_blog

WordPress用スパム対策プラグイン「Throws SPAM Away」をアップデートしました。
Version 1.3 になりました。

Throws SPAM Away

コメント内に日本語文字列が一つも存在しない場合あたかも受け付けたように振る舞いながらも無視

今回のアップデートでは下記の機能が追加となりました。
・コメント欄下に現れるメッセージの設定機能
・エラーだった場合に遷移する画面上の文言設定

また、前のバージョンまでの不具合も修正しております。

アップデートよろしくお願い致します。

このプラグインは海外からのスパムコメントに悩んでいらっしゃる方向けの「海外からのコメント排除」ツールです。
コメント記述時にコメント内の文字列をチェックし「日本語」が規定数以上(デフォルト三文字)含まれていないと
「あたかも受け付けたようい振る舞いつつ・・・投稿していない」という挙動をします。
コメント投稿時に文字認識での認証を入れてもダメだったサイトに最適です。

日本語が何文字以上含まれていないといけないか・・・の設定及び
エラー画面の表示時間、エラー文言、コメント欄の下に表示される注意文言が変更出来ます。

海外のお客様が多いサイトでは使用しない方が良いと思われますのでご注意下さい。

是非、試してみてください。

※注意!!:「書けちゃうじゃん!」という方、ログアウトしてください。ログインしている方には効かないようになっています。(説明追記しないといけないな・・・)

2011年8月5日

Mac OSX Lion

投稿者:isc_blog

先日、Macユーザにとって待望のMacOSXLionがついにリリースされました。

私もMacユーザの端くれなので、早速インストールを行い、いろいろと試してみました。

以前から情報がもたらされているとおり、様々な新機能が搭載されていますね。

そんな新機能を触ってみての感想を書かせていただきたいと思います。

さすがに250以上のすべての機能を紹介しようとすると挫けそうになるので

一部をご紹介しようと思います。

※新機能の詳細についてはApple公式サイトを御覧ください

 

【マルチタッチジェスチャー】

この機能は、前OSのSnow Leopardの時からあったものが さらに強化された印象です。

個人的には、この機能とMagic Trackpadの組み合わせのおかげで、操作が快適です。

 

【フルスクリーンアプリケーション】

こちらは、書いて字のごとく。

アプリケーションを全画面表示にするものです。

画面の小さいノート型には、嬉しい機能だと思います。

 

【Mission Control】

現在起動しているアプリケーションなどを表示し

その中から操作したいアプリを選択して、切り替える機能です。

windowsでいう、Control+Tabを視覚的に捉えられるようにした印象です。

いつの間にかアプリをたくさん立ちあげていた時に便利です。

 

他にも数々の機能がありますが、今回は、これくらいで(笑)

他の機能については、徐々に書いていこうと思います。

 

 

2011年8月4日

MySQLとPostgreSQLと・・・

投稿者:isc_blog

PHP+PostgreSQL(8.2.4)用に開発したアプリケーションをPHP+MySQL(5.1.22)に移植しようとした際に引っかかった点を書き残しておきます。

まず、はじめに私自身はどちらかというとOracleのSQLが最も得意で
あとは順に MySQL>SQLServer>PostgreSQL>Other という感じのスキルです。

で、今回、PHP+PostgreSQLでの開発だったのですが
PostgreSQLが大得意な方ならもっとこう違った書き方があるじゃん!という書き方をしていない前提です。

なので普段MySQL向けのSQLを書くことが多い方がPostgreSQLを使用する場合の注意点と言ってもいいかもしれません。

では、本題。

【日付の計算が違う】
例えば
データ投入日付が10日以内のデータを表示する・・・
みたいなSQL文です。

PostgreSQLの場合
[sql]
SELECT *
FROM user_tbl
WHERE CAST(insert_date AS DATE) + CAST(’10 days’ AS INTERVAL) >
current_timestamp
[/sql]
こんな感じ・・・

MySQLの場合だと
[sql]
SELECT *
FROM uset_tbl
WHERE DATE_ADD(insert_date, INTERVAL 10 DAY) > NOW()
[/sql]
こんな感じになります。

結構、こんな感じのSQLが多いと大変ですね。

【LIMIT OFFSETの使い方が違う】
PostgreSQLの場合は
[sql] 
offset 100 limit 10
[/sql]
と書いた場合
100件目から10件抽出 という意味なんですが

MySQLの場合は
[sql]
limit 100,10
[/sql]

100件目から10件抽出になります。
MySQL5以降の場合実はPostgreSQLから継承した書き方も出来ます。
[sql]
limit 10 offset 100
[/sql]
これも同じです。(10件中抽出、100件目から。)

で、問題なのが、PostgreSQLの場合は 「100件目から全部」みたいなSQL
[sql]
offset 100
[/sql]

が書けるのに対し、MySQLでは「limit」を書かずに「offset」を書くことが出来ないため
同じSQLは書けません。
※実際に試してNGだったのと、いろいろ調べましたがどの文献も「limit」の限界ありきのものしかなく「offset」の使用に関しても「limit」ありきな見解だったので「出来ない」と思っています。なにか手は無いものでしょうか。
※まぁ、Oracleならもっと複雑に書くべきところなので仕方ないですね。PostgreSQLのメリットということで・・・
※参考まで・・・Oracleでのlimit,offsetもどきを実践してくださっている文献

【MySQLのauto_incrementは・・・PostgreSQLで・・・】
MySQLのauto_increment はPostgreSQLで SERIAL になります。
具体的には

MySQL
[sql]
CREATE TABLE tablename (
colname MEDIUMINT NOT NULL AUTO_INCREMENT
);
[/sql]

PostgreSQLでは・・・・

[sql]
CREATE TABLE tablename (
colname SERIAL
);
[/sql]
すでに存在するテーブルに対して追加で行う場合は
[sql]
ALTER TABLE tablename ADD COLUMN 列名 SERIAL
[/sql]
となります。



今回あまり複雑なSQLを書いていないのでこのくらいです。

2011年8月3日

CodeIgniterのすすめ Active Recordクラス

投稿者:isc_blog

CodeIgniterについて何度かご紹介してきていますが
ここんとこSeasar2(Javaのフレームワーク。個人的にはJavaのフレームワークの中で一番好きかな。)っぽいなぁ~と思ったActive Recordクラスについて
ご紹介します。

Seasar2の中でもS2JDBCっていうSeasar2のO/Rマッパーで・・・
っていうか
まぁ、百聞は一見にしかず・・・ってことでこんなコードでDB検索を可能にしています。
[java]
List<Employee> results = jdbcManager.from(Employee.class)
.join("department")
.where("id in (? , ?)", 11, 22)
.orderBy("name")
.getResultList();
[/java]
これって実際のSQLは・・・・こんな感じ
[sql]
select T1_.ID, T1_.NAME, T1.DEPARTMENT_ID, T2_.ID, T2_.NAME
from EMPLOYEE T1_ left outer join DEPARTMENT T2_ on T1_.DEPARTMENT_ID = T2_.ID
where T1_.ID in (?, ?)
order by T1_.NAME desc
[/sql]
※SQL文内の「?」に 「11」「12」が入ってくる感じです。

これをCodeIgniterのActive Recordクラスで書くと・・・
[php]
$this->db->select(‘employee.id,employee.name,employee.department_id,department.id,department.name’);
$this->db->from(‘employee’);
$this->db->join(‘department’, ‘department.id = employee.id’,’left’);
$this->db->where_in(‘id’, array(’11’,’12’));
$this->db->order_by("employee.name", "desc");
$query = $this->db->get();
[/php]
こんな感じ(間違ってたらごめんなさい)
もしかしたらCodeIgniterの方が直感的かもしれない。

どちらももっと複雑なSQLの場合は直接SQL文節をかけちゃう
「S2JDBC」
[java]
List<Employee> results = (List<Employee>) entityManager.createQuery(
"select e from Employee e left join fetch e.department" +
" where e.id in (?1, ?2) order by e.name")
.setParameter(1, 11)
.setParameter(2, 22)
.getResultList();
[/java]

「CodeIgniter」
[php]
$this->db->select(‘(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4′) AS amount_paid’, FALSE);
$query = $this->db->get(‘mytable’);
[/php]

フレームワークを導入したせいでガチガチでどうしようもなくなる(またはフレームワークのせいでSQL構文を合わせないといけない・・・)というフレームワークではつかれるので、こういうところは柔軟であってほしい。

やはりいいフレームワークだと思います。

久々に書いたけどS2JDBCも強力だなぁ~
Java書きたくなってきたー
※Androidは書いてるか・・・

2011年8月2日

秋葉原

投稿者:isc_blog

今日は秋葉原に行っている仲間のところへ行って来ました!
秋葉原からの帰りは誘惑が多くてダメですね。

思わず撮ってしまったヨドバシカメラ前の顔出す立て看板。

システム開発、サイト制作案件について都区内はどこでも参ります!
お気軽にご相談下さい。
サイト制作 株式会社アイ・エス・シー

お待ちしています!

2011年8月1日