ubuntuが無線LANを認識しないとき & 第9回 ICTSC予選 感想
この記事は上のアドベントカレンダーの22日目です。
どうも、こんにちは。
お品書きです。
私はこの前新しいノートPCを買いました。そして早速ubuntuを導入しましたが何故か無線LANが認識しませんでした。そのことを書いていきます。
ubuntuが無線LANを認識しないとき
自分の状況
- windows10とubuntu16.04のデュアルブート中
- 両方ともほぼ初期状態
- 無線LANモジュール Intel Wireless-AC 8265
- windows10では無線LAN認識済みwi-fi飛びまくり
- ubuntuでは存在は認識してくれているが、wi-fi用のインタフェースもない
- 有線ならubuntuでも繋がる
まぁwindowsで認識してくれているおかげで、自分がうっかり無線LAN対応していないPCを買っちゃった可能性が消えてくれました。
やったこと
- update & upgrade
- /etc/network/interfacesの中身を変えてみる
- 無線LANモジュール名で検索してドライバをダウンロード
update&upgradeは基本ですね。 /etc/network/interfacesはループバックに関することしか書かれていなかったのでネットで調べながら色々書いてみましたが駄目でした。そもそもループバックに関することしか書いてないのに有線は普通に接続できるので、今回の件ではあまり関係がなかったのかも。
最終的な解決方法
- ubuntu16.04を削除してubuntu17.04を再インストールする
最初はubuntu16.04を再インストールしようとした時、ふと思った。「新しいノートPCなんだからできるだけ新しいバージョンのubuntuじゃないと認識できないんじゃね?」
ubuntuはそのまま調べると16.04か17.10のどちらかがインストールできますが、「ubuntu17.04」と検索すればインストールできる所が見つかるはず。インストールしようとすると、もうインストール途中から認識してくれたよ...。
ここから学んだことは
新しいPCには新しいバージョンのOSを入れよう!
ちなみにubuntuは17.10があるのに、なぜ17.04を入れたのかというと、某プロジェクトの◯橋が17.10を入れて苦悩したというLTを見たから。(その時はまだ10月以前だったけど)
ICTSC予選の感想
何か少ないな、もう少し何か書きたいけど書くことがない。
おや?先週ICTSCの予選があったではないか!
某プロジェクトでの結果は16位でしたが初出場校枠で予選通過できました!
ということで解いた問題の感想(write upではない)を書いていきます。後で分離しますね。
私は団体の中で問2と問7に挑戦しました。
問3 infrastructure Knowledge
問3はネットワークの知識問題を4択から選んだり記述で解いたりしていました。内容としてはプロトコルの問題や光ファイバなどの問題が出ました。難易度としては工学院大学の講義内容の百万倍難しかったです。問題を一問一問載せていくのは果てしないので他の人のwrite upを探してください。お茶にも確認してもらってから出したはずですが得点は65/150点でした。全然解けていないですね。ごめんなさい。
問7 MySQL
問7はMySQLを使ってデータベースの中から必要な情報を取り出します。これは書きやすいので詳細を書いていきます。
会社の社内の統計データをまとめてほしいという問題。データベースには2つのテーブルがあり中身は
employee (社員の基礎情報)
id int(11), name varchar(255), sex char(1), deleted_at datetime
ID(主キー) 名前 性別 退社日(現在勤めている人はnull)
monthly_salary (社員の月ごとの給料)
id int(11), employee_id int(11) , amount int(11) ,month varchar(255)
ID(主キー) employeeのID もらった給料 月(3文字英字)
ちょっと時間がないので問題と答えを貼っていきます。
# 1. 現在の総社員数は何人ですか
クエリ(SQL):
SELECT
COUNT(*) AS 総人数
FROM
employee
WHERE
deleted_at IS NULL;
# 2. ユニークな名前の一覧と、そのそれぞれの名前の人は何人いるでしょうか
クエリ(SQL):
SELECT NAME
,
COUNT(NAME)
FROM
employee
WHERE
deleted_at IS NULL
GROUP BY NAME
;
# 3. 男性の人数、女性の人数はそれぞれ何人ですか
クエリ(SQL):
SELECT
sex,
COUNT(sex)
FROM
employee
WHERE
deleted_at IS NULL
GROUP BY
sex;
# 4. 月ごとにこの会社が支払った賃金の合計はいくらでしょうか。また、上から金額が高い順に並べてください
クエリ(SQL):
SELECT
MONTH,
SUM(amount) AS 支払金額
FROM
monthly_salary
WHERE EXISTS
(
SELECT
id
FROM
employee
WHERE
monthly_salary.employee_id = employee.id AND deleted_at IS NULL
)
GROUP BY
MONTH
ORDER BY
支払金額
DESC
;
# 5. この会社の平均年収はいくらでしょうか
クエリ(SQL):
SELECT
AVG(年収) AS 平均年収
FROM
(
SELECT
employee_id,
SUM(amount) AS 年収
FROM
monthly_salary
WHERE EXISTS
(
SELECT
id
FROM
employee
WHERE
monthly_salary.employee_id = employee.id AND deleted_at IS NULL
)
GROUP BY
employee_id
) AS nensyu;
注意するべきはどの問題も退社した社員を除く必要があるところです。私はうっかりさんなので元のデータを残すのを忘れましたが、employeeテーブルには退社した社員が4人ほどいた気がする。そのためどの問題でも退社した社員を除くために「WHERE deleted_at IS NULL」を入れます。
問1は上の点だけ注意すれば後はやるだけ。
問2は名前でグループ化してカウントすれば目的のデータを集められます。
問3もそれの性別バージョン。
問4はmonthly_salaryから月ごとに支払った賃金の合計を算出しますが、退社した社員を除くがありますが、このテーブルには退社したかどうかのデータがないため、EXISTS(相関副問合せ)でemployeeテーブルから退社していない人を抽出しました。
このデータベースはmonthly_salaryのemployee_idとemployeeのidが対応しているので、employee内で退社した人のidを調べて退社していない人の中の給料を月ごとにグループ化してsumで合計を求めました。
問5は もっと面倒になってFROM内でEXISTSを使うというわけの分からないものになってしまいました。FROM内にあるのは、退職した人を除いた社員達の年収を表したものであり、その表から平均年収を出しています。
この問題は130/150点でした。20点減点の原因は、このブログでは分かりやすく改行しているクエリを一問一行で送り付けたことや、途中で面倒になってASによる分かりやすい名前への変更をしなかったこととか、あとはEXISTSを使ったことでしょうか。調べるとinner joinを使って表の結合する方が早いとかなんとからしいので、次こんな問題出たらjoin的なのを試してみたいです。