GitHubやBitbucketは使ってきましたが、VPSにGitリポジトリを作成して使った事はなかったのでメモ。 数ヶ月前の記録なので覚えてないところが多いけど…… 環境は私の苦手なCentOSの6.5です。UbuntuやDebianでも大して変わらないかと。 グループを作る 数人で触る可能性があったので、とりあえずグループを作ります。
![VPSにGitリポジトリを作る - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b8c04089c713e9e5573193083ed8dea26b93a520/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9VlBTJUUzJTgxJUFCR2l0JUUzJTgzJUFBJUUzJTgzJTlEJUUzJTgyJUI4JUUzJTgzJTg4JUUzJTgzJUFBJUUzJTgyJTkyJUU0JUJEJTlDJUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0wMzk2MzUzNDgyZTdiYjEzY2E5YzExMGJjMWUyYTAxMQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc2FzYXBsdXMxJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iNzM2YzYzYmRmYTRlYjQ2NzFhYzNhNjM3ZWYyMzYyYw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D51f15d0020c8932bc3bfa4e74f5866ae)
WWDC2014のビデオを暇を見つけては見ています。 もちろん開発者のための祭典なので技術的な内容を解説するセッションが多いのですが、実はそうではないセッションもあるのです。特にUI系に関するセッションは非常に魅力的です。 なぜならアップルがどのようにアプリを作っているかを知ることができるからです。 WWDCのセッションは今年からは開発者アカウントを持っていなくても見られるようになりました。無料で見ることができるなんてかなりおトクだと思います。WWDC2014のビデオ、pdfはこちらから見ることができます。 エンジニアでも、デザイナーでも、マネージャーでも、iOSアプリ開発に携わる方にはぜひとも目を通しておいてもらいたいのが、こちらの3つ。独断と偏見で選びました。 Platforms State of the Union Designing Intutive User Experience
class BlogsController < ApplicationController # 第一引数にテキスト、第二にパスを入れる add_breadcrumb 'Home', 'http://www.example.com' add_breadcrumb 'ブログトップ', :blogs_path def index end def show @blog_title = "今日もやる気なし" # 第二引数を省くとリンクではない階層を作れる add_breadcrumb '日記' add_breadcrumb @blog_title, :blog_path end end 上記のサンプルだと以下のように表示されることだろう。 Home > ブログトップ > 日記 > 今日もやる気なし (separatorに「 > 」を指定した場合) 日記と今日もやる気なしはリンクにはならない。 日記の
サーバーとの定期的な疎通確認を setInterval で実装してたら、いつの間にか処理が停止してたという話。 setIntervalの中でエラーが飛ぶとタイマーが停止する。 ΩΩΩ process.on('uncaughtException', function (err) { console.error(err.stack); }); setInterval(function () { JSON.parse('{}}}'); // throw }, 1000); setInterval(function () { console.log('xxx'); }, 1000); $ node a.js SyntaxError: Unexpected token } at Object.parse (native) at null.<anonymous> (/home/ajido/a.js:6
エディタの選択文字列を任意のサイトで検索 phpファイルを編集しているとき、関数名でPHPマニュアルを検索したくなるので、 ファイルの拡張ごとにURLを指定してブラウザを開くスクリプトを作りました。 search_with.sh search_with.sh convert_url()の部分で拡張子に対応するURLを設定しています case $EXTENSION in 'php' ) URL='http://php.net/search.php?lang=ja&show=quickref&pattern=%s';; 'hs' ) URL='http://www.haskell.org/hoogle/?hoogle=%s';; * ) ;; esac
普通にsudo apt-get install nodejsとやってしまうとver. 0.10.25が入り、そこからさらにバージョンを上げようとして以下の作業をしてもエラーが出てうまくいきません。気をつけて下さい。 以下のようにします。 $ sudo su # curl -sL https://deb.nodesource.com/setup | bash - ... # exit $ sudo apt-get install nodejs ... $ node -v v0.10.29 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 d
1ヶ月で100GBのログデータを取り込み、ログが圧縮されて20GBになるとすると、$50.60/月くらい。 おそらくS3がバックエンドで使われており、保存の料金は安い感じ。 ぱっと見で結構かかる気はするけど、EC2とEBSでログを保管することに比べたら安い感じ(運用保守もいらないし)。 # インストールスクリプト取得 $ wget https://s3.amazonaws.com/aws-cloudwatch/downloads/awslogs-agent-setup-v1.0.py # インストール # 対話モードでも可だけど以下のようにするとサイレントなので自動化に向きそう。 # 設定のプロトは対話モードで作るとか $ sudo python awslogs-agent-setup-v1.0.py --configfile https://gist.githubusercontent.
FacebookのAPIの制限 access_tokenごとに600秒間に600回 appごとに1日100万回のAPIコール TwitterのAPIの制限 ユーザごとの制限とアプリケーションごとの制限がある 15分ごとに更新、特定ワードの検索は15分ごとに180回ほど 以下で確認 https://dev.twitter.com/docs/rate-limiting/1.1/limits 参考 https://developers.facebook.com/docs/reference/ads-api/api-rate-limiting https://developers.facebook.com/policy/ http://www.quora.com/Whats-the-Facebook-Open-Graph-API-rate-limit http://stackoverflow.co
【SKSpriteNodeボタン】 SKSpriteNodeを使って、iOS・OSX対応のCButtonクラスを作ってみました。これはデリケートとしてもサブクラスとしても使えるようにもいたしました。 import SpriteKit #if os(iOS) import UIKit #endif enum eButtonActionStyle: Int { case none = 0 case pop case count } enum eButtonStatus: Int { case none = 0 case down case up case cancelled func value() -> Int { switch self { case .none: return 0 case .down: return 1 case .up: return 2 case .cancelle
Stack Overflow からの転載です。 マジックメソッド__call()をオーバーライドし、call_user_func_array()で実際には予約語となる関数を呼び出す事で実現出来ます。 詳細はコードで。 引用元 namespaces - Is it possible to use new as a method name in PHP 5.3? - Stack Overflow コード (引用元から転載) /** * @method String new new($args) returns $args */ class Foo { protected function _new($args) { return $args; } public function __call($method, $args) { if($method === 'new') { return ca
GVimでJavaScriptのシンタックスチェックしようとしたら、abnormal statusとか言われて困った話VimWinsows
brew install appledoc #HTML Referenceの作成 appledoc --project-name [プロジェクト名] --project-company [会社名] --company-id [会社ID] --create-html --no-create-docset --output [アウトプット先] [ソースコードの場所] #XCodeのDocuments appledoc --project-name [プロジェクト名] --project-company [会社名] --company-id [会社ID] --no-create-html --create-docset --output /tmp [ソースコードの場所] Register as a new user and use Qiita more conveniently You get
先日webviewのアプリでログインのためにキーボードで文字を打ち込んだ所、全く文字入力が受け付けつけてもらえず、1つ前のurlに戻ってしまうというエラーが起こりました。 わけも分からずwebview.goback()が呼ばれている所を詳しく見てみると、 webview.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { } }); 内でgoBack()が呼ばれていることがわかりました。Android Developersに書かれているように、通常ならonKeyListenerはハードウェアのボタンに反応し、ソフトウェア内のボタンには反応しないはずです。事実エミュレーターや他のandroidデバイスでの実機テストではこういった
会社用環境構築時のチートメモ 文字コード設定 Preferenceでのエンコード設定 - Window -> Preference -> encode UTF-8 起動時の設定 eclipse.exeと同一ディレクトリにあるeclipse.iniに以下を追記 JDKの指定 Edit configulation -> JRE - separate JREでインストール済のJDKを指定 Code format (Space) tabをspaceに変換 Window -> Preferences -> Java -> Code style -> Formatter built inを拡張できないので、newで新しいスタイルを追加 editボタンクリック Indentationタブクリック Tab policyを"space only"に指定 別に大した設定してなった・・・(メモるまでもなかったか
onBackPressed内でwebviewがnullで返ってきてしまうエラーに直面しました。 class直下のfieldで定義していたのにも関わらず起こったので解決に時間がかかりました。 以下のコードがエラーを引き起こしていた時のものです。 public class OpenApp extends Activity { WebView webview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.openapp); WebView webview = (WebView) findViewById(R.id.wvOpenApp1); webview.loadUrl("適当なURL"); }
WebViewのアプリを作っていて実機の戻るボタンを押した時にurlを1つ戻る様にコードを書いていたのですが、goback()が呼び出されたにも関わらずにアプリが終了してホーム画面に戻ってしまいました。 以下がそのときのコードです。 @override public void onBackPressed(){ super.onBackPressed(); if(webview.canGoBack()){ Log.d("goback", "webview will goback"); webview.goBack(); }else{ Log.d("finish", "will finish the Activity"); moveTaskToBack(true); } } ログを取ってみるとgoback()をしっかり通過しているのですが、最後にshowStatusIcon on inacti
知らない人が多いのですが、保証期限内(1年)であれば無償で断線しかけのケーブルや充電器、イヤホンの交換をすることができます。ジーニアスバーに行くとすぐ交換してもらえますし電話でもできますが、オペレーターと話すのにドキドキしてしまう人はオンラインで申込み郵送交換も可能です。ただ、申込方法が非常ににわかりにくいためメモしておきます。 2営業日で届きますし本体が保証内であれば回数制限も無いようなのであわてて買うよりお得です。 以下のURLより「修理サービスを申し込む」を選択 https://www.apple.com/jp/support/iphone/repair/other/ サービスリクエストとトラブルシューティングで 「イヤフォン、ケーブルまたはアダプターの交換」 クリックするとメールアドレスを入れる欄が出てくるのでApple Storeで使っているアドレスを入れてクリック。 携帯側にメ
前回の #0 でS3を利用した静的Webホスティングまでやったので、#1 はRoute53でのドメインホスティングをやります。 (静的Webホスティングシリーズ第2弾) ご都合付く方は、AWSアカウントとPCをご持参の上、ご参加ください。 (今回は独自ドメインもお持ちいただくと二倍楽しめると思います。) 内容 1. route53 (ドメインの登録) 方法1: 独自ドメインをRoute53に委任する(委託先は外部のレジストラのまま): http://qiita.com/tcsh/items/830de9f0ea5618431e7b 方法2: 独自ドメインを取得する (route53domains): http://qiita.com/tcsh/items/597e7644949bfe4ab405 ひととおり動作検証はしているのですが、(ドメイン取得は何度もするわけにいかないので)当日うまく
アプリの開発中にアプリの名前を変更しようと思うことがあるかもしれません。特に名前の長さによってアンドロイド上に表示される一部が切れてしまったり、改行されたりされてしまうので、スムーズに変更できると助かります。 これは単純にAndroidManifestファイル内で、launcherとなっているactivityのandroid:labelを変えることで、変更することが出来ます。 <activity android:name="MainActivity" android:configChanges="orientation" android:label="This is the title on Home screen" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.in
やりたいこと CakePHP ではフォームを作成するための FormHelper があって、$this->Form->create() で作成されたフォーム内で $this->Form->input( 'name' ) のように input 要素を作成する事ができるが、name="param[]" のような配列パラメータを作成したい場合に以下のようにやってもうまくいかない。 ctpファイルの記載 <?php $this->Form->create( 'User' ); ?> <?php $this->Form->input( 'param.1', array( 'type' => 'text' ) ); ?> <?php $this->Form->end(); ?>
/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption,
"Diff: ...Pods/Manifest.lock: No such file or directory" とか ".../Pods/Pods-resources.sh: line 5: /resources-to-copy-Ubiregi2.txt: Permission denied" みたいなの。 なんか最近よく遭遇した。Pods/以下をexcludeしてGitブランチを切り替えて開発しているとよく起る気がする。 pod installしろとメッセージが出て従うとManifest.lockファイルの問題は解決されるけど、他のリソースファイルやヘッダーを参照できてない項のエラーが出る。 リソース見付からないのはBuild SettingsからPODS_ROOTの設定がなぜかなくなっていることが直接の原因。Xcodeプロジェクトファイルをreopenすると再設定されビルドできるよう
RecyclerViewがICSでも使えることがわかったので早速使おうとしたら、Cursorが使えなくて困った。CursorAdapterに該当するクラスがないからだ。 そのうち、きちんとしたものがでるとおもうんだけど、ひとまず現実問題に対応するために、Cursorに対応したRecyclerView.Adapterを作っておいたのでここにメモしておきます。 import android.content.Context; import android.database.ContentObserver; import android.database.Cursor; import android.database.DataSetObservable; import android.database.DataSetObserver; import android.os.Handler; impo
とりあえず画像を見て下さい。 求めてない現象 求めている現象 なぜこの現象が起きたのか? スマホ向けサイトのコーディングする際にデバイスごとの画面幅に対応させる一つの手段として $(window).bind('resize load', function(){ $("html").css("zoom" , $(window).width()/480 ); }); このような記述をすることがあります。 480pxを基準に現在の画面幅の比率を求めて、htmlに記述されている部分を拡大縮小させているjsになります。 これがSNSボタンの上位のiframeに作用してしまい、求めていない現象が起きてしまいました。 今回これを回避するために $(window).bind('resize load', function(){ $("header,article,footer").css("zoom" ,
CakePHPでは基本のURLは /:controller/:action となりますが、 /XXX/:controller/:action や /YYY/:controller/:action の様な構造にしたい場合、 CakePHPがプレフィックスルーティングを用意してくれているようです。 パッと思いついた方法 Router::connect('/XXX/', array('controller' => 'pages', 'action' => 'index')); Router::connect('/XXX/:controller', array('action' => 'index')); Router::connect('/XXX/:controller/:action/*', array()); Router::connect('/YYY/', array('controlle
<!DOCTYPE...> <html> <head> ヘッダ情報 </head> <body> コンテンツ内容 </body> </html> タグに使用する文字はXHTMLは特定の部分を除き小文字で記述する決まりがあるが、 HTMLは特定の部分を除き大文字小文字どちらでも良い。 将来を見据えてHTMLも小文字で統一しておくのがよさそう。 ちなみにhtml5でのDOCTYPEは<!DOCTYPE …と記述することが多いが、実際は大文字小文字どちらでも構わない。 しかしSGML/XMLではDOCTYPEを大文字で記述する必要があるため、HTML5でも大文字で書かれることが多い。 DOCTYPE(DTD)宣言 一行目には、HTMLバージョンのDOCTYPE(DTD)宣言を記述し、その仕様での文法を利用しなくてはならない。 HTML4以前では上手に読んでもらうため長々とした(しかし必要な)記述
「ログを集めて保存する」と言うのは簡単だけど,ログ収集の構成にはいくつか方法があり,勉強会などでちょくちょく聞かれるので,いくつかのパターンについて書く. 「俺はもうバリバリログ収集やってるぜ!」という人は多分すでに知っていることが書かれているので,タブを閉じて良い. ここではログコレクタにFluentdを想定しているが,他のログ収集プロダクトにも適用出来るはず. ただ,Fluentdはタグベースのルーティングを持ち,単体でもキューのように動作させることが可能で,既存のものより複雑な問題を解決しようとしているので,少し工夫が必要かもしれない. Fluentdそのものについては公式ドキュメントや,Fluentdとはどのようなソフトウェアなのかを参考に. クライアントから直接保存する いきなりFluentdを使わないパターン.JavaScript SDKを提供している解析サービスやモバイル端末
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く