SublimeTextみたいに複数カーソルがあったら便利ですよね? なぜvimでは使わないんですか・・・ なんて便利なんですか・・・。 Installation
![vim使いでこれ使わないのは結構損してる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/cbc1f0f7d57c0fbd7dc87d81bc07542c36a83eff/height=288;version=1;width=512/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fqiita-fb-2887e7b4aad86fd8c25cea84846f2236.png)
事前に断っておくがここでいう「インフラ」はレイヤ的には OS より上の話。 少し前に GitHub 時代のデプロイ戦略 - naoyaのはてなダイアリー で、GitHub を介したデプロイを実践しているということを紹介した。普段の開発を Pull Request ベースでやっているので、デプロイもまた Pull Request を契機に実行させると色々捗る、という話。 このプラクティスの対象領域をインフラにまで拡大してみました、というのが今回の話。 DNS レコードを Pull Request を merge した契機に自動で更新 AWS を利用している場合、ドメインの管理も Amazon Route 53 を使うといろいろと都合がいい。 Route 53 での DNS レコードの更新はこれまでブラウザから操作していた。これだと誰がいつ作業したかわからないし履歴もトラックしづらい。また変更
fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。本当
Google I/O 2013でAndroid StudioというIDEが発表され、旧来のEclipse環境で開発していたプロジェクトを移行する方法を紹介します。 EclipseのADTプラグイン(ver22)でAndroid Studio用に変換してエクスポートする機能が追加されました。 そのためEclipseのプラグインをアップデートしてエクスポートすることでAndroid Studioへインポートすることが可能です。 今回はEclipseで作成している次のようなファイル構成の状態のプロジェクトをインポートしてみましょう。 中身はHelloWorldになっています。 やり方については続きをどうぞ。 移行するにはまずEclipseのADTプラグインのアップデートとSDKマネージャでアップデートを行います。 ADTのアップデートはここのADTインストールの項目の通りに行うとアップデートでき
問題 10未満の素数の和は、2 + 3 + 5 + 7 = 17 である。 同様に2000000未満の素数の和を求めよ。 回答 -- Atkinの篩 -- http://en.wikipedia.org/wiki/Sieve_of_Atkin -- を参考に実装しました import qualified List as L import qualified Data.Set as S limit=2000000::Integer --ふるいにかける上限 slimit = (truncate $ sqrt $ fromIntegral limit)::Integer -- 上限の平方 -- 条件のテンプレート gcond f g x y stack | x>slimit = stack | y>slimit = gcond f g (x+1) 1 stack | otherwise = if
GameObjectにサウンドファイルをドラック&ドロップして audio Sourceを作った後で以下のスクリプトを使って音声を再生させる事ができます。 また、AudioClipを複数作る事でサウンドの切り替えも可能です。 using UnityEngine; using System.Collections; public class SoundTest : MonoBehaviour { public AudioClip audioClip1; public AudioClip audioClip2; public AudioClip audioClip3; private AudioSource audioSource; void Start () { audioSource = gameObject.GetComponent<AudioSource>(); audioSource
公開しているサーバーの負荷状況を仕事してる時にも知りたいと 思ってNotificationの出し方なんかを調べてたら何かが降りてきて数分毎にNotificationだそうとか考えた。 使ったGemとか Nokogiri スクレイピングの大御所 Menchanize Nokogiriを使いやすくしてくれる Clockwork Cronの代替。時間が来ると実行してくれる。 コード require 'clockwork' require 'mechanize' module Clockwork handler do |job| job.call end every( 1.minutes, lambda do url = 'http://path/to/site' items = [] agent = Mechanize.new page = agent.get(url) node = page.
皆さん、こんにちは、@sowawaです。 今日は、情報処理学会プログラミングシンポジウム委員会主催の情報科学若手の会の紹介です。 毎年、暑さがまだまだ厳しい9月頃に開催していて、今年で47回を迎える超々歴史ある情報系若手コミュニティです。私は3年前から幹事を拝命させていただきました。 例年は、招待講演と若手特別講演(「若手」の方をお招きする講演)の2本の招待講演を中心に参加者講演も含めて3日間の合宿形式で行われています。今年も例年と同様の構成で行われる予定です。 2013年(去年)の情報科学若手の会 私の記憶をさかのぼり去年の様子を振り返ってみましょう。 2013年の第46回は、招待講演にバーチャルアイドル初音ミクで有名な歌声合成技術VOCALOIDと新しい音楽についてヤマハ株式会社の剣持さんにご講演いただきました。ニコニコ動画を超えて活躍する初音ミクにふさわしく堅苦しい話抜きのライブコー
不勉強なことにCSS3 Animationはなめらかにスーッと滑らかに動くアニメーションしか出来ないと思っていたのですが、timing-functionにstepsというものがあってこれを使うとパラパラ漫画のようなアニメーションが出来ると知ったので、それを使ってthrobberを作ったメモです。 throbberの画像を用意する PNGでドットが8つ円形に並んでいる画像を1つ用意しました。 HTMLを書く <img class="throbber" src="throbber.png" width="適当なwidth" height="適当なheight"> .throbber { /* steps(1, start) は step-start でも良いみたい */ animation: rotate-throbber 1.1s steps(1, start) 0s infinite; -
import Timepiece // 3時間前 var date = 3.hours.ago // 4年後 date = 4.years.later // 今日(0:00) date = NSDate.today() // 明日(0:00) date = NSDate.tomorrow() // 昨日(0:00) date = NSDate.yesterday() // 足し算・引き算 date = NSDate() + 1.month date = NSDate() - 5.minutes // 正月 date = NSDate().beginningOfYear // 特定の日時 date = NSDate.date(year: 2014, month: 8, day: 15, hour: 15, minute: 1, second: 43) date = date.change(m
ログインしていない状態であるURLをクリックする ↓ ログインしていないのでログイン画面に行く ↓ ログイン後、クリックしたURLではないページ(ログイン後のトップページ的なページ)に遷移してしまう ↓ どのページに行きたかったんだっけ?シクシク という状況を改善するため、ログインした後にクリックしたURLを継続して見られるようにするための方法を調べたので書いておきます。 やりたいこと あるURLに飛ぶ ↓ ログインしている → あるURLに遷移 ログインしていない ↓ ログイン画面に遷移してログイン ↓ あるURLに遷移 仕組み あるURLに飛ぶ ↓ (logincheck.php) ログインしている → あるURLに遷移 ログインしていない ↓ ログイン画面に遷移するが、その際 あるURLのパスを取得してログイン画面のURLにパラメータとして付けておく ↓ (login.php) ログ
全国の100人ぐらいいたらいいなGASユーザの皆さんこんにちは サントリー事大橋です。 個々最近1日で人間とリアルに話す文字数が100文字ぐらいでしんどいですね★ ※理由は置いておいて さてGoogle Apps ScriptのScript Editorに新しいボタンが追加されたので紹介します。 実行ボタンの横にボタンが追加されています。 使い方 単純にScript Editor上でコードを実行すれば実行した関数に対する「ヒント」が表示されるようです。 パフォーマンスの悪いコードや、非推奨になっているコードを指摘してくれるようです。 ※今他に何が有るか調べています。 ちなみに一つも指摘がないとボタンが活性化されないのでわかりづらいです。 ※myFunctionを実行した場合 ※deprecatedを実行した場合 所感 少し前にAtmosphere Tokyoで「パフォーマンスの良いGASの
apacheのログをfluentdを用いてTreasureDataに入れてみたのでメモしておく。 背景 nginx + fluentd + TreasureDataでのapache版。 ほぼ上記のコピペだけど悪しからず。 以下環境情報。 ubuntu: 12.04 ruby: 2.1.1p76 gem: 2.2.2 apache2: Apache/2.2.22 TreasureDataのAPIキーは取得済みであることを前提とする。 TreasureDataを使ってみたを参照。 fluentd(td-agent)のインストール 以下のコマンドでfluentdの安定版であるtd-agentをインストールします。
authenticator.xml の account type について authenticator.xmlに、AccountManagerに登録されるアカウント認証にまつわるメタデータを記述しますよね。 このとき、android:accountTypeという文字列属性の値に、以下のように書いたことはありませんか? Build Variant ごとにリソースが別れてくれれば、リリース版とデバッグ版で Account Type が切り替わってくれるのでそれぞれにアカウントが分けられて便利!というノリで、このように書きたくなりますが、実は罠があります。 突然の bind failure デバッグをしていると、アプリを何度もインストールしなおしたりすることがあります。そんな時、アカウントの作成を実行していると、唐突に見慣れない例外が飛んでくることがあります。 android.accounts.
Android のデータベースといえば、SQLite ですが、大抵の場合、ContentProvider によって CRUD がラップされ、ContentResolver 経由でデータソースにアクセスすることになります。 この設計によって、モデル内のデータソースが何であれ、CRUD のインタフェースが統合されるので、データソースのレイヤがどうなっているかをデータ利用者側が意識する必要がないようになっています。 が、そのインタフェースはシンプル故に、凝ったことをしようとすると、ContentProvider が頑張るか、利用者が頑張るかしないといけなくなります。 特に、データソースが SQLite の場合、SQL なら便利に出来ていたことが途端に難しくなります。例えば、行データの重複を消したり、グループ化したり、など。 Cursor からデータを取り出して、自分たちで同じような機能を実現する
前書き smartFXというモバイル向けFXの情報サイトを運営しています。 この度(2014/8/15)、smartFXのバーチャルトレード機能を Apache Cordova(PhoneGap)を使って、ネイティブアプリとしてリリースしました。smartFX Virtural Trade おかげ様で、リリース直後にマイナビニュースにとりあげていただき、そこから派生してYahooやGunosyにも掲載され、いきなりWebアプリ利用者を越えるぐらいの多くの人に使ってもらえるようになりました。 ここでは、Webアプリに対するネイティブアプリの利点やCordovaによるアプリ作成ってどうなのよ?というところを述べたいと思います。 Webアプリに対するネイティブアプリの利点 smartFXは、2014年2月28日にWebアプリとしてリリースして約半年になります。 スマホ向けのFXは、アプリはあって
PEARをPHP5.3などで動かすとして、 strict standards non-static method pear とでるときがあるが、 それの対処方法は、対象の関数の前にstaticを宣言するといいそうだ。 $pager = Pager::factory($params); static function &factory($options = array()) { Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
Leap Motionの最低限スクリプトになります。 指が有効であればInteractionBoxオブジェクトを使ってLeapMotionの座標系をディスプレイ座標系に変換して球体にマッチングさせています。 using UnityEngine; using System.Collections; using Leap; public class LeapSample : MonoBehaviour { Controller controller = new Controller(); //指の数をカウント public int FingerCount; public GameObject[] FingerObjects; // Use this for initialization void Start () { } // Update is called once per frame v
すっかりdockerが記憶から消えたので、参考サイトの通りに コマンドを打ってdockerを再勉強してみようと思う。 入力したコマンドは記録しておく。 随分前にインストールしたのでいきなりhello worldを出力して終了するコマンド。 sudo docker run centos /bin/echo "Hello World" Hello World docker上のシェルにログインしたい場合は -i -hオプションをつけてdocker起動 sudo docker run -i -t centos /bin/bash cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) bash-4.2# exit 立ち上げたコンテナ内のシェルに入るには sudo docker run -i -t centos /bin/bash b
マルチソースレプリケーションに関しては、以前、これはすごい!mariadb10.0 でマルチソースレプリケーションが可能ににて紹介いたしました。マルチソースレプリケーション環境下での、my.cnf (mariadbでは、server.cnf)のちょっと変わったケースでのレプリケーション設定について今回は触れて見ようと思います。 下図のようなケースの場合、server.cnf にはどのような設定を加えれば良いでしょうか? 要件 SERVERXは、SERVER1,SERVER2からのレプリケーションを受ける SERVER1の中には、schema1というデータベースが存在し、数あるテーブルの中からtable1のみSERVERXにレプリケーションする 上記SERVER1内の、schema1のtable1は、SERVERX内では、schemaXのtable1としてレプリケーションする SERVER2
Git使ってます?Git。 覚えなくちゃなあ…でもあれ正直よくわかんないんだよなあ…。そんなデザイナー結構いるんじゃないかと思いますが(いてくれ!)いかがでしょうか。 一応、ご存じない方のために概要を抜粋。 Git(ギットまたはジット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。もとはLinuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。Linuxカーネルのような巨大プロジェクトにも対応できるように、動作速度に重点が置かれている。現在のメンテナンスは濱野純 (Junio C Hamano) が担当している。 Wikipediaより つまりGitとは、コードや画像の修正・変更ごとにファイルの状態を記録し、それぞれのバージョンを管理することができるシステム
近年、ソフトウェア開発を取り巻く環境が急激に変化してきています。ネットワークの整備や、コミュニケーションツールの進化に伴い、リモートワークやインターネット上での協業も盛んに行われるようになってきました。チームメンバー全員の住んでいる国が違う、といったこともあるかもしれません。 しかし物理的に離れた環境で働くと、今まで対面で行っていたコミュニケーションを別の手段で代替しなければなりません。SkypeやGoogleハングアウトなどのビデオ通話、HipChatやSlackなどのチャットアプリを利用することで仕事上必要なコミュニケーションは取れるようになりますが、ソフトウェア開発に関わる状況確認は別のツールを使う必要があります。 特にオペレーションは、いつ、誰が、どのような対応をしたか把握していたいですよね。 このような課題を解決する一つのスタイルとして、「ChatOps」があります。ChatOp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く