11月20日付けで前職を退職し、11月21日からかなめい株式会社で働くことにしました。
前職でお世話になった皆様、ありがとうございました。
僕は新しい環境で Ruby を書きます。
# -*- coding: utf-8 -*- | |
require 'rubygems' | |
require 'twitter' | |
require 'oauth' | |
require 'yaml' | |
require 'thor/group' | |
class Tweet < Thor::Group | |
include Thor::Actions |
let ZSH_PATH = '/usr/local/bin/zsh' | |
if executable(ZSH_PATH) | |
let ZSH_ENV_PATH = system(ZSH_PATH . " -c 'source ~/.zshrc; echo $PATH'") | |
" let $PATH = $PATH . ":" . ZSH_ENV_PATH | |
let $PATH = ZSH_ENV_PATH | |
endif |
package com.google.android.gcm.demo.app; | |
import android.content.Context; | |
import android.content.Intent; | |
public final class CommonUtilities { | |
/** サードパーティのID登録/解除用URL */ | |
static final String SERVER_URL = "http://localhost:8080/jsp"; |
11月20日付けで前職を退職し、11月21日からかなめい株式会社で働くことにしました。
前職でお世話になった皆様、ありがとうございました。
僕は新しい環境で Ruby を書きます。
#!/bin/sh | |
TIMESTAMP=`date +'%s'`$(printf '%03d' $(expr `date +%N` / 1000000)) | |
SCREEN_SHOT_NAME=screen_shot_${TIMESTAMP}.png | |
adb shell /system/bin/screencap -p /sdcard/${SCREEN_SHOT_NAME} | |
adb pull /sdcard/${SCREEN_SHOT_NAME} ~/${SCREEN_SHOT_NAME} | |
adb shell rm /sdcard/${SCREEN_SHOT_NAME} |
ユーザーからのリクエストとかが詰まった「env」っていうオブジェクトを受け取って「ステータスコード、HTTPレスポンスヘッダとボディ」を返すアプリケーション。コネクションの管理とかはしない。たんじゅんにenvっていうオブジェクトを受け取って結果を返す、ふつうの Ruby のクラス。
たんじゅんにenvを受け取って結果を返すだけのものだから、一枚wrapすることで「本体のRackアプリケーションにenvを渡す前にちょこっとenv書き換えたれ」とか「本体から帰ってきたレスポンス書き換えたれ」とかが簡単にできる。これがRackミドルウェア。
Sinatra とか Rails で書いたアプリケーションの実体はRackアプリケーションである(というかRackアプリケーションにできる)。言い方を変えると、Sinatraとかは「Rackアプリケーションを作るためのフレームワーク」である。
HTTPリクエストを受け取って、環境変数とかといっしょにした env を作る。そしたら env をRackアプリケーションに渡して、Rackアプリケーションから受け取ったステータスコード、HTTPレスポンスヘッダとボディをHTTPレスポンスとして返す。という動きをするサーバー。
tell application "iTunes" | |
set strName to name of current track | |
set strArtist to artist of current track | |
set strAlbum to album of current track | |
end tell | |
set the clipboard to "Now Playing: “" & strArtist & "” / “" & strName & "” from “" & strAlbum & "”" | |
tell application "Tweetbot" | |
activate |
package jp.noxi.sample; | |
import android.os.Bundle; | |
import android.support.v4.app.Fragment; | |
import android.support.v4.app.FragmentActivity; | |
import android.support.v4.app.FragmentManager; | |
import android.support.v4.app.FragmentTabHost; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.View.OnClickListener; |
class SampleViewModel : ViewModel() { | |
val sampleData = UiAsyncLoadLiveData<String> { | |
value = try { | |
async(coroutineContext + CommonPool) { | |
"very long time process!" | |
}.await() | |
} catch (e: CancellationException) { | |
null | |
} | |
} |
import org.junit.After; | |
import org.junit.Before; | |
import rx.Scheduler; | |
import rx.android.plugins.RxAndroidPlugins; | |
import rx.android.plugins.RxAndroidSchedulersHook; | |
import rx.schedulers.Schedulers; | |
/** | |
* JUnit Tests. | |
* |