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

この記事は CAMPHOR- Advent Calendar 2018 3日目の記事です.

高校の文化祭の食販の注文フローを電子するべくWebアプリケーションを作り,当時*1はWeb素人だったためクソ実装になったが,役には立ったという話をします.

*1:2013年

続きを読む

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

bit-valley.jp

先日BIT VALLEY 2018というイベントがあり、そのAFTER PARTY(懇親会)で「熊野寮で電子化した話」というタイトルでLTをした。

これがその時のスライド。

内容としては、手作業の塊みたいな地獄のタスクがあり、これをWebアプリ化して担当者の仕事量を削減したという話。

続きを読む

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

MySQLに入ってるデータの傾向をグラフで見たい、しかしgrafanaとかkibanaとかは導入したくないし、グラフを描画するプログラムを書くなんて論外という事があると思います。

そういうときにおすすめなのがこのワンライナー!必要なのはmysqlクライアントとgnuplotだけ!

はい。

$ mysql dbname -u root --password=passwd -e "SELECT timestamp, value FROM tbl WHERE some=condition" | gnuplot -e 'set terminal dumb 150 30; set xdata time; set timefmt "%s"; plot "<cat" using 1:2 with line;'

gist5e6cb1eb0b6d56bf5642471d18e0ad2f

f:id:threetea0407:20180907215322p:plain

続きを読む

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

トップレベルスタイル とは、以下のような書き方のことを指します:

require 'sinatra'

get '/hello' do
  'hogehoge'
end

このスタイルで書かれたSinatraアプリケーションが、どのような手続きで起動しているのかを解説します。

続きを読む

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

やりかた

app.rb を↓のように書き、

require 'sinatra'

class Rack::MethodOverride
  ALLOWED_METHODS=%w[POST GET]
  def method_override(env)
    req = Rack::Request.new(env)
    method = req.params[METHOD_OVERRIDE_PARAM_KEY] || env[HTTP_METHOD_OVERRIDE_HEADER]
    method.to_s.upcase
  end
end

enable :method_override

put '/hoge' do
  # do awesome things
end

htmlの方で↓のように a タグを書きます。

<a href='/hoge?_method=PUT&hoge=fuga'>PUTを投げる</a>

このリンクをクリックすると、hoge=fugaという内容のPUTリクエストが飛びます。

注意 :クローラがやってくるとPOST/PUT/DELETEリクエストが飛びまくります。クローラがやってくるWebアプリケーションでこれをやるのは絶対にやめたほうが良いでしょう。

続きを読む

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

作ったもの:

https://image2aa.herokuapp.com/

AA(アスキーアート)とは

http://kaomojich.com/wp-content/uploads/yaruo/yaruo_03.gif

AA(アスキーアート)というのは、上の画像のように文字で書かれた絵のことです。一般には「AA職人」が職人芸で作ります。

元々は画像が貼れない2chで絵を表現するための手段だったと思われますが、近年はフォントの違いによって絵が崩れるのを防ぐためにAAの画像を貼るまとめブログなどもあるようです。

アスキーアートを自動で生成したい!

f:id:threetea0407:20180203174748p:plain:w400

AA作成には特殊な技術が必要なので、一般人はAAを作れません。

僕だって好きなキャラクターのAAを作りたいのに...

AAを画像から生成できればいいのに...

それRustでできるよ

続きを読む