[A version of this piece first appeared in TechCrunch’s robotics newsletter, Actuator. Subscribe here.] Earlier this month, Google’s DeepMind team debuted Open X-Embodiment, a database of robotic
if(param==0 && 判定(param2) || !param3){ //したいこと } みたいに3つぐらい条件がある場合、頭がパンクしそうになる。 この時こう考えている。 1:したいことをする条件は 2:paramが0 3:かつ 4:判定関数でparam2の条件を返して、true 5:またはparam3がfalseのときがtrueだから 6:trueだとだめなんだよね。falseが正しいんだ。でもfalseは偽なのに正? 8:あれ、何したいんだっけ。まぁいいや、とりあえず実行してエラーなら直そう。 7:実行。 8:あれ?なんか違う。何がおかしいんだ 1へ戻る。 これを3,4回繰り返してウアアアアアアアアアアアってなってしまう。 誰か助けて
中高生向けのプログラミング教育事業を手がけるライフイズテックは9月12日、総額約7億円の資金を調達したことを発表した。出資したのは、伊藤忠テクノロジーベンチャーズ、ジャフコ、電通デジタル・ホールディングス、ベクトル、Mistletoe、KSK Angel Fundなど。今回の資金調達を含め、累計の資金調達額は約10億円となる。 なお、出資したKSK Angel Fundは、ACミラン所属・日本代表プロサッカー選手で起業家・教育者でもある本田圭佑氏さんが「次世代に少しでもより平和で明るい未来を残す」ことを目的に立ち上げた投資ファンドで、ライフイズテックは第1号投資先になるという。 ライフイズテックは、2011年から中学生・高校生向けにICTやプログラミングを学ぶキャンプやスクールを実施しており、これまでに累計2万人以上の学生が参加しているという。また、シンガポール、オーストラリアでもプログラ
「よ~Bro、おまえはラクでいいなあ。俺なんか週4700時間労働でモルドール(LORの闇の国)にねじ回し1本でトンネル掘ってきたとこだぜ~」 ラップトップより重いもの週2回以上持ち上げる肉体労働に就いた友だちはみなこう言って羨ましがる。 言ってることは正しい。モルドールは嫌だ。そりゃキーボード指で叩くよりトンネル掘る方が肉体的には辛いよね、蟻ん子じゃないんだから。でもそれ言うなら自分だってストレス、狂った現場って意味じゃ決して負けてないと思うのだ。 ウェルカム・トゥ・プログラミング。 プログラミング・チームはどこもクレイジーな人々がつくったクレイジーな人々の集まりである エンジニア・チームに入る自分を想像してみて欲しい。期待に胸膨らませて、頭にはアイディアが次から次へと湧いてくる新人君だ。たぶん大学も出たばかりで、世界はクリーンで美しいデザインで成り立ってると思ってる。目的、経済、力、すべ
プログラマの間では昔から、この手法は処理が遅いだとか、無駄が多いだとか、再利用を心がけろだったりとか 様々なやり方で、ソフトウェアをチューンナップして処理速度を上げるためのやりとりが際限なく 繰り返されているけど、だいたいどれもハードウェアの技術革新によって記録は塗り替えられてないかな。 そりゃ、ミドルウェアレベルでは全てのパフォーマンスに影響してくるので、ちまちまとした 改良が加えられるべきなんだけど、ソフトウェアレベルではどうなの? I/Oに引きずられるから、I/Oの処理は最低限に抑えるってのが昔から定説だけど それもSSDの登場で、かなり緩和された感があるし、結局プログラマの努力って ハードウェアの努力には追いつかないし、無駄なのではないかと思ってる。 10年前を支えたプログラム技術で今も生きているものってある? オブジェクト指向とかプログラムのわかりやすさを追求したものは別でね。速
(編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) これはある仕事熱心な若手開発者のほぼ実話です。2004年の後半、この若手開発者は小さな会社で働き始めました。条件は全て彼の望みどおりでした。給料はいいし、扱うのは彼の得意とするプログラミング言語、アプローチの複雑性、モデリングのアーキテキチャでした。 彼にとって今回の会社が初めての職場ではありませんでした。しかし、ここでの最初のプロジェクトは結果的に 問題だらけ に終わりました。当時、この若手開発者は、機能は絶対に変わらないものだと思っていました。しかし、それは間違いでした。機能が変更されるたびに完全なリファクタリングを行わなければなりませんし、バグを引き起こして膨大な時間を無駄にしてしまいます。彼は、テストを書くといった実直な方法も試してみましたが、書いたテストはメンテナンスが必要な上、書くのに時間
これは、冒頭の問いから端を発した、各章のつながりが不明瞭なエッセイ、流行りのミームでいうと技術的ポエム、であり、プログラミングをテーマにしていてもプログラミングの記事ではない。(と一番最後まで書き終わった自分が注釈を入れている) 良いコードとは何か 趣味で4年、本腰を入れたは最後の2年なのだが、それから3年間ほど仕事でプログラムを書いてきた。それで、趣味プログラマと業務プログラマの一番の違いは、業務プログラマが要求されるのが「他人にどれだけ意図を伝えることができるか」ということに尽きると思うようになった。 他人にとって良いコードとは、書いた人の意味が読み解けるコードであると思う。どれだけ書いた本人の自意識の中でかっこいい・よいコードを書いたと思っていて、実際にちょっと紐解けばそのポテンシャルがあったとしても、隣に座っている人間に伝わらなかったら意味が無い。正しくコードレビューが行われるなら
テック系巨大ベンダーが掲げる最新の看板とは、プログラム言語だ。それはまた、効果的な囲い込み戦略とも言える。 スコット・ローゼンバーグが書いているように「戦争では、勝者が歴史の本を書く。テクノロジーの世界では、勝ち組企業はプログラミング言語を書く」のだ。従って今日、マイクロソフトにC#があったように、Hack(フェイスブック)、Go(グーグル)そしてObjective-C/Swift(アップル)が存在する。 これらの言語は、それぞれ異なるアプリケーションを書くのに適した、単なる異なる言語と言うわけではない。いわば巨大ベンダーにとって、デベロッパーを壁で囲まれた庭に閉じ込めておく戦略となっているのだ。これは我々にとって危惧すべきことなのか? オープン、でもプロプライエタリ?そうかもしれないし、そうでないかもしれない。所詮言語による囲い込みは、ある程度デベロッパーを拘束することはできるけれど、じ
誰もが、プログラマになる資質を持っているわけではありません。もちろん、誰でもプログラミングを学ぶことはできますが、プログラム方法を学ぶことと、それを自分のキャリアにすることとは違います。コーディングの才能を持った人でも、職業プログラマには不適格であるということは、間違いなく起こり得ます。奇妙に思われるでしょうが、あなた方が思っている以上に、これは真実なのです。私は、コンピュータサイエンスの学位をとるために10年以上を費やし、その間、これこそが自分の進むべき道だと思っていましたが、結局そうではなかったことに気づきました。それは、プログラミングのワークフローや、それにまつわるさまざまな挑戦を楽しんでいる人を見てわかりました。 プログラマになるということは、コーディング作業をするだけではありません。全体像をよく考えないといけないのです。もし、自分がプログラマに向いているか確信がないのであれば、正
@@ -0,0 +1,37 @@ +http://martinfowler.com/bliki/SacrificialArchitecture.html + + +会議の席であなたは考えている。自分のチームが二年間かけて書いてきたコードのことを。そして決断に至る。いま打てる最善の手は、あのコードをすべて投げ捨てまったく新しいアーキテクチャを再構築することだ。死にゆくコード、それに費やした時間、自分が下し続けてきた判断。この決断は、あなたはどんな気持ちにするだろう? + +多くの人にとって、コードを捨てるのは失敗の証だ。ソフトウェア開発の探索的な性質を考えれば、わからない判断ではないかもしれない。けれど失敗には違いない。 + +ところが、いま書ける最良のコードは二年経ったら捨てるつもりのコードだということはよくある。 + +私たちは長命なソフトウェアとして偉大なコードを思
原文:http://npf.io/2014/10/why-everyone-hates-go/ 酔っぱらった勢いで訳出してるので、違ってたら修正リクエストください。 訳者の1行でわかるサマリ それって、Goのシンプルな言語哲学が、ML系言語好きのアイデンティティを挑発しちゃってるからじゃないの? いや、実際みんなって訳じゃないんだろうけど。最近、なんてGoをみんなそんなに批判的なのかって言うquoraの質問が出たもんで。(わるい、普段はquoraへのリンクを張らないんだけど、それがこの記事のきっかけだからね。)この質問への回答を見るまえにもう、僕には、次みたいなことが書かれていることがわかってた: Goは70年代に立ち往生した言語だ Goは40年間に及ぶプログラミング言語研究の成果を無視してる Goはブルーカラーの凡夫のための言語だ Go使いはJava1.0で仕事しても大丈夫なんだろう。
私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を本文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの
まったく個人的なモチベーションの問題から、前回の最終更新から2年以上が経過してしまい、多くの読者のみなさんにはご心配をおかけいたしました。「プログラミングに関して調べたことや日々感じたことをメモとして残していきたいと思います。」というもともとの原点に立ち返って、あまり気負わずに、また今後も時々更新していけたらと思います。今までこのブログの主なテーマとして、JavaEEやSpringといったような、いわゆる業務開発で使われるような技術を中心としてきたわけですが、最近Springを使ったJavaの開発に(アーキテクトではなく)プログラマーとしてちょっと参加する機会があったので、その時気づいたこと、感じたことを書いてみたいと思います。 さて、皆さんはアーキテクチャやアーキテクトという言葉に対してはどのようなものをイメージするでしょうか。システムのセキュリティを確保するための方式であったり、大量の
魔方陣の解の列挙は並列化しやすそうな問題ですが、ここでの方針では、探索効率を上げるためには条件分岐が不可欠なので、(「数」を求めるだけだとしても)GPGPUでうまくやる方法がわかりません。そこで、CPUに載っているコアのみで並列化します(Xeon Phiなら簡単なのでしょうか→追記参照)。 一番外側の、0から(1<<25)-1まで変化する変数iのループをOpenMPで並列化します(schedule(guided)では遅くなります。schedule(auto)はVisual C++でサポートされたら試します)。変数iは上の図の緑の部分(カンで5個にしました)を各数5ビットで表現し、つなげたものです。マスに入りうる数は1から25までなので、5ビットというのはちょっと冗長ですが、とりあえずはよしとしましょう。 出力はバイナリ形式で、1つの解に25バイト使います(1つのマスに入る数を1バイトで表現
負数が含まれる剰余を計算した場合、言語に跨がって一意な結果が得られない。 -5 % 3 5 % -3 C -2 2 C++ -2 2 Java -2 2 Ruby 1 -1 Python 1 -1 Common Lisp 1 -1 さて、なぜこんなことが起きるのかというと、剰余には複数の定義が存在するからである。 m ÷ n = q … rこの r を剰余と言うが、 r の範囲が 0 ≤ r < n 最小非負剰余 -n/2 ≤ r < n/2 絶対値最小剰余 の二つの定義があり、一般的には前者の「最小非負剰余」を用いるようである。 m が負数、 n が正数の場合は、先程の表にあるプログラミング言語は以下のように分類される。 絶対値最小剰余 C C++ Java 最小非負剰余 Ruby Python Common Lisp しかし、最小非負剰余では r が正数になる必要があり、剰余の結果が
※本エントリは、自分の気持ちを整理するという事と、同じ様なやりきれない気持ちを抱えている人達に対して、何かのきっかけになればいいなと思い書きました。自分の不満の憂さ晴らしでもなければ、SIerで働く人達を否定するものでもありません(そんな低俗な事をするつもりは毛頭無いです…)。自分が現状の業界構造に疑問を覚えたのは事実ですが、それでもその中で正しい道を進もうと頑張る人達を心から尊敬しています。 2013年8月31日を持って、新卒で就職したSIerを退職しました。 2012年4月に入社してから約1年半、社会人としてのマナーやプログラマとしての基礎を教えて頂きました。 関係者の皆様、大変お世話になりました。 退職を決めた理由ですが、これといった契機があったわけではありません。 強いて言えば、下記の様な問題を考え続けた結果、転職という選択肢が自分にとって最善であると感じたという事です。 業界の方
2013年06月13日01:00 カテゴリLoveArt 採点できないなら、しなければいいのに ほぼ二年ぶりにMatzにっきが更新されたので何事かと思いきや… Matzにっき(2013-06-12) 「ちょっと待った!小中学校でのプログラミング教育」 そこで、若いプログラマを育てるために、小学校や中学校での情報処理の教育やプログラミング教育に力を入れようという動きもあるようです。しかし、自分自身のプログラマとしての経験から考えると、これにはなかなか困難がつきまとうように思えます。 おっしゃる通り。 しかしそうおっしゃるRubyのパパ自身もまた、一つの罠にはまっていらっしゃる。 それが、ここ。 Matzにっき(2013-06-12) 第二の課題は「どのように評価するか」ということです。学校の授業であるということは、なんらかの評価をする必要があるわけですが、これがまた困難です。 「学校でやるこ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く