アンケートで出てきた内容

1
アンケートで出てきた内容(1/2)
 プログラミング(5件)
アンケートからのピックアップ内容
 初心者/初歩的プログラミング
 いろいろなゲームのプログラミングがどうなっているのか
 プログラミングによるゲーム制作
 マイナンバー(3件)
名古屋大学 情報基盤センター
情報基盤ネットワーク研究部門
嶋田 創
 学生がマイナンバーを日常生活のどのような場面で使用するのか、
以前の講義よりさらに学生目線で解説(バイト先へのマイナンバーの
届出は義務であるのか、など)
 マイナンバー制度について(マイナンバーによってどんなことができる
のか、またどんな危険性があるのかを基礎的なところから聞きたいで
す)
 マイナンバーについてもっと詳しく知りたい
2
3
アンケートで出てきた内容(2/2)
細かい物をまとめて(1/3)











 パソコンを用いたiPhoneへの音楽の落とし方(合法)
サイバー攻撃についてより詳しく
パソコンを用いたiPhoneへの音楽の落とし方(合法)
ネットからの情報が正しいものかどうかを判断する方法
ブラインドタッチのやり方
TeXの話をもっと詳しく
セキュリティソフトの使い方
Windowsの使い方、便利な設定
ファイル管理のコツ
インターネットの歴史
図形をパラメータで自由に動かす方法
コンピューターを使って作曲する方法
 質問内容が不明。手持ちのCDのデータを取り込む方法?
 iTunesをPCにインストールして、CDデータの取り込みを行いましょう
 パソコンに光学メディアドライブが無いならば、USB接続で接続できる
物を買いましょう
 ネットからの情報が正しいものかどうかを判断する方法
 10/8講義資料「情報の送受信における倫理と電子メール」の「ニセ情
報にだまされないために」を復習
 特に幅広い知識を身に付けること、論理的に穴がないか考えること、
オッカムの剃刀、あたりが重要かな?
 エセ科学は「それが実現されると世の中ですでに実現されている物のど
こが魔法(原理が破綻する)になるか」で見破れる
4
5
細かい物をまとめて(2/3)
細かい物をまとめて(3/3)
 ブラインドタッチのやり方
 インターネットの歴史
 基本は教科書通りのホームポジションと指使いで打つ
 ただし、個人差はあるので、左右に1キーぐらいは変更するのもあり
 両手の間のキーをどちらに割り振るか
 小指よりも薬指の方が動かしやすいので、薬指を広く使うとか
 TeXの話をもっと詳しく
 メディアセンター端末にTeX環境はあるので、書いて覚える
 書いている途中に分からない所が出てくるので、それを機会に調べる
 TeX使いはなんとかする手段を考え出して公開している人は多い
 TeXモードがあるテキストエディタを使うと、サジェスチョンなどをしてく
れて便利
 ネットで調べたほうが早いような気が
 個人的なエポックメイキング
 TCP/IPプロトコルの実装
 メール/Usenet Newsなどのコミュニケーション用プロトコルの実装
 Windows 95時代のインターネット利用の一般化(ISP乱立など)
 図形をパラメータで自由に動かす方法
 質問の意味が取れません
 ブラウザ上でAdobe Flashプラグインで実現できるようならば、
Adobe Flash Professional(有料ソフト)を使うとか
 最新ブラウザのみ対象とするならば、HTML5のアニメーション
 Google Web Designer等、フリーウェアがいろいろある
6
7
Windowsの使い方、便利な設定
ファイル管理のコツ
 最近のPCだとデュアル/トリプルディスプレイは追加ハード
ウェア無しで可能なので、追加すると作業が捗る
 フォルダ中のソート規則を考慮して、自分なりに命名を工夫
する
 2万ちょっとで安めの24インチのフルHDディスプレイは買える
 ウィンドウショートカットで別ディスプレイに飛ばせるソフトウェア(フ
リーウェアのWindow Teleportなど)があると便利
 必要に応じてUSBディスプレイアダプタを追加するのもあり
 日付順に並ぶと便利な情報が集まるフォルダの場合、「日付(+時間)
を数字x桁+ファイル名」のようなルールでつける
 逆に、複数の版のファイルが集まる場合は、「ファイル名+日付をx桁
or版番号」というルールでつける
 バックアップを考慮したフォルダ分け
 必要に応じてキーマップを変更
 私は以下のように4種類に分けている
 Changekeyなるフリーウェアがある
 CtrlをAキーの左に移す(Caps Lockとの入替)はよく使われる設定
 週に一度は更新し、頻繁にバックアップすべきデータ
 しばらく使っていないので、次の大規模バックアップ時で移動予定データ
 大規模バックアップ済みで消えても問題ないデータ
 消えても良いデータ(ネットからいつでも再ダウンロード可能、など)
 そもそも、私はCaps Lock自体を無くしている
 F1キーでヘルプが立ち上がるとうざいのでF1キーをESCキーで上書
きしたり
 必要に応じて、サブフォルダ単位でバックアップフォルダを移動
 後述するように、年末にノートPCのHDDが壊れた時に有用性を実感
 人間がコンピュータの下僕になる状態にがまんできない人は
そこそこいて便利ツールを公開しています
8
9
サイバー攻撃についてより詳しく
ウィルス(マルウェア)対策
 詳細は別講義の資料を参照 http://www.net.itc.nagoyau.ac.jp/member/shimada/IScompendium0424_update_6
up.pdf
 最近の話題
 基本を抑えておくのが大事
 アンチウィルスソフトウェアを入れておく
 セキュリティアップデートはちゃんとかける
 怪しいメールの添付ファイルは開かない
 現在では、いの一番に狙われるとどうしようもない
 やられた後の対策を考えましょう
 TeslaCryptウィルス(vvvウィルス)
 スケアウェア(ScareWare: 脅迫を行う)の1種
 ファイルを暗号化した上で身代金を要求します
 うっかりバックアップ用USBメモリ/HDDを繋ぐとそちらも暗号化されます
 バックアップ先のは、Windowsのファイル操作とは別インターフェスで
ファイル転送するのがいいかも
 その機器から利用していたネットのサービスのパスワードの変更
 クレジットカード等の履歴のチェック
 PCのクリーンインストール
 リカバリディスクは作成しておく
 データは事前にバックアップを取っておく
 広告を使ったマルウェア配布が活発(Malvatise: Malware +
Advertise)
 マルウェアだけでなく、偽セキュリティソフトウェアとかも
 セキュリティの点から、広告ブロックソフトウェアを使った方が良いことも
10
11
マイナンバー関連発展話(1/7)
マイナンバー関連発展話(2/7)
 上原哲太郎先生のTwitterで情報が多いのでおすすめ
 バイト先とマイナンバー
 https://twitter.com/tetsutalow/
 上原先生の経歴: 京大准教授→総務省→立命館大教授
 総務省時代にマイナンバー制度の構築に関係
 ただし、1人で決めるわけではないので、「筋の悪いことになってしまった
部分もある」とぼやいていることも
 現状の大きな問題: マイナンバー活用とマイナンバーカード
(による個人認証)活用がごちゃごちゃに理解されている
 マイナンバーは特定用途以外に活用してはいけません
 マイナンバーカードによる個人認証は活用した方が良い
 つまり、マイナンバーカードにマイナンバーカードが明記されている点
が実装としてアホ
 運転免許証と同等の情報(住所、生年など)だけで十分だった
 私はマイナンバーの部分には強力なシールを貼る予定
 バイト先が給与支払いに関する所得税支払いを税務署に申告するた
めに必要です
 提出は強制ではありませんが、確定申告をする際に不便になります
 個人的にマイナンバーで憂慮している点
 ちゃんと理解していない企業上層部も多い
 そもそも、末端が理解せずに勝手な判断で違反することも
 警備員などが身分証明でマイナンバーを見せろ(控えさせろ)とか(すでに
あったらしい)
 やっぱり、意図的に違反する所も出てくると思う
 消費税増税のように、導入した後に(用途)拡大しようとする動きも出
てくるのでは…
12
13
マイナンバー関連発展話(3/7)
プログラミング言語Python
 対策
 ここ最近のお勧め軽量プログラミング言語の1つ
 特徴
 給与と福祉手当以外でマイナンバーを要求されたら、法律の条文を
もとに拒否しましょう
 インデントをベースにプログラム構造を組む
 行政手続における特定の個人を識別するための番号の利用等に関する
法律(番号利用法)第51条:「人を欺き、人に暴行を加え、…個人番号を取
得した者は、三年以下の懲役又は百五十万円以下の罰金に処する。」
 それでもダメならば警察等に通報しましょう
 収集する立場にさせられないようにも気をつけましょう
 インデント(字下げ): 字下げの量が同じ所は同じ
 “1つのことを複数の手段で実現できる”ことをあまり良しとしていない
 誰が書いても同じような記述になる →他のプログラムを参考にしやすい
 学術的にとかプログラムの工夫をする点では面白くないのだが…
 軽量言語の中では比較的後発 →改良されている点が多い
 変な企業に漏れたと思ったら、マイナンバーの変更を申請しましょう
 前述のコマンドプロンプトから実行可能
 簡単なデータ処理のフィルタなどを書いてさっと適用出来た
りすると、実験や研究で便利かも?
 「漏れた」と感じた時点でOK、被害が出る前に変更しましょう
 ただし、バイト先等の正規にマイナンバーを連絡した先には変更手続き
が必要
 新経連や一部の政治屋のような「マイナンバーも活用させろ」と言っ
ているようなアホはきっちり監視しましょう
14
Pythonプログラムの例
from easygui import *
import random
counter = 0
number = int(random.random() * 100)
message = 'I generated random number from 0 to 99. Estimate it and enter it!'
message_small = 'Too small! Estimate it again and enter it!'
message_large = 'Too large! Estimate it again and enter it!'
window_title = 'Large / small game'
in_key = enterbox(message, window_title)
in_key = int(in_key)
 もし”条件が真”なら”処理1実行”、それ以外なら”処理2実行”
 “処理1実行”だけで終わるのもあり
 拡張版: もし”条件1が真”なら”処理1実行”、それ以外で”条件2が真”
なら”処理2実行”、...、それ以外なら”処理nを実行”
 if ~ elif ~ else構文を使う
例1
if number < in_key:
処理1
次の処理
例2
if number < in_key:
処理1
else:
処理2
次の処理
 もちろん複数条件指定も可能
例3
if number < in_key:
処理1
elif number > in_key:
処理2
else:
処理3
次の処理
15
 変数に数値や文字列を代入し、それを演算
 変数名にスペースを使えない点に注意
 よくアンダースコア(_)がスペースの代わりに利用される
 例(数値演算):
 counter = counter + 1
 例(文字列演算):
while 1:
counter = counter + 1
if number < in_key:
in_key = enterbox(message_large, window_title)
in_key = int(in_key)
elif number > in_key:
in_key = enterbox(message_small, window_title)
in_key = int(in_key)
else:
final_message = 'True! The number is %d. Total trial is %d.' % (number, counter)
msgbox (final_message)
break
一般的なプログラムの制御構造(条件
分岐)
一般的なプログラムの制御構造(演算/
代入)
small = “To small! ”
estimate = “Estimate it again! ”
message = small + estimate
 表記に注意したい演算子
 乗算: * 、除算: / 、 剰余: % 、 除算(小数点以下切り捨て) : // 、
累乗: ** 、 論理和: and 、 論理積: or 、 論理否定: not
16
一般的なプログラムの制御構造(ルー
プ)
 “条件が真”ならば処理を繰り返す
 例: while構文を使って1から10の合計を求めるプログラム
i=1
sum = 0
while i <= 10:
i=i+1
sum = sum + i
print sum
 iはiterator(反復子)の意味で繰り返し回数でよく使われる変数
 for文は他の言語と挙動が異なることに注意
 配列(リスト)の各要素を順番に取り出す
 リストの最後の要素の取り出しとループ内処理が終わればループ終
了
17
一般的なプログラムの制御構造(関数
呼び出し)
18
 同じような処理を行う場合は関数(サブルーチン、モジュール、
などという呼び方もある)を作成してその都度呼び出し
 再帰呼び出しを使って複雑な処理を簡単に書くことも可能
メディアセンターでのPythonプログラム
の実行方法
19
 コマンドプロンプトから実行
 左下のWindowsマーク→全てのプログラム→アクセサリ→コマンドプ
ロンプト
 “C:¥Python27¥python.exe Pythonプログラムファイル“と打ち込んで
リターンを入力
 例: 階乗の計算をn! = n * (n-1)!としてn>=1の条件で再帰呼び出し
例
 Pyとかpyと入力した後でTabキーを押すと自動的に残りが入力される
 “C:¥Python27¥python.exe”だけだと対話型処理になる
定義
def sin_tailor5 (x)
sin_x = x – x**3/6 + x**5/120 – x**7/5040 + x**9/362880
return sin_x
呼び出し
output = sin_tailor5(a)
 プログラムを1行1行入力して反応を見ることができる
 簡易電卓みたいに使うこともできる
再帰定義
def sin_tailor (x, n)
sin_x = (-1)**n * 2**(2*n) / math.factorial(x)
if n >= 0:
sin_x = sin_x + sin_tailor (x, n-1)
return sin_x
グラフィカルなインタフェースを実現する
には?
20
21
ライブラリは徹底的に活用しましょう
 GUIを実現するライブラリを利用
 ある程度プログラミングの基礎ができたら、ライブラリを活用
する方向に努力しましょう
 ライブラリにも、初心者向けライブラリと上級者向けライブラ
リがあるので、ライブラリ利用もスキルに応じて工夫
 ライブラリ: 有用な関数を集めたもの
 Python用簡易GUIライブラリEasyGUI
 メディアセンターのマシンに入っています
 “from easygui import *”でライブラリ読み込み
 日本語は文字コード変換(Shift JISへ)をしないと文字化けします
 上級者向けライブラリはライブラリの処理を呼び出す前の準備がめ
んどくさい
 データ生成とか他の関連ライブラリの設定とか
 EasyGUIを使ったサンプル
 使いたいライブラリがあるからそのプログラミング言語に手を
だすことも
 ランダムに生成された値を当てるゲーム
 今まで出てきたプログラム
 基礎がきちりできてれば、構文規則や予約語を確認するだけで他の
プログラミング言語への以降は容易
22
23
軽量プログラミング言語とは?
メディアセンターで使える軽量言語
 スクリプト言語の一種で、特に、プログラムを構成するコード
の取り回しに優れるもの
 特徴
 システムに入っている軽量プログラミ
ング言語
 変数のタイプに自由度がある(動的型付け)
 普通の言語は事前に”整数”、”小数”、”文字列”などを決めないとだめ
 ただし、必要に応じて変換処理は必要
 文字列処理(連結、切り出し、置換、など)が強力
 逐次機械語に変換されながら実行するので、処理速度は遅め(インタ
プリタ型)
 GUI作成用ライブラリも数多く提供されている
 Perl/PHP/Pythonなど名前がPで始まる物が多いため、P言
語と呼ばれることもある
 Perl(ActivePerl)
 Python →メディアセンターでは比較的充
実している
 PyMOL
 python imaging library
 easygui
 JavaScript(ブラウザから)
 開発環境
 Eclipse
 Emacs/Meadow(右図)
 サクラエディタ
メディアセンターでのPythonプログラム
の実行方法
24
Python(+プログラミング)に関する
Tips(1/2)
25
 Pythonプログラムを独立した実行ファイル(拡張子.exe)にし
たい
 コマンドプロンプトから実行
 左下のWindowsマーク→全てのプログラム→アクセサリ→コマンドプ
ロンプト
 “C:¥Python27¥python.exe パイソンプログラムファイル“と打ち込ん
でリターンを入力
 Py2exe, Pyinstallerを使う
 Pygameライブラリ
 ビデオゲームを製作するために設計されたPythonのモジュール集
 http://www.pygame.org/
 Pyとかpyと入力した後でTabキーを押すと自動的に残りが入力される
 “C:¥Python27¥python.exe”だけだと対話型処理になる
 print文でコマンドプロンプトに文字を出力可能
 プログラムを1行1行入力して反応を見ることができる
 簡易電卓みたいに使うこともできる
 例: print ‘Total count:’ , counter
 raw_input文でコマンドプロンプトから文字入力可能
 例: input_data = raw_input(‘Input value: ’)
 ファイルへの入出力
 ファイルを開いて(ファイル変数生成)それを操作(詳細は割愛)
Python (+プログラミング)に関する
Tips(2/2)
26
27
 MIDIとは、シンセサイザーやMIDI対応キーボードなどを接
続する規格
 覚えておくと便利なデータ構造: 配列(リスト)、ディクショナリ
 array[10]のような形で配列の要素(=変数)を参照可能
 配列は2次元配列、3次元配列なども実現可能
 ディクショナリはインデクスに文字を使える配列(連想配列、ハッシュ
とも呼ばれる)
 世界中の音楽の世界で使われています
 ローランド社の創業者である梯郁太郎氏はMIDI規格の制定に対す
る貢献によりテクニカル・グラミー賞を受賞
 データはStandard MIDO File (SMF)ファイルとして保存
 比較時に文字列と数字を比較してうまくいかないこともある
 変数の内容を変換: int(変数)→整数へ、float(変数)→小数へ、str(変
数)→文字列へ
 曲データ: タイトル、ピッチ、各パートの強さ、など
 楽器パート(チャンネル)データ: 音の高さ(キー)、音の強さ(打鍵ベロ
シティ)、音の開始と終了時間、など
 演奏だけならWindows Media Playerでも可能
 「音をどう鳴らすか」というデータなので、公開されている自作曲など
のデータを見て音楽の勉強が可能
 プログラムを書いてからしばらくたつと自分でも書いた内容を
忘れるので、適時コメントを入れましょう
 “#”記号後の文字はコメントとして解釈されてプログラムから除外
 プログラミングの世界では数字が0からカウントされることが
多い点に注意
フリーソフトウェア: 世界樹4.1
楽譜形式で表示/入力
MIDI(Musical Instrument Digital
Interface)データによる音楽作成
 あとは、2014/7/8の私の情報リテラシーの講義資料参照
28
フリーソフトウェア: 世界樹4.1
ピアノロール表示/入力
 MIDIで良く利用される音程の表現
 パートごとの表示も可能
29
30
31
ノートPCのHDD故障からの回復(1/2)
ノートPCのHDD故障からの回復(2/2)
 私事ですが、講義でも使っているノートPCのHDDが故障し
ました
 症状: HDDは認識してWindowsは立ち上げようするが、立ち
上げの途中でHDDアクセスが続いた状態で進まない
 解析
 システム復旧
 同じHDDに入っているFreeBSDというOSで起動すると、OSのカーネ
ルが「HDDから返事が来ない」と
 OSの起動プロセスの途中に何度かそれで数分一時停止する
 Windowsの場合、起動プロセス中で進行が分かりにくい
 セーフモードで立ち上げてもまだまだ荒い…
 というか、このような細かなOSカーネルのメッセージを表示してくれない
→HDDの制御ボードあたりの動作が不安定になる故障?
 大須の電気街でSSDを購入してHDDを入れ替え、リカバリディスクか
らシステム復旧
 インストールしたアプリケーションの再インストールと設定(まだ途中)
 データ復旧
 バックアップデータ(最新は約1ヶ月前)から復旧
 最新のデータはなんとか吸い出せないか?
 HDDを「USB接続の外部HDDとするアダプタに接続」してWindowsから
読み出し →失敗
 HDDをノートPCに入れた後、DVDブートのLinux(KNOPPIX)でブートし
てHDDの中身を見る →成功
 KNOPPIXを用いてUSBメモリに吸い出してSSDにコピー
 吸い出し途中で何度も止まるので、1GBのコピーに1日とかのペース
 教訓: 忙しくてもバックアップの頻度は高くする。Windowsは
だめでも他のOSでデータを吸い出せることもある。