<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on oinume journal</title>
		<link>https://journal.lampetty.net/posts/</link>
		<description>Recent content in Posts on oinume journal</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Sat, 06 Jun 2026 19:05:41 +0900</lastBuildDate>
		
			<atom:link href="https://journal.lampetty.net/posts/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>はてなブログから移行</title>
				<link>https://journal.lampetty.net/posts/migrate-to-hugo-from-hatena-blog/</link>
				<pubDate>Sat, 06 Jun 2026 19:05:41 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/migrate-to-hugo-from-hatena-blog/</guid>
				<description>&lt;p&gt;このブログをはてなブログからHugo + Firebase Hostingに移行した。はてなブログは2014年から12年間もの間使っていたのでなんとも感慨深い。はてなブログProを年間契約していて、毎年サブスクの更新前になると「そろそろブログ移行しないとな〜」と思ってずっとやれていなかった。しかし、今年はコーディングエージェントの力を借りて課金前に滑り込みで移行することができた。本当にコーディングエージェントはすごい＆ありがたいことこの上ない。&lt;/p&gt;</description>
			</item>
			<item>
				<title>iOSのショートカットで朝ごはんの内容を音声でメモアプリに記録する</title>
				<link>https://journal.lampetty.net/posts/add-text-to-apple-notes-with-voice-input/</link>
				<pubDate>Thu, 30 Apr 2026 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/add-text-to-apple-notes-with-voice-input/</guid>
				<description>&lt;p&gt;毎朝息子に朝ごはんを作っているのだけど、レパートリーが少ないため3日間同じメニューになってしまったりするので、最近はメモアプリに何を食べたか記録してなるべく違うものになるように工夫していた。でで、スマホからメモアプリを起動して入力するのが面倒だったので、ショートカットアプリで音声入力でメモアプリに残すように半自動化してみたという話。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Bashの起動を高速化した</title>
				<link>https://journal.lampetty.net/posts/optimizing-bash-startup/</link>
				<pubDate>Mon, 16 Mar 2026 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/optimizing-bash-startup/</guid>
				<description>&lt;p&gt;最近Bashを起動する速度がどんどん遅くなっているなと感じたので、Claude Codeに高速化を依頼した。&lt;/p&gt;&#xA;&lt;h2 id=&#34;パフォーマンスの可視化&#34;&gt;パフォーマンスの可視化&lt;/h2&gt;&#xA;&lt;p&gt;まず手始めに、Bash起動時に何に時間がかかっているのかをわかるようにしてもらった(&lt;a href=&#34;https://github.com/oinume/dotfiles/pull/13&#34;&gt;PR&lt;/a&gt;)。&lt;/p&gt;</description>
			</item>
			<item>
				<title>mineoに乗り換えて1年経った</title>
				<link>https://journal.lampetty.net/posts/mineo-1-year/</link>
				<pubDate>Sun, 01 Mar 2026 10:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mineo-1-year/</guid>
				<description>&lt;p&gt;スマホのSIMをMVNOのmineoに切り替えて1年以上が経って、かなり満足しているのでここにその良さを書いておく。mineoの前は、新規契約はストップしている&lt;a href=&#34;https://service.ocn.ne.jp/mobile/&#34;&gt;OCNモバイルONE&lt;/a&gt;を使っていた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Claude Codeの設定の差分を吸収するsettings.jsonの管理方法</title>
				<link>https://journal.lampetty.net/posts/managing-claude-code-settings/</link>
				<pubDate>Sun, 15 Feb 2026 00:05:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/managing-claude-code-settings/</guid>
				<description>&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;会社のPCと個人PCでClaude Codeを使っているのだけど、&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;会社PCではAPI Keyによる従量課金方式&lt;/li&gt;&#xA;&lt;li&gt;個人PCはサブスクのProプラン&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;となっている。permissionsの設定などで秘伝のタレ化している ~/.claude/settings.json は共通化して管理したいが、会社PCの ~/.claude/settings.json にはAPIキーやその他会社環境固有の環境変数を定義する必要があるため、会社PCと個人PCで発生する差分をどうにかしたい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apple Developer Programに加入せずにReact Native(expo)でiOSアプリを実機にインストール</title>
				<link>https://journal.lampetty.net/posts/deploy-ios-app-without-adp/</link>
				<pubDate>Sat, 14 Feb 2026 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/deploy-ios-app-without-adp/</guid>
				<description>&lt;p&gt;「こんなアプリがほしい」と思ってExpoで作ってみたものを実機にインストールして使ってみたかった。調べたらApple Developer Programのお布施を払わなくてもインストールする方法があったのでメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2026年1月時点での作業環境</title>
				<link>https://journal.lampetty.net/posts/work-environment-202601/</link>
				<pubDate>Mon, 26 Jan 2026 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/work-environment-202601/</guid>
				<description>&lt;h2 id=&#34;マシンos&#34;&gt;マシン＆OS&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;メインPCはmacOS&lt;/li&gt;&#xA;&lt;li&gt;VPSではUbuntu&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;アプリ&#34;&gt;アプリ&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Browser: ChromeたまにSafari&lt;/li&gt;&#xA;&lt;li&gt;IDE: IntelliJ IDEA&lt;/li&gt;&#xA;&lt;li&gt;Editor: VScode。コードを書くときはIntelliJで、ちょっとしたテキストの編集をする際はVScode&lt;/li&gt;&#xA;&lt;li&gt;Terminal: iTerm + tmux + fzf&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tmuxがちゃんと動くならGhosttyに乗り換えたいかも&lt;/li&gt;&#xA;&lt;li&gt;fzf, tmuxは10年以上使ってる気がする&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Shell: Bash&#xA;&lt;ul&gt;&#xA;&lt;li&gt;昔はZsh使っていたがカスタマイズが面倒になってBashにした&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Coding Agent: Claude Code, たまにCodex。去年はCursorを使っていたが最近は使ってない&lt;/li&gt;&#xA;&lt;li&gt;Launcher: Raycast&lt;/li&gt;&#xA;&lt;li&gt;タスク管理: Reminder&lt;/li&gt;&#xA;&lt;li&gt;パスワード管理: 1Password&lt;/li&gt;&#xA;&lt;li&gt;その他: Homerow, Giphy&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;メモアプリ&#34;&gt;メモアプリ&lt;/h2&gt;&#xA;&lt;p&gt;去年はObsidianを使ってみたが、あまり馴染まずで結局macOSのメモアプリ＋Notionに戻った。Notionはスマホからの編集が絶望的にやりにくいので、一時的にメモアプリに書いて、長期で保存する必要があるメモをNotionに入れるスタイル。Notionのデータベースは情報を整理するのには向いているので、長期記憶のデータベースとして活用している&lt;/p&gt;</description>
			</item>
			<item>
				<title>2025年の振り返りと2026年</title>
				<link>https://journal.lampetty.net/posts/2025-and-2026/</link>
				<pubDate>Tue, 20 Jan 2026 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/2025-and-2026/</guid>
				<description>&lt;p&gt;時間が無さすぎて完全に振り返りを忘れていた😇&lt;/p&gt;&#xA;&lt;p&gt;2025年は仕事以外にいくつか新しいことを始められた良い年であった。&lt;/p&gt;&#xA;&lt;h2 id=&#34;音楽&#34;&gt;音楽&lt;/h2&gt;&#xA;&lt;p&gt;2025年に行ったライブは&lt;a href=&#34;https://journal.lampetty.net/entry/lives-in-2025&#34;&gt;2025年振り返り(ライブ編) - oinume journal&lt;/a&gt;にまとめた。2024年よりもライブに行った回数が増えたのは良いこと。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2025年振り返り(ライブ編)</title>
				<link>https://journal.lampetty.net/posts/lives-in-2025/</link>
				<pubDate>Tue, 30 Dec 2025 19:08:25 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/lives-in-2025/</guid>
				<description>&lt;p&gt;今年は合計12本のライブに行った。去年は9本だったので少し増えている...!&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2/18 ROTTENGRAFFTY x Dragon Ash - Blown in the Reborn Tour 2025&lt;/li&gt;&#xA;&lt;li&gt;2/23 MIXTURE INSTITUTE PABLO with friends&lt;/li&gt;&#xA;&lt;li&gt;4/16 STATE CHAMPS x The BONEZ&lt;/li&gt;&#xA;&lt;li&gt;4/17 The Ravens GHOST NOTES TOUR&lt;/li&gt;&#xA;&lt;li&gt;6/6 Nothing’s Carved in stone x Dragon Ash - Hand In Hand Tour 2025 at Gorilla Hall Osaka&lt;/li&gt;&#xA;&lt;li&gt;9/22 I-SCREAM NIGHT FINAL&lt;/li&gt;&#xA;&lt;li&gt;9/25 Muse Japan Tour at K-Arena&lt;/li&gt;&#xA;&lt;li&gt;10/13 LOUD PARK 2025&lt;/li&gt;&#xA;&lt;li&gt;11/6 The BONEZ - I&#39;m Not Your King Tour at KT Zepp Yokohama&lt;/li&gt;&#xA;&lt;li&gt;11/19 The Theory of SCIENCE at Zepp Shinjuku&lt;/li&gt;&#xA;&lt;li&gt;11/25 The Ravens x Dragon Ash at Nagoya Bottom Line&lt;/li&gt;&#xA;&lt;li&gt;12/11 The Ravens x 10-FEET LIVE TOUR 共鳴夜光 at Shibuya O-West&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;一番印象に残ったのはやっぱり11/25のRavensとDragon Ashの対バン。SHANKが体調不良により偶発的に発生したこの対バン、3日前ぐらいに発表されて当日チケットが取れたので🚅に飛び乗って日帰りでいざ名古屋へ！&lt;/p&gt;</description>
			</item>
			<item>
				<title>Claude Code GitHub Actionsでモデルを指定する</title>
				<link>https://journal.lampetty.net/posts/claude-code-github-actions-model/</link>
				<pubDate>Fri, 31 Oct 2025 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/claude-code-github-actions-model/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://docs.claude.com/en/docs/claude-code/github-actions&#34;&gt;Claude Code GitHub Actions&lt;/a&gt;を使っていて、自分は以下のような2種類のタスクを依頼することが多い。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;実装計画を立ててもらう&lt;/li&gt;&#xA;&lt;li&gt;実装をしてもらう&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Claude Codeであれば実装計画は&lt;code&gt;Opus&lt;/code&gt;を使って、実装タスクは&lt;code&gt;Sonnet&lt;/code&gt;を使うみたいな使い分けが簡単にできるのにClaude Code GitHub Actionsではデフォルトだとそれができなかったのでちょっとやってみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>放送大学入学後に知った制度</title>
				<link>https://journal.lampetty.net/posts/unknown-ouj-system/</link>
				<pubDate>Mon, 25 Aug 2025 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/unknown-ouj-system/</guid>
				<description>&lt;p&gt;放送大学に入学して約4ヶ月が経ったので、入学後に知った制度を書いておく(学割についてはたくさん情報があるけど、制度についての情報が少ないので)&lt;/p&gt;</description>
			</item>
			<item>
				<title>ghコマンドでよく使ってるヤツ</title>
				<link>https://journal.lampetty.net/posts/gh-command-use-cases/</link>
				<pubDate>Sun, 17 Aug 2025 17:47:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/gh-command-use-cases/</guid>
				<description>&lt;p&gt;このポストがなぜかやたらバズっていたので、調子に乗って自分がよく使っているghコマンドのサブコマンドを書いてみる。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;gh pr checks --watch でCIの状況をコマンドで確認できるの便利&lt;/p&gt;</description>
			</item>
			<item>
				<title>複数のプロダクトのリポジトリをMonorepoに移行する</title>
				<link>https://journal.lampetty.net/posts/migrate-polyrepo-to-monorepo/</link>
				<pubDate>Tue, 22 Jul 2025 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/migrate-polyrepo-to-monorepo/</guid>
				<description>&lt;p&gt;表題の通り、技術スタックがほぼ同じプロダクト群のリポジトリを1つのMonorepoにまとめてみたという雑な記録。&lt;/p&gt;&#xA;&lt;p&gt;元々は以下のようなPolyrepo構造になっていた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>RaycastのScript Commandsを試してみた</title>
				<link>https://journal.lampetty.net/posts/raycast-script-commands/</link>
				<pubDate>Wed, 07 May 2025 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/raycast-script-commands/</guid>
				<description>&lt;p&gt;Raycastには&lt;a href=&#34;https://manual.raycast.com/script-commands&#34;&gt;Script Commands&lt;/a&gt;という機能があり、ずっとずっと気になっていたのでGW中に重い腰を上げて試してみた。最近会社の人にRaycastをオススメすることが多くなってきたのだけれども、「Raycast歴1年以上経つのにScript Commandsも使ったことないの？」みたいに後ろ指差されないようにするためにも...&lt;/p&gt;</description>
			</item>
			<item>
				<title>GraphQL Codegenで自動生成されたファイルでNamed export &#39;gql&#39; not foundのビルドエラーを回避する</title>
				<link>https://journal.lampetty.net/posts/avoid-gql-not-found/</link>
				<pubDate>Thu, 10 Apr 2025 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/avoid-gql-not-found/</guid>
				<description>&lt;p&gt;Vite + Apollo Client + GraphQL Codegenの組み合わせでgraphql-codegenを実行すると、&lt;code&gt;gql&lt;/code&gt;関数を以下のようにimportするためにエラーが出る。&lt;/p&gt;</description>
			</item>
			<item>
				<title>PostgreSQL &#43; HasuraでUUID v7を生成できるようにする</title>
				<link>https://journal.lampetty.net/posts/define-uuid-v7-function-in-hasura/</link>
				<pubDate>Sat, 01 Mar 2025 12:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/define-uuid-v7-function-in-hasura/</guid>
				<description>&lt;p&gt;2024年に&lt;a href=&#34;https://datatracker.ietf.org/doc/rfc9562/&#34;&gt;RFC 9562&lt;/a&gt;としてUUID v7が標準化された。今までは主キーにUUID v4を使っていたけど、時間軸でソートできるUUID v7を使いたいと思ったのでメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>IntelliJ IDEAでよく使うショートカットキーをVSCodeでも使えるようにする</title>
				<link>https://journal.lampetty.net/posts/keymap-of-intellij-and-vscode/</link>
				<pubDate>Fri, 21 Feb 2025 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/keymap-of-intellij-and-vscode/</guid>
				<description>&lt;p&gt;コードを書くためのエディタとして、IntelliJ IDEAとVSCode(Cursor)を併用して使っている。そのため、この2つのエディタのショートカットキーを同じように設定したい。&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=k--kato.intellij-idea-keybindings&#34;&gt;IntelliJ IDEA Keybindings&lt;/a&gt;を過去に使ったのだが、自分が想定してないキーも変更されてしまって使いづらいと感じたので、自分でキーバインドをカスタマイズすることにした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cursorで開いているファイルをIntelliJ IDEAで開く</title>
				<link>https://journal.lampetty.net/posts/open-cursor-current-file-with-intellij/</link>
				<pubDate>Thu, 13 Feb 2025 18:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/open-cursor-current-file-with-intellij/</guid>
				<description>&lt;p&gt;最近Cursorを使い始めているのだけど、ガッツリコードを書きたい時はIntelliJに頼ることもまだ多い。なので、Cursorでユーザータスクを定義して、Cmd + Shift + p でコマンドパレットを開いて &lt;code&gt;Tasks: Run Task&lt;/code&gt; でIntelliJでそのファイルを開けるようにした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2024年の振り返りと2025年</title>
				<link>https://journal.lampetty.net/posts/2024-and-2025/</link>
				<pubDate>Sat, 04 Jan 2025 11:33:07 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/2024-and-2025/</guid>
				<description>&lt;p&gt;年末年始はハワイに行っていたので全く正月感がない感じで過ごしてしまった。1年の振り返りをしたり新年の抱負を書いたりしてもどうせ達成できないし、徒然なるままに生きたい人間なのだけれども、暇なので雑に振り返りと今年への意気込みをアウトプットしておく。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2024年に買ってよかったもの</title>
				<link>https://journal.lampetty.net/posts/good-items-in-2024/</link>
				<pubDate>Sat, 04 Jan 2025 10:59:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/good-items-in-2024/</guid>
				<description>&lt;p&gt;あまりものを買わない主義なのだけど、ささやかながら買ってよかったものを。(Amazonのリンクはアフィリエイトが入ってる)&lt;/p&gt;&#xA;&lt;h2 id=&#34;ニューバランス-インソール-サポーティブリバウンドインソール&#34;&gt;[ニューバランス] インソール サポーティブリバウンドインソール&lt;/h2&gt;&#xA;&lt;p&gt;1年以上履いていたニューバランスのスニーカーのインソールがボロボロになったのでこれに入れ替えてみた。そしたらなんとびっくり、クッション効果が凄くて歩くのが大変快適になりQoLが爆上がりした。2000円弱の投資でここまで快適になるのならとてもコスパ良いと思う。なんだかんだでスニーカーは毎日履くものだし。とにかく快適すぎるので他のニューバランスのスニーカーも全部このインソールに替えた。デフォルトでこれを搭載してほしい&lt;/p&gt;</description>
			</item>
			<item>
				<title>OCNモバイルONEからmineoにMNPした</title>
				<link>https://journal.lampetty.net/posts/ocn-to-mineo/</link>
				<pubDate>Sat, 30 Nov 2024 16:25:29 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/ocn-to-mineo/</guid>
				<description>&lt;p&gt;最近ドコモ回線があまりにも詰まったり繋がらなかったりすることが多くてどうにも我慢できなくなったことと、たまたまmineoがキャンペーンをやっていてコストダウンできそうなので勢いでmineoに乗り換えた。後悔は全くしていない。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Audibleにハマったのでオススメする記事</title>
				<link>https://journal.lampetty.net/posts/audible/</link>
				<pubDate>Tue, 17 Sep 2024 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/audible/</guid>
				<description>&lt;p&gt;AmazonでAudibleが3ヶ月無料キャンペーンをやっていたので試しに使ってみたところ、かなり自分のツボに刺さったので良いポイントをまとめてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Go言語でcodemod</title>
				<link>https://journal.lampetty.net/posts/codemod-in-go/</link>
				<pubDate>Tue, 13 Aug 2024 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/codemod-in-go/</guid>
				<description>&lt;p&gt;大規模なコードベースでリファクタリングを省エネ化するためにcodemodを最近調べていて、軽く試行錯誤したのでそのメモ。&lt;/p&gt;&#xA;&lt;h2 id=&#34;やりたいこと&#34;&gt;やりたいこと&lt;/h2&gt;&#xA;&lt;p&gt;例えば以下のようなTable Driven TestなコードをBEFOREからAFTERに書き換えたい。コード量が多いため人間がやるのは現実的ではなく、codemodで機械的に書き換えたい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Markdown Style Guide</title>
				<link>https://journal.lampetty.net/posts/markdown-style-guide/</link>
				<pubDate>Wed, 19 Jun 2024 00:00:00 +0000</pubDate>
				<guid>https://journal.lampetty.net/posts/markdown-style-guide/</guid>
				<description>&lt;p&gt;Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro.&lt;/p&gt;&#xA;&lt;h2 id=&#34;headings&#34;&gt;Headings&lt;/h2&gt;&#xA;&lt;p&gt;The following HTML &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;—&lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; elements represent six levels of section headings. &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; is the highest section level while &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt; is the lowest.&lt;/p&gt;&#xA;&lt;h1 id=&#34;h1&#34;&gt;H1&lt;/h1&gt;&#xA;&lt;h2 id=&#34;h2&#34;&gt;H2&lt;/h2&gt;&#xA;&lt;h3 id=&#34;h3&#34;&gt;H3&lt;/h3&gt;&#xA;&lt;h4 id=&#34;h4&#34;&gt;H4&lt;/h4&gt;&#xA;&lt;h5 id=&#34;h5&#34;&gt;H5&lt;/h5&gt;&#xA;&lt;h6 id=&#34;h6&#34;&gt;H6&lt;/h6&gt;&#xA;&lt;h2 id=&#34;paragraph&#34;&gt;Paragraph&lt;/h2&gt;&#xA;&lt;p&gt;Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Raycastを使い始めて1年経った</title>
				<link>https://journal.lampetty.net/posts/raycast-one-year-later/</link>
				<pubDate>Mon, 08 Jan 2024 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/raycast-one-year-later/</guid>
				<description>&lt;p&gt;Raycastを使い始めて1年経ったので、どういうことに使っているかを振り返ってみる。去年書いた &lt;a href=&#34;https://journal.lampetty.net/entry/alfred-to-raycast&#34;&gt;AlfredからRaycastに移行した - oinume journal&lt;/a&gt; の記事から少し使い方が変わっているところもあるのでメモがてら。&lt;/p&gt;</description>
			</item>
			<item>
				<title>HasuraをDokku上で動かす</title>
				<link>https://journal.lampetty.net/posts/hasura-on-dokku/</link>
				<pubDate>Sat, 30 Dec 2023 15:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/hasura-on-dokku/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/install-dokku-on-vps&#34;&gt;VPS上にDokkuを構築した&lt;/a&gt;ので、そこに&lt;a href=&#34;https://hasura.io/&#34;&gt;Hasura&lt;/a&gt;を動かしてみるテスト。Hasuraとは簡単に言うとPostgreSQLのテーブルスキーマからGraphQLサーバーを構築してくれるミドルウェア。&lt;/p&gt;&#xA;&lt;p&gt;前提として、Dokkuはすでに構築済みとする。(自分の場合はUbuntu 22.04 上にDokku 0.32.3を構築済み)&lt;/p&gt;&#xA;&lt;h2 id=&#34;手順&#34;&gt;手順&lt;/h2&gt;&#xA;&lt;p&gt;まずは最初に&lt;code&gt;hasura&lt;/code&gt;という名前のアプリケーションを作成する&lt;/p&gt;</description>
			</item>
			<item>
				<title>squash mergeの環境でCascading PRsでコンフリクトした時</title>
				<link>https://journal.lampetty.net/posts/resolve-squash-merge-conflict/</link>
				<pubDate>Mon, 04 Dec 2023 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolve-squash-merge-conflict/</guid>
				<description>&lt;p&gt;最近以下のような記事を目にすることがあり、ちょうど自分もsquash mergeの環境でひとつ問題を抱えていたので、その話を自分のメモ代わりに書きたくなった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>VPSにDokkuをインストールする</title>
				<link>https://journal.lampetty.net/posts/install-dokku-on-vps/</link>
				<pubDate>Sat, 07 Oct 2023 20:10:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/install-dokku-on-vps/</guid>
				<description>&lt;p&gt;VPS上に&lt;a href=&#34;https://dokku.com/&#34;&gt;Dokku&lt;/a&gt;というものをインストールして、Dokku上でHello WorldするRailsアプリを動かすまでのメモ。&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-dokku&#34;&gt;Why Dokku?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dokku.com/&#34;&gt;DokkuのWebサイト&lt;/a&gt;に書いてあるように、Dokkuはオープンソース版のHerokuという立ち位置のソフトウェア。かれこれ7年ぐらいHerokuを使い続けていてとても便利だと思っているのだけど、アプリケーションを1つ動かすのに$5かかるようになってしまった。昨今の円安で750円ぐらいかかるし、アプリを複数作るとなるとそれなりにお金がかかるので、VPSでDokkuを動かしその上でアプリケーションを稼働させるようにしたいと思った。&lt;/p&gt;&#xA;&lt;p&gt;また、&lt;a href=&#34;https://web.arena.ne.jp/indigo/&#34;&gt;WebARENA Indigo&lt;/a&gt;のVPSだと、2vCPUでメモリ2GBで税込814円 / 月という安さなので、これを使うとかなりコスト抑えられそうだなと思ったからだった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ししまるとしろ</title>
				<link>https://journal.lampetty.net/posts/shishimaru-and-shiro/</link>
				<pubDate>Sat, 30 Sep 2023 20:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/shishimaru-and-shiro/</guid>
				<description>&lt;p&gt;最近、新しい猫を我が家に迎え入れた。名前は「しろ」。保護猫で年齢は5~6歳。岡山で多頭飼育の崩壊後ゴミ屋敷となった民家から保護された。その後、地元の預かりボランティアのお宅では他の猫と折り合いが悪く、ほぼケージ生活となったため、他に猫のいない家庭に譲渡したいということで東京に移動してきたところで、我が家で迎え入れることになった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Next.js &#43; Auth0でLogin handler failedのエラーを解消する</title>
				<link>https://journal.lampetty.net/posts/nextjs-auth0-resolve-login-handler-failed/</link>
				<pubDate>Tue, 02 May 2023 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/nextjs-auth0-resolve-login-handler-failed/</guid>
				<description>&lt;p&gt;Next.js + Auth0で認証機能を実装しようとして、&lt;a href=&#34;https://www.npmjs.com/package/@auth0/nextjs-auth0&#34;&gt;nextjs-auth0&lt;/a&gt;をセットアップしつつ、&lt;a href=&#34;https://auth0.com/docs/quickstart/webapp/nextjs/01-login&#34;&gt;このドキュメント&lt;/a&gt;通りにやっていたら、&lt;code&gt;AUTH0_ISSUER_BASE_URL&lt;/code&gt; の設定を間違えていて以下のエラーが出ていた。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;LoginHandlerError: Login handler failed. CAUSE: Discovery requests failing for http://localhost:3000, expected 200 OK, got: 404 Not Found&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上のauth0のドキュメントでは &lt;code&gt;AUTH0_ISSUER_BASE_URL=&#39;https://{yourDomain}&#39;&lt;/code&gt; との記述だったので、&lt;a href=&#34;http://localhost:3000&#34;&gt;http://localhost:3000&lt;/a&gt;を指定したのだけど、どうやらこれは&lt;code&gt;https://YOUR_AUTH0_DOMAIN.auth0.com&lt;/code&gt;を記述するのが正しいらしい。というわけでAuth0の該当アプリケーションのページから&lt;code&gt;Domain&lt;/code&gt;の部分をコピーしてきて&lt;code&gt;https://oinume.us.auth0.com&lt;/code&gt;のように指定すればOK。というか&lt;a href=&#34;https://www.npmjs.com/package/@auth0/nextjs-auth0&#34;&gt;nextjs-auth0&lt;/a&gt;にはそのように記載されていたのではじめからこっちを読んでおけばよかった...&lt;/p&gt;</description>
			</item>
			<item>
				<title>multipassでAnsibleの動作確認用のVMを作る</title>
				<link>https://journal.lampetty.net/posts/multipass/</link>
				<pubDate>Wed, 12 Apr 2023 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/multipass/</guid>
				<description>&lt;h2 id=&#34;モチベーション&#34;&gt;モチベーション&lt;/h2&gt;&#xA;&lt;p&gt;趣味で開発しているプロダクトのためにVPSを立てていて、Ansibleで各種ミドルウェアの設定をしているんだけど、VirtualBoxのApple Silicon への対応が微妙なのでmultipassを使ってVMを立てる＋Ansible Playbookを流してセットアップするということをやってみたのでそのメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>whisper.cppで文字起こしをやってみた</title>
				<link>https://journal.lampetty.net/posts/try-whisper-cpp/</link>
				<pubDate>Wed, 15 Mar 2023 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/try-whisper-cpp/</guid>
				<description>&lt;p&gt;自分の備忘録としてのやってみた系の話。OpenAIが提供するモデルを使って文字起こしをするC++実装の&lt;a href=&#34;https://github.com/ggerganov/whisper.cpp&#34;&gt;whisper.cpp&lt;/a&gt;を試してみた。&lt;/p&gt;&#xA;&lt;h2 id=&#34;環境&#34;&gt;環境&lt;/h2&gt;&#xA;&lt;p&gt;Apple M1 MacBook Air 2020 (Memory 16GB)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Darwin hogehoge.local 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan &lt;span class=&#34;m&#34;&gt;30&lt;/span&gt; 20:39:35 PST 2023&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; root:xnu-8792.81.3~2/RELEASE_ARM64_T8103 x86_64&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;whispercppのビルド&#34;&gt;whisper.cppのビルド&lt;/h2&gt;&#xA;&lt;p&gt;以下のコマンドを実行してビルドする。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2023年に読みたい本</title>
				<link>https://journal.lampetty.net/posts/want-to-read-books-in-2023/</link>
				<pubDate>Mon, 30 Jan 2023 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/want-to-read-books-in-2023/</guid>
				<description>&lt;p&gt;最近読書量が減ってきたので、今年は読書を頑張ろう！と思ったのでまずは読みたい本をリストアップしてみる。&lt;/p&gt;&#xA;&lt;h2 id=&#34;プロを目指す人のためのtypescript入門&#34;&gt;プロを目指す人のためのTypeScript入門&lt;/h2&gt;&#xA;&lt;p&gt;仕事でTypeScript書いてるんだけど、型システムが難しすぎて詰まっているので、体系的に理解したい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>AlfredからRaycastに移行した</title>
				<link>https://journal.lampetty.net/posts/alfred-to-raycast/</link>
				<pubDate>Mon, 02 Jan 2023 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/alfred-to-raycast/</guid>
				<description>&lt;p&gt;最近は&lt;a href=&#34;https://www.raycast.com/&#34;&gt;Raycast&lt;/a&gt;が巷で流行っているので、自分もAlfredから乗り換えてみた。Alfredはv5への移行をずっと保留にしていてタイミング的にも良かったというのが一番大きい。ちなみに自分はAlfredの有料課金のライトユーザーで、以下の機能を使っていた。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;通常のランチャー機能&lt;/li&gt;&#xA;&lt;li&gt;HotKey - よく使うアプリをHotKeyとして登録&lt;/li&gt;&#xA;&lt;li&gt;Clipboard history - クリップボードの履歴&lt;/li&gt;&#xA;&lt;li&gt;ブラウザのブックマーク検索&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;ライトユーザーなので、とてもスムーズに移行できた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenTelemetryとhttptrace.ClientTraceを使ってHTTPリクエストのlatencyを可視化する</title>
				<link>https://journal.lampetty.net/posts/opentelemetry-httptrace/</link>
				<pubDate>Mon, 11 Jul 2022 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/opentelemetry-httptrace/</guid>
				<description>&lt;p&gt;この記事は &lt;a href=&#34;https://journal.lampetty.net/entry/opencensus-httptrace&#34;&gt;OpenCensusとhttptrace.ClientTraceを使ってHTTPリクエストのlatencyを可視化する - oinume journal&lt;/a&gt; のOpenTelemetry版。OpenTelemetryについては &lt;a href=&#34;https://newrelic.com/jp/blog/best-practices/what-is-opentelemetry&#34;&gt;OpenTelemetryとは何か、そしてなぜそれが計装器の未来なのか？ | New Relic&lt;/a&gt; を見てもらうのが手っ取り早くて、&lt;a href=&#34;https://pkg.go.dev/net/http/httptrace#ClientTrace&#34;&gt;httptrace.ClientTrace&lt;/a&gt;については先のブログを見てもらえればと。&lt;/p&gt;&#xA;&lt;h2 id=&#34;opentelemetry-tracing--httptraceclienttrace&#34;&gt;OpenTelemetry Tracing + httptrace.ClientTrace&lt;/h2&gt;&#xA;&lt;p&gt;早速本題に入ってしまうと、以下のようなコードを書くことでhttp.ClientでHTTPリクエストを送った際のlatencyを可視化することが可能になる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chapter 5 - Information Hiding (and Leakage) / A Philosophy of Software Design</title>
				<link>https://journal.lampetty.net/posts/chapter5-software-design-book/</link>
				<pubDate>Tue, 15 Mar 2022 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/chapter5-software-design-book/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B09B8LFKQL?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51MaNQzHTQL._SL500_.jpg&#34; alt=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34; loading=&#34;lazy&#34; title=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B09B8LFKQL?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;A Philosophy of Software Design, 2nd Edition (English Edition)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者:Ousterhout, John K.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B09B8LFKQL?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Amazon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;第5章は&lt;code&gt;Information Hiding (and Leakage)&lt;/code&gt;というタイトル。いいモジュールを作るには情報の隠蔽(カプセル化)を行うことが大事だよ、という話。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2022年の抱負</title>
				<link>https://journal.lampetty.net/posts/resolution-in-2022/</link>
				<pubDate>Mon, 31 Jan 2022 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolution-in-2022/</guid>
				<description>&lt;p&gt;もうすっかり年が明けてしまって1月末ですが、今年の目標というか抱負を書いておこうかなと思います。&lt;/p&gt;&#xA;&lt;h2 id=&#34;健康第一&#34;&gt;健康第一&lt;/h2&gt;&#xA;&lt;p&gt;最近は風邪をひいたりすると仕事でもプライベートでも明らかに悪影響が出るので、健康第一で生きたい。その意味で以下を引き続き習慣として頑張る。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2021年の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2021/</link>
				<pubDate>Fri, 31 Dec 2021 23:53:43 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2021/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/resolution-in-2021&#34;&gt;2021年の抱負 - oinume journal&lt;/a&gt;で年初に考えていた抱負がどうだったのか？を振り返ってみる。&lt;/p&gt;&#xA;&lt;h2 id=&#34;習慣化&#34;&gt;習慣化&lt;/h2&gt;&#xA;&lt;p&gt;Habitifyというアプリを1年使い続けてみたけど、習慣化するものとそうじゃないものがあった。ある程度習慣化したものはiKnow(英単語)だけで、その他は習慣化しなかった。Habitify、通知してくれるのはいいんだけど習慣化するにはモチベーションも維持する必要があるので、その点ではあまり役に立たなかったように思う。何かいいアプリがあったら乗り換えたい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chapter 4 - Modules Should Be Deep / A Philosophy of Software Design</title>
				<link>https://journal.lampetty.net/posts/chapter4-software-design-book/</link>
				<pubDate>Mon, 27 Dec 2021 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/chapter4-software-design-book/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B09B8LFKQL?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51MaNQzHTQL._SL500_.jpg&#34; alt=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34; loading=&#34;lazy&#34; title=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B09B8LFKQL?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;A Philosophy of Software Design, 2nd Edition (English Edition)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者:Ousterhout, John K.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B09B8LFKQL?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Amazon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;第4章は&lt;code&gt;Modules Should Be Deep&lt;/code&gt;というタイトル。&lt;/p&gt;&#xA;&lt;h2 id=&#34;41-modular-design&#34;&gt;4.1 Modular Design&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ソフトウェアの複雑性を管理するためのもっとも大事なテクニックの一つとして、全体の複雑性の一部分だけに直面するようにシステムを設計するということが挙げられる。このアプローチは modular design と呼ばれている。&lt;/li&gt;&#xA;&lt;li&gt;この手法を用いると、ソフトウェアシステムは複数のモジュール(クラス, サブシステム, サービス)に分解される。&lt;/li&gt;&#xA;&lt;li&gt;それぞれのモジュールは相互に依存せず独立しているため、開発者はあるモジュールの開発をしている時に他のモジュールのことを考えなくて良い&lt;/li&gt;&#xA;&lt;li&gt;しかし、上記の独立性の話はあくまで理想で実際にはそんなことはない&#xA;&lt;ul&gt;&#xA;&lt;li&gt;例えば、あるメソッドに引数を追加した場合はその呼び出し元のコードも変更しないといけない&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;依存の認識と管理をするためには、モジュールをinterfaceとimplementationの2つに分けることが大事である&lt;/li&gt;&#xA;&lt;li&gt;Typically, the interface describes what the module does but not how it does it.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;interfaceはそのモジュールが「何をするか」を表明し、それを「どうやるか」については表明しない&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;あるモジュールの開発者は、そのモジュールのinterfaceと実装、およびそのモジュールが依存している他のモジュールのinterfaceを知っている必要があるが、他のモジュールの実装については知らなくても大丈夫である&lt;/li&gt;&#xA;&lt;li&gt;interfaceが実装に比べてとてもシンプルに表現されているモジュールがベスト&lt;/li&gt;&#xA;&lt;li&gt;上記のようなモジュールは2つのメリットがある&#xA;&lt;ul&gt;&#xA;&lt;li&gt;シンプルなインタフェースを提供するモジュールは、他のモジュールにもたらす複雑性を少なくする&lt;/li&gt;&#xA;&lt;li&gt;インターフェースが変更されない限り、他のモジュールには影響がない。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;42-whats-in-an-interface&#34;&gt;4.2 What&#39;s in an Interface?&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;interfaceにはformal, informalな情報がある&lt;/li&gt;&#xA;&lt;li&gt;formal: メソッドのシグネチャ(引数およびその型、戻り値およびその型)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;プログラミング言語の機能によってもたらされる&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;informal: そのメソッドを呼び出した時にもたらされる結果など&#xA;&lt;ul&gt;&#xA;&lt;li&gt;eg) 引数で与えられたファイル名のファイルを削除するなど&lt;/li&gt;&#xA;&lt;li&gt;informalな情報はメソッドのコメントで説明されることが多い&lt;/li&gt;&#xA;&lt;li&gt;Method Bを呼ぶ前にMethod Aを呼ぶ必要がある、みたいなものもinformalな情報である。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;43-abstraction&#34;&gt;4.3 Abstraction&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Abstractionとは、実体から重要ではない詳細を除外したもの&lt;/li&gt;&#xA;&lt;li&gt;間違った抽象化には以下の2つがある&#xA;&lt;ul&gt;&#xA;&lt;li&gt;抽象化したが、重要ではないものを含んでしまう&#xA;&lt;ul&gt;&#xA;&lt;li&gt;結果的に他の開発者の認知負荷をあげてしまう&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;抽象化して重要なものを隠してしまう(false abstraction)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;そのモジュールがシンプルなものだと誤解させてしまう&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;良い抽象化の例として、ファイルシステムが挙げられる&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ファイルにデータを書き込む時に、ユーザーはそのデータがストレージデバイスのどのブロックに書き込まれるかなどは意識しない&lt;/li&gt;&#xA;&lt;li&gt;これはファイルシステムがうまく抽象化されていて、ユーザーにとっての不必要な情報を除外しているから&lt;/li&gt;&#xA;&lt;li&gt;一方で、書き込んだデータのフラッシュについての情報は除外されていない&#xA;&lt;ul&gt;&#xA;&lt;li&gt;例えばデータベースのようなソフトウェアだと、「システムがクラッシュしてもファイルに必ず書き込まれているか」を保証するために、「実際のストレージにいつデータが書き込まれるか(=フラッシュされるか)」は知っておく必要がある。そのためこの情報は抽象化されても利用者からわかるようになっている。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;44-deep-modules&#34;&gt;4.4 Deep Modules&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;モジュールの深さはコストとベネフィットで考える&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chapter 3 - Working Code Isn’t Enough / A Philosophy of Software Design</title>
				<link>https://journal.lampetty.net/posts/chapter3-software-design-book/</link>
				<pubDate>Wed, 01 Dec 2021 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/chapter3-software-design-book/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51MaNQzHTQL._SL500_.jpg&#34; alt=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34; loading=&#34;lazy&#34; title=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;A Philosophy of Software Design, 2nd Edition (English Edition)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者:Ousterhout, John&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;Amazon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;第3章は&lt;code&gt;Working Code Isn’t Enough (Strategic vs. Tactical Programming)&lt;/code&gt;というタイトル。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chapter 2 - The Nature of Complexity / A Philosophy of Software Design</title>
				<link>https://journal.lampetty.net/posts/chapter2-software-design-book/</link>
				<pubDate>Tue, 30 Nov 2021 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/chapter2-software-design-book/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51MaNQzHTQL._SL500_.jpg&#34; alt=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34; loading=&#34;lazy&#34; title=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;A Philosophy of Software Design, 2nd Edition (English Edition)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者:Ousterhout, John&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;Amazon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;第2章は&amp;quot;The Nature of Complexity&amp;quot;というタイトルで、ソフトウェアのComplexityつまり複雑性についてじっくり説明されている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Chapter 1 - Intruduction / A Philosophy of Software Design</title>
				<link>https://journal.lampetty.net/posts/chapter1-software-design-book/</link>
				<pubDate>Mon, 29 Nov 2021 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/chapter1-software-design-book/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51MaNQzHTQL._SL500_.jpg&#34; alt=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34; loading=&#34;lazy&#34; title=&#34;A Philosophy of Software Design, 2nd Edition (English Edition)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;A Philosophy of Software Design, 2nd Edition (English Edition)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者:Ousterhout, John&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/B09B8LFKQL/kazzhomeunixo-22/&#34;&gt;Amazon&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;A Philosophy of Software Design の第1章を読んだのでそのまとめ。&lt;/p&gt;&#xA;&lt;h2 id=&#34;intro&#34;&gt;Intro&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;プログラムは機能が増えるごとに複雑さが増していく。複雑さが増えると、開発スピードが遅くなりバグが増える&lt;/li&gt;&#xA;&lt;li&gt;開発ツールは複雑性に対処するに役立つが、これには限界がある。一方、シンプルなソフトウェアのデザインはより大きくてパワフルなプログラムを導いてくれる。&lt;/li&gt;&#xA;&lt;li&gt;複雑性に対処するには2つのアプローチがある。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1つ目はコードをシンプルかつ明らか（わかりやすく）すること。例えば複雑性は特殊ケースを削除することで減らすことができる。&lt;/li&gt;&#xA;&lt;li&gt;2つ目のアプローチはカプセル化でmodular design とよばれている。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Modular designではソフトウェアをモジュールに分割して管理して(OOPだとクラスとか)それぞれのモジュールは他のものに依存しない。&lt;/li&gt;&#xA;&lt;li&gt;そのため、プログラマーはあるモジュールの開発をするときに、他のモジュールの詳細を知らなくて済む。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ウォーターフォールモデルの紹介&#34;&gt;ウォーターフォールモデルの紹介&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ウォーターフォールだと基本的には設計フェーズではすべてを設計し、開発のフェーズでは設計をしない。ソフトウェアは物理的なシステムより複雑で目に見えないので、特に大きなシステムであるほど全体を細部まで理解することは難しい。&lt;/li&gt;&#xA;&lt;li&gt;開発フェーズで初めて問題がわかるケースもよくあり、場合によっては設計のやり直しが発生する。ウォーターフォールモデルだとこれは大きな手戻りになってしまう。&lt;/li&gt;&#xA;&lt;li&gt;この問題があるため、最近のソフトウェア開発ではアジャイルのようなインクリメンタルなアプローチが使われている。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;how-to-use-this-book&#34;&gt;How to use this book&lt;/h2&gt;&#xA;&lt;p&gt;ソフトウェアの設計スキルを向上させるための良い手法の一つは、&amp;quot;red flags&amp;quot;という複雑なソースコードの断片のサインを認識することである。この本ではその&amp;quot;red flags&amp;quot;を、メジャーな設計の問題を通じて説明する。&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Philosophy of Software Designを読み始めた</title>
				<link>https://journal.lampetty.net/posts/a-philosophy-of-software-design/</link>
				<pubDate>Sun, 28 Nov 2021 14:54:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/a-philosophy-of-software-design/</guid>
				<description>&lt;p&gt;タイトル通りで、最近第2版が発売されたのと、いろんなところでオススメされていたのでこの本を読んでいる。やっと第6章まで読み終わったので、それぞれの章のまとめをブログにアップしていく予定。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JavaScriptの記号の演算子と構文</title>
				<link>https://journal.lampetty.net/posts/javascript-operators-and-syntaxes/</link>
				<pubDate>Tue, 07 Sep 2021 18:09:10 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/javascript-operators-and-syntaxes/</guid>
				<description>&lt;p&gt;JavaScript / TypeScript では一見すると「これなんだ？」という記号の演算子や構文がよく出てくるので、自分用の備忘録としてメモしておく。&lt;a href=&#34;https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators&#34;&gt;式と演算子 - JavaScript | MDN&lt;/a&gt;には演算子の一覧のページがあるため、わからない記号が出てきたら以下のページを見るとだいたい載っているはず。&lt;/p&gt;</description>
			</item>
			<item>
				<title>TypeScriptのDestructuring assignment</title>
				<link>https://journal.lampetty.net/posts/typescript-destructuring-assignment/</link>
				<pubDate>Tue, 10 Aug 2021 10:08:43 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/typescript-destructuring-assignment/</guid>
				<description>&lt;p&gt;最近仕事でfrontendの開発を少しずつやるようになったのだけど、TypeScriptはGoに比べて演算子や記号を使う記法が多くて読むのに一苦労する。なので「これなんだろう？」と思ったやつをメモしておく。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Go1.17beta1でGenericsに触れてみた</title>
				<link>https://journal.lampetty.net/posts/play-with-go-type-params/</link>
				<pubDate>Wed, 14 Jul 2021 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/play-with-go-type-params/</guid>
				<description>&lt;p&gt;Go1.17beta1がダウンロードできるようになったので、Generics(Type Parameters)でStackを書いて軽く遊んだメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apple Silicon向けDocker Desktop for Macでコンテナがハングしないようにする</title>
				<link>https://journal.lampetty.net/posts/apple-silicon-docker-desktop-problem/</link>
				<pubDate>Mon, 14 Jun 2021 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/apple-silicon-docker-desktop-problem/</guid>
				<description>&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apple Silicon(M1) Docker Desktop for Macで&lt;a href=&#34;https://hub.docker.com/r/google/cloud-sdk/&#34;&gt;google/cloud-sdk&lt;/a&gt;のDocker Imageを使ってコンテナ内でCloud Datastore Emulatorを立ち上げると、CPUが100%で張り付いてハングするという問題があった。&lt;/li&gt;&#xA;&lt;li&gt;解決方法として、該当のDocker Imageをarm64v8アーキテクチャでビルドして、そのイメージでコンテナを立ち上げるようにしたら問題は起きなくなったので、その方法の紹介&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;問題の詳細&#34;&gt;問題の詳細&lt;/h2&gt;&#xA;&lt;p&gt;Apple Silicon版のDocker Desktop for MacはRosetta2を使いインテルアーキテクチャ(amd64 / x86_64)をエミュレーションして実行されている。エミュレーションが行われているため、ネイティブでarm64v8のコンテナを実行するよりCPUを使ってしまうという問題がある。これは&lt;a href=&#34;https://docs.docker.com/docker-for-mac/apple-silicon/#known-issues&#34;&gt;Known Issues&lt;/a&gt;として以下のように書かれている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2021年の抱負</title>
				<link>https://journal.lampetty.net/posts/resolution-in-2021/</link>
				<pubDate>Sat, 30 Jan 2021 23:14:54 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolution-in-2021/</guid>
				<description>&lt;p&gt;年初に新年の抱負を書こうと思っていたがずっと後回しになってしまい、1月もそろそろ終わってしまう時期になった。というわけで明けましておめでとうございます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2020年の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2020/</link>
				<pubDate>Thu, 31 Dec 2020 23:48:22 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2020/</guid>
				<description>&lt;p&gt;早いもので2020も終わってしまう。歳をとるごとに1年が過ぎていくのが早く感じる気がするけど、ここまで早く過ぎ去ってかつ内容が薄い年は初めてなのではないかと思う。ただ、多くの人にとって大変な年になったのは間違いないと思うけど、自分はソフトウェアエンジニアという職業だったおかげで、相対的に見ればCOVID-19の経済的な影響は少なかったので、ラッキーだったとは思う。あらためてテクノロジーの進化とソフトウェアエンジニアになろうと決めた2000年頃の自分に感謝したい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>O&#39;Reilly Online Learningで日本語の本を読む方法</title>
				<link>https://journal.lampetty.net/posts/japanese-books-oreilly-online-learning/</link>
				<pubDate>Fri, 27 Nov 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/japanese-books-oreilly-online-learning/</guid>
				<description>&lt;p&gt;O&#39;ReillyのOnline Learning(旧O&#39;Reilly Safari Books Online)は月額$49でオライリーの本や動画などが見放題になるエンジニア向けのサブスクを提供している。以前は英語の本しか読めなかったが、いつからか日本語の本も読めるようになっていたのでメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ドクターズプライムに入社しました</title>
				<link>https://journal.lampetty.net/posts/join-to-drsprime/</link>
				<pubDate>Tue, 10 Nov 2020 09:09:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/join-to-drsprime/</guid>
				<description>&lt;h2 id=&#34;これはなに&#34;&gt;これはなに？&lt;/h2&gt;&#xA;&lt;p&gt;入社エントリー＆会社紹介です。表題の通りで、10月をもってメルカリ/メルペイを退職し、11月から&lt;a href=&#34;https://drsprime.com/company/&#34;&gt;ドクターズプライム&lt;/a&gt;という会社で働いています。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なにやってるの&#34;&gt;なにやってるの？&lt;/h2&gt;&#xA;&lt;p&gt;Backend Engineerとして、救急車のたらい回しをなくすためのプロダクトを開発しています。救急車のたらい回しが発生する理由としては以下のスライドに書いてある通りなのですが、これを解決するのがDr.&#39;s Primeという医師の採用サービスになります。&lt;/p&gt;</description>
			</item>
			<item>
				<title>moq - gomockを使わないMock生成</title>
				<link>https://journal.lampetty.net/posts/moq-instead-of-gomock/</link>
				<pubDate>Thu, 22 Oct 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/moq-instead-of-gomock/</guid>
				<description>&lt;p&gt;Goでよく使われるMockの生成ツールとして&lt;a href=&#34;https://github.com/golang/mock&#34;&gt;gomock&lt;/a&gt;がある&lt;a href=&#34;#fn:1&#34;&gt;1&lt;/a&gt;。個人的にはgomockが生成したコードでモックを書くのが好きではないので、代替として&lt;a href=&#34;https://github.com/matryer/moq&#34;&gt;moq&lt;/a&gt;を使うやり方を取り上げてみようと思う。&lt;/p&gt;&#xA;&lt;p&gt;なお、本記事ではgithub.com/golang/mockではなく、&lt;a href=&#34;https://github.com/uber-go/mock&#34;&gt;go.uber.org/mock&lt;/a&gt;を使うように 2024-06-11 に改訂している。[^1]&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;moqは、mockしたいinterfaceで定義されているメソッドと同じシグネチャのメソッドを生成し、そのメソッドを実装することでmockが作れる&#xA;&lt;ul&gt;&#xA;&lt;li&gt;純粋にメソッドのモック実装のコードを書けばいいだけなので、gomockのようにライブラリとしての使い方を覚える必要はない&lt;/li&gt;&#xA;&lt;li&gt;生成されるコードもtype safeであり、gomockのように&lt;code&gt;any&lt;/code&gt;は登場しない&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;moqには、mock化したメソッドが呼び出された回数を取得するなど、最低限のことはできるようになっている。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;それ以上のことをやりたければ自分で実装する&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;題材&#34;&gt;題材&lt;/h2&gt;&#xA;&lt;p&gt;GitHubのAPIを使い指定したリポジトリのブランチを出力するServiceを考えてみる。このServiceには以下の引数owner, repoで指定されたリポジトリのブランチを&lt;code&gt;w&lt;/code&gt;に出力するというメソッドを持っている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2020年8月までの振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2020-08/</link>
				<pubDate>Sat, 12 Sep 2020 00:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2020-08/</guid>
				<description>&lt;p&gt;ずいぶんと振り返りをサボってしまったので、頑張って7ヶ月分を書く&lt;/p&gt;&#xA;&lt;h2 id=&#34;2月&#34;&gt;2月&lt;/h2&gt;&#xA;&lt;p&gt;この頃は各国のコロナの感染者数を毎日チェックしていた気がする。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;国別の罹患者数。Cruise Shipが国に格上げされているｗ&lt;a href=&#34;https://t.co/rp6wUIvCrS&#34;&gt;https://t.co/rp6wUIvCrS&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Gatsby &#43; Firebase Hostingでプロフィールサイトを構築する</title>
				<link>https://journal.lampetty.net/posts/building-profile-site-with-gatsby-and-firebase-hosting/</link>
				<pubDate>Mon, 31 Aug 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/building-profile-site-with-gatsby-and-firebase-hosting/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.gatsbyjs.com/&#34;&gt;Gatsby&lt;/a&gt;と&lt;a href=&#34;https://firebase.google.com/products/hosting&#34;&gt;Firebase Hosting&lt;/a&gt;を使って&lt;a href=&#34;https://www.lampetty.net/&#34;&gt;自分のプロフィールサイト&lt;/a&gt;を構築したのでそのメモ。&lt;/p&gt;&#xA;&lt;h2 id=&#34;前提&#34;&gt;前提&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;サイトの中身はGitHubリポジトリで管理&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/santosfrancisco/gatsby-starter-cv&#34;&gt;https://github.com/santosfrancisco/gatsby-starter-cv&lt;/a&gt;がプロフィールサイト向けだったのでこれを使った&lt;/li&gt;&#xA;&lt;li&gt;GitHub Actionsでmasterブランチにpushされたら自動的にFirebase Hostingに反映されるようにした&lt;/li&gt;&#xA;&lt;li&gt;今回は一つのGitHubリポジトリで複数のサイトをホスティングしたかったので、サブディレクトリを作成した。以下のような構成になっている。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;lampetty-net-sites (リポジトリルート)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;www (今回構築するプロフィールサイト)&lt;/li&gt;&#xA;&lt;li&gt;xyz (別のサイト)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;準備&#34;&gt;準備&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GitHubリポジトリを作っておく&lt;/li&gt;&#xA;&lt;li&gt;NodeJSをインストールしておく&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.gatsbyjs.com/docs/quick-start/&#34;&gt;Quick Start | Gatsby&lt;/a&gt;に沿って以下を実行する。&lt;/p&gt;</description>
			</item>
			<item>
				<title>メルカリ/メルペイを退職します</title>
				<link>https://journal.lampetty.net/posts/leaving-mercari-merpay/</link>
				<pubDate>Mon, 24 Aug 2020 10:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/leaving-mercari-merpay/</guid>
				<description>&lt;p&gt;いわゆる退職エントリーというヤツです。表題の通りで、10月をもって4年3ヶ月勤めたメルカリ/メルペイを退職します。思い返せば、退職エントリーというものをブログに書くのは初めてです。少し緊張してます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>go testを並列で動かして速くする</title>
				<link>https://journal.lampetty.net/posts/go-test-in-parallel/</link>
				<pubDate>Wed, 12 Aug 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/go-test-in-parallel/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;アプリケーションが大きくなってくると、テストを並列で実行しないとどんどん&lt;code&gt;go test&lt;/code&gt;の実行時間が長くなってしまい、いわゆる「CI待ち」というものが発生してしまう。この記事は自分用のメモだが、テストを少しでも速くしたいという人のための記事。おそらく会社の誰かがもっと丁寧な説明のブログ記事を書いてくれるはず。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Resolving 3rd party proto file on IntelliJ IDEA</title>
				<link>https://journal.lampetty.net/posts/resolving-3rd-party-proto-file-on-intellij-idea/</link>
				<pubDate>Thu, 25 Jun 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolving-3rd-party-proto-file-on-intellij-idea/</guid>
				<description>&lt;p&gt;I use &lt;a href=&#34;https://plugins.jetbrains.com/plugin/8277-protobuf-support/reviews&#34;&gt;Protobuf Support Plugin&lt;/a&gt; for syntax highlighting. However, it can&#39;t resolve 3rd party proto file like this:&lt;/p&gt;&#xA;&lt;p&gt;In my case, the file which is not resolved is located in &lt;code&gt;proto/third_party&lt;/code&gt; directory.&lt;/p&gt;&#xA;&lt;h2 id=&#34;solution&#34;&gt;Solution&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open Project Structure (&lt;code&gt;File -&amp;gt; Project Structure&lt;/code&gt; or &lt;code&gt;Cmd + ;&lt;/code&gt; )&lt;/li&gt;&#xA;&lt;li&gt;Choose the directory as &lt;code&gt;Resource root&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Finally, unresolved error was gone 🎉🎉🎉&lt;/p&gt;</description>
			</item>
			<item>
				<title>Touch BarありでIntelliJ IDEAのShift &#43; F6などのショートカットキーが効かない場合の対処方法</title>
				<link>https://journal.lampetty.net/posts/touch-bar-intellij-function-keys/</link>
				<pubDate>Tue, 16 Jun 2020 00:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/touch-bar-intellij-function-keys/</guid>
				<description>&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Touch BarありのMacBookProで、IntelliJ IDEAでShift + F6などのFunction Keyと他のキーを組み合わせた場合のショートカットキーが効かないという問題があった&lt;/li&gt;&#xA;&lt;li&gt;Karabinar Elementsを使っている場合は &lt;code&gt;Devices&lt;/code&gt; で &lt;code&gt;No product name (No manufacturer name)&lt;/code&gt; にチェックを入れることで解決する&lt;/li&gt;&#xA;&lt;li&gt;スクショ: &lt;a href=&#34;https://github.com/pqrs-org/Karabiner-Elements/issues/535#issuecomment-350522019&#34;&gt;https://github.com/pqrs-org/Karabiner-Elements/issues/535#issuecomment-350522019&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;問題の詳細&#34;&gt;問題の詳細&lt;/h2&gt;&#xA;&lt;p&gt;IntelliJ IDEAをTouch BarありのMacBookProを使っている場合、Shift + F6(Rename)やOpt + F7(Find Usages)のようなFunction Keyと組み合わせたショートカットキーが動作しないという問題に長年苦しめられてきた。特にIntelliJはFunction Keyとなにかを組み合わるショートカットが多くて、これはIntelliJ使いとしては死活問題だった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>使ってみて便利だったGitHub Actions</title>
				<link>https://journal.lampetty.net/posts/useful-github-actions/</link>
				<pubDate>Mon, 08 Jun 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/useful-github-actions/</guid>
				<description>&lt;p&gt;今年の2月ぐらいからGitHub Actionsを仕事で使うようになったので、実際に使ってみて便利だったものを紹介する。&lt;/p&gt;&#xA;&lt;h2 id=&#34;slackへの通知を行うaction-slack&#34;&gt;Slackへの通知を行うaction-slack&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/marketplace/actions/action-slack&#34;&gt;github.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Slackへ通知するActionはいくつかあるけど、これが一番きめ細かく送る内容を設定できてかゆいところに手が届く感じだった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>GoでLRU Cacheを実装する</title>
				<link>https://journal.lampetty.net/posts/implementing-lru-cache-in-go/</link>
				<pubDate>Thu, 12 Mar 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/implementing-lru-cache-in-go/</guid>
				<description>&lt;p&gt;LRU Cacheは何かをキャッシュする際によく使うデータ構造の一つだと思う。よく使う一方でその実装はやったことがなかったので、今回Goで実装してみたよ、という話。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Review on Jan 2020</title>
				<link>https://journal.lampetty.net/posts/review-2020-01/</link>
				<pubDate>Tue, 04 Feb 2020 09:47:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2020-01/</guid>
				<description>&lt;h2 id=&#34;what-i-did-on-jan-2020&#34;&gt;What I did on Jan 2020&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Got flu on the beginning of this year...&lt;/li&gt;&#xA;&lt;li&gt;Went to GoDays 2020 in Berlin!&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Went to Warsaw as a persona trip&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Work, work, work&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;output&#34;&gt;Output&lt;/h2&gt;&#xA;&lt;p&gt;Wrote a &lt;a href=&#34;https://journal.lampetty.net/entry/create-a-release-branch-with-github-actions&#34;&gt;blog post&lt;/a&gt; about GitHub Actions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sleep&#34;&gt;Sleep&lt;/h2&gt;&#xA;&lt;p&gt;6 hours 50 min.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1st week: many sleep hours but less deep sleep because of flu&lt;/li&gt;&#xA;&lt;li&gt;2nd week: OK&lt;/li&gt;&#xA;&lt;li&gt;3rd week: few sleep hours because of jet lag&lt;/li&gt;&#xA;&lt;li&gt;4th week: OK&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;algorithms-and-datastructures&#34;&gt;Algorithms and datastructures&lt;/h2&gt;&#xA;&lt;p&gt;No progress...&lt;/p&gt;</description>
			</item>
			<item>
				<title>GitHub ActionsでReleaseが作成されたら次のバージョンのrelease branchを自動的に作る</title>
				<link>https://journal.lampetty.net/posts/create-a-release-branch-with-github-actions/</link>
				<pubDate>Mon, 03 Feb 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/create-a-release-branch-with-github-actions/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;自分のチームでは&lt;a href=&#34;https://nvie.com/posts/a-successful-git-branching-model/&#34;&gt;A successful Git branching model&lt;/a&gt;に近い感じで、リリースする前にrelease branchを作りそこにfeature branchをmergeしてからテストしてリリースする、という流れで開発からリリースまでのサイクルを回している。&lt;/li&gt;&#xA;&lt;li&gt;リリースする前に誰かがrelease branchを作成するという作業が手間だったため、GitHub Actionsで自動化できないかと思い、実際やってみたところ意外と簡単にできたので、そこで得られた知識をこの記事にまとめる&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;実際のコードと説明&#34;&gt;実際のコードと説明&lt;/h2&gt;&#xA;&lt;p&gt;それでは実際のactionsのYAMLファイルをもとに細かく説明する。今回使用したYAMLファイルは&lt;a href=&#34;https://github.com/oinume/playground-github-actions/blob/master/.github/workflows/new-pull-request.yml&#34;&gt;ここ&lt;/a&gt;にあがっている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2020の抱負</title>
				<link>https://journal.lampetty.net/posts/resolution-in-2020/</link>
				<pubDate>Thu, 16 Jan 2020 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolution-in-2020/</guid>
				<description>&lt;p&gt;新年あけましておめでとうございます。年末年始はインフルエンザになって寝込んでいて、そういえば今年は厄年だったことを思い出しました。もう1/15になってだけど2020年の抱負をあらためて書いておこうと思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019/</link>
				<pubDate>Mon, 23 Dec 2019 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019/</guid>
				<description>&lt;p&gt;2019年も早いものであっという間に終わってしまった。以下が2019年初頭に考えていた抱負だったので、これをベースに振り返りをしてみよう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/resolution-in-2019&#34;&gt;journal.lampetty.net&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;ちゃんとした記事を月に一つは書く！というの目標に対しては以下のように未達だったけど、&lt;a href=&#34;https://journal.lampetty.net/archive/2019&#34;&gt;合計25個の記事&lt;/a&gt;を書いたし、未達だったのは3月と10月だけだったのでほぼ達成と言って良いのではないかと。&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenCensusとhttptrace.ClientTraceを使ってHTTPリクエストのlatencyを可視化する</title>
				<link>https://journal.lampetty.net/posts/opencensus-httptrace/</link>
				<pubDate>Thu, 19 Dec 2019 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/opencensus-httptrace/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;みなさんこんにちは。これは&lt;a href=&#34;https://qiita.com/advent-calendar/2019/go5&#34;&gt;Go5 Advent Calendar 2019&lt;/a&gt;の19日目の記事です。この記事はOpenCensusとhttptrace.ClientTraceを使ってHTTPリクエストの内部的なlatencyを可視化する話です。「内部的なlatency」というのは、HTTPリクエストの中で名前解決にどのぐらいかかったとか、コネクションを張るのにどのぐらいかかったなどです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Go言語における並行処理 - ユースケース編</title>
				<link>https://journal.lampetty.net/posts/concurrency-in-go-usecases/</link>
				<pubDate>Sat, 16 Nov 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/concurrency-in-go-usecases/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;これは以下の記事の続きの記事。以下の2つではgoroutineとchannelについて説明したので、これらを使って具体的な並行処理のユースケースを書いてみる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年9月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019-09/</link>
				<pubDate>Sat, 12 Oct 2019 10:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019-09/</guid>
				<description>&lt;p&gt;8月の振り返りをサボってしまったのでまとめて。&lt;/p&gt;&#xA;&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;Goの並行処理の記事とMySQL 8.0へアップデートする記事を書いた。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/concurrency-in-go-goroutines&#34;&gt;Goにおける並行処理 - goroutine編 - oinume journal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/concurrency-in-go-channels&#34;&gt;Goにおける並行処理 - channel編 - oinume journal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/problems-when-updating-mysql-5.8-8.0&#34;&gt;Problems when updating MySQL from 5.7 to 8.0 - oinume journal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;睡眠&#34;&gt;睡眠&lt;/h2&gt;&#xA;&lt;p&gt;1日6時間以上寝る、ということを今年の目標にしている。ヘルスケアアプリによると&lt;/p&gt;</description>
			</item>
			<item>
				<title>初めてIELTSを受験した</title>
				<link>https://journal.lampetty.net/posts/taking-ielts-test-first-time/</link>
				<pubDate>Mon, 30 Sep 2019 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/taking-ielts-test-first-time/</guid>
				<description>&lt;h2 id=&#34;ieltsってなに&#34;&gt;IELTSってなに？&lt;/h2&gt;&#xA;&lt;p&gt;国際的な英語の試験。大学の入学の条件に使われたり、国によっては永住権を申請する時のポイントとして使われるもの。&lt;/p&gt;&#xA;&lt;h2 id=&#34;会場&#34;&gt;会場&lt;/h2&gt;&#xA;&lt;p&gt;自分は東京会場で、場所は幸ビルディングという新橋付近の貸し会議室っぽいところだった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Problems when updating MySQL from 5.7 to 8.0</title>
				<link>https://journal.lampetty.net/posts/problems-when-updating-mysql-5.8-8.0/</link>
				<pubDate>Tue, 24 Sep 2019 08:45:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/problems-when-updating-mysql-5.8-8.0/</guid>
				<description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;I updated MySQL from 5.7 to 8.0. There were some problems when updating. This is just a memo how to solve the problems.&lt;/p&gt;&#xA;&lt;h2 id=&#34;innodb-deprecated-file-format-parameters&#34;&gt;InnoDB deprecated file format parameters&lt;/h2&gt;&#xA;&lt;p&gt;These parameters are deprecated in 8.0.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;innodb_file_format&lt;/li&gt;&#xA;&lt;li&gt;innodb_file_format_check&lt;/li&gt;&#xA;&lt;li&gt;innodb_file_format_max&lt;/li&gt;&#xA;&lt;li&gt;innodb_large_prefix&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;ref: &lt;a href=&#34;https://dev.mysql.com/worklog/task/?id=7704&#34;&gt;MySQL :: WL#7704: InnoDB: Remove deprecated file format parameters in 8.0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;query-cache-parameters-are-deprecated&#34;&gt;Query cache parameters are deprecated&lt;/h2&gt;&#xA;&lt;p&gt;These parammeters are deprecated in 8.0.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;query_cache_limit&lt;/li&gt;&#xA;&lt;li&gt;query_cache_size&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;ref: &lt;a href=&#34;https://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/&#34;&gt;https://mysqlserverteam.com/mysql-8-0-retiring-support-for-the-query-cache/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;innodb_support_xa&#34;&gt;innodb_support_xa&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;innodb_support_xa&lt;/code&gt; is deprecated as well.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goにおける並行処理 - channel編</title>
				<link>https://journal.lampetty.net/posts/concurrency-in-go-channels/</link>
				<pubDate>Tue, 10 Sep 2019 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/concurrency-in-go-channels/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;これは&lt;a href=&#34;https://journal.lampetty.net/entry/concurrency-in-go-goroutines&#34;&gt;Goにおける並行処理 - goroutine編 - oinume journal&lt;/a&gt;の続きの記事。goroutineに引き続き、Goの並行処理を支える重要な概念であるchannelについて説明する。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goにおける並行処理 - goroutine編</title>
				<link>https://journal.lampetty.net/posts/concurrency-in-go-goroutines/</link>
				<pubDate>Wed, 28 Aug 2019 00:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/concurrency-in-go-goroutines/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;Goでは、goroutineとchannelが言語仕様として組み込まれているため、他の言語に比べてとても並行処理のコードが書きやすい。この2つの基本的な動作原理についてまとめた自分用のメモである。(channelについては別の記事で書く予定)&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年7月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019-07/</link>
				<pubDate>Sun, 04 Aug 2019 00:07:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019-07/</guid>
				<description>&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;7月も小ネタだけどブログを書いた。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/pass-arguments-with-xargs&#34;&gt;xargsでファイルの内容をコマンドの引数として渡す - oinume journal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/intellij-20192-upgrading-problem&#34;&gt;Intellij IDEAを2019.2にアップグレードするとコピペや入力がおかしくなる問題のワークアラウンド - oinume journal&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;path-shrinker&#34;&gt;path-shrinker&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/oinume/path-shrinker&#34;&gt;path-shrinker&lt;/a&gt; というものを作った。ターミナルのプロンプトの /Users/go/src/github.com を &lt;code&gt;/U/g/s/github.com&lt;/code&gt; みたいにするやつ。zshのoh-my-zshではプラグインがあるんだけど、Bashでは見当たらなかったので作ってみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Intellij IDEAを2019.2にアップグレードするとコピペや入力がおかしくなる問題のワークアラウンド</title>
				<link>https://journal.lampetty.net/posts/intellij-20192-upgrading-problem/</link>
				<pubDate>Wed, 31 Jul 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/intellij-20192-upgrading-problem/</guid>
				<description>&lt;p&gt;先日IntelliJ IDEAを2019.2にアップグレードしたところ、以下の問題に遭遇した。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;エディタでのコピー＆ペーストすると同じものが2回ペーストされる&lt;/li&gt;&#xA;&lt;li&gt;文字の入力に取りこぼしがある(publicって入力してもpubcみたいなる)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;バグトラッカーを見たところ、&lt;a href=&#34;https://youtrack.jetbrains.com/issue/IDEA-217058&#34;&gt;Copied text is pasted twice via Cmd+V (with Japanese input)&lt;/a&gt;が不具合として上がっていたが修正されそうな気配がなくて途方にくれていたところ、&lt;a href=&#34;https://support.samuraism.com/hc/ja/articles/360033223134-macOS%E3%81%A7%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B32019-2%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%97%E3%81%9F%E3%82%89%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%85%A5%E5%8A%9B%E3%81%AA%E3%81%A9%E3%81%8C%E4%B8%8D%E5%AE%89%E5%AE%9A%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F-JBR8%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84&#34;&gt;こんなワークアラウンド&lt;/a&gt;があることをTwitter上で発見したので試してみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>xargsでファイルの内容をコマンドの引数として渡す</title>
				<link>https://journal.lampetty.net/posts/pass-arguments-with-xargs/</link>
				<pubDate>Sat, 20 Jul 2019 12:49:59 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/pass-arguments-with-xargs/</guid>
				<description>&lt;p&gt;dates.txt&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2019-01-01&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2019-02-01&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2019-03-01&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたいなファイルがあった時に、このファイルの行をxargsコマンド経由で任意のコマンドの引数として渡す方法。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cat dates.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs -I&lt;span class=&#34;o&#34;&gt;{}&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;echo {}&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>MacBookAir 2019を買おうか悩み中</title>
				<link>https://journal.lampetty.net/posts/new-macbook-air-2019/</link>
				<pubDate>Tue, 16 Jul 2019 11:06:48 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/new-macbook-air-2019/</guid>
				<description>&lt;p&gt;今使っているのはMacBookPro 13inch late 2016 Two Thunderbolt3 portsなんだけど、2018年モデルのMacBookAirにCPUスコアは負けている...&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://browser.geekbench.com/v4/cpu/13899013&#34;&gt;browser.geekbench.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Single-Core Score: 3886&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Multi-Core Score: 7701&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以下は2018年モデルのGeekBenchのスコア。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年6月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019-06/</link>
				<pubDate>Mon, 01 Jul 2019 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019-06/</guid>
				<description>&lt;p&gt;2019年がもう半分が過ぎてしまった。やばい。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;▓▓▓▓▓▓▓▓░░░░░░░ 50%&lt;/p&gt;&#xA;&lt;p&gt;— Year Progress (@year_progress) &lt;a href=&#34;https://twitter.com/year_progress/status/1146025732805681153?ref_src=twsrc%5Etfw&#34;&gt;July 2, 2019&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;6月は頑張ってブログを書いた。それなりの分量の記事を書こうとすると週に1個が限界な気がするので、良いペースだと思う。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goのcontextによるキャンセルやタイムアウト</title>
				<link>https://journal.lampetty.net/posts/cancel-and-timeout-with-context-in-go/</link>
				<pubDate>Mon, 17 Jun 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/cancel-and-timeout-with-context-in-go/</guid>
				<description>&lt;h2 id=&#34;これはなに&#34;&gt;これはなに？&lt;/h2&gt;&#xA;&lt;p&gt;Go言語における&lt;a href=&#34;https://godoc.org/context&#34;&gt;contextパッケージ&lt;/a&gt;を使ったキャンセルやタイムアウトについて説明する。この記事を読むと以下について詳しくなれるはず...!&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;context.WithCancel&lt;/li&gt;&#xA;&lt;li&gt;context.WithTimeout&lt;/li&gt;&#xA;&lt;li&gt;context.Done&lt;/li&gt;&#xA;&lt;li&gt;context.Err&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;とはいいつつも、かなり自分向けのまとめではあるし既出のトピックなので以下の記事を読むともっとわかりやすいはず。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.golang.org/context&#34;&gt;Go Concurrency Patterns: Context - The Go Programming Language&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://deeeet.com/writing/2016/07/22/context/&#34;&gt;Go1.7のcontextパッケージ | Taichi Nakashima&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;done-channelを使ったキャンセルの実装&#34;&gt;done channelを使ったキャンセルの実装&lt;/h2&gt;&#xA;&lt;p&gt;contextがあると何が嬉しいのかを説明するために、まずはdone channelを使ってキャンセルを行うコードを書いてみる。これは&lt;a href=&#34;https://www.amazon.co.jp/exec/obidos/ASIN/4873118468/kazzhomeunixo-22/&#34;&gt;Go言語による並行処理&lt;/a&gt;のP.137に記載されていたサンプルプログラムを少し修正したものである。&lt;/p&gt;</description>
			</item>
			<item>
				<title>zshをやめてbashにした</title>
				<link>https://journal.lampetty.net/posts/from-zsh-to-bash/</link>
				<pubDate>Mon, 10 Jun 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/from-zsh-to-bash/</guid>
				<description>&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bashを使うにあたって、zshが持つ標準機能のレベルと同じにするには初期設定が面倒だったけどなんとかいける。Bashは進化していると感じた。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Bash-it/bash-it&#34;&gt;bash-it&lt;/a&gt;が便利&lt;/li&gt;&#xA;&lt;li&gt;設定は .bash_profile も含めて&lt;a href=&#34;https://github.com/oinume/dotfiles/&#34;&gt;oinume/dotfiles&lt;/a&gt;に上げているので参考にどうぞ&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;動機&#34;&gt;動機&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/improve-my-terminal-with-zsh-prezto&#34;&gt;ターミナル環境を見直す(1) - zsh + prezto編 - oinume journal&lt;/a&gt; の記事でデフォルトのshellをzshに切り替えたけど、tmuxでバンバン新しいタブを開くと起動の遅さが気になっていてそろそろどうにかしたいと思っていた。また、zshは便利だけど設定項目を覚えたり調べるのが大変だし、ほとんどの機能は使いこなせていなかったので、これを機にシンプルなbashに乗り換えてみた。この記事はその際にやったことのメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年5月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019-05/</link>
				<pubDate>Fri, 07 Jun 2019 19:10:03 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019-05/</guid>
				<description>&lt;h2 id=&#34;仕事&#34;&gt;仕事&lt;/h2&gt;&#xA;&lt;p&gt;4月はもっぱら仕事が忙しく、最終的にGWは半分以上出勤するという体たらくだったので振り返りはスキップしてしまった。おかげで&lt;a href=&#34;https://www.mercari.com/jp/help_center/article/684/&#34;&gt;メルペイあと払い&lt;/a&gt;のリリースは何とかできたけど、技術的負債が多すぎて運用で死んでいる。&lt;/p&gt;&#xA;&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/gcp-cloud-pubsub-memo&#34;&gt;GCPのCloud PubSubをGoで動かしてみただけのメモ&lt;/a&gt; のみ。とにかく仕事が忙しくてプライベートで勉強したり何かをアウトプットすることを疎かにしてしまった。おかげで仕事は捗った。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ターミナル環境を見直す: pecoからfzfへ</title>
				<link>https://journal.lampetty.net/posts/terminal-env-from-peco-to-fzf/</link>
				<pubDate>Wed, 05 Jun 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/terminal-env-from-peco-to-fzf/</guid>
				<description>&lt;p&gt;コマンドの履歴やディレクトリ移動の履歴を選択するためのツールとして長らくpecoを使ってきたけど、fzfに移行してみた。理由は大したものではなく&lt;/p&gt;</description>
			</item>
			<item>
				<title>GCPのCloud Runを使って簡単なリダイレクタを作った話</title>
				<link>https://journal.lampetty.net/posts/running-redirector-on-gcp-cloud-run/</link>
				<pubDate>Fri, 17 May 2019 08:50:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/running-redirector-on-gcp-cloud-run/</guid>
				<description>&lt;p&gt;今年5月にbetaとしてリリースされたGCPの&lt;a href=&#34;https://cloud.google.com/run/&#34;&gt;Cloud Run&lt;/a&gt;を使って、もともとGAEで運用していたリダイレクタを移植してみたのでその紹介。&lt;/p&gt;&#xA;&lt;h2 id=&#34;cloud-runとは&#34;&gt;Cloud Runとは&lt;/h2&gt;&#xA;&lt;p&gt;HTTPリクエストを処理するためのFull ManagedなステートレスのContainerの実行環境。公式サイトには以下のように説明されている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年3月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019-03/</link>
				<pubDate>Fri, 05 Apr 2019 10:28:41 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019-03/</guid>
				<description>&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/gcp-cloud-pubsub-memo&#34;&gt;GCPのCloud PubSubをGoで動かしてみただけのメモ&lt;/a&gt; のみ。とにかく仕事が忙しくてプライベートで勉強したり何かをアウトプットすることを疎かにしてしまった(おかげで仕事は捗った)。&lt;/p&gt;</description>
			</item>
			<item>
				<title>GCPのCloud PubSubをGoで動かしてみただけのメモ</title>
				<link>https://journal.lampetty.net/posts/gcp-cloud-pubsub-memo/</link>
				<pubDate>Mon, 01 Apr 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/gcp-cloud-pubsub-memo/</guid>
				<description>&lt;p&gt;これはGCPのCloud PubSubのチュートリアルをやってみただけの自分用のメモ。この記事で紹介されているサンプルコードは&lt;a href=&#34;https://github.com/oinume/pubsub-sample&#34;&gt;GitHub&lt;/a&gt;に置いてある。&lt;/p&gt;&#xA;&lt;h2 id=&#34;cloud-pubsubとは&#34;&gt;Cloud PubSubとは&lt;/h2&gt;&#xA;&lt;p&gt;GCPで提供されているメッセージキュー。メッセージの送信をして(publish)、複数のシステムがそのメッセージを受信(subscribe)することができる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年02月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019-02/</link>
				<pubDate>Mon, 04 Mar 2019 00:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019-02/</guid>
				<description>&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;特になし&lt;/p&gt;&#xA;&lt;h2 id=&#34;英語&#34;&gt;英語&lt;/h2&gt;&#xA;&lt;p&gt;1月とほぼ変わらずという状態。ふと、2年前ぐらいに受けたTOEICの結果を見ていたら、Readingにおいて自分は単語力が弱いと書かれていたので、単語をちゃんと勉強するのが一番効果的っぽい。なお、今まで会社の補助で使えていたDMM英会話が使えなくなり途方にくれている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>楽天銀行のデビットカードはいいぞ</title>
				<link>https://journal.lampetty.net/posts/rakuten-ginko-debit-card/</link>
				<pubDate>Wed, 13 Feb 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/rakuten-ginko-debit-card/</guid>
				<description>&lt;p&gt;最近メインバンクを三菱UFJから楽天銀行に移している。現在進行系なのは、様々な引き落としの手続きに時間がかかっているためだけど、近日中には終わると思う。&lt;/p&gt;</description>
			</item>
			<item>
				<title>クライアントを作って理解するOAuth2(実装編)</title>
				<link>https://journal.lampetty.net/posts/oauth2-client-handson-in-go-authorization-code-grant/</link>
				<pubDate>Tue, 12 Feb 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/oauth2-client-handson-in-go-authorization-code-grant/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/oauth2-client-handson-in-go-setup&#34;&gt;クライアントを作って理解するOAuth2(準備編) - oinume journal&lt;/a&gt;の続編。前の記事ではGoogle APIsのプロジェクトを作成してOAuth2 clientを登録した。この記事では発行されたClient idを使って実際にAccess tokenを取得する部分をGoで実装してみたいと思う。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年01月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2019-01/</link>
				<pubDate>Mon, 11 Feb 2019 13:19:51 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2019-01/</guid>
				<description>&lt;h2 id=&#34;アウトプット&#34;&gt;アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;OAuth 2.0について以下の記事を書いた。少しかじった程度だけど、その知識をアウトプットした感じ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/oauth2-client-handson-in-go-setup&#34;&gt;journal.lampetty.net&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;英語&#34;&gt;英語&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.dailytechnewsshow.com/&#34;&gt;Daily Tech News Show&lt;/a&gt;をほぼ毎日聞いている&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1エピソードが5分以内なので聞きやすい。長い英語のpodcastは途中で集中が切れてしまうと離脱してしまうけど、5分なら集中できる&lt;/li&gt;&#xA;&lt;li&gt;また、テック業界のニュースが多いので基本的な文脈はわかっているため内容も理解しやすい&lt;/li&gt;&#xA;&lt;li&gt;これを聞いていて思ったのは、日本に流れてこないニュースが意外とあるのだということ。なんとなく得した気分になる&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;DMM英会話で、Daily Newsだけではなく文法をやり始めた。難易度が高い方から逆順にやっているのだけど、意外と忘れていることが多いので良い。&lt;/li&gt;&#xA;&lt;li&gt;6月にIELTSの試験を受ける予定&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;アルゴリズム&#34;&gt;アルゴリズム&lt;/h2&gt;&#xA;&lt;p&gt;本は読んでいるけど特にアウトプットはなし。&lt;/p&gt;</description>
			</item>
			<item>
				<title>クライアントを作って理解するOAuth2(準備編)</title>
				<link>https://journal.lampetty.net/posts/oauth2-client-handson-in-go-setup/</link>
				<pubDate>Wed, 16 Jan 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/oauth2-client-handson-in-go-setup/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;GoogleやFacebookなどの外部サービスのAPIを利用する上で欠かせないのがOAuth2という仕様なんだけど、この仕様だけ読んでいてもつまらないしよーわからんので、実際に手を動かしてみて理解を深めよう、というのがこの記事の趣旨です。実際にはOAuth2素人が少し仕事でかじった知識をアウトプットしたものです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2019年の抱負</title>
				<link>https://journal.lampetty.net/posts/resolution-in-2019/</link>
				<pubDate>Sat, 12 Jan 2019 09:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolution-in-2019/</guid>
				<description>&lt;p&gt;もう10日以上経ってしまったけど2019年の抱負。&lt;/p&gt;&#xA;&lt;h2 id=&#34;大方針アウトプット&#34;&gt;大方針：アウトプット&lt;/h2&gt;&#xA;&lt;p&gt;今年のテーマは &lt;code&gt;アウトプット&lt;/code&gt; を第一にする。昨年は本を読んだりUdemyでいろいろ勉強していたけど、雑でもいいからアウトプットすることで自分の血肉にしていきたいと思っている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018/</link>
				<pubDate>Sat, 05 Jan 2019 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018/</guid>
				<description>&lt;p&gt;あけましておめでとうございます。年末年始は親戚とハワイで過ごしていました。冬なのに海に入るという謎の体験をして、正月感はまったくなかったけどこれはこれで新鮮でした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Satisfying a large interface quickly in Go</title>
				<link>https://journal.lampetty.net/posts/satisfying-a-large-interface-quickly-in-go/</link>
				<pubDate>Mon, 12 Nov 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/satisfying-a-large-interface-quickly-in-go/</guid>
				<description>&lt;p&gt;Sometimes it&#39;s painful to safisfy a large interface in Go. Here is a simple answer for this, just embed interface on struct like bellow:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Foo&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;interface&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;MethodA&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;MethodB&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;MethodC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;MethodD&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;FooImpl&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;struct&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Foo&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fi&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;FooImpl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;MethodA&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;MethodA called&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;foo&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;new&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;FooImpl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;foo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;MethodA&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// Implemented&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;foo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;MethodB&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// Not implemented, runtime error will happen&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can check the result on &lt;a href=&#34;https://play.golang.org/p/0y8ICTWCfpy&#34;&gt;https://play.golang.org/p/0y8ICTWCfpy&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年10月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-10/</link>
				<pubDate>Thu, 08 Nov 2018 10:39:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-10/</guid>
				<description>&lt;h2 id=&#34;アルゴリズム&#34;&gt;アルゴリズム&lt;/h2&gt;&#xA;&lt;p&gt;BTreeをやっているけど、時間がなくて実装ができずに止まっている。&lt;/p&gt;&#xA;&lt;h2 id=&#34;ブロックチェーン&#34;&gt;ブロックチェーン&lt;/h2&gt;&#xA;&lt;p&gt;進捗なし&lt;/p&gt;&#xA;&lt;h2 id=&#34;lekcijeのインフラ引っ越し&#34;&gt;lekcijeのインフラ引っ越し&lt;/h2&gt;&#xA;&lt;p&gt;CircleCIでdocker buildしてGoogle Container Registryにpushするところまではできたので、あとはKubernetesのyamlをひたすら書いていく。&lt;/p&gt;</description>
			</item>
			<item>
				<title>direnvから.envをロードする</title>
				<link>https://journal.lampetty.net/posts/loading-dotenv-file-by-direnv/</link>
				<pubDate>Fri, 19 Oct 2018 19:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/loading-dotenv-file-by-direnv/</guid>
				<description>&lt;p&gt;.envrcファイルに &lt;code&gt;dotenv&lt;/code&gt; と書くだけで、現在いるディレクトリの .env ファイルを読んでくれる素敵な仕様を発見した。これでdirenv使いながら.env形式しか受け付けないアプリケーションにも対応できてめでたしめでたし。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年9月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-09/</link>
				<pubDate>Sun, 07 Oct 2018 16:15:39 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-09/</guid>
				<description>&lt;p&gt;9月は10日間の奥さんの出張があったこともあり、本当にあっという間だった。&lt;/p&gt;&#xA;&lt;h2 id=&#34;アルゴリズム&#34;&gt;アルゴリズム&lt;/h2&gt;&#xA;&lt;p&gt;次はBTreeをやろうと思って、その前にAVLTreeやらないとダメそうで、そういえばBinarySearchTreeも実装したことないなって思って&lt;a href=&#34;https://github.com/oinume/algo/tree/master/src/datastructure/binary_search_tree&#34;&gt;BinarySearchTreeを実装した&lt;/a&gt;。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年8月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-08/</link>
				<pubDate>Tue, 04 Sep 2018 21:40:45 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-08/</guid>
				<description>&lt;h2 id=&#34;アルゴリズム&#34;&gt;アルゴリズム&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/oinume/algo/blob/master/src/string_finder/boyer_moore.go&#34;&gt;Boyer Moore法やった&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;次は何をやろうかと悩んだ結果、データベースでよく使うBTreeをやることにした。&lt;/p&gt;&#xA;&lt;h2 id=&#34;ブロックチェーン&#34;&gt;ブロックチェーン&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&amp;amp;aEightID=s00000016735001&#34;&gt;https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&amp;amp;aEightID=s00000016735001&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ノロノロと亀のように進めている。6%完了。やっとスマートコントラクトの話が出てきた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年7月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-07/</link>
				<pubDate>Fri, 03 Aug 2018 10:23:55 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-07/</guid>
				<description>&lt;h2 id=&#34;機械学習&#34;&gt;機械学習&lt;/h2&gt;&#xA;&lt;p&gt;進捗なし。次からは振り返り対象から外す。&lt;/p&gt;&#xA;&lt;h2 id=&#34;アルゴリズム&#34;&gt;アルゴリズム&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;文字列探索で力まかせのアルゴリズム実装した&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ブロックチェーン&#34;&gt;ブロックチェーン&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&amp;amp;aEightID=s00000016735001&#34;&gt;https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&amp;amp;aEightID=s00000016735001&lt;/a&gt;&lt;a href=&#34;https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&amp;amp;aEightID=s00000016735001&#34;&gt;www.udemy.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;このコースを少しだけ進めた。まだブロックチェーンの基礎の部分だけど曖昧な理解だったところがクリアになって来ててよい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goのhttpパッケージだけでmiddlewareを実装する</title>
				<link>https://journal.lampetty.net/posts/implementing-middleware-with-http-package-in-go/</link>
				<pubDate>Mon, 30 Jul 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/implementing-middleware-with-http-package-in-go/</guid>
				<description>&lt;p&gt;標準ライブラリのhttpパッケージだけでもmiddlewareは簡単に作れますよ、というお話。&lt;/p&gt;&#xA;&lt;h2 id=&#34;おさらい-httphandlerまたはhttphandlerfuncでやり取りする&#34;&gt;おさらい: http.Handlerまたはhttp.HandlerFuncでやり取りする&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://oinume.hatenablog.com/entry/understanding-http-handler-in-go&#34;&gt;Goのhttp.Handlerやhttp.HandlerFuncをちゃんと理解する - oinume journal&lt;/a&gt;に書いたとおり、&lt;/p&gt;</description>
			</item>
			<item>
				<title>GoのWeb Application Frameworkでオススメは？</title>
				<link>https://journal.lampetty.net/posts/recommended-web-application-framework-in-go/</link>
				<pubDate>Fri, 13 Jul 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/recommended-web-application-framework-in-go/</guid>
				<description>&lt;p&gt;GoのWeb Application Frameworkでオススメは？という質問をよく受ける。 &lt;code&gt;標準ライブラリのhttpパッケージ使えばおｋ&lt;/code&gt; とまずは返答している。ただ、RESTで様々なHTTPメソッドをサポートする必要があり、かつ &lt;code&gt;/v1/users/{id}&lt;/code&gt; のようなPath内にIDが入る場合の対応を行いたい場合は&lt;/p&gt;</description>
			</item>
			<item>
				<title>読書: 新しい文章力の教室</title>
				<link>https://journal.lampetty.net/posts/20180712-0900/</link>
				<pubDate>Thu, 12 Jul 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/20180712-0900/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B013DX94FC?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/418mpxoSVnL._SL500_.jpg&#34; alt=&#34;新しい文章力の教室　苦手を得意に変えるナタリー式トレーニング できるビジネスシリーズ&#34; loading=&#34;lazy&#34; title=&#34;新しい文章力の教室　苦手を得意に変えるナタリー式トレーニング できるビジネスシリーズ&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B013DX94FC?tag=kazzhomeunixo-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;新しい文章力の教室　苦手を得意に変えるナタリー式トレーニング できるビジネスシリーズ&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goのhttp.Handlerやhttp.HandlerFuncをちゃんと理解する</title>
				<link>https://journal.lampetty.net/posts/understanding-http-handler-in-go/</link>
				<pubDate>Mon, 09 Jul 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/understanding-http-handler-in-go/</guid>
				<description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;&#xA;&lt;p&gt;GoでHTTP Serverを作ろうとすると、標準ライブラリを使う場合以下のようなコードをよく書くと思う。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;log&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;net/http&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;mux&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;http&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;NewServeMux&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;mux&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Handle&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/hello&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;http&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;HandlerFunc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;hello&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Fatal&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;http&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;ListenAndServe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;:8080&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;mux&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;hello&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;http&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ResponseWriter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;http&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;WriteHeader&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;http&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;StatusOK&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Fprintf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;w&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Hello World&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このコードの登場人物としては以下になるが、それぞれなんだっけ？というのをいっつも忘れてしまうのでメモしておく。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年6月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-06/</link>
				<pubDate>Thu, 28 Jun 2018 10:21:59 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-06/</guid>
				<description>&lt;h2 id=&#34;機械学習&#34;&gt;機械学習&lt;/h2&gt;&#xA;&lt;p&gt;進捗なし&lt;/p&gt;&#xA;&lt;h2 id=&#34;アルゴリズム&#34;&gt;アルゴリズム&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/oinume/algo/blob/master/src/datastructure/hash_table/open_addressing.go&#34;&gt;hash tableのオープンアドレス法の実装した&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Boyer Mooreの文字列検索のアルゴリズム学んだ&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ブロックチェーン&#34;&gt;ブロックチェーン&lt;/h2&gt;&#xA;&lt;p&gt;進捗なし&lt;/p&gt;&#xA;&lt;h2 id=&#34;lekcijeの月額課金&#34;&gt;lekcijeの月額課金&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stripeでsubscriptionの初月無料が簡単にできるということがわかった&lt;/li&gt;&#xA;&lt;li&gt;その他細々とした修正&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;プライベート&#34;&gt;プライベート&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;文章力を磨きたくて、&lt;a href=&#34;https://amzn.to/2tKOLQX&#34;&gt;新しい文章力の教室　苦手を得意に変えるナタリー式トレーニング&lt;/a&gt;という本を読んだ。むっちゃ参考になった。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;資産運用&#34;&gt;資産運用&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;WealthNaviとクラウドバンクの口座を作った&lt;/li&gt;&#xA;&lt;li&gt;Netflixの株を少し買った&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;7月に向けて&#34;&gt;7月に向けて&lt;/h2&gt;&#xA;&lt;p&gt;Kubernetesも勉強しないとなー... 何を優先で勉強するか悩ましい...&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年5月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-05/</link>
				<pubDate>Sat, 02 Jun 2018 19:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-05/</guid>
				<description>&lt;h2 id=&#34;機械学習&#34;&gt;機械学習&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.udemy.com/kikagaku_blackbox_1/?deal_code=JPA8DEAL2PERCENTAGE&amp;amp;aEightID=s00000016735001&#34;&gt;Udemyのキカガクのコース&lt;/a&gt;は全部やり終わって、単回帰分析ならできそうな気がしてきた&lt;/p&gt;&#xA;&lt;h2 id=&#34;アルゴリズム&#34;&gt;アルゴリズム&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;hash のオープンアドレス法の実装やってない&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ブロックチェーンnew&#34;&gt;ブロックチェーン(New)&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;やりたいな。とりあえず&lt;a href=&#34;https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/?deal_code=JPA8DEAL2PERCENTAGE&amp;amp;aEightID=s00000016735001&#34;&gt;Udemyのこの講座&lt;/a&gt;に課金した&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;lekcijeの月額課金&#34;&gt;lekcijeの月額課金&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Stripeの機能はだいたい調べ終わって、ちょっとずつ実装しているところ。進捗10%&lt;/li&gt;&#xA;&lt;li&gt;関係ないけどGoogle Data Studioが便利だった。MySQLのデータもDataSourceに指定できる。&lt;/li&gt;&#xA;&lt;li&gt;Reactで実装しているページにLoadingが出るようにした。&lt;a href=&#34;https://github.com/derrickpelletier/react-loading-overlay/blob/master/__tests__/LoadingOverlay.test.js&#34;&gt;react-loading-overlay&lt;/a&gt;というやつを使ったんだけど楽ちんだった。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;プライベート&#34;&gt;プライベート&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Netflixの&lt;a href=&#34;https://www.netflix.com/jp/title/80122179&#34;&gt;ザ・キーパーズ&lt;/a&gt;観始めて面白すぎてはまった。&lt;/li&gt;&#xA;&lt;li&gt;楽天マガジンに課金した。月410円で雑誌読み放題の破壊力はすごい。本屋だと立ち読みできない女性誌とか見るのが楽しい。Twitter見るぐらいだったら雑誌読んでいた方が知識が増えてよい。&lt;/li&gt;&#xA;&lt;li&gt;昨年末に申請したe-Redisdencyカードをやっと受け取った。これは詳しくブログに書きたい。&lt;/li&gt;&#xA;&lt;li&gt;OculusGo買った。ホラー系のゲームが怖すぎてすごい。バイオとか出ないかな？&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;dropbox-paper&#34;&gt;Dropbox Paper&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;個人で開発しているサービスの仕様書やメモをwri.peからDropbox Paperに移行した&lt;/li&gt;&#xA;&lt;li&gt;Markdownで書けるのとGoogle docsより動作が軽快なのが好き&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;6月に向けて&#34;&gt;6月に向けて&lt;/h2&gt;&#xA;&lt;p&gt;イーサリアムやっていくぞ！&lt;/p&gt;</description>
			</item>
			<item>
				<title>Generating an unpredictable random value in Go</title>
				<link>https://journal.lampetty.net/posts/generating-an-unpredictable-random-value-in-go/</link>
				<pubDate>Mon, 14 May 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/generating-an-unpredictable-random-value-in-go/</guid>
				<description>&lt;p&gt;There are a lot of examples to use &lt;a href=&#34;https://golang.org/pkg/math/rand/&#34;&gt;math/rand&lt;/a&gt;. However, should use &lt;a href=&#34;https://golang.org/pkg/crypto/rand/&#34;&gt;crypto/rand&lt;/a&gt; if you want to generate an unpredictable random value. That&#39;s because crypto/rand uses getrandom(2) if available, /dev/urandom otherwise on Linux.&lt;/p&gt;&#xA;&lt;p&gt;As a real world example, UUID v4 uses crypto/rand internally. &lt;a href=&#34;https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random&#34;&gt;UUID v4&lt;/a&gt;) is randomly generated. An implementation of UUID v4 in Go uses &lt;code&gt;crypto/rand&lt;/code&gt; internally.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/google/uuid/blob/master/version4.go#L29-L38&#34;&gt;https://github.com/google/uuid/blob/master/version4.go#L29-L38&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/google/uuid/blob/master/uuid.go#L36&#34;&gt;https://github.com/google/uuid/blob/master/uuid.go#L36&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Here is an example to generate random values with crypto/rand.&lt;/p&gt;&#xA;&lt;h3 id=&#34;generate-random-integer&#34;&gt;Generate random integer&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;generateInt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;int64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;int64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rand&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rand&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Reader&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;big&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;NewInt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nil&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Int64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nil&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;generate-random-string&#34;&gt;Generate random string&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;generateString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;length&lt;/span&gt; &lt;span class=&#34;ne&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([]&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;rand&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nil&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;base64&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;URLEncoding&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;EncodeToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nil&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;whole-source-code&#34;&gt;Whole source code&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;crypto/rand&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;encoding/base64&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;log&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;math/big&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;generateInt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Fatal&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;random int = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;generateString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Fatal&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;random string = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;generateInt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;rand&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;rand&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Reader&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;big&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;NewInt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;n&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;r&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Int64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;generateString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;make&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([]&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;rand&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;base64&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;URLEncoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;EncodeToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>課金している有料のMacアプリ</title>
				<link>https://journal.lampetty.net/posts/paid-mac-apps/</link>
				<pubDate>Wed, 02 May 2018 18:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/paid-mac-apps/</guid>
				<description>&lt;p&gt;自分的に &lt;code&gt;もうこれがないと生活できない&lt;/code&gt; というMacの有料アプリ集。&lt;/p&gt;&#xA;&lt;h2 id=&#34;alfred&#34;&gt;&lt;a href=&#34;https://www.alfredapp.com/&#34;&gt;Alfred&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;高機能なランチャー。£19。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;クリップボードのコピー＆ペースト&lt;/li&gt;&#xA;&lt;li&gt;Chromeのブックマークを検索して開く&lt;/li&gt;&#xA;&lt;li&gt;英和・和英辞書&lt;/li&gt;&#xA;&lt;li&gt;計算機&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;intellij-idea&#34;&gt;&lt;a href=&#34;https://www.jetbrains.com/idea/&#34;&gt;IntelliJ IDEA&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;コードを書く時はこれを使っている。IntelliJを本格的に使うまではEmacsやAtomで頑張っていたけど、デフォルトの設定がかなりイケていて補完も賢いので最近はこれしか使っていない。これ1つあればどんな言語のコードも書けるのも良い。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Comparing datetime in Golang</title>
				<link>https://journal.lampetty.net/posts/comparing-datetime-in-golang/</link>
				<pubDate>Wed, 02 May 2018 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/comparing-datetime-in-golang/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://play.golang.org/p/5-BtaE6iXaP&#34;&gt;https://play.golang.org/p/5-BtaE6iXaP&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;timebefore-and-timeafter&#34;&gt;time.Before and time.After&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;time&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2018&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;2018&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;t1.Before(t2) = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Before&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// test &amp;#34;t2 - t1 &amp;gt; 0&amp;#34; --&amp;gt; true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;t2.Before(t1) = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Before&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// test &amp;#34;t1 - t2 &amp;gt; 0&amp;#34; --&amp;gt; false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;t2.After(t1) = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;After&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// test &amp;#34;t1 - t2 &amp;lt; 0&amp;#34; --&amp;gt; true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;t1.After(t2) = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;After&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// test &amp;#34;t2 - t1 &amp;lt; 0&amp;#34; --&amp;gt; false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;t1.Equal(t1) = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Equal&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;t1.Equal(t2) = %v\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Equal&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;t2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;timeequal&#34;&gt;time.Equal&lt;/h2&gt;&#xA;&lt;p&gt;You can use &lt;code&gt;time.Equal&lt;/code&gt; to compare the time objects are exactly same.&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年1Qの振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-q1/</link>
				<pubDate>Tue, 01 May 2018 18:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-q1/</guid>
				<description>&lt;p&gt;2018年も早くも4ヶ月が過ぎてしまったので、1Qの振り返り。3ヶ月スパンの振り返りだと何をやったのか忘れてしまうので次からは1ヶ月単位で振り返ろう。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年4月の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-2018-04/</link>
				<pubDate>Tue, 01 May 2018 18:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-2018-04/</guid>
				<description>&lt;h2 id=&#34;その1-機械学習&#34;&gt;その1. 機械学習&lt;/h2&gt;&#xA;&lt;p&gt;まだ &lt;code&gt;【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 -&lt;/code&gt; が終わっていない。3分の2ぐらい。5月中には終わらせたい。&lt;/p&gt;&#xA;&lt;h2 id=&#34;その2-lekcijeに月額課金&#34;&gt;その2. lekcijeに月額課金&lt;/h2&gt;&#xA;&lt;p&gt;手付かず。&lt;/p&gt;</description>
			</item>
			<item>
				<title>grpc-gatewayでRESTful APIを実装する</title>
				<link>https://journal.lampetty.net/posts/implement-restful-api-with-grpc-gateway/</link>
				<pubDate>Mon, 26 Mar 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/implement-restful-api-with-grpc-gateway/</guid>
				<description>&lt;h3 id=&#34;背景&#34;&gt;背景&lt;/h3&gt;&#xA;&lt;p&gt;何かしらの理由でRESTでAPIを実装しなくてはいけない時に、JSONを直接扱うのは面倒くさい。具体的には、JSONをデシリアライズして内部のデータ構造にマッピングする処理を書くのが面倒だ。というわけで、&lt;a href=&#34;https://github.com/grpc-ecosystem/grpc-gateway&#34;&gt;grpc-gateway&lt;/a&gt;を使ってProtocol Buffersを定義するだけでREST APIを実装できないかを検討してみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Google Apps Scriptで外部のREST APIを呼び出す</title>
				<link>https://journal.lampetty.net/posts/call-external-api-in-gas/</link>
				<pubDate>Wed, 28 Feb 2018 19:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/call-external-api-in-gas/</guid>
				<description>&lt;p&gt;Google Apps Script(GAS)から外部のREST APIを呼ぶには、&lt;a href=&#34;https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app&#34;&gt;UrlFetchApp.fetch&lt;/a&gt; というメソッドを呼び出せば良い。例えばJSONをリクエストのペイロードとして送る場合のサンプルコードはこんな感じ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Google Driveの画像をブログに埋め込む</title>
				<link>https://journal.lampetty.net/posts/embed-images-on-google-drive/</link>
				<pubDate>Fri, 23 Feb 2018 19:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/embed-images-on-google-drive/</guid>
				<description>&lt;p&gt;いっっっつもやり方を忘れるので未来の自分のためにメモ。&lt;/p&gt;&#xA;&lt;p&gt;1.Google Driveで対象の画像ファイルを選択して開く&lt;/p&gt;&#xA;&lt;p&gt;2.画像が表示されるので、右上のメニュー(縦の...のアイコン)から &lt;code&gt;新しいウィンドウで開く&lt;/code&gt; をクリックする。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Googleフォームでメールアドレスを収集する場合にそのメールアドレスをGASから取得する</title>
				<link>https://journal.lampetty.net/posts/obtain-google-form-email-from-gas/</link>
				<pubDate>Thu, 22 Feb 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/obtain-google-form-email-from-gas/</guid>
				<description>&lt;p&gt;ググってもあまり出てこなかったのでメモ。Googleフォームで &lt;code&gt;メールアドレスを収集する&lt;/code&gt; という設定をONにすると、フォームの回答を記録するSpreadsheetにメールアドレスが保存されるようになる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>HerokuのName lookup timeoutが短すぎて困ってる話</title>
				<link>https://journal.lampetty.net/posts/heroku-name-lookup-timeout-is-too-short/</link>
				<pubDate>Fri, 16 Feb 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/heroku-name-lookup-timeout-is-too-short/</guid>
				<description>&lt;p&gt;最近HerokuのDynoで以下のようなエラーが出るようになった。アプリケーションから接続するMySQLのホスト名の解決が失敗しているっぽい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>webpackで&lt;script&gt;タグでロードしたライブラリをbundleされたJSから外したい</title>
				<link>https://journal.lampetty.net/posts/webpack-config-externals/</link>
				<pubDate>Fri, 16 Feb 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/webpack-config-externals/</guid>
				<description>&lt;p&gt;webpackのconfigには &lt;code&gt;externals&lt;/code&gt; というものがある(&lt;a href=&#34;https://webpack.js.org/configuration/externals/&#34;&gt;ドキュメント&lt;/a&gt;)。このexternalsで定義したライブラリは、importで参照していてもwebpackでビルドして生成される成果物(bundle.js)には含まれなくなるというもの。&lt;/p&gt;&#xA;&lt;h3 id=&#34;自分のユースケース&#34;&gt;自分のユースケース&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;もともとReactを使っていないプロジェクトで一部のページだけでReactを使っていきたい&lt;/li&gt;&#xA;&lt;li&gt;全ページでReactを使うわけではないので、bundle.js には含めたくない(サイズ削減)&lt;/li&gt;&#xA;&lt;li&gt;Reactが必要なページのみHTML上の &lt;script&gt; タグでロード&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;webpackconfigjs&#34;&gt;webpack.config.js&lt;/h3&gt;&#xA;&lt;p&gt;externalsでreactを除外するよ、ということを定義すれば bundle.js には含まれないようになる。webpackの設定ファイルはこんな感じ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Loop over dates with bash in Linux</title>
				<link>https://journal.lampetty.net/posts/loop-over-dates-with-bash-in-linux/</link>
				<pubDate>Fri, 05 Jan 2018 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/loop-over-dates-with-bash-in-linux/</guid>
				<description>&lt;p&gt;Here is an example of looping over dates from 2017-10-22 to 2017-12-31.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;START&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;2017-10-22&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;END&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;2017-12-31&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;CURRENT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$START&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; true&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$CURRENT&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CURRENT&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$END&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;break&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nv&#34;&gt;CURRENT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;date -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$CURRENT&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; 1day&amp;#34;&lt;/span&gt; +%Y-%m-%d&lt;span class=&#34;sb&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;note&#34;&gt;NOTE&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;date -d &amp;quot;2017-12-01 1day&amp;quot;&lt;/code&gt; returns a next day of 2017-12-01&lt;/li&gt;&#xA;&lt;li&gt;+%Y-%m-%d is a format&lt;/li&gt;&#xA;&lt;li&gt;See more options in &lt;a href=&#34;http://www.gnu.org/software/coreutils/manual/html_node/date-invocation.html&#34;&gt;GNU Coreutils: date invocation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B072JD718H/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;https://images-fe.ssl-images-amazon.com/images/I/51kz0s-isdL._SL160_.jpg&#34; alt=&#34;Linux: Linux For Beginners Guide To Learn Linux Command Line, Linux Operating System And Linux Commands (English Edition)&#34; loading=&#34;lazy&#34; title=&#34;Linux: Linux For Beginners Guide To Learn Linux Command Line, Linux Operating System And Linux Commands (English Edition)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>2018年の抱負</title>
				<link>https://journal.lampetty.net/posts/resolution-in-2018/</link>
				<pubDate>Thu, 04 Jan 2018 19:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolution-in-2018/</guid>
				<description>&lt;p&gt;あけましておめでとうございます。まだ1枚も年賀状の返信出してないです。今年も例によって新年の抱負。&lt;/p&gt;&#xA;&lt;h2 id=&#34;過去の振り返り&#34;&gt;過去の振り返り&lt;/h2&gt;&#xA;&lt;p&gt;新年の抱負をかかげても達成できないことが多いので&lt;/p&gt;</description>
			</item>
			<item>
				<title>2017年の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-of-2017/</link>
				<pubDate>Mon, 01 Jan 2018 23:36:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-of-2017/</guid>
				<description>&lt;p&gt;あけましておめでとうございます。大晦日は2017年の振り返りをせずに息子の寝かしつけで寝落ちするという体たらくだったので2017年の振り返りをさせてください。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2017年に買って良かったモノ・サービス</title>
				<link>https://journal.lampetty.net/posts/good-products-in-2017/</link>
				<pubDate>Sun, 31 Dec 2017 18:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/good-products-in-2017/</guid>
				<description>&lt;h3 id=&#34;line-pay&#34;&gt;&lt;a href=&#34;https://line.me/ja/pay&#34;&gt;LINE Pay&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;買ったモノじゃないけど、LINE Payをちゃんと使い始めた。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ポイントが2%つく。これはかなり太っ腹だと思う&lt;/li&gt;&#xA;&lt;li&gt;決済するとすぐにLINEに通知が来る。自分はPebbleに通知を送っているので、いくら使ったのかがすぐわかってこれが地味にありがたい&lt;/li&gt;&#xA;&lt;li&gt;オートチャージ的な機能が便利&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;というのが良い点。これがJCBじゃなくてVISAだったら最高だけど、日本だったらだいたいどの店でもJCB使えるのでそれほど困っていない。LINE Payカードのおかげでほぼ現金を使わなくなった。微妙な点としては&lt;/p&gt;</description>
			</item>
			<item>
				<title>Handling uploaded files in Go</title>
				<link>https://journal.lampetty.net/posts/handling-uploaded-files-in-go/</link>
				<pubDate>Tue, 19 Dec 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/handling-uploaded-files-in-go/</guid>
				<description>&lt;p&gt;Handling uploaded files in Go is quite easy. Here is a complete example.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://golang.org/pkg/net/http/#Request.ParseMultipartForm&#34;&gt;net/http.Request.ParseMultipartForm&lt;/a&gt; parses a request body as multipart/form-data. You can get files with &lt;code&gt;net/http.Request.FormFile&lt;/code&gt; after calling the method&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://golang.org/pkg/net/http/#Request.FormFile&#34;&gt;net/http.Request.FormFile&lt;/a&gt; returns &lt;a href=&#34;https://golang.org/pkg/mime/multipart/#File&#34;&gt;mime/multipart.File&lt;/a&gt; and &lt;a href=&#34;https://golang.org/pkg/mime/multipart/#FileHeader&#34;&gt;mime/multipart.FileHeader&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;You can read a content from mime/multipart.File&lt;/li&gt;&#xA;&lt;li&gt;You can get a file name from mime/multipart.FileHeader&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B0184N7WWS/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;https://images-fe.ssl-images-amazon.com/images/I/510Qib-dSCL._SL160_.jpg&#34; alt=&#34;The Go Programming Language (Addison-Wesley Professional Computing Series)&#34; loading=&#34;lazy&#34; title=&#34;The Go Programming Language (Addison-Wesley Professional Computing Series)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B0184N7WWS/kazzhomeunixo-22/&#34;&gt;The Go Programming Language (Addison-Wesley Professional Computing Series)&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>エストニアに行く前準備</title>
				<link>https://journal.lampetty.net/posts/preparation-for-estonia/</link>
				<pubDate>Sun, 10 Dec 2017 10:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/preparation-for-estonia/</guid>
				<description>&lt;p&gt;今日からエストニアに6日間出張に行くのでその前準備に何をやったかをメモしておく。&lt;/p&gt;&#xA;&lt;h3 id=&#34;エストニア出張の目的&#34;&gt;エストニア出張の目的&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ちゃんとしたマイナンバーがある&lt;/li&gt;&#xA;&lt;li&gt;選挙の投票や、学校の授業の成績管理などが電子化されている&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.jeeadis.jp/jeeadis-blog/e-residencyid&#34;&gt;e-Residency&lt;/a&gt;なにそれかっこいい&lt;/li&gt;&#xA;&lt;li&gt;スタートアップ界隈が熱い&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;というのを見てみたくて行く感じ。特にスタートアップシーンはTransferWiseやPipedriveという会社は日本にも支社があるぐらい成功しているらしい。エストニアは人口が130万人と少ないので、国内である程度うまくいったらヨーロッパやアメリカに事業を展開するというモデルらしい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ハワイでのSIMはKDDI x h2o が良かった</title>
				<link>https://journal.lampetty.net/posts/kddi-h2o-sim-in-hawaii/</link>
				<pubDate>Mon, 25 Sep 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/kddi-h2o-sim-in-hawaii/</guid>
				<description>&lt;p&gt;9/1から1週間ほどハワイに行ったのだけど、現地でのネットワーク環境どうしようかと悩んでいて色々調べた結果KDDI mobile x h2o のSIMが良かったのでレポート。良かった点としては&lt;/p&gt;</description>
			</item>
			<item>
				<title>gcloudコマンドを使わずにGoogle Cloud Storageにファイルをアップロードする</title>
				<link>https://journal.lampetty.net/posts/upload-file-to-gcs-without-gcloud-command/</link>
				<pubDate>Mon, 21 Aug 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/upload-file-to-gcs-without-gcloud-command/</guid>
				<description>&lt;h3 id=&#34;概要&#34;&gt;概要&lt;/h3&gt;&#xA;&lt;p&gt;gcloudコマンドを使わずにPythonと&lt;a href=&#34;https://pypi.python.org/pypi/google-cloud&#34;&gt;google-cloud&lt;/a&gt;を使ってGoogle Cloud Storage(GCS)に頑張ってファイルをアップロードしてみる。google-cloudはPython向けのGoogle Cloud Platformの何かを操作するためのクライアントライブラリ。GCPの以下の機能の操作がサポートされている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2017年の進捗</title>
				<link>https://journal.lampetty.net/posts/20170619-0900/</link>
				<pubDate>Mon, 19 Jun 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/20170619-0900/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://oinume.hatenablog.com/entry/resolution-in-2017&#34;&gt;2017年の抱負 - oinume journal&lt;/a&gt; で書いた、今年の抱負の進捗。&lt;/p&gt;&#xA;&lt;h2 id=&#34;機械学習を学ぶ&#34;&gt;機械学習を学ぶ&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.udemy.com/learning-ai/learn/v4/overview&#34;&gt;Log in to continue your learning journey | Udemy&lt;/a&gt; というものをやったけど、本当にまだまだわからないことが多い。あと、自分は機械学習よりもデータ分析の方が現時点ではオモシロイと感じている。numpyやpandasは少しわかってきたので、もう少し深掘りしていきたいところ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLのデータをJupyter Notebook上でグラフにする</title>
				<link>https://journal.lampetty.net/posts/visualize-mysql-data-in-jupyter/</link>
				<pubDate>Fri, 02 Jun 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/visualize-mysql-data-in-jupyter/</guid>
				<description>&lt;p&gt;最近少しずつJupyter Notebookやpandas, matplotlibに慣れてきて、PythonによるData Scienceが面白くなってきたと感じてます。今日はMySQLのデータをSQLで持ってきて、Jupyter Notebook上でグラフにしてみる話。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Udemyがなかなかいい感じ</title>
				<link>https://journal.lampetty.net/posts/learn-with-udemy/</link>
				<pubDate>Tue, 23 May 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/learn-with-udemy/</guid>
				<description>&lt;p&gt;最近は健康のために、六本木→渋谷まで歩いて帰っているのでPodcastをよく聴くようになった。1日30分以上歩いていて、その間は暇なのでPodcastを聞いていたのだけれどPodcastが在庫切れになってしまった。どうしようかと悩んでいたところ、以前&lt;a href=&#34;https://www.udemy.com/&#34;&gt;Udemy&lt;/a&gt;でいくつかコースを購入したことを思い出して、Udemyのコースを垂れ流すようにしたところいい感じに技術的なものが勉強できるようになった。UdemyがPodcastよりいいなと思ったのは&lt;/p&gt;</description>
			</item>
			<item>
				<title>go test in practice</title>
				<link>https://journal.lampetty.net/posts/go-test-in-practice/</link>
				<pubDate>Thu, 13 Apr 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/go-test-in-practice/</guid>
				<description>&lt;p&gt;This blog post describes basics and practical examples of &lt;code&gt;go test&lt;/code&gt;. Go’s automated test mechanism is well designed and easy to use. I’ll show you some techniques of &lt;code&gt;go test&lt;/code&gt; in this article.&lt;/p&gt;&#xA;&lt;h3 id=&#34;what-is-go-test&#34;&gt;What is &lt;code&gt;go test&lt;/code&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;go test&lt;/code&gt; is a command to run automated tests of go packages.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Automated test must be defined in &lt;code&gt;_test.go&lt;/code&gt; file&lt;/li&gt;&#xA;&lt;li&gt;Automated test function must start with &lt;code&gt;Test&lt;/code&gt; prefix&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;example-stack&#34;&gt;Example: stack&lt;/h3&gt;&#xA;&lt;p&gt;I implement a stack as real world example to explain &lt;code&gt;go test&lt;/code&gt;. &lt;code&gt;stack&lt;/code&gt; package provides stack.go. If you want to write tests for stack.go, create a file named &lt;code&gt;stack_test.go&lt;/code&gt;. The source code is in &lt;a href=&#34;https://github.com/oinume/go-test-in-practice/blob/master/stack/stack.go&#34;&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>読書感想「ルポ MOOCS革命」</title>
				<link>https://journal.lampetty.net/posts/reportage-moocs-evolution/</link>
				<pubDate>Thu, 09 Mar 2017 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/reportage-moocs-evolution/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/400002230X/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;https://images-fe.ssl-images-amazon.com/images/I/51mOVPTDY9L._SL160_.jpg&#34; alt=&#34;ルポ MOOC革命――無料オンライン授業の衝撃&#34; loading=&#34;lazy&#34; title=&#34;ルポ MOOC革命――無料オンライン授業の衝撃&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/400002230X/kazzhomeunixo-22/&#34;&gt;ルポ MOOC革命――無料オンライン授業の衝撃&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者: 金成隆一&lt;/li&gt;&#xA;&lt;li&gt;出版社/メーカー: 岩波書店&lt;/li&gt;&#xA;&lt;li&gt;発売日: 2013/12/26&lt;/li&gt;&#xA;&lt;li&gt;メディア: 単行本（ソフトカバー）&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://d.hatena.ne.jp/asin/400002230X/kazzhomeunixo-22&#34;&gt;この商品を含むブログ (8件) を見る&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;を読んだので、メモと感想。&lt;/p&gt;</description>
			</item>
			<item>
				<title>お金を節約するワザ</title>
				<link>https://journal.lampetty.net/posts/techniques-to-save-money/</link>
				<pubDate>Wed, 04 Jan 2017 08:40:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/techniques-to-save-money/</guid>
				<description>&lt;p&gt;個人的にやっているお金の節約方法をまとめてみる。&lt;/p&gt;&#xA;&lt;h3 id=&#34;amazonで商品をなるべく安く買う方法&#34;&gt;Amazonで商品をなるべく安く買う方法&lt;/h3&gt;&#xA;&lt;h4 id=&#34;amazonギフトカードを安く買う&#34;&gt;Amazonギフトカードを安く買う&lt;/h4&gt;&#xA;&lt;p&gt;まずはAmazonでの買い物を2〜8%安くする方法。世の中にはAmazonギフトカードを安く手に入れることができるサイトがいくつかあって、だいたい2〜8%OFFぐらいで買うことができる。代表的なサイトとしては下記がある。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2017年の抱負</title>
				<link>https://journal.lampetty.net/posts/resolution-in-2017/</link>
				<pubDate>Tue, 03 Jan 2017 05:31:12 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/resolution-in-2017/</guid>
				<description>&lt;p&gt;明けましておめでとうございます。いまだに年賀状に手をつけられていない怠惰な人間ですが、新年の抱負を書きます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;機械学習を学ぶ&#34;&gt;機械学習を学ぶ&lt;/h3&gt;&#xA;&lt;p&gt;今まで機械学習を勉強しても実践する場がなかなか見つけづらかったけど、自分で作ったサービスもあるので学んだ成果を投入できればいいなと思っている。CouseraのMLコースを受講していたけどつまらなくて2週間で挫折してしまった。ただ、以下の記事を見るとあれに挫折するのは自分だけではないということがわかったので、この記事を参考にして勉強するとっかかりをなんとか掴みたい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2016年の振り返り</title>
				<link>https://journal.lampetty.net/posts/review-of-2016/</link>
				<pubDate>Sat, 31 Dec 2016 23:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/review-of-2016/</guid>
				<description>&lt;p&gt;まずは今年の1月に書いた&lt;a href=&#34;http://oinume.hatenablog.com/entry/2016-resolution&#34;&gt;新年の抱負&lt;/a&gt;を振り返ってみる。&lt;/p&gt;&#xA;&lt;h3 id=&#34;英語を頑張る&#34;&gt;英語を頑張る&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;技術的なやり取りは苦がなくできるぐらいになっていたいなぁと。会話も文章も両方で。あとブログの英語比率を50%に持って行きたい。あと何か1冊英語の本を最後まで読む。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2016年に読んだ本</title>
				<link>https://journal.lampetty.net/posts/read-books-in-2016/</link>
				<pubDate>Sat, 31 Dec 2016 23:20:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/read-books-in-2016/</guid>
				<description>&lt;p&gt;本当は「2016年に買ったもの」という記事を書こうと思ったけど、日用品以外で買ったものがあまりなかったので読んだ本(技術書以外)を晒してみる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Herokuの好きなところ</title>
				<link>https://journal.lampetty.net/posts/what-i-like-about-heroku/</link>
				<pubDate>Thu, 22 Dec 2016 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/what-i-like-about-heroku/</guid>
				<description>&lt;p&gt;これは&lt;a href=&#34;http://qiita.com/advent-calendar/2016/heroku&#34;&gt;Heroku Advent Calendar 2016&lt;/a&gt;の13日目の記事です。個人的にHerokuを使い続けてはや3年。仕事でヘビーに使っているわけではないけど、Herokuの好きなところを挙げてみます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WebアプリケーションのE2EテストをGoで書く</title>
				<link>https://journal.lampetty.net/posts/e2e-test-with-agouti-in-go/</link>
				<pubDate>Sun, 18 Dec 2016 23:21:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/e2e-test-with-agouti-in-go/</guid>
				<description>&lt;p&gt;これは&lt;a href=&#34;http://qiita.com/advent-calendar/2016/go&#34;&gt;Go Advent Calendar 2016&lt;/a&gt;の18日目の記事です。今回はGoでE2Eテストを行うためのライブラリ&lt;a href=&#34;http://agouti.org/&#34;&gt;agouti&lt;/a&gt;について書きます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;goでe2eテストを書く理由&#34;&gt;GoでE2Eテストを書く理由&lt;/h3&gt;&#xA;&lt;p&gt;WebアプリケーションのサーバーサイドをGoで書いている場合、GoでE2Eテストを書くメリットとして&lt;/p&gt;</description>
			</item>
			<item>
				<title>Better Heroku Schedulerを探したらCustom clock processesにたどり着いた</title>
				<link>https://journal.lampetty.net/posts/heroku-custom-clock-processes/</link>
				<pubDate>Sun, 11 Dec 2016 23:12:19 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/heroku-custom-clock-processes/</guid>
				<description>&lt;p&gt;これは&lt;a href=&#34;http://qiita.com/advent-calendar/2016/heroku&#34;&gt;Heroku Advent Calendar 2016&lt;/a&gt;の11日目の記事です。&lt;/p&gt;&#xA;&lt;p&gt;Herokuでは&lt;a href=&#34;https://devcenter.heroku.com/articles/scheduler&#34;&gt;Heroku Scheduler&lt;/a&gt;というcronのようなサービスがあるのですが、使い込むうちに「Daily, Hourly, Every 10 minutesの単位でしかジョブを動かせない」という制限がつらくなってきたので、より良い代替である&lt;a href=&#34;https://devcenter.heroku.com/articles/scheduled-jobs-custom-clock-processes&#34;&gt;Custom clock processes&lt;/a&gt;を試してみたという話。&lt;/p&gt;</description>
			</item>
			<item>
				<title>mysqldumpで特定のレコードだけエクスポートする</title>
				<link>https://journal.lampetty.net/posts/mysqldump-option-where/</link>
				<pubDate>Thu, 08 Dec 2016 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mysqldump-option-where/</guid>
				<description>&lt;h3 id=&#34;忙しい人向けまとめ&#34;&gt;忙しい人向けまとめ&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;mysqldumpの&lt;code&gt;--where&lt;/code&gt;オプションを使うと特定のレコードだけmysqldumpできる&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--where&lt;/code&gt;には&lt;code&gt;LIMIT&lt;/code&gt;句も指定できる&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--where&lt;/code&gt;オプションで大量のデータから一部だけをmysqldumpすることが可能&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;本文&#34;&gt;本文&lt;/h3&gt;&#xA;&lt;p&gt;mysqldump、データだけエクスポートしたりCREATE TABLEだけエクスポートできたり細かいところまで気が利いているなぁと思うツール。今日知ったのは &lt;code&gt;--where&lt;/code&gt;でdumpするレコードを限定できるよ、ということ。さらに、&lt;code&gt;--where&lt;/code&gt;にはLIMITも指定できるので、「特定の条件にマッチするレコード100件だけ」みたいなエクスポートもできる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>新しいMacで設定している項目 - macOS Sierra編</title>
				<link>https://journal.lampetty.net/posts/mac-settings-on-sierra/</link>
				<pubDate>Mon, 05 Dec 2016 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mac-settings-on-sierra/</guid>
				<description>&lt;p&gt;5年間MacBookPro 13-inch, Early 2011のRetinaじゃないヤツをSSD変えたりして延命しつつ使ってたのだけど、さすがに限界だったので新しいMacBookPro 13inch Retina のTouchBarなしモデルを買った。&lt;/p&gt;</description>
			</item>
			<item>
				<title>DMM英会話でお気に入りの先生の空きレッスンがあった時にメール通知するlekcijeというサービスを作った</title>
				<link>https://journal.lampetty.net/posts/introducing-lekcije/</link>
				<pubDate>Tue, 22 Nov 2016 09:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/introducing-lekcije/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.lekcije.com/&#34;&gt;www.lekcije.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.lekcije.com/&#34;&gt;lekcije&lt;/a&gt;という、DMM英会話で講師に空きレッスンがあった時にメール通知するサービスを作った。もともとは下記で書いたものがベースになっていて、これに画面を付け足したという感じ。毎日家に帰ってから自分の空き時間でチマチマ作っていたので半年ぐらいかかってしまった。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://oinume.hatenablog.com/entry/introducing-dmm-eikaiwa-tsc&#34;&gt;oinume.hatenablog.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;作った動機としては&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DMM英会話はレッスンが終わらないと次の分の予約ができない&lt;/li&gt;&#xA;&lt;li&gt;人気の講師はすぐ予約が埋まってしまう&lt;/li&gt;&#xA;&lt;li&gt;でも意外とキャンセルが出るので、それを逃したくない&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;という感じ。もちろんお金をかければ1枚500円もするレッスンチケットを買いまくって予約するということはできるのだろうけど、さすがにそれは金銭的につらかったので技術で解決しようという試み。&lt;/p&gt;</description>
			</item>
			<item>
				<title>コードリーディングのためのIntelliJ IDEAショートカット</title>
				<link>https://journal.lampetty.net/posts/intellij-shortcuts-for-reading-source-code/</link>
				<pubDate>Wed, 21 Sep 2016 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/intellij-shortcuts-for-reading-source-code/</guid>
				<description>&lt;p&gt;自分がソースコードを読む時によく使っているIntelliJのショートカット集。もちろんWebStormやAndroid StudioなどIntelliJシリーズなら全部使えるはず。他にもこんなのがあるよ、というのがあればコメントとかTwitterで教えてもらえると嬉しい。ちなみにショートカットのキーバインドはMac前提で書いてます。IntelliJのバージョンは&lt;code&gt;2016.2&lt;/code&gt;。&lt;/p&gt;</description>
			</item>
			<item>
				<title>VPSをConoHaからVultrにお引越し</title>
				<link>https://journal.lampetty.net/posts/moved-to-vultr/</link>
				<pubDate>Fri, 16 Sep 2016 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/moved-to-vultr/</guid>
				<description>&lt;p&gt;昔はブログ用のWordPressをホスティングしていたVPS、今ではもうリダイレクトするためだけにNginxを動かしているだけなので、$5で1CPU, 768MBとそこそこのスペックな&lt;a href=&#34;https://www.vultr.com/&#34;&gt;Vultr&lt;/a&gt;に引っ越してみた。以下はUNIX Benchの結果。たいしたことしなければ速度的な不満はないし、ConoHaみたいにメンテナンスもない気がするので、わりとオススメ。まだ2ヶ月ぐらいしか使ってないけど。もちろんTokyoリージョンもあります。&lt;/p&gt;</description>
			</item>
			<item>
				<title>HerokuでMySQL 5.7系を使う方法</title>
				<link>https://journal.lampetty.net/posts/mysql-5.7-on-heroku/</link>
				<pubDate>Thu, 15 Sep 2016 19:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mysql-5.7-on-heroku/</guid>
				<description>&lt;p&gt;JawsDBというaddonを使うともれなく5.7系のMySQLが使える。2016年9月現在だと5.7.11。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://elements.heroku.com/addons/jawsdb&#34;&gt;elements.heroku.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;HerokuのデフォルトのデータベースはそもそもPostgreSQLで、MySQLを使いたい場合はこの&lt;a href=&#34;https://elements.heroku.com/addons/jawsdb&#34;&gt;JawsDB&lt;/a&gt;もしくは&lt;a href=&#34;https://elements.heroku.com/addons/cleardb&#34;&gt;ClearDB&lt;/a&gt;の2者択一なんだけど、ClearDBの方は5.5系しか使えない。安定してる5.5を取るか、最新版の5.7のどっちがいいかは悩ましいところだけど...&lt;/p&gt;</description>
			</item>
			<item>
				<title>Arguments to defered functions are evaluated when the defer executes</title>
				<link>https://journal.lampetty.net/posts/arguments-to-defered-functions-are-evaluated-when-the-defer-executes/</link>
				<pubDate>Mon, 23 May 2016 19:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/arguments-to-defered-functions-are-evaluated-when-the-defer-executes/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;The arguments to the deferred function (which include the receiver if the function is a method) are evaluated when the defer executes, not when the call executes.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://golang.org/doc/effective_go.html#defer&#34;&gt;Effective Go - The Go Programming Language&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I sometimes make a mistake that &lt;code&gt;defer&lt;/code&gt;ed functions are evaluated when the function is called but it’s wrong. Here is an example.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;time&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;wrapped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;wrapper&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Sleep&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Second&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;})&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;wrapper&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;wrapped&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;wrapper() start: &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;defer&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;instrument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;wrapper()   end: &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;UTC&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;instrument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;Time&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;instrument():    &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;start&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ go run defer.go&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wrapper() start:  2016-05-23 07:28:37.474091714 +0000 UTC&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Hello&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wrapper()   end:  2016-05-23 07:28:40.474272645 +0000 UTC&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;instrument():     2016-05-23 07:28:37.474139821 +0000 UTC&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If &lt;code&gt;defer&lt;/code&gt; functions are evaluated at call time, instrument() time must be 3 seconds later.&lt;/p&gt;</description>
			</item>
			<item>
				<title>会社のITシステムで良かったところまとめてみた</title>
				<link>https://journal.lampetty.net/posts/good-it-system/</link>
				<pubDate>Wed, 04 May 2016 22:26:37 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/good-it-system/</guid>
				<description>&lt;p&gt;今まで勤めてきた会社で良かった社内のITシステム(?)を思い出してみた。&lt;/p&gt;&#xA;&lt;h3 id=&#34;byod-bring-your-own-device&#34;&gt;BYOD (Bring Your Own Device)&lt;/h3&gt;&#xA;&lt;p&gt;会社用の携帯を別途支給されるのは携帯の2台持ちになってしまってつらい。2台持ちのつらいところは&lt;/p&gt;</description>
			</item>
			<item>
				<title>3 things I do after installing Nodejs</title>
				<link>https://journal.lampetty.net/posts/3-things-i-do-after-installing-nodejs/</link>
				<pubDate>Sat, 09 Apr 2016 21:43:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/3-things-i-do-after-installing-nodejs/</guid>
				<description>&lt;h3 id=&#34;installing-latest-npm&#34;&gt;Installing latest npm&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ npm install -g npm@latest&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;disabling-npms-progress-bar&#34;&gt;Disabling npm’s progress bar&lt;/h3&gt;&#xA;&lt;p&gt;Disabling progress bar for faster &lt;code&gt;npm install&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ npm set progress=false&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See &lt;a href=&#34;https://github.com/npm/npm/issues/11283#issuecomment-175246823&#34;&gt;Progress bar noticeably slows down npm install · Issue #11283 · npm/npm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;installing-npm-check&#34;&gt;Installing &lt;code&gt;npm-check&lt;/code&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;npm-check&lt;/code&gt; checks outdated, incorrect, and unused dependencies.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ npm install -g npm-check&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://www.npmjs.com/package/npm-check&#34;&gt;www.npmjs.com&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Go Tip: Don&#39;t take the address of loop variable</title>
				<link>https://journal.lampetty.net/posts/go-tip-dont-take-the-address-of-loop-variable/</link>
				<pubDate>Sat, 09 Apr 2016 12:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/go-tip-dont-take-the-address-of-loop-variable/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://stackoverflow.com/questions/29923956/golang-reusing-memory-address-copying-from-slice&#34;&gt;stackoverflow.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you take the address of loop variable, it may cause a bug which all values are same. You might expect following program prints &lt;code&gt;5 10 15&lt;/code&gt; but it prints &lt;code&gt;15 15 15&lt;/code&gt;. That’s because loop variable &lt;code&gt;v&lt;/code&gt; is initialized just once.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;coll&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;toPointers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;coll&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;%v &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;toPointers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ints&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pointers&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;make&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([]&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ints&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;ints&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pointers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;v&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;c1&#34;&gt;// XXX: mistake&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;pointers&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can get expected result if you write like this:&lt;/p&gt;</description>
			</item>
			<item>
				<title>First loaded configuration becomes default_server in nginx</title>
				<link>https://journal.lampetty.net/posts/nginx-default-server-configuration/</link>
				<pubDate>Mon, 04 Apr 2016 12:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/nginx-default-server-configuration/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://nginx.org/en/docs/http/request_processing.html&#34;&gt;How nginx processes a request&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;server {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    listen      80;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    server_name example.org www.example.org;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;server {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    listen      80;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    server_name example.net www.example.net;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;server {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    listen      80;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    server_name example.com www.example.com;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;In this configuration nginx tests only the request’s header field “Host” to determine which server the request should be routed to. If its value does not match any server name, or the request does not contain this header field at all, then nginx will route the request to the default server for this port. In the configuration above, the default server is the first one — which is nginx’s standard default behaviour.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sorting processes by memory usage</title>
				<link>https://journal.lampetty.net/posts/sorting-processes-by-memory-usage/</link>
				<pubDate>Mon, 28 Mar 2016 14:26:03 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/sorting-processes-by-memory-usage/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ps aux --sort -rss&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sorted by ascending order if you don&#39;t add &lt;code&gt;-&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://alvinalexander.com/linux/unix-linux-process-memory-sort-ps-command-cpu&#34;&gt;alvinalexander.com&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Making an enviroment to learn ES6 with babel</title>
				<link>https://journal.lampetty.net/posts/es6-intro-with-babel/</link>
				<pubDate>Mon, 21 Mar 2016 22:57:27 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/es6-intro-with-babel/</guid>
				<description>&lt;p&gt;This is a just memo for me who is a beginner of front-end development.&lt;/p&gt;&#xA;&lt;p&gt;First of all, install nodejs v4.4.0.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ brew install homebrew/versions/node4-lts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ node -v&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;v4.4.0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Put &lt;code&gt;package.json&lt;/code&gt; into a current directory. DO NOT forget to add &lt;code&gt;babel-preset-es2015&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;name&amp;#34;: &amp;#34;hello&amp;#34;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;version&amp;#34;: &amp;#34;1.0.0&amp;#34;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;engines&amp;#34;: {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;node&amp;#34;: &amp;#34;4.4.0&amp;#34;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;npm&amp;#34;: &amp;#34;3.8.2&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;devDependencies&amp;#34;: {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;babel-cli&amp;#34;: &amp;#34;^6.0.0&amp;#34;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &amp;#34;babel-preset-es2015&amp;#34;: &amp;#34;^6.6.0&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;npm install&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tokyo Developers Meetup 17に行ってきた</title>
				<link>https://journal.lampetty.net/posts/tokyo-developers-meetup-17/</link>
				<pubDate>Sat, 30 Jan 2016 21:16:05 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/tokyo-developers-meetup-17/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.meetup.com/ja-JP/devjapan/events/226925948/?eventId=226925948&#34;&gt;www.meetup.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;こんなイベントがあることを知って行ってきました。最初はボッチで同じテーブルの人も話しかけてくれないし、開始10分ぐらいでもう帰ろうかと思ったけど、自分から &amp;quot;This is the first time to come here. May I introduce myself?&amp;quot; と言って同じテーブルの人に話しかけたらそこから話がなんとかつながって、他の人ともしゃべるようになりました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL Casual Talks vol.9でしゃべってきた</title>
				<link>https://journal.lampetty.net/posts/mysql-casual-talks-vol9/</link>
				<pubDate>Sat, 23 Jan 2016 23:10:22 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mysql-casual-talks-vol9/</guid>
				<description>&lt;p&gt;表題の通りでMySQL Casualで「カジュアルに本番データを開発環境に入れる」というタイトルで発表してきました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;//www.slideshare.net/oinume/mysqlcasual&#34; title=&#34;カジュアルに本番データを開発環境に入れる #mysqlcasual&#34;&gt;カジュアルに本番データを開発環境に入れる #mysqlcasual&lt;/a&gt;&lt;/strong&gt; from &lt;strong&gt;&lt;a href=&#34;//www.slideshare.net/oinume&#34;&gt;Kazuhiro Oinuma&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>2016年の抱負</title>
				<link>https://journal.lampetty.net/posts/2016-resolution/</link>
				<pubDate>Sun, 03 Jan 2016 07:06:40 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/2016-resolution/</guid>
				<description>&lt;p&gt;明けましておめでとうございます。今年もよろしくお願いします。&lt;/p&gt;&#xA;&lt;p&gt;ということで、新年の抱負を書きたいと思います。昔は抱負を考えたりするのは好きじゃなかったのだけど、去年やってみて食わず嫌いだということがわかったので今年も抱負を掲げてみたいなと思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2015年振り返り</title>
				<link>https://journal.lampetty.net/posts/looking-back-2015/</link>
				<pubDate>Fri, 01 Jan 2016 20:56:08 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/looking-back-2015/</guid>
				<description>&lt;p&gt;2015年はざっくり言うとこんな感じだったと思う。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2014年の夏から作り続けていたサービスが3月にローンチできた&lt;/li&gt;&#xA;&lt;li&gt;英語の勉強を本格的に始めた&lt;/li&gt;&#xA;&lt;li&gt;2年ぶりに趣味プロダクトを作った(&lt;a href=&#34;https://github.com/oinume/dmm-eikaiwa-tsc&#34;&gt;dmm-eikaiwa-tsc&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;li&gt;初心に帰ってアルゴリズムの勉強を始めた(&lt;a href=&#34;https://github.com/oinume/algo&#34;&gt;algo&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;一方で、掲げていた抱負を全部ちゃんと達成できたかというと微妙な結果だった。達成できなかった分は2016年に持ち越しかなぁ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Heroku Schedulerやcronが正常に稼働しているかをチェックするDead Man&#39;s Snitchが便利</title>
				<link>https://journal.lampetty.net/posts/introducing-dead-mans-snitch/</link>
				<pubDate>Mon, 21 Dec 2015 22:10:13 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/introducing-dead-mans-snitch/</guid>
				<description>&lt;p&gt;これは&lt;a href=&#34;http://qiita.com/advent-calendar/2015/heroku&#34;&gt;Heroku Advent Calendar 2015&lt;/a&gt; 21日の記事です。今回はHeroku Schedulerを監視する&lt;a href=&#34;https://deadmanssnitch.com/&#34;&gt;Dead Man&#39;s Snitch&lt;/a&gt;というものを紹介します。&lt;/p&gt;&#xA;&lt;h3 id=&#34;heroku-schedulerってなに&#34;&gt;Heroku Schedulerってなに？&lt;/h3&gt;&#xA;&lt;p&gt;Heroku上で特定のスクリプトやコマンドを動かすcronみたいなもの。「みたいなもの」というのは、cronと違って「何時何分に実行する」というような厳密な時間指定ができず、10分、1時間、1日単位でしか指定ができません。イメージとしては以下のような感じ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>dmm-eikaiwa-tscにバグ</title>
				<link>https://journal.lampetty.net/posts/20151217-2246/</link>
				<pubDate>Thu, 17 Dec 2015 22:46:32 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/20151217-2246/</guid>
				<description>&lt;p&gt;以前紹介した&lt;a href=&#34;http://oinume.hatenablog.com/entry/introducing-dmm-eikaiwa-tsc&#34;&gt;DMM英会話でお気に入りの先生の空きレッスンが登録されたらメールで通知するヤツ&lt;/a&gt;にバグがあったので、使っている人がいたらアップデートお願いします。&lt;/p&gt;&#xA;&lt;p&gt;バグの内容はレッスン講師のスケジュール表に「休講」というステータスが出現したため、スケジュール表のスクレイピングに失敗して、Heroku Schedulerで動いているアプリケーションがエラーで止まるというものです。詳細は以下を参照してもらえればと。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Parsing MySQL&#39;s URL in Python3</title>
				<link>https://journal.lampetty.net/posts/parsing-mysqls-url-in-python3/</link>
				<pubDate>Mon, 14 Dec 2015 00:32:58 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/parsing-mysqls-url-in-python3/</guid>
				<description>&lt;p&gt;Just add &lt;code&gt;urllib.parse.uses_netloc.append(&amp;quot;mysql&amp;quot;)&lt;/code&gt; if you want to parse URL such as &lt;code&gt;mysql://root:pass@localhost/demo&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#!/usr/bin/env python&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import urllib.parse&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;urllib.parse.uses_netloc.append(&amp;#34;mysql&amp;#34;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;if __name__ == &amp;#34;__main__&amp;#34;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    url_str = &amp;#34;mysql://root:pass@localhost/demo&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    url = urllib.parse.urlparse(url_str)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    print(&amp;#34;URL={0}&amp;#34;.format(url_str))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    print(&amp;#34;host={0}, user={1}, password={2}, database={3}&amp;#34;.format(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        url.hostname, url.username, url.password, url.path[1:]))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ python3 url_parse.python&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;URL=mysql://root:pass@localhost/demo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;host=localhost, user=root, password=pass, database=demo&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>DMM英会話でお気に入りの先生の空きレッスンが登録されたらメールで通知するヤツ作った</title>
				<link>https://journal.lampetty.net/posts/introducing-dmm-eikaiwa-tsc/</link>
				<pubDate>Mon, 07 Dec 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/introducing-dmm-eikaiwa-tsc/</guid>
				<description>&lt;h3 id=&#34;20161125追記&#34;&gt;2016/11/25追記&lt;/h3&gt;&#xA;&lt;p&gt;後継のlekcijeというサービスを作ったのでぜひこちらをご利用下さい。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.lekcije.com/&#34;&gt;www.lekcije.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;動機&#34;&gt;動機&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;どのSkype英会話でもそうだと思うんだけど、人気のある先生はすぐ予約が埋まっちゃう&lt;/li&gt;&#xA;&lt;li&gt;でもスケジュールをいちいち検索してチェックするのはダルい&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;というわけで作りました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>まだ3大キャリアSIMで消耗してるの？MVNOのススメ</title>
				<link>https://journal.lampetty.net/posts/recommending-mvno-sim/</link>
				<pubDate>Mon, 30 Nov 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/recommending-mvno-sim/</guid>
				<description>&lt;p&gt;Docomo iPhone6 + IIJ mioに乗り換えてから3ヶ月ぐらいたったのでその使用感をば。結論から言うと今すぐキャリアSIMやめてMVNOに切り替えた方がいいと思う。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Amazon RDS for Aurora 東京ローンチ記念セミナー</title>
				<link>https://journal.lampetty.net/posts/amazon-aurora-tokyo-launch-seminar/</link>
				<pubDate>Thu, 12 Nov 2015 12:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/amazon-aurora-tokyo-launch-seminar/</guid>
				<description>&lt;p&gt;Auroraの検討を導入していることもあり、11/10の&lt;a href=&#34;http://aws.amazon.com/jp/about-aws/events/2015/aurora_20151110/&#34;&gt;Amazon RDS for Aurora 東京ローンチ記念セミナー&lt;/a&gt;に行ってきたのでそのメモ書きと感想。&lt;/p&gt;&#xA;&lt;h2 id=&#34;debanjan-saha-gm-amazon-aurora&#34;&gt;Debanjan Saha, GM, Amazon Aurora&lt;/h2&gt;&#xA;&lt;p&gt;Auroraチームの人。AuroraはAWS史上最速で成長しているサービスと言っていた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLでbulk insert &#43; on duplicate key updateしたい</title>
				<link>https://journal.lampetty.net/posts/mysql-bulk-insert-and-on-duplicate-key-update/</link>
				<pubDate>Mon, 09 Nov 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mysql-bulk-insert-and-on-duplicate-key-update/</guid>
				<description>&lt;p&gt;MySQLで&lt;code&gt;INSERT INTO hoge VALUES (...), (...), (...)&lt;/code&gt;のbulk insertでon duplicate key update(すでにレコードがあったらUPDATEで上書きする)って併用できるのかな？っていうのが気になったので調べてみたらできるみたい。&lt;a href=&#34;https://dev.mysql.com/doc/refman/5.6/ja/miscellaneous-functions.html#function_values&#34;&gt;VALUES関数&lt;/a&gt;というその目的のためだけに存在するような関数を使う。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sending pull-request only with terminal and keyboard</title>
				<link>https://journal.lampetty.net/posts/sending-pull-request-only-with-terminal-and-keyboard/</link>
				<pubDate>Wed, 28 Oct 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/sending-pull-request-only-with-terminal-and-keyboard/</guid>
				<description>&lt;h3 id=&#34;requirements&#34;&gt;Requirements&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mac&lt;/li&gt;&#xA;&lt;li&gt;Terminal&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;hub&lt;/code&gt; command (&lt;code&gt;brew install hub&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;how-to-send-pull-request&#34;&gt;How to send pull-request&lt;/h3&gt;&#xA;&lt;p&gt;Make a new branch.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git checkout -b new-cool-feature&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Editing source code and commit.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git commit -a&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Push to remote and copy correct &lt;code&gt;git push&lt;/code&gt; command into clipboard.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git push 2&amp;gt;&amp;amp;1 | grep git | pbcopy&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Paste clipboard into terminal.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git push --set-upstream origin new-cool-feature&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Counting objects: 3, done.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Delta compression using up to 8 threads.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Compressing objects: 100% (3/3), done.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Writing objects: 100% (3/3), 324 bytes | 0 bytes/s, done.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Total 3 (delta 2), reused 0 (delta 0)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;To git@github.com:example/example-project.git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; * [new branch]      new-cool-feature -&amp;gt; new-cool-feature&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Branch new-cool-feature set up to track remote branch new-cool-feature from origin.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Send pull-request by &lt;code&gt;hub&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ターミナルとキーボードだけでプルリクエストを送る</title>
				<link>https://journal.lampetty.net/posts/sending-pull-request-only-with-terminal-and-keyboard-ja/</link>
				<pubDate>Wed, 28 Oct 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/sending-pull-request-only-with-terminal-and-keyboard-ja/</guid>
				<description>&lt;p&gt;これは&lt;a href=&#34;https://journal.lampetty.net/entry/sending-pull-request-only-with-terminal-and-keyboard&#34;&gt;Sending pull-request only with terminal and keyboard&lt;/a&gt;の日本語の記事です。&lt;/p&gt;&#xA;&lt;h3 id=&#34;必要なもの&#34;&gt;必要なもの&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mac&lt;/li&gt;&#xA;&lt;li&gt;Terminal&lt;/li&gt;&#xA;&lt;li&gt;hub command (&lt;code&gt;brew install hub&lt;/code&gt;でインストールしておく)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;how-to-send-pull-request&#34;&gt;How to send pull-request&lt;/h3&gt;&#xA;&lt;p&gt;ブランチを作る&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git checkout -b new-cool-feature&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ソースを編集する&lt;/p&gt;</description>
			</item>
			<item>
				<title>Logging into dmm.com by Selenium</title>
				<link>https://journal.lampetty.net/posts/logging-into-dmmcom-by-selenium/</link>
				<pubDate>Mon, 26 Oct 2015 08:50:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/logging-into-dmmcom-by-selenium/</guid>
				<description>&lt;p&gt;I use Selenium to log into dmm.com because dmm.com requires JavaScript enabled browser. Here is a sample code. You can see Firefox is launched and automatically logging into dmm.com if you use Firefox instead of PhantomJS.&lt;/p&gt;&#xA;&lt;h3 id=&#34;login_dmmpy&#34;&gt;login_dmm.py&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#!/usr/bin/env python&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# encoding: utf-8&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;import os&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;from selenium import webdriver&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;driver = webdriver.PhantomJS()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#driver = webdriver.Firefox()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;driver.get(&amp;#34;https://www.dmm.com/my/-/login/=/path=DRVESVwZTldRDlBRRFdIUwwIGFVfVEs_&amp;#34;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;login_id = driver.find_element_by_id(&amp;#34;login_id&amp;#34;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;login_id.send_keys(os.environ[&amp;#34;DMM_LOGIN_ID&amp;#34;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;password = driver.find_element_by_id(&amp;#34;password&amp;#34;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;password.send_keys(os.environ[&amp;#34;DMM_LOGIN_PASSWORD&amp;#34;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;driver.find_element_by_tag_name(&amp;#34;form&amp;#34;).submit()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;print(driver.page_source)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;driver.quit()&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;run&#34;&gt;Run&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ brew install phantomjs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ pip install selenium&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ DMM_LOGIN_ID=your_id DMM_LOGIN_PASSWORD=your_password python ./login_dmm.py&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>Get auto increment values from MySQL information schema</title>
				<link>https://journal.lampetty.net/posts/get-auto-increment-values-from-mysql-information-schema/</link>
				<pubDate>Wed, 21 Oct 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/get-auto-increment-values-from-mysql-information-schema/</guid>
				<description>&lt;p&gt;Information schema is metadata about MySQL. We can obtain useful information from it. For example, I get current auto increment values by following SQL.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SELECT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  t.table_name, t.auto_increment&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FROM&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  information_schema.tables AS t&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;WHERE&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  t.table_schema = &amp;#39;your_db&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ORDER BY t.table_name;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-------------------------------------+----------------+&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;| table_name                          | auto_increment |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-------------------------------------+----------------+&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;| blog_categories                     |              4 |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;| blog_posts                          |              4 |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;| blog_post_categories                |              4 |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;| blog_post_comments                  |              1 |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;| images                              |              7 |&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+-------------------------------------+----------------+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;INFORMATION_SCHEMA database has much more useful tables like COLUMNS, GLOBAL_VARIABLES and so on. It&#39;s good to use it when you want to know much about MySQL.&lt;/p&gt;</description>
			</item>
			<item>
				<title>最近のインプット</title>
				<link>https://journal.lampetty.net/posts/20151020-2025/</link>
				<pubDate>Tue, 20 Oct 2015 20:25:03 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/20151020-2025/</guid>
				<description>&lt;p&gt;最近読んで面白かったブログとかYouTubeとかPodcastの紹介。&lt;/p&gt;&#xA;&lt;h3 id=&#34;talk-python-to-me&#34;&gt;Talk Python To Me&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://talkpython.fm/&#34;&gt;talkpython.fm&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pythonのpodcast。SQLAlchemyやrequestsなどめっちゃ使われているライブラリの作者が登場していて面白い。「SQLAlchemyはHibernateの影響を受けている」とか作者が言っていてなるほど確かにと思ったり。最初は英語の勉強目的で聴き始めたんだけど、普通にPythonの勉強になって一石二鳥な感じ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>What I read, watched, listened recently</title>
				<link>https://journal.lampetty.net/posts/20151003-2304/</link>
				<pubDate>Sat, 03 Oct 2015 23:04:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/20151003-2304/</guid>
				<description>&lt;h3 id=&#34;dotgo-2014---andrew-gerrand---5-things-i-love&#34;&gt;dotGo 2014 - Andrew Gerrand - 5 things I love&lt;/h3&gt;&#xA;&lt;p&gt;Andrew Gerrand is a Googler and worked for Go. I watched this video just to learn English but it was good that he was describing Go&#39;s feature very well.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=fsTOOPB1TBY&#34;&gt;www.youtube.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;golang-uk-conference-2015---andrew-gerrand---stupid-gopher-tricks&#34;&gt;Golang UK Conference 2015 - Andrew Gerrand - Stupid Gopher Tricks&lt;/h3&gt;&#xA;&lt;p&gt;Another Andrew&#39;s talk. &lt;a href=&#34;https://talks.golang.org/2015/tricks.slide#1&#34;&gt;Slide&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=UECh7X07m6E&#34;&gt;www.youtube.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;twelve-go-best-practices---francesc-campoy&#34;&gt;Twelve Go Best Practices - Francesc Campoy&lt;/h3&gt;&#xA;&lt;p&gt;Francesc Campoy is also a Googler and worked for Go. Best practices from Googler is worth to read. &lt;a href=&#34;http://talks.golang.org/2013/bestpractices.slide#1&#34;&gt;Slide&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ansible Meetup in TokyoでLTしてきた</title>
				<link>https://journal.lampetty.net/posts/ansible-meetup-201509/</link>
				<pubDate>Wed, 16 Sep 2015 12:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/ansible-meetup-201509/</guid>
				<description>&lt;p&gt;「Vagrant環境のAnsibleを速くしたいというタイトル」で&lt;a href=&#34;http://ansible-users.connpass.com/event/18015/&#34;&gt;Ansible Meetup&lt;/a&gt;でLTしてきました。資料はこちら。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;//www.slideshare.net/oinume/vagrantansible&#34; title=&#34;Vagrant環境のAnsibleを速くしたい&#34;&gt;Vagrant環境のAnsibleを速くしたい&lt;/a&gt;&lt;/strong&gt; from &lt;strong&gt;&lt;a href=&#34;//www.slideshare.net/oinume&#34;&gt;Kazuhiro Oinuma&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;もともとは、「Ansible Meetup 行きたいなー。でももう埋まってるなー」から「LT枠に空きがあるからLTすればいいな」というノリでした。結果的にキャンセルがいっぱい出ていて、会場の4分の1ぐらいは席が空いていたという事態ｗ (もったいない&lt;/p&gt;</description>
			</item>
			<item>
				<title>Duplicating a MySQL table schema and data</title>
				<link>https://journal.lampetty.net/posts/duplicateing-a-mysql-table-schema-and-data/</link>
				<pubDate>Fri, 04 Sep 2015 20:31:19 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/duplicateing-a-mysql-table-schema-and-data/</guid>
				<description>&lt;p&gt;Duplicate foo table into foo_20150904&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/* Create a new table from foo&amp;#39;s schema */&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt; CREATE TABLE foo_20150904 LIKE foo;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/* Insert whole data into a new table */&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt; INSERT INTO foo_20150904 SELECT * FROM foo;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>Detecting duplicated code in Golang with CPD and Jenkins</title>
				<link>https://journal.lampetty.net/posts/detecting-duplicated-code-in-golang/</link>
				<pubDate>Sun, 30 Aug 2015 00:40:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/detecting-duplicated-code-in-golang/</guid>
				<description>&lt;h2 id=&#34;cpd-copy-paste-detecor&#34;&gt;CPD (Copy Paste Detecor)&lt;/h2&gt;&#xA;&lt;p&gt;Detecting duplicated code is a good way to make source code clean. Since I couldn&#39;t find how to detect duplicated code in Golang, I sent &lt;a href=&#34;https://github.com/pmd/pmd/pull/44&#34;&gt;a pull request&lt;/a&gt; that CPD(Copy Paste Detector) is able to accept Golang. CPD is a software included in &lt;a href=&#34;https://pmd.github.io/pmd-5.3.3/&#34;&gt;PMD&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;And there is a useful Jenkins plugin, &lt;a href=&#34;https://wiki.jenkins-ci.org/display/JENKINS/DRY+Plugin&#34;&gt;DRY&lt;/a&gt;. It visualizes how much duplicated code exist. I&#39;ll show you how to make it visible with Jenkins.&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAPC::Asia 2015に行ってきた(2日目)</title>
				<link>https://journal.lampetty.net/posts/yapc-asia-2015-day2/</link>
				<pubDate>Mon, 24 Aug 2015 07:06:23 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/yapc-asia-2015-day2/</guid>
				<description>&lt;h2 id=&#34;前夜祭1日目のエントリ&#34;&gt;前夜祭、1日目のエントリ&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://oinume.hatenablog.com/entry/yapc-asia-2015-day0&#34;&gt;YAPC::Asia 2015行ってきた(前夜祭) - oinume journal&lt;/a&gt;&lt;a href=&#34;http://oinume.hatenablog.com/entry/yapc-asia-2015-day0&#34;&gt;oinume.hatenablog.com&lt;/a&gt; &lt;a href=&#34;http://oinume.hatenablog.com/entry/yapc-asia-2015-day1&#34;&gt;YAPC::Asia 2015に行ってきた(1日目) - oinume journal&lt;/a&gt;&lt;a href=&#34;http://oinume.hatenablog.com/entry/yapc-asia-2015-day1&#34;&gt;oinume.hatenablog.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ちなみにトークは&lt;a href=&#34;https://www.youtube.com/user/yapcasia/featured&#34;&gt;YouTube&lt;/a&gt;にアップロードされる予定だそうなので、正座して待ちましょう。&lt;/p&gt;&#xA;&lt;h2 id=&#34;実はホットでオープンな-microsoft-azure&#34;&gt;&lt;a href=&#34;http://yapcasia.org/2015/talk/show/39a15ad4-0ff5-11e5-a984-d7f07d574c3a&#34;&gt;実はホットでオープンな Microsoft Azure&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;@myfinderさん。前夜祭で会った時に少しだけ話を聞いていて、面白そうなので聞いてみることにした。自分はもっぱらAWSしか使ってないけど、データのストリーム処理のところは使えそうだなぁと思った。その辺は自分たちのチームで開発しているのではなく、社内の別のチームに丸投げしているのだけど、かなり便利そうなのでもう自分たちでやるのもありなのでは？と感じた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAPC::Asia 2015に行ってきた(1日目)</title>
				<link>https://journal.lampetty.net/posts/yapc-asia-2015-day1/</link>
				<pubDate>Fri, 21 Aug 2015 23:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/yapc-asia-2015-day1/</guid>
				<description>&lt;h2 id=&#34;1日目感想&#34;&gt;1日目感想&lt;/h2&gt;&#xA;&lt;p&gt;遅刻してしまいLarry Wallの話が聞けなかったのが一番悔やまれるところだったけど、他の聞きたいトークは全部聞けたし、前夜祭で初めて話したnekogataさんのトークがすごく良くて、さらにその後懇親会でも話せたのですごく嬉しかった。YAPCは毎年何かしら新しい人との出会いがあって、今年で最後になってしまうというのが本当に悲しい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAPC::Asia 2015行ってきた(前夜祭)</title>
				<link>https://journal.lampetty.net/posts/yapc-asia-2015-day0/</link>
				<pubDate>Thu, 20 Aug 2015 23:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/yapc-asia-2015-day0/</guid>
				<description>&lt;p&gt;今年でJPA主催のYAPCは最後ということで、いつもは前夜祭は参加しないのだけれど行ってきた。&lt;/p&gt;&#xA;&lt;p&gt;最初に聞いたのは @hsbt さんの&lt;a href=&#34;http://yapcasia.org/2015/talk/show/b355fa20-122e-11e5-8ba5-d9f87d574c3a&#34;&gt;言語開発の現場&lt;/a&gt;という話。Rubyはリリース作業が特に大変だと言っていた。自動化したくてもなかなか面倒くさいものなのかなぁ。Rubyは日本人の開発者が多いので、外国人から「日本語でやりとりして仕様が決まっているのではないか」みたいに思われることがあったとか。しかしそのぐらい公共のものになってきている感じがすごいと思った。&lt;/p&gt;&#xA;&lt;p&gt;その後、@myfinderさんに捕まって出会ってMicrosoft Azureの面白そうな話をいろいろ聞いた。そういえば転職されてから話すのは初めてだったかもしれない。Azureはデータ処理のサービスが面白そうで、NorikraみたいにSQLでストリームのデータにアクセスでき、さらに処理とデータ保存が分離されているのでロックインされずらいそうだ。AzureってMachine Learningもすごそうだし純粋に使ってみたいなぁと思った。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Make VirtualBox&#39;s network faster with paravirtualized network adapter</title>
				<link>https://journal.lampetty.net/posts/make-virtualboxs-network-faster-with-paravirtualized-network-adapter/</link>
				<pubDate>Tue, 28 Jul 2015 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/make-virtualboxs-network-faster-with-paravirtualized-network-adapter/</guid>
				<description>&lt;p&gt;I develop applications with Vagrant and VirtualBox and feel frustrated about slowness of VirtualBox. Since I found &lt;a href=&#34;https://www.virtualbox.org/manual/ch06.html#nichardware&#34;&gt;virtio&lt;/a&gt; (paravirtualized network adapter), I tried it out on my application.&lt;/p&gt;&#xA;&lt;h3 id=&#34;how-to-enable-virtio-with-vagrant&#34;&gt;How to enable virtio with Vagrant&lt;/h3&gt;&#xA;&lt;p&gt;Add following lines into your Vagrantfile.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;v.customize [&amp;#34;modifyvm&amp;#34;, :id, &amp;#34;--nictype1&amp;#34;, &amp;#34;virtio&amp;#34;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;v.customize [&amp;#34;modifyvm&amp;#34;, :id, &amp;#34;--nictype2&amp;#34;, &amp;#34;virtio&amp;#34;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;results&#34;&gt;Results&lt;/h3&gt;&#xA;&lt;p&gt;I ran &lt;code&gt;time vagrant provision&lt;/code&gt; with old and new settings and virtio-net is 1.2x faster than 82540EM (default network adapter).&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant provision 14.85s user 12.49s system 5% cpu 8:20.59 total&lt;/code&gt; with Intel PRO/1000 MT Desktop (82540EM)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant provision 14.63s user 12.62s system 6% cpu 7:00.70 total&lt;/code&gt; with virtio-net&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B00WVH5SY8/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51piyNH5ppL._SL160_.jpg&#34; alt=&#34;Ansible: Up and Running&#34; loading=&#34;lazy&#34; title=&#34;Ansible: Up and Running&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building Vagrant box from VirtualBox OVF</title>
				<link>https://journal.lampetty.net/posts/building-vagrant-box-from-virtualbox-ovf/</link>
				<pubDate>Mon, 29 Jun 2015 06:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/building-vagrant-box-from-virtualbox-ovf/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.packer.io/docs/builders/virtualbox-ovf.html&#34;&gt;VirtualBox Builder (from an OVF/OVA) - Packer by HashiCorp&lt;/a&gt;&lt;a href=&#34;https://www.packer.io/docs/builders/virtualbox-ovf.html&#34;&gt;www.packer.io&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I realized that Packer can build Vagrant box from VirtualBox OVF file not only from ISO image. Building Vagrant box takes much time to run an installer so I&#39;m very happy to skip the step.&lt;/p&gt;&#xA;&lt;p&gt;I created Ansible installed Vagrant box from another box to try.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Run &#39;vagrant box add oinume/ubuntu-14.04-jp&#39;&lt;/li&gt;&#xA;&lt;li&gt;Downloaded box is stored in ~/.vagrant.d/boxes/oinume-VAGRANTSLASH-ubuntu-14.04-jp/1.0.1/virtualbox and box.ovf is in the directory.&lt;/li&gt;&#xA;&lt;li&gt;Specify the path of .ovf like below in template.json and run &#39;packer build template.json&#39;&lt;/li&gt;&#xA;&lt;li&gt;&#39;ubuntu-14-04-x64-jp-ansible-virtualbox.box&#39; created.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B00WVH5SY8/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51piyNH5ppL._SL160_.jpg&#34; alt=&#34;Ansible: Up and Running&#34; loading=&#34;lazy&#34; title=&#34;Ansible: Up and Running&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>RDS(MySQL)のバイナリログはすぐ消えるから注意</title>
				<link>https://journal.lampetty.net/posts/rds-mysql-binlog-retention/</link>
				<pubDate>Fri, 29 May 2015 20:49:26 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/rds-mysql-binlog-retention/</guid>
				<description>&lt;p&gt;これ知らないとハマるかもしれないのでメモ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER\_LogAccess.Concepts.MySQL.html&#34;&gt;MySQL Database Log Files - Amazon Relational Database Service&lt;/a&gt;&lt;a href=&#34;http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html&#34;&gt;docs.aws.amazon.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;に&amp;quot;Amazon RDS normally purges a binary log as soon as possible&amp;quot;とある通り、RDSではバイナリログはすぐ消えてしまう。もし自前でスレーブを立てたりするためにバイナリログをある程度とっておきたい場合は、&lt;/p&gt;</description>
			</item>
			<item>
				<title>AnsibleでPlaybook流した時のgit commit hashをファイルに出力したら捗った</title>
				<link>https://journal.lampetty.net/posts/ansible-git-commit-hash/</link>
				<pubDate>Fri, 29 May 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/ansible-git-commit-hash/</guid>
				<description>&lt;p&gt;「このサーバにどこまでPlaybook流したんだっけ？」みたいなことでよく悩んでいたので、AnsibleのPlaybookが入ったリポジトリのgit commit hashをファイルに出力してそれをサーバーに置くようにしてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>新年の抱負の進捗どうですか？</title>
				<link>https://journal.lampetty.net/posts/20150522-1930/</link>
				<pubDate>Fri, 22 May 2015 19:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/20150522-1930/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://oinume.hatenablog.com/entry/2015-new-years-resolution&#34;&gt;oinume.hatenablog.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;こんな感じの新年の抱負を書いたのだけど、そろそろ2015年も40%経過したので進捗報告。&lt;/p&gt;&#xA;&lt;h3 id=&#34;dockerを実戦投入する&#34;&gt;Dockerを実戦投入する&lt;/h3&gt;&#xA;&lt;p&gt;進捗ダメです。やっと個人でDockerを使い始めたレベル。&lt;/p&gt;</description>
			</item>
			<item>
				<title>開発スピードと技術的負債</title>
				<link>https://journal.lampetty.net/posts/development-speed-or-technical-debt/</link>
				<pubDate>Fri, 22 May 2015 18:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/development-speed-or-technical-debt/</guid>
				<description>&lt;p&gt;よくある「開発スピードを優先させるか技術的負債をなるべく発生させないようにするか」という議論、ケースバイケースだとは思うけど、ことプロダクトの立ち上げ段階では、悩んだら「開発スピード」を優先させるようにするべきだと自分は思ってる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mocking a HTTP access with http.Transport in Golang</title>
				<link>https://journal.lampetty.net/posts/mocking-http-access-in-golang/</link>
				<pubDate>Mon, 13 Apr 2015 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mocking-http-access-in-golang/</guid>
				<description>&lt;p&gt;I&#39;ve investegated a way to mock HTTP request and response when writing a code to access to a HTTP API with &lt;code&gt;http.Client&lt;/code&gt;. Finally, I found that I can do it by just implementing &lt;code&gt;RoundTrip&lt;/code&gt; method of &lt;code&gt;http.RoundTripper&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here is an example of mocking and proxying HTTP request and response. Running with &lt;code&gt;go run main.go -mock mock&lt;/code&gt;, you can get mocked result and with &lt;code&gt;go run main.go -mock proxy&lt;/code&gt;, you can get proxied result with httptest.Server.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Changing bower package cache directory</title>
				<link>https://journal.lampetty.net/posts/changing-bower-package-cache-directory/</link>
				<pubDate>Thu, 26 Feb 2015 23:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/changing-bower-package-cache-directory/</guid>
				<description>&lt;p&gt;bower caches packages in ~/.cache/bower. How can I change the directory? &lt;a href=&#34;http://bower.io/docs/config/#storage&#34;&gt;bower&#39;s document&lt;/a&gt; says &amp;quot;Add the following in .bowerrc&amp;quot; but it&#39;s totally wrong.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;storage&amp;#34;: {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;cache&amp;#34; : &amp;#34;~/.bower/cache&amp;#34;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &amp;#34;registry&amp;#34; : &amp;#34;~/.bower/registry&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I try the configuration and run &lt;code&gt;bower install&lt;/code&gt; but nothing changed. I finally found out correct configuration in &lt;a href=&#34;https://github.com/bower/config/blob/master/lib/util/defaults.js&#34;&gt;bower/config&lt;/a&gt; repo.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;storage&amp;#34;: {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  packages: &amp;#34;.bower/packages&amp;#34;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  registry: &amp;#34;.bower/registry&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Why the document of famous software such as &lt;code&gt;bower&lt;/code&gt; is wrong?&lt;/p&gt;</description>
			</item>
			<item>
				<title>2015年の抱負</title>
				<link>https://journal.lampetty.net/posts/2015-new-years-resolution/</link>
				<pubDate>Sun, 04 Jan 2015 21:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/2015-new-years-resolution/</guid>
				<description>&lt;p&gt;一年の計は元旦にあり、という言葉がありますがこのエントリーは1月4日に書いています。どうもこんにちは。あまり一年の目標は立てずにフラフラと生きてきたんだけど、アラフォーに近づいてきてそろそろ自堕落な生き方に危機感を覚えてきたので今年の目標を書いておく。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2014年振り返り</title>
				<link>https://journal.lampetty.net/posts/looking-back-2014/</link>
				<pubDate>Sat, 03 Jan 2015 02:05:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/looking-back-2014/</guid>
				<description>&lt;p&gt;1/3に2014年の振り返りをしている時点ですでに周回遅れになっているわけですが... 技術的な振り返りは&lt;a href=&#34;https://journal.lampetty.net/entry/used-technologies-in-2014&#34;&gt;2014年に使ってみた技術&lt;/a&gt;に書いたので、仕事やプライベートのことを振り返ってみる。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;仕事では7月ぐらいにゲーム系じゃなくてメディア系を立ち上げる部署に異動した。Unityを触ったりしたんだけど、やっぱりゲームを作るのは相当な労力がいるし自分には向いてないんじゃないかなぁと思ってメディア系の部署へ。あと今回は第一線でバリバリ開発する立ち位置なので今は産みの苦しみを絶賛味わってます。あとちょっと...&lt;/li&gt;&#xA;&lt;li&gt;プライベートでは、1月ぐらいに車をお義母さんからゆずってもらって15年ぶりぐらいに車を運転してみた。15年間ペーパードライバーだったんだけど、奥さんが妊娠してたので強制的に病院の送り迎えをすることになり、近距離ならなんとか運転できるようになってきた。人だけは轢かないように心がけてる。車種はトヨタのAllionっていうセダン。すでに12万キロ走っているのでそろそろ壊れる気がする。&lt;/li&gt;&#xA;&lt;li&gt;あと人生の一大イベントで4月に息子が生まれててんやわんや。でもとてつもなくかわいくて毎週成長を見るのが楽しい。仕事できる時間が減り、自分の時間もほぼゼロになってしまったけど、息子を育てる方が社会に貢献できている気がするｗ 出生率があがれば高齢化社会や人口減少問題が緩和されるらしいので、もう一人ぐらい頑張りたいところ。&lt;/li&gt;&#xA;&lt;li&gt;飼い猫のししまるが2歳に。2014年は年初から誤飲事件が発生して救急病院に通った。おかげでペット保険の必要性を認識して加入。その後ちょいちょい医者にかかっているのでこれは入っておいてよかったなと思う。今はししまる毎日元気に走り回って息子の攻撃からもひらりと身をかわしている。&lt;/li&gt;&#xA;&lt;li&gt;Amazonでモノを買うのを辞めて、&lt;a href=&#34;http://blogger.lampetty.net/2014/01/yodobashi-is-awesome.html&#34;&gt;yodobashi.comのヘビーユーザーになった&lt;/a&gt;。&lt;/li&gt;&#xA;&lt;li&gt;ライブは2月にAvril、11月にKnotfestでKORNを見たぐらい。毎年行っていたサマソニも自粛したので今年こそ行きたい。KORNまた今年も来日しないかな。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://instagram.com/p/xHKuDwtHtp/&#34;&gt;&lt;img src=&#34;http://instagram.com/p/xHKuDwtHtp/media/?size=l&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>2014年に使ってみた技術</title>
				<link>https://journal.lampetty.net/posts/used-technologies-in-2014/</link>
				<pubDate>Fri, 02 Jan 2015 21:13:42 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/used-technologies-in-2014/</guid>
				<description>&lt;p&gt;新年明けましておめでとうございます。2014年内に書き上げるはずの記事がずっと下書きのまま眠ってしまっていた... 2014年は細かいものを含めるといろいろ新しいものを使い始めたのでそのまとめ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Macで特定のポートを使用しているプロセスを特定する</title>
				<link>https://journal.lampetty.net/posts/how-to-find-process-of-using-specific-port-on-mac/</link>
				<pubDate>Mon, 29 Dec 2014 12:17:32 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/how-to-find-process-of-using-specific-port-on-mac/</guid>
				<description>&lt;p&gt;ターミナルで&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ lsof -i :3000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;COMMAND  PID   USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;go   2087 a11920  269u  IPv6 0x7574d6a56e437f1      0t0  TCP *:hbci (LISTEN)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;って打つと3000番ポートを使ってるプロセスが調べられる。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4801801153/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/61XtdimnLPL._SL160_.jpg&#34; alt=&#34;Mac OS X Yosemiteパーフェクトガイド (100%ムックシリーズ)&#34; loading=&#34;lazy&#34; title=&#34;Mac OS X Yosemiteパーフェクトガイド (100%ムックシリーズ)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goで標準出力をキャプチャする</title>
				<link>https://journal.lampetty.net/posts/capturing-stdout-in-golang/</link>
				<pubDate>Sat, 27 Dec 2014 21:48:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/capturing-stdout-in-golang/</guid>
				<description>&lt;p&gt;こんな感じかなぁ。&lt;a href=&#34;http://play.golang.org/p/2DFtYAsFO9&#34;&gt;http://play.golang.org/p/2DFtYAsFO9&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;package&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;bytes&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;io&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s2&#34;&gt;&amp;#34;os&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;type&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Capturer&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;struct&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;saved&lt;/span&gt;         &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;File&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;bufferChannel&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;chan&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;string&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;out&lt;/span&gt;           &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;File&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt;            &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;File&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;標準出力をキャプチャする&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Capturer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;StartCapturingStdout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;saved&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stdout&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pipe&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;err&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nil&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;panic&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;err&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stdout&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;out&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bufferChannel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;chan&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;go&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;k&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Buffer&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Copy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bufferChannel&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;//&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;キャプチャを停止する&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Capturer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;StopCapturingStdout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;os&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stdout&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;saved&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bufferChannel&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;func&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Capturer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;StartCapturingStdout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;captured&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;StopCapturingStdout&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;captured:&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;captured&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/487311697X/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51kSuWt53uL._SL160_.jpg&#34; alt=&#34;アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで&#34; loading=&#34;lazy&#34; title=&#34;アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>GoLangでJavaのenumっぽいライブラリ作った話</title>
				<link>https://journal.lampetty.net/posts/introducing-goenum/</link>
				<pubDate>Sun, 07 Dec 2014 11:04:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/introducing-goenum/</guid>
				<description>&lt;ul&gt;&#xA;&lt;li&gt;この記事は、&lt;a href=&#34;http://www.adventar.org/calendars/358&#34;&gt;CyberAgent エンジニア Advent Calendar 2014&lt;/a&gt;の7日目の記事です。&lt;/li&gt;&#xA;&lt;li&gt;6日目はkamatama41さんの&lt;a href=&#34;http://ameblo.jp/principia-ca/entry-11959788304.html&#34;&gt;アメーバピグへのGoogle BigQuery導入までのもろもろ設定記&lt;/a&gt; です&lt;/li&gt;&#xA;&lt;li&gt;8日目はstormcat24さんです&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;はじめに&#34;&gt;はじめに&lt;/h3&gt;&#xA;&lt;p&gt;Goでは言語標準でenumという機構がなくてつらかったのでそれっぽいものを作ったよという話。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Recent open source activities</title>
				<link>https://journal.lampetty.net/posts/recent-open-source-activities-on-nov-2014/</link>
				<pubDate>Sat, 08 Nov 2014 20:19:51 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/recent-open-source-activities-on-nov-2014/</guid>
				<description>&lt;h3 id=&#34;pmd&#34;&gt;pmd&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/pmd/pmd/pull/44&#34;&gt;https://github.com/pmd/pmd/pull/44&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;CPD (Copy Paste Detector) supported GoLang.&lt;/p&gt;&#xA;&lt;h3 id=&#34;go-xorm&#34;&gt;go-xorm&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/go-xorm/xorm/issues/166&#34;&gt;https://github.com/go-xorm/xorm/issues/166&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Suggested and implemented &amp;quot;soft delete&amp;quot; for xorm. My pull-request was immediately merged! (very impressive)&lt;/p&gt;&#xA;&lt;h3 id=&#34;goose&#34;&gt;goose&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://bitbucket.org/liamstask/goose/pull-request/43/support-mysql-driver&#34;&gt;https://bitbucket.org/liamstask/goose/pull-request/43/support-mysql-driver&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Added mysql driver support. My pull-request hasn&#39;t been merged yet. I contacted to the author but he didn&#39;t respond.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Macでファイルが変更されたら自動的にgofmtをかける</title>
				<link>https://journal.lampetty.net/posts/gofmt-with-fswatch-on-mac/</link>
				<pubDate>Tue, 21 Oct 2014 22:23:48 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/gofmt-with-fswatch-on-mac/</guid>
				<description>&lt;p&gt;fswatchを使うと楽っぽい。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ brew install fswatch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ fswatch . | xargs -n1 -I{} gofmt -w {}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;gofmt -w だと、stdoutに出力せずに直接対象ファイルに書き込まれる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>gunicornをローカル開発環境のWebサーバとして使う</title>
				<link>https://journal.lampetty.net/posts/use-gunicorn-on-local-machine/</link>
				<pubDate>Sun, 12 Oct 2014 22:20:07 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/use-gunicorn-on-local-machine/</guid>
				<description>&lt;p&gt;--reloadオプションがバージョン19.0からサポートされたので、下記のような感じで起動するとローカルの開発サーバとして使える。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;gunicorn&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;access&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;logfile&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;file&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;--&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;reload&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;127.0&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0.1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3000&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;w&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;app&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;app&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;--access-logfile: &amp;quot;-&amp;quot;を指定するとstderrにアクセスログが出る&lt;/li&gt;&#xA;&lt;li&gt;--log-file: ↑と同様に&amp;quot;-&amp;quot;を指定するとstderrにエラーログが出る&lt;/li&gt;&#xA;&lt;li&gt;--reload: ソースコードが変更されたらリロードする&lt;/li&gt;&#xA;&lt;li&gt;-b: bindするアドレスとポートの指定&lt;/li&gt;&#xA;&lt;li&gt;-w: ワーカー数&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4873116880/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51slC51WgOL._SL160_.jpg&#34; alt=&#34;Python文法詳解&#34; loading=&#34;lazy&#34; title=&#34;Python文法詳解&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goでnilなsliceやmapを返すと空のsliceやmapになる</title>
				<link>https://journal.lampetty.net/posts/nil-to-empty-slice-and-map/</link>
				<pubDate>Mon, 15 Sep 2014 02:58:25 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/nil-to-empty-slice-and-map/</guid>
				<description>&lt;p&gt;タイトルの通りだけど知らなかったので。明示的に空のsliceやmapを作らなくてもいいのは楽だ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://play.golang.org/p/veOWHGDdcn&#34;&gt;http://play.golang.org/p/veOWHGDdcn&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;emptyMap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;map&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;emptySlice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;nil&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;emptySlice&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;emptySlice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;slice len = %d\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;emptySlice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;emptyMap&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;:=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;emptyMap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;map len = %d\n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;len&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;emptyMap&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4863541171/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51ZzoXpsmqL._SL160_.jpg&#34; alt=&#34;基礎からわかる Go言語&#34; loading=&#34;lazy&#34; title=&#34;基礎からわかる Go言語&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>golintの-min_confidenceでチェックするレベルを変更する</title>
				<link>https://journal.lampetty.net/posts/golint-min-confidence/</link>
				<pubDate>Sat, 13 Sep 2014 22:23:42 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/golint-min-confidence/</guid>
				<description>&lt;p&gt;これはGo的にはあまりやらない方がいいと思うやつなんだけど、こういうこともできるよ、という紹介。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;type Hoge struct {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Url    string&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたいに書いてgolintを実行すると &amp;quot;struct field Url should be URL&amp;quot; と怒られる。しかし、golintには -min_confidence という引数を指定できる。デフォルトは0.8なので、試しにこれを1.0に引き上げてみると&amp;quot;struct field Url should be URL&amp;quot;というエラーは出なくなる。&lt;a href=&#34;https://github.com/golang/lint/blob/master/lint.go&#34;&gt;https://github.com/golang/lint/blob/master/lint.go&lt;/a&gt; のソースを見てみると、いろいろなチェック処理で&lt;/p&gt;</description>
			</item>
			<item>
				<title>Revel Frameworkでのテスト</title>
				<link>https://journal.lampetty.net/posts/test-on-revel/</link>
				<pubDate>Wed, 10 Sep 2014 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/test-on-revel/</guid>
				<description>&lt;p&gt;今使っている&lt;a href=&#34;http://revel.github.io/&#34;&gt;Revel Framework&lt;/a&gt;のテストについてまとめてみた。&lt;/p&gt;&#xA;&lt;h2 id=&#34;デモ&#34;&gt;デモ&lt;/h2&gt;&#xA;&lt;p&gt;サンプル &lt;a href=&#34;https://github.com/oinume/revel-sample&#34;&gt;https://github.com/oinume/revel-sample&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;テストの実行(ブラウザー経由)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;revel run revel-sample&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://localhost:9000/@tests&#34;&gt;http://localhost:9000/@tests&lt;/a&gt; にアクセス&lt;/p&gt;&#xA;&lt;p&gt;テストの実行(CUI)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;revel test revel-sample&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;testsuite&#34;&gt;TestSuite&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;type AppTest struct {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    revel.TestSuite&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;revel.TestSuiteを埋め込んで使うと、コイツが持っている各種関数が使えるようになる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Atomで突然の死ジェネレータを作ってみた</title>
				<link>https://journal.lampetty.net/posts/atom-sudden-death-generator/</link>
				<pubDate>Thu, 28 Aug 2014 09:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/atom-sudden-death-generator/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://atom.io/packages/sudden-death-generator&#34;&gt;https://atom.io/packages/sudden-death-generator&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Atomのpackageを作る練習として。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://atom.io/docs/latest/creating-a-package&#34;&gt;本家のドキュメント&lt;/a&gt;が詳しい&lt;/li&gt;&#xA;&lt;li&gt;ソースを直したらCmd + Shift + P でWindow: Reloadを実行すると反映される&lt;/li&gt;&#xA;&lt;li&gt;spec(ユニットテスト)の書き方がよくわからない&lt;/li&gt;&#xA;&lt;li&gt;スクリーンショットのアニGifは&lt;a href=&#34;http://www.cockos.com/licecap/&#34;&gt;LICEcap&lt;/a&gt;使って撮った。便利。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B00KRB9U2G/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51JmurssNOL._SL160_.jpg&#34; alt=&#34;実践Node.jsプログラミング (Programmer&amp;#39;s SELECTION)&#34; loading=&#34;lazy&#34; title=&#34;実践Node.jsプログラミング (Programmer&amp;#39;s SELECTION)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Nginxのserver_nameに正規表現で量指定子を使うとエラー</title>
				<link>https://journal.lampetty.net/posts/nginx-server-name-regex/</link>
				<pubDate>Fri, 22 Aug 2014 19:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/nginx-server-name-regex/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;server_name ~^(?&amp;lt;subdomain&amp;gt;[\w]{3,})\.example\.com$;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nginxの設定ファイルで↑のような感じのserver_nameを書いて起動しようとすると&lt;/p&gt;</description>
			</item>
			<item>
				<title>Goのstructとinterface</title>
				<link>https://journal.lampetty.net/posts/golang-struct-and-interface/</link>
				<pubDate>Tue, 12 Aug 2014 20:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/golang-struct-and-interface/</guid>
				<description>&lt;p&gt;社内でGo勉強会をやったのでその時に自分が発表した時の内容。オブジェクト指向的なことをGoでどう実現するのか、どの辺を諦めなくてはいけないのかをまとめてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>IntelliJ IDEAのgo-lang-idea-pluginをビルドする</title>
				<link>https://journal.lampetty.net/posts/build-go-lang-idea-plugin/</link>
				<pubDate>Sat, 26 Jul 2014 21:54:20 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/build-go-lang-idea-plugin/</guid>
				<description>&lt;p&gt;最近Goを少し書くようになった。PythonやRubyを書く時はIntelliJを使っているので、GoもIntelliJで書きたい。ただ、IntelliJからインストールできる公開されているプラグインは今年の1月の古めのものなので、&lt;a href=&#34;https://github.com/go-lang-plugin-org/go-lang-idea-plugin&#34;&gt;go-lang-idea-plugin&lt;/a&gt;を自分でビルドしてインストールしてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Jenkinsで過去のビルドをワンクリックで再ビルドしたい</title>
				<link>https://journal.lampetty.net/posts/jenkins-rebuild-plugin/</link>
				<pubDate>Mon, 30 Jun 2014 21:18:31 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/jenkins-rebuild-plugin/</guid>
				<description>&lt;p&gt;結論から言うと「&lt;a href=&#34;https://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Plugin&#34;&gt;Rebuild Plugin&lt;/a&gt;使え」&lt;/p&gt;&#xA;&lt;p&gt;ユースケースとしては、ビルドパラメータを使ってディプロイ先の環境などを指定している場合、これを毎度指定するのはつらいので、過去のビルド履歴からワンクリックで再ビルドできないかというもの。Rebuild Pluginを入れると下記のようにビルド履歴をクリックすると&amp;quot;Rebuild&amp;quot;というリンクが出るのでこれをクリックすると同じビルドパラメータを使ってビルドし直すことができる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL 5.6で本当にオンラインでDDLが実行できるか検証してみた</title>
				<link>https://journal.lampetty.net/posts/online-ddl-on-mysql-5.6/</link>
				<pubDate>Mon, 16 Jun 2014 19:15:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/online-ddl-on-mysql-5.6/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://thinkit.co.jp/story/2013/11/19/4670/page/0/1&#34;&gt;MySQL 5.6での機能強化点（その1） - パフォーマンスと使い勝手を大きく向上 | Think IT&lt;/a&gt;に書いてあるようにMySQL 5.6からオンラインでDDLを実行してもレコードのINSERT, UPDATEはできるようになったとあるので、これが本当なのか検証してみた。MySQLにおいてレコード数の多いテーブルに対するALTER TABLE文の発行は以前から問題視されていて、&lt;a href=&#34;http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html&#34;&gt;pt-online-schema-change&lt;/a&gt;みたいなものを駆使するのが常套手段だった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ノンアルコールビールはサッポロ プレミアム アルコールフリー ブラックがオススメ</title>
				<link>https://journal.lampetty.net/posts/sapporo-premium-alcohol-free/</link>
				<pubDate>Mon, 16 Jun 2014 09:42:52 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/sapporo-premium-alcohol-free/</guid>
				<description>&lt;p&gt;最近諸事情によりノンアルコールビールを飲むようになったのでステマ記事。&lt;/p&gt;&#xA;&lt;h1 id=&#34;コンテキスト&#34;&gt;コンテキスト&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ビール一杯で普通に酔えるぐらい酒が弱い&lt;/li&gt;&#xA;&lt;li&gt;ビールは飲みたいけど、飲んでしまうと寝むくなって何もできなくなる&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ビール飲んでサッパリした後にもう一仕事したい&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;なぜサッポロ-プレミアム-アルコールフリー-ブラックか&#34;&gt;なぜサッポロ プレミアム アルコールフリー ブラックか&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ノンアルコールビールはいろいろ飲んだけどこれが一番ビールっぽくっておいしいと感じた&#xA;&lt;ul&gt;&#xA;&lt;li&gt;キリンフリー、アサヒDRY ZERO、サントリー ALL FREE、サッポロ プレミアム アルコールフリー&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;黒ビールが嫌いでなければオススメ&lt;/li&gt;&#xA;&lt;li&gt;泡もけっこう出る&lt;/li&gt;&#xA;&lt;li&gt;普通のビールに比べて安い(スーパーで130円ぐらい)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;もちろん普通のビールに比べればマズいけど、雰囲気を楽しみたいっていうレベルならこれで十分だと思ってる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>vagrant ssh でログインせずそのままコマンドを実行したい</title>
				<link>https://journal.lampetty.net/posts/vagrant-ssh-with-command/</link>
				<pubDate>Mon, 09 Jun 2014 20:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/vagrant-ssh-with-command/</guid>
				<description>&lt;p&gt;vagrant ssh でVMに入ると思うんだけど、ちょっとしたコマンドをそのまま実行したい時にVMのShellにログインするのはダルい。そういう場合は -- を使ってvagrantコマンドの引数を終わらせて、その後に任意のコマンドを書くといい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>PackerでJapanizedなUbuntu 14.04のVagrant Boxを作ってみた</title>
				<link>https://journal.lampetty.net/posts/japanized-ubuntu-14.04-vagrant-box-by-packer/</link>
				<pubDate>Sun, 08 Jun 2014 23:23:04 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/japanized-ubuntu-14.04-vagrant-box-by-packer/</guid>
				<description>&lt;p&gt;TimeZoneがAsia/Tokyoで、aptのミラーがjp.archive.ubuntu.comなVagrant Boxを作ってみた。&lt;a href=&#34;https://github.com/shiguredo/packer-templates&#34;&gt;時雨堂のpacker-templates&lt;/a&gt;をforkして &lt;a href=&#34;https://github.com/oinume/packer-templates/tree/develop/ubuntu-14.04-jp&#34;&gt;ubuntu-14.04-jp&lt;/a&gt; っていうディレクトリを新しく追加してる。インストール方法は&lt;a href=&#34;https://github.com/oinume/packer-templates#running-packer&#34;&gt;README.rst&lt;/a&gt;に書いてある通り。イメージ作るのって面倒なイメージがあったんだけど(ダジャレ感)、Packerと先人の秘伝のタレを使えば良いということがわかったので恐怖心がなくなった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>brew install nodebrewできるようになった</title>
				<link>https://journal.lampetty.net/posts/created-homebrew-formula-of-nodebrew/</link>
				<pubDate>Tue, 03 Jun 2014 09:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/created-homebrew-formula-of-nodebrew/</guid>
				<description>&lt;p&gt;ついカッとなって&lt;a href=&#34;https://github.com/Homebrew/homebrew/commit/a14ff1e63258590ad23665e7f9bfcfe1394f9fad&#34;&gt;nodebrewのFormula&lt;/a&gt;を週末に作ってしまった。後悔はしていない。勢いで作ったので2回ほどプルリクのレビューにひっかかってしまった。ドキュメント嫁的な指摘もあったりしてションボリしつつ、でもこれで nvm 使わなくなれるのでちょっと嬉しい。&lt;/p&gt;&#xA;&lt;h1 id=&#34;formula作る人向けのドキュメント&#34;&gt;Formula作る人向けのドキュメント&lt;/h1&gt;&#xA;&lt;p&gt;公式ドキュメントが充実しているので、下記の3ページを読んでからプルリク送ると良さげ。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook&#34;&gt;Formula Cookbook&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Homebrew/homebrew/wiki/Acceptable-Formulae&#34;&gt;Acceptable Formulae&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/styleguide/ruby&#34;&gt;Ruby · Styleguide&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;nodebrewのformulaを作るまでの過程&#34;&gt;nodebrewのFormulaを作るまでの過程&lt;/h1&gt;&#xA;&lt;h2 id=&#34;usrlocallibraryformulanodebrewrb-を作る&#34;&gt;/usr/local/Library/Formula/nodebrew.rb を作る&lt;/h2&gt;&#xA;&lt;p&gt;他のを適当にコピーしても良いけど、たぶん&lt;/p&gt;</description>
			</item>
			<item>
				<title>Atom Editorで複数行選択して行頭に文字列を入れる</title>
				<link>https://journal.lampetty.net/posts/atom-editor-insert-text-into-beginning-of-lines/</link>
				<pubDate>Fri, 30 May 2014 19:10:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/atom-editor-insert-text-into-beginning-of-lines/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;http://cdn-ak.f.st-hatena.com/images/fotolife/o/oinume/20140530/20140530142232.gif&#34; alt=&#34;f:id:oinume:20140530142232g:plain&#34; loading=&#34;lazy&#34; title=&#34;f:id:oinume:20140530142232g:plain&#34;&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://atom.io/packages/sublime-style-column-selection&#34;&gt;sublime-style-column-selection&lt;/a&gt;を入れて、Cmd + Shift + l(エル) で複数行を選択状態にして&amp;quot;&amp;gt; &amp;quot;を入力する。ESCを押すとカーソルの複数行選択が解除される。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Atom Editorで複数行選択(矩形選択)</title>
				<link>https://journal.lampetty.net/posts/atom-editor-multi-line-column-selection/</link>
				<pubDate>Mon, 19 May 2014 08:30:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/atom-editor-multi-line-column-selection/</guid>
				<description>&lt;p&gt;Atom Editorではデフォルトでは複数行選択はサポートされてないのだけど、&lt;a href=&#34;https://atom.io/packages/sublime-style-column-selection&#34;&gt;sublime-style-column-selection&lt;/a&gt;というパッケージを入れると、SublimeみたいにOptionキーを押しながらマウスをクリック＋ドラッグで複数行選択できるようになる。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.flickr.com/photos/oinume/14025807990&#34; title=&#34;atom-multi-column-selection by oinume, on Flickr&#34;&gt;&lt;img src=&#34;https://farm3.staticflickr.com/2895/14025807990_874ef83f86.jpg&#34; alt=&#34;atom-multi-column-selection&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;これのおかげでSublimeがやっといらない子になってきた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>はてなブログのMarkdown記法でネストした箇条書き</title>
				<link>https://journal.lampetty.net/posts/nested-bullet-list-on-hatenablog/</link>
				<pubDate>Fri, 16 May 2014 01:22:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/nested-bullet-list-on-hatenablog/</guid>
				<description>&lt;p&gt;GitHub Flavored Markdownだと&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* A&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;* B&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; * C&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたいに書くとCがインデントされるんだけど、はてなブログではそうなってくれない！と思って問い合わせしてみたら、半角スペース4つでインデントされるとのこと。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Atom Editorがオープンソースになったので使ってみた</title>
				<link>https://journal.lampetty.net/posts/try-to-use-atom-editor/</link>
				<pubDate>Sun, 11 May 2014 23:03:32 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/try-to-use-atom-editor/</guid>
				<description>&lt;p&gt;どうもこんにちは、エディタ難民です。最近は軽いテキストの修正はSublimeText2、コードバリバリ書く系はIntelliJ IDEAを使っていたんだけど、Atomがオープンソースになったことだしいっちょ試してみるかということで使ってみた。Sublime3はなかなか出なくて進化が止まっている感じがしていてちょうどモヤモヤしていたというのもある。(ちなみにSublime2使う前はEmacsを使っていたがelisp書けなさすぎて挫折した)&lt;/p&gt;</description>
			</item>
			<item>
				<title>ターミナル環境を見直す(3) - tmux編</title>
				<link>https://journal.lampetty.net/posts/improve-my-terminal-with-tmux/</link>
				<pubDate>Sat, 10 May 2014 14:51:18 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/improve-my-terminal-with-tmux/</guid>
				<description>&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/improve-my-terminal-with-zsh-prezto&#34;&gt;ターミナル環境を見直す(1) - zsh + prezto編 - おいぬま日報&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/improve-my-terminal-with-percol&#34;&gt;ターミナル環境を見直す(2) - percol編 - おいぬま日報&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;この辺の話の続き。今回は久々にtmuxを使ってみよう編。たしか2011年ぐらいまではtmuxユーザだったんだけど、開発用マシンを全部MacOSにした時に「iTerm2しか使ってないし別にtmuxいらないかな」と思ったり、その時はtmux使うとマウスホイールでバッファがスクロールできないのが解決できてなくて使うのをやめてしまった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>最近のWeb系フルスタックエンジニアのお仕事</title>
				<link>https://journal.lampetty.net/posts/recent-full-stack-engineer-work-2014/</link>
				<pubDate>Thu, 08 May 2014 12:17:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/recent-full-stack-engineer-work-2014/</guid>
				<description>&lt;ol&gt;&#xA;&lt;li&gt;JavaScript or CoffeeScript + AngularJSとかBackboneJSでいい感じのページを作る&lt;/li&gt;&#xA;&lt;li&gt;CSS/Sass + HTMLコーディング&lt;/li&gt;&#xA;&lt;li&gt;Gruntとかでminifyとかビルド&lt;/li&gt;&#xA;&lt;li&gt;Ruby/Rails, Python/Django, PHP/CakePHP, Node.js/ExpressとかでAPIサーバ実装&lt;/li&gt;&#xA;&lt;li&gt;データベースの設計とか(MySQL, MongoDB, etc...)&lt;/li&gt;&#xA;&lt;li&gt;AWSなどのクラウドに本番サーバの構築(Chef, Puppet, Ansible, etc...)&lt;/li&gt;&#xA;&lt;li&gt;開発環境をVagrantとかDockerで構築(ここでもChefとか使う)&lt;/li&gt;&#xA;&lt;li&gt;ディプロイスクリプト作成&lt;/li&gt;&#xA;&lt;li&gt;TravisCIやCircleCIでCIする + ユニットテストやE2Eテストを書く&lt;/li&gt;&#xA;&lt;li&gt;NewRelic, Airbrakeなどでモニタリング&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;いくつかはPaaSやBaaS使えば省けるものはありそうだけど大変、、、&lt;/p&gt;</description>
			</item>
			<item>
				<title>ターミナル環境を見直す(2) - percol編</title>
				<link>https://journal.lampetty.net/posts/improve-my-terminal-with-percol/</link>
				<pubDate>Wed, 07 May 2014 01:13:14 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/improve-my-terminal-with-percol/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/improve-my-terminal-with-zsh-prezto&#34;&gt;ターミナル環境を見直す(1) - zsh + prezto編 - おいぬま日報&lt;/a&gt;に引き続き第2弾。&lt;/p&gt;&#xA;&lt;p&gt;今回は&lt;a href=&#34;https://github.com/mooz/percol&#34;&gt;percol&lt;/a&gt;というものをインストールしてみた。percolを一言で言うと、シェル版の&lt;a href=&#34;http://www.emacswiki.org/emacs/anything.el&#34;&gt;Anything.el&lt;/a&gt;またはVimの&lt;a href=&#34;https://github.com/Shougo/unite.vim&#34;&gt;Unite&lt;/a&gt;という感じなのかなぁ。percolについては&lt;a href=&#34;http://shibayu36.hatenablog.com/entry/2013/10/06/184146&#34;&gt;ターミナル版anything的なpercolをzawの代わりに試してみた - $shibayu36-&amp;gt;blog;&lt;/a&gt;が詳しい。(自分はこのブログを見て&lt;a href=&#34;https://github.com/zsh-users/zaw&#34;&gt;zaw&lt;/a&gt;じゃなくてpercolにしようかなと思いました)&lt;/p&gt;&#xA;&lt;h1 id=&#34;インストール&#34;&gt;インストール&lt;/h1&gt;&#xA;&lt;p&gt;で、まずインストールしてみたんだけどいきなり躓いた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ターミナル環境を見直す(1) - zsh &#43; prezto編</title>
				<link>https://journal.lampetty.net/posts/improve-my-terminal-with-zsh-prezto/</link>
				<pubDate>Sun, 04 May 2014 15:18:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/improve-my-terminal-with-zsh-prezto/</guid>
				<description>&lt;p&gt;GWになったので、ずーーーっとやりたいと思っていた、ターミナル環境の見直しをしてる。oh-my-zshとか使ってなかったし、tmuxも最近は使ってなくて時代からかなり乗り遅れ気味なのがずっと気になってた。ちなみに見直す前の環境はざっくり言うと以下。&lt;/p&gt;</description>
			</item>
			<item>
				<title>conoha VPSにUbuntu 14.04(Trusty Tahr)をインストールしてみた</title>
				<link>https://journal.lampetty.net/posts/ubuntu-14.04-on-conoha-vps/</link>
				<pubDate>Sun, 04 May 2014 00:22:48 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/ubuntu-14.04-on-conoha-vps/</guid>
				<description>&lt;p&gt;どうもこんにちは。VPS難民です。&lt;/p&gt;&#xA;&lt;p&gt;Ubuntu 14.04 LTSがリリースされたので、今使っているお名前.comのVPS(Ubuntu 12.04)から移行しようと思って&lt;a href=&#34;http://www.conoha.jp/&#34;&gt;conoha VPS&lt;/a&gt;にインストールしてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>会社の本番環境をJava8で動かそうとしたらNewRelicでエラーが出た</title>
				<link>https://journal.lampetty.net/posts/java8-new-relic-error/</link>
				<pubDate>Wed, 30 Apr 2014 20:19:44 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/java8-new-relic-error/</guid>
				<description>&lt;p&gt;そろそろJava8でコード書きたい&lt;br&gt;&#xA;　↓&lt;br&gt;&#xA;まずはJVMをJava8で動かさないと...！(JVMに問題があった時に詰む)&lt;br&gt;&#xA;　↓&lt;br&gt;&#xA;本番のJVMをJava8にした&lt;br&gt;&#xA;　↓&lt;br&gt;&#xA;起動時にNewRelic入れてるサーバでエラーが出た&lt;br&gt;&#xA;　↓&lt;br&gt;&#xA;対応に数ヶ月かかるかもしれないとのこと＼(^o^)／ (←イマココ)&lt;/p&gt;</description>
			</item>
			<item>
				<title>開発効率をUPする Git逆引き入門を読んだ</title>
				<link>https://journal.lampetty.net/posts/git-gyakubiki-book/</link>
				<pubDate>Wed, 23 Apr 2014 00:20:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/git-gyakubiki-book/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4863541465/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51RtoUsheVL._SL160_.jpg&#34; alt=&#34;開発効率をUPする Git逆引き入門&#34; loading=&#34;lazy&#34; title=&#34;開発効率をUPする Git逆引き入門&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4863541465/kazzhomeunixo-22/&#34;&gt;開発効率をUPする Git逆引き入門&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者: 松下雅和,船ヶ山慶,平木聡,土橋林太郎,三上丈晴&lt;/li&gt;&#xA;&lt;li&gt;出版社/メーカー: シーアンドアール研究所&lt;/li&gt;&#xA;&lt;li&gt;発売日: 2014/04/09&lt;/li&gt;&#xA;&lt;li&gt;メディア: 単行本（ソフトカバー）&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://d.hatena.ne.jp/asin/4863541465/kazzhomeunixo-22&#34;&gt;この商品を含むブログ (4件) を見る&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;著者の&lt;a href=&#34;https://twitter.com/matsukaz&#34;&gt;@matsukazu&lt;/a&gt;さんより献本してもらいました。増刷が決まったようでおめでとうございます！すごい遅くなったけど、やっと読み終わったので感想をば。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JVM Operation Casual Talks #1でLTとパネルディスカッションしてきた</title>
				<link>https://journal.lampetty.net/posts/jvm-operation-casual-talks-1/</link>
				<pubDate>Tue, 08 Apr 2014 23:07:58 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/jvm-operation-casual-talks-1/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://atnd.org/events/48999&#34;&gt;JVM Operation Casual Talks #1&lt;/a&gt;でLTとパネルディスカッションしてきました(&lt;a href=&#34;http://togetter.com/li/652483&#34;&gt;togetterまとめ&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://www.slideshare.net/oinume/jvm-operationcasualtalks20140407&#34; title=&#34;運用に効く！JVMオプション三選&#34;&gt;運用に効く！JVMオプション三選&lt;/a&gt;&lt;/strong&gt; from &lt;strong&gt;&lt;a href=&#34;http://www.slideshare.net/oinume&#34;&gt;Kazuhiro Oinuma&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;この日登壇した人でJVM好きな人っていたんだろうか？っていうぐらいLL寄りな人が多かった印象だった。パネルディスカッションというものは初めてだったんだけど(&lt;a href=&#34;#1&#34;&gt;*1&lt;/a&gt;)、人の目の前でJVMをDISれてよかったなぁと思う。はてなさんの新しいサービスはScalaでできているらしくてそれがすごいビックリした。(LLで頑張る会社だと思ってたので)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Flask &#43; BeakerでセッションデータをRedisに保存する</title>
				<link>https://journal.lampetty.net/posts/flask-beaker-session-redis/</link>
				<pubDate>Fri, 28 Mar 2014 01:47:13 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/flask-beaker-session-redis/</guid>
				<description>&lt;h1 id=&#34;やりたいこと&#34;&gt;やりたいこと&lt;/h1&gt;&#xA;&lt;p&gt;Redisをセッションデータの保存先にしたい&lt;/p&gt;&#xA;&lt;h1 id=&#34;beakerって&#34;&gt;Beakerって？&lt;/h1&gt;&#xA;&lt;p&gt;様々なデータストアにセッションデータを保存するWSGI Middleware。WSGIレイヤーなのでFlask以外のWAF(bottleとか)でも使えるはず。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Redisで全てのキーを取得する</title>
				<link>https://journal.lampetty.net/posts/get-all-keys-from-redis/</link>
				<pubDate>Thu, 27 Mar 2014 23:42:57 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/get-all-keys-from-redis/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;keys *&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B00HSC64P8/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51XPXODZh3L._SL160_.jpg&#34; alt=&#34;Redis入門　インメモリKVSによる高速データ管理 (アスキー書籍)&#34; loading=&#34;lazy&#34; title=&#34;Redis入門　インメモリKVSによる高速データ管理 (アスキー書籍)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B00HSC64P8/kazzhomeunixo-22/&#34;&gt;Redis入門　インメモリKVSによる高速データ管理 (アスキー書籍)&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>vagrant up した時にprovisionしたくない</title>
				<link>https://journal.lampetty.net/posts/vagrant-no-provision/</link>
				<pubDate>Wed, 26 Mar 2014 22:48:12 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/vagrant-no-provision/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ vagrant up --no-provision&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;いっつも忘れる。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4873116651/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/41rW4Ay1U9L._SL160_.jpg&#34; alt=&#34;実践 Vagrant&#34; loading=&#34;lazy&#34; title=&#34;実践 Vagrant&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4873116651/kazzhomeunixo-22/&#34;&gt;実践 Vagrant&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者: Mitchell Hashimoto,Sky株式会社玉川竜司&lt;/li&gt;&#xA;&lt;li&gt;出版社/メーカー: オライリージャパン&lt;/li&gt;&#xA;&lt;li&gt;発売日: 2014/02/21&lt;/li&gt;&#xA;&lt;li&gt;メディア: 単行本（ソフトカバー）&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://d.hatena.ne.jp/asin/4873116651/kazzhomeunixo-22&#34;&gt;この商品を含むブログ (5件) を見る&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>nodemonを使ってFlaskなWebアプリを自動でリロード</title>
				<link>https://journal.lampetty.net/posts/auto-reload-flask-app-with-nodemon/</link>
				<pubDate>Sat, 15 Mar 2014 18:12:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/auto-reload-flask-app-with-nodemon/</guid>
				<description>&lt;p&gt;最近のWebアプリケーションフレームワークだと、「開発している時はファイルの変更を検知して自動でアプリを再起動する」みたいな機能がある。PythonのFlaskで開発している場合は&lt;/p&gt;</description>
			</item>
			<item>
				<title>Python3に対応したtomahawk 0.7.0をリリース</title>
				<link>https://journal.lampetty.net/posts/tomahawk-0.7.0-released/</link>
				<pubDate>Mon, 03 Mar 2014 01:37:59 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/tomahawk-0.7.0-released/</guid>
				<description>&lt;p&gt;久々に&lt;a href=&#34;https://github.com/oinume/tomahawk&#34;&gt;tomahawk&lt;/a&gt;の新しいバージョンをリリース。今回はずっと放置していたPython3対応(Python3.2+)をやっとこさ完了した。&lt;/p&gt;&#xA;&lt;p&gt;Python3はいろいろ変わり過ぎていてもう諦めようかなーと思っていたんだけど、去年のPyCon APACで&lt;a href=&#34;https://pypi.python.org/pypi/six&#34;&gt;six&lt;/a&gt;っていうモジュールを知って、「これ使えばけっこう簡単にPython3対応できるのかー」と思ってやってみた。でも実際はそんな簡単にはいかず、特にunicodeとbytesの違いでけっこうハマってしまったけど。&lt;/p&gt;&#xA;&lt;p&gt;あとは今回のバージョンから、&lt;a href=&#34;https://tomahawk.readthedocs.org/en/latest/&#34;&gt;ReadTheDocs&lt;/a&gt;でホスティングしてるドキュメントのテーマをReadTheDocs謹製のものにしてみた。おかげでドキュメントのかっこよさはだいぶ増したはず。&lt;/p&gt;</description>
			</item>
			<item>
				<title>TypeScriptでNode.jsのexpressを使ってHello worldしてみる</title>
				<link>https://journal.lampetty.net/posts/using-express-with-typescript/</link>
				<pubDate>Tue, 18 Feb 2014 02:03:03 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/using-express-with-typescript/</guid>
				<description>&lt;p&gt;TypeScriptでexpressを使ってHello worldしてみた。けっこうはまったのでメモメモ。使ってるTypeScriptのバージョンは1.0.1。&lt;/p&gt;</description>
			</item>
			<item>
				<title>テック系ポッドキャスト</title>
				<link>https://journal.lampetty.net/posts/tech-podcast-the-news/</link>
				<pubDate>Sun, 16 Feb 2014 22:05:52 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/tech-podcast-the-news/</guid>
				<description>&lt;p&gt;最近&lt;a href=&#34;http://rebuild.fm/&#34;&gt;Rebuild.fm&lt;/a&gt;というテック系ポッドキャストを聴く延長で、&lt;a href=&#34;http://5by5.tv/news/&#34;&gt;The News&lt;/a&gt;も聴くようになった。これはApple、ゲーム、ギーク文化などのテック系の最新ニュースを5分ぐらいでまとめてほぼ毎日配信しているもの。&lt;/p&gt;</description>
			</item>
			<item>
				<title>IntelliJ IDEAでTypeScriptの開発環境を作ってみる</title>
				<link>https://journal.lampetty.net/posts/setup-typescript-development-environment/</link>
				<pubDate>Sat, 15 Feb 2014 22:57:42 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/setup-typescript-development-environment/</guid>
				<description>&lt;p&gt;最近趣味プログラムのサーバサイドをNode.jsで書いてるんだけど、JavaScriptはどうも好きになれないので逃避先としてTypeScriptを選んでみた。CoffeeScriptでもいいんだけど、文法が似てるほうがソースコピペできたりして楽かなと思ってTypeScriptを選択。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2014年の個人の技術メモ事情</title>
				<link>https://journal.lampetty.net/posts/personal-memo-2014/</link>
				<pubDate>Sat, 08 Feb 2014 18:53:24 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/personal-memo-2014/</guid>
				<description>&lt;p&gt;最近個人の技術メモ的なやつを整理している。Nginxのconfigureのオプションとか、ブログに書くまでもない、本当に個人のメモ的なヤツ。&lt;/p&gt;&#xA;&lt;h1 id=&#34;今まで&#34;&gt;今まで&lt;/h1&gt;&#xA;&lt;p&gt;VPSにConfluenceというWikiを入れて書いてた。Confluenceは会社でも使っているのでずっと使い続けていたんだけど、2,3年前からWikiマークアップ記法が使えなくなってWordみたいなWYSWIGのエディタだけになってしまった。最初は頑張ってこのWYSWIGエディタに慣れようとしてたんだけど、やっぱりこれが使いづらい... 細かい装飾やレイアウトを直すのにいちいちマウスで選択するのとかやってられないと感じた。あと、ConfluenceってJava製でVPSのメモリを512MBぐらい余裕で使っちゃってたのでこれもやめたい要因の一つだった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>なぜ好きなアーティストのライブは楽しいのか</title>
				<link>https://journal.lampetty.net/posts/why-favrorite-artist-live-is-fun/</link>
				<pubDate>Thu, 06 Feb 2014 08:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/why-favrorite-artist-live-is-fun/</guid>
				<description>&lt;p&gt;自分の中で15年以上続いてる趣味の一つに「ライブに行く」っていうのがある。大体は好きなバンドだったり、サマソニみたいな大きなフェスだったりするんだけど、好きなアーティストのライブに行くのは本当に楽しい。それはなんでだろう？っていうのをちょっと考えてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>curlでHostヘッダーつけてHTTPリクエストを送る</title>
				<link>https://journal.lampetty.net/posts/curl-with-host-header/</link>
				<pubDate>Wed, 22 Jan 2014 01:28:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/curl-with-host-header/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ curl -H &amp;#39;Host:example.com&amp;#39; http://192.168.1.2/alive&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたくすると、VirtualHostが設定されているWebサーバでも &lt;a href=&#34;http://example.com/alive&#34;&gt;http://example.com/alive&lt;/a&gt; というURLにアクセスしているのと同じことができて便利っていう話。サーバをロードバランサーから外す→再起動→curlで確認→ロードバランサーに入れる、みたいなことをよくやる時に使う。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pythonで開発されている有名なサービス</title>
				<link>https://journal.lampetty.net/posts/services-developped-with-python/</link>
				<pubDate>Sat, 18 Jan 2014 12:41:57 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/services-developped-with-python/</guid>
				<description>&lt;p&gt;他にもあったらコメントで教えて欲しいっす。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://dropbox.com/&#34;&gt;Dropbox&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://instagram.com/&#34;&gt;Instagram&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://disqus.com/&#34;&gt;Disqus&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.quora.com/&#34;&gt;Quora&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.pinterest.com/&#34;&gt;Pinterest&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.reddit.com/&#34;&gt;reddit&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bitbucket.org/&#34;&gt;bitbucket&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.yelp.com/&#34;&gt;Yelp&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.uber.com/&#34;&gt;Uber&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>はてなブログに戻ってきた</title>
				<link>https://journal.lampetty.net/posts/back-to-hatena-blog-20140115/</link>
				<pubDate>Wed, 15 Jan 2014 00:40:32 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/back-to-hatena-blog-20140115/</guid>
				<description>&lt;p&gt;こんにちは、ブログ難民です。&lt;/p&gt;&#xA;&lt;p&gt;「はてなブログはサイドバーのカスタマイズできないのかー」と勘違いして約4ヶ月、Bloggerでブログ書いてたんですが、はてなブログでもサイドバーカスタマイズできることを今日知った情弱です。&lt;/p&gt;</description>
			</item>
			<item>
				<title>さらにBloggerに移転</title>
				<link>https://journal.lampetty.net/posts/moved-to-blogger-20130914/</link>
				<pubDate>Sat, 14 Sep 2013 13:09:42 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/moved-to-blogger-20130914/</guid>
				<description>&lt;p&gt;はてなブログをやめて&lt;a href=&#34;http://blogger.lampetty.net/&#34;&gt;Blogger&lt;/a&gt;に移転しました。これでいったい何回目だろうorz&lt;/p&gt;</description>
			</item>
			<item>
				<title>Bloggerに移転</title>
				<link>https://journal.lampetty.net/posts/moved-to-blogger-20130908/</link>
				<pubDate>Sun, 08 Sep 2013 22:25:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/moved-to-blogger-20130908/</guid>
				<description>&lt;p&gt;ブログを&lt;a href=&#34;http://blogger.lampetty.net/&#34;&gt;ブロガー&lt;/a&gt; に移転した。はてなブログはMarkdownで書けるのが良かったんだけど、サイドバーとかが一切カスタマイズできないのがネックで無理だった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Redmine 2.3系でチケット一覧に親チケットの題名が出てうざいので直した</title>
				<link>https://journal.lampetty.net/posts/redmine-issues-parent-ticket/</link>
				<pubDate>Tue, 30 Jul 2013 11:17:24 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/redmine-issues-parent-ticket/</guid>
				<description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- app/helpers/queries_helper.rb  (リビジョン 12068)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+++ app/helpers/queries_helper.rb   (作業コピー)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@@ -124,7 +124,7 @@&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     when &amp;#39;FalseClass&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       l(:general_text_No)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     when &amp;#39;Issue&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-      value.visible? ? link_to_issue(value) : &amp;#34;##{value.id}&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+      value.visible? ? link_to_issue(value, :subject =&amp;gt; false) : &amp;#34;##{value.id}&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     when &amp;#39;IssueRelation&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       other = value.other_issue(issue)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       content_tag(&amp;#39;span&amp;#39;,&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4798121622/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51XuuxjNAaL._SL160_.jpg&#34; alt=&#34;Redmineによるタスクマネジメント実践技法&#34; loading=&#34;lazy&#34; title=&#34;Redmineによるタスクマネジメント実践技法&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/4798121622/kazzhomeunixo-22/&#34;&gt;Redmineによるタスクマネジメント実践技法&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作者: 小川明彦,阪井誠&lt;/li&gt;&#xA;&lt;li&gt;出版社/メーカー: 翔泳社&lt;/li&gt;&#xA;&lt;li&gt;発売日: 2010/10/13&lt;/li&gt;&#xA;&lt;li&gt;メディア: 大型本&lt;/li&gt;&#xA;&lt;li&gt;購入: 16人 クリック: 337回&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://d.hatena.ne.jp/asin/4798121622/kazzhomeunixo-22&#34;&gt;この商品を含むブログ (51件) を見る&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Make Javas VM&#39;s GC log human readable with -XX:&#43;PrintGCDateStamps</title>
				<link>https://journal.lampetty.net/posts/human-readable-jvm-gc-log/</link>
				<pubDate>Sat, 27 Jul 2013 23:00:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/human-readable-jvm-gc-log/</guid>
				<description>&lt;p&gt;I use Java VM&#39;s option &lt;strong&gt;-XX:+PrintGCTimeStamps&lt;/strong&gt; in order to output time in GC log of Java VM , Just like this.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;TODAY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;`&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;date&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;+%Y%m&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;%d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;-%H%M%S&amp;#34;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;JAVA_OPTS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;-server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=256m -XX:MaxPermSize=256m &lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseParNewGC &lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=32 -XX:TargetSurvivorRatio=85 &lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; -verbose:gc -Xloggc:/usr/local/tomcat/logs/gc.log.$TODAY &lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; -XX:+PrintGCDetails &lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; -XX:+PrintGCTimeStamps &lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt; -DJENKINS_HOME=/var/lib/jenkins &lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But, the output is relative time from starting time of Java VM. So it&#39;s difficult to read. However, we have an another option &lt;strong&gt;-XX:+PrintGCDateStamps&lt;/strong&gt; !! It is an option to output &lt;strong&gt;absolute time&lt;/strong&gt;!! (Available from Java6 u6)&lt;/p&gt;</description>
			</item>
			<item>
				<title>ruby-lint - Static syntax checker for Ruby</title>
				<link>https://journal.lampetty.net/posts/introduce-ruby-lint/</link>
				<pubDate>Sat, 27 Jul 2013 22:47:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/introduce-ruby-lint/</guid>
				<description>&lt;p&gt;Recently I found static syntax checker for Ruby called &lt;a href=&#34;https://github.com/YorickPeterse/ruby-lint&#34;&gt;ruby-lint&lt;/a&gt;. We haven&#39;t had such a syntax checker for Ruby, so I&#39;m very happy to find it. (Although it&#39;s alpha quality)&lt;/p&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gem install ruby-lint&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;try&#34;&gt;Try&lt;/h2&gt;&#xA;&lt;p&gt;Prepare following ruby code.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#!/usr/bin/env ruby&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# -*- coding: utf-8 -*-&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;a = &amp;#39;hoge&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;puts &amp;#34;hello&amp;#34; + b&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ruby-lint it!!&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;$&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ruby&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lint&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hoge&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rb&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;hoge&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;line&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;column&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;undefined&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;variable&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;method&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;hoge&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;rb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;warning&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;line&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;column&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;assigned&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;but&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;unused&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;variable&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I cheer an author of ruby-lint. This is a great software!&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.amazon.co.jp/exec/obidos/ASIN/B00DPQ5P24/kazzhomeunixo-22/&#34;&gt;&lt;img src=&#34;http://ecx.images-amazon.com/images/I/51emyV0F1FL._SL160_.jpg&#34; alt=&#34;The Rapid Rubyist (English Edition)&#34; loading=&#34;lazy&#34; title=&#34;The Rapid Rubyist (English Edition)&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>traceモジュールを使ってPythonプログラムの挙動を把握する</title>
				<link>https://journal.lampetty.net/posts/python-trace-module/</link>
				<pubDate>Sun, 21 Jul 2013 09:57:18 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/python-trace-module/</guid>
				<description>&lt;p&gt;Pythonには&lt;a href=&#34;http://docs.python.jp/2/library/trace.html&#34;&gt;trace&lt;/a&gt;モジュールというものが標準ライブラリであって、これを使うとpythonプログラムを実行した時に、どのモジュールのどの関数を呼んでいるかの情報を出力することができる。使いどころとしては、使っているライブラリやツールが「これ実際どう動いてるんだろう？」っていうのを把握したい時に重宝すると思う。&lt;a href=&#34;http://docs.python.jp/2/library/pdb.html&#34;&gt;pdb&lt;/a&gt;なんかのデバッガでもいいんだけど、「ブワッとトレース実行した結果を出しておいてあとで一気に見る」みたいな時に特に有用だと思う。&lt;/p&gt;&#xA;&lt;h2 id=&#34;使ってみよう&#34;&gt;使ってみよう&lt;/h2&gt;&#xA;&lt;p&gt;ためしに&lt;a href=&#34;https://github.com/oinume/tomahawk&#34;&gt;tomahawk&lt;/a&gt;をtrace使って実行してみた。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ python -m trace -t /usr/local/bin/tomahawk -h localhost uptime&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;実行には -m trace と -t (--trace) オプションをつける。実行結果はこんな感じ。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;o&#34;&gt;---&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;modulename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;funcname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;module&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sys&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;try&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;     &lt;span class=&#34;n&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bootstrap&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;except&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;     &lt;span class=&#34;k&#34;&gt;pass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;command&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;CommandMain&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;o&#34;&gt;---&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;modulename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;__init__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;funcname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;module&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;__init__&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;py&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tomahawk&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;constants&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &lt;span class=&#34;o&#34;&gt;---&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;modulename&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;constants&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;funcname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;module&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;やってみるとわかるけど、標準ライブラリのコードまで延々とトレース実行される... 「標準ライブラリの中はどうでもいいんだよ」ということであれば、&lt;code&gt;--ignore-module=os,sys&lt;/code&gt; みたいな感じで除外するモジュールをカンマ区切りで指定できる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacのrbenvでRuby 1.9.3-p392インストール時にopenssl関連のエラー</title>
				<link>https://journal.lampetty.net/posts/mac-rbenv-install-error/</link>
				<pubDate>Sat, 20 Jul 2013 09:54:49 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/mac-rbenv-install-error/</guid>
				<description>&lt;p&gt;MacのLionで&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ rbenv install 1.9.3-p392&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;するとこんな感じのエラーが出てきてビルドできなかった。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;BUILD&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;FAILED&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Inspect&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clean&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;up&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;working&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tree&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;at&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;folders&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;k&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;qhgc57n3nj7qbd_h2xpd1cm0000gn&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ruby&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;20130720093657.99813&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Results&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;logged&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;folders&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;k&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;qhgc57n3nj7qbd_h2xpd1cm0000gn&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ruby&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;20130720093657.99813&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;log&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Last&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;log&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;lines&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;In&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509stctx_set_flags&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;520&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;warning&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X509_STORE_CTX_set_flags&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deprecated&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;declared&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;at&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;usr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;openssl&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x509_vfy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;h&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;464&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;In&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509stctx_set_purpose&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;532&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;warning&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X509_STORE_CTX_set_purpose&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deprecated&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;declared&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;at&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;usr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;openssl&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x509_vfy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;h&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;460&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;In&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509stctx_set_trust&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;544&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;warning&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X509_STORE_CTX_set_trust&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deprecated&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;declared&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;at&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;usr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;openssl&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x509_vfy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;h&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;461&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;In&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509stctx_set_time&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ossl_x509store&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;561&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;warning&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;‘&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;X509_STORE_CTX_set_time&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deprecated&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;declared&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;at&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;usr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;openssl&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x509_vfy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;h&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;466&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;linking&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;shared&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;openssl&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bundle&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;make&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;***&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;build&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ext&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Error&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;いろいろ調べた結果、brew で readline と openssl をインストールして、そのインストール先のディレクトリをrbenvに渡してやればいいらしい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Jenkinsで依存するプロジェクトのビルドパラメータを引き継ぎたい</title>
				<link>https://journal.lampetty.net/posts/jenkins-parameterized-build-trigger-plugin/</link>
				<pubDate>Sat, 13 Jul 2013 14:03:08 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/jenkins-parameterized-build-trigger-plugin/</guid>
				<description>&lt;p&gt;結論から言うと「&lt;a href=&#34;https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin&#34;&gt;Parameterized Trigger Plugin&lt;/a&gt;使え」&lt;/p&gt;&#xA;&lt;p&gt;Jenkinsには「ビルドのパラメータ化」という便利な機能がある。例えば任意の文字列を渡すことができるので、ビルドするGitリポジトリのブランチ名を指定したりする。この機能はとても便利なんだけど、プロジェクトBがプロジェクトAに依存していて、Aと同じブランチ名をビルドしたい時にどうすればいいのかわからなかった。(JavaでWebアプリ開発する時はたいてい hoge-core というDB回りのクラスを集めたものと hoge-web っていうWebアプリケーション回りのプロジェクトにわけたりするので)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Markdownをアメブロ向けのHTMLに変換するヤツ作った</title>
				<link>https://journal.lampetty.net/posts/md2ameblo/</link>
				<pubDate>Sat, 06 Jul 2013 01:41:55 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/md2ameblo/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://ameblo.jp/principia-ca/&#34;&gt;会社のエンジニアブログ&lt;/a&gt;を書いていて、あまりにもアメブロのエディタがしんどかったので&lt;a href=&#34;https://github.com/oinume/md2ameblo&#34;&gt;カッとなって作ってしまった&lt;/a&gt;。これでエンジニアブログ書くのが捗ると思う。heroku上のサンプルは&lt;a href=&#34;http://md2ameblo.herokuapp.com/&#34;&gt;ここ&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;使った技術&#34;&gt;使った技術&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Python 2.7&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://misaka.61924.nl/&#34;&gt;misaka&lt;/a&gt; - MarkdownをHTMLに変換するライブラリ&lt;/li&gt;&#xA;&lt;li&gt;heroku&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;herokuはGitリポジトリにpushするだけでディプロイ出来て便利だなーと思った。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacでOracle JDKをインストールする</title>
				<link>https://journal.lampetty.net/posts/install-oracle-jdk-on-mac/</link>
				<pubDate>Sun, 23 Jun 2013 16:57:27 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/install-oracle-jdk-on-mac/</guid>
				<description>&lt;p&gt;最近MacにJDKをインストールすることが多いんだけど(脆弱性がよく見つかる)、インストールされるディレクトリがどこだか覚えられらなくなってきたのメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JRebelを使ってJava開発時のサーバの再起動をなくす</title>
				<link>https://journal.lampetty.net/posts/stop-restarting-with-jrebel/</link>
				<pubDate>Sat, 08 Jun 2013 14:43:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/stop-restarting-with-jrebel/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://zeroturnaround.com/software/jrebel/&#34;&gt;JRebel&lt;/a&gt;というソフトウェアを使うと、JavaでWebアプリケーションを開発する時に、ソースの修正→サーバ再起動 or 再ディプロイ がいらなくなるよーという話。&lt;/p&gt;&#xA;&lt;h2 id=&#34;ライセンス&#34;&gt;ライセンス&lt;/h2&gt;&#xA;&lt;p&gt;商用で使う場合はちゃんとライセンスを購入する必要があるけど、Socialという謎ライセンスだとフリーで使えるみたい。(ちゃんと理解してない)&lt;/p&gt;</description>
			</item>
			<item>
				<title>はてなブログに移転</title>
				<link>https://journal.lampetty.net/posts/moved-to-hatenablog/</link>
				<pubDate>Sat, 08 Jun 2013 02:44:21 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/moved-to-hatenablog/</guid>
				<description>&lt;p&gt;Markdownでブログを書きたくなったのでWordPressから移転してみた。過去のエントリは面倒なので移行しない。今のところ以下の点がはてなブログのいいところだなーと思っている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>はてなブログに移転</title>
				<link>https://journal.lampetty.net/posts/moved-to-hatena-blog-20130607/</link>
				<pubDate>Fri, 07 Jun 2013 17:06:31 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/moved-to-hatena-blog-20130607/</guid>
				<description>&lt;p&gt;移転しました。&lt;a href=&#34;http://oinume.hatenablog.com/&#34;&gt;http://oinume.hatenablog.com/&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Jettyでシンボリックリンクを有効にする</title>
				<link>https://journal.lampetty.net/posts/enable-jetty-symlink/</link>
				<pubDate>Fri, 07 Jun 2013 16:27:24 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/enable-jetty-symlink/</guid>
				<description>&lt;p&gt;最近Jettyと戯れている。Tomcatに比べてちょっと扱いづらいところが可愛らしい。&lt;/p&gt;&#xA;&lt;p&gt;Jettyはセキュリティ的な理由でAlias(Symbolic Link)をデフォルトでは無効にしている。でもsymlink使いたいんですよあたしゃ。というわけで、調べた結果web.xmlに下記を追加するのが一番楽そうなのでこれを設定したらいけた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>SpringMVC &#43; Bean Validation &#43; FreeMarkerでFormのバリデーション</title>
				<link>https://journal.lampetty.net/posts/wp/548/</link>
				<pubDate>Fri, 07 Jun 2013 03:06:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/548/</guid>
				<description>&lt;p&gt;最近Javaの面倒臭さに耐性ができてきて何も感じなくなってきた oinume です。こんにちは。今日はSpringMVC + JSR-303 Bean Validation + FreeMarkerでいわゆるフォームのバリデーション＋エラーメッセージ表示を試してみたので、そのまとめをば。サンプルコードは&lt;a href=&#34;https://github.com/oinume/lampetty-samples&#34;&gt;GitHub&lt;/a&gt;にあげてある。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pythonでローカル変数の値をprintfデバッグしたい</title>
				<link>https://journal.lampetty.net/posts/wp/547/</link>
				<pubDate>Wed, 05 Jun 2013 14:06:54 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/547/</guid>
				<description>&lt;p&gt;a = 1&lt;/p&gt;&#xA;&lt;p&gt;b = 2&lt;/p&gt;&#xA;&lt;p&gt;print(&amp;quot;locals = &amp;quot; + str(locals()))&lt;/p&gt;&#xA;&lt;p&gt;こんな風に書くとローカル変数の値が簡単にデバッグできるかなーと思った。&lt;/p&gt;&#xA;&lt;p&gt;locals = {&#39;a&#39;: 1, &#39;b&#39;: 2, &#39;__builtins__&#39;: &amp;lt;module &#39;__builtin__&#39; (built-in)&amp;gt;, &#39;__file__&#39;: &#39;/Users/oinuma_kazuhiro/Dropbox/code/python/locals.py&#39;, &#39;__package__&#39;: None, &#39;__name__&#39;: &#39;__main__&#39;, &#39;__doc__&#39;: None}&lt;/p&gt;&#xA;&lt;p&gt;ただ、余計なものまで表示されてしまうので、特定の変数だけprintしたい場合は下記のようにする。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Jettyでシンボリックリンクを有効にする</title>
				<link>https://journal.lampetty.net/posts/wp/545/</link>
				<pubDate>Fri, 31 May 2013 14:05:11 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/545/</guid>
				<description>&lt;p&gt;最近Jettyと戯れている。Tomcatに比べてちょっと扱いづらいところが可愛らしい。&lt;/p&gt;&#xA;&lt;p&gt;Jettyはセキュリティ的な理由でAlias(Symbolic Link)をデフォルトでは無効にしている。でもsymlink使いたいんですよあたしゃ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sphinxでソフトウェアのドキュメントを書いた時によく使う記法</title>
				<link>https://journal.lampetty.net/posts/wp/521/</link>
				<pubDate>Sun, 21 Apr 2013 13:04:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/521/</guid>
				<description>&lt;p&gt;最近Sphinxでよくドキュメントを書くのでメモ。やっぱりある程度巨大なソフトウェアのドキュメントを書く時はWikiじゃなくてSphinxの方が良い気がする。&lt;/p&gt;</description>
			</item>
			<item>
				<title>tomahawk 0.6.0 リリース</title>
				<link>https://journal.lampetty.net/posts/wp/535/</link>
				<pubDate>Sat, 20 Apr 2013 17:04:48 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/535/</guid>
				<description>&lt;p&gt;[permalink id=531]前回のエントリ[/permalink]からちょいと時間が経ったけど、&lt;a href=&#34;https://pypi.python.org/pypi/tomahawk&#34;&gt;tomahawk 0.6.0をリリース&lt;/a&gt;！&lt;/p&gt;&#xA;&lt;p&gt;新機能は前回のエントリの通りなんだけど、設定ファイルについては $HOME/.tomahawk.conf の場所に固定ではなく、 -C/--conf オプションで指定できるようにした。これで柔軟に設定ファイルを変えて tomahawk の挙動を変えることができるっす。&lt;/p&gt;</description>
			</item>
			<item>
				<title>tomahawk 0.6.0-rc1リリース</title>
				<link>https://journal.lampetty.net/posts/wp/531/</link>
				<pubDate>Sat, 06 Apr 2013 14:04:34 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/531/</guid>
				<description>&lt;p&gt;すごい久々に&lt;a href=&#34;https://github.com/oinume/tomahawk&#34;&gt;tomahawk&lt;/a&gt;を更新した。(&lt;a href=&#34;https://github.com/oinume/tomahawk/tree/0.6.0-rc1&#34;&gt;0.6.0-rc1&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;h3 id=&#34;インストール&#34;&gt;インストール&lt;/h3&gt;&#xA;&lt;p&gt;まだ正式リリース版ではなくpypiには上げていないため、GitHubから直接インストールする感じで。&lt;/p&gt;&#xA;&lt;p&gt;$ pip install &lt;a href=&#34;https://github.com/oinume/tomahawk/zipball/0.6.0-rc1&#34;&gt;https://github.com/oinume/tomahawk/zipball/0.6.0-rc1&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;新機能&#34;&gt;新機能&lt;/h3&gt;&#xA;&lt;h4 id=&#34;-v--verify-output&#34;&gt;-V/--verify-output&lt;/h4&gt;&#xA;&lt;p&gt;リモートホストで実行したコマンドの出力が全てのホストで同じかどうかを検証するオプション。「なんか1台だけ設定が違くね？」みたいなのが簡単に検証できる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JRuby &#43; DBI &#43; JDBC &#43; MySQL JDBC DriverでMySQLに接続する</title>
				<link>https://journal.lampetty.net/posts/wp/529/</link>
				<pubDate>Thu, 04 Apr 2013 10:04:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/529/</guid>
				<description>&lt;p&gt;まず、DBIなどのライブラリをインストールする。&lt;/p&gt;&#xA;&lt;p&gt;$ jruby -S gem install dbi dbd-jdbc jdbc-mysql&lt;/p&gt;&#xA;&lt;p&gt;こんなスクリプト書いてみる。&lt;/p&gt;&#xA;&lt;p&gt;require &#39;dbi&#39;&lt;/p&gt;&#xA;&lt;p&gt;require &#39;dbd/Jdbc&#39;&lt;/p&gt;&#xA;&lt;p&gt;require &#39;jdbc/mysql&#39;&lt;/p&gt;&#xA;&lt;p&gt;Jdbc::MySQL.load_driver&lt;/p&gt;&#xA;&lt;p&gt;DBI.connect(&lt;/p&gt;&#xA;&lt;p&gt;&#39;DBI:Jdbc:mysql://localhost/test&#39;,&lt;/p&gt;&#xA;&lt;p&gt;&#39;root&#39;, &#39;test&#39;,&lt;/p&gt;&#xA;&lt;p&gt;&#39;driver&#39; =&amp;gt; &#39;com.mysql.jdbc.Driver&#39;&lt;/p&gt;&#xA;&lt;p&gt;) do |dbh|&lt;/p&gt;&#xA;&lt;p&gt;puts &amp;quot;Connected&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;end&lt;/p&gt;&#xA;&lt;p&gt;5行目の &amp;quot;Jdbc::MySQL.load_driver&amp;quot; がないと怒られるので注意。&lt;/p&gt;</description>
			</item>
			<item>
				<title>GitHubをMavenリポジトリにしよう</title>
				<link>https://journal.lampetty.net/posts/wp/527/</link>
				<pubDate>Wed, 03 Apr 2013 04:04:16 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/527/</guid>
				<description>&lt;p&gt;Javaには&lt;a href=&#34;http://maven.apache.org/&#34;&gt;Maven&lt;/a&gt;っていう依存ライブラリの管理を行えるすごい便利なツールがあるんだ。RubyでいうところのRubyGems みたいなもんだよ。でもさぁ、RubyGems みたいに自分で作ったライブラリを簡単にアップロードするサーバがないんだよ。えっ、&lt;a href=&#34;http://www.sonatype.org/nexus/&#34;&gt;Nexus&lt;/a&gt;入れろって？そんなのイチイチ用意してらんないよね。えっ、WebDAV？ムリムリー。本当Javaってなんでもかんでも面倒くさいよね。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JVMのオススメ起動オプション</title>
				<link>https://journal.lampetty.net/posts/wp/524/</link>
				<pubDate>Sat, 23 Mar 2013 04:03:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/524/</guid>
				<description>&lt;p&gt;なんか秘伝のタレみたいになってきたので後世のために共有。&lt;/p&gt;&#xA;&lt;h3 id=&#34;前提&#34;&gt;前提&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Webアプリケーションを想定&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;TomcatなりJettyなりがListenするポートは外部からはアクセスできない&lt;/p&gt;</description>
			</item>
			<item>
				<title>Springのabstractを使ってbean定義をDRYにしよう</title>
				<link>https://journal.lampetty.net/posts/wp/523/</link>
				<pubDate>Sun, 17 Mar 2013 01:03:47 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/523/</guid>
				<description>&lt;p&gt;JavaのDIコンテナって言ったらSpringだよね。ということでSpringのTIPS。bean定義する時にabstractとparent属性を使うとbean定義の共通化が出来てDRYになりますよってことです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLでデータベースをコピーする</title>
				<link>https://journal.lampetty.net/posts/wp/520/</link>
				<pubDate>Thu, 21 Feb 2013 12:02:19 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/520/</guid>
				<description>&lt;p&gt;mysql -u -p -e &#39;create database destination&#39;&lt;/p&gt;&#xA;&lt;p&gt;mysqldump -u -p source | mysql -uabc -pxyz destination&lt;/p&gt;&#xA;&lt;p&gt;mysql -u -p -e &#39;drop database source&#39;&lt;/p&gt;&#xA;&lt;p&gt;良い子は source と destination 逆にしたりしないようにね。&lt;/p&gt;&#xA;&lt;p&gt;[tmkm-amazon]4774142948[/tmkm-amazon]&lt;/p&gt;</description>
			</item>
			<item>
				<title>JVMのGCのログを-XX:&#43;PrintGCDateStampsでhuman readableにする</title>
				<link>https://journal.lampetty.net/posts/wp/515/</link>
				<pubDate>Sun, 20 Jan 2013 23:01:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/515/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/blog_en/index.php/archives/9&#34;&gt;English version&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;JVMでGCのログ出すじゃないですか。んで、その時↓みたいに -XX:+PrintGCTimeStamps っていうオプションを指定するじゃないですか。&lt;/p&gt;&#xA;&lt;p&gt;TODAY=`date &amp;quot;+%Y%m%d-%H%M%S&amp;quot;`&lt;/p&gt;&#xA;&lt;p&gt;JAVA_OPTS=&amp;quot;-server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=256m -XX:MaxPermSize=256m \&lt;/p&gt;&#xA;&lt;p&gt;-XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseParNewGC \&lt;/p&gt;&#xA;&lt;p&gt;-XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=32 -XX:TargetSurvivorRatio=85 \&lt;/p&gt;&#xA;&lt;p&gt;-verbose:gc -Xloggc:/usr/local/tomcat/logs/gc.log.$TODAY \&lt;/p&gt;</description>
			</item>
			<item>
				<title>Munin 2.0のmysqlプラグインで&#34;Couldn&#39;t instantiate IPC::ShareLite: Permission denied&#34;とエラーになったらSELinuxをdisabledにしよう</title>
				<link>https://journal.lampetty.net/posts/wp/513/</link>
				<pubDate>Mon, 14 Jan 2013 15:01:10 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/513/</guid>
				<description>&lt;p&gt;タイトル通りなのだけど、ググっても全く出て来なかったので。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;CentOS 6.3&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Munin 2.0.9&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;が環境。/usr/share/munin/plugins/mysql_ を使ってグラフを表示させたかったのだけど、munin-nodeに対して&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressでjQueryの読み込みを速くする</title>
				<link>https://journal.lampetty.net/posts/wp/508/</link>
				<pubDate>Mon, 14 Jan 2013 05:01:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/508/</guid>
				<description>&lt;p&gt;タイトルは若干釣り。読み込みを速くするというか、キャッシュを使うというか。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://wordpress.org/extend/plugins/use-google-libraries/&#34; title=&#34;Use Google Libraries&#34;&gt;Use Google Libraries&lt;/a&gt;というプラグインをインストールして、&lt;a href=&#34;https://developers.google.com/speed/libraries/&#34;&gt;Google AJAX Libraries CDN&lt;/a&gt;を使いましょうという話。あなたのブログを閲覧している人がよく見る他のサイトでもGoogleからjQueryをロードするようになっていれば、効果はあるはず。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Emacs &#43; ruby-lint &#43; flymakeでRubyのソースを静的チェック</title>
				<link>https://journal.lampetty.net/posts/wp/504/</link>
				<pubDate>Sat, 12 Jan 2013 13:01:53 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/504/</guid>
				<description>&lt;p&gt;以前[permalink id=499]ruby-lintでRubyのソースを静的チェック[/permalink]で紹介したように、ruby-lintを使えばRubyのソースを静的にチェックすることができるので、これを使ってRubyのソースを保存するときにflymakeするEmacsの設定を書いてみた。（前提として、ruby-lintをインストールしておく必要がある。&amp;quot;gem install ruby-lint&amp;quot;でOK）&lt;/p&gt;</description>
			</item>
			<item>
				<title>2012年を振り返って</title>
				<link>https://journal.lampetty.net/posts/wp/501/</link>
				<pubDate>Mon, 31 Dec 2012 14:12:32 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/501/</guid>
				<description>&lt;p&gt;もうすぐ2012年も終わりだなーと感慨深くなってきたので振り返りエントリをば。&lt;/p&gt;&#xA;&lt;p&gt;全体的にはやっぱり仕事が忙しくって、あまり何かを深く追求したりできなかったかなぁと思う。実は裏で勉強計画(MySQLのソース読むとかelisp書けるようになったる！とか)を立てていたんだけど、ほとんど何もできていないｗ&lt;/p&gt;</description>
			</item>
			<item>
				<title>ruby-lintでRubyのソースを静的チェック</title>
				<link>https://journal.lampetty.net/posts/wp/499/</link>
				<pubDate>Sat, 22 Dec 2012 17:12:44 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/499/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/blog_en/index.php/archives/4&#34;&gt;An English version of the post&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;自分の知る限り、RubyってPythonでいうpylintやpyflakesみたいなSyntaxh Checkerってなかったと思うんだけど、最近とある外人の人が作っている&lt;a href=&#34;https://github.com/YorickPeterse/ruby-lint&#34; title=&#34;ruby-lint&#34;&gt;ruby-lint&lt;/a&gt;というものを見つけたの軽く使ってみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>jboss-loggingとlogbackを組み合わせて使いたい</title>
				<link>https://journal.lampetty.net/posts/wp/496/</link>
				<pubDate>Wed, 19 Dec 2012 10:12:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/496/</guid>
				<description>&lt;p&gt;「jboss-loggingとlogbackを使いたい」時には&lt;/p&gt;&#xA;&lt;p&gt;-Dorg.jboss.logging.provider=slf4&lt;/p&gt;&#xA;&lt;p&gt;を指定するとslf4j + logbackを使ってくれる。詳細は&lt;a href=&#34;https://github.com/jboss-logging/jboss-logging/blob/master/src/main/java/org/jboss/logging/LoggerProviders.java&#34;&gt;LoggerProviders.java&lt;/a&gt;を参照。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLでbulk insertの途中でエラーになった場合の挙動</title>
				<link>https://journal.lampetty.net/posts/wp/495/</link>
				<pubDate>Mon, 17 Dec 2012 10:12:25 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/495/</guid>
				<description>&lt;p&gt;MySQLで&lt;/p&gt;&#xA;&lt;p&gt;insert into ... values (1, &#39;x&#39;), (2, &#39;y&#39;);&lt;/p&gt;&#xA;&lt;p&gt;のようにbulk insertした時に、途中でエラーになった場合にどういう挙動をするかを調べてみた。普通に考えれば「全てのレコードがinsertされてない」になるはずだと思ったんだけど一応。試したMySQLのバージョンは5.5.28。&lt;/p&gt;</description>
			</item>
			<item>
				<title>commons-langのEqualsBuilderの速度</title>
				<link>https://journal.lampetty.net/posts/wp/493/</link>
				<pubDate>Wed, 12 Dec 2012 15:12:34 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/493/</guid>
				<description>&lt;p&gt;Javaの有名なライブラリで&lt;a href=&#34;http://commons.apache.org/lang/&#34;&gt;commons-lang&lt;/a&gt;というのがある。この中に&lt;a href=&#34;http://commons.apache.org/lang/api-3.1/org/apache/commons/lang3/builder/EqualsBuilder.html&#34;&gt;EqualsBuilder&lt;/a&gt;というequals()メソッドを簡単に実装するための便利クラスがある(HashCodeBuilder, ToStringBuilderというクラスもある)。使い方はこんな感じ。&lt;/p&gt;&#xA;&lt;p&gt;@Override&lt;/p&gt;&#xA;&lt;p&gt;public boolean equals(Object o) {&lt;/p&gt;&#xA;&lt;p&gt;if (this == o) {&lt;/p&gt;&#xA;&lt;p&gt;return true;&lt;/p&gt;&#xA;&lt;p&gt;} else if (!(o instanceof MyClass)) {&lt;/p&gt;&#xA;&lt;p&gt;return false;&lt;/p&gt;&#xA;&lt;p&gt;}&lt;/p&gt;&#xA;&lt;p&gt;MyClass other = (MyClass)o;&lt;/p&gt;</description>
			</item>
			<item>
				<title>FreeMarkerで余計な改行が入らないようにする</title>
				<link>https://journal.lampetty.net/posts/wp/489/</link>
				<pubDate>Sun, 18 Nov 2012 00:11:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/489/</guid>
				<description>&lt;p&gt;Javaのテンプレートエンジンとして&lt;a href=&#34;http://freemarker.sourceforge.net/&#34; title=&#34;FreeMarker&#34;&gt;FreeMarker&lt;/a&gt;がある。テンプレートエンジンって割とみたいに書くことで余計な改行が入らないようになるじゃないですか。このFreeMarkerではどうするの？っていうのを同僚の人に教えてもらったので、ググれるようにまとめておく。&lt;/p&gt;&#xA;&lt;h3 id=&#34;はじめに&#34;&gt;はじめに&lt;/h3&gt;&#xA;&lt;p&gt;やりたかったことは、DBのテーブル情報から下記のようなクラスを生成するためのテンプレートで(1)と(2)のところに改行を入れたくなかった、ということ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>PyramidでJjinja2をテンプレートエンジンとして使う</title>
				<link>https://journal.lampetty.net/posts/wp/485/</link>
				<pubDate>Sat, 20 Oct 2012 16:10:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/485/</guid>
				<description>&lt;p&gt;Pythonネタ。最近&lt;a href=&#34;http://pyramid.readthedocs.org/en/latest/&#34; title=&#34;Pyramid&#34;&gt;Pyramid&lt;/a&gt;というWebアプリケーションフレームワークを使い始めてる。&lt;/p&gt;&#xA;&lt;p&gt;Pyramidはデフォルトで &lt;a href=&#34;http://chameleon.repoze.org/docs/latest/index.html&#34; title=&#34;Chameleon&#34;&gt;Chameleon&lt;/a&gt; と &lt;a href=&#34;http://www.makotemplates.org/&#34; title=&#34;Mako&#34;&gt;Mako&lt;/a&gt; というテンプレートエンジンが使えるが、自分は &lt;a href=&#34;http://jinja.pocoo.org/docs/&#34; title=&#34;Jinja2&#34;&gt;Jinja2&lt;/a&gt; 派なので、&lt;a href=&#34;http://docs.pylonsproject.org/projects/pyramid_jinja2/en/latest/&#34; title=&#34;pyramid_jinja2&#34;&gt;pyramid_jinja2&lt;/a&gt;というモジュールをインストールする。&lt;/p&gt;&#xA;&lt;h3 id=&#34;インストール&#34;&gt;インストール&lt;/h3&gt;&#xA;&lt;p&gt;pip install pyramid_jinja2&lt;/p&gt;&#xA;&lt;p&gt;するだけでインストール完了。&lt;/p&gt;</description>
			</item>
			<item>
				<title>IntelliJ IDEAでヒープサイズを変える</title>
				<link>https://journal.lampetty.net/posts/wp/481/</link>
				<pubDate>Thu, 11 Oct 2012 17:10:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/481/</guid>
				<description>&lt;p&gt;Eclipseにいい加減うんざりしてきたので、評判のいいIntelliJ IDEAを試し中。とりあえず最初にやることと言ったら、当然起動時のヒープオプションの変更(IDEA自体もJavaでできているので)。&lt;/p&gt;</description>
			</item>
			<item>
				<title>homebrewでMacに複数バージョンのrubyをインストールする</title>
				<link>https://journal.lampetty.net/posts/wp/475/</link>
				<pubDate>Thu, 26 Jul 2012 16:07:51 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/475/</guid>
				<description>&lt;p&gt;よく rvm や rbenv を使ってMacに複数バージョンのrubyをインストールする例を見るんですが、「それhomebrewでもできるよ」って思ったのでメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL 5.5をMac OSXにインストールする</title>
				<link>https://journal.lampetty.net/posts/wp/470/</link>
				<pubDate>Sat, 21 Jul 2012 13:07:49 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/470/</guid>
				<description>&lt;p&gt;公式のバイナリを落としてインストールするのが一番楽かなーと思っている。自動起動もできるし。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://dev.mysql.com/downloads/mysql/&#34;&gt;MySQL :: Download MySQL Community Server&lt;/a&gt;からMac OS X ver. 10.6 (x86, 64-bit), DMG Archiveをダウンロード。DMGを開いて mysql-5.5.25a-osx10.6-x86_64.pkg をクリックしてインストール。/usr/local/mysql にインストールされる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLをインストールした後に設定する項目(5.5編)</title>
				<link>https://journal.lampetty.net/posts/wp/471/</link>
				<pubDate>Sat, 21 Jul 2012 12:07:55 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/471/</guid>
				<description>&lt;p&gt;[permalink id=174]このエントリ[/permalink]のMySQL 5.5版。大体本家のドキュメントの&lt;a href=&#34;http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html&#34;&gt;ここ&lt;/a&gt;とかにちゃんと説明項目が書いてあるので、詳しくはそっちを読むのがいいかと。&lt;/p&gt;&#xA;&lt;p&gt;user = mysql&lt;/p&gt;&#xA;&lt;p&gt;pid-file = /var/run/mysql/mysqld.pid&lt;/p&gt;&#xA;&lt;p&gt;socket = /var/run/mysql/mysqld.sock&lt;/p&gt;&#xA;&lt;p&gt;port = 3306&lt;/p&gt;&#xA;&lt;p&gt;basedir = /usr&lt;/p&gt;&#xA;&lt;p&gt;datadir = /var/lib/mysql&lt;/p&gt;&#xA;&lt;p&gt;tmpdir = /tmp&lt;/p&gt;</description>
			</item>
			<item>
				<title>プログラマーの開発速度</title>
				<link>https://journal.lampetty.net/posts/wp/469/</link>
				<pubDate>Sun, 10 Jun 2012 14:06:06 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/469/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://blog.livedoor.jp/lalha/archives/50261226.html&#34;&gt;小野和俊のブログ:プログラマーの開発速度は「はまる」時間の長さで決まる&lt;/a&gt;を読んで「本当にそうだよなぁ」と感銘を受けた。はまると平気で丸一日潰れたりするし。&lt;/p&gt;&#xA;&lt;p&gt;でで、この記事には書いてないけど、特にネットワークを介すアプリケーションを作っている場合、優秀な人は「あれ、おかしいな」と思った時にちゃんと通信内容をダンプして問題を特定することのが早いと思う。ようはプロトコルをちゃんと理解して、適切にデバッグできる人ははまりにくい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pythonで標準出力をキャプチャする</title>
				<link>https://journal.lampetty.net/posts/wp/465/</link>
				<pubDate>Sun, 20 May 2012 08:05:57 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/465/</guid>
				<description>&lt;p&gt;Perlだと&lt;a href=&#34;http://search.cpan.org/~dagolden/Capture-Tiny/lib/Capture/Tiny.pm&#34;&gt;Capture::Tiny&lt;/a&gt;というCPANモジュールがあるのだけど、Pythonだとやり方がわからなかったので調べてみたところ、&lt;a href=&#34;http://stackoverflow.com/questions/5136611/capture-stdout-from-a-script-in-python&#34;&gt;Capture stdout from a script in Python - Stack Overflow&lt;/a&gt;で色々とやり方が紹介されている。&lt;/p&gt;&#xA;&lt;p&gt;普通に標準出力の内容を文字列として取りたいだけなら下記でいいんじゃないかと思われる。Python詳しくないのでもっとスマートな方法があれば教えてほしいです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WikiならConfluenceがオススメ</title>
				<link>https://journal.lampetty.net/posts/wp/463/</link>
				<pubDate>Fri, 04 May 2012 16:05:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/463/</guid>
				<description>&lt;p&gt;※自分はAtlassianの回し者ではありません&lt;/p&gt;&#xA;&lt;p&gt;会社で使っている&lt;a href=&#34;http://www.atlassian.com/ja/software/confluence/overview&#34;&gt;Confluence&lt;/a&gt;というエンタープライズWikiが気に入っている。Wikiと言えば今まで&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;MediaWiki&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;PukiWiki&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;FreeStyleWiki&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;RedmineのWiki&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;を使ってきたんだけど、機能的なバランスの良さを考えるとこのConfluenceに軍配が上がると思っている。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Shellで絶対パスを取得する</title>
				<link>https://journal.lampetty.net/posts/wp/461/</link>
				<pubDate>Thu, 03 May 2012 02:05:51 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/461/</guid>
				<description>&lt;p&gt;よく忘れてしまうのでメモ。例えば実行するスクリプトの絶対パスを取得する場合。&lt;/p&gt;&#xA;&lt;p&gt;#!/bin/sh&lt;/p&gt;&#xA;&lt;p&gt;DIR=$(cd $(dirname &amp;quot;$0&amp;quot;) &amp;amp;&amp;amp; pwd)&lt;/p&gt;&#xA;&lt;p&gt;echo $DIR&lt;/p&gt;&#xA;&lt;p&gt;$ sh ~/Dropbox/code/sh/abspath.sh&lt;/p&gt;&#xA;&lt;p&gt;Users/kazuhiro/Dropbox/code/sh&lt;/p&gt;</description>
			</item>
			<item>
				<title>自宅サーバのGitリポジトリをbitbucketに移行</title>
				<link>https://journal.lampetty.net/posts/wp/462/</link>
				<pubDate>Thu, 03 May 2012 02:05:24 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/462/</guid>
				<description>&lt;p&gt;サーバの設定ファイルや個人のdotfileを格納していた自宅サーバのGitリポジトリ、よくよく考えたらbitbucketって無料でプライベートリポジトリ作れたよなぁって思って移行してみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>複数バージョンのPythonでテストしてくれるtoxが便利すぎる</title>
				<link>https://journal.lampetty.net/posts/wp/457/</link>
				<pubDate>Sun, 15 Apr 2012 05:04:18 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/457/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://readthedocs.org/docs/tomahawk/en/latest/&#34;&gt;tomahawk&lt;/a&gt;はPython 2.4/2.5/2.6/2.7 対応を謳っている。ただ、テストするたびに virtualenv で切り替え→テスト実行が非常に手間だった。そんなところに&lt;a href=&#34;http://www.slideshare.net/aodag/bpstudy54-python3&#34;&gt;このスライド&lt;/a&gt;で&lt;a href=&#34;http://tox.readthedocs.org/en/latest/&#34;&gt;tox&lt;/a&gt;という複数のバージョンのPythonでテストできるツールがあることを知った。実際使ってみたところ、今までやっていた作業が完全に自動化されてウハウハになったので紹介したい。&lt;/p&gt;&#xA;&lt;h3 id=&#34;toxの実行時の流れ&#34;&gt;toxの実行時の流れ&lt;/h3&gt;&#xA;&lt;p&gt;toxはvirtualenvを使って環境を作っては切り替えてくれる。実行時のログを見た限り、流れとしては下記のようになっているようだ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>pythonbrewで新しいPythonをインストールできるようにする</title>
				<link>https://journal.lampetty.net/posts/wp/456/</link>
				<pubDate>Sat, 14 Apr 2012 16:04:25 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/456/</guid>
				<description>&lt;p&gt;Python-2.7.3がリリースされたので早速入れようと思ったら&lt;/p&gt;&#xA;&lt;p&gt;$ pythonbrew install 2.7.3&lt;/p&gt;&#xA;&lt;p&gt;ERROR: Unknown python version: `Python-2.7.3`&lt;/p&gt;&#xA;&lt;p&gt;と言われて残念な気持ちになったので、どうすればpythonbrewで新しいPythonがインストールできるか調べてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Shellでset -uした時の引数の取り扱い</title>
				<link>https://journal.lampetty.net/posts/wp/455/</link>
				<pubDate>Sat, 07 Apr 2012 22:04:10 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/455/</guid>
				<description>&lt;p&gt;#!/bin/sh&lt;/p&gt;&#xA;&lt;p&gt;DIR=$1&lt;/p&gt;&#xA;&lt;p&gt;rm -rf $DIR/&lt;/p&gt;&#xA;&lt;p&gt;なんてやると$1がなかった時に / が消されてしまうので非常に危険。こういう場合は set -u して、未定義の変数があればエラーにすることが推奨される。&lt;/p&gt;</description>
			</item>
			<item>
				<title>amazon.comでKindle版オライリー本を買うと$4.99でDRMフリーなバージョンが買える</title>
				<link>https://journal.lampetty.net/posts/wp/452/</link>
				<pubDate>Sat, 24 Mar 2012 11:03:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/452/</guid>
				<description>&lt;p&gt;先日amazon.comでKindle版の[tmkm-amazon]1449306403[/tmkm-amazon]を買ったら、その本の中に&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Upgrade this ebook today for $4.99 at oreilly.com and get access to additional DRM-free formats including PDF and EPUB, along with free lifetime updates.&lt;/p&gt;</description>
			</item>
			<item>
				<title>CentOS 6.x上でtomahawk-0.4.x使ってsudoつきのコマンドが失敗する場合</title>
				<link>https://journal.lampetty.net/posts/wp/451/</link>
				<pubDate>Sun, 18 Mar 2012 13:03:11 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/451/</guid>
				<description>&lt;p&gt;CentOS 6.2で sudo 付きのコマンドを送る場合は&lt;/p&gt;&#xA;&lt;p&gt;tomahawk -o=-t -l -h localhost &#39;sudo uptime&#39;&lt;/p&gt;&#xA;&lt;p&gt;のように、-o=-t をつけます。これでssh時に pseudo-tty が割り当てられる。ちなみに今開発中の0.5系はデフォルトで -o=-t がつく状態になっています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Firefoxで開いているタブのタイトル/リンクの一覧を生成するアドオン</title>
				<link>https://journal.lampetty.net/posts/wp/449/</link>
				<pubDate>Sat, 17 Mar 2012 16:03:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/449/</guid>
				<description>&lt;p&gt;Firefoxに&lt;a href=&#34;https://addons.mozilla.org/en-US/firefox/addon/copy-urls-expert/&#34; title=&#34;Copy Urls Eexpert&#34;&gt;Copy Urls Eexpert&lt;/a&gt;というアドオンがあって、最近これを便利に使っているので紹介。&lt;/p&gt;&#xA;&lt;p&gt;どういうアドオンかというと、「ウィンドウ内で開いているタブの一覧から、タイトルとURLをリスト化してくれる」というもの。リストは下記のようになる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linuxでディスクが壊れた場合のデータ復旧方法</title>
				<link>https://journal.lampetty.net/posts/wp/447/</link>
				<pubDate>Wed, 29 Feb 2012 07:02:30 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/447/</guid>
				<description>&lt;p&gt;先日自宅サーバのディスク(SSD)がお亡くなりになって、「あーやっべー、データ全部バックアップしてないわー」ということが発覚し途方に暮れていたんだけど、グーグル先生に問い合わせたところ dd_rescue なるコマンドがあり、これを使ったらほぼ完全にデータが復旧できましたとさ！&lt;/p&gt;</description>
			</item>
			<item>
				<title>iPhoneのホームボタンを延命するためのAssistiveTouch</title>
				<link>https://journal.lampetty.net/posts/wp/446/</link>
				<pubDate>Sat, 11 Feb 2012 02:02:34 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/446/</guid>
				<description>&lt;p&gt;iPhoneのホームボタンって酷使されるもので、よく「ホームボタンがきかなくなった」などの症状を訴える人が多い。そんな人達に朗報なのが、このAssistiveTouchという設定。設定→一般→アクセシビリティ→(身体機能サポート)AssistiveTouchをオンにすると、&lt;/p&gt;</description>
			</item>
			<item>
				<title>Shellでset -e の状態を解除するにはset &#43;e</title>
				<link>https://journal.lampetty.net/posts/wp/444/</link>
				<pubDate>Sun, 05 Feb 2012 12:02:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/444/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://d.hatena.ne.jp/rx7/20101226/p1&#34;&gt;&amp;quot;set -e&amp;quot;: 実行コマンドが0以外の終了コードの場合、シェルスクリプトを終了する - RX-7乗りの適当な日々&lt;/a&gt;にある通り、Shellスクリプトで set -e すると実行結果が0以外の場合、勝手にスクリプトが終了する。で、この挙動をスクリプトの途中で元に戻したい(＝エラーにしたくない)場合は以下のように set +e すればいい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>python-mode &#43; auto-complete-mode &#43; ac-pythonでPythonのコード補完</title>
				<link>https://journal.lampetty.net/posts/wp/443/</link>
				<pubDate>Wed, 18 Jan 2012 15:01:48 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/443/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://d.hatena.ne.jp/CortYuming/20111224/p1&#34; title=&#34;Pythonの補完をEmacsでシンプルに最小労力で手早く使えるようにする - 牌語備忘録 - pygo&#34;&gt;Pythonの補完をEmacsでシンプルに最小労力で手早く使えるようにする - 牌語備忘録 - pygo&lt;/a&gt;の通りなんですが、手っ取り早くEmacsでPythonのコード補完を実現できた。ちなみにpython-modeでもac-pythonは問題なく動いてる。これ設定したらコード書くスピードが今までの1.5倍ぐらい速くなったっす！&lt;/p&gt;</description>
			</item>
			<item>
				<title>特定のホスト用のssh秘密鍵は ~/.ssh/config に記述しておくとラク</title>
				<link>https://journal.lampetty.net/posts/wp/441/</link>
				<pubDate>Sun, 15 Jan 2012 16:01:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/441/</guid>
				<description>&lt;p&gt;例えばお仕事で使っているサーバで&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;仕事用のサーバへのssh秘密鍵&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;github.comなどの個人用のssh秘密鍵&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;などと複数の秘密鍵を持ちたい場合がよくある。メインは1.の仕事用のサーバだとすると&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sphinxで複数のman pageを生成する</title>
				<link>https://journal.lampetty.net/posts/wp/437/</link>
				<pubDate>Fri, 06 Jan 2012 21:01:40 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/437/</guid>
				<description>&lt;h3 id=&#34;前置き&#34;&gt;前置き&lt;/h3&gt;&#xA;&lt;p&gt;つい最近&lt;a href=&#34;https://github.com/oinume/tomahawk&#34;&gt;tomahawk&lt;/a&gt;のドキュメントをGithub Wikiから&lt;a href=&#34;http://sphinx.pocoo.org/&#34;&gt;Sphinx&lt;/a&gt;に移行したのでそのメモ。SphinxにはHTMLを生成する以外にもman pageを生成する機能があって&lt;/p&gt;&#xA;&lt;p&gt;$ make man&lt;/p&gt;&#xA;&lt;p&gt;を実行すると _build/man/ 配下に mycommand.1 みたいな感じでman pageが生成される。&lt;/p&gt;&#xA;&lt;p&gt;でで、tomahawkの場合は tomahawk, tomahawk-rsync という２つの実行ファイルがあるので、この2つのman pageを生成したくて、tomahawk.rst, tomahawk-rsync.rst ファイルを作ってみたけど、デフォルトでは tomahawk.1 に全部入りのman pageができるだけで「独立したrstファイルから個別のman page生成するのってどうやるんだろう？」となっていた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>2011年の振り返りと2012年</title>
				<link>https://journal.lampetty.net/posts/wp/440/</link>
				<pubDate>Wed, 04 Jan 2012 08:01:53 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/440/</guid>
				<description>&lt;p&gt;明けましておめでとうございます。2012年は元旦早々風邪を引いて意図せず寝正月でした。やっと風邪も落ち着いてきたので、やや周回遅れですが2011年の振り返りを行おうかと思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>rlwrapを使ってmysqlコマンドのプロンプトに色をつける</title>
				<link>https://journal.lampetty.net/posts/wp/434/</link>
				<pubDate>Sat, 10 Dec 2011 23:12:43 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/434/</guid>
				<description>&lt;p&gt;どうもこんにちは。北海道に旅行中でこの記事は札幌のホテルから書いている &lt;a href=&#34;http://twitter.com/#!/oinume&#34;&gt;oinume&lt;/a&gt; です。&lt;a href=&#34;http://atnd.org/events/22528&#34;&gt;MySQL Casual Advent Calendar&lt;/a&gt;も11日目になりました。「MySQL Casualが全然カジュアルじゃない！」という意見をよく耳にするので、今日はウルトラカジュアルなエントリーを書こうと思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pythonでモジュール内のクラスを抽出する</title>
				<link>https://journal.lampetty.net/posts/wp/433/</link>
				<pubDate>Sat, 26 Nov 2011 00:11:45 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/433/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://docs.python.org/library/inspect.html&#34;&gt;inspect&lt;/a&gt;を使えば簡単にできる。&lt;/p&gt;&#xA;&lt;p&gt;class MyClass(object):&lt;/p&gt;&#xA;&lt;p&gt;pass&lt;/p&gt;&#xA;&lt;p&gt;def func():&lt;/p&gt;&#xA;&lt;p&gt;pass&lt;/p&gt;&#xA;&lt;p&gt;な感じのmymodule.py があるとして&lt;/p&gt;&#xA;&lt;p&gt;#!/usr/bin/env python&lt;/p&gt;&#xA;&lt;p&gt;import inspect&lt;/p&gt;&#xA;&lt;p&gt;import mymodule&lt;/p&gt;&#xA;&lt;p&gt;for name, member in inspect.getmembers(mymodule):&lt;/p&gt;&#xA;&lt;p&gt;if inspect.isclass(member):&lt;/p&gt;&#xA;&lt;p&gt;print &amp;quot;%s is class.&amp;quot; % name&lt;/p&gt;&#xA;&lt;p&gt;みたいにやれば mymodule からクラスだけ抜き出せる。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://docs.python.org/library/inspect.html&#34;&gt;inspect&lt;/a&gt;というモジュールはリンク先のマニュアルをざっと見てもらえばわかるように、モジュールやクラスや関数のメタ情報を色々取れるので超絶便利である。これは本当にすごい。&lt;/p&gt;&#xA;&lt;p&gt;[tmkm-amazon]4048686291[/tmkm-amazon]&lt;/p&gt;</description>
			</item>
			<item>
				<title>uWSGI&#43;virtualenv&#43;Flask</title>
				<link>https://journal.lampetty.net/posts/wp/430/</link>
				<pubDate>Sat, 19 Nov 2011 11:11:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/430/</guid>
				<description>&lt;p&gt;Pythonで今一番熱そうなWSGIコンテナの&lt;a href=&#34;http://projects.unbit.it/uwsgi/&#34;&gt;uWSGI&lt;/a&gt;というものをインストールしてみたんだけど、&lt;a href=&#34;http://www.virtualenv.org/en/latest/index.html&#34;&gt;virtualenv&lt;/a&gt;と組み合わせた時にちょっとはまったのでメモ。&lt;/p&gt;&#xA;&lt;h3 id=&#34;前提&#34;&gt;前提&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pythonは2.6&lt;/li&gt;&#xA;&lt;li&gt;virtualenv(wrapper)を使って /usr/local/virtualenvs 配下に flask という環境を作っている&lt;/li&gt;&#xA;&lt;li&gt;flask には Flask や Jinja2 などアプリの実行に必要なものがインストールされている&lt;/li&gt;&#xA;&lt;li&gt;実行するアプリは /var/www/wiki-converter にディプロイされている(&lt;a href=&#34;https://github.com/oinume/wiki-converter&#34;&gt;wiki-converterのソース&lt;/a&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;uwsgiのインストール&#34;&gt;uWSGIのインストール&lt;/h3&gt;&#xA;&lt;p&gt;$ workon flask&#xA;$ pip install uwsgi&lt;/p&gt;</description>
			</item>
			<item>
				<title>へろぅわーるど</title>
				<link>https://journal.lampetty.net/posts/20111108-1821/</link>
				<pubDate>Tue, 08 Nov 2011 18:21:14 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/20111108-1821/</guid>
				<description>&lt;p&gt;ぼくはまちちゃんじゃないよ！&lt;/p&gt;</description>
			</item>
			<item>
				<title>pydoc -g でモジュールのドキュメントが読める</title>
				<link>https://journal.lampetty.net/posts/wp/428/</link>
				<pubDate>Fri, 14 Oct 2011 17:10:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/428/</guid>
				<description>&lt;p&gt;Shellで&lt;/p&gt;&#xA;&lt;p&gt;$ pydoc -g&lt;/p&gt;&#xA;&lt;p&gt;ってやったら↓のようなダイアログが出てきて&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/8250493@N05/6243690687/&#34; title=&#34;pydoc -g&#34;&gt;&lt;img src=&#34;http://farm7.static.flickr.com/6180/6243690687_ff345a423f.jpg&#34; alt=&#34;pydoc -g&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&amp;quot;open browser&amp;quot; クリックしたら、ブラウザで標準モジュールやインストールされているモジュールのドキュメントが読めましたとさ。Pythonすげー。&lt;/p&gt;</description>
			</item>
			<item>
				<title>SQLAlchemyでMySQL独自のDDL方言を使う</title>
				<link>https://journal.lampetty.net/posts/wp/427/</link>
				<pubDate>Wed, 14 Sep 2011 14:09:43 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/427/</guid>
				<description>&lt;p&gt;例えばDDLでBIGINT使いたい場合は下記のように sqlalchemy.dialects.mysql から import する。&lt;/p&gt;&#xA;&lt;p&gt;あと engine = InnoDB したい場合は __table_args__ を使うらしい。詳細は&lt;a href=&#34;http://www.sqlalchemy.org/docs/dialects/mysql.html&#34;&gt;SQLAlchemyのドキュメント&lt;/a&gt;を参照。&lt;/p&gt;&#xA;&lt;p&gt;from sqlalchemy import Column, Unicode&lt;/p&gt;&#xA;&lt;p&gt;from sqlalchemy.dialects.mysql import BIGINT&lt;/p&gt;&#xA;&lt;p&gt;from sqlalchemy.ext.declarative import declarative_base&lt;/p&gt;&#xA;&lt;p&gt;Base = declarative_base()&lt;/p&gt;</description>
			</item>
			<item>
				<title>Flask &#43; python-oauth2 &#43; python-twitterでTwitter APIを叩く</title>
				<link>https://journal.lampetty.net/posts/wp/426/</link>
				<pubDate>Sat, 10 Sep 2011 16:09:16 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/426/</guid>
				<description>&lt;p&gt;いろいろ面倒だった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JavaのString.format()とStringBuilder#append()の文字列結合速度比較</title>
				<link>https://journal.lampetty.net/posts/wp/425/</link>
				<pubDate>Sun, 04 Sep 2011 13:09:43 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/425/</guid>
				<description>&lt;p&gt;Javaで文字列を結合するときは一般的にはStringBuilderを使うけど、個人的には結合後の文字列がより直感的になるString.format() が好き。ただ、ソースを見ると明らかにString.format()は遅そうなのでベンチを取ってみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL Casual Talks Vol.2 で話してきた</title>
				<link>https://journal.lampetty.net/posts/wp/423/</link>
				<pubDate>Thu, 11 Aug 2011 11:08:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/423/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://togetter.com/li/172489&#34;&gt;MySQL Casual Talks Vol.2&lt;/a&gt;で20分枠をもらって話してきた！こんなに長い時間人前で話すのは初めてだったので緊張しまくりでした。話した内容は仕事(ピグ)で利用しているMySQL上で運用しているNoSQLのやり方について。MySQLの設定とかの話は一切せずJavaのコードがメインでした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>rednoseを使ってnoseの出力をわかりやすくする</title>
				<link>https://journal.lampetty.net/posts/wp/422/</link>
				<pubDate>Wed, 27 Jul 2011 17:07:50 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/422/</guid>
				<description>&lt;p&gt;下記のようにテスト結果をカラフリャにしてくれる。ただし0.2.4はテストに失敗すると&amp;quot;TypeError: enumerate() takes exactly 1 argument (2 given)&amp;quot;というエラーになるので、&lt;a href=&#34;https://github.com/oinume/rednose/commit/7244323adcf9d2366bb846fb057e260b662db0b5&#34;&gt;こんな感じで&lt;/a&gt;修正が必要。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pythonでファイルを読み込むスマートなやり方</title>
				<link>https://journal.lampetty.net/posts/wp/418/</link>
				<pubDate>Mon, 13 Jun 2011 13:06:59 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/418/</guid>
				<description>&lt;p&gt;結論から言うと下記が最もスマートでモダンな書き方っぽい。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;with open(&amp;#39;/tmp/test.txt&amp;#39;) as f:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    for line in f:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       print line&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;下記はファイルの中味が全部メモリに乗っちゃうから危険。&lt;/p&gt;&#xA;&lt;p&gt;f = open(&#39;/tmp/test.txt&#39;)&#xA;for line in f.readlines():&#xA;print line&#xA;f.close()&lt;/p&gt;</description>
			</item>
			<item>
				<title>自宅サーバからso-netのSMTPにリレーする</title>
				<link>https://journal.lampetty.net/posts/wp/417/</link>
				<pubDate>Sun, 12 Jun 2011 14:06:35 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/417/</guid>
				<description>&lt;p&gt;そういえばISPをso-netに変えてからSMTPの設定変更してなかったのでメモ。&lt;/p&gt;&#xA;&lt;p&gt;まずは /etc/postfix/main.cf に以下を追記。&lt;/p&gt;&#xA;&lt;p&gt;relayhost = [mail.so-net.ne.jp]:587&lt;/p&gt;&#xA;&lt;p&gt;smtp_sasl_type = cyrus&lt;/p&gt;&#xA;&lt;p&gt;smtp_sasl_auth_enable = yes&lt;/p&gt;&#xA;&lt;p&gt;smtp_sasl_password_maps = hash:/etc/postfix/so-net_password&lt;/p&gt;&#xA;&lt;p&gt;smtp_sasl_security_options = noanonymous&lt;/p&gt;&#xA;&lt;p&gt;smtp_sasl_mechanism_filter = PLAIN&lt;/p&gt;&#xA;&lt;p&gt;/etc/postfix/so-net_passwordはこんな感じ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>iPhone4で読書のススメ</title>
				<link>https://journal.lampetty.net/posts/wp/415/</link>
				<pubDate>Tue, 07 Jun 2011 12:06:38 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/415/</guid>
				<description>&lt;p&gt;最近PDF化した技術書をiPhone4で読むようになった。最初は全部iPadに入れてiPadを持ち運ぼうと思っていたんだけど&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;iPadは意外と重い&lt;/p&gt;</description>
			</item>
			<item>
				<title>logbackでJavaVM起動時にログレベルを指定する</title>
				<link>https://journal.lampetty.net/posts/wp/416/</link>
				<pubDate>Tue, 07 Jun 2011 12:06:20 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/416/</guid>
				<description>&lt;p&gt;[permalink id=413]logback-test.xmlを使ってログレベルを変更する[/permalink]のエントリでlogback-test.xmlを用意すればこっちが先にロードされるので、logback.xmlより優先されていいよね的なことを書いた。で、こういうログレベルってJavaVM起動時に自由に指定できるとテストを実行する時によりいいよなぁと思ったので調べてみた。&lt;/p&gt;</description>
			</item>
			<item>
				<title>logback-test.xmlを使ってログレベルを変更する</title>
				<link>https://journal.lampetty.net/posts/wp/413/</link>
				<pubDate>Sun, 05 Jun 2011 10:06:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/413/</guid>
				<description>&lt;p&gt;Javaにlogbackというlog4jに代わるロギングライブラリがあって、これのちょっとしたTIPS。&lt;/p&gt;&#xA;&lt;p&gt;本番環境ではなく、ローカルマシンでの開発時のアプリケーションのlogback.xmlでは、下記のようにログレベルをdebugにしているとする。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ブログのMySQLを5.1から5.5にバージョンアップ</title>
				<link>https://journal.lampetty.net/posts/wp/412/</link>
				<pubDate>Fri, 03 Jun 2011 16:06:39 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/412/</guid>
				<description>&lt;p&gt;5.5ってどうなんだろう？と思ったので試しにこのブログのMySQLを5.1 -&amp;gt; 5.5にしてみた。&lt;/p&gt;&#xA;&lt;p&gt;tar.gz のバイナリを取ってきて /usr/local/mysql-5.5.13-linux-2.6-i686 に展開して /usr/local/mysql にsymlink (バージョンアップに失敗したときにすぐに戻せるように)。あとはstop start して起動するだけ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Emacsでetags関連のキーバインドを変えた</title>
				<link>https://journal.lampetty.net/posts/wp/411/</link>
				<pubDate>Sun, 29 May 2011 14:05:04 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/411/</guid>
				<description>&lt;p&gt;Emacsのタグジャンプ系のキーバインドが M - . とかであまりにも打ちにくいので変えた。&lt;/p&gt;&#xA;&lt;p&gt;;; etags&lt;/p&gt;&#xA;&lt;p&gt;(require &#39;etags)&lt;/p&gt;&#xA;&lt;p&gt;(global-set-key &amp;quot;C-cj&amp;quot; &#39;find-tag)&lt;/p&gt;&#xA;&lt;p&gt;(global-set-key &amp;quot;C-cb&amp;quot; &#39;pop-tag-mark)&lt;/p&gt;&#xA;&lt;p&gt;(global-set-key &amp;quot;C-cn&amp;quot; &#39;(lambda () (interactive) (find-tag last-tag 1)))&lt;/p&gt;&#xA;&lt;p&gt;動作デフォルト変更後&lt;/p&gt;&#xA;&lt;p&gt;タグを探してジャンプM-.C-c j&lt;/p&gt;</description>
			</item>
			<item>
				<title>SIM Lock Free iPhone4＋DoCoMo SIM</title>
				<link>https://journal.lampetty.net/posts/wp/410/</link>
				<pubDate>Tue, 24 May 2011 07:05:53 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/410/</guid>
				<description>&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;auガラケー&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;SoftBankのiPhone4&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;という2台持ち状態だったのを、一念発起してSIM Lock Free iPhone4を購入してDoCoMo SIMにしてみた。そもそもガラケーは仕事で動作確認ぐらいにしか使用してないし、2台も携帯を持つことに疲れてしまったので。&lt;/p&gt;</description>
			</item>
			<item>
				<title>SIM Lock Free iPhone4 &#43; b-mobile プラチナの回線速度</title>
				<link>https://journal.lampetty.net/posts/wp/409/</link>
				<pubDate>Wed, 04 May 2011 08:05:22 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/409/</guid>
				<description>&lt;p&gt;もう個人で携帯2台持ちしたくないので、iPhone4 SIM Lock Free版をヤフオクで買った。で、せっかくなのでb-mobileがどのぐらい使い物になるのか、1ヶ月分のSIMを買って試してみた。買ったのは&lt;a href=&#34;http://www.bmobile.ne.jp/sim_mp/index.html&#34;&gt;b-microSIM Platinum&lt;/a&gt;。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Emacsでキーの割り当てを調べる</title>
				<link>https://journal.lampetty.net/posts/wp/408/</link>
				<pubDate>Sun, 01 May 2011 16:05:47 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/408/</guid>
				<description>&lt;p&gt;M-x describe-bindings でいける。よく思い出せずに苦労するのでメモ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linuxで容量の大きいディレクトリを調べる</title>
				<link>https://journal.lampetty.net/posts/wp/407/</link>
				<pubDate>Sun, 10 Apr 2011 00:04:52 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/407/</guid>
				<description>&lt;p&gt;# du -m /home | sort -nr | head -10&lt;/p&gt;&#xA;&lt;p&gt;で容量の大きいディレクトリTOP10を調べられる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacのEclipseで「フォントが小さい」とお嘆きの方へ</title>
				<link>https://journal.lampetty.net/posts/wp/403/</link>
				<pubDate>Sun, 20 Mar 2011 15:03:35 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/403/</guid>
				<description>&lt;p&gt;解像度の高いMacのEclipseは下のようになぜかPackage Explorerのフォントが小さい。Source EditorなどはEclipse上でフォントサイズを設定することができるけど、なぜかPackage Explorerはできない。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLでデータベースの全テーブルを強制的にInnoDBに変換するPythonスクリプト</title>
				<link>https://journal.lampetty.net/posts/wp/401/</link>
				<pubDate>Mon, 21 Feb 2011 11:02:44 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/401/</guid>
				<description>&lt;p&gt;仕事でMyISAMなテーブルをInnoDBにしたかったのでこんなん書いた。&lt;/p&gt;&#xA;&lt;p&gt;$ ~/to_innodb.py -h localhost -u root mydatabase&lt;/p&gt;&#xA;&lt;p&gt;#!/usr/bin/env python&lt;/p&gt;&#xA;&lt;p&gt;# -*- coding: utf-8 -*-&lt;/p&gt;&#xA;&lt;p&gt;# INSTALL ====================&lt;/p&gt;&#xA;&lt;p&gt;# $ sudo easy_install argparse&lt;/p&gt;&#xA;&lt;p&gt;# $ sudo easy_install mysql-python&lt;/p&gt;&#xA;&lt;p&gt;import argparse&lt;/p&gt;&#xA;&lt;p&gt;import MySQLdb&lt;/p&gt;&#xA;&lt;p&gt;import os&lt;/p&gt;&#xA;&lt;p&gt;def main():&lt;/p&gt;</description>
			</item>
			<item>
				<title>wgetでURLにアクセスできるか簡易的にチェックする</title>
				<link>https://journal.lampetty.net/posts/wp/400/</link>
				<pubDate>Wed, 16 Feb 2011 15:02:51 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/400/</guid>
				<description>&lt;p&gt;Webサーバがちゃんと立ち上がったかどうか、URLにアクセスしてチェックしたいので。&lt;/p&gt;&#xA;&lt;p&gt;wget -o /dev/null -O - &lt;a href=&#34;http://twitter.com/&#34;&gt;http://twitter.com/&lt;/a&gt; &amp;gt; /dev/null&lt;/p&gt;&#xA;&lt;p&gt;if [ $? -eq 0 ] ; then&lt;/p&gt;&#xA;&lt;p&gt;echo &amp;quot;OK&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;else&lt;/p&gt;&#xA;&lt;p&gt;echo &amp;quot;Failure!!&amp;quot;&lt;/p&gt;&#xA;&lt;p&gt;fi&lt;/p&gt;&#xA;&lt;p&gt;な感じかなぁ。&lt;/p&gt;&#xA;&lt;p&gt;[tmkm-amazon]4822282090[/tmkm-amazon]&lt;/p&gt;</description>
			</item>
			<item>
				<title>2010年のまとめ</title>
				<link>https://journal.lampetty.net/posts/wp/398/</link>
				<pubDate>Fri, 31 Dec 2010 12:12:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/398/</guid>
				<description>&lt;h3 id=&#34;仕事&#34;&gt;仕事&lt;/h3&gt;&#xA;&lt;p&gt;思い返してみると、昨年の12月に諸事情があって転職活動をせざるを得なくなって、今年の2月までは転職活動してたんですね。最終的には緑色の会社に行くことに決めたのですが、自分が思っていたより遥かに自由にやらせてくれる会社だったので、すごくあたりくじを引いた気分です。上場してるはずなのにこんな自由でいいんだろうか、と思ってしまうレベル。あと、一緒に仕事をしている人は何に対しても前向きな人が多いので、相変わらず回りの人にも恵まれています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>AppEngine for PythonでImportError: No module named cgiとなる場合の対処方法</title>
				<link>https://journal.lampetty.net/posts/wp/397/</link>
				<pubDate>Wed, 29 Dec 2010 11:12:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/397/</guid>
				<description>&lt;p&gt;おそらくvirtualenv使ってると発生するのだと思うのですが、AppEngine for Pythonで下記のようなエラーがでました。&lt;/p&gt;&#xA;&lt;p&gt;File &amp;quot;/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py&amp;quot;, line 61, in&lt;/p&gt;&#xA;&lt;p&gt;import cgi&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tomcatのスレッド数をグラフ化するMunin plugin</title>
				<link>https://journal.lampetty.net/posts/wp/395/</link>
				<pubDate>Sun, 19 Dec 2010 04:12:05 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/395/</guid>
				<description>&lt;p&gt;会社で使おうと思っていたTomcatのスレッド数をグラフ化するMunin pluginがあるのですが、XML::Simpleに依存していて「Munin pluginのためにわざわざPerlモジュールインストールするのもなぁ」と思ったので、ついかっとなってXMLをパースするところを正規表現で書き直してみました。ついでにmaxThreadsも表示するようにしたり、微調整もしています。プラグインは&lt;a href=&#34;https://github.com/oinume/munin-plugins/blob/master/tomcat_threads&#34;&gt;github&lt;/a&gt;に上げてあります。&lt;/p&gt;</description>
			</item>
			<item>
				<title>PythonからGrowlを利用する</title>
				<link>https://journal.lampetty.net/posts/wp/394/</link>
				<pubDate>Fri, 10 Dec 2010 12:12:32 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/394/</guid>
				<description>&lt;p&gt;GrowlというMacの通知インターフェースをPythonから使ってみたというお話。&lt;/p&gt;&#xA;&lt;h3 id=&#34;growl-python-bindingをインストール&#34;&gt;Growl Python bindingをインストール&lt;/h3&gt;&#xA;&lt;p&gt;まずは&lt;a href=&#34;http://growl.info/&#34;&gt;Growl本家&lt;/a&gt;からGrowl SDKをダウンロードしてダブルクリックし、&lt;/p&gt;</description>
			</item>
			<item>
				<title>gitでtagを作成する</title>
				<link>https://journal.lampetty.net/posts/wp/393/</link>
				<pubDate>Thu, 02 Dec 2010 17:12:34 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/393/</guid>
				<description>&lt;p&gt;gitでのタグの作り方のメモです。&lt;/p&gt;&#xA;&lt;h3 id=&#34;tagを新しく作る&#34;&gt;tagを新しく作る&lt;/h3&gt;&#xA;&lt;p&gt;$ git tag -a 1.0.0 -m &#39;v1.0.0&#39;&lt;/p&gt;&#xA;&lt;h3 id=&#34;remoteにpushする&#34;&gt;remoteにpushする&lt;/h3&gt;&#xA;&lt;p&gt;$ git push origin 1.0.0&lt;/p&gt;&#xA;&lt;h3 id=&#34;tagを表示する&#34;&gt;tagを表示する&lt;/h3&gt;&#xA;&lt;p&gt;$ git tag&lt;/p&gt;&#xA;&lt;h3 id=&#34;tagをremoteから取得する&#34;&gt;tagをremoteから取得する&lt;/h3&gt;&#xA;&lt;p&gt;$ git fetch --tags&lt;/p&gt;&#xA;&lt;p&gt;or&lt;/p&gt;&#xA;&lt;p&gt;$ git pull --tags&lt;/p&gt;&#xA;&lt;h3 id=&#34;tagを削除する&#34;&gt;tagを削除する&lt;/h3&gt;&#xA;&lt;p&gt;$ git tag -d 1.0.0&lt;/p&gt;&#xA;&lt;p&gt;remoteにも反映させる。(タグ名に&#39;:&#39;をつける)&lt;/p&gt;</description>
			</item>
			<item>
				<title>sshで初回ログイン時に&#34;The authenticity of host &#39;host&#39; can&#39;t be established...&#34;を聞かれないようにする設定</title>
				<link>https://journal.lampetty.net/posts/wp/391/</link>
				<pubDate>Mon, 29 Nov 2010 16:11:01 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/391/</guid>
				<description>&lt;p&gt;sshで ~/.ssh/known_hosts にないマシンにアクセスする場合&lt;/p&gt;&#xA;&lt;p&gt;The authenticity of host &#39;your-host (127.0.0.1)&#39; can&#39;t be established.&#xA;RSA key fingerprint is 7f:cd:9a:d8:1d:9a:47:3b:97:e7:8e:c3:81:c8:2e:97.&#xA;Are you sure you want to continue connecting (yes/no)?&lt;/p&gt;&#xA;&lt;p&gt;と聞かれます。社内用のサーバなどの場合、そんなに厳しく接続先のマシンをチェックしなくてもよいのであれば、sshクライアント側の ~/.ssh/configに下記の設定を書くことでこれを聞かれないようにできます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>気になるiPhoneアプリをストックしておく方法</title>
				<link>https://journal.lampetty.net/posts/wp/389/</link>
				<pubDate>Wed, 03 Nov 2010 14:11:45 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/389/</guid>
				<description>&lt;p&gt;iPhoneでAppStoreでアプリを探していて「これ良さそうだけど、インストールはあとでやりたい」と思うことはありませんか？例えば容量が大きくてWiFiじゃないとダウンロードできないとか、電波が弱くてダウンロードするのに滅茶苦茶時間がかかる場合とか。&lt;/p&gt;</description>
			</item>
			<item>
				<title>watchでコマンドの出力を監視する</title>
				<link>https://journal.lampetty.net/posts/wp/388/</link>
				<pubDate>Sun, 31 Oct 2010 14:10:48 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/388/</guid>
				<description>&lt;p&gt;Unixには watch という、n秒ごとに定期的にコマンドを実行してその出力を表示するコマンドがあります。&lt;/p&gt;&#xA;&lt;p&gt;例えば netstat -na した結果を wc で数えて現在のコネクション数を1秒ごとに表示するには&lt;/p&gt;</description>
			</item>
			<item>
				<title>Muninの好きなところ</title>
				<link>https://journal.lampetty.net/posts/wp/387/</link>
				<pubDate>Sat, 18 Sep 2010 17:09:07 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/387/</guid>
				<description>&lt;p&gt;リソース監視ソフトウェアに&lt;a href=&#34;http://munin-monitoring.org/&#34;&gt;Munin&lt;/a&gt;というものがありますが、個人でも仕事でも使っていて割りと好きなものの一つです。どういうところがいいかというと&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;インストールが簡単ですぐ動かせる&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Munin自体は静的なHTMLファイルを生成するだけなので、Webサーバは何でもよい。自分の好きなWebサーバを使えばよい&lt;/p&gt;</description>
			</item>
			<item>
				<title>Perl開発環境としてのEmacsの設定</title>
				<link>https://journal.lampetty.net/posts/wp/384/</link>
				<pubDate>Sat, 21 Aug 2010 16:08:13 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/384/</guid>
				<description>&lt;p&gt;最近社内でvim勉強会があったりして「vimもいいなぁ」と思っていたのですが、やっぱりキーバインドに慣れなくってEmacsに戻ってきました。最近EmacsでPerl関連の設定を見なおしたので、メモがてら書いておきます。自分がPerlのコードを書くときに使っているelispは以下の5つです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linodeの最下位プランのメモリが増量されてる</title>
				<link>https://journal.lampetty.net/posts/wp/383/</link>
				<pubDate>Sun, 18 Jul 2010 19:07:11 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/383/</guid>
				<description>&lt;p&gt;昨日まで知らなかったのですが、&lt;/p&gt;&#xA;&lt;p&gt;Linode Turns 7, BIG RAM Increaseというアナウンスがあって、Linodeの最下位プランのメモリが360MBから512MBになっていました(値段は$19.95)。さらにその一つ上は540MB→768MBとこれまた大幅増量です。その他のプランについては覚えていませんが、最大で42%増量されているっぽいです。そろそろ&lt;a href=&#34;http://prgmr.com/xen/&#34;&gt;prgmr&lt;/a&gt;に乗り換えようかと思っていたのですが、LinodeはCPUコアを最大で4つまで使えるので、当面居座ろうかなと思っています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Eclipseの覚えておきたいショートカットキーとTips</title>
				<link>https://journal.lampetty.net/posts/wp/382/</link>
				<pubDate>Thu, 08 Jul 2010 13:07:14 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/382/</guid>
				<description>&lt;p&gt;こんにちは。最近仕事ではめっきりJavaばっかり書いていて、そろそろ大嫌いなEclipseを使い始めて3ヶ月以上経ったので、今まで得たノウハウの一部をまとめておこうかと。&lt;/p&gt;</description>
			</item>
			<item>
				<title>EmacsでPythonの設定</title>
				<link>https://journal.lampetty.net/posts/wp/380/</link>
				<pubDate>Sat, 03 Jul 2010 16:07:01 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/380/</guid>
				<description>&lt;p&gt;最近Pythonいいなぁと思ってPython始めているのですが、コードを書くにあたってエディタの設定も多少しとかないと、ということでEmacsでPython回りの設定をしました。あんまりヘビーなことはしないので、とりあえず今回はpython-mode.elとflymakeの設定だけしています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>サーバの設定ファイルの管理方法</title>
				<link>https://journal.lampetty.net/posts/wp/379/</link>
				<pubDate>Sun, 20 Jun 2010 12:06:22 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/379/</guid>
				<description>&lt;p&gt;最近このブログの置き場所を自宅サーバからlinodeに移しました。それにあたってサーバの設定ファイルを git リポジトリで管理して linode に同期するようにしてみました。今日はそんなことをつらつらと書いてみたいと思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>VirtualBoxでディスクを拡張する</title>
				<link>https://journal.lampetty.net/posts/wp/378/</link>
				<pubDate>Wed, 09 Jun 2010 13:06:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/378/</guid>
				<description>&lt;p&gt;VirtualBox + ゲストOS:Ubuntuでディスクを拡張する方法です。はしょっていうと、単に新しい仮想マシンを作ってそのディスクを古い仮想マシンのディスクにしてしまえばOKです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>qpstudy #01 &#34;rsyncのちょっとイイ話&#34;のスライド</title>
				<link>https://journal.lampetty.net/posts/wp/377/</link>
				<pubDate>Sat, 22 May 2010 01:05:43 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/377/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://sites.google.com/site/qpstudy/qpstudy01&#34;&gt;qpstudy #01&lt;/a&gt;で「rsyncのちょっとイイ話 」というタイトルで話させてもらいました。勉強会で発表というのは初めてで緊張したのですが、なんとか終えられてよかったです。終わった後も参加者の方々からtwitterでrsyncについて色々フォローしてもらい、自分としても勉強になりました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>VirtualBoxでのネットワーク設定(NAT&#43;ホストオンリーアダプタによるホストOSとゲストOS間の通信)</title>
				<link>https://journal.lampetty.net/posts/wp/375/</link>
				<pubDate>Sun, 11 Apr 2010 06:04:21 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/375/</guid>
				<description>&lt;p&gt;CassandraやMogileFS、KumoFSなど、複数のサーバで構成されるサーバソフトウェアをテストしたいことが多々あるので、VirtualBoxを使って分散環境を作ってみました。ネットワーク関連の設定でややコツが必要だったので、ちょっとまとめてみました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>コマンドラインオプションを解析するPerlモジュールGetopt::Compact</title>
				<link>https://journal.lampetty.net/posts/wp/374/</link>
				<pubDate>Sat, 10 Apr 2010 12:04:12 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/374/</guid>
				<description>&lt;p&gt;Perlでコマンドラインオプションを解析する場合、大体は標準添付されているGetopt::Longを使うと思いますが、自分は3年前ぐらいから &lt;a href=&#34;http://search.cpan.org/dist/Getopt-Compact/lib/Getopt/Compact.pm&#34;&gt;Getopt::Compact&lt;/a&gt; というモジュールに出会い、それ以降大抵の場合はこれを使っています。このモジュールの良いところは&lt;/p&gt;</description>
			</item>
			<item>
				<title>Shellでgetoptsを使ってコマンドライン引数の解析</title>
				<link>https://journal.lampetty.net/posts/wp/373/</link>
				<pubDate>Tue, 06 Apr 2010 11:04:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/373/</guid>
				<description>&lt;p&gt;だいぶ前の話、Perlを使わないでShellスクリプトで頑張っていた頃、Shellでコマンドラインオプションの解析をやる時は&lt;/p&gt;&#xA;&lt;p&gt;#!/bin/sh&lt;/p&gt;&#xA;&lt;p&gt;for OPT in $*&lt;/p&gt;&#xA;&lt;p&gt;do&lt;/p&gt;&#xA;&lt;p&gt;case $OPT in&lt;/p&gt;</description>
			</item>
			<item>
				<title>Shellで配列のマージ</title>
				<link>https://journal.lampetty.net/posts/wp/372/</link>
				<pubDate>Thu, 25 Mar 2010 11:03:03 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/372/</guid>
				<description>&lt;p&gt;Shellスクリプトで配列のマージってどうやるんだろうって思ったので調べてみたら、${ARRAY[*]} か ${ARRAY[@]} で配列の要素を全部取得できるらしいので、それを () 使ってマージすればいいらしい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>海外のVPS Linodeを借りました</title>
				<link>https://journal.lampetty.net/posts/wp/370/</link>
				<pubDate>Fri, 19 Mar 2010 22:03:57 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/370/</guid>
				<description>&lt;p&gt;表題の通りなのですが、やっぱり自宅サーバでサービスを運営するのがすごい嫌になったので&lt;a href=&#34;http://www.linode.com/&#34;&gt;Linode&lt;/a&gt;を契約しました。プランは一番安いLinode 360で、契約してもうかれこれ3週間ぐらいですが、かなり快適に使ってます。良い点を挙げると...&lt;/p&gt;</description>
			</item>
			<item>
				<title>MuninでMySQLプラグインのグラフが描画されない時の解決方法</title>
				<link>https://journal.lampetty.net/posts/wp/369/</link>
				<pubDate>Tue, 09 Mar 2010 14:03:58 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/369/</guid>
				<description>&lt;p&gt;先日設定したサーバでMuninをインストールして監視していたのですが、どうもMySQL関連のプラグイン(mysql_bytes, mysql_queries, mysql_threadsなど)でグラフが描画されず、どうしたものかと思ってぐぐってみたところ、&lt;a href=&#34;http://www.mydigitallife.info/2007/08/25/fix-for-munin-mysql-monitoring-plugin-graph-not-showing-or-blank/&#34;&gt;このエントリ&lt;/a&gt;を見つけました。まさにビンゴで /etc/munin/plugin-conf.d/munin-node に以下の行を足してmunin-nodeをrestartしたところ、うまくグラフが描画されるようになりました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>UbuntuでTimeZoneを変更する方法</title>
				<link>https://journal.lampetty.net/posts/wp/368/</link>
				<pubDate>Sun, 28 Feb 2010 05:02:44 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/368/</guid>
				<description>&lt;p&gt;昔は tzconfig というのを使えばよかったらしいのですが、deprecated と言われました...&lt;/p&gt;&#xA;&lt;p&gt;# dpkg-reconfigure tzdata&lt;/p&gt;&#xA;&lt;p&gt;と入力して、Asia -&amp;gt; Tokyo を選択すればOKです。終わったら date コマンドで確認すればOK。&lt;/p&gt;</description>
			</item>
			<item>
				<title>DBI-&gt;connectのHandleError</title>
				<link>https://journal.lampetty.net/posts/wp/366/</link>
				<pubDate>Wed, 10 Feb 2010 15:02:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/366/</guid>
				<description>&lt;p&gt;DBIのちょっとしたTIPSです。DBIには connect する時に&lt;/p&gt;&#xA;&lt;p&gt;DBI-&amp;gt;connect(&#39;dbi:mysql:database=hoge&#39;, &#39;root&#39;, &#39;whatever&#39;, { ... });&lt;/p&gt;&#xA;&lt;p&gt;とオプションを渡すことができます。(たとえば RaiseError) 。このオプションのひとつに HandleError というものがあってデバッグにはなかなか便利なので紹介してみます。端的にいうと HandleError でサブルーチンを登録しておくと、エラーが発生したときにこのサブルーチンを使ってエラーを投げてくれるようになります。以下は具体例。&lt;/p&gt;</description>
			</item>
			<item>
				<title>VMWare FusionでゲストOSを強制的にシャットダウン</title>
				<link>https://journal.lampetty.net/posts/wp/365/</link>
				<pubDate>Tue, 02 Feb 2010 18:02:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/365/</guid>
				<description>&lt;p&gt;VMWare FusionのゲストOSとしてWindows XPを使っていたのですが、シャットダウン中に「Windowsをシャットダウンしています...」というメッセージからいっこうに進まなくなり、どうしようもなくなった時の対処方法。&lt;/p&gt;</description>
			</item>
			<item>
				<title>DBIx::ThinをCPANから削除</title>
				<link>https://journal.lampetty.net/posts/wp/364/</link>
				<pubDate>Tue, 12 Jan 2010 17:01:02 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/364/</guid>
				<description>&lt;p&gt;表題の通りですが、思うところがあって&lt;a href=&#34;http://github.com/oinume/p5-dbix-thin&#34;&gt;DBIx::Thin&lt;/a&gt;を削除しました。きっかけは、&lt;a href=&#34;http://cpanratings.perl.org/dist/DBIx-Thin&#34;&gt;CPAN Ratingsのレビュー&lt;/a&gt;です(以下引用)。&lt;/p&gt;&#xA;&lt;p&gt;DBIx-Thin (0.05) **&lt;/p&gt;&#xA;&lt;p&gt;It strikes me as odd how almost most of Japanese authors (of course, except honourable and admirable authors) don&#39;t write why they have written their modules and the intention of the modules.&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressで自分の投稿にリンクを貼るためのプラグイン &#34;The Permalinker&#34;</title>
				<link>https://journal.lampetty.net/posts/wp/362/</link>
				<pubDate>Mon, 04 Jan 2010 17:01:39 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/362/</guid>
				<description>&lt;p&gt;WordPressで文章を書いている際に過去の自分の投稿にリンクしたいことがよくあります。今までは&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/tech/index.php/archives/12345&#34;&gt;過去の投稿へのリンク&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;のように普通のアンカータグでリンクを貼っていたのですが、これだと万が一パーマリンクのURLの設定を変えた場合に手動で一つ一つリンクを直すのが嫌だなぁと思ってました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL 5.1の最新のソースからdebを作成する</title>
				<link>https://journal.lampetty.net/posts/wp/360/</link>
				<pubDate>Sun, 03 Jan 2010 09:01:08 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/360/</guid>
				<description>&lt;p&gt;以前[permalink id=331]MySQL 5.1の最新版のdebパッケージを作成する方法[/permalink]というエントリを書いたのですが、Ubuntuの最新の開発版パッケージではなく、MySQLが出している最新のMySQLのソースをビルドしてdebパッケージを作成する方法を見つけたのでメモしておきます。ちなみにMySQL以外にもperlとかのパッケージもこの方法で最新にすることが出来ると思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>rackspace cloudが安い</title>
				<link>https://journal.lampetty.net/posts/wp/359/</link>
				<pubDate>Wed, 30 Dec 2009 17:12:12 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/359/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://diary.lampetty.net/20081108.html#p01&#34;&gt;海外の安いVPS&lt;/a&gt;というエントリで&lt;a href=&#34;http://www.linode.com/index.cfm&#34;&gt;Linode&lt;/a&gt;というVPSを紹介したのですが、(条件次第では)それよりもさらに安い&lt;a href=&#34;http://www.rackspacecloud.com/cloud_hosting_products/servers&#34;&gt;rackspace cloud&lt;/a&gt;というサービスを見つけました。&lt;/p&gt;&#xA;&lt;p&gt;プランのスペックが微妙に違うし、データ転送量の料金次第な面もあるので一概に比較出来ませんが、Linodeの540とrackspaceの512MBのプランだとrackspaceの方が7$ぐらいお得。データ転送量が少なければrackspaceも全然ありだなぁ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>DBIx::ThinというORMapperをリリースしました</title>
				<link>https://journal.lampetty.net/posts/wp/357/</link>
				<pubDate>Tue, 29 Dec 2009 02:12:14 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/357/</guid>
				<description>&lt;p&gt;今年のYAPC(9月)からすき間時間を使って作っていた&lt;a href=&#34;http://search.cpan.org/dist/DBIx-Thin/lib/DBIx/Thin.pm&#34;&gt;DBIx::Thin&lt;/a&gt;という、&lt;a href=&#34;http://search.cpan.org/dist/DBIx-Skinny/lib/DBIx/Skinny.pm&#34;&gt;DBIx::Skinny&lt;/a&gt;インスパイアなモジュールを昨日やっとリリースしました。作った動機は単に自己満足の追求と車輪の再発明による個人のスキルアップですが、前職で3年前ぐらいに自作したORMのコードを忘れないうちに改良して世に出したいなぁとずっと思っていたのです。SkinnyのAdvent Calendarが日々更新されているのを読み、途中で何度も「これSkinny使えばいいんじゃね？」って思って挫折しかけましたが、Skinnyも細かいところでは自分のポリシーと合わない部分があったりしたのと、とりあえず作ってしまったので世に出してみます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLのdrop tableでは複数のテーブルを一気に削除できる</title>
				<link>https://journal.lampetty.net/posts/wp/356/</link>
				<pubDate>Wed, 23 Dec 2009 16:12:31 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/356/</guid>
				<description>&lt;p&gt;タイトル通りなんですが、今までは複数のテーブルを削除する時は&lt;/p&gt;&#xA;&lt;p&gt;&amp;gt; drop table hoge;&lt;/p&gt;&#xA;&lt;p&gt;&amp;gt; drop table fuga;&lt;/p&gt;&#xA;&lt;p&gt;なんてやってましたが、&lt;/p&gt;&#xA;&lt;p&gt;&amp;gt; drop table hoge fuga;&lt;/p&gt;&#xA;&lt;p&gt;って書けるんですね。豆知識。&lt;/p&gt;&#xA;&lt;p&gt;[tmkm-amazon]4774142948[/tmkm-amazon]&lt;/p&gt;</description>
			</item>
			<item>
				<title>Gitの共有リポジトリを運用する場合の個人的なベストプラクティス</title>
				<link>https://journal.lampetty.net/posts/wp/353/</link>
				<pubDate>Thu, 17 Dec 2009 13:12:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/353/</guid>
				<description>&lt;p&gt;最近Gitの共有リポジトリを構築する機会があったのですが、以下のような感じで運用しています。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;gitプロトコルではなくsshでアクセス(ポート開けるのだるいので)&lt;/p&gt;</description>
			</item>
			<item>
				<title>PerlのDateTimeとTime::Pieceモジュールのベンチマーク</title>
				<link>https://journal.lampetty.net/posts/wp/352/</link>
				<pubDate>Sat, 05 Dec 2009 15:12:24 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/352/</guid>
				<description>&lt;p&gt;Perlで日付関連の処理をする代表的なモジュールに&lt;a href=&#34;http://search.cpan.org/dist/DateTime/lib/DateTime.pm&#34;&gt;DateTime&lt;/a&gt;というものがありますが、メモリ消費量が激しいのがずっと気になっていました。でで、&lt;a href=&#34;http://search.cpan.org/dist/Time-Piece/Piece.pm&#34;&gt;Time::Piece&lt;/a&gt;が5.10.1からPerlに標準添付になったという話を聞いて、乗り換えようかどうか検討しています。&lt;a href=&#34;http://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A1%E3%83%A2%2FTime%3A%3APiece%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB&#34; title=&#34;Perlメモ/Time::Pieceモジュール - Walrus, Digit.&#34;&gt;Perlメモ/Time::Pieceモジュール - Walrus, Digit.&lt;/a&gt;を見ると、DateTimeでできることは大体できるので、以下のユースケースでの速度面を測ってみます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Text::MicroTemplate 0.10で速度が速くなっている件</title>
				<link>https://journal.lampetty.net/posts/wp/350/</link>
				<pubDate>Sat, 21 Nov 2009 02:11:11 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/350/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://d.hatena.ne.jp/gfx/20091120/1258695709&#34; title=&#34;Now Text::MicroTemplate is even faster than HTML::Template::Pro - use GFx::WebLog;&#34;&gt;Now Text::MicroTemplate is even faster than HTML::Template::Pro - use GFx::WebLog;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Text::MicroTemplate 0.10で動作速度が改善されたとのことなので、自分のところでもベンチマークしてみました。&lt;/p&gt;&#xA;&lt;p&gt;$ perl benchmark_templates.pl 1&lt;/p&gt;&#xA;&lt;p&gt;Perl/5.10.0 (x86_64-linux-gnu-thread-multi)&lt;/p&gt;&#xA;&lt;p&gt;HTML::Template/2.9&lt;/p&gt;&#xA;&lt;p&gt;HTML::Template::Compiled/0.94&lt;/p&gt;</description>
			</item>
			<item>
				<title>Text::MicroTemplateとHTML::Template::Proの比較</title>
				<link>https://journal.lampetty.net/posts/wp/348/</link>
				<pubDate>Sat, 21 Nov 2009 01:11:04 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/348/</guid>
				<description>&lt;p&gt;PerlでWebアプリを作る時のテンプレートエンジンをどれにしようか相変わらず模索中なのですが、以下の2つのエントリーで動作速度とメモリについて調べた結果、どうやらText::MicroTemplateとHTML::Template::Proのどちらかを選択するのが良いだろうと思っています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Text::MicroTemplateのメモリ使用量をベンチマーク</title>
				<link>https://journal.lampetty.net/posts/memory-usage-of-text-micro-template/</link>
				<pubDate>Sun, 15 Nov 2009 13:11:31 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/memory-usage-of-text-micro-template/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/tech/index.php/archives/342&#34;&gt;Text::MicroTemplateの速度を簡単にベンチマーク&lt;/a&gt;でText::MicroTemplateの動作速度を簡単にベンチマークしましたが、今回はメモリ使用量を他のテンプレートエンジンと比較してみました。環境はUbuntu 9.04 amd64, Perl 5.10.0 で、&lt;a href=&#34;http://search.cpan.org/dist/GTop/&#34;&gt;GTop&lt;/a&gt;を使って測っています。&lt;/p&gt;&#xA;&lt;h3 id=&#34;useした時のメモリ使用量&#34;&gt;useした時のメモリ使用量&lt;/h3&gt;&#xA;&lt;p&gt;独自に作ったスクリプト(use_memory_size.pl)でuse時のメモリ使用量を測ってみます。&lt;/p&gt;&#xA;&lt;p&gt;$ ./use_memory_size.pl&lt;/p&gt;&#xA;&lt;p&gt;3.2M : use HTML::Template&lt;/p&gt;&#xA;&lt;p&gt;11.7M : use HTML::Template::Compiled&lt;/p&gt;</description>
			</item>
			<item>
				<title>Text::MicroTemplateの速度を簡単にベンチマーク</title>
				<link>https://journal.lampetty.net/posts/wp/342/</link>
				<pubDate>Sat, 14 Nov 2009 16:11:34 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/342/</guid>
				<description>&lt;p&gt;&lt;strong&gt;2009/11/15 追記&lt;/strong&gt;：&lt;a href=&#34;#comment-152&#34;&gt;tokuhiromさんのコメント&lt;/a&gt;を受けて、Text::MicroTemplate以外のテンプレートファイルにHTMLエスケープの処理を追加してベンチマークを取り直しています。&lt;/p&gt;&#xA;&lt;p&gt;Perlのテンプレートエンジンでどれを使おうか悩んでいるので、Text::MicroTemplateをはじめとする以下のテンプレートエンジンの速度を簡単にベンチマークしてみました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>hbstudy#5に参加してきました</title>
				<link>https://journal.lampetty.net/posts/wp/347/</link>
				<pubDate>Sat, 14 Nov 2009 16:11:33 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/347/</guid>
				<description>&lt;p&gt;インフラエンジニアじゃないけど&lt;a href=&#34;http://heartbeats.jp/hbstudy/2009/11/hbstudy5.html&#34;&gt;インフラエンジニア勉強会 hbstudy#5&lt;/a&gt;に参加してきました。もともとこのイベントには参加したいなぁと思っていて、参加登録したらいいタイミングで松信さんが講演することにw 貴重なMySQLのチューニングの話が生で聞けてとてもよかったよかった。&lt;/p&gt;</description>
			</item>
			<item>
				<title>PHPでFatal error: Allowed memory size of ...が出た場合の対処方法</title>
				<link>https://journal.lampetty.net/posts/wp/341/</link>
				<pubDate>Sat, 07 Nov 2009 14:11:30 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/341/</guid>
				<description>&lt;p&gt;あまりPHPのことわからないのですが、WordPressで&lt;/p&gt;&#xA;&lt;p&gt;Fatal error: Allowed memory size of 8388608 bytes exhausted&lt;/p&gt;&#xA;&lt;p&gt;というエラーメッセージが出ました。ぐぐると「php.iniのmemory_limitを64Mとか大きな値に設定すべし」とあるのですが、Ubuntuの /usr/share/php5/php.ini を&lt;/p&gt;</description>
			</item>
			<item>
				<title>キーボードショートカットでMacをシステム終了</title>
				<link>https://journal.lampetty.net/posts/wp/340/</link>
				<pubDate>Sat, 07 Nov 2009 14:11:21 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/340/</guid>
				<description>&lt;p&gt;いっつも忘れるのでメモ。Macをキーボードショートカットだけで終了する方法はControl + Option + Command + Eject 。右手でControlとOptionを押して、左手でCommand + Ejectを押す感じにしています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Perlで楽天ブックスジャンル検索APIを使う</title>
				<link>https://journal.lampetty.net/posts/wp/339/</link>
				<pubDate>Wed, 23 Sep 2009 14:09:14 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/339/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/tech/index.php/archives/338&#34;&gt;PerlでAmazon Product Advertising APIのBrowseNodeLookupを行なう&lt;/a&gt;の楽天版です。Amazon Product Advertising APIはRESTしかないのですが、楽天ウェブサービスはRESTとJSONに対応しているので、今回はJSONを使ってみます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>PerlでAmazon Product Advertising APIのBrowseNodeLookupを行なう</title>
				<link>https://journal.lampetty.net/posts/wp/338/</link>
				<pubDate>Tue, 22 Sep 2009 18:09:10 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/338/</guid>
				<description>&lt;p&gt;AmazonのProduct Advertising APIで、あるカテゴリの下にあるカテゴリ(BrowseNode)を取得するPerlスクリプトを書いてみました。最初は&lt;a href=&#34;http://search.cpan.org/dist/Net-Amazon/lib/Net/Amazon.pm&#34;&gt;Net::Amazon&lt;/a&gt;を使っていたのですが、オブジェクトを大量に生成するためかとてつもなく重いのと、返ってくるオブジェクトの構成がよくわからなかったので、自前で処理してみるとさくっとできました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAPC::Asia 2009に行ってきました(9.10)</title>
				<link>https://journal.lampetty.net/posts/wp/335/</link>
				<pubDate>Thu, 17 Sep 2009 15:09:41 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/335/</guid>
				<description>&lt;p&gt;2009/9/10,11に開催されたYAPC::Asia 2009に参加しました。今年はフレームワークやORM系のセッションがとても豪華で全部聞きたいなと思っていたので、迷うことなく有給を取って参加。というわけで殴り書きですがメモと感想を徒然に書いてみます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAPC::Asia 2009に行ってきました(9.11)</title>
				<link>https://journal.lampetty.net/posts/wp/337/</link>
				<pubDate>Fri, 11 Sep 2009 13:09:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/337/</guid>
				<description>&lt;p&gt;すごい今更ですが、記憶が残っているうちに9.11のYAPC::Asiaのレポートをば。2日目も色々セッションに参加したのですが、特に記憶に残っている最初の2つだけ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAPC::Asia 2009で聞く予定のセッション</title>
				<link>https://journal.lampetty.net/posts/wp/334/</link>
				<pubDate>Wed, 09 Sep 2009 16:09:55 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/334/</guid>
				<description>&lt;p&gt;明日はPerl Mongersの祭典YAPC::Asia 2009です。明日と明後日は仕事を休ませてもらって(!)、フルに参加したいと思ってます。というのも、今年のYAPCは本当に聴きたいセッションばっかりなのです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQL 5.1の最新版のdebパッケージを作成する方法</title>
				<link>https://journal.lampetty.net/posts/wp/331/</link>
				<pubDate>Sat, 29 Aug 2009 23:08:23 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/331/</guid>
				<description>&lt;p&gt;Ubuntu 9.04にはMySQL 5.1のパッケージが用意されているのですが、バージョンが5.1.31であり最新ではないので(現時点で最新は5.1.37)、最新版のdebパッケージを作成する方法を紹介します。debを作成するといっても、開発中のUbuntuに入っているmysql-server-5.1のソースを持ってきてビルドするだけなので、比較的お手軽にできます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>LLTVにちょっとだけ行ってきました</title>
				<link>https://journal.lampetty.net/posts/wp/330/</link>
				<pubDate>Sat, 29 Aug 2009 14:08:40 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/330/</guid>
				<description>&lt;p&gt;毎年やっているLL系のカンファレンスであるLLTVに今年も行ってきました。といっても今回は時間の都合で参加したのは&lt;a href=&#34;http://ll.jus.or.jp/2009/program/cloud/&#34; title=&#34;渡る世間は雲ばかり « Lightweight Language Television (LLTV)&#34;&gt;渡る世間は雲ばかり&lt;/a&gt;だけでしたが... というわけで簡単ながらレポートします。&lt;/p&gt;</description>
			</item>
			<item>
				<title>bashでコマンド履歴を残さない方法</title>
				<link>https://journal.lampetty.net/posts/wp/329/</link>
				<pubDate>Sat, 15 Aug 2009 14:08:47 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/329/</guid>
				<description>&lt;p&gt;bashには過去に実行したコマンドを履歴として残しているので、CTRL+pなどでその履歴をさかのぼり過去に実行したコマンドをそのまま実行したり、ちょこっと直して実行することができます。しかし、この便利な機能は一方で、 rm などのファイルを削除したりするような危険なコマンドを、履歴からいとも簡単に実行してしまい、結果として大切なファイルを消してしまったりするようなミスを誘発する恐れがあります。&lt;/p&gt;</description>
			</item>
			<item>
				<title>「謀略法廷」を読みました</title>
				<link>https://journal.lampetty.net/posts/wp/328/</link>
				<pubDate>Thu, 30 Jul 2009 14:07:46 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/328/</guid>
				<description>&lt;p&gt;ジョン・グリシャムの最新作が文庫本で発売になっていたので、すごく久々に小説を読みました。今回のこの小説は法廷モノというよりかは裁判の外での駆け引きがメインなので、いわゆる「弁護士と検事の闘い」というものではありません。&lt;/p&gt;</description>
			</item>
			<item>
				<title>モバイルSuicaにして良かったと思う5つのこと</title>
				<link>https://journal.lampetty.net/posts/wp/327/</link>
				<pubDate>Sun, 05 Jul 2009 17:07:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/327/</guid>
				<description>&lt;p&gt;先月ぐらいにやっとこさ携帯のモバイルSuica(とEdy)を導入してみました。年会費が1000円かかりますが、もう本当にこれなしでは生きていけないぐらい便利なものなので、具体的にどこが便利かを淡々と説明します。というかさせてください。&lt;/p&gt;</description>
			</item>
			<item>
				<title>RailsでTwitterのOAuthを試す</title>
				<link>https://journal.lampetty.net/posts/wp/323/</link>
				<pubDate>Sat, 20 Jun 2009 18:06:26 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/323/</guid>
				<description>&lt;p&gt;OAuthが前々から気になっていたので、RailsでTwitterのOAuthを使うサンプルを作成しました。OAuthについてはここでは詳しく説明しませんが、&lt;/p&gt;</description>
			</item>
			<item>
				<title>Redmine勉強会に参加してきました</title>
				<link>https://journal.lampetty.net/posts/wp/320/</link>
				<pubDate>Sun, 14 Jun 2009 00:06:15 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/320/</guid>
				<description>&lt;p&gt;Redmineのヘビーユーザではないのですが、&lt;a href=&#34;http://events.php.gr.jp/events/show/80&#34;&gt;Redmine勉強会&lt;/a&gt;に参加してきました。「ブログに書くまでが勉強会」ということで、雑記ながらログを残しておきます。それにしても大き過ぎず小さ過ぎずのいい勉強会でした。&lt;/p&gt;&#xA;&lt;p&gt;30分ぐらい遅刻したので最初の&lt;a href=&#34;http://d.hatena.ne.jp/yandod/20090612/1244824497&#34;&gt;yandod&lt;/a&gt;さんの&lt;a href=&#34;http://www.slideshare.net/yandod/20090612-redmine-draft&#34;&gt;発表&lt;/a&gt;は聞き逃してしまいました。&lt;/p&gt;&#xA;&lt;h3 id=&#34;redmine活用術--孤独なシス管の記録&#34;&gt;Redmine活用術　- 孤独なシス管の記録&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://d.hatena.ne.jp/kirara_397/&#34;&gt;kirara_397&lt;/a&gt;さん&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Tracはプロジェクトが複数ある場合に管理が大変だったのでRedmineに移行した&lt;/p&gt;</description>
			</item>
			<item>
				<title>BOSE サウンドドック シリーズIIを買いました</title>
				<link>https://journal.lampetty.net/posts/wp/319/</link>
				<pubDate>Sat, 13 Jun 2009 14:06:41 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/319/</guid>
				<description>&lt;p&gt;[tmkm-amazon]B001IO6R4U[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;そろそろCD-MDのコンポを処分したいなぁと思ったので、iPodを乗せられるタイプのスピーカーを探していたら、なんやかんやでBOSEがやっぱり音が良さそうということで買いました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressを2.8にアップグレード</title>
				<link>https://journal.lampetty.net/posts/wp/318/</link>
				<pubDate>Sat, 13 Jun 2009 14:06:31 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/318/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://ja.wordpress.org/2009/06/11/wordpress-28/&#34;&gt;WordPress 2.8がリリースされていた&lt;/a&gt;のでアップグレードしてみました。&lt;/p&gt;&#xA;&lt;p&gt;自分の場合は&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;データベースとファイルをバックアップ&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;zipファイルをダウンロードして解凍&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;rsync -Cavz wordpress/* path-to-wordpress/ してファイルをコピー&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apacheが&#34;Couldn&#39;t create accept lock&#34;で起動しない場合の対処方法</title>
				<link>https://journal.lampetty.net/posts/wp/317/</link>
				<pubDate>Wed, 10 Jun 2009 14:06:30 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/317/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://diary.lampetty.net/20070613.html&#34;&gt;これ&lt;/a&gt;の続編なのですが、複数人が共同で使っているサーバなどで、Apacheのプロセスを何個も起動していると、使える&lt;a href=&#34;http://itpro.nikkeibp.co.jp/article/COLUMN/20060602/239824/&#34;&gt;セマフォ&lt;/a&gt;がなくなるという事態に遭遇することがあります。対処方法は、Apacheを止めるか&lt;/p&gt;&#xA;&lt;p&gt;$ for semid in `ipcs -s | grep www-data | cut -f2 -d&amp;quot; &amp;quot;`; do ipcrm -s $semid; done&lt;/p&gt;&#xA;&lt;p&gt;としてセマフォを削除すれば解決しますが、どうしてもたくさんのApacheのプロセスを立ち上げたい場合は、kernelパラメータのkernel.semの値を大きくしてみると良いでしょう。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacBookのDVDドライブが故障</title>
				<link>https://journal.lampetty.net/posts/wp/314/</link>
				<pubDate>Tue, 19 May 2009 14:05:25 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/314/</guid>
				<description>&lt;p&gt;昨年10月に購入したMacBookアルミニウムMB466J/AのDVDドライブが、先週の日曜日に突然DVDを読めなくなってしまいました。DVDを入れると「ウィーン、ウィーン」と何か頑張ってる感じがして「先生、もう駄目です」みたいな感じでイジェクトされるという現象。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Firefoxの起動を速くするSQLite Optimizer</title>
				<link>https://journal.lampetty.net/posts/wp/312/</link>
				<pubDate>Sat, 16 May 2009 23:05:10 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/312/</guid>
				<description>&lt;p&gt;Firefoxは使っているうちになんとなく起動速度が遅くなっていくような傾向がありますが、起動を速くするアドオン&lt;a href=&#34;https://addons.mozilla.org/ja/firefox/addon/11198&#34;&gt;SQLite Optimizer&lt;/a&gt;を見つけました。(詳しくは&lt;a href=&#34;http://mozilla-remix.seesaa.net/article/118793069.html&#34;&gt;こちら&lt;/a&gt;)&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPress</title>
				<link>https://journal.lampetty.net/posts/wp/wordpress/</link>
				<pubDate>Sat, 16 May 2009 16:05:50 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/wordpress/</guid>
				<description>&lt;p&gt;2009年1月からブログをWordPressに移行しました。その過程で試したテーマやプラグインをざっくばらんに説明するページです。&lt;/p&gt;&#xA;&lt;h3 id=&#34;テーマ&#34;&gt;テーマ&lt;/h3&gt;&#xA;&lt;p&gt;ブログ開設当初から、テーマは&lt;/p&gt;</description>
			</item>
			<item>
				<title>先送り癖をなくす</title>
				<link>https://journal.lampetty.net/posts/wp/309/</link>
				<pubDate>Wed, 13 May 2009 14:05:33 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/309/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.php.co.jp/magazine/the21/?unique_issue_id=14295&#34;&gt;THE 21 2009年5月号&lt;/a&gt;の記事に「すぐやる人＝できる人」は世界共通の法則だ！という記事があって、その中の言葉に「メールを読み、そのメールをすぐ処理せず優先度を決めている人がいるが、結局優先度を決めるために1回、実際にメールを処理する際に1回、合計2回メールを読むことになり非効率だ」的なことが書いてありました。それを見てなんと目から鱗がおちたことか...&lt;/p&gt;</description>
			</item>
			<item>
				<title>Muninでサーバのリソース監視</title>
				<link>https://journal.lampetty.net/posts/wp/308/</link>
				<pubDate>Wed, 06 May 2009 12:05:05 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/308/</guid>
				<description>&lt;p&gt;サーバのリソース監視＆グラフ化を行なうソフトウェアは色々ありますが、今日は導入が簡単と言われている&lt;a href=&#34;http://munin.projects.linpro.no/&#34;&gt;Munin&lt;/a&gt;を紹介したいと思います。&lt;/p&gt;&#xA;&lt;p&gt;個人的に感じているMuninの良い点としては&lt;/p&gt;</description>
			</item>
			<item>
				<title>「ウェブユーザビリティの法則 改訂第2版」を読みました</title>
				<link>https://journal.lampetty.net/posts/wp/307/</link>
				<pubDate>Wed, 06 May 2009 09:05:25 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/307/</guid>
				<description>&lt;p&gt;[tmkm-amazon]4797339098[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;いまさら感が漂いますが、会社の同僚に借りて読んでみました。結論からいうとユーザビリティについて当たり前のことが簡潔にまとまっている良書です。自分用に一冊買おうかと思うぐらいでした。この本から学んだことはたくさんありましたが、記憶に残っている部分を箇条書きにしておきます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>サーバリプレース時にWordPressの移行ではまったこと</title>
				<link>https://journal.lampetty.net/posts/wp/305/</link>
				<pubDate>Sun, 03 May 2009 14:05:35 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/305/</guid>
				<description>&lt;p&gt;昨日のサーバリプレースでこのブログの移行も行なったのですが、&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;データはMySQLのデータベースに保存されているので、mysqldumpしてそれを新しいサーバでインポート&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ubuntu Linux 64bit版で32bit向けバイナリを使えるようにする</title>
				<link>https://journal.lampetty.net/posts/wp/304/</link>
				<pubDate>Sun, 03 May 2009 00:05:26 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/304/</guid>
				<description>&lt;p&gt;今回このブログのサーバをリプレースするにあたり、Ubuntu Linuxを32bitから64bit(amd64)にしたのですが、64bit環境で32bit向けのi386バイナリを実行する必要があったのでその方法をメモしておきます。結論から書くと&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressのテーマをHello :Dに変更</title>
				<link>https://journal.lampetty.net/posts/wp/302/</link>
				<pubDate>Sat, 02 May 2009 00:05:16 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/302/</guid>
				<description>&lt;p&gt;長らく使用していた&lt;a href=&#34;http://wordpress.org/extend/themes/inove&#34;&gt;iNove&lt;/a&gt;ですが、黒とグレーで覆われたカラーがダークな印象を与えているようで嫌だったので、もうちょっと優しい色のテーマを探していました。色々探したところ&lt;a href=&#34;http://hellowiki.com/2008/03/30/theme-hello-d-fixed/&#34;&gt;Hello :D&lt;/a&gt;がなかなかいい色使いだったので重い腰を上げてテーマを変更。&lt;/p&gt;&#xA;&lt;p&gt;デフォルトのままだと幾つか気になる点があったので以下の点を変更しました。これでだいぶ見やすくなってかなり満足です。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Debianではapt-getじゃなくてaptitudeを推奨</title>
				<link>https://journal.lampetty.net/posts/wp/301/</link>
				<pubDate>Thu, 30 Apr 2009 15:04:25 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/301/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.jp.debian.org/releases/stable/i386/release-notes/ch-whats-new.ja.html#pkgmgmt&#34;&gt;ここ&lt;/a&gt;を読んでて知ったのですが、Debianではetchからパッケージ管理のフロントエンドとして apt-get じゃなくて aptitude を推奨するようになっていたのですね。依存関係がなくなった時点でパッケージを削除したり、推奨レベルのパッケージを一緒にインストールすることができるのが理由っぽい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Ubuntu LinuxでSSDの寿命を延ばすための設定</title>
				<link>https://journal.lampetty.net/posts/wp/299/</link>
				<pubDate>Sun, 26 Apr 2009 17:04:34 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/299/</guid>
				<description>&lt;p&gt;SSDの寿命が本当に短いのか実験していないので何とも言えませんが、Ubuntu LinuxでSSDの寿命を延ばすために行なった設定を書いておきます。本当に延びるかは謎です。 &lt;/p&gt;</description>
			</item>
			<item>
				<title>Ubuntu Server版をインストール後にやった4つのこと</title>
				<link>https://journal.lampetty.net/posts/wp/297/</link>
				<pubDate>Sun, 26 Apr 2009 01:04:26 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/297/</guid>
				<description>&lt;p&gt;Ubuntu Linux 9.04(Jaunty Jackalope) のサーバ版をインストールした直後にやっておくべき作業の4つを覚え書きとしてまとめておきます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;ipアドレスを固定に&#34;&gt;IPアドレスを固定に&lt;/h3&gt;&#xA;&lt;p&gt;サーバ用途でDHCPというのはありえないので、固定IPに設定します。/etc/network/intafacesをエディタで開いて、まずDHCPでIPが自動に割り振られないように下記をコメントアウト。&lt;/p&gt;</description>
			</item>
			<item>
				<title>SSDのマシンにUbuntu 9.04 Serverをインストール</title>
				<link>https://journal.lampetty.net/posts/wp/295/</link>
				<pubDate>Sat, 25 Apr 2009 17:04:16 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/295/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/tech/index.php/archives/293&#34;&gt;先週購入したSSDのマシン&lt;/a&gt;を組み立てました。SSDは2.5インチなので3.5インチ用のマウンタを買ったのですが、けっきょくネジをちゃんと締めれば必要なかったり、SATAのポートが2本しかないのにDVD-ROMがSATA接続だったり色々トラブルがあって5時間近くかかってしまいました。あと今回買ったShuttleのケースはなんとCPUファンじゃなくヒートシンクのみの構成でした。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.flickr.com/photos/8250493@N05/3473998738/&#34; title=&#34;CPUファンがなくてヒートシンクだけ&#34;&gt;&lt;img src=&#34;http://static.flickr.com/3561/3473998738_6960d23aab.jpg&#34; alt=&#34;CPUファンがなくてヒートシンクだけ&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;セットアップは無事完了したので、このマシンにUbuntu 9.04 Server版(amd64)をインストール。通常の7200RPMのHDDでhdparmした結果とSSDのマシンでhdparmした結果はこんな感じ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>「すべての「見える化」で会社は変わる」を読みました</title>
				<link>https://journal.lampetty.net/posts/wp/294/</link>
				<pubDate>Sat, 25 Apr 2009 04:04:27 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/294/</guid>
				<description>&lt;p&gt;[tmkm-amazon]4788907534[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;会社経営に興味があるわけではないのですが、Amazonでやたら評価が高かったので気になって読みました。21世紀の会社経営について、どうしていけば良いのかを明確にしていてすごくわかりやすかったです。この本から学んだことを箇条書きにしてみます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Athlon X2 5050e＋メモリ4GB＋SSD 64GBで5万円</title>
				<link>https://journal.lampetty.net/posts/wp/293/</link>
				<pubDate>Mon, 20 Apr 2009 16:04:51 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/293/</guid>
				<description>&lt;p&gt;このサイトがある自宅サーバが&lt;a href=&#34;http://diary.lampetty.net/20051216.html#p02&#34;&gt;購入&lt;/a&gt;から3年を迎えたので、マシンの買い替えを検討。Pentium Dual-Core系でいくかAthlon X2でいくかで悩みましたが、省電力性と価格でAthlon X2 5050eで行くことに決めました。構成としては以下のスペックで、(64GBのSSDを買ったのに)なんと4万9000円に抑えられました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>mysqldumpでバックアップをする時につけるオプション</title>
				<link>https://journal.lampetty.net/posts/wp/292/</link>
				<pubDate>Sat, 18 Apr 2009 03:04:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/292/</guid>
				<description>&lt;p&gt;MySQLのデータベースをバックアップする際にmysqldumpを使用しますが、個人的に「これはつけたらよさそう」と思っているオプションを紹介します。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apache</title>
				<link>https://journal.lampetty.net/posts/wp/apache/</link>
				<pubDate>Thu, 16 Apr 2009 16:04:54 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/apache/</guid>
				<description>&lt;p&gt;世界で一番使われているWebサーバ &amp;quot;Apache&amp;quot; についてのリンク集です。&lt;/p&gt;&#xA;&lt;h3 id=&#34;本家のドキュメント&#34;&gt;本家のドキュメント&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://httpd.apache.org/docs/2.2/&#34;&gt;Apache本家のドキュメント&lt;/a&gt;は非常に充実していることで有名です。各ディレクティブの詳細やmod_**** のモジュールの解説など、とても詳しく書かれています(さらにほぼ日本語化されてます！)。なのでわからないことがあったらまずは本家のドキュメントを読んでみることをお勧めします。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressの投稿にはてブのコメントを表示するプラグイン</title>
				<link>https://journal.lampetty.net/posts/wp/290/</link>
				<pubDate>Thu, 16 Apr 2009 16:04:40 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/290/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.func09.com/wordpress/archives/505&#34;&gt;このエントリ&lt;/a&gt;のようにはてブのコメントをブログ内で展開するのってどんなプラグインなのだろう、と思って調べたら&lt;a href=&#34;http://wppluginsj.sourceforge.jp/hatena-bookmark-anywhere/&#34;&gt;Hatena bookmark anywhere&lt;/a&gt;というものでした。というわけで早速インストールしてみて&lt;a href=&#34;https://journal.lampetty.net/tech/index.php/archives/288&#34;&gt;こんな感じ&lt;/a&gt;になりました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apacheでリバースプロキシ(mod_proxy)を活用する(3) - 負荷分散編</title>
				<link>https://journal.lampetty.net/posts/wp/288/</link>
				<pubDate>Sun, 12 Apr 2009 13:04:20 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/288/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/wp/246&#34;&gt;前回のApacheでリバースプロキシ(mod_proxy)を活用する(2) - 設定編&lt;/a&gt;ではフロントエンドのリバースプロキシとバックエンドのCGIサーバの設定を行ないました。今回は、サイトの負荷が大きくなってきた時にバックエンドのサーバを複数台にする設定を説明します。イメージ図としては下記のような感じです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacBookのメモリ(1GB)とマザーボード(MSI 761GM2-V)売却</title>
				<link>https://journal.lampetty.net/posts/wp/287/</link>
				<pubDate>Sun, 05 Apr 2009 04:04:40 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/287/</guid>
				<description>&lt;p&gt;タイトルの通りまたまた渋谷ビックカメラのsofmapで売ってきました。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;204P 1GB PC3-8500: ¥1000&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;MSI 761GM2-V(廉価なMicroATXのマザー): ¥700&lt;/p&gt;</description>
			</item>
			<item>
				<title>優れたビジネスマンと経営者は必ずしもイコールではない</title>
				<link>https://journal.lampetty.net/posts/wp/286/</link>
				<pubDate>Sat, 04 Apr 2009 16:04:24 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/286/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.arcarna.com/harada/?p=48&#34; title=&#34;アルカーナな日々 » 経営者とビジネスと&#34;&gt;アルカーナな日々 » 経営者とビジネスと&lt;/a&gt;のエントリーの&lt;/p&gt;&#xA;&lt;p&gt;経営者は、組織を考え、人事を考え、事業の総体を考える。そして、その上に（あるいは下に）ビジネスがのっかってくる。多分、その上のような気もするが、どっちもどっちかもしれない。&lt;/p&gt;</description>
			</item>
			<item>
				<title>RedmineでCSVのユーザ情報をまとめて登録するスクリプト</title>
				<link>https://journal.lampetty.net/posts/wp/285/</link>
				<pubDate>Fri, 20 Mar 2009 05:03:23 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/285/</guid>
				<description>&lt;p&gt;Web上からチマチマ登録するのもあれだったので、CSVのユーザ情報を一括で users テーブルにぶち込むためのスクリプトを作りました。作った後にタイムゾーンとかの設定が users テーブルじゃなくて user_preferences にあることを知りましたが、あまり細かいことを追求する時間はなかったので、とりあえず&lt;a href=&#34;http://coderepos.org/share/browser/platform/redmine/contrib/add_users_from_csv.rb&#34;&gt;codereposにアップしました&lt;/a&gt;。ご自由にお使い下さい。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Nagiosのメモ</title>
				<link>https://journal.lampetty.net/posts/wp/284/</link>
				<pubDate>Wed, 18 Mar 2009 16:03:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/284/</guid>
				<description>&lt;p&gt;ここ最近Nagiosを設定する機会があったのですが、なかなか設定を覚えるのに時間がかかったので備忘録的な自分へのメモ。&lt;/p&gt;&#xA;&lt;h3 id=&#34;そもそもnagiosって&#34;&gt;そもそもNagiosって？&lt;/h3&gt;&#xA;&lt;p&gt;サーバや特定のポートの死活監視を行うソフトウェア。死んでいる場合は設定した連絡先にメールを送ったりすることができます。昔はNetSaintという名前でした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacBookをデュアルディスプレイ化</title>
				<link>https://journal.lampetty.net/posts/wp/279/</link>
				<pubDate>Sat, 07 Mar 2009 23:03:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/279/</guid>
				<description>&lt;p&gt;[tmkm-amazon]B001I91IF8[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;↑を使ってMacBookにデルの20インチのモニタを接続してみました。マウスカーソルをメインウィンドウの左側に持っていくと2つ目のディスプレイにカーソルが移動する、いわゆる「デュアルディスプレイ」環境になったのでこの点は満足なのですが、Spacesとシームレスに統合できないのがちょっと残念です。というのは、普段MacBookを使っている場合はSpacesの2番目の領域にiTunes、3番目の領域にVMware Fusion、というように切り替えているのですが、2番目の領域に2つ目のモニタを割り当てられれば、モニタを外している場合でも特にそれを意識する必要がない、ということです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>「Web担当者 現場のノウハウ SEOスペシャル 2009 冬号」を読みました</title>
				<link>https://journal.lampetty.net/posts/wp/278/</link>
				<pubDate>Tue, 03 Mar 2009 14:03:11 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/278/</guid>
				<description>&lt;p&gt;[tmkm-amazon]4844326503[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;発売されてから2ヶ月ぐらい経ってしまったのですが、ようやっと読み終わりました。雑誌ということで、普通の書籍より先端的な情報が入っていて非常に参考になる雑誌でした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Redmine 0.8.1をPhusion Passengerで動かす</title>
				<link>https://journal.lampetty.net/posts/wp/276/</link>
				<pubDate>Thu, 19 Feb 2009 15:02:19 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/276/</guid>
				<description>&lt;h3 id=&#34;はじめに---phusion-passengerとは&#34;&gt;はじめに - Phusion Passengerとは&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/tech/index.php/archives/266&#34;&gt;Redmine 0.8.0をインストール&lt;/a&gt;の記事を書いた直後に0.8.1がリリースされていたので、アップデートがてら&lt;a href=&#34;http://www.modrails.com/&#34;&gt;Phusion Passenger&lt;/a&gt;を使ってApacheでRemineを動かしてみたいと思います。Phusion Passengerとは、別名mod_railsとも呼ばれるApacheモジュールとして実装されたRailsの実行環境で、インストールや設定が簡単なのが特徴です。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apache &#43; mod_fcgid &#43; tDiaryでrubyプロセスが残りっぱなし</title>
				<link>https://journal.lampetty.net/posts/wp/275/</link>
				<pubDate>Mon, 16 Feb 2009 12:02:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/275/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://diary.lampetty.net/&#34;&gt;古いおいぬま日報(不定期)&lt;/a&gt;のtDiaryなのですが、Ubuntu 8.10にしてからどうも調子が悪くて悩んでいます(*1)。というのは、tDiaryをapacheのmod_fcgid で動かしているのですが、CPU使用率100%近くなっているFastCGIのrubyプロセスがずっと残りっぱなしになっているようなのです。おかげで無駄にCPUリソースを食って非エコ状態になっています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>検索エンジンに正規のURLを教えるcanonical属性</title>
				<link>https://journal.lampetty.net/posts/wp/271/</link>
				<pubDate>Sat, 14 Feb 2009 05:02:54 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/271/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.sem-r.com/09/20090213153711.html&#34; title=&#34;検索エンジン3社、正しいサイトURLを認識させるcanonical属性を導入（URLの正規化） :: SEM R&#34;&gt;検索エンジン3社、正しいサイトURLを認識させるcanonical属性を導入（URLの正規化） :: SEM R&lt;/a&gt;で取り上げられていますが、効果測定などのために「同じコンテンツを返すけど異なるURLを持つページ」で「正規のURLはこれだよ」と検索エンジンに伝えるcanonical属性のサポートがGoogle, Yahoo, Microsoftで始まったようです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YUI Compressorを使ってWordPressのjsファイルを圧縮する</title>
				<link>https://journal.lampetty.net/posts/wp/270/</link>
				<pubDate>Thu, 12 Feb 2009 15:02:59 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/270/</guid>
				<description>&lt;p&gt;Webサイト高速化の手法の一つとして、Steve Souders さんが唱えている&amp;quot;&lt;a href=&#34;http://developer.yahoo.com/performance/rules.html#minify&#34;&gt;Minify JavaScript and CSS&lt;/a&gt;&amp;quot; (JavaScriptとCSSを圧縮せよ) というのがあります。若干今更感がありますが、ちょっとでも高速化するために、このブログで使用しているiNoveテーマのJSファイルを&lt;a href=&#34;http://developer.yahoo.com/yui/compressor/&#34;&gt;YUI Compressor&lt;/a&gt;を使って圧縮してみました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Firefoxで覚えておくと便利なショートカット</title>
				<link>https://journal.lampetty.net/posts/wp/268/</link>
				<pubDate>Wed, 11 Feb 2009 09:02:57 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/268/</guid>
				<description>&lt;p&gt;ただの自分用のメモですが。本家のショートカットのページで全部網羅されてます。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ctrl + T : 空のタブを開く&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ctrl + Tab : タブを移動&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Ctrl + Shift + T : 最後に閉じたタブを復活(Tab Mix Plusを入れている場合)&lt;/p&gt;</description>
			</item>
			<item>
				<title>iTunesで再生中の曲の歌詞をダウンロードできるLyrics Master</title>
				<link>https://journal.lampetty.net/posts/wp/267/</link>
				<pubDate>Wed, 11 Feb 2009 08:02:18 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/267/</guid>
				<description>&lt;p&gt;iTunesと連携して現在再生中の曲の歌詞をダウンロードして表示するソフト&lt;a href=&#34;http://www.kenichimaehashi.com/lyricsmaster/&#34;&gt;Lyrics Master&lt;/a&gt;というものを見つけました。ダウンロードしてきた歌詞をiTunes, iPodに保存することもできます。完全に自動的にiTunesに歌詞のデータを保存するのは難しいっぽいですが、これだけでも十分素晴らしいです。これでデジタル音楽ライフがまた少し盛り上がりそう。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Redmine 0.8.0をインストール</title>
				<link>https://journal.lampetty.net/posts/wp/266/</link>
				<pubDate>Wed, 11 Feb 2009 05:02:39 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/266/</guid>
				<description>&lt;p&gt;「使ってみないとその善し悪しはわかりません」ということで、プロジェクト管理ツールである&lt;a href=&#34;http://www.redmine.org/&#34;&gt;Redmine&lt;/a&gt;をインストールしてみました。&lt;a href=&#34;http://www.redmine.org/wiki/redmine/RedmineInstall&#34;&gt;Installing Redmine&lt;/a&gt;通りにやっても微妙にうまくいかなかったので備忘録がてらメモを残しておきます。環境はUbuntu 8.10 + MySQL 5.0.67です。&lt;/p&gt;</description>
			</item>
			<item>
				<title>モバイルサイトのアクセス解析をGoogle Analyticsで行なうことについて</title>
				<link>https://journal.lampetty.net/posts/wp/265/</link>
				<pubDate>Wed, 11 Feb 2009 02:02:42 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/265/</guid>
				<description>&lt;p&gt;selene.GA4Kを入れてこのブログのモバイル版にもアクセス解析のコードをいれていたのですが、実際にやってみて思ったのは&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;そもそもPCサイトとモバイルサイトではUIやリンク構造が全く違うので、直帰率とか1セッションあたりのPV数などごちゃ混ぜになってしまってデータがおかしくなってしまう&lt;/p&gt;</description>
			</item>
			<item>
				<title>「アクセス解析 徹底活用術 ~ネットで売上を増やす!~」を読みました</title>
				<link>https://journal.lampetty.net/posts/wp/264/</link>
				<pubDate>Mon, 09 Feb 2009 17:02:38 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/264/</guid>
				<description>&lt;p&gt;[tmkm-amazon]4839926018[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;仕事でサイトの運営をやっているのですが、こういうアクセス解析の教科書的な本を真面目に読んだことがなかったので買いました。&lt;/p&gt;&#xA;&lt;p&gt;構成としては&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;アクセスログ解析の必要性&lt;/p&gt;</description>
			</item>
			<item>
				<title>「入門Redmine Linux/Windows対応」を読みました</title>
				<link>https://journal.lampetty.net/posts/wp/262/</link>
				<pubDate>Sun, 08 Feb 2009 03:02:50 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/262/</guid>
				<description>&lt;p&gt;[tmkm-amazon]4798021377[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.redmine.org/&#34; title=&#34;Redmine&#34;&gt;Redmine&lt;/a&gt;がソフトウェアの開発管理を行う上で気になっていたので買って読んでみました。読み終わって思ったのは**これ、便利そう！**ということ。似ているソフトウェアとしては&lt;a href=&#34;http://trac.edgewall.org/&#34;&gt;Trac&lt;/a&gt;というものがありますが、Redmineが優れている点として&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;SubversionなどのSCMの対応状況。Git, Mercurial, Bazaar, CVSにも対応している。TracはSubversionのみ プラグインを入れることでTracでもこれらのSCMに対応できるようです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>GA4Kでクローラーのアクセスを除外するパッチ</title>
				<link>https://journal.lampetty.net/posts/wp/260/</link>
				<pubDate>Sat, 07 Feb 2009 13:02:04 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/260/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://tech.lampetty.net/tech/index.php/archives/252&#34; title=&#34;Google Analyticsを携帯サイトで利用するためのGA4Kにバグ？&#34;&gt;Google Analyticsを携帯サイトで利用するためのGA4Kにバグ？&lt;/a&gt;と書きましたが、ちゃんと検索エンジンのクローラーのアクセスを除外するようなパッチを書いてみました。マニュアルには「クローラからのアクセスを無視するための設定手順」というのがあるのですが、クローラーはUserAgentを携帯端末のように詐称してくるので、これが機能してないように思います。&lt;/p&gt;</description>
			</item>
			<item>
				<title>「できる100ワザ SEO &amp; SEM」読みました</title>
				<link>https://journal.lampetty.net/posts/wp/258/</link>
				<pubDate>Sat, 07 Feb 2009 04:02:41 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/258/</guid>
				<description>&lt;p&gt;[tmkm-amazon]4844323024[/tmkm-amazon]&lt;/p&gt;&#xA;&lt;p&gt;SEOの基本中の基本を理解したかったので買いました。&lt;/p&gt;&#xA;&lt;p&gt;まずは検索エンジンで「実際に検索されているキーワード」を見極めてそれをHTMLに落とし込んでいくやり方が書いてあります。初版が2006年なので最新の情報はカバーされていませんが、Google Analyticsによるアクセス解析の方法（のさわり）まで盛り込まれています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WP-Syntaxをインストールしてソースコードをカラー表示</title>
				<link>https://journal.lampetty.net/posts/wp/255/</link>
				<pubDate>Fri, 06 Feb 2009 15:02:12 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/255/</guid>
				<description>&lt;p&gt;WordPressでのデフォルトのソースコードの表示がいまいち気に入らなかったので、これを綺麗にカラー表示してくれるプラグイン&lt;a href=&#34;http://wordpress.org/extend/plugins/wp-syntax/&#34;&gt;WP-Syntaxプラグイン&lt;/a&gt;をインストールしました。&lt;/p&gt;&#xA;&lt;p&gt;で、このプラグインの良い点4つほど。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressで試したテーマ</title>
				<link>https://journal.lampetty.net/posts/wp/245/</link>
				<pubDate>Fri, 06 Feb 2009 14:02:53 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/245/</guid>
				<description>&lt;p&gt;WordPressをインストールしてから1ヶ月の間に試してそこそこ良かったテーマです。色々と試したりしたのですが、最終的に悩んだものは以下の3つでした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Google Analyticsを携帯サイトで利用するためのGA4K 1.1.0にバグ？</title>
				<link>https://journal.lampetty.net/posts/wp/252/</link>
				<pubDate>Thu, 05 Feb 2009 16:02:48 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/252/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/tech/index.php/archives/220&#34;&gt;WordPressをモバイル対応させるプラグインKtai StyleとGoogle Analyticsでのアクセス解析&lt;/a&gt;でGoogle Analyticsを携帯サイトで利用するためのライブラリ&lt;a href=&#34;http://eos.exbridge.jp/projects/show/ga4k&#34;&gt;GA4K&lt;/a&gt;を導入したと書きましたが、ちょっと挙動があやしかったので一時的に使用をやめていました。(GA4Kのバージョンは1.1.0)&lt;/p&gt;&#xA;&lt;p&gt;というのも、どうやらクローラーのアクセスもカウントしている節があるのです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ケータイ対応だけじゃ駄目だよね</title>
				<link>https://journal.lampetty.net/posts/wp/250/</link>
				<pubDate>Wed, 04 Feb 2009 12:02:36 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/250/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.castle104.com/blog/?p=656&#34;&gt;ミクシィのケータイへのシフトを読み解く at Naofumi Kagami&lt;/a&gt;というエントリの最後の方に書いてある&lt;/p&gt;&#xA;&lt;p&gt;日本のインターネット産業には、安易に携帯電話にシフトするのではなく、パソコンでのビジネスモデルをどのように発展させていくかということをもっと真剣にやってもらいたいと思っています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>UQ WiMAXモニターに申し込みました</title>
				<link>https://journal.lampetty.net/posts/wp/249/</link>
				<pubDate>Tue, 03 Feb 2009 17:02:37 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/249/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.itmedia.co.jp/news/articles/0902/03/news074.html&#34;&gt;IT Mediaの記事&lt;/a&gt;によると&lt;/p&gt;&#xA;&lt;p&gt;KDDIや米Intel Capitalなど6社が出資するUQコミュニケーションズは2月3日、モバイルWiMAXサービス「UQ WiMAX」の無償トライアルを2月26日に始めると発表した。有料の本サービスは7月1日にスタート。月額4480円で使い放題になる。&lt;/p&gt;</description>
			</item>
			<item>
				<title>FirefoxでDNSプリフェッチを行うアドオン</title>
				<link>https://journal.lampetty.net/posts/wp/247/</link>
				<pubDate>Sun, 01 Feb 2009 05:02:07 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/247/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.atmarkit.co.jp/news/analysis/200812/22/chrome.html&#34;&gt;Chromeはなぜ速いのか − ＠IT&lt;/a&gt;の記事でDNSプリフェッチで高速化をしているということが載っていたので、Firefoxで同じことができないかを調べていたら、&lt;a href=&#34;https://addons.mozilla.org/ja/firefox/addon/8923&#34;&gt;DNS Prefetch :: Firefox Add-ons&lt;/a&gt;というそのままずばりのアドオンを見つけました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressをインストールしてからインストールしたプラグイン</title>
				<link>https://journal.lampetty.net/posts/wp/244/</link>
				<pubDate>Fri, 30 Jan 2009 14:01:15 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/244/</guid>
				<description>&lt;p&gt;WordPressをインストールしてからそろそろ1ヶ月になるので、その間にインストールしたプラグインをまとめてみました。全部実用に足るものだったので個人的にはおすすめです。*印がついているものはこのブログの該当エントリーへのリンクで、それ以外はプラグイン本体へのリンクです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apacheでリバースプロキシ(mod_proxy)を活用する(1) - インストール編</title>
				<link>https://journal.lampetty.net/posts/wp/238/</link>
				<pubDate>Wed, 28 Jan 2009 17:01:57 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/238/</guid>
				<description>&lt;p&gt;Apacheはとてもとても有名なWeb Serverですが、今日はそのチューニング方法の一つであるリバースプロキシについて書きたいと思います。&lt;/p&gt;&#xA;&lt;h3 id=&#34;webサーバの種類&#34;&gt;Webサーバの種類&lt;/h3&gt;&#xA;&lt;p&gt;一口にWebサーバと言っても、ダイナミックなWebコンテンツを生成するサイトにおいてWebサーバがserveするものは2種類あります。一つはプログラムで動的に生成されるHTMLファイル。もう一つがGIFやJPEG, PNGなどの画像、および Flash, JavaScript, CSSなどの静的なファイルです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ブログのファイルをSubversionリポジトリで管理するように</title>
				<link>https://journal.lampetty.net/posts/wp/231/</link>
				<pubDate>Sun, 25 Jan 2009 13:01:40 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/231/</guid>
				<description>&lt;p&gt;色々気になるところがあってiNoveのテーマのファイルをいじりまくっているのですが、テーマをバージョンアップするとせっかく施した修正が吹っ飛んでしまうので、どこをどう修正したのかを管理するためにSubversionでバージョン管理するようにしました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressをモバイル対応させるプラグインKtai StyleとGoogle Analyticsでのアクセス解析</title>
				<link>https://journal.lampetty.net/posts/wp/220/</link>
				<pubDate>Sat, 24 Jan 2009 18:01:06 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/220/</guid>
				<description>&lt;p&gt;先週ぐらいにWordPressをモバイルに対応させるプラグイン&lt;a href=&#34;http://wppluginsj.sourceforge.jp/ktai_style/&#34;&gt;Ktai Style&lt;/a&gt;を導入したのですが、Google Analyticsだとモバイルサイトのアクセス解析ができなくってどうしようかと思っていたら、&lt;a href=&#34;http://ke-tai.org/blog/2009/01/16/selenga4k/&#34;&gt;ケータイサイトでGoogle Analyticsを利用するためのライブラリ&lt;/a&gt;という記事があったので早速試してみました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>このブログにLDRizeを設定</title>
				<link>https://journal.lampetty.net/posts/wp/207/</link>
				<pubDate>Thu, 22 Jan 2009 16:01:02 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/207/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://tech.lampetty.net/tech/index.php/archives/202&#34;&gt;昨日のAutoPagerize&lt;/a&gt;に引き続き、&lt;a href=&#34;http://white.s151.xrea.com/wiki/index.php?script%2FLDRize&#34;&gt;LDRize&lt;/a&gt;も設定しました。LDRizeは&lt;a href=&#34;http://white.s151.xrea.com/wiki/index.php?script%2FLDRize%2Fsiteinfo&#34;&gt;script/LDRize/siteinfo&lt;/a&gt;のWikiに追記すると設定できますが、例によって一旦ローカルでうまく動くか試すのがよいでしょう。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Greasemonkeyのアイコンを右クリック&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ユーザスクリプトの管理&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;LDRizeを選択&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;”編集”ボタンをクリック&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;してスクリプトを開き、var SITEINFO に以下を追加します。&lt;/p&gt;</description>
			</item>
			<item>
				<title>このブログにAutoPagerizeを設定</title>
				<link>https://journal.lampetty.net/posts/wp/202/</link>
				<pubDate>Wed, 21 Jan 2009 16:01:39 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/202/</guid>
				<description>&lt;p&gt;タイトル通り、このブログに&lt;a href=&#34;http://userscripts.org/scripts/show/8551&#34;&gt;AutoPagerize&lt;/a&gt;を設定しました。これでGreasemonkeyでAutoPagerizeを入れている人はちょっと幸せになれるはず。今回も&lt;a href=&#34;http://wedata.net/databases/AutoPagerize/items&#34;&gt;wedata&lt;/a&gt;を使っているのですが、ここに書き込む前にローカルで動作確認をしました。具体的には&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Greasemonkeyのアイコンを右クリック&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;ユーザスクリプトの管理&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;AutoPagerizeを選択&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&amp;quot;編集&amp;quot;ボタンをクリック&lt;/p&gt;</description>
			</item>
			<item>
				<title>デザインが崩れてました...</title>
				<link>https://journal.lampetty.net/posts/wp/197/</link>
				<pubDate>Sun, 18 Jan 2009 05:01:35 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/197/</guid>
				<description>&lt;p&gt;投稿を表示するページをIEまたはSafariで表示するとデザインが崩れてました。あらためてクロスブラウザチェックの必要性を感じた今日この頃orz...&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressでフォントサイズを変更できるようにするプラグイン</title>
				<link>https://journal.lampetty.net/posts/wp/194/</link>
				<pubDate>Sat, 17 Jan 2009 13:01:01 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/194/</guid>
				<description>&lt;p&gt;どうもこの&lt;a href=&#34;http://wordpress.org/extend/themes/inove&#34;&gt;iNove&lt;/a&gt;というテーマのフォントサイズが小さい(bodyタグで12px指定)のが無性に気になったので、WordPressでフォントサイズを変更できるプラグインがないかを探してみたら、&lt;a href=&#34;http://wordpress.org/extend/plugins/wp-chgfontsize/&#34;&gt;WP-chgFontSize&lt;/a&gt;というそのままずばりのものを発見しました。&lt;/p&gt;&#xA;&lt;p&gt;インストールはいつものようにファイルをダウンロード→解凍→wp-content/plugins に移動→管理画面から有効化するだけです。で、管理画面から設定をするんですが、フォントサイズの単位が px, em, %が選べるので、自分は&lt;a href=&#34;http://webtech-walker.com/archive/2008/05/16032443.html&#34;&gt;font-sizeのパーセント表記一覧 - Webtech Walker&lt;/a&gt;を参考にさせてもらい、パーセンテージ指定にしました。具体的には&lt;/p&gt;</description>
			</item>
			<item>
				<title>Google Notebookが開発終了</title>
				<link>https://journal.lampetty.net/posts/wp/187/</link>
				<pubDate>Thu, 15 Jan 2009 15:01:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/187/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://google-mania.net/archives/1118&#34;&gt;Google Mania&lt;/a&gt;経由で知ったのですが、&lt;a href=&#34;http://www.google.com/notebook/&#34;&gt;Google Notebook&lt;/a&gt;の開発が中止され、今後新機能が追加されなくなるようです。ちょっとしたメモ書きを残すのに便利に使っていたので、非常にショックです。ただ、開発は中止になってもサービス自体は継続されるらしいので、しばらくは利用できるらしいのですが、先行き不安...&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLをインストールした後に設定する項目</title>
				<link>https://journal.lampetty.net/posts/wp/174/</link>
				<pubDate>Wed, 14 Jan 2009 16:01:35 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/174/</guid>
				<description>&lt;p&gt;MySQL 5.5用の設定は[permalink id=471]こちら[/permalink]&lt;/p&gt;&#xA;&lt;p&gt;自分がMySQLをインストールしたあとに行う設定を備忘録がてら書いてみます。サーバのスペックによって若干変動するところもありますが、チューニングする項目というのは大体こんなもんでしょう。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressに関連する投稿を表示するSimilar Postsプラグインを入れてみた</title>
				<link>https://journal.lampetty.net/posts/wp/156/</link>
				<pubDate>Mon, 12 Jan 2009 16:01:32 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/156/</guid>
				<description>&lt;p&gt;WordPressで現在表示している投稿に関連するものを自動で抽出して表示するプラグインである&lt;a href=&#34;http://rmarsh.com/plugins/similar-posts/&#34;&gt;Similar Posts&lt;/a&gt;を入れてみました。インストールは、このプラグインが必要とする&lt;a href=&#34;http://rmarsh.com/plugins/post-plugin-library/&#34;&gt;Post Plugin Library&lt;/a&gt;というものが必要なので、これもあわせてダウンロードしていつものようにwp-content/plugins/ に放り込んで管理画面から有効化するだけです。あとは管理画面で表示する投稿の数を設定したり、カテゴリをこえて関連する投稿を表示するかなどの設定をします。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressに All in One SEO Pack を入れてみた</title>
				<link>https://journal.lampetty.net/posts/wp/131/</link>
				<pubDate>Sun, 11 Jan 2009 04:01:44 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/131/</guid>
				<description>&lt;p&gt;WordPressでのSEO対策の定番らしい&lt;a href=&#34;http://wp.uberdose.com/2007/03/24/all-in-one-seo-pack/&#34;&gt;All in One SEO Pack&lt;/a&gt;。これを入れると&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TOPページにmetaタグのkeywordsやdescriptionが設定できる&lt;/li&gt;&#xA;&lt;li&gt;記事ごとにmetaタグのkeywordsやdescriptionが設定できる&lt;/li&gt;&#xA;&lt;li&gt;それぞれの投稿ページのタイトルを「タイトル | ブログのタイトル」のように設定できる&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;ので入れてみました。インストール自体はお決まりの wp-content/plugins/ に放り込んで管理画面から有効にするだけ。実際に使っていて気になったのが、出力されるmetaタグの位置。テーマによるのかもしれませんが、CSSやJavaScriptの後ろに来ちゃっているのでこれをなんとかしたいです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Apacheが出力するServerヘッダを隠す</title>
				<link>https://journal.lampetty.net/posts/wp/124/</link>
				<pubDate>Sat, 10 Jan 2009 11:01:21 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/124/</guid>
				<description>&lt;p&gt;Apacheでは何も設定しないとデフォルトでレスポンスヘッダーに&lt;/p&gt;&#xA;&lt;p&gt;Server: Apache&lt;/p&gt;&#xA;&lt;p&gt;のような情報を残してしまいます。ServerTokens ProductOnly としてもApacheであることは隠せないので、mod_headersを使って&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressでFeedのURLを変える</title>
				<link>https://journal.lampetty.net/posts/wp/120/</link>
				<pubDate>Sat, 10 Jan 2009 06:01:11 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/120/</guid>
				<description>&lt;p&gt;もともとFeedBurnerを使っていたので、WordPressが生成するFeedのURLを変えたいと思って色々ぐぐっていたら、&lt;a href=&#34;http://niiyan.s8.xrea.com/blosxom/wordpress/wordpress-feedburner-feedsmith-plugin.htm&#34;&gt;そのままずばりのことを書いている&lt;/a&gt;方がいらっしゃいました。というわけでありがたくそのままやってみると管理画面からFeedのURLを入力するだけで見事変わりました。&lt;/p&gt;&#xA;&lt;p&gt;オリジナルのソースは&lt;a href=&#34;http://www.google.com/support/feedburner/bin/answer.py?answer=78483&amp;amp;topic=13252&#34;&gt;Creating your WordPress feed (self-hosted WordPress)&lt;/a&gt;に書いてあって、FeedBurner自体がこのような情報提供を行っていることにちょっと驚き。WordPressってやはりすごい使われているのですな。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressでパンくずを表示するプラグイン</title>
				<link>https://journal.lampetty.net/posts/wp/109/</link>
				<pubDate>Sat, 10 Jan 2009 05:01:55 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/109/</guid>
				<description>&lt;p&gt;ユーザビリティ兼SEO対策としてパンくずを表示できるプラグインを探していたところ、&lt;a href=&#34;http://sw-guide.de/wordpress/plugins/breadcrumb-nav-xt/&#34;&gt;Breadcrumb Navigation XT&lt;/a&gt;というのがメジャーらしいのでこれを使ってみました。プラグイン自体はダウンロードしてwp-content/plugins/ に放り込んで管理画面から有効化するだけなのですが、ちょっと面倒なのが現在使用しているテーマのファイルをいじってパンくずを表示したい箇所にコードを挿入しなくてはいけないこと。&lt;/p&gt;</description>
			</item>
			<item>
				<title>WordPressに移行しました</title>
				<link>https://journal.lampetty.net/posts/wp/118/</link>
				<pubDate>Fri, 09 Jan 2009 14:01:26 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/118/</guid>
				<description>&lt;p&gt;約5年間使ってきたtDiaryですが、やっぱりイマイチレスポンスが遅いのとWordPressの方が圧倒的に使いやすいのでこちらに移行しました。RSSはFeedBurnerなので今から新しい方が出るように直してます。こういう時には便利なサービスだなぁ。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MySQLでテーブルのコピーを簡単に作る方法</title>
				<link>https://journal.lampetty.net/posts/wp/273/</link>
				<pubDate>Sat, 22 Nov 2008 22:11:18 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/273/</guid>
				<description>&lt;p&gt;hogeテーブルをhoge_20081123というテーブルにコピーする方法。&lt;/p&gt;&#xA;&lt;p&gt;/* hogeテーブルのスキーマをコピーしてテーブル作成 */&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;CREATE TABLE hoge_20081123 LIKE hoge;&#xA;/* hogeテーブルのデータをINSERT */&#xA;INSERT INTO hoge_20081123 SELECT * FROM hoge;&lt;/p&gt;</description>
			</item>
			<item>
				<title>MacBookを買ってからやったことやインストールしたアプリなど</title>
				<link>https://journal.lampetty.net/posts/wp/82/</link>
				<pubDate>Tue, 28 Oct 2008 14:10:29 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/82/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://japanese.engadget.com/2008/10/14/macbook-hands-on/&#34;&gt;2008年10月に発売になったアルミボディのMacBook&lt;/a&gt;を買いました。自分にはこれが初めてのMacで右も左もわからないのですが、ひとまずインストールしたソフトや行った設定などをつらつらと書いてみます。&lt;/p&gt;&#xA;&lt;h3 id=&#34;インストールしたアプリ&#34;&gt;インストールしたアプリ&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://mozilla.jp/firefox/&#34;&gt;Firefox&lt;/a&gt; : Safariでもよいのですがやはりアドオンの豊富さが魅力。ちなみに私のインストールしているアドオンは&lt;a href=&#34;http://diary.lampetty.net/20080620.html&#34;&gt;こちら&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.videolan.org/vlc/&#34;&gt;VLC&lt;/a&gt; : DVDや動画の再生プレーヤー&lt;/p&gt;</description>
			</item>
			<item>
				<title>Perlでパッケージに定義されているメソッドを出力する</title>
				<link>https://journal.lampetty.net/posts/wp/274/</link>
				<pubDate>Tue, 14 Mar 2006 15:03:52 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/274/</guid>
				<description>&lt;p&gt;Perlであるパッケージに定義されているメソッドを調べたい場合は、シンボルテーブル(%パッケージ名::)をダンプしてやればオッケーなようです。例えばClass::Accessorのシンボルテーブルをダンプするには下記のように書けばOK。&lt;/p&gt;</description>
			</item>
			<item>
				<title>転職活動日記</title>
				<link>https://journal.lampetty.net/posts/wp/career-change-2005/</link>
				<pubDate>Mon, 08 Aug 2005 16:08:54 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/career-change-2005/</guid>
				<description>&lt;p&gt;2005年の7月頭から約1ヶ月間転職活動をしていました。20代半ばのエンジニアだと転職適齢期だと思いますが、同年代の、同じように転職を考えている方の役に立てばと思いその内容を記録しておいたページです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>今回の転職活動の実績</title>
				<link>https://journal.lampetty.net/posts/wp/71/</link>
				<pubDate>Thu, 04 Aug 2005 14:08:50 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/71/</guid>
				<description>&lt;p&gt;今回の転職活動を振り返ってみると...&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;応募した会社の数: 10&lt;/li&gt;&#xA;&lt;li&gt;選考途中で辞退した会社の数: 3&lt;/li&gt;&#xA;&lt;li&gt;内定をもらった会社の数: 5&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;でした。こうしてみると、内定率50%でなかなか好成績のように見えます。でも、就職活動って別に何個内定もらったかなんてはっきり言ってどうでもいいと思うんですよ。自分が本当に行きたい会社から内定もらえれば。それにせっかく採用通知を出してもらったのに、それを断るのはやっぱり心苦しいです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>今回の転職活動にて応募した会社</title>
				<link>https://journal.lampetty.net/posts/wp/69/</link>
				<pubDate>Wed, 03 Aug 2005 16:08:11 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/69/</guid>
				<description>&lt;h3 id=&#34;ターゲットの業界業種&#34;&gt;ターゲットの業界、業種&lt;/h3&gt;&#xA;&lt;p&gt;今までは主に業務系のシステムを作ることが多かったのですが、やっぱり一般ユーザが使うようなサービスを構築する方が自分のアイデアが生かせるし、その分やりがいもあるし、ユーザの意見とかもダイレクトに聞けるし、ということでBtoC向けのサービスを提供している会社を中心に選考を受けました。具体的には下記の会社たちです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>決断の日</title>
				<link>https://journal.lampetty.net/posts/wp/67/</link>
				<pubDate>Wed, 03 Aug 2005 14:08:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/67/</guid>
				<description>&lt;p&gt;今日はYAHの最終面接だったのですが、昨日の時点でもうEMCに決めてしまっていたので、最終面接を辞退する旨のメールを送りました。やっぱりドタキャンは良くないかなと思ったのですが、もはやYAHで働く自分を想像できなかったのでどうせ最終を受けても落ちそうな予感がしたんですよね。もう１回志望動機なんて言わせられたら、それはもはや嘘になってしまうわけですし。大手なので私一人が入らなくったって別に困るわけでもないでしょうしね。&lt;/p&gt;</description>
			</item>
			<item>
				<title>最後の一押し</title>
				<link>https://journal.lampetty.net/posts/wp/64/</link>
				<pubDate>Tue, 02 Aug 2005 10:08:18 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/64/</guid>
				<description>&lt;p&gt;今日はEMCで社長さんと面談です。もう選考自体は終わっていて、単に私からのリクエストで実現した対談(?)なのですが、「選考とは無関係」と頭ではわかっていてもやっぱり緊張はしました(^^; (この社長さんはITニュースとかビジネス誌によく出ていらっしゃるので)&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月29日(金)</title>
				<link>https://journal.lampetty.net/posts/wp/62/</link>
				<pubDate>Fri, 29 Jul 2005 13:07:26 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/62/</guid>
				<description>&lt;p&gt;今日は何もないので家でひたすらネットを見ていました...メールチェックしていると、YAHから「8/3に最終面接やります」の案内が来ています。なんか色々と失敗しているにも関わらず、これだけスムーズに次のステップに進んでいることに逆に不安を覚えました...そう言えばYAHで働いている知り合いがいたことを思い出したので、「YAHってどんな会社？働いていて楽しい？」みたいな質問を投げてみました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月28日(木)</title>
				<link>https://journal.lampetty.net/posts/wp/60/</link>
				<pubDate>Thu, 28 Jul 2005 10:07:22 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/60/</guid>
				<description>&lt;p&gt;最近は新しい会社には手を出していないんで、今週はダイブ暇々な感じです。今日も結局HICを訪問するだけ。ちなみに今日の訪問の目的は内定を辞退することです。あれだけ接待されてかなり心苦しいのですが、やっぱり第一志望のEMCと比較するとこの会社はちょっと微妙でした。PHPってそもそもあんまり好きじゃないですしね...&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月27日(水)</title>
				<link>https://journal.lampetty.net/posts/wp/57/</link>
				<pubDate>Wed, 27 Jul 2005 13:07:24 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/57/</guid>
				<description>&lt;p&gt;18:00よりGMMの最終面接です。今日は本部長さんとの面談後、職場見学もさせてくれるとのこと。しかし、どうも風邪を引いてしまったようで&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;すこぶる調子が悪い&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月26日(火)</title>
				<link>https://journal.lampetty.net/posts/wp/55/</link>
				<pubDate>Tue, 26 Jul 2005 11:07:19 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/55/</guid>
				<description>&lt;p&gt;18:30よりYAHの2次面接でした。人事の人も含めて相手は合計4人。そのうちの2人はYメール部門と乗り換え案内なんかのサービスをやっている部門の偉い人みたいでした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>まさかの書類選考通過のメール</title>
				<link>https://journal.lampetty.net/posts/wp/53/</link>
				<pubDate>Fri, 22 Jul 2005 13:07:49 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/53/</guid>
				<description>&lt;p&gt;夕方ぐらいにメールを見たら、かつての第一志望だったEXCから「書類選考の結果、ぜひ面接したいのですが」というメールが!!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;つーか、遅すぎ！！&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;書類選考に一体何日かかっているのでしょうか？応募フォームを送信してから約2週間経ってますけど...とにかく今はEMCからすでに内定を貰っている状態なので、「こんなスピードの遅い会社なんかこっちから願い下げよ」みたいな感じで選考辞退のメールを送りました。あと1週間早ければ辞退はしなかったんですけどねぇ...世の中タイミングが大事ってことですな。&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月21日(木)</title>
				<link>https://journal.lampetty.net/posts/wp/50/</link>
				<pubDate>Thu, 21 Jul 2005 14:07:00 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/50/</guid>
				<description>&lt;p&gt;今日は10時より第一志望のEMCの最終面接です。メンバーはこの前お相手してもらったTさんとエンジニアのリーダーであるKさん、それとエンジニアのTAさんでした。本当は社長さん(よく雑誌載っていたりして結構有名人!)も参加するはずだったらしいのですが、どうやら用事ができてしまったようで不参加。&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月20日(水)</title>
				<link>https://journal.lampetty.net/posts/wp/48/</link>
				<pubDate>Wed, 20 Jul 2005 14:07:42 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/48/</guid>
				<description>&lt;p&gt;今日は夕方からITCの面接なので、履歴書と職務経歴書を用意。あとはひたすらメールの対応に追われていました。まずは昨日1次面接だったEMCから明日10時から最終面接をおこないたいとの連絡。もちろんOKです。それと、7/14に最終面接だったNEMから採用の通知が来ていました。ただ、内定を保証するのが7/24までだったので悩んだ挙句にお断りしました。第一志望であるEMCの結果はたぶん7/24までには出ないだろうと判断したためです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月19日(火)</title>
				<link>https://journal.lampetty.net/posts/wp/46/</link>
				<pubDate>Tue, 19 Jul 2005 14:07:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/46/</guid>
				<description>&lt;p&gt;今日も面接3件の過密スケジュール。たぶん今週が山場っぽい。そう言えば第一志望のEXC応募したのにいっこうに連絡が来ませんねぇ。落ちたのかな。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;10時: GMM1次面接＠渋谷&lt;/li&gt;&#xA;&lt;li&gt;13時: EMC1次面接＠渋谷&lt;/li&gt;&#xA;&lt;li&gt;18時: HIC2次面接＠恵比寿&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;gmm1次面接渋谷&#34;&gt;GMM1次面接＠渋谷&lt;/h3&gt;&#xA;&lt;p&gt;本日1発目の面接は「ニッポンのインターネット部」で有名な某社のグループ会社さんです。40階建てぐらいの渋谷セルリアンタワーというところに所在しており、受付もYAHなんかと比べても高級感がありました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAHの1次面接</title>
				<link>https://journal.lampetty.net/posts/wp/44/</link>
				<pubDate>Fri, 15 Jul 2005 14:07:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/44/</guid>
				<description>&lt;h3 id=&#34;yah1次面接六本木&#34;&gt;YAH1次面接＠六本木&lt;/h3&gt;&#xA;&lt;p&gt;今日は9:30からYAHの1次面接だったのでやや早起き。んでいざ家を出ようと思ったらとてつもない腹痛が...トイレに籠ること約30分、本当ならかなり余裕を持ってYAH本社に到着する予定だったのですが、激ダッシュしてなんとか電車の乗り換えがうまくいってギリギリ間に合うかな？ぐらい余裕がなくなりました(^^;&lt;/p&gt;</description>
			</item>
			<item>
				<title>過密スケジュールをこなす</title>
				<link>https://journal.lampetty.net/posts/wp/42/</link>
				<pubDate>Thu, 14 Jul 2005 14:07:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/42/</guid>
				<description>&lt;p&gt;今日は&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;10時: HIC1次面接＠恵比寿&lt;/li&gt;&#xA;&lt;li&gt;13時: NEM最終面接＠東京&lt;/li&gt;&#xA;&lt;li&gt;19時: YAH技術試験＠渋谷&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;という過密スケジュールです。「この暑さの中スーツなんて着たくない」とかぶー垂れつつもまずは1件目、HICに行ってきました。遅刻するのが嫌だったのでかなり余裕を持って家を出たのですが、やっぱり早く着き過ぎたので近くのフレッシュネスで休憩すること30分。&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月13日(水)</title>
				<link>https://journal.lampetty.net/posts/wp/40/</link>
				<pubDate>Wed, 13 Jul 2005 12:07:09 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/40/</guid>
				<description>&lt;p&gt;昨日応募したITCから早速メールが来て7/20に面接したいとのこと。特に予定はないので大丈夫ですよと返信。さらに昨日面接してもらったNEMからも2次面接(最終)の案内が。「いくらなんでも明日ってちょっと急過ぎ」と思いましたがちょうどその時間はぽっかり空いていたので了承。さらに「立ち上がりそうなプロジェクトの会議に是非とも参加してもらいたい」とか言ってるし。「私は他の会社も受けているし、例え明日御社から採用の通知を貰っても即決出来ませんが、そんな人間がプロジェクト会議なんて参加してしまっていいんでしょうか？」と返信したら、「それでもいいよ」とおっしゃってくれたので、ついでにプロジェクト会議にも参加することにしました(プロジェクトの内容はとても面白そうだったのです)。&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月12日(火) EMCからのスカウトメール</title>
				<link>https://journal.lampetty.net/posts/wp/36/</link>
				<pubDate>Tue, 12 Jul 2005 12:07:56 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/36/</guid>
				<description>&lt;p&gt;朝起きてまずITC株式会社に応募。ここは有名なIT系ニュースサイトをやっているので、これをやりたいなぁと思っていたからです。&lt;/p&gt;&#xA;&lt;p&gt;それと&lt;a href=&#34;http://www.find-job.net/&#34;&gt;Find Job !&lt;/a&gt;に検討中フォルダという、求人情報のブックマークみたいな機能があるのですが、Firefoxではここから求人情報を削除できなかったので(IEでは出来た)、不具合を報告しました。(普段は不具合なんか見付けてもイチイチ報告しませんが、FindJobはしばらくお世話になりそうだったので)&lt;/p&gt;</description>
			</item>
			<item>
				<title>7月11日(月)</title>
				<link>https://journal.lampetty.net/posts/wp/32/</link>
				<pubDate>Mon, 11 Jul 2005 11:07:05 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/32/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.find-job.net/&#34;&gt;Find Job !&lt;/a&gt;経由でスカウトされたNEMの面接が明日あるため、提出用の履歴書・職務経歴書を書いてました。プラス志望動機のための企業研究もそれなりに。&lt;/p&gt;&#xA;&lt;p&gt;夜は友達の家でこの前買ったsakusakuのDVD見てました。音楽番組だけあって、ジゴロウが作る変な唄が一番面白いです。友達はtvkが映らないことを非常に残念がってました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>KEEから最終面接の案内</title>
				<link>https://journal.lampetty.net/posts/wp/29/</link>
				<pubDate>Sat, 09 Jul 2005 03:07:41 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/29/</guid>
				<description>&lt;p&gt;起きてメールを見たら、7/8付けでKEEから最終面接の案内メールが来ていました。「たぶんここ受かっても他の会社が受かれば行かないだろうなぁ」と思いつつ、でもこの時は内定を1個でも確保しておきたかったので最終面接まで受けることに。7月13日(水)17時でアポをとりました。&lt;/p&gt;</description>
			</item>
			<item>
				<title>YAHに応募と面接</title>
				<link>https://journal.lampetty.net/posts/wp/27/</link>
				<pubDate>Fri, 08 Jul 2005 11:07:28 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/27/</guid>
				<description>&lt;p&gt;起きてから第二志望であるポータルサイト最大手のYAHに応募。職種は「ウェブアプリケーションエンジニア」の個人ツールサービス系です。志望動機はかなり力を入れ、情熱的かつアジテーションありありな感じにしました。とてつもなく恥ずかしいですがそのまま転載しておきます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>起き抜けのスカウトメール</title>
				<link>https://journal.lampetty.net/posts/wp/26/</link>
				<pubDate>Thu, 07 Jul 2005 03:07:39 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/26/</guid>
				<description>&lt;p&gt;起きて&lt;a href=&#34;http://www.find-job.net/&#34;&gt;Find Job !&lt;/a&gt;を開くとまたスカウトメールが...全部興味なかったので辞退、辞退、辞退っと。ただ一つだけ気になっていた会社(HIC株式会社)からスカウトメールが来ていたので、これだけは辞退を保留にしました。余力があったらあって事業内容とか詳しく聞きたいなと思ったので。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Find Job !でのスカウトメール</title>
				<link>https://journal.lampetty.net/posts/wp/24/</link>
				<pubDate>Wed, 06 Jul 2005 13:07:16 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/24/</guid>
				<description>&lt;p&gt;今日も山のように(つっても5,6通ですが)&lt;a href=&#34;http://www.find-job.net/&#34;&gt;Find Job !&lt;/a&gt;でスカウトメールが来ています。その中で一つ気になったものがありました。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;貴方のFind-Jobのスカウト欄を見ましたところ、Javaのご経験だけでなく、文系出身ながら、独学で実力をつけてきたという前向きな部分に、現在探している人材ではと思い、スカウトメールしています。&lt;/p&gt;</description>
			</item>
			<item>
				<title>挑戦者への課題</title>
				<link>https://journal.lampetty.net/posts/wp/21/</link>
				<pubDate>Tue, 05 Jul 2005 13:07:15 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/21/</guid>
				<description>&lt;p&gt;ECJからメールで連絡あり。「課題を送るので一週間以内に解答を付けて送り返してください」とのこと。で、その課題の内容を見てみる。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;えらい難しいです!!&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>3社に応募</title>
				<link>https://journal.lampetty.net/posts/wp/19/</link>
				<pubDate>Mon, 04 Jul 2005 13:07:17 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/19/</guid>
				<description>&lt;p&gt;今日もFindJobのWeb履歴書を書いてました。自己PRも含めて自分的には満足な内容になったので、これを元に下記の会社に採用のWebページ経由で応募。&lt;/p&gt;</description>
			</item>
			<item>
				<title>スターウォーズ エピソード3</title>
				<link>https://journal.lampetty.net/posts/wp/17/</link>
				<pubDate>Sat, 02 Jul 2005 13:07:33 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/17/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://diary.lampetty.net/20050702.html#p01&#34;&gt;日報&lt;/a&gt;の方にも書いていますが、「スターウォーズ エピソード3」を観て来ました。アナキンがあんなにヒドイやつになっていく部分、特にパドメの首を締めているシーンがとても泣けました。「そりゃないぜアニー!!」と言いたかった。あと、一緒に観に行った友達に泣いてるのをバレないようにするのがちょっと大変でした...グスグス鼻すすらないと鼻水が止めどなく出てきてたので(ただの風邪?)&lt;/p&gt;</description>
			</item>
			<item>
				<title>転職活動開始！</title>
				<link>https://journal.lampetty.net/posts/wp/14/</link>
				<pubDate>Fri, 01 Jul 2005 01:07:13 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/14/</guid>
				<description>&lt;p&gt;そんなわけで今日から転職活動開始！なわけですが、まずは健康保険を国民健康保険に切り替えないと。ということで近所の出張所まで行ってきて保険証を取得。&lt;/p&gt;</description>
			</item>
			<item>
				<title>最後の日</title>
				<link>https://journal.lampetty.net/posts/wp/10/</link>
				<pubDate>Thu, 30 Jun 2005 13:06:12 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/10/</guid>
				<description>&lt;p&gt;今日で派遣先での仕事は終了、ということで最後退社する時に社員の皆さんから見送られて退社しました。この会社にはたった半年しかいなかったし、対してこの会社の役にも立っていなかったはずなのに、なんでこんな風に厚遇されたんだろう...いくら派遣とはいえ、ちょっと辛い瞬間でした。&lt;/p&gt;</description>
			</item>
			<item>
				<title>そろそろ...</title>
				<link>https://journal.lampetty.net/posts/wp/8/</link>
				<pubDate>Mon, 27 Jun 2005 13:06:06 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/8/</guid>
				<description>&lt;p&gt;今週で派遣先の会社との契約が切れるので、転職活動をそろそろ開始しないといけないなぁと思いつつ、なんか仕事が最後の最後までドタバタしていてあんまり活動できなそうな感じ。とりあえず、就・転職サイトに登録だけでも...と思い、昔から馴染みのある&lt;a href=&#34;http://www.find-job.net/&#34; title=&#34;Find Job !&#34;&gt;Find Job !&lt;/a&gt;にだけ登録しました。&lt;a href=&#34;http://rikunabi-next.yahoo.co.jp/&#34; title=&#34;リクナビNEXT&#34;&gt;リクナビNEXT&lt;/a&gt;にも昔から登録してあるけど、こっちは職務経歴なんかをほとんど更新してないですな。学生時代の就活の経験からあんまり転職サイトをあれこれ使っても単に面倒なだけなので、とりあえずFind Job !だけでいっかな～。&lt;/p&gt;</description>
			</item>
			<item>
				<title>私の履歴書</title>
				<link>https://journal.lampetty.net/posts/wp/5/</link>
				<pubDate>Sun, 26 Jun 2005 13:06:05 +0900</pubDate>
				<guid>https://journal.lampetty.net/posts/wp/5/</guid>
				<description>&lt;p&gt;自分のキャリアを棚卸ししてみるとこんな感じです。客観的に見て社会人5年目としてはイマイチかな～と思ってます。あんまりリーダー経験とかないですしね...&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
