「bind」を含む日記 RSS

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

2019-05-09

DNSサーバ運用って全然変わらないよな

周りがどんどん抽象化進んでいくのにDNSだけは全く運用管理変わらんよな。

DNSSECのカギの管理ちょっと楽になったぐらいか

ゾーン更新とかさ、新しいゾーン情報読み込んだらTTL短い状態で稼働開始して

承認ボタン押すまでTTL短いままにしとくとかそういう仕組み誰か作らないの?

権威サーバっていまだにbindが主流なの?なんかほかのメジャー権威サーバソフト出て来てる?

2018-09-19

とある会社機械学習環境を整備しているんだが心が折れそうだ

昨今流行りの機械学習プロジェクトがぽこぽこ立ち上がっている状況なのだが、一部の人を除き、apt-getで躓いているのは会社にとって損失だと考え、オンプレクラウドのようなものを構築することにした。

グループ全体の規模はそこそこ大きいが、将来単なるアッセブリー屋になることが目に見えている事もあり(今後20年以内には喰われてしまうという憶測もあり)ネットワークLinuxコンテナプログラミングが出来る自分が社内の機械学習、引いてはITインフラ民主化、なんだったら外販できるくらいのもの作ってやろうと鼻息巻いて無理やり一人プロジェクトを興すことにした。

まずは既存DHCPサーバ名前解決ができないDNSサーバからゲートウェイPCを用いてネットワーク的に分離、社内の物理的な設置スペースの問題デスクトップPCサーバPCが離れた所にあるため、WireGuardでVPN構築、ゲートウェイPCはそれぞれKea DHCPサーバ、PowerDNSサーバを稼働させ、OpenStack導入検討時に悩んだ鶏が先か卵か先か問題解決することにした。

上述の通り、システム構築にあたってOpenStackやMAAS,RancherOSなどを検討したが、社内のニーズを「100%」汲みとった上で、次世代オンプレクラウド個人的にはエッジクラスタがゆるく繋がるアメーバクラウド?のような呼称があっている気がするが)を構築するにはどれも痛し痒しで何かしら制限がついて回るのは許容できなかった。これは今後5年、特に海外事業所の開発者の事を考えた時には外せない要件だった。

とはいえmiekg/dnsを用いてCoreDNS進化版を作るにはリソースが足りず、BINDを用いるにはSA対応がしんどすぎるため、APIを備えており、今後も進化が見込めるであろうOSS、また必要であれば商用製品保守サービスが受けられる事から上記2つを選択した。

PowerDNSはさておき、ISC KeaはナウでYANGなLinux YANGに対応しようとしているなど(言いたかっただけ)、世の中のオンプレ環境を塗り替えるためには兎にも角にもAPIゲートウェイ重要だと考えたため、双方が提供しているAPIをうまく吸収するミドルウェア(とちょっとしたAPIサーバ)をGo言語作成した。

次に世の中のパブリッククラウドOpenStackなどを触ったことのある開発者はCloud-initに慣れているはずという前提の元、対応コスト勘案の結果、NoCloudで対応しつつ、上記APIサーバ連携し、ベアメタルマシン管理した事のある人はわかる、ベアメタルマシン特有の諸問題解決することにした。

まぁなんだかんだ大企業なのでお金解決する手段もあるが、そもそも高集積ラック搭載GPUサーバ購入の稟議が通るような会社だったら既にKubernetes導入しているだろうし、俺もこんなことしてない。

脱線したが、上記以外にも検証バックアッププランとしてAnsible記述などの作業はありつつも、3ヶ月かけてようやく基礎となるインフラ基盤が構築できたため、nuxt.js+go簡単フロントエンドサーバを構築し、一人情シス様相を呈している部下のリソース開放、Calico対応+Kubernetes導入、不安がっている上席が安心できるように、分かりやすい餅を用意しようとしている、というのが現状。

ここまで寝る時間も惜しんでトップスピードを維持したまま頑張ってきたものの、少し限界を感じている。

特にオンプレクラウド部外者が中々見えてこないものがあり、なんならその見えないもの限界まで吸収できるように、かつ現実的に実現可能ギリギリラインを狙っているのだが、そもそも周りに相談しようとしても何を言っているのか解説する所から始めないといけない。

覚悟はしていたが、ふとした時にとてつもない脱力感に襲われてしまう。

世の中を切り開いてきた諸氏はおそらく一度はぶつかったであろう、この内なる自分の壁をどのように突破してきたのだろうか?

ひたすら孤独との戦いだというのは頭では理解しているものの、突発的にくるこの脱力はいかんともしがたい。

推敲もせずに大変失礼極まるが、コメントをいただければ幸いである。

2018-07-22

JavaScriptで欲しい機能

foo.someMethod.bind(foo)をfoo#someMethodみたいに簡単に書きたい

このせいで関数型っぽく書けないことが多いか

2018-01-13

Rxbind() が嫌い

なんていうか「使ったったぜドヤ」感あるんだよなあ。

subscribe() だけで良いよ。

2017-08-28

DNSについて勉強したいと思ったのだけど、良い本がない?

タイトルの通りなのだけれども、DNSについて、ある程度きちんと勉強したいと思って本を調べると、主に下記あたりにいきつくのだけれど、

https://www.amazon.co.jp/DNS-BIND-第5版-Cricket-Liu/dp/4873113903

https://www.amazon.co.jp/実践DNS-DNSSEC時代DNSの設定と運用-民田-雅人/dp/4048700731

オライリー執筆時点で内容が10年以上前のもので、"実践DNS"はもうちょい新しいけれど、アマレビューや、ぐぐった限りの評判を見ると、”悪くはないが残念な書籍、改版が待たれる”、みたいな評判が多い。

なんで、DNSって、いまひとつ書籍が充実してないんだろう??別の何かでみんな勉強してるのだろうか?

あるいは、各種マニュアルやら、仕様やらを見ながら、頑張るものなのだろうか?

それとも、あまりドラスティックに変わるようなものでもないので、2008年版のオライリーでも買っておけば、今でも十分なのだろうか?

2017-07-26

Web制作会社ってどうやって仕事取ってるの?

1. 初期費用49,800円+月額4,900円みたいなパッケージにしてリスティング広告を出して集客して仕事を取る

2. Jimdo、Goope、WIXBiNDのようなホームページ制作サービス無料から月1,000円程度の低負担)を開発し、集客して仕事を取る

3. 静的なホームページCMS化(WordPress)して更新料を0円に!などと喧伝仕事を取る

4. 広告代理店大手印刷会社経由でコンペ案件に参加して仕事を取る

5. 創業者営業担当者らの人脈、紹介で仕事を取る(既存顧客の紹介も含む)

6. SEO対策リスティング広告出稿をとっかかりに集客営業電話テレアポ無料セミナー)して仕事を取る

7. Lancersクラウドワークス楽天ビジネスなどを利用して仕事を取る

8. 自社サイトの問合せフォーム資料請求フォームから仕事を取る

9. 開発がらみの案件を入札で仕事を取る

10. 既存顧客リニューアル提案などして仕事を取る

このぐらいしか思いつかないんだけど、みんなどうやってんだろう。

ちゃんと営業ができてないこともあってろくに仕事が取れず途方に暮れている。

2016-12-30

規則動詞の分類別一覧

英語の不規則動詞はおおまかに,過去分詞がtかdで終わるもの(以下dtタイプ)とnで終わるもの(以下nタイプ)に分けられる。ほとんどのdtタイプ動詞過去形過去分詞形が同じ形で,A-B-B(一部はA-A-A)のように変化する。また,原形の末尾がdかtの不規則動詞ほとんどがdtタイプに属する。(例外eat,get,bid等)一方,ほとんどのnタイプの不規則動詞は原形,過去形過去分詞形がすべて異なり,A-B-Cのように変化する。

原形から過去過去分詞形になるときに起こる変化は基本的母音が変化するか末尾にdtnが加わるかの2種類,あるいはその両方で,原形にあった子音がなくなることは原則としてない。(例外:-ught型,went,had,made

表の説明

分類は以下の通り

  • dtタイプ
  • nタイプ
    • 【A-B-An】型
    • 【A-Aed-An】型
    • 【A-B-Bn】型
    • 【-dden,-tten】型
    • 【A-B-Cn】型
  • その他
    • 【i-a-u】型
    • 【A-B-B(その他)】型
    • 【その他】

become,forgetなど末尾にほかの不規則動詞を含むものは省いた。

表中の*は規則変化もし得ることを,#は他の不規則変化もし得ることを,!は意味によって変化が異なる単語であることを示す。

【A-A-A】型

すべてdかtで終わる。特に末尾tで短母音のものが多い。get,sitが含まれないことに注意。形が1種類で覚えやすいが,英文中の「have put」「is put」等を見てもビビらない心構えが必要

bet * bust * cast cost cut
hit knit! let put quit *
set shit *# shut sweat * thrust
wet* burst * hurt beat # bid #
clad glid * rid* shed spread
wed*
Ad-Bd-Bd】型

原形がdで終わる動詞母音を変化させて過去形過去分詞形になる型。最後のplead,read発音のみ変化する。

breedbred
feedfed
leadled
plead *#pled
speed !sped
tread #trod
bindbound
find found
grind ground
wind wound
chide *#chid
slide #slid
hold held
stand stood
abide *abode
plead *#plead
readread
Ad-At-At】型

原形の末尾のdがtに置き換わり,それ以外は綴り発音も変わらない。endで終わる動詞が多いが,end自体規則動詞。原形のほうが過去形っぽく見えたりするので注意が必要。逆パターン(At-Ad-Ad)は存在しない。

bend bent
lend lent
rend rent
send sent
spend spent
build built
geld *gelt
gird *girt
At-Bt-Bt】型

Ad-Bd-Bd】の末尾tバージョンget,sitはこちらに含まれる。

fightfought
light *lit
meet met
shoot shot
get #got
shit *#shat
sitsat
【A-Bd-Bd】型

末尾にdが加わるという点で規則動詞に近いが,付き方が特殊母音も変化する。

lay laid
pay paid
say said
sell sold
tell told
hear heard
flee fled
shoe *shod
baa *baa'd
makemade
have had
【A-Bt-Bt】型

末尾にtが加わる。原形の/iː/が/e/に変化するものが多い。

feelfelt
keep kept
sleep slept
weep wept
creep crept
kneel *knelt
sweep swept
leave left
bereave !bereft
cleave *#cleft
deal dealt
mean meant
dream *dreamt
lean *leant
leap *leapt
lose lost
spoil *spoilt
burn *burnt
learn *learnt
dwell dwelt
smell *smelt
spell *spelt
spill *spilt
drip *dript
grip *gript
wrap *wrapt
pen *pent
【-(o/a)ught】型

末尾が-oughtか-aughtに変化する。どちらも発音は/ɔːt/。wentを除けばもっとも原型をとどめない変化が起こるので過去形から原形を思い出せるようにしておく必要がある。

beseech *besought
bringbrought
buy bought
overwork *overwrought
seek sought
think thought
catchcaught
teach taught
【A-B-An】型

過去分詞形が原形+nとなるもの過去形では母音が変化している。fall,eatにはenが,do,goにはneが付くことに注意。

blowblewblown
grow grewgrown
know knewknown
throw threwthrown
drawdrewdrawn
shakeshookshaken
taketooktaken
drivedrovedriven
riseroserisen
strive strovestriven
thrive *throvethriven
see sawseen
give gavegiven
eatateeaten
fall fellfallen
do diddone
gowentgone
【A-Aed-An】型

【A-B-An】の亜種で,showに代表される過去形規則変化(-ed)になっているもの

grave *gravedgraven
hew *hewedhewn
mow *mowedmown
prove *provedproven
saw *sawedsawn
sew *sewedsewn
shave *shavedshaven
show *showedshown
sow *sowedsown
strew *strewedstrewn
【A-B-Bn】型

過去分詞形が過去形+nとなるもの。eが脱落するtear-tore-tornのパターンに注意。wakeはtake,makeと異なり,この型に属する。

break brokebroken
cleave *#clovecloven
freeze frozefrozen
speak spokespoken
steal stolestolen
weave !wovewoven
shrink #shrunkshrunken
wake wokewoken
bear !boreborn
swearsworesworn
tear toretorn
wearworeworn
bear !boreborne
【-dden,-tten】型

原型にd,tを含み,過去分詞形でそれが重なるものget以外は【A-B-An】に近いがgetは【A-B-Bn】に近い。

smite #smotesmitten
ride roderidden
writewrotewritten
bite bitbitten
chide *#chidchidden
hidehidhidden
slideslidslidden
bid #badebidden
forbid #forbadeforbidden
forbid #forbadforbidden
get #gotgotten
【A-B-Cn】型

過去分詞形にnが付くが,【A-B-An】でも【A-B-Bn】でもないもの

flyflewflown
lielaylain
slay slewslain
shear *shearedshorn
swell *swelledswollen
tread #treadedtrodden
【i-a-u】型

原型にiを含み,それがi-a-uと変化していくもの。わかりやすい変化だが数は少ない。

beginbeganbegun
drink drankdrunk
ringrangrung
shrink #shrankshrunk
singsangsung
sinksanksunk
spring #sprangsprung
stink #stankstunk
swim swamswum
【A-B-B(その他)】

dt型でないが,A-B-CではなくA-B-Bと変化するもの。末尾が-ingのものが多いが,bringring,singが含まれないことに注意。

clingclung
flingflung
slingslung
slink slunk
spling #splung
stingstung
stink stunk
stringstrung
swingswung
wringwrung
hang !hung
dig dug
stickstuck
strike struck
heave !hove
reeve *rove
stave *stove
shine !shone
winwon
【その他】
[A-B-C]
dive *dovedived
smite #smotesmit
[A-A-B]
beat #beatbeaten
[A-B-A]
come camecome
runranrun

2016-10-20

俺の年収査定して欲しい

中小SIer 客先常駐インフラエンジニア

26歳3年目 転職を考えてる。

持ってる資格

Linux (LPIC Level 1,2,3)

Oracle Bronze,Silver

基本情報技術者

セキュリティスペシャリスト

統計検定2級

大規模構築経験あり

OSUNIX/Linux系は割と扱える

仮想基盤やAWS,Azureパブリッククラウドの構築経験あり

Ansible,Chefを用いて自動構築できる

ドルは、bind,sendmail,samba,nginx,Apache,Zabbix,LDAPとか

コードはshellとpythonが少々。



麻雀(天鳳)が趣味で、牌譜の解析とかやりたかたか統計勉強して、資格チャレンジしてみた。ついでにpython数学も。どちらも業務で使うことはほぼない。

趣味Webメディア作ってたから、Wordpressサイト作るくらいなら一晩で出来る程度の能力


いまこれで年収300万くらい。安い?普通

このスキル感に年収合ってる?

増田の皆さんに査定して欲しい。

あと転職するならデータサイエンスセキュリティに興味あるのでそっち方面に行こうと思ってる。

オススメ戦略を教えてください。

2016-04-14

detox

Toxins are everywhere. Car exhaust, secondhand smoke, flame retardants, plastic packaging, heavy metals, pesticides, BPA-coated receipts… Unless you’re living in virgin forest, you’re going to come into contact with some less-than-optimal chemicals pretty much every day.

That’s definitely no reason to panic. In fact, small doses of toxins may be good for you because of a phenomenon called hormesis – mild stress makes your cells work more efficiently. However, your body can have trouble clearing certain toxins. You eliminate most of the bisphenol-A (BPA) and other plastics you ingest, but a small percentage hides away in your fat cells, messing with your hormones and accumulating over time. It’s the same deal with several mold toxins, heavy metals like lead, nickel, cadmium, mercury, and aluminum, and with certain pharmaceuticals and drugs like THC.

A good detox protocol can help you eliminate these more stubborn toxins. The trouble is that many common detoxes don’t work. Juice and water cleanses, for example, are often actually counterproductive because they deprive your body of essential nutrients it needs to function. That said, there are a few genuine ways to detox.

Because so many toxins stay in your fat cells, one way to detox is through lipolysis – breaking down your fat cells and releasing the hard-to-reach toxins stored within them. Lipolysis is especially effective when you combine it with liver and kidney support or adsorbents that can suck up the released toxins. This article focuses on all of the above. Let’s start with saunas.

1) Sauna sessions

Sweating does more than cool you off. It also helps you get rid of both heavy metals and xenobiotics – foreign compounds like plastics and petrochemicals – in small but significant amounts. A 2012 review of 50 studies found that sweating removes lead, cadmium, arsenic, and mercury, especially in people with high heavy metal toxicity [1]. Another study put participants in both traditional and infrared saunas and found similar results [2]. Sweating also eliminates hormone-disrupting BPA, which accumulates in your fat cells [3].

There’s debate about the best kind of sauna for detoxification. A couple studies have shown that infrared saunas are the most effective for detoxing, but the research was funded by infrared sauna companies, so the results are questionable. Both traditional and infrared saunas are effective for detoxing [2]. That said, I prefer infrared saunas for a few reasons:

They don’t get as hot. Traditional saunas heat the air around you, while infrared light penetrates and heats your tissue directly. You sweat in an infrared sauna at around 130-150 degrees instead of at 180-200 degrees, so you can stay in for longer without feeling like you’re going to pass out. I’ve done 2-hour infrared sauna sessions (drinking salt water the whole time to replenish electrolytes and fluids, of course).

They’re easier on your electric bill. Again, infrared saunas require less energy, especially if you get a sauna that reflects infrared light back on you. This one, for example, costs about 15 cents an hour to run.

Infrared saunas are often cheaper.

I personally use a Sunlighten infrared sauna and love it. If you don’t want to buy an infrared sauna and there isn’t one around you, a standard sauna will work perfectly well [2]. There’s probably one in your local gym.

Keep in mind that sweating pulls electrolytes and trace minerals from your body, so it’s important to drink a lot of fluids and get plenty of salt (preferably Himalayan pink salt or another mineral-rich natural salt) if you’re going to use a sauna to detox [2].

2) Exercise

Exercise is another way to flush toxins from your body, and through more than just making you sweat. Exercise increases lipolysis (the breakdown of fat tissue), releasing toxins stored in your fat tissue. Studies show that people who exercise and lose body fat end up with higher levels of circulating hormone disruptors [4]. Increasing lipolysis through diet does the same thing [5].

Mobilizing toxins isn’t necessarily a good thing, particularly if you’re unequipped to get rid of them. You want to be sure you’re getting rid of toxins, not just moving them to a different part of your body. Working out addresses the issue to a degree: it improves circulation, providing more oxygen to your liver and kidneys so they can better filter out toxins. You can also give your system even more support and pull out bad stuff with the next two detox tools: activated charcoal and glutathione.

3) Activated charcoal

Activated charcoal is a form of carbon that has massive surface area and a strong negative charge. It’s been around for thousands of years and it’s still used in emergency rooms today to treat poisoning.

Charcoal binds to chemicals whose molecules have positive charges, including aflatoxin and other polar mycotoxins [6], BPA [7], and common pesticides [8]. Once the chemicals attach to the charcoal you can pass them normally (i.e. poop them out).

Charcoal can bind to the good stuff, too, so I don’t recommend taking it within an hour of other supplements. Try taking a couple charcoal pills along with exercise or have a sauna session. They should adsorb many of the toxins you release into your gut and GI tract.

4) Glutathione

Glutathione is a powerful antioxidant that protects you from heavy metal damage, according to studies in both human and rat cells [9,10,11,12]. Glutathione also supports liver enzymes that break down mold toxins and heavy metals. Your digestion will destroy normal glutathione, so opt for a liposomal glutathione supplement that makes it through your stomach. You can also supplement with N-acetylcysteine and alpha-lipoic acid, which your body can use to build glutathione on its own [13]. If you have severe heavy metal or mycotoxin poisoning, talk to a naturopath or functional medicine doctor about intravenous (IV) glutathione. It’s expensive and less convenient than an oral supplement, but it works very well.

5) Cryolipolysis

We’ve talked about how heat and exercise can increase fat burning to detox your fat cells. It turns out cold can do the same. Cryochambers are gaining popularity with professional athletes and other high performers for their ability to quell inflammation. It turns out they can help you burn fat – and release the toxins stored in itas well.

A cryochamber uses liquid nitrogen to supercool your body, stimulating mitochondrial function and decreasing inflammation. Intense cold also destroys fat cells, which has led to cryolipolysis therapy as a way to slim down [14,15]. You can use it to detox, too.

Can’t get your hands on a cryochamber? Try traditional cold thermogenesis instead.

6) Ketosis

Quick disclaimer: I haven’t found studies specifically looking at ketosis and toxin load, so you may want to take this section with a grain of (Himalayan) salt. That said, ketosis is a very effective way to induce lipolysis, particularly if you’re fasting.

When you’re in ketosis and you haven’t eaten recently, your body breaks down your fat stores into free fatty acids, which it then converts to ketones for fuel. That means that, in theory, you should be able to supercharge your detox (and fat loss) by dropping into nutritional ketosis.

The Bulletproof Diet puts you into mild ketosis, which curbs your hunger and sharpens your brain without forcing you to forego carbs entirely. If you want to try nutritional ketosis for detoxing, youll have to modify the Bulletproof Diet slightly. Skip carb reefed days for a couple weeks and limit carbs to ~30-50 grams per day. You can use keto urine strips or – even better – a blood ketone meter to test and make sure you’re becoming fat-adapted. Once your levels read around 1.5 mg/dL, you’re comfortably in nutritional ketosis. At that point, fasting will attack your fat stores and mobilize toxins, which you can mop up with activated charcoal or sweat out (or both).

7) Chelation therapy for heavy metals

Chelation therapy is the strongest way to detox heavy metals. It can also be dangerous, so many doctors don’t recommend it unless you have moderate to severe heavy metal poisoning. Chelation therapy uses compounds called chelators that form strong bonds with heavy metals, leaving them unable to further poison your body. You can then pass them normally. Chelation therapy is very effective for removing lead, mercury, aluminum, arsenic, iron, and copper.

If you’ve been exposed to a lot of heavy metals, talk to a functional medicine doctor about chelation therapy. You really want to go to a medical professional for this one, because it’s so effective that if your liver and kidneys aren’t able to process the metals (a common problem in people with heavy metal poisoning) you can get seriously ill.

Combining detox methods for maximum effect

Each of these 7 methods works well on its own, and you can stack methods for an even greater effect. Exercise and sauna sessions are a good example. Preliminary evidence suggests that exercising and then hitting the sauna afterward will detoxify you better than either one alone does [16]. With that in mind, here’s a sample detox protocol:

Take 2-3 mL liposomal glutathione and 2-3 g vitamin C an hour before exercising.

Exercise for at least 20-30 minutes (HIIT is a good option).

Take 3-4 activated charcoal pills.

Spend 45-60 minutes in a sauna. Remember to get plenty of water and salt/electrolytes.

If you have a lot of fat and you’re burning it off quickly, you’re probably getting rid of a lot of toxins in one fell swoop, and you may get a headache, digestive problems, brain fog, etc. If that happens try taking more glutathione, vitamin C, and charcoal. Be sure you take charcoal at least an hour away from other supplements, as it binds to vitamin C.

Toxins are a fact of modern life, especially if you live in a city or somewhere with poor air quality, mold, and/or a lot of petrochemical byproducts. These detox methods can give your body a little extra support dealing with pollutants and help you perform your best.

Subscribe below if you want more info about how to upgrade your body and brain. Thanks for reading and have a great week!

2014-02-12

http://anond.hatelabo.jp/20140212150528

「No」と言えない子に、「No」と言ってごらん?と聞いてみる。

メッセージ:「No」と言え

メタメッセージ:「No」と言ったら褒めてあげるよ

で、メッセージメタメッセージの二つに、bindする、ということですね。

なるほどよくわかりました。

ベイトソンダブルバインドを、治療的に用いたのがエリクソンだってだけで、

本質的には違いない、ってことですね。しらべてもよくわからなかったので、気になっていました。ありがとうございました。

自分の理解を確認したいのですが、次の例は正しいダブルバインドであっていますか?

もし、わたしがチョコを持ってきてたら、いまここで渡した方がいい?それとも放課後の方がいい?

メッセージ:いまか放課後か、どっちがいい?

メタメッセージチョコを受け取って欲しい

http://anond.hatelabo.jp/20140212075202

エリクソン別に選択肢を絞ってどちらかを選ばせる、なんてことはしてません。

一番良くある典型例として

「No」と言えない子に、「No」と言ってごごらん?と聞いてみる。

この答えとして、「No」と素直に言ったとしても、嫌だの意味で「No」と言っても、どちらも「No」と言ったことになる。

その際に、どんな答えを持ってきたとしても、出来たじゃないか!と言って褒める。

もとのダブルバインドは、そこでどんな答えを持ってきたとしてもなんでNoって言うんだ!と言って怒る。

そういうこと。

別にダブルバインド」は選択肢を2つ(ダブル)に固定する(bind)、と言う意味ではない。

その最初言葉のものに二つの意味を持つ、等と言う方が正しい。

まり、「No」と言いなさい、と言う言葉には、その後どう転んでも褒める、という意味合いを持つ。この二つの意味合いのダブル




心理学ってのは名前だけ持ってくると人を信じさせやすから(超大物占い師が言ってたとかそう言うレベルだけど)

どこかのバカが最初になんとなく何かで知って、都合の良い解釈をして、

馬鹿な発想をいかにも学者がきちんと検証したんだ、ということを表すために間違って心理学の用語を使う。

それを馬鹿がこぞって信仰する。

バカすぎ。

http://anond.hatelabo.jp/20140212070021

選択肢を減らし、1つの選択肢以外を絶対に選ばないようなものにして、結果的質問者の選ばせたいものを選ばせる」

ではない。

はい。おっしゃるとおりそのようなものではないですね。

富士通パソコンNECパソコンならどちらをお買いになります

などが典型的ダブルバインドですよね。

やって欲しいことを前提にして隠して、偽の二択を迫るのがこのテクニックの骨子だと考えています

きたないチョコは、その選択肢を選ぶのがあり得ないですが、ダブルバインドから外れているわけではないと思います

(なお、きたないチョコの例は例の目黒ラブホに引っ掛けたネタにつもりです。)

"bind"

わかりません。エリクソンで無い方のダブルバインドでは、メッセージメタメッセージの二つに縛られる、という意味bindだとおもうのですが、

エリクソンダブルバインドだと、何にbindされているんでしょう?目黒ラブホが出た時に調べたのですが、よく分かりませんでした。

増田さん、よろしければ教えていただけませんでしょうか?

http://anond.hatelabo.jp/20140212051446

エリクソンダブルバインドもそのまま、どちらを選んでも同じ結果になる、ということ。

その結果が、「良い結果になる」というだけ。

ダブルバインドは決して

選択肢を減らし、1つの選択肢以外を絶対に選ばないようなものにして、結果的質問者の選ばせたいものを選ばせる」

ではない。

そもそもbindって言葉、何だと思ってるの?

なんだ、この恥ずかしいドヤ発言は?黙らずに反論してみろよ?

2013-08-12

Webサーバを作る】http://d.hatena.ne.jp/kmaebashi/20130804/p1

マネしてPerlで書いてみた。以下ソースコード

use Fcntl;

use strict;

use Socket;

use threads;

use POSIX qw(strftime);

use File::Spec::Functions qw(rel2abs);

my $thread = threads->new(\&serverThread, "");

$thread->join;

sub getContentType {

my $ret;

my %hashmap=(

"html" => "text/html",

"htm" => "text/html",

"txt" => "text/plain",

"css" => "text/css",

"png" => "image/png",

"jpg" => "image/jpeg",

"jpeg" => "image/jpeg",

"gif" => "image/gif"

);

$ret = $hashmap{$_[0]};

if ($ret eq "") {

return "application/octet-stream";

} else {

return $ret;

}

}

sub serverThread {

my $documentRoot = rel2abs("D:/var/www/html");

my ($line, $path, @tmp, $ext, $data, $absPath);

socket(SERVER, PF_INET, SOCK_STREAM, getprotobyname('tcp'));

bind(SERVER, sockaddr_in("8001", INADDR_ANY)) || die;

listen(SERVER, SOMAXCONN) || die;

while (accept(CLIENT, SERVER)) {

while (<CLIENT>){

$line = $_;

last if ($line eq "" || $line eq "\r\n" || $line eq "\n");

if (index($line, "GET") == 0){

$path = (split(/ /, $line))[1];

@tmp = split(/\./, $path);

$ext = @tmp[$#tmp];

}

}

print CLIENT "HTTP/1.1 200 OK\r\n";

print CLIENT "Date: " .strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime). "\r\n";

print CLIENT "Server: Sever03.java\r\n";

print CLIENT "Connection: close\r\n";

print CLIENT "Content-type: ". getContentType($ext). "\r\n";

print CLIENT "\r\n";

$absPath = rel2abs($documentRoot. $path);

if (index($absPath,$documentRoot)==0 && sysopen(FH, $absPath, O_RDONLY | O_BINARY)) {

while ($data = <FH>) {

print CLIENT $data;

}

print CLIENT "\r\n";

close FH;

}

close CLIENT;

}

}

コアモジュールだけ使った。

元ネタJavaコードディレクトリトラバーサルになってたんで、一応対策を盛り込んだ。

といっても絶対に外向けに動かさないように。無いと思うけど。

いろいろツッコミくれるとうれしいです。

2013-07-07

生活マシンext4からbtrfsに

2012-09-18

perl SQL::Makerはスゲー便利 その2

http://anond.hatelabo.jp/20120917013417 の続き。

前回は、使ってるモジュールしか書かなかったんで、具体的な使い方を、

my $condition = SQL::Maker::Condition->new;

$condition->add('colom1' => "$value1");                          # colum1 = $value1
$condition->add('colom2',{'like' => "%$value2%"});               # colum2 like '%$value1%'
$condition->add('colom3',{'between' => ["$value3","$value4"]});  # colom3 between $value3 and $value4

my $q = SQL::Maker::Select->new(driver => 'XXXXX');              # XXXXXは、MySQL等の指定をする

# where句に条件を設定
$q->set_where($condition);                                       

# where句を抽出select項目やテーブルの指定を全くしてないので、$sql_conditionには
# "FROM WHERE (colum1 = ?) and (colom2 like ?) and (colom3 between ? and ?)" という文字列がセット
my $sql_condition = $q->as_sql();                                

# "FROM" を消して、WHERE句だけにする 
$sql_condition =~ s/FROM//;                                      

# 設定した条件の配列
my @binds = $q->bind;                                            

# SQLの読み込み(条件部分をのぞくopen my $fh, "<", "./sql.txt";
my $sql = do{ local $/; <$fh>};
close $fh;

# 生成したWHERE句とソート順をSQLに追加
$sql = $sql.$sql_condition;

# コネクションを取得
my $conection = DBI->connect($datasource) or die ( 'could not connect' );
my $sth = $conection->prepare($sql);

# 条件に値を埋め込む
for(my $i = 0; $i<= $#binds; $i++){
    $sth->bind_param($i+1,$binds[$i]);
}

# SQLの実行
$sth->execute;


という形でやってます

増田だとpre記法でも「<」「>」が正しく変換されないんで、読み替えてください。

やろうと思えば、select項目や読み込むテーブルもPGの中で指定して組み立てることも

出来るんだけど、そこまでやると面倒くさいし、そこまで動的にコントロールする必要

サイトでは無かったんで、条件部分のみ動的に変更できるようにしてます

動的SQLperlで作ろうと思っている人の参考になれば幸いです。

参考

http://search.cpan.org/~chiba/SQL-Maker/lib/SQL/Maker/Select.pm

http://search.cpan.org/~chiba/SQL-Maker/lib/SQL/Maker/Condition.pm

風俗口コミ横断SEARCH

http://fko-s.info/index.html

2010-12-03

こないだ

電波を使う通信業者のサービス向けに IPv6 対応仕事してきた。

ping が通ると、やっと時代が変わってきた気になる。

憂鬱なものも、たくさんある。

ユーザに払いだされる IPv6 アドレスへの、DNSでの名前解決とか。

逆引きできないとサービスアクセスできなくなるところがあるし。

BIND だと /12 (32bit中の12bit) でも BIND だけでメモリが 1.2GB くらい必要なのに、64bit 以上の名前解決なんか無理。

IPv4と同じノリでいると、痛い目に遭うのが目に見えてる…orz

とりあえず IPv6 では、逆引き不要論を唱えてみたい

どんな不具合があるのか知らんし。

2010-11-19

さくらVPS(ubuntu)で独自ドメインしてみた(日記6)

初回:http://anond.hatelabo.jp/20101118000033

前回:http://anond.hatelabo.jp/20101119000741



以上で独自ドメインの鯖への割り当ての変更は完了できた。

VPS側に特にBIND入れる作業は不要の様子。


以下、参考文献

http://blog.mobf.net/archives/157

https://wiki.ubuntulinux.jp/UbuntuTips/DedicatedServer/ApacheVirtualHost

http://tobysoft.net/wiki/index.php?Ubuntu/apache2

日記5

初回:http://anond.hatelabo.jp/20101118000033

前回:http://anond.hatelabo.jp/20101118220620


直近でやりたいことを整理してみる。


今からやること

2010-07-26

linuxプロセスファイルディスクリプタを送る方法

linuxではファイルディスクリプタを使い、例えばソケットやファイルの操作などを行います。その際、あるディスクリプタを他のプロセスに送りたいことがあるかもしれません。ここではその方法を解説します。

方法

  1. ディスクリプタ送受信用のソケットを、それぞれのプロセス作成
  2. ソケットの補助データ(後述)を送るための、msghdr構造体を用意
  3. 実際に送信し、別プロセス側で受信する
1, ディスクリプタ送受信用のソケットを、それぞれのプロセス作成

ディスクリプタを別プロセスに送信するためには、送受信用のソケットを作成する必要があります。この場合は特に、unix domainのUDPソケットを作成する必要があります。

unix socketとはネットワークを介さずに使えるソケットインターフェースです。接続アドレスファイル名で指定されます。このためソケットを作った後はそのファイル作成されます。ただし、送受信データはそのファイルではなくカーネル内のメモリに保存されます。

ソケットはsocketシステムコールにより作成します。その際、第一引数にAF_LOCALを、第二引数にSOCK_DGRAMを指定することで所望のソケットを得ることができます。なお、受信側ソケットの場合は、bindにより受信アドレスを設定する必要があります。

#define UNIX_SOCKET_PATH "/tmp/socket2010"

int make_socket(int is_receiver)
{
    // create the unix domain udp socket.
    int sock = socket(AF_LOCAL, SOCK_DGRAM, 0);

    if (is_receiver) {
        struct sockaddr_un addr; // include sys/un.h

        unlink(UNIX_SOCKET_PATH);

        memset(&addr, 0, sizeof(addr));
        addr.sun_family = AF_LOCAL;
        strcpy(addr.sun_path, UNIX_SOCKET_PATH);
        bind(sock, (struct sockaddr *)&addr, sizeof(addr));
    }

    return sock;
}

2009-01-21

毎朝読対訳:就任演説(5)

http://anond.hatelabo.jp/20090121125115

 For everywhere we look, there is work to be done.

(M)どこを見回してもすべき仕事がある。

(A)あらゆるところに、なすべき仕事がある。

(Y)なすべき仕事は至る所にある。

 The state of the economy calls for action, bold and swift, and we will act - not only to create new jobs, but to lay a new foundation for growth.

(M)経済状況は、大胆で迅速な行動を求めている。我々は新しい職場創造だけでなく、成長のため新しい基盤を作らねばならない。

(A)経済状況は、力強く迅速な行動を求めている。私たちは行動する。新たな雇用を創出するだけではなく、成長への新たな基盤を築くためにだ。

(Y)米国経済は、大胆かつ迅速な行動を求めている。そして我々は新規の雇用創出のみならず、新たな成長の礎を整えることができる。

 We will build the roads and bridges, the electric grids and digital lines that feed our commerce and bind us together.

(M)我々は道路や橋、電線やデジタル通信網をつくり、我々の商業を支え、我々の結びつきを強めなければならない。

(A)商業の糧となり、人々を結びつけるように、道路や橋、配電網やデジタル回線を築く。

(Y)道路や橋を造り、電線やデジタル通信網を敷き、商業を支え、我々を一つに結び付ける。

 We will restore science to its rightful place, and wield technology's wonders to raise health care's quality and lower its cost.

(M)我々は科学を本来あるべき場所に引き戻し、技術活用医療の質を引き上げると共にコストを下げる。

(A)科学を本来の姿に再建し、技術の驚異的な力を使って、医療の質を高め、コストを下げる。

(Y)科学を本来あるべき地位に戻し、医療の質を引き上げながら、そのコストは減らす。

 We will harness the sun and the winds and the soil to fuel our cars and run our factories.

(M)太陽、風や土壌を使って我々の自動車の燃料とし、工場を動かす。

(A)そして太陽や風、大地のエネルギーを利用し、車や工場の稼働に用いる。

(Y)太陽、風や土壌を利用して自動車を動かし、工場を動かす。

 And we will transform our schools and colleges and universities to meet the demands of a new age.

(M)我々の学校や単科大、大学を新たな時代の要請にあわせるようにする。

(A)新しい時代要請に応えるように学校大学を変革する。

(Y)新時代の要請に合うよう学校や単科大、大学を変えていく。

 All this we can do.

(M)これらすべてが我々には可能だ。

(A)これらすべては可能だ。

(Y)我々はすべてのことを成し遂げられる

 And all this we will do.

(M)これらすべてを我々は実行するのだ。

(A)そしてこれらすべてを、私たちは実行する

(Y)し、行っていく。

 Now, there are some who question the scale of our ambitions -

(M)我々の志の大きさに疑問をはさむ人もいる。

(A)私たちの志の大きさに疑念を抱く人がいる。

(Y)我々の野望の大きさについて疑念を抱く人がいる。

  - who suggest that our system cannot tolerate too many big plans.

(M)我々のシステムでは大きすぎる計画は達成できないという人々だ。

(A)我々のシステムではそんなに多くの大きな計画は無理だ、と言うのだ。

(Y)我々のシステムは多くの大きな計画に耐えられないと指摘する人もいる。

 Their memories are short.

(M)彼らは覚えていないのだ。

(A)だが、そうした人たちは忘れるのが早い。

(Y)だが、彼らは忘れている。

 For they have forgotten what this country has already done; what free men and women can achieve when imagination is joined to common purpose, and necessity to courage.

(M)彼らはすでにこの国が成し遂げたことを忘れているのだ。想像力が共通の目的に出会った時、必要が勇気と出会った時、自由な男女に達成できることを忘れているのだ。

(A)これまで我が国が成し遂げてきたこと、そして、共通の目的勇気の必要性に想像力が及んだとき、自由な人々がどんなことを成し遂げられるかを、忘れているのだ。

(Y)彼らはこの国が何を成し遂げたかを忘れている。想像力が共通の目的と出合った時、必要が勇気と結びついた時、自由な男女が何を達成できるかを忘れているのだ。

 What the cynics fail to understand is that the ground has shifted beneath them -

(M)皮肉屋が理解できないのは、彼らの下で大地が動いたということだ。

(A)皮肉屋たちは、彼らの足元の地面が動いていることを知らない。

(Y)皮肉屋が理解できないのは、彼らがよって立つ地面が動いたということだ。

 - that the stale political arguments that have consumed us for so long no longer apply.

(M)我々を余りに長期間、消耗させた使い古しの政治論議はもはや適用されない。

(A)つまり、これまで私たちを消耗させてきた陳腐な政争はもはや当てはまらない。

(Y)長い間、我々を疲れさせてきた陳腐な政治議論はもはや通用しない。

 The question we ask today is not whether our government is too big or too small, but whether it works -

(M)今日、我々が問うのは、政府が大きすぎるか小さすぎるかではなく、機能しているかどうかだ。

(A)私たちが今日問わなくてはならないことは、政府が大きすぎるか小さすぎるか、ではなく、それが機能するかどうかだ。

(Y)我々が今日問うべきなのは、政府の大小ではなく、政府が機能するか否かだ。

 - whether it helps families find jobs at a decent wage, care they can afford, a retirement that is dignified.

(M)家庭が人並みの収入を得られるよう仕事を見つけ、威厳をもって引退できるよう助けているかどうかだ。

(A)まっとうな賃金仕事や、支払い可能な医療・福祉、尊厳をもった隠退生活を各家庭が見つけられるよう政府が支援するのかどうかだ。

(Y)家族が人並みの給与仕事を見つけたり、負担できる(医療保険や、立派な退職資金を手に入れることの助けに、政府がなるかどうかだ。

 Where the answer is yes, we intend to move forward.

(M)答えが「イエス」の施策継続する。

(A)答えがイエスならば、私たちは前に進もう。

(Y)答えがイエスの場合は、その施策を前進させる。

 Where the answer is no, programs will end.

(M)「ノー」の施策は廃止する。

(A)答えがノーならば、政策はそこで終わりだ。

(Y)ノーならば終わりとなる。

 And those of us who manage the public's dollars will be held to account - to spend wisely, reform bad habits, and do our business in the light of day -

(M)公金を預かる我々は、説明責任を果たさなければならない。適切に支出し、悪い習慣を改め、誰からも見えるように業務を行う。

(A)私たち公金を扱う者は、賢明に支出し、悪弊を改め、外から見える形で仕事をするという、説明責任を求められる。

(Y)公的資金管理する者は適切に支出し、悪弊を改め、誰からも見えるように業務を行う。

 - because only then can we restore the vital trust between a people and their government.

(M)それによって初めて、国民政府の間の重要な信頼を回復できる。

(A)それによってようやく、政府国民との不可欠な信頼関係を再建することができる。

(Y)それによって初めて、国民政府の間に不可欠な信頼を回復できる。

 Nor is the question before us whether the market is a force for good or ill.

(M)市場が正しいか悪いかも、我々にとっての問題ではない。

(A)市場が良い力なのか悪い力なのかも、問われていることではない。

(Y)問うべきなのは、市場の良しあしでもない。

 Its power to generate wealth and expand freedom is unmatched,

(M)富を生み出し、自由を拡大する市場の力は比肩するものがない。

(A)富を生みだし、自由を広めるという市場の力は、比類なきものだ。

(Y)富を作り自由を広げる市場の力に比肩するものはない。

 , but this crisis has reminded us that without a watchful eye, the market can spin out of control - and that a nation cannot prosper long when it favors only the prosperous.

(M)だが、今回の金融危機は、注意深い監視がなされなければ、市場は制御不能になり、豊かな者のみを優遇する国は長く繁栄することはできないことを我々に気付かせた。

(A)しかし、今回の(経済)危機は、市場は注意深く見ていないと、制御不能になるおそれがあることを、私たちに思い起こさせた。また、富者を引き立てるだけでは、国は長く繁栄できない、ということも。

(Y)だが、今回の(経済)危機は、監視がなければ、市場は統制を失い、豊かな者ばかりを優遇する国の繁栄が長続きしないことを我々に気づかせた。

 The success of our economy has always depended not just on the size of our Gross Domestic Product, but on the reach of our prosperity; on our ability to extend opportunity to every willing heart -

(M)我々の経済の成功は国内総生産の規模だけでなく、繁栄が享受される範囲や、望む人すべてに機会を広げる能力にかかってきた。

(A)私たちの経済的な成功は、国内総生産(GDP)の規模だけではなく、繁栄がどこまで到達するかに常に依存してきた、つまり、意欲のある人にどれだけ機会を広げられたかだ。

(Y)我々の経済の成功はいつも、単に国内総生産(GDP)の大きさだけでなく、我々の繁栄が広がる範囲や、機会を求めるすべての人に広げる能力によるものだった。

 - not out of charity, but because it is the surest route to our common good.

(M)慈善としてではなく、公共の利益に通じる最も確実な道としてだ。

(A)慈善心からではなく、それが、私たちの共通の利益への最も確実な道筋であるからだ。

(Y)慈善としてではなく、公共の利益に通じる最も確実な道としてだ。

2008-10-11

http://anond.hatelabo.jp/20081011203455

たぶんapacheアクセスログか何かをmoreでちゃっちゃと表示するだけで

草なぎ君がBINDパッチ当てて直す奴だっけ。あれが思いうかんだ。

そういえば、昔のクラックって、YouTubeワリオランドシェイク見たいな事やってるよね。さすがだよね。

それにひきかえ、マトリックスときたら、sshdをクラックしてるんだからスクリプトキディもいいところだよな。

2008-07-22

[]関連エントリーのツリーをたどれるグレモン

結局概要表示機能追加した。unsafeWindow使いまくり大丈夫かいな。

// ==UserScript==
// @name	Hatena Bookmark Tree Expander
// @namespace	http://anond.hatelabo.jp/
// @include	http://b.hatena.ne.jp/entry/*
// ==/UserScript==
// <div class="info">
//   <ul id="similar_entries" class="bookmarklist">
//     <li></li>
//   </ul>
// </div>
// <div class="info">
//   <ul id="referred_entries" class="bookmarklist">
//     <li id="referred-entry-\d+"></li>
//   </ul>
// </div>
// <div class="info">
//   <ul id="relation_diary" class="bookmarklist">
//     <li id="diary-{id}-\d+"></li>
//   </ul>
// </div>
(function() {

function main() {
	loadBookmarkCommentViewer();
	similar.prototype.rootAppend();
	referred.prototype.rootAppend();
}

function HBTM(target) {
	this.target = target;
	this.targetXPath = "//ul[@id='"+target+"']/li";
	this.targetRegExp = new RegExp('<ul id="'+target+'"(.|\\s)*?</ul>');
}
HBTM.prototype = {
	openIcon:
		'<img width="15" height="15" class="icon" style="opacity: 0.6" src="http://anond.hatelabo.jp/images/common/open.gif"/>',
	closeIcon:
		'<img width="15" height="15" class="icon" style="opacity: 0.6" src="http://anond.hatelabo.jp/images/common/close.gif"/>',
	loadingIcon:
		'<img width="13" height="13" class="icon" src="http://anond.hatelabo.jp/images/common/loading.gif"/>',
	commentIcon: function(url) {
		return '<img class="hatena-bcomment-view-icon" src="http://r.hatena.ne.jp/images/popup.gif" onclick="iconImageClickHandler(this, \''+url+'\', event);">'
	},
	create: function() {
		this.comment = document.createElement("span");
		this.comment.innerHTML = this.commentIcon($X("string(descendant::a/@href)", this.node).value());
		this.open = document.createElement("a");
		this.open.href = "javascript:void(0)";
		this.open.innerHTML = this.openIcon;
		this.close = document.createElement("a");
		this.close.href = "javascript:void(0)";
		this.close.innerHTML = this.closeIcon;
		this.close.style.display = "none";
		this.loading = document.createElement("span");
		this.loading.innerHTML = this.loadingIcon;
		this.loading.style.display = "none";
		this.node.appendChild(this.comment);
		this.node.appendChild(document.createTextNode(" "));
		this.node.appendChild(this.open);
		this.node.appendChild(this.close);
		this.node.appendChild(this.loading);
		this.open.addEventListener("click", bind(this.openAct, this), false);
		this.close.addEventListener("click", bind(this.closeAct, this), false);
	},
	openAct: function() {
		this.open.style.display = "none";
		if (this.tree) {
			this.tree.style.display = "block";
			this.close.style.display = "inline";
		} else {
			this.loading.style.display = "inline";
			this.load();
		}
	},
	closeAct: function() {
		if (this.tree) {
			this.tree.style.display = "none";
			this.close.style.display = "none";
			this.open.style.display = "inline";
		}
	},
	load: function() {
		var url = $X("string(descendant::a[starts-with(@href, '/entry/')]/@href)", this.node).value();
		GM_xmlhttpRequest({
			method: "GET",
			url: "http://b.hatena.ne.jp"+url,
			onload: bind(this.loadCallback, this)
		});
	},
	loadCallback: function(result) {
		var match = result.responseText.match(this.targetRegExp);
		if (match) {
			var sandbox = document.createElement("div");
			sandbox.innerHTML = match[0].replace(this.target,"");
			this.tree = sandbox.firstChild;
		} else {
			this.tree = document.createElement("ul");
		}
		this.append();
		this.loading.style.display = "none";
		this.close.style.display = "inline";
	},
	append: function() {
		this.tree.style.backgroundColor = "transparent";
		this.tree.style.listStyleType = "circle";
		this.node.appendChild(this.tree);
		$X("li", this.tree).each(function(n) {
			var a = $X("a",n).node();
			var c = $X("count(//li/a[@href='"+a.href+"'])").value();
			if (c > 1) n.parentNode.removeChild(n);
		});
		$X("li", this.tree).each(bind(function(node){new this.constructor(node)}, this));
	},
	rootAppend: function() {
		$X(this.targetXPath).each(bind(function(node){new this.constructor(node)}, this));
	}
};

function similar(node) {
	this.node = node;
	this.create();
}
similar.prototype = new HBTM("similar_entries");
similar.prototype.constructor = similar;

function referred(node) {
	this.node = node;
	this.create();
}
referred.prototype = new HBTM("referred_entries");
referred.prototype.constructor = referred;

function loadBookmarkCommentViewer() {
	var head = document.getElementsByTagName("head")[0];
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = "http://b.hatena.ne.jp/js/BookmarkCommentViewerAllInOne.1.2.js";
	head.appendChild(script);
	var css = document.createElement("link");
	css.rel="stylesheet";
	css.href="http://d.hatena.ne.jp/css/base.css";
	css.type="text/css";
	css.media="all";
	head.insertBefore(css, head.firstChild);
	window.addEventListener("load",function(){
		var BCV = unsafeWindow.BookmarkCommentViewer;
		BCV.options['screenshot'] = true;
		var asyncCommnetView = BCV.asyncCommnetView;
		BCV.asyncCommnetView = function(url, onCompleteCallback) {
			var div = asyncCommnetView(url, function(){
				onCompleteCallback.apply(this, arguments);
				new unsafeWindow.Ten.XHR("http://b.hatena.ne.jp/entry/rss/"+url, {}, function(result) {
					if (! result.responseText.match(/<description>(.*?)<\/description>/))
						return;
					if (! RegExp.$1)
						return;
//					var desc = document.createTextNode("desc: "+RegExp.$1);
					var desc = document.createElement("li");
					desc.appendChild(document.createTextNode("desc: "+RegExp.$1));
					div.lastChild.insertBefore(desc,div.lastChild.getElementsByTagName("li")[0]);
				});
			});
			return div;
		};
		BCV.asyncCommnetView.origin = asyncCommnetView;
	}, false);
}

function bind(f,o) {return function() {return f.apply(o, arguments)}}

function $X(xpath, context) {
	if (!(this instanceof $X))
		return new $X(xpath, context);
	this.xpath = xpath;
	this.context = context || document;
}
$X.prototype = {
	evaluate: function() {
		var result = document.evaluate(this.xpath, this.context, null, this.type, null);
		switch (result.resultType) {
			case XPathResult.STRING_TYPE : return result.stringValue;
			case XPathResult.NUMBER_TYPE : return result.numberValue;
			case XPathResult.BOOLEAN_TYPE: return result.booleanValue;
			case XPathResult.FIRST_ORDERED_NODE_TYPE: return result.singleNodeValue;
		}
		return result;
	},
	node: function() {
		this.type = XPathResult.FIRST_ORDERED_NODE_TYPE;
		return this.evaluate();
	},
	value: function() {
		this.type = XPathResult.ANY_TYPE;
		return this.evaluate();
	},
	each: function(func) {
		this.type = XPathResult.ORDERED_NODE_SNAPSHOT_TYPE;
		var result = this.evaluate();
		for (var i=0; i<result.snapshotLength; i++)
			func(result.snapshotItem(i));
	}
};

main();

})();
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん