Works by

Works by

プログラミング等IT技術関連でメモする

【App】社内イベント用モバイルアプリ開発をやっていった話

まえおき この発言は個人の見解であり、所属する組織の公式見解ではありません。 TL;DR 社内イベント用のアプリ開発を、フロントエンドを中心にやっていきました。 経緯 私の所属する会社では年2回ほど著名人や社内で活躍する方々を招いた大規模なラーニン…

【python】QRコードを生成する

メモ。 qrcode モジュールを使えば、pythonで簡単にQRコードの作成ができます。 Usage import qrcode # QRコードに埋め込みたいテキストを引数に渡す # PIL.Imageオブジェクトが返戻される img = qrcode.make('hoge') # 保存 img.save('./qrcode.png') Resul…

【Java】log4j2

log4j2 log4j2はJavaのロギングユーティリティであるlog4jの後継です。 厳密にはv1のlog4jがv2担っただけのものですが、プロパティファイルの命名やプロパティの設定方法などが一部新しくなっています。 Log4j – Apache Log4j 2 - Apache Log4j 2 Usage Mave…

【CloudFoundly】CloudFoundlyアプリケーションに対してssh接続を行う

メモ。 CloudFoundly上で立ち上がっているアプリケーションのホストにSSH通信したいとき、cf コマンドを利用できます。 cf こちらのページからインストーラをダウンロードし、インストールして完了。 github.com brew/yum/apt-getでもインストール可能です。…

【shell】任意拡張子を持つファイルの総行数をカウントする

メモ。 ある拡張子(複数可)を持つファイルすべての行数をカウントするコマンドは以下のようになります。 $ find . -type f | grep -E ".*\.java|.*\.css|.*\.html|.*\.js|.*\.php|.*\.py" | xargs cat | wc -l 適当にフィルタを掛けたい場合はパイプしてgr…

【Mac】rootlessとcsrutil

rootless MacではOS X 10.11(El Capitan)より、/userや/binなどのディレクトリへの書き込みがroot権限でも不可能となりました。 $ sudo mkdir /usr/hoge Password: mkdir: /usr/hoge: Operation not permitted この措置はrootlessと呼ばれるシステム整合性保…

【python】google-image-downloadでGoogle上の画像を一括取得する

google-image-download コマンドライン上で動作する画像収集用ツールです。 github.com Usage pipでインストールします。 $ pip install google_images_download これですぐ利用可能になります。 shell上で以下のコマンドを実行すると、実行ディレクトリ配下…

【AWS】AWSでGPUコンピューティング① 環境セットアップ

Usage アカウント登録 まずはAWSのアカウント登録を行います。 下記ページを参考に、AWSのアカウントを作成してください。 aws.amazon.com インスタンスの作成 GPUインスタンスの作成を行います。 AWSトップページの左上「サービス」プルダウンをクリックし…

【Java】Jacksonがパースする文字列のフィールド名にDouble Quoteがついていない状態でもパース可能にする

Jackson github.com Double-Quote問題 JacksonのObjectMapperでJSON文字列パースしてJavaオブジェクトに変換するとき、フィールド名にダブルクォートがないと怒られてしまいます。 String json = "{user_id: 1, age: 20, item_id: 2, item_name: "hoge"}"; O…

【Java】Jacksonで配列形式のJSON文字列をJavaオブジェクトに変換する

Jackson rennnosukesann.hatenablog.com 配列形式のJSON JSONのrootがオブジェクト形式ではなく配列形式の場合、ObjectMapperによるパースは以前の記事同様TypeReferenceを用いて行うことができます。 rennnosukesann.hatenablog.com rootが配列形式のJSON […

【Shell】expectでシェルの対話的処理を自動化する

expect expectは、シェル上での対話的なコマンドライン処理を自動化するためのツールです。 シェルスクリプトでルーチンを自動化したいときに対話的な処理が入ってしまって、どうしても手入力が発生してしまう・・・そんなときに重宝します。 Usage 実行環境…

【NW】PPPoE

PPPoEとは PPPoEとは、イーサネットを利用してPPPの機能を提供するプロトコルです。 イーサネットはデータリンクとして広く普及した規格です。多くのネットワーク機器やNICがこのイーサネットに準拠しています。 rennnosukesann.hatenablog.com rennnosukesa…

【NW】PPP

まえがき この記事は、4年前に投稿したPPPに関する記事のリライトになります。 rennnosukesann.hatenablog.com 結構前に書いたもので内容うろ覚えだったので、復習も兼ねて再度調査してまとめ直してみました。 上記記事にない情報も追加したので、双方参照し…

【NW】無線LAN規格IEEE802.11

IEEE802.11 IEEE802.11は、IEEEが定義した無線LANプロトコルにおける物理層・データリンク層(の一部)の規格の総称です(元祖IEEE802.11の規格名でもあります)。 IEEE802.11には規格内容によって無印/a/b/g/nなどの種類があり、それぞれ最大速度や周波など…

【python】Flaskを使ってAPIサーバを公開する

Flaskとは Flaskとは、pythonのWebフレームワークです。 軽量なWebフレームワークであり、小さく使い始めることができるのが特徴です。 公式でも"microframework"と銘打っています。 Welcome | Flask (A Python Microframework) 同じpythonのフレームワーク…

【NW】イーサネット② イーサネットのフレームフォーマット

前置き コンピュータ間で通信を行うとき、その通信はプロトコルと呼ばれる規約に沿ってデータのやり取りを行います。プロトコルの種類は多岐にわたりますが、現代ではほとんどの場合TCP/IPと呼ばれるプロトコル群の中から利用されます。とはいっても利用され…

【NW】TCP/IPに置ける通信処理 

以前の記事で、TCP/IPプロトコル・スイートについて紹介を行いました。 rennnosukesann.hatenablog.com 今回は、TCPIPのプロトコルに則ってやり取りされるデータがどのようなものなのか、どのように処理されていくのかを追ってみます。 TCP/IPプロトコルによ…

【NW】イーサネット① ケーブル規格

イーサネットとは イーサネット(Ethernet)とは、OSI基本参照モデルのデータリンク層、TCP/IPにおけるリンク層に相当する 役割を果たすコンピュータネットワークの通信規格です。隣接するホスト間の通信や、通信のための物理媒体そのものについて規定してい…

【NW】TCP/IP

TCP/IPとは TCP/IP(TCP/IPプロトコル・スイート)とは、インターネット上の通信に必要なプロトコルの寄せ集めたプロトコル群(プロトコル・スイート)の総称です。 TCP/IPでは寄せ集めたプロトコルを機能ごとに4つのグループに分類しています。また各グル…

【NW】OSI基本参照モデル

OSI基本参照モデルとは OSI基本参照モデルとは、コンピュータ通信に必要な機能を階層構造に分類したモデルです。国際標準化機構(International Organization for Standardization, 通称ISO)が策定しています。 rennnosukesann.hatenablog.com 前回の記事で…

【NW】通信プロトコル

rennnosukesann.hatenablog.com 以前(というか4年前)にPPPに関する記事を書いて以来長らくネットワーク関連の記事を書いていなかったのですが、最近TCP/IPについて再勉強し始めたので今回はプロトコルについて軽くまとめてみたいと思います。 プロトコル…

【SMTP】SMTP

SMTP SMTPとは、メール転送のための通信プロトコルです。 主にメールを管理するメールサーバーが他のメールサーバーにメールを転送するためにこのプロトコル用います。 メールサーバーとメール転送 SMTPの通信内容について説明する前に、そもそもメールがど…

【python】numpy配列の特定の条件を満たす要素のインデックスを取得する

メモ。 numpy.arrayオブジェクトの要素のうち、指定した条件を満たす要素は下記のように取得できる。 import numpy as np arr = np.array([[1,2,3],[4,5,6]]) # array([[1, 2, 3], # [4, 5, 6]]) # 特定の条件を満たす要素を取得 arr[arr > 3] # array([4, 5…

【Watson/python】IBM Watson Visual Recognitionを使って、pythonスクリプト上で画像分類を行う

IBM Watson Visual Recognition IBM Watson Visual Recognitionは、IBMが提供するDeep Learningを利用した画像認識サービスです。 www.ibm.com IBM Cloud上で利用することができ、APIやSDK経由で画像データの分類を行うことができます。 今回はpython用Watso…

【python】pipでファイル内に記述した複数モジュールを一括インストールする

メモ。 pip install -rで、ファイルに記述したモジュールを一括してインストールできる。 # インストールしたいモジュールを記述したファイル $ cat hoge.txt asn1crypto==0.23.0 bleach==1.5.0 certifi==2017.11.5 cffi==1.11.2 chardet==3.0.4 cryptograph…

【Watson】Watson Studio でMNIST手書き文字認識を行う②【モデル学習・推論】

前回までのあらすじ rennnosukesann.hatenablog.com 前回の記事では、Watson Studioのセットアップを行いました。 今回の記事では、実際にMNISTデータセットを使って手書き文字の学習とクラス分類を行います。 MNISTとは MNISTとは、パターン認識や機械学習…

【Java】Jacksonで任意形式のJSONをパースする

Jackson Jacksonについては以下の記事を参照。 rennnosukesann.hatenablog.com 多様なJSONの構造 前回の記事で、JSONをMapオブジェクトにする記事を書きました。 rennnosukesann.hatenablog.com JacksonではJSONファイルやStringオブジェクトとしてのJSONをJ…

【Java】JacksonでJson文字列をMapオブジェクトに変換する

Jackson Jacksonについてはこちら。 rennnosukesann.hatenablog.com JacksonはJavaのライブラリで、JavaオブジェクトをJSON形式にしたり、その逆のこともできます。もちろんJSONファイルへの読み書きも可能です。 JSONをMapオブジェクトに変換する Jacksonで…

【python】コマンドラインパーサclick

clickとは Welcome to the Click Documentation — Click Documentation (5.0) clickはpythonのコマンドライン解析用モジュールです。 pythonスクリプトをCLI上で実行したときに、コマンドライン引数のラベルを定義したり、ヘルプを表示するなどの機能を提供…

【python】argparserでコマンドライン引数を解析する

argparser 16.4. argparse — コマンドラインオプション、引数、サブコマンドのパーサー — Python 3.6.5 ドキュメント argparserはpython標準モジュールの一つで、pythonスクリプト実行時に受け取ったコマンドライン引数を解析するのに役立ちます。 例えば、l…