読者です 読者をやめる 読者になる 読者になる

デブサミ2017の二日目に参加しました #devsumi

2/17にデブサミ2017に参加しました。 Developers Summit 2017 エンジニアとして生きる、技術の先にある現実に踏み出す セッション資料は以下で公開されています。 デブサミ2017、講演関連資料まとめ:CodeZine(コードジン) ここでは自分の感想やメモを残し…

Python2で、type()関数を使うと<type 'instance'>が返ってきた

Python2でprintデバッグをした際、インスタンスの型名が知りたくなりました。 type()関数を使ったところ、<type 'instance'>が返ってきたので、これは何だろうと思って調べた時のメモです。 type() | 2. 組み込み関数 — Python 2.7.x ドキュメント 環境 Python 2.7.13 結果 Py</type>…

Docker for Macにて、httpd:alpineのApacheを使ってみた

初めてDockerをインストールし、Alpine Linux版Apacheイメージを使ってみた時のメモです。 今回は以下の記事が参考になりました。ありがとうございました。 Dockerコマンドメモ - Qiita 目次 環境 Docker for Macのインストール Visual Studio CodeでDockerf…

PythonのReportLabで、表(TableやTableStyle)について調べてみた

ReportLabでpdfに表を描いてみたところ、悩んだところがあったため、メモを残しておきます。 なお、詳細はReportLabの公式ドキュメント中の「ReportLab PDF LibraryUser Guide」のp77〜にも記載があります。 ReportLab Documentation - ReportLab.com (pdf注…

Django + ReportLabをHerokuで動かしてpdfを表示する

最近、Pythonでpdfを作成する機会がありました。 Pythonのpdf作成ライブラリには何があるのかを調べたところ、ReportLabが一番有名そうでした。 ReportLab - Content to PDF Solutions rptlab / reportlab — Bitbucket また、DjangoのドキュメントにもReport…

HerokuにDjangoアプリをデプロイするとcollectstaticが自動実行される

HerokuにDjangoアプリをデプロイしたところ、 remote: ! Error while running '$ python manage.py collectstatic --noinput'. remote: See traceback above for details. remote: remote: You may need to update application code to resolve this error. …

DjangoをHeroku + uWSGIで動かしてみた

最近uWSGIにふれたため、HerokuでuWSGIを動かしてみようと思いました。 ただ、Herokuのチュートリアルではgunicornを動かしていました。 Getting Started on Heroku with Python | Heroku Dev Center HerokuでuWSGIで動かす方法を調べたところ、uWSGIのドキ…

2016年の振り返りと2017年の目標

昨年も振り返りと目標を立てていたので、今年も行います。 目標の振り返り 2015年の振り返りと2016年の目標 - メモ的な思考的なで立てた目標を振り返ってみます。 できる限り手を動かして、何かのアプリを作る 手は動かしていましたが、何かのアプリを作るこ…

Python + pytestで、プレフィクスがアンダースコア2つの関数(プライベート関数)をテストする

pytestにて、プライベート関数のテストで悩んだことがあったため、メモを残します。 なお、今回のテスト対象コードは以下とします。 target.py def __double_underscore_function(): return 'double' 目次 環境 プライベート関数のimportについて 通常のコー…

Pythonのテストコードで、モジュールをモックに差し替える

Pythonにて、開発環境に無いモジュールをimportしているプロダクションコードに対して、テストコードを書く機会がありました。 ただ、テストコードにてモジュールをモックに差し替える方法で悩んだため、メモを残します。 目次 環境 対応 ソースコード 環境 …

DjangoにDjangoミドルウェアとWSGIミドルウェアを組み込んでみた

この記事は「Django Advent Calendar 2016 - Qiita」の13日目の記事です。 Djangoにはミドルウェアというフレームワークがあるため、リクエスト/レスポンス処理をフックして処理を追加できます。 Middleware | Django documentation | Django また、Djangoは…

Django + Handsontable.jsを使って、Excel風な入力画面を作ってみた

この記事は「Django Advent Calendar 2016 - Qiita」の11日目の記事です。 最近、DjangoでExcel風な入力画面を持つWebアプリを作る機会がありました。 何か良い方法がないかを調べたところ、jQueryへの依存がないJavaScriptライブラリHandsontableを知りまし…

Pythonで、WSGIミドルウェアを作ってみた

WSGIアプリケーションを作る中で、WSGIミドルウェアの存在を知りました。 第3回 WSGIミドルウェアの作成:WSGIとPythonでスマートなWebアプリケーション開発を|gihyo.jp … 技術評論社 そこで今回、WSGIミドルウェアを作ってみることにしました。 目次 環境 …

mod_wsgiやuWSGIで使われる、デフォルトのWSGI callback名を調べてみた

WSGIアプリの書き方について調べている時、 def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/plain')]) return [b"Hello, world."] や、 class MyWSGIApplication(object): def __call__(self, environ, start…

#nseg #jxug #glnagano JXUGC No.19 Xamarin ハンズオン 長野大会 featuring NSEG に参加しました

11/19にギークラボ長野で開かれた、JXUGC No.19 Xamarin ハンズオン 長野大会 featuring NSEG に参加しました。 JXUGC #19 Xamarin ハンズオン 長野大会 featuring #nseg - connpass Xamarinの話を聞くたびに、手元のMADOSMA(Windows10 mobile)にXamarinアプ…

Macで、uWSGIをインストールしたらエラーになった

MacのPython環境にuWSGIをインストールしようとしたところ、 # Xcodeのバージョン確認 $ xcodebuild -version Xcode 8.1 Build version 8B62 # pipでインストール $ pip install uwsgi ... *** uWSGI linking *** ... ld: file not found: /usr/lib/system/l…

Thunderbird Portableで未読メールや未読フォルダの色を変更する

Windows10のデフォルトフォントの場合、Thunderbirdでの表示フォントが少々細くなり、未読などが分かりづらくなりました。 そのため、未読メールや未読フォルダのフォント色を変更しようと考えました。 ただ、通常のThunderbirdだと色変更の設定情報があった…

Pythonで、Cookieを扱うWSGIフレームワークを自作してみた

前回、書籍「Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門」をもとに、PythonでURLルーティング機能だけがあるWSGIフレームワークを自作しました。 gihyo.jp 今回は、以下のRFC6265やWebサイトを参考に、前回のWSGIフレームワークにCoo…

Pythonで、URLルーティング機能だけがあるWSGIフレームワークを自作してみた

以前、 WSGI準拠のWebサーバ WSGIアプリケーション を自作しました。 これらの自作により、「Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門」の第3章以降もPythonで書く見通しが立ちました。 gihyo.jp 第3章以降では、URLルーティングや…

#gcpug #glnagano GCPUG信州 キックオフ勉強会(機械学習/TensorFlow)に参加しました

7/23に開催されたDGCPUG信州 キックオフ勉強会(機械学習/TensorFlow)に参加しました。資料は以下にまとまっています。 GCPUG信州 キックオフ勉強会(機械学習/TensorFlow) - connpass 会場は岡谷市のイルフプラザのIT研修室でした。各机に電源コンセント…

Pythonで、自作したWSGI準拠のWebサーバ上で、自作のWSGIアプリを動かしてみた

前回、WSGI準拠のWebサーバを自作しました。 その時はWSGIアプリケーションフレームワークとしてBottleを使いましたが、今回はWSGIアプリケーションも自作してみます。 目次 環境 最も単純なWSGIプリケーション Jinja2テンプレートを使う(関数版) Jinja2テン…

PythonでWSGI準拠のWebサーバを自作し、その上でBottleを動かしてみた

以前、「Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門」を参考に、PythonでWebサーバを書きました。 「Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門」が良かったのでPythonで書いてみた - メモ的な思考的な gihyo…

PowerShellを使って、Gmail APIからメールを送信する

以前、PowerShellを使ってSMTPでGmailを送信したことがありました。 PowerShellを使って、SMTPでGmailを送信する - メモ的な思考的な 今回は、以下の記事を参考に、Gmail APIを使たGmailの送信を試してみました*1。 Powershell: Googlemail (GMail) nativ mi…

PowerShellからイベントログの内容をメールで送信する

Windowsのイベントログの内容をメールで送信したい場合、今まではNotifEventLogSecondを使っていました(現在では開発終了)。 NotifEventLogSecond - With nothing better to do ソースコードは公開されています。 With nothing better to do 今後どうしよう…

PowerShellを使って、SMTPでGmailを送信する

以前、PowerShellからGmailを送信したことがありました。 Windowsでキーサインパーティに参加した時のまとめ & caffっぽいツールを作ってみた - メモ的な思考的な 読み返してみると、 System.Net.Mail System.Web.Mail を使っており、PowerShellのSend-MailM…

VS CodeでPowerShellファイルを作成・実行したら文字化けした

今までPowerShellはPowerShell ISEを使って書いていたのですが、以下の記事を読んで、Visual Studio Codeで書いてみました。 VS Code での PowerShell サポートが強化されました - tech.guitarrapc.cóm Hello world的な "Hello world!" "ハローワールド!" と…

#stapy #glnagano 第7回 Python勉強会 in GEEKLAB.NAGANOに参加しました

7/6にギークラボ長野で開かれた、第7回 Python勉強会 in GEEKLAB.NAGANOに参加しました。 Python勉強会 in GEEKLAB.NAGANO #7 - GEEKLAB.NAGANO | Doorkeeper 「みんなのPython勉強会 #14」の東京会場を中継する形での勉強会でした。資料などは以下のページ…

Visual Studio CodeでPython + Djangoを書いて、py.testを実行してみた

それなりの規模のDjangoアプリを書く場合、PyCharmなどのIDEを使っています。 ただ、諸般の事情によりIDEが使えないことも考えて、Visual Studio Code(以下VS Code)のPython拡張を試してみました。 Python with Visual Studio Code - Visual Studio Code な…

「Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門」が良かったのでPythonで書いてみた

Pythonでhttp.serverを使っているうちに、せっかくならもう少し下のレイヤについても知りたくなりました。 何か良い資料がないかを探したところ、本当の基礎からのWebアプリケーション入門――Webサーバを作ってみようというページを見つけ、さらに書籍「Webサ…

pure Pythonのライブラリapcaccessを使って、apcupsdのデータを取得する

apcupsdで取得できるUPS情報をPythonのオブジェクトとして扱う方法を探したところ、apcaccessライブラリを見つけました。 apcaccess 0.0.4 : Python Package Index flyte/apcaccess | GitHub 試してみた時のメモを残します。 環境 Windows10 x64 Python 3.5.…

Windows10 + Python3 + apcupsdで、UPSの状態をブラウザから確認する

以前、あるWindows端末に接続されているAPC製UPSの状態を、別の端末のブラウザから確認できるよう、Rubyを使って実装しました。 Windows7 + WEBrick + apcupsdで、UPSの状態をブラウザから確認する - メモ的な思考的な 今回は、Pythonを使って同じことを試し…

apcupsdで、APC製UPSのアラーム音を消す

UPS

apcupsdを使って、APC製UPSのアラーム音を消したときのメモです。 環境 Windows10 x64 Smart-UPS 750 シリアルケーブル(940-0024C)を使用 apcupsd 3.14.12 なお、どのケーブルを使っているか分からない場合は以下が参考になりました。 apcupsd で APC製 UPS …

apcupsdをセットアップしたところ、COMMLOSTになる

UPS

APC製UPSを遠隔から監視するため、apcupsdをセットアップしたところ、COMMLOSTエラーが出たため対応した時のメモ。 環境 Windows10 x64 apcupsd 3.14.12 PowerChuteインストール済 原因と対応 PowerChuteがすでにインストールされている環境にて、apcupsdを…

ActiveDirectoryのSYSVOLのレプリケーションプロトコルをDFSRへ移行した

ActiveDirectoryのSYSVOLのレプリケーションプロトコルをDFSRへ移行した時のメモです。 SYSVOLについては以下が参考になります。 Sysvol の保守に関する最良の方法 - Microsoft KB324175 管理者のためのActive Directory入門:第7回 Active Directoryの導入 …

Python2 + Bottleで、XMLファイルそのものをレスポンスとして返す

Bottleでは、 @route("/xml") def xml_response(): response.content_type = 'xml/application' xml = '<foo>Hello xml!</foo>' return xml とすれば、XMLのレスポンスを返すことができます。 How to send xml/application format in bottle? - Stack Overflow ただ、XM…

Python2 + Bottleで、別の端末からアクセスできるようにする

Bottleアプリを書いていた時に、 自分の端末からはアクセス可能 LAN上の他の端末からはアクセス不可 ファイアウォールのポートは開いている という状態になったので、調べた時のメモ。 環境 Windows10 x64 Python 2.x Bottle 0.12.9 対応 run()の引数hostが…

Python2 + Bottleで、URL末尾のスラッシュの有無にかかわらず同じコンテンツを表示する

Bottleで、 /slash/ /slash を同じURLと解釈してコンテンツを表示する際、 @route("/slash") @route("/slash/") def slash(): return "Hello world!" としていたのですが、他に良い方法がないかを調べた時のメモです。 環境 Windows10 x64 Python 2.x Bottle…

Google I/O報告会 2016 in 信州に参加しました #io16jp #GDG信州

6/19に開催されたDGoogle I/O報告会 2016 in 信州に参加しました。昨年は参加できなかったので、2年ぶりの参加です*1。 Google Developers Japan: I/O Extended 報告会 が日本各地で開催されます Google I/O報告会 2016 in 信州 - connpass 会場は塩尻市の塩…

Python2 + Bottleで、404ページを強制的に表示する

Bottleで404ページを強制的に表示したくて調べた時のメモです。 環境 Windows10 x64 Python 2.x Bottle 0.12.9 調べたこと どうやって実装するのが良いのか調べたところ、stackoverflowでabort()を使っている回答がありました。 python - Bottle.py error ro…

pip uninstall -r requirementsの動作を確認する

Pythonのパッケージ管理システムのpipでは、requirements.txtに必要なパッケージを記述しておくことで、 pip install -r requirements.txt で一括インストール pip uninstall -r requirements.txt で一括アンインストール ができます。 そんな中、pip uninst…

Aipo構築済のサーバを2ndドメインコントローラに昇格したら、Aipoが起動しなくなった

Aipo構築済のサーバを2ndドメインコントローラに昇格ところ、Aipoが起動しなくなったため、対応した時のメモを残します。 目次 環境 対応の流れ AipoTomcatやAipoPostgreSQLが動作しない AipoPostgreSQLサービスがすぐ止まる まとめ その他 環境 Windows Ser…

Python3 + Flask + PySNMP + Highcharts + Apache2.4で、PX-105のインク残量を取得・表示し、Gmailでインク残量を送信する

以前、Ruby + SinatraでPX-105のインク残量を取得・表示したことがありました。 Ruby + Sinatra + SNMPでPX-105のインク残量を取得・表示する - メモ的な思考的な 最近さわっているPythonでも同じことができないかと思い、Python3 + Flask + PySNMP + Highch…

Windows + Python3 + PySNMPで、SNMPのGET Requestを送信する

Windows + Python3でSNMPを扱おうとしたところ、PySNMPが動きそうでした。 SNMP library for Python — PySNMP etingof/pysnmp: [OFFICIAL] Pure-Python SNMP library そこで、公式ドキュメントや書籍を見て手を動かした時のメモを残します。 なお、SNMPデー…

Python3 + google-api-python-clientで、Gmail APIを使ってメールを送信する

前回はPythonの標準ライブラリを使って、Gmailからメールを送信しました。 Python3.5 + smtplib.SMTP_SSL.send_message()で、Gmailからメールを送信する - メモ的な思考的な ただ、Googleアカウント名とパスワードをスクリプト上に書いておく必要があったた…

Python3.5 + smtplib.SMTP_SSL.send_message()で、Gmailからメールを送信する

Python3.5 + SMTPで、Gmailからメールを送信しようと考え調べてみたところ、Web上には色々な書き方がありました。 自分なりにいろいろと手を動かしてみて、Pythonの標準ライブラリであるsmtplib.SMTP_SSL.send_message()に行き着いた時のメモを残します。 た…

Pythonの拡張モジュールからexeファイルを作成後、whlファイルに変換し、別の端末でpip installする

前回は、Python3.5 + Visual C++ Build Tools 2015環境で、Pythonの拡張モジュールをビルドしました。 ただ、Vista世代の端末ではVisual Studio 2015系がインストールできないことから、Python3.5系向けの拡張モジュールがビルドできませんでした。 そこで今…

Pythonの拡張モジュールインストール時にvcvarsall.batエラーが出たため、Visual C++ Build Tools 2015でビルドした

Pythonの拡張モジュールであるPyCryptoをビルドしてWindowsへインストールしようとしたところ、以下のエラーが出たため対処した時のメモを残します。 (env) >pip install pycrypto ... building 'Crypto.Random.OSRNG.winrandom' extension error: Unable to…

Windows + Apache2.4 + mod_wsgiにて、virtualenvのDjangoをバーチャルホストで動かす

前回の記事では、Apache + mod_wsgiによるBottleのホストを行いました。 今回は、公式ドキュメントを参考にしながら、Djangoをバーチャルホストで動かしてみます。 How to use Django with Apache and mod_wsgi | Django documentation | Django 目次 環境 D…

Windows + Apache2.4 + mod_wsgiにて、virtualenv環境のWSGIアプリ(Bottle)を動かす

前回、Windows環境でmod_wsgiをビルドしてApache2.4にて動作することを確認しました。 mod_wsgiの公式ドキュメントを参考に、今回はvirtualenv環境のWSGIアプリ(Bottle)を動かしてみます。 mod_wsgi — mod_wsgi 4.5.2 documentation 環境 Windows7 x64 Apach…

Windows環境にて、mod_wsgiを自分でビルドし、Apache2.4へインストールする

PythonのWSGIアプリをWindows + Apacheでホストすることを考えたところ、 mod_wsgiを使うのが良さそうでした。 mod_wsgi/README.rst at master · GrahamDumpleton/mod_wsgi ただ、mod_wsgiのREADMEを読むとPython3.4系までしか記載がなく、手元のPython3.5系…