Sinatra is a DSL for quickly creating web-applications in Ruby with minimal effort:
# myapp.rb require 'rubygems' require 'sinatra' get '/' do 'Hello world!' end
Install the gem and run with:
sudo gem install sinatra ruby myapp.rb
何年も前に社内向けにシンプルなアプリをRailsで作っていたのだけれど、長いことメンテナンスできずにいた。 Rubyのバージョンも古いし、Railsのバージョンも古かったので、バージョンアップをしないとなぁと思っていたのだけれど、やったところでまた数年後に同じ思いをすることになりそうだなぁ…と思ったので、もっとバージョンアップのしやすいSinatraに書き換えることにした。 実はSinatraを試したことくらいはあったけれど、ちゃんとデプロイまでしたことはなかったので、よい経験になった。 作ったもの シンプルなWebAPIを作った。JSONを返すだけ。 使ったgem sinatra 言わずもが…
railsを学ぶ前身として、railsほど複雑ではなくrailsより処理が軽い「Sinatra」を学習しました。「Sinatraでデータベース連携をしたwebページを立ち上げる手順」をまとめました。 前提 データベース: SQLITE OS: mac 手順1. sinatra用のディレクトリを作成し、必要ライブラリを入れる。 bundle initで、Gemfileを入れる。 bundle init 入れたGemfileに、以下の項目を追記して、必要ライブラリを入れる。 # frozen_string_literal: true source "https://rubygems.org" gi…
この記事は ANDPAD Advent Calendar 2022の 20 日目の記事です。 こんにちは、アンドパッドに今年の 9 月に入社しました、 田上(shuntagami)です。アンドパッドでは図面チームに所属していて、主にサーバーサイドを担当しています。Ruby と Rails を使うことが多く、Go や TypeScript を書くこともあります。 本記事の概要 以下のようなケース 将来的に規模が大きくなることも想定されるアプリケーションの API サーバーを 0 から開発する際のメインフレームワークとして 既存の大きく成長した Rails アプリケーションの一部をマイクロサービス…
Sinatraを使ってWebアプリケーションを作成した フィヨルドブートキャンプの課題でSinatraを使ってメモアプリを開発しました。 いきなりRuby on Railsの学習に入るよりもシンプルなフレームワークであるSinatraでルーティングや画面描画の仕組みを学んだことで、処理の流れが具体的にイメージできるようになったと思います。 Sinatraとは? SinatraのREADMEには以下の説明があります。 Sinatraは最小の労力でRubyによるWebアプリケーションを手早く作るためのDSLです。 ん・・・どういうこと? DSLとは? を読んでみると以下の説明があります。 DSL(…
少しずつerbファイルの書き方がわかってきた😅どうやら、<% %>で括った部分がruby コードと判定され、変数については<%= %>で括ってあげると認識されるっぽい。 それ以外の部分についてはhtmlとして扱われる。 例えば、下にerbのコード例を示す。 <% require './myapp.rb' %> <h2><div><%= @content %></div></h2> <div class="memo"> <ul> <% get_memo_num.times do |i| %> <% memo_info = open_memo_detail(i+1) %> <li><a href=…
Sinatraのサーバ部分はruby、Webページはhtmlというハイブリッド型?🤔 Sinatraの構成にまだ慣れていなくて、『どう書けばいいねん😵💫』て感じでしたが、とりあえず手を動かしてみるとだんだん見えてきました😅 自分の感覚的には、『サーバっぽい部分をrubyで処理してあげて、ブラウザ上に表示されるWebページ部分はhtmlで描画する』という印象を受けました。 例えば、GETメソッドの流れを見てみると、次のような流れになっている。 さらにPOSTメソッドについても見てみた。POSTメソッドはPRGパターンを意識して、一度リダイレクトをクライアントに返して、GETメソッドでコンテンツ…
実行環境 sinatra 2.1.0 問題 layoutを2重でネストさせたい 解決策 erb :"内側のlayout", :layout => :"外側のlayout" do erb :user(対象のview) end ↑これでいけるわ sinatraのREADME最強! 参考にしたサイト sinatrarb.com
sinatra % bundle exec ruby app.rb/Users/myMBP/work/FJORD/sinatra/vendor/bundle/ruby/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1755:in `detect_rack_handler': Server handler (thin,puma,reel,HTTP,webrick) not found. (RuntimeError) from /Users/myMBP/work/FJORD/sinatra/vendor/bundle/ruby/3.0.0/gems/si…
タダです. 業務で Nginx + Puma + Sinatra の構成を ECS Fargate で動かそうとしてハマったのでこの記事でその辺をまとめていきます. ハマったこと 設定漏れがあった箇所 Sinatra コンテナイメージビルド時のミス ECS のタスク定義の設定 設定の誤りを修正後のデプロイ確認 まとめ ハマったこと Nginx と Sinatra のコンテナを別々で立ち上げた時に Nginx -> Puma へのソケット通信が通らず,connect() to unix:/xxx/xxx/sockets/puma.sock failed (2: No such file or d…
AWS App Runner が発表されました。 aws.amazon.com Dockerfileを用意するだけでアプリケーションに必要なリソース(VPCとかロードバランサーとか)はマネージドで用意してくれる便利サービスのようです。 僕は使ったことが無いのですが Google Cloudの Cloud Runと似たサービスのようです。 デプロイ方法は2種類用意されており、 Node.js or Python のアプリケーションをコミットしたGithubに接続する Dockerfileを用意する 1のやり方にはハンズオンが用意されています。 www.apprunnerworkshop.com
7:00-10:00 WONDERS! (平野聡) TOMOO / Friday Jack Johnson / Meet The Moonlight Icona Pop / I Love It オレスカバンド / 自転車 XG / NEW DANCE CRAZY KEN BAND / てんやわんやですよ James Morrison / You Give Me Something Dios / 自由 TREASURE / BONA BONA Papa Roach / Last Resort くるり / California coconuts 竹内まりや / 人生の扉 TOMOO / Super…
7:00-10:00 MORNING SPRITE (秋田美幸) Paul McCartney And Wings / Silly Love Songs 吉田山田 / 日々 Barbra Streisand / The Way We Were Bob Dylan / Mr. Tambourine Man Quincy Jones / Ai No Corrida Willie Nelson / Always On My Mind The Rolling Stones / Miss You The Rolling Stones / Gimme Shelter The Rolling Stones …
日本人が難しい Lの発音の練習ができる有名な曲 まずはLの発音の仕方 舌の位置: 英語のLの発音では、舌の位置が重要です。舌の先を上前歯の後ろに軽く当てます。舌の先が上前歯の裏側に触れる感覚がありますが、歯を噛むわけではありません。 声を出さない: 英語のLは無声音(声を出さない音)です。言葉を発する際、声帯を振動させずに舌の位置を使ってLを発音します。 軽く触れる: 舌を上前歯の後ろに軽く触れさせて、そこで一瞬停止させます。このとき、息を出すことで音を発します。舌を触れさせる時間は非常に短く、短い「l」の音を出す感覚です。 練習する際には、口を少しずつ開けて声帯を振動させないように注意してく…
文字霊日記・3354日目 ↓↑ 田=㗊=伝字捜=でんじそう(田字草) =四葉のクローバー🍀・・・田斎⇔田姜 ↓↑ Sentimental JourneyDoris Day www.youtube.com Sentimental Journey・・・「感傷・失恋・傷心」旅行 Frank Sinatra - Sentimental Journey - YouTubehttps://www.youtube.com/watch?v=rKNE4JPN6pc&ab_channel=LauroFilho www.youtube.com ↓↑ 四葉のクローバー🍀=four-leaf clover=lucky …
勝手な私的三大名曲を紹介!無知と偏見と独断で! 寂しい土曜日は勘弁 Saturday Night (Is the Loneliest Night In the Week)フランク・シナトラヴォーカル¥255provided courtesy of iTunes 1944年録音 五分でいいんだ Five Minutes Moreフランク・シナトラポップ¥255provided courtesy of iTunes 1945年録音 全部持ってけよ All of Meフランク・シナトラヴォーカル¥204provided courtesy of iTunes 1954年録音 【おまけ】 映画「上流社会…
9月半ば近くなると、今年のお月見ははいつかしら?と、気になります。そして、この曲を歌いたくなるのです。はい。それは、フライミートゥーザムーン♪原題「In Other Words」です。 直訳すると、「私を月まで飛ばしておくれ!」って?すごいタイトルだな。1954年にバート・ハワードによって書かれた曲。もともとは、「In Other Words(言い換えれば)というタイトル。1963年にペギーリーが作者を説得し、名前変更したというエピソードあり。 さて、ケイバラードはこの曲を最初に録音した人。1954年4月にリリース。舞台「ザ・ゴールデン・アップル」などのスターだったケイのあとは、ジャズ歌手やポ…
はじめに 2023年9月9日に開催された大阪Ruby会議03で、基調講演(キーノート)を担当させてもらいました。 regional.rubykaigi.org当日使った資料はこちらです。 発表のタイトルは"Enjoy Ruby programming, Enjoy Ruby community!"でした。 今回の基調講演ではちょっと攻めた取り組みとして、「Hotwireを使ったモーダルUIを15分で作る」というテーマでライブコーディングもしてみました。 www.youtube.comライブコーディングには思わぬトラブル付きものですが、今回は何とかノートラブルで実装できました! 時間も15分以内…
最近Mackerelの通知チャンネルをいろいろ見ることがあったのだけど、SlackやTeamsといった対応済みのもの以外への通知はWebhookを使う、というのが基本スタンスとなっている。 MackerelのWebhook通知として提供されるのは、サンプル(Mackerelの「テスト」で送出されるもの)、アラート通知、アラートグループ通知、ホストステータス変更、ホスト登録、ホスト退役、監視ルールの操作(追加・変更・削除)。 困ったことに、ドキュメントのWebhookにアラートを通知するでは「通知されるJSONは以下のような内容を含んでいます。」というかなり曖昧なものしかなく、アラート通知のこと…
この曲の譜面が配られて演奏していると、いくつか「え? そうだっけ」という箇所があります。そこで調べてみることにしました。 今回はブリッジから戻るところ。ブリッジは長3度上に転調していて、こういう箇所の度数表記は厄介だけれども、[III] が転調先(もとの調からみて長3度上という意味)、[I] がもとの調の文脈ということです。また「=」が使われているときは、その左右とも同じコードを両者の文脈から見ています(ピボット・コードのとき)。 ややわかりにくいですが、比較のためということでご理解いただければ幸いです。 1940年、Tommy Dorsey:[III] IIIm7 ♭IIIdim7 | [I…
淡々とコードを書いている。フィヨルドブートキャンプの課題は少しずつ提出できている。このあいだのSinatraをつかったメモアプリの作成はできた。DBを利用することもできた。PostgreSQLをつかって、ローカルでデータを保存していく。pgというgemをつかって実装するため、ActiveRecordでよしなにやっていたところを深く理解できる。
7:00-10:00 WONDERS! (平野聡) 堀込泰行 / Shiny Terrace Martin / What You Won't Do For Love Whitney / Rain ゆうやけしはす / 朝バナナ GOING UNDER GROUND / 胸いっぱい XG / NEW DANCE Mina Okabe / Every Second 宇多田ヒカル / traveling Dios / 自由 downt / 13月 Red Hot Chili Peppers / Under The Bridge the engy / Strangers テイ・トウワ / EAR CAN…
当たり前なんですけど、部分的に切り取ると違和感があるので言葉でまとめる 環境 config (4.2.1) gemそのもののリポジトリは以下 rubyconfig/config: Easiest way to add multi-environment yaml settings to Rails, Sinatra, Pandrino and other Ruby projects. 上書き挙動について configのgemは公式のREADMEにも記載がある通り、config/settings.yml を起点に環境名のymlでoverrideしていく。 具体例 たとえば以下のようにconfig…
debian 11 -> 12 にアプグレ そろそろアップデートしようかなと思った。 nodesource や gitlab や php など apt でインストールしているパッケージ関連も debian 12 に対応したっぽいので特に問題なくアップグレード出来るはず。 準備。 事前に最新版にする sudo apt update sudo apt upgrade apt source を書き換える。 sed -i '/bullseye/bookworm/g' /etc/apt/sources.list sed -i '/bullseye/bookworm/g' /etc/apt/sources…
Firefoxで以下の場合にcache-control: no-storeが効かない。 htmlが1.cssを呼び出し、1.cssは2.cssをimportしている 1.cssにはmax-ageなどを指定してキャッシュさせる 2.cssにはno-storeを指定してキャッシュさせない こうすると1.cssのキャッシュが有効な間は、2.cssのno-storeが効かずサーバにリクエストが走らない。 sinatraで以下のようにサーブする。 require 'sinatra' get '/' do erb :index end get '/1.css' do content_type 'text/…
長男がいつの間にかクロールで25メートル泳げるようになっていて、夏は終わった。私の通勤定期はもうすぐ有効期限が切れそうで更新する必要があった。そうやって人生をのばしている気もする。 フィヨルドブートキャンプのプラクティスにあまり時間をとれていない。でもSinatraをつかったメモアプリは一個課題が終わった。wc コマンドをつくるものも、提出はできた。もう時間はとれないのは常のことなのだ。そのなかでどうしたいか 考えないといけない。 考えること、コードを書くことで生を実感している。好きなんだなあと思う。来週はwcコマンドを終わりにして、Sinatraの課題の残りを終わりにしよう。いよいよRail…