dola963keのメモ帳

組込機器や通信/ネットワークの技術要素、生活に関する話題

ブログの運営による知識アウトプットと収益化について

仕事や日々の生活で得た知識や経験を身に着けるためのアウトプット場所として、これまで「はてなブログ」を活用していた。最近、収入を増やすために副業を検討しているが、その1つとしてブログの収益化にチャレンジしてみようと思う。本ページでは、下記の収益化を目的としてどのように活動するか計画を記載してみる。

 

情報収集

参照

ブログを収益化する3つの方法を解説【SNS運用が必須です】 – macaron

【決定版】SNSで稼ぐ仕組みを徹底解説!各アプリの特徴を掴んで収益化を促進しよう | オンビジ (goodnoise.co.jp)

両学長おすすめの副業で成功したものと失敗したものを公開! | タケのブログゼミ (takeincomenet.com)

 

芝生や駐車場に生えるスギナに困ったはなし①

1. はじめに

最近、庭・駐車場付きの家に引っ越しました。

庭には芝、駐車場には砂利が敷いてあるのですが、そこからスギナが生えているのを発見!!

凄まじいはやさで増えていくので対処をはじめました。

 

2. 手作業で抜いてみる

手で抜いてみましたが、「ぽきっ」と途中で折れます。

何本も密集しているため、地中で根っこが繋がっていそうです。

 

wikipediaで知らべると、根が切断されても復活するようです。

別名、「地獄草」。。。

手で除去するのは無理なようです。

<https://ja.wikipedia.org/wiki/スギナ>

3. 除草剤を使ってみる

最寄りのホームセンターで除草剤を探してみました。

「芝生を殺しくたくないなー」と考えていたところ、芝生に使える除草剤を見つけたので早速購入!!

スギナに使用してみました。 

経過観察して効果が見えたらまた報告します。

 

 

 

raspbianの初期設定

初期設定で困ったことをメモしておく。

Q1. ディスプレイの上下左右に余白が生じる。

A. Raspberry Piの設定->システム オーバースキャンを無効にする。

 

Q2. DNS設定が何かの拍子に初期化される。

以下の環境

OSバージョン:debian 8.0

Kernelバージョン:Linux raspberrypi 4.1.18-v7+

においてDNS設定を /etc/dhcpcd.confや /etc/network/interface、/etc/resolv.confに記述しても何かの拍子に/etc/resolv.confの中身が空白になってしまった。resolvconfがresolv.convへDNS情報を書き込むらしいが正常に動作していないことが考えられる。

apt-get install resolvconf

でresolvconfを入れ直したところ、/etc/resolv.confにdhcpcd.confのDNS設定が書き出されていた。今のところ問題はない。

 

vimによる文字数カウント

vimで原稿を書く時、文字数を数えるためのコマンドを毎回ググっているのでとりあえずメモ。

:%s/./&/g

:'<,'>s/./&/g (visualモード時)

参考:

仮想化された日々:vimでの文字数カウント方法 - livedoor Blog(ブログ)

いつも忘れるvimでの文字数カウント方法 | .COM-POUND

 

落ち着いたらvimによる文字操作をちゃんと勉強をしたい。

C++ std::bitsetを見つけたけれど

c++にはビット集合を表すためのSTLとして std::bitset が用意されていることを知った。

これまでビット集合を表す時には

typedef unsigned char BIT

typedef unsigned char BYTE

のようにビット演算に利用する変数に別の名前をつけて

vector<BIT>

vector<BYTE>

として任意のビット長をもつ変数を利用していた。

メモリを無駄に消費しているなあと思っていたが

bitsetはしっかり1ビット単位で処理できるらしい。

 

使用してみると

std::bitset<N>

のように固定数 N が必要で動的確保は不可能のようだ。

今回は保留。

c++11のthreadを使ってみる

複数のパラメータを変更して1つのアルゴリズムを行うシミュレーションを行うことになりました。マルチスレッドでシミュレーションを行うためにC++11のthreadについて調べてみました。

 

~実験~

メインスレッドでスレッドを3つ起動して,それぞれのスレッドIDを表示する。

 

~結果~

multithreading is executed.
Main thread ID is 0x7fff78e22310
0x105b4c000 is working.
0x105bcf000 is working.
0x105c52000 is working.

各スレッドのIDが違うため,無事複数スレッドが起動したことが分かる。

 

~注意点~

複数のスレッドが同一のリソース(上記の例では標準出力)を使用するときには割り込みを考慮する必要がある。mutexのメンバ関数であるlockとunlockを使用してリソースの確保をする必要がある。

mutex mtx; //(グローバル変数)

mtx.lock(); //(リソースの確保)

cout << "Hello!" << endl; //(標準出力にHello!を出力)

mtx.unlock(); (リソースの解放)

 

(lock_guardなる便利なクラスがある。)

 

参考:

thread (C++11) - cpprefjp - C++ Library Reference

mutex (C++11) - cpprefjp - C++ Library Reference