「ポインタ」を含む日記 RSS

はてなキーワード: ポインタとは

2021-04-22

C言語ポインタ理解できなくてSEとかプログラマーとかの道を諦めた知り合いが20人ぐらいいるんやけど

今って、ポインタとかわからなくてもプログラミングできるの?

増田は、10年前ぐらいにC++やってるぐらいで別業種に転職増田

2021-04-16

市役所で働いていた子をITコンサルスカウトしたら指名停止になったことがある

もう何年経つだろう。

の子を初めて見たのは、とある市町村ふるさと納税制度運営パートナーを決めるためのプロポーザル型入札の会場だった。

100㎡もないだろう狭い会場の中に私達のグループが入ると、市の職員が数名、一番遠くの壁に並んで立っていた。ふるさと納税担当部署職員だった。

その一番左端に、その子はいた。若い職員だった。爽やかなセミフォーマル姿で、装いはパリッとしている。物憂げな瞳を足元に向けて不安そうにしていた。

スライドの正面には、険しい顔つきの幹部職員が座っていた。審査員の顔を見渡し、私達は最初挨拶会社説明者の紹介)を簡単に述べた。副市長の「それでは始めてください」という合図と一緒に、『その子』もすぐ後ろにあった長椅子に他の職員とともに腰かけた。

なぜ、その子の姿が目についたかというと、清潔感だ。清潔感がとんでもなかった。若いっていいな、自分あんな25くらいの頃に戻りたい、という雑念を捨ててノートパソコンを立ち上げ、レーザーポインタを起動した……

約1週間後、弊社がめでたく第一候補者(※ほぼ内定という意味)として選ばれた。契約書に押印するため、F市役所へと、私が席を置いているオフィストップ(所長としておく)と一緒に向かった。

ふるさと納税事業担当課(地域を盛り上げる的な名前が付いていた)の窓口に行くと、まだ約束10分前だというのに、その子Sさんとする)が待機していた。あの時と同じように緊張した面持ちだった。すぐ隣には、四十代半ばくらいの男性上司がついている。

「先日はどうもありがとうございました!」

「緊張しましたよ~」

みたいな世間話ちょっとした後……契約書に印紙を貼って、割り印をして、契約者名のところに押印をして、最後に捨て印を押そうとすると、いらないですと言われ……そして、Sさん契約書を手渡した。

Sさんが不慣れな手つきで2枚の契約書に市長印鑑ゆっくりと押すと、はにかんだ笑顔で1枚を返してくれた。

「今後、私がF市の事務担当者になります。今後ともよろしくお願いします」

こちらこそ。私が弊社の窓口です。宜しくお願いします」

こんなやりとりだったかな? 男性上司の人は、「この子がメインで渉外を担当します」と説明していた。

私は、その年若い事務担当者のことが気になっていた。

Sさん大学出て何年くらいになるの?」

衝撃を受けた。想定よりずっと若い人だった。

私が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さん幸せを願っている。

一緒に働けたのは短い間だったけど、楽しかったよ。また会おうね。

2021-04-14

釣りとかじゃなく真面目にピーマンってまずいよね?

別に食えなくはないけど、好んでは食いたくない野菜だよね?

C言語ポインタ理解してるけど、構文は分かりづらいみたいな

2021-03-22

anond:20210322220944

キャストは書き方が全く直感的ではないとずっと思ってて、それが障壁になってるとずっと思ってる(同じことをポインタにも感じてる)

2021-03-11

プログラミングができる初心者」の基準

大学専門課程ではじめてプログラミングに触れるケースを想定する。

プログラミング歴90分
C言語基本的機能データ型、制御構造関数再帰構造体、ポインタetc)をマスターする
プログラミング歴1日
SOLIDやデザインパターンなどのソフトウェア設計の基本原則独自発見する
プログラミング歴1週間
二分探索やグラフなどの基本的アルゴリズム理解し、実装できる
プログラミング暦2週間
簡単言語処理系算術演算変数制御構造関数を含む)を自作できる

情報科学専攻で半年一年かけてやる程度の内容だが、他のほとんどの科目でもそうであるように、要領の良い奴なら数週間でマスターできる。

実際、世の中にはこのレベルの奴なんか珍しくもなくいる一方、Pythonチュートリアルレベルの文献を数ヶ月かけても前半数章すら読めないような奴もいて、そういう奴が「プログラマになりたい」とか言ってる。本当に社会迷惑。やめてくれ

2021-03-10

anond:20210310111600

それは教えればいいのでは?

別に苦言を呈するような話ではないと思う。

たとえば実用的なプログラムジェネリクスや非同期処理を使ったことが無い人がプログラマとして応募してくるのは珍しくなく、もし必要になって分からなければ指導すればいいだけ。

ポインタもそのレベルだと感じる。さすがにFizzBuzzが書けないとかだと困るが。

ポインタがわからない人はとても多いんだよ。思考抽象度が低いとそこが乗り越えられない

から名前に対してアクセスする」という直感的だけど非効率的スクリプト言語ばかり使われる

anond:20210310110216

ポインタ(あるいは値と参照の区別)がわからないやつが、プログラマとして入ってくる、という現実があって、それに文句を言っているのでは

自分すごい」みたいな話でなく

プログラミング界は「自分馬鹿だと自覚できてない奴」が多すぎてうんざりする

レベルから努力してやっと平均かその一段下くらいになっただけの雑魚が「自分上級者」だと勘違いして偉そうにしているケースが多くて、嫌になる。

たとえば、C言語ポインタが難しいとよく言われる。まあ、中学生高校生がはじめて学ぶならともかく、あんもの別に難しくはない(実際のソフトウェアポインタを適切に使うことは難しい)。

実際、ポインタに躓かなかった人なんかたくさんいて、そういう人の一部はより高度なことをどんどんやっている。一方、ポインタに躓いて努力してやっと最低限のレベルに達したような人が、声を大にして「プログラマになるなら、ポインタくらい理解しないとな」とか言ってる。

GoFデザインパターンもそうだ。

プログラミングセンスのある奴はすぐ見抜けることだが、アレには何の重要性も無い。だが、頭の悪い奴は、あの程度でも苦労しないと覚えられないから、重要だと思ってしまうらしい。これはギャンブル宗教にハマる心理と同じである。つまり時間や労力をかけたのだから、その対象にそれに見合う価値があって欲しいと思うわけだ。

頭が悪いと、こういう意味物事客観的に見られなくなる。学歴コンプレックスになると、一生そのことを引き摺って、何に関しても学歴と絡めて論じたくなるようなものだ。

2021-02-20

天気予報解説中に、気象予報士が画面にあるアイコンを指示棒の先で

軽く叩くと、画面にアニメーションが増えるシーン(7時のニュースとか)があるけど、なんかもどかしさを感じる。

あの一瞬、アイコンを探すために予報士の解説が途切れるので、なんかあれれってなる。

まず、どのアニメーションが出てくるかの順番はどうせ決まってるんだから、画面に複数アイコン必要ない。1つで良いはず。

それなら単一ボタンに置き換えられる。そして、それは指示棒の手元にスイッチ化すればできるはず。

まり気象解説普通プレゼンと同じスタイルクリック機能付きレーザーポインタを使うイメージ)で解説できるのでは、と思うわけですよ。

なんで、クリックボタンに当たる機能アイコン化して画面側に持たせているのか不思議だ。

いや、その解説自由度があるならいいよ。どのアニメーションを使うのか、予報士によって変わってくるような内容なら。

でも、画面の出てくる順番が決まってるのだから、そうなる必要性は低いように思う。

それとも、あれがぶっつけ本番なのかな?

そうであれば、あのアイコン化したスタイルは納得できるけども。

2021-02-03

3日前に同じものを買ったトラックボール使いの解説&おすすめ

追記リンクちゃんとした(URLベタ打ちだと更新自体できなくなるっぽいんだよね)

https://anond.hatelabo.jp/20210202095514

ロジクールのM570tを長年使い続けてきた俺が1年近く買うのを我慢してやっと踏ん切りがついた完全上位互換商品をどうしていきなり買ったんだ!!!!」って怨嗟漏れ出てしまいそうだけれど、1万円が勿体ないという気持ちはよくわかるので色々書いていきます

MX ergoの良さについて

まず、気になってるポイント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)。しかし最終的には個々人の好みになるから、一番いいのはお店で実際に触って確かめること。最近はなかなか難しいかもしれないが……。

みんなも良きトラックボール道を歩んでくれ。

2020-12-02

最近コンピュータ環境は複雑なので初学者には理解しづらい可能性がある

例えば、黒い画面に白い1ドットの点を打つとする

ここでハードウェアのVRAMと画面が直結していれば分かりやす

VRAMのメモリ領域の中で1ビット立てればいい

Cで言うなら、メモリを確保するとポインタが取得できる

ポインタには確保したメモリ領域の先頭のアドレス番地が入っている

ちょっと語弊があるけど、そのアドレス番地に1を入れれば画面に白い点が表示される、みたいな感じである

自分子供の頃のMSXとかZX Spectrumだったらそうだった

あと、PC-9801文字のためのVRAMと画像のためのVRAMがあったんだったか

98も同じようにメモリに何か直接書けば画面に表示されたはず

あと、その画像のVRAMの上に文字のVRAMを表示させることで、

例えば背景を輝度を下げて表示させ、その上でテキストエディタ作業するとかできたはず

ファミコンとかのカートリッジも挿入すればあれは何らかのメモリ空間に格納されるのだと思われる

カートリッジが挿入されていれば、そのメモリ空間最初からCPUに実行させればいい

そうすればカートリッジの中のROMに書かれているゲームが動くはずだ

しかし、近年のOSで例えば生のVRAMを直接いじるなんてことはあり得ない

生のVRAMはグラフィクスカードの中などに入っており、それは近年のグラフィクスカード上のGPUOSによって複雑に管理されている

からWindowsなどでゲームを作るときは、まずOSにお願いして、仮想的なVRAMのような領域をもらわなければならない

何をするにもまずはOSのお伺いを立てて、OSメモリなどのリソースを切り出して与えてくれる

返すとき図書館のように返すのが礼儀であるが、ぶち切りしてもOSは尻拭いをしてくれる

が、尻拭いをしてくれない可能性もあるため、ぶち切りした後に挙動おかしくなることもあるかもしれない

そう、なんかよく分からん調子悪いなあ、みたいなことが起こりやすくなった気がする

マシンが重いなあと思ったら、別のプロセスWindowsで言うタスクマネージャーをチェックする

そして、CPU使用率やメモリを食っているプロセスを見つけ、殺していい場合はkillしてみる

成功すればマシンは軽くなる

こんなことは子供の頃のMSXファミコンではなかった

マルチプロセス動作することで重くなることもあるし、何か共通リソースファイルなどを奪い合う、デッドロックとかそういうことも起こり得る

からってMSXに戻りたいとも思わない

できることは現在コンピュータとは段違いだから

しかし、プログラムから直接ハードウェアを動かしている、と実感することは減っている気がする

それはそれで良いことなのだけど、その実感がないことが初学者を混乱させていないだろうかと思った

ハード寄りと言っても、Arduinoでもラズパイでも自分にはあまりそういう実感がない

特にラズパイLinuxが動いている時点でLinuxが良きにはからってくれるためことさら実感がない

しかし、Z80制御ボードを使っていた頃はかなり実感があった

OSも何も入っていなかったし、基本アセンブラ(とC)だったからだろう

2020-11-18

anond:20201118221539

ポインタ活用出来てないんじゃなくて、動的に確保したメモリ活用していないが正解。

そんなレベル大丈夫か?

登場してから、その効率の良さで永らく使われてきたものの、同時に様々なセキュリティホールを生み出した結果、

今や「可能な限り使わないことがベストプラクティス」と言われているC/C++言語

実際、PythonGo言語などで書けそうなら、絶対そっちで書くべきだと心底思う。

(ただしVBテメーは絶対ダメだ)

以下のような、ド素人しか思えない実装によるやらかしを見てきたこともあって、その思いは一層強くなった。


いわゆる下手のC/C++あるあるで、もう本当にうんざりするほど見かけるのが、

char型の巨大な配列グローバル宣言し、それを使い回す」

という、色んな意味頭痛がしてくる実装

それ、今どきのWindowsとかでやられると、ビルドないし実行したタイミングウィルス対策ソフト誤検知したりするんだわー。

しろ人によってはint型の最大数を要素数として配列作るとか、無茶しやがって…みたいな事するんだから無理もない。

てかさー、それポインタを全く活用できてねーじゃん。

必要とき必要な分だけ領域確保して、ポインタで適切に参照させるとか、基本中の基本じゃねーの?

誰でも初心者の時期があるのは仕方ないが、お前初心者レベルのまま何年コード書いてんだ?いい加減にしろマジで


そうやって書いてしまったものリファクタリングするのも、他の安全言語移植するのも諦めて、今日誤検知させる奴がいる。

そもそも本来コンピュータのことを詳しく知っている専門家が使うことを前提とした言語が、こうも広まってしまたことが歴史の過ちだったのかも。

2020-10-23

anond:20201022005749

継承必要だよ。継承がないと多態が表せないから。

馬鹿継承を扱わせると、仕事している感を醸し出すために継承活用せざるを得ない。だから継承はクソに見える。よって、増田の言いたいことはわかる。

しかし、冒頭で書いたとおり、多態を適切に扱うために継承必要なのだ。これ以上は書けない。これからクラスベース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 自体に罪はない。

これを継承、というか多態にあてはめてみよう。多態がないとどうなるか想像してくれ。とてもしんどいことになる。なぜなら...

(作者は眠たくなりました。続きが読みたかったら反応ください。)

2020-10-17

最初ハードルメチャクチャ高いやつ

どれもこれもマスターできなければ永久初心者もしくは門前払い確定だけど、やたら難しいやつ。

こういう「クリアできた者にとっては始まりしかないが、できなかった者にとっては終わりを意味する」みたいなのって、他にある?

anond:20201017110507

最初にCを学ぶべきだって意見人をよく見るけど、最初にCってきつい感じがするわ。

自分BASICアセンブラ→C&Pascalの順番で、ポインタは、アセンブラインデックスレジスタみたいなもんって理解で乗り切ったけど。

2020-10-13

anond:20201013172150

もうにじゅうねんくらい前になるが、写真店員やってたころ、ノーパソ持ち込んで来た就活生っぽいニーチャンが、この中の画像を急いで証明写真にしてくれ!と言ってきて、ポインタの矢印がのっかってマウスオーバーでそのデスクトップアイコン?の情報が表示されたのでファイル容量を見たら、

4KB

て出てて、居合わせ店長と気まずい雰囲気になったことを思い出した。。。

2020-10-08

ブロックチェーンとは何か。

ブロックチェーン暗号通貨、Web3.0、Dweb というのはここ数年、そしてこれからバズワードであるようだ。

ここ一週間ぐらいだろうか。マイナンバーブロックチェーンを導入しようとしている事業に関して色々な議論が発生しているようである。例によって議論に向かない Twitter 上で発生している。というか何が議論の中心になっているのかイマイチよく分からない。ただ雑然と荒れているという感覚がある。

私は技術歴史文化といった面からブロックチェーン暗号通貨に対して知識がなく、学び始めたのはここ一ヶ月と言ってもいいだろう。学ぶ、といっても転がっている日本語一般的メディア記事を気が向いたときに読み散らかすぐらいである。真に技術的なことは何一つ分からない。暗号通貨Bitcoin とEthereum しか知らないし所持しているのはたまたま貰った僅かな ETH しかない。金銭的に貧しい多摩川に転がっている石くらいどこにでもいる17歳JKである。と逃げの文言を置いておく。

発端

議論の発端はここらへんからだろうか。

加納裕三 (Yuzo Kano)(@YuzoKano

囲み取材で数十秒話したこと記事になっているので、正確に伝わって無さそうです。

マイナンバーカードをいずれカード不要にしてスマホインストールできるようにしたい

・(ただ法改正必要)

・その前にそもそも、普及のためマイナンバーカードの発行総数を増やす必要がある

という趣旨かと。

https://twitter.com/YuzoKano/status/1312245723048550401

加納氏のこの時期のタイムラインから現在に向けて遡れば様々な第三者感想や疑問を得ることができるだろう。これらに纏めて答えているのが以下の記事である

ブロックチェーンの優位性①疎結合加納裕三/Yuzo Kano

https://blog.blockchain.bitflyer.com/n/n4b45329e308c

ブロックチェーンの優位性②改ざん耐性|加納裕三/Yuzo Kano

ttps://blog.blockchain.bitflyer.com/n/naa0126a024d5

加納氏とは一体何者なのかは以下を参照。

東京大学大学院工学研究科修了。ゴールドマン・サックス証券会社入社し、エンジニアとして決済システムの開発、その後デリバティブ転換社債トレーディング業務従事

2014年1月株式会社bitFlyerを共同創業し、2019年5月株式会社bitFlyer BlockchainCEO就任

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)は、昨今〜今後の技術の展開を鑑み、オリジナルが備える特徴であっても、別の実装方式や別の目的への展開などにおいて、置換や変化が行われていく広がりを許容しながらも、特徴を捉えられるよう、言語化しました。

http://jba-web.jp/archives/2011003blockchain_definition

総務省のページも見つけたが JBA定義するものを基礎としている。

ttps://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h30/html/nd133310.html

私が疑問と漠然としたモヤモヤ感を抱くのは、最近一般層で使われているブロックチェーン定義には「信頼できる第三者不要である」という点が抜け落ちているように思われることだ。非中央集権SNS暮らし脱中央集権を推進したい私にはこの点が"ブロックチェーン"の一番重要な点であると思うが、JBA第一定義にはこの点が記載されている。不特定多数へのインセンティブによって不特定多数による合意形成している。これによって「信頼できる第三者不要である」は満たされている。

では ISO定義を見てみる。

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.

https://www.iso.org/obp/ui/#iso:std:iso:22739

ISO定義によれば、ブロックチェーンは、暗号化リンク使用した一連の鎖で、追記のみで構成された確認済みブロックからなる分散台帳を指す。改ざんに強く、最終的で確定的で不変の台帳記録を作成するように設計されている。分散台帳は、一連の DTL(分散台帳技術ノードで共有され、合意メカニズム使用して DTL ノード間で同期される台帳である確認された有効トランザクションを含む全てが、改ざん耐性、追記のみの不変性を持つように設計されている。

比較

さて、加納氏の投稿やその他の加納氏に批判的/賛同的な人たちの反応を見ても、彼らの言っている内容がブロックチェーン定義を満たすものなのかいまいち分からなかった。

加納裕三 (Yuzo Kano)(@YuzoKano

ビザンチン耐性(BFT)

改ざん耐性

・高可用性(単一障害店の排除

アドレス(~=公開鍵)による疎結合の容易さ

エンタープライズ間でのデータ共有の容易さ

私はブロックチェーンの主な利点はこの5つ(ただし5つにだけではない)だと考えています。これをここでは5大利点と呼びます

なおかつ、この5大利点を概ね満たしているものブロックチェーンと呼んでいます(ただしブロックチェーンと呼んでいるものは、すべてこの定義だとは言ってない。かつ、ブロックチェーンの厳密な定義はこれではない。)

https://twitter.com/YuzoKano/status/1313247738503426048

ttps://twitter.com/YuzoKano/status/1313248174430019584

なぜ前提として厳密な定義加納氏の言葉説明せずに、勝手加納氏が定義した内容を”ブロックチェーンである”と語っているのか理解に苦しむが、加納氏の説明したい"プライベートブロックチェーン"を ISO定義を基に判断すると、


"パブリックブロックチェーン"で考えると


加納氏の上記の2つの投稿からは、"プライベートブロックチェーン"と"パブリックブロックチェーン"のどちらを指しているのか不鮮明ではあるが、note記事では"プライベートブロックチェーン"を想定している、と明記されており、議論の発端となったマイナンバーブロックチェーンに関しても"プライベートブロックチェーン"を指していると思われる。5大利点を満たす"プライベートブロックチェーン"は存在しないのでは…。

面白い記事

3つ面白い記事をみつけた。

"一方で、誤解と批判を恐れずに書けば、ブロックチェーンBitcoin論文に端を発するものであるとするならば、いわゆるプラベートブロックチェーンやコンソーシアムブロックチェーンと呼ばれているものは、ブロックチェーンと呼ぶのをやめて、「タイムスタンプ2.0」のような別の言葉を使うことも考えてはどうだろうか。それは、これらの技術が、リンクトークンタイムスタンプデータ構造の上に、決められたノードによる合意アルゴリズムを加え、記録した情報に対するビジネスロジックに応じた情報処理を加えたものであるからだ。根っこの技術は、同じHaberらによるタイムスタンプを元にしているものの、ブロックチェーンの発端となったBitcoin論文が目指した「信頼できる第三者機関を不要にする」という方向とは別の方向の進化をしているもので、その別の2つの方向のものを同一の枠で扱うことには無理があり、理解や発展を考える上で両方にとって弊害がある。"

タイムスタンプの再発見と「いわゆるブロックチェーン

https://link.medium.com/TgeOXv8Dlab

DLTブロックチェーン、DAGの違い

https://link.medium.com/4pz5oNlHpab

ビットコインじゃなくて、ブロックチェーンに興味がある」という人に教えたい「ブロックチェーン」の語源の話

https://www.coindeskjapan.com/10953/

これらの記事を読むと、そもそもブロックチェーンと呼ばれるものにおいてパブリックではないものは、なんびとも信用しない状況において根本的に非改ざん性を保障することができないのではないかと感じる。"パブリックブロックチェーン"こそがブロックチェーンであり、他のものブロックチェーンから発展してきた技術を使ったブロックチェーン定義を満たさな分散台帳なのではないか

終わりに

加納氏に関して覚えておきたいことは、彼は bitFlyerCEO であり bitFlyermiyabi という"コンソーシアム・プライベートブロックチェーン"を開発しているという点だ。当然行政に対して彼がブロックチェーン推しているのはこれを売り込むためなのであろう。これが厳密にブロックチェーンなのかは置いておいて、このプロダクト自体は素晴らしい取り組みだと私は感じる。デジタル化によって今までの煩雑手続き簡単になる可能性は大いにあるし、公的文書の保存にも役にたつ。黒塗り秘匿文書を撲滅しろ

ただ、ブロックチェーンをただの空虚バズワードとして扱うのではなく、厳密な定義の上で使うのは大事なことだ。今回の件は、果たして全てにおいて加納氏が良くない、と言えるのだろうか。言葉というのは多数が使うことによって定義が決まる。時代が変われば定義が変わってしまうこともある。ブロックチェーンという言葉を便利な魔法言葉にしてしまったのは誰だろう。本質を見極めない我々だ。AI 搭載!!といたるところで見る言葉だが、何をもって AI と呼んでいるのか不思議になる。実際のところ今まで"システム"と呼んでいたものなのに。日々の中で言葉をしっかりと見つめ直すのは大事だ。

編集後記

この記事は、そもそもブロックチェーンとは何か、という個人的な疑問をまとめたものであり、加納氏を批判する意図は無かったわけで、最後の締めはやんわりとしたかった。だが、加納氏は立場的には日本ブロックチェーン協会会長で、言葉定義する立場である言葉定義した側がこの有様というのは遺憾である日本行政デジタル化の推進は頑張って欲しい。

URL を貼りすぎたせいなのか投稿できなかったので一部表記を削った。

2020-08-12

anond:20200812020528

ポインタ概念理解出来ていない人が多い現場ではそう思うわ。

メモリ空間に配置された0と1で何故コンピュータが動くのかっていう部分は、基本中の基本だから覚えておいて欲しい。

2020-08-01

ピーマンなんで残すの?美味しいのにー → 大人になると美味しい

勉強はしておきなさい大人になって後悔するよ → 大人になると後悔する

もう大学生になったの?前まで赤ちゃんだったのに → 姪っ子に言ってしまうし そう感じる


このまえ国語の授業で一番好きな作品みたいな増田が盛り上がってて

挙げられてたものを少し読んでみたんだけど それが面白いのよ

思い返してみるとそういうことってよくあるなと


学生時代も先輩が「数学のその部分大事からしっかり理解しとけよ」っていうけど実感がなくて

1年経つとあーそういうことだったのねってなるやつ

大学プログラム勉強してたときに、ポインタで躓いてメモリの考え方を教えてもらい

今までふわっと理解していた内容が一気にすっと理解できたり

技術書読んでて後半になって

あぁこの本の構成がこうなってるのはこれを理解させるために順を追って説明してくれてたのね

じゃあ前に戻ってもっかい読み直そ みたいな


国語教科書大人絶対これ子供の時知っておきたかったわーとか

こういうことを学ばせるために入れよう!ってなってると思うのよ

でもその真意までは大人にならないと伝わらないんだろうなって


何かを学ぶときに あるタイミングでいきなり今までの内容がスッと入ってくる話と

年を重ねてみるとやっと理解できる気持ちの話と

2つが混ざってしまった気がするけどこういうのあるよね

子供にどうやったらこの学びをうまく生かして伝えられるだろうか

そんなことをぐるぐる考えてる独身だけど

ログイン ユーザー登録
ようこそ ゲスト さん