はてなキーワード: ポインタとは
もう何年経つだろう。
その子を初めて見たのは、とある市町村のふるさと納税制度の運営パートナーを決めるためのプロポーザル型入札の会場だった。
100㎡もないだろう狭い会場の中に私達のグループが入ると、市の職員が数名、一番遠くの壁に並んで立っていた。ふるさと納税の担当部署の職員だった。
その一番左端に、その子はいた。若い職員だった。爽やかなセミフォーマル姿で、装いはパリッとしている。物憂げな瞳を足元に向けて不安そうにしていた。
スライドの正面には、険しい顔つきの幹部職員が座っていた。審査員の顔を見渡し、私達は最初の挨拶(会社と説明者の紹介)を簡単に述べた。副市長の「それでは始めてください」という合図と一緒に、『その子』もすぐ後ろにあった長椅子に他の職員とともに腰かけた。
なぜ、その子の姿が目についたかというと、清潔感だ。清潔感がとんでもなかった。若いっていいな、自分もあんな25くらいの頃に戻りたい、という雑念を捨ててノートパソコンを立ち上げ、レーザーポインタを起動した……
約1週間後、弊社がめでたく第一候補者(※ほぼ内定という意味)として選ばれた。契約書に押印するため、F市役所へと、私が席を置いているオフィスのトップ(所長としておく)と一緒に向かった。
ふるさと納税の事業担当課(地域を盛り上げる的な名前が付いていた)の窓口に行くと、まだ約束の10分前だというのに、その子(Sさんとする)が待機していた。あの時と同じように緊張した面持ちだった。すぐ隣には、四十代半ばくらいの男性上司がついている。
「先日はどうもありがとうございました!」
「緊張しましたよ~」
みたいな世間話をちょっとした後……契約書に印紙を貼って、割り印をして、契約者名のところに押印をして、最後に捨て印を押そうとすると、いらないですと言われ……そして、Sさんに契約書を手渡した。
Sさんが不慣れな手つきで2枚の契約書に市長の印鑑をゆっくりと押すと、はにかんだ笑顔で1枚を返してくれた。
「今後、私がF市の事務担当者になります。今後ともよろしくお願いします」
こんなやりとりだったかな? 男性上司の人は、「この子がメインで渉外を担当します」と説明していた。
衝撃を受けた。想定よりずっと若い人だった。
私がSさんくらいの時は、毎日サークルの部室でごろごろして、アルバイト帰りに仲間と飲みに行って、恋人と別れてショックを受けたりしていた。
それだけに衝撃だった。異常だ、とその時は感じた。でも、それは私達から見た場合の感覚であって、向こうからすれば違う。高校を出てそのまますぐに就職する。そういう人も多くいて、たまたま私達の世界に大卒が多いだけで。それだけの話だった。
大学生ほどの年齢の子が、ふるさと納税という大きなお金が動く舞台で、公務員組織にとっては重大なチャレンジであろうこの機会に、一応はプロのITコンサル(ITだけじゃないけど…)である私達と折衝する役割を担っている。
私の経験上、官公庁側のこういった花形事業の担当者は、〇〇長が付くような役職の人か、30代前半くらいで、昇進が期待されている人が選ばれる。
契約期間は2年だった。
その間に、ふるさと納税制度の導入パートナーとして、システムの整備やら、返礼品の選定やら、業務フローの構築やら、その自治体が安定して制度を回せるまでの準備をしていく。
3年目に晴れて制度がスタートしたら、弊社はシステム保守業者として、毎年度、特命一者タイプの随意契約によって安定的に仕事を得ることができる。
肝心のSさんだけど、こちらの想定よりも頼りになる子だった。普通なら無理なお願いも聞いてくれて、それでいてこちら側の仕事、主にシステム関連の知識をぐんぐん吸収していった。
地頭がよく、それでいて物事に対して本気になることができる。そういう子だった。
ちょっと脇道に逸れる。
この時は、「F市ふるさと納税制度導入パートナー選定業務」みたいな件名で入札が行われたのだが、弊社が勝つ確率は約85%と推定されていた。
というのも、入札実施の前年度に弊社がF市に呼ばれ、「ふるさと納税をやろうと考えているのですが~」といった具合に相談を受けた後、参考見積書と設計書をF市に提出していた。そして、入札にあたっては、その参考見積書と設計書がそのまま採用されている。
おわかりいただけたかと思うが、他社がプロポに入れないよう、提出書類に予め細工をしておくのだ。そうすることで、こちらに有利な形で契約を取りに行ける。実際、プロポに参加した企業は弊社のほかに2社しかなかった。その経済圏におけるライバル企業の数は優に10社を超えているにも拘わらず。
一般に、地方自治体の担当者はIT関連に疎いことがほとんどであるため、こうしたことが通用してしまう――でも、Sさんは違った。上記に挙げた弊社が勝った理由について自分なりに考えて、私達に指摘をしたのだ。
「ほかの自治体でも参考見積書を出したら入札にかなり勝ちやすいんですよね?」と自然に切り出したうえで、他社が入札に参加できないように行った諸々のワザを見抜いた。
Sさんは、システム関連の勉強をして、プログラムの打ち込みに挑戦して、職場でも、電子機器の導入やセキュリティ責任者といった役割を買って出ていた。
一方で、おっちょこちょいなところもあって、メールに添付文書を忘れるのはしょっちゅうだ。褒められると顔を真っ赤にする。急に頭の回転が鈍くなって、とんちんかんな冗談を言ったりする。
一応はコンサルなので、競合他社と同じく顧客の評価やランク付けを行っている。その中でも、F市のランクは高い位置にあった。
無茶な要求をしないし、レベルの低い問題でいちいち呼びつけたりしない(自分達で解決する)し、十分な契約金額と契約期間を用意してくれた。市役所内のシステムの深いところの情報(通常、外部組織に閲覧させるべきではないもの)を見たいといった時も、システム管理課に掛け合ってくれ、数時間もかからず情報を手に入れることができた。
その2年間で、Sさんの表情が曇る時もあった。
年配の職員がSさんの隣に座っていたのだけど、折り合いが悪そうにしている時があった。その先輩がSさんに行った指摘について、私が座っている窓口まで聞こえることがたまにあったが、大抵は些末な内容だった。
文字の送り仮名(行なうじゃなくて行うとか、見積もりじゃなくて見積りなど)や、請求書の処理件名の些末だと思われる部分の指摘、イベント運営マニュアルでの各人の動き方(特にその先輩の)について具体的に文書で示すようにとか、ほかにもグチグチと同じようなことを言っていた。その人との話が終わった後に窓口に来たSさんは、大抵ムスッとしていた。表情が曇っていた。
ある訪問機会のことだった。うちの所長が私と一緒に来ていて、Sさん一人が役所の玄関まで送ってくれたことがある。玄関から離れて社用車へと歩き出す直前、私はついに言ってしまった。
「Sさんは公務員も向いてるけど、コンサル業界も向いてるんじゃない!?」
反射的に「やばい」と思って、所長の顔を見た。
「うん。Sさんウチおいでよ! 歓迎するよ」
所長もノリノリだった。Sさんは俯いて、唇を尖らせていた。
「まだ21なんですけど」
「大丈夫。また今度考えてね。〇〇さん(※私)も応援しているから」
帰りの車の中で、所長が言っていた。
「もちろん冗談だよ。あの子は公務員の方が向いている。でも、うちの採用試験に来てほしいとも思う。働けるだけの実力は多分持ってる」
……それから一か月後。私の携帯に電話が入った。Sさんからだった。
市役所の仕事があんまり好きじゃないんだって。今の仕事は楽しいけど、前の部署で戸籍の仕事をしていた時は、やめたくてしょうがなかったんだって。何から何まで細かすぎるところと、自分で考えて動けないのが嫌なようだ。自分で考えて、自分で動いて、結果に対して責任を取るタイプの仕事がしたいらしい。
私一人で考えてもしょうがないので、所長に報告をして、本社のスタッフ部門にも相談したところ、結論が出た。
・理由①として年齢。大学を出ていないコンサルタントはいるが、そこまで若い人は例がない
・理由②として取引先との関係。人を奪うようなことをすべきではない。彼女が本当にその気であれば止めないが...
・あなた達がそこまで推すなら、23才になったら採用試験を受けてもいい。ふるさと納税導入パートナーの契約期間が終わるまでは必ず待つこと。
あと1年ちょっとだった。
私はこの時、Sさんにとってどんな道がいいのか? と思案していた。
普通に考えれば、地方公務員の方がいいだろう。コンサルタントの道を勧めてよかったんだろうか、あの子を不幸にしやしないかという不安に捉われたのを覚えている。自分で言い出しておいて、本当に勝手なことを考えていた。
それから約1年後。弊社が借りているオフィスの一室に、Sさんがスーツ姿で現れた。
相変わらず、清潔感が抜群だった。真白のシャツがよく似合っている。
試験は何の不安もなかった。書類選考は顔パスだし、筆記試験(Webテスト)は限りなく満点に近かった。
一次面接を務めた私と所長は、Sさんに対してほぼ同じ結論を下した。内容としては、①地頭がいい。頭の回転の速さも悪くない、②温かみがあり、顧客の安心に繋がる話し方である、③偉ぶったところがなく謙虚な姿勢が見える、といったものだった。
本社での二次面接も無事に終えた。面接官だったディレクター(日本企業でいうと本部長~役員くらい)に電話で話をうかがったところ、「概ね一次面接の印象のとおりの子だった。難点として、芯が弱いところがある。強烈なキャラクターの顧客相手だと通用しないだろう」とのことだった。
「次の面接には進めますか」と聞いたところ、「三次面接を行う必要はないと判断した。他社も受けているとのことだったので、ここで内定を出す。弊社のほかは辞退するように伝えてほしい」
当時のメモによると、私はディレクターとこうしたやり取りをしていた。懐かしい思い出だ。
当時は、「Sさんが採用されますように! 弊社でなくても、ほかのコンサルに入れますように」と毎週のように祈っていた。それくらい、Sさんは性格のいい子だった。今でも、あの笑顔を思い出して幸せの余韻に浸ることがある。
そろそろ結末について話す。
Sさんの退職時期と、ふるさと納税導入パートナー企業としての契約期間の満了はほぼ同時だった。
最後にSさんの職場を訪れた時の、あの男性上司の苦渋の顔を忘れることは難しい。
やるせない表情をしていた。見た目は笑っているけど、心の中でなにかヘドロのような汚物がブンブン飛び回ってるんじゃないかって、そんな顔つきだった。
Sさんがうちに来てくれたのは嬉しいけど、本当に申し訳ないと思った。
さて。通常のパターンだと、ふるさと納税を運営していくための基幹システムの整備や地元産品の手配体制、業務フローの構築などを終えると、弊社はシステムの保守管理を地方自治体から請けることになる。
……タイトルにもあるように、弊社は入札の指名を受けられなくなった。法律上は指名停止の理由にあてはまらないので、指名リストに載ったまま『除外』された。弊社はもう、F市から参考見積書や設計書の提出を依頼されることはないし、プロポーザルに呼ばれることもないし、参加申込ができたとしても必ず負ける。
システムの保守管理は、F市が戸籍や市民税のシステム保守を請け負っている会社が一任することになった。その後、弊社のスタッフがF市を訪れたことは一度としてない。
当初は、「ウチのスタッフがいないのに保守なんてできるの?」と疑問に思っていたけど杞憂だった。Sさんが気を吐いて、どんな職員や業者に当たってもシステムの運用管理と保守が担えるように引継資料を作っていた。
今回のような事態を予測したり、意識していたわけではないだろう。ただ、Sさんが仕事に対してひたむきな人だったから、物事に対して本気になれる人だったから、普通の地方公務員のレベルをはるかに超えて、みんなのために頑張ることができた。それだけだ。
筆に熱を込め過ぎた。反省している。
あれから4年以上が経って、私は別の会社に転職した。SさんはITとは別の分野に異動になり、忙しい毎日を送っている。はてな匿名ダイアリーを見ている可能性は0%といってもいい。それくらい忙しい環境だ。辛い日々を送っているかもしれない。いや、確実に辛いだろう。それこそ地獄のように。
今でも思い返すことがある。私があの時、Sさんを誘ったのは本当に正しかったかということだ。
私はSさんが職場で悲しい顔をしていた時、なんとかしてあげたかった。そんなことはできるはずもないけど、それでも助けてあげたかった。だから、無責任な立場ではあったけど、うちに来てみないかって、声をかけた。
本人にとって良き選択だったのか、それがわかるのはまだずっと遠い未来のことだけど……過去でも、現在でも、未来でも、私はSさんの幸せを願っている。
一緒に働けたのは短い間だったけど、楽しかったよ。また会おうね。
大学の専門課程ではじめてプログラミングに触れるケースを想定する。
情報科学専攻で半年か一年かけてやる程度の内容だが、他のほとんどの科目でもそうであるように、要領の良い奴なら数週間でマスターできる。
実際、世の中にはこのレベルの奴なんか珍しくもなくいる一方、Pythonチュートリアルレベルの文献を数ヶ月かけても前半数章すら読めないような奴もいて、そういう奴が「プログラマになりたい」とか言ってる。本当に社会の迷惑。やめてくれ
それは教えればいいのでは?
別に苦言を呈するような話ではないと思う。
たとえば実用的なプログラムでジェネリクスや非同期処理を使ったことが無い人がプログラマとして応募してくるのは珍しくなく、もし必要になって分からなければ指導すればいいだけ。
ポインタ(あるいは値と参照の区別)がわからないやつが、プログラマとして入ってくる、という現実があって、それに文句を言っているのでは
「自分すごい」みたいな話でなく
低レベルから努力してやっと平均かその一段下くらいになっただけの雑魚が「自分は上級者」だと勘違いして偉そうにしているケースが多くて、嫌になる。
たとえば、C言語のポインタが難しいとよく言われる。まあ、中学生や高校生がはじめて学ぶならともかく、あんなもの別に難しくはない(実際のソフトウェアでポインタを適切に使うことは難しい)。
実際、ポインタに躓かなかった人なんかたくさんいて、そういう人の一部はより高度なことをどんどんやっている。一方、ポインタに躓いて努力してやっと最低限のレベルに達したような人が、声を大にして「プログラマになるなら、ポインタくらい理解しないとな」とか言ってる。
プログラミングのセンスのある奴はすぐ見抜けることだが、アレには何の重要性も無い。だが、頭の悪い奴は、あの程度でも苦労しないと覚えられないから、重要だと思ってしまうらしい。これはギャンブルや宗教にハマる心理と同じである。つまり、時間や労力をかけたのだから、その対象にそれに見合う価値があって欲しいと思うわけだ。
頭が悪いと、こういう意味で物事を客観的に見られなくなる。学歴コンプレックスになると、一生そのことを引き摺って、何に関しても学歴と絡めて論じたくなるようなものだ。
軽く叩くと、画面にアニメーションが増えるシーン(7時のニュースとか)があるけど、なんかもどかしさを感じる。
あの一瞬、アイコンを探すために予報士の解説が途切れるので、なんかあれれってなる。
まず、どのアニメーションが出てくるかの順番はどうせ決まってるんだから、画面に複数のアイコンは必要ない。1つで良いはず。
それなら単一のボタンに置き換えられる。そして、それは指示棒の手元にスイッチ化すればできるはず。
つまり、気象解説も普通のプレゼンと同じスタイル(クリック機能付きレーザーポインタを使うイメージ)で解説できるのでは、と思うわけですよ。
なんで、クリックボタンに当たる機能をアイコン化して画面側に持たせているのか不思議だ。
いや、その解説に自由度があるならいいよ。どのアニメーションを使うのか、予報士によって変わってくるような内容なら。
でも、画面の出てくる順番が決まってるのだから、そうなる必要性は低いように思う。
それとも、あれがぶっつけ本番なのかな?
追記:リンクちゃんとした(URLベタ打ちだと更新自体できなくなるっぽいんだよね)
https://anond.hatelabo.jp/20210202095514
「ロジクールのM570tを長年使い続けてきた俺が1年近く買うのを我慢してやっと踏ん切りがついた完全上位互換商品をどうしていきなり買ったんだ!!!!」って怨嗟が漏れ出てしまいそうだけれど、1万円が勿体ないという気持ちはよくわかるので色々書いていきます。
まず、気になってるポイント4つのうち2つは設定で改善できそう。
・トラックボールが滑らか過ぎる
これってトラックボールマウスに乗り換え始めた人がみんな抱くんじゃないかと思われる感想なんだけど、想像以上にマウスカーソルが滑っていく。ボタンやアイコンをクリックしたくてもピンポイントの位置にカーソルを持っていけない。
↑のと矛盾してるかもだけど、なんていうか大きくカーソル移動させたいときにめちゃくちゃトラックボールを回さなきゃいけなくてそれがイマイチ。
この二つは設定でどうにかできるんだけど、もしかしたらLogicool Options入れてないのかも? 速度調整と後述の精密モードを使うと多分解決するかも。
https://www.logicool.co.jp/ja-jp/product/options
MX ergoは長年無線トラックボールを発売してきたロジクールの最上位機種として近年発売されたもので、それだけあって実はこのドライバを入れることで異常なまでの拡張性が得られる。ポインタの速度やスクロールホイールの方向調整はまあ当たり前として、デフォルトでトラックボール側のファンクションキーには「精密モード」というトラックボールの移動距離をものすごく小さくする機能が割り当てられている。要は大きく移動させたいときと少しだけ移動させたいときで移動速度をワンタッチで切り替えることができるのだ。これを試してみてほしい。
MX ergoの良いところは、そのボタンを含む3つのファンクションキーとスクロールホイール(左右スクロールあり)に対して、「アプリごと」に割り当てを変更できるという点。たとえばGoogle Chromeだと左右スクロールをタブ切り替えにデフォルトで設定できる。アプリごとに割り当てを自由自在に変えられるのがいい。自分はspotifyで「進む/戻る」を音量調整に、「精密モード」を「再生/一次停止」に割り当てなおしてる。精密モードが邪魔だったら設定変えて別の機能割り当てるといい。
あとおもちゃみたいだなと思ったマウスの角度調整(外側に20度傾けることができて、手首の負担がめっちゃくちゃ減る)は地味に癖になる。
・手の大きさに合わない
これは完全にリサーチ不足でLogicoolは一切悪くないんだけど、俺は人より手が小さいのでマウスもそれに合わせて小さめのやつを使っていたんだけど、このマウスはめっちゃでかい。手に収まらん。おかげで前ページに戻りたいときにわざわざ目視でボタンを探して押下するといった無駄なフローが発生してしまっている。これが結構ストレスになっている。
・縦スクロールが難しい
めっちゃしにくい。横にトラックボールを動かすのは割と簡単なんだけど、縦方向にトラックボールを回すのがめっちゃむずい。ので、結果的に縦スクロールがやりにくくなる。YouTube とかで動画検索結果とかがズラーっと並んでるのを縦スクロールしたかったのに全然できなくてイライラした。
この辺は基本慣れるしかない(エレコムだとトラックボールのカーソル操作の微調整機能がついて気がしたんだけれどググっても出てこないので気のせいかもしれん)。どうしてもだめなら買い換えるしか対応方法がないから別の選択肢を紹介する。まだ数回しか使ってないなら今すぐメルカリで売り飛ばすのも十分ありだし(自分は使った事ないが元増田は手が小さいという話だから、たとえばこういうのだと小さめでいいかもしれない)。
トラックボールは、ざっくり「トラックボールを操作する指」「マウスの形状」辺りで「親指トラックボール」「人差し指トラックボール」「オービット型」「リモコン型」にわかれ(名称はいま勝手につけた)、それらに加えて有線か無線かという判断軸が加わってくる。一つ一つ特徴をまとめると次のような感じになる。
これらに加えて、「有線か無線か」という違いはトラックボールの利便性に大きく影響する。ひと言で言えば持ち運びに便利なのでノートPCを外で使う時に一緒に持っていくのが楽(トラックボールは持ち運びのための専用ケースが売られてるケースが多い)。また、オフィスなどでも、たとえば膝の上にマウス置いて作業することも可能。たとえばこたつにPC置いてるような環境だとこたつの中に手ツッコんでマウス操作できるし、ベッドに寝転びながらパソコン触る際などもマウスが簡単に操作できる。こういった、日常の動作の拡張性が広がるのが無線トラックボールマウスの特徴だ。
正直なところ元増田へのアドバイスという体裁でトラックボールについて語りたくなったというだけの記事なのだが、最後に自分のおすすめトラックボールを紹介しておく。
トラックボールマウスは大体ロジクール・エレコム・ケンジントンの3メーカーでほぼ網羅できる。
ケンジントンはオービット型の老舗で、オービット型を選ぶならケンジントンしかないような状況。個人的にはあわないんだけれどお世話になってる人も多い筈。
ロジクールはM570tのおかげで長年の信頼を勝ち取っているが、最近会社自体がゲーミングデバイス向けにシフトしたのかデザインや触り心地重視・高価格で機能性が微妙という方向性に舵を切っているのと(個人的にはロジクールのキーボードはかなりきつい)、トラックボールの数がそんなに多くないのでファンクションキーなどでこだわりたい人には少し不向きな部分がある。でもMX ergoは1万円なだけあって流石に気持ちいい。すっげえ細かいことだけれど、ファンクションキーのクリック感がめちゃくちゃいいんですよ。これ触るとエレコムのマウスはクリック感がチャチい。
エレコムは流石に国内メーカーなだけあって(他の2つは海外法人で輸入品になるはず)、安価でバリエーションの多い選択肢が魅力。でも他の2つに比べるとクリック感がイマイチって印象が個人的にはある。
自分はトラックボールに関しちゃロジクール信者なので断然おすすめはM570(ERGO 575)。しかし最終的には個々人の好みになるから、一番いいのはお店で実際に触って確かめること。最近はなかなか難しいかもしれないが……。
みんなも良きトラックボール道を歩んでくれ。
例えば、黒い画面に白い1ドットの点を打つとする
ここでハードウェアのVRAMと画面が直結していれば分かりやすい
ポインタには確保したメモリ領域の先頭のアドレス番地が入っている
ちょっと語弊があるけど、そのアドレス番地に1を入れれば画面に白い点が表示される、みたいな感じである
自分が子供の頃のMSXとかZX Spectrumだったらそうだった
あと、PC-9801も文字のためのVRAMと画像のためのVRAMがあったんだったかな
98も同じようにメモリに何か直接書けば画面に表示されたはず
あと、その画像のVRAMの上に文字のVRAMを表示させることで、
例えば背景を輝度を下げて表示させ、その上でテキストエディタで作業するとかできたはず
ファミコンとかのカートリッジも挿入すればあれは何らかのメモリ空間に格納されるのだと思われる
カートリッジが挿入されていれば、そのメモリ空間の最初からCPUに実行させればいい
そうすればカートリッジの中のROMに書かれているゲームが動くはずだ
しかし、近年のOSで例えば生のVRAMを直接いじるなんてことはあり得ない
生のVRAMはグラフィクスカードの中などに入っており、それは近年のグラフィクスカード上のGPUやOSによって複雑に管理されている
だから、Windowsなどでゲームを作るときは、まずOSにお願いして、仮想的なVRAMのような領域をもらわなければならない
何をするにもまずはOSのお伺いを立てて、OSがメモリなどのリソースを切り出して与えてくれる
返すときも図書館のように返すのが礼儀であるが、ぶち切りしてもOSは尻拭いをしてくれる
が、尻拭いをしてくれない可能性もあるため、ぶち切りした後に挙動がおかしくなることもあるかもしれない
そう、なんかよく分からんが調子悪いなあ、みたいなことが起こりやすくなった気がする
マシンが重いなあと思ったら、別のプロセス、Windowsで言うタスクマネージャーをチェックする
そして、CPUの使用率やメモリを食っているプロセスを見つけ、殺していい場合はkillしてみる
マルチプロセスで動作することで重くなることもあるし、何か共通のリソース、ファイルなどを奪い合う、デッドロックとかそういうことも起こり得る
しかし、プログラムから直接ハードウェアを動かしている、と実感することは減っている気がする
それはそれで良いことなのだけど、その実感がないことが初学者を混乱させていないだろうかと思った
ハード寄りと言っても、Arduinoでもラズパイでも自分にはあまりそういう実感がない
特にラズパイはLinuxが動いている時点でLinuxが良きにはからってくれるためことさら実感がない
登場してから、その効率の良さで永らく使われてきたものの、同時に様々なセキュリティホールを生み出した結果、
今や「可能な限り使わないことがベストプラクティス」と言われているC/C++言語。
実際、PythonやGo言語などで書けそうなら、絶対そっちで書くべきだと心底思う。
以下のような、ド素人としか思えない実装によるやらかしを見てきたこともあって、その思いは一層強くなった。
いわゆる下手のC/C++あるあるで、もう本当にうんざりするほど見かけるのが、
「char型の巨大な配列をグローバルに宣言し、それを使い回す」
それ、今どきのWindowsとかでやられると、ビルドないし実行したタイミングでウィルス対策ソフトが誤検知したりするんだわー。
何しろ人によってはint型の最大数を要素数として配列作るとか、無茶しやがって…みたいな事するんだから無理もない。
必要なときに必要な分だけ領域確保して、ポインタで適切に参照させるとか、基本中の基本じゃねーの?
誰でも初心者の時期があるのは仕方ないが、お前初心者レベルのまま何年コード書いてんだ?いい加減にしろマジで。
そうやって書いてしまったものをリファクタリングするのも、他の安全な言語に移植するのも諦めて、今日も誤検知させる奴がいる。
そもそも、本来コンピュータのことを詳しく知っている専門家が使うことを前提とした言語が、こうも広まってしまったことが歴史の過ちだったのかも。
馬鹿に継承を扱わせると、仕事している感を醸し出すために継承を活用せざるを得ない。だから、継承はクソに見える。よって、増田の言いたいことはわかる。
しかし、冒頭で書いたとおり、多態を適切に扱うために継承は必要なのだ。これ以上は書けない。これからもクラスベースの OOP は消えることないであろう。それを書くすべを私は持ち得ていないので、null が消えない事実を例にして語ろうと思う。
21世紀のプログラミング言語のチャレンジの1つはなにか、と言ったら「null 撲滅」であろう。関数型言語は null を排除することに努めたし、Swift 言語は Optional という null がはいっていないことを保証する仕組みを作ったり、Haskell は圏論という数学の概念で応対しようとし、Ruby 言語は &. という「null をスルーするメソッド」を開発した。でも、null は撲滅出来ないままである。
そもそも null とは何か?C言語では、ポインタが指すとそこでお終いだし、Java だとヌルポ(例外)の要因だし、Ruby だと NilClass のインスタンスだし、SQL言語だと「3値論理」では未来のことを記述するためのものだし、言語によって null はバラバラである。つまり、null 自体には特に意味はないのだ。逆に null があると便利だと思わないか?C言語ではポインタに死んでもらえるし、Java だとヌルポがあったら例外にできるし、Ruby だと nil があったらなにかの理由があるからだし、SQL言語だと未来のことは不明と記述できるし。そうなのだ、null はプログラミングに必要なのだ。null をちゃんと扱うのが難しいだけで、null 自体に罪はない。
これを継承、というか多態にあてはめてみよう。多態がないとどうなるか想像してくれ。とてもしんどいことになる。なぜなら...
(作者は眠たくなりました。続きが読みたかったら反応ください。)
ブロックチェーンや暗号通貨、Web3.0、Dweb というのはここ数年、そしてこれからのバズワードであるようだ。
ここ一週間ぐらいだろうか。マイナンバーにブロックチェーンを導入しようとしている事業に関して色々な議論が発生しているようである。例によって議論に向かない Twitter 上で発生している。というか何が議論の中心になっているのかイマイチよく分からない。ただ雑然と荒れているという感覚がある。
私は技術・歴史・文化といった面からブロックチェーンや暗号通貨に対して知識がなく、学び始めたのはここ一ヶ月と言ってもいいだろう。学ぶ、といっても転がっている日本語の一般的なメディアの記事を気が向いたときに読み散らかすぐらいである。真に技術的なことは何一つ分からない。暗号通貨は Bitcoin とEthereum しか知らないし所持しているのはたまたま貰った僅かな ETH しかない。金銭的に貧しい多摩川に転がっている石くらいどこにでもいる17歳JKである。と逃げの文言を置いておく。
囲み取材で数十秒話したことが記事になっているので、正確に伝わって無さそうです。
・マイナンバーカードをいずれカード不要にしてスマホにインストールできるようにしたい
・その前にそもそも、普及のためマイナンバーカードの発行総数を増やす必要がある
という趣旨かと。
加納氏のこの時期のタイムラインから現在に向けて遡れば様々な第三者の感想や疑問を得ることができるだろう。これらに纏めて答えているのが以下の記事である。
ブロックチェーンの優位性①疎結合|加納裕三/Yuzo Kano
https://blog.blockchain.bitflyer.com/n/n4b45329e308c
加納氏とは一体何者なのかは以下を参照。
東京大学大学院工学系研究科修了。ゴールドマン・サックス証券会社に入社し、エンジニアとして決済システムの開発、その後デリバティブ・転換社債トレーディング業務に従事。
2014年1月に株式会社bitFlyerを共同創業し、2019年5月に株式会社bitFlyer BlockchainのCEOに就任。
bitFlyer創業以降、法改正に関する提言や自主規制ルールの策定等に尽力し、仮想通貨交換業業界の発展に貢献。
日本ブロックチェーン協会代表理事、ISO / TC307国内審議委員会委員、官民データ活用推進基本計画実行委員会委員。
2018年G7雇用イノベーション大臣会合、2019年V20 VASPサミットに出席。
ttps://finsum.jp/ja/2019/speakers/recQMoKK5nD9yb8Ht/profile/
ブロックチェーンを語るうえで何が重要かというと、その言葉の定義である。議論に参加している人が同じ言葉を使っているのに、各人の言葉に対する定義が異なっていると、言葉は理解できるが内容が理解できないといった状況に陥ってしまう。このことは実生活でも頻繁に起こっているように思えるが、Twitter という短文が好まれるプラットフォームでは著しくないがしろにされ不毛な議論を生む原因になっている。
加納氏が代表の JBA (日本ブロックチェーン協会)に依ると、ブロックチェーンの定義は以下の内容である。
ブロックチェーンの定義
1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」
2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」
定義策定のアプローチ
まず、Satoshi Nakamoto論文およびその実装である、ビットコインのブロックチェーンをオリジナルのブロックチェーン(以下「オリジナル」)として強く意識しています。
狭義のブロックチェーン(定義1)は、オリジナルを意識し、それが備える本質的で不可分な特徴を捉え、言語化しました。
広義のブロックチェーン(定義2)は、昨今〜今後の技術の展開を鑑み、オリジナルが備える特徴であっても、別の実装方式や別の目的への展開などにおいて、置換や変化が行われていく広がりを許容しながらも、特徴を捉えられるよう、言語化しました。
総務省のページも見つけたが JBA が定義するものを基礎としている。
ttps://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h30/html/nd133310.html
私が疑問と漠然としたモヤモヤ感を抱くのは、最近の一般層で使われているブロックチェーンの定義には「信頼できる第三者が不要である」という点が抜け落ちているように思われることだ。非中央集権SNSで暮らし脱中央集権を推進したい私にはこの点が"ブロックチェーン"の一番重要な点であると思うが、JBA の第一定義にはこの点が記載されている。不特定多数へのインセンティブによって不特定多数による合意を形成している。これによって「信頼できる第三者が不要である」は満たされている。
blockchain (3.6)
distributed ledger with confirmed blocks organized in an append-only, sequential chain using cryptographic links
Note: Blockchains are designed to be tamper resistant and to create final, definitive and immutable ledger records.
distributed ledger (3.22)
ledger that is shared across a set of DLT nodes and synchronized between the DLT nodes using a consensus mechanism
Note: A distributed ledger is designed to be tamper resistant, append-only and immutable containing confirmed and validated transactions.
ISO の定義によれば、ブロックチェーンは、暗号化リンクを使用した一連の鎖で、追記のみで構成された確認済みブロックからなる分散台帳を指す。改ざんに強く、最終的で確定的で不変の台帳記録を作成するように設計されている。分散台帳は、一連の DTL(分散台帳技術)ノードで共有され、合意メカニズムを使用して DTL ノード間で同期される台帳である。確認された有効なトランザクションを含む全てが、改ざん耐性、追記のみの不変性を持つように設計されている。
さて、加納氏の投稿やその他の加納氏に批判的/賛同的な人たちの反応を見ても、彼らの言っている内容がブロックチェーンの定義を満たすものなのかいまいち分からなかった。
・ビザンチン耐性(BFT)
・改ざん耐性
私はブロックチェーンの主な利点はこの5つ(ただし5つにだけではない)だと考えています。これをここでは5大利点と呼びます。
なおかつ、この5大利点を概ね満たしているものをブロックチェーンと呼んでいます(ただしブロックチェーンと呼んでいるものは、すべてこの定義だとは言ってない。かつ、ブロックチェーンの厳密な定義はこれではない。)
なぜ前提として厳密な定義を加納氏の言葉で説明せずに、勝手に加納氏が定義した内容を”ブロックチェーンである”と語っているのか理解に苦しむが、加納氏の説明したい"プライベート・ブロックチェーン"を ISO の定義を基に判断すると、
加納氏の上記の2つの投稿からは、"プライベート・ブロックチェーン"と"パブリック・ブロックチェーン"のどちらを指しているのか不鮮明ではあるが、note の記事では"プライベート・ブロックチェーン"を想定している、と明記されており、議論の発端となったマイナンバーとブロックチェーンに関しても"プライベート・ブロックチェーン"を指していると思われる。5大利点を満たす"プライベート・ブロックチェーン"は存在しないのでは…。
"一方で、誤解と批判を恐れずに書けば、ブロックチェーンがBitcoinの論文に端を発するものであるとするならば、いわゆるプラベートブロックチェーンやコンソーシアムブロックチェーンと呼ばれているものは、ブロックチェーンと呼ぶのをやめて、「タイムスタンプ2.0」のような別の言葉を使うことも考えてはどうだろうか。それは、これらの技術が、リンクトークン型タイムスタンプのデータ構造の上に、決められたノードによる合意アルゴリズムを加え、記録した情報に対するビジネスロジックに応じた情報処理を加えたものであるからだ。根っこの技術は、同じHaberらによるタイムスタンプを元にしているものの、ブロックチェーンの発端となったBitcoinの論文が目指した「信頼できる第三者機関を不要にする」という方向とは別の方向の進化をしているもので、その別の2つの方向のものを同一の枠で扱うことには無理があり、理解や発展を考える上で両方にとって弊害がある。"
https://link.medium.com/TgeOXv8Dlab
https://link.medium.com/4pz5oNlHpab
これらの記事を読むと、そもそもブロックチェーンと呼ばれるものにおいてパブリックではないものは、なんびとも信用しない状況において根本的に非改ざん性を保障することができないのではないかと感じる。"パブリック・ブロックチェーン"こそがブロックチェーンであり、他のものはブロックチェーンから発展してきた技術を使ったブロックチェーンの定義を満たさない分散台帳なのではないか。
加納氏に関して覚えておきたいことは、彼は bitFlyer の CEO であり bitFlyer は miyabi という"コンソーシアム・プライベートブロックチェーン"を開発しているという点だ。当然行政に対して彼がブロックチェーンを推しているのはこれを売り込むためなのであろう。これが厳密にブロックチェーンなのかは置いておいて、このプロダクト自体は素晴らしい取り組みだと私は感じる。デジタル化によって今までの煩雑な手続きが簡単になる可能性は大いにあるし、公的文書の保存にも役にたつ。黒塗り秘匿文書を撲滅しろ。
ただ、ブロックチェーンをただの空虚なバズワードとして扱うのではなく、厳密な定義の上で使うのは大事なことだ。今回の件は、果たして全てにおいて加納氏が良くない、と言えるのだろうか。言葉というのは多数が使うことによって定義が決まる。時代が変われば定義が変わってしまうこともある。ブロックチェーンという言葉を便利な魔法の言葉にしてしまったのは誰だろう。本質を見極めない我々だ。AI 搭載!!といたるところで見る言葉だが、何をもって AI と呼んでいるのか不思議になる。実際のところ今まで"システム"と呼んでいたものなのに。日々の中で言葉をしっかりと見つめ直すのは大事だ。
この記事は、そもそもブロックチェーンとは何か、という個人的な疑問をまとめたものであり、加納氏を批判する意図は無かったわけで、最後の締めはやんわりとしたかった。だが、加納氏は立場的には日本ブロックチェーン協会の会長で、言葉を定義する立場である。言葉を定義した側がこの有様というのは遺憾である。日本の行政のデジタル化の推進は頑張って欲しい。
ピーマンなんで残すの?美味しいのにー → 大人になると美味しい
勉強はしておきなさい大人になって後悔するよ → 大人になると後悔する
もう大学生になったの?前まで赤ちゃんだったのに → 姪っ子に言ってしまうし そう感じる
このまえ国語の授業で一番好きな作品みたいな増田が盛り上がってて
思い返してみるとそういうことってよくあるなと
学生時代も先輩が「数学のその部分大事だからしっかり理解しとけよ」っていうけど実感がなくて
1年経つとあーそういうことだったのねってなるやつ
大学でプログラムの勉強してたときに、ポインタで躓いてメモリの考え方を教えてもらい
技術書読んでて後半になって
あぁこの本の構成がこうなってるのはこれを理解させるために順を追って説明してくれてたのね
じゃあ前に戻ってもっかい読み直そ みたいな
国語の教科書も大人が絶対これ子供の時知っておきたかったわーとか
こういうことを学ばせるために入れよう!ってなってると思うのよ
何かを学ぶときに あるタイミングでいきなり今までの内容がスッと入ってくる話と
2つが混ざってしまった気がするけどこういうのあるよね
子供にどうやったらこの学びをうまく生かして伝えられるだろうか
そんなことをぐるぐる考えてる独身だけど