スキップしてメイン コンテンツに移動

投稿

4月, 2009の投稿を表示しています

Modokiの開発で思った事。

結論から言うと、JavaScriptとCSSがあればかなりやりたい事が出来るようになりましたねーって話。 今、TwitterのWebベースのクライアントを作っているんですが、画像なし&サーバサイド技術ゼロで作っています。 そもそも、Webでサービス展開してるTwitterのクライアントをWebベースで開発するとかどんだけお前はアホなんだみたいに突っ込まれる事間違いなしなのですが、ともあれ色々作っています。 インスパイアを受けたのはTweenというTwitter専用クライアントなのですが、どうやら僕の環境の問題らしく結構、変なタイミングでメモリエラー吐いて落ちるんですね。 共有メモリのロックに失敗したとかどーのこーの。これだから.NETは……。 #つーか、そろそろ環境再構築しろ、俺 閑話休題。 Tweenめっちゃ便利なんですよ。 クライアントとしての完成度は非常に高いです。 キーボードショートカットとかもうキュンキュンするし、タブ機能とか未読管理機能とかもう至れり尽くせり。 ここまでされちゃうと後はもうやる事無いんじゃない? みたいな感じになっちゃうんですが、先にあげたように自分の環境ではエラー吐きまくる。 後は結構メモリ食うんですよ、Tween。 そりゃ、メモリなんて最近安くなったし、がんがん使っても問題ないくらい積んでいますけど、使っている人が馬鹿だから、Operaで100~200タブくらい常時開いているので、当然ながらメモリもがっつり食われているわけでして(Operaが2G消費とかザラ)、なるべくOperaにメモリを割り振りたいんですよ。 「それ、Operaで実現すればよくね?」みたいに考えて、Tween Modokiってのを作り始めました。 まず、一番重要なのはキーボードショートカット。 Tweenがとても気持ちよく使えるのは、キーボードによる全面的な操作。 もうこれが気持ちよくて気持ちよくて。 ってことで、documentのkeypressイベントにaddEventListenerするいつものパターン的なコードで実現。 後はTimeLine(以下、TL)の表示。Tweenは色とテキストデコレーションでTLを表現しているので、TwicliとかTwitterの表現よりずっと分かりやすいと思っています。 って事でゴリゴリそれっぽい表現をしたのですが、ここで活躍す

偽術者として

以前から何度か書いているように、僕は技術者と呼ぶにはおこがましい程度の能力の持ち主です。 世間一般から見ると相当なコンピュータオタク=Geekに見えるらしいのですが、残念ながらGeekと呼ばれる方々とは天と地の差があるほど僕の能力は低能力です。 弁解するのが面倒なので、特に説明していませんけどね。 偽術者って書くくらいなので、それなりの技術は持っていますが、間違いなく本物ではない。 自分で考えたコードなんて皆無です。 ま、それは僕が今までこのページで公開してきたUserJSとか見ると分かるとおりですね(笑) コピペの嵐で本当にレベルの低さを露呈している訳ですが、ま、それはそれでいいやと最近思うようにしました。 変に気にしてもしょうがないし、気にしたところで何が改善するのかって訳でもないし。 本物の技術屋さんだったら、その辺キチンと考えるんだろうけど、残念ながら僕は偽術者なので、キチンと考えません。 色々とごめんなさい。 生きててごめんなさい。 そんな軽い鬱(それでもテンションはアッパーだけど)状態でお送りしました。 さあて、今日もいっぱい嘘コード書くぞー!

IT業界(web系)の人間だけど、非常識

元ネタは 増田 。 ・HTML、CSSを理解している。無料ブログのテンプレートぐらいなら2時間程度で3つは作れるか →無理ぽです。2時間で1つ作れるかどうかも怪しいです>< ・携帯サイトの運営経験。テンプレートも作れるか →運営経験ありません>< テンプレートも作れません>< ・1万ヒット/日 程度のサイトなら簡単に作れるか →無理ぽです。このブログだってせいぜい80ヒット/日です>< ・オフ会はよく行く。年10回は行く →ミステリアスあーくって呼ばれていませんが、オフには滅多に行きません>< ・私生活はアクティブ。ネットでは喪男・喪女を演じても実際はリア充 →私生活もディアクティブです。絵に描いたような非リアです>< ・ヨイショができる。twitterの馴れ合いなど、本音を隠して一応こなせる →ヨイショなんて無理です。twitterでも本気で馴れ合います>< 本音なんて隠せません>< ・SBM、RSSを使いこなせている。自信をもってそう言える →SBMはLDCとdeliciousしか使っていません>< RSSはLDRとFastladderとGoogleReaderとOperaのRSSリーダーしか使っていません>< 使いこなせていません>< ・ブログを書いている。常に自分の考えを発信できている →ブログ書いていますが、自分の考えは発信できていません>< ほとんどどこかのコピペ(ソースコード的な意味で)です>< コピペじゃないのは大体痛い言葉です>< ・エロサイト、エログの運営経験。このジャンルを運営するか否かで大違い →経験皆無です>< ・サーバー、独自ドメインの運用経験。序にMT、WPくらいは使えて欲しい →独自ドメインもサーバも運用経験ありますが、超微妙です>< MTもWPも使った事ありません>< ・mixi他SNSでのコミュニティ経験。コミュ主になったことがあるか →SNSは登録した後特に積極的に活動していません>< コミュ主ってなんですか>< ・掲示板、BBSの運用。2ちゃんねるにスレッドを立てたことあるか →掲示板、BBSの運用はした事がありません>< 2ちゃんねるには割と舵スレ立ててます>< ごめんなさい>< 最後に 全部ネタだぜ? エロサイトだけは本当で後は割りと嘘。

Outputz for opera iframe ver

Outputz for operaのiframe verを作成しました。 githubにてけとーにうpしたので、欲しい方はどうぞ。 http://github.com/ArcCosine/userscript/blob/80b38473487b1433aa6786706561eb3473e7999f/outputz_for_opera_iframe_ver.user.js Opera10で動作確認してるけど、多分Opera9.X系でも動くと思います。 実験してないから分かりません。 元ネタはmallowlabさんのUserJSです。 基本的にはmallowlabさんのUserJSで問題ないと思いますが、僕みたいにOpera10を使っていてなぜかpostMessage効かなくてイライラしていた人にお勧め。 居ないか……orz

またニコニコ動画見てる for iframe version

またニコニコ動画見てるのiframeバージョンというか、昨日作ったコードを俺俺から単発で抜き取った感じです。はい。 こちらで公開してます ライセンスはPublic Domainです。 無保証。Own your risk. コードはこんな感じ。 追記 一部コード差し替えました。 // ==UserScript== // @name mata nico watch // @namespace http://looxu.blogspot.com/ // @include http://www.nicovideo.jp/watch/* // @author Arc Cosine // @version 1.0 // ==/UserScript== // License Public Domain (function(){ var MataNico = { send : function(){ var bg = document.getElementById('mata_nico').style.backgroundColor; if( bg == "#fc9988" ){ return; } var text = document.getElementById('mata_nico').value; text = (text.length>60) ? text.substring(0,60) : text; text = (text.length == 0) ? text : '「' + text + '」'; var iframe = document.createElement('iframe'); iframe.name = 'mata_nico_miteru'; iframe.style.display = 'none'; var url = 'http://twitter.com/statuses/update.xml?status=ま

またニコニコ動画見てる機能とかいろいろ追加。

俺俺ニコニコ動画用UserJSになにやら色々くっつけた。 スペースキーを押すとキーボード操作できるようになります。 miya2000さんが書かれたコードをぱく(ry あと、またニコニコ動画見てる機能も追加。 灰色っぽいところにコメントを書くとコメント付きでPost出来ます。多分。 無保証です。おうんゆありすく。 投稿が終わると文字入力を受付なくなるけどまあ、いいよね。 // ==UserScript== // @name nico description // @namespace http://looxu.blogspot.com/ // @include http://www.nicovideo.jp/watch/* // @author Arc Cosine // @version 1.5 // ==/UserScript== (function(){ /** simple version of $X * $X(exp); * $X(exp, context); * @source http://gist.github.com/3242.txt */ var $X = function (exp, context) { context || (context = document); var expr = (context.ownerDocument || context).createExpression(exp, function (prefix) { return document.createNSResolver(context.documentElement || context).lookupNamespaceURI(prefix) || context.namespaceURI || document.documentElement.namespaceURI || ""; }); var result = expr.evaluate(context, XPathResult.ANY_TYPE, null); switch (resu

広告の色を変えてみた。

妙に広告が浮いていたので、変えてみた。 自然になじんだような気がしてやっぱり微妙に浮いている感じがするのはACさんのセンスだね! #嫌なセンスだなぁ、オイ ま、Operaユーザなら迷わず広告ブロック使っているだろうから、全然関係無い話だけどね……orz

恋愛とか

恋愛は結構好きな方というか、とても惚れっぽい体質です。 ですが、一方的に惚れて一方的に見切りをつけるという宮○一郎顔負けのGUN&RUNを実現しています。 してねーよ。 ま、それはともかく。 おにゃのこ結構簡単に好きになっちゃいますねー、僕は。 本質的に女性が好きなんだと思う。 ふつーの人よりもそれが強すぎて結構困った事になる事もしばしば。 (ま、博愛主義者だしね) その原因としては恋愛なのか、親愛なのかその辺の区別がキチンとついていないからじゃねーかーとか勝手に想像つけてます。 んで、好きで好きでどうしょうもないかどうかを2~3ヶ月試してそれからようやく行動開始みたいなそんな保守的な人です。 で、今まで実際に行動したのは実に5回。5回中2回は成功したと思う。 もっとも、成功した後破局みたいな楽しい状態なので、ああああああああああああああああああああああああああああっっっ!!! ぜぇ、はぁ、ぜぇ、はぁ。い、いや、いいんですよ、恋愛なんかいくら失敗したって。 人間の価値は恋愛が上手いか下手かとか関係無いからね。 明らかに僕は恋愛下手だし、自分の感情に任せて突っ走ると大変な事になるのを良く分かっているので、相当にブレーキを踏まないと駄目。 なので、GUN&RUNは僕にとってはとても大切。 近寄らず、遠からずの距離感をキープしないととてもじゃないけれどコントロールできません。 もう少し若くて物分りが悪ければその辺でもっと踏み込んで別の道が開けたんだろうけど、もう年を取りすぎてしまったし、物の理が分からないほど馬鹿じゃないし(ある意味馬鹿だけど)、何より過去の傷が全然癒えていないからね。 このエントリ書いていて思い出したんだけど、、アタックした子全員のイニシャルにMが含まれていたのは公然の秘密。 別に名前で選んでる訳ではないんだけどね、Mが苗字or名前の先頭に含まれる子が最終的に候補に残るみたい。おっかしいなぁ。 本人的には全然そんな事意識してないんだけどね。 今現在僕の心にときめきを与えてくれる彼女のイニシャルにもMが含まれている。 うーーーーーん、これは偶然であって欲しいなぁ。 偶然と嘘とネタと戯言と詭弁と必然と自然と泰然が綯い交ぜになっているので、このエントリを頭から全部信じちゃ駄目だよ。 では♪

Gitメモ

GitHubへ久々にOpera Keyboardをpushしようとしたら、以下のようなエラーが出た。 error: failed to push some refs to 'git@github.com:ArcCosine/operakeyboard.git' 環境はmsysGit。git push origin masterとコマンドするとエラーが出た。 良く分からなかったけど、ぐぐる先生は--forceオプションつけれって言ってたから、つけてpushしたら成功した。 git push origin master --force 追記 なんか結局上手くpushできてなかった。つーか、コミットが失敗してた。 あっれー?

僕がIEを毛嫌いする理由

IEつまり、(Windows|Microsoft) Intenet Explorerですが、これを僕が毛嫌いしているのは、ついったら&おぺらー&くりっぱーの間では周知の事実です。 このブログの熱心ではない読者も、いくつかの(酷い)記事を読むと、僕が異常なまでにIEを嫌っているのが分かると思います。 なんで、IEが嫌いなのか。 僕は一応Web関連の仕事をしています。 Web関連をお仕事にしている人の99%はクロスブラウザ対策に頭を悩ませた事があるはずです。 もし、無いというならば、その人は幸せなお仕事をしていると信じて良いでしょう。 Web標準のCSSやJavascriptを使って完成させたWebページをIE対応させるためには、ページを作成したのとほぼ同程度の労力がかかります。 (僕に技術力が無いというのを差し引いても、IE対応には時間がかかると思います) IEは(一応)最大勢力のブラウザですので、見れるように対応しなければいけないのですが、余りにもHTMLやCSSの独自解釈が多すぎて嫌になります。 僕がIEを嫌いな最大の理由はそれ、つまりWeb標準に対応していないという点です。 Webの事を良く知らない人の大多数は所詮ブラウザなので、Web標準準拠なんてしなくても良いんじゃないかと考えるかもしれませんが、そのせいでどれだけの人が血を吐いているのか知って欲しいと思います。 ざまあwwwって思う人もいるかもしれませんが、それはそれ。 だって、それで飯食っている訳ですから、文句を垂れ流しつつもキチンと対応するのがプロってもんです。 どんなに酷いIEのバグがあったとしても、気合と根性と専用コードで乗り切ります。 (専用コードを書くあたりが偽術者っぽいですよね。本物は、共通コードだけで対応する) IE対応を考えないと、単純に労力が1/2になる上、IEでは表現できない事が表現できるようになるんです。 IEのせいで表現できない不自由に苦痛を感じます。 ただ、IEのおかげでそれまで表現できなかった事が表現できるようになったという歴史もまた事実です。 ですから、IEが全て悪い訳じゃないんです。IEの功績は事実ですし、素晴らしいものです。 同時に、IEの功罪もまた事実ですし、今に至るまでそれは引きずられています。 一部の人は勘違いしているようですが、僕はIEを嫌っていますし、I

ふぁぼったのステータスページにふぁぼりすたー(?)を追加するuserscript書いた。

Twitterでたまにふぁぼったのステータス画面へのリンクが張られるのですが、そこからすぐふぁぼりたい時があるじゃないですか。 ユーザページとトップページにはすぐにふぁぼるためのふぁぼりすたー(?)があるのですが、ステータス画面ではない。 なので、それを表示するuserscriptを書いて、codereposへうpしました。 http://coderepos.org/share/browser/lang/javascript/userscripts/favotter_star.user.js 追記 CodeReposだとインストールしにくいんだよ、F*ck!という天の声が聞こえたので、Userscripts.orgにもアップしておきました。 http://userscripts.org/scripts/show/46655 Firefox3とOpera10で確認済。変なコードは書いていないので、IEとかいう駄目ブラウザ以外では大抵動くと思う。 ちなみに、ふぁぼりすたー(?)をクリックするとBasic認証ダイアログが出ますので、自分のIDとパスワードを入力してください。 これはTwitterの仕様なので仕方が無いですね。 お前クローキングしてねーだろーなーと疑われる方は下のソースコードをじっくり眺めてください。 // ==UserScript== // @name favotter star // @namespace http://looxu.blogspot.com/ // @description fav on favotter status page // @include http://favotter.matope.com/status* // @author Arc Cosine // @version 1.0 // ==/UserScript== // License : Public Domain (function(){ var d = document; var fav = { _url_full : 'url("http://favotter.matope.com/icon_star_full.gif&

ネタですよ

ぜのさんのブログを読んでふと思いついて書いてみた。 Browser.js 「無断リンク禁止」問題についてちょっと本気だして考えてみた http://browserjs.blog102.fc2.com/blog-entry-947.html 無断リンク禁止がイヤーって人は以下のブックマークレットを使えばいいじゃない。 javascript:(function(){ var t=document.body.innerHTML; document.body.innerHTML = t.replace(/(無断|無断で|承諾なく)リンク|禁止/g, "" ); })(); 偽術者思考ばんじゃい<アホか

酔いながら書く!

今、ACさんは相当に酔ってます。この文字列もまともに追えません。 ってことで、この文章は相当に真実です。 rancorcoolさんとkotaro_wizardさんの文書はマジで価値があります。 最低限でもACという駄目人間は胸キュンしながらwktkしながら次のPostを待っています。 それくらい素晴らしい文章をPostされています。 ACさんの文書の価値はゼロでも二人の文章は無限大です。 それくらい、素晴らしいです。 ごめん、説得力ないね。酔いに任せたPostって事で。 削除するなよ>俺。

Mitterツールバー無くても自動保存したいぢゃない

つーことで、変なコード書いた。 Mitter kbd rating changerに機能を追加した。 リクエストパラメタにautoclose=trueがあったらレーティング/コメント無しで保存できるようにした。 後は俺俺ニコニコ動画UserJSのpopupのURLの所にautoclose=trueを追加してポップアップウインドウを出すようにすれば完璧っ! ナニを言っているか分からないって? コード見てね(^^;;; // ==UserScript== // @name Mitter kbd rating changer // @namespace http://d.hatena.ne.jp/janus_wel/ // @description change video rating in Mitter with keyboard operation // @include http://mitter.jp/*/videos // @include http://mitter.jp/bookmarklet/* // ==/UserScript== ( function () { const imgPath = '/images/rating/edit/'; const ext = '.gif'; const max = 5; const min = 0; const doc = window.content.document; doc.addEventListener( 'keypress', function (event) { switch (event.which) { case 119: // w if (doc.activeElement.localName !== 'INPUT') { event.preventDefault(); raiseRating();} break; case 113: // q if (doc.activeElement.

俺俺ニコニコ動画UserJSをさらに改造

なんだか色々実験的なことをしています。 Operaでしか動作確認していませんが、多分FirefoxやChromeでも動くと思う。 追記 FirefoxとGoogleChromeでも動いたのを確認しますた。 // ==UserScript== // @name nico description // @namespace http://looxu.blogspot.com/ // @include http://www.nicovideo.jp/watch/* // @author Arc Cosine // @version 1.3 // ==/UserScript== (function(){ /** simple version of $X * $X(exp); * $X(exp, context); * @source http://gist.github.com/3242.txt */ var $X = function (exp, context) { context || (context = document); var expr = (context.ownerDocument || context).createExpression(exp, function (prefix) { return document.createNSResolver(context.documentElement || context).lookupNamespaceURI(prefix) || context.namespaceURI || document.documentElement.namespaceURI || ""; }); var result = expr.evaluate(context, XPathResult.ANY_TYPE, null); switch (result.resultType) { case XPathResult.STRING_TYPE : return result.stringValue;

俺俺ニコニコ動画UserJSとUserCSS

ニコ動の仕様が変わったので、以前に公開したUserJSとUserCSSをちょろっと変更。 いや、あんま変わってないけどさぁ。 UserJS // ==UserScript== // @name nico description // @namespace http://looxu.blogspot.com/ // @include http://www.nicovideo.jp/watch/* // @author Arc Cosine // @version 1.2 // ==/UserScript== (function(){ /** simple version of $X * $X(exp); * $X(exp, context); * @source http://gist.github.com/3242.txt */ var $X = function (exp, context) { context || (context = document); var expr = (context.ownerDocument || context).createExpression(exp, function (prefix) { return document.createNSResolver(context.documentElement || context).lookupNamespaceURI(prefix) || context.namespaceURI || document.documentElement.namespaceURI || ""; }); var result = expr.evaluate(context, XPathResult.ANY_TYPE, null); switch (result.resultType) { case XPathResult.STRING_TYPE : return result.stringValue; case XPathResult.NUMB

さてさて

偽術者である僕としましては、4月1日ですので本当の事を書くのが一番嘘っぽくなるんじゃないかなぁと思いまして、それっぽく書きたいと思います。 ・開発の傾向  IDEが大嫌いなタイプです。エディタでゴリゴリコードを書いていくタイプです。  IDEは確かに便利なんですけど、重いのが嫌という非常に我侭な考えの持ち主。  なので、開発はエディタ+コンパイラ(orブラウザ)みたいな傾向が強いです。  メインのエディタはVimですが、サブとしてサクラエディタを愛用しています。  サクラエディタはVimではもたつくものすごく大きなデータを開くときに便利です。  Vimは高機能ですが、少しメモリを食いすぎですね。Firefoxよりはずっとマシですけれど。 ・経歴  高専という非常にアレゲな学校を卒業した後、某中小企業にもぐりこみ、某都市銀行の中のシステム開発に携わっていました。  当時はオープン系システムの開発でしたので、VBがメインでしたし、ほとんどコードを書いていませんでした。  いわゆる社内SEと呼ばれるものですね、やってたのは。社内SEの受託開発ってなんかとっても……。  そこで四年ほど働き辞めました、自己都合で。  もっとコードが書きたかったものでして……。  そして、二社目ではゴリゴリコードを書く仕事をしてましたが、やっぱり自己都合で辞めました。  二社目もやはり中小企業と呼ばれるものでしたが、大変素晴らしい会社で、常識的に考えたら辞めるのは馬鹿の極みかと。  ま、自分にとってやりたい事を優先させる人生を歩んでいますので仕方がありません。  んで、このお馬鹿さんは個人事業主として税務署に届けをして、晴れてフリープログラマーへと成り下がりました。  今はpopInというベンチャー企業にてアルバイトしつつ、自分の開発鯖でなにやら変なものを作っている最中です。  FirefoxおよびIEユーザ様、popInというアドオンがありますので、是非ご利用ください。  IE8で搭載された Webスライス アクセラレータ(4/4訂正) を 遥かに凌駕する アドオンです。  IE6でも、IE7でも、IE8でも動きますので、是非是非導入してみてください。   http://popin.cc/ja/home.html ・思想  基本的に人間に対しては博愛主義者です。そして、プログラムに対