サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
jitsu102.hatenablog.com
yapcjapan.org 2023/03/19 に開催された YAPC::Kyoto 2023 に参加してきました。 久しぶりにオフラインイベントに参加しました。 会場は、はてな創業の地*1、京都リサーチパークでした。 キーノート 素晴らしいキーノートでした。 はてな創業時からの話とてもよかったです。 「モブ」と自虐的に話していましたが、一人のエンジニアがつよつよエンジニアになっていく物語は感動したし、 いろいろ悩んだりするけど自分なりに覚悟を決めてやっていくしかないなと再確認できました。 印象に残ったセッション 小さく始め、長く続けるOSS開発と貢献. OSS へ貢献するというとすごくハードルが高い気がしていましたが、このセッションを聞いて気楽な気持ちで始めて大丈夫そうという気持ちになりました。 OSS 貢献したい気運が高まりました。 あの日ハッカーに憧れた自分が、「ハッカーの呪縛」か
YAPC::Kansai 2017 OSAKA に行ってきました。 以下、参加したセッションと感想などです。 Opening A 会場がいい感じでした。 メールフォームからメールを送る近代的な方法 メールをちゃんと送るのは大変。 バウンスメール処理はしっかりやろう。 Sisimai 初めて知りました。 オープンデータを利用したWebアプリ開発 PosgreSQL に PostGIS で拡張すると、Geometry 型が使えるようになる。 MySQL は、Geometry 型がある。 Elasticsearch 超入門 インストールしてちょっと触ったことがある程度だったので、勉強になりました。 kuromoji 初めて知りました。 Elasticsearch で作る ranking system のスヽメ Elasticsearch でランキングシステムは試したことがなかったので勉強になりま
OS X の OpenSSL はバージョンが古いので、Homebrew の OpenSSL を使うようにします。 $ openssl version OpenSSL 0.9.8zh 14 Jan 2016 OpenSSL インストール $ brew install openssl Homebrew な OpenSSL を使うための設定 以前は brew link コマンドで、Homebrew の OpenSSL を使うようにしましたが、OpenSSL のリンクはできなくなったようです。 $ brew link openssl --force Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated syst
比較的よく使う AWS のサービスが、GCP のどのサービスに該当するかまとめてみました。 GCP のネットワーク周りとかよく分からなかったのですが、主要サービスは揃っているので GCP でも大丈夫かなと思いました。 サービス Google Amazon 仮想マシン Google Compute Engine (GCE) Amazon Elastic Compute Cloud (EC2) エフェメラルストレージ ◯ ◯ 永続ストレージ ◯ Amazon Elastic Block Store (EBS) オブジェクトストレージ Google Cloud Storage Amazon Simple Storage Service (S3) ロードバランサ ◯ Amazon Elastic Load Balancing (ELB) DNS Google Cloud DNS Amazon Ro
正式リリース前に変更点とか確認しておきたかったので、CentOS7 RC 版を VirtualBox にインストールしました。 CentOS 7 (pre-release) tree available for testing – Seven.CentOS.org インストール手順 http://buildlogs.centos.org/centos/7/os/x86_64-latest/images/boot.iso をダウンロードする VM を作成する(1. でダウンロードした boot.iso を起動イメージに指定する) インストール画面で以下を設定してインストールする ネットワーク: 有効化 リポジトリ: http://buildlogs.centos.org/centos/7/os/x86_64-latest yum リポジトリ設定 インストール完了後、/etc/yum.repo
VirtualBox のバージョンアップが結構頻繁に行われるので、box の Guest Additions のバージョンと VirtualBox 本体のバージョンがずれてしまいます。 その度に box を作りなおしたり、起動した仮想マシンで手動バージョンアップするのも面倒なので、vagrant-vbguest*1 を利用して自動バージョンアップを行うようにします。 dotless-de/vagrant-vbguest · GitHub vagrant-vbguest のインストール $ vagrant plugin install vagrant-vbguest $ vagrant plugin list ..... vagrant-vbguest (0.10.0) 設定 vagrant-vbguest は、デフォルトで仮想マシンを起動した時に Guest Additions をバージョ
python 環境が必要になったので、pyenv をインストールしました。 pythonbrew なんてのもあるみたいですが、どの言語もなんとか env が主流っぽいので、pyenv にしました。 yyuu/pyenv · GitHub 事前準備 homebrew のインストール $ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" xcode コマンドラインツールのインストール $ xcode-select –install openssl とか sqlite3 のアップデート os x 標準の openssl と sqlite3 だと、python インストール時にエラーになった*1ので、homebrew で新しめのバージョンにアップデートします。*2 $ brew install readline $ br
Debian の base box の作成です。 CentOS については前のエントリを参照ください。 Packer で Vagrant 用仮想マシン (base box) を作成する - jitsu102's blog ビルドの流れや設定ファイル構成などは、CentOS とほとんど変わりません。 違いは、OS インストール自動化が preseed に変わったくらいです。 付録B preseed を利用したインストールの自動化 設定ファイル構成は以下の感じです。 debian ├── http │ └── preseed.cfg ├── script │ ├── install-virtualbox-guest-additions.sh │ └── setup-base.sh └── wheezy.json packer/debian at master · kjitsukat
YAPC::Asia Tokyo 2013 でもらった 2 万円分クーポンを登録したまま放置していたので、「さくらのクラウド」を使ってみました。 sacloud CLI のインストール API キーの追加 まず、sacloud CLI で使う API キー (ACCESS TOKEN/ACCESS TOKEN SECRET) を追加します。 コントロールパネルにログインします [設定] -> [API キー] -> [追加] をクリックします (名前) sacloud-key (説明) sacloud コマンド node.js のインストール sacloud CLI を使うのに、node.js が必要なのでインストールします。 今回は Mac を使用したので、以下のページから Mac OS X Installer をダウンロードしてインストールしました。 node.js sacloud の
これまで perlbrewを使っていましたが、plenvに乗り換えてみました。 perlbrew と違いプロダクト(アプリケーション)毎に perl のバージョンを指定できたり、バージョン間のモジュール移行ができたりと便利そうです。 以前は perl で実装されていたようですが、shell で再実装されたそうです。 インストール GitHub からインストールします。*1 $ git clone git://github.com/tokuhirom/plenv.git ~/.plenv $ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(plenv init -)"' >> ~/.bashrc $ exec $SHELL -l plenv で perl をインストールするのに実行する perl
WEB+DB PRESS Vol.74 を読んでいて、そろそろ MySQL 5.6 系使ってみるかなと思ったので、お試し環境構築。 いまさらながら、MySQL::Sandbox を使ってみました。 環境 OS: CentOS 6.4 Perl: plenv でインストールした 5.16.3、cpanm もインストール MySQL::Sandbox のインストールと環境設定 cpanm でインストールします。 $ cpanm MySQL::Sandbox MySQL をインストールするためのディレクトリを作成します。 $ mkdir -p $HOME/opt $ mkdir -p $HOME/opt/mysql MySQL のインストール この辺りからインストールするバイナリをダウンロードして、解凍します。 ディレクトリ名が長いので、適当にリネームします。 $ cd $HOME/opt/my
Debian squeeze に MySQL 公式パッケージの 5.5 系をインストールした際の作業メモです。 MySQL 用ユーザーやグループを作ってくれなかったり、mysql_install_db が失敗したりと意外と手数が必要でした。 公式パッケージのダウンロード MySQL :: Download MySQL Community Server から Debian 用のパッケージをダウンロードします。 今回は、mysql-5.5.27-debian6.0-x86_64.deb をダウンロードしました。 ローカルリポジトリの作成 ダウンロードした MySQL パッケージのあるディレクトリで、apt-ftparchive コマンドを実行し、ローカルリポジトリを作成します。 /var/local/deb_pkg をローカルリポジトリ先としました。 $ cd /var/local/deb_p
放置状態だったUbuntu 11.10に、PerlとRubyの開発環境を構築しました。 ubuntuには、perlbrewとrvmがパッケージで用意されているのでサクッと構築。 と思ったら、Perlのインストールが失敗したり、rvmの使い方が分かっていなかったりと、ちょっとハマったので、せっかくの機会なのでメモとして残しておきます。 下準備 いろいろと必要になるので、build-essential をインストールします。 $ sudo aptitude install build-essential Perl開発環境 1. perlbrew システムのPerlは使いたくないので、perlbrewでPerlをインストールします。 ~/work/perl5/perlbrew の配下にインストールすることにします。 $ sudo aptitude install perlbrew $ PERLB
今まで使ってきた512プランが今月末で更新タイミングだったので、ディスク容量ほしさに1Gプランに乗り換えました。 ついでにCentOSからDebianへ変更したので、その作業メモです。 Debianのインストール 以下のページを参考にDebianをインストールします。 Debian 6|カスタムOSインストールガイド|さくらのVPS|さくらインターネット公式サポートサイト 完了後、アップデートを実行します。 # aptitude update # aptitude safe-upgrade sshの設定 使用しているSSH鍵の公開鍵をサーバーへscpして、authorized_keysにセットします。 (client)$ scp ~/.ssh/id_rsa.pub vps-user@VPS-Server:/home/vps-user (vps)$ mkdir ~/.ssh (vps)$ c
モニタツール、便利ツールをインストールしました。 percona-toolkit 以前はMaatkitと呼ばれていた便利ツール集です。 $ sudo aptitude install libtime-hires-perl libdbi-perl libdbd-mysql-perl $ wget http://www.percona.com/redir/downloads/percona-toolkit/2.0.3/percona-toolkit-2.0.3.tar.gz $ gzip -dc percona-toolkit-2.0.3.tar.gz | tar xvf - $ cd percona-toolkit-2.0.3 $ perl Makefile.PL $ make $ make test $ sudo make install ホームディレクトリの.my.cnfファイルにMyS
復習を兼ねて。 セッション管理 今さら説明する必要はないと思いますが、HTTPプロトコルはクライアントからWebサーバーへのリクエスト毎にコネクションの接続/切断が行われるため、画面遷移が発生するとリクエストが同一クライアントから送信されたものか判断できません。 そのため、ログインからログアウトまでユーザ情報を保持する必要があるシステムでは、セッション管理という仕組みが必要です。 セッション管理を実現するには、以下のような方法が考えられます。 情報をサーバ、クライアント(ブラウザ)間で渡し続ける hiddenフィールドやURLパラメータ 情報をクライアント(ブラウザ)に保存 cookie 情報をサーバに保存 今回は、"2"と"3"を併用する形としました。 クライアント(ブラウザ)側にはCookieでセッションIDのみを保存し、その他の情報はサーバ側のMySQLに保存することとしました。 P
恥ずかしながら、bcコマンドなるものを初めて知りました。 入力値と出力値の基数の指定もできるので、2進数->10進数変換とか簡単にできます。 (簡単な計算) $ echo "4+10" | bc 14 (16進数変換) $ echo "obase=16;5+9" | bc E (2進数->10進数変換) $ echo "obase=10;ibase=2;11111111" | bc 255 ここで注意しなければならないのが、"obase"と"ibase"の設定順序です。 基本的には"obase"を先に指定した方が良いです。 "ibase"を先に指定すると、その時点で入力値は"ibase"で指定した基数と判断されるので、"obase"で指定する数値も"ibase"で指定した基数で判断されます。 上記の例を"ibase"と"obase"の設定順序を変えると10進数変換されません。 ※"ibas
DebianでNIC交換した(MACアドレスが変わった)場合に"ethX"の数字が変わってしまった時の対処方法。 設定ファイルの場所を、すぐに忘れてしまうので、備忘録的メモ。 "/etc/udev/rules.d/70-persistent-net.rules"にNIC毎の定義があるので、"NAME"の設定を変更する。 SUBSYSTEM=="net", …(省略)…, ATTR{address}=="XX:XX:XX:XX:XX:XX", …(省略)…, NAME="eth1"
KVMゲストOS(Scientific Linux)へのコンソール接続設定方法です。 設定箇所は、ゲストOSの"/boot/grub/grub.conf"です。 (省略) hiddenmenu serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1 # 追加 terminal --timeout=5 serial console # 追加 title Scientific Linux (2.6.32-131.6.1.el6.x86_64) root (hd0,0) kernel (省略) console=tty0 console=ttyS0,115200n # 追加 initrd /initramfs-2.6.32-131.6.1.el6.x86_64.img serial行とte
漢(オトコ)のコンピュータ道: lessでソースコードに色をつける Homebrewでやってみました。 GNU Source-highlight を brew install するだけですけどね!! MacPortsな方はこちらのエントリを参照ください。 lessでソースコードに色をつける(Mac OS編) - YAMAGUCHI::weblog インストール $ brew install source-highlight Homebrewの場合、src-hilite-lesspipe.sh は /usr/local/bin に入ります。 設定 ~/.bashrc や ~/.profile あたりに、環境変数を設定します。 export LESS='-R' export LESSOPEN='| /usr/local/bin/src-hilite-lesspipe.sh %s' 環境変数を読
mysqlcheck コマンドは、テーブルのチェック、分析、最適化、修復を行うことができます。 MySQLサーバ稼働中でも実行できるので、カジュアルにテーブルチェックなどができます。 1. テーブルのエラーチェック c オプションでエラーチェックができます。 test データベースのtest_table テーブルをチェックする場合は、以下のように実行します。 $ mysqlcheck -c test test_table -u root -p Enter password: test.test_table OK test データベースの全テーブルをチェックする場合。 $ mysqlcheck -c test -u root -p 全データベースのテーブルをチェックする場合。 $ mysqlcheck -c -u root -p --all-databases 2. テーブルの分析(Anal
プロセスに attach してトレースするデバッグコマンド strace の基本的な使い方です。 1. 実行コマンドをトレースする $ strace ls execve("/bin/ls", ["ls"], [/* 46 vars */]) = 0 brk(0) = 0x1ab9000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcf695fb000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so
このエントリを読んでいたら、知らないツールがあったので使ってみました。 pmap(Procps) IPTraf ntopng – ntop 今回は、Ubuntu 11.10で使用してみましたが、RedHat系でも同様に使用することができると思います。 pmap pmap はプロセス毎のメモリ使用状況を表示します。 引数にPIDを付与して実行します。 (インストール) $ sudo aptitude install procps (実行例) $ sudo pmap 533 533: /usr/sbin/sshd -D 00007f49e1137000 48K r-x-- /lib/x86_64-linux-gnu/libnss_files-2.13.so 00007f49e1143000 2044K ----- /lib/x86_64-linux-gnu/libnss_files-2.13.
bash 4.*でハッシュ(連想配列)が使えるようになったので使ってみました。 標準だとbash 3.*系のディストリビューション*1が多いと思うので、使う機会はまだ少ないかもしれません。 #!/bin/bash declare -A capital # -Aでハッシュ宣言 capital["Japan"]="Tokyo" capital["France"]="Paris" capital["Italy"]="Roma" for idx in Japan France Italy; do echo ${capital[$idx]} # Tokyo Paris Roma done 一括代入する場合は、以下のような感じです。 declare -A capital capital=(["Japan"]="Tokyo" ["France"]="Pris" ["Italy"]="Roma") bas
Linuxで意図的に負荷を与える場合、CPU負荷なら以下のような無限ループを実行したり、ディスク負荷なら大きなファイルを書き込んだりしていました。 $ perl -e 'while (1) {$i++}' しかし、上記の方法だと思ったような負荷を与えることができない場合がありました。 そんな時は、stressコマンドを使用すると良いようです。 stressのインストール まずは、stressパッケージをインストールします。 $ sudo aptitude install stress 負荷を与えてみる $ stress --cpu 4 --timeout 1m 1分間4プロセスで"sqrt()"を実行し、負荷を与えます。 $ stress --hdd 1 -timeout 1m 1分間ディスクに負荷を与えます。 その他にも、"sync()"を実行したり、"malloc()/free()"を
MySQLで整合性のあるバックアップを取得するのに、 "FLUSH TABLES WITH READ LOCK"でテーブルロック バックアップ処理(mysqldumpやスナップショット) "UNLOCK TABLES"でロック解除 みたいなスクリプトを実行していたが、"FLUSH TABLES WITH READ LOCK"って必ず数ミリ秒みたいなレベルでロックできるのかなと疑問に思った。 結構時間のかかるクエリが処理されていたりすると、すぐにロックできないんではないかと思った。 ちょっと調べてみると、やはりすぐにロックされない可能性もあるようだ。*1 FLUSH TABLES WITH READ LOCKの速度について ということで、"FLUSH TABLES WITH READ LOCK"後に、以下のような確認処理を追加した。 "SHOW PROCESSLIST"を実行して、"FLUS
android.widget.Chronometerのお勉強に、シンプルなストップウォッチを作ってみました。 Chronometerの使い方は、 Chronometerの定義 setBaseで基準時刻の設定 startメソッドでタイマー開始 stopメソッドでタイマー停止 といった感じです。 以下、コードです。 (StopWatchActivity.java) package com.example.android.stopwatch; import android.app.Activity; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.Chronometer; pu
いろいろな方法があるのでまとめてみました。 実装パターンとしては以下の4つが考えられますが、1と2以外はほとんど使わないと思います。 Activityに実装(implements View.OnClickListener) Layoutファイルにメソッド指定(android:onClick) 無名クラス 有名クラス Activityに実装 (main.xml) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" >
FreeBSD 4系とか5系とかだとカーネル再構築が必要なようですが、8.2Rでは必要ありません。 ネット上には古い情報が多かったので、FreeBSD 8.2Rでのdummynet設定メモです。 実現したいこと 高遅延な環境を構築する インライン(ブリッジ)で接続する 構成 OS: FreeBSD 8.2R(x86_64)*1 H/W: NICを2枚挿していて、FreeBSDで認識していること 構成図: 以下の感じ [Client PC(192.168.0.10)] <-----> [(bge0) FreeBSD (bge1)] <-----> [Client PC(192.168.0.20)] 設定内容 以下では、FreeBSD上のNICを"bge0"と"bge1"として記載しています。 (/etc/rc.conf) cloned_interfaces="bridge0" ifconfi
次のページ
このページを最初にブックマークしてみませんか?
『jitsu102's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く