SQLの窓

2010年01月17日


「フリーフォントで簡単ロゴ作成」に、フォント画像のサンプル一覧ページを作りました


各種フォントのサンプルページ(サイズ16)
もともとロゴ作成の為にと思って作ったので、大きいサイズを想定していましたが、実際の日本語の表現で使いたい場合のサイズとして16くらいがちょうどいい感じだったので、サンプル画像を各フォント毎に作成しました。 また、このページで画像をクリックすると本体のページに反映されて同じものが表示されるようになっています。 その他にも変わったフォントがあるので、以下のようなサンプルも作りました
Glmahjongtile
麻雀牌
このフォントがダウンロードできるラボでは、ソロモンの大きな鍵という素材に最適なフォントもあり、実装済です。

S1



posted by lightbox at 2010-01-17 15:59 | 記録 | このブログの読者になる | 更新情報をチェックする

2010年01月15日


Seesaa、JUGEM、livedoor、ココログ用テーブルタグ埋め込みブックマークレット

 
 
既にある記事をテーブルの左側に配置した
状態で貼りなおすブックマークレットです。

JUGEM
livedoorBlog
ココログ

▼ インストール
記事にテーブルタグ埋め込み


ブログのレイアウトにあわせる為に、
多少 padding や width をそのつど
調整する必要があります

※ リッチテキストエディタでは使用できません
<table calss=seesaa_tbl><tr> 
<td style='padding:30px;'> 
 
<div style='width:300px;margin-left:0px;text-align:left'>
<!-- main(left) -->
 
</td> 
<td style='vertical-align:top;text-align:left;padding:30px;'> 
 
<pre class=tbl_right> 
<!-- right  --> 
</pre> 
 
</td> 
</tr></table> 
 
 
<pre class=tbl_under style='padding:30px;'> 
<!-- under  --> 
</pre> 



タグ:javascript
posted by lightbox at 2010-01-15 22:28 | 記録 | このブログの読者になる | 更新情報をチェックする

2010年01月13日


JavaScript : ページが全て表示し終わった後に追加するイベント処理の具体的なサンプル

JUGEM ブログでAFPBB News より強制的に貼りこまれるニュースのテスト で使いました。
強制的に本文の先頭に追加されてしまうので、テーブルタグの中に DIV を作成してクラス名
を付けて、ダミーで基点を表す DIV を作り、その DIV にもクラス名を付けています。

要するに基点を全部取り出して、その親ノードから目的の場所を見つけて転送しています

ブログでは同一ページのどこに同じ構成があるか解らないので、ロードイベント
が一度しか実行されないように、jugem_afpbb() を何度も呼び出してもイベントが
登録されるのは一度だけです
<script type="text/javascript">
var jugem_afpbb_flg = 0;
function jugem_afpbb_get(obj,class_target) {
	var target;
	for( var i = 0; i < obj.length; i++ ) {
		if ( obj[i].className == class_target ) {
			target = obj[i];
			break;
		}
	}
	return target;
}

function jugem_afpbb_all() {
	var a = document.body;
	var b = a.getElementsByTagName("DIV");
	var c,d,e,f;
	for( var i = 0; i < b.length; i++ ) {
		if ( b[i].className == 'afpbb' ) {
			c = b[i].parentNode;
			d = c.getElementsByTagName("DIV")[0];
			e = jugem_afpbb_get(c.getElementsByTagName("DIV"),'afpbbtarget');
			f = jugem_afpbb_get(c.getElementsByTagName("DIV"),'afpbbItemAds');
			e.appendChild(d);
			e.appendChild(f);
		}
	}
}
function jugem_afpbb() {
	if ( jugem_afpbb_flg == 0 ) {
		if (window.attachEvent){
			window.attachEvent('onload', jugem_afpbb_all);
		}
		else {
			window.addEventListener('load', jugem_afpbb_all, false);
		}
		jugem_afpbb_flg = 1;
	}
}
</script>

ダミーは、クラス名を afpbb としています。
常にこのクラス名という前提で、jugem_afpbb() を呼び出します。
ページ上の全てのこのセクションを基点にして同じ記事内の 
afpbbtarget というクラス名を持つ DIV を探してニュースコンテンツ
を移動させます
<div class="afpbb"></div>
<script type="text/javascript">
jugem_afpbb();
</script>


<table calss=seesaa_tbl><tr> 
<td style='padding:30px;'> 
 
<div class=afpbbtarget style='width:300px;margin-left:0px;text-align:left'>
<!-- main(left) -->
</div> 
 
</td> 
<td style='vertical-align:top;text-align:left;padding:5px;'> 
 
<pre class=tbl_right> 
<!-- right  --> 
移動に成功しました。全てロード後なので、
ちょっと移動が遅れますが、いずれ PC の
パワーで意味無くなるでしょうし。
</pre> 
 
</td> 
</tr></table> 
 
 
<pre class=tbl_under style='padding:30px;'> 
<!-- under  --> 
</pre> 

もうかなりの間、以下のコードで運用しています。相当複雑なページで
動いているので基本的にこのままで問題は出ないと思います。こごでは、
ブラウザの違いを特に言及する必要が無いので、とにかくこれを使うと、
ページが全てロードされてから処理が可能になります。

例えば、処理をページの最後に書けないようなシステムでは、どこに書
いても最後に実行されるので、表示レスポンスの問題を除いて多用され
ている処理です
if (window.attachEvent){
	window.attachEvent('onload', jugem_afpbb_all);
}
else {
	window.addEventListener('load', jugem_afpbb_all, false);
}
※ addEventListener については、以下で詳しく説明されています
element.addEventListener - MDC


タグ:javascript
posted by lightbox at 2010-01-13 19:08 | 記録 | このブログの読者になる | 更新情報をチェックする

2010年01月09日


Ruby : 根本的なエラー処理 / 標準エラー出力の出力先を標準出力に変更する

>$stderr には $deferr という別名がありますが、 $deferr は非推奨([[unknown:obsolete]])
>になったので、新しいコードでは常に $stderr を使ってください。
variable $deferr : Ruby 1.8.7 リファレンスマニュアル

実行して、CGI エラー( 500系 )になる場合はどうしようも無いですが、
何も表示されない場合は有効です。普通に行指定されたエラー内容が
表示されます
▼
errtest.rb:10:in `require': no such file to load -- abc (LoadError)
	from errtest.rb:10
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"

# 標準エラー出力の出力先を標準出力に変更
$stderr = $stdout

# ファイルの場合
#$stderr = File.open("./err.log", "w")

require 'abc'

print "ok" 





タグ:ruby
posted by lightbox at 2010-01-09 19:26 | Ruby | このブログの読者になる | 更新情報をチェックする

Ruby : ココログのアクセス解析ページの当日データの取得

いろいろなブログの管理情報を取得しようと思っているのですが、
まずは確実なココログからアクセス解析のテストを行いました。
( Seesaa はもう既に実運用しています )

Seesaa は、複数のブログがあるので、CRON で5分毎に呼び出して、
呼び出されるたびにDBを更新してカウントアップし、その値によって
各ブログのアクセス解析数を取得して再びDBに更新しています。
ですから、一つのブログの更新間隔は、1時間毎くらいでちょうどいいです。

今回、ココログを追加しようとテストしてみました。

※ rb は、utf-8n の lf 改行です( 改行は lf でないとエラーになっています )
#!/usr/local/bin/ruby
print "Content-Type: text/html; Charset=utf-8\n\n";

# ▼FORM からデータを引き渡す場合に必要
#require "cgi"
#cgi = CGI.new

ENV['GEM_HOME']="/home/lightbox/gems"
$LOAD_PATH.push('/home/lightbox/lib')

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
#@nifty にログイン
page = agent.get("https://login.nifty.com/service/login")
form = page.forms.first
form["username"] = 'ユーザーID'
form["password"] = 'パスワード'
page = form.submit

# アクセス解析ページへアクセス
page = agent.get('http://app.cocolog-nifty.com/t/app/control/stats')
#fp = open("./log_01.txt", "w") 
#fp.puts(page.body) 
#fp.close 

# この手順でアクセスする必要があります
page = agent.get('http://app.cocolog-nifty.com/t/app/control/stats?nwsThough=1')


/アクセス数:.+right">(\d+?)<\/td>.+訪問者数:.+right">(\d+?)<\/td>/m =~ page.body 
print $1 + "," + $2  + "<br>\n"


#print page.body
print 'ココログ当日アクセス数';

直接関連する記事
Ruby : ココログギャラリーの設定から、Ruby の基本処理




タグ:ruby ココログ
posted by lightbox at 2010-01-09 17:47 | Ruby | このブログの読者になる | 更新情報をチェックする

2010年01月06日


Ruby : メソッド定義で URLエンコード

PHP で比較テストしています

特別な理由が無ければ、URI.escape で問題無いと思いますが、
ざっと使って以下のようになっていました
■スペースが%20 に変換される 
■/がそのまま
そこで、正規表現で置換しています。
( 他の文字はテストしていませんので、正式なテストではありません )

def は、メソッド定義でトップレベルでは「関数」のようなものですが、
単純なインタープリタのようなので、C言語と同じく前方参照でした。定義してから
でないと実行できません。

gsub は全て置き換える処理で、sub だと一つだけになります。
他の言語での /パターン/g と書かれる事のある処理ですね、
(ちょっと解りにくい)


#!/usr/local/bin/ruby
print "Content-type: text/html; Charset=euc-jp\n\n"

require 'uri'

a = "日本/語A B /表示%"

print a + "<br>"

#トップレベルならばどこからでも呼べるメソッド
#このようなメソッドは結果として他の言語における
#「関数」のように使えます
# ■ 但し、前方参照
def urlencode(s)

	s = s.gsub(/ /,'+')
	s = URI.escape(s)
	s = s.gsub(/\//,'%2F')
	return s

end

print urlencode(a) + "<br>"





タグ:ruby
posted by lightbox at 2010-01-06 23:40 | Ruby | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり