まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

2014-01-01から1年間の記事一覧

2014年の振り返り

他のブログとか読んでると、今年の目標とか振り返りとかをブログに書いとくのもいい思い出になるなーと思ったので、自分でも書いてみようと思いました。 2014年の目標 今年の目標はアウトプットを増やすということでした。 なんでこう思うようになったかって…

iOS8からの日付(NSDate)操作・比較

日付操作とか比較とかしようとか思ってググると、NSDateComponentsを使ったやつがよく出てきます。一旦NSDateComponentsを作ってから一つの要素ごとに足し算したりとか色々めんどいなーと思ってリファレンス見てたら、日付操作とか日付比較で便利なメソッド…

はてなブログでSwiftのシンタックスハイライト

が、なかなか実装されません。。まだされてませんよね?? 追記 2015/01/10 されました!やったー! はてな記法とMarkdownのシンタックス・ハイライトで、Swift言語に対応しました - はてなブログ開発ブログ 実装されるまで、それっぽい色になる代わりの言語…

SwiftでバックグラウンドでもiBeaconを検知する方法

Swfitの練習のためにiBeaconのサンプル作って練習してみました。 mpon/BeaconSample iBeaconをバックグラウンドでも受信するポイントは、 Info.plistにNSLocationAlwaysUsageDescriptionを追加 CapabilitiesでBackground Modesでの位置情報の更新の設定を追…

SwiftでisKindOfClass:するにはダウンキャストを利用する

Objective-CでisKindOfClass Objective-Cだとid型で何かを受け取ることがあって、それを検査するのにisKindOfClass:使いますね。例えばこんな感じ。 - (IBAction)buttonDidPush:(id)sender { if ([sender isKindOfClass:[UIButton class]]) { NSLog(@"This i…

JenkinsのXcode pluginでXcodeのバージョンを切り替える方法

iOSアプリのビルド、テスト、アーカイブをJenkinsのXcode Pluginでやってる人向け。 古いiOSバージョンのアプリに対応するために古いXcodeが、 逆にiOS8をビルドするためには最新のバージョンのXcodeが必要です。 そのときに、Xcode Pluginで利用するXcodeの…

SIerだけどISUCON4に参加してみた(チームじゃみお:オンライン予選敗退) #isucon

同期3人組(チームじゃみお)でISUCON4参加しました。 メンバー構成 自分: 普段はiOSアプリ開発の仕事が多く、コール担当もないラッキー人間 同期A: Microsoftに魂を売った男。SharePoint製品の調整を得意とする基盤屋 同期B: 設計、レビュー、顧客調整、深…

Scalaやったことないけど始めてみたいと思ってる人へのオススメ環境作り

とりあえずScalaをhomebrewとかでインストールすればREPLで実行できるけど、やっぱりIDEとか使った方がやりやすいです。その環境を作るのも結構簡単なのでそれを紹介。僕も始めて2ヶ月ぐらいなので、これからScalaに入門してみたいって人向けの記事です。 In…

Storyboardのsize classを使ってiOS7と8に対応させるにはAny×Anyじゃないとダメ

iPad用のアプリを作るときの話です。 iPadのsize classは縦向きも横向きもRegular/Regularってことで、そのsize classでせっせと画面を作ってて、iOS8のSimulatorだとちゃんと表示されてました。それで2画面ぐらい作ったあと、ふと、iOS7のSimulatorで動かし…

UICollectionViewCell上のViewにAutoLayoutは設定できない?

UICollectionViewCell上のViewにAutoLayoutをしたら下記のようなwarningが出てAutoLayoutが効きません。環境はiOS8、Xcode6です。 SampleApp[3298:353432] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the …

viewWillTransitionToSize: withTransitionCoordinator:を使うときはsuperを呼ぶ

画面の回転のイベントで、willRotateToInterfaceOrientation:duration:がありますが、iOS8からはdeprecatedになっています。で、代わりに、viewWillTransitionToSize:withTransitionCoordinator:を使えと書いてあるんですが、ヘッダファイルのコメントにsupe…

iOS8でinterfaceOrientaionがdeprecatedになったんだけど代わりのプロパティが分からない

間違ってたのでいろいろ追記 Xcode6でUIViewControllerのinterfaceOrientationプロパティを使うとiOS 8.0からdeprecatedですよのwarningがでます。 でも、代わりに判断できるプロパティがiPadだと分からないって話です。誰か教えて ※ 追記1 statusBarOrienta…

Scalaでprintlnの括弧はなぜ省略できない?

Scalaだとメソッド呼び出しで、ドットと括弧は省略できるって教えてもらったんだけど、printlnの括弧は省略すると怒られる。具体的にはこう // OK println("Hello, world!") // NG println "Hello, world!" なんでだろうーと思いながらググっても出てこない…

GIT_DIRに気をつけろ

Git

Jenkinsで、指定したディレクトリをgitリポジトリ化するっていうジョブを書いててはまりました。 git化したいディレクトリのパスをJenkinsのビルドパラメータでGIT_DIRっていう名前で指定してたら、git initしても、.gitが作られないっていう謎の自体に陥り…

ローカル環境でVagrant+nginxで気軽にリバースプロキシする

サーバーサイドのアプリケーションがあって、静的コンテンツだけHTTPサーバーで配信したいっていうユースケースがあると思います。 サーバー上で動かす場合にはだいたいこんな感じにHTTPサーバーでリバースプロキシしてアプリケーションと静的コンテンツを振…

zshがscpまで補完してくれて感動した

zsh

とりあえずoh-my-zshを入れてるだけなのでzsh力は低いですが、zshに恐れ戦いたので紹介。 もし、まだ、zsh使ってない人いたら是非使って欲しいです。 sshでログインするときに、.ssh/configは使ってると思いますが、sshコマンドを打ってるときに、なにげなく…

git2.1をCentOS6にtgzからインストールする

Git

CentOS6で、yumで入るgitのバージョンが1.7で、1.7だとgit mvを経由しないでmvした場合に、git addしただけだとrenameを検知してくれなかった。ローカルPCのMacのgit(2.0)だとできたからgitも進化してるんだなーと思った。 まぁそんな前置きはおいといて、Ce…

JenkinsのXcode pluginのCodesign Error

Xcodeを複数バージョン入れたせいなのかよく分からないけど、 JenkinsのSlaveで動かしてるXcode Pluginが以下のようなCodesignのErrorでビルドが通らなくなってしまった。 [BEROR]Code Sign error: No matching provisioning profiles found: No provisionin…

Scalaでcase classのメンバーを更新する

Scalaを始めて1ヶ月ぐらいたったので、つまづいたところをまとめていこうと思う。 Scalaは基本的にcase classという雛形的なclassを使うようにするんですが、メンバーをどう更新するか分からなかったのでメモ。 例えば、ユーザー情報が入ったモデルがあった…

Play Framework 2.3 For Java ことはじめ #12 sessionとcache編

Play Framework 2.3 For Java 入門記事一覧 第12回はPlay frameworkのsessionとCacheついて説明します。 Javaアプリケーションの世界で俗に言われているsessionとPlay frameworkのsessionは微妙に違います。という辺りから説明してみようと思います。 そもそ…

Play Framework 2.3 For Java ことはじめ #11 リレーションを持つCRUD編

Play Framework 2.3 For Java 入門記事一覧 第11回はリレーションを持つエンティティに関するCRUDについてです。 #6 データベース接続(JPA with Hibernate)編で一つのテーブルだけ持つ場合のCRUDはできることが分かって、これでだいたいOKかなと思ってたけど…

第1回 dwanGoいってきた

第1回 dwanGo - connpass 第1回dwanGoよかった、しょうもない質問にも答えてもらえたし。あと、Gitterでチャットしてたから別に会場にいかなくてもリモート参加余裕w— オオシママサト (@_mpon) 2014, 8月 11 ほんとうに、もくもくとチュートリアルをやるだ…

関数型言語はこわくないよ!

関数型言語と聞くと、LispとかHaskelとかScalaとか難しいんだろうなーという先入観を持ってる人がいると思います。ぼくもそうでした。 でも、最近業務でScalaでプロトタイプのWebアプリケーション書いてて、関数型言語の概念が分かってきて、これってそんな…

Play Framework 2.3 For Java ことはじめ #10 ログイン認証編

Play Framework 2.3 For Java 入門記事一覧 第10回はログイン認証です。playの公式ドキュメントは色々な要素が紹介されてて、2.2系のdocumentには、認証に関するトピック - Adding Authenticateionがあったんだけど、2.3系にはログイン認証に関するページが…

Play Framework 2.3 For Java ことはじめ #9 FieldConstructor編

Play Framework 2.3 For Java 入門記事一覧 第9回はページャーとかセッションとかやろうと思ったけど、やっぱりフォーム編で話したFieldConstructorという概念がとても難しかったので、もうちょっと詳しく見ていこうと思います。 FieldConstructorは@form(){…

Play Framework 2.3 For Java ことはじめ #8 フォームを扱う編

Play Framework 2.3 For Java 入門記事一覧 第8回はWebアプリケーションで重要な要素の一つであるフォームの話です。 フレームワークに乗っかれば、リクエストのマッピング、バリデーション、エラー表示などいろいろなことを面倒みてくれます。何気にこの仕…

Play Framework 2.3 For Javaの入門記事一覧

Play Framework 2.3 For Javaの入門記事です。 新人研修の一環で、触ったことがないPlay Frameworkを教えることになったので一緒にお勉強。Javaにもそれほど精通していないのでそのあたりの素朴な疑問にも触れてます。

Play Framework 2.3 For Java ことはじめ #7 bootstrap3を使う

Play Framework 2.3 For Java 入門記事一覧 データベースとの接続ができたら、今度は画面側の処理はどんな感じで書いていくのかを調べていきます。 第2回テンプレートエンジン編でhtmlはほぼそのまま書けることは分かったけど、cssとかjsとかってどんな風に…

Play Framework 2.3 For Java ことはじめ #6 データベース接続(JPA with Hibernate)編

Play Framework 2.3 For Java 入門記事一覧 ほんとはデータベース編はSpring Data JPA編で終わりにしようと思ってたんだけど、謎が残ってるから、やっぱり第6回は、JPA with Hibernateもやってみなきゃよく分からんということでやってみます。公式チュートリ…

Play Framework 2.3 For Java ことはじめ #5 データベース接続(Spring Data JPA)編

Play Framework 2.3 For Java 入門記事一覧 第5回は、Java標準のJPAの実装の一つであるSpring Data JPAを使ってデータベースに接続します。 Java Persistence API(JPA)とは、関係データベースのデータを扱う Java SE および Java EE のアプリケーションを…