Python3でエラー発生時にデバッガを起動する

Python3のスクリプトを数時間動かしたあとにエラーで落ちるという経験はないでしょうか。エラーが発生したら pdb と呼ばれるデバッガが起動するようにしておくと、エラーの究明に役立ちます。 例えば、以下のような script.py があったとします。 def main()…

LinuxでGPUの情報を取得する

LinuxでGPUの情報を取得する方法を調べました。以下の表示例およびコマンド例は、すべてUbuntu 18.04 + GTX 1070という環境で試しました。OSによって差異があるかもしれません。 1. lspciを使う lspciは、PCIデバイスのリストを表示するコマンドです。以下の…

Docker ImageからContainerを作るコマンドのまとめ

いまさらながらDockerの使い方を勉強中です。この記事では、Dockerを使うための環境構築方法と、誰かが作成したDocker ImageをもとにDocker Containerを作成して動かす方法についてまとめます。 環境構築 以下ではUbuntu 18.04にDocker Community Editionを…

Ubuntu 18.04でsleepする方法

Ubuntu 18.04でsleepする方法は以下のとおりです。なお、正しくは"sleep"ではなく"suspend”というそうです。 Winキーを押す "sleep" または "suspend" とキーボードに打ち込む 途中で「サスペンド」というアイコンが出てくるので、選択する

Santa's Workshop Tour 2019 参加記

10日前まで開催されていたKaggleのSanta's Workshop Tour 2019に参加していました。結果は1620チーム中の142位。Kaggleで初めてのメダルであるブロンズメダルを獲得できました。最適化系のコンテストなのに問題のサイズが小さく、コンテストの序盤から最適解…

Windows Subsystem for Linux (WSL) でscreenを動かす

wsl

現象 Windows Subsystem for Linux (WSL) で動かしているUbuntu 16.04にてscreenを動かそうとすると以下のエラーが出ました。 $ screen Cannot make directory '/var/run/screen': 許可がありません 解決策1 (推奨) screenが使用するディレクトリを環境変数…

Windows Subsystem for Linux (WSL) のホームディレクトリの場所

wsl

Windows 10で導入されたWindows Subsystem for Linux (WSL) を使ってインストールしたLinuxのホームディレクトリの場所を調べるには、コンソールでホームディレクトリに移動したあと $ explorer.exe . とすればよいです。 WSLで導入しているUbuntu 16.04から…

robocopyの使い方メモ

robocopyというコマンドを使って、Windowsでタイムスタンプを保持してフォルダまるごとコピーするときの自分用メモです。 基本的な使い方 基本コマンドは以下の通り。(src)と(dst)にはそれぞれコピー元フォルダ、コピー先フォルダを入れてください。 robocop…

wgetでsegmentation faultが出たときの対症療法

wgetで2.4GBほどある大きなファイルを取得しようとしたとき、以下のようにsegmentation fault (core dumped)が出ました。 $ wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run (略) HT…

flake8を使いこなす

Pythonのコード改善のためのツール5つを試してみた - minus9d's diary の中で個人的にもっともよさそうだと感じたflake8について、使い方を詳しく調べました。 インストール $ pip install flake8 バージョンとプラグインの確認 $ flake8 --version すると、…

Ubuntu 18.04の設定メモ

Ubuntu 18.04をクリーンインストールしようとしてはまる - minus9d's diary の続き。日本語 Remixを使わずにUbuntu 18.04をインストールした場合における設定メモです。 基本設定 Caps Lockキーを潰してCtrlキーとして使う GUIで行うために $ sudo apt insta…

Ubuntu 18.04をクリーンインストールしようとしてはまる

Ubuntu 18.04をSSDにクリーンインストールしようとして盛大にはまりました。以下はそのメモです。 現象 まず以下の手順でUbuntuのインストーラーUSBメモリを作成しました。 balenaEtcher - Homeの最新版 1.5.33 をWindows 10にインストール Ubuntu Desktop …

C++のmultisetの使い方

競技プログラミングでC++のmultisetをたまに使うことがありますが、毎回使い方を忘れているのでメモしておきます。 multisetとは multisetは、集合を扱うデータ構造です。setと異なり、同じ値の要素を複数持つことができます。#include <set>すれば使えます。さっ</set>…

Cygwin + ImageMagick を使ってPDFから連番のJPGを生成

Cygwin + ImageMagick を使ってPDFから連番のJPGを生成する方法についてメモします。 準備 Cygwinのインストーラを用いて" ImageMagick"と"ghostscript"をインストールします。 そのあと、Cygwinのコンソールで which convertしてみてください。/bin/convert…

TopCoderの環境構築メモ

Windows 10にTopCoderのための環境を構築したときの簡易的なメモです。 Javaランタイムのインストール Java SE Runtime Environment 8 - Downloads からJavaのランタイムを入れる chocolateyを入れている場合、choco install jre8 でもいいはず Java Applet…

Google Code Jam 2019のインタラクティブ問題を解くときのメモ

Google Code Jam でインタラクティブ問題が初登場したのはリニューアル後の2018年。2019年にも引き続きインタラクティブ問題が出題されたのだけれど、ローカルでのデバッグ用にGoogleが提供するデバッグツールの使い方が2018年から変わっていたので、その使…

中綴じ小冊子の自作メモ

中綴じ小冊子を自作するために調べた簡単なメモです。 セブンイレブン セブン‐イレブンのマルチコピー機で同人活動をもっと手軽に・もっと楽しく! にある「中とじ冊子」に従うと作成できます。 ホッチキスは自分で行う必要がある 用紙サイズの指定に注意。…

Pythonにてリストの最後の要素を消すにはdelかpop()を使う

Pythonにて長さ100000のリスト arr があるとします。このリストの末尾を削除するとき arr = arr[:-1] とする方法は非常に遅いので要注意です。arr[:-1]により新規にリストが作成されてしまうのが原因です。ついカジュアルにこのような書き方をしてしまいがち…

Windows 10でディスクを入れるとVLCが起動するのを防ぐ

Windows 10でトレイにCDを入れるとVLCが自動起動して再生が始まってしまう現象に困っていました。 以下の手順により、自動起動を防ぐことができるようになりました。 Explorerを起動 光学ドライブを右クリックし、「自動再生を開く」を選択 「何もしない」を…

kaggle Traveling Santa 2018 参加記

kaggleの最適化コンペ "Traveling Santa 2018" にソロで参加しました。結果は1874チーム中328位。着手したのが2018/12/22と遅く、冬休みはまるまる何もできず。かけた時間がいくら何でも少なすぎました。スコアが平凡であまり価値はありませんが、記録として…

"WslRegisterDistribution failed with error"への対応法(追記あり)

Windows 10にてwindows subsystem for linuxを利用したUbuntu 16.04を立ち上げると、以下のようなエラーが出て起動に失敗しました。(エラーコードの部分は0x800703faです) Installing, this may take a few minutes... WslRegisterDistribution failed wit…

Visual Studio Codeで等幅フォントを使う

Visual Studio Codeはデフォルトだと日本語が等幅で表示されません。 そこで以下の手順により、日本語がある場合でも等幅で表示されるようにしました。 公式ページ から Myrica.ttc をダウンロードし、インストール 半角文字と全角文字の横幅の比が 1:2 なこ…

中古ノートPC Dynabook R734 を買いました

外での活動用にノートPCがほしいなと思っていました。友人からDynabookの中古はいいと聞いていたのでDynabook決め打ちで検索をかけ、2014年モデルのモバイル用ノートであるDynabook R734/E26KRを楽天市場で購入しました。外側に傷こそ目立つものの、中は予想…

Windows 10の環境構築

Windows 10がブルースクリーンを繰り返す事態に見舞われ、やむなく新しいSSD ( Samsung SSD 500GB 860EVO ) を調達してWindows 10を新規インストールしました。環境構築でやったことをメモします。 CapsをCtrlに Ctrl2cap インストーラで個別にインストール …

HACK TO THE FUTURE 2019予選 参加記 のまとめ

北大日立マラソン1st 参加記 のまとめ - minus9d's diary、北大日立マラソン2nd 参加記 のまとめ - minus9d's diary に引き続き、HACK TO THE FUTURE 2019予選 - AtCoderの参加記を勝手ながらまとめました。 順位 atcoderのID URL 備考 1 kimiyuki HACK TO T…

HACK TO THE FUTURE 2019予選 参加記

HACK TO THE FUTURE 2019予選に参加しました。8時間中7時間半ほど参加して22位でした。前回より1位だけランクアップしましたが順位表の1ページ目には入れず残念。 試行ログ まずは周囲に壁をつくるだけの初期配置を試し、80904点。 マークを盤面いっぱいにラ…

LinuxにてWindows 10のインストーラUSBを作成する

家のWindows 10が不調になりました。他にWindowsマシンを持っていなかったので、手持ちのLinux (Ubuntu 16.04 LTS) を使ってWindows 10のインストーラUSBを作成しました。この記事はその記録です。 ISOイメージの取得 Windows 10 のディスク イメージ (ISO …

Pythonのコード改善のためのツール5つを試してみた

Pythonのコードを改善するためのツールについて一通り試してみました。各ツールのインストール方法や使い方については Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - Sider Blog に詳細にまとまっているのでおすすめです。 サ…

KUPC 2018 C - 七目

本番中にパニクって解けなかったのを反省して解き直しました。DFSくらいさっと書けないとだめですね…。 問題 C - 七目 9x9のマスが白で埋められている。白マスが縦・横・斜めのいずれにも白マスが7個以上連続しないように、11個のマスを黒く塗る塗り方を求め…

TCO19 Single Round Match 737 - Div1 Easy (AliceAndBobEasy)

2018-09-19のTopcoderに3ヶ月ぶりで出場。実験を執念で繰り返してかろうじてEasyが解けました。あわててNimゲームの勝利条件を蟻本で確認しましたが、もはやこれが前提知識となっているとは。 以下、Easyの解法とPythonコードです。 #!/usr/bin/env python3…