「組み込み」を含む日記 RSS

はてなキーワード: 組み込みとは

2012-02-01

wikipediaプログラマの項の一文に

 

"技術者としての真髄を見失った労働者たるプログラマ"

 

ってあるんだけど、

技術者としての真髄を持つプログラマってどこの会社というか業界に行けばいるの?

俺はそこで生きたい。人生掛ける価値あると思ってる。

 

楽天とかDeNAとかサイバーエージェントの中にいる技術者経営者的な考えを持ってそうで、

失礼だけど人生かけて技術追い求めてるようには見えないし、

NTTデータとかの上位SEプロジェクト管理ばっかりしてそうだし、

下請けは、技術関係なくただひたすら組み上げていく印象。

ベンチャー系は派手に儲けたりヒットさせる事しか考えてなさそう。

 

個人的にはメーカー組み込み系に期待してるんだけど(モノ作ってる機械や電電の人達が近いから)

本当のところはどうなんだろう。

 

 

改めて聞くけど、技術者としての真髄を持つプログラマってどこの会社というか業界に行けばいるの?

2012-01-18

Python vs Ruby vs PHP vs Haskell プログラミング言語バトル part1

 

42 : デフォルト名無しさん : 2011/11/12(土) 23:53:51.20

Pythonの方が弄れる対象が多いのに、なんでウェブ系だとPHPの方が流行ってんだろ

端末からテキスト処理も楽だし、数値計算周りのライブラリも充実しているのに

PHPが優遇されているのって歴史的な経緯以外に何か他の理由でもあるのか?

けどまぁ、情弱文系SEが大半を占めているバカだらけの日本じゃ別にPHPで困ることもないか


45 : デフォルト名無しさん : 2011/11/13(日) 01:41:24.25

数値計算や端末からテキスト処理なんてWeb系じゃ大して使わないからなあ…


43 : デフォルト名無しさん : 2011/11/13(日) 00:04:23.30

PHPが未だに現役なのは、単に歴史的な経緯でしかないだろ

Pythonに関しては、ZopeさえコケていなければWebサーバLLとして大成功していたはずなのに、

Railsなんかが登場したおかげで、すっかり影が薄くなってしまますた....


44 : デフォルト名無しさん : 2011/11/13(日) 00:49:55.28

zopeってコケてたんだ

ってか、railsインスパイアされたフレームワークって今じゃ幾らでもあるよね

djangoとかCakePHPとか。rubyってRoRを使いたいユーザを除くと、

pythonPHPの方がユーザー数は圧倒的に多いと思うんだけど

本家railsって、他を遥かに越えるほど良いものなんだっけ?


48 : デフォルト名無しさん : 2011/11/13(日) 08:30:25.68

44

Zopeが登場した当時、RDB+PHPはもう古い、これからOODB+ZopeWebの中軸になる!」

さかんに宣伝され、雑誌でもZope特集が組まれていた

 

少なくとも自分ZopeからPythonという言語を知ったし、その時点でRubyは知らなかった

そして、その後のORM(RDB)+Railsの出現と華々しい革新性への注目は、誰もが知っているだろう

今でもZopeの開発は継続されてはいるが、結果的に当初の期待が大きく裏切られたという事実は動かしがたい

 

djangoCakePHPについては実際に触っていないので憶測になるが、おそらく技術水準ではRailsと同等だろう

しかしRailsはRailsコミュニティの活動が活発だし、その進化は異常に早い

 

Railsに何か致命的なトラブルが発生して開発が停滞する、あるいはdjangoCakePHPから

何かのイノベーションが提示されでもされない限り、後発のdjangoCakePHPRailsに追いつくのは無理

Railsは決して技術的に完璧Webフレームワークではないんだけどね....(たとえばSeaSideのような.... )

 

からこそ「もしもZopeが....だったなら」という「たら・れば」感はPythonコミュニティの潜在認識になっている


51 : デフォルト名無しさん : 2011/11/13(日) 12:55:40.83

 C a k e P H P は う ん こ   

遅い、設計が古い、動作がおかしいの3重苦

日本では流行ってないけど海外だとYiiが流行ってきてる


55 : デフォルト名無しさん : 2011/11/13(日) 17:31:12.14

CakePHP使ってんの?

可哀そうにw


53 : デフォルト名無しさん : 2011/11/13(日) 14:44:48.55

求人PHPばかりだからPHPやるしかないだろ。


57 : デフォルト名無しさん : 2011/11/13(日) 19:34:04.95

でもやっぱりいつもの使い慣れたLL(Python/Ruby)で

Webサービスを書きたいってのがある


73 : デフォルト名無しさん : 2011/11/15(火) 17:32:46.07

アメリカ言語ユーザー数は

Python>>>>>>>>Ruby

求人数は

Ruby on Rails>>>>>>>>Django

http://www.indeed.com/jobtrends?q=django%2Cruby+on+rails&l=

どういうことなの?


74 : デフォルト名無しさん : 2011/11/15(火) 17:48:15.59

RubyRails以外に使い道がないか


75 : デフォルト名無しさん : 2011/11/15(火) 17:54:35.50

海外ではRubyは昨今のRailsバブルのお陰で

もはやWebスタートアップ共通語になってるらしいからね

求人数が多いのはそのためだと思うよ


76 : デフォルト名無しさん : 2011/11/15(火) 18:03:23.05

なんかのミスかと思ったがアメリカでもRuby on Railsは人気があるのかなあ・・・

Pythonのほうが使いやすいと思うのだがフレームワークRailsが優位なんだろうか


77 : デフォルト名無しさん : 2011/11/15(火) 18:23:14.33

Djangoは周辺ライブラリ微妙だし本体も鈍くさい感じがする。

でも、FlaskはSinatraより好きだからPythonが嫌いってわけではない。むしろ好き。

 

ただ、いざ作り始めるとやっぱりRailsが楽だなあってなって、Railsを使い続けている。


78 : デフォルト名無しさん : 2011/11/15(火) 18:38:46.28

同感だ

同じように思っている人が他にもいて安心した


79 : デフォルト名無しさん : 2011/11/15(火) 18:54:37.13

PHPJavaScalaには

Railsみたいなフレームワークあるのに

Pythonはいいのないんだよな


80 : デフォルト名無しさん : 2011/11/15(火) 21:19:09.89

PHPフレームワークが乱立しすぎているから、RailsPHPで実装してみようというやつが出てきた。

Scalaも注目されだしたのはつい最近のことだしな。

それに比べてPythonは、Zopeというデファクトスタンダードが既に存在していたけど、

つの間にかフェードアウト


ただ、どうやってもRailsもどきRailsを超えることはできないのは間違いない。


83 : デフォルト名無しさん : 2011/11/15(火) 21:25:38.55

パクリオリジナルを超えられない(キリッ って定型句だけど、

これってキリッって言いたいだけだと思う。

後発品が先に出たものを超えたものなんていくらでもあるから


84 : デフォルト名無しさん : 2011/11/15(火) 21:30:04.39

D言語って超えたって?


85 : デフォルト名無しさん : 2011/11/15(火) 21:31:12.00

B言語って超えたって?


86 : デフォルト名無しさん : 2011/11/15(火) 21:53:33.76

でもRailsRubyの黒魔術を使いまくりから

PHPで同じ事をできないわけではないだろうけど、Ruby on Railsほど簡潔にはできない


90 : デフォルト名無しさん : 2011/11/15(火) 22:50:07.81

スタートアップなんて根無し草の集まりにとって、

googleが囲った言語coolさを見出せないんだろ


123 : デフォルト名無しさん : 2011/11/20(日) 11:32:16.79

まあくだらねえWEBサービス作って喜んでる情弱は早く死ねって事だよ


91 : デフォルト名無しさん : 2011/11/15(火) 22:52:42.98

そういう理由じゃなくてRailsのほうが単純に情報プラグインも多いからでしょ


3 : デフォルト名無しさん : 2011/11/15(火) 23:07:07.67

linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん

わざわざ不合理で不完全な言語を使うなんて

社会からハミ出た奴らの精神的な作用によるものじゃないの?


95 : デフォルト名無しさん : 2011/11/15(火) 23:20:20.21

django情報プラグインが増えないという、

現実に対する鬱憤を吐いてるようにしか聞こえないな

もしも

linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん

真実であるのなら、今頃はdjango情報プラグインが溢れかえっているはず


104 : デフォルト名無しさん : 2011/11/16(水) 01:20:49.05

Python信者乙。

yumや、gdbgnome拡張pythonであるからといって、それをwebアプリでも使いたいと思う人は少ないというだけのこと。

ソースからインストールする必要があったとしても、web開発ではrubyを使いたいという人が多いというだけのこと。


94 : デフォルト名無しさん : 2011/11/15(火) 23:15:11.93

というか、世界中Pythonプログラマが Remeber Zope!! を合い言葉

打倒RailsたるWebフレームワークを開発しているはずだけど、

いまだにRailsを超えるプロダクトが登場しないのはナゼ?


Railsも登場してから、かなりの年月が経過しているんだけどなぁ....

その間にもRailsRails 3が登場して、REST/AJAXの強化等の進化継続しているよ

347 : デフォルト名無しさん : 2011/12/09(金) 10:16:35.22

Ruby では

ary.map {|x| x**2}

となるものが、Python では

map(lambda x: x**2, ary)

となり、lambda の本体が1つの式では表現しきれなくなると

def mapper(x):

.....

map(mapper, ary)

書き換える必要があります


348 : デフォルト名無しさん : 2011/12/09(金) 10:24:20.94

Pythonのlambdaを用いた階乗計算

f = lambda x:(x and f(x-1)*x)or 1

RubyにはPythonのように「lambda本体は式でなければならない」という限定がありませんから

andやorを使った不自然記述をしなくても

f = lambda{|x|if x == 0 then 1 else x*f.call(x-1) end}

または

f = lambda{|x|x == 0 ? 1 : x*f.call(x-1)}

と書けます。lambda内でreturnが使えますから、書きたければ

f = lambda{|x|if x == 0 then return 1 else return x*f.call(x-1) end}

でもOKです。


390 : デフォルト名無しさん : 2011/12/10(土) 15:35:41.62

348

これはPythondisっているように見せかけてRubydisっているのか? と一瞬思ってしまったw

だってRubyのほうが長くない?CLのfuncallみたいなcall()がちょっとうざいし…

そしてどっちもlambda式の中で束縛変数名前再帰可能、と

350 : デフォルト名無しさん : 2011/12/09(金) 11:12:13.28

要素に対する関数適用と、抽出を組み合わせる場合

Python

print [x*2+100 for x in [1,2,3,4,5] if x > 2 and x < 5]

暗号のように見える。

Ruby

puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2+100}

思考の流れと、コードの流れが一致しているので書きやすい。


351 : デフォルト名無しさん : 2011/12/09(金) 11:22:55.04

だれだPythonなら書き方はひとつとか言ってるのは

map(lambda x: x*2+100, filter(lambda x: x > 2 and x < 5, [1,2,3,4,5]))

354 : デフォルト名無しさん : 2011/12/09(金) 12:22:07.37

pythonて可読性が高いのをうたってる割にはそこいまいちだよね


353 : デフォルト名無しさん : 2011/12/09(金) 12:10:08.46

Ruby場合には、左から右へと無名関数データフローあるいは

パイプラインのように並ぶからコードが読みやすい

 

関数型プログラミングに不慣れな初心者でも、参照透明性のあるコード自然に書ける

プログラマにとって優しい or プログラミングの楽しさを教えてくれるのがRuby

 

それと比較すると、Pythonコードは、関数型プログラミングというもの

いかに高度で難解なものであるかという事をもったいぶってプログラマ押し付け

 

もしもPythonしか知らないプログラマであれば、関数型 = 難解 という印象を持つだろう


356 : デフォルト名無しさん : 2011/12/09(金) 12:53:45.66

階乗計算くらいだと単純すぎて、ナゼ重要なのかが分かりづらいと思うのでコードで示す

result_list = source_list.map { |elem|

  x = foo(elem.x)  # ここが局所宣言を書く部分

  y = bar(elem.y)  # ここも局所宣言の続き

  x + y       # 最後に評価された式の値が、無名関数のリターン値になる

}

Rubyでは、map等に与える無名関数の中で局所的な環境(クロージャ)が作られるから

x = foo(...) のような代入文がいくつでも(= 複雑な処理でも)書ける

このポイントは、実用的なプログラム関数型風で書こうとした時に、威力を発揮する

357 : デフォルト名無しさん : 2011/12/09(金) 12:59:21.07

余計分かりづらくなった

358 : デフォルト名無しさん : 2011/12/09(金) 13:17:26.54

リスト内包表記が暗号みたいと言ってる奴は

高卒ドカタなんだろうなぁと可哀想になる

大学数学に触れる機会があれば

集合の表記に似せてることが分かるから

386 : デフォルト名無しさん : 2011/12/10(土) 01:41:34.46

数学とかで慣れてるし区切りが関数のがわかりやすい


359 : デフォルト名無しさん : 2011/12/09(金) 13:46:31.97

355

map/filterはfor/ifと同じだと言っているだけだから、難解という印象は持たない。

関数型プログラミングに慣れた、あるいは得意な人であれば、そういった印象なんだろね

Rubyの魅力はこれから関数型プログラミングを学ぼうとする初心者、 あるいはそんな初心者へ教える立場から見た、優しさ or 分かりやすさなんだ



360 : デフォルト名無しさん : 2011/12/09(金) 13:53:28.85

Rubyだと直感的に書けるコード

[1,4,3,2].sort.reverse.map{|x| x.to_s}.join('-')

Pythonだと読みにくい。

'-'.join(map(str, reversed(sorted([1,4,3,2]))))


361 : デフォルト名無しさん : 2011/12/09(金) 14:07:17.88

360

Pythonでは思考の流れと一致しないばかりか、「カッコだらけ」のコードになると.....


364 : デフォルト名無しさん : 2011/12/09(金) 14:28:55.99

カッコだらけのコードを分かりやすくする基本的な方法静的単一代入じゃないか

Rubyのやり方は基本ではなく玄人のやり方だろ


372 : 369 : 2011/12/09(金) 16:21:03.82

Pythonでは組み込みの型でメソッドチェインはやって欲しくないな

listにmap,filterメソッドができたとしても、

似たようなコレクションtuple,deque,array,queue等にも同じメソッドが必要になってくるし。

シーケンスプロトコルの利点が活かせない。

383 : デフォルト名無しさん : 2011/12/10(土) 01:17:28.39

372

外部のライブラリでも列挙可能なものは、たいていEnumerableモジュールをimportしてます

Rubyユーザーは列挙可能なものmapselectできて当然だろって思ってる気がしま


377 : デフォルト名無しさん : 2011/12/09(金) 18:41:51.79

Pythonは「何かを便利に書くためのしわ寄せ」をはっきり寄せてくる

得意と不得意を言語レベルではっきり主張するのでメリケン好みと言えなくもない

Rubyは全方位になんとなく八方美人なので、全体的になんとなく書きやすくてなんとなくキモくて遅い

379 : デフォルト名無しさん : 2011/12/09(金) 18:48:52.27

Pythonユーザー調教っぷりは異常

「書きにくいってことはその処理に向いてないってことだから諦めろ」を地で行く


387 : デフォルト名無しさん : 2011/12/10(土) 13:40:40.74

リストの内包表記はシンプルに書けるときは使うけど

基本その場でdefするのがPython風なんだと思う。

389 : デフォルト名無しさん : 2011/12/10(土) 14:40:31.04

無名関数が文を使うほど複雑なら名前を付けるのが Python 流と想像

384 : デフォルト名無しさん : 2011/12/10(土) 01:23:49.48

outer(center(inter( arg )))

これを読みづらいと感じるのは、左から右に流れる

日本語文に慣れているからだと思うが、

もしかしてアラビア語ネイティブな人からすると逆に読みやすいのか?


385 : デフォルト名無しさん : 2011/12/10(土) 01:34:57.89

なるほど、ということは右から左、左から右どっちでも行ける言語が最高ですね

F#パイプライン演算子最高ということで

2011-12-03

内定は割りと簡単。僕が今学んでいる訳

氷河期だそうです。(これも就活ビジネス煽り文句な気もしますが)

いや、でもまあ、確かにそうなんでしょう。周りも非正規が多いです

僕も一昨年チョービビってました。

「何がリーマン崩壊だよ!リーマンになれねーじゃん!」とか笑えないけど笑ってた気がします。

あのタイミングでこれはねーよ、と。

なにせFランクラス(ちょっと言い過ぎ?)の大学(校)だったので。

好きでやってたITだったので資格を取っておいたのだけが救いでした(応用情報技術者試験

まあ、でも、終わってみればという感じです

7、8社ほどで内定をいただきました。

ニュースでやってる、100社落ちたとかってのは余程訳があるのかなぁとか、考えたりしたもんです

就活(笑)解禁だそうなのでメモ程度に経験を残しておこうと思います。ただ、人によっては全く参考にならない気も(笑)

 

 

1.中小のみ狙う。

僕は名前が売れた会社最初からほぼ全て諦めていました。

1社だけ入りたかったウェブ関連の会社があったのですが(まぁ、中小ですが)、イミフ試験で落ちました。(愛と恋の違いだの何だのを書けとか書いてありましたね)

地方住まい通勤圏内を求めていたのですが、県内にいい会社が見当たらなかったので高速で通える県外にしました。

本当は東京にでも出て、やりたい仕事をやっても良かったのですがやめました(理由は後述)

 

とにかく合同企業説明会(笑)でも人がいないところを狙います

地方なんかだと地域でやってるUターン誘致の説明会とかジョブカフェのやってる説明会が狙い目です

むしろリクなんちゃらとか、今話題のマイなんちゃらとかのは行かなくていいです時間無駄です

倍率を考えましょう。無駄もの無駄です

 

 

2.話の合う人事の年齢を見つける

僕は年寄りに話を合わせるのが得意なので、年寄り人事がいる会社をさらに集中して狙いました。

若い人と話すのが得意なら若い人を狙えばいいと思います

人気の無い企業の人事はとにかく暇なのでガンガンしゃべります

話を聞いてくれるだけで嬉しいようです。(彼らだって暇なんだから当たり前っちゃ当たり前ですが)

結構顔を覚えられたりするので良い戦略かなと思います。 

 

 

3.乱発しすぎない

僕も焦っていろんな会社を手当たり次第に受けたことがありますが(最初の3社くらい)、あれはやめたほうがいいです

時間お金も有限です企業リスト化して優先順位(行きたい順だけじゃなくて入れそうなことも加味して)をつけて狙っていったほうが良いです

 

 

4.自分を捨てる

よく言われているように、企業技術個性なんて求めちゃいません。

僕はある中堅ITの子会社で「僕はコンピュータが大好きです」といった直後に

「この仕事は、極端に言えばコンピュータがなくてもいい仕事だと思っています」とかなんとか言いました。(あほらしい話です

SIer技術者を軽視しているのが隅々まで行き渡っているのでこれであっさり受かります。(当然、蹴りましたが...)

 

自分の本当の考えなんて大して必要ありません。

相手が好みそうなものを考えて出して上げれば受かります

考えるのは物事ではなくゴマすりの方法です

 

 

5.なんだかんだで資格

から就活の方は厳しいですが、資格結構便利です

学校名で「は?(笑)」みたいな感じでも「応用情報技術者試験受かりました(キリッ)」とかやっとけば覚えてもらえます

面接の時もチョー好感触です

中小企業だと「とりあえず一人はコイツでいいか」的な空気が会場一杯に広がります

 

 以上5点に気をつけると不本意な気分満点ですが、とりあえず内定しますよ。やってみてくださいね〜。

 

 

 

(以下蛇足

此処から先は独り言。

僕は情報処理技術が大好きです。高校時代文系で、心理学に興味があったのに、いつの間にか....。

実は大学(校)に入った理由は学費が安いということが一番で、ついでに興味のあるパソコンを、という気持ちだったのですが...。

大学時代は僕の人生で一番(一番は社会に出てからの今かもしれませんが)勉強した時期です

あれほど熱中するものがなかった自分がここまでのめり込むとは思いませんでした。

OSコンパイラ画像処理組み込みデータベースネットワーク

何でもやりました。学校もなんだかんだで多くを学べる所でした。

 

実を言えば東京ベンチャーみたいな会社に憧れたりしたのです

最先端で戦ってみたいという気持ちが今でもあります。(今はVBサビ残して詐欺みたいなモノ作ってますからね)

ただ、長年付き合った恋人や、家族なんかのことも考え、今は地方にいます。「今は」

 

僕は三年は勉強期間だと思っています社会ルールも知らないのですから

もし、中小は嫌だとか不安だと思うのなら、こう考えてはいかがでしょうか?(あれ、独り言じゃない)

 

「三年間の職業訓練

 

今の僕はそういう感覚です

会社社会人の方に怒られそうですね。3〜5年でやめられると中小には痛いそうですし。

でもまあ、雇った方も自己責任だし、ね。(こういう内容だと自分ブログに書けないか増田はいいと思う)

 

そのあと起業でも転職でもすりゃいいんです

3年経てばテレワーク事情ももうちょいマシかも(さすがに無理?)

だめならこのまま人生を切り売りするか、バイト時代好きだった小売にでも転職しようかな、と考えたり。

(正直同じハードさなら小売のほうが楽しい。この業界PGはいてもプログラマいないし。OSS開発もできるからね)

 

 

どうせ糞不況です言い訳はたくさん出来ます

 

 

から、3年間だけ。

とりあえず昨日アマゾンから補充された、机の上に積み上げられた本を読まねば....。とりあえずトランザクション処理からにするか...。鈍器だろこれ

2011-11-07

2010/05/16 23:40

こんにちは。昨日会った者です(これで特定するには情報不足だけど、まあわかるよね)。

で「幅優先探索でやる」という方針自体はいいと思うし、データ構造の作り方も基本は押さえていると思います(斜め読みしかしてませんが)。

ただ、コーディングの発想が「C で作る」という大方針から見て、少しちぐはぐな印象も受けますデータ構造設計操作の部分、汎用のライブラリを作ろうというのならあれでもいいと思うのですが、わざわざ汎用のライブラリを使わず自分で専用の道具を一から作ろうというのなら、問題の性質を考慮して能率良くやることが大事です

ところが、ここに載っているコードを見ると、見かけが C らしくなく、C++Java の劣化版のような印象を受けます記法マクロ大文字化しない、ルーチン名を大文字で始めるなど)だけの問題ではなく、データ構造設計思想が「C で書く」という方針と矛盾しているように見えます

もう少し具体的に言うと、そもそも C というのは現在 Web 系の世界などで流行スクリプト言語類とは逆で、汎用言語でありながら低レベルハードウェアに近い)処理が簡単にできることに特色があります。つまり組み込みを想定してプラットフォーム依存コードを書いたり、ハードウェアの特性を考慮して低レベル最適化をやりたいというときに適しています

そこでこの問題ですが、これを C でやるということは、処理速度や使用メモリ量の最適化が要求される状況、つまり迷路の大きさが途方もなく大きいような状況を想定すべきですもっと言ってしまえばこの問題、たとえば画像処理などで似たような発想が要求されることがあります。このため、どうすれば時間のかかる処理を切りつめることができるかを考えてやらねばなりません。

このプログラム場合時間のかかる処理の代表格である malloc() が大量に使われています。これはいかにもまずいです。このような大量データを処理する場合の定石は、あらかじめ必要なだけメモリを確保しておいて、自分で割り当てることです。具体的には、必要と想定される量だけメモリ配列の形でどかっと確保しておいて、配列インデックスポインタ代わりに使います。そして、足りなくなったら倍々のような感じでメモリを realloc() してやればよいのです

なお、そのような観点で言って、木の各節点の子の数は高々 4 (スタート地点が内点でないとすれば 3)であることを使っていることはよいと思います。ここで「子のリスト」とかを作ってしまっていたらこれはもうアホもいいところですから(容量の節約にすらなりません)。

そんな感じでしょうか。

とにかく、この手の問題は、アルゴリズムさえわかっていれば可読性もヘッタクレもないので、「短く書く」というような表層的なことよりも、何が求められているのかをよく考えて、柔軟に設計思想を考えることが大事だと思います

2010/05/17 13:54

Oさんですね。専門的なコメントありがとうございます!cで書くと言いつつObjective-Cっぽい発想で書いていました。マクロの命名もその影響で、関数Image Magickなどに似た命名規則になっている気がします。mallocを使いすぎると時間がかかるということは全然意識していませんでした。今度作るときメモリ管理を自前で用意する発想を取り入れてみたいです。参考になるコメントありがとうございました!

2010/11/18 23:56

はいわゆる「正規表現」は形式言語理論でいう正規表現ではないんだけどね……(ぼそっ)

2011-09-26

http://anond.hatelabo.jp/20110926114446

というかね、ガラゲーも中身がAndroidになるんだよ フューチャーフォンはスマフォ機能削減バージョンになって開発のベースが一本化されるのよ

フューチャーフォンじゃなくて、フィーチャーフォンな。未来じゃないぞ。

これから発売されるガラケー未来ガラケーフューチャーフォン

たぶんこうじゃね?ガラゲーは知らないけど。

しかOSとしてのAndroid不安定さを思うと、ガラケーにすらなりきれないと思うけどな。

両方使ってて思うのは、なんだかんだ言っても組み込みOS/組み込みシステムとしての安定性は、まだまだガラケーが勝ってる。

2011-08-17

プログラミングが好きな少年IT企業に入ってはいけない

とぼくはおもう

とくに組み込みゲームSIは(この順に)歴史が古い

注意しなければならないのは、IT系一口にいっても、サブジャンルは腐るほどある点だ


Joel Spolskyは5つに分けていた

ソフトウェア開発には、しばしば交わっているがたいていは分かれている、5つの世界があると思う。その5つとは:

http://local.joelonsoftware.com/wiki/5%E3%81%A4%E3%81%AE%E4%B8%96%E7%95%8C

そして、これらのIT企業が、最先端システム開発をしているかというと、そんなことはないのである

ぼくの会社のばあい

30年前に作ったホストシステムに、

10年前に作ったクライアント接続して、

50年前からある言語コーディングしていたりする

ましな会社のばあい

VisualBasic5と6の互換性と格闘していたり

ファイルサーバに空き容量が無くてローカルに退避する作業に一日費やしたりする

「打ち合わせご希望日を添付のエクセルシートに記載の上ご返信ください。なお、ファイル名は”社員番号_指名_記載日付”の形式でお願いいたします」

みたいなメール日常に飛び交っている


現場のやっていること

ほとんどの現場が、方眼紙状にしたエクセル印刷して、判子をつく(客の都合でもある)

そんな作業ばかりしているし、本質的コーディングの作業は1割もないのだ

そのような企業が、最新のシステム開発なんて出来るわけがない


SI企業IT企業と嘘を付くことで、何が起こるのか

そしてプログラム好きの少年

夢打ち砕かれ

人月計算Excelスーツ世界へゆく

http://anond.hatelabo.jp/20070831005830

俺は80文字×32行の緑文字を見つめながら、遠い夢を見続ける。

今はただ、ネット越しに見つめるRDBAPIxp正規表現アジャイルRailswikiがまぶしい。

2011-08-16

プログラマー資格制度

プログラムを理解させるには?ブックマークコメントを読んでいて。

ブックマークコメントの中に、「資格」とかのコメントがいくつかあった。

既に情報処理試験とかあって、いろんなIT系資格があるのだけど、プログラマーやってる人なら誰でも感づいているとは思うが、資格など何の役にもたたない、という事で。高度情報処理資格を持っているからと言って、プログラム(その他設計コンサル)が出来るとは限らず、逆に何の資格も持っていないのに、すばらしいプログラムをする人がいる。

まぁ、これら既存IT系資格にある一定の目安にはなるとは思うけれども、万能では無いのも確か。昨今の不況、ITバブル崩壊で、IT系資格資格手当が真っ先に削られたのも、記憶に新しい(弊社だけかもしれないが)。

雇う外注ソフトハウスから派遣されて来た人など、だいたい15分も話せば、どのくらい出来るか、使えるかは判断出来る。これは資格では計れないものだ。

仮に、弁護士行政書士医師など、士制や免許制はどうだろうか?

やはり、使える弁護士がいると思いきや、藪医者もいるわけで。

車の免許はどうだろう?

交通事故は起きるし、無免許運転ははびこっている。

プログラマーはどうだろうか?

例えばトイレ。水を流すのに、最近トイレは、リモコンスイッチを押すと水が流れるが、あれ、プログラムだよね。

例えば炊飯器。米と水を入れて、スイッチを押せば、ご飯が炊きあがるが、これもプログラムだ。

車。ハイブリットや低燃費車が走っているが、あれは電子制御で動いている。

飛行機最近航空機は油圧では無く、フライバイワイヤーだ。

ロケットアポロファミコンにも劣るコンピュータで月まで行ったが、プログラムだ。

先日の中国の高速鉄道事故も、ATCプログラムミス(?)による事故だ。

先日の$oftbank携帯の通信障害は、故意に仕組まれた通信障害だった。

どこにでもプログラムは入り込んでいるし、そのプログラムによって、便利になっている反面、人命をも奪い、都市機能麻痺させる事も出来る。

にもかかわらず、「資格」「免許」無し。

なんでだろう?

介護について考えてみよう。

ヘルパー資格介護士とかいろんな資格が必要だが、世間一般的には、ワーキングプア、もしくはそれに近い悲鳴が聞こえてくる。

なんでだろう?

資格免許を持っていても、それが収入時間に反映されないいい例だと思う。

プログラマー」「SE」と名乗るのは簡単だ。「漫画家」「小説家」と名乗るのと同じように。なんだったら、名刺名前の上にそういう肩書きを書いておけば、「プログラマー」であり「SEである

漫画家小説家と違うのは、漫画家小説家は「売れなければただの無職」という事だ。あっという間に食えなくなる。自分アシスタントをやっていたし。アシスタントでは、ちょっと食っていけなかった(アシスタント作家自身は違うが、それなりに間近で見てはいるわけで)。

プログラマーSEがそうならないのは何故だろう?

誰かがリカバリーしてしまから、では無かろうか。

プログラマーSEが個人事業種の人達だったら、その通りになるだろうけど、多分、半分以上の技術者は、どこぞの会社所属しているサラリーマンだと思う。もちろん、これはこれでメリットがある。営業や経理・総務・庶務等が他の人に分担されている事や、会社などの福利厚生も使えるから

逆に「金の切れ目が縁の切れ目」が使いにくいというのがある。同僚が失敗したり行方不明自殺等というのはこの業界日常茶飯事だが、そのリカバリーは必ず誰かがやらなければならない。そして不思議な事に、それをやる人間は決まっている。失敗したマンガ小説を他の作家リカバリーする、というのはあり得ないのにね。

資格制度免許制度が万能とは言わないが、有効かどうかと言われると、自分には判断出来ない。しかし、前述したとおり、非常にクリティカルなモノを作る場合も有り、無資格なのはそれはどうだろうか?とも思う。

プログラマーSEミスすれば、都市機能麻痺し、人が死に、医療器具が動作せず、電力が起きず、このインターネットすら動かない。TVラジオダメ第1次産業以外のほとんどが停止する事になる。

そんなクリティカル仕事なのに、この士農工商穢多非人非人のような扱いを受けるのは何故なんだろうか?

経営者管理からみれば、次から次へとターゲットが蛆のように沸いて出てくる職業であり、使えるだけ使って、あとは使い捨て、という業界だし。

一度、プログラマーSE自分のやっている仕事がどういう事なのか、考えてみた方が良いのでは無いだろうか?

考える事は出来ると思うよ? だって、「完全動作する事を常に考えている」のだから。それが過失・故意にでも動かなかった場合、どういう事になるかは、簡単に想像出来るよね。

絵描き小説書きや楽器演奏作曲は、小学校の頃、学校で習うから、分かると思うんだけど、【今の現役世代以上】のプログラマーSEは、小学校で習わなかった。この差が非常に大きいのだと思う。

どんな無能経営者無能管理だって、「自分が絵を描けない・難しい」というのは、自分で分かる。なぜなら、義務教育時代にやっていたから。ところがプログラミングSEはどうか。やってないから分からない、わけだ。

あと、拍車をかけているのが、どこかが発表している「情報技術者何万人不足」という発表。この時点で「質」が考えられていない。そこへ、程度の低い派遣業が入り込んで、エライ事になる。そもそも派遣とは、受け側に技術が無いからその手助けに赴くものであって、人身売買では無い。先日も弊社で「組み込み系の低いレイヤーの部分を作るC言語(かなりアセンブラ寄り)が出来る技術者」を要求したのに、実際ソフトハウスから派遣されてきた人間は「C言語ポインタという概念も知らない」技術者だった(どうやら、Windows統合開発環境上においてC#だったら使える、というレベルだったようだ)。もちろん、そんな人員を使えるわけ無いのでその場でお引き取りを願った。こういう、「質」や「ベクトル」に関係無く「頭数」だけでどうにかなると思っている奴らが非常に多い。日本の(少なくとも情報系)派遣や客先常駐の考え方は、間違っていると思う。

そう考えると、ある一定の基準として、質やベクトルを明記する必要はあるのかもしれない、と思う。それが労働時間賃金に反映されるかどうかは分からないが。

2011-07-06

蟻と自分

寮のごみ捨て場に数匹の蟻がいた。

残飯などの臭いをかぎつけてきたのだろう。

私はそれらを踏みつぶした。

行列となる前に。

これは無益な殺生ではなく、あくまで寮の衛生を守るために必要な行為だ



・・・というのは建前だ。

正直、むしゃくしゃしてやった。

からしてみれば、自分の食いぶちも当然のことながら、巣の仲間たちの為、女王蟻、子供たちのために一生懸命エサを探していたところを、いきなり生を奪われたのだ。なんと理不尽な。

しかもアリクイに食べられるような食物連鎖への組み込みというわけではなく、人間の「感情」という蟻にとって理解の及ばない理由で殺されたのだ。

なんとかわいそうなことか。



翻って、自分はどうだろうか?

なんのために生きている?

会社のため、家族のためと仕事をして生きているが、いつなんどき、自分自分の理解の及ばない理由で人生無茶苦茶に狂わされるかもしれない。それも理不尽な理由で。

そう考えると、自分も蟻と同じなのだ。

自分が踏みつぶした蟻がいなくなっても、彼らの巣には大した影響はないだろう。労働力が多少減ったが、誤差の範囲である

自分も同じだ。仮に自分明日突然死んだとしても、会社にとって大した影響はない。

せいぜい、自分職場の周りの人が自分の業務を無理やりに引き継ぐために残業が普段より多くなる程度のことだ。

自分も蟻もちっぽけな存在なのだ。

2011-06-26

働く事と即戦力

これは弊社だけの事かもしれないけど、どうも「人材の育成」ってのに全く関心が無いように見える。なんでもかんでも「即戦力」ばかり求めていて、自分個人的にはお話にならない。

密室会議プロジェクトの体制が決まるのだが、だいたい自分担当範囲は「その他」と書かれている事が多い。

基幹部分はVisualStudioで、だいたい、VB.netで書かれたプログラムで目立つところばかり。でも別に基幹部分とはいえ、クリティカルな部分は無くて、万が一止まってしまったら、リブートすればいいだけ。この部分は、たいてい他の人に取られている。

で、自分に割り振られる「その他」ってのは、VisualStudioで、VB.netVC++で、主にネットワークミドルウェアドライバの部分、他のマシンUNIXのX-Windowだったり、WebサーバWebアプリOracleデータベースだったり、組み込みマイコンOSドライバアプリ担当となる場合がある。

ちょっと待ってよ。なんでVBの部分は数人で作っているのに、その他のクリティカルで多様な部分は俺独りなのか?

聞いてみた。

「誰も出来ないから」

は?

だって生また時から出来るようになったわけじゃねーよ。誰も出来ないなら育てろよ、と言ってみた。

「そんな時間と金は無い」

意味わかんねーし。

でも、最初から担当出来るならまだまし。たいていは、「出来ない部分」は外注に発注する。

そして、外注が失敗する。

その尻ぬぐいが俺になるパターンが9割を占める。

勘弁してくれ……。

自分の課の人員動向を見ていても気になる部分がある。課長係長の様子を見ていると「使えない」と判断したら他の課に回してしまう、けど、教育はしない、みたいに見える(でも、部から外へは出ない)。

なんかおかしくないだろうか?

先述の外注の件も、「社内で遊んでいる人員がいるけど、技術が無いから、外注に出す」パターンで、結果、外注に踊らされて「動かないコンピュータ」が出来上がってくるパターン

外注と話をすれば、(まぁ、だいたい15分も話をすれば)、相手がどのくらい出来るかどうかなんて判断出来る。たいていの場合「無理じゃね?」「これじゃ出来ないのあたりまえじゃね?」という結果が俺の脳裏をよぎる。でも、何故か、外注に発注する事になる。

おかしいよな。だって「社内に遊んでいる人員」がいるのに「外注に出す」ってなんなのさ?

即戦力

しか頭にないんだろうな。

外注も頭良くてね。業界つながりで他の会社人達と話す事もそれなりにあるんだが、出来る会社、出来る人員(個人事業主も含む)は、口をそろえてこう言うんだ「悪いけど、君の会社の、特に君の部から仕事は受けないようにしてるんだ」とね。表向きには言わないけど、複数の会社に相見積もりをとると、そう言っている会社は、弊社に出してくる見積書がめちゃくちゃ見積金額が高い。当然、弊社からはその会社に発注しないわけ。そう、残っているのは「実情を知らない会社とその社員」だけ。だから「動かないコンピュータ」が出来上がってくる。上の連中がどれだけ、この事を知っているのか。

の、割には「職人」に対する扱いがひどいのもある。

どうも、経営者管理者どもは、自分の力で物理法則が変えられる、他人の脳をオーバークロック出来るかと勘違いしているようだが。どこかの国の政治家DQN連中と同じように見える。

IT業界だけの話じゃ無いと思うんだけど、例えば……そうだなぁ、漫画アニメ小説とかのコンテンツ業界も(外から見てる限り)そんな感じを受ける。こっちの業界も、「即戦力」と「職人に対する扱い」に関しては、IT業界と同じに見える。

漫画小説も、「既に売れている作品」に勝るとも劣らない作品をクリエイト出来る人間けが採用されているような気がしてならない。いや、同人誌界を見てるとそう思うわけなんだが。

商品なんだから、それは当たり前の話なのも分かる。

だがよ。「育てる」事してないだろ?(という風に見える)

ある機会があって、就活生と話す事があった。やはりかなり焦っていて「もう仕事は何でもいいし、どこでもいいか内定とらないと」と言っていた。「うちの会社にだけは来るな」とだけ言って、俺は言わなかったけど、確かに「新卒」というカードを使えるのは1度きりだけど、「意に沿わない仕事職場の雰囲気、自分技術力、これらが合わないと、早々に精神を病むぞ」と言いたかった。現に、弊社やその周りの会社では早ければ入社後1週間、2~3年後までに辞めてしまう、またはメンタル疾患にかかる人が急増している。

なにしろ、育てないで、新人といえども「即戦力」を求めるからな。付いてこられない、精神的疲労は大変だろう。

今年の新人君と話をしてみたが、情報系の院卒のれっきとした修士でありながら、16進数バイナリテキストの区別が分からなかった、という驚愕の事実。これで「即戦力」?

ゆとり」世代、の一言で方つけてしまうのは、少々酷かとは思うのだが、採用判定する方も「ゆとりジジィ」としか思えない。

まぁ、うちの部は、会社の中では「墓場」と言われていて、この部から出て行くには「自殺」「精神疾患による退職」の2択しかないのだが。

こうやって脱線した時の、リトライのすべが無いのも事実だよなぁ。

「そりゃ、実力が無いだけ」「努力が足りないだけ」

一刀両断にするのは、いかがなものかと。まぁ、分からなくもないけどね。

前述のような事を書けば、ほとんどの人は

「辞めればいいじゃん」

と言う。まぁ、それも分かるわ。実際その通りだし。別に社畜じゃないし、会社に未練も無いから。少なくとも今の会社、出来れば「職人」を蔑ろにする風潮のIT業界からは離脱したい。

が、IT以外、他に手に職が無いのも事実

サービス業なんていけない。ぶっちゃけしまえば、サービス業(例えば接客業等)って、いわゆる「感情職業」じゃないですか。一度鬱病やって休職した経験のある自分にとって、感情職業は無理。

転職エージェントとか見ていても、やはり「キャリア」。「即戦力」だよねぇ。

最近mixiの(少なくとも自分にとっては改悪だった)状況に対する、mixi使っている人達の反応や、Twitter非公式RTに関するページを読んでいて、「そんなに嫌なら、使わなきゃいいじゃん。自分に合ったもの自分で作れよ。」と思う。無料サービスアプリなんだから文句たれてないで、使うの辞めればいいのに。

なんか、弊社のある課長を思い出したわ。ある有名なフリーソフトを使っていて「これ、使いにくいから、作者にクレームメール入れるわ」とか……。おいおい。使いにくいなら使わなきゃいいだろう、フリーソフトなんだし。相手(課長)の常識より、自分常識を疑ったわ。フリーはいえ、クレームをつけるという常識が、昨今の風潮なのか、と。

と、思うのは、前述した「(会社を)辞めればいいじゃん」と同じなんだろうか?

少なくとも、金銭や契約が関わっている以上(他、労使契約労働基準法等)、違うと思うんだよね。

と、書いても、例えば、喫煙者愛煙家と言うか?)にたまにいる「金と税金払って吸ってるんだから、どこで吸おうと勝手だろ」というのと同じなんだろうか?

いったんレールから外れると、ほとんど復帰のすべが無いってのは、なんだかなー、と思う。

するとこう言う。

「じゃあ、日本から出て行けば?」

これも「(会社を)辞めればいいじゃん」「使わなきゃいいじゃん」と同じなのかな?

自殺する気は無いから、会社は辞めるけどね、耐えられなくなったら。自殺するくらいだったら、引きこもり生活保護の方がいいわ。

1900年以来、第4位の大地震であれだけの災害だったにも関わらず、死者・行方不明者数が、スマトラ島沖地震チリ地震よりも少なく、かつ、「年間の総自殺者数」の方が多いってのは、どうかと思うわけだが。

ちょっと、最近、閉塞感を感じるので、つらつらと書いてみただけ。

2011-05-21

世界は私の形を変え、私は世界の形を変える。

キメこな問題についてのツイートのまとめを見た。

http://togetter.com/li/138228



いつか来ると予測されていた問題がついに表面化。

しかしこれは梅ラボ本人一人が気分的に凹むということ以外は実害がなくてよかった。

災難だったね、としか言いようがない。

そして※欄の予想通りすぎる人格攻撃っぷりは、見てて少し虚しくなった。



ふたばという「歪な形で維持し続けられる楽園」の脆さを住人自体がいまだに把握できてない。

そんな場所の住人であるということがアイデンティティと不可分レベルに融合してしまった多くの

としあき」たちにとってどうしたって不快であり、許しがたい行為だということは分かるが、

前提として招待制SNSでもなんでもなく「匿名掲示板」なんだから誰もがやってきてしまう、

ということはシステム上仕方ないのに彼らは「この中のルールを守ることで新参の訪問は最小限に抑えられる」

という幻想を持っている。まるで「9条さえ守っていれば戦争は起こらない」と信じる9条信者のようだ。

「外」の人間はそのルールを知らないし、意に介することさえないかもしれないのに。

今回の件は若干違うか。例えが悪い上に無駄ツッコミどころになったかもしれない。どう違うかは後述する。



ふたばはある意味、かつてのアンダーグラウンド掲示板文化の匂いを残したまま現在まで存続しているという

ちょっと珍しいサイトだが、哀しいかなシステム上でなんらかの方策を講じているわけではなWeb上に

置かれたものは大概がフラットに消費される可能性を抱えている。それを作った人間の快・不快という感情的

問題とは別個に。アンダーグラウンド、という領域が存在し得たのはGoogle以前でしかないだろう。

検索エンジンが未発達な時期には確かに「見つかりにくい領域」はあった。もう、昔の話だ。



ふたばが2chと違ってちょっと面倒なのは、「としあき」という名に仮託された奇妙な選民意識の

存在がある。だが、梅ラボ自身もブログで「2年ROMってた」ということを表明している。

ふたば文化についても一定の理解はしていたのだろう。

古参住人にとってはその理解はまったく足りないものに映ったのだろうとしても)

だが、作品として組み込みたくなってしまった。

不定形匿名人格の一部」である自分立ち位置と自らの「表現欲求」やどうにも抑えようのない「作家性」

(「人のもんの貼りあわせだけで何が作家だ」とかい意見もあるだろうがそこはひとまずおいといて)

の間で引き裂かれ、今回の件で梅ラボは苦しんでいる。かつて同人誌カオス*ラウンジファンブック」にて

仲山ひふみに「著作権問題が発生したらどうなるのか」という問題提起があったので、冒頭の一言

あるわけなんだが、感情的な「許す」「許さない」の問題はもうどうしようもないんだろうと思う。

少なく見積もっても1000の意見が表明された。それが1000人なのか一人なのかということも実際のところ

からない。まあTogetter見てる分には流石に一人ではないだろうということは分かるが、ふたばスレでの

「文句言ってる人間の総数」なんて簡単にはわからない。

そして多くの人間がいればその構成員の「許容の基準」だってバラバラだろう。もうこれは仕方がない。

だが、「絶対許さない」とか言ってる人間だって別になにかできるわけではないのだ。

それに、時間が経てば忘れられる。「絶対許さない」とか言ってる人間だってずっとこの件だけを

考えつづけることはできないだろう。出来るような人はちょっと常人離れしたなにかである

それはそれである意味すごい。もしかした現人神「絶対許早苗」かもしれないwww

うむ、早苗さんに許してもらえないのは東方である梅ラボにはキツいなー。



冗談はさておき。



結局のとこ諸行無常、ってね。不変なものってのはなくて物事は相互に影響しあう。

水の上に油をたらす。油の粒は水の力によってその形を変える。しかし逆に見れば

油が垂れてきたことで水全体の形も変わったと言える。ネット上の出来事も基本的には

大して変わらない。ちょっと私見になってしまうが「キメこな」はともかく海外での

「Moetron」の成長において梅ラボの作品の特徴が全く影響がなかった、というのは

ちょっと考えにくいのだ。多くの作品で「いくつかの別のキャラの顔のパーツをひとつ

であるかのように構成した構造が見られる。梅ラボの作品はTumblrなどを通して

かなりの拡散をしており、カオスラウンジはよくも悪くもそれなりに一部で目立つ存在

なっていた。それに刺激された4Chanの人間が「Moetron」と梅ラボ作品に共通するエッセンス

感じ取ったということはありうると思う。もっとも、根拠がないので妄想ととらえてくれて

一向に構わないが。



文化という言葉がこの件で多く出てきた。自身のコミュニティ文化に誇りを持ち、

それを保護する姿勢わからんはないが、そんなに過剰に護らないと壊れてしまうほど

脆弱文化なのか?ふたばは、二次裏とは。そうではないのではないだろうか。



文化の担い手だと自覚するならば時々現れるこういった異端者を

「見ろ また奇妙なやつが出てきたぞ」

くらいの気持ちで興味をもって動向を捉えていればいいのではないだろうか。



キメこなは生まれてさほどの時間が経っておらず、成長途中のキャラである

からこれもまた、成長の一過程だと捉えることはできないだろうか。




なんのまとまりもないが、思いつくまま書いてみた。

異論は大いに認めたい。むしろ読みたい。

2011-05-20

http://anond.hatelabo.jp/20110520004145

プロダクトに関わる人数が増えれば増えるほど、言語自体の素性の良し悪しが生産性に大きく響いてくる。

関係ない。

生産性が高いと言われてる言語で行われた、ゴミみたいなプロジェクトは沢山ある。

生産性の高さが生かせると言うのは、設計からしてきちんと考えられていると言うことで、そういうチームが開発するなら言語は関係ない。

まさかだけど、「Cで1からすべて書く」ことと「Javaの開発済みコード群を使う」ことを比較してたりとか、

「Cで行うテキストエディタコマンドラインコンパイラのみの開発」と「Javaで行う高機能開発環境での開発」を比較してたりとか

そんな馬鹿みたいな比較じゃないよな?

あと、携帯組み込みの手法に拘って、フルブラウザその他諸々の最新トレンドに全くついていけなかったのは有名な話。

それだけだと、言語関係ないね

http://anond.hatelabo.jp/20110520003849

開発言語は、適材適所ってことでいいのではないかと思います。

うん。けど、今やC言語の「適所」なんてほぼ存在しない、という彼の意見には完全に同意だな。

組み込み分野で生き残っているのは、良い後継言語が開発されていないからであって、言語自体が優れているからではないし。

http://anond.hatelabo.jp/20110520003007

Java管理できるチーム、もしくは個人なら、Cでも管理できる。

プロダクトの管理は、言語依存じゃない、構成依存だ。

Cで管理できるチームならJavaでも管理できる、の間違い。逆は真ではない。

プロダクトに関わる人数が増えれば増えるほど、言語自体の素性の良し悪しが生産性に大きく響いてくる。

あと、携帯組み込みの手法に拘って、フルブラウザその他諸々の最新トレンドに全くついていけなかったのは有名な話。

2011-05-15

http://anond.hatelabo.jp/20110515101054

TRUEが(組み込みで)定義されてる処理系だったら間違えるわけないんじゃないの?知らないけど。

レガシープログラマ

まぁ、タイトルの「レガシープログラマ」とは私の事なんですけどね。

最近(?)外注や自社の若いのが作ってくるプログラム

    if( foo == TRUE ){

という判定文をよく見かける(fooはいろんなオブジェクトだと思ってほしい)。

個人的には、この書き方、嫌いなんだよね。

    if( foo ){

    if( foo != FALSE ){

と書いて欲しいわけよ。とにかく「TRUEか?」という判定にはして欲しくないわけです

で、なんでこう書くの?と外注や若い連中に聞いたら、「TUREは1ですから」と必ず答える(断言する)。

あ、あれ???自分は「TRUEはFALSEでは無い。確定しているのはFALSE=0という事だけ」だとずっと思っていたんですわ。

古いC言語風に書けばこんな感じ。

#define FALSE 0
#define TRUE (!FALSE)

かに、実際に値を表示させてみると、昔のVC6だと「1」という結果が出てくるし、VB6だと「-1」という結果が出てくる。これ、当時混乱の元だったんだよね。

しいC++や規格ではBOOL型というのがきちんと定義されたと思うけど、製品寿命20年とかいう私の職場では、DOSやC(K&R)、アセンブラは現役だし、プラットフォームもなにもWindowsに限らない。組み込みマイコンも使う(うちのところはVxWOKSだが)し、UNIXLINUXも使う。

もちろん、マネージドC++.netFramework)やC#JAVA、Parlも私は使うし。でも、どのプラットフォームでどの言語になっても「TRUEか?」という判定文は使ってこなかった。

で、試しに、VC2008のincludeフォルダgrepしてみたら、

#define TRUE 1

あ、ほんとに「1」だ。

処理系によっては(特に古い処理系)、

typedef bool int

なんて見かけるから、やろうと思えば「5」でも何でも数字が入ってしまうわけですよ。そこで「== TRUE」なんてやられたら、絶対に成立しないわけで。バグの温床になるんじゃないかなー、と思ってかたくなに前述の姿勢を持っていたわけです

今(最近の)言語はきちんと「BOOL」型(またはboolという名のクラス)を定義されていて、コンパイルエラーになるか、自動的に補正してもらえるのかもしれないけど、ちょっと気持ち悪い。

最近、ちょくちょく外注や若い連中と意見や話が合わず、「ああ、俺ってレガシープログラマなんだな」と思う事が多くなった今日この頃ネットワークに平気でリトルエンディアンのデータを流すとか、勘弁して欲しいLANアナライザでデータが見にくくてしょうが無い。

でもなー、何も、Windows統合開発環境だけの仕事で食っていけるとは思って欲しくないなぁ。

2011-04-05

http://anond.hatelabo.jp/20110405175130

組み込み屋の経営方針として「人命に関わる仕事をしない」という所がある。

ガスを扱ったり、ブレーキ制御であったり、そういうことを引き受けない。

理由は会社の規模として「補償ができないから」。

これは、真っ当に責任を引き受ける事を考えた上での結論。

責任能力以上の仕事を受けてはいけない。


東電が、引き受けた原発の「責任」をどう考えていたのか。

その責任に対して、社内の体制をどうしていたのか。

こういう事は有事に初めて試されるのではない。

仕事を受けた瞬間から始まっている。


あなたが、今時点で「まず無理だろうなぁ」と感じている以上、【絶対に無理】と断言して良い。

これは「日本的な体質」とか言う話ではない。

2011-02-04

http://anond.hatelabo.jp/20110204124600

組み込み装置場合信号線をどう使うかって結構大事なんだよね。

スペースが無いから大きい基板を作れないんで。

アドレス線の上位ビット分を繋がないとかすると、その分だけ他の事に使えたりするのさ。

設計上32GBで十分とするなら、無駄アドレス線なんて不要だし。

(回路上で0固定にしちゃえばいいから)

まぁ、ゲーム機場合、特にこれから出す新機種なら、そんな貧乏くさい事、しないとは思うけれどね。

PSP組み込み的に、大きいといえば大きいし

2011-01-19

それだと、

http://anond.hatelabo.jp/20110119002822

事実上GPL由来部分の開示を請求することはできなくならない?

無線ルータのような組み込み機器だと具体的にどんなソフトウェアが使われているのか動作からは推測できないことが多いから。

2011-01-16

http://anond.hatelabo.jp/20110116201449

Webサービスならいいけど、組み込みや交換機や銀行でやられたらたまらん。という話です

どの話?

http://anond.hatelabo.jp/20110116195200

まずはじめに、見ず知らずの他人に対して、簡単に情弱と言わないこと。これはコミュニケーションというか、人としての基本。

他人を馬鹿だとか何とか、容易にネガティブ単語を使わないこと。

アジャイルを否定しても、ウォーターフォールの時代には戻りませんし、

交換機や銀行システムは、アジャイル中心ではつくれまい・・・

から、別に今も昔もこれからも、ウォーターフォール中心の産業は、かわらず、ウォーターフォールだろ。

ただ、ウォーターフォールといっても、アジャイルの技法は取り込んでいくし。

 

ここが大切なんだがアジャイルであっても ウォーターフォールの良いところは取り込んでいくべき。(もっとも大企業であっても、もうまともにウォーターフォールをできる企業は少ないけど)

おおよそ、今のウォーターフォール否定派は 食わず嫌いか・・・自分ウォーターフォールで指揮する側にまわってないだけじゃないかと。

 

繰り返しになるけど、私自身はアジャイルもやるし、ウォーターフォールもやる。

私が否定するのは、ウォーターフォールをやりもせず、アジャイルアジャイルと騒いで、ノリのまま、レビュー仕様というものを疎かにする人のことだ。

Webサービスならいいけど、組み込みや交換機や銀行でやられたらたまらん。という話です

 

最後になるけど、温故知新

他を否定すること無く、古い技術も学んで、新しい技術も取り入れて、進化することこそが大事で。アジャイルが優れているとか、ウォーターフォールが優れているとかそういう事じゃないよ。

組み合わせて、適材適所で使い分けれれることが大切。

 

交換機なら、ウォーターフォール式に Webなら、アジャイル式に。適材適所。ウォーターフォールも万能じゃないアジャイルも万能じゃない。

にもかかわらず、アジャイル万能であるかのようにのたまう、その姿勢が、ダメだと 思うという事。アジャイル駄目だと聞こえたらすまんかった。

方式はダメじゃない。 使う人間が間違ってるんだと そういう事。。

2011-01-05

http://anond.hatelabo.jp/20110105183215

組み込み世界ってキモイなー

テスト基盤と実機基盤で判定が逆とか普通にあるし、電圧判定の閾値が違うとかもざら。

テストと実機で同じコードが使えるように、大抵のものは置き換え可能にしておく。

んで、コンパイルオプション間違えて実機動かないとか、新人は良くやる。

http://anond.hatelabo.jp/20110105182508

おれは組み込み云々を書いた増田なんだが、もともと「my_false」の話してたよね?

そういう独自定義の話でないの?

そりゃ組み込みなら普通ON/OFFと表現するが、「#define OFF 0」とかあんましない。

チップそれぞれの実装次第で、それぞれのOFF状態って違うからね。


んで、話見てると「my_false」がダメって話ではないんだね?

http://anond.hatelabo.jp/20110105180211

から、後発企画=C++へのコンパチビリティでしょ?

#define false 0

としないで

#ifdef XXX

#define false 0

#endif

とするか?

なんで、ifdefで定義そのものをOFFれるかっていうと、まれにfalseを理解できるCコンパイラいるからでしょ?(つまりC++コンパイラを使ってCをコンパイル通すケース)

からC++がなかった時代はそれでいいけど、C++ができた時代には、コーディング規約を見なおさないといけないという話でしょ?

ちなみに#define FALSEを残すのは MSコンパイラへのコンパチビリティ。MS系の旧ライブラリを通すときは一応FALSEで渡したほうが良い。

作り直したタイミングで、新しい企画に対応していかないと、いつかどこかで、対応できなくなるし、そもそも、falseは有名すぎる。

 

そんな、改変すればいい特殊ルールいつまでも残しておいて、組み込みは特殊だからとか言うなって話はあるよね。

普通の一般プログラマでも、改変できる範囲は最近は多くなってきているのに、わざと、さわれれない旧ルールを残し続ける。

コードが同一なら、そらしょうがないけど、バージョンアップで、新規作り直しのタイミングで変えないとしたら、それはおかしい

しい人入れなきゃいけけないし、短期的に人を増やすタイミングなんていくらでもある。

そういう時に、ダイナミックに人を追加できないようなコーディングルールにする意味が分からない。

コーディングルールを決めるのは、設計担当で、人のアサインの事まで考えて、ルールを決めなきゃいけないんだから、一般のC++プログラマを短期的に追加できるルールに変更すべき

それが、大きな問題になるならわかるけど、falseをやめて、ON/OFFにする もできない理由は思いつかない。(作り直しだから

http://anond.hatelabo.jp/20110105153756

それはON/OFFじゃなくて?

true/false は真偽値なので

if(false){

}else{

}

がelse節になる必要がある。

if(local_false){

}else{

}

にthen節なるようなfalseを定義するべきじゃない。

回路の1/0判定については ON/OFFを割り当てるべきでtrue/falseを割り当てるのはそれこそ、プログラム概念設計ミスだとおもわれる。

そのために

if(value==local_false)

なんて毎回やるのは、さらに 混乱のもと

if(value==local_on)

ならば、誰でも混乱はしない。

 

なぜON/OFFの定義をすべきところを falseを使う?

falseは真偽値というコンパイラが使う値であって ハード固有値を割り当てて良いものはないと思われる。

 

大げさに表現すれば、

typedef long local_short

typedef short local_long

という定義も可能だが

sizeof(local_long) < sizeof(local_short)

なんていう定義をするべきではない。

ローカルFalseはこれに近い。既存コンパイラが定めている概念を ひっくり返すようなローカル定義は この時代ではするべきではない。

 

#define HARD1_ON 0

#define HARD2_ON 1

これは必要。

 

#define HARD1_FALSE 1

これは害悪

 

組み込み書いている人を見るといつも思うんだが組み込み以外の人がヘルプで読むときのことを考えてルールを作れと思う。

どこの鎖国プログラマだと。

- 転職ならen
- 派遣ならen
7ページ中1ページ目を表示(合計:152件)