はてなブックマーク Web HookでTwitterに投稿

作ってみた。 titleがtitileになってるので注意直った twitterへの投稿は、http://d.hatena.ne.jp/hirataka522/20080126/1201300282を参考に truncate_text関数は、symfonyのhelperから拝借しました。 ベータ版ですが、PEARにServices_Twitterってのもありま…

HTMLのインデント、連続する半角スペース、改行を取り除くJavaScript

改行がスペースになったり、連続したスペースは1文字扱いだったりとややこしいレンダリング周り。さらに、ブラウザ間で差があるから発狂物。どのブラウザで見ても同じにしたい。スペース1つが命取りな場合もある。なんとかしたい! そんなことは、サーバ側…

全ユーザに、はてなブックマークプラスアイコンを付ける JavaScript と Greasemonkey

逆に考えるんだ!皆に付いていればいいんじゃね? var img = Ten.Element('img', { width: '25', height: '11', title: 'はてなブックマークプラス', src: '/images/plus.gif' }); var plus_icon = Ten.Element('a', { href: '/guid/plus' }, img); Ten.DOM.…

はてなブックマークプラスアイコンを消し去る JavaScript と CSS

そんなに見たくないなら、見えなくすればいいじゃない。根本的解決じゃなくて、ネタですけどね。 js Ten.Selector.getElementsBySelector('a.plus_icon').forEach(function(a){ Ten.Style.applyStyle(a, { display: 'none'}) }); css a.plus_icon { display:…

CiNii用AutoPagerizeのSITEINFO

2009 06/02 ページリンクを取得しないようにした。 2009 06/11 AutoPagerizeデータベースに登録した。autopagerize.user.jsを編集しなくてもページ継ぎ足されます http://wedata.net/databases/AutoPagerize/itemsへの追加方法が良く分からなかったから、と…

あえて画面遷移したい人のためのForm関数

Ajaxでデータ投げたら、エラーページのHTMLが丸々返ってきた経験ありませんか? その度に、Formを作成するのもめんどくさいので、関数化してみました。 $.form = function(s) { var def = { type: 'get', url: location.href, data: {} }; s = jQuery.extend…

アクセスできるかを含めてURLを判定するFormの作り方

久しぶりにsymfonyネタを1つ。 バリデーション通ったURLでもアクセスしたら、404返ってきたよムキー!ってなったので 要求仕様 sfValidatorUrl通る 実際にアクセスできる 以上の要求を満たすバリデーションを作成しました。 なお、アクセス検証のためにsfWe…

タブをまたいで移動する不思議な箱

それ、Greasemonkeyでできるよ。じゃなくて、Jetpackっぽいものを作ってみたくてコードの美しさ度外視で作ってみました。 xTabBox runボタンを押すと、3秒後にタブの先頭から、黒い箱がタブを横切っていきます。

はてブで表示されるページタイトルを省略しない形で表示する方法

アイドルマスター 『iM@S Collaboration Festival 2 - B』‐ニコニ... のように省略されているのを アイドルマスター 『iM@S Collaboration Festival 2 - B』‐ニコニコ動画(ββ) にしたいときどうするかってことです。 A要素のtitle属性が全文を持ってるので…

簡単な掲示板(CSV形式で保存)

php

2009/05/21 バックスラッシュ(\)対策に、addslashes, stripslashes通すよう修正。 2009/05/11 defineの第一引数をシングルクォートで囲むよう修正。$addr -> $addressに修正。 4年生への課題を自分もやってみた。 要求仕様 XHTML形式で出力 CSV形式でデータ…

snippetsEmu.vimでコード補完

vim

*2009/5/10 W3Cのチェッカー通るよう修正 楽するのがハッカーということで、マッピングの強化版snippetsEmu.vimで煩わしい作業を短縮します。 xhtml .vim/after/ftplugin/html_snippets.vimの末尾に以下の行を追加して exec "Snippet xhtml <CR></cr>

PHPのさわり

php

自分の研究には、2人来ました。二人ともPHPは初めてで、まだロジックとビューが混在したコードになっているのが微笑ましい。いろいろ教えてあげたいし、成長して欲しいけれど、整理できてないから列挙してく。T_WHILEの意味分からなかった俺だけど、何かの…

DOM Rangeを簡単に扱うexRangeのサンプル

テスト用のbookmarklet書きました。 IE8, Firefox3.0, Safari3.2, Google Chrom1.0で動作確認。 Opera orz javascript:(function(d){s=d.createElement('script');s.type='text/javascript';s.src='http://github.com/TakiTake/js/raw/d1197b42fa16b5d7d7e42…

IE用にTreeWalker.js書いた

まずは、ぺたり。http://github.com/TakiTake/js/tree/master 使うと、何が嬉しいの? IEでDOM Traversal関数が使えるので、DOMツリーの探索が容易になります。 XPathとどう違う? XPathは、条件に合うノードをガッと一気に取ってきます。 TreeWalkerは、DOM…

exRangeちょこちょこ更新中

exRange(Selection).pos()で[0, 0]になるバグ修正 wrap後にendContainerが無くなるバグの解決法見つからない IE用のTreeWalker関数未実装 詰んだ。 寝たらいい案浮かぶかな?

There is no open connection解決方法

symfonyでテストしようとしたら、コネクション開けないと怒られました。 基本に戻り、Jobeet8日目を読み返す。 コネクション確立用のDoctrine.php作ってなかった!

githubに登録してみた

ちょこちょこ作ってた、DOM Rangeラッパーライブラリをgithubに上げときました。 ちなみに、さっきアカウント作ったばかりでGit自体初体験。 Firefox3で動作確認。 DOM RangeとTreeWalker使ってるんで、早くIE対応せねば。 ぺたり、exRange 使い方 ソースの…

Twitter始めてみた

まだ、何が楽しいのか分からない状態。 フォローしてくれたら狂喜乱舞します。 ぺたり、http://twitter.com/TakiTake

IEでDOM Range扱えるライブラリあった

ierangeこれはすごい! あとで、試してみる

クロスブラウザでRangeオブジェクト扱う3

はてなスターの引用はどんな実装かな? とHatenaStar.js眺めてたら、引用した文字列と同じ文字列全部がハイライトされる仕様なのね。そうそう重複しないだろうから、こういう割り切ったのもありだと思う。 テキストノードだけ収集するのに、よさげなコード発…

クロスブラウザでRangeオブジェクト扱う2

選択範囲を任意の要素で囲う関数がネック。 Operaは、要素またいだsurroundContentsエラーになる。 テキストノードだけ抜き出して、それぞれ囲む必要がある。 もう少し汎用的になったら、どっかに上げる予定。 /** * exRange JavaScript Library v0.3 * どの…

Rangeオブジェクトメモ

リファレンスは、こことかここ DOM Range setStartやsetEndは、第一引数要素の第二引数位置へ始点(終点)を移動する。 下記の例だと、2から4までつまり、"cd"を選択している。 <span>abcde</span> var range = document.createRange(); var node = document.getElement…

クロスブラウザでDOM Rangeを扱えるようにした・・・い

IE対応しようとすると、途端にめんどくさくなる。 早さとかいいから、JSのエンジン変え(ry IE8の開発者ツールは、時代に追いついた感じで素晴らしい。 みんな、せめてIE8にしてくれ。 まだ、途中ですが経過報告。 メソッド毎にDOM Rangeのサポート有無で振り…

__proto__使ってprototypeを汚染せずに拡張する

(function() { var R = window.R = function(selection) { return R.init(selection); }; R = { init: function(selection) { this.__proto__ = selection ? selection.getRangeAt(0) : document.createRange(); return this; }, start: function(node, inde…

祝・日本優勝

バイト先のおっちゃんと昼休みにラジオ聞いてましたが、9回の裏で放送中断になり歯がゆかった。 てか、昼休みが2時間くらいあった気が、

Rangeをメソッドチェーンで操作する(簡易版)

メソッドチェーンって直観的で分かりやすいと思うので、Rangeオブジェクトをメソッドチェーンで扱えるようにしてみました。 とりあえず版ですので、もっと充実させていく予定。 今のところ、ただのラッパーなんでIEでも動くと少しは実用性が出てくるかも。 F…

動画公開!ただしIEに限る( #^ω^)

IE

なんならSilverlightいれるから、止めて欲しい。 だから、IEなくならないんだよ! とは言え、これはIEのせいじゃないね。

はてブって意外と見やすいね

はてブしか使ったことがなくて、他のSBSはどんな感じだろうと思ってちょろっと回ったときの感想。 何を今さらなことですが、しみじみと感じたので。 他のSBSは味気ない といっても、Yahoo!ブックマークとDeliciousとしか比べてませんが。 Yahoo!ブックマーク…

DateHelperを拡張してMM-dd形式の日付を出力させる

というような出力をしたくて、DateHelper.php -> sfDateFormat.class.phpと辿って行くと、getPattern関数に与える引数で形式を変えられることが判明。しかし、MM-dd形式での返り値がない! sfDateFormat.class.phpをオーバライドすればいいのですが、DateHe…

session_startがPermission deniedで蹴られた

php

phpMyAdminにログインできなかったのは、こいつが原因だったみたい。 セッションファイル保存するフォルダのグループがrootになっとる # ls -l /var/lib/php drwxrwx--- 2 root root サイズ 日時 session グループ変更で事なきを得ました # chgrp apache /va…