はてなキーワード: profileとは
本当に読んだのか?
This means when a user clicks a Like button on your page, a connection is made between your page and the user. Your page will appear in the "Likes and Interests" section of the user's profile, and you have the ability to publish updates to the user.
これの意味分かる?
つまりFacebookにおいて、"like"は"likes and interests"だってことだよ。
しかし英語を「ざっと読む」のって、相当の英語力が無いと無理な芸当だと思うけど、増田はどういうバックグラウンドの人なんだろう。
やー。面倒でした。
古い情報だと Outlook Express を経由しろと書いてあるので、後継であるらしいWindows Live Mail を経由して(Windows Live Mail からエクスポートする方法で)
Outlook に移行したのだが、どういうわけか宛名が文字列として移行されてしまい、xxx@example.com というメールアドレスの移行ができなかったんです。
で eml → msg もしくは pst 形式への変換ソフトを探すのですが、無料のものが見つからなくてあんまり情報もありませんでした。が、ありましたよ!お兄さん。
====
MAPI data collection and parsing tool. Supports property tag lookup, error translation, smart view processing, rule tables, ACL tables, contents tables, and MAPI<->MIME conversion. MrMAPI currently knows: 3916 property tags 801 dispids 35 types 58 guids 148 errors 27 smart view parsers Usage: MrMAPI -? MrMAPI [-Search] [-Dispids] [-Number] [-Type <type>] <property number>|<property name> MrMAPI -Guids MrMAPI -Error <error> MrMAPI -ParserType <type> -Input <input file> [-Binary] [-Output <output file>] MrMAPI -Flag <flag value> [-Dispids] [-Number] <property number>|<property name> MrMAPI -Rules [-Profile <profile>] [-Folder <folder>] MrMAPI -Acl [-Profile <profile>] [-Folder <folder>] MrMAPI [-Contents | -HiddenContents] [-Profile <profile>] [-Folder <folder>] [-Output <output directory>] [-Subject <subject>] [-MessageClass <message class>] [-MSG] [-List] MrMAPI -ChildFolders [-Profile <profile>] [-Folder <folder>] MrMAPI -XML -Input <path to input file> -Output <path to output file> MrMAPI -FID [fid] [-MID [mid]] [-Profile <profile>] MrMAPI -MAPI | -MIME -Input <path to input file> -Output <path to output file> [-CCSFFlags <conversion flags>] [-RFC822] [-Wrap <Decimal number of characters>] [-Encoding <Decimal number indicating encoding>] [-AddressBook] [-Unicode] [-Charset CodePage CharSetType CharSetApplyType] All switches may be shortened if the intended switch is unambiguous. For example, -T may be used instead of -Type. Help: -? Display expanded help. Property Tag Lookup: -S (or -Search) Perform substring search. With no parameters prints all known properties. -D (or -Dispids) Search dispids. -N (or -Number) Number is in decimal. Ignored for non-numbers. -T (or -Type) Print information on specified type. With no parameters prints list of known types. When combined with -S, restrict output to given type. -G (or -Guids) Display list of known guids. Flag Lookup: -Fl (or -Flag) Look up flags for specified property. May be combined with -D and -N switches, but all flag values must be in hex. Error Parsing: -E (or -Error) Map an error code to its name and vice versa. May be combined with -S and -N switches. Smart View Parsing: -P (or -ParserType) Parser type (number). See list below for supported parsers. -B (or -Binary) Input file is binary. Default is hex encoded text. Rules Table: -R (or -Rules) Output rules table. Profile optional. ACL Table: -A (or -Acl) Output ACL table. Profile optional. Contents Table: -C (or -Contents) Output contents table. May be combined with -H. Profile optional. -H (or -HiddenContents) Output associated contents table. May be combined with -C. Profile optional -Su (or -Subject) Subject of messages to output. -Me (or -MessageClass) Message class of messages to output. -Ms (or -MSG) Output as .MSG instead of XML. -L (or -List) List details to screen and do not output files. Child Folders: -Chi (or -ChildFolders) Display child folders of selected folder. MSG File Properties -X (or -XML) Output properties of an MSG file as XML. MID/FID Lookup -Fi (or -FID) Folder ID (FID) to search for. If -FID is specified without a FID, search/display all folders -Mid (or -MID) Message ID (MID) to search for. If -MID is specified without a MID, display all messages in folders specified by the FID parameter. MAPI <-> MIME Conversion: -Ma (or -MAPI) Convert an EML file to MAPI format (MSG file). -Mi (or -MIME) Convert an MSG file to MIME format (EML file). -I (or -Input) Indicates the input file for conversion, either a MIME-formatted EML file or an MSG file. -O (or -Output) Indicates the output file for the convertion. -Cc (or -CCSFFlags) Indicates specific flags to pass to the converter. Available values (these may be OR'ed together): MIME -> MAPI: CCSF_SMTP: 0x02 CCSF_INCLUDE_BCC: 0x20 CCSF_USE_RTF: 0x80 MAPI -> MIME: CCSF_NOHEADERS: 0x0004 CCSF_USE_TNEF: 0x0010 CCSF_8BITHEADERS: 0x0040 CCSF_PLAIN_TEXT_ONLY: 0x1000 CCSF_NO_MSGID: 0x4000 CCSF_EMBEDDED_MESSAGE: 0x8000 -Rf (or -RFC822) (MAPI->MIME only) Indicates the EML should be generated in RFC822 format. If not present, RFC1521 is used instead. -W (or -Wrap) (MAPI->MIME only) Indicates the maximum number of characters in each line in the generated EML. Default value is 74. A value of 0 indicates no wrapping. -En (or -Encoding) (MAPI->MIME only) Indicates the encoding type to use. Supported values are: 1 - Base64 2 - UUENCODE 3 - Quoted-Printable 4 - 7bit (DEFAULT) 5 - 8bit -Ad (or -AddressBook) Pass MAPI Address Book into converter. Profile optional. -U (or -Unicode) (MIME->MAPI only) The resulting MSG file should be unicode. -Ch (or -Charset) (MIME->MAPI only) Character set - three required parameters: CodePage - common values (others supported) 1252 - CP_USASCII - Indicates the USASCII character set, Windows code page 1252 1200 - CP_UNICODE - Indicates the Unicode character set, Windows code page 1200 50932 - CP_JAUTODETECT - Indicates Japanese auto-detect (50932) 50949 - CP_KAUTODETECT - Indicates Korean auto-detect (50949) 50221 - CP_ISO2022JPESC - Indicates the Internet character set ISO-2022-JP-ESC 50222 - CP_ISO2022JPSIO - Indicates the Internet character set ISO-2022-JP-SIO CharSetType - supported values (see CHARSETTYPE) 0 - CHARSET_BODY 1 - CHARSET_HEADER 2 - CHARSET_WEB CharSetApplyType - supported values (see CSETAPPLYTYPE) 0 - CSET_APPLY_UNTAGGED 1 - CSET_APPLY_ALL 2 - CSET_APPLY_TAG_ALL Universal Options: -I (or -Input) Input file. -O (or -Output) Output file or directory. -F (or -Folder) Folder to scan. Default is Inbox. See list below for supported folders. Folders may also be specified by path: "Top of Information Store\Calendar" Path may be preceeded by entry IDs for special folders using @ notation: "@PR_IPM_SUBTREE_ENTRYID\Calendar" MrMAPI's special folder constants may also be used: "@12\Calendar" "@1" -Pr (or -Profile) Profile for MAPILogonEx. -M (or -MoreProperties) More properties. Tries harder to get stream properties. May take longer. -No (or -NoAddins) No Addins. Don't load any add-ins. -On (or -Online) Online mode. Bypass cached mode. -V (or -Verbose) Verbose. Turn on all debug output. Smart View Parsers: 1 Additional Ren Entry IDs Ex 2 Appointment Recurrence Pattern 3 Conversation Index 4 Entry Id 5 Entry List 6 Extended Folder Flags 7 Extended Rule Condition 8 Flat Entry List 9 Folder User Fields Stream 10 Global Object Id 11 Property 12 Property Definition Stream 13 Recipient Row Stream 14 Recurrence Pattern 15 Report Tag 16 Restriction 17 Rule Condition 18 Search Folder Definition 19 Security Descriptor 20 SID 21 Task Assigners 22 Time Zone 23 Time Zone Definition 24 Web View Persistence Object Stream 25 Nickname Cache 26 Encode Entry ID 27 Decode Entry ID Folders: 1 Calendar 2 Contacts 3 Journal 4 Notes 5 Tasks 6 Reminders 7 Drafts 8 Sent Items 9 Outbox 10 Deleted Items 11 Finder 12 IPM_SUBTREE 13 Inbox 14 Local Freebusy 15 Conflicts 16 Sync Issues 17 Local Failures 18 Server Failures 19 Junk E-mail Examples: MrMAPI PR_DISPLAY_NAME MrMAPI 0x3001001e MrMAPI 3001001e MrMAPI 3001 MrMAPI -n 12289 MrMAPI -t PT_LONG MrMAPI -t 3102 MrMAPI -t MrMAPI -s display MrMAPI -s display -t PT_LONG MrMAPI -t 102 -s display MrMAPI -d dispidReminderTime MrMAPI -d 0x8502 MrMAPI -d -s reminder MrMAPI -d -n 34050 MrMAPI -p 17 -i webview.txt -o parsed.txt
・コメントが3行なのを一行に戻す。
・コメントがない行を消す
.nocomment{display:none;}
.bookmark-list span.comment { display: inline; }
.bookmark-list img.profile-image { width:18px; height:18px; }
■参考
http://hatena.g.hatena.ne.jp/hatenabookmark/20110405/1301981564
http://hibari.2ch.net/test/read.cgi/esite/1300432939/23-26
23 :名無しさん@お腹いっぱい。:2011/04/06(水) 11:48:38.71
/*サイドバー非表示*/
#container .curvebox-body { padding:20px; }
#sidebar { display:none; }
.bookmark-list li { padding-left: 20px; }
.bookmark-list img.profile-image { width:18px; height:18px; }
.bookmark-list span.comment { display: inline; }
/*ブクマ用フォーム非表示*/
#add-bookmark-container { display:none; }
/*人気コメント非表示*/
#scored-bokkmarks { display:none; }
https://gist.github.com/903132 を組み合わせて
ブクマ追加は[B!]アイコンからにするとこれまでに近い表示に。
26 :名無しさん@お腹いっぱい。:2011/04/06(水) 11:59:27.60
#scored-bookmarks { display:none; }
http://b.hatena.ne.jp/entry/hatena.g.hatena.ne.jp/hatenabookmark/20110405/1301981564
https://addons.mozilla.org/ja/firefox/addon/stylish/
見た目だけ変えてみたぞ。
あんまりいいもんじゃないと思うけど、サイドバーがなくなったらどんな感じになるか体験してみるといいんじゃないかな。
まあどんなもんかやってみて。叩き台、印象の変化の確認。
あとおまけでスター順の部分は消しておいた。#scored-bookmarksってあるだろ、そこじゃ。
@namespace url(http://www.w3.org/1999/xhtml); @-moz-document url-prefix("http://b.hatena.ne.jp/entry/") { #container .curvebox-body { padding-right:20px !important; } #main, #sidebar { width:100% !important; float:none !important; } #sidebar { margin-left:0 !important; } #scored-bookmarks{ display:none !important; } }
http://b.hatena.ne.jp/entry/lifehack2ch.livedoor.biz/archives/51229298.html
うりゃ!
@namespace url(http://www.w3.org/1999/xhtml); @-moz-document url-prefix("http://b.hatena.ne.jp/entry/") { #container .curvebox-body { padding-right:20px !important; } #main, #sidebar { width:100% !important; float:none !important; } #sidebar { margin-left:0 !important; } #scored-bookmarks{ display:none !important; } .comment { display:inline !important; } .bookmark-list .profile-image { width:16px!important; height:16px!important; margin-left:-24px!important; } .user-navigator.user-navigator-large { width:34px!important; height:20px!important; } .bookmark-list li {padding-left:32px!important;} }
Wikiが用意されたので、そちらにコピーしました。 http://code.google.com/p/hack4jp/wiki/HowToJoinHack4JpForJp
3/21現在、被災者支援のためのサービスを開発するためのオンラインイベント“Hack For Japan”が開催中です。
しかし、特にGoogle Waveの操作が難しいので、「Hack For Japan への参加方法」もあわせて私が分かった範囲で、まとめてみました。
したがって、いろいろと文章が足りてないと思いますので、コピペして改定していってください。
今日は自分の作業があって手伝えないですが、より多くの人に参加してもらいたいと思っています。
※Googleアカウントの認証確認画面が出る場合は、認証してから、もう一度Google Wave のリンクをクリック。
右上に「anonymous@a.gwave.com」と表示されている場合は、真ん中にあるSign Inをクリック。
「Google Wave 3日目」は、現在、大変重いです。
「ちょっと、Waveを操作するの厳しいな」と思う場合、「Google Moderator 」での投票を手伝ったり、
Twitter のハッシュタグ: #hack4jp を追っていると何かできることが出てくるかも。
■追記■IRC freenode #hack4jp もできました。
以下のサイトを参照
linker journal : そろそろGoogle Waveについて書いてみる。
http://linker.in/journal/2009/11/google-wave1.php
ひとまず、発言のことをBlipと言っていて、それに対してReplyやEditができる。人が書いたものもEdit可能ということ(実際に編集するときは要注意)を覚えれば大丈夫。
Replyは適宜、UI上で水色に表示される「Indent Reply」を行ったほうが見やすい。自分の発言の削除は、クリックして「Delete」を選択する。
左WindowでAllを選択すると、中央Windowに「Profile」の項目が表示される。
これを選択して、編集する。
右Window(Wave)の上の方のメニューで、一通りのことができる。
一番右の…を押すと、省略されている項目も表示される。
Waveの上の方のメニューの「Inbox」を押す。
左Windowの「Inbox」を押せば、中央Windowに表示される。
Waveの右下に未読(Unread)数が表示される。
ここをクリックすることで、未読の発言(Blip)に飛ぶ。
中央Windowには、未読(Unread)数と総数が表示される。
中央Windowの「New Wave」の横に「with:public」と入力して確定すると、
※「tag:hack4jp」の場合は、「hack4jp」のタグがついているものになる(13:26追記)
※ 左WindowでAllを選んでおく必要があるかも(14:00追記)
以下を参照。
(obsolete) Google Waveの使い方まとめ (Public)
https://wave.google.com/wave/waveref/googlewave.com/w+Q_RzOoZOA
・公開設定
Contactsnの+ボタンから "public@a.gwave.com" という仮想ユーザーを付け加える
・タグの設定
Waveの一番下のTags:の横のボタンを押して、"hack4jp"などを入力してエンター。
その他、必要なタグを付け加える。
Waveの上の方のメニューの「Link to wave」を押すと、URLを参照できる。
このURLを、皆に知らせる
1 :名無しさん:2009/02/11(水) 23:38:25 ID:???
2 :thunder:2009/02/12(木) 00:45:53 ID:???
お疲れ様です。
3 :名無しさん:2009/02/13(金) 19:00:06 ID:???
>件の人は、この子の警察への出頭を望んでいるわけですか。
この子のリンク先は、既に閉鎖されている「ザ掲示板」の「さちスレ」。
ttp://xfumo.dot.thebbs.jp/1077956484.e40
よくもまあ、4年以上も前のモノを引っ張り出して来るね。「さちスレ」でググるとヒットするけど、「前川祥子」だとトップ100には出てこない。
4 :thunder:2009/02/14(土) 11:37:23 ID:???
>>3
せっかくなので、新しいモノを教えてあげる書き込みをしておきました。
っていうか、
何で自分のことだと判断するのか…。
5 :名無しさん:2009/02/14(土) 12:43:59 ID:???
まだまだお掃除が行き届いてないようですね。
ttp://8727.teacup.com/yokosroom/prof
ttp://rss.rssad.jp/rss/rakutenblog/NDgwN2Y0OWZlOWY0YWQ_
6 :名無しさん:2009/02/14(土) 13:22:20 ID:???
>>5
ついったーは違う。完全な偽者。
>>4
うんこはその5W1Hって概念が完全に欠如しているのと、社会常識が皆無なのは昔から。
で、クラウザーさんの1秒間に100回レイプ発言みたいに「通報」「提訴」を繰り返す。
7 :名無しさん:2009/02/18(水) 01:07:57 ID:???
消される予定のコメント
ttp://s02.megalodon.jp/2009-0218-0106-40/tsukimitsu.exblog.jp/7961063/
8 :名無しさん:2009/02/18(水) 03:31:06 ID:???
>>7
あと何日後かには、現ブログ消滅&新ブログ開設っていう、以前のパターンが始まりそう(笑)
ブログの記事がワンパターンだから、すぐに新拠点もヲチャーズに見つかるんだろうけど。
9 :thunder:2009/02/19(木) 11:01:46 ID:???
ttp://tokai.machi.to/bbs/read.cgi/toukai/1199969290/782
某IPアドレスからの書き込みを発見!
書き込み時間帯などから、本人の可能性が高いが、
10 :thunder:2009/02/19(木) 11:14:58 ID:???
追記
このIPは、活動のなかった2/17に発見したIPなので、
うちのブログに、
某ブログから飛んできているだけなので、裏づけがなかったです。
11 :名無しさん:2009/02/19(木) 16:09:09 ID:???
速攻で削除されましたね。(10分~18分後位)
ttp://tsukimitsu.exblog.jp/7960617/
12 :名無しさん:2009/02/19(木) 21:08:38 ID:???
>>11
自己レス
↓削除される前の魚拓です。
ttp://s03.megalodon.jp/2009-0219-1557-45/tsukimitsu.exblog.jp/7960617/
13 :名無しさん:2009/02/19(木) 21:34:22 ID:???
本日のバカ代表
14 :thunder:2009/02/19(木) 22:40:57 ID:???
>>12
サンクス。
出先からだったので、魚拓助かります。
15 :名無しさん:2009/02/23(月) 17:37:43 ID:???
ttp://tsukimitsu.webspace.ne.jp/diary/tsukimitsu..1.13.html
>ところでメールアドレスがanniesdiary@excite.co.jpになってますがこれは月蜜さんのアドレスですか?
このコメントになんて答えるか?
(coyote氏の「どえらい問題」参照)
16 :名無しさん:2009/02/23(月) 18:47:56 ID:???
>>15
以前のはたしか「s」抜きの anniediary だったのでは?
確証としては弱いのではないだろうか。
17 :ゑ:2009/02/23(月) 19:21:40 ID:???
>>16
> coyoteさんよりブログでご指摘いただきました(と言ってもわたし個人宛ではありませんが)。
> ttp://blogs.yahoo.co.jp/coyote_fangs/50213087.html
> なるほど、anniesdiaryのID取得は'08/5月、またはもっと前ですか。わたしの日記においてもこのIDに関しては
> 記していなかったので、是非ともエキサイトからの回答は再びエントリにしていただきたく思います。どうもありがとうございました。
coyoteさんの記事中魚拓参照ですね。
ttp://s01.megalodon.jp/2008-0524-2010-40/anniediary.exblog.jp/8181102/
18 :名無しさん:2009/02/23(月) 19:40:27 ID:???
>>16
つぶろぐに関してはanniesdiaryで正しい。
ttp://cache.yahoofs.jp/search/cache?p=anniesdiary&ei=UTF-8&fr=moz2&rls=org.mozilla%3Aja-JP%3Aofficial&u=tsublog.excite.co.jp/topic/8270c00cddadf02ac06cfe530ef56031&w=anniesdiary&d=dWkqd52uSTUv&icp=1&.intl=jp
ブログのほうは確かにanniediary使ってるけどね。誰かが対抗策で場所抑えていたんだっけ。
ttp://s03.megalodon.jp/2008-0526-1016-06/anniediary.exblog.jp/8197175/
19 :ゑ:2009/02/23(月) 21:54:28 ID:???
ttp://ttnzz6c3-w.seesaa.net/article/114702453.html
◆ttNZZ6c3/wさん、GJですね!これでアカウントの件はファイナルアンサーでしょうか?
20 :名無しさん:2009/02/25(水) 00:09:31 ID:???
ttp://yokoku.in/detail?num=10355
予告.inに通報してみたw
21 :名無しさん:2009/02/25(水) 00:31:36 ID:???
何度見ても笑える
>社会に出る準備段階の私
25歳のセリフかよ…
22 :名無しさん:2009/02/27(金) 01:25:19 ID:???
210-1-154-172.catv.tees.ne.jp だった。
23 :thunder:2009/02/28(土) 17:07:56 ID:???
>>22
なにが!?
何かいい情報?
24 :名無しさん:2009/02/28(土) 18:12:56 ID:???
>>20の非公開コメントは活動時間帯から推測するに、teesユーザーなんだろうなw
そして本日で2月は終わり、スレは削除されていないことに対して明日以降、どういう動きがあるのか
25 :thunder:2009/03/01(日) 23:12:04 ID:???
>>24
すまんっす、おいらっす。
せっかく投稿してくれた方がいたので、当事者として言いたいことをコメントしました…。
恐らくteesユーザは、自分の範疇を越えるサイトにはコメントしないと思います。
26 :名無しさん:2009/03/02(月) 00:04:43 ID:???
>>25
そういうことなら、今後できる範囲で公開した方が同情票が集まると思いますよ。
投稿者は自分なので、例の「無断リンク云々」の頃の言い訳を追記しておきましたよ。
で、うんこの活動開始は明日っすかねー。拠点また変えるかもなw
27 :名無しさん:2009/03/02(月) 16:27:36 ID:???
今日の活動も
からか。
28 :thunder:2009/03/03(火) 23:01:13 ID:???
>>26
29 :名無しさん:2009/03/05(木) 14:07:32 ID:nn9wKR9E
「全削除=無かったこと」方程式w
ttp://tsukimitsu.webspace.ne.jp/diary/
30 :名無しさん:2009/03/05(木) 14:56:01 ID:???
>>29
> 謝罪の要求もしないことにしました。
これも、やるやる詐欺の常套手段w
できないくせに嘘ばっかつくなよ!
31 :名無しさん:2009/03/05(木) 15:42:37 ID:???
>>30
「どうせ、また、どっかで書き始める」と、多分、みんなが思っている。
>地元の友人からもメールを貰ったし、
32 :名無しさん:2009/03/05(木) 15:50:13 ID:???
コリッチに、ReWiz's、thunder、naniome2再び登録。
まんまtinycafeじゃん、どこが別人かと。
33 :名無しさん:2009/03/05(木) 16:08:12 ID:???
>>31
ttp://s04.megalodon.jp/2009-0305-1533-36/ameblo.jp/tsukimitsu/
>一日も早く誤解がとけ、謝罪がある事を今は祈るばかりです。
34 :名無しさん:2009/03/06(金) 11:01:10 ID:???
今日は10時45分頃から活動開始。
>他所で悪口書くために見ている人は、帰ってください。
見てから帰っても良いんだろうから、見たら帰るさw
35 :名無しさん:2009/03/06(金) 13:44:23 ID:???
>HNを晒し上げて、個人を特定して悪口を言うのは誹謗中傷です。
ttp://hidebbs.net/bbs/tsukimitsu
↑の「ブラックリスト」というのは、誹謗中傷にあたらないとでもいうつもりかな?
「ブラックリスト」という単語自体が、「注意・監視を必要とする人物の名前や住所などの一覧」の意味で通常は使われるという点からみて、「迷惑行為」のタイトルでリストにHNを掲載した時点で、うん子も同罪だと思うがw
相変わらずの「やるやる詐欺」
「別人だ」と主張している割には、やってることが全く同じなことに気付いてないんか?
36 :名無しさん:2009/03/06(金) 19:00:57 ID:???
あれだけバカだと生きるのが楽だろうなw
いつの間にかeiko1196氏=ゑの人という事実無根の記憶ロンダリングが出来上がっているとはw
eiko氏の更新停止については知らないが、少なくともゑの人はもういないんだよね
37 :名無しさん:2009/03/06(金) 19:51:55 ID:???
そもそもeiko1196は月蜜に関しては何も言及していないので、豊橋のあの子とは
別人だと主張する月蜜が触れること自体、また存在を知っていること自体がおかしい。
mixiを見ていれば、ゑとeikoが全くの別人であることは明白。
なりすましに徹するなら、もうちょっとその辺詰めていかないと。
あ、ヲチャじゃなくてアメーバの住人だけ欺ければいいのか。
38 :名無しさん:2009/03/07(土) 01:17:04 ID:???
本当に別人なら、あのYokoタソが黙っちゃいないだろ。
自分のヲチャ掲示板を荒らされたり、つぶろぐやBBSで晒されて
「私はこんな人とは違います!やる時はやるんです!」なんて侮辱的発言されたり。
無関係といいながら過去の悪事を掘り出すようなまねしたり...
マターリヲチャより、月蜜さんの方がよっぽど質悪いじゃん。
ま、同一人物なら何しようが文句言われないだろうけどさw
39 :名無しさん:2009/03/07(土) 19:55:36 ID:???
とりあえずヲチブログの人達はこりっちから潰したらどうだろうか?
ttp://blog.corich.jp/html/kiyaku.html
>(6) 禁止事項(法令違反行為)
>(8) 禁止事項(当サービス利用における違反行為)
>・ウェブページ管理者やその他関係者を含む第三者に対する嫌がらせを目的として、ウェブページを登録する行為
通報先はこちら
ttp://www.corich.jp/blogwatch/contact.php
40 :thunder:2009/03/07(土) 20:12:49 ID:???
>>39
41 :名無しさん:2009/03/08(日) 12:52:18 ID:???
まあ何だ。今までもそうだったように、本人や家族を相手にしてもプロの既知外なんだから、
いつまでもtinycafeプロレスは続いていくと思うんだな。
だから本気の人はプロに丸投げしちゃった方がいいと主張してみる。
プロのデータベースには社会問題を起こした/起こしそうな人物のリストもあるというし。
42 :名無しさん:2009/03/09(月) 10:13:08 ID:???
「自分の嘘や矛盾を暴かれる、都合の悪い事実の書き込み」=「迷惑な書き込み」。
HNや血液型まで偽って別人になりきろうとしても
結局やってることは変わんないんだよな。
43 :名無しさん:2009/03/11(水) 04:55:11 ID:???
クズが暴れるのは、勇者や一部ブロガーにとってはいい迷惑かもしれんけど、
はっきり意って、つまらん。
44 :thunder:2009/03/12(木) 14:34:55 ID:???
ttp://blog.corich.jp/book_detail.php?book_id=12238
再度こりっちに連絡。
とりあえず、悪意目的でLINKされているので外してほしい、と。
しかし、ここにある紹介コメントって、誰が書いたのだろう・・・・。
45 :名無しさん:2009/03/12(木) 17:40:10 ID:???
46 :thunder:2009/03/12(木) 22:41:22 ID:???
それより、更新のないきまたんのほうが自分より上位で悲しかったりもしますが(笑)
47 :名無しさん:2009/03/12(木) 23:41:47 ID:???
一犯常識人から見たら、「子供でもわかるような嘘ばかり並べて」と笑いたくなるようなことばかりを、性懲りもなく繰り返してるわけで、笑いたくもなるということで(苦笑、嘲笑の類かもしれないけど)
48 :名無しさん:2009/03/12(木) 23:58:06 ID:???
>>47
自己レスです。
>一犯常識人=>一般常識人
一犯じゃyoko*タンだっちゅーのw
49 :名無しさん:2009/03/13(金) 23:04:34 ID:???
なんか、はてな裏人物辞典の仕様が変わっていて、俺が2回編集したら編集権がなくなってしまった。
新しいコンテンツはこの流れだと生まれなさそうだが、何かあったら誰か編集して下さい。
50 :thunder:2009/03/14(土) 21:03:36 ID:???
祝!
「悪人呼ばわりされた事実を公開する」がお笑いカテゴリー第二位!(爆)
っつーか、見ても面白くないと思うんだけどな・・・・。
51 :名無しさん:2009/03/23(月) 20:23:35 ID:???
ついに携帯から書くようになったのか。
何かいつものteesに通えない理由でも?
52 :名無しさん:2009/03/23(月) 21:59:12 ID:???
携帯でだって問題なくブログの読み書きができるのに、携帯電話に繋ぐアダプタで
ノートPCに繋いでいるあたりに、無理してる感じ伝わってくる。
一時的に借りたのか、自室でもネットできるようにこっそり環境整えてるのか。
53 :名無しさん:2009/03/23(月) 22:15:28 ID:???
いわゆる「バカ代表」ですから。
54 :名無しさん:2009/03/23(月) 23:03:38 ID:???
うんこのPCって画面解像度1024x768じゃなかったっけ?
で、最近HTMLでページ作成していないところを見ると、完全にお釈迦か、親に封印されているはず。
…まさか、家電量販店のデモ機を使った更新だとか?その辺は数日間観察が必要になりそう。
55 :名無しさん:2009/03/24(火) 19:35:09 ID:???
やはりteesに帰ってきたか。昨日のあれは一体何だったんだろうか?
というか、揉め事を起こしたくても起こせないから、さぞかし欲求不満が溜まっているんだろうなw
56 :名無しさん:2009/03/31(火) 00:59:20 ID:???
ttp://tsukimitsu.wiki.fc2.com/
no account
57 :名無しさん:2009/04/01(水) 22:12:40 ID:???
今日更新していれば「四月バカ代表」になれたのになあ…あっ、年中バカですかw
58 :thunder:2009/04/02(木) 10:35:48 ID:???
>>57
4月1日がどんな日か、しらないのでは?
代表ですから。
59 :名無しさん:2009/04/02(木) 19:38:41 ID:???
>アクセス解析で怪しいと思ったリファラー、ホスト、IPを忍者バリアーで先月下旬からアクセス制御させてもらっています。
怪しいと考えるその基準は何なんだ?
俺はアクセス解析に引っ掛からない方法で自衛しているからいいけど。
60 :名無しさん:2009/04/03(金) 13:05:27 ID:???
ttp://www.my-nikki.com/usr/icf-g/scr3_diarys.cgi?cat=1393tukimitu
日記新設。 忍者付き。
> 同居中のあーちゃんと共有するつもりなので、彼女が更新することもあります。
脳内の朝霞沙耶と共有...の間違いじゃないだろうかw
61 :thunder:2009/04/03(金) 22:27:23 ID:???
>>60
共有は、
いつもの「不特定多数が利用できる場所」からなんでしょうね。
どんな一人芝居をしてくれるか、とても楽しみですね。
62 :名無しさん:2009/04/03(金) 22:36:20 ID:???
朝霞沙耶って蓮水蓮華に改名したはずじゃなかったっけ?
というか、このテの交換日記も何度目だろうか。よっぽど孤立してるわけだなw
それはそうと、
ttp://profile.ameba.jp/tsukimitsu
>嫌いなタイプは?:意地が悪い、ヒステリー、この二つが両方当てはまる人
>今一番欲しいものは?:マイホーム
まあ色々とツッコミ甲斐もあるけど、とにかく自分が社会や家族とうまくやっていけないから
サイトに固執するのかな、なんて気がする。
だからと言って何をしてもいいというわけではなく、断罪はされるべきだが。
63 :名無しさん:2009/04/04(土) 00:06:50 ID:???
あの精神異常者はインターネット以外の娯楽を知らないのだろうか。
他人に迷惑をかけることを考えたら、
一人でモノポリーでもしていたほうが世のためになると思うのだが。
64 :thunder:2009/04/07(火) 00:30:22 ID:???
同じパソコンから、かぁ・・・・。
では、今日の
1280 x 1024 x 32bitモニタの
WindowsXP(Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727))で、
違うパソコンを使った場合の言い訳も考えておいたほうがいいと思うのは、
余計なお世話?
65 :名無しさん:2009/04/12(日) 20:10:00 ID:???
んで、悪ーちゃんはミクシにもいるそうだが、向こうに参加している人で
それらしい足跡が付いたって話はあるのか?
66 :名無しさん:2009/04/12(日) 21:19:42 ID:???
見串、ヲレのところにはこの一週間誰一人来てなかったよ…寂
67 :名無しさん:2009/04/14(火) 00:00:27 ID:???
結局、活動ペースが裁判所以前のものに近くなってるよね。
ということは、コンスタントに仕事があるというのはウソ、ネカフェに出掛けることについても
親監視が殆ど外れているというのが現状なんかなかろうか。
68 :名無しさん:2009/04/14(火) 18:10:21 ID:???
朝からネットのパターンが殆どだけど、遅番で午後からの勤務というより、
自分にだけ都合いいシフトばかり割り当てられる訳が無い。
69 :名無しさん ◆ph8hUsM6Yc:2009/04/14(火) 18:51:19 ID:???
>>67、>>68
「派遣切り」が特に珍しい話題でもなくなって来ている昨今、
特に役に立つ資格を持っている様子が無いyoko*タンに仕事があるわけも無くw
多分、ネカフェに通う時間帯は、親の監視が緩い時間ではないかな?
70 :名無しさん:2009/04/14(火) 20:00:09 ID:???
>>68-69
そうなんだろうね。特に大手自動車メーカーのお膝元が今どき景気いいわけないし。
最近のパターンから言えることは、午後2時くらいまでには家に戻っていないと親が厳しい、ってことかな。
71 :名無しさん:2009/04/14(火) 21:51:09 ID:???
パソコン検定3級とかを自慢してた頃があったぞ。
「なんで1級を取らなかったんですか?」と聞くことにしているが。
屁の役にも立たん。
72 :名無しさん:2009/04/14(火) 22:48:51 ID:???
埋まったスレより。
988 名前:thunder[sage] 投稿日:2009/04/14(火) 13:44:19
13:37のアクセスは、某回線事業者の監視部隊と思われます。
pc.teesで検索あれ。
もうやっているのかもしれないけど、某回線事業者の監視部隊って何故かブログにしか来なかったよね。
BBSとその魚拓も含めて明日再調査してもらったらどうだろう?
73 :名無しさん ◆yImJKLW..2:2009/04/15(水) 08:04:44 ID:???
月蜜&あ~ちゃん=IPアドレスを晒して、TEES(豊橋ケーブルネットワーク株式会社)からのアクセスであることを、自ら証明するバカ。
ttp://s03.megalodon.jp/2009-0415-0749-23/www.bigcosmic.com/board/f/board.cgi?id=tukimitu&start=8
ttp://s04.megalodon.jp/2009-0415-0750-25/www.bigcosmic.com/board/f/board.cgi?id=tukimitu&start=97
ttp://s03.megalodon.jp/2009-0414-1241-28/www.bigcosmic.com/board/f/board.cgi?id=tukimitu&start=10
で、俺のIPアドレスも晒されている。by deadline(名無しにする意味が無いなw)
74 :名無しさん ◆yImJKLW..2:2009/04/15(水) 16:06:43 ID:???
>>73
『晒す』という表現が、誤解を招きそうなので、訂正レス。
月蜜&あーちゃん
=投稿者のIPアドレスを表示するように設定を変更して、
自らのアクセスがTEESからのアクセスであることを自己証明するバカ。
75 :名無しさん:2009/04/15(水) 17:42:59 ID:???
>>74
バカ代表以外は、誰も誤解しないってw
で、バカ代表のための解説。
>★ by あーちゃん(IP:202.53.119.37)
のIP AddressをWHOIS Gatewayで検索すると、
>a. [IPネットワークアドレス] 202.53.116.0/22
>b. [ネットワーク名] TEES
>g. [Organization] TOYOHASHI CABLE NETWORK INC.
が表示されるわけで、
>私は豊橋在住ではないこと、そして現住所が関東にもっと近い場所であることをここに明言しておきます。
と書いたのはどこの誰だったっけw
76 :名無しさん:2009/04/15(水) 17:58:27 ID:???
>>75
いやいや、脳がアレだから、Whoisの情報だけじゃ理解できないっしょw
teesのサービス提供範囲は以下の地域に限られます。関東では使えません。
ttp://www.tees.ne.jp/tv/area.html
それとも「関東~」って書いたことの記憶を既になくしているとかw
77 :名無しさん:2009/04/17(金) 10:16:35 ID:t7hrdoIY
10:07 活動開始。
都合の悪いコメントを速攻で削除。だから、晒してあげよう。
ttp://s01.megalodon.jp/2009-0416-2309-19/ameblo.jp/tsukimitsu/entry-10243461249.html
ttp://s01.megalodon.jp/2009-0416-2305-03/www.bigcosmic.com/board/f/board.cgi?id=tukimitu
78 :名無しさん:2009/04/17(金) 10:44:41 ID:???
自分に都合の悪いコメントを書かれたら、即削除したいわけか?www
79 :名無しさん:2009/04/17(金) 11:06:54 ID:???
バカには悪いんだけどさ(とは全然Permalink | トラックバック(0) | 11:26
「アフィリエイトで成功して、社会的地位を得る方法。」を書きました。
http://anond.hatelabo.jp/20101029125747
が、今から書く記事が本命です。
一個人では影響力がないので、支援のブクマやツイートなどお力添えしていただけると、うれしいです。
「かるてぽすと」(http://www.kartepost.com/)の木下さん、串岡さんは、
「NPO法人 キャンサーネットジャパン」(http://www.cancernet.jp/)と、組んで様々なイベントをやっているそうです。
がんに悩む人たちのために、懸命に活動をする、とは素晴らしいことですね。表向きはね。
でも、かるてぽすとさんたちって、医療について正確な知識もないのに、
裏では、メディラシージャーナルと名乗り、(合っているのかも分からない)病気に関する情報を載せた、
アフィリエイトサイトを量産しているんですよね。言ってしまえば、病気に苦しんで藁にもすがる気持ちの人を、利用した行為。
1年ぐらいまえに増田を使って忠告したのに、今度はがんに悩む人たちを巻き込むとは、さすがにタチが悪いと思います。
NPO法人さんと組んでイベントを行っているのに、裏では合っているの分からないような知識を元に、
アフィリエイトサイトをやっているなんて、NPO側としても信用、信頼に関わるんじゃないの?
そういう人たちと組んでいる、NPO法人 キャンサーネットジャパンって、大丈夫なのかな?と、個人的には心配です。
当然、きちんとした組織だったら、対処してくれるとは思いますが、「上記の行為を知りながら黙認している」という
可能性がないことを祈るばかりです。
ザーッと書きだしたので、いくつか、かぶっているかも。あと、あくまで以下は「一部」です。
数が多いので、下のほうまで一気にスクロールしても構いません。
乳腺炎.com
www.nyusenen.com/
胃炎.com
www.ien-g.com/
動脈硬化.com
www.domyakukoka.com/
下痢.com
www.geri-g.com/
尿道炎.com
www.nyodoen.com/
悪性リンパ腫がよくわかる
www.rinpashu.com/
貧血.com
www.hinketu.com/
発毛の悩み.com
www.growth-g.com/
はげの悩み.com
www.baldie-g.com/
めまいの悩み.com
www.dizzy-g.com/
視力回復の悩み.com
www.eyesight-g.com/
脳腫瘍がよくわかる
www.noshuyo.com/
はげの悩み.com
www.baldie-g.com/
www.headache-g.com/
白内障の悩み.com
www.cataract-g.com/
www.ear-g.com/
薄毛の悩み.com
www.thinning-g.com/
水虫の悩み.com
www.foot-g.com/
www.impo-g.com/
口内炎の悩み.com
www.stomatitis-g.com/
緑内障の悩み.com
www.glaucoma-g.com/
かつらの悩み.com
www.wig-g.com/
口臭の悩み.com
www.mouth-g.com/
歯のホワイトニングの悩み.com
www.whitening-g.com/
歯周病の悩み.com
www.periodontal-g.com/
抜け毛の悩み.com
www.loss-g.com/
心筋症.com
www.shinkinsho.com/
植毛の悩み.com
www.implant-g.com/
胃ポリープ.com
www.iporipu.com/
脳出血がよくわかる
www.noshukketu.com/
脳腫瘍がよくわかる
www.noshuyo.com/
甲状腺がんがよくわかる
www.kojosengan.com/
川崎病.com
www.kawasakibyo.com/
脱毛症の悩み.com
www.alopecia-g.com/
脳性麻痺がよくわかる
www.kyokaise.com/
アスペルガー症候群がよくわかる
www.asperger-g.com/
すい臓がんがよくわかる
www.suizo-gan.com/
肺がんがよくわかる
www.haigan-g.com/
ADHDがよくわかる
水いぼ.com
www.mizuibo.com/
強迫性障害.com
www.kyohaku.com/
おたふく風邪.com
www.otahukukaze.com/
網膜剥離.com
www.moumaku-hakuri.com/
喘息.com
突発性発疹.com
www.hosshin.com/
風疹.com
www.huushin.com/
卵巣がんがよくわかる
www.ransogan.com/
ネフローゼ症候群.com
www.nehuroze.com
肝臓がんがよくわかる
乳がんがよくわかる
www.nyugan-g.com/
脂肪肝.com
膀胱炎.com
www.bokoen.com/
食中毒.com
www.shokutyudoku.com/
シェーグレン症候群.com
心筋梗塞.com
www.shinkinkosoku.com/
www.hidaisho.com/
膀胱がんがよくわかる
www.boko-gan.com/
低血圧.com
www.teiketuatu.com/
急性腸炎.com
www.chouen.com/
胆石.com
悪性リンパ腫がよくわかる
www.rinpashu.com/
チック症.com
www.tic-g.com/
www.gekkemae.com/
てんかんがよくわかる
パニック障害.com
www.panic-g.com/
くも膜下出血がよくわかる
www.kumo-makka.com/
子宮がんがよくわかる
www.shikyu-gan.com/
脳梗塞がよくわかる
www.nokosoku-g.com/
心筋症.com
www.shinkinsho.com/
発達障害がよくわかる
www.hattatu-shogai.com/
PTSD.com
咽頭がんがよくわかる
www.intogan.com/
斜視.com
www.syashi.com/
肝硬変.com
狭心症.com
www.kyoshinsho.com/
白血病がよくわかる
www.hakketsu-g.com/
こういう記事を書くと、真似する人とか出てくるんじゃないの?とか言う人が出てきそうだけれど、
根元を潰さない限り、いくらでも沸くだろうし、どうしようもないと思います。
場合によっては、命に関わるんじゃないの?国って馬鹿なの?とも言いたい。
それが無理なら、googleやAmazon、ついでに楽天もそうだけれど、
「病気系サイトに広告を載せる行為」を禁じてくれないでしょうか?
お金目当てのサイト運営なら、根っこの部分を引っこ抜けば良い方向に向かうはず。
アドセンスって、エロサイトは禁じるくせに、上記のようなサイトは禁じないですし。
別に、アフィリエイトサイトをやるのは個々の自由なんだけれど、
今回のは、少しばかり「裏と表」が気持ち悪かったというのもあります。
裏では、合っているのか分からない病気関連のアフィリエイトサイトを無数に作って儲けて、
表では「がんの人たちに向けて活動しています」か。
ふざけすぎでは?
他に、ハナヒトと称して「チャレンジド・ピープル」障害と共に生きていく方々のためのサイト
も、運営している且つ他の案件も進んでいるようですが、信用できるのかは計りかねます。
個人的には、「現在運営している病気サイトを全て止めて欲しい」と思っています。
再開や、形を変えて、というのもなしです。あとは、関係者に対する謝罪が誠意かな、と。
NPO法人 キャンサーネットジャパン(公式ブログ)
http://blogs.yahoo.co.jp/cancernet_japan/
NPO法人 キャンサーネットジャパン(事務局のTwitter)
http://twitter.com/CancerNetJapan
NPO法人キャンサーネットジャパン(事務局長のTwitter)
http://twitter.com/AkiYanagisawa
Twiterやブログを読む限り、事務局長との交流が深そうです。
http://twitter.com/ShingoKushioka/status/14266318665
http://twitter.com/AkiYanagisawa/status/14106490237
http://www.kinoshitashigeo.com/blog/archives/4349
がん掲示板「かるてぽすと」
ブログ:http://www.kinoshitashigeo.com/blog/
Twitter(日本語):http://twitter.com/KinoshitaShigeo
Twitter(英語):http://twitter.com/ShigeoKinoshita
ブログ: http://kushilog.blogspot.com
Twitter: http://twitter.com/ShingoKushioka
記事中で、他の方が作った闘病サイトを一例として、取り上げていましたが、
闘病の方のブログを読んだ後に、そのサイト自体の良し悪しの判断がつかなくなったので、削除いたしました。
あとは、NPO法人キャンサーネットジャパンが、どこまで把握していたのかどうかが、気になるところです。
例えば、
「子宮がんがよくわかる」www.shikyu-gan.com/
など、がん系のアフィリエイトサイトから、かすてぽすとへのリンクが目立つところに貼ってあるのに、
「がんに関わる関係者が、誰1人気づかない、関連性を気に留めない」なんて事態はあるのかな、と。
記事内容(以前書いたものを含め)についても、色々なご意見があるかと思いますが、
真面目な口調で真面目な記事を書いたところで、誰の目にも触れなければ何の意味もないので、
使えるカードを全て使って、最後に直球の記事を投げただけです。
また、Googleなどの広告の規約変更につながらないかな、という仄かな期待など、
石を投げないと、波紋は広がらないので、放りました。
今後、私自身が現れることはありませんが、何か良い方向への変化につながると良いですね。
そんな上司がいる。
社員同士非常に仲がよく、私の入社と同時ぐらいに第1次twitterブームが着たので、若手はすぐにそこでつながっていた。
twitterでの話題は、大学関係者とも関わることが多いので教育的な話から、コードのことであったり、最新インタフェースのことであったり、ネタやプライベートな話まで
まぁ初期ユーザに一番多い使い方をしてきたのだと思う。
一方、その上司は3、4年前から今の会社にやってきた。現在、40代前半。
上司が転職してきた直後は別のチームにいたから全く関わりがなかったが、1年前から新たなプロジェクトとして同じチームに編成された。
前いたチームの同期からの評判もよい人だった。
上司がtwitterを始めたのは、ちょうど1年前くらいのtwitterがメディアでかなり取り上げられてきた時だったので、誰かが上司さんもやってみたらいいじゃないですかーとでも言ったのだろう。
あっさりその上司はtwitterにはまり、職場の人から大学時代同期の研究者だったりをフォローして楽しんでいた。
そうすると、職場でもtwitterの話をするようになっていて、「~さんこの前twitterで言ってたあれどうなったのー?」なんてことを上司が聞いたりしていた。
それまでは職場でtwitterの話題をすることはなく、最初は私も合わせていたが、その上司にかなり気に入られたらしい私は、特にtwitterの話をされることが多く、次第にエスカレートしていった。
随分前に私が会社での飲み会について投稿したことをネタにしてきたりもした。
その飲み会には上司もいたし、投稿をみればなんの話かは分かるだろう。しかしその投稿をした時はまだ上司がtwitterを始める1か月以上前だった。
上司は、あっさりと「君のつぶやき読めるだけ読んだんだよねー」と認めたし
「あれって、"more reading"し続けるとページ重くなって全部は見れないんだねー」とケラケラ笑いながら言うし、その後ももっと前の私の話をネタにして話続けることもしばしばあった。
さらには、別クラスタでフォローしてる子と私のリプライのやり取りの話までしてきた。つまりは私のprofileページをチェックしているということだ。
別に読めるようにしているのだから、昔のを読むことは文句言えなし、読むなとも思わない。
しかしそれはこっそりやってほしい。よりによって本人に告げるな。
webでも現実世界でも同一人物であることは本人も認めているわけだけれど、私はやはりネットとリアルは異なるものと捉えている。ネットという画面を通したものだからこそリアル世界で知り合ってる人とも向き合えることがあると考えている。
今まで、webでのルールなんて意識したことなかったけれど、あぁ実は自分にもwebルールがあるのだとまざまざと実感した。
上司には、私や若手が持つそんなweb概念が全くない人だった。
こんなことがずっと続き、少し私が嫌がっているのも気にせずtwitterの話ばかりされるのが本当につらくなってきたので、上司とは徐々に距離を置くことを決めた。
ネットとリアルの区別がつけられない人だからリムーブしただけで傷つくだろうなと思い、フォローはしたままで、仕事としては全く悪い人ではないので、ただ表面上仲良くし、飲みに誘われても断っていた。
どうやら、その時点で上司はひどく傷ついていたらしい。さらにひどい事が起きた。
その頃私は、プライベートなことで深く悩んでいて、ネガティブな発言が多かったし、誰とも分からないように人を批判する分を投稿していたりした。
できるだけ一般的な話に持ち込むようにはしていたけれど、感情的な部分もあったのかもしれない。
なんと、上司はそういう私の一連の投稿を、自分のことについて書かれたと思ったらしい。
長期休暇などもかぶりしばらくぶりに上司に会う日があった。
廊下で会っても無視するくらいの機嫌の悪さ。
なんだ?と思っていたら上司に個室に呼ばれた。
すると、上司は私のその問題のついーとをプリントしたものを数枚もってて、いきなり目の前のデスクにその用紙を投げ出し「これはないよね」と言い放った。
初めて空いた口が塞がらなかった。
はっきりいって、そんなことを投稿してる間、上司のことは微塵も考えていない。完全にドン引いた。
仕方がないのでその投稿をするに至った経緯まで全て話、関係ないことを主張し、なぜか上司がうなだれていた。
そして私が避けていることが気になったようなので、さらに自分のwebの使い方と上司のwebの使い方の違いを説明し、
ネット上の話をされるのは私はつらいとだけ訴えた。
これが約半年前。
その時上司は分かったとは言っていたが、現在もなにも分かっていない。
落ち込んだ投稿をした時は、一緒にがんばりましょうというDがきた。
つい最近もまた思わず愚痴っぽいきついことを書いてしまったら、
ボクだって努力してるんですというDがきた。
だからお前のことじゃねーよ、親とのことだよ
「だからといって、人がどういう考え方をしていても勝手で、使い方を他人に強制されるようなものではない」と上司は言った。
確かにその通りである。
上司のようなネットの使い方をして、自分が傷ついたんだ!ってことを相手に伝えれば、そっちだってある程度もしくはそれ以上の傷を被る。
相手にそんな傷をつけた時点で、自分の使い方を強制したことになっていることを上司は気がついていない。
それだってその通りである。
でも上司には「受け手側はそれをどう受信したかの責任は自分で持つべき」と言いたい。
私の発言が軽薄な時も確かにあるかもしれないが、鬱ポストを連発するわけでないし、個人を中傷したポストをしているわけでもない。
流そうと思えば流せるものを真に受け止めるのは、その受け手だけで留めてほしい。リアルにまで持ち込み、他者を責めるな。
彼ら彼女らは、どうしてそんな自分が不幸になるような使い方をするのだろう。
ネットでは発信者の状況は分からない。それなのにどうしてそれを真に受け止めて、ネットがつらくなるような使い方をするのだろう。
しかしそういった人達は一定数必ずいる。
結局はtwitterもまた一部の人の利用に留まっていくだろう。
すばらしいツールなだけに、そういった考え方をする人達のせいで広まらなくなるのならなんとも勿体ないことだ。
しかしもっと勿体ないのは、ネット上で実力を発揮している人がそういった人達のせいで姿を消していくことにある。
素晴らしい人がひとり姿を消せば、このweb上の可能性も同時に一つずつ消えていく。
ネットとリアルを区別しない人達による罪というのは実は予想以上に大きい。
今でも上司とのフォロー関係は続いている。恐らく今後も変わらない。
確かにめんどくさくなる時もあるけれど、折角いいツールを見つけ、いい人達とも巡り会えたのに、やめたくはない。
自分がweb界にいつか影響をもたらすとは思いもしないが、確実にそんなやつらよりはいい使い方をできる気はする。
なのでなにがあろうともやめることはない。
はてなスターを整理をしていてふと書き込みました。
はてなハイクから
「今日の夫」by kona777jp 2010-03-19 10:26:31 from mobile Reply
部長命令で呼び出されたらしい。
再来週に結婚式でスピーチをしていただく方なんだけど、大きな会社ゆえに話したことがないため、「面談をしてスピーチを考える」のだそうな。
「面談のネタがない!」とウェディングノートをわしづかんで出勤していったけど、いいのか…?月9のような馴れ初めとかいろいろ書いてあるのに…
http://h.hatena.ne.jp/kona777jp/9258652564794736970
これどう思う?はてなハイク~「今日の夫」再来週に結婚式を控えているらしい女性のようです。
誰からも返事はついていませんでした。
おそらくこの女性は結婚したのでしょう。profileには「働いていました」とあります。
これを読んで想像できるのは
・もしかすると世間的に政略婚と見られる社会的立場が上かもしれない本人と、社内で密かに片思いの相手と悲恋があったのかもしれない
・"できちゃった婚"の雰囲気無し
・大きな会社ゆえに話したことがないため、「面談をしてスピーチを考える」この人はどうみても媒酌人
そういう人に結婚の仲の取り持ちをお願いする・・・
昔なら、小さい頃から顔も見知った相手同士でどちらもよく知った相手だったらそんな大げさな打ち合わせは要らない
→ましてや、「打ち合わせだから」と本人に言ったりしない・・・式でどんな事をいうのか自体、サプライズだから
・媒酌人を頼む間柄、結婚式をする間柄について→よく知らない同士の式の媒酌人にこれまたよく知らない同士の人がすることに違和感を感じていない
昔から知っていたら、式が日常の雰囲気を一新する良い機会
・「面談のネタがない!」と漏らしながら出勤→それでも結婚するのか?!と言わんばかり。
・月9のような馴れ初めとかいろいろ→おそらく本人が書き込んだのでしょう
「余計なお世話」と思いつつ書き込むのがこういった匿名ダイアリーなのだと思います。
ハイクでは誰もつっこめなかったのでしょうね。
果たして結婚したのか、どういうつもりだったのか。
どう思います?
他ブラウザからの乗換 - Mozilla Firefox まとめサイト
OperaユーザーのためのFirefox移行ガイド - 何かしら図書館
「それ、Firefox3でも出来るよ?」とOpera信者に言い放つためのアドオン26個 - TERRAZINE
Operaで重宝したのが右クリックから他のソフトにURLを渡せることです。
同じことをFirefoxでやりたくてLaunchyというアドオンを見つけました。
はじめから登録されているIEやChromeなどのメジャーなソフト以外は自分で登録しないといけないのですがその登録方法がけっこう面倒でした。
その登録方法は決まった形式でlaunchy.xmlという名前のファイルを作ってprofile内にあるchromeフォルダに入れるというものです。
詳しくはLaunchyのオプションから確認してください。
launchy.xmlを自動で作成してくれるページがあるので貼っておきます。
http://gemal.dk/mozilla/launchy-xmlfile.html
Launchyのインストールはこちら。
日本では有名になることは無条件に良いこと、という価値観がどうもあるように思うが、あの価値観から真っ向から逆をいく人をアメリカでは随分たくさん見た。彼の国で、恐らく成功している人のかなりはそうだと思う。名が知れ渡っていることをhigh profileと英語で言うが、「low profileで豊かな暮らし」というのが本当に豊かな生き方なんだなあと、当時つくづく思った。目立ってよいことなどあまり何もなく、出来る限り目立たぬように過ごしているのが本当の豊かな生き方なんだなと。
僕が住んでいたのが、南コネティカットという、米国で一二位を争う豊かな州の最も豊かな一帯だったせいもあり、表札も何もない長く長く続く石塀に囲まれた広大な森の中に住む*1アメリカで際立って豊かな人たちの大半が、高くてもせいぜいレクサスとかBMWの(その中でも上の方ではないクラスの)クルマに乗り、堅実に生きているのを見るたびに学ばされたものだった。正直、城南地区のクルマの方がよっぽど高いモノが多い。*2
中でもグリニッジという英国の天文台がある町にちなんで出来た町がとりわけ豊かな町なのだが(特に上の森の方)、この街のショッピングエリアにいっても、日本のようにLVなんて文字が入っているカバンを持っている人を見たことが殆ど記憶にない。つまり誰もあからさまに富をshow off(みせびらかしたり)しない。けれど、そこにあるSaks Fifth Avenue*3にいくと、たった二階建ての店なのに、数万ドルクラスの毛皮のコートは毎週10枚ぐらいは売れると言う。多分ショーファー(運転手)にリムジンで連れて行ってもらうようなパーティのときなどにはそう言うものを着る。そういうお金の使い方なのだ。
Linked In "Digital Marketing"グループでのある会話。
I'm experimenting with Huddle workspaces in my Linkedin profile.
I'm starting to list all the free, or low fee, marketing tools worth looking at...
I'm using an excel sheet in Huddle as a starter.
Drop me an email and i'll grant you access to it, all i ask in return is that you contribute to the list to make it more comprehensive.
“There is no delight in owning anything unshared.”
(Roman philosopher, mid-1st century AD)
---
Hi Peter,
Great idea and I love your quote about sharing.
Funnily enough I have been searching free tools today and here are a few goodies I am happy to share with you and the group.
1. http://www.keotag.com/ - searches tags on blogs and social bookmarking sites. (been having plenty of fun with this one and it's seems v. useful).
2. http://boardtracker.com/ - Searches posts on bullitin boards / forums for mentions of keywords / brand terms.
3. http://www.trendrr.com/ - enables you to track trends and provides some very valuable competitive analysis functionality.
4. http://usernamecheck.com/ This tool is essential for brand name protection. It lets you search a wide range of social sites to see if anyone is using your brand term / name as their profile ID. If they are not then I would suggest you register your brand / business name even if you do not plan to use the site to protect your business from damage. If your name is taken and not being used the chances are it is being squatted by a chancer. I had this issue on twitter with my social site for business people marzar.com but the nice folks at twitter reverted the name to me as the trade mark owner as soon as I contacted them in regards to the issue.
5. http://hellotxt.com update your status from one place across multiple social sites.
6. http://www.twilert.com/ Seems to be a number of tools to monitor twitter but this one seems to be pretty useful. Twilert is a Twitter application that lets you receive regular email updates of tweets containing your brand, product, service, well any keyword you like really.
7. http://www.backtype.com/ Monitors comments left on blog posts monitoring posts for sentiment may not be enough and issues and or insights often come from the comments posted by readers.
8. http://socialmention.com/ Again allows you to search blog posts, comments, news, events, images, bookmarks, microblogs and video all at once or on their own. This is a very useful tool and when I searched on my brand terms it came back with results that the other tools did not pick up on. In particular I found the bookmark search to be of value.
9. http://www.samepoint.com conversation search engine again came back with differing results to the other tools listed above.
10. http://www.marzar.com free to use business networing platform. Many members are involved with online marketing and or are senior business people. The audience is similar to Linkedin but the functionality differs. I built this site and I am working hard towards the next release of our platform now that we are funded.
Hope that this list posted publicly to the group helps others :)
Regards,
John
---
Wow John you rock I haven't heard of any of these!
---
Darren,
Thanks :) you are welcome I only added 10 but I could have listed at least 50 if I had the time. I hope you find this list of use.
John
---
I'm experimenting with Huddle workspaces in my Linkedin profile.
I'm starting to list all the free, or low fee, marketing tools worth looking at...
I'm using an excel sheet in Huddle as a starter.
Drop me an email and i'll grant you access to it, all i ask in return is that you contribute to the list to make it more comprehensive.
“There is no delight in owning anything unshared.”
(Roman philosopher, mid-1st century AD)
Posted 6 months ago | Reply Privately
Peter Abraham
Digital Marketing & E-commerce Professional, Director Econsultancy.com (80,000 professionals) Twitter:peterjabraham
See all Peter’s discussions »
Comments (32)
John Horsley
Internet Evangelist email john@marzar.com 9000+
Hi Peter,
Great idea and I love your quote about sharing.
Funnily enough I have been searching free tools today and here are a few goodies I am happy to share with you and the group.
1. http://www.keotag.com/ - searches tags on blogs and social bookmarking sites. (been having plenty of fun with this one and it's seems v. useful).
2. http://boardtracker.com/ - Searches posts on bullitin boards / forums for mentions of keywords / brand terms.
3. http://www.trendrr.com/ - enables you to track trends and provides some very valuable competitive analysis functionality.
4. http://usernamecheck.com/ This tool is essential for brand name protection. It lets you search a wide range of social sites to see if anyone is using your brand term / name as their profile ID. If they are not then I would suggest you register your brand / business name even if you do not plan to use the site to protect your business from damage. If your name is taken and not being used the chances are it is being squatted by a chancer. I had this issue on twitter with my social site for business people marzar.com but the nice folks at twitter reverted the name to me as the trade mark owner as soon as I contacted them in regards to the issue.
5. http://hellotxt.com update your status from one place across multiple social sites.
6. http://www.twilert.com/ Seems to be a number of tools to monitor twitter but this one seems to be pretty useful. Twilert is a Twitter application that lets you receive regular email updates of tweets containing your brand, product, service, well any keyword you like really.
7. http://www.backtype.com/ Monitors comments left on blog posts monitoring posts for sentiment may not be enough and issues and or insights often come from the comments posted by readers.
8. http://socialmention.com/ Again allows you to search blog posts, comments, news, events, images, bookmarks, microblogs and video all at once or on their own. This is a very useful tool and when I searched on my brand terms it came back with results that the other tools did not pick up on. In particular I found the bookmark search to be of value.
9. http://www.samepoint.com conversation search engine again came back with differing results to the other tools listed above.
10. http://www.marzar.com free to use business networing platform. Many members are involved with online marketing and or are senior business people. The audience is similar to Linkedin but the functionality differs. I built this site and I am working hard towards the next release of our platform now that we are funded.
Hope that this list posted publicly to the group helps others :)
Regards,
John
Posted 6 months ago | Reply Privately
Darren Monroe
Chief Operating Officer/ President
Wow John you rock I haven't heard of any of these!
Posted 6 months ago | Reply Privately
John Horsley
Internet Evangelist email john@marzar.com 9000+
Darren,
Thanks :) you are welcome I only added 10 but I could have listed at least 50 if I had the time. I hope you find this list of use.
John
Posted 6 months ago | Reply Privately
Steve Momorella
Owner, TEKgroup
Great list! Wow, I'd certainly be interested in seeing more if you have them posted somewhere. Thanks for sharing.
Posted 6 months ago | Reply Privately
Karla Ferrer
Bravo for this sharing! thanks a lot.. I will take a look
Posted 5 months ago | Reply Privately
Carrie Orfield Oman
Residential Sales Specialist at ADT Security Services
Thanks. I haven't heard of any of these, either.
Posted 5 months ago | Reply Privately
Caroline Bogart
Owner, Bogart Computing, LLC and Computer Software Consultant
Posted 5 months ago | Reply Privately
Judy Hoffman
Here is my email: judy@ judymae.com
Posted 5 months ago | Reply Privately
Lisa Russell
Independent Interactive Marketing Professional
Thanks for sharing!
Posted 5 months ago | Reply Privately
Darren Monroe
Chief Operating Officer/ President
OK been a month but all of our posts (me included) and no one has shared more resources so here goes
「お祈り申し上げます」
履歴書だけで一蹴された。就活始めたての1月頃だったかな。サイバーエージェントはぼくに就活の厳しさを教えてくれた。本当に適当に書いた履歴書だった。完全に就活舐めてた。落とされてからは反省し、履歴書は精魂込めて書くようにした。サイバーエージェントに落とされていなければ、今の自分などない。落とされた時はぶち切れて勢いでアカウント削除しちゃったんだけど、今ではいい思い出です。
・・・とか美化してたらいきなり内定者用のメールが回ってきたわけですよ。サイバー・エージェント・クリエイティブ・カフェ、つまり略してクリカフェ、とか書いてんの。もう見てらんない。
お前らな、150円やるから内定一枠空けろと。
5月19日火曜18時30分より、
「サイバーエージェント・クリエイティブ・カフェ」を開催いたします!
是非ご参加ください!
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
社外の方をゲストにお招きして講演&質問の会を実施しています。
過去には、放送作家の小山薫堂氏、『LEON』元編集長の岸田一郎氏、
書道家の武田双雲氏など様々な分野の方々にご講演いただきました!
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
次回のクリカフェは・・・
『PIZZICATO FIVE』『RIP SLYME』『HALFBY』などの
アートワークで世界的な支持を得ている、GROOVISION代表の伊藤弘さんです。
フィールドは広く、様々な企業やブランドのアートディレクション、
グラフィックデザイン、モーショングラフィックデザインでも活動されています。
その発想法を実績通してご紹介いただく予定です。
参加予定の方はお早めの登録を!
────────────────────────────────
[GUEST Profile]
groovisions代表。デザイナー。
1993年京都でデザイングループ“groovisions”設立。
グループ設立時からワールドツアーを含むPIZZICATO FIVEのライヴ・ビジュアルを担当し注目を集める。
以来、CDのパッケージデザインやPV、様々な企業やブランドのアートディレクション、
グラフィックデザイン、モーショングラフィックデザインを中心に活動。
groovisionsは、タレント「chappie」の所属事務所でもある。
────────────────────────────────
【詳細】 ※内定承諾者限定です。
※基本的には、途中からのご参加はなしとさせていただきます。
よろしくお願い致します。
■会場:サイバーエージェントビル地下1階
■持物:筆記用具等
■応募方法
メールにて、必ず
TO: ■■■@cyberagent.co.jp
宛に下記の内容を記載の上、
ご連絡をよろしくお願い致します。
・電話番号
・講師への質問
※応募当選に関しては、5月17日 20時までにご連絡いたします。
────────────────────────────────
何かご不明点ございましたら、お問い合わせください。
どうぞよろしくお願いいたします!
サイバーエージェント ○○
有名なブロガーで86年生まれのid:Hashさんが内定されたというセンティリオン株式会社。
http://d.hatena.ne.jp/Hash/20090407/1239122203
ページを開くと、音楽と社長の声が出てくるのは、ホームページの作り方としてあまり賛成できないのだが、それはともかく、そのセンティリオン株式会社の会社概要と思われる、右下のPROFILEのところをクリックしても、資本金が書いていない。いや、もちろん、ちゃんと調べれば分かる情報なのだろうが、普通、会社概要には資本金を必ず書くものだと思う。何か、資本金を知られたくない事情でもあるのか、と勘ぐってしまう。
NeatImage。
↓
「Device Notice Profile」→「Auto Profile」・・・ノイズのサンプリングの内部処理
↓
「Noise Filter Settings」→「Preview」・・・部分的にノイズ除去を行い効果を確認する
↓
「Output Image」→「Apply」・・・画像全体にノイズ除去を施す
↓
NeatImageは有償なので、無料版はJpeg保存しか出来ません。しかし、モスキートノイズやアンシャープマスクノイズの除去は無料のGreycstoration(ttp://wiki.livedoor.jp/niloufar/d /GREYCstoration)の得意分野なので、NeatImage=>Greycstorationの順に使うと吉。参考までに。
Greyc:点,輪郭のノイズに有効
30まで来てしまった。我ながらよく書くなぁと思う。
さておき、最近興味深いと思ったことを書いておく。
今週の大きな(と言うとやや大げさだが)トピック。
端的に言うと、ダイアリーであった市民制度をハイクにも広げたというものだけど、ハイクでのこれに対する反応はなかなか興味深かった。
これをネタにしてキーワードが盛り上がる、みたいなのはいいとして、私が関心を持ったのは、
「はてなハイク市民なんていらない」
こんな反応を示す人が幾らかいたことだった。
今後市民制度は何らか機能拡張されていくらしいけど、今のところは「はてなキーワード」の編集権を持つくらい。
それ以外の変化と言えば、「Entries」で表示されるアイコンにメダルらしきものが付くくらいだけど非常に過剰に反応している。
しかも割と長くハイクにいる人、いわゆる「古参」に部類される人の中にその傾向が散見される。
アイコンに「メダル」が付くのも面白くないらしく、アイデアで改修も要望されている。
上記のような反応をとても不思議に思う。そんなに目くじら立てるものだろうか?と。
以前ハイクで「Profile」タブが廃止され「Entries」タブに統合されたことがあったが、
これに関してはユーザーの使用感に関わることなので(「Profile」へのPOSTとそれ以外のキーワードへのPOSTを分けて管理したい場合など)、
ある程度要望が出るのも理解できる。でも今回に関して言うと、そのような使用感の変更は今のところない。
「メダル(バッジ)」にしても表示されているのが「Entries」の画像のみなだけなのに「そんなに?」と思う。
アイデアの件に関しては「人の画像を改変」というところが問題になるみたいだけど、そもそも「人の画像」をアイコンにしてるひとも多々いる(アイデアを立ててる人はそうではないかもしれないけど)わけで。
何というか、力みどころがズレてるような気がしてならない。
何が重要かは人それぞれだから一概に「ズレてる」とは言い切れないのかもしれないけど。
話を「勝手に市民に認定されること自体に違和感」を感じているというところに戻して考える。
今回の「自分の思惑から外れたことが降りかかってくること」に対する拒否反応って、これまでこの観察記で取り上げてきたハイク内の衝突に関係しないだろうか?
例えば先日取り上げた「実況」の件とか、しばしば話題に上る「連投」の件とか。
勝手に作り上げた「自分の」ルールから外れるものに対する拒否感の表出という点では似ていると思うのだがどうだろう?
必ずしも「実況」「連投」、その他の件に異を唱えていた人が「市民制度」に異を唱えているとは限らないのだけど。
上手く表現できないけど、何か繋がってる気がするんだけどな。
観察記22の続き。
前回同様以下の文はわたしの主観であることをあらかじめおことわりしておく。
前回、ハイク初期の大喜利記を経て「ゆるい繋がり」が生まれ始めたところまで書いた。
Replyを使った個人同士のやり取りなんかもTOPページで見られるようになってきていたと思う。
今ではこの手のやり取りはidページで行われることが多いと思うが、当時はまだidページの使い方というのが今ほど浸透しておらず、TOPページの交流がメインだった。
(これはProfileというタブ名によるところが大きいのかもしれない。が、それは別の話。)
これまでのような大喜利の流れ、加えて「ひとりごと」などで行われる雑談的な流れ。
この辺りの流れが徐々に目立つようになってきた。
ほどなくしていくらかユーザー各の個性というか、色が見えるようになってきた。
そのせいかユーザーが個別にクローズアップされるなどのキーワードがチラホラ見られるようになってきた。
徐々に「内輪ネタ」であったり、所謂「馴れ合い」のようなものも目立つようになる。
そしてひとつ問題が持ち上がる。
「今のハイクはご新規さんには敷居が高いんじゃない?」
見知ったユーザー同士がレスを返し合ったり、誰か固有のユーザーのことで盛り上がっていたりすれば、それらの事情を知らない人からすれば入りづらいだろう。
でも今にして思えば「新規が入りづらい」ということ事態が「思い込み」だったんじゃないかなと。
だって必ずしも「輪」に入る必要なんて無いもの。それだけがハイクの使い方じゃないもの。
それに別にその人次第で「輪」に入っていくことなんていくらでもできただろうしね。
実際にいつの間にか「輪」に入っていた人はいたと思うし。
でも「こうあるべき」というものは徐々に出来上がっていく。
結局ハイクの多くの部分に影響を与えるのはこの「思い込み」の類なんじゃないだろうか。
ハイクの一部分はこの「思い込み」の輪の中で同じ事を繰り返してるだけなんじゃないだろうか。
以前も書いたが、利用者が気持ちよく利用できるようにユーザー同士の気遣いというのはある程度必要だと思う。
だけどそれは強要するものではない。
と、ここまで書いて「ルール」ってことについてふっと頭に思い浮かんだことが。
…24へ続く。
何か名前の響きからしてこんな感じの人を想像してたんだけど
でもいままでamachang発言((X)HTML+CSS しか出来ない人は真剣に第二の何かを探したほうがいい
とか)の反応ざっと見てきたけどid:amachang(とその周辺)が「マークアップエンジニア = (X)HTML+CSS しか出来ない人」として話を進めてるのにも関わらずそれについて反論があんまりないんだよな。「趣味じゃなくて仕事として(X)HTML(とCSS)を作成するためにはこれこれこういう知識が必要なんだよ」とか「マークアップエンジニアには(X)HTMLとCSSしかすることがないとでも思ってんのか馬鹿」とか言ったりするのかと思ったらほとんどそんなことなくて、むしろ同意ですとかそんなこと言われなくてもわかってるよとかJavaScriptだって同じじゃんとか見た感じそんなのばっかり。どうも俺の想像した職業とは違うらしい。
マークアップエンジニアって本当に(X)HTMLとCSSの知識だけで(X)HTMLとCSS書いてる人なの?反応見ててそもそも(X)HTMLとCSSに理解があるのかってこと自体にまで疑問を感じるんだけど。
/* Ten */
if (typeof(Ten) == 'undefined') {
Ten = {};
}
Ten.NAME = 'Ten';
Ten.VERSION = 0.06;
/* Ten.Class */
Ten.Class = function(klass, prototype) {
if (klass && klass.initialize) {
var c = klass.initialize;
} else if(klass && klass.base) {
var c = function() { return klass.base[0].apply(this, arguments) };
} else {
var c = function() {};
}
c.prototype = prototype || {};
c.prototype.constructor = c;
Ten.Class.inherit(c, klass);
if (klass && klass.base) {
for (var i = 0; i < klass.base.length; i++) {
var parent = klass.base[i];
if (i == 0) {
c.SUPER = parent;
c.prototype.SUPER = parent.prototype;
}
Ten.Class.inherit(c, parent);
Ten.Class.inherit(c.prototype, parent.prototype);
}
}
return c;
}
Ten.Class.inherit = function(child,parent) {
for (var prop in parent) {
if (typeof(child[prop]) != 'undefined' || prop == 'initialize') continue;
child[prop] = parent[prop];
}
}
/*
// Basic Ten Classes
**/
/* Ten.JSONP */
Ten.JSONP = new Ten.Class({
initialize: function(uri,obj,method) {
if (Ten.JSONP.Callbacks.length) {
setTimeout(function() {new Ten.JSONP(uri,obj,method)}, 500);
return;
}
var del = uri.match(/\?/) ? '&' : '?';
uri += del + 'callback=Ten.JSONP.callback';
if (!uri.match(/timestamp=/)) {
uri += '&' + encodeURI(new Date());
}
if (obj && method) Ten.JSONP.addCallback(obj,method);
this.script = document.createElement('script');
this.script.src = uri;
this.script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(this.script);
},
addCallback: function(obj,method) {
Ten.JSONP.Callbacks.push({object: obj, method: method});
},
callback: function(args) {
// alert('callback called');
var cbs = Ten.JSONP.Callbacks;
for (var i = 0; i < cbs.length; i++) {
var cb = cbs[i];
cb.object[cb.method].call(cb.object, args);
}
Ten.JSONP.Callbacks = [];
},
MaxBytes: 8000,
Callbacks: []
});
/* Ten.XHR */
Ten.XHR = new Ten.Class({
initialize: function(uri,opts,obj,method) {
if (!uri) return;
this.request = Ten.XHR.getXMLHttpRequest();
this.callback = {object: obj, method: method};
var xhr = this;
var prc = this.processReqChange;
this.request.onreadystatechange = function() {
prc.apply(xhr, arguments);
}
var method = opts.method || 'GET';
this.request.open(method, uri, true);
if (method == 'POST') {
this.request.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
}
var data = opts.data ? Ten.XHR.makePostData(opts.data) : null;
this.request.send(data);
},
getXMLHttpRequest: function() {
var xhr;
var tryThese = [
function () { return new XMLHttpRequest(); },
function () { return new ActiveXObject('Msxml2.XMLHTTP'); },
function () { return new ActiveXObject('Microsoft.XMLHTTP'); },
function () { return new ActiveXObject('Msxml2.XMLHTTP.4.0'); },
];
for (var i = 0; i < tryThese.length; i++) {
var func = tryThese[i];
try {
xhr = func;
return func();
} catch (e) {
//alert(e);
}
}
return xhr;
},
makePostData: function(data) {
var pairs = [];
var regexp = /%20/g;
for (var k in data) {
var v = data[k].toString();
var pair = encodeURIComponent(k).replace(regexp,'+') + '=' +
encodeURIComponent(v).replace(regexp,'+');
pairs.push(pair);
}
return pairs.join('&');
}
},{
processReqChange: function() {
var req = this.request;
if (req.readyState == 4) {
if (req.status == 200) {
var cb = this.callback;
cb.object[cb.method].call(cb.object, req);
} else {
alert("There was a problem retrieving the XML data:\n" +
req.statusText);
}
}
}
});
/* Ten.Observer */
Ten.Observer = new Ten.Class({
initialize: function(element,event,obj,method) {
var func = obj;
if (typeof(method) == 'string') {
func = obj[method];
}
this.element = element;
this.event = event;
this.listener = function(event) {
return func.call(obj, new Ten.Event(event || window.event));
}
if (this.element.addEventListener) {
if (this.event.match(/^on(.+)$/)) {
this.event = RegExp.$1;
}
this.element.addEventListener(this.event, this.listener, false);
} else if (this.element.attachEvent) {
this.element.attachEvent(this.event, this.listener);
}
}
},{
stop: function() {
if (this.element.removeEventListener) {
this.element.removeEventListener(this.event,this.listener,false);
} else if (this.element.detachEvent) {
this.element.detachEvent(this.event,this.listener);
}
}
});
/* Ten.Event */
Ten.Event = new Ten.Class({
initialize: function(event) {
this.event = event;
},
keyMap: {
8:"backspace", 9:"tab", 13:"enter", 19:"pause", 27:"escape", 32:"space",
33:"pageup", 34:"pagedown", 35:"end", 36:"home", 37:"left", 38:"up",
39:"right", 40:"down", 44:"printscreen", 45:"insert", 46:"delete",
112:"f1", 113:"f2", 114:"f3", 115:"f4", 116:"f5", 117:"f6", 118:"f7",
119:"f8", 120:"f9", 121:"f10", 122:"f11", 123:"f12",
144:"numlock", 145:"scrolllock"
}
},{
mousePosition: function() {
if (!this.event.clientX) return;
return Ten.Geometry.getMousePosition(this.event);
},
isKey: function(name) {
var ecode = this.event.keyCode;
if (!ecode) return;
var ename = Ten.Event.keyMap[ecode];
if (!ename) return;
return (ename == name);
},
targetIsFormElements: function() {
var target = this.event.target;
if (!target) return;
var T = (target.tagName || '').toUpperCase();
return (T == 'INPUT' || T == 'SELECT' || T == 'OPTION' ||
T == 'BUTTON' || T == 'TEXTAREA');
},
stop: function() {
var e = this.event;
if (e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
} else {
e.cancelBubble = true;
e.returnValue = false;
}
}
});
/* Ten.DOM */
Ten.DOM = new Ten.Class({
getElementsByTagAndClassName: function(tagName, className, parent) {
if (typeof(parent) == 'undefined') {
parent = document;
}
var children = parent.getElementsByTagName(tagName);
if (className) {
var elements = [];
for (var i = 0; i < children.length; i++) {
var child = children[i];
var cls = child.className;
if (!cls) {
continue;
}
var classNames = cls.split(' ');
for (var j = 0; j < classNames.length; j++) {
if (classNames[j] == className) {
elements.push(child);
break;
}
}
}
return elements;
} else {
return children;
}
},
removeEmptyTextNodes: function(element) {
var nodes = element.childNodes;
for (var i = 0; i < nodes.length; i++) {
var node = nodes[i];
if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
node.parentNode.removeChild(node);
}
}
},
nextElement: function(elem) {
do {
elem = elem.nextSibling;
} while (elem && elem.nodeType != 1);
return elem;
},
prevElement: function(elem) {
do {
elem = elem.previousSibling;
} while (elem && elem.nodeType != 1);
return elem;
},
scrapeText: function(node) {
var rval = [];
(function (node) {
var cn = node.childNodes;
if (cn) {
for (var i = 0; i < cn.length; i++) {
arguments.callee.call(this, cn[i]);
}
}
var nodeValue = node.nodeValue;
if (typeof(nodeValue) == 'string') {
rval.push(nodeValue);
}
})(node);
return rval.join('');
},
onLoadFunctions: [],
loaded: false,
timer: null,
addEventListener: function(event,func) {
if (event != 'load') return;
Ten.DOM.onLoadFunctions.push(func);
Ten.DOM.checkLoaded();
},
checkLoaded: function() {
var c = Ten.DOM;
if (c.loaded) return true;
if (document && document.getElementsByTagName &&
document.getElementById && document.body) {
if (c.timer) {
clearInterval(c.timer);
c.timer = null;
}
for (var i = 0; i < c.onLoadFunctions.length; i++) {
c.onLoadFunctions[i]();
}
c.onLoadFunctions = [];
c.loaded = true;
} else {
c.timer = setInterval(c.checkLoaded, 13);
}
}
});
/* Ten.Style */
Ten.Style = new Ten.Class({
applyStyle: function(elem, style) {
for (prop in style) {
elem.style[prop] = style[prop];
}
}
});
/* Ten.Geometry */
Ten.Geometry = new Ten.Class({
initialize: function() {
if (Ten.Geometry._initialized) return;
var func = Ten.Geometry._functions;
var de = document.documentElement;
if (window.innerWidth) {
func.getWindowWidth = function() { return window.innerWidth; }
func.getWindowHeight = function() { return window.innerHeight; }
func.getXScroll = function() { return window.pageXOffset; }
func.getYScroll = function() { return window.pageYOffset; }
} else if (de && de.clientWidth) {
func.getWindowWidth = function() { return de.clientWidth; }
func.getWindowHeight = function() { return de.clientHeight; }
func.getXScroll = function() { return de.scrollLeft; }
func.getYScroll = function() { return de.scrollTop; }
} else if (document.body.clientWidth) {
func.getWindowWidth = function() { return document.body.clientWidth; }
func.getWindowHeight = function() { return document.body.clientHeight; }
func.getXScroll = function() { return document.body.scrollLeft; }
func.getYScroll = function() { return document.body.scrollTop; }
}
Ten.Geometry._initialized = true;
},
_initialized: false,
_functions: {},
getScroll: function() {
if (!Ten.Geometry._initialized) new Ten.Geometry;
return {
x: Ten.Geometry._functions.getXScroll(),
y: Ten.Geometry._functions.getYScroll()
};
},
getMousePosition: function(pos) {
// pos should have clientX, clientY same as mouse event
if ((navigator.userAgent.indexOf('Safari') > -1) &&
(navigator.userAgent.indexOf('Version/') < 0)) {
return {
x: pos.clientX,
y: pos.clientY
};
} else {
var scroll = Ten.Geometry.getScroll();
return {
x: pos.clientX + scroll.x,
y: pos.clientY + scroll.y
};
}
},
getElementPosition: function(e) {
return {
x: e.offsetLeft,
y: e.offsetTop
};
},
getWindowSize: function() {
if (!Ten.Geometry._initialized) new Ten.Geometry;
return {
w: Ten.Geometry._functions.getWindowWidth(),
h: Ten.Geometry._functions.getWindowHeight()
};
}
});
/* Ten.Position */
Ten.Position = new Ten.Class({
initialize: function(x,y) {
this.x = x;
this.y = y;
},
subtract: function(a,b) {
return new Ten.Position(a.x - b.x, a.y - b.y);
}
});
/*
// require Ten.js
**/
/* Ten.SubWindow */
Ten.SubWindow = new Ten.Class({
initialize: function() {
var c = this.constructor;
if (c.singleton && c._cache) {
return c._cache;
}
var div = document.createElement('div');
Ten.Style.applyStyle(div, Ten.SubWindow._baseStyle);
Ten.Style.applyStyle(div, c.style);
this.window = div;
this.addContainerAndCloseButton();
document.body.appendChild(div);
if (c.draggable) {
this._draggable = new Ten.Draggable(div, this.handle);
}
if (c.singleton) c._cache = this;
return this;
},
_baseStyle: {
color: '#000',
position: 'absolute',
display: 'none',
zIndex: 2,
left: 0,
top: 0,
backgroundColor: '#fff',
border: '1px solid #bbb'
},
style: {
padding: '2px',
textAlign: 'center',
borderRadius: '6px',
MozBorderRadius: '6px',
width: '100px',
height: '100px'
},
handleStyle: {
position: 'absolute',
top: '0px',
left: '0px',
backgroundColor: '#f3f3f3',
borderBottom: '1px solid #bbb',
width: '100%',
height: '30px'
},
containerStyle: {
margin: '32px 0 0 0',
padding: '0 10px'
},
// closeButton: 'close.gif',
closeButton: 'http://s.hatena.com/images/close.gif',
closeButtonStyle: {
position: 'absolute',
top: '8px',
right: '10px',
cursor: 'pointer'
},
_baseScreenStyle: {
position: 'absolute',
top: '0px',
left: '0px',
display: 'none',
zIndex: 1,
overflow: 'hidden',
width: '100%',
height: '100%'
},
screenStyle: {},
showScreen: true,
singleton: true,
draggable: true,
_cache: null
},{
screen: null,
windowObserver: null,
visible: false,
addContainerAndCloseButton: function() {
var win = this.window;
var c = this.constructor;
var div = document.createElement('div');
win.appendChild(div);
Ten.Style.applyStyle(div, c.containerStyle);
this.container = div;
if (c.handleStyle) {
var handle = document.createElement('div');
Ten.Style.applyStyle(handle, c.handleStyle);
win.appendChild(handle);
this.handle = handle;
}
if (c.closeButton) {
var btn = document.createElement('img');
btn.src = c.closeButton;
btn.alt = 'close';
Ten.Style.applyStyle(btn, c.closeButtonStyle);
win.appendChild(btn);
new Ten.Observer(btn, 'onclick', this, 'hide');
this.closeButton = btn;
}
if (c.showScreen) {
var screen = document.createElement('div');
Ten.Style.applyStyle(screen, Ten.SubWindow._baseScreenStyle);
Ten.Style.applyStyle(screen, c.screenStyle);
document.body.appendChild(screen);
this.screen = screen;
new Ten.Observer(screen, 'onclick', this, 'hide');
}
},
show: function(pos) {
pos = (pos.x && pos.y) ? pos : {x:0, y:0};
with (this.window.style) {
display = 'block';
left = pos.x + 'px';
top = pos.y + 'px';
}
if (this.screen) {
with (this.screen.style) {
display = 'block';
left = Ten.Geometry.getScroll().x + 'px';
top = Ten.Geometry.getScroll().y + 'px';
}
}
this.windowObserver = new Ten.Observer(document.body, 'onkeypress', this, 'handleEscape');
this.visible = true;
},
handleEscape: function(e) {
if (!e.isKey('escape')) return;
this.hide();
},
hide: function() {
if (this._draggable) this._draggable.endDrag();
this.window.style.display = 'none';
if (this.screen) this.screen.style.display = 'none';
if (this.windowObserver) this.windowObserver.stop();
this.visible = false;
}
});
/* Ten.Draggable */
Ten.Draggable = new Ten.Class({
initialize: function(element,handle) {
this.element = element;
this.handle = handle || element;
this.startObserver = new Ten.Observer(this.handle, 'onmousedown', this, 'startDrag');
this.handlers = [];
}
},{
startDrag: function(e) {
if (e.targetIsFormElements()) return;
this.delta = Ten.Position.subtract(
e.mousePosition(),
Ten.Geometry.getElementPosition(this.element)
);
this.handlers = [
new Ten.Observer(document, 'onmousemove', this, 'drag'),
new Ten.Observer(document, 'onmouseup', this, 'endDrag'),
new Ten.Observer(this.element, 'onlosecapture', this, 'endDrag')
];
e.stop();
},
drag: function(e) {
var pos = Ten.Position.subtract(e.mousePosition(), this.delta);
Ten.Style.applyStyle(this.element, {
left: pos.x + 'px',
top: pos.y + 'px'
});
e.stop();
},
endDrag: function(e) {
for (var i = 0; i < this.handlers.length; i++) {
this.handlers[i].stop();
}
if(e) e.stop();
}
});
/* Hatena */
if (typeof(Hatena) == 'undefined') {
Hatena = {};
}
/* Hatena.User */
Hatena.User = new Ten.Class({
initialize: function(name) {
this.name = name;
},
getProfileIcon: function(name) {
if (!name) name = 'user';
var pre = name.match(/^[\w-]{2}/)[0];
var img = document.createElement('img');
img.src = 'http://www.hatena.ne.jp/users/' + pre + '/' + name + '/profile_s.gif';
img.alt = name;
img.setAttribute('class', 'profile-icon');
img.setAttribute('width','16px');
img.setAttribute('height','16px');
with (img.style) {
margin = '0 3px';
border = 'none';
verticalAlign = 'middle';
}
return img;
}
}, {
profileIcon: function() {
return Hatena.User.getProfileIcon(this.name);
}
});
/* Hatena.Star */
if (typeof(Hatena.Star) == 'undefined') {
Hatena.Star = {};
}
/*
// Hatena.Star.* classes //
**/
if (window.location && window.location.host.match(/hatena\.com/)) {
Hatena.Star.BaseURL = 'http://s.hatena.com/';
} else {
Hatena.Star.BaseURL = 'http://s.hatena.ne.jp/';
}
Hatena.Star.Token = null;
/* Hatena.Star.User */
Hatena.Star.User = new Ten.Class({
base: [Hatena.User],
initialize: function(name) {
if (Hatena.Star.User._cache[name]) {
return Hatena.Star.User._cache[name];
} else {
this.name = name;
Hatena.Star.User._cache[name] = this;
return this;
}
},
_cache: {}
},{
userPage: function() {
return Hatena.Star.BaseURL + this.name + '/';
}
});
/* Hatena.Star.Entry */
Hatena.Star.Entry = new Ten.Class({
initialize: function(e) {
this.entry = e;
this.uri = e.uri;
this.title = e.title;
this.star_container = e.star_container;
this.comment_container = e.comment_container;
this.stars = [];
this.comments = [];
},
maxStarCount: 11
},{
flushStars: function() {
this.stars = [];
this.star_container.innerHTML = '';
},
bindStarEntry: function(se) {
this.starEntry = se;
for (var i = 0; i < se.stars.length; i++) {
if (typeof(se.stars[i]) == 'number') {
this.stars.push(new Hatena.Star.InnerCount(se.stars[i],this));
} else {
this.stars.push(new Hatena.Star.Star(se.stars[i]));
}
}
if (se.comments && !this.comments.length) {
for (var i = 0; i < se.comments.length; i++) {
this.comments.push(new Hatena.Star.Comment(se.comments[i]));
}
}
this.can_comment = se.can_comment;
},
setCanComment: function(v) {
this.can_comment = v;
},
showButtons: function() {
this.addAddButton();
this.addCommentButton();
},
addAddButton: function() {
if (this.star_container) {
this.addButton = new Hatena.Star.AddButton(this);
this.star_container.appendChild(this.addButton);
}
},
addCommentButton: function() {
if (this.comment_container) {
this.commentButton = new Hatena.Star.CommentButton(this);
this.comment_container.appendChild(this.commentButton.img);
}
},
showStars: function() {
var klass = this.constructor;
// if (this.stars.length > klass.maxStarCount) {
// var ic = new Hatena.Star.InnerCount(this.stars.slice(1,this.stars.length));
// this.star_container.appendChild(this.stars[0]);
// this.star_container.appendChild(ic);
// this.star_container.appendChild(this.stars[this.stars.length - 1]);
// } else {
for (var i = 0; i < this.stars.length; i++) {
this.star_container.appendChild(this.stars[i]);
}
},
showCommentButton: function() {
if (this.can_comment) {
this.commentButton.show();
if (this.comments.length) this.commentButton.activate();
} else {
// this.commentButton.hide();
}
},
addStar: function(star) {
this.stars.push(star);
this.star_container.appendChild(star);
},
addComment: function(com) {
if (!this.comments) this.comments = [];
if (this.comments.length == 0) {
this.commentButton.activate();
}
this.comments.push(com);
},
showCommentCount: function() {
this.comment_container.innerHTML += this.comments.length;
}
});
/* Hatena.Star.Button */
Hatena.Star.Button = new Ten.Class({
createButton: function(args) {
var img = document.createElement('img');
img.src = args.src;
img.alt = img.title = args.alt;
with (img.style) {
cursor = 'pointer';
margin = '0 3px';
padding = '0';
border = 'none';
verticalAlign = 'middle';
}
return img;
}
});
/* Hatena.Star.AddButton */
Hatena.Star.AddButton = new Ten.Class({
base: ['Hatena.Star.Button'],
initialize: function(entry) {
this.entry = entry;
this.lastPosition = null;
var img = Hatena.Star.Button.createButton({
src: Hatena.Star.AddButton.ImgSrc,
alt: 'Add Star'
});
this.observer = new Ten.Observer(img,'onclick',this,'addStar');
this.img = img;
return img;
},
ImgSrc: Hatena.Star.BaseURL + 'images/add.gif'
},{
addStar: function(e) {
this.lastPosition = e.mousePosition();
var uri = Hatena.Star.BaseURL + 'star.add.json?uri=' + encodeURIComponent(this.entry.uri) +
'&title=' + encodeURIComponent(this.entry.title);
if (Hatena.Star.Token) {
uri += '&token=' + Hatena.Star.Token;
}
new Ten.JSONP(uri, this, 'receiveResult');
},
receiveResult: function(args) {
var name = args ? args.name : null;
if (name) {
this.entry.addStar(new Hatena.Star.Star({name: name}));
//alert('Succeeded in Adding Star ' + args);
} else if (args.errors) {
var pos = this.lastPosition;
pos.x -= 10;
pos.y += 25;
var scroll = Ten.Geometry.getScroll();
var scr = new Hatena.Star.AlertScreen();
var alert = args.errors[0];
scr.showAlert(alert, pos);
}
}
});
/* Hatena.Star.CommentButton */
Hatena.Star.CommentButton = new Ten.Class({
base: ['Hatena.Star.Button'],
initialize: function(entry) {
this.entry = entry;
this.lastPosition = null;
var img = Hatena.Star.Button.createButton({
src: Hatena.Star.CommentButton.ImgSrc,
alt: 'Comments'
});
img.style.display = 'none';
this.observer = new Ten.Observer(img,'onclick',this,'showComments');
this.img = img;
},
ImgSrc: Hatena.Star.BaseURL + 'images/comment.gif',
ImgSrcActive: Hatena.Star.BaseURL + 'images/comment_active.gif'
},{
showComments: function(e) {
if (!this.screen) this.screen = new Hatena.Star.CommentScreen();
this.screen.bindEntry(this.entry);
var pos = e.mousePosition();
pos.y += 25;
this.screen.showComments(this.entry, pos);
},
hide: function() {
this.img.style.display = 'none';
},
show: function() {
this.img.style.display = 'inline';
},
activate: function() {
this.show();
this.img.src = Hatena.Star.CommentButton.ImgSrcActive;
}
});
/* Hatena.Star.Star */
Hatena.Star.Star = new Ten.Class({
initialize: function(args) {
if (args.img) {
this.img = args.img;
this.name = this.img.getAttribute('alt');
} else {
this.name = args.name;
var img = document.createElement('img');
img.src = Hatena.Star.Star.ImgSrc;
img.alt = this.name;
with (img.style) {
padding = '0';
border = 'none';
}
this.img = img;
}
new Ten.Observer(this.img,'onmouseover',this,'showName');
new Ten.Observer(this.img,'onmouseout',this,'hideName');
if (this.name) {
this.user = new Hatena.Star.User(this.name);
this.img.style.cursor = 'pointer';
new Ten.Observer(this.img,'onclick',this,'goToUserPage');
}
if (args.count && args.count > 1) {
var c = document.createElement('span');
c.setAttribute('class', 'hatena-star-inner-count');
Ten.Style.applyStyle(c, Hatena.Star.InnerCount.style);
c.innerHTML = args.count;
var s = document.createElement('span');
s.appendChild(img);
s.appendChild(c);
return s;
} else {
return this.img;
}
},
ImgSrc: Hatena.Star.BaseURL + 'images/star.gif'
},{
showName: function(e) {
if (!this.screen) this.screen = new Hatena.Star.NameScreen();
var pos = e.mousePosition();
pos.x += 10;
pos.y += 25;
this.screen.showName(this.name, pos);
},
hideName: function() {
if (!this.screen) return;
this.screen.hide();
},
goToUserPage: function() {
window.location = this.user.userPage();
}
});
/* Hatena.Star.InnerCount */
Hatena.Star.InnerCount = new Ten.Class({
initialize: function(count, e) {
this.count = count;
this.entry = e;
var c = document.createElement('span');
c.setAttribute('class', 'hatena-star-inner-count');
Ten.Style.applyStyle(c, Hatena.Star.InnerCount.style);
c.style.cursor = 'pointer';
c.innerHTML = count;
new Ten.Observer(c,'onclick',this,'showInnerStars');
this.container = c;
return c;
},
style: {
color: '#f4b128',
fontWeight: 'bold',
fontSize: '80%',
fontFamily: '"arial", sans-serif',
margin: '0 2px'
}
},{
showInnerStars: function() {
var url = Hatena.Star.BaseURL + 'entry.json?uri=' +
encodeURIComponent(this.entry.uri);
new Ten.JSONP(url, this, 'receiveStarEntry');
},
receiveStarEntry: function(res) {
var se = res.entries[0];
var e = this.entry;
if (encodeURIComponent(se.uri) != encodeURIComponent(e.uri)) return;
e.flushStars();
e.bindStarEntry(se);
e.addAddButton();
e.showStars();
}
});
/* Hatena.Star.Comment */
Hatena.Star.Comment = new Ten.Class({
initialize: function(args) {
this.name = args.name;
this.body = args.body;
}
},{
asElement: function() {
var div = document.createElement('div');
with (div.style) {
margin = '0px 0';
padding = '5px 0';
borderBottom = '1px solid #ddd';
}
var ico = Hatena.User.getProfileIcon(this.name);
div.appendChild(ico);
var span = document.createElement('span');
with(span.style) {
fontSize = '90%';
}
span.innerHTML = this.body;
div.appendChild(span);
return div;
}
});
/* Hatena.Star.NameScreen */
Hatena.Star.NameScreen = new Ten.Class({
base: [Ten.SubWindow],
style: {
padding: '2px',
textAlign: 'center'
},
containerStyle: {
margin: 0,
padding: 0
},
handleStyle: null,
showScreen: false,
closeButton: null,
draggable: false
},{
showName: function(name, pos) {
this.container.innerHTML = '';
this.container.appendChild(Hatena.User.getProfileIcon(name));
this.container.appendChild(document.createTextNode(name));
this.show(pos);
}
});
/* Hatena.Star.AlertScreen */
Hatena.Star.AlertScreen = new Ten.Class({
base: [Ten.SubWindow],
style: {
padding: '2px',
textAlign: 'center',
borderRadius: '6px',
MozBorderRadius: '6px',
width: '240px',
height: '120px'
},
handleStyle: {
position: 'absolute',
top: '0px',
left: '0px',
backgroundColor: '#f3f3f3',
borderBottom: '1px solid #bbb',
width: '100%',
height: '30px',
borderRadius: '6px 6px 0 0',
MozBorderRadius: '6px 6px 0 0'
}
},{
showAlert: function(msg, pos) {
this.container.innerHTML = msg;
var win = Ten.Geometry.getWindowSize();
var scr = Ten.Geometry.getScroll();
var w = parseInt(this.constructor.style.width) + 20;
if (pos.x + w > scr.x + win.w) pos.x = win.w + scr.x - w;
this.show(pos);
}
});
/* Hatena.Star.CommentScreen */
Hatena.Star.CommentScreen = new Ten.Class({
base: [Ten.SubWindow],
initialize: function() {
var self = this.constructor.SUPER.call(this);
if (!self.commentsContainer) self.addCommentsContainer();
return self;
},
style: {
width: '280px',
height: '280px',
overflowY: 'auto',
padding: '2px',
textAlign: 'center',
borderRadius: '6px',
MozBorderRadius: '6px'
},
handleStyle: {
position: 'absolute',
top: '0px',
left: '0px',
backgroundColor: '#f3f3f3',
borderBottom: '1px solid #bbb',
width: '100%',
height: '30px',
borderRadius: '6px 6px 0 0',
MozBorderRadius: '6px 6px 0 0'
},
containerStyle: {
margin: '32px 0 0 0',
textAlign: 'left',
padding: '0 10px'
},
getLoadImage: function() {
var img = document.createElement('img');
img.src = Hatena.Star.BaseURL + 'images/load.gif';
img.setAttribute('alt', 'Loading');
with (img.style) {
verticalAlign = 'middle';
margin = '0 2px';
}
return img;
}
},{
addCommentsContainer: function() {
var div = document.createElement('div');
with (div.style) {
marginTop = '-3px';
}
this.container.appendChild(div);
this.commentsContainer = div;
},
showComments: function(e, pos) {
var comments = e.comments;
if (!comments) comments = [];
this.commentsContainer.innerHTML = '';
for (var i=0; i<comments.length; i++) {
this.commentsContainer.appendChild(comments[i].asElement());
}
if (e.starEntry && !e.can_comment) {
this.hideCommentForm();
} else {
this.addCommentForm();
}
var win = Ten.Geometry.getWindowSize();
var scr = Ten.Geometry.getScroll();
var w = parseInt(this.constructor.style.width) + 20;
if (pos.x + w > scr.x + win.w) pos.x = win.w + scr.x - w;
this.show(pos);
},
bindEntry: function(e) {
this.entry = e;
},
sendComment: function(e) {
if (!e.isKey('enter')) return;
var body = this.commentInput.value;
if (!body) return;
this.commentInput.disabled = 'true';
this.showLoadImage();
var url = Hatena.Star.BaseURL + 'comment.add.json?body=' + encodeURIComponent(body) +
'&uri=' + encodeURIComponent(this.entry.uri) +
'&title=' + encodeURIComponent(this.entry.title);
new Ten.JSONP(url, this, 'receiveResult');
},
receiveResult: function(args) {
if (!args.name || !args.body) return;
this.commentInput.value = '';
this.commentInput.disabled = '';
this.hideLoadImage();
var com = new Hatena.Star.Comment(args);
this.entry.addComment(com);
this.commentsContainer.appendChild(com.asElement());
},
showLoadImage: function() {
if (!this.loadImage) return;
this.loadImage.style.display = 'inline';
},
hideLoadImage: function() {
if (!this.loadImage) return;
this.loadImage.style.display = 'none';
},
hideCommentForm: function() {
if (!this.commentForm) return;
this.commentForm.style.display = 'none';
},
addCommentForm: function() {
if (this.commentForm) {
this.commentForm.style.display = 'block';
return;
}
var form = document.createElement('div');
this.container.appendChild(form);
this.commentForm = form;
with (form.style) {
margin = '0px 0';
padding = '5px 0';
// borderTop = '1px solid #ddd';
}
//if (Hatena.Visitor) {
// form.appendChild(Hatena.Visitor.profileIcon());
//} else {
// form.appendChild(Hatena.User.getProfileIcon());
//}
var input = document.createElement('input');
input.type = 'text';
with (input.style) {
width = '215px';
border = '1px solid #bbb';
padding = '3px';
}
form.appendChild(input);
this.commentInput = input;
var img = this.constructor.getLoadImage();
this.loadImage = img;
this.hideLoadImage();
form.appendChild(img);
new Ten.Observer(input,'onkeypress',this,'sendComment');
}
});
/* Hatena.Star.EntryLoader */
Hatena.Star.EntryLoader = new Ten.Class({
initialize: function() {
var entries = Hatena.Star.EntryLoader.loadEntries();
this.entries = [];
for (var i = 0; i < entries.length; i++) {
var e = new Hatena.Star.Entry(entries[i]);
e.showButtons();
this.entries.push(e);
}
this.getStarEntries();
},
createStarContainer: function() {
var sc = document.createElement('span');
sc.setAttribute('class', 'hatena-star-star-container');
sc.style.marginLeft = '1px';
return sc;
},
createCommentContainer: function() {
var cc = document.createElement('span');
cc.setAttribute('class', 'hatena-star-comment-container');
cc.style.marginLeft = '1px';
return cc;
},
scrapeTitle: function(node) {
var rval = [];
(function (node) {
if (node.tagName == 'SPAN' &&
(node.className == 'sanchor' ||
node.className == 'timestamp')) {
return;
} else if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
return;
}
var cn = node.childNodes;
if (cn) {
for (var i = 0; i < cn.length; i++) {
arguments.callee.call(this, cn[i]);
}
}
var nodeValue = node.nodeValue;
if (typeof(nodeValue) == 'string') {
rval.push(nodeValue);
}
})(node);
return rval.join('');
},
headerTagAndClassName: ['h3',null],
getHeaders: function() {
var t = Hatena.Star.EntryLoader.headerTagAndClassName;
return Ten.DOM.getElementsByTagAndClassName(t[0],t[1],document);
},
loadEntries: function() {
var entries = [];
//var headers = document.getElementsByTagName('h3');
var c = Hatena.Star.EntryLoader;
var headers = c.getHeaders();
for (var i = 0; i < headers.length; i++) {
var header = headers[i];
var a = header.getElementsByTagName('a')[0];
if (!a) continue;
var uri = a.href;
var title = '';
// Ten.DOM.removeEmptyTextNodes(header);
var cns = header.childNodes;
title = c.scrapeTitle(header);
var cc = c.createCommentContainer();
header.appendChild(cc);
var sc = c.createStarContainer();
header.appendChild(sc);
entries.push({
uri: uri,
title: title,
star_container: sc,
comment_container: cc
});
}
return entries;
}
},{
getStarEntries: function() {
var url = Hatena.Star.BaseURL + 'entries.json?';
for (var i = 0; i < this.entries.length; i++) {
if (url.length > Ten.JSONP.MaxBytes) {
new Ten.JSONP(url, this, 'receiveStarEntries');
url = Hatena.Star.BaseURL + 'entries.json?';
}
url += 'uri=' + encodeURIComponent(this.entries[i].uri) + '&';
}
new Ten.JSONP(url, this, 'receiveStarEntries');
},
receiveStarEntries: function(res) {
var entries = res.entries;
if (!entries) entries = [];
for (var i = 0; i < this.entries.length; i++) {
var e = this.entries[i];
for (var j = 0; j < entries.length; j++) {
var se = entries[j];
if (!se.uri) continue;
if (encodeURIComponent(se.uri) == encodeURIComponent(e.uri)) {
e.bindStarEntry(se);
entries.splice(j,1);
break;
}
}
if (typeof(e.can_comment) == 'undefined') {
e.setCanComment(res.can_comment);
}
e.showStars();
e.showCommentButton();
}
}
});
/* Hatena.Star.WindowObserver */
Hatena.Star.WindowObserver = new Ten.Class({
initialize: funct