PostgreSQLカンファレンス2013 LightningTalk (2013-11-13: migr8.rbの設定箇所を若干修正) (2013-11-14: SQLite3での設定等を修正、「migr8.rb new --table=users」を追加)
![DBスキーマもバージョン管理したい!](https://cdn-ak-scissors.b.st-hatena.com/image/square/d348014cb7ef1920929e379387a0351712b1ec12/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fdbschemaversionmgmt-131110185010-phpapp01-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
サーバー管理ツール「Chef(シェフ)」は、ファイルに記述した設定内容に応じて自動的にユーザーの作成やパッケージのインストール、設定ファイルの編集などを行うツールだ。今回はChefの応用編として、Chefサーバーなしに複数台のサーバー管理を行う「knife-solo」というツールと、設定のためのデータなどを一元管理できる「Data Bag」という仕組みを紹介する。 knife-soloを使った複数台サーバー管理 Chefは「Cookbook(クックブック)」や「Recipe(レシピ)」と呼ばれる設定ファイルに従って、ユーザーの作成やソフトウェアのインストール、ネットワークやファイアウォール、データベースなどの設定など、さまざまな設定作業を自動で実行するツールだ。利用するメリットとしてサーバーの設定を一元的に管理できる、実行する設定内容をチェックしやすくミスを防ぎやすいなどがあり、近年注目を
インストールや設定などは、pt-agent のドキュメントの通りに進めれば難なくこなせるはずですので割愛します。 感想 以下の点などを加味して考慮した結果、思っていたほどいいモノではないような気がしました。 ざっと使ってみただけなので誤っている点などあるかも知れませんが、ご容赦を。 「ここちがうよ!」「こうすればもっといいよ!」みたいなのよろしくお願い申し上げます。 pt-agent というエージェントを root 権限で動かさなくてはならない pt-agent の設定は、Percona Cloud Tools の WEB 画面からも設定変更を行えます。 例えば以下画像だと、How often to report のところをいじるとサーバ上にある cron のファイルが書き換えられます。 インターネットから操作するのに root 権限あげちゃうのか、、、って感じ。 [追記] root じゃ
スクロールを使った面白い処理です。 Webサイトにおいてある部分までスクロールしたら処理を実行したいといったニーズは良くあると思います。例えばMOONGIFTの場合はソーシャルボタンを表示するのはその部分までスクロールしてからにしています(描画が遅いので)。 他にも対象の画像を表示されたタイミングで読み込みたいといった場合もあるでしょう。そこで使ってみたいのがonScreenです。 デモを表示しました。このタイミングではイベントは発動していません。 Demosを表示。この時点でイベントが発動します。 使い方はjQueryプラグインなのでシンプルです。 $('elements').onScreen({ container: window, direction: 'vertical', doIn: function() { // 表示されたタイミングの処理 }, doOut: function
数年前になんとなく面白がって書いてた「Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)」というのが、昔の資料をあさってると出てきて、意外と面白かったので少しだけ手を加えて(古い情報とかあったので)公開しようと思います。 意外とリアルなものがあって懐かしい気分になりました。過去に書いた以下の記事もどうぞ参考にして下さい。 「Linuxエンジニアを目指して入社一年目にやって役にたったと思う事」 「Linuxエンジニアを辞めて大学院に入学しました」 追記: 設問1があまりによくないので、@tagomorisさんのアドバイスを頂きつつ変更しました。1を消して3を追加しています。ありがとうございます! 2000台以上のサーバー運用経験はありますか? サーバやネットワーク機器のキッティング経験はありますか? サーバやネットワーク機器の交換を現地のデータセンター職員に
PostgreSQLはもはやただのデータベースにあらず ─PostgreSQLカンファレンス2013 基調講演レポート Not so much as a database as a data Platform(単なるデータベースを超えたデータプラットフォームとしての存在) ─11月8日、都内で開催された「PostgreSQLカンファレンス2013」(主催: 日本PostgreSQLユーザ会)の基調講演に登壇したHeroku開発者のピーター・ゲーガン(Peter Geoghegan)氏はPostgreSQLをこう表現しました。 来年には次バージョンのPostgreSQL 9.4のリリースが期待されていますが、ゲーガン氏の言う"データプラットフォーム"としてPostgreSQLはどのような進化を遂げようとしているのでしょうか。本稿ではの基調講演の内容をもとに、PostgreSQLの次なる
前回の内容(vagrant-lxcで軽量仮想環境を手に入れる)の続きです。 VagrantではあらかじめBoxと呼ばれる仮想マシンの雛形を用意しておいて、起動時にそれを複製して環境を用意します。したがってLXCとVagrantを組み合わせた場合でも当然のことながらBoxが必要となります。前回の記事ではBoxは公開されているものを使いましたが、今回はBoxを自分で作成する方法を説明します。なお、Boxの作成方法はvagrant-lxcの配布物に含まれているubuntuなどのBox作成のスクリプトをかなり参考にしています。 事前準備:LXCでCentOSを利用できるようにするvagrant-lxcで利用するBoxの作成では、LXCで先に元となるOSの環境を作成できるようにする必要があります(なのでLXCを母艦にインストールしてください。必然的に環境はUbuntu系のディストリビューションに限ら
When you want to test an app on your device, usually you plug the device into your Mac and run the Xcode project. But what if you want to install the app on many devices for testing purposes or for enterprise distribution? What if your testers are spread out around the world? Enter TestFlight, a free over-the-air platform developers can use to distribute beta and internal iOS applications to team
UIPageControlはiPhoneのホーム画面でも使われている、今何ページ目かを示すUIControlのサブクラスです。 最初のiOSからあって、特徴的なUIなのでフリックでページをめくる画面ではこれを使って現在のページを示すのが定番になっています。 特に最近では初回起動時のチュートリアル画面でよく使われます。 ただ、意外と経験のあるひとが書いたものでも、このコンポーネントがタップによって値が変わるコントロールであることを忘れているのをけっこう見ます。 これを忘れると、UIPageControlのドットのところをタップすると、ドットの場所は変わるのに画面は変わらないので、ちょっとマヌケな感じになってしまいます。 UIPageControlはUISliderなどと同様にUIControlのサブクラスなので、基本的にユーザーの操作によって値が変わるコントロールです。 見た目に特徴があるの
Welcome back to our three-part series on applying and interviewing for an iOS developer job. In the first part of the series, you focused on the applying part of the equation – i.e. preparing your resume and cover letter. In this second part of the series, I will show you a few examples of some iOS resumes and cover letters that might be useful for reference or models. In the third and final part
March 21, 2013 ELBのCloudWatchにあるメトリクスをZABBIXで取得するためにfluentdを利用しました。 これでELBのアラートの設定もZABBIXで行えるので、通知の一元化が行えます。 もちろんZABBIXでグラフにすることもできます。 fluent-plugin-zabbix fluent-plugin-cloudwatch この2つのfluentdプラグインを使います。 td-agent.conf <source> type cloudwatch tag cloudwatch aws_key_id YOUR_AWS_KEY_ID aws_sec_key YOUR_AWS_SECRET/KE cw_endpoint monitoring.ap-northeast-1.amazonaws.com namespace AWS/ELB metric_name H
便利になったXcode 5新機能7選とAuto Layout入門:ここが変わった! iOS 7まとめのまとめ(2)(1/3 ページ) 大きく変化したiOS 7に戸惑う多くの開発者/デザイナのために、役立つブログ記事をまとめて紹介していく、まとめ連載。強化されたデバッグ機能、Git連携機能、テストフレームワーク「XCTest」とテスト管理機能、OS X Serverと連携するCI(継続的インテグレーション)機能「Bots」などに関するブログ記事をまとめて紹介します。 2013年9月18日、iOS 7の正式版リリースが始まりました。iOS 7は旧来のiOS 6に比べるとUI含め変わった部分が大きく、戸惑っている開発者/デザイナも多いと思います。 そこで本企画ではアプリ開発者/デザイナ向けに、iOS 7リリースに合わせて多数のブログ記事を執筆したクラスメソッドの協力の下、数回に分けてiOS 7に
どうもアクティビティを別に作成して明示的なインテントで呼び出す方法とひとつのアクティビティ内でリソースを切り替える方法があるみたい。 ・別アクティビティにすると 戻るボタンで前の画面に戻れる。 ちょっと遅い ・同じアクティビティにすると 戻るボタンでアプリ終了 画面が複数に渡ると管理しずらい などあるらしい。 とりあえず1アクティビティでの画面遷移を作ってみた public class Test03 extends Activity { private EditText editText1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // メイン画面表示 SetupScreen_Main(); } private void SetupScre
Unityを使ってAndroid/iOS用アプリを作っています。日々調べたことやつまづいたことをメモ。 データベースが使いたくてSQLiteOpenHelperのonCreateでテーブルつくってデータインサートしてってやってたんだけど、さすがにめんどい。 jsonファイルをassetsに置いてonCreateでデータベースに入れ込むとかもやってみたけど、なんか遅い。 って思ってたらすごくいい記事書いてるサイトを発見。 [Android Programming] sqliteのDBファイルをPCでつくってandroidで使う やりかた ざっくり言うと、PCでSQLiteのDBファイル作ってassetsフォルダ突っ込む。SQLiteOpenHelperのgetWritableDatabaseのタイミングでDBをコピー。 (俺はgetReadableDatabaseでもコピーするようにした)
http://engineeringblog.yelp.com/2013/11/whoa-that-embedded-web-view-looks-hot-in-your-ios-app.html Yelpがエンジニアブログで、ネイティブのユーザビリティを崩さずにweb viewをネイティブアプリに組み込む工夫を紹介しています。 Yelpのモバイルトラフィックは、2013年の第3四半期平均で月間1,100万ユニークデバイス iOSにおいてアプリにウェブを組み込む一般的な手法は、UIWebViewをつくって、それにURLを渡すことだが、それだと、読み込み中のままコンテンツがすぐに表示できない事態に陥ることになる。 1) ネイティブっぽいページ遷移を実現する まず、前提として、UIWebViewはURLのリクエストを読み込もうとするとき、そのdelegate(通常はcontroller)を呼び
前回はSimpleCursorAdapterを継承して新しいクラスを作ってたけど、listenerいらないならそこまでしなくても大丈夫。 main.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> list_row.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/
SimpleCursorAdapterはその名の通り、カーソルで取得した各行について「バインド元の(カラムの)値を単純にバインド先の(レイアウト要素の)値として使用する場合」には、簡単で便利な方法である。基本的には以下のような流れになる。 // カーソル取得(daoはDBへのクエリ処理を行うクラスのインスタンス。fetchAll()はそこで定義しているメソッド) Cursor c = dao.fetchAll(); // バインド元のカラムのカラム名 String[] from = {"col1","col2"}; // バインド先のレイアウト要素のリソースID int[] to = {R.id.item1, R.id.item2}; // アダプターの作成 SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layo
ListView ListViewのイベント処理 ここでは、ListViewのイベント処理を解説する。まず、choiceModeでsingleChoiceを指定した場合の値の取得を例にする。まず、main.xmlは以下。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/listView" android:layout_width="fill_parent" a
AlertDialog.Builder#setItemsはリスト形式のダイアログを表示してくれますが、どうしても項目の管理がやっかいでした。 色々試して項目管理を楽できるようにしてみました。 問題点 AlertDialog.Builder#setItemsは第一引数に配列リソースIDのとString配列の2つのメソッドがあります。 これ自体は特に問題ないのですが、問題は第二引数のDialogInterface.OnClickListenerほうです。 DialogInterface.OnClickListener#onClickは第二引数に選択されたリストのindexが渡されてきます。 このindexはAlertDialog.Builder#setItemsの第一引数の配列に依存します。 ということは配列の順番を変えたらonClickのindexでの判定も変更しなければいけません。 第一引
ListView ArrayAdapter ここでは、ArrayAdapterを確認する。まず、以下のコンストラクタの例を確認する。 ArrayAdapter(Context context, int textViewResourceId) 引数 説明 context 表示するView。今回はthis。 textViewResourceId TextViewのリソースID。 main.xmlは以下。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_heigh
AndroidプログラミングのTOPへ 重要なお知らせ: この記事で公開した情報は,AndroidのMVCフレームワーク「Android-MVC」の機能の一部として取り込まれました。 より正確な設計情報や,動作可能な全ソースコードを閲覧したい場合,「Android-MVC」の公式ページより技術情報を参照してください。 AndroidのMVCフレームワーク - 「Android-MVC」 http://code.google.com/p/android-mvc-... Androidアプリの画面遷移時には, Intentオブジェクト内にputExtra()でデータを詰め込んで,次の画面に渡す。 Intentに対してStringとかintとか,プリミティブな値を格納するのは容易だ。 しかし,格納する値のデータ構造が複雑になってくると, 独自オブジェクトのインスタンスを丸ごと格納したくなる。 ど
ちょっとしたデータの保存に使える。 FileMng.java 例としてList<String>型オブジェクトを、Save()メソッドでシリアライズ(ファイル保存)、 Load()メソッドでデシリアライズ(ファイル読み込み)するクラスFileMngは以下のように実装できた。 (LogMng.PrintException(e, “hogehoge”);は例外ログを残す自作クラスの処理) package com.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOut
複数のActivity間で変数を共有する場合、 startActivityに渡すIntentで共有する方法もありますが、 各Applicationで1つのインスタンスしか生成されない、 Applicationクラスを拡張する方法もあります。 今回はそちらを紹介します。 Applicationクラスの拡張 class MyApp extends Application { private String myState; public String getState(){ return myState; } public void setState(String s){ myState = s; } } 変数の利用class Blah extends Activity { @Override public void onCreate(Bundle b){ ... MyApp appState
Application内での共有データ等の管理などに便利です。 詳細な使用方法は続きをどうぞ Applicationクラスを継承する際に必要な事は、 継承したクラスの作成 AndroidManifest.xmlへの独自Applicationクラスの登録 以上の二点です。 また、使用する場合には以下に気をつけます。 Context#getApplication() を使用し、独自Applicationクラスのオブジェクトを取得する。 今回は2枚のActivityを作成し、以下の様に動作するサンプルを作成します。 画像リソースの取得/独自Applicationクラスへのデータセット 独自Applicationクラスからのデータロード/画像リソースの表示 Applicationクラスの継承 まず、Applicationクラスを継承した、独自Applicationクラスを作成します。 packag
うめぇヨーグルトソースでもいかがですか。個人差にもよりますが。もしよろしければ。 お久しぶりです。 最近うんめぇ〜と思ってるヨーグルトソースがあるので、書いていこうと思います。 ヨーグルトとハーブ類をもりもり使うので、そういうのが食べられない方にはうんめぇソースではないです。ごめんなさい…。もしよろしければお茶だけも…旦~ 【用意する…
Androidアプリ開発では、沢山のActivityが登場し、 画面遷移もある程度の規模になると複雑化します。 そして、一つのActivity内だけで簡潔できる範疇を超えてくると、 Activity間での値の受け渡しが必須となります。 今回は、そんなActivity間の値の受け渡し方法として、 遷移元から遷移先へ値を渡す方法と、遷移先での値の受け取り方。 遷移先から遷移元へ値を返却する方法をサンプルコード付きで解説します。 遷移先への値の渡し方と受け取り方 遷移元への値の渡し方と受け取り方 遷移先への値の渡し方と受け取り方 Intentによる画面遷移では、遷移先のActivityを指定してIntentを作成し、 『startActivity()』メソッドにてActivityを開始します。 その際、Activityを開始させる前にIntentへ値を保持させる事で、遷移先へ値を渡す事が可能です
やり方が分からなかったのですが、Twitterで方法を教えて貰いました。 やりたい事のイメージ ActivityがRunning状態で。左画像レイアウト状態のとき、動的に右画像レイアウト状態にする。 やりかた XML定義 TextViewとButtonを定義します。ここは普通。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/txt" android:text
参加者の皆様、共催で運営となった LINE, DataHotel, カヤック各社の皆様、本当にありがとうございました。いくつかトラブルがあったものの、本選もなんとか無事に終えることができました。 まずは優勝した LINE 選抜チームの皆様、おめでとうございます!なかなか初期スコアから上がってこないので内心ものすごく心配していましたが、ポイントを見極めて作業が終わったところで一気にスコアを上げてきたのは感服しました。 本選終了から48時間経過したいまでも頭の疲労が回復しきっていない感じで、整理できていないので思うままにつらつら書きます。 以下長文になってしまうので最初に告知です。 ISUCON3反省会 というイベントを 11/15(金) に行います。ISUCON参加者でなくてもどなたでも無料でプレミアムモルツ飲み放題ですので、日時が迫っていますが是非お越しください。 出題内容について お題は
昨日のエントリの続き。こっちのほうが有益な情報になってると思うんだけど多分昨日ほどはのびない。 さて、昨日のエントリーでは「Backbone.jsのViewはControllerってことなのか〜それは俺が間違えてたわ〜、えっじゃあ Marionette.js 使う場合はどうなの」という感じになったのだけれど、そのあといろいろ考えて以下のような感じに落ち着いた。 Marionette.jsを使っていたとしても結局考え方はBackbone.jsのときとかわらない。 つまり、Marionette.js の View も C である。ViewControllerと言うべきかもしれないので以下ではViewControllerと書く。 ViewControllerの責務は、以下の通りである。 Model(あるいはCollection)をひとつ保持し、View(HTML片のことである)をひとつ保持する
有名なサイトだとPinterestやBehanceなどで取り入れているような、グリッドレイアウトを簡単に実装できるjQueryプラグインのまとめです。 少し前はポートフォリオのギャラリー部分などのような箇所で主に使われている印象が個人的にあったのですが、最近ではブログの記事一覧やECサイトなどでもよく見かけますし、コーポレートサイトのトップに採用しているサイトなども多く見かけます。 基本的な動きは同じようなものでもサポートブラウザやアニメーションの有無などがプラグインによって違うので、自分の中で幾つか使いやすいものを見つけておくと良いと思います。 一応グリッドレイアウトを実装するためのプラグインということでまとめていますが、中にはフィルタリング・ソート・ドラッグ&ドロップなどの機能も併せて実装できるプラグインもあります。 また、基本的にフリーで使用できるもの中心でまとめていますが、商用利用
最近こんな記事を見かけて、フーンと思いながら眺めていたら、便利そうな内容(Ease debugging of Backbone events)を見かけたので、自分なりにアレンジしてみました。 Backbone.jsで作成したオブジェクトで発火した全イベントをこんな感じでconsoleに出力してくれます。 ソースは以下(コメントの指摘を受けて一行修正しました)。 (function () { 'use strict'; // ログのスタイル var logStyles = { timestamp: { color: 'gray' }, label: { color: 'white', 'border-radius': '2px' }, event: { color: 'blue', 'font-weight': 'bold', 'font-size': '110%' } }; // ラベルの
MySQLコミュニティマネージャのMorgan Tocker氏による、テーブルサイズが大きくなるにつれてINSERTのパフォーマンスが落ちてきてしまうことを防ぐ様々な方法についてのまとめ。 今日は、パフォーマンス問題を引き起こす原因になる、サイズの大きいテーブルのパフォーマンスを改善することについて書いてみようと思う。このアドバイスのうちのいくつかは、たくさんのテーブルをまとめて大きくなっているデータベースにも適用できるが、大抵の場合、独立した大きなテーブルというのは特に問題になりやすいものだ。 一般的に知られていると思われるのは、テーブルを変更する時のスピードは、そのサイズが大きくなるにつれて遅くなることだ。以下の図は、一般的なB+ツリーインデックスのパフォーマンスを時系列で見たものだ。 このグラフは、MySQL@Facebookの記事から拝借したものだ。これは、insert buffe
こんにちは。野口です。 業務アプリプログラマーがCocos2d-xでゲームを作るシリーズ第2弾です。 [ Cocos2d-xで作る弾幕シューティング ] さて、今回はシューティングゲームです。 シューティングゲームの中でも、画面いっぱいに入り乱れる敵弾を回避しながら戦ういわゆる「弾幕シューティング」と呼ばれるジャンルに挑戦してみたいと思います。 ソースコードはGitHubで公開しているのでご希望の方は以下から取得してください。 (cocos2d-x-2.2.0で、Xcode5.0のiPhone Retina(4-inch)環境でのみ動作確認しています) https://github.com/noguchi999/shooting.git ・ 画面の更新 シューティングなので、画面には最低限、「自機」、「自弾」、「敵機」、「敵弾」が存在しており、それぞれが接触した場合の処理が必要になります。
1-2. バックアップバケット用グループ作成 AWSマネージメントコンソールのIAMメニューにアクセスして、「Groups」、「Create New Group」を選択 Set Permissionsの設定では作成したバックアップバケットに対してのみ全権限を持つbackupグループを追加します 「Policy Generator」を選択し、以下のように3つの権限を設定(下図参照) # 1つ目 Effect: Allow AWS Service: Amazon S3 Actions: All Actions Selected Amazon Resource Name(ARN): arn:aws:s3:::backup # 2つ目 Effect: Allow AWS Service: Amazon S3 Actions: All Actions Selected Amazon Resource
こんにちは。LIGフィリピン支社代表のせいと(@seito_horiguchi)です。 前回、これからSassを始めたい人へ!導入手順をまとめてみた(Dreamweaver対応)というSassの基礎に関する記事を書かせていただきました。 そこで今回は、もう一歩つっこんでもっと使いこなせるようになろう!という趣旨のもと、ちょっと使えるようになったからっていい気になっている僕がSassのテクニックやら関数をまとめてご紹介いたします! たくさんある機能の中から、今回は比較的簡単で実用性の高いものをチョイスしました。 目指せSassマスター!WEBデザイナーもコーダーもすぐに実践したくなるSassの基本テクニック12連発もくじ もくじ テクニック1 アンパサンド(&) テクニック2 演算 テクニック3 round() テクニック4 rgba() テクニック5 コメントアウト テクニック6 変数 テ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く