genya0407's articles

/ さんちゃのブログ / さんちゃのブログ 2nd / genya0407 - Qiita /

ホットデプロイを実現する2つの方法 1 users

ホットデプロイとはなにか Webアプリケーションをデプロイするとき、単純にサーバ上のソースコード1を更新して再起動すればデプロイ自体はできます。しかし、この方法だと、処理中のリクエストが途中で終了してしまったり、再起動をする間はリクエストに応答することができなくなったりしてしまいます。24時間常にユーザーからのリクエストがやってくるようなサービスでは、このようなデプロイ方法はユーザーにとって不便 ...
Detail

『Linux-DBシステム 構築/運用入門』 読了 0 users

『Linux-DBシステム 構築/運用入門』を読了したので、その感想や関連した諸々について書きます。 ...
Detail

ブログを移転し、ブログを集約するページを作った 2 users

ブログを移転した ブログを移転しました。 https://genya0407.github.io/ Atomフィードもあるので、僕のブログを継続的に読みたい人がいたらRSSリーダーに登録してください*1。 https://genya0407.github.io/feed.xml この新しいブログは、JekyllとGitHub Pagesで作られています。 静的サイトであり広告などもないので、かなり高 ...
Detail

使い捨てPostgreSQL環境の作り方 0 users

Webアプリの開発時などに使える「使い捨てPostgreSQL環境」の作り方を解説します。 ...
Detail

Rubyのしくみ 読了 0 users

「Rubyのしくみ」を読みました。この記事では、「Rubyのしくみ」がどのような本なのかという紹介と、僕がこの本を読んで得た感想について書きます。 ...
Detail

Effective Ruby 読了 0 users

Effective Rubyを読みました。この記事では、Effective Rubyがどのような本なのかという紹介と、僕がこの本を読んで得た感想について書きます。 ...
Detail

Rubyの「ブロック」を理解する 0 users

Rubyのブロックを雰囲気で使ってる人に向けて、ブロックの使い方を整理する。 ブロックとはなにか ブロックは「処理の集合体」です。無名関数とかラムダ式とかクロージャのようなものです。 例: # { ... } がブロック [1,2,3,4].map { |e| e + 1 } # do ... endがブロック [1,2,3,4].map do |e| e + 1 end ブロッ ...
Detail

差をつけるRuby 1 users

Rubyを楽しむために Rubyは、奥が深い言語です。覚えゲーともいいます。 Rubyは、いろんな機能を覚えるとキレイに書けて気持ちがいいです。 キレイに書けるとRubyが楽しくなります。 Rubyを触り始めて一通りの処理が書けるようになった人が、次に書けるようになるとプロっぽいRubyの機能や文法を紹介します。 注意:本記事ではRubyのバージョンは2.6以上を仮定します mapの小技 ...
Detail

CAMPHOR-についてここらでひとこと言っておくか 7 users

京都のIT系学生コミュニティ「CAMPHOR-(カンファー)」に私が出入りするようになったのは2016年の冬なので,足掛け4年ほどCAMPHOR-に関わっていたことになります. この記事では,CAMPHOR-について説明した後,私がCAMPHOR-に感じた魅力を語ります. ※この記事はポエムです ...
Detail

質問箱クローンをRustで作った話 53 users

1年ぐらい前に質問箱(peing.net)を真似て匿名質問サービスを作成しました. これに関して技術的な話と技術的でない話をします.技術的な話というのはRustでWebサービスを作る知見で,技術的でない話というのは質問箱を自分で運用するとどういう感じになるかという知見です. ...
Detail

Pythonのコレクション操作をメソッドチェーンでやる 0 users

以前このような記事を書いた. dawn.hateblo.jp 詳しくはそちらを読んでいただくとして,Pythonのコレクション操作がイケてないという気持ちが僕にはある*1. しかし,Pythonには豊富な資産(numpy,pandas,networkx,scikit-learnなどなど...)があり,Pythonを使わざるをえないことがまれによくある. 上の記事でも書いたように,僕はRubyのコレク ...
Detail

ダラー演算子とメソッドチェーンとパイプライン演算子に対する気持ち 0 users

tl;dr ダラー演算子,メソッドチェーン,パイプライン演算子は,「関数を次々に適用するとネストが深くなってしまう」という問題を解決する. ...
Detail

ファストフード検索というサービスを作った 51 users

この記事は CAMPHOR- Advent Calendar 13日目の記事です. 先日ファストフード検索というWebアプリを作ったので,そのことについて書きます. ff.kuminecraft.xyz ...
Detail

高校の文化祭の食販の注文フローを電子化した話 40 users

この記事は CAMPHOR- Advent Calendar 2018 3日目の記事です. 高校の文化祭の食販の注文フローを電子するべくWebアプリケーションを作り,当時*1はWeb素人だったためクソ実装になったが,役には立ったという話をします. *1:2013年 ...
Detail

Elixirでコンパイル時にStruct/Mapを生成して埋め込む方法 0 users

コンパイル時に外部ファイルなどからデータを取ってきて,それを元にStructなりMapなりを生成して実行ファイルに混ぜ込みたいということがあります. そういうときは以下のようにすれば良いです: sample.ex defmodule Hoge do defmacro generate_map do map = File.read!("./sample.json") |> Poiso ...
Detail

SequelでPostgreSQLのバイナリデータを扱う 0 users

PostgreSQLにはbyteaという型があり1、バイナリデータを表現することができます。 Sequelでbytea型を取り扱う方法を解説します。 migration マイグレーションファイルは以下のように書きます: 001_create_table.rb Sequel.migration do change do create_table :some_table do ...
Detail

「熊野寮で電子化した話」というタイトルでLTした 1 users

bit-valley.jp 先日BIT VALLEY 2018というイベントがあり、そのAFTER PARTY(懇親会)で「熊野寮で電子化した話」というタイトルでLTをした。 これがその時のスライド。 熊野寮で電子化した話 from Yusuke Sangenya 内容としては、手作業の塊みたいな地獄のタスクがあり、これをWebアプリ化して担当者の仕事量を削減したという話。 ...
Detail

MySQLの中身を時系列プロットするワンライナー 2 users

MySQLに入ってるデータの傾向をグラフで見たい、しかしgrafanaとかkibanaとかは導入したくないし、グラフを描画するプログラムを書くなんて論外という事があると思います。 そういうときにおすすめなのがこのワンライナー!必要なのはmysqlクライアントとgnuplotだけ! ...
Detail

トップレベルスタイルSinatraの起動プロセス 0 users

Sinatraのトップレベルスタイルで書かれたWebサーバーが,どのように起動するのかを解説します. ...
Detail

SinatraでJSONを受け取る方法 1 users

SinatraでJSONを受け取る方法。 結論: Rack::PostBodyContentTypeParser を使う。 やり方 rack-contribをインストールする Gemfile gem 'rack-contrib' or $ gem install rack-contrib Rack::PostBodyContentTypeParserを有効にする a ...
Detail

SinatraでaタグからPUTリクエストを投げる 1 users

Ruby on Railsで記述したWebアプリケーションでは,ERBファイルになどと記述することにより,aタグがクリックされたときにPUTリクエストを投げることができます.POST,DELETEに関しても同様の記述でリクエストを投げることができます. 本記事では,Sinatraで記述したWebアプリケーションについても同様に,aタグがクリックされたときに任意のHTTPメソッドでリクエストを投げる方 ...
Detail

職人じゃないけどAAがしたい! 11 users

作ったもの: https://image2aa.herokuapp.com/ AA(アスキーアート)とは AA(アスキーアート)というのは、上の画像のように文字で書かれた絵のことです。一般には「AA職人」が職人芸で作ります。 元々は画像が貼れない2chで絵を表現するための手段だったと思われますが、近年はフォントの違いによって絵が崩れるのを防ぐためにAAの画像を貼るまとめブログなどもあるようです。 ア ...
Detail

「熊野寮生だけど質問ある?」 8 users

CAMPHOR- Advent Calendar 2017 の 7日目 の記事です。 CAMPHOR-運営メンバーの @genya0407 です。 熊野寮ネタばかりで恐縮ですが、「熊野寮生だけど質問ある?」というWebサービスを作った話をします。 ...
Detail

熊野寮でコードを書いて感謝された話 32 users

CAMPHOR- Advent Calendar 2017 の 2日目 の記事です。 CAMPHOR-運営メンバーの @genya0407 です。 熊野寮でコードを書いて感謝された話をします。 ...
Detail

寮外の人でも楽しめる熊野寮祭の企画 0 users

熊野寮祭において、寮生でなくても楽しめる企画を列挙し、概要を説明します。 熊野寮祭とは 熊野寮祭とは、京都大学の学生自治寮である熊野寮が毎年開催している祭りです。例年11月末〜12月初頭まで開催されます。今年はちょっと長いですが、11月29日〜12月10日の間開催されます。 問題意識 熊野寮祭は、基本的には寮生内輪で楽しむお祭りです。というか、寮生でないと楽しめない企画や、寮外の方が参加することを想 ...
Detail

PNGを端末に表示するプログラムをRustで書いた 1 users

PNGを端末に表示するプログラムを作りました。 github.com 使い方 cargo run /Path/to/Windows_logo.png とすると、👇のように端末に画像が表示されます。透過画像も表示できます。 ちなみに、PNGの画像形式は何パターンかあるのですが、そのすべてに対応してるわけではないので、表示できない画像もあります。あしからず。 ...
Detail

PNGの規格を簡単に説明する 0 users

PNGの規格を勉強する機会があったので、その内容を簡単に説明します*1。 PNGはいくつかの"チャンク"が集まって構成されています。例えば、IHDRチャンクやIDATチャンク、PLTEチャンクなどがあります。では、PNGファイルという単なるバイト列から、どのようにチャンクを抽出すれば良いのでしょうか? これは、PNGファイルの構造を知ることでわかります。 *1:PNGの規格自体はRFCで公開されてい ...
Detail

機能追加と同時にリファクタリングをしてもいいか 1 users

「機能追加と同時にリファクタリングをしてもいい」という記事がはてブに上がっていたので、思うところを述べる。 scrapbox.io 結論 機能追加とリファクタリングを同時にするのは 👍 機能追加とリファクタリングを混ぜてPRを出すのは 👎 ...
Detail

iter()とinto_iter()の違いを整理した 8 users

VectorをIteratorに変換する時にいつも混乱していたので整理した。 混乱 あるVectorの要素すべてを3倍するコードを考える。 fn main() { let vec1 = vec![1,2,3,4,5]; let vec2 = vec1.iter() .map(|i| i * 3) .collect::>(); println!("{:?}", vec1); println!("{:? ...
Detail

Rubyでシュッとグラフを書く with Jupyter notebook 22 users

Jupyter notebookとは? 一言で言うと、ブラウザで動く超便利なREPLです。 もともとJupyter notebookはPython用のプロジェクトだったのですが12、近頃はRubyも使えるようになっています。 本記事では、Jupyter notebook上でRubyを使い、グラフを書く方法を解説します。 環境構築 下記はMacを想定しています。 まずJupyterを導入して ...
Detail

SSLで運用しているmastodonとS3の連携のハマりどころ 1 users

mastodonの画像とか動画をS3で管理しようと思ったらハマったので解決策を書きます。 ハマりどころ .env.productionのS3の設定項目のうち、S3_PROTOCOLだけでなくS3_ENDPOINTも設定しないと、S3のSSLがうまく働かない。 原因 S3_ENDPOINTを設定しないと、画像のURLがhttps://${bucket-name}.sp-${region}. ...
Detail

AWSの無料SSLを使ってmastodonインスタンスを立てる手順 50 users

サーバー周りをAWSで固めてmastodonインスタンスを立てたので、その手順と資料をまとめました。 SSLは無料で使えますが、サーバーの使用料とかは普通にかかります。とはいえ、お1人〜10人鯖ぐらいならEC2のmicroでも動かせるので、そんなにお金はかからなそう。 立て終わった後に書いたので、記憶違いなどあるかもしれません。コメント・編集リクエストしてください なぜAWSなのか 人数 ...
Detail

nteractでIRuby kernelを動かす 1 users

環境: OSX El Capitan 10.11.6 nteractとは ブラウザとJupyter notebookが一体になったもの ネイティブアプリとして動作 *.ipynbをダブルクリックすると、ウィンドウが立ち上がる Jupyterカーネルがあればなんでも動くとのことなので、この文章ではIRubyを動かして見ようと思います。 インストールの手順 nterac ...
Detail