あっ!という間にブログはじめて1年経った
ドメインを取得しようかどうしようか悩んだり、どうでもいいことだけどブログにしようかなとか思ったり...。記事全然書いてないなと思いつつも日々を過ごしていたら、あっという間にブログ開設から1年が経った。記事数もたったの13記事しかない...。がんばります。
動画をスクレイピングでリストアップしてダウンロードと変換をするPythonプログラム
動画ファイルのダウンロードと変換を行うにあたり、バッチファイルを使うよりPythonの方が楽だなと。
- 必要ライブラリのインストール
- プログラム
対象のファイルはWebサイト上にあるため、Beautiful Soupを使って動画URLを自動で取得する。変換はFFmpegを使うので、ダウンロードもFFmpeg使う。
以下の画像は実行時のサンプル。実際に実行したサイトURLは伏せるため、適当なURLとなっている。
必要ライブラリのインストール
プログラムでは、スクレイピングとFFmpegによる変換をするため、ffmpeg-python
と beautifulsoup4
をインストールする。
pip install beautifulsoup4 pip install ffmpeg-python
※ Beautiful SoupのインストールはCondaを使っても良いが、ffmpeg-pythonはCondaのパッケージレポジトリになかった気がする。
続きを読むC++からAzure Storage Serviceを使おうとしたらエラーに引っかかりかけた
C++からAzure Storage Serviceを使うために、Microsoftのドキュメントを参考に進めていたらエラーが出て困った話。
- 環境
- やっていたこと
- 解決方法
- ライブラリ側の構文エラーを直す
- ライブラリに合った環境を設定
環境
自分のPC環境は以下の通りである。
環境 | |
---|---|
OS | Windows10 Pro 64bit version 1709 |
Visual Studio | Community 2017 version15.7.6 |
NuGet パッケージマネージャー | 4.6.0 |
やっていたこと
以下のMicrosoft Azureのドキュメントを参考に、Azure Storage ServiceのBLOBストレージを使うC++プログラムを作ろうとしていた。
NuGetパッケージマネージャーで wastorage
をインストールして、ライブラリをインクルードした。VisualStudioの画面上ではエラーや警告の波線は出ていない
NuGetを使ってパッケージをインストール
ライブラリをインクルード
しかし、ビルドするとドキュメント通り行ったにもかかわらず、以下のエラーが出てくる。
続きを読む非高精度タッチパッドでWindows10のジェスチャ機能を使用する
Windows 10標準機能の便利なタッチパッドジェスチャーを使いたいが、富士通のノートPCでは使えない。どうしても使いたいから調べて行なった手順を載せておく。
当記事を参考にドライバをインストールする場合は自己責任でお願いします。
- やりたいこと
- やったこと
- 手順
- 問題点
※ 2018/02/23 Creators Update(version 1703)、Fall Creators Update(version 1709)で動作を確認。
※ 2018/10/04 再投稿 April 2018 Update (version 1803)で動作を確認。
※ 2019/05/23 追記 October 2018 Update (version 1809)で動作確認。
※ 2019/07/08 追記 May 2019 Update (version 1903)で動作確認。
やりたいこと
タイトルどおり。高精度タッチパッド非搭載ノートPCでWindows10標準機能のタッチパッドジェスチャを使いたい。
高精度タッチパッドを搭載していない場合、iMacやMacBookのトラックパッドのようなWindows標準の3本指ジェスチャーなどが使えない。
↓これ使いたい。
ドライバを入れ替えなくても、AutoHotKeyで同等の機能を設定可能。また、レジストリの仮想キーコードを0x33115b25
, 0x33115b27
とかに書き換えても同等の機能を得ることができる。
Juliaの基本的な構文や関数についてまとめてみた
最近Juliaを触りまじめました。Pythonを触り始め、それから少し経ってJuliaを使い始めたため、インデントが構文規則になっている言語は未だに慣れないです。
- はじめに
- 環境
- 基本的な使い方
- 文字出力
- 計算
- if-else
- 関数
- ループ
- 数学
- 数学定数
- 行列
- 参考
※ 2018.09.27 数学定数について追記
はじめに
Juliaについての基本的な構文(コンソール出力、演算、if-else文、関数など)や簡単な数学の演算関数についてなど、入門的なプログラムを淡々と貼り付けておく。貼り付けるプログラムはGitHub Gistにも投稿しておく。
環境
環境は以下の通りである。
環境 | |
---|---|
OS | Windows10 Pro 64bit version 1709 |
Julia | Version1.0.0 Windows 64bit |
LLVM | libLLVM-6.0.0 (ORCJIT, skylake) |
Juliaの実行環境は1.0.0であり、記事中のプログラムは1.0.0より前のバージョン、1.0.0以降のバージョンでの動作は保証しない。
基本的な使い方
Juliaのプログラムは、先頭に #
をつけた1行をコメントアウトすることができる。また、初めを #=
終わりを =#
で囲んだ範囲すべてをコメントアウトすることもできる。
文字出力
Juliaは動的型付けを行うため、出力時にC言語などのように数値型や文字列型などを意識しなくてよい。
文字列と変数、文字列と数値など、出力するものが少ない場合カンマで区切る方法がラクでいい。複数出力や文字列の途中に変数を出力する場合は文字列中に $
で変数を指定する方法がいい。
print("a") # 改行なし出力 println("b") # 改行付き出力 println("\n") # \nは改行文字を表す # 文字列 str = "ABC_def_0123456789_HelloWorld!" println(str) # 大文字小文字変換 println(uppercase(str)) # すべて大文字に変換 println(lowercase(str)) # すべて小文字に変換 # 出力 文字列結合 println("str : [", str, "]") println("str : [" * str * "]") # 出力 文字列内に変数埋め込み println("str : [$str]") # Juliaは配列番号は1から println(str[1]) # 文字列strの1番目 A println(str[1:6]) # 文字列strの1~6の範囲 ABC_de println(str[end-15:end]) # 文字列strの最後から15引いた位置から最後まで 6789_HelloWorld! # 文字列と数値表示 x = 10 println(x) println("x = ", x) println("x = " * string(x)) # 数値を文字列に変換 println("x = $x") println("x + 20 = $(x + 20)") # 文字列内で計算し表示 # 数文字列を数値に変換 str_num = "100" int_num = parse(Int, str_num) # Int型に変換 println(int_num + 200) # Cのprintfのような表示マクロ using Printf # ライブラリ読み込み @printf("pi = %.5f\n", pi) # JuliaではUTF-8エンコードではUnicode文字をサポート println("αβγ", "\u03B1", "\u03B2", "\u03B3") # αβγ ユニバーサル文字名でも可能
計算
Juliaでは、掛け算をする際の *
を省略することができる場合がある。また、一般的な四則演算の他に、虚数に im
を用いて複素数計算をすることもできる。
省略時の注意点
可否 | 左側 | 右側 | 計算例 | 理由 |
---|---|---|---|---|
○ | 数字 | 変数 | 2x | - |
○ | 数字 | ( ) | 2(x + 1) | - |
○ | ( ) | 変数 | (1 + 2)x | - |
× | 数字 | 数字 | 23 | 普通の数字 |
× | 変数 | 数字 | x2 | 変数名 |
× | 変数 | 変数 | xy | 変数名 |
× | 変数 | ( ) | x(1 + 2) | 関数xの引数に1+2 |
× | ( ) | 数字 | (x + 1)2 | 構文エラー |
× | ( ) | ( ) | (x + 1)(y + 2) | 構文エラー |
いまさらだけど、2018年春発売のiPad 第6世代を買いました
2018年3月に発売された第6世代iPad Wi-Fiモデル 32GBを購入しました。 Apple Pencilに対応して価格も据え置きでコスパが高い!
購入した理由
自分は現在、以下のモバイル端末を持ているが新しいやつが欲しい! Nexus7は画面分割機能があるが性能的に厳しい。 Apple Pencil便利すぎ!
- iPod touch 5th ← ほとんど使っていない
- Nexus7 2013 LTE ← Root化してLinageOSインストールするもそろそろ限界
- Nexus5 ← 普段使いならまだ使える
- iPhone SE ← サイズがちょうどいい
Apple 銀座へ
9月15~17日の3連休の2日目の16日にApple 銀座へ。連休だし銀座はホコ天で賑わっていた。Store内は人多すぎ...。
いざ入店。……。1階は展示だけか?展示に触れずにさっさと2階へ。アクセサリー類か。3階はシアター??4階いろいろあるしここか?いきなり声かけられた。おーすごい対応!……修理か。あっ、1階で買えるんですか。ありがとうございます。エレベーターで一階へ。iPad 32GBとApple Pencilを購入したいんですが。若い女性店員さんに対応していただきました。「iPadをノートにするのめっちゃいいと思います」とのこと。アプリにGoodNotesおすすめされました。実際すごく便利そうなアプリでした。
~ 購入手続き ~
出口まで見送っていただきました。
接客とかいろいろ含めて、さすがAppleだわって感じでした。まさかスルーして行った展示スペースのところで買えるとは思ってもなかったし、展示テーブルのサイドにお金が入ってるとも思ってなかった。
開封~
iPadとApple Pencil。iPadProの化粧箱と違いシンプル。
続きを読むPythonとJuliaのためにJupyterLabの環境を整えた
PythonとJuliaの実行にJupyter Notebookの環境を整えようと思い検索したところ、開発途中ではあるものの Jupyter Notebookの後継(?)のJupyterLabがあるという。Jupyter Notebookよりもだいぶ機能やインターフェースを強化されているっぽいし、JupyterLabを入れることにした。
- Project Jupyterとは
- JupyterLabとは
- Jupyter Notebookより優れた主な機能
- JupyterLabのインストール
- インストール
- JupyterLabの起動
- Pythonの実行
- JuliaにIJuliaをインストールする
- インストール
- Jupyterカーネルの確認
- Juliaの実行
- 参考
Project Jupyterとは
Project Jupyterは「 オープンソースソフトウェア 、オープンスタンダード、数十のプログラミング言語にまたがる対話型コンピューティング(Interactive Computing)のためのサービスを開発する」ために設立された非営利団体です。Project Jupyterは、対話型コンピューティングの製品 Jupyter Notebook、Jupyter Hub、Jupyter Notebookの次世代バージョンであるJupyter Labを開発し、サポートしています。(翻訳)
■ Project Jupyter jupyter.org
JupyterLabとは
JupyterLabは、Project Jupyterの次世代のWebベースのユーザーインターフェイスである。JupyterLabを使用すると、 Jupyterのノートブック 、テキストエディタ、端末、カスタムコンポーネントなどのドキュメントやアクティビティを、柔軟かつ統合された拡張可能な方法で処理できます。 タブとスプリッタを使用して、複数のドキュメントとアクティビティを作業領域に並べて配置できます。 ドキュメントとアクティビティは相互に統合され、対話型コンピューティングの新しいワークフローを実現します。(JupyterLab Docs Overviewより翻訳)
JupyterLabについては公式のドキュメントを参照。
■ JupyterLab Documentation https://jupyterlab.readthedocs.io/en/stable/index.html
Jupyter Notebookより優れた主な機能
- 画面分割、タブ機能
- ファイルエクスプローラ機能
- ファイルの操作
ドラッグアンドドロップによる操作(画面分割、ファイル追加、セル移動など)
画面分割
コンソール表示
WindowsにJuliaの環境構築をしてみた
最近話題になっている、Juliaを触ってみたいと思い環境の構築をしてみた。
- Juliaとは
- 環境
- インストール
- バージョンの確認
- パス通し
- 実行
- SublimeTextのビルドシステム
- 参考
Juliaとは
Juliaは、汎用プログラミング言語水準から高度の計算科学や数値解析水準まで対処するよう設計された高水準言語かつ仕様記述言語、及び動的プログラミング言語である。
Juliaは、初めから高性能を目指して設計され、プログラムは、LLVM(Low Level Virtual Machine : 低水準仮想機械)を用いて実装された型推論と実行時(JIT : Just In Time)コンパイルを使用して、複数のプラットフォーム用の効率的なネイティブコードにコンパイルされる。
CやJavaのような、静的コンパイル言語に匹敵するパフォーマンスで、科学的数値計算や機械学習、データマイニング、線形代数演算などに適した柔軟な動的型付け言語である。
JuliaはMIT Licenseの下で配布されており、Windows、Mac OS、Linux、FreeBSDに対応している。
■ Julia公式Webページ
The Julia Programming Language https://julialang.org/
■ GitHub Julia github.com
続きを読む