John(筋肉)の備忘録的な何か

備忘録的な何かであり、進捗そのものでもあるよ!!怖い人は見ないで!

Raspberry Pi3のWifi、固定IP設定からのssh接続!

こんにちは。John(None)です。

前回の続き、Raspberry Pi3の設定について行っていきたいと思います。

 

Wi-fiの設定

こんなコマンドを実行してくださいな。

sudo sh -c 'wpa_passphrase SSID PASSWORD >> /etc/wpa_supplicant/wpa_supplicant.conf' 

 SSID、PASSWORDのところには使いたいWi-fiのを各自当てはめて下さい。

このコマンドは管理者権限でwpa_passphrase(passwordを暗号化してくれていい感じにしてくれるコマンド)を実行し、その出力結果を最後の名前長いファイルに書き込んでる感じです。

 

すると名前長いファイルの中身はこんな感じになります。

 country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="SSIDやで"
#psk="暗号化してないパスワードやで" ←消しましょう
psk="暗号化したパスワードやで"
}

 そんで上にも書いてますが生のパスワードは消しときましょう。

 

Wi-fiの設定はこれで終わりですね。僕はこれだけじゃ使えなかったですが、他の人の情報によるとこんな感じらしいですね。

その僕の経験はどれが正解かわからないくらい試したんで、別記事にします。ややこしくなりそうなので。

 

固定IP設定

まず、/etc/network/interfaces に書き込みましょう!というのをよく見ますが、違うようです。(コメントアウトで注意書きがある)

/etc/dhcpcd.confを変更します。

 

interface wlan0ってとこの後ろに(なければinterface wlan0ごと記載)

static ip_address=x.x.x.x/24 #sshの時使いたいポートで

static routers=x.x.x.x #Wi-fiのやつ

static domain_name_servers=x.x.x.x #上に同じ

と、書いて終わりでっせ。

 

適用するには再起動するという方法もありますが、

sudo ifdown wlan0

sudo ifup wlan0

とする方法もあります。

 

そしてpingとか、apt-get updateとかやって試して下さい。

 

終わりに

なんか間違ってるかもしれませんがだいたいこんな感じで設定しました。

 

手間取った話はまたつぎの記事にしたいと思います。

次の記事、不毛というか情報の整理がしたいって感じだけどめんどくさいのしません。

 

Raspberry Piの活用法を考え中です。どしどし@John_barderaまでご応募下さい。楽しいことがしたいです。

ちなみに今はフォローしている人の画像ツイートの画像を自動ダウンロードするプログラムを稼働させる計画を立てています。

 

今最後と思ってこの記事を読み直したんですが、堅苦しい上内容無いというあれがあって悲しい次第です。頑張ります。

Raspberry Pi3をシリアルコンソールで初期設定!

皆さん、ごきげんよう。John(われわれはかしこいので)です。

けものフレンズ良かったですね。僕はコウテイペンギンハシビロコウあたりが好きです。好き。

 

今回、Pythonで常時稼働させたいプログラムを考えついたので、怖い怖いと避けてきたRaspberry Piを触ろうと思った次第です。

 

普段使いはリモートデスクトップでやればいいとして、初期設定はどうしよう。。とぼやいてたら、シリアルコンソールというものがあるよ!と天からお導きがあったので、理解はしてないですが記事にして叩かれないか心配。

備忘録だから!!

 

シリアルコンソールって何?

僕も知らないけどすっごい素敵な何か。結婚してほしいほどではない。

ディスプレイ無しでRaspberry Piの初期設定が出来るよ!!

 

必要なもの(というか僕が用意したもの)

・Raspberry Pi3

microSDカード

・AC電源アダプター(5V 3.0A)&ケーブル

・USB-TTL~え~、、これです。

Amazon | Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル | GAOHOU | USBケーブル通販

・ノートパソコン(Tera Term入り)

以上です。

 

手順

microSDにOSを入れます

まずOSをダウンロードします。

Download Raspbian for Raspberry Pi

そんで解凍してディスクイメージをmicroSDに書き込みます。

僕はWin32DiskImagerで書き込みました。

 

設定を弄る

書き込みが終わったらその中にあるであろう、config.txtに

 dtoverlay=pi3-miniuart-bt

cmdline.txtに

dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

と付け足します。これは呪文です。Raspberry Pi3にのみ、必要です。

(Bluetoothやらを無効化するだかなんだか)

 

いざ接続

microSDをぶっ刺して、USB-シリアル変換ケーブルを接続します。

f:id:julia-bardera-jb:20170406010319j:plain

 

6pinには多分どのケーブルでも黒のGND。

8pinにはUART_RXD。

10pinにはUART_TXD。

UART_RXD、UART_TXDはケーブルの色が多分違うので各自調べて。

 

ドライバの設定とか

バイスマネージャーからシリアル変換ケーブルの探し出して、

f:id:julia-bardera-jb:20170406011329j:plain

な感じに設定!!

 

これでドライバをいい感じに設定してTeraTermでシリアル接続するんですが、、

なんかケーブルの方で問題が発生してるらしく接続できませんでした。

そこでドライバを古いやつにしたら動いた。よかった。

同じ症状の人ためして。

 

これでRaspberry Piの電源入れたら、TeraTermがほげ~って色々出して、「Loginしろよオラッ!」ってなるので成功です。

 

終わりに

実は英語できないマンなので、Rasberry piだと思ってました!!

なので、、

User: pi

Password: rasberry

として延々と入れませんでした。

 

これからもWifiにつながらないなどの問題が起こったので記事にしたいと思っていますが今日はこのへんで。

 

Tak関数の高速化の宿題を頂いてるので、その記事もぼんやり書こうと思っています。ほげ。

京都まで自転車で行った話

どうもこんにちは。John(任意)です。

今回自転車で京都まで行ってみました!(スタートは明石高専)

その話をまとめ上げたいと思います。

 

経緯

自転車で旅って面白くね??

それが始まりでした。というか経緯なんてこれだけです。

たまたま京都に行く用事があったので、どうせなら自転車で!!って感じです。

 

僕の愛車(ママチャリ)

f:id:julia-bardera-jb:20170331171540j:plain

 

どれ位かかったのか

合計走行距離(往復) 約270km

合計走行時間(往復) 約30時間

マジパネェ。。

 

大阪で行き帰り1泊ずつして、京都でも1泊。3泊4日の旅になりました。

 

道のり(適当)

f:id:julia-bardera-jb:20170331173238j:plain

 

1日目

生活リズムが荒ぶってたので、出発は遅めで8時。

明石海峡大橋

f:id:julia-bardera-jb:20170331173847j:plain

すごく、、おっきいです。。

須磨海浜公園

f:id:julia-bardera-jb:20170331173927j:plain

日曜なのでリア充が多くて自転車を押してた思い出。。

甲子園

f:id:julia-bardera-jb:20170331174117j:plain

野球知らないからあれだけど、高校野球か何か?

淀川

f:id:julia-bardera-jb:20170331174215j:plain

あれなんですね。

軽巡洋艦大淀の聖地じゃないんですね。

ちなみにこのあたりで雨が降ってきてます。

 

そんで大阪市に到着、知り合いがいたので止めてもらって~って感じでした。

この日で83km、9時間ぐらいでしたね。

 

2日目

京都へ向かうべく、朝5時に出発。

道中は特に載せる写真もないです。

通天閣は忘れてました。

京都駅

f:id:julia-bardera-jb:20170331174727j:plain

10時40分くらいについてましたね。友人たちとご飯の約束してたので良かった。

魔剤で祝杯

f:id:julia-bardera-jb:20170331174857j:plain

普段飲まない青色をチョイス。

僕はやはり白が好きだった。。

ちなみに下に見える緑のもふもふは寝袋です。

 

大阪-京都間は山が多くて死にそうになりました。

53kmぐらいでしたね。

 

京都でわいわい

言うなれば合宿。近畿地区の高専生が集まる交流会です。

高専生が集まって騒ぐとなればこれ。

魔(剤)TEN(GA)

f:id:julia-bardera-jb:20170331180240j:plain

部屋が魔剤臭くなりました。

魔TEN楼はこの後も成長を続けました。というか皆徹夜してたし。

 

3、4日目(帰り)

帰りは天気が良かったのもあり色々適当に撮ってきました。

(スマホの低画質で尚且つボケてたりはする)

 

改めて淀川

f:id:julia-bardera-jb:20170331180834j:plain

軽巡洋艦淀っているのかな。

f:id:julia-bardera-jb:20170331180851j:plain

早いなぁ、きれいだなぁ、と思って。(健全アッピル)

例のアレ

f:id:julia-bardera-jb:20170331180900j:plain

生では初めて見ました。

老祥記の豚饅

f:id:julia-bardera-jb:20170331180903j:plain

f:id:julia-bardera-jb:20170331180909j:plain

お昼休憩にね。おいしいよね。

ポートタワー

f:id:julia-bardera-jb:20170331180917j:plain

ありえん、ボケみがやばい。

そんでもって改めて明石海峡大橋

f:id:julia-bardera-jb:20170331180933j:plain

やっぱり、、すごく、、おっきいです。。

お昼ごはん(2回目)

f:id:julia-bardera-jb:20170331180942j:plain

どんぶり勘定なんだけど、あのコストパフォーマンスはどうなってるんだろうね。

結構おすすめ。瑞鳳のだし巻きって感じのだし巻き。好き。たべりゅ~!!

 

最後に

ママチャリだったこともあり、山道はすごい辛かったね。

でもそれ以上に僕一人だけで行ったので、娯楽がなかったのが辛かった。

風景をみるか、足の痙攣を感じるか、幼女に手を振るか、「ようこそジャパリパークへ!」を歌うか。。

だから誰か連れていきたい感じはある。

 

それと筋肉痛がやばい。1.5日ぐらいが経過したけど、まだ足が痛い。というか足が太くなった気がする。

なのであまりおすすめはしないですが、僕はまたやるつもりです。

よろしくお願いします。(?)

沼津高専カンファでLTしてきたっ!

前の更新より大分あいてしまいました。John(ペンギン)です。

今回沼津で行われた高専カンファにてLTさせていただいたのでスライドそのまま置いてブログにしちゃおうと思います。

 

発表スライドそのまま

speakerdeck.com

 

感想に満たない何か

楽しかったです。お話してくれた方ありがとうございました!

もっと各位とお話を楽しみたかったのに時間がああぁぁぁ!!って感じで。

 

次は舞鶴高専カンファに行く予定。7月1日だったよね?

ポン・デ・リング買ってきてやるぜっ!

Cのコードである上、シェルに渡しても動作するプログラムっ!

皆さんこんにちは。John(筋肉)です。

部活やら会計やら課題やらでふえぇ。。ってなってしんどい今日此の頃です。

 

先輩のいるやんさんから面白いことを聞いたので備忘録ったろうと思って書いてます。

 

では本題。

このコード、Cのコードとしてどうでしょう?

#define a int main(void){printf("Hello");}

a

コンパイルするとめっちゃwarningやらnoteやら出てきますが、コンパイルできます。

実行すると

 Hello

と返してくれます。

当たり前なんでしょうが、なんちゃってプログラマな僕には「#defineのところにそんなのいれれるのか!へ~!」って感じでしたが。。

 

まだこれではシェルでは動きません。多分。

これを動いたといえるのか??

hoge.c: 2: hoge.c: a: not found

 

次にシェルで動くやつ。

#define echo int main(void){printf("Hello");}

#define Hello

echo Hello

どうでしょう??

 

このコード、めっちゃwarningやnoteが出ますが、コンパイルできますし、

Hello

と、出力もしてくれます。

 

そんでもってシェルに渡すと、、

% sh hoge.c

Hello

%

 こうなります。

 

すごい。。初めに気づいた人しゅごい。。なんの役に立つのかあれだけど。。

 

なして動くのか。

ちゃんと動く理由はシェル上では「#」はコメント扱いになるからです。

なのでシェルが実行してるのは

echo Hello 

 ただそれだけの話となります。

 

うむ。改めて書いてみるとどうでも良さげなあれだね。

Cだと記号が使いづらい、というか使えないのがちょっと悲しい。。まぁ、同一のコードにする必要ないけど。

 

まとめ

Pythonでも同じことができそうだな?え、出来るよね?

 

Python3でスクレイピング!!画像自動ダウンロード!!

皆さんこんにちは。John(筋肉)です。

最近、上司(先輩)であり、尊敬するいるやんさんに勉強会に連れて行っていただきました。

そこで学んだもので少し趣味をしたので、紹介したいと思います。

 

何作ったのかー

あ艦これBlogという艦これのまとめサイトからページを取得して、自動的にそこに貼ってある画像をダウンロードさせていただくプログラムです。

akankore.doorblog.jp

エロサイトちゃうよっ!!

 

これがコードだ!!

まず入れるモジュールからー。

 

import requests

import os

from bs4 import BeautifulSoup

 

それからダウンロードするときの名前設定、ダウンロード先ファイルを指定したり、ダウンロードするための関数を定義。

 

def download(keyword):
    for img in soup.select(keyword):
        file_name = img["src"].split('/')[-1]
        res = requests.get(img["src"],stream=True)
        if res.status_code == 200:
            with open("./downloads/"+number+'/'+file_name,"wb") as file:
                for chunk in res.iter_content(chunk_size=2048):
                    file.write(chunk)
            file.close()

 

Python初心者なので怖い指摘は控えておなシャス!

そんでもって本体?

 

print("akankore's page number: (example:49295408)")
number = input()
url = requests.get("http://akankore.doorblog.jp/archives/"+number+".html")
soup = BeautifulSoup(url.content,"html.parser")
print(soup.title.string)
if os.path.exists("./downloads") == False:
    os.system("mkdir ./downloads")
os.system("mkdir ./downloads/"+number)
download(".t_b a img")
download("a .mt-tweetimg-multi")

 

うん。なんで3行目、urlって名前にしたんだろう。。reqとかが良さげだのに。

ネーミングセンスや正規表現?に関しては許せ下さい。

 

これ実行し、49295408と入力すると、

http://akankore.doorblog/archives/49295408.html

の.t_bの中のaの中のimg、またaの中の.mt-tweeting-multiの画像が、./Downloads/49295408/にダウンロードされます!良さ!

49295408は趣m...適当に例としてあげただけだからっ!

 

ちなみにタイトルと入力するべき番号を取得するプログラムも組んだので無限に画像を得ることもできそう。

 

まとめ

僕悪いことしてない。健全。

 

そして無限の可能性を見た。

 

こここうした方がいいよー、とか、こんな楽しい学問もあるよー、とか、優しく教えてくださいな。ありがとうございました。

Emacsコマンドでテキスト上に文字を入力したい

どうもこんにちは。John(筋肉)です。今日3つめです。

今回はEmacsコマンドでテキスト上に文字を入力したいという記事です。

 

これは「次の行に移動」するコマンドと「行の最後に移動」するコマンド、「空白の入力」を一つのショートカットで行ってほしい時、空白の入力に関してパッと調べただけでは出なかったので書きたいと思いました。

 

英単語をまとめたい

始まりはこれでした。持ってる英単語帳をそのままデータ化したかったのです。

 

cease するのをやめる
conclude と結論づける
vanish 姿を消す
bury を埋葬する
collapse 壊れる

 

こういうのを楽に作りたかった。そこで僕は、楽な方法は、

 

cease

conclude

vanish

bury

collapse

 

と入力してから、日本語訳を打ち込むこと。と考えました。

つまり、英単語と空白を入力したあと、次の行に移動し、行の最後に移動し、日本語訳を入力するのが簡単で楽だと。。

 

しかし、英単語のあと空白入力が面倒くさい。

しかも半角空白で入力したいので、日本語訳を入力するたびに全角/半角を入れかえないといけない。

 

なので空白を入力するすべを探しました。

 

init.elにはこう書きました!

 

(defun end-of-next-line(null)
(interactive "i")
(next-line)
(end-of-line)
(insert " "))
(global-set-key [(C q)] 'end-of-next-line)

 

insertがわかんなかったんだよねぇ。調べてもバッファに文字を出力するやつとかしかでなくて。

 

これのおかげで便利になり、英単語はまとめれたよ!ありがとうinsert!

 

(ありがとうございました。またこんな方法もあるよ!という方教えてくださいお願いします。)