Swiftで配列にuniqをかけるやつ

タイトル通り。 メソッド名は標準のsortInPlaceに合わせた感じにした。 一応使い方 // 引数なし版 var numbers = [1, 2, 3, 2, 3, 4] let uniqHoges = numbers.uniq() print(uniqHoges) // => [1, 2, 3, 4] print(numbers) // => [1, 2, 3, 2, 3, 4] numbers…

Xcodeのプロジェクトをリネームする

iOS

ほぼ適当な作業メモ。 http://qiita.com/kimi_dropc/items/fa860b0193fa4589a7e0 を見たけどディレクトリ名とか変わらずに残ったから完全に置換するやり方を残しておく。 1. Xcodeに変えてもらう プロジェクト設定の Identity and Type の Name に新しいプロ…

AutoLayoutで状況に応じた制約を適用する術

やりたいこと 2つのViewを条件によって1つ表示したり2つ表示したり 1つの場合は、親Viewのサイズいっぱいで 2つの場合は、良い感じにマージンを効かせて横並びに同じサイズで親Viewいっぱいに サンプルコード レイアウトはコードで書こうマンなのでサンプル…

Slackで人系の絵文字を一気に全色吐き出す君を作った

gist.github.com クソみたいに雑なスクリプト。 こんな感じで出力される。 $ skintone.pl pray :pray: :pray::skin-tone-2: :pray::skin-tone-3: :pray::skin-tone-4: :pray::skin-tone-5: :pray::skin-tone-6: コピペするのはだるいから pbcopy に食わせて…

Xcode7でInterface Builderを使わずに開発する

概要 ViewはSwift(or Objective-C)のコードで組み立てる 生のAutoLayoutのコードは辛いからSnapKitを使う まずやること 下記をやればInterface Builderから開放される。 Main.storyboardを消す プロジェクト設定の Main Interface を空欄にする Launch Scree…

YAPC::Asia Tokyo 2015に行ってきた + 座談会に出てきた

メモとか雑感とか。 聞いたトーク HTTP/2時代のウェブサイト設計 HTTP2によってレイテンシがボトルネックになることはなくなる!!ってのが激熱だった。 多量の画像を1つにまとめるよりも、別々に読み込んだ方が速いってのが驚き(デモはちょっと失敗しちゃ…

東京 Crystal 勉強会 #1 in 五反田 に参加した

7月31日に開催された東京 Crystal 勉強会 #1 in 五反田に参加した。 後輩氏が主催することもあって、なんとなくLT枠で参加した。 他の人の発表 感想を箇条書きにて。 マクロは思ったより難しくなさそう(簡単に使うぶんには) putsのオーバーロードやばい JS…

CrystalでHTTP通信

なるほど。LLだ。 というかRubyだ(Rubyわからんけど)。 require "http" require "json" client = HTTP::Client.new("lgtm.in") response = client.get("/g/mihyaeru21", headers: HTTP::Headers {"Accept": "application/json"}) obj = JSON.parse(respons…

pipでインストールできるコマンド

最近のpipのバージョンなら、githubとかにリポジトリを上げておけばPyPIに登録しなくてもモジュールをインストールできる。 サンプル 超サンプルリポジトリはこちら。 標準出力にhoge!!!!!!と出力するhogeコマンドを提供する。 $ pyenv virtualenv 2.7.9 hog…

Pythonからコマンドを実行して標準出力を受け取るやつ

subprocessを使うのが良いらしい。 設定周りが怪しいから調べないと。 import subprocess def execute(command): proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, _ = proc.communicate() return ou…

XcodeのAssistant Editorが関係ないファイルを勝手に開いた時の対処法

Xcodeを使うときはAssistant Editorを表示させて使う派で、 メインの方に実装ファイル、アシスタント側にヘッダファイルを表示させるのがいつもの構成。 しかし、たまによくAssistant Editorが関係ないファイルを開いてくれて地味にイライラする。 ストレス…

Cocos2d-x(iOS)でRxCppを使うときにハマったメモ

v2.1.0を落としてきて、適当なパスにRxCppを置いて、Header Search Pathにそこを指定した。 その後、普通にビルドしたら通ると思ったけども次のエラーが出てダメだった。 thread-local storage is not supported for the current target なにやら使えない機…

日付っぽい文字列をアレしたりepochをアレしたりするやつ

Pythonのリハビリがてら車輪の再発明をしてこんなのを書いた。 たまによく、変換するためにわざわざネットでやっていたから再発明した。 $ ./dt.py '2015-02-18 12:34:56' 1424230496 $ ./dt.py '2015-02-18' 1424185200 $ ./dt.py 1424230496 2015-02-18 12…

CPANにモジュールを上げてみた

WebService::Slack::WebApiというモジュールをCPANに公開して、ついにCPAN Authorになった。 モジュールについて アレな理由によりhubotのintegrationが使えず、(incomming webhooksもあるけど)せっかくだから生のAPIの方を弄ることに。 実態としては、API…

cocos環境構築メモ

cocos自体のインストール まずは本体を公式からダウンロード。 現時点で最新版のv3.3にした。 $ mkdir ~/lib $ mv /path/to/cocos2d-x ~/lib/cocos2d-x $ cd ~/lib/cocos2d-x $ ./setup.py こいつらは現状インストールしていないから全部スキップした。 Plea…

$PATHを改行しつつ表示する

普通にこれで良いと思った。 $ echo $PATH | sed -e 's/:/\n/g' が、ダメ。 :がnに置換されてしまう。 ダブルクオートじゃないからダメなのか...? $ echo $PATH | sed -e "s/:/\n/g" が、ダメ。 きーたのコメント欄に答えがあった。 BSD系のsedでは、\nで改…

カジュアルにClojureのファイルを実行する

Leiningenは便利だけども、プロジェクトを作らないと実行できないのがたまに面倒くさい。 そこで、ここを参考に実行用のファイルを作ってみた。 その1 Leiningenはclojure本体を~/.m2/repository/org/clojure/clojure/1.6.0/clojure-1.6.0.jarに持ってくるの…

git diff --statの横幅

Git

git diff --statの出力をパイプにぶち込むときの横幅の指定方法をすぐ忘れるからメモっておく。 デフォルトでは80文字っぽい。 git help diffで確認。 --stat[=<width>[,<name-width>[,<count>]]] こんな感じでdevelopとの比較を何らかのコマンドに渡す。 git diff --stat=128 develop |</count></name-width></width>…

VimでClojureを良い感じに使うためのアレ

Clojure良いよClojure!!最近のマイブーム が、変化が速く?日本語で見つかる情報が若干古く、Vimでの環境構築に苦労したのでメモ。 もちろん自分用のメモなのでMac向けな内容。 ここの内容を自分が実際にやった内容を思い出しながら書いた。 到達目標 Lein…

Perlでベンチマーク

Perl Advent Calendar 2014の枠が空いていたので、ただのメモですが10日目の記事として晒すことに。 今さらかなり基本的なことだけど、Perlでのベンチマークの実行方法を調べて、適当にいろいろ試してみたメモ。 Benchmarkモジュール 基本的にはperldocを見…

Gruntの環境を作ってみる

ちょっとだけJavaScriptを書く機会ができたから、せっかくなのでCoffeeScriptで書こうと思ってGrunt環境の作り方を調べた。 クソ適当なメモ。 ndenvを使いつつやる CoffeeScriptをJavaScriptにコンパイルするのだけやりたい coffee/piyo.coffeeをhtdocs/js/p…

tmux-mem-cpu-loadを使ってみた

tmuxのステータスバーにCPUとかメモリ使用率を出したいなぁ、、、と思い、思うだけでしばらく過ごしていた。 今日、なんとなく気分転換で入れてみたのでメモ。 今までやっていなかった理由はググってもすぐに出てこなかったからだったけども、今日は偶然辿り…

Objective-Cにて動的にメソッドを書き換える君を作ってみた(車輪の再発明)

OCMockではクラスメソッドは書き換えられるが、全インスタンスに影響するインスタンスメソッドを書き換えられなさそうなので書いてみた。 OCMockでクラスにかかるインスタンスメソッドを変更する方法を調べるのに半日ほど無駄にしてしまったので、何も形を残…

Test::Mock::Guardを使ってみた

テストの時にこんな感じのことをして内部で使用しているメソッドの挙動を無理矢理変えていた。 { # てきとうなクラス package Hoge; sub hoge { 'hoge' } # こいつを上書きしたい } say Hoge::hoge; #=> hoge sub run_with_mock { my %args = @_; no warning…

Amon2を読むぞい その1

現時点で最新の6.10を読んでみる。 まずは全体の構成を眺める。 lib ├── [ 374] Amon2 │ ├── [ 102] Config │ │ └── [1.4K] Simple.pm │ ├── [ 436] ContextGuard.pm │ ├── [ 424] Declare.pm │ ├── [ 102] Plugin │ │ └── [ 272] Web │ │ ├── [1.5K] FillIn…

Antigenを導入してみた

Antigenという、zshのプラグインマネージャを導入してみた。 VimのNeoBundleとかと似たような感じでzshのプラグインが管理できる。 導入 antigen自体のリポジトリはどこに置いても特に問題ないが、 デフォルトではプラグインのリポジトリが~/.antigen/repos…

YAPC::Asia 2014に参加してきました

YAPC::Asia 2014に参加してきました。 参加ブログを書かないとイベントが終了しないらしいのでこの記事が存在します。 聴いたトーク等 1日目 Releasing perl Go For Perl Mongers お待たせしました。Perl で BDD を簡単に実践する最高にクールなフレームワー…

逆誕生日プレゼントを貰いました!

逆誕生日プレゼントとは? @dictav氏の↓のツイートが発端です。 おはようございます。メッセージありがとうございます! 誕生日迎えましたよ、ええ。 ということで、抽選で1名様になんか贈ってあげんよ! Amazon欲しい物リスト貼って寄越すといいよ!! 。。…

NUT Hackathon ver.2 に参加してきました

12月7日に技大某クラスタで開催された #nut_hackathon に参加してきたので一応感想的なものを書きます。 イベントの詳細はここを参照。 作ったもの こんな感じの秘密を保護してそうなツイートをしていくボットちゃんを作りました。 そろそろツイート頻度を下…

よく使いそうなLLのインストール

MBPRに乗り換え後に使う環境構築メモ その1 よく使いそうなLLを、ぐちゃぐちゃな環境にならずに綺麗に管理するための第一歩! まずは言語のバージョンを綺麗に管理するためのメモ。 インストール(Linux向け) pyenv のインストール $ git clone git://githu…