1月 20

インストールした覚えが無い「Microsoft .NET Framework Assistant」というプラグインが有効になっているとカーソルが動かなくなるくらいFireFoxが重くなることがあるようです。

ということなのでいっそのこと無効化してしまえば快適にFireFoxを使う事ができますよね!

手順

Continue reading »

12月 07

SEOで大事なことは現在の自分のサイトのランキングなどを把握しておくことです。
日々変わるランキングの情報をどう管理するか。
ツールを作るのも大変ですので、オープンソースのツールを使い無料で管理をしてみましょう。

SEO関連のツールはとても少ないですが今回は定番のSEO Panelを紹介します。

Seo Panel 公式サイト
http://www.seopanel.in/
GoogleCode Seo Panelサイト
http://code.google.com/p/seopanel/

インストール方法はこちらです。
http://code.google.com/p/seopanel/wiki/Installation

抜粋、補足をすると
あらかじめ入れるDBをCREATE DATABASEしておきましょう。
ソースをダウンロードし、アップして展開
config/sp-config.phpをパーミッションを666に
tmpディレクトリのパーミッションを777にして
ブラウザから、アップした先のinstall/にアクセス
指示に従い、利用しているデーターベース情報など入れて設定。
終わったら、config/sp-config.phpを644にもどしサイトにアクセス

Username: spadmin
Password: spadmin
で入れればインストール終了です。

安全のためinstallディレクトリは消しておきましょう。


あとはログインして管理画面でドメインなどの設定しましょう。

ドメイン情報を登録したら、

CRONで毎日更新されるよう設定しましょう

CRONの設定方法も管理画面に記載してあります。

ドメインを登録していくとこんな感じで一覧表示されます。

その他いろいろな機能がありますが、今日はこの辺で。

12月 06

以前、Titanium Mobileという
スマホアプリ開発用SDKの話を聴きに行った事があったので記載します。

Titanium MobileはアメリカのAppcelerator社で開発されているスマホアプリ開発用のSDKです。
クロスプラットフォームに対応しており、 iPhone、Android、 BlackBerryに対応しています。

開発環境はMac推奨
仕様言語はjavascript

※Windowsでも出来ますが、iPhne用のアプリが作成出来ない上、
AndroidのSDKバージョンが上がるとSDKをうまく認識してくれない場合があります。

使い所としては
Webのフロントエンドアプリなどの開発に向いています。

開発はeclipseベースのIDEで開発を行います。
夏に話を聞いた時点では、
IDEでGUIベースのレイアウトを作成出来る機能を開発中と言っていました。

TitaniumのSDKに無いAPIはjavaやObjective-Cで独自に開発して作成する事が可能です。
また、作成したモジュールは販売する事が出来ます。
https://marketplace.appcelerator.com/landing

SDKに用意されている機能はkitchen Sinkというアプリからアプリ上で確認する事ができます。

ちなみにjavaを使って簡単なアプリを作った時と
Titaniumを使って作った時では100倍くらい作成時間が短かったような。

参考資料
http://code.google.com/p/titanium-mobile-doc-ja/

開発事例
zaim
http://zaim.net/

MogSnap

http://mogsnap.jp/

12月 01

SQLSERVERでテーブルやフィールドの一覧を作成するSQLを作成しました。
今回は自分が必要だった以下の項目に絞ってあります。

【項目】
・テーブル名
・フィールド名
・型
・桁数
・小数部
・NULL許可
・PK
・フィールド説明(列のプロパティの説明に記入がないと表示されません。)

【SQL】

SELECT
     obj.name   AS  'テーブル名'
    ,Col.name   AS  'フィールド名'
    ,(SELECT TOP 1 name FROM systypes WHERE systypes.xtype = Col.xtype) AS '型'
    ,Col.length AS '桁数'
    ,CASE ISNULL(Col.scale,0) WHEN 0
                              THEN ' '
                              ELSE CAST( Col.scale as char(10) )
     END        AS  '小数部'
    ,CASE  Col.isnullable	  WHEN 0 THEN '○'
                              ELSE ' '
     END        AS 'NULL_NG'
    ,ISNULL(
                (
                    SELECT
                        CASE colid WHEN 0 THEN ''
                                          ELSE '○'
                        END
                    FROM
                        sysindexkeys AS keys
                    WHERE
                        col.id     = keys.id
                        AND
                        col.colid  = keys.colid
                        AND
                        keys.indid = 1
                )

                ,

                ' '
                ) AS 'PK'
    ,ISNULL(
                (
                    SELECT
                        TOP 1 ex.value
                    FROM
                        sys.extended_properties AS ex
                    WHERE
                        col.id = ex.major_id
                        AND
                        ex.minor_id = col.colid
                        AND
                        ex.name = 'MS_Description'
                )

                ,

                ' '
           ) AS 'フィールド説明'
FROM
    syscolumns AS col
INNER JOIN
    sysobjects AS obj
ON
    col.id = obj.id
WHERE
    obj.name IN(SELECT NAME FROM sysobjects WHERE TYPE IN('U') AND STATUS >= 0 )
ORDER BY
    obj.name

※SQLSERVER2008で動作確認

11月 28

これはすごい。。。
JavaScript で zip 動的生成。ブラウザ上で zip つくれちゃいます。
簡単なデモ作ってみました。

こちらをダウンロードして解凍した index.html を クロームなどで開いてみてください。

zip me! というボタンをクリックすると、リンクが生成されます。
このリンクを右クリックして保存してください。
名前は適当なものになっちゃうので、拡張子を zip にして保存してください。
そのzip を開くと、テキストファイルと、imgフォルダにアイコンが保存されます。

色々使えますね。。。。

興味あれば、Data URI scheme の説明ページを見てみてください。役に立ちます。
http://en.wikipedia.org/wiki/Data_URI_scheme

11月 28

Juniper SSGでNSRPを使用してマスター・バックアップ構成をした際に、VPN越しで他拠点のSSGバックアップ機の、Trust側管理IPにアクセスできない事象がありました。
調べたところ、NSRP構成でマスター機からバックアック機の管理IPへ疎通できないのが原因でした。
以下のコマンドにより、マスター⇒バックアップへ疎通できるようになります。

set flow mac-cache mgt

参考URL
http://kb.juniper.net/InfoCenter/index?page=content&id=KB11374

11月 25
赤フン先生のこの記事でも「TCPDFの問題点」として挙げられている
  • フォントのサブセット利用をすると、処理が超遅くなる(余裕で2~3分とか)
  • フォントのサブセット利用しないと、ファイルが超重くなる(余裕で5MBとか)
という問題ですが。
【日本語フォントを利用しても、重くも遅くもならない方法】を見つけました。(M内さんと。)
TCPDFの日本語・標準フォント」にあるフォントをサブセットに利用して生成すると、
処理も遅くならずにファイル容量が30KBとかになりました!
フォント数は少ないですが・・・。。。
ちなみにうちでは一番マトモそうなkozminproregularを使用しています。
11月 22

mysqlでたまに日付が「0000-00-00」となっているデータがあります。

SSISでSQLServerと連携する際に日付型でnullでない場合、日付とみなされます。

が、日付型の範囲が1753/1/1~9999/12/31の為、

実行時にエラーとなります。(プレビューではエラーにならない)

システム間の連携を前提とするならば、「0000-00-00」は使用せず、nullとすべきかと思います。

日付型にありえない日付が設定されるとこう変換されるのでバグの場合はどうしようもないですが・・・

11月 08

たまたま見かけた「頭の体操ネタ」がちょっと面白かったのでコピペします。
たまにはこういうのもイイよね(^-^)


或る晩、三人の旅人が
一軒のホテルに泊まることになった。

一部屋一泊30ドル。
三人は一人10ドルずつ出し合ってボーイに渡し
皆で仲良くその部屋に泊まった。

翌朝、このホテルのオーナーが出勤し
帳簿を見てボーイに言った。

「おい、あの部屋は一泊25ドルだぞ。
今すぐ5ドルを返してきなさい」

人の良いオーナーと違い、
ボーイはそれほど良心的な人間ではなかった。

(三人に5ドル返してもややこしくなるだけだろう)
ボーイはこう考えると2ドルを自分のポケットに入れ、
3ドルを持って旅人たちの部屋に向った。

「当方の手違いで宿泊料金を多く受け取っていました」
ボーイは2ドルネコババし、
三人にそれぞれ1ドルずつ返した。

旅人たちは何も知らずボーイに礼を言い
ホテルを後にした。

うまくやったとにやにやしながら
ポケットの中の2ドルを玩んでいたボーイだったが、
しばらくしてふとおかしな事に気がついた。

ちょっと待てよ・・・
最初、旅人達は三人で30ドル、
一人10ドルずつ払ったよな・・・

俺が3ドル持っていって
一人1ドルずつ返したから、
10ドル-1ドルで
結局一人9ドルを払ったことになる。

3人×9ドルだから、
彼らが出した金額は全部で27ドル。

俺のポケットの中には
今2ドル入っている・・・

それを足すと29ドル・・・、
最初払ったのは30ドル・・・

・・・残りの1ドルは何処へ消えたんだ?

11月 04

サイト内でメモリーオーバーの対応していた時の情報を共有します

ソース内でテンポラリーとして使っている変数が多かったのでunsetなどを使ってメモリ開放を行っていたのですが

実際にメモリが開放されるタイミングはループなどを行った時ではこのようになっているようです

—————————————————–

例1

while( 条件 ){

変数A代入;

いろんな処理

変数Aメモリ開放

}← 実際にメモリが開放されるのはこの時点

—————————————————–

例2 ネストされている時は・・・

if (条件) {
    while (条件) {}
    while (条件) {}
} ← 実際にメモリが開放されるのはこの時点
以上です~