「expression」を含む日記 RSS

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

2016-12-15

http://anond.hatelabo.jp/20161215154456

へえ、「微妙な違い」という意味なんだとすっかり思い込んでた。

辞書にも「A subtle difference in or shade of meaning, expression, or sound」って載ってるし。

本当はどんな意味なの?

2016-03-19

Adobe/Adobe 代替のためのソフト+α (2017/11/23更新)

Adobeのためのソフトと関連しそうなソフトまとめです。

たぶん国内のまとめでは一番多く(また多機能)のソフトを紹介してるのでは?

Adobe代替を探してる方や学生さんに参考にしていただければ幸いです。(あくまでも、趣味範囲お金のない学生向けです。可能ならAdobeでまとめたほうが情報も多いし、ソフト間の連携シームレスになるのは言うまでもなく。)

基本無料か(性能・機能のわりに)安価ものです。

有名だけどあまり優秀でないと思ったもの記載してないものがあります。(ex, PixaSai、Paint.netMMD等)

カテゴリのとなりの()はAdobeではどのソフトかを表します。

対応OSWindowsLinuxのみです。

Macを私は持ってますがあまり好きでないのと、ほかの方にあまりお勧めできない(主にスペック面で)ため載せてません。

今回はCADについてはまとめませんでした。

単純に私があまり知らないのと、様々な用途が多くて分類が面倒なので。

機能や使い勝手自分で調べください。

3DCG:



VFX(AE):

  • Natron
  • Autodesk Toxic
  • Blender
  • ButtleOFX
  • Voodoo Camera Tracker
  • Jahshaka
  • Javie
  • NiVE
  • Black Magic fusion
  • HitFilm Pro (ちょとこの中だと高め、だけど、5万以下)


Non-Linear Editor(Pr):



Drawing (PS):


Vector(Ai):

  • Affinity Designer
  • Inkspace
  • CorelDraw
  • Gravit


Retouch(PS):



Raw(PS):



2D Animation:



Animation(An):



Web(Dw):



Audio(Au):



DAW:



DTP(Id):

  • Scribus
  • EDICOLOR


Projection Mapping:




感想?まとめ?

結構いっぱいありますね。

3DCGは絵を描けなくてもアニメーション動画簡単に作れる点が嬉しいですよね。

Blenderは多機能だけど操作が難しいですけど。

有償であればいろいろなメーカーから良いもがたくさん出てます。(Light Works、Cinema 4d等)

あと学生であればAutodeskの高性能なもの無償で使えます

以下その一覧

それぞれ梱包されてるのは違いますAutoCAD3ds MaxMaya、MotionBuilderなどプロ向けのが無償です。

CINEMA 4D学生無償で使えます

マカーならKritaやAffinity PhotoPixelmatorを組み合わせればアマチュアの方であればPSでなくてもいいのではと思えるほど。

CMYKでの編集可能ソフトPhotoshopだけでないですよ。

KritaとCorelDraw、Affinity Photo可能です。

Kritaは無料、Affinity Photo安価ですし。

ただしAffinity Photoペンタブ手ブレ補正はないです。(Kritaにはついてます。)

写真編集特にRaw現像ならあまりPhotoshopに拘る必要は無いと思ってます。(富士フィルムのような特殊メーカー使用してない限り。)

レタッチは確かにPhotoshopは強力ですけど、Affinity Photoも十二分な機能はあります

業務用でPhotoshopも使ってるという方以外は正直Affinityで問題ないと思います。(実際に私はそうです。)

VFXソフトはやっぱりAEが優れすぎてる感が。

フリーソフト有償ソフト無名のが多いです。

有名であってもUIや使い勝手はAEに落ちるものほとんどですし。

その点Blenderは多機能すぎますね。その分複雑だったりしますけど。

あとパワポKeynoteを使えば安易FXソフトになります

意外なのはVFX(プロジェクションマッピング)ソフトフリーのはほとんどないです。

安価にやるのであればiPad活用するといいと思います

Macの有料ソフトになりますがMadMapperとVDMX5の組み合わせは比較的分かりやすいです。

けどソフトが(内容を考えたら安いですが)この中では比較的高くなります

あとかなりのマシンスペック必要になるんでMacBookなら15インチモデルは欲しいですね。

DAW比較的容易に開発できるせいかフリーのもの新規のものが多いです。

たくさんあるので紹介しきれないので、私が一番いいと思ってるFL Studioとかなり安価Reaperのみ紹介します。(←追記で他のも加えました)

FLサポートを考えると非常に安いです。(最近ちょっと雲行きが怪しいのでは?となってる状況です。Sonar見たくひどい状態ではないのですが、Golという中の人移籍がどうとやら。)

ボカロ等と組み合わせれば優遇版も購入できますし。

ただEDMが得意で、生音源等は別途導入する必要がある場合があります

他のDAWソフトコスパだけなら中間グレードが一番コスパ良いと思います。(Cubase Artist、Studio One Artist等)

Mac向けのため上には記載してないですがLogicもかなり安いですよ。

ほかの用途ではお薦めはしてませんが、DAW用途Logicの為だけにMacを購入するのはありだと思います

Gravitは最近よくFireworks代替えとしても挙げられてますね。

他にもいいのがあれば教えてください。

追記していきたいです。

以上参考になればうれしいです。

----------------------------------

Retas Studio, MS Expression事実上の開発終了のため削除(2017/11/23)

2015-05-01

クロージャ」という言葉について

http://b.hatena.ne.jp/entry/kenokabe-techwriting.blogspot.com/2015/04/blog-post_30.html

http://kenokabe-techwriting.blogspot.jp/2015/04/amazon102-93.html

この記事自体はどうでも良いのだけど、以前「クロージャ」という言葉の初期の使用例を探したことがあったのを思い出したので、参考までに。

Landin "A λ-Calculus Approach" (1966)

We represent the value of a λ-expression by a bundle of information called a "clusure", comprising the λ-expression and the environment relative towhich it was evaluated.

我々は、ラムダ式の値を「クロージャ」と呼ばれる情報の束で表す。「クロージャ」はラムダ式とそのラムダ式評価に関する環境から成る


Moses "The Function of FUNCTION in LISP,or Why the FUNARG Problem Should be Called the Environment Problem" (1970)

A useful metaphor for the difference between FUNCTION and QUOTE in LISP is to think of QUOTE as a porpous or an open covering of the function since free variables escape to the current environment. FUNCTION acts as a closed or nonporous covering(hence the term "closure" used by Landin).

LISPでのFUNCTIONとQUOTEの違いについては、次のように考えるのが有用比喩になる。QUOTEは多孔的または開放的関数をおおっていて、自由変数現在環境へと脱出できる。FUNCTIONは閉鎖的(closed)または非多孔的に関数をおおっている(このことからLandinはクロージャ(閉包)という用語を使っている)。

(訳はhttp://kreisel.fam.cx/webmaster/clog/img/www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/p/funarg/funarg.html から)


Sussman and Steele "SCHEME: An Interpreter for Extended Lambda Calculus" (1975)

In order to solve this problem we introduce the notion of a closure which is a data structure containing a lambda expression, and an environment to be used when that lambda expression is applied to arguments.

この問題を解決するためにクロージャという概念を導入する。クロージャラムダ式とそのラムダ式引数適用されるときに使われる環境から成るデータ構造である


Steele and Sussman "The Art of the Interpreter" (1978)

We say that the procedure is closed in the current environment, and the &PROCEDURE-object is therefore called a closure of the procedure, or a closed procedure.

この手続き現在環境に閉じられている(closed)と言い、それゆえ&PROCEDUREオブジェクトはその手続きの「クロージャ」あるいは「閉手続き」と呼ばれる。

2015-02-23

http://anond.hatelabo.jp/20150223114637

ちったぁ自分で調べろや。ろくなプログラマになれんぞ。

IsNumeric Function (Visual Basic)

IsNumeric returns True if the data type of Expression is Boolean, Byte, Decimal, Double, Integer, Long, SByte, Short, Single, UInteger, ULong, or UShort, or an Object that contains one of those numeric types. It also returns True if Expression is a Char or String that can be successfully converted to a number.

ここは普通のことをいっている。 IsNumeric が True を返すのは以下のとき

から問題があるのは Empty のほう。

VBE Glossary (Empty)

Empty

Indicates that no beginning value has been assigned to a Variant variable. An Empty variable is represented as 0 in a numeric context or a zero-length string ("") in a string context.

Empty は context にあわせて以下のように解釈される。

というわけで IsNumeric(Empty) は Empty が数値として解釈されて 0 になるので True を返す。

2014-01-13

nanapiって

むかし社長が、小学生が習う筆算ドヤ顔で説明する、という馬鹿なことをやってたけど、

http://nanapi.jp/47/

CTOもなかなかな人間だった

今日はてブで上がってきた記事。略称って色々あって知らないものまだあるかなーと思って覗いてみたら

http://wadap.hatenablog.com/entry/2014/01/13/133034

うん、今更ながらどこにでも見つかるような超初心者向け。今更まとめるにしては量が少なすぎ。

ま、それはいい。

だが、

Servces, Ownder, Eexpression, Intarfaceて。

前の三つはまあ、単なるタイポかもしれない。(Expressionは下に正しくあるし)

だけど、Intarfaceは恥ずかしい間違いかな。社員だったら見て見ぬふりしないといけないよね…

ちょっと気になってしまったのでいくつか「人気エントリー」を覗いてみたら香ばしいしか無かった。

人気な記事は技術のもの

この人、「CTO」だよね?

自分の知ってる「CTO]って「最高技術責任者」なんだけど、違うものがあるのかな?

chief tera-warosu officerとかなんだろうか?

こんなブログ見たら社員エンジニア、この人に着いていこう、なんて気直ぐに無くさないか?

おそらく社員は皆見てるんだろうけど、どういう気持なんだろう?


このブログ賞賛ちゃうようなレベルの人しか入ってない、ということかな…?

2012-07-05

http://anond.hatelabo.jp/20120705091019

いや、再帰は使わんと思うぞ・・・Stack Over Flow対策があるから自前で再帰は展開するぞ。

「Cならswitchテーブルを使った再帰関数で実現する必要がある」に対するレスなんだろうけど、飽くまでも「C以外の、継承オーバーライド機能がある言語では例題とほぼ同じ形で実装できるのに対してその機能がない言語では『関数内でswitchをして値ごとにdispatch、その後更に再帰』という原始的かつ全てのロジックを詰め込むせいでひとつ関数の行数が膨大になる問題を孕んでいる」という意味しか持たない。

確かにTopCoder再帰を使ったら撃墜される可能性がある事には同意だけど、今回の例ではプロコンの外側での事であってスタックオーバーフローしたなら例外をキャッチして後処理を行えば良い。

更に

問題を解くためにバイナリーツリーを使うことはあっても、バイナリーツリーを使う問題は出てこないわなぁ。

C++なら、setmapもあるし。

バイナリツリーを自前で構築して式を表現する例題(expression tree)と、set and mapは用途が違う。

setmapは本来、順序が定義できる要素をキーにしてそれそのものを保持するか、或いはそれに伴う値を結びつけて保持しておくもの

例題のexpression tree構造は「(必ずしもオペランドがふたつとは限らない)式の木を表現して、オーバーライドされたevalで式全体の評価を行う」もの

から目的が違う以上

あと 加算するか減産するかはアルゴリズムが持つものであって、木そのものが持つわけじゃない。

は成り立たない主張であるし、

全般的にその木構造なんかへんやろ。例題なのはわかるけど、それにしても、なんか変。

即興で書いたので変である事は否定しないとしても

開発言語なんて問題を解く道具であって、文章の綺麗さを競うものではないからなぁ。

C言語等のOOPが導入される前の言語で)綺麗に書く事ができないと問題を提供する側がそもそも「綺麗な解を前提とした問題」を出せない。

http://anond.hatelabo.jp/20120705023743

自己評価自分でも高いかいかよく分からない。

問題を他人に押し付けられる感じが嫌なんだよね。

まったりと、自分の好きな課題だけに取り組んでいきたい。そういう風にして生きている。

プログラミングも同じで、自分の作りたいものだけを作って生きている。

それともう一つ不満なのは(或いは『自分に合ってない』と表現した方が適切なのかも知れない)、洗練されたデータ構造設計必要性が問題中に殆ど出現しない所。

これは多くの言語に対して同じ問題を提供するには仕方のない事かも知れない。でも個人的にはそれが不自由で仕方がなかった。

例えばC++における純粋仮想関数インターフェイス)と継承を使った下記の様な「木」を表現した構造、まず出てこないでしょ?C++ではなくCならswitchテーブルを使った再帰関数で実現する必要があるし、これが言語間で共通な問題を隔てる原因にもなっている。

struct interface_tree{
    virtual double eval() const = 0;
    virtual std::size_t subtree_num() const = 0;
    virtual interface_tree *subtree(std::size_t) = 0;
    virtual ~interface_tree(){}
};

// expression tree, add
struct tree_add : public interface_tree{
    tree_add(std::size_t n, interface_tree **t){ subtree_[0] = t[0], subtree[1] = t[1]; }
    virtual double eval(){ return subtree(0)->eval() + subtree(1)->eval(); }
    virtual std::size_t subtree_num() const{ return 2; }
    virtual interface_tree *subtree(std::size_t i){ return subtree_[i]; }
    virtual ~tree_add(){ delete subtree_[0]; delete subtree_[1]; }
    interface_tree *subtree_[2];
};

// expression tree, sub
struct tree_sub : public interface_tree{
    tree_add(std::size_t n, interface_tree **t){ subtree_[0] = t[0], subtree[1] = t[1]; }
    virtual double eval(){ return subtree(0)->eval() - subtree(1)->eval(); }
    virtual std::size_t subtree_num() const{ return 2; }
    virtual interface_tree *subtree(std::size_t i){ return subtree_[i]; }
    virtual ~tree_add(){ delete subtree_[0]; delete subtree_[1]; }
    interface_tree *subtree_[2];
};

// expression tree, value
struct tree_val : public interface_tree{
    tree_val(double n_) : n(n_){}
    virtual double eval(){ return n; }
    virtual std::size_t subtree_num() const{ return 0; }
    virtual interface_tree *subtree(std::size_t i){ assert(0); }
    virtual ~tree_add(){}
    double n;
};

// ...

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.

2010-06-20

でも、通じる英語すらできなきゃダメダメでしょ?

http://anond.hatelabo.jp/20100620143255

主観的な意見だけど、TOEIC600-700位ってのは通じる英語の最低レベルだと思うのですよ。

意志決定レベルの人たちがそのレベルにすら到達していないという現状が存在していることを問題にすべきなんじゃないかなーと。

で、ここ数日来の、「日本人英語ができるようにならんとグローバル化を生き残れない!」という論調はその当たりの事をついているんじゃないのかなー、と思うんです。

私の知人、とある国のプロジェクトに行っているんだけど、良く嘆いているのは、

日本人通訳がいないと何も出来ない奴らばっかり。それも所謂『偉い人』に。」

ということです。

何かをExpressionしたくても、

本人→日本人通訳→現地人通訳→聴き手

というプロセスを踏んでしまうので、

伝言ゲームで陥りがちな罠、「情報の抜け落ち」

・人を余計に雇わなくちゃいけないので、全体的なコスト競争力の低下

に陥って、勝負にならない、とのこと。

せめて、本人が「通じる英語レベルでも使えてくれてれば、

本人→現地人通訳→相手

となって、随分スマートになるんだけど、こないだ日本に帰ってきたときも嘆いていました。

だから、元増田さんの、

しかし、英語世界において、言葉武器に戦うためには、「通じる英語」では全然足りないのである。その意味では、 TOEIC600と900の違いは誤差でしかない。結局勝負を分けるのは「どれだけ優秀なネイティブ参謀を捕まえられるか」なのだ。

というのは確かにそうだと思います。

でも、だからこそ、意志決定レベルの人には、最低限「通じる英語」ぐらいの能力は持っててもらわないと、なのだと思います。

「通じる英語」すら使えないのでは、優秀なネイティブ参謀を捕まえる事なんてとても出来ないのだと思うのですよ。

それが、楽天が「英語使えない役員は馘首する」という話につながっているんだと思うんです。

それからそれから

日本以外の外国って、何も英語ネイティブの所ばかりじゃないですよ?

これからのビジネスチャンスは、むしろ英語の国じゃないところにあるんじゃないでしょうか?

テレビネット情報鵜呑みにして行っているだけで、本当の最前線を見ている訳じゃないですけど、楽天インドネシアに行くようですし、ひととき前はアフリカの話が随分注目されていましたよね?

外国語ネイティブレベルに扱えるようになるのは、努力だけではない何かが必要なのはわかります。

それに、「通じる英語レベル日本人参謀におくというのは、戦うのに無駄が多すぎます。

だからこそ、ネイティブ参謀重要になってくるわけですよね?

その参謀を捕まえるにはどうしたらいいのでしょう?やっぱり「通じるレベル英語」が必要なんじゃないでしょうか?

最も、アフリカなんかだと、現地人側にも「通じるレベル英語」を出来る人が少なくて、違った苦労がおありだ、とも聞きました。

それにしたって、「通じるレベル日本語」を話すネイティブよりも、「通じるレベル英語」を話すネイティブを見つける方がよほど簡単です。

だから、グローバル化を生き残ろうとするのならば、どんな職域であれ、最低限「通じるレベル英語」が必要なのではないのかな、と思うわけです。

とりわけ、どんな組織であれ、どんなレベルであれ、意志決定をする立場にある人であれば。

2009-12-14

かんちょー

学内Webメールシステムが、もろにCSRFXSSのよわよわのシステムでした。NEC系のメーカーASPだったようだけど。

WebメールXSSCSRFがあるというのは本当に最悪で、「開いただけでメールボックスアドレス帳が全部どこかに送信されてしまう」ような攻撃メールが作れてしまうことを意味します。

で、担当部門がどこだかわからないのでメディアネットワークセンターというそれっぽい部署に教えてあげたんだけど、とにかく反応が遅い。対策の第一段階は即日システム停止することですよ、とまで書いてあげたのに。

2ヶ月たって何も修正がされないので、研究室内のゼミで発表してみました。情報系でも、知らない人はCSRFとか全然知らないからね、うちアルゴリズム系なのでみんな「Webってこんな攻撃ができるのか」って感心。教授はあわててどこかに電話

そしたらすぐに、「どこがそんなにまずいのか」と相談の電話が折り返されてきて、(即時停止レベルだって教えたじゃん)と思いつつも、「このメールを開いた後、自分の送信箱を見てご覧なさい。見覚えのないメールが送信されていませんか?」と攻撃例を教えてあげました。寸止めかんちょー。

これで即時停止だろうと思ったら、結局それから4ヶ月間修正が入らないまま運営が継続、そして「これで直りましたよね」と連絡が来たのでテスト環境版を試してみると、この「修正版」は script タグを無効にするだけで onload とかまったく手を付けないザル修正でした。

それを指摘したらしぶしぶイベントリガ系も消してくれたけど、CSSXSSとか不完全Shift-JIS文字とかexpressionとか知りもしないんだろうなー。セキュリティのこと知らないなら、HTMLメール扱う機能ごとばっさり削除が唯一の正解です。

本気でかんちょーしようと思えば簡単でした。自己増殖メールを誰かにぽんと送るだけでたぶん3日以内にメールシステム麻痺して、実質停止に追い込めたはず。あ、それじゃかんちょーどころか直腸裂傷か。でも、それで全員のクオータがあふれてしまえば真に悪意のある攻撃メールを受信する余地なくなるし、セキュリティ保護できたことにならないかな。

で、本当にそれをしなかった理由はひとつだけ、攻撃テストメール自分に送りまくっていたことがメールログに絶対残っているし、それで犯人とばれて退学とかいやだったから。うちの大学中退じゃなきゃハクがつかないんです。

2009-11-04

http://anond.hatelabo.jp/20091103183030

今じゃこれ、学生なら全部無料で使い放題なのに

何いってるのやら

与えられた自由を探しもせず、頭の上から降ってくるもんだとおもってる奴は

結局何もできないって事さ

Visual Studio 2008

Visual Studio 2005

Windows Server 2008

SQL Server 2008 Developer Edition

XNA Game Studio 3.0

Expression Studio 3

Microsoft Robotics Developer Studio

XNA Creators Club 1 年間メンバーシップ

http://www.microsoft.com/japan/academic/dreamspark/default.mspx

2009-08-07

JavaScriptラムダ式

function returner() {
    return 100;
}

function profiler(aFunction) {
    var begin = new Date();
    for (var i = 0; i < 500000; ++i) {
        aFunction();
    }
    var end = new Date();

    return end - begin;
}

function profileLambdaExpression() {
    // lamda expression
    print("lamda expression : " +
          profiler(function () returner())
         );

    // equal to above expression
    print("normal form : " +
          profiler(function () {
                       return returner();
                   })
         );

    // not return the value
    print("return no value : " +
          profiler(function () {
                       returner();
                   })
         );    
}

profileLambdaExpression();

&gt;&gt; lamda expression : 1521

&gt;&gt; normal form : 1436

&gt;&gt; return no value : 1431

SpiderMonkey 1.8.0 pre

2009-05-19

[] <英語English 2

[Methods] 学習方法 How to study English

  1. 継続が難しい英語学習が続いて仕方ないツールまとめ | bizpow(ビズポ)
  2. リンク集】通学不要?! 無料サイト英語を学ぼう -INTERNET Watch
  3. ネット英語力向上!無料で他言語勉強できる学習サイトまとめ | 株式会社LIG
  4. リンク集無料でココまで学べます! 英語学習サイト -INTERNET Watch
  5. 実用的な英語習得する方法 : 目次  « The Wisdom of CrowdsJP
  6. 英語学習情報の特徴メモ - かちびと.net
  7. 訳すな、頭から読め - 鰤端末鉄野菜 Brittys Wake
  8. Podcast英語リスニング勉強をしてる奴ちょっと来てください:アルファルファモザイク
  9. 英語コンプ馬鹿でも投資ゼロTOEIC900に達するたったひとつ方法
  10. 英語学習に役立つ、映画脚本スクリーンプレイ)を無料で手に入れられるサイトの紹介 | 口コミ発信!モノ人
  11. 英語学習に役立ちそうなTwitterアカウントまとめ - はてな読み
  12. podcastの飽きない英語コンテンツ、2ヵ月後
  13. 英語 - NAVERまとめ
  14. おすすめ英語学習サイト英会話】 - NAVER まとめ
  15. ネット勉強できる英語サイト まとめ - NAVER まとめ
  16. 無料で使える英語学習サイト12選 - NAVER まとめ
  17. 英語勉強を始める人は必ず見ておきたい英語学習サイトツール | うましかニュース
  18. 英語】アソシエの『やり直し「英語勉強法』が濃厚だった件:マインドマップ読書感想文
  19. Youtubeで学べる英語のレッスン:厳選7チャンネル | THE NEW CLASSIC
  20. Verbling: Online language classes and private tutoring

[Media] ニュースサイト他まとめ

  1. Voxalead News
  2. TODAYshow.com
  3. CBS Evening News with Katie Couric - Latest News &amp; Videos - CBS News
  4. The Big Idea Video - CNBC.com
  5. Big Ideas - Exploring the Essential Questions of Education

[Vocablary] 語彙/単語

  1. フリー英単語リストをまとめてみた 読書猿Classic: between / beyond readers
  2. 語彙力をチェックできる無料のお役立ちサイトまとめ | みんなの英語ひろば

[Grammer] 文法

  1. 基礎から英語学習の目次-英語喫茶英語英文法英会話
  2. 社会人のためのやり直し英語講座 英文法.COM» 第1講の講義全部紹介!(講義編)
  3. Get you !! English !!〜わかりやす英文法書籍化
  4. 日本人英文法の意外な穴
  5. Liberty 英語表現/英熟語,用語,手紙,ことわざ,略語,メルマガ,句動詞
  6. Advanced English lessons
[Preposition] 前置詞
前置詞は全部でおよそ150種類ある、と。
  1. List of English prepositions - Wikipedia, the free encyclopedia
基本的な使用例と練習問題
  1. English Prepositions
  2. English Prepositions and Verbs
  3. Prepositions of time - english-at-home.com
  4. Prepositions and adjectives - english-at-home.com
  5. A BRIEF EXPLANATION OF PREPOSITIONS
イメージでつかむ
  1. YouTube - Lesson 3c - Prepositions - English Grammar
  2. YouTube - ネット予備校6 英語 イメージでとらえる前置詞
とにかく練習
  1. ENGLISH PAGE - Prepositions and Phrasal Verbs
  2. Prepositions
  3. English Study Quiz - Prepositions
  4. 前置詞の問題集 イメージ攻略しよう!
おまけ
  1. 【前置詞3分クリニック】be tired from/of復習 + 接続詞副詞のthough [まぐまぐ!]
  2. 接置詞 - Wikipedia
  3. Prepositions Worksheets
[Conjunctions] 英語接続詞を知って、文章の作り方、考え方を理解する。語学学習関連

等位 Coordinating Conjunctions

相関 Correlative Conjunctions

従属 Subordinating Conjunctions

  1. Grammatical conjunction - Wikipedia, the free encyclopedia
  2. Linda Bryson's List of English Conjunctions
  3. Conjunctions
  4. Conjunction Junction
  5. List of Conjunctions
  6. CONJUNCTIONS
  7. YouTube - English Grammar: Diagramming Sentences in 6 Steps
[Linking Verbs]連結動詞

Subject = Objectだと伝える動詞

  1. Linking Verbs

[Phrases] 定型文書、よく使われるフレーズテンプレート Useful phrases, letter template

expressing sympathy

お悔やみの言葉

  1. What do you say when you want to express sympathy? - What Helps. What Hurts. What Heals. - CarePages
  2. Sympathy Quotes, Sayings, Mourning, Bereavement, Loss, Death of Loved One
  3. How to say "I'm sorry" without actually saying it | Ask Metafilter
  4. VOA News - Finding the Right Expression of Sympathy When Someone Is Grieving
  5. sorry for your lost expressing sympathy

褒め言葉

  1. ほめことば99 改訂版
  2. 英語で100のほめ言葉
  3. 英語褒め言葉集 - ◆ラテン旦那大和撫子妻◆ - 楽天ブログBlog
  4. 英語での褒め言葉(単語)が沢山載っているページを教えてください。人力検索はてな

電話フレーズ

  1. How to Finish a Phone Conversation Without Being Rude - wikiHow
  2. An Actual Phone Conversation. | KnowProSE.com

会話一般

  1. Everyday English in Conversation
  2. Business Communications

[Unedited] 未編集備忘録 Transient stock/ Memorandum

  1. 英語勉強を始める人は必ず目を通しておきたい英語学習サイト&amp;ツールインターネットIT | RapidHack(ラピッドハック)
  2. Is "Word Power Made Easy" by Norman Lewis available online (an interactive version and/or ebook)? - Yahoo! Answers
  3. 英単ワールド
  4. bab.la:それはあなた言語習得入門
  5. SparkNotes: Today's Most Popular Study Guides
  6. 英語学習に適したKhan Academyの教育ビデオ(とその翻訳ブログ) - YAMDAS更新履歴
  7. Khan Academy
  8. Teaching English | British Council | BBC
  9. Morgan Online - Abbreviations (AJAR) "Acronyms, Jargon, Abbreviations, and Rubbish (AJAR)"
  10. English 2126: Modern English Grammar: Teaching Usage: A Discussion
  11. Common Mistakes in English - Quizzes
  12. Learning Resources
  13. ESL Lesson Plans to Download
  14. FML: Your everyday life stories
  15. 意外と通じる!?通じない!?平均日本人英語
  16. ディスカッション - sci.lang.japan | Google グループ
  17. 英語発音入門
  18. YouTube - Learn Business English ESL Vocabulary - Marketing Vocabulary
  19. ESL Gold
  20. Randall's ESL Cyber Listening Lab - For ESL/EFL Students
  21. Multiple Language Guides - how to articles from wikiHow
  22. Difference between "Here you are " and "There you are"
  23. Teachers of English to Speakers of Other Languages, Inc. (TESOL)
  24. Classic British and American Essays and Speeches - Great Essays and Speeches by British and American Writers
  25. English Irregular Verbs
  26. My First Dictionary
  27. Read.gov: Online books and resources for literacy &amp; reading for everyone
  28. 英語好き集まれ
  29. smart.fm - it's where you learn - smart.fm
  30. 英語TOEIC英検学習法、無料教材(英単語英文法)の提供サイト
  31. Japan-in-Motion: Japanese Movies for Culture/Food/Sightseeing
  32. History and Politics Out Loud: a searchable archive of politically significant audio materials
  33. National Archives and Records Administration
  34. Learn native pronunciation for every language in the world. Forvo, the pronunciation guide
数字の読み方 数字にまつわること
  • 数字数学に関する読み方に迷ったらひとまずここで
  1. WebMath - Solve Your Math Problem
  2. English numerals - Wikipedia, the free encyclopedia
  3. Smories - new stories for children, read by children
  4. Beyond Books Program: Reading between the Lines
[日本を紹介する]
  1. 日本文化英語で紹介しよう!】JAPANESE CULTURE CENTER
  2. 日本文化キーワード事典
  3. 外国人のための日本生活国際交流日本語学サイトひらがなタイムズ
  4. 英語日本を紹介
  5. English news and easy articles for students of English

語学学習サイト個人的リンクメモ / Lists of Language Learning Links)

http://anond.hatelabo.jp/20090101193230

http://anond.hatelabo.jp/20090218024319

2009-02-26

チラ裏, on the Japanese language

One characteristic of the Japanese language is that it can express social identities by the mode of speech adopted: it can sound polite, aggressive, old, young, manly, girly, etc. just by changing how you call yourself. The content of the utterance itself does not have to change. Of course, this can be seen in many languages, even English. What is unique to Japanese, however, is that the degree of this embeddedness of the social identity in the utterance is very high. Many other language can express this through the body-language or non-verbal operation of the body. Japanese, on the other hand, make use of the verbal very strongly.

On the web, this may cause an interesting phenomena which cannot be observed in the English sphere: strong schismogenesis. Take the culture of 2ch, for example: language used there strongly differs from the 'normal' Japanese language, yet comprehensible. This creates a certain type of discourse that is differentiated from the 'real' world. Moreover, people may accuse each other for adopting a certain mode of talking.

Again, this is not to argue that other languages do not have this characteristic. In Britain, for example, the vocabulary used by the higher class and the lower class is very different. Youths may use a certain form of abbreviation (e.g. "r u ok?"). However the Japanese language can encompass something much more than that. It can express the class, gender, feelings, level of politeness, etc just by changing the verbal expression, which may result in debasement of the value of non-verbal expression.

2008-09-23

正規表現の機能の覚書き

はじめに

「はじめての正規表現」ホッテントリ入りしていますが、

導入としては、何に使うのかがわかりやすくて良いのではないかと思います。

あれを見て、基本機能をまとめてみたくなったので、正規表現の基本的な機能について書いてみます。

正規表現が初めてという人は「はじめての正規表現」を先に見たほうがいいと思います。)

例では「検索」か「置換」をするものとして話を進めていきます。

「はじめての正規表現」が実例を中心にしたのに対して、こちらは機能を中心に書きます)

正規表現は、プログラミング言語やその他のツールなど、それぞれで微妙な違い(方言)があるので、その点には注意が必要です。

(表記法が違ったり、ここに紹介する機能がサポートされていなかったり、逆に紹介していない機能をサポートしていたりする場合があります)

メタ文字とリテラル文字

正規表現には、メタ文字とリテラル文字というものがあります。

メタ文字とは機能を持つ文字で、『.』『*』『*?』といったものが当てはまります。

リテラル文字は「文字それ自体」と解釈される文字で、『 』『a』『<』といったものです。

アルファベットや数字はリテラル文字なので、

「検索する文字列:『egg』 置換する文字列:『chicken』」

などとすれば、正規表現を使わない置換と同じ効果になります。

なお、検索して検索文字列が当てはまることを「マッチする」と言います。

メタ文字に使われている文字を検索したい場合は、直前に『\』を置きます。(これを「エスケープ」と呼びます。)

.*?^$()[]{}』などがメタ文字です。

$100』を検索したければ、『\$100』とすればいいということになります。

(『\』は環境によって、半角の『¥』『\』のどちらかになります。)

言語、ツール、モードなどによっては『@/#』もエスケープが必要です。

また、『\』自体は常にエスケープが必要です。

繰り返しについて

メタ文字意味
?直前の文字を0回または1回繰り返す
*直前の文字を0回以上繰り返す
+直前の文字を1回以上繰り返す
{n}直前の文字をn回繰り返す
{n,}直前の文字をn回以上繰り返す
{n,m}直前の文字をn〜m回繰り返す

これらのメタ文字は「量指定子」といって、直前の文字の繰り返しを意味します。

*』は「任意の文字を0回以上繰り返す」とありますが、

「0回以上繰り返す」とは、「全く何もなくてもいいし、いくらあってもいい」という意味です。

よって、『?』は「あってもなくてもいい」、『+』は「1つ以上あればいい」と解釈できます。

colou?r』は『u』があってもなくてもいいので「colorかcolour」ということになります。

{n}』は、たとえば『-{15}』なら、「ハイフン(-)が15個続くもの」となります。

-{10,}』なら「ハイフン(-)が少なくともは10個続くもの(多いのはいくらでも)」、

-{10,15}』なら「ハイフン(-)が10〜15個続くもの」となります。

また、複数の文字を繰り返したい場合は括弧で囲みます。

(Gang){2}Dance』は『GangGangDance』と同じ意味になります。

欲張りと非欲張り

メタ文字意味
?直前の文字を0回または1回繰り返す(欲張り)
*直前の文字を0回以上繰り返す(欲張り)
+直前の文字を1回以上繰り返す(欲張り)
??直前の文字を0回または1回繰り返す(非欲張り)
*?直前の文字を0回以上繰り返す(非欲張り)
+?直前の文字を1回以上繰り返す(非欲張り)

「欲張り」とは、「なるべく多くの文字に適用しようとする」、

「非欲張り」とは、「なるべく少ない文字に適用しようとする」という意味です。

対象文字列が『aaa bbb ccc』だとします。

すると、検索する文字列が『a+』なら『aaa bbb ccc』、

検索する文字列が『a+?』なら『aaa bbb ccc』が置換対象となります。

(「すべてを検索/置換」する場合は当てはまりません)

「『a』を1回以上繰り返す」ということは、『a』でも『aa』でも『aaa』でもマッチすることになりますが、

「欲張り」かそうでないかで実際のマッチは変わってくるわけです。

文字クラス

文字クラス意味
[abc]a、b、cのいずれか
[a-z]a〜zのいずれか
[^a]a以外の文字(改行文字を含めaを除いた全て)
[^a-z]a〜z以外の文字(改行文字を含めa〜zを除いた全て)

文字クラスは『a』や『<』などの代わりに文字の種類を指定するものです。

a〜eのどれかの1文字という指定をしたい場合に『[abcde]』や『[a-e]』といった指定ができます。

また、文字クラス内の最初に『^』をつけて『[^abc]』などとすれば、

「a、b、c以外の何の文字でもいい」とすることができます。

間違いやすいのが「そこにaもbもcも存在しなければいい」という意味ではないということです。

文字クラスは「なんらかの1文字の身代わり」なので、それは何か1文字を表しています。

-』は範囲を表すのに使用します。そのため、『[;-%]』で「; - %のどれか」を表現することはできません。

-』を含める場合は必ず最初に持ってきます。すると『[-;%]』という風になります。

「; - %以外の文字」としたいならば『[^-;%]』とします。

[』や『]』、『\』を文字クラスに含めたい場合は直前に『\』を置いてエスケープします。

「『[』または『]』」であれば『[\[\]]』となります。

^』やその他の記号は先頭に置かなければいいので、エスケープの必要はありません。

.』は「改行以外のすべての文字」を表しています。

改行は『\n』で表されるため、『.』は『[^\n]』と等価です。

(ただし、正規表現モードによっては「改行も含めすべての文字」を表す場合もあります)

文字クラスにはいくつかの略記法があります。

文字クラス意味同等の表記
\w記号や空白ではない文字すべて[a-zA-Z0-9_]
\W記号や空白ではない文字以外[^a-zA-Z0-9_]
\d数字[0-9]
\D数字以外[^0-9]
\sタブや改行など、空白類とされる文字[ \t\n\r\f\v]
\Sタブや改行など、空白類とされる文字以外[^ \t\n\r\f\v]

(*間違って『\s』の同等の表記にも『^』がついていたのを修正しました)

(『\t』はタブ、『\v』は垂直タブ、『\r』はキャリッジリターン(CR、改行の一種)、『\f』は改ページ)

これらは『[a-fA-F\d]』のようにすることで、文字クラスブラケット角括弧)内に含めることができます。

「同等の表記」と書きましたが、文字をユニコードして扱うツールの場合は、上記が同等の表記にはならず、

たとえば『\d』であれば漢数字が含まれてしまったりするので注意が必要です。

選択

(A|B)』は「AまたはB」という意味です。(これを「選択」と呼びます)

(A|B|C)』なら「A、B、Cのどれか」という意味になります。

(gray|grey)』は『gr[ae]y』とほぼ等価となります。

[ae]』は「1文字のaまたはb」という意味になるので結果的に、ほぼ同じ効果が得られるわけです。

(ただし、これはgrayとgreyの違いが1文字だけだったためで、そうでない場合はこうはなりません)

気をつけなければならないのは、その順番です。

(Java|JavaScript)』で検索すると、対象文字列内に存在する『Java』と『JavaScript』すべてマッチするように思えますが、

JavaScript』は選択肢の前(左)のほうにある『Java』が当てはまってしまうため、

Script』部分にはマッチせず、『JavaScript』というマッチになってしまいます。

選択では左側が優先されるので、『(JavaScript|Java)』とすることでこの問題は防げます。

言語、ツールによっては、この問題が起こらない=順番関係なく長いほうを適用しようとするものもあります)

アンカー

メタ文字意味
^行頭
$行末
\b単語境界
\B単語境界以外

リテラル文字や文字クラスが「文字自体」にマッチするのと違い、アンカーは「位置」にマッチします。

検索する文字列が『^』、置換する文字列が『>』なら、「行頭に『>』を挿入する」という意味になります。

単語境界とは、「単語を構成する文字=『\w』に相当する文字」と「単語を構成しない文字=『\W』に相当する文字」の間の位置のことです。

regular expression.』なら『^regular^ ^expression^.』の4ヶ所に当てはまります。

\b.*?\b』とすれば単語すべてにマッチさせることができます。

しかし、「単語構成文字」が基準なので、『JavaScript』は1単語でも、『L?K?O』は1単語とは見なされません。

アンカーは位置にマッチするので、文字クラス内に含めることはできません。

^』や『$』を文字クラスに含めても、その文字自体という意味になります。

つまり、『[^$]』なら「行頭または行末」ではなくて、「『$』文字以外」ということになります。

また、『\b』は文字クラス内のみ、バックスペース文字を表す場合が多いようです。

大文字と小文字

正規表現には、大抵「大文字と小文字を無視する」というオプションがあります。

これが入っていないと「『to:』で検索しても『To:』にマッチしない」といったことが起こります。

言語、ツールによっては、正規表現の一部にのみ大文字と小文字を無視する機能があるものもあります。

例えばRubyでは『(?i:foo)』という形式を使用できます。

(?i:Ruby) Python』という表現なら、『ruby Python』や『RuBy Python』にはマッチしますが、

RUBY PYTHON』にはマッチしない、ということになります。


キャプチャと後方参照

括弧内に入れた文字列は、ある場所に記憶されます。(「キャプチャ」と呼びます)

これは『\n』という表記を使って呼び出すことができます。(nは数字)

同じ単語が2連続で出てくるもの(『merry merry』みたいなもの)を探すという場合、

\b(\w+)\b \1』とすることができます。(ここで使った『\1』を「後方参照」と呼びます)

こうすると、『\1』の部分は、『(\w+)』を使ってマッチしたものと同じものがあるものとして解釈されることになります。

括弧を何個も使う場合は、左の括弧から順に『\1』、『\2』、『\3』となります。

また、後方参照は置換文字列にも使うことができます。

つまり置換文字列内に『\1』と書けば1番目の括弧、

\2』と書けば2番目の括弧でキャプチャされたものがそこに入ることになります。

この場合、言語、ツールによっては『\n』ではなく『$n』を使う場合もあるようです。

括弧は『(foo|bar)』という選択や、『(humbert){2}』というグループ化など、キャプチャ以外にも使われます。

そのため、キャプチャに使われた数字をわかりやすくするために、キャプチャしない括弧もあります。

それには『(?:foo)』という表記を使います。

前の例であれば『(?:foo|bar)』と『(?:humbert){2}』になります。

先読みと否定先読み

「その位置の続くものを確認する」というのが「先読み」です。

対象文字列を『JavaScript Java Applet』として考えてみましょう。

Java(?=Script)』は「『Script』が後に続く『Java』」にマッチします。

(?=Script)』の部分が、「『Script』が後に続くかどうか」をチェックしているので、

後ろに『Script』が続かない単なる『Java』にはマッチしません。

(?=Script)』の部分は「後に『Script』が続く位置」にマッチしていることになります。

この例のマッチは『JavaScript Java Applet』となります。

逆に、『Java(?!Script)』とすれば、「『Script』が後に続かないかどうか」をチェックするので、

後ろに『Script』が続かない単なる『Java』にマッチさせることができます。

こちらは「否定先読み」と呼びます。

この例のマッチは『JavaScript Java Applet』となります。

言語、ツールによっては、「その位置の前にあるものを確認する」という「戻り読み」「否定戻り読み」がサポートされているものもあります。

(これは『(?<=foo)』『(?<!=bar)』という形で使います)

先読みや否定先読み、戻り読みなどをまとめて「前後読み」と呼びますが、

前後読みは位置にマッチするため、戻り読みは先読みとは通常書くべき位置が逆になります。

(?<Mozilla )Firefox』とすれば、『Mozilla 』に続く『Firefox』のみにマッチします。

強欲な量指定子とアトミックなグループ

メタ文字意味
?+直前の文字を0回または1回繰り返す(強欲)
*+直前の文字を0回以上繰り返す(強欲)
++直前の文字を1回以上繰り返す(強欲)

上のほうで?、*、+は「欲張り」だと書きましたが、「欲張り」な量指定子も“ゆずる”ことがあります。

対象文字列が『"something"』だとして、検索文字列".*"』はこれにマッチします。

しかし、強欲な量指定子*+』に置き換えて『".*+"』とするとマッチしません。

これはなぜかというと、「欲張り」な量指定子を使った『.*』の部分は、

最後の『"がなければ『something"』にマッチすることになりますが、

正規表現の最後に『"』があるために、対象文字列の最後の『"』をゆずっているのです。

しかし、強欲な量指定子*+』はゆずることがないため、

.*+』の部分が『something"』にマッチしてしまい、

正規表現の最後の『"』にはマッチできなくなるのです。

強欲な量指定子サポートしていない言語、ツールでも、「アトミックなグループ」というものが使える場合があります。

アトミックなグループでは『(?>foo)』という表記を使います。

\w?+』なら『(?>w+)』、『\w*+』なら『(?>w*)』、『\w++』なら『(?>w+)』で代替できます。

意図しないマッチに気をつける

*』の「直前の文字の0回以上の繰り返し」はよく気をつけないと、間違ったものにまでマッチしてしまいます。

リテラル文字と文字クラスは「文字自体」にマッチすると書きましたが、

-*』というような表現は、『-』や『--------』だけでなく、

『』つまり、空文字列にもマッチしてしまうのです。

なぜそうなるかというと、「0回以上」ということは「なくてもいい」ということだからです。

文字列へのマッチは、実質上「位置」へのマッチと似たようなものになります。

検索文字列を『-*』として一括置換すると、

-』や『--------』が置換されるだけでなく、

-』が存在しないすべての場所に置換文字列が挿入されてしまうことになります。

正しい正規表現を書くためには、「どう書けばマッチするか」だけでなく、

「どういう場合にマッチしなければいいか」についても考えてみる必要があります。

ワイルドカードの『*』≒正規表現の『.*

「はじめての正規表現」で、

ワイルドカードの『*』=正規表現の『.*

とありますが、これは厳密には微妙に違います。

ファイルグロブでは《*》は「任意の文字を1回以上繰り返す」

つまり、1文字以上あればなんでもいいということになります。

この意味だと、《*.*》は "foo." や ".bar" は当てはまりません。

しかし、「0回以上」であればマッチすることになります。

正規表現では「1回以上繰り返す」は、《+》なので、

「任意の文字を1回以上繰り返す」は『.+』となります。

よって、《*.*》とほぼ等価な表現は『.+\..+』となります。

これは私の勘違いでした。miauさんご指摘ありがとうございます。

「*.*」は foo. にマッチするはずだし、.barマッチしないのは、「*」がドットファイルマッチしないっていう特殊ルールがあるから・・・ですよね?

ワイルドカード(ファイルグロブ)の「*」って - miau's blog


ファイルグロブの《*》は、「0回以上繰り返す(ただし例外として、一番最初のドットは表せない)」ということのようです。

*.*》とほぼ等価な表現は、正しくは『(?!\.).*\..*』となります。


最後に

正規表現を使うにあたっては、検索対象がどのようなものか知っておくことが重要です。

\d{4}[-/]\d{1,2}[-/]\d{1,2}』で日付と思われる文字列を検索することができますが、

これは『00-0000-00-00』というものにもマッチしてしまいます。(『00-0000-00-00』)

かしこれを厳密にしようと思えばかなり複雑な正規表現になってしまうので、

どの程度の厳密さが必要かを把握しておくことが肝要と言えるでしょう。

冒頭にも書きましたが、正規表現は、言語やツールによって微妙な違いがあるので、

その辺りについては各言語、ツールの説明を参照してください。

本格的に学びたい場合はオライリー「詳説 正規表現」おすすめです。

(ただ、この本はプログラミングのことを多少は知らないと難しいかもしれません)

また、PHP正規表現チェッカーですぐに試せるようです。

関連リンク



反応への応答

b:id:K-Onoさんの

なぜ増田? これでidデビューしてもいいんじゃないのか?

について。

実ははてなダイアリーもある(d:id:sleepwlk)んですが、長いこと書いてなかったので、

匿名ダイアリーのほうが多くの人に見てもらえるのではないかと思ってこちらに書いてみました。

*2008-09-23 誤記の修正と、一部加筆しました。

*2008-09-24 ワイルドカード記述を修正しました。

*2008-09-24 文字クラス記述の間違いを修正しました。b:id:FunnyBunnyDizzyさんご指摘ありがとうございます。

*2008-09-24 「意図しないマッチに気をつける」を追加しました。

2008-04-07

Proxomitronでやってみた

こっちのほうが処理が軽くていいや

filter name masuda tag abone

URL match anond.hatelabo.jp/*

matching expression

(<font*>)$SET(0=)|

(<i[^m]++>)$SET(0=)|

(<strike*>)$SET(0=)

Replacement Text

しっかしコピペとはいえひとつの投稿に900組以上のfont i strikeタグを突っ込むとかよーやるねぇ。

2008-03-14

諸君 私は脆弱性が好きだ

諸君 私は脆弱性が好きだ

諸君 私は脆弱性が大好きだ

PHPが好きだ

XSSが好きだ

SQLインジェクションが好きだ

CSRFが好きだ

UTF-7が好きだ

expressionが好きだ

シェアウェア

Web

Google

スペシャルねこまんま

LiveHTTPで

Filemonで

Regmonで

OllyDbgで

Perl

この地上に存在するありとあらゆる脆弱性が大好きだ

セキュリティに関して口うるさく言っているサイト脆弱性をいとも簡単に見つけるのが好きだ

大企業サイトGoogleによって脆弱性発見された時など心が踊る

Googleがあっけなく脆弱性を見つけてしまうのが好きだ

Perl馬鹿にしていた奴のアカウントを乗っ取った時など胸がすくような気持ちだった

粘り強い同業者MS Officeシリアル認証と格闘している様が好きだ

PHP覚えたての野郎共が続々と脆弱性を作り出していく様など感動すら覚える

気に入らない奴のPCトロイの木馬を忍ばせ奴の個人情報Winnyネットワークに流れてゆく様などはもうたまらない

精魂込めて更新していたであろうWikiを滅茶苦茶にするのが好きだ

必死に守るはずだった同業者が次々に逮捕されてゆく様はとてもとても悲しいものだ

FBIに追いまわされ泥棒の様に捕まる恐怖と戦うのは屈辱の極みだった

諸君 私は攻撃を地獄の様な攻撃を望んでいる

諸君 私に付き従うクラッカー諸君

君達は一体何を望んでいる?

更なる攻撃を望むか?

情け容赦のない糞の様な攻撃を望むか?

鉄風雷火の限りを尽くし三千世界の鴉を殺す嵐の様な政府との闘争を望むか?

『攻撃! 攻撃! 攻撃!』

よろしい ならば攻撃だ

我々は渾身の力をこめて今まさに振り降ろさんとする握り拳だ

だがこの暗い闇の底で半世紀もの間堪え続けてきた我々にただの攻撃ではもはや足りない!!

大攻撃を!!

一心不乱の大攻撃を!!

我々はわずかに小数

セキュリティ専門家に比べれば物の数ではない

だが諸君は一騎当千クラッカーだと私は信じている

ならば我らは諸君と私で総兵力100万と1人の集団となる

我らを忘却の彼方へと追いやり、眠りこけている奴らを叩きのめそう

髪の毛をつかんで引きずり下ろし 我々の方が強いことを眼(まなこ)をあけて思い出させよう

連中に恐怖の味を思い出させてやる

連中に進入される恐怖に怯えながら眠る夜を過ごさせてやる

連中に我々の技術を思い知らせてやる

天と地のはざまには奴らの哲学では思いもよらない事があることを思い出させてやる

一千人の吸血鬼クラッカー達で

世界を恐怖に陥れてやる

目標 情報処理推進機構!!

2007-08-09

http://anond.hatelabo.jp/20070809184223

でも別売りソフトでも安定してるものってそう無いぞ。

Canvasはどこに行ったんだっけ

インスピレーションは便利だったのに…

Strataって一応未だあるんだよね

ベクター系ペイントツールのExpressionは最終的にMicrosoftが買ったけど、これもう原形留めてないよね?

ロータスとかジャストシステムユーザーは未だ使ってるのか?ノーツは?

クラリスワークス改めAppleWorksはどういう幕のひきかたしたんだろ

独自拡張してもNetscapeについていくつもりだったのに途中でひっくり返しやがって

AppleにいたってはOS9どころかOSXの10.3より前を無かったことにしてるだろ

2007-04-24

スクリプトをなんとかして実行してやろうというひね根

http://www.atmarkit.co.jp/news/200704/23/eweek.html

これを見て、へーと思ったので、何ができるんにゃろめとあれこれかんがえてみたりした。


<script type="text/javascript">alert('test')</script>
<div onClick="alert('test')">test0</div>
<A href="javascript:alert('test')">test1</A> 
<A href=vbScript:MsgBox("test")>test2</A> 
<A href="javas	cript:alert('test')">test3</A> 
<A href="javas&#09;cript:alert('test')">test4</A> 
<div style="font-size:!!expression(alert('test'));">test5 !!を外せば動くけど死ぬよ</div>
<iframe src="test.html">test6</iframe>

ECMAScript

LiveScript

JScript

ジャワティーストレート

JavaTeaScript

http://www.fureai.or.jp/~tato/JS/scripttg.htm

にゃ!?

こんなにいっぱいスクリプト言語あるの・・・?

2006-12-28

悪い人は鍵を掛けたところで入ってくる

たとえば www.hatema.jp とかとって、そこにログイン画面作ってフィッシングサイトを作る。

捨てアカとって、JavaScriptつかってリンクがそこへ飛ぶ様にしておくエントリを書く。

http://anond.hatelabo.jp/20061227145016

使いやすいからJsってだけで、悪意をもって振舞えば別にJavaScriptつかわないでも現状のもと実現できるよね。

まちちゃんの可愛いところはマグロ解体ショーを人前で実践してくれるところ。

切り身のトロがメバチマグロなのか黒マグロなのか気にせずにショーとして楽しめるところ。

そもそも今回はJsなんか使われてないよね?

クライアント側に何をするのかより、サーバー側になにをするのかだと思うんだ。

鍵をいくつもつけまくるのは確かに抑止力にはなる。だけど不便じゃない?

いろんなブログパーツがあるけどはてなでは自由に使えないじゃない?

<a href="javascript:alert('こんにちはこんにちは!');">マグロ解体ショー</a>

こんな簡単なスクリプトからcss/expression()まで弾くぐらいJsガチガチブロックしている理由はさすがに少し技術的な固執じゃないかなと思う。スタイルシートタグに適用するのも禁止とか……。

そのわりに肝心なアカウント認証の部分が緩いからこういうことになるんじゃないかな。

リンク踏んだだけでアフェリエイトID書き換えられるとか。

ドアには普通の鍵でいいから金庫の鍵だけはもうすこししっかりしてねという所感。

特にブログなんて公開するためのものだから、お店のドアが鍵だらけっていうのもどうなのかな。

金庫室って書いた鍵の緩いニセのドアを設けてそこを開けたお客さんをマークしておくとかすればいいと思うんだ。

戯言。

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