100day’s blog

思いついた事や、プログラミングの毎日の作業工程を短めにまとめてます。

2021年 みんながRustを騒ぐ理由が気になって、Rustを初めてみる、その1

普段、基本Webサイト制作や社内システムを作っている。

最近まわりの人間がやってみたい言語としてRustを上げるようになってきた。

2年ぐらい前まではgoがやってみたいという言葉を多く聞いたが、最近はもっぱらRustだ。

 

Why?・・・

 

色々調べて、シンプルな理由としては「 プログラムの実行スピード 」と「 安全性 」にあると言えるようだ。 メモリ操作が出来る言語は実行スピードが早い分、バグやエラーを引き起こす問題を含んでいるが、そこらへんを良しなにやってくれて、安全性が高い。

 

専門的な概要は下記の開発者たちの意見が参考になる。

 

「Rust」はなぜ人気があるのか、Stack Overflowがユーザーのコメントを紹介:「最も愛されている言語」ランキングで5年連続首位の背景とは - @IT

 

という事で、なんだかんだ初めてみようと思う。

 

www.rust-lang.org

 

とりあえず入り口のドキュメントは日本語で読めるようだ。(他はまあ、英語だが・・)

 

MacVS CODEで環境設定をすれば、すぐにプログラムは始められる。

 

cargoというのがプログラムのパッケージ管理からRUNまで担当してくれる。

ちょうどnpmやyarnなどと同じだ。

 

フェリストというカニさんを表示するライブラリを読み込んで表示させるあたり、Rustの敷居を下げようという遊び心を感じる。

 

f:id:gpstandard:20211031102329p:plain

↑こいつ

 

しかし、この後の 「 もっと学ぼう 」からはいきなり英語になる。

特段抵抗があるわけではないが、有志の日本語訳を探してみる。

 

doc.rust-jp.rs

 

どこまでカバーしてるか不明だが、ある程度同じ目次、レイアウト構成で翻訳をしてくれている。

 

ある程度見てみて、io入出力部分とか、極力コード量を少なくプログラミングができそうな所とかを見てると必用な時にドキュメントを見る形式で行けそうな感じだった。

これは何かしらのフレームワークと進めていっても良さそうだ。

 

zenn.dev

こちらを見てると一通りウェブでRustを利用する場合の概要が把握出来る。

何を作るかも含めて、一旦考えていこうと思う。

 

 

 

vs codeにビルトインサーバーでxdebugを動かす。xdebug working on build in server

xamp pattern が多かったのでメモ。

 

If you need working by xdebug on build in server.

Use setting.js and launch.js with VS CODE

Attention please to check port in launch.js that is set build in server port.

Xdebug port and build in server port is not equal.

 

注意すべきはvs codeのlaunch.jsonに記載するビルドインサーバーのポートとxdebugのポートは別という点。

続きを読む

初見殺し・・YAMAHAのRTX-1210などのルータ設定やコマンド、コンフィグに四苦八苦する その1

普段エンジニアとして作業していているが、ネットワークエンジニアとしてのスキルがそこまで高いわけではない。

それなのにネットワーク関連の設定をしなければいけない事があるそこの貴方・・・

 

今どきのルータの設定なんてGUIでほとんどやるのに、コマンドでPPなど設定するハメになると、非常に萎えます。

 

でもそんな事言っていても始まらないので、設定勉強がてら色々見ていく事に。

 

ちなみに私のレベルは

 

http://www.rtpro.yamaha.co.jp/RT/docs/pdf/console-20031015.pdf

こちらの資料を見て

f:id:gpstandard:20190226220232p:plain

 

へー no をつければ設定削除できるんだ!!と今気づいたレベルです。

このマニュアル自体はRTX-1000の物ですが、自分が見ていたRTX-1210ものに比べるとグラフィカルでわかりやすい・・・・

 

 

さてさてRTX-1210のマニュアル

http://www.rtpro.yamaha.co.jp/RT/manual/rtx1210/Users.pdf

何でしょうかね・・・会社でこのマニュアル見るまでに色々と抵抗感があったのですが、家で見てるとすっと頭に入ってくる・・・・

 

tftpでつないでconfigファイルを落とす所でこけてたのですが、よくよく見るとマニュアルの中に色々記載してあるじゃないですか。

※マニュアルのP43

 

とりあえずこれを持って明日会社で確認ですね。

ルータの設定してプログラミングの力が上がるわけじゃないですが・・・まあこれも脳トレぐらいに考えて頑張ってみます。

 

 

 

 

 

 

職場がいきなりdjangoの方の為の 資料収集、 公式、チュートリアル等チェックなどなど

仕事でdjango・・・で焦る

ここ数日、仕事でdjangoのプロジェクトにかかわる事に。

Pythondjangoもまだまだ中途半端にしか理解しておらず、juliaやらElixirやらに目が向かっていた為、「もう少しやっとけば良かった・・・」と焦ってます。

 

自分の現状のdjangoレベルは・・・

- python自体のドキュメントは一通り目を通している。

- djangoチュートリアルでherokuへデプロイまでで終わっている。

このぐらいの状態です。

何なら、まあRailsと同じかなーって若干舐めていた節もあります(汗

 

とりあえず情報整理を始める。

今回Pyhton3.6,Django2.1が対象

 

1 公式

The Web framework for perfectionists with deadlines | Django

 

2 公式内の日本語ドキュメント

Django ドキュメント | Django documentation | Django

実際、上記のドキュメントで良いのですが、かなり詳細なインデックスになってしまっています。

 

親切な事にドキュメントの利用方法についてチュートリアル終了後に

次のステップへ | Django documentation | Django

で、色々と解説してくれています。

さあ、ここにきたあなたは、入門編 をあらかた読み終えて、 Django を使い続ける決心をしたことだと思います。入門編では、Django のほんの表面的な部分に触れただけにすぎません (実際、入門編の分量は、全体のドキュメントの 5% にも満たないのです)。

 

なので大きく概要を見るのであればこちら側が良いかもしれません。

Django を使う | Django documentation | Django

 

 

他のドキュメントやチュートリアル、トピックスなどを調べる前に・・・

だいたいの公式に目を通し他の情報も入れていくのですが、その前に

 

現状使おうとしている言語やフレームワークのリリース日のチェックは必須です。

Django 2.1 released | Weblog | Django

Django 2.1 リリースノート | Django documentation | Django

理由としては、仕様変更などにより、ネット上の情報が既に使えなくなってる可能性があったり、改変が必要だったりするからです。

 

2.1のリリースが比較的最近のようです。(2018.8)

マイナーアップデートは続いてるのでリリースノートのチェックも。

リリースノート | Django documentation | Django

 

で、他のドキュメント

はじめに · Django Girls Tutorial

2018.10.15時点では2.0.6系で記載されていますが、平たく読みやすいかもしれません。

 

正直、公式ドキュメントでピンとこなければ、googleで検索を1年以内に絞って調べていけば後はたいていなんとかなります。

 

あと理想的なのはサンプルコードあれば。

pythoncmsの中でもdjangoで作られたdjango-cms

GitHub - divio/django-cms: The easy-to-use and developer-friendly CMS

 

サンプル名簿アプリ

[Python] Djangoチュートリアル - 汎用業務Webアプリを最速で作る

 

番外

Python and Django tutorial in Visual Studio Code

vs codeの設定例も含めたチュートリアル。親切

 

やっと準備が出来ました。

一旦これで一通り準備ができました。正直django自体ドキュメントが非常に出来が良いので、それだけでもいいですが、なるべく早く情報を整理するには書き方の違うドキュメント類やソースコードに目を通すのが一番です。

 

幸い、仕事のプロジェクト自体はメインは別の方が担当なので、後追いしながら進めていける分気は楽です。

でも、しばらくはpython,djangoも見ていく必要がありそうです。

あと、何気にフロントがreactですが・・・(汗

 

 

 

 

 

 

 

 

 

HerokuにElixir + Phoenixをデプロイしてみる。一旦起動まで行くが、bullpackで一部問題ありのまま後日へ。

前回に続き、今回はHerokuにサンプルアプリをデプロイする所までチャレンジです。

公式ドキュメント通りでほぼ行けるとの事なので・・・・

Deploying on Heroku – Phoenix v1.3.4

こちらを参考に進めていきます。

 

1 プロジェクト作成 

Phoenixのプロジェクト自体はこちらをまたお世話になります。

Excelから関数型言語マスター3回目:WebにDBデータ表示【PostgreSQL or MySQL編】

 

前回mysqlで進めてしまったので

DockerでPostgreSQL環境を構築する(更新: 2017/6/20)

こちらを参考にしてDockerでPostgresSQLを構築

f:id:gpstandard:20181009232529p:plain

無事コンテナが立ち上がったので

 

user_id: root

password : test

port番号5432で

 

config/dev.exsに記入

 

# Configure your database
config :test_db, TestDb.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "test",
database: "test_db_dev",

port: "5432"
hostname: "localhost",
pool_size: 10

これをベースに

$ mix ect.create

ちなみにこのport:はEctoのドキュメントで発見、まあ文字通りですが。

Ecto.Adapters.Postgres – Ecto v2.2.11

 

一旦これでPhoenixの基本的な画面は立ち上がる

 

$ iex -S mix phx.server

なので

herokuに上げてみる事に

 

2 Herokにデプロイ準備

Deploying on Heroku – Phoenix v1.3.4

Phoenix Production デプロイへの道その2:Heroku編

を見ながら自分のプロジェクトに合わせ保管しながら進めます。

 

古いドキュメントだとphxの表記じゃないとありましたが、そこらへんは公式も修正されているようです。

 

ところがnodeでこける

-----> Installing binaries
Resolving node version 6.9.2...
Downloading and installing node 6.9.2...
       Installing Node 6.9.2...
       Using default npm version
 
-----> Building dependencies
       Installing and caching node modules
/app/tmp/buildpacks/abc8fb9e8be131ec2574c4ba9e31b81540d97b3bbce47d96e05959c4f81404ac71605dd35ebbcf7a1abe958c346d8ee266ff035de9254424eb54e8b9480059be/lib/build.sh: line 113: cd: /tmp/build_a02ddee6b6ef8bb769fd0f01616a3612/./assets: No such file or directory
 !     Push rejected, failed to compile Phoenix app.

 

理由はよくわからんがbullpackとnodeの問題か・・・?

https://elixirforum.com/t/heroku-deploy-issues-with-phoenix-1-3/5710/15

を参考にbullpackの一部を一旦消去

f:id:gpstandard:20181010004934p:plain

一旦static-buildpackを外して再度

$ git push heroku master

無事起動

f:id:gpstandard:20181010005032p:plain

うーん。この部分は何かドキュメントの読み違いがあるのか・・・・

後日原因さぐります。

 

 

 

 

 

 

 

 

初学の為のScala公式サイトの探訪。 ScalaFiddleやチートシート、Gitterコミュニティなどなどチェック。

初めて学習するサイトが英語だと萎える方でしたが、最近はだいぶ慣れてきました。

ほとんどのプログラミング言語が海外発祥なので、英語はいたしかたがないですね。

 

ただ、日本語で情報を集めきろうとすると情報が古かったりもするので、一度は公式サイトを済から済までみておいた方がいいです。

 

f:id:gpstandard:20181003223825p:plain

The Scala Programming Language

 

さっそく、見ていきます。

 

まず押さえるべきはドキュメント

f:id:gpstandard:20181005074126p:plain

大半の目的がここに集約されると言ってもいいドキュメントです。

言語の全体像を掴むならここを一通り流し読みしてしておきたい所。

 

リファレンスはともかく、いいなあと思ったのは下記の3つ

 

ブラウザでScala 

f:id:gpstandard:20181005210200p:plain

https://scalafiddle.io/

 

オンラインリソースにあるScala Exercies

www.scala-exercises.org

 

チートシート

これはいいですね。

Scalacheat | Scala Documentation

 

 

 

あとは

ライブラリScaladex

f:id:gpstandard:20181005211724p:plain

Scaladex

 

色んなライブラリがあって、Scalaで何作ろうwという楽しい気分になりますね。

 

また、Gitter(Githubと連携するSNS)も

f:id:gpstandard:20181005212059p:plain

gitter.im

ツイッター好きですが、Gitterもなかなかw

f:id:gpstandard:20181005212159p:plain

英語が出来るとパラダイスですね。

 

やはり公式サイトはもりだくさん

今でこそ、公式サイトをちゃんとチェックしますが、最初の頃はどうしてもチュートリアルだけで終わってたりする事もありました。

しかし、今はなるべく早い段階で公式サイトの構成や内容を流し読みするようにしています。

そうする事で、色んな事に早めに気づき言語習得の助けになると思います。

 

 

残念なおまけ

日本でも数年前に派手にもりあがった時期がありました。その時に作られたScalaユーザーグループがあります。

jp.scala-users.org

本家のサイトでは2.12.7が2018年にリリースされていますが、日本語サイトは2015年で更新がストップしてる感じです。

f:id:gpstandard:20181005213320p:plain

 言語の移り変わりの栄枯盛衰を感じますね・・・・

 

 

Elixir + Phoenix のExcelで出来る事をやろう的なチュートリアル第3回〜5回まで。次 CRUDやりたいの準備

とりあえず前回に続き

piacere_ex - Qiita さんのElixir + Phoenixを実践。

第3回〜第5回までで、この組み合わせの触り部分の雰囲気はつかめます。

 

どこか詰まる所があればと思ったのですが、DB作成部分さえ慣れてればスムーズに行きます。

あと、第1,2回と別のPhoenixアプリとなるので、前回までのプロジェクトは別に作成という点は注意。

 

さっそく第3回から

qiita.com

 

まずは・・・

DBに・・・つないでなんぼ、システムです。

 

ここは個人で色々ですが、DBはとりあえず入ってるdockerのやつを流用します。

f:id:gpstandard:20181004222151p:plain

 どうでもいいけど、MovableType用に起動したコンテナが4週間も立ち上げっぱなしでした・・・・(汗

 

最初はDB周りの設定と思いっきりMySql内でSQL文を回す作業です。

これ、Laravelみたいなmigrationやseedもあるんでしょうけどまあ、最初はこれで。

 

あとは第1,2回の消化試合。

 

そして第4回に

qiita.com

f:id:gpstandard:20181004230631p:plain

ほうほう、こういう事が・・・

ここだけのコードを見るとhtmlテンプレートの部分だけである程度遊べるますね・・・・w

 

でサクッと終了。

 

そして第5回

qiita.com

 

なるほど・・・

jsとの組み合わせ方もわかりやすいですね。

昔、JavaのSpringをやってた記憶からするとかなり、ここまでは手軽です。

Javaに比べたらScalaの生産性はちがうわな・・・という所感でした。

 

ここまでで完全なCRUDチュートリアルのようなパターンでは無いですが、ElixirにおけるPhoenixの一部が見えてきました。

 

 

となると当然

 

書き込み、削除を含めたCRUDチュートリアルが欲しくなりますね。

次回は

ここらへんをやるか・・・

 

ジェネレーター一発・・・・

qiita.com

でも、これだとファイル構成とかも身につかないかもで

ここらへんも・・

qiita.com

 

あと、手元だけで動かしてもしょうがないので、herokuにドーン。

 

Procfileとかの設定の変更とかで時間つぶすのもあれなので、なるべく最新そうなチュートリアルを選別

 

mysql有料でしたよね・・・・

qiita.com

 

qiita.com

謂わく、公式ドキュメント通りほぼいけるらしいので

Deploying on Heroku – Phoenix v1.3.4

こちらも参考に準備

 

続きはまた次回。