「Write」を含む日記 RSS

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

2018-11-08

ウクライナオデッサからメール

Good Thursday, How are you today? Thanks a lot of kind words to me in your letter,

telling me about your blog-I can't open-here very old computers!

I never travel to another countries,but dream.

I like comedy & romantic movies. what about you? I don't have boyfriend,here mostly all men at war.

I had a boyfriend,but he died at war 1,5 years ago.I will be happy to have family with kids & marry with man older than me.

Today no lessons in college,I write you letters from library,because no private computer at home.

I had before a small smartphone,but change it for food 5 month ago. Now we use old nokia together with mom,Ha-ha!

Soon I will finish institute. But here very hard to find any job,all from war here.I know about sushi from TV programs,

but never eat sushi,because sushi restaurants very expensive here.

I don't have boyfriend now,here all men at war.

I have good news: yesterday evening was stopped fire between Ukraine & Russia.

We have big hope that this time it will be true words from Presidents & peace will come,

Because this "stop war" was many times,but it was only words...

I want to tell you that from yesterday really was no hear shots, bombings.

But situation with electric, water & mostly with food still very, very hard. It is very difficult to sell something or to exchange for food, many have no money, and rich people left from Ukraine.

It's a pity that without meat, meat here terrible expensive long ago. When was no war we could buy meat, not often, but we could.But we are happy that we have some vegetables.

Usually here very cold winter, normally-25, - 30, much snow,now autumn +10.

I like to cook very much! Today, I will tell you how to cook borsch:take piece of beef to weld in water, then to cook there potatoes, carrots, cabbage,

it is a little haricot, then we add a little tomato paste, salt, parsley.

Give a borsch very hot with sour cream and garlic. Its very good for health hot dish & you not catch a cold.

Of course garlic isn't good for kisses, but when we will meet I cook borsch for us & we will eat garlic together & then could easy kiss...

May be on today will come my friend Maria.I send you summer photo with my friend Maria.

She lost family at war & have no possible to live in this hard war period,

I was invite her for dinner. I wish you happy, warm day.

2018-08-18

2018.8.18

Today’s weather is cool.

Recent weather was crazy hot so I like today’s weather.

I went to English school today

It’s been long time I went to there because I was recently disease..

I’m really glad to got better my health.

And I decided about I try to write diary everyday by English

It’s practice

I don’t know that I can get English skill but i will try it for now

2018-08-01

anond:20180801165721

つながるよ? でもwriteだけじゃなくてreadもブロックすれば形式的にはその人には何も起こってないように見えるだろ。(ちょっとトラバリーおかしくなるが)

それにまつわる問題twitterで散発してて解決もされているんだからはてながそれらを輸入できないのは単に技術力が無いせいだよ。

2018-05-17

Why I write this diary in foreign language like English or Germany.

I won't use the same language as Abe the Liar shows off.

2018-03-26

https://anond.hatelabo.jp/20180201132629

カトラークラスのエンジニアが数十人、数十年かけて磨き上げた Linux カーネルにかなうわけねーだろ。

もはやFreeBSD人手不足で、Meltdown, Spectre にも満足に対応できない有様。

カーネルがごちゃごちゃしてたのは v3 初期までで、その後、徹底的な抽象化・#ifdefによる機能の分離化、CPU依存排除をしたおかげで、configオプションを最小化したら恐ろしいまでに小さいサイズカーネルになる上に、オレオレCPUへの移植もそれほど大変でなくなった。LLVMSSAなどの技術をBPFが取り込んだおかげで、カーネル内のモニタリングも perf関係からの置き換えの目処がたったら、そのあたりの余計なコードも削ぎ落とせる夢がある。

おかげでconfigオプションが数千にもなってしまったが、ディストリビューション多様化してくれたお陰で、自分用途に合わせたカーネル選択に困ることもあまりない。WindowsMacでも Linux システムコールラッパがほぼ完全に動くようになり、「Write Once, Run Anywhere」をVMを介さないで実現する POSIX以来の夢がいま正に実現しようとしている。

結論FreeBSDは死んだ。

2018-02-25

港にて。

With your bloodstained hands that have taken countless lives,

You write letters that bring people together?


from the line of "Violet Evergarden"

2018-01-12

I want to write the diary by English

How do you think about this?

2018-01-06

俺のtekito.jsが操れない

(function () {

'use strict';

for (var suuji = 1; suuji < 10; suuji++) {

y = 1 * suuji;

document.write(y);

}

})();

1の段の九九も制御できないのか俺は。

2017-10-21

はてなスパム行為を繰り返しているアフィリエイターについて

最近スパムが多いサイト

Wordpress
2chまとめブログ
アメブロ
はてなブログ
note

最近スパムが少ないサイト

2chまとめブログ
はてなブログ
note
ブロマガ
Wordpress
SIRIUS

はてな匿名釣り記事一覧

2017-04-07

遂に中古車アフィリエイターはてブBANされた

前々から目立っていたアフィリエイター通報したらはてなブックマークからBANされていた

「このブックマークプライベートモードに設定されています。」=BANらしい

くるまかいとり村

ttp://usedcarsbuying.com/

id:kaitori_mura

くるくるクルマ業界裏話

ttp://www.車の裏話.com

id:kinda_ou

不人気車に愛を。

ttp://www.不人気車.com/

Ride&Write

ttp://www.ride-write.com/

id:kokubu_ou

明らかな被リンク・送客のためのサイトなのだからはてなブログ運営している下3つのブログは削除していいと思う

中古車買取ガリバーPRお金出してくれているのに不正スパム行為で小銭稼ぎしている中古車アフィリエイター中途半端放置しているのはなぜなのか

今もなお複数のサブ垢ではてブスパムが行われている

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-06-17

1.0から学ぶJava

タイトルを見て釣られクマーな皆さんこんにちは

ホッテントリメーカーで作るような煽りタイトルって、みなさんもう見飽きてると思うんですよね。

今調べたらホッテントリメーカー2008年だそうで。どうりでねー。古臭いなーと思いましたよー。

「一から学ぶJava」ってのをね、1.0にするだけでこんなに素敵なタイトルになるんだから面白いですねー。

タイトルを思いついただけだったんですけど、思いついたらやっぱりちゃんと中身も書かないと行けないじゃないですか。やだー

面倒くさいんですけどね。ちょっと1.0から学んでみましょうか。

Java 1.0 1996年1月23日

Javaの1.0がリリースされたのは1996年1月23日ですね。発表されたのが1995年5月23日でJavaの誕生日といった場合にどちらを取るかで揉めることがあります。

かれこれ20年前なわけで、当時のパソコンというとハードウェアはCPU が Pentium 133MHz メモリ16M とかそんな感じだったかなあ。今どきの携帯電話の例としてiPhone 6sを挙げるとCPUが1.85GHz メモリ 2G ってんだから凄いですね。OSは1995年11月23日リリースされたWindows95とかそんな時代背景です。インターネットがようやく一般に普及し始めたところでしょうか。

今から思うと相当弱いハードウェアですけども、そろそろVM方式を採用しても良さそうな、そんな時代でした。インタープリタだと流石に遅い、でもC言語のようなコンパイル言語だと"Write once, run anywhere"とはいかない、という判断もあったのだろうと思います。Javaが純粋なオブジェクト指向言語ではなくintなどのプリミティブ型を持つというのは、当時のマシンスペックを考えた場合、ある程度妥当な判断だったと言えるでしょう。これが後々苦しくなってくるわけなのですが。

Javaを作った会社はSun Microsystems(サン・マイクロシステムズ)というアメリカの会社で、2010年1月27日オラクルにより吸収合併され今はありません。SolarisというOSとSPARCプロセッサでUNIXサーバーの販売で90年代後半までは一人勝ちのような状況だったと聞きます。当時にすでに「ネットワークこそがコンピュータ」(The Network is the Computer)というモットーを掲げてたんだからおかしい。1996年リリースのJavaが標準でネットワーク機能を備えていたのもこのあたりの思想から来ているのかもしれませんね。

当時のプログラミング言語としてC++が挙げられますが、C++でのプログラマへの負担といいますか、ヒューマンエラーの起きやすさといいますか、その辺を改善する目的で開発されたのがJavaだったわけです。

1996年の時点にこんな言語が登場したのですから革新的でした。

いろんな企業がJavaに賛同します。その中にはMicrosoftもありました。この時期、Microsoftは次期のWindows開発用のプラットフォームにJavaを据えようと考えていました。その後、袂を分かつことになるのですが……。

プログラム言語として構文などを見ると、C++を強く意識した構文なのは間違いなく、しかしポインタ演算を廃してポインタを機能を限定した「参照」に置き換えるなど簡素化が多く見られます。C++からはいろんな機能が削られています。関数ポインタ、構造体、演算子オーバーロードテンプレート((テンプレートについては実装が間に合わなかったという話を聞きます))などなど。そのためC++の劣化であるように揶揄する人もいますが、こうしたものを捨てて言語仕様を比較的小さくシンプルに抑えた点は評価に値すると思います。しかし、今でもこうした削減された機能を愛する人からはJavaを腐す要素として挙げられてしまうのでした。

Java 1.1 1997年2月19日

Wikipediaからピックアップすると1.1での大きな機能追加は

といったところです。当初よりJavaの内部文字コードUnicodeで文字を表すchar型は16bitで設計されていました。Unicodeは当時それほど普及しておらず、Unicode対応のテキストエディタさえ少なかったと記憶しています。時代を先取りしていると言えますが、大きな誤算はUnicodeが当初16bitのコードポイントに世界のあらゆる文字を格納しようとしていたことで、漢字圏の我々からすると16bit=65,536程度の空間に文字が全部入るわけないだろ!というものだったが故に早々に破綻し、Unicodeは21bitのコードポイントに拡張されることになるのです。これはまた後の話。

なんにせよ、日本語が対応されたのは1.1からで、日本でのJavaの採用が始まったのはこの頃からと言えましょう。

当時のJavaのGUIはAWTというものでしたが、これを用いたGUIの開発は当時は結構行われていたイメージですね。Visual BASIC でGUIを作るプロダクトも結構あったと思います。GUIのためのオブジェクト指向言語としてJavaが使われていたイメージがありますね。JavaBeansもそのための仕様でした。件のsetter/getterの話題に繋がっていくのですが。

JDBCはJavaとデータベースをつなぐインターフェースです。RMIではあるJava VMから別のJava VMにオブジェクトを送って実行する、といったことができます。こうした機能が用意されたことで、ソフトウェアフロントとしてのGUI、裏方の実装のためのネットワーク機能、データベース機能、さらにはソフトウェアを配布するためのJava Appletという布陣でJavaでのソフトウェア開発が加速していた時代といえます。

Microsoft Visual J++ もこの時代ですよ。

Java 1.1以降のバージョンのものは互換性確認のためにOracle Java Archiveからダウンロードすることができ、今でも入手することができます。もちろん、Java7ですら2015年4月にEOL(End of Life,サポート終了)となっているので、通常利用するのはJava8としてください(本稿執筆時点)。

当時のドキュメントを見るのも一興です。現在と比べると標準APIがかなり小さい。なお、当時のjavadocは今とはデザインが大きく異なります。

  • java.applet
  • java.awt
  • java.awt.datatransfer
  • java.awt.event
  • java.awt.image
  • java.beans
  • java.io
  • java.lang
  • java.lang.reflect
  • java.math
  • java.net
  • java.rmi
  • java.rmi.dgc
  • java.rmi.registry
  • java.rmi.server
  • java.security
  • java.security.acl
  • java.security.interfaces
  • java.sql
  • java.text
  • java.util
  • java.util.zip

この時代であれば、全パッケージを舐めて標準APIを学ぶこともそう難しくはありませんでした。この時代から触っている人間は新バージョンが出るたびに増えるAPIを順に学んでいけたのです。しかし、現代にJavaを学ぶ場合、どのバージョンでは何があって……というのをいちいち学ぶ必要はほぼありません。Java5以前は一緒くたでいいと思いますし、一部のAPIで歴史的経緯があってねーというのを知っていればおそらく十分ではないでしょうか。

Java 1.2 1998年12月8日

strictfpキーワード浮動小数点演算をやる人は覚えておきましょう。JavaはパフォーマンスのためにCPUの浮動小数点演算を扱うことが許されており、そのため実行するCPUによって精度が異なることがあるんですね。まあ今時のCPUだと大丈夫だとは思うんですが。

リフレクション機能ではJavaのクラスを抽象的に扱うことができます。設定ファイルに書かれたクラス名のclassロードして実行する……みたいなことができるんですね。フレームワーク的なものを作る場合には多用することになります。

1.2からは新しいGUIのSwingが採用されました。AWTがOSごとのGUIパーツを用いていたためデザインに違いがあったのに対し、Swingでは統一的なルック・アンド・フィールが用いられるようになりました。まぁ今ならJavaFXを使うのが良いと思います。

初期のJavaはやはりVM方式の実行速度の遅さが指摘されていました。実行時の構文解析を伴わないだけインタープリタよりは早いものの、実行バイナリを作るC/C++よりは遅い、そうした評価です。ここではサン・マイクロシステムズのVMにJIT(ジャストインタイムコンパイラ)が乗ったことが挙げられていますが、JIT自体は別の会社が先駆けて開発していたことは記しておきたいと思います。

JITコンパイラは実行時にJavaのバイトコードを環境のネイティブコードコンパイルして動かす技術です。この後、JITコンパイラ、動的再コンパイル技術、世代別ガベージコレクションを備えたHotspotといった様にJavaVMは進化していきます。現代では実行時の最適化が進み、大きなスケールで見た場合、Javaの実行速度はC/C++での実装と比べてそれほど遅れるものではありません。遅くても倍の時間は掛からない程度といったところでしょうか。

あとは特記すべきはコレクションフレームワークです。皆が多用しているであろうjava.util.Listやjava.util.Mapといったライブラリが整備されたのがこの時なのです。それ以前はjava.util.Vectorやjava.util.Hachtableというクラスが可変長配列の機能を一手に担っていました。今ではVectorやHashtableは使うべきではありません。

Microsoft 離反

Java の開発はSun Microsystems が主導していたけども、すべてがSunのものだったというわけでもなく。Javaには多くの会社が出資していてその中のひとつMicrosoftだったわけですね。

Microsoft の Visual J++ では delegate とか独自機能拡張もありましたけど、裁判で問題になったのは J++ でコンパイルしたclassファイルMicrosoftのVMでしか動かないという部分ですね(他社製のVMで動くclassファイルを作ることもできる)。classファイルがどこのVMでも動くの大事だろ、"Write once, run anywhere"だろ、お前何してくれてんの!と喧嘩になったわけです。当時のMicrosoftブラウザまわりでも独自拡張がやりたい放題、標準規格?なにそれ美味しいの?みたいなスタンスをあちこちで見せていたものです。

結局、この事件でMicrosoftのJavaはバージョン1.1相当でストップ。好き勝手にやれないなら独自に言語作るわーとばかりに.NET フレームワークと C# といった方向に舵を取ります。

JavaがPC上でのUI開発の主力になろうとした勢いはここで潰えます。

Java EE

Java SE とは別にこの時代に Java EEリリースされていることは特記しておきたいですね。これ以後、それまでのCGIに取って代わって、JavaはWebサービスの開発のプラットフォームとして多用されるようになります。

2000年あたりからはJavaはGUI開発というよりは、Webサービスの開発が主流という流れになっていきます。インターネットサービスが非常に発達していった時代、背後ではとてつもない量のJavaのプログラムが支えていたわけです。ただまあ、こうした産業利用は一般的ユーザーの目にはあまり入らないわけです。一般人からすればJavaといえばJava Appletみたいなイメージはずっと残っていたでしょうが、実体としてはJavaといえばServletという時代になっていたわけです。

企業で用いられる社内システムにもServletは多く採用されました。

理由はいろいろ挙げれると思うのですが

というのが大きな理由だろうと思います。JSPというテンプレートエンジンを用いてHTMLを整形してWebページを作り出す、というアーキテクチャある意味では便利で簡単でした。

もっともHTMLの表現力に足を引きずられるため、GUIの機能性という点では後退したわけなのですが。それでもメリットが大きいと判断されたのでしょう。というか、まともにGUIを組めるプログラマがほとんどいないから、GUIのシステム開発がなかなか成功しないってのもあったんでしょうけどね。

iアプリ Javaアプリ EZアプリ

2000年あたりというと携帯電話の普及も取り上げなければなりません。現代のスマホガラケーに比べれば非常に機能は貧弱で、まさに携帯「電話」でした。要するに電話とメールぐらいしかできなかったんですね。

そこにdocomoiアプリJフォン(ボーダフォンを経て現ソフトバンク)のJavaアプリ、auのEZアプリという携帯電話上でちょっとしたアプリが動くよ!というのが乗るようになってきたんです。これがJavaを組込み用途にコンパクトにしたJava MEというものが土台となっていて(正確にはiアプリちょっと違う)Servletと並ぶJava言語の大きなもうひとつの領域となっていました。

iアプリは当初は容量が10k byteまでといった制約があり、容量制限が非常に厳しかったのですが、新機種が出るたびに容量は緩和されていきました。

docomoiアプリ含めiモードによって一世を風靡します。こうした土台を作ると、その上で商売をしたい人がたくさんやってきて、勝手にコンテンツを作ってくれる。docomoはそれらから手数料を取るので労せずして大金を稼げるというわけです。賭場の胴元というわけです。

この賭場が、将来にAppleiPhone, GoogleAndroidに荒らされることになります。docomoがなかなかiPhoneを出さなかったのもiモードという自前の賭場を失うことを良しとしなかったためです。金づるを失ったdocomoSamsungと組んで独自の携帯向けOSであるTizenの開発に乗り出します。そんなTizenですが鳴かず飛ばず。噂ではインドあたりではリリースされたとか、なんとか。

RIA時代

話を2001年に戻しましょう。

Microsoft離反でGUIのプラットフォームとしてのJavaというものは存在感を弱めていました。この分野の復権に寄与したのはJava 1.4 (2002年2月6日)で導入されたJava Web Startです。

Java Appletブラウザ埋め込みで動作したのに対し、Java Web Startではブラウザから起動しつつも独立したアプリとして起動するのです。

Webシステムが企業の社内システムに採用された話は先に述べたとおりですが、やはりWebシステムのGUIというのはHTMLに引きずられて貧弱だったんですね。

端的に言えば入力値が数字かどうか?みたいなチェックがなかなか難しい。HTML上でJavaScriptでやるわけなんですが、なかなか気持よく入力できるような感じにはならなかったんですね。

また、Ajaxによるブラウザのページ遷移を伴わない通信というのが出てきたのも2005年ぐらいなので、入力値に対してサーバ問い合わせするようなことはできなかった。当時だと一旦画面遷移させないとできなかったわけです。

こうした事情から、クライアントサイド、要するにPC側でもっとリッチなUIが使いたい!という要望があったわけです。Webシステム使いにくい!という不満の噴出と言ってもいい。そこで出てきたのがRIA (Rich Internet Applications)というわけです。

Javaは1.0時代のAppletからそうですが、ネットワークを介して別のPCにプログラムを送り込み、そこで動作させるという能力を持っていました。それこそまさにRIAに求められる機能性だったわけですね。

RIAの代表とされるのは

あたりです。三つ巴の戦い、どこに軍配が上がるのか!?と注目されましたが、勝利したのはHTML / JavaScriptでした。

Google MAP で注目を浴びたAjax技術、それまでブラウザでは不可能と思われていた高級なGUIをHTML / JavaScriptで実現させました。もうやめて欲しいですよね。せっかく脱ブラウザの流れが来たと思ったのにまたWebシステムに逆戻りですよ。

RIAが失速した理由として考慮して置かなければいけないのはスマートフォンの台頭です。RIAでは端末を選ばずどこでも同じアプリが動かせる点がポイントひとつでしたが、スマートフォンではそうは行かない。"Write once, run anywhere"を破壊したのはスマートフォンだったというわけです。

しかし、先日インストールなしでアプリを実行するAndroid Instant Appsが発表されたりしまして、結局RIAの思想といいますか、要求というのは今でも息づいているのだなと思った次第です。

Java 5 (2004年9月30日)

1.3 / 1.4 では機能追加はあっても言語構文が大きく変わることはありませんでした。大きく変わったのはJava 5です。この時からバージョニングが変わって1.5ではなく5と表記されるようになりました。

Java5の特徴はなんといってもジェネリクス。それまでjava.util.Listにデータを出し入れするのにはキャストが必須だったわけですが、ようやくキャストから開放され型の安全度がぐっと高まりました。その他に以下のような変更があります。

言語としては随分変わっったわけですが、もうかれこれ10年以上前のことですからこれらの機能が「Java5から導入された」という知識は今となってはあまり必要とされません。これらの機能が使えないJava 1.4で開発をする事案が殆ど無いからです。0ではないのが悲しいところではありますが。

その後

Java 6 (2006年12月11日)がリリースされた後、Java 7 (2011年7月28日) が出るまでJavaは停滞してしまいます。その間にSun Microsystemsという会社がなくなってしまったためです。

Sun Microsystems の経営状況が悪化しており、ついに身売りをすることになりました。身売り先はIBMともGoogleとも噂されましたが結局2010年1月27日オラクル吸収合併されました。

Javaの停滞中にはJava VM上で動く非Java言語も台頭してきました。Scalaなどですね。

やや戻って2007年Androidが発表されます。Androidの開発言語にはJavaが採用されていますが、実行環境はJava VMではなく、ライセンス的な事情でJava(TM)は名乗らない微妙な位置関係にあります。

Java 5 以降で大きく言語仕様に手が入るのは Java 8 (2014年3月18日)です。並列処理を行うためのStream APIと、そのために簡易に関数を定義するためのラムダ式が導入された点が大きいですね。日付APIも刷新されました。

このように、Javaは1.1の黄金時代から今に至るまで利用ジャンルを転戦しながら産業の土台となって支えてきた歴史があります。ジャンルの趨勢により浮き沈みもあります。今後についても決して楽観視はできないでしょう。Javaを学ぶことはプログラミングを学ぶステップとしては意義はあると思いますが、Javaを学べばゴールというわけではありません。プログラム言語次世代へと移りつつあります。業界動向には注視していきましょう。

2016-01-20

Safari拡張機能で document.write を書き換える

こいつをブロックしたい→http://partsa.nikkei.com/parts/js/ab/rtcontrol_rcmd002_02.js

Safari拡張Chromeのものとほぼ同等なので、Chrome拡張での方法検索

Chrome拡張でページのグローバル変数アクセスしたい https://note.mu/kkotaro0111/n/nd527d31957a7

ビンゴ

location.href = 'javascript: document._write = document.write;' +
	'document.write = function() {};' +
	'void 0;';

2015-09-12

冠詞theに関する回答翻訳

注1 your other two sentences = the other two sentences である

注2 主語 the reasons it wouldn't

   動詞 might just create

   目的語 more confusion

注3 この一文の正しい解釈が今の自分にはわからない。   

   ただ、to indicate~は、the meaningを修飾するものじゃなくて、change the meaningした「結果」を示す不定詞だと思う。

   the meaningは、「"all over." 」を受けているはず。

質問ページへのリンク

https://answers.yahoo.com/question/index?qid=20150904151357AAZyRwY

Best Answer: Short answer: you don't need it because you have the word "all."

簡単な答え:既に「all」という単語付属しているので、定冠詞theは必要ない。

All of these sentences are correct as they are written without the addition of the definite article.

冠詞が追加されない限り、これら全ての文章は正しい。

Adding "the" wouldn't be incorrect, but it is unnecessary and sounds a very awkward.

theを付けることが間違いとは言えない。けれど、不必要な上にとても奇妙だ。

The purpose of the definite article is to identify a specific example of whatever you're talking about.

冠詞役割は、あらゆる話題に上った事柄のうち、特定のものを指し示すことである

In all of your examples, there is no specific example being pointed to, because you're talking about all of them.

全ての例文で、特定のものが指し示されていない。なぜなら、特定のものではなく、「全て」に言及しているからだ。

"The" could replace "all" in some cases.

「the」は、「all」に入れ替えられる場合もある。

"The 26 people on board the plane were killed," is correct and means the same thing as "all 26 people."

「The 26 people」は正しく、"all 26 people." と同じ意味になる。

It wouldn't work that way with your other two sentences 注1

同じ理屈は、他の2つの例文には当てはまらない。

, and the reasons it wouldn't might just create more confusion. 注2

当てはまらない理由は、更なる混乱を招くだけかもしれない。

For #3, you could write "all of the chapters." In #1, "all of the" would make it sound like there may have been more than 26 people.

③では、"all of the chapters."と述べてもよい。①の"all of the"は、その26人以外にも人がいたかのように聞こえる。

It doesn't work in #2 because "all corners" is sort of a figure of speech that just means "all over."

②ではそういう風には解釈されない。"all corners"は、"all over." (そこいら中, いたるところ.)の意味を持っているからだ。

To say "all of the corners" changes the meaning to indicate that you're specifically talking about the corners,

and only the corners, which Africa doesn't literally have. 注3

In #1, If you were talking about specific ones out of the entire group, you would need to use "the."

①では、全体の中から特定人達言及するなら、theを使う必要がある。

For example, if only some of the people were killed on the plane and some were not,

船上のある人達が死亡し、またある人達は生き残ったとすると、

you could use "the" to talk about the ones who were killed.

死亡した人達に、「the」を用いることができる。

"The 26 people who were killed on the plane were all sitting on the left side.

左側に座っていた(その特定の)26人は死亡した。

Everyone seated on the right side survived."

右側に座っていた人達全員は助かった。

In #2, If you were talking about specific corners, you could say,

②では、特定地方言及しているなら、こう言える。

"the death trail touched the northern corners of Africa."

死の影が、アフリカ北部を覆った。

#3) "There are summaries at the beginning of the first three chapters"

最初の3チャプターには、要約がついている。

2015-02-12

メンバ名を見直す前にスコープを見直すべきだ!!!

例えば、こういうクラスがあったとする

/**
** ゲームキャラクラス
**/
class Character {

    /**
    * 歩行の状態にする。
    * @param $place 歩行する場所。
    */
    private function _walk($place){
        $this->_state = Const::STATE_WALK;
        $this->_place = $place;
    }

    /**
    * 山を歩いている状態にする。
    */
    public function walkInMountain(){
        $this->_walk(Const::PLACE_MOUNTAIN);
    }
}

「walkIn~~ってメソッド名長くね?」

「良く使うメソッドから、あんまり書くと、ソースが読みづらくなるんだよね。」

という突っ込みが入ったとする。

対応として、

walkInMountain → walkInMt

とかやってもいいけど、逆に分かりづらくなる。mtってなんやねんと。

そういうときは、メンバのスコープを見直すべきだ。

/**
** 歩行クラス
**/
class Walk {

    private $_chara = null;

    public function __construct($chara){
        $this->_chara = $chara;
    }

    /**
    * 歩行の状態にする。
    * @param $place 歩行する場所。
    */
    private function _walk($place){
        $this->_chara->state = Const::STATE_WALK;
        $this->_chara->place = $place;
    }

    /**
    * 山を歩いている状態にする。
    */
    public function mountain(){
        $this->_walk(Const::PLACE_MOUNTAIN);
    }
}

とすれば、呼び出し元から

$chara = new Character();
$chara->walk->mountain();

みたいに、

主語->動作->述語

という構文で記述できるので、すっきりすると思う。

before)
$chara->walkInMountain();

after)
$chara->walk->mountain();


アレ?名前の長さが変わらない!!!

でも、やりたいことはそういうことだ!

つたわれ!俺の思い!

他にも、メソッドスコープでいくと

int write()
{
    int numberWritable = 0;
     :
}

こんなのは

int write()
{
    int number = 0;
     :
}

にしてしまえ!

writeメソッドにあるんだから、writableだろう!

みたいな。

2014-07-27

死刑囚みたいな気持ちになったので詠んでみました10

会社

被害を言っても変わらない

頭が変だと思われるだけ


バカにして

実績吸い上げ

辞めさせた

仕事をしたいが

手が動かない


いじめられほとんど仕事していない

IT学んだ意味あるのかな


だいたいの会社

評価が適当

誰か言う人いてもいいのに


この会社

いくら実績あげたって

評価適当

悪化だ、うつ病


世間では

スキル・成長

言うけれど

稼ぎとあまり関係がない


採用だ良かった

上京してみると

いじめにあって辞めさせられる


ホリエモン

ITやったと言うけれど

どこにそんなに仕事があるの?


いじめクビ

嫌だからクビで

いじめクビ

会社勤めの何がいいんだ?


緑が技術者いないと言うならば

なんで流行るのクラウドソース


仕事ならパワハラなければ辞めてない

上司が口真似 仕事邪魔


お金ない

アプリできても

仕事ない

親が病んだら

暮らしてけない


世間では人材不足と言うけれど

要は教育能力不足


SEは結局会社の手先です

クビになるやつ

いじめて暮らす


小飼弾

Shut the fuck up and write some code

あなた収入

プログラムなの?

死刑囚みたいな気持ちになったので詠んでみました9

バカにして

実績吸い上げ

辞めさせた

仕事をしたいが

手が動かない


いじめられほとんど仕事していない

IT学んだ意味あるのかな


だいたいの会社

評価が適当

誰か言う人いてもいいのに


この会社

いくら実績あげたって

評価適当

悪化だ、うつ病


世間では

スキル・成長

言うけれど

稼ぎとあまり関係がない


採用だ良かった

上京してみると

いじめにあって辞めさせられる


ホリエモン

ITやったと言うけれど

どこにそんなに仕事があるの?


いじめクビ

嫌だからクビで

いじめクビ

会社勤めの何がいいんだ?


緑が技術者いないと言うならば

なんで流行るのクラウドソース


仕事ならパワハラなければ辞めてない

上司が口真似 仕事邪魔


お金ない

アプリできても

仕事ない

親が病んだら

暮らしてけない


世間では人材不足と言うけれど

要は教育能力不足


SEは結局会社の手先です

クビになるやつ

いじめて暮らす


小飼弾

Shut the fuck up and write some code

あなた収入

プログラムなの?

2014-06-30

死刑囚みたいな気持ちになったので詠んでみました8

いじめられほとんど仕事していない

IT学んだ意味あるのかな


だいたいの会社

評価が適当

誰か言う人いてもいいのに


この会社

いくら実績あげたって

評価適当

悪化だ、うつ病


世間では

スキル・成長

言うけれど

稼ぎとあまり関係がない


採用だ良かった

上京してみると

いじめにあって辞めさせられる


ホリエモン

ITやったと言うけれど

どこにそんなに仕事があるの?


いじめクビ

嫌だからクビで

いじめクビ

会社勤めの何がいいんだ?


緑が技術者いないと言うならば

なんで流行るのクラウドソース


仕事ならパワハラなければ辞めてない

上司が口真似 仕事邪魔


お金ない

アプリできても

仕事ない

親が病んだら

暮らしてけない


世間では人材不足と言うけれど

要は教育能力不足


SEは結局会社の手先です

クビになるやつ

いじめて暮らす


小飼弾

Shut the fuck up and write some code

あなた収入

プログラムなの?

2014-05-29

WinInetを使ってVBAでPOSTする

Option Explicit

Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const INTERNET_SERVICE_HTTP = 3
Private Const INTERNET_DEFAULT_HTTP_PORT = 80
Private Const INTERNET_FLAG_RELOAD = &H80000000

Private Declare Function InternetOpenA Lib "wininet.dll" (ByVal sCallerName As String, ByVal dwAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal dwFlags As Long) As Long
Private Declare Function InternetConnectA Lib "wininet.dll" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nProxyPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal dwService As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByRef sBuffer As Byte, ByVal lNumberBytesToRead As Long, ByRef lNumberOfBytesRead As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInternetHandle As Long) As Long
Private Declare Function HttpOpenRequestA Lib "wininet.dll" (ByVal hConnect As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal sAcceptTypes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Declare Function HttpSendRequestA Lib "wininet.dll" (ByVal hRequest As Long, ByVal sHeaders As String, ByVal dwHeadersLength As Long, ByVal lpOptional As String, ByVal dwOptionalLength As Long) As Long

Private Function submitPost(ByRef host, ByRef url_path, ByRef sendString) As Variant

  Dim dataArray() As Byte, dataPosition, dataSize

 'WinInet初期化
  Dim hInternet
  hInternet = InternetOpenA(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  If hInternet = 0 Then
    submitPost = dataArray
    Exit Function
  End If

 'サーバ接続
  Dim hConnect
  hConnect = InternetConnectA(hInternet, host, INTERNET_DEFAULT_HTTP_PORT, vbNullString, vbNullString, INTERNET_SERVICE_HTTP, 0, 0)
  If hConnect = 0 Then
    InternetCloseHandle hInternet
    submitPost = dataArray
    Exit Function
  End If

 'リクエスト初期化
  Dim tmpURL As String * 255
  tmpURL = url_path
  Dim hRequest
  hRequest = HttpOpenRequestA(hConnect, "POST", tmpURL, "HTTP/1.1", vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
  If hRequest = 0 Then
    InternetCloseHandle hConnect
    InternetCloseHandle hInternet
    submitPost = dataArray
    Exit Function
  End If

 'リクエストを送信
  Const strHeader = "Content-Type: application/x-www-form-urlencoded"
  HttpSendRequestA hRequest, strHeader, Len(strHeader), sendString, Len(sendString)

 'データ取得
  Dim readResult, tmpArray(1023) As Byte, tmpPosition, tmpSize
  dataPosition = 0
  dataSize = 0
  Do
    tmpSize = 0
    Erase tmpArray
    readResult = InternetReadFile(hRequest, tmpArray(0), 1024, tmpSize)
    If Not readResult = 1 Or tmpSize = 0 Then
      Exit Do
    End If

    dataSize = dataSize + tmpSize
    ReDim Preserve dataArray(dataSize - 1)
    For tmpPosition = 0 To tmpSize - 1 Step 1
      dataArray(dataPosition) = tmpArray(tmpPosition)
      dataPosition = dataPosition + 1
    Next
  Loop

 'クローズ処理
  InternetCloseHandle hRequest
  InternetCloseHandle hConnect
  InternetCloseHandle hInternet

  submitPost = dataArray

End Function

Public Function downloadFilePost(ByRef targetURL, ByVal sendArray, ByRef savePath) As Boolean

 'URLの分解
  Dim startE, endE, host, url_path
  startE = InStr(1, targetURL, "//") + 2
  endE = InStr(startE, targetURL, "/")
  endE = IIf(startE > endE, Len(targetURL) + 1, endE)
  host = Mid(targetURL, startE, endE - startE)
  url_path = Mid(targetURL, endE)

 'ポストデータエンコード
  Dim jscript
  With CreateObject("ScriptControl")
    .Language = "JScript"
    Set jscript = .CodeObject
  End With
  Dim ix, sendBuffer
  For ix = 0 To UBound(sendArray) Step 1
    sendBuffer = Split(sendArray(ix), "=")
    sendArray(ix) = sendBuffer(0) & "=" & jscript.encodeURIComponent(sendBuffer(1))
  Next
  Set jscript = Nothing

  Dim data
  data = submitPost(host, url_path, Join(sendArray, "&"))

  If LenB(data) <= 0 Then
    downloadFilePost = False
    Exit Function
  End If

 'バイナリで書き込み
  With CreateObject("ADODB.Stream")
    .Type = 1
    .Open
    .Write data
    .SaveToFile savePath, 2
    .Close
  End With

  downloadFilePost = True

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