なんだっけ、面白い式があったな。
その人が財産があるかないか・・・
現在の年収x0.6x年齢 が現在の貯蓄額より多いか否かみたいな。
0.4だったかなー。
年収が300万だろうと、貯蓄率がうわまわればコントロールできてている人なのでリッチだし、
みたいな。
何人かが参加可否の返答+個人的の休日予定を全員に対して返信してきた。
その個人予定に対してまた全員に返信。このあたりから受信フォルダがこればっかになり始める。
正直てめぇの予定なんてどーでもいいよと思いつつ、イラっとまではこない。
が、一人が「某バースト案件からやっと抜けるから海外です」みたいなことを書いたのに対し、
「A●社ですか?おつw」「●B社だよねw」みたいなのが全員に流れた。
この仮にAB社案件は関係者外秘で、うちでやっていること自体が丸秘なんだけれども、酷い燃えようでネコも杓子も投入されているような状況で、
声がかかった人間周辺に話が広まってはいる。
そもそも「全員返信」に丸秘情報をさくっと面白がってかいてしまう習慣はどうなの?と。
うちは所謂一次請け会社で、技術力や業務知見ってよりは、いわゆる保険? 燃えても頓挫せず赤字出してなんとかやりきるみたいな色がある。
そういう会社の人間が、顧客の信頼を落とすような所業はどうなのよ、と。
最初の1人目には個人宛になげたが、続けて別の人間からもひたので全員宛でツッコミを入れた。
ほかにも、ググればわかるようなことを何十人にすばっとだしたり、お前らなんなの?バイト君か?
というかんじで、イラッとすることが多い。
こういうツッコミをしたとき周囲からは、「正しいけど、そんなに怒ること?」という反応が多い。
忙しい現場だからこそ、習慣や癖という無意識下で働く行動はしっかりすべきだと思うのだが、自分が神経質すぎなんだろうか?
それとももうこんなふうに業務中に個人メール送ってくる仲良しグループはぶっちするべきってこと?
とか書いてたらツッコミいれた奴から電話きた。ツッコミありがとうと。
そうなんだよな、ボケた本人は真摯に受け止めて(くれてなくてもそういうフリは)くれるんだよな。
いまさらだがFizzBuzz。
1から100まで、3の倍数5の倍数云々って、全部定数の計算じゃね?
というところに気付き、自称メタプログラマー(略してメタグラマー)俺の血が騒いだ。
定数計算なら、それは実行時ではなくコンパイル時に行なわれるべきだ……。
#include <iostream> const int FIZZ_NUM = 3; const int BUZZ_NUM = 5; const int BEGIN_NUM = 1; const int END_NUM = 101; template<int N> struct Fizz { enum {PRINT = 0, NEXT = N + 1}; static void print() {} }; template<int N> struct Buzz { enum {PRINT = 0, NEXT = N + 1}; static void print() {} }; template<int N, bool ForB> struct Number {static void print() {std::cout << N;}}; template<> struct Fizz<FIZZ_NUM> { enum {PRINT = 1, NEXT = 1}; static void print() {std::cout << "Fizz";} }; template<> struct Buzz<BUZZ_NUM> { enum {PRINT = 1, NEXT = 1}; static void print() {std::cout << "Buzz";} }; template<int N> struct Number<N, true> {static void print() {}}; template<int N, int F, int B> struct FizzBuzz { static void print() { typedef ::Fizz<F> Fizz; typedef ::Buzz<B> Buzz; Fizz::print(); Buzz::print(); Number<N, Fizz::PRINT || Buzz::PRINT>::print(); std::cout << std::endl; FizzBuzz<N + 1, Fizz::NEXT, Buzz::NEXT>::print(); } }; template<int F, int B> struct FizzBuzz<END_NUM, F, B> {static void print() {}}; int main(int argc, char **argv) { FizzBuzz<BEGIN_NUM, 1, 1>::print(); return 0; }
ifなし%なしループ系なし、しかも実行時オーバーヘッドなし!(多分)
ああ、久しぶりにC++を触ったけど、やっぱC++のテンプレートってダメダメだな。20世紀の遺物といわざるを得ない。
君がもし21世紀のモテ系イケメンメタグラマーなら、21世紀のプログラミング言語、D言語を使うべきだ!
驚くべきことに、D言語はコンパイル時に関数が実行でき、その結果をソースコードとして取り込める!
ただし実行できるのは簡単な関数だけだけど……。
import std.stdio; // これでFizzBuzzを全部出力するコードを作るぜ! string makeFizzBuzzCode() { string code; for(int i = 1; i <= 100; ++i) { // 効率? コンパイル時にそんな配慮は要らん! if(i % 3 == 0 && i % 5 == 0) { code ~= "writefln(\"FizzBuzz\");\n"; } else if(i % 3 == 0) { code ~= "writefln(\"Fizz\");\n"; } else if(i % 5 == 0) { code ~= "writefln(\"Buzz\");\n"; } else { code ~= "writefln(" ~ static_itoa(i) ~ ");\n"; } } return code; } int main(string[] args) { // おまけで生成されたコードも見せるよ。 pragma(msg, makeFizzBuzzCode()); // 生成したコードを埋め込む。コピペみたいな感覚。 mixin(makeFizzBuzzCode); return 0; } // 以下ユーティリティ。このぐらい標準で欲しいな……。 /// 整数→文字列変換(コンパイル時) string static_itoa(int n) { if(n == 0) { return "0"; } // 10で割りながら余りを文字にして追加。桁が逆転した文字列になる。 string s; for(; n; n /= 10) { s ~= ("0123456789")[n % 10]; } // 桁位置を正常にする。相変わらず効率無視。 return static_reverse(s); } /// 配列リバース(コンパイル時) /// 実行時ならarray.reverseが使えるんだけどね……。 T[] static_reverse(T)(T[] s) { T[] result; foreach_reverse(c; s) { result ~= c; } return result; } // 心配なので静的ユニットテスト(笑) unittest { static assert(static_itoa(0) == "0"); static assert(static_itoa(10) == "10"); static assert(static_itoa(999) == "999"); static assert(static_itoa(9999) == "9999"); static assert(static_itoa(12345) == "12345"); static assert(static_itoa(314159265) == "314159265"); }
コンパイル結果
$ dmd -unittest fizz_buzz.d writefln(1); writefln(2); writefln("Fizz"); writefln(4); writefln("Buzz"); writefln("Fizz"); writefln(7); writefln(8); writefln("Fizz"); writefln("Buzz"); writefln(11); writefln("Fizz"); writefln(13); writefln(14); writefln("FizzBu(ry
出力結果は略。
さすがD言語!C++やJavaやC#にできない事を平然とやってのけるッ
そこにシビれる!あこがれるゥ!
というか、
writefln(1); writefln(2); writefln("Fizz"); writefln(4);
もうwritefln(出力関数)要らなくね?
修正。
// これでFizzBuzzを全部出力するぜ! string makeFizzBuzzCode() { string code; for(int i = 1; i <= 100; ++i) { // 効率? コンパイル時にそんな配慮は要らん! if(i % 3 == 0 && i % 5 == 0) { code ~= "FizzBuzz\n"; } else if(i % 3 == 0) { code ~= "Fizz\n"; } else if(i % 5 == 0) { code ~= "Buzz\n"; } else { code ~= static_itoa(i) ~ "\n"; } } return code; } int main(string[] args) { // もうコンパイル時のメッセージしか出さない。(笑) pragma(msg, makeFizzBuzzCode()); return 0; }
コンパイル結果。
$ dmd -unittest fizz_buzz.d 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBu(ry
実行するまでもなく結果が出力された。つまり実行時間ゼロ、ということは……
世 界 最 速
みんな使おうD言語!
http://www.kmonos.net/alang/d/1.0/index.html(1.0。こっちの方が安定してる?)
そこを勘違いするやつが出てきたら、その都度訂正すればいいわけで、それは全く別のフェーズだと思うわけだよ。
勘違いなんて絶対させない!一分のスキも作らない!みたいな感じで始めからゴリゴリ細かい話をやってたら、
いつまでたっても全体像なんて理解できない。効率が悪すぎる。
(いや俺は理解できるね、なんて、既にわかってる奴に言われても何の説得力も無い)
それって要は内輪に閉じこもって、人に理解させる気なんて全くないって言ってるのと近いよね。
相手に理解させる、って目的の上では、始めに詳細に立ち入ったところであまり意味はないんだよ。
そういう意味で「細かいやつだ」って言ったんだけどね。
おおなるほど!これなら走れそうだ。
遠距離の恋人が居て、毎晩SkypeやらIRCやら使ってるんです。
このところ向こうの帰りが遅くて、自分が寝る直前とかなんだ。
浮気してても確かめようが無いから、気にしないようにしてます。
どうしようもないからな、ハハハ。
週末くらい会えるといいのに。
横だが、牛は球体だと話していると、本当に牛が球体だと思い込む人が出てくるのでイヤだと元増田は言っているのでは?
一般的な話題では、牛の形体を理解している人が多いため問題にはならない(同一視する人が出ない)が、サブプライムローンのように実態を理解している人が少ない状態で「牛は球体だ」と言っていると、本当に球体そのものの形をしていると思い込む人が出るってことでしょ。
ギークだかハッカーだかプログラマーだか知らんけど、はてな村界隈で、なんか楽しそうにワイワイやってる人達いるじゃん?若者達が集まって楽しそうだ。ちょっとうらやましい。そんでオフとかも楽しそうで旨そうな酒飲んでるし、俺には理解できないようなプログラムの話とか、webサービスの話とかでワイワイやってる。オフレポとかつい読んでしまう。ほとんど意味が理解できないけど楽しそうなのは解る。将来とか未来の話とかしちゃって意味は解らないんだけどワクワク感だけはとても伝わってくる。これが若さなのかな。
楽しそうなワクワク感を感じ取れるから、そういうエントリを読むのはとても楽しい(繰り返すが意味はほとんど解っていない)
ただ1つ気になる事がある。プログラマー万能説とか最強説とかプログラマーでなければ人に在らずというような文脈をよく見かける。それと優秀なプログラマーは平凡プログラマーのウン倍、ウン十倍の能力があるのだ。といったような記述。
まあそれだけ自信があるとか、期待をしている所があるんだろうけど、仮にそれが事実だったとすると、ちょっとそれは大変な事じゃないか?とオジサンは心配になってしまうのだ。
というのも、自分だけでは無いと思うんだけど、webサービスにしても、Freeのアプリとかユーティリティなどにしても、その作者って日本人ではない事がとても多いように思うのだ。単純にBIOSにしてもOSにしてもドライバにしても作者は日本人では無い。もちろん個人個人で環境は違うだろうけど、日本人が作者であるものってどれだけ使われているのだろうか。
何が言いたいかっていうと、もう日本人が追いつく事は出来ないんじゃないかって事。もちろん、秀才や天才などはそんなものは全く関係なく羽ばたいて伸びていくんだけど、平均クラスやちょっと賢い程度では、もう勝負にならない。自分や知人が使ってるプログラムやwebサービスを考えれば日本人は活躍していない。そして日本語を英語に変換して使われているプログラムなんて果たしてあるだろうかと考えるとなんだか絶望的ですらある。これから日本人は減っていく。もう日本人プラグラマーなんて少しだけいればいい。そういう世の中で活躍しようと頑張っている若者を見るのはなんだか少しツライ。
なんか今後30年間に起こる可能性は70%らしいので、日々の起こる確率は等しいまま10,950日経過するものとして計算してみた。
...と書いてから気付いたが、うるう年を考えてなかった。
さきほどの引用部分を書いた増田だが、それは当然含まれるので親に対しても考えるべきってことなんだが…。
親が頭が悪いと一概に言うが、環境と遺伝(この遺伝ってのもくせ者だが)が原因としてあるだろうから、と発言してるわけで、それが子供に対してはいきなり「子供が頭が悪いのは遺伝が原因だ!」とか書いた覚えはさらさらない。
増田なんか変な読み方するね。
下地にあるものと、その上物は別だね、という理解だけど。
下地にあるものは、ダイエーもゆとりローンもサブプライム共通点はあるけど、意図されたにしろしなかったにしろ、結果生じた現象から逆方向に共通点を見出すのはどうだろか、というかんじ。
それは申し訳ないことをした。ごめんよ。
http://anond.hatelabo.jp/20081030192448
名前書けば受かるところじゃ満足しないんでしょ。
の増田と同一の考えをお持ちの人かと思ったもので。
思ってないけど。というか、そういうつっこみをしようかと思ったけどめんどくさかったので。
あーーーーーーーーーーーー!!!
さっそく「ゆとり返済」と「サブプライムローン」同一視してる!!!
都合よく同じ部分だけ抽出すると、知識がない人は知らない部分まで全部同じと思っちゃうんだよ。
だからイヤなんだよ…。
志村けんががっかりしていたらどうしよう。
昨日も一昨日も志村けんのお話を書いていたのに、今日は少し遅くなっちゃったから。
ちょっとここを読むのが楽しみになってきた志村けんが、なんだ今日は俺のお話はないのかよ
期待して早く帰ってきたのに、なんて少しがっかりしちゃう。
もしも毎日俺のこと書いてくれたら嬉しいのに、最近はお笑いのレギュラーないからちょっと楽しいのに
チンパンジーなんて本当は嫌いなのに、スーパーモンキーズが良かったのに、
だめだそんなこと言っちゃいけない、ブログに書いたら炎上しちゃう。
パブリックな志村けんとして言いたいことを我慢しなきゃいけない辛さ。
公人としての志村けんってなんなんだ。ただのお笑い芸人でいいんだ。
志村けんとしてはあんまりこういういじられ方はないからちょっと新鮮に感じているかもしれないし
本当に楽しみに思ってくれてるかもしれない。
でも絶対読んでないよね。わかってる。
バブルが崩壊した後というか直後に、地価があがることを前提にしたローンというのもまあすごいな。
収入もあるわけだから貯蓄が1千万しかなくてもそれほど不安じゃないだろ。
どうかな?
環境を持ち出すのなら、『親の所得水準と学力には関連があると言われていること』、そしてもう一つ『学歴と所得には相関があると言われていること』。これらが曲者になってくると思うなあ。この二つの前提に従うなら、『親の学歴(低)ならば、親の所得(低)』である可能性が高く、かつ『親の学歴(低)であるならば、その収入は低く、子の学力を期待できる可能性もまた低い』ということになる。
さて、低所得層出身者が、将来の自らの所得を高めるためにはより高い学歴を手に入れなければならず、高い学歴を手に入れるためには、なるべく教育の効果が高い高校・大学を選択する必要がある・・・。子供のことを思う親であれば、名前が書けるだけで入れる高校よりかは、コストが余分に掛かるにしても、多少なりとも効果の望める教育を実施してくれそうな高校を選ぶのは非難されるようなことじゃないと思うぜ。それを「身の程知らず」と言って切って捨てるのは、さすがに階級意識がキツすぎるんじゃないかい。こういう発想って、『悪平等』的かな?
低学歴・低所得の親の元に生まれた子供はスタートラインから色々ハンディを背負っているってことは無視すべきではないと思うし、ましてそういう人間が向学心を持つことを否定するような主張は一層バカを増やすだけで、社会全体で見ると損になるのではないかしら。