matplotlib の missing from current font エラーの文字化けを解決する
matplotlibで文字化けする
以下のようなエラーが出る。
missing from current font
日本語フォントをインストール
IPAexフォントをインストールする。
$ sudo apt install fonts-ipaexfont
matplotlibの設定を変更する
matplotlibrcの場所は以下で分かる。
import matplotlib print(matplotlib.matplotlib_fname())
250行目くらいにある、#font.family : sans-serif」を「font.family : IPAexGothic」に変更する。
$ sudo vim ~/~~/matplotlibrc
キャッシュを消す
rm ~/.cache/matplotlib/fontlist-v330.json
これで上手く行く。
参考
raspberry pi にTA-Libをインストールする
pip install Ta-Libだけではインストールに失敗する
TA-Libに関しては、そのままpipでインストールをすることが出来ない。 インターネットの多くの記事で紹介されている、OSにインストールする方法を試したのだが、少し詰まった箇所があったため防備録にまとめる。
TA-Libインストール方法
osにインストールする
まず初めにosにTA-Libをインストールするため、ファイルをダウンロードし解凍する。
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz tar -xzf ta-lib-0.4.0-src.tar.gz cd ta-lib
その後すぐに$ ./configure --prefix=/usr
を実行すると以下のエラーが出てインストールされない。
This script, last modified 2006-07-02, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess and http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run (./config.guess) is already up to date, please send the following data and any information you think might be pertinent to <config-patches@gnu.org> in order to provide the needed information to handle your system. config.guess timestamp = 2006-07-02
ホームページからコピーしてきて、config.guess, config.subを更新してやると上手く行く。
./config.guess ./configure --prefix=/usr make sudo make install
pip installする
$ pip install TA-Lib
を行なうと以下のエラーが出る。
ImportError: IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! Importing the numpy C-extensions failed. This error can happen for many reasons, often due to issues with your setup or how NumPy was installed. We have compiled some common reasons and troubleshooting tips at: https://numpy.org/devdocs/user/troubleshooting-importerror.html Please note and check the following: * The Python version is: Python3.9 from "/usr/bin/python3" * The NumPy version is: "1.24.2" and make sure that they are the versions you expect. Please carefully study the documentation linked above for further help. Original error was: libcblas.so.3: cannot open shared object file: No such file or directory ----------------------------------------
libcblas.so.3に関するパッケージをインストールすれば良い
sudo apt-get install libatlas-base-dev pip install TA-Lib
参考
fatal: refusing to merge unrelated histories でエラーになる
git remote add origin URL 後にgit pull をするとエラー
異なるtreeをくっつけようとしているため、エラーになっている。 今回は、githubにあるrepositoryとローカルのrepositoryをつなげようとしているので仕方のないエラーである。
解決策
--allow-unrelated-histories
オプションを付けると良い。
$ git pull origin main --allow-unrelated-histories
で上手く行く。
参考
[Git] マージしようとするとrefusing to merge unrelated historiesが出たときの対処方法 | DevelopersIO
DB設計とSQL学習まとめ
プログラマーになったは良いもののSQLも何にも分からない
情報系学部で一通り学んだのだが、いざ実務のデータベース周りのコードを読むとチンプンカンプンであった。なぜこの対応をしているのか、ER図、ツリー構造等、知らなければいけないことが沢山あると実感した。
DB設計をゼロから学び直したので、そのロードマップを残しておく。
絶対に読んだほうが良い
スッキリわかるSQL入門
スッキリわかるSQL入門 第2版 ドリル222問付き! スッキリわかる入門シリーズ | 中山清喬, 飯田理恵子 | 工学 | Kindleストア | Amazon
初学者がSQLを学ぶのに最適な本である。解説も図解も丁寧であり、読み切ると一通りSQLの書き方は学習できる。
達人に学ぶDB設計 徹底指南書
達人に学ぶDB設計 徹底指南書 | ミック | 工学 | Kindleストア | Amazon
実際にDBの設計をしていく上で必要な正規化やよくある設計パターンを学ぶことができる。 ツリー構造に対応するテーブル設計の比較はためになった。しかし、注意として、閉包テーブルについては紹介されていないので、後述のSQLアンチパターンで学ぶと良い。
SQLアンチパターン
SQLアンチパターン: Bill Karwin, 和田 卓人, 和田 省二, 児島 修 + 配送料無料
DB設計での実際によくあるアンチパターン、失敗例をたくさん学ぶことが出来る。アンチパターンがなぜだめなのか、またそれを使用しても良い特例はいつか、具体的な対策方法まで盛りだくさんである。
余裕があればおすすめ
達人に学ぶSQL徹底指南書
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ | ミック | コンピュータ・IT | Kindleストア | Amazon
SQLの色々な実例を、コードを用いて分かりやすく解説してくれている。後半では「達人に学ぶDB設計」とよく似たDB設計について話している。
一番ためになったのは、NULLの取扱いとSQLの挙動についてであった。 プログラマーとしては、DB設計の機会よりもSQLを書く機会の方が多いため、実務にすぐ活かせると思ったからである。
一通り学習を終えて
結構分量も多かったし、正直すべて理解できてはいない。しかし、基本的な知識を仕入れることは出来た。また実務を進めるなかで引っかかることがあれば、学習し直すくらいで良いだろう。 頑張って学んでいきたい。
最近知った面白いWeb3.0の情報まとめた
Astar Network
Swanky
astar networkが作成した、dapps作成のためのSDKである。 特徴として、rustによってWASMで動作するdappsを作ることが出来る。現在はsolidityとEVMが主流だが、今後はWASMが来ると言われているので学んでおいて損はないだろう。
Definity
ICP
internetcomputer.org 最近新たにローンチされたブロックチェーンである。 Web2の主流アプリのweb3版が多く作成されている。実用に耐えうるアプリも普通にあり、アプリ利用者の目線からすると非常に魅力的である。
Dmail
dmail.ai web3版Gmailである。将来、メールアドレスで契約の支払いをする機会が来るかもしれない。早いうちにメールアドレスを取得しておくのも良いかもしれない。 ICP上で動いている。
ENS
ens.domains DNSのweb3版である。
fleek
AWSのweb3版、ホスティングサービスである。有名な分散型ハイパーメディアプロトコルであるipfs, ICをサポートしている。 個人的にICの方が勢いが良い、かつ今後の先行きが良いので、サポートしているのはありがたい。
自動補完つきエディターまとめ
フロントエンド側
エディター
- ブラウザ側でユーザの入力を受け付けたりする
TSで作ろう。
- 補完機能は
- 各言語に用意されているLanguage Server
- ↓
- Language Server Protocol LSPでLSに接続
- ↓
- エディターがLSPに接続して補完
使い方
GitHub - NipunaMarcus/web-editor
javascript - Get the value of Monaco Editor - Stack Overflow
react sugguest
LSP
language server protocol といって、エディターと補完機能とかの通信を行なうためのプロトコル。ココに接続するだけでエディターは言語の機能を使える。
monaco用LSP
GitHub - TypeFox/monaco-languageclient: NPM module to connect Monaco editor with language servers
バックエンド側
LS
language server といって、言語の補完とかをLSPに伝えるためのサーバ。
Goで作ろう。
解析手順
- 字句解析を行って、文字列、数値、予約後、関数、コメントとかタグ付けする
- 構文解析を行ってASTでデータ構造を作る
字句解析
構文解析
なんか全部できそうなやつ
ReactDOM.createRoot does not support
ReactDOM.createRootでエラーになる
ここで議論してた。
解決方法
import * as ReactDOM from 'react-dom/client'; ~~~~ const rootElement = document.getElementById("root"); const root = ReactDOM.createRoot(rootElement!);
tsconfig.json で入力が見つかりませんでした
上記記事が参考になった 結果、放置で。