2019年6月15日土曜日

ふつうメモリ不足での再起動の頻度ってどれくらいだろう?

Windowsってメモリ喰いのCPU喰いのような気がするけどみんなどうなんだろう?
通常運用で、メモリやCPUが50%超えたらアウトじゃないのか?
・・FreeBSDのクライアントに、Windowsを使うとメモリが足りなくなる事が有る。
プログラムそのものに問題が有ることも有ると思うが、そもそもWindowsって長時間の連続稼働は考えてないように思う。
で、再起動の話になるのだが、わたしは通常(土日などの)休日は帰宅してから次の出勤(月曜)まで、電源は入れっぱなしである。
(最近使ってないから改善されているならゴメンだけど)Windowsはそれだけでメモリが不足がちになる。
私の場合は通常運用で(16Gのメモリの)30%を超えたら注意で、50%を超えると危険と判断する。そんな時、PSやらAIなど立ち上げたら、まちがいなくスワップアウトされる。それで、重くなるなは困るので再起動をする。その他、頻繁なアップデート・・・GUI変えたり機能追加ってアップデートなのか?・・・そんな事より「今有る問題を解決してくれ!」・・・何よりOSのやってることが分からないのが一番問題で、わからないから質問しようとするとインシデントとかってお金を取られる・・・を含めていろいろ問題が有るので、2年ほど前にWindowsをやめてLinux mint(xfce4)にした。開発環境も充実したいというのも有ったが・・・まぁ、クライアントとして使うのはftpとTerminalぐらいだが、で、どうなったか? というと・・・
・・・エディタ(IDE)とブラウザを立ち上げてターミナルからBSDと接続しても2〜3Gぐらいで足りる。
3日間連続運用して(LLVMをコンパイルしてインストールするような時以外)も5Gを超えることはまず無い。


・・・と、話は変わるが、ubuntu(WSL)は通常定義されない型(uint,ulong など)が有るらしい。こんなの覚えて現場に出たらどうするんだろう? エラーだらけのコードが拡散することになる。他のサイト(scanf_s() や gets_s() が入ったソースを gcc で無理やりコンパイルする)でscanf_s()を潰すので苦労した話が上がっていたが・・・・まぁ、実務でprintf()やscanf()を使うことはまず無いだろうが、型の別名定義は使用されると厄介だ。MSはどうしてこんなことをするんだろう?

2019年3月11日月曜日

移植性のないプログラム

※最初に以下のページを参考にしてほしい

「より良いプログラムを書くために」

 で、昨日、某質問サイトに私の環境(gcc7.3,clang9.0)ではコンパイルできないCプログラムが有った。で、“コンパイルできない”故を伝えたら、「Visual C++の定義だから問題ない」というコメントをもらった。以前からscanf_s()やらなんやら互換性のないコードが溢れて居るので気になったいたのだが、“VCだから問題ない”というのは流石に問題だと思う。 プログラムというものは何年も場合によっては何十年も使われるものだ。長い間にソースの改変が入るのは止むをえないが、その時に成ってもとのソースが移植性のないものだったらどうだろう?・・・そもそも毎月のようにパッチを出している会社が、今後も同じソースがコンパイルできるコンパイラを出しているだろうか?

以前(30年ほど前)、某大手メーカで仕事をしていた時に新人SEにCの教育(と言っても週1回、通算2回w)を頼まれた事が有った。事前に講義内容を担当者と打ち合わせしたのだが、先方が指摘したのが「移植性の有るプログラム」という話だった。“それでは困る”と言うのである。理由としては“基礎とうちのワークステーション固有の題材にしてほしい”だそうで、結局移植性の話はしないようにしたが、担当は自分が言った意味が分かっていたのだろうか? そして、あの頃のSEはどうしているのだろうか?

個人的には、「移植性のあるプログラムを書こう」は、プログラミングの基礎だと思うのだが・・・

“10日間でプログラムを作ろうと思ったら。”に関わる話ですが 「あなたがプログラミングに向いていない10のサイン」を見てみましょう。きっと、いいヒントがもらえるでしょう。

2019年3月7日木曜日

10日間でプログラムを作ろうと思ったら。

遅くとも4日間でコーデイングを終わらせるべきです。

あとは、楽しいデバッグが待っています。※


が、教育機関(含高専)では、プログラミングは教えますが、デバッグの仕方はあまり教えてないようです。
・・・なので、問題が起こると“教えて君”になります。

現在は、「スタック・オーバーフロー」や「テラティル」などの質問サイトや「progate」,「ドットインストール」などの初心者向けプログラミング学習サイトがありますが、それでも躓く学生さんがかなり居るようです。(昔は本とIRCだけが頼りだった;;)
 ・・・何よりも“デバッグしてない”・・・嘘のようなホントの話

※プログラムは、書いたからと言って一発で動くことはまずありません。まして、思った通りに動くなんて・・・・
(中にはコンパイラすら通せないで質問する方がいます)

→ プログラムのエラーが出ることを怖がる学生さんたち


↓結構有名な格言です

プログラムは思った通りには動かない。書いたとおりに動くのだ
(Any code doesn't run as you thought, run as it wrote)


IT業界名(迷)言集

「プログラミング言語C」に出てくる“hello, world"も今では書式が古いためワーニングが出ます。

------------------------------------------
/*
    カーニハンの「hello, world」
 */
#include <stdio.h>

main()
{
    printf("hello, world\n");
}

 -----------------------------------------
tst.c:6:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
main()
^
1 warning generated.

main() の型指定がないよなんて書式が古いため“出て当たり前”と思うのですがそうではないらしい
「本の通りにやったんだけどなんかエラーが出る」だけでパニックになる・・・

“間違ったら恥ずかしい”そんな思いが有るらしい。


最初からいいもの作ろうとしないで、どんどん間違えて覚えてください。

「プログラムは動いてなんぼ、プログラマはデバッグが出来て一人前」

 
※「ソフトウェア開発データ白書」 によるとだいたいそんな数字(デバッグ60〜70%)になるらしい。


ブライアン・カーニハンを調べて結構本(和訳)を持っていることにびっくり
  • ソフトウェア作法
  • プログラミング言語C・・・これはどっか行ったw
  • プログラム書法
  • UNIXプログラミング環境
  • プログラミング作法 

  • 今更ながら「プログラミング言語AWK」がないのが悔やまれる。

2019年3月6日水曜日

一般ユーザでwiresharkを利用する方法 (Linux mint)

sudo usermod -a -G wireshark $USER

で、再起動(reboot)・・・ログオフ・ログオンでもいいみたいだけどやってないから分からない
 
これだけで、一般ユーザでも通信モニタが出来るd^^
 

2019年2月27日水曜日

IO-DATA 4K

IO-DATAの4Kモニタ使ってるんだけど、画面が広いだけでこれほど楽だとは思わなかった。
表面が半光沢なのがちょっと問題(長時間見てると眼が疲れる)

BeatLessの壁紙・・・このレイシアは子供っぽいv^^

LLVM.update.

clangを8.0 から9.0にアップデート。
Updated clang from 8.0(trunk 350063) to 9.0(trunk 354955)




linux mint 19.1 xfce
AMD Ryzen 5 1600x 3.6〜4.0GHz
 

make -j9 でのコンパイル時間は39分。
Compile time with make -j9 is 39 minutes.
・・・コンパイルしたらたまたま9になってただけ・・・というのは内緒v^^;

import this

  The Zen of Python, by Tim Peters Beautiful is better than ugly. 醜いより美しいほうがいい。 Explicit is better than implicit. 暗示するより明示するほうがいい。 Simple...