【Windows】【覚書】Creator Updateを適用したら通信が劇的に遅くなったのを解決したっぽい話
Windows 10 に Creator Update Fall を適用したらネットワークが(逆)感動するくらいに遅くなった。今までふつ〜に数十Mbpsが出ていたのに1Mbps出れば良い、下手すると64Kbpsとかしか出なかったり。各種SpeedTestサイトで測ってもタスクマネージャーの表示をみてもそのくらいの低速。光回線だってのに!無線部分だけの通信速度をみた見るとこれまた普通に 500Mbps以上(うちのWi-Fiは802.11ac使ってるので)は出ていると表示されているのに...
Creator Updateを削除(OSを旧バージョンに復旧)すると回線速度がふつ〜に戻るので明らかにアップデートが原因。これは困った。
様々なサイトを見てみたのだけど同じ症状になっている人が意外にも少ない。質問されていても解決に至っているのは無し。
ぶっちゃけ諦めていたのだけど、2018年1月になって全ての人にCreator Update FallがWindows Update経由で落ちて来るようになった。これはさすがにいつまでも旧バージョンを使っているわけにいかなそう。
ということで改めて調べまくってみたところ、関係あるか無いかわからない以下の記述を見かけて試してみたところうまくいった(通信速度が数十Mbpsに回復した)ようなので覚書。
ざっくりいうとMicrosoft Wi-Fi Direct Virtual Adapterというドライバと相性の良くない無線LAN用デバイスがあるってことらしい。無効化したところほぼ元どおりの速度が回復したよ、と。
無線LANに原因があるとは思わなかった。でも本当に改善されたのかはまだ様子をみないとわからない。通信が不安定(タスクマネージャーで見てると急に通信速度が0Mbpsになってずっとそのままということがあったり)っぽいのがちっと怖い。気のせいかもしれないけどね。
ちなみに使っている無線LAN用デバイスは「BUFFALO WI-U3-866D」というUSB接続のやつです。
というわけで、その後についていつか書くかも。
おしまい
【覚書】KMS認証サーバー壊れた
年末にKMSライセンスの管理サーバーとして稼働させていたPCが突然壊れた。電源がランプが点いていて一見普通に稼働しているようなのだけど実は動いてなかったので実際にはいつから壊れていたのかわからないけど。
サーバーとして売られていた機種ではなくふつ〜のPCを使って無休で稼働させていたのでまあ耐久性的にはしょうがないか。Windows7から8を経て10にOSをUpgrade(基本的に管理させるクライアントOSに合わせてアップさせる必要があるから)させていたし、よく働いてくれていたということで。
なぜ故障に気づいたかというと、Windows10とOffice 2013のKMSライセンス管理をさせていたのにそれらのクライアントで認証エラーが発生するようになったから。あれ?と言うことはもしかして結構前から壊れていたんじゃ無いのかな。
ということで、Windows10とOfficer2013のライセンス管理も Windows Server 2012 R2機に行わせることに。こいつはいまWindows 10とOffice2016のライセンス管理をさせているサーバー機である(Domain Controlerで、DNSやらDHCPやらもやってる)。
その途中でした失敗を自分用に覚書。
(1) Windows10クライアント機の管理するように設定してあったつもりができてなかった。slmgr.vbs /dli all の結果をよく見ると「Windows(R) Iperationg System, VOLUME_KMS_20120R2_WIN10 channel」が「このライセンスは使用されていません。ライセンスされていません」の状態だった。
解決策:普通のWindows10やWindows Server 2012 R2のKMSキーを登録してもだめ。専用のキー(Windows Server 2012 R2 上で Windows 10以下を管理するためのKMSキー)を用意して登録すべし。
(2) ライセンスマネージャーでOffice 2013のキーが登録できない。
解決策:Office 2013用のボリュームライセンスパック(追加ソフト)を適用してから作業する(Office 2016の登録時にダウンロードしてあったボリュームライセンスパックを使ってたのでダメだったっぽい)。あと、Active Directoryでの管理とKMSサーバーソフトでの管理のどちらで行うかを間違えないこと。
間違ってたらごめん。それにしてもちょっと恥ずかしいミスばかり。ぽっ
【Advent Calendar】こんなこといっいな♪な話
あー、この記事は以下のAdvent Calendarの記事です。4つ目の記事書くのを登録してたのすっかり忘れてクリスマスもTooに過ぎてから書いてます。ゴメンナサイ。
ちなみにクリスマス・イブのイブはイブニング(Evening)の略で、単に「クリスマスの夜」という意味でしかありません。今は0:00から24:00までが1日と呼ばれていますが、昔は日没から次の日没までを1日としていたので12月24日の日没から12月25日の日没までクリスマスであり、12月25日の夜明けまでが「夜=イブ」というわけです。尊敬するアイザックアシモフ先生のエッセイに書かれていたことです。何が言いたいかっていうと「イブ=前日」って意味じゃねーから12月23日に『今日はクリスマス・イブイブだね❤︎』とか寝ぼけたこと言ってんじゃねーぞ、ってことです。
おしまい
ではなくて、プログラミングクラブのアドカレ的にプログラミングの話っちゅーか心構えって言うか考え方の事を書きます。書きますというか寝言を言います。
説教というわけでは無いのですが、プログラミングクラブに所属してくれているメンバーで「作品を仕上げて公開する」事ができていない人が残念ながら多々見受けられるのでちょっと「それってどうなのかなー」と思っています。
一般に漫画とか絵を描いている人たちの世界では「下手でもいいからどんどん他人に見てもらうこと」「とにかくたくさん手を動かす(描く)こと」ってのはもはや常識かと思います。それと同じ事でプログラム作りの世界も、作品を作っては公開するって事が上達やモチベーションアップのためにはもう絶対条件だと思うんですよね。
特に今はアプリストアが充実してますのでまずはGoogle Playに開発者アカウントを登録して(今でも$25で永遠に利用可能なのかな?)ヘタレ作品でもいいから公開して見ましょう。意外と「こういうのが欲しかった!」と喜んでくれる人がいたりしますし、よしんば誰からも反応なくてもマイナスになることは何もありませんから。
#昔は自分のWebサイトで公開ってのが普通だったなあ。もしくはベクターさんあたりくらい。
#自前のサイトで公開してたときはストアとカスタマイズの要望を受けてたりしたなあ。ストア経由だとこれができないのが寂しいよね。
ちなみに単機能のアプリをたくさん作ってみるのがオススメ。例えばQRコードを読み取って読み取った内容を音声で出力するだけのアプリ、とか。
#上記のアプリは「視覚障害の方がレストランのメニューに何かが書かれているけど読めないで困る。音声で読み上げてくれたらいいのに」という要望を聞いてきた学生の話を聞いて、「バーコードリーダーで読ませてサーバーにあるメニューデータを検索させるか......。いや待てよ、直接料理の名前をQRコード化してそれを音声読み上げさせればいいじゃん」と思ってサクッと作ってみたものです。今時はQRコードを読むライブラリや音声読み上げのWebAPIなどが充実しているのでそれを呼び出すだけだからそんなに手間かかりませんでしたよ〜。
と言うわけで、クラブに所属してくれているのは大変嬉しいのだけど、自信持って「こんなの作ってます(作りました)」って言うネタを1つは持って欲しいなーという、ささやかな願いを表明して、2017年を終わりにしたいと思います。
おしまい(本当)
【覚書】Office 2013のKMSボリュームライセンスをサーバーに登録失敗した話
Windows Server 2012 R2 のサーバーにて Office 2016のKMSライセンスキー管理を行わせていたのだけど、新たに Office 2013のライセンスキー管理も行わせようということになった。
Windows Serverの「コントロールパネル」→「管理ツール」→「ボリュームライセンス認証ツール」を起動してKMSキーを登録しようとしたのだけど、最後のところで「プロダクトキーが無効であるか、ライセンスが一致しません」という旨のメッセージが出て登録ができなかった。
さんざっぱら悩んだけどなんてことはなくて、Office 2013 クライアントのKMSライセンス管理をさせるには Office 2013 用のボリュームライセンスパックというのを導入しておかなければいけないのであった。Office 2016 のライセンスキーを登録する前にも同じことをしていたのにすっかり忘れていた。
ちなみにこれ↓
Download Microsoft Office 2013 ボリューム ライセンス パック from Official Microsoft Download Center
その他、詳しいことは
Office 2013 の Active Directory によるライセンス認証
を読んでください。
おしまい
【Advent Calendar】Oracle Javaプログラミング資格のススメ
この記事は以下のAdvent Calendarに向けた記事です。
昨日の記事は 私 の、「Javaの開発環境構築手順 その2」でした。度々のお目汚し申し訳ない。
さて本日は「Oracle Javaプログラミング資格」について記します。
現在のJavaの開発元である「Oracle社」が直々に Javaプログラミングに関する認定資格を実施しています。Javaの資格を取るならコレが最強にして最大のものです。以下のページに説明があります。
Java SE 8 認定資格 | オラクル認定資格制度 | Oracle University
資格試験について説明してくれているサイトもたくさんありますので色々と見てみてください。
おしまい。
...だけではちょっと不親切なので簡単に説明。
Oracle社のお得意な分類に沿って「Gold」「Silver」「Bronze」という資格の段階があります。内なる自分の力*1の大きさに沿って受験しましょう。
まあ、勉強したてなら Bronze から受験になるでしょう。BronzeはJavaの初歩の初歩についてだけ問われますので、参考書や問題集を元に勉強するだけで合格できると思います。基本は何を学ぶ上でも大切ですので、Bronze資格の勉強で「コマンドラインでの実行の仕方」とか「main関数の記述の仕方」とか「ポリモーフィズムの意味」などをしっかりと理解しましょう。
最終的には Gold資格を取得して欲しいです。Javaプログラマの資格試験としては 前身に SJC-P というのがありまして、これに相当するのが Gold資格です。ぶっちゃけ、それなりに自信持って自慢できるのは Gold持ちになるでしょう。Bronzeとは実力のケタが違いますので戦いにすらならないでしょう。[要出典]
ふつ〜のJavaプログラミング(Java SE)に関する資格は Gold が最上位です。飽き足らずに更に上位の資格、ある意味『神の領域』まで目指したい人は Java EE の資格を目標にするってのも良いかもしれません。
まあとりあえず、「コマンドラインの実行環境を作って」「Bronze資格を目指せ」ってことで。
おしまい(本当)
*1:人はそれをコスモと呼びます
Javaの開発環境構築手順 その2
この記事は以下のAdvent Calendarに向けた記事です。
昨日の記事は 私 の、Windows10使ってる情報系1年生向け「Javaの開発環境構築手順 その1」でした。お目汚し申し訳ない。
さて本日もタイトル通り「Javaの開発環境構築手順」について記します。ただし前回と違って「コマンドラインでのコンパイル」をする環境の構築になります。
その1 --- 統合開発環境を使ってバリバリ(当社比)とプログラミング
その2 --- コマンドライン実行の環境を使って資格(Oracle Javaプログラマ)対策
って感じです。
では始まり〜
1. JDK(Java Development Kit)をインストール
JDKはJavaの開発環境(Development Kit)です。開発環境としてはざっくり、GUI等を使ったクライアントアプリ作成向けのJave SE(Standard Edition)、Webサービス開発向けのJava EE(Enterprise Edition)、組込みシステムなど向けのJava ME(Micro Edition)など様々なエディションがありますが、ここではJava SE のJDKをダウンロードしてインストールしましょう。
Java SEのJDKは以下のページからダウンロードできます。
Java SE - Downloads | Oracle Technology Network | Oracle
上記のページからは様々なバージョンのJDK等がダウンロードできますが、今ならバージョン8(Java SE 8なんとか)を使うのがまあいいんじゃないでしょうか。たぶん。
というわけで以下のリンクボタン(Java SE 8u151 / 8u152 の JDK)をクリックしてください。
続いてライセンスに同意するため、以下の箇所をクリックしてください。
さらに、以下のリンクをクリックしてダウンロードしましょう。みなさんの使っているWindowsは64bit版なので「jdk-8なんとか-windows-X64.exe」になります。(X64ってところがポイント。ぺけ64ってね)
ダウンロードしたファイルを実行しましょう。これでJDKのインストールは終了です。
2. 環境変数の設定
デフォルトではJDKが「C:¥Program Files¥java¥jdk1.8.0_151」というフォルダにインストールされます。このフォルダをJAVA_HOMEフォルダ(またはJAVA_HOMEディレクトリ)と呼びます。そしてそのフォルダの下にあるbinフォルダに、Java言語のコンパイルなどを行う命令の実行ファイルが格納されています。
実行ファイルがどこにあるかをOSが知るために、環境変数PATHというものにこのbinフォルダの場所を設定しておく必要があります。
コルタナさんに「コントロールパネル」と入力すると以下のようにコントロールパネルが提示されますので選択しましょう。
続いて、表示されたコントロールパネル項目の中から「システム」を選んで開くと以下のウインドウが表示されるので、左にある「システム詳細設定」を選びます。
システムのプロパティが表示されるので、「環境変数」を押します。
システム環境変数の欄にある「Path」を選んで「編集」ボタンを押します。
「新規」ボタンを押して、新しく「C:¥Program Files¥Java¥jdk1.8.0_151¥bin」のように入力して「OK」ボタンを押します。入力する文字列を間違えると動作しませんので注意してください。
「OK」ボタンや「×」ボタンを押して全てのウインドウを閉じます。
3. コマンドライン操作でJavaのコンパイル&実行
コマンドライン操作するウインドウ(アプリケーション)を開きます。
コルタナさんに「cmd」と入力してEnterキーを押します。以下のようなウインドウ(コマンドプロンプト)が表示されます。 ※細かな文字の違いは気にしない!
Javaのプログラムを保存するフォルダを作成します。 ※これは一度だけの操作でOK
コマンドプロンプト上で「mkdir javasrc」と入力してEnterキーを押します。
フォルダ移動ってのをします。
「cd javasrc」と入力してEnterキーを押します。
フォルダをWindows(のエクスプローラー)で表示します。
「start .」と入力してEnterキーを押します。(ドット「.」を忘れずに)
エクスプローラーで表示された(開いた)フォルダ上に「Hello.java」という名前でファイルを作成します。 ※みなさん、当然ながら『拡張子を表示する』設定になってますね?
Hello.java の中に以下のプログラムコードを記述しましょう。いわゆる「はろーわ〜るど」ですね。
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
javac Hello.java
と入力してEnterキーを押します。
打ち間違いがなければ何もメッセージがなく完了し、Hello.classというファイルが新規に作成されます。打ち間違いなどがあった場合はエラーメッセージが表示されますのでよく読んで該当箇所を修正しましょう。エラーメッセージは基本的に英語ですが、毛嫌いせずに読んでください。細かい意味までわからなくてもなんとかなるものです(読まないと何ともなりません)。
続いて「実行」を行います。コマンドラインに
java Hello
と入力してEnterキーを押します。
コマンドラインの画面上に Hello World! と表示されたら成功です。これでコマンドラインを使っての、Javaプログラムの作成〜コンパイル〜実行までができました。
普通に開発するなら IDE(統合開発環境、IntelliJ IDEAとかEclipseとか)を使って開発した方が良いです。何でこんな不便な コマンドラインを使ってのJava開発 を説明したのでしょうか?続きは明日。
※最後の部分、記述がだいぶ手抜きになってることはご容赦ください。そのうち書き直そう(と心に秘めておこう)
Javaの開発環境構築手順 その1
この記事は以下のAdvent Calendarに向けた記事です。
昨日の記事は ichimura1231 さんの「electronを使ってデスクトップにキャラクターを走らせてみた2」でした。electron、面白そうですね。ちょっとやってみようかな。
さて本日はタイトル通り「Javaの開発環境構築手順」について記します。
ぶっちゃけ開発環境の作り方なんて巷のブログに山ほどある(そして僕も参考にさせていただいている)ので新規性なんて何もないのですが、1年生の授業中(≠プログラミングの授業)に『Javaって開発環境を作るのが大変(だから手をつけてない)なんだよなー!』なんて声が漏れ聞こえて来たので、『だったら1年生の持ってるPCで環境作りできるカンタンな手順を記事にしたらやらない理由が無くなるよね(は〜と)』という優しい心がこの記事を書く動機になったのでした。
よって、この記事の賞味期限は短いです。いま環境構築して次の年末年始にアプリ開発に取り組みたい人だけをターゲットにしていますからね!
それでは1年生のみなさん、PC*1の用意はよろしいでしょうか?
1. JDK(Java Development Kit)をインストール
JDKはJavaの開発環境(Development Kit)です。開発環境としてはざっくり、GUI等を使ったクライアントアプリ作成向けのJave SE(Standard Edition)、Webサービス開発向けのJava EE(Enterprise Edition)、組込みシステムなど向けのJava ME(Micro Edition)など様々なエディションがありますが、ここではJava SE のJDKをダウンロードしてインストールしましょう。
Java SEのJDKは以下のページからダウンロードできます。
Java SE - Downloads | Oracle Technology Network | Oracle
上記のページからは様々なバージョンのJDK等がダウンロードできますが、今ならバージョン8(Java SE 8なんとか)を使うのがまあいいんじゃないでしょうか。たぶん。
というわけで以下のリンクボタン(Java SE 8u151 / 8u152 の JDK)をクリックしてください。
続いてライセンスに同意するため、以下の箇所をクリックしてください。
さらに、以下のリンクをクリックしてダウンロードしましょう。みなさんの使っているWindowsは64bit版なので「jdk-8なんとか-windows-X64.exe」になります。(X64ってところがポイント。ぺけ64ってね)
ダウンロードしたファイルを実行しましょう。これでJDKのインストールは終了です。
2. IntelliJ IDEAをインストール
続いて統合開発環境である IntelliJ IDEAをインストールします。統合開発環境は、開発作業を色々とサポートしてくれるツールです。今時の開発でなんらかの統合開発環境を用いないというのはアリエマセン(すっごく凄い人は別として)。
以下のJetBrain社(IntelliJ IDEAの開発元)のサイトにアクセスします。
IntelliJ IDEAのバージョンとして「Community」版を選んでダウンロードしましょう。
Community版は皆さんのような学生の個人開発者なら無料で使い続けることができます。お仕事で使うならぜひぜひ商用のUltimate版を購入してください。
この記事を書いてる現在なら「idealC-2017.2.5.exe」というファイルがダウンロードできます。ダウンロード完了したら実行してインストールを行いましょう。
3. IntelliJ IDEAの設定
続いてJavaプログラミング用にIntelliJ IDEAの設定をします。
スタートメニューからIntelliJ IDEAを起動して以下の画面まで進めて「Create New Project(新規プロジェクト作成)」のボタンを押します。
続いて出てきたダイアログで「New...」のボタンを押します。
使用するJDKの場所を聞かれるので、「C:¥」の「Program Files」の「Java」の下(中)にある「jdk1.8.0_151」を選んで、「OK」ボタンを押します。
続いて「Next」ボタン、「Next」ボタン、「Finish」ボタンと押してください。
デフォルトのuntitledという名前でプロジェクト(Java プログラムや画像などで構成するアプリ作成の単位)が作成されます。もちろんプロジェクト名を自分で決めたい人はご随意に途中で指定してください。
「Tip of the Day(本日のちょっとした有益なネタ)」が表示されたら「Close」しちゃいましょう。
これで基本的な設定は完了です。次回の新規プロジェクト作成からはJDKの選択は不要です(設定済みのため)。
4. Javaプログラムを入力して動作確認
続いてJavaプログラムの作成と実行ができるか試してみましょう。
「Project」という枠の中にあるプロジェクト名の部分(デフォルトではuntitled)の下(中)にある「src」上で右クリックし、「New」→「Java Class」と選んでください。
出てきたダイアログに「Hello」と入力します。
作成された雛形を以下のように変更します。
ウインドウの「Run」メニューから「Run」→「Hello」と選びます。
以下のように実行結果(今回のプログラムは『画面に Hello World! と表示する』アプリです)が表示されたら確認終了です。
終わりに
これで「Javaプログラミングを始めない理由」が一つ無くなったわけですね。よかったー!
今回はプログラミングの楽しさに関する記事では無いので面白くなかったと思います。Hello World!という文字を表示させられてるだけじゃ面白いわけないよね!
しかし、JavaFXなどのGUI部品を使ってグラフィカルなスタンドアローンアプリを作る上でもJavaは十分に活用できます。自分で考えたアプリを作るのでも良し、どこぞのサンプルプログラムを改造して何か面白いアプリにしてみるのでも良し、とにかくプログラミングを楽しんで欲しいですね。
それでは Let's Java Programming!
続く...