エンジニアリングにはほど遠い

iPhoneアプリとかサイトとかをつくっていくブログです。

Google Code Jam 2017 予選参加してみました

この記事は攻略記事ではなくただの思い出メモです。 せっかくなので去年同様Clojureでやってみました。 Clojureでの処理 Clojureをコマンドライン実行するためには lein exec hoge.clj 標準入力読み込みは (read-line) 問題を解くときは以下な感じ 実行 lein…

ActiveRecordで複数カラムに対し複数キーワードで探す

割と汎用的かと思ったので載せてみようかと。 orの引数にnilがきたらそのままなのがミソ。 class ActiveRecord::Base def self.search_with_multi(columns:, keywords:) where(columns_keywords_cond(columns, keywords)) end def self.columns_keywords_con…

心機一転

SOFT SKILLS読んでる。 もうそろそろ今年も半分終わってしまうので、心機一転で行こうと思うのであった。

Google Code Jam 2016 予選参加してみました

この記事は攻略記事ではなくただの思い出メモです。 せっかくなのでClojureでやってみました。 Clojureでの処理 Clojureをコマンドライン実行するためには lein exec hoge.clj 標準入力読み込みは (read-line) 問題を解くときは以下な感じ 実行 lein exec ho…

Swift2 nil的なものをStringにキャストしたときにハマった

let cfs:CFString? = nil // nil let s:String = String(cfs) // "nil" nil的なものをキャストすると"nil"になるんですね。

Swift2の正規表現マッチの簡易メソッド

Swiftの正規表現処理はObjective-C同様にとても面倒なので、色々な方が使いやすいように改良していますが、 自分もやってみました。(正規表現のパターンが不正な時はクラッシュします) extension String { private func checkingResults(pattern:String) -…

Swiftのスクリプトで辞書

最近英語を勉強していて、せっかくなので英語勉強ツールを作ろうと思った。 まずそのパーツとして手始めに辞書機能をつくることに。 Macの標準の辞書アプリの機能を使ってみるのが良いかなと思いやってみました。 dict.swift import Foundation import CoreS…

Emacs emacsclientを何気なく使いつつclientで開いた地点をdefault directoryにする

Emacs 起動した場所をdefault directoryにするをemacsclientでもやりたいということで。 これをするとVimとほぼ変わらない起動速度を得ることができました。 Emacsはserverを立ち上げておいて、emacsclientというコマンドで素早く立ち上げることができます。…

Emacs 起動した場所をdefault directoryにする

自分がVimに慣れているというのもあって、常に起動した場所からファイルを参照したい。 以下で実現。 起動時に現在地を環境変数に保存 ファイル呼び出しのたびにそこをデフォルトディレクトリに指定 .zshrc alias e='export EMACS_PWD=`pwd`; emacs' init.el…

Emacs 24からの標準テーマフレームワークで設定

Emacs 24からは標準でカラーテーマを設定する機能があるみたいですが、その設定でハマったのでメモ。 複数の設定方法で設定できるのもEmacs初心者の自分には厄介でした。 まずEmacs24以降の標準用color-themeなのか、以前のcolor-theme用のものかで設定ファ…

Evil tab機能を使えるようにする

自分はVimでよく:tabe とかってやってファイルを開くのでこの機能は是非使えるようにしたい。 evil-tabsというプラグインを作ってくれている方がいました。 これはelscreenというプラグインのキーバインドをラップしてる感じです。 el-getで入れました。 (el…

Evil auto-completeが出た状態で普通にノーマルステートに戻る

LISP系言語をやっていくならEmacsなんでしょうが、何度も挫折を味わってきました。 Evilはそんな僕に力を与えてくれたんです。 Evilは素晴らしいですね。いざとなったらEmacsに戻れますし、EmacsにVimが載っていてどっちも動かせるという感じです。 でも、少…

Objective-C キャメル・スネークケース変換

iOS

超小ネタです。toSnakeCaseは最初の文字が大文字のものにはちゃんと対応していません。 NSString+CamelSnake.m #import "NSString+CamelSnake.h" @implementation NSString (CamelSnake) - (NSString *)toCamelCase { NSMutableString *result = [NSMutableS…

Ruby 条件式で代入をした際のうっかり

ちょっとうっかりしたのでメモ。 変数に値を代入して、その値を判定した後に変数を使いたい場合 [1] pry(main)> if a = 1 > 0 [1] pry(main)* p a [1] pry(main)* end true => true [2] pry(main)> if (a = 1) > 0 [2] pry(main)* p a [2] pry(main)* end 1 …

Rubyのcaseを圧縮

whenの後の条件式のあとは改行しないとエラーになるのでどうしても行数が長くなる (追記: when A then B でいけます。基本的な事だけど知らなかった・・) case key when :foo 1 when :bar 2 else 3 end 条件が文字列かシンボルであれば下の様に書いてみてる…

WindowsのSSL 3.0をコマンドで無効化 (SSL 3.0 POODLE対応)

マイクロソフト セキュリティ アドバイザリ 3009008のWindowsの方のSSLを無効にする方法をコマンドプロンプトで書きました。 やってることはレジストリにファイルを一つ作成しているのみです。 無効の設定ファイルの作成 reg add "HKEY_LOCAL_MACHINE\System…

Clojureで同一キーでhash-mapのリストを作ろうとしたらハマった

下のはいける。 user=> (map #(hash-map :key %) [1 2 3]) ({:key 1} {:key 2} {:key 3}) でも、キーを引数化したら怒られる。 user=> (map #(hash-map %1 %2) :key [1 2 3]) IllegalArgumentException Don't know how to create ISeq from: clojure.lang.Ke…

CocoaPodsエラー diff: /../Podfile.lock: No such file or directory

iOS

以下のようなエラー。 diff: /../Podfile.lock: No such file or directory diff: /Manifest.lock: No such file or directory error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. Pods.d…

Windowsでchromeを落としてインストールするバッチファイル

Windowsマシンの設定自動化についてちょこちょこ調べてます。Windowsマシンは仕事でしかほとんど触らないのでなかなか慣れない。。 管理者権限で実行したらchromeのダウンロードからインストールまでやるバッチを作ってみました。powershellでwget的な事をや…

UITextFieldで編集中に別のやつにフォーカスさせると色がヘンになる

iOS

画面上にUITextFieldが複数あって何文字入力したら次のfieldにジャンプする、みたいな事をしたい場合このようにした。 #import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [_first addTarget:self acti…

Ruby Hashのkeyをsymbolに変換する

hashの中のarrayの中にもhashがあったときの事を考えて書きました。 config/initializers/hash.rb class Hash def keys_to_sym each_with_object({}) do |(k, v), hash| hash[k.to_sym] = v.respond_to?(:keys_to_sym) ? v.keys_to_sym : v end end end conf…

ctrl+M で enter

これが凄く快適です。 returnを押すとどうしても「ッターン!」の瞬間に思考の空白ができてしまうので。 打鍵音もかなり小さくなって、今日はキーボードを打っているのかどうか分からないくらいにまで抑えられたかな、と思います。 vimやiTermでは標準でこの…

新言語Swift

いや〜熱いですね。 一応ドキュメントは無料で手には入るんですがNDA的な関係で内容をどこまで書いていいのか。 パッと見はObjective-Cとはまるで違いますね。 自分はObjective-Cからプログラミングに入ったのでObjective-Cが母国語というか、やっぱ読みやす…

iOS 角丸パーツ

iOS

かなり既出でしょうが。 UIViewのサブクラスのdrawRectに角丸処理を書く。 storyboardでも置けばそのまま使えるので、速く作るならradiusが違うクラスとか、button用クラスとかを何個か作っても良いかななどと思ったり。 #import "JOGRoundButton.h" @implem…

更新滞ってる

ちょっと忙しくて更新が・・。 「入門 Webゲーム開発」買った。JavaScriptがまるで分かっていないのでとりあえず動くものを作ってみて流れを感じてみようという事で。 フレームワークの力も感じられそう。 早く写経したい・・・! 入門 Webゲーム開発作者: E…

iOS NSStringで絵文字を含んでいるかを判定

iOS

こちらから、絵文字のNSCharacterSet+EmojisAdditionカテゴリを使わせてもらった。 #import "NSString+isContainAddition.h" #import "NSCharacterSet+EmojisAddition.h" @implementation NSString (isContainAddition) - (BOOL)isContainEmoji { NSCharacte…

UIPageViewControllerでpage内にセットしたvcのviewが37pt縮む件

iOS

何の事は無い、画面下部にpageControllerが表示されていたんですね。 こちらでみてなるほどと。 自分の方ではpageControllerの○の色が見えなくて、ずっと原因が分からず悩んでいました。なんで、中のviewが縮むんだよ、と思って色々試行錯誤し、Transition S…

iOS端末の中に入っているprovisioning profileに関してキャッシュ的なことが起こった

iOS

アプリのテストなどで一度アプリインストール時にprovisioning profileを端末内に入れると、そのままだと、大元のiOS dev centerでそのprovisioning profileをeditしたりして更新したとしても、古いやつがずっと使われる。 さらに、たとえ大元で新しくprovis…

Rails インスタンスが持つインスタンス変数一覧をハッシュで取得

ActiveRecordのattributes的な。 instance_values でできるみたいです。(要ActiveSupport) [1] pry(main)> class Hoge [1] pry(main)* attr_accessor :a, :b, :c [1] pry(main)* end => nil [2] pry(main)> hoge = Hoge.new => #<Hoge:0x007fec4b2859d0> [3] pry(main)> hoge.instan</hoge:0x007fec4b2859d0>…

office365体験版をアカウントに関連づける

メチャクチャ分かりにくかったので。officeは商品の種類とか、ライセンスとか、ユーザーを混乱させようとしているとしか思えない。 管理画面で ユーザとグループ > ユーザを選択 > 鉛筆マーク > ライセンス > Office 365 Small Business Premium 10 ライセン…