はてなキーワード: インタフェースとは
コーダーってのはどういう人のことを言うの?
上流会社がコードを書いてはいけないという謎ルールがある会社では、「それを書くより自分でコード書いたほうが早くない?それを見たら何の疑いもなくコードになるよね?」みたいな仕様書で発注していたという噂を聞くけれど、それをプログラムに起こすのはコーダーって感じがする。
「前にいた会社ではすぐにコードに起こせるような詳細な仕様書をもらってました」みたいな発言もコーダーって感じがするけれど、そういう認識であってるのか?
プログラム中でどのアルゴリズムやデータ構造を使うか、どのライブラリーを使うかを自分で考えて選ばないといけないとだんだんとエンジニア感が出てくるんだろうか。インタフェースなどの仕様を決めて、複数人で仕事ができるようにできているとさらにエンジニアって感じがする。チーム内どころか遠隔手続き呼び出しなどで全く知らない人も呼べるような関数の設計をするとさらにエンジニアという感じがする。
プログラミング言語を印象批評している記事に触発されて、自分も印象批評してみようと思う。
JavaScript以外にもブラウザ上でぐりぐりするのにはJava AppletとかFlashとかSilverlightとかいろいろあったけれど、結局標準化を成し遂げたHTML5に淘汰されちゃった感じがする。LiveScriptからJavaScriptに改名されたり、規格を話すときはECMA Scriptだったりといろんな別名を持つ。一応、プロトタイプベースのオブジェクト指向言語なんだけれど、それを意識してコードを書く人がどれくらいいるかは謎。
Pythonは小さいコードを書くのには楽だけど、これで大きなコードを書くと思わぬ変更で思わぬことが起きるのでつらい。しばらく使うとPythonイヤイヤ病にり患し、goを使うようになるらしいとか、ならないとか。pythonで大規模なコードを万一書こうと思うなら、カバレッジが高いテストを書いてくれと思う。
Javaは初期のころオートボクシング / アンボクシングもなく、ストイックなオブジェクト指向言語だった記憶がある。ただ、staticを多用してオブジェクト指向とは程遠いコードも簡単に書けるので、Javaで書いているからと言ってオブジェクト指向だと思うのは禁物である。
PHPはWebネイティブな言語で、初期のころHTTP POST/GETなどで渡された変数がそのままプログラム中に出てくる機能や初期化していない変数を最初に使うと空文字列あるいは0で初期化するという機能があった。また、文字列と数字を臨機応変に切り替える機能もあり(今もそうかは知らん)、数字と文字の比較を比較演算子(==)でシームレスにできる。パスワードチェックみたいなコードで===ではなく、==を使っているとPHPを知らないバカ扱いされる。
C#はHello Worldくらいしか書いたことないから知らん。monoのような互換環境があるのは知っているけれど、わざわざPC Unix上でmonoを使う気分にはなれなかった。
C++は黎明期に使った感じと、C++11以降に使った感じが驚くほど違う言語。今はかゆいところには大抵STLで手が届くし、autoを使えばイテレーションで腱鞘炎になることもない。PC Unixにも最初から環境がインストールされているか、簡単にインストールできるので毛嫌いせず使うとよいと思う。
Rubyはぎょっとする変更をよくやるというイメージ。これで書かれたプログラムを長年愛用してきたが、ぎょっとした変更を入れられて動かなくなったのでgoで書き直した。その点ではpythonも3でおいていかれたので嫌い。
TypeScriptは書いたことないから知らない。JavaScriptだと大規模コードを書くとつらいのでTypeScriptを使おうという人がいるのは知っている。大規模なコードを書くとしたら、インタフェースに合った呼び出しかコンパイル時にチェックしてくれるような強く片付けされた言語のほうがよくなってくるというのはわかる。
Cは片付けし、構造化したプログラムを書きやすくしたアセンブラ...というイメージだったんだけど、C99くらいから便利機能がいろいろ入ってそうでもない感じになった印象。昔はCのコードを見たら最適化した後のx86アセンブリが見えていたんだけれど、最近は見えなくなってしまった。子供のころ、本屋で秘伝C言語問答 ポインタ編に出会ったのがこの業界に入るきっかけだったのかもしれない。ほかの言語でいろいろ楽に書けるから、カーネルをいじるか、システムコールをたたくかするときくらいしか自分の中では出番がなくなってしまった。
これ以下のランキングのもその気になったら書こうかな。
YouTuberくらいのクオリティをなぜか前提としてるんだよな、会話してると。
映像もとりあえずウェブカムでって言ってたのが、YouTubeみたいにならないとなり、一眼レフをUSB接続とかになる。
映像は資料見始めると関係なくなるので気にならなくなるが、音声はみんな気にする。
Bluetoothでつなぐヘッドセットはダメ。接続が切れたり、認識が甘かったり。
赤と緑の端子がついたヘッドセット、もしくはスマホ付属の4極端子のヘッドセットはいまいちだが、ギリギリ。
下手に新しく2000円くらいのものを買うよりiPhone付属のものの方がよかったりする。
コンデンサマイクとポップガード+オーディオインタフェースだと、生活音が気になる。
SM58はマイクを口元まで近づけることをあまりしないので声が遠くなる。
それ以前にマイクとの距離が長時間の会議だと、姿勢を変えるので変わって、音が大きくなったり小さくなったりする。
会議に参加している人の音量がそろっておらず、再生する側の音量を大きくしたり小さくしたり定期的にしなくちゃならない。
あと部屋の中で反響する声も消えてくれる。ただでかい。卓上のマイクスタンドだと重すぎて角度を支えきれない。
eraseToAnyPublisher()で全部AnyPublisherにして使うのが作法みたいに思えるけどそうでもないのでは?
あれは他のPublisherと合成するときやらに使えるから使っているんじゃないかな。
なぜ元の増田がそう思ったかと言うと、サンプルでeraseToAnyPublisher()してるコード多いからだよね。
rayなんとかのCombineの本でもFutureをeraseToAnyPublisher()してる例はある。
でも、あれって実際のアプリ開発というよりも本で説明するためという気もする。
なので実際に我々がアプリ開発する時はFutureはFutureとしてインタフェース使ってWeb APIの結果を受け取るんじゃない?
インタフェースとしてFutureで返すという制約の表現は普通に良いと思う。
まあflatMapとかでそのインタフェース呼び出すんで結局それがFutureなのかどうかっていうのは、flatMapを書いている部分、つまり大抵はObservableObject側ではあんまり重要ではないとも言える。
仕事でKubernetesというものを使わないといけないので勉強している。
1)CRIの仕様を満たすコンテナランタイムがワーカーノードのcgroupsを操作し、
2)kube-proxy(カーネルモードの場合)はワーカーノードのiptablesを操作し、
3)Envoyがサイドカーとして注入された場合は注入されたPodのiptablesを操作し、
4)K8sのコントローラとして動くxxプラグインは全部etcd上のリソースをwatchでポーリングしていて、変更通知が来たらアクションを起こすので必ずkubernetesのコアサービスの後追いをする
原子的な更新をしないとダメなもの(etcd、cgroups、iptables、仮想ネットワークインタフェース、OSのストレージのマウントポイント)の動きに注目すればきれいに理解できる気はしているんだけど、この考え方はあってるんだろうか
ソフト業界の人間じゃないのだけど、なんとか業務改善したいと思い、なんちゃってプログラミングはしてる。
Qiitaやブログなども見てるのだけど、なかなか自分の業界に合わない。
数値計算用のプログラミングやってる人なんて増えてないし、ビジュアライズするソフトもそんなに良くなってない。
Windowsしか選択肢がなかった頃は、Windowsプログラミングやってる人が多くてMSDNのよくわからない表現も、親切な人が解説してくれていた。
C++でFPGA触るプログラム書いてインタフェースをPythonなんてのは少数派なのはわかるのだけど。ドライバー周りはブラックボックス増えたように感じる。
CERNのROOT使ってグラフ描いているのも少数派に感じる。
使いにくいのだけど、ソフト業界では話題にならないから、もう改善はされないんだろうなと思ってる。
自分で直せと言われるだろうが、自分の抱えている問題を解くためだけのプログラムを組んできたので、そんなスキルはない。
機械学習が流行って、PandasやJuliaで計算する所まではよかったが、ビジュアライズが自分と合わなかった。
ヴァイオリンプロットや数字が記入されていないヒートマップなどを見ると、派手で多くの人にウケそうだけど、
議論しようとすると数値で議論できなくて誤魔化されている感じがする。
ビッグデータ必要だと言いつつ、グラフを描く段階になって、そんな大きなデータプロットできないとなって、突き放された感じがしてしまう。
Webのサーバーに登録している多くのユーザーの特徴を整理するには良いのだろうけど、
GoogleやAmazonが出てきた当初からヤバいと言われていたと思う。
ふと不思議に思うのは、ヤバいヤバいと言われつつ、どうしてここまでになったのか。
1つは一言で表されない点にあったと思う。
実態はコングロマリットだが、Googleだと検索会社だと思われていたが、
広告会社であり、スマフォ会社であり、カーナビ会社であり、本屋であり、レンタルDVD屋、クレジットカード会社(Pay)であり、ゲーム会社であり、ニュース報道機関であり、MSOfficeだった。
既存の本屋がこのままだと業界が潰れる!と訴えたとして、レンタルDVD屋などの他のジャンルは反対しない、
といったのを繰り返し、いつの間にか全部食われた
もう一つはお金をばら撒いたこと。個人にしろ、企業にしろ、お金を出しているところに逆らえない。
スマフォを売るのに従業員と客を合わせることはしない。Amazonだと宅配は他社を使うようにしている。
人を使うところはスケールしないとか、保険営業のようなマニュアルを作るのは苦手だとか、色々あるんだとは思うが。
なんで書いてるのかというと、本当によくなったんだろうかとふと思ったからだ。
障害者のためのスポーツというけれど、実質的に主に足に不自由がある人のオリンピックになってね?
走る系のスポーツは義足の選手ばかりだし、球技系は両手使えない選手見ないし(つまり足が不自由な選手ばかり)、水泳系も手が使えない選手をあまり見ない。
ルールが理解できない知的障害者も多分いないし、精神障害者は蚊帳の外。
なんつーかe-スポーツってパラリンピックへの応用のしがいがあると思うんだよね。
様々な障害を持つ人のためにユーザインタフェースを工夫しまくってできるだけ沢山の障害者を選手にできればいい。インタフェースの差が実力差になってしまうのなら、そこは技術の発展のチャンスだし、e-スポーツはルール外のことはできないから知的障害者の参入障壁も低い。
そう思うんだけど、みんなどう思うよ?
結局、そこまで大した進歩はなかった、と言うのか、もはや周りが変わっていくことにもう慣れきってしまったのかも。
インタフェースが出てきてから大きく変わったような気もするし、結局変わっていないような気もする。
そういえばこの間検索に2ちゃんが引っかかったんだが、ちょっと笑ってしまった。結局、年収やら童貞やら結局、今のトレンドと何も変わらないな。
あ、30年たっても結局俺は童貞のままだったわ。すまんな。
ほんといつも思うんだが、AIだのロボットだのが発達したって結局俺らが働かなくちゃいけないのってなんなんだろうな。
どうせなら働いてる分俺らにそのまま寄越してくれたらいいのにな。
若いのってほんと羨ましいわ。だめだ、もう時代の変化についていけなくなってる気もする。
おっさんたちがスマホ使えないのって正直バカにしてたけど、今や俺がそのおっさんだ。
読唇入力だってこの間やっと覚えたばっかだし、インタフェース旅行だって3D酔いしてた俺は苦手すぎてできない。
まぁ旅行は別に興味ないからいいんだけど、時代は自分のためじゃなくって、若者のためにあるってことにひしひしと辛さを感じるわ。
もう少し頭が動かなくなったら、老人ホームに入って一生ソシャゲする生活になるんだろうな。
まぁ、別にいいんだけど。
Lチカから次に何かをしようとするとかなりハードルが高いのが電子工作。
KiCadやOrCadやAltiumの使い方までは調べればわかるが、PCBをどう設計すればいいかの情報はほぼない。
トランジスタ技術やインタフェースを読めばわかるかといわれると、ネット上に居る職人に言わせれば間違いだらけの(笑)のシロモノらしいのだが、
どこが間違っていて、間違っていた場合何が起こるのか書いてあればいいのだが、(笑)で済まされる。
ネットに記事もなければ、書籍もないので、指摘するときに引用すらできない状態らしい。