はじめに
HTTPのリクエストとレスポンスが確認できるhttpbin.orgページについてご紹介します。
公式ページ:
http://httpbin.org/
httpbin.orgを使って確認とテストをしてみる
httpbin.orgページではHTTPリクエストに対してjsonデータでレスポンスを表示して確認することができます。
レスポンス情報でグローバルIPアドレスを確認することができます。
公式ページのリンクをクリックしてブラウザ上で確認することもできますが、curlコマンドやプログラムで実行してjsonレスポンスを受け取ることもできるのでget/postのテストやjsonのパーステストなどにも使えて非常に重宝します。
http://httpbin.org/
curlでグローバルIPアドレスの確認
グローバルIPアドレスを確認します
$ curl http://httpbin.org/ip
グローバルIPアドレスとリクエストヘッダ・レスポンスヘッダ(curlのverboseオプション)を確認します
$ curl -v http://httpbin.org/ip
get/post送信のテスト
以下のコマンドを実行することでget/postの送信を行いレスポンスの確認ができます。
jsonで戻ってくるのでプログラムでコールしてjsonのパースのテストなどにも使えて便利でした。
get送信でhttpレスポンスを確認します
$ curl -X GET http://httpbin.org/get
post送信でhttpレスポンスを確認します
$ curl -X POST http://httpbin.org/post
postにパラメータを含めて送信でhttpレスポンスを確認します
$ curl -X POST http://httpbin.org/post -d “key1=test&key2=test”
はじめに
mac環境では問題なかったんですがcentosのvim上で[ :NeoBundleUpdate ]を実行した時に、エラーがプラグイン数の数だけでてしまったので調べてみました。
事象の原因と解決まで
もともとのneobundleの設定とvimrcの設定状況から解決案までです。
neobundle.vimの導入
gitでneobundle.vimをcloneしておきます
mkdir -p ~/.vim/bundle
cd ~/.vim/
git clone https://github.com/Shougo/neobundle.vim.git neobundle.vim
エラー時の.vimrcの記述
cloneしたneobundle.vimを読み込みます
filetype off
if has(‘vim_starting’)
set runtimepath+=~/.vim/neobundle.vim
call neobundle#rc(expand(‘~/.vim/.bundle’))
endifNeoBundle hoge1
NeoBundle hoge2
NeoBundle hoge3filetype plugin on
filetype plugin on
※NeoBundleのhogeはいずれかのプラグインです
原因?
エラー内容から、neobundle#beginとneobundle#endのブロック間でneobundleをコールするようにとのことです。
エラー内容:
NeoBundle` commands must be executed within a neobundle#begin/end block.
今まで出ていなかったのに、centos環境でなぜでたのか、バージョン?仕様変更?
NeoBundleのバージョンにより仕様がかわった?とかでしょうか。
参考:
https://teratail.com/questions/9759
解決
.vimrcをエラーの通りbeginとendで囲ってやります
filetype off
if has(‘vim_starting’)
set runtimepath+=~/.vim/neobundle.vim
call neobundle#begin(expand(‘~/.vim/.bundle’))
endifNeoBundle hoge1
NeoBundle hoge2
NeoBundle hoge3call neobundle#end()
filetype plugin on
filetype plugin on
再度vim上で[ :NeoBundleUpdate ]でエラーがでなくなりました。難しいですね。
はじめに
ssh認証でサーバにログインする場合にsshのconfigを設定しておくと楽になるのでやり方をメモしておきます。
設定しておくと、秘密鍵の指定や接続先ホスト名の指定を簡単にすることができます。
~/.ssh/configの使い方
configのフォーマットについて
~/.ssh/configファイルのフォーマット:
Host [ホスト名] HostName [リモートサーバIP] Port [ポート番号] User [ユーザ名] IdentityFile [秘密鍵のpath]
通常のssh接続
通常時のサーバ接続:
$ ssh [リモートサーバIP]
config設定をした場合のssh接続
configファイルの作成:
$ vim ~/.ssh/config $ chmod 600 ~/.ssh/config
configファイル編集:
Host hoge HostName [リモートサーバIP]
※hogeという名前でエイリアスを設定
config設定時のサーバ接続:
$ ssh hoge
はじめに
ssh認証で公開鍵をサーバに保存する場合に、scpコマンドでファイルをサーバに転送していましたが、もっと便利なコマンドを知ったので忘れないようにメモしておきます。
ssh-keygenについてはこちら:
[MAC]ssh-keygenコマンドで秘密鍵・公開鍵生成
sshで公開鍵をサーバに転送する
ssh-keygenにより作成した公開鍵はssh-copy-idコマンド(shell)を利用する事で簡単にできます。
ssh-copy-idの使い方
~/.ssh/id_rsa.pubの公開鍵をサーバに転送する場合:
$ ssh-copy-id [ユーザID]@[リモートサーバ]
~/.ssh/id_rsa.pub以外の公開鍵をサーバに転送する場合
$ ssh-copy-id -i [公開鍵のpath] [ユーザID]@[リモートサーバ]
ssh-copy-id実行時にエラー「ERROR: No identities found」がでる場合
エラーの原因は対象サーバに「~/.ssh/authorized_keys」が存在しない場合です。
そのため、サーバにauthorized_keysを作成します。
$ touch ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys
たまに使うコマンドリストについてメモ
cd,lsなどの基本コマンド以外で、たまに使い覚えておいたほうがいいコマンドを忘れないよう。
コマンドリスト
サービスの現在のステータス表示
service --status-all
OSブート時に自動起動するサービス表示
chkconfig --list
dotファイルなどのスクリプトの即時反映
source [対象のスクリプトファイル名]
リモートマシン間でファイルコピー
scp -r [ファイル名 or ディレクトリ名] [ユーザ名@ホスト名:リモートサーバのディレクトリ]
※rオプションで再起的にディレクトリ配下のファイルを転送
外部リポジトリのパッケージ管理を導入する方法をメモ
CentOSのyumパッケージ以外にあるパッケージ管理でよく使われているとの事で、epel,remi,rpmforgeを導入してみたのでメモ
yumに存在していない最新バージョンのパッケージをダウンロードできたり、yumにそもそも存在しないものをダウンロードできたりする。
ただ、epel,remi,rpmforgeのどれも同じく存在する場合にどうするの?っていう改善が必要
下記とても参考になるページで、一通り書いてあるので、覚え書きのみで残しておく。
参考:
http://oki2a24.com/2012/03/13/what-is-rpmforge-remi-epel/
各パッケージツールのダウンロード・インストール
下記サイトから其々ダウンロードする
epel
http://download.fedora.redhat.com/pub/epel/5/x86_64/
remi ※remiはepelがないと動作しない
http://rpms.famillecollet.com/el5.x86_64/
rpmforge
http://dag.wieers.com/rpm/packages/rpmforge-release/
※[パッケージ名]-release-のパックを探してダウンロードする
ダウンロード例
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm # wget http://rpms.famillecollet.com/el5.i386/remi-release-5-8.el5.remi.noarch.rpm
インストール例
# rpm -Uvh remi-release-5-8.el5.remi.noarch.rpm epel-release-5-4.noarch.rpm
インストール確認
# rpm -qa | grep epel-release # rpm -qa | grep remi-release # rpm -qa | grep rpmforge-release
全てのパッケージを無効設定にする
epel,remi,rpmforgeのどれも存在している場合にどうなるのか?となるので全て無効にしておくとよいらしい。
# vim /etc/yum.repos.d/remi.repo # vim /etc/yum.repos.d/epel.repo # vim /etc/yum.repos.d/rpmforge.repo
enable = 1 を enable = 0 に変更する事で無効化される(勝手にリポジトリからインストールしないということ)
※remiはデフォルト enable = 0 になっている
入れたいパッケージのバージョン情報を確認
例えばphpをインストールしたい場合のそれぞれの確認方法
yum
yum info php
epel
yum --enablerepo=epel info php
remi
yum --enablerepo=remi info php
rpmforge
yum --enablerepo=rpmforge info php
それぞれ存在知る場合はインストールバージョンが表示され、存在しない場合は表示されない。
で三つの中で一番最新版を持っているリポジトリを選択して表示 ※これ便利
yum --enablerepo=epel,remi,rpmforge info php
上記で確認したバージョンのインストール
入れたいバージョンがあればそちらでインストールすれば良い
例えばremiでインストールは
yum -y --enablerepo=remi install php
例えば三つの中で一番最新版のリポジトリをインストールは
yum -y --enablerepo=epel,remi,rpmforge install php
※yオプションは問い合わせがあった場合にすべてyesで続ける場合に指定
centosへapacheをインストールし各種セキュリティ設定を行う方法をメモ
サーバへcentosを入れたので、インストールから最低限必要なセキュリティの設定をメモしておく。
参考:
http://linux.kororo.jp/cont/server/httpd_conf.php
httpdインストール
yum install httpd
httpdの起動設定
サーバの起動時に起動するサービスとして設定
※サーバ再起動時などに毎回立ち上げ直さなくとも自動で起動する
chkconfig httpd on
起動に設定されているリストを表示
chkconfig --list
※ここにhttpdがあればOK
conf設定
httpdの設定を追加する ※confファイルの設定
設定ファイルを編集する
vim /etc/httpd/conf/httpd.conf
ServerTokensの設定
ServerTokens Prod
引用—————————————————————————————————————————————————
ServerTokens は、HTTPレスポンスヘッダーの値を返し、その中に含まれるサーバーOS に関する情報、コンパイルされたモジュールなどの情報などを返します。これらの情報を相手に提供するのは決して好ましいとはいえないので、コメントアウトして無効にするか、最低限の情報しか表示させないようにします。ServerTokens には、いくつかのレベルを設定する事ができ、デフォルトではFull に設定されています。最も少ない情報を提供するためには、Prod を指定します
——————————————————————————————————————————————————
ServerSignatureの設定
ServerSignature Off
引用—————————————————————————————————————————————————
ServerSignature は、エラーメッセージなどをクライアントに返す際のフッターラインを表示させるかどうかを指定するディレクティブです。これらの情報を隠蔽するには、値をOff にしておきます。なお、On と Off の他にも、EMail という値も指定する事ができ、上記のServerTokensの例で言うと、ns と表示されているところにリンクが貼られるようになります
——————————————————————————————————————————————————
httpdサービスの起動
service httpd start
ブラウザからアクセスする
デフォルトでは/var/www/htmlにファイルを設定するとブラウザから参照できるようになる。
※confファイルの設定でDocumentRootのパスで変更可能
ブラウザから見る場合は、サーバのipアドレスを指定すれば良い。
※別途ポートを80以外に指定している場合はそちらも指定すること(デフォルト80)
ブラウザからアクセス
[IPアドレス]:[ポート]
※デフォルト指定なしでも80なので80に設定している場合はポート不要
設定したhtmlファイルが表示されればOK
findの[ -exec {} \; ]オプション と [ -exec {} + ] オプションがなんなのかメモ
よく人のブログで見かけていた -exec なんちゃらがなにか良くわからなかったので調べた
そもそも-execとは
findの検索結果の結果を渡して別のコマンドを実行するためのもの。
結果xargsと似ている(速度的にはxargsのほうが早いらしいので意味がなければこちらでよさそう)
さらにxargsと同じ処理と思われるのは {} +のほう。
リファレンスを見る
まずは
man find
結果
-exec utility [argument ...] ; True if the program named utility returns a zero value as its exit status. Optional arguments may be passed to the utility. The expres- sion must be terminated by a semicolon (``;''). If you invoke find from a shell you may need to quote the semicolon if the shell would otherwise treat it as a control operator. If the string ``{}'' appears anywhere in the utility name or the arguments it is replaced by the pathname of the current file. Utility will be executed from the directory from which find was executed. Utility and arguments are not subject to the further expansion of shell patterns and constructs. -exec utility [argument ...] {} + Same as -exec, except that ``{}'' is replaced with as many pathnames as possible for each invocation of utility. This behaviour is similar to that of xargs(1).
よくわからないのでそのままgoogle翻訳(汗
-execユーティリティ[引数...]; ユーティリティという名前のプログラムが終了するようにゼロの値を返す場合は真 ステータス。オプションの引数は、ユーティリティに渡すことができる。エクスプレッション (; '' ``)シオンは、セミコロンで終了する必要があります。あなたが見つけ呼び出す場合 シェルからあなたはシェルが希望の場合、セミコロンを引用する必要があるかもしれません そうでなければ制御演算子として扱う。もし文字列 `` {} '' ユーティリティ名の任意の場所に表示されるか、引数がそれが交換される 現在のファイルのパス名によって。ユーティリティは以下から実行されます 見つけ、そこからディレクトリが実行されました。ユーティリティと引数は シェルのパターンと構造物の更なる拡大を受けない。 -execユーティリティ[引数...] {}+ ことを除いて、-execと同じ``{} ''のような多くのパス名に置き換えられます ユーティリティの各呼び出しのために可能な限り。この動作は似ています xargsのと(1)。
まずそもそも-exec {} \; のバックスラッシュは;がコマンドか判断がつかないためにエスケープしているだけのよう。
なので意味は無いが-exec {} \+ も有効。
やはり-exec {} + と xargs はリファレンス上も同じということらしい。
動作確認
下記2つは同等の結果となる例。
拡張子がrbのファイルの中で文字列aiueoが含まれるファイルを列挙
-exec {} + 実行
find . -name "*.rb" -exec grep aiueo {} +
xargs 実行
find . -name "*.rb" | xargs grep aiueo
結果はどちらも
./test1.rb:aiueo ./test2.rb:aiueo
※test1,test2どちらもaiueoの文字が含まれているrubyファイル
この状態で
-exec {} \; 実行
find . -name "*.rb" -exec grep aiueo {} \;
結果
aiueo aiueo
あれ、ファイル名がない・・・・・パスがないのか。これが違い
再度、工夫してチャレンジ
-exec {} + 実行 ※に/dev/nullを指定(複数のファイルが指定された事になる)
find . -name "*.rb" -exec grep aiueo /dev/null {} \;
結果
./test1.rb:aiueo ./test2.rb:aiueo
これでファイル名もでた。
結論
-exec {} + はファイルをまとめて実行する(グループ実行)➡ 全ファイルのパスに置き換えられる
-exec {} \; はファイルを1つずつ実行する(単体実行)➡ファイルパスにならない
ので、ファイル名が欲しい場合は -exec {} + を使うと良い、もっというと速度もあるxargsを使うと良さそう
であってるかな・・・・
ついでに
さらにもっというとmacの場合はmdfindを使うのが一番良い!
さっきの例でいうと
mdfind . -onlyin aiueo
結果
/Users/[user-name]/sample/test1.rb /Users/[user-name]/sample/test2.rb
親切で便利!そして速い!
tmux上でviモードでクリップボードにコピーする方法をメモ
tmux上に表示している文字をコピーする場合に「copy-pipe」コマンドがあるため使い方を忘れないようにメモ
インストール
まずはtmux上でクリップボードを使えるようにするためのツールをインストール
brew install reattach-to-user-namespace
※パッケージ管理はhomebrewを使用した場合
tmux.confの設定
tmux.confに使い勝手が良いように設定を行う。
# Use vim keybindings in copy mode setw -g mode-keys vi # Setup 'v' to begin selection as in Vim bind-key -t vi-copy v begin-selection bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" # Update default binding of `Enter` to also use copy-pipe unbind -t vi-copy Enter bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
※どこぞやから丸コピーさせてもらっています。
使い方(コマンドのみ)
※tmuxのデフォルトでプレフィックスはctrl + bの場合
まずコピーモードに入る
ctrl + b + [
あとはviと同じく、選択「v」キー、コピー「y」キー、コピーモード終了「q」となる。
yでコピーした文字列はクリップボードに格納されているため、ctrl + v で使用可能。
使い方(カーソル(マウス、トラックパッド)で選択して使う)
上記[ 使い方(コマンドのみ) ]の コピーモードに入るときに、マウスで文字列を選択してやるとコピーモードに同じく入る
あとの使い方は上記と同じ。こちらが便利
念のため
こちらのコピーはtmux上の機能のため、tmuxで動作させればvi,vim,emacsなどのツール上でも使用できる。便利
Windowsでwgetコマンドを実行する方法をメモ
windowsでコマンドを実行する場合、コマンドプロンプトではなくcygwinかgit bashなどのツールがあるとよい。
wgetダウンロード
下記ページよりwgetをダウンロードする
http://sourceforge.net/projects/mingw/files/Other/mingwPORT/Current%20Releases/
ダウンロード
curl -O http://sourceforge.net/projects/mingw/files/Other/mingwPORT/Current%20Releases/wget[バージョン番号]-mingwPORT.tar.bz2
解凍
bzip2 -dc wget[バージョン番号]-mingwPORT.tar.bz2 | tar xvf -
wgetのpathを通す
解凍ディレクトリにあるwget.exeのパスを通す
パスが通っている場所であればどこでもよいが/usr/binとする
cp [wget.exeのファイル] /usr/bin
上記でパスが通るため、あとはツールを再起動などで状態を反映させる
これでwgetコマンドが使用可能
herokuでスケジューラ(heroku Scheduler)を実行するときのメモ
herokuではcronは直接使用できなくなったため、add-onのheroku schedulerを使いスケジューリングを行う。
※他にもスケジューラーのadd-onはある様。
概要:
– 1ヶ月(750時間)の間は無償。それ以降は有償。
– 起動間隔は粗い(10min / 1hour / 1day 間隔)
– 利用状況の確認が可
https://dashboard.heroku.com/account
– 複数タスクの設定が可
– Scheduled Jobsのh設定は日本は9h加算すること ※hour指定のみ
etc
※公式ページ
https://devcenter.heroku.com/articles/scheduler#defining-tasks
heroku scheduler導入
プロジェクト直下で[heroku addons:add scheduler:standard]実行
$ heroku addons:add scheduler:standard Adding scheduler:standard on tw-follow... done, v6 (free) This add-on consumes dyno hours, which could impact your monthly bill. To learn more: http://devcenter.heroku.com/addons_with_dyno_hour_usage To manage scheduled jobs run: heroku addons:open scheduler Use `heroku addons:docs scheduler` to view documentation.
※heroku login を行い対象のプロジェクト内で実行すること
phpパス指定
$ heroku config:set LD_LIBRARY_PATH=/app/php/ext:/app/apache/lib Setting config vars and restarting tw-follow... done, v7 LD_LIBRARY_PATH: /app/php/ext:/app/apache/lib
※参考サイト
http://web-memo-jp.blogspot.jp/2013/01/herokuphplingrbot.html
実行タスクの登録
下記スケジューラ設定ページより実行ファイルを指定する
例)test.phpを実行する場合
$ php test.php
Push rejected, no Cedar-supported app detectedの改善
手順通りにphpファイルをアップロードするとエラーがでた。
git init git add . git commit -m "initial commit" heroku git:remote -a [プロジェクト名] git push heroku master
サーバ更新のpushでPush rejected, no Cedar-supported app detectedがでた。
解決方法
index.phpファイルが存在していないためにおきた
そのため追加で下記実行で良い
touch index.php git add . git commit -m "index.php file added" git push heroku master
herokuはどうやら、index.phpが必須になっている。というか昔同じところでハマった記憶が。
これ以外の場合にもあるらしいので参考:
http://tkoyama1988.hatenablog.com/entry/2013/12/13/072150
puttyで作成した公開鍵をopenssh(GitHubなど)キーへ変換する方法
windowsのputtygenで作成した公開鍵をそのままgithubなどのopenssh対応ツールにそのまま使う事ができない。githubの場合はadd keyでエラーになり登録ができない。
そのため一度puttyで作成したキーをssh-keygenで作成したのと同じ状態のopenssh対応版に変更する必要がある。
変換方法
ssh-keygen -i -f [変換前公開鍵putty] > [変換後公開鍵名 ※id_rsa.pubが一般的]
ssh-keygen -i の書式について
ssh-keygen -i [-m 鍵の形式 ] [-f 変換するidentityファイル ]
バージョン管理svnからgitへの移行手順メモ
バージョン管理をsvnからgitへ移行するときの手順をメモしておく
これはsvnのコミット情報をそのままgitに以降するため、コミット番号もそのまま引き継いでプロジェクトを進められる。
作業環境はwindowsでgit bashを使っての移行作業(macターミナルでも同様のはず)
gitバージョンは1.9.2
公式ページ
http://git-scm.com/book/ja/ch8-2.html
手順1:ユーザ名のマッピング用ファイル生成
svnのユーザ情報とgitのユーザ情報(ユーザ名/メールアドレス)をマッピングする
これを行う事で移行後のgitユーザがsvnでどのコミットを実行したかがわかる。
svnのローカル作業ディレクトリ内でコマンド実行
svn log --xml | grep "<author" | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = /' > users.txt
「svnユーザ名 = 」がリストで取得できるため
「svnユーザ名 = [gitユーザ名<メールアドレス> ]」 と全てのユーザ情報をマッピングする
手順2:ローカル環境にgitに変換したリポジトリをダウンロード
ローカル環境にsvnをコンバートしたgitリポジトリを生成する
ここでコマンドでローカルリポジトリを生成するパス上でコマンド実行
git svn clone [svnリポジトリpath] --authors-file=users.txt --no-metadata
手順1で作成したユーザ名マッピングファイルを指定してマッピングを行う
手順3:確認
svnのコミット情報を引き継いでgitリポジトリを生成できたか確認し完了
取得したローカルリポジトリのディレクトリ配下でgitのログを確認し表示されれば成功!
git log
あとはリモートリポジトリを作成し、pushすればsvnの環境移行完了
tmuxの設定ファイルtmux.confの設定情報を変更して反映されない場合の対応をメモ
tmuxでキーバインドを変更したりしたあとに、開いていたtmuxをexitして再度tmuxを開いても反映されない。さらに、ターミナル(iTermを使用)を閉じた後に再度開いても反映されない。
解決方法
これはtmuxのプロセスが残っていて次回の起動時に前回のプロセスでセッションが起動してしまう事が原因。そのため反映されていない。
ではどうするか・・プロセスを殺して対応
まずは下記でtmuxのプロセスとプロセス番号を確認する
ps ax | grep tmux
tmuxのプロセスを全て殺す
kill -9 [プロセス番号]
再度tmux起動
tmux
これで反映されているはず。
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年6月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ