週刊とっしーぱんち

昭和生まれのブロガーが綴る、全力脱力系雑記帳

はてなブログ記事をMarkdown形式でバックアップする

Markdown形式で書いていたブログたち。はてなブログさんの機能を使って一度エクスポートするとこの書式が失われてしまったので、復元する方法を模索。こんなやり方で実現できました。

  • はてなブログAPIを使って記事一覧取得
  • 記事データの中から、記事本体を取得
  • 記事本体だけをファイルに保存

こんな感じ。プログラミングスキルが必要な感じではありますが。少ない記事数だと手動でコピペでコツコツできますが、この方式だと一度作ってしまえば記事数がたくさんあっても、ブログが複数あっても一度に処理できるので楽ちんであります。

趣味で推しているRubyで作ったわけですが、PythonやJavaScriptでもお好きなもので。たぶんあまり需要ないと思いますので、細かいやり方は省きますが、もし気になる方いらしたらコメントやらブックマークコメントで反応いただければ。

解説編はやソースコードはご要望に応じて別途記事にしたいと思います。

さて、そんなわけで無事にMarkdown形式で記事の保存もできたので、ひとまずはてなブログの整理はひと段落。移行するのか統合するのかってところはまだ決めかねているのですが、移行する場合はブログを書くというか、半生成するような記事が書きたいなあと。

といってもAIによる記事の生成ではなくて、もっと自分の書き方に特化していく感じというか。逆にやらないことは潔くカットしていくような。これ以前も書いたかもしれないけども。道具作りに偏らず、アウトプットすることに集中するように整えていきたいなあ。

その辺の進捗はまたの機会にでも。ひとまずはてなブログ整理は、今回の作業一旦区切りとしたいと思います。
では、また!

趣味は手段と目的が逆転しても楽しい

こんにちはー。

Amazonアソシエイトさんの審査を通ったけど、このまま使い続けることができる以外に何か変化があるのかな?と調べてみたら、Product Advertising API なるものが使用できるようになるみたいです。Amazon商品検索がプログラムから行えるようになるって感じですね。略してPA-APIといいます。


ちなみにこちらはPPAPです。


www.youtube.com


では、早速歌ってみよう!じゃなくて使ってみよう!ということで、解説ページをのぞいてみると、事件です。


このPA-APIというものを使う為には、Amazonさんが提供してくれているSDKというものを利用することで、素早く簡単にプログラミングすることができるのですが、対応しているプログラミング言語を見てみるとあら大変。


  • Java
  • Node.js(JavaScript)
  • Python
  • PHP


Rubyがないの!見たの!あたし見ましたのよ!と家政婦のあの方が飛び出してきちゃいそうなラインナップではないですか!?

めちゃくちゃ急いでいたら他の言語から使っちゃう方が早い説ありますが、そんなことでめげてはいけません。


なければ作ればいいじゃない!


ということで、Rubyから使えるようにただいま実装中です。そうです、これが手段と目的の逆転現象です。

しかも、試しに動作させてみたけどエラーになってしまって悪戦苦闘中です。なんなら、他の言語による実装を見たり、仕様を確認しながら問題箇所をちょこちょこ直しています。


ていうか、他の言語の実装見てるなら、そっちで実装すればいいじゃん!


という至極まっとうな事実にはもはや目を背けています。しかも、実装を進めてみるうちにあることに気づきました。

これ多分、RubyGemsにありそうだよな?RubyGemsというのはRubyの便利作品集みたいなもんです。


rubygems.org


ここでpaapiと検索します。



ありました。はい解散!


・・といいたいところですが、せっかく途中まで実装したので、オリジナル実装も完成させていきたいと思います。他の言語もみて、Rubyで作った他の人の実装もみるというもはや何がなんだかわからない状態ですが。


僕の心が瀕死寸前のなか、唯一光明があるとすれば、「実装するのが楽しい」ってことですね。他の人が作ったやつのが完成度高いし、すぐに使えるしで良いことづくしなのは間違い無いのですが、自分なりに考えて、つまずいて、すこしずつゴールに近づいて・・という行為そのものが楽しく感じています。

こんなの仕事でやってたら怒られそうな内容ですけど、趣味でやってる分にはこういう回り道って楽しいなと思った次第です。あえてカレールー使わずにカレー作るみたいな。そういう浪漫がありますよね。あるよ。そうそう(自己暗示)

というわけで、無事完成するのかどうか、ご期待ください(?

では、また!

Heroku無料プランが廃止 代替サービスを探しました。

  • 記事変更履歴
  • 2022年11月28日・・・内容を追記しました。
  • 2022年08月28日・・・初回の記事を作成しました。

こんにちはー。

以前紹介したRailsアプリを無料で動かせるサービスHerokuさんなんですが・・

osio-toshimasa.hatenablog.com


2022年11月28日から無料サービスが廃止になるそうです😭


無料プランを使っている場合は、有料プランへの移行しないといけないですが、一番安い有料プランでも月7$。日本円にすると大体960円。


結論からいうと、練習でRailsアプリを置くだけにしてはちと高いなあ。というのが正直なところなので、Railsアプリはこのまま放置して自然消滅させることにしました。

そして、Herokuの代わりとなるサービスとしてRender.comを試して見たので、利用方法や機能制限などを追記します。

Herokuの代わりとなるサービス

アプリケーションを置くだけのいわゆるPaaSと呼ばれるサービス。かつ無料で利用できそうなものは以下のような感じでした。

このなかでも一番Herokuに近いのはRender.comでしょうか。ざっと調べた内容をまとめるとこんな感じです。

  • アプリケーションサーバにはFreePlanがついている。CPUは共有。メモリは512MB。
  • Railsアプリもそのままデプロイ可能。対応Railsバージョンは6。
  • PostgreSQLのFreePlanは、90日後にデータが削除されるという制限付き。
  • RedisのFreePlanは、再起動するとデータは失われますが、利用自体は可能(っぽい)

といった感じで、少し構成を変えれば引っ越しは可能そう。

レンタルサーバ借りて動かす

第2の選択肢として、レンタルサーバに置いて動かすというのがあります。ただこれは茨の道とはいわないまでも、なかなかのステップが必要になるのであまり推せない選択肢です。ざっくり作業工程を考えるとこんな感じ。


  • レンタルサーバ契約する。
  • サーバを立てる。サーバ用OS(Linux)の理解が必要
  • webサーバをセットアップする
  • DBをセットアップする
  • Redisをセットアップする
  • Ruby,Railsをセットアップする
  • Railsアプリを置いて動かす


まあまあの道のりですよね。。Railsアプリを動かしたかっただけなのにそれ以外の作業がほとんどを占めるという。


これを僕はモンハン現象と呼んでいます。モンスターハンターって、この装備が必要なだけなのに、この装備を集めるために他のモンスターを狩る・・ためにはこの装備を集めると効率よくて、さらに他のモンスターを狩る・・みたいな謎ループが起きるんですが、そのことを指しています。モンハンやったことないとわからない例えですみません。


まあ、それはそれで「サーバ構築するのも趣味の一環」として捉えれば、楽しい説もあります。


個人的な状況としてはWebARENA (Indigo)というレンタルサーバを使っていまして、Webサイトの練習用にWebサーバを立ててHTML置いたり、中身を色々弄ったりと遊んではいたので、こちらにセットアップするというのもひとつの手かなと思っています。1回今の環境リセットしていちから構築してみたら新鮮で面白のかも。

Mac、Windowsだけで動かす

アプリケーションを動かして楽しむだけだったら、まあサーバに置かなくても自分のPCで動かすというのがなんやかんやで安定です。ただ、ひとつ問題があります。


「たとえガラクタでも、作ったものを紹介するとなんかモチベーションがあがる」という自分的ライフハック(?)がありまして。


どこかで動かしておいてそれを紹介する、みたいなことはできないのが少し残念。残念ではありますが、これも考え方を変えて、Rubyのインストールやソースコードごとみなさんの手元で動かしてもらう、みたいなことはできるのかもしれないですね。


うーん、でもこのパターンはプログラミングに興味あるよ、とか別のモチベーションがないとそこまでやってくれなそうですよね。

ということは?どういうこと?

まだうまくまとまっていないのですが、このブログを書いているうちに、「こんなんだったらいいのかな?」みたいな妄想がまたひとつ生まれました。


それはまたの機会に書くとして、駄文かどうかに関わらず、こうして文字に起こしていくと、自分の思考が整理されて新しい着想を得たりすることもあるので、ブログっていいですよね!


ひとりでブレストしてひとりで議事録書くみたいな。そんな効能もブログにはあるのかなと思いました。


読んでる方にもなにか共感できものがあればよいのですけど、基本自分に向けて書いてしまっている時も稀によくあります。例えば以下のような記事です。

osio-toshimasa.hatenablog.com

osio-toshimasa.hatenablog.com

雑記ブログといいますか、何も考えていないといいますか。書きながら考えてしまうのが果たしていいのか悪いのわかりませんが。

行動しなかったらそんな感情も湧いてこないですから、万事OKなんだよ!きっと!!


と念じてこの記事を締めたいと思います 笑

では、また!

【趣味でたのしむRuby】車輪の再発明と自作の悦びと

おはよーございます。

いままでは、Rails製自作APIサーバとの動作テストにcurlというコマンドを使っていたのですが。

osio-toshimasa.hatenablog.com

osio-toshimasa.hatenablog.com

今回、これの代わりになるものとしてRubyで実装してみました。ソースコードはGitHubにて公開しています。

github.com

標準添付ライブラリのみで作っているので、Rubyプログラム単体としても使えます。Railsの機能も使っていないのでコピペで持ってくることもできます。 もちろんRailsのなかでも使えると思いますが、試してないのでやや自信なしです。

ちなみにこの手のやつ既にあるんじゃないの?と思ってRubyGemsで探したら、そのまんまHttpClientというのがありました。

こういうのを「車輪の再発明」と呼びまして、わざわざ時間と労力をかけて同じような機能を作るなんて、とても効率が悪くて無駄なことだ!と否定的な意味合いで使われます。

たしかに!

けど、否!

既に作られているものを改めて作り直すことで得られるもの、あると思います!

たとえばこんな感じ。

  • 自作することでもともとの仕組みを理解できる。
  • 自作しているので、都合のいいように改良、拡張できる。
  • 中身を把握しているので、改造しやすい。
  • 自分のコード資産として残る。
  • 既に作ったものがあるので、見比べながら動作チェックできる。
  • なにより自分で作ったのものを動かすのが楽しい。

なんだかんだ最後が一番大事にしています。趣味でプログラミングしてるのが大きいので、楽しいがないと続かないですから。

なのでこれからも車輪の再発明しまくりです 笑

では、また!

【趣味でたのしむRuby】RailsアプリケーションをHerokuを使って動かしてみる。

こんにちはー。

以前作ったRails製のWebアプリケーションをサーバに置いて動かしてみた話です。

結論からいうと、今回はHerokuというサービスを使って稼働させてみました。

理由云々なんかはそれなりにあったりもしますが、それはまた別の機会に書くとしまして、やったことを簡単に振り返ってみたいと思います。

Herokuとは?

サーバ構築やメンテナンス不要で、作ったアプリケーションを置くだけで済んじゃう便利サービスです。キャンプで例えるならば、テントも食糧もあらかじめ用意してあるグランピングみたいなもんですね。ちなみにキャンプまともにしたことありません。

今回は無料で作れるFreeというので試しています。

というか、何もせずとも最初はFreeが選ばれるようです。いきなりお金取られるわけじゃないので安心ですね。


追記:2022年11月28日で無料プランが廃止されるとのことです。これから登録される方、すでに登録済みの方はご注意を。

どうやって作る?

実際の工程はこんな感じです。Railsアプリケーションはすでに作っていて、GitHubにソースコードをコミットしているのでHerokuにどうこうする作業だけに絞っています。

Herokuアカウントを作る。

公式サイトからアカウントを新規登録します。

jp.heroku.com

Heroku スターターガイドに沿って作業をすすめる。

Herokuサイト内にスタータガイドというのがあります。前に作ったRailsアプリがバージョン7系なので、こちらを参考にしました。

devcenter.heroku.com

基本的に手順どおり進めればうまくいくのですが、自分のPC環境によるものでうまくいかなかったり、アプリケーションの設定をHeroku用に少しだけいじったりする必要があるので、簡単にまとめておきました。同じくハマった人いたら参考になれば幸いです。

作業を行なったPC情報は以下の通りです。

MacBook Pro 2020 

%sw_vers
  ProductName:  macOS
  ProductVersion:   12.5
  BuildVersion: 21G72

%ruby -v
  ruby 3.0.0rc1 (2020-12-20 master 8680ae9cbd) [x86_64-darwin20]

Heroku CLIのインストールでつまづく

手順の最初の方で、HerokuCLIをインストールするのですが、

devcenter.heroku.com

% brew tap heroku/brew && brew install heroku

を実行したら、こんなエラーがでたので

Error: Your Command Line Tools are too outdated.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install
% softwareupdate --all --install --force

をしても最新版で何も更新されず。エラーは解消されませんでした。

 %sudo rm -rf /Library/Developer/CommandLineTools
 %sudo xcode-select --install

こちらを実行したら無事動きました。※インストール時間長い(数十分)ので、お茶しながら気長に待ちましょう。

pg gem の追加は無視してはいけない。

最初、データベース使ってないからと手順すっとばしたのですが、そのあとの以下のコマンドで華麗に失敗しました。

%git push heroku main

そのためにgem 'pg'を追加するのですが、自分のPCでbundle updateが失敗するという悲しみが発生。MacBookさんにpostgresqlをインストールして解消しました。

# これを、自分のPCにインストールしておきましょう。
% brew install postgresql
% psql --version
psql (PostgreSQL) 14.4

これで、無事git push heroku mainが成功して、APIサーバが起動しました!

動作確認はheroku openで作ったアプリのURLを確認したあとにcurlコマンドでチェックしました。

% curl -X POST -H "Content-Type: application/json" -d '{"id":1, "value": 3}' ${HerokuサーバのURL}/match
{"value":3,"id":1}

サーバ上のログでも確認してみます。

%heroku logs -n 100

とやると、ずらずらーっとログが出てくるのですが、

2022-08-12T12:54:09.095074+00:00 app[web.1]: {"value":3,"id":1}

ってな感じでログが出力されていることを確認しました。地味に気をつけたい点としては、時刻表示がUTCという世界標準時刻なので日本時間にする場合は+9時間してあげる感じですね。この辺も設定変えられるらしいのですが、今回はこのままにしています。

まとめ「いま楽しいこと」に集中!

というわけで、無事Railsアプリケーションをサーバで動作させるところまでができました。

これ試す前に、自前のサーバでもちょこっとやってみてから、Herokuに変えたのですが、かなり作業が簡略化できて感動しました。めんど臭さに根負けして、いきなりやる気無くなってしまうのも勿体無いので、楽にできるところはとことん楽しちゃってしまって、「今自分が楽しいと思うことに集中する」のを大切にしていきたいと改めて思いました。ちなみに自前でサーバ構築もそれはそれで楽しいですよ😀なんというか、自分の拠点を作ってる感じがして、それこそキャンプ感ありますね。なおキャンプは・・以下略。

では、また!

【趣味でたのしむRuby】RubMineさんとRailsで初歩的なAPIサーバを作った話 その3 HTTPPOST編

こんにちはー。

前回のGET編に続いてPOST編です。

Controllerにメソッドを追加する。

今回はcreateメソッドを追加しました。こんな感じ。

  def create
    entry = OpenStruct.new({ :value => params[:value], :id => params[:id] })

    # MemoryStoreにSaveされていれば取り出す。
    entry_json = Rails.cache.fetch("/match/#{params[:id]}", expired_in: 1.hour) do
      # 一度もSaveされていない場合は、ここの値がSaveされる
      JSON.generate(entry.to_h)
    end

    puts entry_json

    # Json文字列をOpenStructに変換する。
    result = JSON.parse(entry_json, object_class: OpenStruct)

    # OpenStructそのまま渡すと{"table":{"value":1,"id":1}}というで返却される。
    # tableの部分が余計に感じたのでto_hでハッシュにして返却すると{"value":1,"id":1}のようになる。
    render json: result.to_h

  end

いろいろごちゃごちゃやってますけど、前回のGET編と同じくなんやかんやでJSONで返しています。

POSTを送る

今回はブラウザ開くだけではテストできないので、POSTを送るものを別で用意しました。

ターミナルから以下を実行しました。今回はcurlというコマンドを使って試してみました。RubyMineからもHTTPPOSTできたのかも。

curl -X POST -H "Content-Type: application/json" -d '{"id":1, "value": 3}'  http://127.0.0.1:3000/match/

そうすると、こんな感じでデータが表示されました。

{"value":3,"id":1}

Rails使うとAPIサーバが簡単に作れる

最初の段取り覚えると、あとはかなり簡単に作ることができてしまいますね。むしろRailsの流儀を覚えることの時間が長かったかもしれません。

ひとまず最低限のAPIサーバを作ったので、今度はサーバに置いて動かしてみます。これで一通りの流れだけは抑えられそうです。

では、また!

osio-toshimasa.hatenablog.com

osio-toshimasa.hatenablog.com

osio-toshimasa.hatenablog.com

【趣味でたのしむRuby】RubMineさんとRailsで初歩的なAPIサーバを作った話 その2 HTTPGET編

おはよーございます。

前回、Amazonさんからの突然の通告により狼狽してしまいました。

気を取り直してAPIサーバのつづき、その2です。

その1では、プロジェクト作成とコントローラの追加まで行ったので、今回は実際にメソッドを実装して、動作チェックです。

コントローラにメソッドを追加する。GET編

作ったコントローラにメソッドを追加していきます。routes.rbに自動でAPIルーティングが付与される記述をしたので以下のようなAPIを呼び出すことができるのですが、今回はindexとcreateだけ作ってみることにしました。

GET       /match            match#index  
GET       /match/new        match#new   
POST      /match            match#create    
GET       /match/:id        match#show  
GET       /match/:id/edit   match#edit  
PATCH/PUT /match/:id        match#update    
DELETE    /match/:id        match#destroy

やりかたは、作ったコントローラのクラスに以下のようにメソッドを定義するだけでした。

class MatchController < ApplicationController

  #  /matchで呼び出せる
  def index

  end

  # /matchで呼び出せる
  def create
  
  end
end

どっちも/matchで呼び出せるとは何事か?

すこし話それるんですが、indexはHTTP GETで、createはHTTP POSTで呼び出すことができます。ってなんだそりゃという話ですが、HTTP GETの方は、ブラウザでURL叩くとそのまま呼び出せます。対してHTTP POSTは、URL叩いただけでは呼び出すことはできません。一般的なWEBサイトだと入力フォームになんか書いて、送信とか登録ボタンを押した時に画面が切り替わりがちですがそういうときにHTTP POST呼び出しが行われていたりいなかったりします。きっとそう。

細かい話はさておき、APIサーバを作るというのが目的なので、それっぽくJSONというデータ形式で返すように処理を追加します。とりあえずindexメソッドにだけ追記します。

class MatchController < ApplicationController

  #  /matchで呼び出せる
  def index
    render json: {
      message: 'Hello World'
    }
  end

end

なんかこれだけでJSONデータに変換してくれるみたいです。簡単か。というわけで起動して確認してみたいと思います。

起動してブラウザから動作をチェックする。

RubyMineさんでRailsを起動するときは、緑色のボタン押すだけでした。ちなみに虫のアイコン押すとエラーが出て動きませんでした。。なぜだ。

起動すると下の画面に以下のような記述が出るのでhttpのところのリンクをクリックするブラウザが起動してRailsの起動画面に移動することができます。

こんなブラウザにこんな画面がでてきます。

で、URLの最後尾に作ったAPIメソッドを追記してジャンプします。

http://0.0.0.0:3000/match/

そうするとブラウザに以下のような文字が出てきます。

{"message":"Hello World"}

さきほどindexメソッドに書いたものが返ってきました。render json:とか書くだけでいい感じにJSON形式の文字列に変換してくれるんですね。というわけでHTTP GETメソッドにてAPI呼び出しをおこなってみました。

今回のまとめ

今回はここまでで一区切りです。文字数に換算すると結構なボリュームですが、実際やってみるとかなりお手軽にさっくり作れました。コードを書く時間よりも調べる時間のが長いのでこうしてまとめてみるとコード量は全然どころかほとんど書いていませんね😅逆に言えばこれがRailsの凄さなんでしょうけども。

次回はもう一個メソッドcreateの実装でHTTP POST編を書きたいと思います。では、また!

【趣味でたのしむRuby】RubMineさんとRailsで初歩的なAPIサーバを作った話 その1

おはよーございます。

Railsを使ってAPIサーバの初歩の初歩的なものだけ作りました。

つくったものはGitHubに置いてみています、

github.com

やってみたことはざっと並べて見ると、今のところこんな感じです。

APIモードでrailsアプリの雛形作成

RubyMineというIDEを使うと特に何も考えずに作ることができました。 画面にあるようにRails APIを選んでプロジェクトの名前を入力するだけですね。なんと便利な。

実際の動作を受け持つContollerクラスに処理を実装

待ってるだけでRailsさんが初期セットを色々自動で作ってくれます。 実際のAPI動作を司る部分は、 自分で作ったのはcontrollers/match_controller.rbになります。

このファイルもRailsの機能で作ることができて、RubyMineの場合は以下のメニューから呼び出すことができます。

Tools ー> Run Rails Generator

これを使うとこんな感じでRailsのコマンドがずらーっと出てきますが、コントローラを作るときは、rails g controllerを選ぶと以下のような画面がでるので

Controller nameに作りたいクラス名を入力

Actionsのところは、最初なんも知らずに空白で作ってしまっていたのですが、 ここに入力した名前でメソッドを作ってくれるようです。このメソッド名はAPI呼び出すときに使う名前になるので、例えばクラス名Matchでメソッド名がtestの場合はmatch/testで呼び出します。でOKボタンを押すと、controllers/の下に指定した名前に_controllerをつけたファイルが自動で作られます。

APIとして機能させるために、もうひとつやることが

さきほど紹介したActionsのところに名前を入力しておくと、config/routes.rbというファイルに指定した名前の記述が追加されます。これがAPIとして呼び出すときの定義ファイルとなっているようで、ここに名前を書かないといくらcontrollerに処理を記述しても呼び出すことができません。

僕の場合は、空白で作ってしまったのでこのファイルに手書きで加えました。

  # これを追加
  resources :match

end

こうやって書いておくとRESTAPIという規則に従って以下のようにアクションが自動で追加されるんだそうです。

GET       /match            match#index  
GET       /match/new        match#new   
POST      /match            match#create    
GET       /match/:id        match#show  
GET       /match/:id/edit   match#edit  
PATCH/PUT /match/:id        match#update    
DELETE    /match/:id        match#destroy

このあたりの情報はRailsGuideを参考にしました。

すでに長くなってきたので、続きはまた次回

ここまでできたのであとはメソッドを追加して実際に動きを確認するところなんですけど、すでに記事が長くなってきてしまいました。書く方も読む方も疲れてしまうので、否、どちらかといえば書く方が疲れてきていますので、続きはまた次回にしたいと思います😀

では、また!

【趣味でたのしむRuby】Railsを使い始めています。趣味ならではの注意点を踏まえて。

おはよーございます。

とあることを試してみたくて、Ruby界の重鎮、Gemの王様と勝手に思ってるRubyOnRailsを触ってみています。といってもバリバリのWebサイトを作るということはいまのところ考えていなくて、APIモードというものを使うことにしています。

しばらくはこの使い方で続けてみようと思っているのですが、その理由について考察してみた様子が以下になります。

Webサービスを一通り作るのって大変説。

RubyOnRailsはWebサービスを作るときの生産性が高いという触れ込みで、実際生産性は高いのだと思うのですが、そもそもですねWebサービスを作るのって結構というかかなり大変に思います。Webサービスというのは例えばTwitterみたいに、ツイートできて、アカウントがあって何かできて、他の人とも連携できて、とか色々なコンテンツが入っているようなものですが、これを作る場合には以下のような要素が必要です。

  • 見た目を作るためにHTML,CSS,JavaScriptのスキル。
  • アカウント情報やツイートの保存にデータベースのスキル。
  • いたずら対策や情報漏洩しないようなセキュリティ対策。
  • アクセス増えた時にサーバがダウンしないようなサーバ構築、運用スキル。

などなど、コンテンツの規模に関わらずこのような要素が一通り揃ってないと、安心して使えるWebサービスというものに仕上がらないのですよね。これを趣味で作るのはなかなかに大変なので、あまりここまで混み入ったものは作らないようにしたいと思っています。

Rails覚えるの大変説。

さきほど挙げたWebサービスを実現するための要素ひとつひとつに対して、Railsが色々手助けしてくれているとは思うのですが、このRails自体の使い方を覚えるというのも、趣味の時間の中でやりくりしていくのはなかなかに大変だなと思っていまして。

加えて、Rails今現在も活発に開発が続けれられているので、1年に1回は大きなバージョンアップによって機能が追加されたり、使い方が少し変わったりということが起きるので、追加で学習していくということも発生します。

これらは、時代の流れに合わせて新しい機能を追求していくということであったり、お金をもらって仕事で使えるほどに高機能なものなので、当たり前と言えば当たり前なことなんですけども、趣味で使う分には学習時間が足りないかなあという印象です。

APIモードを利用するのがちょうどいいかも?

とはいえ、Railsの中に含まれている機能には便利なものがたくさんあるので、いいとこどりをしてモノづくりを加速させていきたいという気持ちもあります。

そこで出てきた選択肢がAPIモードというもので、これはWebサイトの見た目部分に関するRailsの機能は利用せずに、データ保存だったり、ブラウザからの問い合わせになんらかデータを返したりというところだけを使いたいときに最適なモードになります。

これができるとサーバ内に保存したデータをブラウザ(JavaScript)から問い合わせて取得できるようになるので、やりたことの幅が広がりそうな気配です。

まとめ:Railsで学習コストを抑えつつ、引き出しを増やせそう・・な気がする!

まだ触り立ての段階で、少し歩けばつまづいて、ネット検索しまくる状態なのですが、まずは簡単なもの作ってサーバで動かしてみるところまでをゴールとして作ってみています。

一通りの流れが習得できれば、Webサイトづくりに有用な手段が増える!・・はずなので、これまた無理なくマイペースに続けていきたいですね。

では、また!

【趣味ではじめるWebサイト】簡単なパスワードを作ってくれるサイト、中身解説編

 

おはよーございます。

先日の記事で紹介したWebサイト「Easy Password Generator」についての中身解説編です。

 

 

サイトの置き場所


前回の記事でも紹介しましたが、GitHubPagesというサービスでWebサイトを構築しています。
RubyOnRailsのような、サーバでどうたらするものは動かないですが、HTML置くだけの静的なサイトであればこれが一番お手軽に思います。無料で作れるのも嬉しいですね。僕の場合は独自ドメインにしてみてはいるので完全無料ではないですけど、GitHubPagesが用意しているドメインをそのまま使うこともできます。

CSS


以前書いた記事では、PureCSSというものを触っていたのですが、今回はBootStrapというCSSライブラリを使ってみました。

osio-toshimasa.hatenablog.com

 

というのも、この間 Udemy という動画学習コンテンツの教材を購入しまして、その教材のなかでBootStrapを使っていたので早速試してみた感じです。ときおり受講料が80%OFFになっていて1500円くらいになってるときだったかな?そのタイミングで購入しました。

 

肝心のBootStrapですが、シンプルなサイトなのであまり使いこなせてないですけど、簡単な記述でやりたいことができるので、これはこれで良さげな感触でした。調べたときは使い勝手のところに難ありみたいな評価でしたけど初歩的なものを作る分には扱いやすく感じます。あと、情報量が多いので公式以外にも情報がたくさん転がっているのが嬉しいですね。

 

JavaScript

ボタン押したらパスワード表示するみたいな制御のところはVue.jsというライブラリを使いました。このくらいのものであれば何使っても大差ないような気がしていますが、最初使った時にシンプルでわかりやすかったので、あえて使っていきながら、使い方忘れないようにしていこうという感じです。

 

パスワードを生成する部分もJavaScriptなのですが、これはOpalというRubyのコードをJavaScriptに変換するGemを使って作りました。なのでこれは自分で書いたわけではなくて元々はRubyのコードになっています。

 

osio-toshimasa.hatenablog.com

osio-toshimasa.hatenablog.com

osio-toshimasa.hatenablog.com

 

Webフォント

最後におまけ程度の紹介ですが、タイトル文字に使われているフォントはGoogleFontsというGoogleさんが無償で公開しているフォントを使っています。よくよく見てみるとこのブログのタイトルもGoogleFontのものを使っているみたいです。テンプレートから選んだだけなのであまり気にしていなかったのですが、Webでいろんなフォントを使いたいときはかなり定番みたいですね。

 

まとめ 無償提供ありがたすぎる件

ふりかえってみると、今回のWebサイトを構成する要素たちはすべて無償で提供、利用できるものたちなんですよね。本当素晴らしい世の中です。

 

プログラミングの世界では与えるという行為が当たり前すぎていて、時にそれが使えて当たり前という感覚になってしまいそうですが、こんな簡単なサイトでもかなり時間をかけて作っているのに、このサイトを構成するいろいろなサービスやライブラリは、いったいどれほどの労力をかけて作られているのか想像もつかないです。

 

利用する側としてはありがたく使わせてもらって、感謝の気持ちを忘れずに引き続き気ままに楽しくモノづくりを続けていきたいです。

 

では、また!

 

 

osio-toshimasa.hatenablog.com