タグ

ブックマーク / unknownplace.org (12)

  • GoでCocoa APIを使う、もしくは他のイベントループをGoに混ぜる方法 - unknownplace.org

    Gocgo という機能を使うと、GoからCの世界のコードを呼んだり、呼ばれたりすることができる。 Perlで言うところのXSというやつだ。 このcgoを使ったGoプログラムは、昔はMakefileを利用してビルドしていたそうだが、 1.0からは go get や go build と言った、go toolがcgoに対応したのでそういうことも必要なくなっている。 cgoの基的な使い方 まずは import "C" として、Cという疑似パッケージをimportする。 このパッケージを使うと、 C.fprintf(...) というような感じでCの世界にアクセスできるようになる。 また、このimport文の直前のコメントはCのコードとして解釈される。 なので、 package main /* #include <stdio.h> void hello() { fprintf(stderr,

  • EmacsでのGo言語編集環境 - unknownplace.org

    最近Go言語を始めた。MacGoの実行環境を入れ、Emacsで編集するところまで、一通りまとめておく。 Goの導入 (for OS X) いろいろ方法があるようだけど、僕はカジュアルに brew install go で済ませた。 GOPATH 環境変数は最初プロジェクト毎に設定して使おうかと思っていたんだけど、 後述するgocodeやgo-flymakeといったツールを使う場合、手元のGOPATHは1つにしてしまったほうが便利なので、 export GOPATH=$HOME/dev/go-workspace というのをshellの設定に定義して、手元ではこの共通のPATHを使うようにした。 これは問題がでたらまた考える。 PATHを通す homebrewで入れたツールをEmacsから使うためには、 homebrewのbinディレクトリを exec-path に追加する必要がある。 (a

  • OSX のコマンドラインから、wi-fi の情報をつかって位置情報を得る - unknownplace.org

    linux のコマンドラインから、wi-fi の情報をつかって位置情報を得る - tokuhirom's blog. を見て、面白そうだと思ったのでそのMac版。MacでコマンドラインからWiFiスポットをスキャンするのは、 /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s でいけます。ってことで、 use strict; use warnings; use utf8; use 5.012; use JSON; use LWP::UserAgent; my @addresses = do { my @lines = split /\n/, qx{/System/Library/PrivateFrameworks/Apple80211.framework/Version

    hakobe932
    hakobe932 2012/07/22
    omosiroi
  • Cocoa::Skype とか - unknownplace.org

    Cocoa:: なんちゃらでほしいものを聞いていたときにも挙がっていた Cocoa::Skype だけど、その昔Skype4COMを使った記憶があって、SkypeAPI のバインディング書くのはめんどそうな印象だったのだが、 今日 Skype.framework のヘッダファイルみたら、 #import <Cocoa/Cocoa.h> @protocol SkypeAPIDelegate; @interface SkypeAPI : NSObject { } + (BOOL)isSkypeRunning; + (BOOL)isSkypeAvailable; // You can only connect and send commands when this method returns YES. // For example, when Skype is running, but use

    hakobe932
    hakobe932 2011/12/16
  • Objective-C で AUTOLOAD (あるいは method_missing ) - unknownplace.org

    forwardInvocation とかを使えば出来るみたい。 #import <Foundation/Foundation.h> @interface Foo : NSObject; -(void)call:(NSString*)sel; @end @implementation Foo -(void)call:(NSString*)sel { NSLog(@"call: %@", sel); } -(void)forwardInvocation:(NSInvocation *)invocation { [self call:NSStringFromSelector([invocation selector])]; } -(NSMethodSignature*)methodSignatureForSelector:(SEL)sel { NSMethodSignature* sig = [

  • OSX で tmpfs 的なことをする方法 - unknownplace.org

    MacBook Air 上で Test::mysqld なテストを走らせていると SSD の寿命縮めそうだなーとおもって tmpfs 的なものが OS X にもないものかと検索したら hdid(8) でできるとのこと。 man の一番下のほうに例が載っている。 $ hdid -nomount ram://128000 /dev/disk1 これでメモリから128000セクタ(1セクタ512バイトなので62.5MB)分とって仮想ディスクをつくり、 $ newfs_hfs /dev/disk1 Initialized /dev/rdisk1 as a 63 MB HFS Plus volume HFSで初期化して、あとは普通に $ mkdir /tmp/mnt $ mount -t hfs /dev/disk1 /tmp/mnt でマウントすればOK。 作ったディスクの破棄には $ hdidu

    hakobe932
    hakobe932 2011/02/24
  • unknownplace.org - 2009/07/10 - AnyEventの良いところを3行で

    教えて!と言われたのでそのとき答えた物をここにも記す。 POE みたいにきもくないDanga::Socket とかだと自分で実装しないといけないread queueとかそういうのも面倒見てくれる便利モジュールがある>AnyEvent::Handleドキュメントがアツイ 最後のは主に AnyEvent::Intro のことを言ってますが、これ一通り読めばとりあえず AnyEvent 使えるようになるっていうくらい完璧な内容となっています。 AnyEventとは何かからはじまり、非同期プログラミングの説明からAnyEventを使用したシンプルな例が続き、AnyEvent::Socket や AnyEvent::Handle を使用するのを順々に詳しく説明してくれています。 どうして AnyEvent::Handle みたいな物を使うといいのかというところまで書かれているので、非同期プログラミン

  • 2007/11/01 - memo - unknownplace.org

    この間ちょっと紹介したirssiのプラグインスクリプトとしてmobircをつかうmobirc.plスクリプトですが、実用に耐えうる段階まできましたので再度紹介しておきます。 画面サンプルはこんな感じ。(スクリーンショットが取れるPSPでの画面です) 素のmobircIRCクライアント機能と、HTTPD機能を両方持ち、tiarraなどのIRCプロクシにつなぐことで使用するものになっていますが、こちらのirssiプラグインではmobircIRCクライアント機能はirssiプラグインとして実装していますので、irssiさえあれは利用することができます。 イメージ的にはirssiがHTTPDを立てている感じになってます。 またキーワード設定などもirssiのハイライト設定を使用していますので、別途mobirc側でキーワード設定をする必要がないのもちょっとうれしいところです。 実際の使い方(イン

  • CLON - 2006/09/15 - plaggerライクなHTTP::Proxyフロントエンドスクリプト

    を書いた。会社のrepos内にアップしてしまったのでここに貼り付けちゃう。 #!/usr/bin/env perl use strict; use warnings; use File::Spec; use File::Find::Rule; use FindBin; use Getopt::Long; use Pod::Usage; use HTTP::Proxy; use YAML; # load config my $config = do { my $config_file = File::Spec->catfile( $FindBin::Bin, 'config.yml' ); my $port = 0; my $host = ''; my $help = 0; GetOptions( 'port|p=s' => \$port, 'host|h=s' => \$host, 'co

  • 2006/07/02 - memo - unknownplace.org

    なんか体調悪くって、昨日はひたすら寝た。今日もさっき起きたところ。 体調はよくなったけど、寝すぎでだるい naoyaグループ - naoyaの日記 - 正規表現 overload これは普通に文字列参照のoverloadでいいんじゃない? use strict; use warnings; { package NDOString; use overload ( q{""} => sub { shift->stringify }, ); sub new { my ($class, $str) = @_; bless { string => $str }, $class; } sub stringify { shift->{string}; } } my $str = NDOString->new('blah blah'); $str =~ s/a/u/g; print $str; こんな感じ

  • 2006/06/15 - memo - unknownplace.org

    仕事用に作ったの、ちょっと整備してリリース。 use Imager; use Imager::Filter::RoundedCorner; my $image = Imager->new; $image->read( file => 'source.jpg' ); $image->filter( type => 'rounded_corner', radius => 10, bg => '#ffffff' ); $image->write( file => 'dest.jpg' ); とかって使う。 Imager 良いねー。夜時間があったら border のサポートもする。

    hakobe932
    hakobe932 2006/06/16
    すてきそうなモジュール
  • 2006/05/15 - memo - unknownplace.org

    use strict; use warnings; use Data::Dumper; use YAML; my $config = { default => [ 1, { '*' => 1 }, ], deny => ['script'], }; my $yaml = Dump($config); print $yaml; print Dumper( Load($yaml) ); output: --- default: - 1 - '*': 1 deny: - script YAML Error: Couldn't parse single line value Code: YAML_PARSE_ERR_SINGLE_LINE Line: 5 Document: 1 at /usr/local/share/perl/5.8.7/YAML.pm line 60 This code wor

    hakobe932
    hakobe932 2006/05/15
    Google電卓モジュール.まぁ,使うこともあるかも
  • 1