SlideShare a Scribd company logo
1 of 38
Download to read offline
RASPBERRY PI講習会
PART3: IOT WITH RASPBERRY PI
2018年冬 小野輝也
前回の復習QUIZ
Q1 シェルの主な役割は何?
Q2 CUIによるコマンド操作は{1.クソ 2.神}である。
Q3 aptって何?
Q4 Linuxシステムの管理者ユーザは何?
PYTHONの復習
def get_average(mylist, size):
“""関数呼び出し時に mylist = score, size = 4の代入が行われる"""
sum = 0
for i in mylist:
sum += i # a += 1 は a = a + 1を意味する
return sum / size
score = [70, 82, 88, 90]
average = get_average(score, 4)
print("average:{}".format(average))
今回の目標
webサーバーを立てる!
ブラウザからLEDを点灯!
いまバズってるIoTというやつです。
サーバ・クライアント構成
サーバ側のコンピュータとクライアント側の
コンピュータに分けてそれぞれの役目を
切り離す。
リクエストを好きなタイミングで送り
レスポンスをもらう。
例)ブラウザ
クライアント
サーバ
リクエストに対してレスポンスを返す。
リクエストをじーーっと待つ。
webサーバ、FTPサーバ、DNSサーバなど
今、どこにいる?
サーバ・クライアント構成でプログラムを書くときは、
自分が今どちら側を作っているのか意識しよう。
webサーバ
 HTTPプロトコルに基づいてデータのやり
取りをするサーバのこと
HTTPプロトコル
hypertext transfer protocol
ハイパーなテキストをトランスファーするた
めのプロトコル。
通信プロトコル
通信を行うために必要な取り決め
ケーブルのコネクタの形状は?
データの先頭10バイトは何を表す? などなど
SSHとHTTPでは実現したいことが異なるため異なるプロトコルが用いられる
ハイパーテキスト
ただの文字だけでなく、図、表、などを表現で
き、リンクによって別のテキストを参照できる
ようになっているテキストファイルのこと
HTML
hypertext markup language 
ハイパーなテキストの代表格。
webフレームワーク
webアプリケーションを作る際に大抵必要となる機能をあ
らかじめまとめたもの。
どんなファイルをどこに配置するかが定められており、そ
の決まりに沿ってプログラムを書く
ライブラリ
よく使う機能(時刻やデータベース操作)をまとめたもの。
どう使うかは君次第。
BOTTLEのインストール
Pythonのwebフレークワークであるbottleを使おう。
http://bottlepy.org/docs/dev/tutorial.html
$ sudo pip3.6 install bottle
pipはpythonの公式パッケージマネージャ
初めてのサーバ
ホームディレクトリにserverディレクトリを作成し、その中にserver.pyを作成しよう。
# 必要なモジュールの読み込み
from bottle import Bottle, run, post, request, redirect
# Bottleオブジェクト(インスタンス)の作成
app = Bottle()
@app.route('/')
def handle():
return "hello, bottle"
run(app, host="your_ip_addr", port=8080)
初めてのサーバ
PCでもスマホでもいいのでwebブラウザを立ち上げて、URL入力バー
に
http://192.168.111.XX:8080/
これを入力しよう。
表示されましたか?
SERVER.PYで遊ぼう
@app.route(‘/‘)
def handle():
return "hello, bottle”
@に続くapp.routeをデコレータ関数と言います。
‘/‘の部分は何を表しているかわかりますか?
ここを変更するとどうなるでしょう?
関数名を変更してみると?
@app.route()を増やしてみると・・・?
SERVER.PYで遊ぼう
@app.route(‘/‘)
def handle():
return "hello, bottle”
returnはどこに何を返しているのだろうか?
試しにreturn “<h1>hello, bottle</h1>”としてみよう。
HTTP
HTTPは常にリクエスト、レスポンスのキャッチボール。
ブラウザ「ください」 =>リクエスト        サーバ
ブラウザ       <=レスポンス(htmlファイル)サーバ「どう
ぞ」
リクエストの中で、「何を」「どうして欲しいのか」を伝える。「何を」
に相当するものがURLで「どうして欲しいのか」に相当するのがHTTPメ
ソッド。
GETメソッド
URLにデータを含めてサーバにリクエストを送る。
ggるのは主にGETメソッドを用いている。
POSTメソッド
指定されたURLにリクエストとともに、
データをサーバへ送信する。
QUIZ
Q1、先ほどhello, bottleを表示させるのに使ったメソッドはなんで
しょう?
Q2、webのフォームデータを送信するときに使うメソッドはなんで
しょう?
HTML再入門
<hoge>で始まり</hoge>で終わる。<>で囲まれている部分をタグと
いう。タグの種類によって役割が決まる
<h1>
<table>
<form>
<input>
<script>
などなど
GETでリクエスト送る
GETではクエリパラメータというものを使って、リクエストデータに情報
を加えることができる。
<form action="/robo" method="GET">
<input name=“get_foo” value="roboaki" type="hidden" />
<input value="send" type=“submit" />
</form>
GETで受ける
@app.route('/robo')
def recvget():
return "{}".format(request.query.get_foo)
POSTでリクエスト送る
<form action="/architect" method="POST">
<input name=“post_foo” type="text" />
<input value="osunayo!?zettaiosunayo!?"
type=“submit" />
</form>
POSTで受ける
@app.route('/architect', method='POST')
def recvpost():
return "{}".format(request.forms.get(‘post_foo’))
PYTHONでGPIOピン操作
この前シェルスクリプトでGPIOピン操作をしましたね?
これをpythonのスクリプトでもやってみましょう。
$ sudo pip3.6 install wiringpi
使い方簡単です。
import wiringpi
wiringpi.wiringPiSetupGpio()
# For GPIO pin numbering
wiringpi.pinMode(6, 1)
# Set pin 6 to 1 ( OUTPUT )
wiringpi.digitalWrite(6, 1)
# Write 1 ( HIGH ) to pin 6
wiringpi.digitalRead(6)
# Read pin 6
LCHIKA.SH再来
この前のlchika.shとまったく同じことをしよう。
import time
time.sleep(5)
でpythonを5秒間待機させることができる。
今日のお題
ブラウザのボタンを押してLEDを光らせよ!
自由に作ろう
ONボタン、OFFボタンを両方作る?
それともONとOFFの相互切り替えをする?
LEDのON,OFF情報はPOSTで送る?GETで送る?
どのURLにデータを送る?
変数のスコープ
>>> a = 10
>>> def hoge():
... a += 1
... print(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in hoge
UnboundLocalError: local variable 'a' referenced before assignment
GLOBAL変数を使う
>>> a = 10
>>> def hoge():
... global a
... a += 1
... print(a)
私が作ったSERVER.PY
https://github.com/teru01/Lchika-Server
GitHubというサービスを使っています。
お疲れ様でした。
$ sudo poweroff

More Related Content

Similar to ラズパイ講習会(第3回)

Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみるftnk
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Yoshifumi Kawai
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
 
PHPの今とこれから2008
PHPの今とこれから2008PHPの今とこれから2008
PHPの今とこれから2008Rui Hirokawa
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~ryuz88
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータTakahiro Inoue
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編Fujio Kojima
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜京大 マイコンクラブ
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門伸男 伊藤
 
高負荷に耐えうるWebApplication Serverの作り方
高負荷に耐えうるWebApplication Serverの作り方高負荷に耐えうるWebApplication Serverの作り方
高負荷に耐えうるWebApplication Serverの作り方GMO-Z.com Vietnam Lab Center
 
高負荷に耐えうるWeb application serverの作り方
高負荷に耐えうるWeb application serverの作り方高負荷に耐えうるWeb application serverの作り方
高負荷に耐えうるWeb application serverの作り方yuta-ishiyama
 
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)Tomokazu Kizawa
 
私のチームのリーダブルコード
私のチームのリーダブルコード私のチームのリーダブルコード
私のチームのリーダブルコードKeisuke Tameyasu
 
Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介cyberagent
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門kunihikokaneko1
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
DIGITSによるディープラーニング画像分類
DIGITSによるディープラーニング画像分類DIGITSによるディープラーニング画像分類
DIGITSによるディープラーニング画像分類NVIDIA Japan
 
Gura プログラミング言語の紹介
Gura プログラミング言語の紹介Gura プログラミング言語の紹介
Gura プログラミング言語の紹介Yutaka Saito
 

Similar to ラズパイ講習会(第3回) (20)

Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
PHPの今とこれから2008
PHPの今とこれから2008PHPの今とこれから2008
PHPの今とこれから2008
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
 
オンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータオンラインゲームソリューション@トレジャーデータ
オンラインゲームソリューション@トレジャーデータ
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
 
高負荷に耐えうるWebApplication Serverの作り方
高負荷に耐えうるWebApplication Serverの作り方高負荷に耐えうるWebApplication Serverの作り方
高負荷に耐えうるWebApplication Serverの作り方
 
高負荷に耐えうるWeb application serverの作り方
高負荷に耐えうるWeb application serverの作り方高負荷に耐えうるWeb application serverの作り方
高負荷に耐えうるWeb application serverの作り方
 
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
Windows8のクライアントHyper-V入門(.NETラボ勉強会 2013/6/22 日本マイクロソフト)
 
私のチームのリーダブルコード
私のチームのリーダブルコード私のチームのリーダブルコード
私のチームのリーダブルコード
 
Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
DIGITSによるディープラーニング画像分類
DIGITSによるディープラーニング画像分類DIGITSによるディープラーニング画像分類
DIGITSによるディープラーニング画像分類
 
Gura プログラミング言語の紹介
Gura プログラミング言語の紹介Gura プログラミング言語の紹介
Gura プログラミング言語の紹介
 

More from teruyaono1

Klab expert camp 成果発表
Klab expert camp 成果発表Klab expert camp 成果発表
Klab expert camp 成果発表teruyaono1
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料teruyaono1
 
Serverlessに触れてみる
Serverlessに触れてみるServerlessに触れてみる
Serverlessに触れてみるteruyaono1
 
Mikrotikルーターが仮想通貨採掘マルウェアに感染していました
Mikrotikルーターが仮想通貨採掘マルウェアに感染していましたMikrotikルーターが仮想通貨採掘マルウェアに感染していました
Mikrotikルーターが仮想通貨採掘マルウェアに感染していましたteruyaono1
 
rpi_handson_2.5
rpi_handson_2.5rpi_handson_2.5
rpi_handson_2.5teruyaono1
 

More from teruyaono1 (8)

Klab expert camp 成果発表
Klab expert camp 成果発表Klab expert camp 成果発表
Klab expert camp 成果発表
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
 
Serverlessに触れてみる
Serverlessに触れてみるServerlessに触れてみる
Serverlessに触れてみる
 
Mikrotikルーターが仮想通貨採掘マルウェアに感染していました
Mikrotikルーターが仮想通貨採掘マルウェアに感染していましたMikrotikルーターが仮想通貨採掘マルウェアに感染していました
Mikrotikルーターが仮想通貨採掘マルウェアに感染していました
 
rpi_handson_3
rpi_handson_3rpi_handson_3
rpi_handson_3
 
rpi_handson_2.5
rpi_handson_2.5rpi_handson_2.5
rpi_handson_2.5
 
rpi_handson_2
rpi_handson_2rpi_handson_2
rpi_handson_2
 
rpi_handson_1
rpi_handson_1rpi_handson_1
rpi_handson_1
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Recently uploaded (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

ラズパイ講習会(第3回)