Search

2012/05/13

Windows7でiMacみたいなフォント表示にする

Windowsと言えば、何かフォントが汚いと感じたりする。
iMacやUbuntuを使用した後のがっかり感は格別だったりする。
それに対応するのがgdi++.dllだった。
でも32bitで動作しないので、gdippやezgdiがある。
やってみようと思っていたが、何か面倒くさそうなのでやったことが無かった。

今回 窓の杜さんやMoongiftさんで、Mactypeの紹介記事を見たので、何となくやってみた。
(特に、Moongiftさんの「試そう!」の言葉に惹かれてしまった。)
http://www.forest.impress.co.jp/docs/review/20120427_529485.html
http://www.moongift.jp/2012/04/20120418-3/

Mactypeをインストールして、ウィザードを起動し、とりあえずデフォルトで設定。
下記に結果を示すが、スクショ失敗か、あんまり違いが良くわからない。
確かにキレイに見えるけど、Windowsに慣れてしまうとそんなに気にならないかも?
テキストは読めればいいし、ClearTypeで十分だし。
ご自分で使って試してみてください。
適用後
適用前
こちらのタブ画像の方がより詳しく比較できてるかもしれません。
赤丸が非適用、それ以外は適用されています。
プロセスを捕まえて、テキストをアンチエイリアス化するので、捕まえるのが
不十分だとこんなふうになるみたいです。 
適用されたりされなかったり
1時間くらいchromeでブラウジングなどしてみたが、結構 良いかも!
しばらく使ってみようと思う。

Mactypeにはタスクトレイ、サービス、レギストリ(レジストリ)といろいろな
起動方法があるます。
まずは、タスクトレイで試してみて、継続して使っても良いならレジストリに
変更するのが良いと思います。
ウィザード起動のアイコン
「用戸向尋」>「用途向け尋ね」なのか?

2012/05/12

GoogleAppEngineのメールの無料枠の制限

GoogleAppEngineはメールの送受信ができる。
しかし、Free版については下記の制限枠がある。
これを超えると、アプリの呼び出しがエラーになるらしい。
https://developers.google.com/appengine/docs/quotas#Mail
メールAPIの呼び出しは100回/日。
メールの送信は100件/日。
テキストメールの自動返信をやる上で、この2つが厳しいかも。
(管理者へのメール送信は5,000件/なので、これをうまく利用すれば何かに使えるのか?)

今のところのQuotaのMailは下記のようになっている。
メール送信に失敗した分も、Recipients Emailed、Mail API Callsでカウントされていた。
でも、Mail API Callsは13 of 7,000と表示されている。なぜだろう?


課金出来る状態(billable)にすれば、送信は無制限になるとのこと。
しかし、どのくらいの課金になるのかは、運用してみないと分からない。
100件もメール送信しないとは思うが、ちょっと注意しておこう。

2012/05/11

GoogleAppEngine for JAVAでメール受信しようとして失敗したこと

GAEではメール受信できる。試してみたときの失敗項目を書いておく。
こんなことで失敗する私の注意力の無さを記録する。
Googleの無料サービスは、制限が厳しくなりつつあるが使い方次第なのだと思う。
自分に反省。

(1)まずはGAEの設定を変える。特にInstancesを「1」。

Administration>Application Settingsで設定変更。
変更しないと、すぐに無料枠を使いきってしまうためらしい。
下記のように設定すれば大丈夫らしいが、よく分からない。
1)Max Idle Instances: ( 1 )
2)Min Pending Latency: ( 15.0s )
※過去バージョンのGAEツール群でデプロイしたままだと、設定変更できなかった。


(2)PleiadesのDataNucleus Enhancerは外しておこう。

勝手に起動して、全く停止してくれないときがある。
コードの保存すら出来なくなってしまう・・・。
プロジェクトのプロパティー>Google>Appエンジン>ORMで、
全部「除去」してしまおう。
※ORM:オブジェクト/リレーショナル・マッピングらしいが、何に使うのか不明。
http://stackoverflow.com/questions/1015727/how-to-turn-off-datanucleus-enhancer-while-working-with-google-app-engine

(3)デバッグのローカルサーバーで動かなくても気にするな。

http://localhost:8888/_ah/admin/inboundmailのローカルサーバーでは
エラーばっかりでも気にするな。
デプロイすれば、うまく動く。・・・こともある。
環境が違うからデプロイすればOKだ。

(4)デフォルトのdoGetだとダメかもしれない。「doPost」にしてみる。

Eclipseの新規で作成するとdoGetの記述となる。

@SuppressWarnings("serial")
public class Mailrestool2Servlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {...

だけど、メール受信を使うときはPOSTなので「public void doGet」はダメ。
上記は、「public void doPost」に変更する。
GETとPOSTは違うらしい。下記の投稿を読んでやっと気づいた・・・。

http://www.rominirani.com/2009/10/31/episode-6-handling-incoming-email-in-your-application/

これのせいで、Gmailからstring@myappid.appspotmail.comにメール送信すると、
POSTエラーのため、スパム並に何回も送信してきた。
リソースもかなり食われてしまっていた。

(5)Logをしっかりと読もう。
上記に関わることだが、Logの内容を理解できるようにしておこう。
右の3つに注意。status、RequestTime、ResponseSizeだ。
とくにStatusが200以外のときはエラーかもしれないので気をつけよう。

2012-05-11 03:40:11.930 /test 200 75ms 0kb

2012-05-11 03:40:11.930 /test02 405 30ms 0kb
2012-05-11 03:40:11.930 /test03 500 400ms 0kb


(6)デバッグのために変数を知るには、Logに記録する
GAEではファイルに記録するとかの手段が少ないので、手っ取り早く使うのはLogらしい。


import java.util.logging.Logger;
import java.util.logging.Level;
private static final Logger _logmess = Logger.getLogger({CLASSNAME}.class.getName());
を最初のどこかで宣言。下記のようにすれば、Logに変数の中身が記録される。

_logmess.warning("メッセージです!");

_logmess.warning("Subject = " + subject);
※デフォルトの記録レベルはWarning。

ハロの外部記憶インターフェイスさんより

2012/05/10

オススメのネットラジオのチャネル:MagicSunny

ちょっと落ち着いたような曲が聴きたいときもある。
でも、クラシックでもなく、カントリーでもないような・・・。
IcebergRadioのMagicSunnyのチャンネルがちょうど良かった。
別にこれといったジャンルに興味は無い。
何となく雰囲気を感じられれば良い。
そういうときは、邦楽は歌詞が邪魔になる。
洋楽の歌詞は聴き取れないので、音にしか聴こえない。
落ち着いて考え事をしたいときは、そういう音楽も良いかもしれない。

ホンダのリードのマフラーが外れてたらしい

快調に乗っていたホンダのリードだが、走行中にカチャカチャと
金属のぶつかる音がなるようになった。
何か調子悪いのか?
全体的に見てみたらマフラーのボルトが外れていた。
とりあえず手で締めておいて、後日 購入店で見てもらった。

原因は不明だが、一回マフラーを外して、もう一度組み付けてもらった。
その後は快調な走りに戻った。

外れ気味だったボルトには白ペンでマークがしてあったので、
締め付け確認は行われたのだと思う。
でも、まぁ外れることもあるだろう。
車だって、スクーターだって、自己管理が大切だと思う。
特に、車検の無いスクーターは買ってそのまま乗っているのは危険かもしれない。
日頃からの点検に気を配ろうと思った。

2012/05/06

SharpDevelop3でNPOIを試す

JAVAのオフィスコンポーネントにApachePOIがある。
これを.netに移植しているのNPOIというものもある。
現在のNPOIはExcelのみ対応。しかもxls形式のバージョンのみ。
これをSharpDevelopで使えるのか試してみた。

Windows7であれば、SharpDevelopを解凍すれば、すぐに使用できる。
解凍したフォルダの SharpDevelop/3.0/bin/SharpDevelop.exeを起動。
それ以外のWindowsは、.net3.51頒布版のインストールが必要だと思う。

NPOIのdllをダウンロードしてサンプルを試してみた。
NPOIは.net2.0で動作するので、Win7ならそのままでOK。
ただし、参照のNPOIは入手したパスに設定し直す必要がある。
さらに、コンパイルのターゲットCPUを32bitに変更。
すると、サンプルは問題なく動いた。
セルの色を変えたり、数式を入れたりもできるようだ。

とりあえず、KingsoftOfficeで作成したxlsファイルを読んで、コンソールに
表示してみるコードを書いてみた。日本語も読めるようだ。

上記のサンプルコードを記載しておく。
サンプルを動かすには、SharpDevelopで下記の手順ソリューションを作成。
ファイル>新規作成>ソリューション>Windowsアプリケーション>コンソールアプリケーション
NPOI.dllも参照に追加する。


ただし、SharpDevelop3のデバッグはターゲットCPUが32bitに限定されている。
プロジェクトのターゲットCPUを32bitにして置く必要がある。
でも、Releaseなら「あらゆるプロセッサ」の設定で、64bitとして動作する。
これらの設定をすれば、以下のコードをコピペすれば動くかもしれない。
環境は、Windows7HomePremiumの64bitだった。

----------とりあえず動いたサンプルコード。問題多し!---------
using System;
using System.Text;
using System.IO;

using NPOI.HPSF;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Extractor;
using NPOI.POIFS.FileSystem;

namespace testnpoiread
{
class Program{
public static void Main(string[] args){
String fileName = "c:\\test\\test.xls";
HSSFWorkbook workbook = new HSSFWorkbook( new FileStream(fileName, FileMode.Open));
ExcelExtractor extractor = new ExcelExtractor(workbook);

Console.Write(extractor.Text);
Console.ReadKey(true);
}
}
}

----------とりあえず動いたサンプルコード。問題多し!---------

動くには動いたが、NPOIの詳細なドキュメントは無い。
「POIをドキュメントを読んでね」となっている。
POIのクラスの意味はさっぱり分からない。
まずは、NPOIに付属するサンプルコードの解析からはじめてみようと思う。
と言っても、JAVAもC#も知らないので、テキストを買ってみよう。

TonyQuさんのNPOI講座があります。中国語ですが、何となく分かるかも・・・。


今回の契機は、KingsoftOfficeでマクロが使えないことにあった。
置換機能なども、機能が少ない。
これ補完するために、C#とNPOIのアプリで、なんとかできないだろうか。
そんな感じではじめてみた。

それにしても、中国の方々の開発力はすごいと思って。
せっかくなので、KingsoftOfficeにNPOIのIDEでも付属して欲しい。

2012/05/02

お名前.comのドメインで、ロリポップ!のサーバーとGoogleApps無料版を使う

ドメインはお名前.comで取得してあった。
これはGoogleAppsの無料版でメールやブログを使っている。
また、ホスティングサーバーとして、ロリポップのロリポプランも契約している。
こちらは、WordPressの練習のため、と思っていただがほとんど使っていない。

なぜ、ロリポを使っていないかというと、お名前.comのDNS設定を
ロリポップの独自ドメインに引き継げなかったからだ。
というより、やり方が分からないし、そんな方法があるとも思わなかった。

そもそも、ロリポで独自ドメインを使うには、ネームサーバーを以下に2つに変更する必要がある。
http://lolipop.jp/manual/domain/domain-01/

■プライマリネームサーバー uns01.lolipop.jp
■プライマリネームサーバーIP 49.212.111.248
■セカンダリネームサーバー uns02.lolipop.jp
■セカンダリネームサーバーIP 210.157.22.90

しかし、これをネームサーバーとして設定すると、お名前.comのDNS設定は無効になる。
当然GoogleAppsも使えなくなる。

ロリポの独自ドメインとお名前.comのDNSは両立できないと思っていた。
しかし、hiroさんのブログより、お名前.comのDNSをメインにすれば使えることがわかった。

お名前.comとロリポップとGoogle Appsで格安サーバ構築:hiroさんのブログより
http://hirofun.com/wp-trackback.php?p=392

要点は、以下のような感じ。
(1)ネームサーバーとDNSは、お名前.comを使う。
(2)ドメインのAレコードを、ロリポのサーバーのIPアドレスに指定する。
※IPアドレスは、コマンドラインの ping abcd.lolipop.jp とかで調べてみる。
(3)GoogleAppsの設定はそのまま。



「お名前.comのDNSレコードの設定例、yourodomain.comのとき」
yourodomain.com NS 01.dnsv.jp. ※お名前.comのネームサーバーで設定
yourodomain.com NS 02.dnsv.jp. ※お名前.comのネームサーバーで設定


yourodomain.com A 123.456.789.000 ※ロリポップのサーバーのIPアドレス
yourodomain.com MX ASPMX.L.GOOGLE.COM. 10 ※GoogleAppsのGmail
yourodomain.com MX ALT1.ASPMX.L.GOOGLE.COM. 20
yourodomain.com MX ALT2.ASPMX.L.GOOGLE.COM. 20
blog.yourodomain.com CNAME ghs.google.com ※GoogleAppsのbloggerの設定


ここまでの設定で以下のようになるはず。
(1)yourodomain.comでGoogleApps無料版が使用可能。
(2)http://yourodomain.comで、ロリポップにアクセス可能。
(3)http://blog.yourodomain.comなら、bloggerにアクセス可能。

さらに、サブドメインをロリポップサーバーのフォルダに割り当てができるらしいが
詳細は不明。
http://subdomain.yourodomain.comで、ロリポップのabcd.lolipop.jp/subdomainに
アクセスできればいいのだが・・・。
下記の情報だとできるようだが、後で試してみよう。
何となく、ロリポでサブドメイン設定した後に、お名前.comのDNSで、
subdomain.yourdomain.comをCNAMEで、yourdomain.comに設定すれば良さそうだが?

サブドメインを設定する[お名前.comでドメイン取得、ロリポップで運用]
IT女子のお気に入りフォルダさんより
http://sachipps.byeto.jp/archives/36


当初は、独自ドメインは維持費だけで、年間数万円もしたような記憶がある。
しかし、今では個人的に運用することも可能だ。費用も年間1,000円以下。
.co.ccや.tkのような無料ドメインすらも存在する。
FacebookのようなSNSは、すでにビジネスの名刺がわりになっている。
小企業でも、WEBサイトよりもFacebookのほうが便利だと言われるくらいだ。
しかし、そういった基盤に頼らず「自分WEBサイト」を持つことがちょっとした
ステータスの一部になるかもしれない。
HTML5、CSS3、IPv6といった、今後のあたらしいWEB技術に期待する。


追記:小企業ならFacebookで十分と思っていたが、やっぱり問い合わせの
際には「ホームページ教えてください」というケースもあると聞いた。
WEBサイト、ブログ、Facebookといった感じで、小企業とは言えども、
たくさんのアクセス先を用意しないとならないようだ。
ビジネスチャンスは逃したくないですよね。