MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

SciPy 1.11.0がリリースされました


Python プログラミング - NumPy SciPy ソフトウェアプログラマー コーダー パーカー

目次

  • 目次
  • はじめに
  • Tweetまとめ
  • 参考資料
  • MyEnigma Supporters

はじめに

本日、

自分がコア開発者のメンバーとして参加している

SciPyの新しいバージョン1.11.0がリリースされました🎉

github.com

 

今回も、1.11.0の新機能や特徴を、

連続ツイートでまとめてみたので、

そちらを、あとから参照しやすいように

記事としてまとめておきます。

 

過去のバージョンの記事は下記の通りです。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む

REST APIの仕様やドキュメントをテキストベースのファイルで記述できるOpenAPI(Swagger)入門


Designing APIs with Swagger and OpenAPI

目次

  • 目次
  • はじめに
  • Open APIの特徴
    • 1. YAMLやJSONなどのテキストファイルで仕様を記述できる。
    • 2. OpenAPIの仕様データから、仕様書を自動生成できる。
    • 3. OpenAPIの仕様データから、APIのクライアントやサーバのコードを自動生成できる
  • Open APIの仕様の書き方
  • シングルHTMLファイルのAPIドキュメントを生成する
  • 参考資料
  • MyEnigma Supporters

はじめに

REST APIは、ソフトウェアのAPIの基本だと思いますが、

そのドキュメントの書き方は結構悩ましいと思います。

仕様変更すると、すぐにドキュメントとソースコードの乖離が発生しますし、

ソースコードとドキュメントを同じgit リポジトリで管理しようと思っても、

仕様書としてよく使われるWordやExcelはバイナリファイルなので、

バージョン管理がしずらいです。

 

そこで、テキストファイルであるyamlやjsonファイルを使って

REST APIの仕様を記述する標準があります。

それが、OpenAPIです。

Home - OpenAPI Initiative

madogiwa0124.hatenablog.com

以前はSwaggerというOSSのプロジェクトが使っていた仕様なので、

Swaggerと呼ばれることもあります。

 

本記事では、このOpen APIによるREST APIの仕様書作成の

特徴と仕様書作成方法などをまとめておきたいと思います。

続きを読む

Pythonでのファイルやパス操作標準ライブラリpathlib逆引きメモ


できる 仕事がはかどるPython自動処理 全部入り。 (「できる全部入り。」シリーズ)

目次

  • 目次
  • はじめに
  • パスオブジェクトの作成
  • パスの連結(join)
  • パスの存在確認やファイルかディレクトリであるかの確認
  • 絶対パスの取得
  • パスの文字列を取得
  • パスの親ディレクトリを取得
  • ファイルの様々な情報を取得
  • ファイルのデータの読み込み
  • ファイルのデータの書き込み
  • パスの一部のみを変更したパスを作る
  • パスの先のファイルの情報を取得
  • パスの先のファイルの削除
  • ディレクトリの作成
  • ディレクトリの削除
  • あるディレクトリ内のある拡張子のファイルのパスのリストを取得
  • あるディレクトリ以下のある拡張子のファイルのパスリストを再帰的に取得
  • あるディレクトリ以下の、拡張子毎の数を数える
  • 参考資料
  • MyEnigma Supporters

はじめに

Pythonでファイルやパス関連の操作するとき、

古くからos.pathモジュールが使われてきましたが、

Python3.4から導入されたpathlibモジュールは、

より自然にファイルやパス操作を実施できるライブラリです。

docs.python.org

 

os.pathモジュールでは、すべてのパスを文字列として表現するため、

コードが冗長になりやすかったですが、

pathlibでは、パスをオブジェクトとして取り扱うため

シンプルにやりたいことを実現することができます。

 

今回の記事では、

pathlibを使ったよくやるファイルやパス操作の逆引きメモを残しておきます。

 

続きを読む

各プログラミング言語における高階関数による関数型プログラミングの初歩入門


Javaによる関数型プログラミング ―Java 8ラムダ式とStream

目次

  • 目次
  • はじめに
  • 複数の条件を元にソート
    • Python
    • Java
    • Julia
  • 同じデータでグルーピングするgroupby
    • Python
    • Java
    • Julia
  • 一つのリストから、複数の要素を作り、一つのリストにまとめる (flatmap)
    • Python
    • Java
    • Julia
  • 複数の関数を繋げるチェーンラムダ
    • Java
    • Julia
  • 参考資料
  • MyEnigma Supporters

はじめに

ちゃんとした関数型プログラミングは少し敷居が高いですが、

高階関数をベースとしたシンプルなものは、使えると便利なので、

様々な言語で実装したものを、まとめておきます。

続きを読む

SciPy 1.10.0がリリースされました


Python プログラミング - NumPy SciPy ソフトウェアプログラマー コーダー パーカー

目次

  • 目次
  • はじめに
  • Tweetまとめ
  • 参考資料
  • MyEnigma Supporters

はじめに

本日、

自分がコア開発者のメンバーとして参加している

SciPyの新しいバージョン1.10.0がリリースされました🎉

github.com

 

今回も、1.10.0の新機能や特徴を、

連続ツイートでまとめてみたので、

そちらを、あとから参照しやすいように

記事としてまとめておきます。

 

過去のバージョンの記事は下記の通りです。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

  

続きを読む

Vimユーザのためのlessコマンドによるファイル閲覧入門


Unix考古学 Truth of the Legend (アスキードワンゴ)

目次

  • 目次
  • はじめに
  • lessコマンドの特徴
    • 大きなファイルの閲覧を高速にできる
    • 大抵のOSで、Unixツールの一つとして使える
    • 操作の方法がvimに似ている
  • lessの基本的な使い方
    • 基本操作系
    • 検索
    • grep
    • ログ監視
  • 参考資料
  • MyEnigma Supporters

はじめに

サイズの大きいテキストファイルや、

ログファイルを見る時に、

今までは、

$ vim -u NONE

でvimでそのファイルを開いて見ていたのですが、

vimは一度そのすべてのファイルをメモリ上に読み込んでしまうので、

サイズの大きいファイルだと、やはりつらいなと思っていました。

 

そこで、最近になって、Unixのpagerとして有名な

lessコマンドを変わりに使い始めた所、

vimユーザである自分には、かなり使いやすかったので、

便利な使い方をまとめておきたいと思います。

続きを読む

初心者のためのCython入門


Cython ―Cとの融合によるPythonの高速化

目次

  • 目次
  • はじめに
  • Cythonとは?
  • 言語としてのcython
  • cythonの使い方
    • cythonコードのビルドフロー
  • pydファイル
  • Cythonの基本的な使い方
    • 関数の引数や返値に型を付ける
    • 変数に型を付ける
    • C/C++のvectorを使う
    • 配列の境界チェックや負のインデックスアクセスをオフにして高速化する
    • 並列処理をする
  • Cythonの注意点
  • 参考資料
  • MyEnigma Supporters

はじめに

Pythonは、非常に沢山のライブラリが存在し、

プログラミング初心者でも簡単にコードを書くことができることから、

非常に利用が広がっていますが、

処理速度が遅いという欠点があります。

 

この問題を解決する方法の一つとして、

処理のボトルネックになっている部分を、

C言語などのコンパイル言語を使うことで、

高速化する方法がありますが、

そのように、既存のC言語のコードとPythonを連携させたり、

Pythonのコードに少し型情報などを追加することで、

高速化することができるのが、Cythonです。

cython.org

 

今回の記事では、Cythonの概要と簡単な使い方を紹介したいと思います。

続きを読む

PythonからbitlyのWebAPIを使って、URLを短縮する


Web APIの設計

目次

  • 目次
  • はじめに
  • Pythonサンプルコード
  • 参考資料
  • MyEnigma Supporters

はじめに

このあたりの資料を見れば、すぐに作れますが、

関数化しておくと、何かと便利なので、こちらも貼っておきます。

 

bitlyのアカウントを作って、

下記のリンクでトークンを作り、

app.bitly.com

下記の関数を、トークンと短縮したいURLで呼ぶだけです。

 

続きを読む