「Name」を含む日記 RSS

はてなキーワード: Nameとは

2011-12-15

Critical Thinking: Film Critics Across the Country Name Their Top Movies and Actors

"The Artist"? "The Descendants"? "Hugo"? There was no critical consensus following a day of intense voting yesterday when a gaggle of critics groups voted their top honors. These included the Los Angeles Film Critics Association (LAFCA), the Boston Society of Film Critics (BSFC), and the New York Film Critics Online (NYFCO), as well as critics in San Francisco, Detroit and Indiana. The American Film Institute also announced its annual top 10, typically taking no risks.

Best Picture: "The Descendants" got a strong push with a win at the LAFCA, but "The Artist" took the top prize at the BSFC and the NYFCO. Both titles will make the final Academy shortlist. Fortified by nominations for their respective directors Martin Scorsese and Terrence Malick, "Hugo" and "The Tree of Life" should get nominations. The critics groups didn't get "The Help," any more than "The Blind Side," but the Civic Rights-era drama did make the American Film Institute top ten this year, so don't discount it yet.

Best Actor: Michael Fassbender is coming up fast with an LAFCA win. Why should we care about that group in particular? They're on a six-year roll predicting the Oscar winner for Best Actor. Brad Pitt's also a contender for "Moneyball," getting an art-house bump from "The Tree of Life," with Gary Oldman coming up on the outside thanks to the critical and box-office success of "Tinker, Tailor, Soldier, Spy" and a nod from the San Francisco Film Critics. How about George Clooney for "The Descendants"? He's still in the race, but not at the forefront. Like going for long shots? Then bet Michael Shannon for "Take Shelter," which won NYFCO. And if there's a sweep for "The Artist," add in Jean Dujardin.

Best Actress: Michelle Williams of "My Week With Marilyn," solidifies her spot with a win at the Boston Film Critics Association. Los Angeles went way out for Yung-Jun Hee in "Poetry" (what?) in their 'we're cool and uncorrupted by the Oscar race' vote. NYFCO went classic with Meryl Streep for "The Iron Lady." She's the Streep, but neither she nor Williams will be helped by an apparent lack of enthusiasm for their moves as a whole. Ditto Viola Davis ("The Help"), who will nonetheless make the top five Oscar nominees. Either SF winner Tilda Swinton ("We Need to Talk About Kevin") or multiple-runner-up Kirsten Dunst ("Melancholia") may slip in or come in sixth or seventh. Keep an eye out for Charlize Theron ("Young Adult"), Elizabeth Olsen ("Martha Marcy May Marlene") and Felicity Jones ("Like Crazy) as wild-card entries.

Best Supporting Actor: This is a two-man race between octogenarian Christopher Plummer and Albert Brooks playing against type as a cold-blooded hands-on killer. On the fringes: Patton Oswalt ("Young Adult"), Kenneth Branagh ("My Week with Marilyn") and Andy Serkis ("Rise of the Planet of the Apes").

Best Supporting Actress: Coming up on the inside is Melissa McCarthy for "Bridesmaids." Hurray for comedy! Bolstered by a best ensemble award from the LAFCA, this may push McCarthy into the five Oscar nominees. The LAFCA got behind Jessica Chastain, the NYFCO Breakthrough Performer, who was in every movie from "The Tree of Life" to "The Help," where she'll be competing against her popular co-star Octavia Spencer. The San Francisco critics supported Vanessa Redgrave for "Coriolanus," and Janet McTeer ("Albert Nobbs") was an LAFCA runner up in the category.

Who's out of the running in these five major categories? The Girl With the Dragon Tattoo, War Horse, J. Edgar and Midnight in Paris all underwhelmed. The X-Factor remains Scott Rudin's buzzy "Extremely Loud and Incredibly Close," which has not been screened widely after the New Yorker's David Denby flagrantly broke embargo on Rudin's other major film, "The Girl with the Dragon Tattoo." Pack the Kleenex box for this one.

http://www.chargerbatteryshop.co.uk/panasonic-cga-s002-digital-camera-battery-cbbs.html

http://www.gobatteryonline.com/canon-powershot-sd500-battery-charger-gose.html

http://www.keyboard-store.com/asus-04gncb1kusa4-laptop-keyboard.html

Critical Thinking: Film Critics Across the Country Name Their Top Movies and Actors

"The Artist"? "The Descendants"? "Hugo"? There was no critical consensus following a day of intense voting yesterday when a gaggle of critics groups voted their top honors. These included the Los Angeles Film Critics Association (LAFCA), the Boston Society of Film Critics (BSFC), and the New York Film Critics Online (NYFCO), as well as critics in San Francisco, Detroit and Indiana. The American Film Institute also announced its annual top 10, typically taking no risks.

Best Picture: "The Descendants" got a strong push with a win at the LAFCA, but "The Artist" took the top prize at the BSFC and the NYFCO. Both titles will make the final Academy shortlist. Fortified by nominations for their respective directors Martin Scorsese and Terrence Malick, "Hugo" and "The Tree of Life" should get nominations. The critics groups didn't get "The Help," any more than "The Blind Side," but the Civic Rights-era drama did make the American Film Institute top ten this year, so don't discount it yet.

Best Actor: Michael Fassbender is coming up fast with an LAFCA win. Why should we care about that group in particular? They're on a six-year roll predicting the Oscar winner for Best Actor. Brad Pitt's also a contender for "Moneyball," getting an art-house bump from "The Tree of Life," with Gary Oldman coming up on the outside thanks to the critical and box-office success of "Tinker, Tailor, Soldier, Spy" and a nod from the San Francisco Film Critics. How about George Clooney for "The Descendants"? He's still in the race, but not at the forefront. Like going for long shots? Then bet Michael Shannon for "Take Shelter," which won NYFCO. And if there's a sweep for "The Artist," add in Jean Dujardin.

Best Actress: Michelle Williams of "My Week With Marilyn," solidifies her spot with a win at the Boston Film Critics Association. Los Angeles went way out for Yung-Jun Hee in "Poetry" (what?) in their 'we're cool and uncorrupted by the Oscar race' vote. NYFCO went classic with Meryl Streep for "The Iron Lady." She's the Streep, but neither she nor Williams will be helped by an apparent lack of enthusiasm for their moves as a whole. Ditto Viola Davis ("The Help"), who will nonetheless make the top five Oscar nominees. Either SF winner Tilda Swinton ("We Need to Talk About Kevin") or multiple-runner-up Kirsten Dunst ("Melancholia") may slip in or come in sixth or seventh. Keep an eye out for Charlize Theron ("Young Adult"), Elizabeth Olsen ("Martha Marcy May Marlene") and Felicity Jones ("Like Crazy) as wild-card entries.

Best Supporting Actor: This is a two-man race between octogenarian Christopher Plummer and Albert Brooks playing against type as a cold-blooded hands-on killer. On the fringes: Patton Oswalt ("Young Adult"), Kenneth Branagh ("My Week with Marilyn") and Andy Serkis ("Rise of the Planet of the Apes").

Best Supporting Actress: Coming up on the inside is Melissa McCarthy for "Bridesmaids." Hurray for comedy! Bolstered by a best ensemble award from the LAFCA, this may push McCarthy into the five Oscar nominees. The LAFCA got behind Jessica Chastain, the NYFCO Breakthrough Performer, who was in every movie from "The Tree of Life" to "The Help," where she'll be competing against her popular co-star Octavia Spencer. The San Francisco critics supported Vanessa Redgrave for "Coriolanus," and Janet McTeer ("Albert Nobbs") was an LAFCA runner up in the category.

Who's out of the running in these five major categories? The Girl With the Dragon Tattoo, War Horse, J. Edgar and Midnight in Paris all underwhelmed. The X-Factor remains Scott Rudin's buzzy "Extremely Loud and Incredibly Close," which has not been screened widely after the New Yorker's David Denby flagrantly broke embargo on Rudin's other major film, "The Girl with the Dragon Tattoo." Pack the Kleenex box for this one.

http://www.chargerbatteryshop.co.uk/panasonic-cga-s002-digital-camera-battery-cbbs.html

http://www.gobatteryonline.com/canon-powershot-sd500-battery-charger-gose.html

http://www.keyboard-store.com/asus-04gncb1kusa4-laptop-keyboard.html

2011-12-09

centre.If you want to entertain clients or relax with a drink after a hard day’s work at your Docklandsof high street stores this sort of as Pop Boutique and Oxfam Vintage which specialise in quirky vintage clothing andcups, all of which tread the line between subtlety and glamour with ease.With reminders of these iconicfor your skin. When wearing the chiffon dress, the key is to wear a bright color belt.LondonLondon isStreet and shopping centres throughout, Dublin is sure to suit all tastes and budgets. Henry Street is karen millen minutes from Belfast and very popular – includes M&S, Sainsburys and Dunnes.InShops – Ideal inside the centre ofVersace or Prada. Even these high daily life labels are not exempt in the discount bug and depending on theentitled to ownership with the domain name.The fashion designer, Karen Millen, also brought legal proceedingsfor the Blanchardstown Shopping Centre stay at the Ballymum Plaza, or the Park Plaza Tyrrelstown. For TheWallis. The availability of printable vouchers makes the demand for the voucher codes more important. It may

2011-11-08

Thunderbird から Outlook 2007 にメールを移行

やー。面倒でした。

古い情報だと Outlook Express を経由しろと書いてあるので、後継であるらしいWindows Live Mail を経由して(Windows Live Mail からエクスポートする方法で)

Outlook に移行したのだが、どういうわけか宛名が文字列として移行されてしまい、xxx@example.com というメールアドレスの移行ができなかったんです

で eml → msg もしくは pst 形式への変換ソフトを探すのですが、無料ものが見つからなくてあんまり情報もありませんでした。が、ありましたよ!お兄さん。

これなら、msg ⇔ eml の相互変換ができますです

MrMAPI.exe

http://mfcmapi.codeplex.com/

ヘルプはっときますね。

====

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

2011-09-28

ハイエンド系」ってなに?

無念 Name としあき 11/09/28(水)11:58:41 No.77177766 del

ハイエンド系」と「SF」は全然関係ないよ

… 無念 Name としあき 11/09/28(水)12:01:35 No.77178031 del

>「ハイエンド系」と「SF」は全然関係ないよ

馬鹿ライター勝手提唱して一人で使ってた言葉だしな…

… 無念 Name としあき 11/09/28(水)12:02:06 No.77178070 del

オタ絵における「ハイエンド系」って何?

カトキ重力からスイングバイして発展した…みたいな?

… 無念 Name としあき 11/09/28(水)12:03:08 No.77178154 del

カトキ重力からスイングバイして発展した…みたいな?

自分で何を言っているか理解してから喋って欲しい

… 無念 Name としあき 11/09/28(水)12:04:31 No.77178276 del

それくらい実体がないんだよ

… 無念 Name としあき 11/09/28(水)12:04:39 No.77178293 del

ハイエンドってオーバースペックとかそういうニュアンスかと思ってた

大卒とか

… 無念 Name としあき 11/09/28(水)12:06:24 No.77178443 del

オーバースペックとかそういうニュアンスかと思ってた

>美大卒とか

あ~

俺もそんな感じだわ

… 無念 Name としあき 11/09/28(水)12:06:28 No.77178449 del

>オタ絵における「ハイエンド系」って何?

エロゲレベル低い!俺はもっと上手い連中を知ってる!と馬鹿ライタームサビの連中をダシにしてドヤ顔するために作った言葉

定義は無い

… 無念 Name としあき 11/09/28(水)12:06:29 No.77178452 del

単に「巧い」ってことか?

… 無念 Name としあき 11/09/28(水)12:08:27 No.77178631 del

正直絵柄の流行り廃りは怖いと思いました

… 無念 Name としあき 11/09/28(水)12:08:57 No.77178674 del

ムサビ系でいいじゃねーか

… 無念 Name としあき 11/09/28(水)12:09:58 No.77178763 del

ピュアガールで描いてて今も一線級って誰がいるか

… 無念 Name としあき 11/09/28(水)12:10:15 No.77178786 del

ムサビ系でいいじゃねーか

それ採用

… 無念 Name としあき 11/09/28(水)12:10:37 No.77178813 del

当事者が自ら名乗ってた訳でもないのに

勝手に変なジャンルに括られて波が引く恐怖

… 無念 Name としあき 11/09/28(水)12:11:39 No.77178912 del

草食系とかみたいに

文章かきは勝手カテゴリわけしたがるんやな

… 無念 Name としあき 11/09/28(水)12:17:51 No.77179473 del

>文章かきは勝手カテゴリわけしたがるんやな

加野瀬勝手に妙なカテゴリ作って持ち上げた上に

当時主流の絵柄や塗りをガンガン否定して敵まで増やしてたな

あんなのに巻き込まれたら死ね


… 無念 Name としあき 11/09/28(水)12:43:56 No.77182329 del

撫荒武吉ならハヤカワSFの表紙仕事最近メイン

小川一水の表紙が多いけど

どれも出来良いんでオススメ

… 無念 Name としあき 11/09/28(水)12:46:22 No.77182587 del

>ハヤカワSFの表紙仕事最近メイン

結構いいポジションに収まってたんだな

前張りは描けなさそうだけど

… 無念 Name としあき 11/09/28(水)12:47:47 No.77182738 del

>ハヤカワSFの表紙仕事最近メイン

おおー 上手い

いわれてみると塗りのタッチに特徴があるような

仕事でこういう固い絵を描いて

プライベートでまえばるわけだな

… 無念 Name としあき 11/09/28(水)12:49:21 No.77182909 del

宇宙船と前張りを組み合わせた

全く新しいSF・・・

… 無念 Name としあき 11/09/28(水)12:51:10 No.77183116 del

宇宙船と前張りを組み合わせた

>全く新しいSF・・・

そして暗黒星雲賞受賞

… 無念 Name としあき 11/09/28(水)12:52:41 No.77183290 del

宇宙船と前張りを組み合わせた

>全く新しいSF・・・

宇宙版ダフネ

… 無念 Name としあき 11/09/28(水)12:54:19 No.77183458 del

まえばり業界にいるよりよっぽど先がありそうじゃねーか!

… 無念 Name としあき 11/09/28(水)12:55:07 No.77183557 del

>まえばり業界

そんなものは無い(画像

2011-09-10

Remember My Name

久しぶりに槇原敬之アルバムを買ったのは

この曲に救われたかたか・・・

曲に救われたとかいう人を僕は信じなかったけど、この曲でこの年でこの曲に救われた。

 

http://www.utamap.com/viewkasi.php?surl=k-110727-037

 

この曲はがんキャンペーンソング。

同僚と母親が同じ時期に乳がんになって約1年。

母親はかなり早期だった。

同僚は今でも辛い治療を続けている。

 

彼女乳がんってことを初めて告白したのが僕。

まり大げさにとらえないだろうから、僕に告白したってことらしい。

 

僕もあまり大げさに考えずに、なんとなーく支えようかと思ったけど、

やっぱりだんだん辛くなって。

 

昨日もかなり辛い内容のメールで、どう返したらいいのかわからなくて、

いつもは冗談で返すけど、冗談で返せない僕も僕自身がなんだか嫌で、

大変なのは本人だとわかっているのに、

なんだか僕も被害者意識を持つようになって、

それもすごく嫌で、

なんで僕だったんだろう、なんで同性に言わずに僕だったんだろう、

まだ職場の誰も知らなくて、僕だけが知っているという状況も辛くて、

それも被害者意識みたいで嫌で。

 

でもこの曲は患者本人だけではなくその周りの人たちにも救いを与えているような気がする。

 

この曲を聴きながら大泣きしながらドライブした一日。

2011-08-30

キーボードリマップ 2011_08_29_

AutoHotKey・KeySwap・Atok2005を使った

また、これは AutoHotkey.ahk (AutoHotkey設定ファイル) 自身でもある。

なお、Atokでのキーボードリマップは、以下の通り。

ATOKプロパティ  =>キーローマ字・色 タブ =>キーカスタマイズ 

ここから

────────────────────

; IMPORTANT INFO ABOUT GETTING STARTED: Lines that start with a

; semicolon, such as this one, are comments. They are not executed.

; This script has a special filename and path because it is automatically

; launched when you run the program directly. Also, any text file whose

; name ends in .ahk is associated with the program, which means that it

; can be launched simply by double-clicking it. You can have as many .ahk

; files as you want, located in any folder. You can also run more than

; one ahk file simultaneously and each will get its own tray icon.

; SAMPLE HOTKEYS: Below are two sample hotkeys. The first is Win+Z and it

; launches a web site in the default browser. The second is Control+Alt+N

; and it launches a new Notepad window (or activates an existing one). To

; try out these hotkeys, run AutoHotkey again, which will load this file.

#z::Run www.autohotkey.com

^!n::

IfWinExist Untitled - Notepad

WinActivate

else

Run Notepad

return

; Note: From now on whenever you run AutoHotkey directly, this script

; will be loaded. So feel free to customize it to suit your needs.

; Please read the QUICK-START TUTORIAL near the top of the help file.

; It explains how to perform common automation tasks such as sending

; keystrokes and mouse clicks. It also explains more about hotkeys.

; ! → Alt

; ^ → Control

; + → Shift

;────AutoHotKey.ahk のキーボードリマップ 2011_08_29_

; 変換 = IME ON (日本語)  =>Atok機能で実現

; 無変換 = IME OFF (英語)  =>Atok機能で実現

; カタカナ = F7  =>KeySwapで実現

; CapsLock = F10  =>KeySwapで実現

; 右Alt = Home  =>KeySwapで実現

; 右Ctrl = End   =>KeySwapで実現

; その他はAutoHotKey機能で実現。

;vk1D::return ;無変換キー単体で動かないようにする

;RShift::^z ;右Shift で Ctrl+z

;SC07B & Space::send,{Blind}{Enter} ;無変換+Space で Enter

;SC07B & j::send,{Blind}{Home} ;無変換+j で Home

;SC07B & k::send,{Blind}{End} ;無変換+k で End

;SC07B & h::send,{Blind}^{Home} ;無変換+h で Ctr+Home

;SC07B & l::send,{Blind}^{End} ;無変換+l で Ctr+End

;SC07B & u::send,{Blind}{} ;無変換+u で

;SC07B & i::send,{Blind}{} ;無変換+i で

;SC07B & LButton::send,{Blind}{Home} ;無変換 + LButton でHome

;SC07B & RButton::send,{Blind}{End} ;無変換 + RButton でEnd  =>Ctrlと組み合わせ可。

;SC07B & y::send,{Blind}^{ } ;無変換+y で Ctr+

;SC07B & o::send,{Blind}^{ } ;無変換+o で Ctr+

;SC07B & w::send,{Blind}{Home} ;無変換+w で Home

;SC07B & r::send,{Blind}{End} ;無変換+r で End

;SC07B & e::send,{Blind}{Up} ;無変換+e で Up

;SC07B & d::send,{Blind}{Down} ;無変換+d で Down

;SC07B & f::send,{Blind}{Right} ;無変換+f で Right

;SC07B & s::send,{Blind}{Left} ;無変換+s で Left

1::+1 ;1 を Shift+1 に(記号にする)

2::+2 ;2 を Shift+2 に

3::+3 ;3 を Shift+3 に

4::+4 ;4 を Shift+4 に

5::+5 ;5 を Shift+5 に

6::+6 ;6 を Shift+6 に

7::+7 ;7 を Shift+7 に

8::+8 ;8 を Shift+8 に

9::+9 ;9 を Shift+9 に

0::+- ;0 を Shift+- に

\::+\ ;\ を Shift+\ に

;──────────────────── http://nanabit.net/softwares/autohotkey/

; Alt+F6 (例:2011_08_04_)

; Ctrl+F6 (例:03:48)

; Alt+Ctrl+F6 (例:2011_08_04_16:45)

!F6::

Send, %A_YYYY%_%A_MM%_%A_DD%_

return

^F6::

Send, %A_Hour%:%A_Min%

return

!^F6::

Send, %A_YYYY%_%A_MM%_%A_DD%_%A_Hour%:%A_Min%

return

2011-08-04

独学のプログラムエロ動画検索作ってみた

【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545

プログラムは全く得意じゃないけれど最近よく見かけるようになったエロ動画検索自分でも作ってみたくて頑張ってみました。

近年、インターネットの普及によりエロ動画が自宅で簡単に見れるという素晴らしい時代になりました。

自分が若い頃はインターネットなんてものはなくエロビデオが主流でドキドキしながらレンタルビデオ屋に行き、可愛い女の子レジにいない隙を見計らってお兄さんにパッケージを伏せて空箱を渡しビデオを借りたものでした。

お兄さんにビデオ空箱を渡そうとした時に可愛い子がレジに戻ってきて焦って渡すのをやめてものすごく変な動きをしながらエロビコーナーに引き返していくなんてことも多々ありましたw

僕のお気に入りといえば「白石ひとみ」や「あいだもも」といった女優でよく借りてました。エロビを借りるということがものすごく恥ずかしい時代?年頃?でカモフラージュ普通ビデオと一緒に借りるということもしていました。それはそれは大変な思いでオナニーしてたんです

しかも、ビデオデッキ自体が貴重な時代でリビングに一台しかないのが当たり前でした。

深夜家族が寝静まってからヘッドフォンビデオを抱えリビングに行き暗がりの中でヘッドフォンテレビ差し込んでビデオ再生ボタンを期待に胸をふくらませながら押したものです。いいシーンを何回も見るためにビデオを巻き戻すんですが、ビデオを巻き戻すガチャガチャンという機械音で家族が起きてこないか?とかそれはそれはドキドキしながら見てました。一仕事終えたあとヘッドフォンを外したらジャックが外れていて大音量で喘ぎ声が響き渡っていたなんてこともありました。誰も起きてこなかったのは優しさなんでしょうか?w

さて、大分前置きが長くなりましたがエロというものものすごい技術発展させるものだと思いますエロのおかげで日本ビデオは普及しエロのおかげで日本インターネットものすごく普及したと言っていいと思います自分エロを通して技術の発展に貢献し自分自身のスキルアップになれば。という高い志を持ってこのサイト制作しました。決して自らのオナニーライフの充実と性癖を充たすため作ったわけではありません・・・

※2011.08.07 利用中のサーバーに障害が発生しているようで現在サーバー接続できない状態となっています・・・

※2011.08.07 23:53 復帰した模様です

サイト名:ヌキネーター

サイト名の由来は抜きネタからきています。抜きネーター、ヌキネーターという感じです

エロサイト制作工程日記にしてみたんで良かったら読んで下さい。そしてこのサイトを使って夜いろいろと励んでくれたら嬉しいです

では制作日記を書いていきたいと思います

サーバー選び

まず前提条件としてお金ほとんどかけたくない。アダルトサイトであるということから

サーバー選びからはいりました。

月の予算は5000円以内で考えていたのでけっこう探すのが大変でした。

日本アダルトサイトを許可している所はかなり限られていてさらにやりたいことができるのは

専用サーバーVPSしかないのでそうなると専用サーバー予算オーバーなので

VPSで探すことになり検索しまくってはじめに見つけたVPSはKAGOYAのVPSだったのですがβ版で募集を締め切っていて泣く泣く諦めました。

KAGOYAはかなり評判がいいみたいなので使ってみたかった。

次に見つけたのが○○○VPS海外サーバー日本語サポートがあり転送量の制限なしディスク容量100G

月1300円程度で借りれるということで初期設定費用に5000円程度かかりましたが借りてみました。

結果、ここは最悪でした。

  • 通信が頻繁に切れる
  • 激重
  • 借りて一ヶ月もしないうちにサービス継続が困難になりそうなのでIPが変わるとかメールがくる
  • まりに通信環境が悪すぎるとメールすると環境調査に協力してくれとメールがくる
  • 時間をかけて沢山の項目を調べて返信するも全く返答がない。

まりの酷さに1ヶ月で解約。

よく調べてみたら評判がものすごく悪い某VPS再販らしいです

お金時間をドブに捨てました・・・

もう失敗したくないと思い今度は比較的有名な海外サーバーLINODE

日本語サポートはないけれど抜群のサポートです

iptablesの設定でどうしてもうまくいかなくて拙い英語メールしてみたら

10分しないうちに返信がきました!

メールに書かれているとおりにコマンド入力したらあっさり解決。

素晴らしい!はじめからLINODEにすればよかった。

担当ブライアンはなぜか分からないけどとてもフレンドリーで親切に感じましたw

サーバー設定

LINODEは複数のディストリビューションから好きなものを選択できるので

とりあえず、64bit版を選択。

サーバー設定はほんとに面倒ですね。

一番面倒だけど重要だということで

SSH

Tripwire

chkrootkit

Clam AntiVirus

iptables

Apache

SSL

その他各種監視ツールの導入をしました。

ほんとに面倒でした。

データベース

はじめはmysqlストレージエンジンgroongaを使おうと思ったのです

初めに借りた最悪なVPSOSが32bit版だったのでgroongaがのソースが見つからずなぜかと思っていたら

どこかで見つけた記事で32bit版ではgroongaの性能を発揮しきれないということで32bit版の提供をやめてしまったらしいと書いてたので

じゃあ、sennaにするかということで最悪VPSsennaインストール

その後LINODEに変更したのでOSに64bit版を選択し念願のgroongaをインストール

しかし、調べてみると

などが理由で、結局sennaに戻して2度手間に・・・

プログラムもそれに合わせてその都度書き換えたので2度手間どころか3度手間4度手間でした・・・

senna導入はrpmでさくっといけるので簡単です

依存関係で少しはまりました。

まず

# rpm -qa | grep -i mysql

mysqlインストールされてたら削除

perl-DBIが必要なのでインストール

# yum install perl-DBI

そして下記の順番でインストール

rpm -ivh mecab-0.98-tritonn.1.0.12a.x86_64.rpm

rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.12a.x86_64.rpm

rpm -ivh senna-1.1.4-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-shared-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-client-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-server-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-devel-5.0.87-tritonn.1.0.12a.x86_64.rpm

my.cnfの設定をして終了

で肝心の全文検索ですデータ件数が5万件程度で少ないせいなのか、あいまい検索と比べてそれほど速さを実感できなかったです・・・

でもきっとすごく速くなったはず!

ちなみに「麻美ゆま おっぱい」で検索した場合、0.01 secで結果が返ってきました。

動画データ作成

さて、動画データ作成ですがいくつかのエロサイト制作記事でもあるようにスクレイピングということをします。

スクレイピングとはWEBサイトから特定の情報だけを取得することでネット上にあるサイトクロールして必要なデータだけを拾ってデータを作るといった感じでしょうか。

スクレイピングプログラム自体は以前にTidy関数を使って為替データ10分おきに取得するような物を作ったことがあったのでそれほど時間はかからいかなと思ったのですがけっこう時間かかりました。

スクレイピングにはTidyhtmlSQL、それにPHP Simple HTML DOM Parserを使いました。

下記のサイトを参考にしました。

phpによるスクレイピング処理入門

SQL みたいな文法で HTML を抽出する PHP のライブラリ

htmlSQLよりアツい!?jQueryみたいにセレクタでHTMLをparse(解析)する「PHP Simple HTML DOM Parser」

つの中で抜群に使えるのはPHP Simple HTML DOM Parserだったんです

ループ処理させるとメモリがすごいことになって今回のようなスクレイピングに向いてないみたいで

結局、htmlSQLTidyの両方を使ってスクレイピングしました。

両方ともPHP Simple HTML DOM Parserに比べるとうまくデータの取得ができないことが多く残念な感じなんですが他に選択肢がないので・・・

使える順に並べると

PHP Simple HTML DOM Parser

htmlSQL

Tidy

といった感じかもしれません。

おおまかにデータを取得して正規表現で特定データを抜き出しました。

広告との連携

広告にはDMMアフィリエイトを利用しています

http://affiliate.dmm.com/link.html

利用可能な物はパッケージ画像、サンプル画像(縮小)と書かれていたのでそれに従い画像を利用。

注記に※ユーザーレビュー引用いただけません。とだけ書かれているのでそれ以外は引用ありと判断して説明文とタイトルなどを利用

女優データジャンルデータDVDデータ、を紐付けたデータベース作成検索ワードに応じて検索結果に関連する商品を表示させるようにしました。

現状、売り上げ0で意味があるのか分かりませんけどw

負荷対策とか転送量とかDOS攻撃対策とか

エロサイトということで多少はチューニングとか設定とかしないとまずいかもと思い色々調べて設定しました。

やったこと

KeepAlive On

MaxKeepAliveRequests 60

KeepAliveTimeout 3

<IfModule prefork.c>
StartServers       7
MinSpareServers    5
MaxSpareServers   10
ServerLimit       30
MaxClients        30
MaxRequestsPerChild  4000
</IfModule>

様子見ということで2日間で設定してみました。

query_cache_limit=1M

query_cache_min_res_unit=4k

query_cache_size=16M

query_cache_type=1

とりあえずこんなところを設定してみましたが、爆発的なアクセスがあるわけでもないので有効なのか今のところ分かりません(-_-;)

Apache Benchでテストはしてみましたけど問題はない感じですが実際にチューニングができているか分かりません。

サイトデザイン

プログラマーとして有名なゆうすけさんのサイトgoogleを参考にしました。

シンプルで使いやすいようにしようと思いこのデザインしました。

3カラム中央可変となっています

クロスブラウザIE7、firefox3、chromeで行いました。

可変ものって作ったことなかったんですがけっこう面倒なんですね。

サイト機能

ブックマーク機能とメニューの折りたたみ機能検索結果の表示方法切替を作りました

まず、ブックマーク機能ですログインなしで気に入った動画ブックマークできるようにしました。

ブックマークに追加した動画ブックマークページで確認できるようにしました。

cookie機能を利用したらいけると思い色々調べてjquery.cookie.jsを利用。

保存したクッキー情報を呼び出してphpに渡して処理し指定要素にブックマーク一覧をloadメソッドで表示させるという感じです

$(function(){
$("#youso").load("xxx.php");
});

メニューの折りたたみ機能は人気AV女優AV女優別、人気タグなどをそのまま表示させるとずらっと長くなって邪魔だったのでつけました。

これには同じくjquery.cookie.jsを利用しました。

参考サイトhttp://blog.caraldo.net/2009/03/newjqqookiemenu.php

検索結果の表示方法切替にはZoomer Galleryを利用しました。

参考URLhttp://phpjavascriptroom.com/?t=ajax&p=jquery_plugin_zoom#a_zoomergallery

検索結果ページで表示される

[ここの画像]

××× の検索結果

44件中 1~10件目を表示

ここの画像の部分をクリックするとgoogleイメージ検索みたいに一覧でイメージ表示できるようにしてみました。

動画表示ページ

基本的に動画の埋め込みを許可しているサイトのみプレイヤー表示をしそれ以外は画像を表示し動画データリンクするようにしました。

埋め込み部分はあらかじめそれぞれのサイト対応したプレーヤー部分のコード記述しVIDEOIDの部分に置き換えるような形にしました。

XVIDEOSを例にすると

XVIDEOS場合かならず動画urlhttp://www.xvideos.com/videoXXXXXX/のようになりますのでXXXXXXの部分を

VIDEOID部分に置き換えるようにプログラムを組みました、

埋め込み部のソース

>||<object width="510" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://static.xvideos.com/swf/flv_player_site_v4.swf" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="id_video=VIDEOID" /><embed src="http://static.xvideos.com/swf/flv_player_site_v4.swf" allowscriptaccess="always" width="510" height="400" menu="false" quality="high" bgcolor="#000000" allowfullscreen="true" flashvars="id_video=VIDEOID" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>
||<

その他の動画サイトURLの一部分のデータを使っているので同様の処理をしました。

まとめ

実際の作業は2、3週間ですが色々調べる時間が多くて制作に2ヶ月くらいかかりました。

自分エロ動画検索を作ってみて有名プログラマーさん達がいかに優秀なのか思い知らされました。

皆さん思いついて数日で作ってしまうのでびっくりです

全くWEBの知識がない人で4、5ヶ月ですごいの作っちゃう人とかもいるみたいですし世の中広いな~と思います

しかし、エロサイト作りで勉強になりますね~

大分、色んな知識を得ることができました。

これからプラグラム勉強しようと思う人はぜひエロサイトから入ってみて下さい。

きっと楽しいですよ!

そんなこんなで?頑張って作ってみたエロ動画検索、良かったら使ってみて下さい。

これで少しは技術の発展に役立てたでしょうか?w

アダルト動画検索ヌキネーター

P.S エロサイトを作っていてはじめは楽しくて興奮しながら作ってたのです最後の方はエロい物を見ても全く反応しなくなりましたw

  不能ではないんですけど・・・現在も性欲が著しく減退しております・・・

  そしてスーパーpre記法がうまういかないのはなぜ?はてな匿名ダイアリー投稿全然からない・・・

  そしてそしてプログラマーさんとかデザイナーさんとかエロい人とかお気軽にお声をおかけ下さい。

【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545

2011-07-31

そうしてあなたは去ってゆくのね」はそうして去ってゆくのね

http://mixi.jp/run_appli.pl?id=5638

http://mixi.jp/view_bbs.pl?id=46278682&comm_id=4544309

知らぬ間に去っていったマイミクを調べることができるmixiアプリだが、8月1日提供終了になるらしい。

現時点で、全体のアプリ週間利用者数ランキング20位、利用者数179万人のアプリである

アプリ8月1日をもって終了いたします。

これまで「そしあな」をご愛顧頂き、誠にありがとうございました。

なお、mixiアプリ版は終了となりますiPhoneアプリそうしてあなたはさってゆくのね」の提供を開始しております

このiPhoneアプリtwitterフォロワー用の「そしあな」となります

AppStoreで「そしあな」と検索してみてください。もちろん無料です

7月上旬にはAndroidスマートフォンアプリ版「そしあな」の提供も予定しております

Android版の提供を開始しましたら、またこちらでお知らせいたします。

twitterフォロワー用は継続して提供されるようだが、いなくなったマイミクを知る手段はなくなってしまうようだ。

そこで8/1以降も、このアプリを使用できる方法を用意した。(FirefoxChromeで確認済み)

↓↓↓以下説明↓↓↓

https://sap.mixi.jp/home.pl を開いて、何回かパスワード入力すると、管理アプリ一覧の画面になる。

(Developer登録をする画面になった場合は登録を済ませてほしい)

管理アプリ一覧を開いた状態で、下記の文字列アドレスバーに貼り付けてエンターを押すと、アプリ作成の画面になるので、内容を確認して問題なければ「作成する」ボタンクリック

javascript:(function(){p=location.href.match(/postkey=(.*)/);location.href="https://sap.mixi.jp/add_appli.pl?submit=main&name=%E3%81%9D%E3%81%86%E3%81%97%E3%81%A6%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AF%E5%8E%BB%E3%81%A3%E3%81%A6%E3%82%86%E3%81%8F%E3%81%AE%E3%81%AD&url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F36813827%2Fgadget.xml&description=%E3%81%9D%E3%81%86%E3%81%97%E3%81%A6%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AF%E5%8E%BB%E3%81%A3%E3%81%A6%E3%82%86%E3%81%8F%E3%81%AE%E3%81%AD&d1_enable=1&details=%E3%81%93%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AF%E3%80%81%E7%9F%A5%E3%82%89%E3%81%AC%E9%96%93%E3%81%AB%E5%8E%BB%E3%81%A3%E3%81%A6%E3%81%84%E3%81%A3%E3%81%9F%E3%83%9E%E3%82%A4%E3%83%9F%E3%82%AF%E3%82%92%E9%80%83%E3%81%95%E3%81%9A%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A7%E3%81%99%E3%80%82%E8%AA%B0%E3%81%8C%E3%83%9E%E3%82%A4%E3%83%9F%E3%82%AF%E3%81%8B%E3%82%89%E5%A4%96%E3%82%8C%E3%81%9F%E3%81%AE%E3%81%8B%E3%81%BE%E3%81%A7%E7%9F%A5%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82&agreement=agree&postkey="+p[1];})();

こうしてあなた専用の「そうしてあなたは去ってゆくのね」が作成された。

あとは「アプリ実行ページへ」から普通に使うことができる。

何らかの理由で、この手順がおこなえない場合は、マイミクの誰かに代理で作成してもらい、そのアプリ自分アカウントに追加するのでもよい。

2011-07-22

twitterで知り合った婚約者リムーブした。

フォローしてないほうが幸せと聞いてはいたが、付き合って間もない頃は「フォローしたまんまでいいじゃん」と思っていた。

でもやっぱりリムーブしたくなるものだね。

見えなくなってめちゃくちゃスッキリしたし、複数リプライとかでscreen nameが見えるのもストレスの元だからNG指定したりミュートしたりしたいくらい。

2011-04-26

HTML frame の名前(name)の先頭に_(アンダーバー)をつけると挙動が変?

<frameset>

<frame name="_main" src="...">

...

</frameset>

のような、フレームを用いたWEBページを作成した

あるページで

<a href="...." target="_main">

した場合目的の_mainのフレームは移動してくれない。

フレーム名前を"main"としたら、移動してくれた。

ブラウザは、IE6

http://www.tagindex.com/kakolog/q2bbs/1301/1564.html

2011-03-30

増田キーワードリンク無効化user.js Opera

// ==UserScript==
// @name keywordlink-buster
// @include http://anond.hatelabo.jp/*
// @exclude http://anond.hatelabo.jp/*/edit
// ==/UserScript==
(function (){
  var init = function() {
    var anc = document.querySelectorAll('div.section a.keyword');
    for (var i = 0, a; a = anc[i]; i++) {
      a.parentNode.replaceChild(document.createTextNode(a.innerText), a);
    }
  }
  window.addEventListener('DOMContentLoaded',init,false);
})();

2011-03-20

より良いPHPerにならないための20Tips

http://1-byte.jp/2011/03/20/20_tips_you_need_to_learn_to_become_a_better_php_programmer/

良いPHPerだって?そんなものは丸めゴミ箱にでも捨ててしまった方が資源の再利用になる分いくらかマシだ。

つまり俺たちがしなくちゃならないことは「より良いPHPerにならないため」に何ができるかってことなのさ。

それじゃ、始めよう。

1. ?>を使うな

?>なんて使っちゃいけない。そう俺たちはBAD PHPer。

無駄ホワイトスペースの出力に悩まされるくらいなら対称性なんて丸めゴミ箱にでも捨てた方がまだマシだ。非対称性こそが賛美。

2. 設定ファイルPHPで書くな

require_once("config.php");

未だにこんなことやってるやつがいるのかいベイベー。絶対にダメだ。この一行を見たら俺は悶絶する。

ダメだ、早く何とかしないと。

大抵このconfig.phpの中身はこうなっている。見て絶望だ。

$hoge_path = '';
if (!LOCAL) {
    define('FOO_FLAG', 1);
    if (HONBAN) {
        define('HOGE_FLAG', 1);
    }
    else if (TEST) {
        define('HOGE_FLAG', 2);
    }
}
else {
    $hoge_path = '/local';
    define('FOO_FLAG', 2);
    define('HOGE_FLAG', 3);
}

define('HOGE_URL', $hoge_path.'/hoge/');

こういうのが延々と続くわけだ。もういやだ。もう見たくない。

本番環境テスト環境でどういう値の違いがあるのか、ローカル環境だとどうなるのか、まったく把握できる気がしない。

なまじPHPな設定ファイルのせいで処理をついつい書いてしまう。そしてどんどん複雑になってしまう。

やはり設定データは基本的にYAML等のデータしか定義できない形式のもので用意すべきだ。そして環境ごとに設定ファイルを分けるべきである

そうすることで何にどういう違いがあるのかすぐにわかるし、diffすれば一度にすべて把握することができる。

# 本番環境設定ファイル
foo_flag: 1
hoge_flag: 1
hoge_url: '/hoge/'
# テスト環境設定ファイル
foo_flag: 1
hoge_flag: 2
hoge_url: '/hoge/'
# ローカル環境設定ファイル
foo_flag: 2
hoge_flag: 3
hoge_url: '/local/hoge/'

3. コメントを信用するな

そう、あなたはこんな状況に遭遇したことがあるんじゃ?

// ここで後の処理のためにhogeメソッドを呼び出しておく
$q->foo();

// $a['foo']はここに来る時点で真のはず
// 2010-03-10 判定がおかしいので修正
// 2010-06-21 やっぱり値が入ってる方が正しい
if ( !isset($hoge[0]) ) {
}

コメント保守されない。そう、それは真実。こんなコメント発見したら即効削除しよう。コメントは基本信じるな。

俺たちにちょっとしたヒントと大きな損害を与えてくれる、それがコメントの役割なのだ。

4. タブとうまく付き合うしかない

わかる。いいたいはとてもわかる。俺たちはしばしばインデントにスペースを使うはずだ。一方でIDEのしっかりした言語ではタブも使うことがある。しかし悪いことに、両者を混同しているプログラマも一定数いるのだ。

タブを画面上で認識しにくいエディタが世の中には存在する(何とは言わないが)

そして画面上で認識しにくいことを理由にタブを気にしないプログラマがいる。

この二つの条件が重なると、タブとスペースの交じり合ったインデントが完成する。もうぐちゃぐちゃだ。これは永遠に続く戦いだ。

私たちが勝利を掴むためにできることなどせいぜい、常にスペースしか使わない。タブを見つけたらその都度スペースに変換する。そういった地道な活動が明日へとつながるのだ。

5. 変数名に時間をかけるな

われわれがプログラムをするとき、何に一番時間がかかってるか。実は変数の命名なのである。ここで拘り過ぎて時間をかけ過ぎては何も進まない。

御託はイイからさっさと書け、だ。しかしとはいっても変数名は重要。日頃からどういうときにどんな名前を使うかを決めておくといい。

そして変数名に型はまったく必要ない。型宣言のないPHPにおいて、型の変数名をつけること自体ナンセンスだ。

コンパイラ様に保証されてない状態での

$iNumber = 'aaa';

になんの意味もない。コメントを信じるなでも言ったが、これはプログラマを混乱させるだけの害悪なものだ。

6. 変数初期化場所

変数を使う前に初期化するのは、警告を出さないという意味でも良い癖だ。しかし具体的にどこでやるかが問題だ。

$foo = null;
$foo = $q->foo();

こんな初期化意味はない。よくあるのはやはり、if文で値を振り分けるケースだろう

$foo = null;
if ( $hoge ) {
    $foo = 1;
}
else if ( $bar ) {
    $foo = 2;
}

このとき初期化はとても有効だ。もしnullの初期化を忘れたまま$fooを使うと警告が出るが、ちゃんと初期化してるので出ない。基本中の基本だ。

7. 不正なら常に死ね

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    return $bReturn;
}

(中略)

もし、何かしらの理由で、あなたの書いたif文が間違っていたら?

この書き方をしていれば、間違った値に対して、常にfalseが返る。

私たちが、PHPでsensitiveなデータを取り扱うなら、正しいデータ入力されるまでは、動かないコードを書くべきだ。

trueとfalseの条件がいまいち明確ではないが、本当に動かないコードを書けというのであれば以下のようにすべきだ

function getStatus() {
    $bReturn = false;
    if ($i == 2) $bReturn = true;
    else if ($i == 1) $bReturn = false;
    else throw new Exception("bad status! $i");
    return $bReturn;
}

中途半端にfalseを返して生存させる必要性はまったくない。今すぐ死ね

8. 連想配列キーアクセスする場合

単なる配列に対して数値をクオートで囲う必要はない。

連想配列キーを指定する場合だけ定数と間違わないようにクオートで囲まなければならない。そして逆に定数を使いたい場合はクオートで囲ってはいけない。

更に後世のプログラマ処理を見たときに、定数が使いたかったのか、文字列が使いたかったのかを明確にした場合はconstantを使うと良い。

// 定数のFOOを使うよということが明確になる
print $a[constant('FOO')];

9. echoよりもprintfを使え

もし、文字列変数の値と一緒に出力するときPHPではコンマの代わりにprintfを使うことが使える。

なぜ?コンマを使うよりも可読性がグッとあがるから

printf( “Hello, my name is %s“, $sName);

以下の代わりに上記のコードを使う。

echoHello, my name is “, $sName;

出力すべき変数が増えれば増えるほど、有効になっていく。とにかく迷ったならば、printfを使え、だ。

10. 三項演算子は一回まで

三項演算子はとても有効だ。しか優先順位に難があるせいで三項演算子ネストしようとすると以下のようなコードになってしま

$n = (($i == 1) ? 2 : (($i == 2) ? 3 :$i));

括弧だらけで読みにくいったらありゃしない。三項演算子を使うなら一回まで。約束守れないやつは丸めゴミ箱にでも捨てちまえ。

11. 真偽値のチェックは生でいけ

if ( $flag ) {
}

仕様をちゃんと把握しているなら真偽値のチェックなどこれで十分。

もし事前にbool型だというのが確定してるのなら「$flag === true」を使えばいい。

12. ++と--の演算子を見極めろ

インクリメント、デクリメント演算子は前に付くか後ろに付くかで意味が変わるので慣れるまでは非常にややこしい

けがからなくなるくらいなら初めから使わないほうが良い。見極められないなら使うな。それがPHPerなのだ。

13. 代入演算子を使え

文句なしだ。これは文句がない。

他にも色々あるので覚えておこう

$a %=  1;
$a &=  1;
$a |=  1;
$a ^=  1;
$a <<= 1;
$a >>= 1;

14. 変数dump関数はより便利に

てっとり早く画面に表示する際にpreはよく使うが、デザインの関係上画面の文字が見えないときがある。

なのでdivを使って以下のようにしとくと便利だろう。

function p($var) {
    echo "<div align='left' style='background-color:white;color:black;'><pre>";
    print_r($var);
    echo "</pre></div>";
}

15. 定数から手を洗え

君らが通常作るアプリケーションなんぞに、定数なんぞ必要ない。いいか、もう一度言う、お前ら程度のもんが、定数使おう何ぞ、おこがましいわ!

大丈夫。なんでもかんでも定数にする必要はない。結局設定ファイルに定数をずらずら作りまくってわけがからなくなってるパターンが多い。

貴様たいなもんに、定数は制御できん。いいか設定ファイルYAML等のデータで持つようにし、その連想配列データ構造を一つ持ってるだけで定数の変わりになる。

このメリットに比べれば、定数だと書き換えられなくて良いという利点などこの歯のカスほどのものだ。そんなものは丸めゴミ箱へ捨ててしまうといい。

認識を改めろ。俺たちはより良いPHPerにならないために努力している。

16. $_GETと$_POSTを生で使うな

できれば何かしら簡単なクラスでもいいのでラップしろ。

class Request {
    private $parameters;
    private $method;
    function __construct () {
        $this->method = $_SERVER['REQUEST_METHOD'];
        if ( strtoupper($this->method) === 'POST' ) {
            $this->parameters = $_POST;
        }
        else {
            $this->parameters = $_GET;
        }
    }
    function param ($key) {
        return isset($this->parameters[$key]) ? $this->parameters[$key] : null;
    }
}

これだけでもいい。たったこれだけでもとても便利だ。ここから拡張してGETやPOSTを明示的に取るメソッドとかも作ってみるといい。自分の手を動かすのだ!

17. 関数だのオブジェクトだのの問題ではな

例が良くない。こんなのは引数20個ある関数からset20回呼ぶオブジェクトに変わっただけではないか

そもそもこの20個の引数はなんなのか。何かのデータ構造なんであれば連想配列にして引数一つとして渡すべきだし、それぞれまったく異なる用途の変数なのであればWindowsプログラミングじゃあるまいし20個も引数取る時点設計が間違えている。

何がいいたいか。別に関数でもオブジェクトでもどっちでもいいということだ。

そんなことで悩んでる暇があったら設計を見直せ。

18. メソッドチェインを愛用せよ

スキあらば自分自身を返せ。スキあらばオブジェクトを返せ。配列はArrayObjectのARRAY_AS_PROPSで返せ。

ひたすらメソッドチェイン。来る日も来る日もメソッドチェイン。とにかくメソッドチェインを使い続けろ。そこに未来はある。

19. コードの汎用化は慎重に

どんなコードも繰り返すな。もし、少しでも同じコードを書いていたなら、それは関数に置き換えてしまえ。

・・・と、いうのはやめなさい。

一見同じように見えた処理でも前後の流れでまったく違うものということが往々にしてある。

まとめ方にも問題があるケースもある。何でもかんでも関数化すると、関数が膨大に増えていく。君は見たことがあるだろうか。common.phpやfunction.phpの恐ろしさを。

かに細かく関数化はされているが、適切に関数化していないのである。結合度が非常に高い。なんでもかんでも盲目的にまとめれば良いという話ではないのだ!

20. 結合度は適切に減らし、適切に結合せよ

あまりに極度に意識しすぎると、プログラムそのものができなくなる。そういう状態に陥る。

気を抜いて。そう気を抜いて。所詮あなたコードなんてすぐに消えてなくなるよ。きっともっと偉い人が作り直すよ。だからまずは思うが侭にやるといい。

結合度を減らすというのは非常に難しい何度何度も失敗し続けて、ようやくここは分けた方が良かったんだなと気付く。次に活かそうと心に決める。そしてまた同じ過ちを繰り返していくわけだ。

まずは実装することだ。これが一番の早道だ。まずはがっつり結合した関数をあえて作るといい。何も考えずに作ろう。

そしてその後に、一部分使いましたいとおもうことがあるはずだ。その時に関数に切り出そう。それを繰り返すといい。そのうち初めから分けた方が良いと気付く。

何事も経験が必要である経験を積まないプログラマ丸めゴミ箱に捨ててしまえ。

さて、先の例で言うならば、私ならadd_result_outputという関数を作ってしまうだろう。だってaddとresultを連続して呼ぶのはめんどくさいんだもん。一連の流れをいつも使うのなら、その流れをやってくれる関数を作ればいいじゃないか

function add_result_output ($iVar, $iVar2) {
    $r = add($iVar, $iVar2);
    echo result($r);
}

もっと言えばクラス化してしまってもいいかもしれない。どんな感じになるかは君の手を動かして確認しよう!

最後

このTipsはとてもわかりにくく、ニッチ過ぎる部分も多いかもしれない。

しかしもう一度タイトルを確認してほしい

あくまでも「より良いPHPerにならないための20Tips」なのだ。

君はこの記事を鵜呑みにしてはならない。PHPPHPと見抜けないPHPerはPHPを使うのは難しい

おまけ

もし、あなたPHPプログラマなら、公式のPHPドキュメントあなたのケツの穴を拭くための紙になるだろう。

私は、それぞれのセクションを眺めて、各関数でどんなことが出来るかなんぞ、歯クソのゴミ程に役に立たないとおもっている。動けばいい。はは。

あなたは、PHPで用意された既製関数で多くのことが実現できることに、(俺の仕事を減らすなと)驚くはずだ。

この記事があなたの役に立たない事を。

どんなコメントでも待ってます

ふざけんな!

個人的な感想

この記事に書かれている内容は、丸めゴミ箱に捨てた方が良いレベルです

もしここまで読んでしまったら、丸めゴミ箱に捨てましょう。

プログラ増田のあなぐら

2011-02-26

http://anond.hatelabo.jp/20110226174558

char *name="hogehoeg"; // スペルが間違っているが直さないこと。多くのシステムでコレをキーとして使っているので直すと大変なことになる。

2010-11-30

はてブでえがちゃんのエントリーを非表示にするグリモン書いた

すてきな笑顔画像がとてもうざかったので。

// ==UserScript==

// @name deny_ega

// @namespace hogehoge

// @include http://b.hatena.ne.jp/*

// ==/UserScript==

var entry_list = document.getElementsByClassName('entry-body');

for (var i = 0; i &lt; entry_list.length; i++) {

var reg = RegExp("http:\/\/blog.livedoor.jp\/ikiradio\/");

var txt = entry_list[i].getElementsByTagName('blockquote')[0].getAttribute('cite');

if(txt.match(reg)) {

entry_list[i].style.display = 'none';

}

}

2010-11-03

Xperia X10 mini pro に Android 2.1 を入れてみる

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/24kv56ySMS/MMSgmailバックアップしておこう

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

Nordic ファームなのでキーマップが違うなぁ。

UK ファームのときの qwerty.kcm.bin を取っておけば良かったのかな。

00:45 MMSUserAgent 変えるの忘れてた。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 へのシンボリックリンクだったので置き換えず。←今ココ

2010-10-19

NEC VALUESTAR VW500をリカバリ領域のみで再セットアップするまでのまとめ

自分用および同様の症状で困っている方用ログ

当初の目的ブートエラーからの復帰

友人から起動しなくなったとヘルプが来たので急行

電源ボタンを押し、BIOS起動後、ブート中にこんなエラー

A disk read error occurred

Press Ctrl+Alt+Del to restart

帰省中1ヶ月ほど放置し、久しぶりに電源を押すとエラーが出るようになったらしい。

変なソフトインストールBIOSアップデート等はしていないとのこと。

エラー復旧に1週間も無駄にした挙句挫折

当初はF8キーを押して[詳細ブートオプション]を開ければ、すぐに直せると思っていたけど、

ブートから進まないのだからF8キーを押しても同じエラーが出るだけ。

一応、F2キーBIOS設定画面を開き、[Load Setup Defaults]を試すも症状変わらず。

 

また、VISTAにはXPの[回復コンソール]がなく、[システム回復オプション]という復旧手段が用意されている。

しかし、このマシンプリインストール版なので、ディスクからの起動できない。

この場合はF8キーを押して[詳細ブートオプション]を開いて、そこから起動できるようだ。

・・・・・・\(^o^)/オワタ

 

その後、試行錯誤を繰り返した結果、再セットアップするしかないという結論に至った。

KNOPPIXデータバックアップを取っておこう

バックアップするにもWindowsが起動しないので、こんな時はいつもLinuxOS Knoppixに頼っている。

公式サイトhttp://www.rcis.aist.go.jp/project/knoppix/)ではDVD版とCD版がiso形式で配布されており、DVDなりCDなりに焼けばOSディスク起動できる優れもの

さらにCD版をUSBインストールしたUSB版も作成できるので、非常用に1つ作っておくと便利。

以下、USBKnoppixの作り方。

こちらのサイトUSB-Knoppixではじめよう http://yumenohako.jp/cgi-bin/knoppix/wiki.cgi)を参考に簡単に解説。

【本題】リカバリディスク(再セットアップディスク)をどうやって作る?

このマシンは前述の通りプリインストール版なのでインストールディスク(再セットアップディスク)が付属していない。

では、どうやって再セットアップするかというと、

しかし、今回はF11キーを押してもエラーが表示されるのみ。それにわざわざリカバリディスク作成しているはずもなく手詰まり

リカバリディスクはこちら(http://nx-media.ssnet.co.jp/から購入できるけど価格は1万円。自作するしかない。

そもそも本来はリカバリディスク作成できるのだからHDD内のどこかにリカバリディスク用のデータが入っているはず。

そこで再びKNOPPIXを起動してみると、[NEC-RESTORE]という名前リカバリ領域が隠しパーティションとして用意されていた。

以下、リカバリ領域を使ったリカバリディスクの作り方。

こちらのサイトLaVieレストア顛末記 http://deme.jp/wing/vol019/demeshin/NEC.htm)が大変参考になった。感謝

以上の作業によりHDD故障していない限りはリカバリディスク作成して再セットアップ可能。

ただし、当初のエラーの原因がHDDにある可能性もあるので、HDDを交換してからリカバリディスクを使用した方がいいかもしれない。

今後はCrystalDiskInfoなどのソフトを使用してHDD監視をするつもり。

【失敗】再セットアップ時のエラー

再セットアップが進むと、シマンテック社の「Norton Ghost」というバックアップツールが起動し、1%2%3%...と作業が進行する。

最初にやった時は、50%ほど作業が完了したところでこんなエラーが出現。

Cannot open GHOSTERR.TXT - insert diskette (434)

File Name ? (546)

Output error file to the following location

A:\GHOSTERR.TXT

[OK] [Cancel]

おそらくGHOSTERR.TXTというファイルの出力先が見つからないのだろうとあたりを付けて、

フォーマット済みCD-RWを挿入後、A:をCDドライブのF:に書き換えてOKを押すと

Application Error 19235

Ghost has detected corruption in the image file.

Please perform an integrity check on the image.

if this program persists, please contact Symantec support center

or contact systematec support

どうやらイメージファイルが壊れているらしい。

このイメージファイルとは、前述リカバリディスク作成手順6以降の[拡張子GHSファイル]。GHSGHOSTの略か?

そこで、Disk4,5,6をNERO9体験版太陽誘電製のTHE日本製DVD-Rを使用し、

念のためディスク1枚あたり4GBを超えないようにし、4倍速で焼き直してみたところ、今度は正常に再セットアップが完了。

最初Windowsに標準装備されている[ディスクへの書き込み]+台湾製の安物DVD-Rを使用したのだが、

どこかで焼きミスしたことがエラーの原因だったらしい。

これを教訓に次からは絶対にライティングソフト国産ディスクを使うことにしよう。

(追記10/22)HDD健康状態は「注意」レベル

CrystalDiskInfoを使用してHDDの状態を調べたところ、案の定「注意」レベルだった。

注意項目生の値 
代替処理保留中のセクタB(11
回復不可能セクタ25(37)

※[生の値]の数値はデフォルトが16進数表記。括弧内は10進数に変換した数値。

やっぱり当初のエラーHDD故障とまではいかなくとも寿命が近いということだったのか。

使用時間は17000時間HDDの交換を検討した方が良いけど、一体型の交換は難しいような。

まずはWestern DigitalHDDからData Lifeguard Diagnosticsでゼロフィルをやってみる予定。

エラーチェックで完全に逝くかもしれないけど、バックアップもしてるし、リカバリディスクもあるし。

あと、VistaのバーションはSP1だと思っていたけど、まだ更新していなかった模様。

そこで更新プログラムインストールしてみると途中で止まってしまい、修復スタートアップする羽目に。

(追記10/24WD Data LifeGuard Diagnosticsのゼロフィルで「正常」に回復

Vista SP1の導入に失敗し、修復スタートアップを行ったものの、12時間経っても終わらず。

そこでいっそのことHDDデータを完全に消去して、再セットアップすることにした(7時間ほどかかる)。

方法としては先日のとおり、Western DigitalHDDの診断ツール「Data Lifeguard Diagnostics」を使用する。

このツールはFDD版とCDしかないので、いつものようにUSB版の作成を試みる。以下作り方と使用方法

再セットアップ後、CrystalDiskInfoを実行すると見事に「正常」レベルに回復。

前回注意項目だった「代替処理保留中のセクタ」と「回復不可能セクタ数」の生の値は0に変化。

なぜか使用時間が14000時間に減少していたものの、とりあえずはHDD故障心配はしなくていいかな。

ちなみにSP1の導入は成功。今後はCrystalDiskInfoを常駐させ、監視を続けることにする。

 

(追記11/8/18)そろそろ限界

あれから10か月後、悪夢ブルースクリーン降臨したので、またクリーンインストールを行った。

CrystalDiskInfoを使用してHDDの状態を調べたところ、「注意」レベルに逆戻り。

注意項目生の値 
代替処理保留中のセクタ2D9(729)
回復不可能セクタ70(112)

※[生の値]の数値はデフォルトが16進数表記。括弧内は10進数に変換した数値。

以前のエラー時よりさらに状況が悪化しており、HDD寿命がかなり迫っている模様。

いつ突然死を迎えてもおかしくないので、重要データバックアップのうえHDDの交換を予定。

 

ブログがないので、増田ログ残し。ツッコミや質問はid:frsattiまで。

2010-09-05

日本人英語は見るに堪えない、聞くに堪えない

それも、発音や文法だけじゃなくて「内容」がだ。Lang-8みたいな語学サイトとか、ブログtwitter英語記事なんか、読んでいるこっちが赤面したくなるぐらい白痴じみたことを書いていて「頼むからやめてくれ」と言いたくなることがある。

例えば今日見た例だと(さらし者にするのが本意ではないので出典は伏せるが)、ある日本人twitterで"*** is a very good software"とか何度も何度も書いていた。ところが状況的に、それを読んでいるのは***というソフト関係者ばかりだったのだ(ハッシュタグまで使っていた)。これがどれだけ奇妙なことかわからなければ、例えばラブプラス日本語コミュに現れた外人が5分おきに「ラブプラススバラシイネ」と発言している状況を考えてみればよい。日本人はどう反応していいか困るのではないか(別にラブプラスでなくてもなんでもいい。俺はアニメとかエロゲとかよくわからんので知ってる名前を出しただけ)。

はっきり言って、ああいうの見てると日本人英語マンセー外国マンセーになったり、debito.orgやJapanToday当たりに集う在日英米人が日本侮蔑する理由がわかるよ。英語で話したがる日本人の中には、英米人を捕まえては "My name is ***. I can't speak English very well, but I want to be native speaker of English. Where are you from? What Japanese food do you like? Can you use chopsticks?" みたいな愚にもつかんことを言ってる連中が実に多いからね(native speaker云々は揶揄で書いたんじゃなくて、本当にそういう奴が何人もいるからな!Lang-8smart.fmあたりで自己紹介検索してみるといい)。文法以前に内容の問題だとわかるはず。関西人の俺は今まで「納豆食える?」とか「マクドナルドのことはみんな『マクド』って言ってるの?」とか百回以上聞かれてうんざりしてるが、それをさらに百倍ぐらい劣化させた質問を会う人ごとにされればそりゃ「日本人馬鹿だ」と思うようにもなるだろうさ。

いや、勿論「ジャップは劣等民族」なんて言ってるわけじゃない。その反対だ。例えば上のtwitterの人なんて、日本語では非常に的確なことを簡潔に言っていた。それだけに、英文をみてげんなりしてたんだよ。その人の子供がいたずらで書いたんじゃないかと思ったほど。

なんでそんなことになるのか?理由は簡単だ。

なぜ和洋折衷原稿をはじめに書いたかというと、悲しいことに、英語では

深く考察することができないからです。じっくり思考するためには、日本語

考えて、日本語で書かなければならないのです、私の場合

英語だと、ほんとうに表面をサラッとなぜでる程度の、つまり中学生程度の

ことしか考えられないのです。大部分は、語彙の問題なのでしょうね。

http://bryologist.cocolog-nifty.com/blog/2009/08/post-54d6.html

当たり前のことだが、プログラミング言語で言えば、語彙はライブラリだ。ライブラリトンチンカンでは、どれだけ構文の優れた言語でもまともなものは作れない。そして英語というのは困ったことに昔は未開人の言語であり(日本語もそうだが)、外来語だらけで語彙体系がぐちゃぐちゃなのである。フランス語ドイツ語をやったことがある人ならわかると思うが、英語というのはちょっと日常会話を超えた程度のことを言うためにも覚えなきゃいけない単語数がめちゃくちゃ多い(日本語もそうだが)。日本語言語学的な類縁関係がないことを置いておいても、決して易しい言語とは言えないのだ。

そのため、英語での情報収集は「脳味噌ハンディキャップつけた状態で戦う」ことになる。しかし、こちらがハンディ付きで戦って歯が立たないと感じた相手が実際に本当の強敵かということは疑問のはず。ところがそのことに無頓着な人が多すぎて、英語圏情報は全て高級で高尚であるように思っている人が余りにも多いように感じる。そのためか、英語圏社会全体が色々過大評価されすぎのように思う。マスコミ一つ取っても、高級メディアの定評高いNYTやBBC朝日TBSと同程度には「マスゴミ」だし、iPodだのiPhoneだのiPadだのは「技術的には二番煎じなのに商売のうまさだけでコバンザメ的に利益を取っていってる、こんな猿真似野郎が市場を支配するなんて許せない」という、一昔前にSony松下あたりが浴びた批判がそのまま当てはまる。勿論向こうに優れた文化や見習うべきところはいろいろあるが、所詮は同じ人間が住んでいるということを忘れていやしないか。向こうにも色々悪いことはあって、一から十まで見習うべきユートピアなどでは決してないのに。

ちょっと習い覚えた英語を使って「グローバルごっこ」して喜んでいるだけならそれこそ猿でもできる。そこでとどまらずに、自分がやっていることがどういうことなのかをもうちょっと考えて、客観的に物事を見ようという姿勢の人が少ないのは本当に情けない限りだ。

2010-09-01

お客さんのメール送信エラー

The Postfix program

&lt;ayachan-sukisuki@dpcpmp.ne.jp&gt;: Host or domain name not found. Name service error

for name=dpcpmp.ne.jp type=A: Host not found

dpcpmpって何て読むんだろ

2010-08-30

俺専用メモ・自由の国アメリカ

二次裏ふたば独裁者スレより

 無念 Name としあき 10/08/29(日)19:59:42 No.8066446 del

独裁の最大の害悪は強烈なコネ世襲社会になること

ツッコミ入れるマスコミもないからやりたい放題だ

ソ連も出来たころはものすごい勢いで経済成長していたんだが

一気にこれで動脈硬化おこして最後は潰れちゃった

無念 Name としあき 10/08/29(日)20:14:38 No.8069634 del

&gt;独裁の最大の害悪は強烈なコネ世襲社会

歴代アメリカ大統領の半分は血縁だし

ワシントンとかジェファーソンの縁者でぐるぐる

まわしてるだけ

オバマ共和党のチェイニー副大統領のいとこだし

白人の名門だよ(母系つながり)

クリントンの母の姓はジェファーソン

だがそれでは名門臭くてアレなので義理の父の家を名乗って

庶民派で当選した。

奥さんヒラリー・ロダムルーズベルト血縁

オランダ系に多いローゼンバーグを短くしたものだとか

2010-08-05

Wikipediaニコニコ大百科などに使われる、

NAME(CATEGORY)

という形のネーミングはなかなかいいね。

CATEGORYの例として、ニコニコだと実況プレイヤー生放送主とか。

Wikipediaだと内閣総理大臣(一覧)とかONE PIECE (アニメ)とか。

プログラマだと'アニメ::ONE PIECE'や'アニメ.ONE PIECE'のようなネーミングに慣れてると思うけど、

NAMEが前に来るほうが視認性が良い。ただ、()のタイピングは面倒だけど。

.

あとGIGAZINEURL最近良いと思ったネーミングの例。

簡潔な名前であり、しかも名前を見ただけで内容が容易に推測できる。また日付も付いている。

ttp://gigazine.net/index.php?/news/comments/20100805_employees_social_media_celebrities/

Twitterなどで有名人となっている社員の取り扱い方法、5つのメリットと5つの地雷 - GIGAZINE

ttp://gigazine.net/index.php?/news/comments/20100804_too_proud_to_be_majority/

→多数派の意見は、すでに対立する見解を持っている人には受け入れられない - GIGAZINE

2010-07-24

google発のProtocol Buffersについて

オブジェクトシリアライズツールであるプロトコルバッファについて書きます。

プロトコルバッファって何って方はこちらへ

Protocol Buffers 本家

http://code.google.com/apis/protocolbuffers/

XMLはもう不要!? Googleシリアライズツール「Protocol Buffer」

http://journal.mycom.co.jp/articles/2008/07/18/protocolbuffer/index.html

Protocol Buffers (Protocol Buffers の内部解説記事。とても参考になります)

http://dodgson.org/omo/t/?date=20080712

内容

プロトコルバッファは異種言語間でオブジェクトのやりとりをするための規格です。

独自の言語によりオブジェクトインターフェースを規定することで、多言語対応を行っています。

例えばこんな感じ。

  • address.proto
package tutorial;

message Person {
  required string name = 1;
  required int32 id = 2;        // Unique ID number for this person.
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
}

// Our address book file is just one of these.
message AddressBook {
  repeated Person person = 1;
}

以上のようなprotoファイルから各言語ソースコード、または何らかのデータ操作ライブラリを使いオブジェクトの処理を行います。

googleによってC++, Java, Python用のライブラリ作成されましたが、他の言語対応したサードパーティー製のライブラリがいくらでもあるので、実質的にほぼすべての言語で使えると言っても過言ではありません。

以下はこのライブラリを使ってみた感想などです。

整数型はVarintという可変長型でバイナリに保存される

数字が多きければ大きいほど、長いバイト長で保存されます。ただし、負数の場合符号ビットが立つ関係で、ほとんど常に変換後のバイト数が最長バイト数(10)になってしまいます。フィールドの型をsint32, sint64で宣言しると、各数値にzig-zags変換が行われるため、負数であってもその値の絶対値で使用バイト数が決まるようになります。

保存されるデータは各メッセージID/型/値のみ

バイナリに保存されるデータは各メッセージID/型/値のみです。なので、同じ定義の二つのメッセージ型は、プロトコルバッファ上では全く同じように扱うことが出来ます。例えば、片方からシリアライズしたデータを、もう片方の型でデシリアライズすることが可能です。

またオブジェクト連続シリアライズ/デシリアライズすることもできます。

継承されたクラスマッピング

すでに存在する継承関係のあるクラスを、Protocol Buffersでシリアライズ/デシリアライズしたい場合は次のようにします。

(Base, Derived はすでに存在するとします)

(ソースコード中になぜか日本語が書けないので、コメントはすべて英語になっています)

message PbBase {
        require int32 id = 1;
        require int32 value = 2;

        require Derived derived = 10; // - Point !!!
}

message PbDerived {
        require string string_value = 1;
}

継承元のメッセージ定義に、継承先のメッセージを持たせます。Base継承するクラスシリアライズ/デシリアライズしたい場合は、PbBaseメッセージを中心に処理を行うことで、比較的簡単に処理を実装することが出来ます。

例えばこんな感じ

Base *Base_DeserializeFrom(PbBase &amp;amp;pbobj)
{
    // Arrange the classes which inherits from Base.
    if (pbobj.has_derived()) {
        return new Derived(pbobj);
    }
    else
    ...
}

class Base {
    ...
    virtual void Base::SerializeTo(PbBase &amp;amp;pbobj) {
        // Set the fields of 'pbobj',
    }
    ...
};

class Derived {
    ...
    virtual void Base::SerializeTo(PbBase &amp;amp;pbobj)
    {
        PbDerived *derived = pbobj.mutable_derived();

        Base::SerializeTo(pbobj);
        // Set the fields of 'derived',
        ...
    }
    ...
};

protoファイルを以下のように書くと、メッセージの扱いが非常に難しくなります。

message PbBase {
        require int32 id = 1;
        require int32 value = 2;
}

message PbDerived {
        required PbBase base = 1; // - Here is the point !!!
        require string string_value = 2;
}

2010-06-25

仕事切り上げて

ゆっくりワインでも飲みたい

メール作法

How to Begin and End Email

Beginnings and endings are a challenge in most activities, but in email getting off to a good start and ending positively will strengthen the communication and increase understanding.

Start with a specific subject line.

Choose the better subject line in each pair below:

1. a. New Phones

b. New Phone Installation: Your Action Required

2. a. Update on Development of Sales Model

b. Status Update

3. a. Summer newsletter

b. 10 Great Tips for Summer vacation

In number 1, the second choice conveys a sense of urgency and action, whereas the first choice falls flat. In 2, the longer title focuses the reader on which update the email is explaining. In 3, you don’t really have much choice. Who would take a?

Next comes the greeting.

Examples:

Hello, Robin.

• Hi, Fred and Lauri.

• Hi, team.

• Greetings, everyone

• Good morning, Sayed. (If Sayed this message in the morning)

• Jian, we are looking forward to meeting you next week.

• To: Finance and Administration Team

• To all employees:

• David,

• Ruth, Mala and Felicia:

Dear Mr. Mathews

The last five examples must be on a separate line at the top of the message. All the others can be either a separate line or at the beginning of a paragraph.

Choose the greeting that matches your relationship with the reader(s) and the purpose of the message. “Hi” is friendly but too informal in certain situations—for example, in response to a request for a proposal. “Hello” is friendly and professional. “Hey”is too informal and slangy for most messages.

“To” followed by a pronoun like “all” or the name of a group sounds professional but does not convey warmth. Warmth is required in all messages, but please remember that you must always consider the position of the receiver.

Avoid gender-based greetings such as “Ladies.” Even if the group you are writing it is all women, some among them will object to this greeting.

Do not greet people whose name is included on the Cc line. Only greet people whose names are on the To line of the email.

The punctuation of greetings is a topic for discussion. All the punctuation used in the list above is correct. Some people use “Hi team” and “Hello Robin” without the comma, but traditional writers retain the comma. The reason is that these words are in “direct address.” When we directly address the reader, as in “Hi, team” (or in the example that begins with “Jian”) the name is separated from the other words by a comma.

Dear Mr. Mathews” is followed by a colon in a business letter and in an email that replaces a business letter. However, it is also acceptable to use a comma after a

Dear” greeting in a business email.

In a quick exchange of email with someone it is not necessary to continually greet your reader. Compare such an exchange with putting the person on hold on the telephone. When you return to the phone call, you say, “Thanks for holding. I have the information: rather than “Hi Laurie.”

The last sentence of an email is like the last words of a phone call. They may be a quick signoff or a courteous close, depending on the formality of the communication.

Examples:

• See you in Tokyo!

• Have a great trip!

I will email you in August to schedule lunch.

• Please call me again with any questions

Thanks again for all your help with the design.

• Thank you for your cooperation. We appreciate the opportunity to work with you.

Avoid continually using “Have a great day!” or similar expression as your closing sentence. It became meaningless with constant use and it is a bad fit with email that communicates a policy or serious announcement.

It is not wise to save a request for action or approval until the end of the message. Email readers do not read to the end of a message when they believe they have gotten the main point already.

A complimentary close—yes or no?

Business letters typicall end with phrases called “complimentary closes” such as “Sincerely yours,” “Best wishes,”and “Best regards.” A complimentary close is not required in email. However, business email often uses such a close to sound formal, look professional, or simply communicate courteously.

Examples:

• Sincerely,(the most formal of the list)

• Best regards, (professional)

• Warm regards, (professional and warm, as you would expect)

• Regards, (less friendly than the other 2 regards choices)

• With best wishes, (or) Best wishes, ( professional)

• With thanks, (professional and grateful)

• Ciao! (friendly and rather informal)

• Cheers, (friendly)

A word like “Greetings” does not belong in a close. It may be used in the last sentence, though, to greet others who might see the message:

• Please give our greetings to Dr. Carr

• Greetings to your colleagues in Systems Research

Although people frequently use “Thanksas a close, it is not standard, and careful writers avoid it. Do not use “Thanks in advanceas a close, because many people find it presumptuous. Rather than “Thanks” or “Thanks in advance,” create a better sentence, such asThanks for considering my request.” Or use “With thanksas a complimentary close followed by a comma.

Advice for those who receive less-than-perfect Email. You will sometimes receive email that is less than perfect, which means you might feel a bit offended by them. My advice to you on this is to get through them and leave them behind. Bring a bright smile to your face and a kind tone to your email reply. Forgive those whose writing was clumsy, abrupt, or annoying. They were merely experiencing moments of being human and imperfect.

ログイン ユーザー登録
ようこそ ゲスト さん