ブックマーク / app2641.hatenablog.com (18)

  • Sonic Pi を使って Ruby で音を楽しむ - Lazuli

    Ruby Advent Calendar 2018 の12日目の投稿です。 Sonic Pi とは? Sonic Pi は音楽Ruby でライブコーディングできる IDE です。現時点での最新版は v3.0.1 です。 内部的には Super Collider という音響合成環境の Ruby ラッパーとなっています。 と、突然音楽用ライブコーディング IDE と言われても聞き慣れないものなのでイメージしにくいかもしれません。 どんなことが出来るのか、作者である Sam Aaronさんが実際にパフォーマンスをしている様子を YouTube に投稿しているので置いておきます。 www.youtube.com めちゃくちゃかっこいいですよね!!そして頭がおかしい! 今回は、そんなSonic Pi の使い方を簡単に説明していきます。 音楽用語がいくつか載っていますが、今回それらについては説明し

    Sonic Pi を使って Ruby で音を楽しむ - Lazuli
    app2641
    app2641 2018/12/12
    書いた
  • PHP でマイグレーション - Lazuli

    ってみんなどうやってるんだろう? Phinx とかいうのが Cake に採用されたと聞いて使ってみたけど、なんか微妙。 Phinx Rails のマイグレーションを見に作ったようで、 Rails のコマンドと同じように動く。 ただ、細かいカラムの設定とかできず、大味でしか使えない。つらい。 特に MyISAM 使えるのに Fulltext インデックス貼れないとか致命的。 開発もなんだか止まってる様子(issueが90, pullreqが20くらい溜まってる)で Cake はこれでいいのかという思い。 Phinx 諦めて他にいい感じのツールないかと探したけどパッとしたのが見つからず…。みんなどうしてるんだろう。あれやこれやのフレームワークに入ってるのもなんかいまいちな感じ。 結局、Phinx を Fork して自分好みに作り変えるかって結論に落ち着きそうでそれはそれで良いんだけど他にある

    PHP でマイグレーション - Lazuli
    app2641
    app2641 2015/01/21
    知りたい
  • phpenv-apache-version プラグインについて - Lazuli

    phpenv と php-build rbenv というツールがあって、これは ruby のバージョンを管理出来るすぐれもの。このプロジェクトでは 2.0 でやりたいけどあれは 1.9 でやりたいとかそういうの場合にバージョンをすぐに切り替えられる。従来は一度端末にインストールやアップデートするとバージョン固定されてしまうけどそういう問題を解決することが出来る。 phpenv は rbenv をラップして作られたツールで、名前の通り php で rbenv のような機能を実現する。容易にバージョンを切り替えられるので大変便利。php-buildphp のインストールに使う。 $ brew install phpenv php-build $ php-build 5.6.0 ~/.phpenv/versions/5.6.0 $ phpenv global 5.6.0 $ phpenv

    phpenv-apache-version プラグインについて - Lazuli
    app2641
    app2641 2014/09/01
    書いた
  • Beans というライブラリを作った - Lazuli

    フレームワーク使うほどでもなく、でも素のコードではちょっとしんどいみたいなプログラムを書くときがある。 そういう帯に短し襷に長し的なのを作る用の俺々ライブラリを作った。 中二病のような名前だけど気にしない。 SapphireBeans EmeraldBeans GarnetBeans 以下、雑に説明していく。 SapphireBeans データベースライブラリ。 Composer から app2641/sapphire-beans でダウンロード出来る。 適当な場所に database.ini を作り、DB_INI_FILE という定数を指定する。 [develop] db = "hoge" host = "localhost" username = "root" password = "root"<?php define('DB_INI_FILE', '/path/to/database

    Beans というライブラリを作った - Lazuli
    app2641
    app2641 2014/05/21
    書いた
  • IT 勉強会通知サービス ITC を作った - Lazuli

    ITC とは 前のエントリで言ってた勉強会通知サービスを作った。 ITC 登録フォーム メールアドレスを登録しておくと一日一回 IT 勉強会カレンダー に登録された新着情報をメールにお届けするサービス。新しい登録がなければメールは送られない。 こんな感じで届く。 仕組み Google カレンダーのフィードを解析して Json 化したデータを S3 に置く。そのあと GoogleAppsScript で Json をごにょごにょして Gmail から送ってるだけ。GAS 使ってるのは自分のサーバにメール送信で負荷掛けたくなかっただけ。そのせいで俺のアドレスからメールが届くけどまあ細けえこたぁいいんだよ。 Json は公開して置いてあるので何かに使いたい変な人は好きに使うといいと思う。 http://app2641.com/resources/json/itc.json カレンダー解析のほうは

    IT 勉強会通知サービス ITC を作った - Lazuli
    app2641
    app2641 2014/03/30
    作って書いた
  • DatabaseS3Backup というツールを作った - Lazuli

    はじめに データベースのデータを S3 にバックアップするツールを作った。PHP! PHP! PHP! 一日に一回くらいバックアップを取っておけばもし心が壊れてしまいそうな諸問題が起きたとしても昨日のデータが S3 あるからまあいいかという気分になれる。心の余裕は大事。マンキンでも言ってた。 app2641/DatabaseS3Backup · GitHub 使い方 まず必要なライブラリを composer でインストールする。 $ cd libraray/composer $ composer.phar install 次に configs ディレクトリに入ってる設定ファイルをごにょごにょする。orig ファイルをコピーして設定ファイルを作る。 $ cp configs/aws.ini.orig configs/aws.ini $ cp configs/database.ini.orig

    DatabaseS3Backup というツールを作った - Lazuli
    app2641
    app2641 2014/02/12
    久しぶりに書いた気がする。なんか S3 にバックアップするツールの話。
  • GoogleAppsScript で ChatWorkAPI を使ってみた - Lazuli

    はじめに ここにあるように最近、ChatWorkAPI のプレビュー版が公開された。色々いじってる。 うちの会社ではその日の予定をGoogleカレンダーで管理してるんだけど、いかんせん自分から予定を見に行こうとしないと把握出来ない。チャットなら常時開いてるし日付変わった時に ChatWork に予定をポストしときゃいいんじゃないかなーと。 GoogleAppsScript (GAS) なら GoogleApps の相性が抜群なのでそれで。 GAS で Google カレンダーを操作する カレンダー情報を取得してから今日の予定を取得する。CalendarApp クラスを使う。扱い易くて良い。 function getCalendarSchedule () { var calendar = CalendarApp.getCalendarByName('予定')[0], events = cal

    GoogleAppsScript で ChatWorkAPI を使ってみた - Lazuli
    app2641
    app2641 2013/12/13
    GAS で ChatWorkAPI 叩く話を書いた
  • 新垣結衣に救われる Chrome 拡張を作った - Lazuli

    こんなエントリを偶然見つけた。 すぐに吉高由里子を見れるGoogle Chromeの拡張作った。 - パルカワ2 羨ましい。俺も新垣結衣に救われたい。 だから Chrome 拡張を作った。 Chrome ウェブストア - YuiButton 拡張入れるとツールバーにダウンロードボタンみたいなのが追加される。 それをクリックすると新垣結衣が現れる。心も洗われる!!!!!!!! 技術的な話 とりあえず TumblrAPI を使って画像を取得してる。 適当にアプリ名とか登録すればすぐに使えて便利だった。 http://api.tumblr.com/v2/tagged?tag=新垣結衣&api_key=ほにゃららこんな感じでリクエストすると新垣結衣タグのポストが取れる。 簡単便利。すごい。 しんどいときは新垣結衣に救われよう。 Enjoy!

    新垣結衣に救われる Chrome 拡張を作った - Lazuli
  • 恋愛サーキュレーションのリミックスがかっこいい - Lazuli

    はじめに プログラムの話じゃないです。 リミックスがかっこいい 恋愛サーキュレーションっていう曲があってこれのリミックスがネット上にいくつも出回ってる。かなりかっこよくて超好き。中毒性高い。 どうやらアニメ「化物語」の千石撫子ってキャラのキャラソン?らしいんだけど見たことないからよくわからん。 原曲 【花澤香奈】恋愛サーキュレーション - YouTube この原曲がこんなふーにリミックスされてかっこよく変化するんだぜっていうのを言いたい。声を大に。かっこいい。 ちなみにニコニコとかyoutubeにも結構リミックスあるんだけどSoundCloud大好きな俺はSoundCloud贔屓する。 カットアップやばい。かっこいい。 これで初めて恋愛サーキュレーション知った。 時報リミックス。ペットの音が超いい。かっこいい。 リミックスはまりのきっかけ曲。 ベースラインがヤスタカチックだなーと思ってたら

    恋愛サーキュレーションのリミックスがかっこいい - Lazuli
  • 暇つぶし用Androidアプリを作りました! - Lazuli

    概要 2chのコピペをランダムに表示させる暇つぶし用アプリを先日公開したよ。 ゲスいアプリ名で申し訳ない。 広告でお小遣いが欲しかったんだ!! 爆笑!2chランダムコピペ集 -- Androidアプリ アプリの構成 お小遣い渇望という不純な動機だけど、アプリの構成自体は平凡です。 使用言語 まず、アプリ自体はネイティブにJavaで書いた。Titaniumは環境構築に何やら手間取ってやめた。諦め肝心。 Java経験皆無だったけどなんとかなってよかった。きっとこれまでに幾度と無く公開・開発を断念したクソアプリたちのおかげですんなり作ることが出来たんだと思う。何事も書いて慣れていくことだなとベタながら改めて痛感。次作る時はデザインパターン使ったりとか効率的な書き方を模索したいな。 コンテンツ収集 コンテンツっていうかコピペについて。 今回のアプリではコピペデータをランダムボタンを押す度にサーバか

    暇つぶし用Androidアプリを作りました! - Lazuli
  • ExtJS MessageBoxのボタンテキストを変更する - Lazuli

    Ext.window.MessageBoxクラス Sencha Docs -- Ext.window.MessageBox ExtJS使ってる人はお馴染みのクラス。 アラートダイアログとかプロンプトダイアログとかを容易に作ることが出来る。 Ext.Msg.show({ title: 'Caution', msg: 'You are wroung!', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); こんな感じで書くと、 こんなダイアログが表示される。 簡単。 ボタンテキストを変更したい 通常ダイアログのボタンに使えるテキストは OK, NO, YES, CANCELのみ(確か)。 これをカスタムするにはどうするんだと調べてみたのでそれを。 結論から言うと、buttonTextというプロパティを使う。 Ext.Msg.show({ title: 'C

    ExtJS MessageBoxのボタンテキストを変更する - Lazuli
    app2641
    app2641 2013/08/02
    書いたー。
  • Chrome拡張 ToAllForChatworkを作りました - Lazuli

    なにそれ? Chrome拡張機能 ToAllForChatwork というプラグインを作りました。 Chrome ウェブストア - ToAllForChatwork app2641/ToAllForChatwork · GitHub 社内の簡単なコミュニケーションにチャットワークというツールを使用しています。 グループチャットという複数人チャットで色々話しあうわけですが、チャットワークではグループチャット内でメンバーを指定して話しかけることが出来ます。 AとBとCという人とグループチャットをした場合、A宛を明示してチャットをなげることが出来るわけですね。 下記のような書き方です(一行目はチャットワークが自動で入力してくれます)。 [To:{AのチャットID}] Aさん 以前依頼したあれどうなってん?しかし、チャットメンバー全員宛にしたい場合でも、Toをひとつずつつらつらと連ねていかなければ

    Chrome拡張 ToAllForChatworkを作りました - Lazuli
    app2641
    app2641 2013/06/25
    作って書いたっぽ。
  • テンプレートエンジンSlimを使おう - Lazuli

    Slimとはなんぞや Slimはruby製のHTMLテンプレートエンジンで、htmlの生成が楽ちんになるよっていう便利なツール。 使ってみて良い感じだったので備忘録。 Slim - A Fast, Lightweight Template Engine for Ruby Slimを使うと Slimではslimファイルという拡張子slimのファイルを使用する。 Slim独特の記法で記述をしてhtmlを生成する。 sample.slim doctype html html head title Sample! body h1 Hello, World! div#main-container p | おはよう br | こんにちは br a href="#" おやすみこのsample.slimから生成されるsample.html <!DOCTYPE html> <html> <head> <ti

    テンプレートエンジンSlimを使おう - Lazuli
    app2641
    app2641 2013/06/21
    書いた。せるくまー。
  • SQLiteはPDOで操作すると捗るよ - Lazuli

    最近、SQLiteを利用するシーンが多い。 phpSQLiteを使うには、 <?php $db = sqlite_open('/path/to/sqlite.db'); $sql = 'insert into hoge (name) values ("foo")'; sqlite_query($db, $sql); 的な感じで操作するのが一般的だったらしいんだけど、いざ使ってみると「file is encrypted or is not a database」というエラーが出る。あるぇー?とおもむろにエラーをGoogle先生に尋ねるとどうやらsqlite3で作ったDBsqlite_openでは利用出来ないようだ。ほうほう。 ほんならどうやって操作すんのと再びGoogle先生に懇願。普通にPDOで操作できるとのこと。 以下のように。 <?php $pdo = new PDO('sqlit

    SQLiteはPDOで操作すると捗るよ - Lazuli
    app2641
    app2641 2013/04/17
  • サーバを持たない全自動アダルトサイト「AdultMidnight」を作りました - Lazuli

    はじめに 表題のサイトを作りました。 ロボットが様々なアダルトサイトを渡り歩いてその日更新されたコンテンツを収集して表示させるサービスです。星マークをクリックすると動画ページへ移動します。 アダルトサイトなので18歳未満は閲覧禁止。 全自動アダルトサイト AdultMidnight 以下、AdultMidnightを作るために使用した技術などを簡単に書いておきます。 サイトのコンセプト AdultMidnightを作るにあたり、ふたつのコンセプトを設定しました。 出来るだけサーバを持たないこと 今までゴミみたいなサービスをいくつか作ってきた中で一番面倒だったのがサーバの管理です。監視とかセキュリティとか負荷分散。手間がかかってしんどいと感じていました。 なので、今回作るサイトはサーバ管理の手間をなるべくなくすことを第一のコンセプトに設定しました。実際にAdultMidnightはsshでロ

    サーバを持たない全自動アダルトサイト「AdultMidnight」を作りました - Lazuli
    app2641
    app2641 2013/04/02
    全自動アダルトサイト「AdultMidnight」を作りました
  • AutoScalingのas-put-scheduled-update-group-actionコマンドが便利すぎる - Lazuli

    AWS AutoScaling AWSには AutoScaling という機能があって、事前に設定したパラメータでEC2インスタンスをスケールアウトすることが出来る。たとえばCPUが60%以上の状態が5分続いたらとか、SQSがいくつ溜まったらとか、を監視してインスタンスを立ち上げられる。負荷分散が容易。 そのAutoScalingにはas-put-scheduled-update-group-actionというコマンドが存在する(コマンド名長い)。あらかじめ指定しておいた時間にAutoSalingGroupの設定を変更することが出来るコマンド。 例えばこんなふうに。 $ as-put-scheduled-update-group-action SampleScheduledAction --auto-scaling-group SampleAutoScalingGroup --region

    AutoScalingのas-put-scheduled-update-group-actionコマンドが便利すぎる - Lazuli
    app2641
    app2641 2013/03/25
    書いた。
  • 【読了】誰のためのデザイン?―認知科学者のデザイン原論 - Lazuli

    経緯 「誰のためのデザイン?―認知科学者のデザイン原論」を読んだ。どこだったかのブログでアフォーダンスという概念についてこのを挙げつつ言及していて、なにそれーわからんってところから購入。 90年代に初版が出たのかな?有名ならしい。結構古めので登場するデザイン例は時代を感じるものがあるけど書いてある内容自体は現代でも充分通用する話だったから特に古臭さを感じることはなかったな。 デザインって初めて読むけどなんつーか右脳が活性化する。いつもと違う脳を使って思考してる感じが新鮮だった。ちなみにこのでいうデザインはインターフェイス的なものを指していて、ファッション系ではない。 誰のためのデザイン?―認知科学者のデザイン原論 (新曜社認知科学選書) 作者: ドナルド・A.ノーマン,D.A.ノーマン,野島久雄出版社/メーカー: 新曜社発売日: 1990/02メディア: 単行購入: 36人 ク

    【読了】誰のためのデザイン?―認知科学者のデザイン原論 - Lazuli
    app2641
    app2641 2013/02/09
    ブログ書いた
  • 自分好みのコマンドを - Lazuli

    よく使う処理をコマンドに登録して簡単に呼び出す簡易コマンドアプリケーションを作ったった。phpで動いてる。名前空間も使ってるから5.3以上必須。 - Rasp - app2641/Rasp · GitHub 使い方 下記のコマンドを打つとあらかじめ登録しておいたTestコマンドが実行される。 $> rasp Test Raspの設定 残念ながらgitから持ってきただけでは使えない。AutoLoaderのインストールとパスの設定が必要。 AutoLoaderのインストール Symfony2のAutoLoader使ってる。composerでちょちょいと拝借。 $> cd /Path/to/Rasp/library/composer $> composer.phar install パスの設定 .bashrcに下記のパスを追記。記載したら忘れずに.bashrcを再読み込み。 export PAT

    自分好みのコマンドを - Lazuli
    app2641
    app2641 2013/01/31
    作って書いた。
  • 1