愚問をてってれーするの楽しすぎるでしょβ

ESRのエッセイに唆されてPythonする初心者が半端な勉強ログを書き散らす場所 ICT文化にどうしても住みたいという遠大な啓示が下った人の住処/気持ちよさのためだけに/お客様のお忘れになった恥の概念が母胎に届いているようです

読んだ:ソフトウェアプロセス技術というロストテクノロジー

ソフトウェアプロセス技術がロストテクノロジーになっている - きしだのはてな

ストラテジーとかマネジメントとかいう名目でFEのシラバスに組み込まれているものとはまた別物?

1995〜2000年の概念で、進化の早いWebの台頭で廃れていった技術ということだけど、要はよく聞く技術的負債とその巻き返しというのが、堅実なソフトウェアプロセスの代わりに採用されている現実的な開発手法なのかな。

アジャイルプロセスが言い訳になったと書いてある。伽藍とバザールとはまた違う話なのかな?伽藍方式からバザール方式に転換する事との違いは何か。
もちろん、Webの発展段階では、プロセスをまわして確実にものを作っている場合ではなくて、どんどん動きが目に見えるソフトウェアを作っていくことが必要でした。だれかがWebから入力したデータをデータベースに保存してほかの人が見えるようにするという単純な仕組みに「掲示板」「ブログ」「ブックマーク」「レシピ集」のようなタイトルをつければそういうサービスになった時代です。それであれば、動くものをまず作って、試行錯誤しながらサービスの独自性を出していくということが重要でした。


しかしながら、プロセス技術というのは、プロセスをまわすことではなく、そのプロセスを作り上げることが重要です。
"ウォーターフォール"というのが基礎的な技術らしいことは分かった。興味はあるので、どこかで理解するタイミングを持ちたい。

コンソールとターミナルと

コンソール 【console】
コンピュータを操作するために使う入出力装置のセット。制御卓、操作卓などとも呼ばれる。
ディスプレイなどの表示装置、キーボードなどの入力装置で構成される。大型コンピュータは本体とは離れた場所に通信端末(ターミナル)を設置して利用するのが一般的だが、これとは別に本体の管理用に直接つないで利用する入出力装置をコンソールという。
歴史的由来を知ると分かりやすい。

PCでの動画の表示は画像のアニメーションだと知ってちょっと驚いてる、テレビだと一秒間に30枚らしい

fpsframe per second

 
 
 

動画のなめらかさを表す指標で、画像を1秒間に何回書き換えているかを表したもの。

コンピュータが動画像を表示する際、毎秒数十枚もの静止画像を生成して高速に書き換えている。この書き換えを1秒あたり何回行うかを表す単位がfpsで、この値が少ないとカクカクとした不自然な動画となり、多いと書き換えていることが人の目には分からない自然な動画となる。(日本の)テレビ放送が30fps相当であり、一般的にはこの水準に達していれば自然な動画像とみなされることが多い。

 

http://e-words.jp/w/fps.html


よく考えれば当たり前か…他に表示の方法ないもの。でもインパクトあった。

読んだけどあんまり過ぎて笑うしかなかったやつ

笑わないプログラマ- 笑わないプログラマ

この何もかもボタンが掛け違ってる感が酷すぎで、だからFEにマネジメントとかストラテジが含まれるのかと思った。

バージョンの名づけ方

一桁目:メジャーバージョン

二桁目:マイナーバージョン

三桁目:修正バージョン

 

ということを教わって雰囲気を理解。

メジャーとマイナーの階層は開発者の気持ちで分けられる。

 

ということで、projectはAssignment0.1.0にするのが順当だというお話だけど、どうせα版だしAssignment0.0.1という命名になった。

f:id:komosudare:20150519221115p:plain

ヒトからCPUまで

 

f:id:komosudare:20150519143240j:plain

なんかこんな風?ヒトからCPUまでの間って、という雑すぎる印象の図。Linux部分が空欄になっているし、いまいちよく分からないブラックボックス部分が多すぎる。埋めていきたい。現段階での理解の在り様です。はやく埋めたい。

 

Pythonインタプリタ言語なので、RUNのところ、つまり実行時に、同梱されたインタプリタで一行ずつinterprete、解釈/実行される。で、メモリをめちゃくちゃに食う。(ううん、要素が多くなりすぎるので、Pythonの実行までこの図に含めようとするのは無理かも。)

@mhorimotoさんの、2013年「温故知新、アセンブリ言語を触ってみる」というTech-talkをみつけて、ひたすら見ている。温故知新、アセンブリ言語を触ってみる - #pronama 第21回@福岡 ‐ ニコニコ動画:GINZA

高性能で手軽な言語が良く使われる中で、今更感がありますが、プログラマの古典として今や実用性はないかもしれませんが、そのさわりの部分を少し紹介して、プログラムがCPUの中で動作していくという様子をイメージしてもらえるきっかけになるような、主に昔話とほんの少しのサンプル実演を行います。私のようなIT業界高齢者には、昔話のきっかけに、若い人たちにはこんな事もあったんだよ。程度のお話としてお聞きいただければ光栄です。(40分程度)


メインPC(ラップトップ)のメモリが限界

ああ…とうとう…

見たことがないダイアログに警告されて、Chromeが閉じた。(二度)

f:id:komosudare:20150516151244p:plain

f:id:komosudare:20150516151314p:plain

Process Monitorがとにかく重かったらしく、閉じてみたら警告は出なくなった。

WiresharkとProcess MonitorとChrome(タブを20個開く)を同時に使える様なメモリは何GBになるんだ…。

 

tatsu-umi.hateblo.jp

 この続き。

Stirling、いい。

 

試しにPython3にデフォルトで同梱されているLib\tkinter\initを開いてみた。

かっこいい!!!!

16の二乗-1、255を16進法で表して二桁になっているので、この二ケタでASCII文字コードだったらすべて表現できる、ということ?

 

 

たのしいバイナリの歩き方という本を読み始めたところ楽しそう

低レイヤーとか、リバースエンジニアリングとか、あまり耳慣れない単語に馴染む。

 
前書きから引用。
 
アセンブラでコードを書くことはなくとも、読むことができれば、デバッガを立ち上げ、即座にバグの発生箇所を特定し、対処できる場合があります。
また、他人が作ったライブラリにバグがあり、ソースコードが手元にない場合でも、内部を解析し、問題箇所を回避したり、あるいはライブラリ作成者に詳細を伝えられます。
 
なるほど…!他人が作ったライブラリは"手元にソースコードがなくてバイナリコードがあるもの"か。
(Pythonなどのインタプリタ言語で書いたものはどう配布される??)
 

Stirlingの詳細情報 : Vector ソフトを探す!

 

Stirling(スターリング)はWindowsバイナリエディタの新たな定番となるべく最強を目指して開発された高機能バイナリエディタです。

「アンドゥ・リドゥや置換もできないのに名前だけは有名なエディタ」を今でも使っている人はこの機会に是非一度、Stirling を試してみてください。

柔軟なカスタマイズと強力な各種機能を有し、使い込むほどに手になじみ手放せなくなるツールとなっています。

【特徴】

テキストエディタにも匹敵する強力なカスタマイズ機能
・2ストロークキーや Esc メニュー、DOS 型選択操作も可能なキーカスタマイズ
・10個まで定義できるユーザーメニュー、各メニューは最大30項目まで指定可能
・表示項目を指定可能なツールバーカスタマイズ
・各種編集情報が指定可能なステータスバーカスタマイズ
拡張子別に表示色やキャラクターセットが指定できる拡張子別設定機能
・その他、他のバイナリエディタから乗り換えても違和感を感じさせない各種設定

■編集作業を強力にサポートする独自機能
・データを構造体とみなし、メンバーを参照しながら直接編集できる「構造体編集」機能
複数ファイルよりグローバルにデータの検索を行いタグジャンプできる「BGREP」機能

■その他の特徴
・ビットイメージ表示機能
・回数無制限のアンドゥ、リドゥ
・検索、不一致検索、置換、比較(相違箇所強調表示機能つき)
・選択範囲のファイルへの書き出しや、指定データパターンでの初期化
・ASCII、シフトJISEUCUNICODE、EBCDIC、EBCIDK各キャラクターセット対応
・指定アドレスや最終変更箇所へのジャンプ機能
・マーク設定・ジャンプ機能
印刷機能
・インテリマウスのサポート

動作環境

ソフト名: Stirling
動作OS: Windows 98/95/NT
機種: 汎用 
種類: フリーソフト
作者: 後藤 和重 

 

 

Process Monitor - https://technet.microsoft.com/en-us/sysinternals/bb896645

ファイルとレジストリの管理。

 

Process Monitor v3.1

By Mark Russinovich

Published: March 7, 2014

Download Process Monitor
(1095 KB)

Rate:    
 

Introduction

Process Monitor is an advanced monitoring tool for Windows that shows real-time file system, Registry and process/thread activity. It combines the features of two legacy Sysinternals utilities, Filemon and Regmon, and adds an extensive list of enhancements including rich and non-destructive filtering, comprehensive event properties such session IDs and user names, reliable process information, full thread stacks with integrated symbol support for each operation, simultaneous logging to a file, and much more. Its uniquely powerful features will make Process Monitor a core utility in your system troubleshooting and malware hunting toolkit.

Overview of Process Monitor Capabilities

Process Monitor includes powerful monitoring and filtering capabilities, including:

  • More data captured for operation input and output parameters
  • Non-destructive filters allow you to set filters without losing data
  • Capture of thread stacks for each operation make it possible in many cases to identify the root cause of an operation
  • Reliable capture of process details, including image path, command line, user and session ID
  • Configurable and moveable columns for any event property
  • Filters can be set for any data field, including fields not configured as columns
  • Advanced logging architecture scales to tens of millions of captured events and gigabytes of log data
  • Process tree tool shows relationship of all processes referenced in a trace
  • Native log format preserves all data for loading in a different Process Monitor instance
  • Process tooltip for easy viewing of process image information
  • Detail tooltip allows convenient access to formatted data that doesn't fit in the column
  • Cancellable search
  • Boot time logging of all operations

The best way to become familiar with Process Monitor's features is to read through the help file and then visit each of its menu items and options on a live system.

https://github.com/kenjiaiko/binarybook

UNIXコマンド、parameterの表現

$ cat hoge.txt | sort | uniq -c

というUNIXコマンドを見ていて。

 

キャットはcatenateの略らしい。この文化には茶目っ気のある用語が多い気がして、そこをかなり気に入ってる。

 

|(パイプ記号)はパイプラインを表現してる。コマンドとコマンドの間に置き、前者の結果を受けて後者の処理をする。と、いうことは、普通にコマンドを並べただけの場合、それぞれ独立に処理を行って二つ結果が示される?

 

-cはcountの頭文字をとっているパラメータ。和訳すると変数だけど、もうひとつ、variableと区別がつかなくて困っている。

 

果たしてDOSでもパラメータが使えるか?と試してみた図。

f:id:komosudare:20150513014631p:plain

f:id:komosudare:20150513014641p:plain

Eclipse Luna for C/C++ and Python

http://www.st.itc.keio.ac.jp/ja/faq_linux_eclipse_add_cdt_st.html

このページを参考に、Eclipseをとりあえずメインに使う感じにしちゃおうかな…(本当はEmacsに惹かれている)という感じです。
 
以下ハードコピーの予定。

f:id:komosudare:20150519184035p:plain

f:id:komosudare:20150519184048p:plain

f:id:komosudare:20150519184059p:plain

f:id:komosudare:20150519184118p:plain

f:id:komosudare:20150519184122p:plain

f:id:komosudare:20150519184134p:plain

f:id:komosudare:20150519184141p:plain

Eclipse事態を再起動しておしまい。Python用のプラグインもあったような記憶だったが、なかった。

zsnesネット通信に至るまでの道のり

Shift f2セーブ、Shift f3オープンファイル、Shift f1セーブメニュー、Shift fx(それ以外)サウンドの調整

 
ネット通信の詳しいページ、あった。前に調べた時に参照したサイトだ。
 
ネットワークとか、ポート開放とか、サーバとかいう話になると、私にはhttp://www5e.biglobe.ne.jp/%257eaji/3min/このページが読みたくなる習性がある。ルータの設定とかプロバイダと契約するとか、なんかそんな実生活のごたごたの中から次第に読むようになってたやつ。予備知識なしでいきなり読める親切な解説だし、すき。
 
 
閑話休題。まずバージョン変更の必要が絶対にあるという悲しい話。古いバージョンを入れるのは、少し不安な気がした。ZSNES Home Page - Downloads
 
UDP接続がTCP接続よりも速く、双方でポート開放の必要がある。

f:id:komosudare:20150506174716p:plain

 

f:id:komosudare:20150506174720p:plain