カテゴリー「プログラミング」の112件の記事

2020.09.20

自分で書いたコードが大好き

Job_programmer

自分で書いたコードを読んで、考えている時間が好き。

うまく書けているところは「ここ、いいなあ」と思うが、そこまで。良くない部分の改善点を考えるのが好きなのだ。書き方レベルの細かいことであったり、少し大きな単位の構造とかレイヤーの分割単位であったり。細部にこだわって、整然と美しく仕上げたいという欲求があると思う。

仕事では、動作が同じならば、中身が少々美しくなくてもかまわない。余裕があるなら細部にこだわるのも良いけれど、自転車操業的零細受託開発業務においては余裕がないのが普通であって、余裕があるのはむしろ問題。適正な利益を生んでいるなら問題視はされないはずなんだけど、なかなかそうは行かないようで。

システムエンジニアになれという圧力あるいはストレス

こういう「細部にこだわりたい」という嗜好を持っている自分のような人は、いわゆるSE、システムエンジニアには向いていないのだろうと思う。

30年前「プログラマーではなくSEになれ」とかよく言われた。その時に感じた違和感というか、自分の内心との不一致感はコレだったのだろう。割と長い間、罪悪感に似たものも感じていたが、最近は消えてしまったようだ。

混ぜるな危険

ところで現在、ある時期には花形としてもてはやされていた職業として、SEは存在しているのだろうか。求職者が口を揃えて「SEになりたい」と「C言語を覚えたい」と別カテゴリを安易にかき混ぜて面接で言い放っていたのは昔話か。

ソフトウェアエンジニアで

他業種の方から「SE」と呼ばれることはあるが、同じ業界の内部ではほとんど聞かない。今や「SE」って、あまり内情を知らない人が雰囲気で発する言葉になっているのかな。

自分では最近はソフトウェアエンジニアと言っている。まあ略せばSEなんだが。

2020.05.14

NPMのヨロコビ

昨年の12月のはじめ、自作のnpmパッケージのダウンロード数が1日あたり200件近くまで突然増えた。インターネットで何が起こっているのかわからなくて少々ビビったが、GitHubで依存パッケージを確認すると、何人かの方が使ってくれていたようだった。

今年の1月には、そのうちの一人から機能追加の要望をもらってつたない英語で対応した。最初はプルリクを投げてくれたのだけど、残念ながらリジェクトした(インデントや引用符など、本質的に機能に関連しないコーディングスタイルまで変わっていて変更箇所が見つけにくかったし、ユニットテストも書かれてなかったから仕方なかった)。

その後、ご所望の機能を追加して提供。喜んでくれたかどうかはわからないけど、これこそソフトウェアエンジニアとしての楽しみだなーと心が上がった。

ダウンロード数はそのあと徐々に上がり続けて、5月現在では1日300件程度、過去1ヶ月で1万弱となっている。さらにこのパッケージから依存している別のパッケージも同程度までダウンロードされ始めている。

実際、なんの収入もないけど、浮かれ気味だ。なんか楽しい。


 

2019.02.25

VanilaJS は必須科目

Syokuji_computer

Webアプリを作るにおいて、やっぱり 「VanilaJS」 は必須科目と思った日。

当然だけどVanilaJS のフレームワークを理解するには、少なくともHTML5とHTTPとCSSへの深い知識も必要だし、CommonJSとバンドラーを扱えなくては安心できない。

ReactだろうがAngularだろうがVueだろうが、流行りのフレームワークを表層的に「こうすればできる」だけで扱っているのでは、なにか未知の問題が起こったときに対処できない(ことがある)。

根本的な仕組みを理解していないと、独創的なユーザー要求に「Yes」か「No」か答えられないのだ。

スラスラ読める JavaScriptふりがなプログラミング
インプレス (2018-06-22)
売り上げランキング: 18,412

さて自分はどうやって覚えてきたのかと思い返してみたが覚えていない。

20年以上、考えのどこかの片隅にJSがいたのは確かなので、たかが数時間で全てを教えきれるはずもなし。

具体的な指示を出すしかないのだけど、そればっかりではこっちの手が回らなくなるのだ悩ましい。


暖かい日。冬グローブも不要だったか。

朝はため池にシラサギの姿がほとんどなく、久しぶりにオオバンの姿があった。6羽まとまって土手で朝食たいむのようだった。

続きを読む "VanilaJS は必須科目" »

2019.01.26

MZ-700フルJavaScriptエミュレータ v1.0.6 をリリース

昨年からリファクタリングしていたChromeで動くMZ-700のエミュレータを更新した。

Xuybvpsn

UIスレッド側の実装が、HTMLや、UIオブジェクトと密接に関連しすぎていて、もつれた毛糸の玉みたいになっていたので、なんとかほぐした。完全ではないが。

↑このあとちょっとモバイル向けの調整入れて、v1.0.6 になっている。

リポジトリ

Webアプリ

今後の予定は未定です

  • さらにUIオブジェクトの相互依存を分離。
  • まだ動かないMZTがあるので調査分析
  • 選択と集中。
  • 別サーバーでも簡単に動くようにしたい。例えばブックマークレットでも動くとか。
  • MZ-1500エミュレーション機能。ま、ちょっとずつ。PSGとグラフィックかな。
  • 脱jQuery。

というか、いきなりMZ-700の起動画面が表示されても知らない人はどうして良いのかわからないだろうし、きちんとした説明をしたいのだが、どこから手を付けるか思案中。

続きを読む "MZ-700フルJavaScriptエミュレータ v1.0.6 をリリース" »

2019.01.08

戦々恐々GitHub vs BitBucket

GitHubの無料ユーザーでもプライベートリポジトリが使えるようになったようで。早朝いきなり本年最初の英文記事翻訳作業にかかる。

記事でも触れてあるが、BitBucket への影響が気になる。

BitBucketは無料アカウントでプライベートリポジトリを作れるという、GitHubとは逆のアプローチをとっているサービス。

BitBucketのプライベートリポジトリは5人と共有できるので、GitHubの3名よりは多いのだけど、自分に限れば「中途半端なもの置き場」になっていて、公開できるものはGitHubへPushするという使い方になっている。

てなことで、今後BitBucketをどうしようかなというところ。


GitHubとBitBucketは、ユーザー側からすれば上手く住み分けができていたがマイクロソフトがバランスを崩しにかかってきてる感じで怖いというか優しくないな。

GitHub Projectが個人的なタスク管理としてはいまいちモヤっとしていたので、今のところはTrelloが良いなと思っているが、そのうちこれもひっくり返るかもしれないな。

戦々恐々。

続きを読む "戦々恐々GitHub vs BitBucket" »

2019.01.04

あけましておめでとうございました

Dsc_4536

リファクタリングの年末年始

昨年末は、MZ-700フルJavaScriptエミュレータのリファクタリングにいそしんで・・・

年始もMZ-700フルJavaScriptエミュレータのリファクタリングにいそしんだ。

そして大方の予想を裏切って、いまだにデプロイできていない(泣)

というのも、このWebアプリ版エミュレータではWebWorkerを手軽に使う npm TransWorker を使用しているが、自分で作っておいてその使い方がカオスになってるという始末。手抜き改築増築の繰り返しでこうなってしまったのだが、これをどうにかしなくては、どうにもならないというナニガドーナッテイルノカワカラナイ状態。

スッキリさせれば、ブログやWebページで簡単にMZ-700を動かせるようになるはずで、かねてからのMZ-1500のエミューレーションにも手を付けられるという算段。

ま、もちょっと手を入れるので、気長に。

飲酒計画

新年早々辛気臭くてゴメンナサイだが、今年はちょっと本気でお酒を控えようかと思っている。

リファクタリングが遅々として進まないのも、つい飲んじゃうっていうおっさんの甘さに起因していると本気で思っている。

昨今酒で人生を棒に振る人がたくさんいるし、自分でも「そないに飲まんでもええやろ?」と常々思っているのだが、辞められない。情けない。

五十肩

そして昨年末から肩が痛くて治らないのだが、これの遠因も酒ではないかと・・・。

あごを上げ、首を後ろへ逸らせると、右の首筋から肩甲骨あたりにスジを違えたようなヤな痛み。

元々姿勢が悪く、体が硬いところに加齢で筋肉が硬くなってる。そこへ飲酒による脱水が拍車をかけて、余計にひどくなってるのかも?とか思っているのだ。

ということで

本年もよろしくお願いします。 あ、自転車ももうちょっと乗りたいな。ランニングもね。

続きを読む "あけましておめでとうございました" »

2018.11.26

Dedicated WorkerからShared Workerへ

Readme_top

WebWorkerのコンテキストで生成したインスタンスのメソッドをメインスレッド側からあたかもRPCのように非同期で呼び出すためのモジュール transworkerなんだけど、

これまで DedicatedWorker にしか対応していなかったので、SharedWorkerでも使えるようにしようと思った。

まあ、思っただけなんだけど。

この機構って、ブラウザのタブ間で通信するAPIでも使えるし、サーバーとのWebSocketによる通信にも使えるって、何年も前から気付いているんだけど、夜な夜な酒ばっか飲んでないで、ちゃんと実装しなければなとも思った。

まあ、思っただけなんだけど(まだなんにもやってない)。


Linuxシステムプログラミング
Robert Love ロバート ラブ
オライリージャパン
売り上げランキング: 155,773

最近のプログラミングに関する風潮は、言語を覚えることに集中しすぎている感じを受ける。 社会的に必要とされている問題に対して知識や技術をどう使うかということが重要なので、言語の前に社会科必要だろうって思うけど、そういう流れにはならないんだなー。

続きを読む "Dedicated WorkerからShared Workerへ" »

2018.11.06

nodistで最新npmをインストールできなかった

nodeのバージョンを 10.13.0 に上げた。最新のLTS。

nodist使っているのでGit Bashから、

$ nodist 10.13.0
10.13.0
Installing 10.13.0

Installation successful.

とやってOK。しかし、Power Shell でNodistが動かないのがよくわからない。

そして、npmも6.4.1に上げようとしたが失敗。

$ nodist npm 6.4.1
npm 6.4.1
Cannot read property 'trim' of null.
Sorry.

Node.js超入門[第2版]
Node.js超入門[第2版]
posted with amazlet at 18.11.06
掌田 津耶乃
秀和システム
売り上げランキング: 8,880


これ以降、npmが動かなくなってあせる。

$ npm version
internal/modules/cjs/loader.js:582
    throw err;
    ^

Error: Cannot find module 'C:\Program Files...........

エラーメッセージで調べてみると、nodistはnpmをGitHubのリポジトリででリリースされているバージョンからとってくるらしく、Tags ・ npm/npmを確認すると、最新は6.2.0-next.1というバージョンだった。仕方ないのでこれインストール。

$ nodist npm 6.2.0-next.1
npm 6.2.0-next.1

OKだった。nodistってちょっと引っかかりがあるね。たまにしか使わないし。

関連リンク

513ruzs3ljl

続きを読む "nodistで最新npmをインストールできなかった" »

2018.09.01

Pythonで「作って動かすALife」の1章読んで「人工生命」へのワクワク感が半端ないです

どえらい本を買った感!!!
Dsc_3771

先日、自転車関係のこまごましたパーツと一緒に勢いこんで発注した、7月28日発売の「作って動かすALife」(第2刷)が夕方配達されてきました。「大型で非常に分厚い本」と思い込んでいましたが結構お手ごろサイズでポストに投函されておりました。

Pythonによるプログラムが豊富となっているので、慌てて自宅PCにAnacondaをインストールしながら、まえがきと1章をじっくり読んでみたら、

「久々に『凄い本』を買ったなー!!!」と、知識欲的武者震いです。


作って動かすALife ―実装を通した人工生命モデル理論入門
岡 瑞起 池上 高志 ドミニク・チェン 青木 竜太 丸山 典宏
オライリージャパン
売り上げランキング: 1,528


「まえがき」ではこの書籍の目的や位置づけなどが説明されてるので必読ですね。 そして、1章では「人工生命」の歴史や研究実績が詳述されています。 「興味のあるところから読めばよい」とされていたけど、この1章は最初に読んでおいたほうが良いと思いました。

今後どんどん発展するはずのこの分野について、歴史や現在までの研究成果、そして人工生命とはなんであるかという問いに対する考え方が書かれています。この辺、押さえておいたほうがよいはずですよね。

しかし、著者はおそらくすげー賢い人なんだと思います。論理的で簡潔な筆致であるが故、どちらかというとアタマの悪いほうの自分は、じっくり慎重に読んで、やっと理解できた気がしましたよ。

例えば、自分が面食らったのは以下のような文章:

社会的な合目的性にドライブされるエンジニアリングにとっては、無目的性から生まれた生命現象を真に包括的に理解する動機も必要も存在しないのだと言えるでしょう。

このことは、軍事や経済の需要という強い合目的性に後押しされて超高度に発達してきた計算機(コンピュータ)をもってしても、いまだに生命の本質に到達できていないことの理由のひとつなのかもしれません。

前後3回ぐらい読み返して理解しました。 この文章の前に「エンジニアリングは具体的な目的をもって発展してきた」が、 「生命の進化は自然淘汰によるもので目的などなかった」と書かれています。 だから「具体的な目的によって発達してきた現在の形式の計算機が、いまだに生命の本質に到達できていないのは必然なのかもしれない」という論理展開。本質的に違うんじゃないかという。 ということで、この後「そもそも生命は計算によってとらえることができるだろうか?」と問題提起され、 「ALife(人工生命)の領域は、この問題に向き合うものである」とのことなんですよ。

さらに、まえがきと1章だけでも、アラン・チューリングやフォン・ノイマンのお話がガツガツ出てきて、この分野に興味があるけど専門的には学習してこなかった自分にはビンビン来ました。

「人工生命」という興味を引く分野の入門書だし、「流行りのPythonで動かしてみよー」的な軽い気持ちだったのですが、なんだか本気になってきました。

いやいや軽く「やってみよ―」で充分に良いのだけどワクワク感が高まりましたわ。

うん、もの凄い本を買ってしまった。

続きを読む "Pythonで「作って動かすALife」の1章読んで「人工生命」へのワクワク感が半端ないです" »

2018.07.28

予想外の動きに必死のパッチで対応する

台風が東からやって来るとのことで、朝から家にこもってGoogle Drive APIをダラダラ叩いていたのだが、APIのガイドに書いてある通りにやってもうまくいかず、埒が明かないモヤモヤ募る。

なにかこう達成感的なものを感じたくなったときの常とう手段って掃除か料理かあるいは段ボール工作ですよね(?)。 とっておいた段ボールのパネルで、かねてからの懸念事項を解決しよう。

スマホ視聴台2.0。 割にしっかりできました。 Dsc_3304


家族がよろこぶ ダンボール工作
pika
日本ヴォーグ社
売り上げランキング: 4,852


縦置きはあまり需要がないけど、充電しながらでも大丈夫。 Win_20180729_09_17_08_pro

横置き。最近はスマホでテレビ的なものを見る機会が多いので便利。
Win_20180729_09_26_09_pro

後ろからはこんな感じ。
Win_20180729_10_01_11_pro

と、なんとか心の平静を取り戻し、再び Drive APIに対峙して、試行錯誤の末、夕方ごろに問題解決。

一部のドキュメントに間違いがあったというオチだった。

Google Driveへファイルをアップロードするとき、既存のファイルを更新するには「PUT せよ」と書いてあるのに、実は、PATCH じゃないと動かないと。。。 確かに別ドキュメントにはPATCHだと明記されていた。

さらに「新規作成はPOSTせよ」と書いてあるけど、このREST APIではファイル名を指定できない。 結局、先に別APIでリソース情報のみのファイルを作成してから更新するという2段階が必要だった。


日中雨はほとんど降らず。しかし夜9時、ウォークに出ようとしたら突然降り出した。 東からやって来る珍しい台風は予測できない感じがある。 てことで、ほぼ運動なしの土曜日だった。

続きを読む "予想外の動きに必死のパッチで対応する" »

より以前の記事一覧

2020年9月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
フォト

Google AdSense

銀の弾丸

無料ブログはココログ

他のアカウント