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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ruby on Railsで記述したWebアプリケーションでは,ERBファイルに<%= link_to '/hogehoge', method: :put %>などと記述することにより,aタグがクリックされたときにPUTリクエストを投げることができます.POST,DELETEに関しても同様の記述でリクエストを投…

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

作ったもの*1: https://image2aa.genya0407.net/ AA(アスキーアート)とは AA(アスキーアート)というのは、上の画像のように文字で書かれた絵のことです。一般には「AA職人」が職人芸で作ります。 元々は画像が貼れない2chで絵を表現するための手段だったと…

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

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

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

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

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

熊野寮祭において、寮生でなくても楽しめる企画を列挙し、概要を説明します。 熊野寮祭とは 熊野寮祭とは、京都大学の学生自治寮である熊野寮が毎年開催している祭りです。例年11月末〜12月初頭まで開催されます。今年はちょっと長いですが、11月29日〜12月1…

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

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

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

PNGの規格を勉強する機会があったので、その内容を簡単に説明します*1。 PNGはいくつかの"チャンク"が集まって構成されています。例えば、IHDRチャンクやIDATチャンク、PLTEチャンクなどがあります。では、PNGファイルという単なるバイト列から、どのように…

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

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

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

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