MyEnigma

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

JuliaのREPLを使った開発フロー


Juliaプログラミングクックブック ―言語仕様からデータ分析、機械学習、数値計算まで

目次

  • 目次
  • はじめに
  • REPL実行と終了
  • Julia REPLのモード
    • 1. Juliaモード
    • 2. helpモード
    • 3. Shell モード
    • 4. Searchモード
    • 5. Pkgモード
  • REPLで開発する時に便利なツール
    • OhMyREPL.jl
    • Revise.jl
    • workspace()関数
  • GitHub上のJuliaパッケージを開発する方法
    • テストを実行する
    • パッケージを公開する
    • パッケージ開発の資料
  • 参考資料
  • MyEnigma Supporters

はじめに

以前、プログラミング言語Juliaを紹介しましたが、

myenigma.hatenablog.com

JuliaにはREPL(read-eval-print loop)と呼ばれる対話的実行環境があり、

今回はこちらをもちいた開発の方法について説明したいと思います。

 

続きを読む

スタンフォード大学の学生が学ぶ最小二乗法データフィッティング

目次

  • 目次
  • はじめに
  • 最小二乗法による多項式データフィッティング
  • ファイナンスでの線形回帰の使い方
  • Seasonal Fitting
  • Auto regressive fitting
  • データフィッテングの三箇条
  • 最小二乗分類
  • Confusion matrix (混合行列)
  • 最小二乗分類器
  • GItHubリポジトリ
  • 参考資料
  • MyEnigma Supporters

 

はじめに

スタンフォード大学には

機械学習を学ぶ上での第一歩として、

Introduction to Matrix Methods (EE103)という授業があります。

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

読んだ際の技術メモです。

 

この教科書は下記のリンクのページから

pdfをダウンロードすることができます。

 

本記事では、

上記の教科書の最小二乗法によるデータフィッティングの部分のみのメモです。

他の部分に関しては、下記の記事を参照下さい。

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む

意外と知られていない便利なショートカットメモ

目次

  • 目次
  • はじめに
  • Mac全般
  • Windows10 全般
  • Office全般
  • Powerpoint
    • 編集時
    • プレゼン時
  • Excel
  • Chrome
  • Vim
  • Jetbrains IDE
  • bash
  • 参考資料
  • MyEnigma Supporters

はじめに

意外と知られていない便利なショートカットメモです。

続きを読む

スタンフォード大学の学生が学ぶ最小二乗法入門

 

目次

  • 目次
  • はじめに
  • 最小二乗法
  • Juliaにおける最小二乗法の解き方
  • 最小二乗法の応用例1: 広告の投資最適化
  • 最小二乗法の応用例2:ライトの光量の制御
  • 多目的関数における最小二乗法
    • Tikhonovの正規化による最小二乗法
    • 多目的関数最小二乗法による時系列データフィッテング
    • 画像のボケ除去
    • CTスキャンの断面復元
    • 多目関数によるオーバーフィッティング防止
  • GItHubリポジトリ
  • 参考資料
  • MyEnigma Supporters

 

はじめに

スタンフォード大学には

機械学習を学ぶ上での第一歩として、

Introduction to Matrix Methods (EE103)という授業があります。

 

今回の記事では、

この授業の教科書である

Introduction to Applied Linear Algebraを

読んだ際の技術メモです。

 

この教科書は下記のリンクのページから

pdfをダウンロードすることができます。

 

本記事では、

上記の教科書の最小二乗法の部分のみのメモです。

他の部分に関しては、下記の記事を参照下さい。

myenigma.hatenablog.com

myenigma.hatenablog.com

 

続きを読む

各プログラミング言語におけるシンプルなJSONサーバ・JSONクライアントの作り方

目次

  • 目次
  • はじめに
  • Python
    • Server
    • Client
  • Julia
    • Server
    • Client
  • C++
    • Client
    • Server
  • curl
    • Client
  • 参考資料
  • MyEnigma Supporters

はじめに

最近、様々な言語で作られたツールを連携するのに、

JSONファイルを使っているのですが、

myenigma.hatenablog.com

今回は、

そのJSONファイルを様々なプログラミング言語でやり取りするための

シンプルなJSONサーバ・JSONクライアントのコードを紹介したいと思います。

 

今回のサンプルコードでは、

基本的にクライアントがJSONファイルをHTTP経由で送信し、

そのサーバがそのJSONファイルを元に、

JSONファイルを返信するという用途でサンプルコードを作成します。

 

紹介するコードはすべて下記のリポジトリで公開しています。

github.com

順次、対応言語も増やしていく予定です。

 

続きを読む

ソフトウェアエンジニアが個人の書斎を作るために揃えたもの

f:id:meison_amsl:20220402144904j:plain

目次

  • 目次
  • はじめに
  • 椅子
  • ディスプレイ
  • コンピュータ
  • ノートパソコンスタンド
  • L字のUSB-C延長ケーブル
  • キーボード
  • マウス
  • USB-Cハブ
  • ヘッドホンとヘッドホン
  • 充電用USBハブ
  • スマートリモコン
  • 今後買い揃えたいもの
  • 参考資料
  • MyEnigma Supporters

はじめに

新しい家に引っ越して、

小さな書斎的なものをお安く作ったので、

その時に揃えたものをまとめておきます。

2022/04/02: 更新

続きを読む

かっこいいグラフを作るPythonモジュールPyCoolPlotを作った

目次

  • 目次
  • はじめに
  • PyCoolPlot
  • 必要なもの
  • ダウンロードの仕方
  • 使い方
    • Horizontal bar plot
    • Line graph
    • Time bar chart
  • 参考資料
  • MyEnigma Supporters

はじめに

いつもグラフを書く時にデザインに迷うのですが、

下記の記事を見て、すぐにmaplotlibで実装したくなりました。

note.mu

しかし、

もたもたしているうちに先を越されてしまったのですが、

もう少し簡単に上記のデザインルールに従ったグラフを書きたいと思い、

OSSとしてPythonモジュールPyCoolPlotを作りました。

github.com

今回はこちらを紹介したいと思います。

続きを読む

Python製のマルチプラットフォームJSONファイルビューワーPyJSONViewerを作った

https://github.com/AtsushiSakai/PyJSONViewer/blob/master/img/mac.png?raw=true

目次

  • 目次
  • はじめに
  • PyJSONViewer
  • ダウンロード
  • 使い方
    • CUIでJSONファイルを指定する
    • GUIでJSONファイルを指定する。
  • おすすめ設定
    • bashのエイリアスを設定する
    • VimからPyJSONViewerを開く設定
  • 参考資料
  • MyEnigma Supporters

はじめに

最近、

複雑なシミュレーションのログデータや、

複数のプログラミング言語を使ったシステムの

データの受け渡し方法としてJSONファイルを使っています。

 

JSONはTree状のデータ構造を構築することができるので、

シミュレーションの設定データから、

シミュレーションの結果などを

まとめて一つのファイルとしてまとめることができるので、

非常に便利です。

 

また、ほとんどの言語でJSONのパーサは

デフォルトAPIやライブラリとして、

提供されているので、各言語でいちいちファイルデータ解釈用の

パーサを書かなくていいのは非常に便利です。

myenigma.hatenablog.com

 

しかし、一つ不満だったのが、

JSONファイルの中身を少し確認したい時の

ビューワーがあまり良いものが見つかりませんでした。

 

はじめは下記のChrome extensionのJSON viewerを使っていたのですが、

chrome.google.com

大きいjsonファイルを読み込もうとすると、

すぐにフリーズしてしまいました。

 

下記のJ and Eというフリーソフトは、

大きなJSONファイルもツリー状に可視化でき、

非常に軽快に動作するのですが、

残念ながらWindowsのみで利用可能で、

MacやLinuxも併用する自分には、

完璧ではありませんでした。

 

その他にも、良さそうなJSONビューワーソフトはありましたが、

ほとんどは有償ソフトウェアでした。

 

そこで、今回、

Python製のマルチプラットフォームJSONファイルビューワーである

PyJSONViewerをOSSとして自作し、GitHubに公開したので、

紹介したいと思います。

github.com

 

続きを読む

ソフトバンク光でインターネットを高速にしたい時に気をつけるべきこと

目次

  • 目次
  • はじめに
  • オプションの光BBユニットは解約せずにそのまま使う。
  • ルータを最新のものにする。
  • キャンペーンを見逃さない
  • 利用開始から5ヶ月後の感想
  • 参考資料
  • MyEnigma Supporters

はじめに

今回、

新しくインターネットの回線を

ソフトバンク光にしたのですが、

色々と苦労した結果、

なんとか、夜でも下り300Mbps, 上り150Mbpsの

満足いくインターネット環境を構築することが出来ました。

その時に気をつけたことをメモしておきます。

 

続きを読む

Juliaで競技プログラミングやるときによく書くコードをまとめてみた

目次

  • 目次
  • はじめに
  • 1. 基本的な入出力
  • 2. 数値への変換
  • 3. 空白で分割
  • 4. 空白で分割しつつ数値に変換
  • 5. 特定の条件のデータを数える
  • 6. 複数行をまとめて読み込む
  • 7. 二重のリストの行列を入れ替える
  • 8. 二重のリストをフラットにする
  • 9. 連結と繰り返し
  • 10. 要素の存在確認
  • 11. 削除
  • 12. ソート
  • 13. マイナス値のインデックス
  • 14. 部分リストの取り出し(スライス)
  • 15. シャローコピーとディープコピー
  • 16. 和集合と積集合
  • 17. 文字列における、連結と繰り返し、存在確認
  • 18. 文字列の置換
  • 19. 文字列の反転
  • 20. 文字列定数
  • 21. 正規表現
  • 22. 累積和
  • 23. dropwhileとtakewhile
  • 24. groupby
  • 25. for文のelse
  • 26. 2進数や16進数
  • 27. 順列数と組み合わせ数
  • 28. メモ化
  • 29. stdinをファイルに置き換える
  • 参考資料
  • MyEnigma Supporters

はじめに

下記の記事が非常に勉強になったので、

Juliaで同じことを実現する方法を調べてみました。

https://qiita.com/y-tsutsu/items/aa7e8e809d6ac167d6a1qiita.com

(競技プロはやったことないのですが。。。)

すべてのコードは下記のリポジトリでも公開しています。

github.com

 

続きを読む