歩いたら休め

なんでこんな模様をしているのですか?

【プログラミング】mix-inやtraitより継承のほうが優れているケースは存在するのか?(が分からなかった)

kiito.hatenablog.com ↑最近こちらに悩んでいます。感覚的には積極的にmix-in(と委譲)を使ったほうがモデリングしやすいのですが、もしかすると継承のほうが便利なケースがあるかも分かりません。それで以下の2つを調べていました。 「inheritance is not …

【Python】継承という機能はmix-inだけで十分なんじゃないか説

最近、Pythonでコードを書いていて、薄々「継承で使うのはmix-inクラスだけでいいんじゃないか」と感じています。ここでいうmix-inクラスというのは、以下の記事で述べられているような「インスタンス変数を含まず、メソッドのみを持つ多重継承用のクラス」…

【Python】抽象基底クラス(abc)のメリット

Pythonはドキュメントが整備された言語ですが、専門的な用語も多く「結局この機能をどう使えば良いんだ」と思ってしまうことがあります。 この間同僚と abc モジュールの話になり、「結局何のメリットがあんのや」という話になりました。私は abc.ABC を使う…

【Python】@classmethodと@staticmethodの使いどころ

今日は @classmethod と @staticmethod の使い分け方が話題になりました。私はなんとなく「コンストラクタが複数ある場合は @classmethod を使う」ようにしています。ただ、他の使い道も自分が知らないだけであるんじゃないかと思い、少し調べてみました。 …

【プログラミング】リスコフの置換原則についてのメモ

会社のコードレビューで、同僚のコードが少しクラス設計が微妙だった(委譲で十分なのに継承でわかりづらくしていた)ことを指摘したことがあります。「こういう場合は委譲ではなく継承を使うべき」という指針として「リスコフの置換原則」や「is-a関係」を…

【書評】insight(インサイト)を読んで、自己認識おばけから身を守ろう

すごく優秀で論理的な考え方をする人でも、自己認識(自己評価)はとんでもなくて「あいつは俺のこと嫌いだから」とか「あの人は不勉強だから」みたいな雑なレッテルを貼っていて、他の人が客観的に見るとその人のそういう態度に戸惑っているだけということ…

【書評】『僕らはそれに抵抗できない』を読んで、自分が良い習慣を身につけるヒントにしよう

私のようにスマホで利用するSNSやゲームなどに常習的にハマっている方も多いと思います。ふとしたときにスマホを手にとって、自分の時間が思っていたより浪費されていることを自覚してしまう…。 ただ、現代では完全にテクノロジーを排除することは難しいです…

【SageMaker】SageMakerのサンプルをローカル実行してget_execution_role関数がエラーを起こす場合の対処

休みの時間を利用して、こちらのSageMakerのサンプルを試していました。 aws.amazon.com 問題 ただ、ローカルのPC(Mac Book)から利用する場合、下のStackOverflowにある通り、エラーが出て get_execution_role 関数が使えません。 stackoverflow.com def t…

【本】『地域再生の失敗学』を読みました

度々見かけるので読んでみました。 昨日も改めて話したけど、従来型の手法そのものが問題を引き起こしているメカニズムを理解せずして、現代にあった取り組みは不可能なんだよね。他人事としてではなく、自らの実践のための失敗からの学習が大切。丨地域再生…

【本】『日本航空の破綻と再生』を読みました

この間、稲盛和夫さんを批判している本を読んだので、今度は支持している立場の本を読みました。 日本航空の破綻と再生 (稲盛アカデミー叢書 1)作者: 高巖,藤原達也,藤野真也,大塚祐一出版社/メーカー: ミネルヴァ書房発売日: 2019/05/23メディア: 単行本こ…

【本】マインドフルネスの本を読みました

最近、集中力が続かなくて困っていたのでこちらのマインドフルネスの本を読んでいました。本を読んでばっかりに見えますが、ちゃんとプログラムも書いてます! アメリカのビジネスが強いのはやはりここで、例えば東洋思想を「マインドフルネス」という概念で…

【本】組み込み系のプログラミングの本を読みました

ゲームボーイプログラミングのため、ついつい組み込み系プログラミングの本を読んでしまいます。個人的には「ウォッチドッグタイマ」の概念が面白く感じました。 days-of-programming.blogspot.com また、ハードウェア(自作カセット)も気になっているので…

【本】『不安な経済/漂流する個人』を読みました

最近、先輩から「短期的なところだけでなんとかするだけじゃなくて、もう少し長期的な視野も手に入れるべき」というアドバイスを貰っています。エンジニアは一歩引いた視点でも物事を考え、全体最適になるように行動すべきだということです。 そういうことも…

【本】『つながりの作法』を読みました

ちょっと変わった友達のMくんから『つながりの作法』という本を薦められ、アスペルガー症候群や、脳性まひの方が書いた『当事者研究』の本です。 つながりの作法 同じでもなく 違うでもなく (生活人新書)作者: 綾屋紗月,熊谷晋一郎出版社/メーカー: NHK出版…

【node.js】文字コードを推定してurlからタイトルを取得する

最近、以前Pythonで実装したクローラーをnode.jsに移行しようとしています。将来的にpuppeteerを使ったスクレイピングが必要になったときにnode.jsで詰まりたくないのと、Promiseやasync/awaitを使ったプログラミングのサンプルとして遊んでみたかったのがそ…

【本】『ご冗談でしょう、ファインマンさん』を読みました

親戚の結婚式で長時間移動するときに、ちょうどいいのでずっと読んでました。 R.P.ファインマンは1965年にJ.S.シュウィンガー、朝永振一郎とともにノーベル物理学賞を授賞した天才的な物理学者である。こう書くと「理数系が苦手」な人は逃げ出したくなるかも…

【本】『京セラ・血塗られたバランスシート』など読みました

会社の偉い方から稲盛和夫さんの本を薦めて頂いて、「これはたしかにカリスマ性ありそうだな」という箇所もあれば、違和感ある箇所もある(根性論的すぎない?)感じです。 そのため、あえて稲盛さんを批判している本を探して、逆の意見も読んでみることにし…

【本】スティーブン・レヴィのGoogle本を読みました

ちょっと古い本ですが『グーグル ネット覇者の真実』を読みました。気になった箇所をメモしていきます。 グーグル ネット覇者の真実 追われる立場から追う立場へ作者: スティーブン・レヴィ,仲達志,池村千秋出版社/メーカー: CCCメディアハウス発売日: 2011/…

【Django】『現場で使える Django の教科書』を読んでいきます

PythonのWEBフレームワーク、Djangoのチュートリアルはひととおり通したものの、実際にプロダクトを作るには不安な状態で、これからどう学ぶべきか悩んでいました。 そんな中、『現場で使える Django の教科書』という本がなかなか良さそうだったのでこれを…

【NES】C言語でファミコンソフトをコンパイルして通す

ゲームボーイでとりあえずキャラクターを動かす程度の実装はできるようになったのですが、ファミコンのほうが面白いんじゃないかと思って調べてみました。将来的には自作のファミコンプログラムでVJやるとかできたらかっこいいです。 こちらの記事によると、…

【Rust】簡単なcliを作る

少しずつRustの勉強も進めていきたいです。 以前数値計算のシミュレーションを実装しようとしていたのですが、ハミルトニアンの復習のほうが自分にとって難しくなって来てしまったので止まってしまっています。 そちらは今後気が向いたときに進めることにし…

【Django】GAEでとりあえずアプリケーションを立ち上げる その2

docs.djangoproject.com 私はpipenvを利用したいので、GAEのPython3.7のサンプルアプリケーションにある .gcloudignore を参考にしつつ、Pipfile 、 Pipfile.lock などを追記します。 # This file specifies files that are *not* uploaded to Google Cloud …

【Django】GAEでとりあえずアプリケーションを立ち上げる

久しぶりに会社でWEBアプリケーションを書くことになりそうです。レポーティング用アプリケーションで凝ったシステムは必要ない(はず)なので、分析担当のメンバーも理解しやすいPython(Django)を選ぼうと思っています。 ひとまず、こちらのチュートリア…

【メモ】Githubの草を剥がさずにリポジトリを移行(結合)した

git

Rustの練習用にいくつかリポジトリを作って書き捨てのプログラムを書いていたのですが、あまり「〇〇-test」とかリポジトリが乱立してるのは見栄えがいいものではありません。 というわけでこんなディレクトリ構成で一つのリポジトリで管理し、過去のリポジ…

【GB】複数スプライトのキャラクターを動かす

こちらの実装を元にしていますが、「複数スプライトを利用していること(それをなんちゃってオブジェクト指向で隠蔽していること)」「斜め移動に対応していること」が工夫した点です。 github.com こんな感じのコードを実装しています。 const unsigned cha…

【GB】TODO:: C言語の関数内での構造体への値のセットについて調べる

gbdkでのプログラミング中、次のようなコードを書いていたところ、「 Player_init 関数内では player->x などに50がセットしたつもりなのに、main 関数に戻ると0という値になる」という事象が発生しました。 typedef struct _Player { UBYTE i, x, y; } Play…

【GB】C言語でオブジェクト指向風のプログラミングを試してみる

『C言語によるオブジェクト指向プログラミング入門』を参考に、以下のようなコードを書いています。「第一引数に構造体を与える関数を用意してあげれば、オブジェクト指向っぽくプログラミングできるだろう」という発想です。 ポリモルフィズム的なのを考え…

【雑記】組み込み機器のC言語プログラミングと、最近読んだ本

今日はいろいろやりたいことあった(掃除とか)んですが、結局カフェでプログラミングの本とか読んでしてしまっていました。 組み込み機器のC言語プログラミング kiito.hatenablog.com まず、ゲームボーイ上の実装の参考になるかと思って『組み込み開発の実…

【GB】gbdkで割り込み処理を実装しました

ボタンを押すたびにカウントアップする実装です。 github.com といっても大したことはなく、CPUにボタン押下時の割り込み処理が存在するので、そのときに実行する関数を指定しているだけです。 私は今までOSが存在しない低レイヤーのプログラミングをしたこ…

【GB】ゲームボーイでライフゲームを実装しました

ゲームボーイソフトを作成の練習のために、gbdkを使ってライフゲームを実装しました。 例えば今後は以下のようなことがしたいと考えています。 NES(ファミコン)向けに作成されたmmlファイルを、GBソフトに変換(トランスコンパイル?)して再生したい いろい…