もっと見る

ファミコンって、Memory-maped I/Oって言って、指定したアドレスに書き込んだり読み出したりすると、ハードウェアに指示ができたり、状態を取得したりできたのね。
ja.wikipedia.org/wiki/%E3%83%A

だから、メモリを、アドレスを指定してアクセスするっていうのを覚えるのは早かった。ベーシックの段階でそれを使っていた。

ベーシックでできることに限界を感じた頃、マシン語に手を出すんだけど、これも少ないCPUのレジスタをやりくりしながら、メモリから読み出して、計算したり判定して、メモリに書き込むっていうロジックを延々と書くモノだった。

ゼロページを駆使して、そこにインデックスでアクセスする。

そういうのをやってから、C言語を覚えたので、MASMをさらに高性能にした、簡単にマシン語が書ける凄い言語という認識で、構造体とか配列とかポインタというのも、シンタックスシュガーだという認識だった。

いまは、こういう順序でC言語に触れるのは無理だと思うので、自分達の世代の優位点だな、と思っている。

のえる :cava_red: DTP鯖管 さんがブースト

プログラミングは、ハックからはじめた方が身につくような気がする。UserScriptとか、セーブデータ改造とか。

あるとき、弾のスピードをあげるために、ループ毎に足す値を大きくしたんだけど、今度は敵をすり抜けちゃうようになったw

さあ、どうやったら交差して場所が入れ替わる敵と弾が衝突した判定ができるんだ?

という感じで延々と続くんですが、こういうことを無我夢中で考えていた。

これを、よくわからないけど、面白そうって思うかどうか。

ファミリーベーシックでのプログラミングは、まず、ノートに実現したいことをスケッチして、変数の値がループ毎にどう移り変わるか、罫線を引いて表を作って数字を埋めて、頭の中で動かしてみて、最後にBASICで書いた。

これは、今でも通用するやり方だと思う。

さっきの斜めの動きなんかは、担任の先生に聞いたりしたけど、あまり有意なヒントは得られなかった。大人にも難しいことはあるのかと思った。それで、自力で頑張ることにした。

当時、何にも知識は無かったけど、最強のパラメータが一つあった。それは、時間を忘れて熱中できること。今は、もうあそこまでの熱意と集中力を発揮することは難しい。(短時間なら多少はできる)

パワーアップシューティングって格好良かったよね。シングルだった自機の弾が、ダブルになったり、3Wayになったり。

あと、連射できると嬉しい。

そういうのがやりたかったので、そういう動きをするプログラムを必死で書いた。

ファミコンのスプライト(キャラクターを描画する機能)は、画面端にいくと反対側から出てきちゃうので、どこまでいったら画面から消すか。

連射ってことは、画面上に自機の弾が沢山でてこなくちゃいけない。どうやって複数の弾のデータを管理すればいいのか。

画面に3発まで撃てるようにしたんんだけど、チュン!チュン!チュン!………………チュン!チュン!チュン!…………というリズムになる。画面上に貼り付くとすごい連射できるけど、下の方にいると、消えるまで続きが撃てないw

データ構造とアルゴリズム。予想外の動きと、開き直って仕様にしちゃう。バグったらそれはバグ技w

ファミリーベーシック、整数演算しかできないのね。

2Dシューティングゲームつくろうとして、敵が自機に向かって弾を撃ってくるようにしたいんだけど、その計算がわからない! どうやって斜めに移動させればいいの?

そこで、縦と横のより大きい方を1ずつ動かして、小さい方は、条件を満たしたら1動かすことにした。

弾の初期位置はEX=0, EY=0
自機はMX=100, MY=150
その差、XX=100, YY=150

EYは、ループ毎に1ずつ増やす。EXは、カウンターにXXを足し続けて、条件を満たすまで増やさない。

合計がYYを超えたらEXを1増やしてカウンターからYYを引く。

そうやって、斜めの軌跡を計算することにした。

これで、ちゃんと弾が斜めに飛んでくる。速度がおかしいんだけど、そこはご愛敬w

そうやって、問題を解決する仕組みを考えるということを学習した。アルゴリズムは楽しい。三角関数とかはまだ知らない。小学4年生の頃の話。

ファミリーベーシックで覚えたんだよ、プログラミング。

あれさ、命令文一つでマリオとかシェルクリーパーが歩き出すんだよ。コントローラーの入力に反応して、処理を分岐できるんだよ。

とりあえず、取扱説明書に書いてあるサンプルコードは全部やってみた。紙の冊子は本当にすり切れた。実に面白かった。

なんかね、自分で面白いゲームが作れるんだ、っていうイメージを持っていて、疑わなかったね。

あのとき、ファミリーベーシックを作った大人達には、自分がコードを書くこと、誰かにプログラミングの楽しさを伝えていくことで恩返ししていきたい。

のえる :cava_red: DTP鯖管 さんがブースト

どうやって復活したことを知らしめようかな。。。

のえる :cava_red: DTP鯖管 さんがブースト

最近、jemallocすげーってなってると思うけど、FreeBSDはそれがネイティブなのよね。

あと、jail中心の構成になって、Dockerとはまた違って面白い。

よし、FreeBSDでもだいたいMastodon動かせるようになったぞ。手順をまとめて、外部に再設置しよう。

のえる :cava_red: DTP鯖管 さんがブースト

SNSでは自分の怒りと他人の怒りの範囲を見極めていないと疲れる.関係ない話題は関係ないのだ.無関心でいたい.

Mastodonの作りとして、クライアントやリモートから取得した情報をチェックして変換したものを自前でキャッシュ・保存して、外部と切り離して扱うよね。

外部リンクから取得するプレビューとかもそう。閲覧するタイミングじゃなくて、取得したタイミングで生成する方式をとっている。

トゥートはもちろんそうで、そのコピーを保持する。

画像も、いちいちImageMagickでプロセスして、取得したままのものは使わない。

外部リンクは、アクセスするタイミングに気を遣っている。閲覧されたタイミングの情報を、事前に取得しておくことで伝わらないようにしている。(また、負荷対策としてインスタンス毎にランダムにタイミングをずらしている:1〜59秒)

インスタンスが情報をキャッシュする機能を持たず、あらゆる情報をリモートから取得する作り(普通のWebはこっち)と比較すると、インスタンスというものの特徴や意義が浮かび上がってくるのでは。

のえる :cava_red: DTP鯖管 さんがブースト

noteを書きました。

『最近のマストドンいろいろ』
note.mu/gingadon/n/nc73a3bab5d

ざなくさんの記事を引用させていただきました。

(あと、ダダさん発のじゃがいも心地にも触れさせていただきました。)

空と緑が綺麗ですね。

さて、こちらのDTP鯖の画像とゴロツキ鯖の画像は、もとは同じものをアップロードしていますが、サイズと圧縮率が違っております。

ドン・ゴロツキではどのぐらい画像を小さくして容量を節約しているか、おわかりいただけるかと思います。
QT: gorone.xyz/@noellabo/100850233

のえる :cava_red: DTP鯖管 さんがブースト

なるほど、これか……。このSEO全開の感じ、人間が見ると、内容の善し悪しの前に判定下せるから、googleも頑張れって気がする。

なんか500でてるのはウケるw

@Yohei_Zuho 個別の事情は別として、今、Mastodonの汎用インスタンスに人を呼ぶのってそもそも難しくない?

フレンドっていうならアレだけど、フォローってもっと無味乾燥なものでいいと思うんだよな。

そういや、Facebookってフレンドとフォローが別になってるんだったっけか。

のえる :cava_red: DTP鯖管 さんがブースト

With a month passed since 2.5.0, I wonder if people would prefer me to dump the current progress in 2.6.0?

Out of 18 features planned for 2.6.0, 9 are done and 3 are almost done. The rest could be postponed to 2.7.0, if there is demand...

Before you ask, the roadmap can be viewed here: github.com/tootsuite/mastodon/

もっと見る

のえる :cava_red: DTP鯖管 によるおすすめ:

DTP-Mstdn.jp

DTP-Mstdn.jpは、DTP・デザイン・印刷に関わる人々のためのMastodonインスタンスです。特定分野の専門インスタンスですので、日々のつぶやき、耳寄りな情報の共有、ディスカッション、質問とその回答、役立つスクリプトなど、他では投稿しづらい内容も、思う存分トゥートしましょう!