LeetCodeを解いてみる配信 2020-07-07

LeetCodeを解く配信をした
https://www.youtube.com/watch?v=BbpOyov5ib0www.youtube.com

飲んでたノンアルコールビールはこれ

XORしていく

XOR Operation in an Array - LeetCode
動画は1:52から。

startとnが与えられるので、start + i * 2をどんどんXORしていく。
問題をそのまま書いたら解けた感じ

四角を塗っていく

Subrectangle Queries - LeetCode 動画は8:12から。

二次元配列が与えられて、左上と右下と値が与えられるのでその範囲を新しい値で更新していく。
Mediumのくせにやたら簡単だったので、評価が低い。 最初は二重ループでやって、遅いしメモリも食ってることでArrays.fillを使ったんだけど、そんなに改善しないのであきらめ。

小さい数字を数える

How Many Numbers Are Smaller Than the Current Number - LeetCode
動画は22:40から。

数値の配列が与えられるので、それぞれの要素についてそれより小さい数値がいくつあるか数える。
最初は素直に二重配列にしたんだけど、やっぱりかなり遅かったんで、まずは単純にキャッシュした。
それでもそこまで速くならなかったので、最初にそれぞれの数値を数えて、あらかじめ各数値についてそれより少ない数がいくつかるかを計算するようにした。
そうすると速くはなったんだけど、メモリを食うってことになった。改善点思いつかんかったので、そこで終了

microKEY 2がWindowsの休止から復活後に認識されないのは電源不足

DTM用の鍵盤としてmicroKEY 2を使っているのだけど、休止状態にして復帰したときに認識されなくなっているということがよくあった。
こうなると再起動するまでダメなので結構不便。
f:id:nowokay:20200703124257p:plain

で、ドライバを入れなおしたりいろいろ試行錯誤をしていたのだけど、どうも電源が不足しているぽい。
ということで、USB2ではなくUSB3につなぐことで解決したような気がする。

ちなみに、鍵盤はnanoPADと一緒に引き出しに置いている。
この引き出しはサンワサプライの70cm幅のキーボードスライダー100-KB003なんだけど、机の上端から15cmくらいになってヒザがあたるので、角度調節付きの100-KB005のクランプを使っている。KB005だと幅が足りない。

ということでKB003のクランプとKB005のトレーが余っているので、欲しい人は声かけてください。



rFactor 2が起動しない / rFactor 2 won't launch

rFactor 2というレーシングシミュレータがあるんだけど起動しなかった。
rFactor 2 that is a racing simulator won't launch.

この「プレイ」ボタンを押すと「停止」に変わるんだけど、しばらくするとなにも言わずに1秒くらいで「プレイ」に戻る。
After pushing 'Play' button, it will change 'Stop' but 1 sec later, it returns 'Play' with no message. f:id:nowokay:20200702231259p:plain

SteamLibraryフォルダの下にsteamapps\common\rFactor 2\Launcher\Launch rFactor.exeという実行ファイルがあったので起動して確認してみる。
そうすると、「MSVCR110.dllが見つからないため、コードの実行を続行できません。~」というエラーが出た。
Under the SteamLibrary folder there is an exe file named `steamapps\common\rFactor 2\Launcher\Launch rFactor.exe, launch the file.
Then, I get an error 'The Program can't start because MSVCR110.dll is missing...'. f:id:nowokay:20200629122911p:plain

調べてみると、ここから「Visual C++ Redistributable for Visual Studio 2012」をダウンロードすればいいらしい。
After googling I get an information that says downloading 'Visual C++ Redistributable for Visual Studio 2012' from the link below is a solution.
https://www.microsoft.com/en-us/download/details.aspx?id=30679

Downloadボタンを押すといくつか候補がでるので、「VSU_4\vcredist_x86.exe」にチェックを入れてNextボタンを押すとダウンロードできる。
Pushing 'Download' button shows file list, you must check 'VSU_4\vcredist_x86.exe' and push 'Next', download will start.
f:id:nowokay:20200702232406p:plain

これをインストールすると無事起動できた。
I got it after installing it. f:id:nowokay:20200702232635p:plain

しかしrFacotr 2は車の挙動のシミュレーションはすごいんだけど、インターフェイスがめちゃ素っ気なくて、ほんとにガチ勢向けだなという雰囲気。
BTW, rFactor 2's simulation of vehcle's behavior is great, but the interface is dreary. It seems it is for hardcores.

Javaを勉強するための環境設定(NetBeans版)

はじめに

NetBeansを使ってJavaの勉強をはじめるという人むけの環境設定の解説です。
インストールするものは2つです。

Java環境のインストール

NetBeansJavaで動くのと、そもそも目的がJavaの勉強なんで、Javaのインストールが必要です。

AdoptOpenJDKのダウンロード

Javaには様々なディストリビューションがありますが、次の理由からここではAdoptOpenJDKを使います。
https://adoptopenjdk.net/

  • 最新バージョンがある
  • 様々な用途でライセンス上 問題なく使える
  • インストーラがある(環境変数などの設定が不要)
  • サイトで迷いにくい

JavaはOpenJDKとしてオープンソースで開発されているのですが、AdoptOpenJDKはOpenJDKをビルドしてインストーラなどをつけて配布するプロジェクトです。
サイトに行くと、ブラウザからOSを判別してくれているのですが、バージョンが11になっているので、ここでは最新の14にしておきましょう。
f:id:nowokay:20200621084228p:plain

AdoptOpenJDKのインストール

ダウンロードしたファイルを起動するとインストールが始まります。
ライセンスの確認がありますが、OpenJDKがGPL v2ベースのライセンスなので、AdoptOpenJDKも同様にGPL v2になっています。
GPL v2はいろいろなところで出てくるライセンスなので、一度は内容を確認しておいたほうがいいですが、ソフトウェアを使うだけであれば特に気にする部分はないと思います。
f:id:nowokay:20200621085522p:plain

次にいろいろな設定が出ます。ここで、3番目の「Set JAVA_HOME...」は選択しておいたほうがいいでしょう。
f:id:nowokay:20200621085601p:plain

インストール確認

インストールが終わったら、インストールされているか確認してみましょう。
Windowsシステムツール」から「コマンドプロンプト」を選んで、コマンドプロンプトを立ち上げます。
ここで「java」と入力してEnterキーを押したときにいろいろ出てくれば、Javaが正しくインストールされています。 f:id:nowokay:20200621092222p:plain

java -version」と入力するとバージョン情報が表示されて、Java 14であることやAdoptOpenJDKの実行ファイルであることが確認できます。
f:id:nowokay:20200621092521p:plain

NetBeansのインストール

さて、ではNetBeansをダウンロード、インストールしましょう。

NetBeansのダウンロード

NetBeansのダウンロードはここからできます。
https://netbeans.apache.org/download/index.html
いまの最新版は12なので、これをダウンロードします。
f:id:nowokay:20200621100236p:plain

今回はインストーラ付のバイナリをダウンロードします。
f:id:nowokay:20200621100432p:plain

そうするとまたたくさんリンクが現れて面食らうのですが、一番上にあるおすすめサイトを選ぶといいと思います。
f:id:nowokay:20200621101442p:plain

NetBeansのインストール

ダウンロードしたファイルを実行するとインストールが始まります。
f:id:nowokay:20200621102845p:plain

PHP開発をする予定のない人は、PHPはずしていいと思います。そのほかは残しておきましょう。
f:id:nowokay:20200621102925p:plain

NetBeansApacheライセンスになっています。これもよく出てくるライセンスなので一度は ちゃんと読んでおいたほうがいいですが、使う分には特に問題ないと思います。
f:id:nowokay:20200621103009p:plain

インストール場所は、特にこだわりがなければそのまま。
f:id:nowokay:20200621103230p:plain

アップデートのチェックはそのままでいいと思います。 f:id:nowokay:20200621103248p:plain

これでインストールが始まります。

NetBeansの起動

デスクトップに置かれたアイコンなどからNetBeansが起動できます。

NetBeansは「プロジェクト」という単位でプログラムを管理します。
ツールバーの2番目にある「New Project」ボタンを押すと新しいプロジェクトが作れます。
f:id:nowokay:20200621110305p:plain

プロジェクトの種類を選ぶダイアログが出ますが、そのまま「Java with Maven」の「Java Application」を選びます。
f:id:nowokay:20200621110525p:plain

初回はJava開発用の機能をアクティベートする必要があります。 JavaFXにチェックが入ってますが、当面必要ないのではずしておきましょう。このチェックを入れなくてもJavaFXアプリケーションの開発は可能です。
f:id:nowokay:20200621111240p:plain

アクティベートが終わるとプロジェクト名などを入力するダイアログが出ます。とりあえずそのままFinishしましょう。それぞれの意味は勉強が進んでから知っていけばいいと思います。
f:id:nowokay:20200621111505p:plain

プロジェクトが生成されると、このようになります。
f:id:nowokay:20200621112209p:plain

「Source Package」の中の「com.mycompany...」で右クリックしてメニューから「New > JFrame Form」を選びます。(JPanel Formではない)
f:id:nowokay:20200621112259p:plain

JFrame Form作成ダイアログが出ますが、とりあえずそのままFinishしましょう。
f:id:nowokay:20200621112518p:plain

こんな感じでフォームエディタが開きます。中央にフォームデザイン、右にコンポーネントパレットが表示されています。
f:id:nowokay:20200621112657p:plain

コンポーネントパレットのSwing Controlsの2番目にある「JButton」をクリックします。 f:id:nowokay:20200621113005p:plain

そうしたら、フォームの適当なところをクリックして配置します。
f:id:nowokay:20200621113206p:plain

配置したボタンをダブルクリックします。
f:id:nowokay:20200621115230p:plain

そうするとボタンが押されたときの処理を記述するコードが生成されます。
f:id:nowokay:20200621115402p:plain

sout と入力して[tab]を押すとSystem.out.printlnが入力されます。
f:id:nowokay:20200621115442p:plain

ダブルクォートの間にカーソルがあるので、そのまま「Hello!」と入力します。
f:id:nowokay:20200621115538p:plain

それでは実行してみましょう。
エディタ上で右クリックして、メニューから「Run File」を選びます。
f:id:nowokay:20200621115721p:plain

ビルドが行われます。初めての場合にはいろいろなダウンロードが行われるので、しばらく待つ必要があります。
f:id:nowokay:20200621115836p:plain

ウィンドウが表示されました。
f:id:nowokay:20200621115927p:plain

ボタンを押すとOutputウィンドウに「Hello!」と表示されるはずです。
f:id:nowokay:20200621120023p:plain

これでJavaのプログラムを組んで動かすことができました。
それでは、Javaの勉強がんばってください。 f:id:nowokay:20200621120446p:plain

LeetCodeを解いてみる配信 2020-06-16

LeetCodeを解く配信をした。
https://www.youtube.com/watch?v=KbYCbvuEps0www.youtube.com

今日はアコギを弾いてから始めた。アコギは曲を覚えてなかったので中途半端なところまで。

配列の合計の配列

Running Sum of 1d Array - LeetCode
動画は 5:05 から。
配列が与えられて、i番目の要素にはi番目までの合計をいれるというもの。
Acceptまではすぐだったんだけど、メモリ使用量が50%だったのでがんばった。
結局、結果用の配列を用意するのではなくて与えられた配列を書き換えることでメモリ節約していた。

配列の並べ替え

Shuffle the Array - LeetCode
動画は 17:10 から。
[x1, x2, ... , xn, y1, y2, ... , yn]の順番で与えられた配列を[x1, y1, x2, y2, ... , xn, yn]に並べ替えるもの。
とりあえず解いてみたら100%, 100%になったんだけど、与えられた配列の書き換えでいけるかなーとやってみようとして、やっぱだめって気づいて次にいった。

予備の飴をもらったら一番になれるかどうか

Kids With the Greatest Number of Candies - LeetCode
動画は 32:50 から。
子どもたちがいくつか飴をもっていて、それとは別に予備の飴があって、その予備の飴を全部もらったら一番多くもってることになる子どもはTrue, そうじゃなかったらFalseを返すというやつ。
コードは比較的すぐ書けたけど、やっぱメモリが60%になってて、ちょっとがんばろうということでArrayListを使っていたのを、配列を用意してArrays.asListした。
それで89%になったので、そこで終了。

初めて買ったノートパソコンを処分した

片付けてたらノートパソコンとして初めて買ったパソコンが出てきたのだけど、液晶はダメになってるし触るとボロボロになっていくしで、回収に出した。
本命は3枚あった液晶ディスプレイなのだけど。
f:id:nowokay:20200611193706j:plain
ちなみに、自立しないのでうしろのトレーで支えている。

もちろんAppleではなくて、AcerのTravelMate 514TXVというもの。 f:id:nowokay:20200611193608j:plain

この時期だと、ぐぐってもネット記事とか全くない。かろうじて出てくるのはこのスペック一覧。
https://www.cnet.com/products/acer-travelmate-514txv-14-1-celeron-win98-se-64-mb-ram-6-gb-hdd/

Celeron 466MHzでメモリ64MB、ハードディスク6GB、ディスプレイ1028x768なので、当時としては結構ほどほどなやつ。それなりに高かった記憶。
DVDもフロッピードライブも内蔵で便利だった。というか、たぶんそういう条件で絞っていくとこれしか残らなかったんだと思う。
f:id:nowokay:20200611194712j:plain

一緒にLANカードも出てきた。モデムはついていたけどLANはついていなくて、まだあまり家庭内でネットワークを組むというのはなかったんだと思われる。 f:id:nowokay:20200611201133j:plain

メモリ空きスロットがあるはずなんだけど、埋まってたので、増設していたかもしれない。そんな気もする。
f:id:nowokay:20200611194536j:plain

ハードディスクはカタログ通りなので、そのまま換装せずに使っていたのかな。ハードディスク入れ替えるくらいなら買い替えたほうがいいって感じだったんだろう。
f:id:nowokay:20200611201003j:plain

銅板に覆われてるのがCeleronで、右下にあるのがグラフィックチップのNeoMagicのMagicMedia 256AVかな。
ALiのM1543というのはAladdin Pro IIチップセットのNorth Bridge側で、探せばSouth BridgeのM1543があったはず。ちゃんとよく見ておけばよかった。
f:id:nowokay:20200611201459j:plain
しかしもうメモリコントローラはCPUに内蔵されてるし、ノースブリッジとかサウスブリッジとか言わないですね。

佐川さんにひきとられて、リネットジャパンに送られていきました。
https://www.renet.jp/

徹底図解 パソコンのしくみ 新版

徹底図解 パソコンのしくみ 新版

キーボードを洗った

家ではSK-6000というキーボードを20年近く使っているのだけど、その間まったく洗ったりせずにいたので結構汚れていた。
ちゃんと撮ってなかったので、キー配列確認用に撮ってたやつ。
f:id:nowokay:20200607063443j:plain

オフィスにキープーラーがあるので、こんど出社したときに持って帰ったらキーボード掃除しようと思っていたのだけど、つい出来心で右上のナゾのマウスキーを外してみて、案外簡単にはずれるなーとウォーターポンププライヤを使って全部外してしまったのであった。
で、洗剤いれたボウルに浸して、ひとつづつひたすら拭く。
f:id:nowokay:20200607063351j:plain

3時間くらいかけてきれいになった!
これはなんか満足感高い。
f:id:nowokay:20200607063305j:plain

でめでたしめでたし、ではなくて、同じのがもうひとつあるのであった。
これは火事にあった家に置いてあったやつなので、煤けている。
けど、また今度、気が向いたときにやなー。
f:id:nowokay:20200607065327j:plain

ARCHISS キートップ引き抜き工具 Ergo Grip Keycap Remover AS-KREGP01

ARCHISS キートップ引き抜き工具 Ergo Grip Keycap Remover AS-KREGP01

  • 発売日: 2017/01/05
  • メディア: Personal Computers