You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Note: This tutorial has been updated to Xcode 9, Swift 4, and iOS 11 by Tom Elliott. The original tutorial was written by Andy Pereira. Scrolling through massive lists of items can be a slow and frustrating process for users. When dealing with large datasets, it’s vitally important to let the user search for specific items. UIKit includes UISearchBar, which seamlessly integrates with UINavigationI
This document discusses JavaScript test-driven development using Jasmine 2.0 and Karma. It introduces test-driven development principles and benefits, then covers the Karma test runner, PhantomJS browser, and features of the Jasmine testing framework including describe blocks, expectations, matchers, spies, and custom matchers. It also provides an example of mapping earthquakes and testing color-c
npmでパッケージを揃える グローバル npm install -g grunt-cli bower プロジェクト環境 npm プロジェクトルートに以下のpackage.jsonを置いてnpm installするとパッケージが揃います { "engines": { "node": ">= 0.10.0" }, "devDependencies": { "grunt": "~0.4.2", "karma-mocha": "^0.1.3", "karma-phantomjs-launcher": "^0.1.4", "grunt-espower": "^0.6.0", "grunt-karma": "^0.8.2" } } bower bower install power-assertでpower-assertと依存パッケージがインストールされます。 Grunt設定 プロジェクトルートにGr
JavaScriptは基本非同期で、callbackだったりevent drivenだったりする。最近はPromiseやgenerator (yield, async/await) も出てきてるが、此れも非同期だから、非同期処理を待つ事は考慮に入れなければならない。testを書く時も、当然個々のtest caseが、ほぼ確実に非同期に成る。 Gruntに於ける非同期処理 Gruntには非同期を待たせる仕組みがある。grunt.registerTask() のcallback内で使へるthisの、async() methodで、非同期処理の終了を通知する為の関数が得られる。全てが終わった時に此れを呼んでやれば好い。done() の引数はError若しくはnull/undefinedだ。 // Gruntfile.js module.exports = function(grunt) { gr
Objective-CじゃなくてSwiftのライブラリを利用する方法、また、自分で作る方法
Put your future career first. Pay tuition when you're hired.
OS Xのクリップボードとtmuxのクリップボード *1 を共通にする設定に関するメモです. なお,tmuxのバージョンは1.9a,reattach-to-user-namespaceのバージョンは2.3です. 1. まずreattach-to-user-namespace入れる $ brew install reattach-to-user-namespace簡単. 2. 設定ファイルを書く .tmux.confに設定を書く. if-shell 'test "$(uname -s)" = Darwin && which reattach-to-user-namespace > /dev/null 2>&1' 'source-file ~/.tmux-reattach-to-user-namespace.conf' if-shell使うと,第一引数がtrueの時だけ第二引数を実行してくれて
はじめに AngularJS Generatorで作成した雛形にはE2Eテスト環境を作ろうとした形跡は見られるのですが、実際にGruntのタスクとしては登録されておらず、E2Eテストは行えない状態です。 また、E2Eテスト環境も現在では非推奨であるAngular Scenario Runnerを用いた形の為、 現在AngularJS側も推奨をしているProtractorを導入します。 導入方法 AngularJS Generatorを用いて雛形を作成します。 雛形作成に関しては、下記の記事を参照ください。 Yeomanを使ってAngularJSアプリのひな形をつくってみる Protractorとgrunt-protractor-runnerを導入 $ npm install --save-dev protractor grunt-protractor-runner $ node node_
2014/8/20 potatotips 8 at Retty
iOS担当の田中です。 弊社ではiOSやAndroidのアプリの配布にEMLauncherを導入しています。 プロジェクトの管理をJenkinsとgitを使用して行っている場合、特定のブランチに変更があると自動でビルドを行いEMLauncherへアップしてくれるとかなり便利です。 そこでJenkinsからEMLauncherへアプリをアップロードする流れを簡単に紹介したいと思います。 Xcodeを使用するのでMacにJenkinsをインストールしています。 今回はすでに何かしらのジョブが作成されている状態から説明します。 EMLauncher Jenkins PluginをJenkinsにインストールする https://github.com/KLab/emlauncher-jenkins-plugin まずこちらからJenkinsにプラグインをインストールするのに必要なプロジェクトを取得
Linuxコンテナを使った仮想化ソフトウェアDocker。興味はありつつも、実際の運用の中で活かす機会は意外と多くないのではないでしょうか。さらに1.0となったとは言え、実運用のサーバの中で活用していくというのは勇気が出ないかも知れません。 そこで今回はあくまでも開発の部署内だけでDockerを使っていくという方法を提案したいと思います。Dockerのメリットの一つ、外部の人たちが作ってくれているコンテナを使ってサービスを立ち上げてみましょう。今回は特にエンジニアがよく使いそうなソフトウェアにフォーカスを当てています。 必要なもの さくらのクラウドのアカウント さくらのクラウドトップページ アカウントはさくらのクラウドトップページから作成できます。 クラウドサーバを追加する サーバ追加画面 管理画面に入りましたら、サーバの追加を選択します。追加画面では、サーバの名前、メモリ数、ディスクプラ
システムの画面キャプチャを大量にとる必要があり、とり直しが発生しうることを考慮すると、プログラマブルにキャプチャを取りたいなーとツールを探していると CasperJS というのが見つかったので簡易的な使い方をメモ。 CasperJS とは CaperJS は UI テスト向け高レベルの JavaScript フレームワークで、 PhantomJS(WebKit) SlimerJS(Gecko) という2種類のレンダリングエンジンに対応している。 以下のような用途に使える。 defining & ordering browsing navigation steps filling & submitting forms clicking & following links capturing screenshots of a page (or part of it) testing remot
In this tutorial, we get in touch with end to end testing in JavaScript. To save time, we take the existing ToDo App written with Backbone.js. We will extend this app by adding a grunt workflow. The code of this tutorial is hosted on a github repository. Requirements Git node phantomjs casperjs Technology We are using following tools: PhantomJS – a commandline webkit browser without a GUI. CasperJ
We will cover writing a CasperJS test for Caregaroo
昨夜、渋谷ヒカリエで行われた東京Node学園 14時限目で、トップバッターとして発表してきました。 発表内容は、「Synth」というWebアプリケーションフレームワークについてです。 Tokyo Otaku Modeでは、バックエンドとしてNode.jsとMongoDBを使っていてExpressで運用していますが、色んなフレームワークも触っていてSynthもそのうちの一つです。 SynthはInfoQの「APIファーストのWebフレームワークSynthを巡るコミュニティの困惑」という日本語版記事が出て初めて知った人が多いと思います。 記事にもあるとおり、JSONやテンプレートHTMLを返すAPIとそれを使ってクライアント側でアプリケーションを構築するという形に特化したAPIファーストのWebアプリケーションフレームワークです。 ちょうど上記の記事が出た頃、天下一クライアントサイドJS MV
Posted on August 16th, 2014 One of the most important skills every programmer needs to have is debugging! Ever since I’ve been working with Swift, I’ve been definitely off in my coding because Swift is different to debug than my usual Objective-C debugging flow. So last week, I finally got around to watching the Advanced Swift Debugging in LLDB WWDC14 video. I really wish I watched it a lot earlie
本人の中では、前回のOSC 2014 Tokyo/Springのネタが導入編、今回がじゃあ実際にどんなの使ってやってるよ? という入門編なイメージです。 ⇒ 日々の覚書: MySQLのパラメーターチューニング at OSC 2014 Tokyo/Spring 誰も手を挙げてはいただけなかったですけど、大なり小なりスクリプトとか色々書いてる人はいるだろうなぁと想像してます。俺もへなちょこPerlでちまちま書いてたりしますし(innotopでステータス変数の差分取るカスタマイズを調べるのが面倒だったので、自分でスクラッチしたとか) さて、話は変わってポエミーな感じ。 ATNDのページにもでかでかと書いていただきましたが、先月、Oracle ACEに認定いただくことができました。今回のMyNA会は「yokuさんお祝いに勉強会やろう! でもRonaldの都合があるからこの日かこの日ね。yokuさん
Promise本 以前JavaScript Promiseの本を書きました | Web Scratchでも書いていましたが、 電子版である意味は常に書籍が更新できるという点が大きいです。 そのため、JavaScript Promiseの本 も semverな感じでアップデートしていっています。 どのような変更があったかはGitHub Releaseにかかれているのでそちらを参考にして下さい。(RSSで購読も出来ます) Releases · azu/promises-book 現在Promise本はver1.2ですが、1.0.0…1.2.0では以下のような変更が主なところです。 1.0.1 (2014-06-23) “金を払えないという重大なバグ“を修正 (7909005) 1.1.0 (2014-06-25) コラム: Promiseは常に非同期? への加筆 column-promise-
きっかけは、prototype と constructor と __proto__ の関係を再確認していたときでした。JavaScriptはこうだけど、これって、AltJSな言語の継承はどうなってるんだろうと思って試したくなりました。 ちょっと気持ち的に、なんだか宗教に入ったみたいに俺は JavaScript がわかったって声高に言う人、だいたいみんな、プロトタイプチェーンによる移譲がクラスベースの継承に束縛されていた思考のブレイクスルーなんだぜ、みたいに言うんだけど、いったいそれがどれほど素晴らしいものなんだろうと考えてしまい... もしプロトタイプチェーンがそんなに素晴らしいんなら、npm にあるほとんどのライブラリがチェーンを活かして作られてない理由が説明できない。もしかしたら、仕組みがいくら面白くても、実際のメンタルモデルにフィットせず、実は使い物にならないんじゃないか ----
プロジェクトごとにRailsのScaffoldみたいなコードジェネレータがほしいけど、作るのが手間。 なのでできるだけ手間がかからないコードジェネレータジェネレータ書いてみた。 mizchi/summon まだnpmに登録してないので npm install -g mizchi/summon で入れる。 # 初期化 $ summon init > init .generators # foo ジェネレータを生成 $ summon generator foo > generate generator generate /Users/mizchi/proj/summon/.generators/foo/generator.coffee generate /Users/mizchi/proj/summon/.generators/foo/foo.json.hbs # foo ジェネレーターを使う
なんちゃって vimmer (自分)。 つい先ほどこんな記事を書いたばかりなのに Your configuration generator for NeoVim and Vim - Vim Bootstrap を見つけて、どんどん拡張していってる。 最近導入した vim プラグイン をまとめる - 大学生からの Web 開発 Vim Bootstrap は 自分の使用する言語に合わせた .vimrc を提供してくれるサービス。多く使われている設定、プラグインが入ってておすすめできる。 使い方 Your configuration generator for NeoVim and Vim - Vim Bootstrap にアクセスして自分の使う言語を選択して generate する。 vimrc というファイルがダウンロードされる。 $ mv ~/Downloads/vimrc ~/.vim
詳しくは上記連載を見てもらえば分かりますが、GruntとはJavaScriptを使用してWeb開発に伴うさまざまな作業を自動化して効率良く行うためのビルドツールです。 このツールでは「タスク」と呼ばれる一連の処理を設定ファイルに記述していきます。Gruntの設定ファイル(Gruntfile.js)は、タスクに対してJSON形式でパラメーターを指定していくのですが、ここで少々問題があります。 シンプルなタスクであれば分かりやすいのですが、多くの拡張機能(プラグイン)を使用したり、タスクの制御を細かく行う必要が生じたたりした場合、Gruntfileの記述量が増えて冗長になり、タスク同士の関連やタスク実行結果も分かりにくくなってしまいます。 そんなGruntの問題点を解消することを目的として開発されたのが、今回紹介する「gulp.js」(以下、gulp)です。 gulpはGruntを継承しつつ、
Written by Mattt August 22nd, 2018 (revised) This article has been translated into: 한국어 In 1911, linguist Franz Boas observed that speakers of Eskimo–Aleut languages used different words to distinguish falling snowflakes from snow on the ground. By comparison, English speakers typically refer to both as “snow,” but create a similar distinction between raindrops and puddles. Over time, this simple
iOS アプリで動画を再生しくなったので方法を調べてみた。標準の動画再生 API としは MPMoviePlayerController と AVPlayer の 2 種類が提供されている。そのため両方を利用したサンプルを実装してみる。 再生対象となる動画の選択 はじめに再生対象とする動画の選択方法について考える。 最も簡単なのはアプリ内のリソースとして動画ファイルを組み込む方法である。しかし静止画に比べ動画はかなり大きいため、アプリのサイズに影響する。再生対象が固定になる点もイマイチ。そこで今回はカメラロールから動画を選択するようにしてみる。先月書いた iOS でグリッド表示という記事で作成したサンプル プログラムを元に動画だけ選択する画面を実装。 今回のサンプルでは対象とするグループを ALAssetsGroupSavedPhotos に限定して ALAssetsGroup でコンテン
grunt+istanbul+mochaでNode.jsのテスト&カバレッジ計測を行う の続きになります。 ローカルでテストを実行するだけでなく、Jenkinsのジョブとして設定することで、テスト結果やカバレッジ計測結果を集計管理できるようになります。 プロジェクトの経過を追うことができるようになり、より便利になります。 関連パッケージのインストール mochaからJenkins用のテスト結果レポートを出力するために、mocha-jenkins-reporterを入れます。 また、このreporterは出力先ファイルの指定に環境変数JUNIT_REPORT_PATHを参照するので、gruntタスクで指定できるようgrunt-envも一緒に入れておきます。 gruntタスクを設定する grunt+istanbul+mochaでNode.jsのテスト&カバレッジ計測を行う で設定したタスクを修
はじめに 本番はELBへのアクセスをHTTPS通信を行い、開発等では通常のHTTPで構築をすると言ったケースもあるかと思います。 そういった場合においてELBからアプリケーションへの転送をHTTPとして構築した場合、 アプリケーションをELB配下に持っていた際にも動く事を意識して開発を進める必要が有ります。 ただ、そういったケースにおいて、アプリケーションを実装を確認するにはどうすればよいでしょうか。 AWSを用いて環境を立ち上げるのも手ですが、 確認したいのはELB配下にHTTPで通信を待っているアプリの挙動を確認するといった際に、 ちょっと大げさな話になってしまいます。 そういったケースにおいて手元で確認したいと言った際に、以下の方法で試す事が可能です。 ELB配下のアプリケーションはELBにきたHTTPSアクセスを認識することができるのか? ELBのフロントエンドをHTTPSとしバッ
はじめに みなさん、2014-08-14 26:00 みたいな時間を扱おうとして困ってませんか? 文字として保存するだけならまだしも、これを元に現在時刻と比較して・・・とかやろうとすると色々大変です。 この記事ではそんな24時間超えの時間を楽ちんに扱うことができる Chronic という gem を紹介します。 そもそも何が困るのか Ruby の time ライブラリには大変便利な Time.parse メソッドがあります。 が、困ったことにこいつは 26:00 みたいな時間は理解してくれません。 irb で実行してみると以下の様なエラーがでます。 >> Time.parse('2014-08-14 26:00') ArgumentError: argument out of range 日付は 2014-02-31 とかでも良きに計らってくれるのに、時間はすごくきっちりしています。 24
コマンドは、以下のような書式でオプションと引数を設定して、実行する仕組みになっている。 例: コマンド名 オプション オプション オプション引数 オプション コマンド引数 optparser_test.rb -a -b VALUE --foo FILE_PATH 実際にコマンドを作ろうとすると、オプションの解析には手間がかかると気付く。 そのため、多くの言語環境にはオプション解析用のライブラリが用意されている。 Rubyのoptparserについて、基本的な使い方は知っているつもりだったが... Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。 ちょっと気の利いたコマンドにしようとすると、その使い方は謎だらけになった。 どうしたら苦労最小限でオプションを解析できるのか、調べてみた。 基本 require 'optparse' OptionParser.new do |op
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く