はてなキーワード: screenとは
Digital camera battery is the key for the key, second in importance only lens I’m afraid, and in order to photograph in your heart, a powerful battery to provide power as a follow-up is essential. But even the best battery time, if not properly carry out maintenance and maintenance, will not take long to lose the strong power, so battery maintenance is very important.
Battery Maintenance
For a (section) digital camera battery for the duration of use, not just its quality, power on, in fact, the use of operations with the user also has great relevance. Most photographers are used after every use of the camera on the camera bag inside, or on the cupboard, took out the battery is not kept separately, this approach sounds fine, but not conducive to battery protection.
If more than 15 days do not usually use the camera, it is best to remove the battery from the camera inside the store alone, save the environment, it is best to dry and cool place, and do not store the battery together with metal objects.
According to our survey, you can buy in the market most digital cameras use lithium batteries, it is relatively easy to store. The only caveat is that if not used for long, preferably at intervals of 2 months to activate a battery, which is the charge and discharge time, this can effectively extend battery life.
As for the Ni-MH battery 5, the most annoying is the memory effect, this effect will reduce the overall battery capacity and the use of time, and as time goes on, less and less stored charge, the battery will consume the more you have to faster. Therefore, we should try to run out of power rechargeable, each charge must be sufficient to power the most full.
If you go out, the temporary use of alkaline batteries, we must remember that time out, or when unused for long periods, the battery is easy to Tangshui corrosion circuit, the digital camera battery could not escape the destiny scrapped.
For users of alkaline batteries, already mentioned above, remember the point is finished using the digital camera, remove the battery must remember to avoid the phenomenon of cell sap and damage the machine.
As for the use of rechargeable nickel-metal hydride batteries and lithium users. Battery charge is very particular about, bought back the batteries are generally very low or no power consumption, the first charge must be adequate. Lithium battery charging time is generally longer than 8 hours, while the Ni-MH battery charging time is generally more than 16 hours. To achieve best results, that is, the battery has reached its maximum capacity, generally more than 3 times repeated charge-discharge can. Battery with three times, the best opportunity to find a completely exhausted battery to charge again, try not to charge the battery when there are remnants of repeated charge, or will shorten battery life. After the battery charge is generally more heat, it is best to be cool and then into the camera battery.
But note that lithium batteries because there is no memory effect, so do not discharge, otherwise it will damage the digital camera battery structure, loss of battery life.
In addition, in order to avoid the loss of electricity, the use of nickel-metal hydride battery user, charging is completed, remove the battery, do not let the battery contact with the conductor while the positive and negative poles, for example, do not use your fingers touch both ends of the battery. The use of lithium users should try to keep the camera inside the battery positive and negative battery contacts clean, if necessary, wipe with a dry cloth and then gently wipe the battery.
Also note that, even if the user is to use lithium batteries, digital camera in a long time when not in use, should be completely discharged, remove the battery, stored in a dry, cool environment. The other thing to note is that both the nickel-hydrogen batteries or lithium batteries using the user, it is best not to have a charged battery on the purse, pocket, bag or container with metal objects, in order to prevent short-circuit .
Digital camera battery power Dafa:
1, to avoid frequent use of flash: If you are not professional photographers, then, except in the invisible fingers of the night, the light intensity of an ordinary day for the average digital camera, it is enough.
2, try to avoid unnecessary zoom operation: zoom the camera lens stretched it out a reduction, is power digital camera battery. You can move the pace of hyperactivity, with “artificial zoom” approach instead of “camera zoom” to save power.
3, Do not let the screen has been lit: If the case of small power, can turn off the LCD screen, use the viewfinder to adjust the picture composition, is for a digital camera, LCD should be considered the most power-hungry components, general digital camera, LCD screen after closing time can be used when the original length of about 3 times.
4, less shooting and video: minimize the use of multi-shot feature and video capture video, as the completion of these functions is to use the built-in buffer body to temporarily save the screen shot, the power consumption a lot.
5, should not frequently open, shut down: Many users know that the display stays lit is power, so in order to save electricity use to frequent opening and shutdown. In fact, frequently open, shut down the electricity wasted consumption than bright display even more, especially for larger diameter lenses, but also requires a substantial expansion of the camera, the switch is power. Most digital cameras have automatic shutdown option, this setting should not be set too short, otherwise easily lead to frequent opening and shut down. Of course, frequent artificial opening, shut down and should be avoided.
6, optical image stabilization not normally open: Optical image stabilization is by driving the lens or image sensor pack components, offset by the subject matter images and the relative motion between the sensor achieved. Either way the optical image stabilization, would result in no small power consumption, in particular some models can be anti-shake mode is set to “always on” so that power loss will be caused by the more powerful. To this end, we have a good scene in the light should turn off the optical image stabilization feature, you must use, should also be less “always on” mode.
___________________________________________________
http://www.gobatteryonline.com/canon-powershot-sd600-battery-charger-gose.html
http://www.gobatteryonline.com/canon-powershot-sd630-battery-charger-gose.html
http://www.gobatteryonline.com/canon-nb-7l-digital-camera-battery-gose.html
やー。面倒でした。
古い情報だと 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
こんばんは! チキンなandroidユーザです! まわりのiPhoneユーザのドヤ顔がイラっときてしょうがないので、安全な所に隠れつつ軽くdisる活動を続けてます!
http://goryugo.com/20110512/iphonehome-3/
iPhoneのホームで「俺はこんなに生産性が高いんだぜ!」って主張するドヤ顔が透けて見える。iPhone自体の生産性の低さに気がつかないのが痛い。中でも吹いたのが
気持ちわるいです。
なにiPhoneってこんな涙ぐましいことしないといけないの…怖い。
スクリーンショットを超快適にiPhoneからPCに転送することも出来るし、もちろんEvernoteに自由自在に写真を転送出来たり、とにかくこれでもかと何でも出来る。
標準のアプリ連携の設計が糞すぎるだけだろ。これで使い易いとか何それ馬鹿じゃないの?
涙ぐましい努力。ひどい日本語入力を押し付けられてても「Jobs様のやることだから」って従っちゃうユーザ。
なんつーか、iPhoneというものがひどいものだということがよくわかった。Androidも「UIがダサい」とか言われるし、見た目は確かにダサいけど、アプリ間の連携(インテント)を使うことで、ちょっとした小物でどんどん便利になる(「画面メモ」とかね)。こんな「アプリ毎に断絶した」いびつな世界 = iOS に未来があるとは思えない。
UK版ファームにはまだ通知がこないので、Nordic あたりに偽装して試してみる。
■準備
12:55 まずは準備。母艦に入ってたソニエリの Update Service をアンインストールした。
13:00 Titanium Backup http://tinyurl.com/22rxwqc でアプリをバックアップした。
13:01 純正のバックアップツールで SMS/MMS をバックアップ。
13:05 APN Backup Restore http://tinyurl.com/26t6pq7 で APN 設定をバックアップ
13:08 (念のため) SMS Backup+ http://tinyurl.com/24kv56y で SMS/MMS を gmail にバックアップしておこう
13:17 SMS しかバックアップ取れてないぞ。ま、いいか。準備完了。
■いよいよアップデート
13:17 build.prop を書き換えよう。Xda developers http://forum.xda-developers.com/ に情報探しに行く
13:21 日本語の情報あるじゃねーか。。。http://tinyurl.com/2uzugyk http://tinyurl.com/2fu9xsy
13:23 build.prop の 1238-0199 を 1238-8536 に書き換え。要 root
ro.product.name=U20i_1238-8536
ro.build.fingerprint=SEMC/U20i_1238-8536/SonyEricssonU20i/delta:1.6/1.1.A.0.8/1:user/release-keys
ro.semc.version.cust=1238-8536
13:30 ここら辺 http://tinyurl.com/ydjr8jg から Update Service をインストール
13:36 ダメだ。最新のソフトウェアがインストールされています、だそうだ。
娘が起きてしまったので一旦中断
15:50 再開。Update Service をアンインストール、PC 再起動、再インストール
15:59 Back ボタンを押しながら USB 接続すると、アップデートがあります、だそうだ。
16:05 アップデート完了。
■root
16:24 ここら辺 http://juggly.cn/archives/12187.html を読みながら SuperOneClick で root 化。5分くらい経ったけどまだダメ。
16:33 APN Backup Restore http://tinyurl.com/26t6pq7 で APN 設定を復元
一旦中断
16:50 USB Debugging 有効、Unknown Sources 許可、Screen timeout 30分にして再度挑戦。10分くらい放っておいたら root 取れてた。
■ひたすらリストア
17:00 Titanium Backup http://tinyurl.com/22rxwqc でアプリを復元。一つ一つやると時間かかる。有料版買おうかな
17:15 純正のバックアップツールで SMS/MMS をリストア。
17:26 Auto-sync 有効にして放っておいたら電話帳もリストアされた。
夕食のため中断
21:34 DroidSansJapanese.ttf (中身はメイリオ) と DroidSansFallback.ttf を /system/fonts に入れて reboot
UK ファームのときの qwerty.kcm.bin を取っておけば良かったのかな。
00:45 MMS の UserAgent 変えるの忘れてた。custom_settings.xml で対処 http://tinyurl.com/29qex3v
■キーマップ変更
11/4 11:13 ここ http://tinyurl.com/33lw734 に添付してある keys.tar を解答して、keyboard-config 以下のファイル全部と、mimmi_keypad.kcm.bin を置き換えたらキーマップも EN 配列になった。qwerty.kcm.bin は mimmi_keypad.kcm.bin へのシンボリックリンクだったので置き換えず。←今ココ
@なんとか、ってやってreplyする時の、なんとかの部分がscreen nameだよ。
そうじゃなくて、http://twitter.com/users/show/~~.xml をみた時にどれがscreen nameだか分からないって話?
http://www.amazon.com/gp/product/B001MBUGLY/
日本版が8/6に出るけど・・・
★☆☆☆☆ Not a More Cardio Wii Fit, Rather a Disaster of a Product, July 16, 2009
The concept is fantastic but the wiimote/sensor interaction is too finicky. It made the workout too frustrating. Specifically:
- If the way you hold the wiimote/nunchuck is off even slightly, the exercise stops and waits for you. You have to guess what it's waiting for.
- There reps are not timed to the music and there's no consistency to the timing. Instead of getting into the flow of the reps, it waits for you before it does the next rep. There's too much "thinking" time between reps making it hard to get a good flow to your workout.
- When doing reps, it's normal to anticipate the next rep, but this game does not allow for that. You finish a rep, the program goes back to the top of its do loop and then it does the next rep. It's very choppy - there's no smooth rhythm to the reps.
- If you move even a little faster than the "follow me" droid it stops completely (like its giving up), puts a note on the screen and waits for you to go back to the top of the rep.
- The instruction videos take FOREVER to demonstrate a simple exercise. Between that and the delay between reps, there's lots of down time.
Overall, I found it very frustrating because every time my workout started to flow, something interrupted it. I've had the Wii for over a year, and play with it daily so I don't think it's a learning curve issue.
評価の悪かった批評ぐらい訳してみようかな・・・
海外製のフリーのビジュアルノベルエンジン"Ren'Py"の作者が、昨今のエロゲ規制騒動に関して氏のwebサイトでメッセージを掲示しました。
以下に紹介します。
http://www.renpy.org/wiki/Censorship
今まで生きてきた中で、私はさまざまな形のアートに触れてきました。
そして、この5年間にわたってずっと普及に向けてつとめてきたアートの形態が一つあります。ビジュアルノベルです。
文章と絵と音楽が絡み合うビジュアルノベルは、コンピュータ技術を用いてインタラクティブな物語を形作ります。
正しく用いられれば、この媒体は様々な文化圏に渡って真にすばらしい物語を伝えるために使えることでしょう。
ルカ・ジョルダーノ ルクレティアの陵辱 (キャンバス地、油絵 1663)
この数ヶ月、これらの物語の作者たちは規制を求める声に追い立てられています。
他のアートの形態であれば、そのような規制は忌避すべきものと公正に判じられることでしょう。
ビジュアルノベルは比較的新しい媒体であり、美術館や書店で見られるような、他のアートの形態と同様の題材を扱うことは認められない、と
こうした規制の推進者は考えているのでしょうか。
日本政府にお願いします。ビジュアルノベルを、私人に向けて私的に販売される、他のアートの形態と同様に扱ってください。
書籍や漫画や映画で語ることのできる物語を、ただコンピュータの画面に写されているからと言うだけの理由で禁止するというのは
あってはならないことです。
日本および世界中のビジュアルノベル制作者の方々へお願いします。自主規制を求める声に屈しないでください。
あなた方が伝えたいと思う物語、読み手が読みたいと願う物語を語り続けてください。
それ以外の道をたどることは、わたしたちのアートをいかなる意味であれ価値の劣るものとして扱うということです。
そんなことは受け入れられません。
Ren'Py ビジュアルノベルエンジン 主開発者 PyTom
Regarding Censorship of Visual Novels
Over the course of my life, I've been exposed to many different forms of art. And yet, there's one form that I've spent the past five years of my life trying to encourage, and that's the visual novel. Involving text, pictures, and music, visual novels use computer technology to create a interactive stories. In the right hands, this medium can be used to tell truly great stories that span cultures.
Luca Giordano, The Rape of Lucretia (Oil on canvas, 1663)
Over the past few months, the creators of these stories have been hounded with calls for censorship; censorship that we would rightly find abhorrent in other forms of media. Perhaps these censors believe that since the visual novel is a relatively young medium, they should not be allowed to cover same range of material as other art forms — material one can find in art galleries and bookstores.
To the Japanese government, let me ask that you treat visual novels in the same way as other art, sold privately to private consumers. Stories that can be told in books, comics, and movies should not be prohibited simply because they are displayed on a computer screen.
To the creators of visual novels, in Japan and the rest of the world, let me just ask that you resist calls for self-censorship and continue to tell the stories that you wish to tell, and that audiences wish to experience. To do otherwise would be to treat our art as somehow less worthy, and that is unacceptable.
PyTom, Lead Developer, Ren'Py Visual Novel Engine
June 29, 2009
まず、stable の最新版にアップデート。
# apt-get update # apt-get dist-upgrade
そしたら /etc/apt/source.list を編集。
… deb http://www.example.org/pub/ stable main contrib non-free deb-src http://www.example.org/pub/ stable main contrib non-free …
の stable を unstable に変更すれば OK。
そしたらもう一回更新すれば OK。
# apt-get update # apt-get dist-upgrade
おれのこのみだけど。
# apt-get install aptitude gnupg locales openssh-server screen subversion subversion-tools wget zsh
下のコマンドをたたいてしつもんにこたえて、UTF-8 にする。
# dpkg-reconfigure locales
# aptitude update # aptitude dist-upgrade
[admin@sakura2 ~]$ uname -a Linux sakura2 2.6.9-67.0.4.ELsmp #1 SMP Sun Feb 3 07:08:57 EST 2008 i686 athlon i386 GNU/Linux [admin@sakura2 ~]$ cat /etc/issue.net CentOS release 4.6 (Final) Kernel \r on an \m
# yum update # yum remove emacs emacspeak emacs-leim emacs-common # yum remove NetworkManager # yum remove bluez-bluefw bluez-hcidump bluez-libs bluez-utils # yum remove cups cups-libs # yum remove irda-utils isdn4k-utils pcmcia-cs wireless-tools # yum remove wpa_supplicant gpm xinetd # yum remove ppp nfs-utils lksctp-tools autofs # yum remove xorg-x11-libs # yum remove selinux-policy-targeted # yum remove vsftpd # yum clean all
[admin@sakura2 ~]$ uname -a Linux sakura2 2.6.9-67.0.7.ELsmp #1 SMP Sat Mar 15 06:54:55 EDT 2008 i686 athlon i386 GNU/Linux
# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-notes-5.1.0-2.i386.rpm \ http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-5-1.0.el5.centos.1.i386.rpm [root@sakura2 admin]# cat /etc/issue.net CentOS release 5 (Final) Kernel \r on an \m # yum update glib procps udev iptables # rpm -Uvh --nodeps http://mirror.centos.org/centos/5/os/i386/CentOS/initscripts-8.45.17.EL-1.el5.centos.1.i386.rpm \ http://mirror.centos.org/centos/5/os/i386/CentOS/mkinitrd-5.1.19.6-19.i386.rpm # rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/e2fsprogs-1.39-10.el5.i386.rpm \ http://mirror.centos.org/centos/5/os/i386/CentOS/e2fsprogs-libs-1.39-10.el5.i386.rpm \ http://mirror.centos.org/centos/5/os/i386/CentOS/e2fsprogs-devel-1.39-10.el5.i386.rpm
# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/kernel-2.6.18-53.el5.i686.rpm
[admin@sakura2 ~]$ uname -a Linux sakura2 2.6.18-53.el5 #1 SMP Mon Nov 12 02:22:48 EST 2007 i686 athlon i386 GNU/Linux # yum clean all [root@sakura2 admin]# yum --version Loading "fastestmirror" plugin 2.4.3 [root@sakura2 admin]# rpm --version RPM version 4.3.3
# yum update Error: Missing Dependency: python-abi = 2.3 is needed by package python-elementtree
# vi /etc/ssh/sshd_config # /etc/init.d/sshd restart
# vi /etc/yum.repos.d/dhozac-vserver.repo
# yum update kernel # yum install util-vserver{,-core,-lib,-sysv,-build}
[admin@sakura2 ~]$ uname -a Linux sakura2 2.6.22.19-vs2.3.0.34.1 #1 SMP Mon Mar 17 05:32:04 EDT 2008 i686 athlon i386 GNU/Linux
# yum update bash screen rsync # /etc/init.d/iptables save # /etc/init.d/iptables start # cat /etc/sysconfig/iptables # Generated by iptables-save v1.3.5 on Mon Mar 24 19:57:07 2008 **filter :INPUT ACCEPT [1067:96557] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [63680:6208436] :e0 - [0:0] -A INPUT -i eth0 -j e0 -A e0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A e0 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A e0 -p tcp -m tcp --dport 22 -j ACCEPT -A e0 -p tcp -m tcp --dport 80 -j ACCEPT -A e0 -p tcp -m tcp --dport 443 -j ACCEPT -A e0 -j REJECT --reject-with icmp-port-unreachable COMMIT # Completed on Mon Mar 24 19:57:07 2008 # Generated by iptables-save v1.3.5 on Mon Mar 24 19:57:07 2008 **nat :PREROUTING ACCEPT [179:10642] :POSTROUTING ACCEPT [213:13895] :OUTPUT ACCEPT [251:16220] -A PREROUTING -s ! 10.0.0.0/255.255.255.0 -p tcp -m tcp --dport NNNN -j DNAT --to-destination 10.0.0.1:22 -A POSTROUTING -s 10.0.0.0/255.255.255.0 -d ! 10.0.0.0/255.255.255.0 -j SNAT --to-source AAA.BBB.CCC.DDD COMMIT # Completed on Mon Mar 24 19:57:07 2008
[root@sakura2 ~]# /usr/sbin/vserver-stat CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME 40013 27 301.5M 73.8M 30m36s31 56m38s90 11d06h56 one 40015 5 10.8M 4.4M 0m28s33 0m12s68 9d04h23 two 40016 2 4.2M 1.3M 0m00s47 0m00s64 0m01s97 three
/* 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
LV0 UNIXエディタ?どうせ貧弱なCUIだろ?どうでもいいよ…
LV1 Win端末から使うとわりと便利だな。ってかUNIXは何でパスが/なの?
LV2 KDEは派手だな。Emacsってのはなんか機能豊富で結構いいかも。
LV3 Emacsって神じゃね?理想のエディタって感じ・・・
LV4 Elispパッケージもたくさんあって便利だな。MewとかGnusとかnavi2chとかいい・・・
LV5 Vimって別に便利じゃないのに使用者がカリスマ扱いされててうぜぇ。Vim死ね!
LV7 やべぇVim最高!VimとScreenさえあれば生きていける!
LV9 やっぱEmacsは最高だわ
http://www.sitnews.us/HowardDean/060104_dean.html
Electronic Voting - Not Ready For Prime Time
By Howard Dean
June 01, 2004
Tuesday
In December 2000, five Supreme Court justices concluded that a recount in the state of Florida's presidential election was unwarranted. This, despite the desire of the Florida Supreme Court to order a statewide recount in an election that was decided by only 537 votes. In the face of well-documented voting irregularities throughout the state, the U.S.
Supreme Court's decision created enormous cynicism about whether the votes of every American would actually be counted. Although we cannot change what happened in Florida, we have a responsibility to our democracy to prevent a similar situation from happening again.
Some politicians believe a solution to this problem can be found in electronic voting. Recently, the federal government passed legislation encouraging the use of "touch screen" voting machines even though they fail to provide a verifiable record that can be used in a recount. Furthermore, this equipment cannot even verify as to whether a voter did indeed cast a ballot for their intended candidate. Unfortunately, this November, as many as 28% of Americans - 50 million people - will cast ballots using machines that could produce such unreliable and unverifiable results.
Only since 2000 have touch screen voting machines become widely used and yet they have already caused widespread controversy due to their unreliability. For instance, in Wake County, N.C. in 2002, 436 votes were lost as a result of bad software. Hinds County, Miss. had to re-run an election because the machines had so many problems that the will of the voters could not be determined. According to local election officials in Fairfax County, Va., a recent election resulted in one in 100 votes being lost. Many states, such as New Hampshire and most recently Maine, have banned paperless touch screen voting and many more are considering doing so.
Without any accountability or transparency, even if these machines work, we cannot check whether they are in fact working reliably. The American public should not tolerate the use of paperless e-voting machines until at least the 2006 election, allowing time to prevent ongoing errors and failures with the technology. One way or another, every voter should be able to check that an accurate paper record has been made of their vote before it is recorded.
Both Democrats and Republicans have a serious interest in fixing this potentially enormous blow to democracy. A bipartisan bill, sponsored by Rep. Rush Holt (D-N.J.), is one of several paper trail bills in the House and Senate and it should be passed as soon as possible. A grassroots movement for verified voting, led by organizations like VerifiedVoting.org, is gaining momentum nationwide.
There is nothing partisan about the survival of our democracy or its legitimacy. We cannot and must not put the success of one party or another above the good of our entire country and all our people. To the governments of the fifty states, Republican or Democrat, I ask you to put paperless e-voting machines on the shelf until 2006 or until they are reliable and will allow recounts. In a democracy you always count the votes no matter who wins. To abandon that principle is to abandon America.
(Electronic Voting - Not Ready For Prime Time )
2000年12月、連邦最高裁の5人の判事は、フロリダ州大統領選挙投票の数えなおしは是認できないと結論するに至った。この決定により、フロリダ州最高裁が州内全ての投票の数えなおしを要求したにもかかわらず、僅か537票差で勝敗を決定する大統領選挙を生み出すことになったのだ。州内での選挙不正に関する明確な情報に直面して、合衆国の最高司法の決定は、全てのアメリカ人の投票が実際に数えられるかどうかについて重大な不信感を作り出した。フロリダ州で起こったことを今更ひっくり返すことはできないが、同じ事態が再び起こることを防ぐために、私たちは民主主義に対する責任を負っている。
政治家の中には、この問題を解決する答えは電子投票にあると信じる者もいるようだ。最近、連邦政府は、「タッチスクリーン」投票機の利用を促進する法案を成立させたが、当の電子投票システムは票集計内容を記録する機能を持たないために、票の再集計ができない。さらに、その電子投票機は、投票者が本当に希望する候補者に投票したかどうかを確認する機能すら持たないのだ。あいにく、今年11月には、アメリカ国民の内28%、約5,000万人が、その電子投票システムを利用することになるわけで、信頼できない不確実な投票結果が生じる可能性がある。
2000年に利用されはじめたばかりのタッチスクリーン式電子投票システムは、利用が拡大するにつれ、信頼性の欠如による問題を発生させている。例えば、ノースカロライナ州ウェイク郡では、2002年に、ソフトの不具合により436票が消失している。ミシシッピー州ハインズ郡では、投票機のトラブルが多すぎて有権者が投票できず、選挙そのものをやり直すことになった。ヴァージニア州フェアファックスの選挙管理担当者によれば、最近の選挙では100人につき1人の票が消失していたそうだ。多くの州では、ニューハンプシャー州やメーン州の例のように、紙の記録を残さない(ペーパーレス)タッチスクリーン投票機の利用を禁止することになり、他の州でも同様の決定を行う計画であるという。
信頼性も透明性も欠如している状況では、いくら機械が動作しても、正しく動作しているのかどうかを検証することができない。アメリカ国民は、少なくとも進行中の不具合と技術的失敗の防止に必要な時間を確保するため、2006年度選挙までは、ペーパーレス電子投票機の利用を容認すべきではないのである。なんとしてでも、全ての有権者が、投票が集計される前に、自分の投票内容を、正確な紙の記録を残すことによって確認できるようにすべきであろう。
民主党支持者も共和党支持者も、この民主主義に対する重大な打撃となる可能性を修正することに、真剣に取り組もうとしている。ラッシュ・ホルト議員(ニュージャージ州議員/民主党)の提出した超党派の法案は、紙の記録を求める法案のひとつだが、できるだけ早く議会で承認されるべきであろう。VerifiedVoting.orgなどの組織によって活発化している、確認可能な投票システムを支持する草の根活動は、国民全体の機運に適ったものなのである。
私たちの民主主義や分別を存続することは、党派には無関係である。国民と国家全体の価値以上に、片方の党派の成功を優先するようなことはできないし、してはならない。50州をまとめる政府として、共和党員・民主党員のどちらに対しても、2006年まで、あるいは充分に信頼できる状態で再集計が可能になる日まで、ペーパーレス電子投票機を箱に収めたままにしておくことをお願いしたい。誰が勝利しようと、民主主義の下では全ての票は数えられるべきなのである。その基本原則を廃止することは、アメリカを捨てることと同じだ。
ブッシュ大統領の選挙には以前からイカサマ疑惑がささやかれています。
http://headlines.yahoo.co.jp/hl?a=20041119-00000001-wir-sci
http://tanakanews.com/e1008election.htm
http://hiddennews.cocolog-nifty.com/gloomynews/?06150300
アメリカは正義の国で悪い人は一人もいませんので、私はこんな話は信じませんが、みなさんはどう思いますか?
恥ではない。犯罪である。(髪型が) 9
どうでもいいけどたかがネットワーカーにこんなことを言われる筋合いはない。 64
Linuxはかーじゃないけど答えようとしてみるよ。
ごめんねまず「ピュアでエレガント」っていうのが煽りじゃなくよくわからないんですけど!
マウス一本で直感的に操作できるLinuxを作ろうと思えば作れるのがLinuxじゃねえかな。煽りの意味じゃなくて「じゃおめえが作れ」がまかり通ってるのがLinux文化圏とか、そんなイメージです。実際にマウス一本でスラスラ操作できるLinuxっていうのは見たこと無いかな?
っていうか俺自身がkterm+screenとemacsだけで満足する人間だからやっぱわかんねえや。
使ったことないけどEnlightenmentとかで頑張ればMacOSXなみにけれんの効いた見た目にできるって噂を聞いたことがある。