ビジネス
情弱ビジネスという言葉がありますね?
YouTubeとかの広告で散々見かけますが、奪う側と奪われる側が顕著な例だと思いました(笑)
「あんなのに手を出す人がいるのか・・・?」
と思う時点でいるんですよね。。。
世界は広いです。
【絶対稼げる!】・・・
の文言とか、あとはこんなワードも聞いたことはあるのでは。
オンラインサロン、プログラミングスクール、Webライター(爆笑)、
最近だとNFTとか仮想通貨もそうです。仮想通貨は古いか。
こういう、「新しいもの」に吊られて人が集まってくるのは人間の性ですし、
そこをうまくついたビジネスなんですよね。
昔からあるじゃないですか。
「壺要りませんか?」
って。
「人が集まる」 = 「カネ」
なんですね。
人が集まれば価値は相対的に高まっていきますし、搾取される側、搾取する側がくっきりしてきます。
あとこういうビジネスをやっていてイニシアチブを取っている人は頭が良いです。
学歴も非常に良かったりします。
まあそこに集まってくるのは有象無象ですが・・・(笑)
まあこういう情弱ビジネスは絶対なくならないですし、
不況になればなるほど、金を回すためにメディアを介した布教や囃し立て、煽りが増します。
「~で・・・円稼いだ!」とかの煽り文句、最近だとYouTubeだけでなく、テレビでも見ますしね。
これが射幸心、羨望心をくすぐるんじゃないでしょうか。
特に昔から他国と比較して大きく規制もされてこなかったパチンコ・パチスロが大普及している日本の文化では、
射幸心を煽るクリティカルなワードですね。(笑)
ますます貧しい人から金持ちが金を巻き上げていきます。
多分好景気だとこういう話は少なくなる気がするんですよね。
みなさん心に余裕ができますし。
情弱ビジネス、こういったものに対してしっかりと分別が付けられる人が、「頭の良い人」であると思いますし、
私もそういった人であり続けたいです。
(そういうのにハマってしまっている友人が居たら縁を切るか距離を置こうネ!説得は効かないヨ!)
ぽかみす
sizeof
C言語で
sizeof(型、変数、etc...);
という演算子がありますね
この演算子について恥ずかしながら色々勘違いしていました...
勉強しなおさないとですね。
少し極端な例ですが、例えばこんなプログラムがあったとして、
#include <stdio.h> int example(int *p); int main(){ int array[3] = {1, 2, 3}; int result; /* 直接sizeofで配列の要素数を求める */ result = sizeof(array) / sizeof(int); printf("%d\n", result); // => 3 /* 配列をポインタで渡して関数で大きさを求めたい */ result = example(array); printf("%d\n", result); // => 3? return 0; } int example(int *p){ return sizeof(p) / sizeof(int); }
さて、コード上にも書いていますが、
関数にて求めた2個目のresult
はどんな値を取ると思いますか?
結果から言うとこうなります。
3 1
なぜこうなるのでしょうか?
実は関数の
int example(int *p){ return sizeof(p) / sizeof(int); }
の部分、
sizeof()
の引数にint*(intポインタ)を渡しています。
つまりこれはポインタのサイズを取得しているのです。
ポインタが確保しているメモリサイズ
を返しているんですね。
私のPCだと4バイト確保しているようで、これを実行すると4が出力されます。
sizeof(int)
はintのバイトサイズなのでintは32ビットのため、4となります。
つまり4 / 4 = 1となり、出力のresult
は1となっています。
memcpy
を使う機会がありまして、その第3引数にsizeof
を用いたのですが
そこにポインタを入れてしまい、いつまでも4つ分の配列の要素しかコピーできないという沼に陥っていました。。。
こういう演算子を使う時は定義を明確にして使用して濫用しないようにしたいですね。
余談
あと、マークダウン記法でソース書くときのシンタックスハイライトの言語指定ですが、
C言語ソースは小文字のc
じゃないとダメなんですね。。大文字はダメらしい。。
Ruby
Ruby
最近Rubyも嗜んでおりまして、
これがまたとっつきがたく、、、
スクリプト言語なのでコンパイル不要の言語なので、
慣れてしまうと連続実行とかそういうのはお手の物の代物なのですが
やはりCとは勝手が違いますね笑
ただOpenSSLが標準のライブラリで入っているのは素晴らしいです。
DESとかAESとかそういう暗号化で遊ぶことができますし、面白いですよ。たとえば、2key TripleDESもこんな簡単に組めます。
require 'openssl' msg = "\x00" *8 c1 = OpenSSL::Cipher.new("des-ede") c1.key = "\x23" *16 msg = c1.encrypt.update(msg) puts msg.unpack('H*') puts __ENCODING__
edeって言うのはencrypt decrypt encryptのことで、
Triple DESとはその名の通りDESを3回暗号化、復号化、暗号化と繰り返し、
暗号化を行います。unpack('H*')というのは、暗号化されたものを16進数1バイトごとに配列にするようなものです。(適当、うろ覚え、、、)
3-key Triple DESというのと2-key Triple DESの違いは
ずばり鍵の長さですね。
2-keyは平文の2倍長、3-keyは3倍長。
2-keyは鍵を2分割して左側で暗号化、右側で復号化をかける。
3-keyは鍵を3分割して3つの鍵で暗号、復号、暗号のフローに割り当て。
上記のコードは平文8バイトで値はオール00(16進数)で、
鍵は23(16進数)が16回繰り返されている16バイトの鍵値の、
2-key Triple DESの単純なRubyプログラムです。
たった数行で組めてしまいます。
すごいですね。
昼
本日は出社日でして、がっつり仕事をしました。
会社の食堂は結構安く、財布に優しくて助かります。
在宅勤務でなければ毎日通いたいくらいです。
ああ
正直書く気が起きないのでもう寝ます・・・
トンデモ人間って実は身近にいるんですねえ
以上
結果
合格
基本情報技術者試験の合格証書が届きました。
合格発表の番号にはありましたが、いざこうして証書とか来るとようやく実感できますね。
組み込み
ところで組み込みの話をしてみようと思うのですが、(唐突)
組み込みだと俗にいうプログラミング言語はCが使われます。
C言語って「制作者の意図を妨げない」を売りにしている言語でして、
書いたことを素直にプログラムは実行してくれます。
つまり、意図しないで、裏で暗黙に何かプログラムが動いたり、作られたりすることは無いんですね。
あ、勿論オブジェクトファイルとかは作りますよ。ファイルを翻訳単位でリンクしないといけないので。
場合によってはバイナリファイルとかhexファイルとか作りますしね。
裏で暗黙に動いていたりするのは、JavaScriptとかそういう系ですね。裏でファイルの実体が作られる系の。
こういったものはwebで動かすんですね。
機器に組み込む際には裏でファイルが作られてしまうような言語は以ての外で、
プログラムのバイトサイズが明らかになるものでないといけません。
webのサーバーのように無限ではなく、メモリ容量は有限ですし、
そういった機器に組み込む際にプログラムを保管しておける部分も限られています。
なので、作ったファイルを素直に動かしてくれるCが未だに使われているんですね。
ここまでCについて色々語りましたが、腕が疲れたのでこのへんで。