(macOS) pip を使えるようにする

pip は Python のパッケージ管理システム。 日常的に Python で本格的に開発する人でなくても、各種ツールを使用するとき pip が必要になる場面は少なくないと思う。 (ちなみに私も日常的には使わない人) で、最近マシンを新しく買い換えて、環境構築がてら …

testify の require を使う

go

golang.org/stretchr/testify の requireパッケージを使用する。 assert と同様のテストを行いつつ、テストに失敗した場合は後続のテストの実行を止めることができる。 stretchr/testify: A toolkit with common assertions and mocks that plays nicely wit…

エラーのラッピング

go

注:本記事は元々 Qiita で公開していたものの再掲です。 Go 1.13 で追加された、エラーラッピングについて。 Package errors (golang.org) https://golang.org/pkg/errors/ 概要 エラーを他のエラーでラップすることが可能になる 元のエラーの型やフィール…

testify の assert を使ってテストを書く

go

注: 本記事は元々 Qiita にて公開していたものの再掲です。 概要 testify https://github.com/stretchr/testify golang でテストをより記述しやすくするためのパッケージ その中で assert パッケージは、結果値の妥当性をチェックする関数を提供する 本記事…

AgentGPTをGCP上で動かすときのメモ

AgentGPT とは reworkd/AgentGPT: Assemble, configure, and deploy autonomous AI Agents in your browser. Webブラウザ上で動く自立型AIエージェント。課題を設定すると、その実現のためにタスクを自動的に設定し、それを一つ一つ実行していく。 AgentGPT…

OpenWeather API で天気情報を取得する

天気情報を取得するAPIを提供しているサービスはいくつかある。 今回は OpenWeather という、世界中の天気情報を提供するサービスを利用する。 Сurrent weather and forecast - OpenWeatherMap 事前準備 OpenWeather アカウントを作成し、API key を取得する…

golangci-lint に独自の Linter を統合する

go

お久しぶりです ちゃんと元気に生きています。 1ヶ月ほど禁酒していて体の調子がすごく良いです。その代わりアイスの消費量が増えました。毎日ハーゲンダッツとかガリガリ君とか食べてます。 独自Linterをgolangci-lintと統合する手順 まずこの記事でカバー…

レビューについての雑感

レビューは人に対して行うものではありません。人の書いたコードに対して行うものです。 レビューは人を攻撃するために行うものではありません。その人の書いたコードをより良くするために行うものです。 レビューは自身の技術力を自慢するために行うもので…

かわいいスタックトレース in Perl

デバッグしているとき、スタックトレースはとても役に立つ。でも...でも、読みたくない。そこでちょっと見やすくしてみた。github.com標準入力から読み込むだけのシンプルなもの。 もしそのファイルが存在すれば、中身を表示するようにした。これで地味に作…

zsh の配列の index は1から始まる

夏ですね 地下鉄の駅で電車待ってるとき、ついホームのところどころにあるエアコンの前に立っちゃいますよね! あと、弱冷房車はあるのになんで強冷房車はないんだって時々考えてしまいますよね! 本題 というわけでまずは以下の実行結果を。 $ bash $ ar=(A…

set -u : 未定義の変数を使用しようとしたらエラーにする

typoなんてのは普段よくあることで、そいつに無駄な時間をとられてしまうことが日常茶飯事だ。 #!/usr/bin/env bash MY_NAME="Miku" MY_BIRTHDAY="10/19" MY_HOBBY="Dance" echo $MY_NAME echo $MY_BIRTDAY echo $MY_HOBBY 上記の出力結果はどうなるだろうか…

Many-to-many関係を使う

今回は GORM で Many-to-many 関係を扱う。複数のユーザと複数の楽曲が用意されていて、各ユーザのお気に入りの楽曲を格納できるようにする。E-R図にするとこんな感じ。とりあえずコードはこんな感じ。 package main import ( "fmt" _ "github.com/go-sql-dr…

Association で任意の外部キー名を使う

初詣行ってきました 大吉引いて幸先良いです。 あと、巫女さんが可愛かったです。 本題 GORM の Association 関連で、任意の外部キー名を使用しようとしてハマったのでメモ。 標準の外部キー名を使う方法 その前に、まずは Convention に従った外部キー名を…

Type Switch

go

interface{}型で宣言された変数の値の具体的な型により処理を分岐させたい、というケースが考えられる。Type Switch という仕組みでそれを実現できる。switch - case 文を使って、型ごとの処理内容を case 内に記述する。公式ドキュメントの Effective Go に…

あけましておめでとうございます

今年はちゃんと記事書いていきたいと思います。#何年か前にも同じこと言った気がする← 一応、今年は目標を2つ立てました。 1つは割と近々で実現したいこと。もう一つは2017年になんとか実現したいこと。 頑張るよー。

GORMを使ってみた

go

goで使えるO/R Mapperは結構いろいろあるみたいで、とりあえず今日1日 gorpとGORMを使ってみた。gorp GitHub - go-gorp/gorp: Go Relational Persistence - an ORM-ish library for GoGORM Getting Started with GORM · GORM Guidegorpはシンプルに使える、G…

goでmysqlを使うメモ

go

久しぶりだー 前回の日記が2014年11月3日…だいぶ放置してたなorz goでmysqlを使ってみる mysqlドライバをインストール database/sql の mysqlドライバとして go-sql-mysql というのがある。まずはこれを go get でインストールする。 github.com go get gith…

nnetを使ってコード解析作ってみた

R

以前このブログにも書いた通り、今年の夏に Coursera の Machine Learning の講座を受けた。これがきっかけで機械学習にすごく興味を持ち、何か自分でも面白いものを作ってやるぜって意気込んでた。オイラ腰が重くてなかなか手をつけられないでいたが、今回…

rgl の plot3d で3Dグラフを描く

R

困った 眠れん。 仕方ないのでブログ書く← rgl とは rgl rgl: 3D visualization device system (OpenGL) R上で、OpenGLを使って高度な3Dグラフを描くためのパッケージ。インタラクティブな操作も可能で、3D表示させたものをマウスでぐりぐり回転できる。なか…

Coursera の Machine Learning

Coursera というオンライン学習サイトに Machine Learning という講座がある。6月から受講開始して約3ヶ月。ようやくすべて終えることができた。受けて本当に良かったと思っているので、紹介したいと思う。 この講座を知ったのは、たしか5月くらいだったと思…

tuneR を使ったMFCCの計算

R

ほぼ自分用の備忘録←tuneR で MFCC を求める手順。バージョンは 1.2.1。 library(tuneR) # wavファイル読み込み # mp3ファイルの場合は readMP3()を使えばよい wobj <- readWave(filename) # melfcc() は現行では mono 音声しか扱えないので必要に応じて変換…

Zero-crossing rate (ZCR) を使った音楽解析

音声認識や音楽解析によく使われる指標として Zero-crossing rate (ZCR) というのがあるそうだ。これは、音声の波形を描いたとき、波が中央より上(正)から中央より下(負)に、またはその逆に変化する頻度を数えて、その頻度により音声の特徴を表すというもの…

CPAN Author になった話

先日、ようやく CPAN Author になった。 Data::HandyGen::mysql という、テストデータを効率よく生成するためのモジュールを作って、今年の2月に公開した。はじめて CPAN モジュールを公開するという体験は実にドキドキものである。少年の心が一瞬、蘇った気…

機能追加

機能「追加」は決して機能「改良」ではない。新しい機能が使えるようになるという意味で「改良」だが、システムの複雑度が増すという意味で「改悪」。開発運用のコストも上がるし、ユーザからしても、機能全体を理解するのが難しくなる。逆に、初期に導入し…

F10で右クリックメニューが表示されないようにする

Fedora17上で gnome-terminal を使っていたら、F10キーで右クリックメニューが表示されてしまう。 vim のキーバインドで F10 を使っているのでこれは困った。一応、メニューの「編集」→「キーボードショートカット...」で F10 を無効にする設定は存在する。…

libxml2 で XMLTextReader を使ってみる

XML文書をパースする機能が必要になったので、libxml2 を使ってみた。 今までオイラは XML のパースは軽量言語(Perl、PHPなど)でしかやったことがなかった。libxml2をそのまんま使うとものすごく面倒なんだろうなぁと若干恐れおののいていたのだが、いざ使っ…

あけましておめでとうございます

更新が1ヶ月に1回とか悲惨な事になってますが、今年はもうちょっと頑張ります。(希望)

[GTK+] GtkTreeView を使う

GtkTreeView とは? http://library.gnome.org/devel/gtk/stable/GtkTreeView.html ツリー構造やリストを表示するためのウィジェット。 GtkTreeView というからにはツリー構造、つまり階層を持つデータ構造を表示するのが唯一の用途のようにも見える。しかし…

Django クイックスタートの巻

Python 上で動く Web フレームワーク、Django の超クイックスタート。簡素化しまくってるのでご容赦を。 またプログラム中、コメント行はすべて省略。 環境は以下のとおり。Python と Django はすでにインストールされているものとする。 Python 2.6.2 Djang…

Social Games that Sway Behavior - Technology Review 最近ソーシャルゲームがあちこちで話題になっているが、そのソーシャルゲームを現実世界と結びつけようという試みが始まっているらしい。 この記事で最初に紹介されている HealthSeeker は、Facebook上…