ページ

ラベル 開発環境 の投稿を表示しています。 すべての投稿を表示
ラベル 開発環境 の投稿を表示しています。 すべての投稿を表示

2019年7月12日金曜日

最近よく使っているWebサービスやツール

久しぶりの投稿です。

このブログ自体、技術的な事をつらつら書いている事が多く
それだったらQiitaに書いた方が良いのかと思いそっちに書いていたのですが、
Qiitaに書く感じでも無い事や、小さめなやつとかをこのブログでまた書いて
行こうかと思います。

今回は「最近よく使っているWebサービスやツール」をまとめてみました。


Firefox Send



ログインしなくても、暗号化してファイル共有してくれる便利なサービスです。
有効期限や有効ダウンロード回数を設定できたり、パスワードで保護する事も可能です。ファイルをアップロードしたら後は相手にリンクを教えれば済むだけなので
ファイルサイズが大きなものを送る場合に重宝しています。


Github Link Card Creator

↓こんな感じのGithub リンクページのカードが作れる po3rin さんが作られている
サービスです。



サクッと作れるのでリンクを貼りたい時とかに作って貼っています。


縛りなしWiFi



名前の通り、2年縛りなどの契約期間で縛りがなく、解約金無しで純粋に
使った分だけ料金を支払って使うことができます。
今月は出張などで外で作業する事が多いから1月だけレンタル〜っという事も
できるので便利です。

StackShare



こちらは使うというよりは眺めてるだけのサイトですが、なかなか面白いです。
各ベンダーがどのような技術スタックでサービスを構成しているのか、
みてると新しい発見なんかもあったりします。


といった感じのあまり纏まりが無い感じでしたが、、
また更新があったりしたらブログに書こうかと思います。

2016年9月29日木曜日

Xcode小ネタ集 1


備忘録としての小ネタ集です。
普段Xcodeばっかり触っていたら忘れないかもしれませんが、
久しぶりに触るとすっかり忘れてしまうので・・

複数のXcode切り替え


開発中などで複数のXcodeを切り替えて使う時用です。
xcrunなどコマンドツールなどを使わない場合は、単純に
現在のXcodeをリネームしてここからお目当のバージョンの
Xcodeをダウンロードして使います。
例)Xcode.appをXcode8.appにリネーム
新たにダウンロードしたバージョン7.3.1とバージョン8が共存
次にコマンドツールを使う場合、パスを切り替える必要があります。
まずは現在のパスを確認
$ xcode-select -print-path
次に切り替えたいバージョンのXcodeのパスを設定します。
例) Xcode7.appにパスを通す場合
$ xcode-select --switch /Applications/Xcode7.app
うまく切り替わったか確認
$ xcrun --find xcodebuild
現在のアクティブなパスのxcodebuildを表示するはずです。

SearchPathsなどを設定する時によく使うマクロ


ヘッダーファイルのパスやらリンクさせるライブラリーのパスやらを
設定する際によく使うマクロ
例) /Users/hoge/Develop/SampleApp/SampleApp.xcodeproj
マクロ名展開後
$(SRCROOT)/Users/hoge/Develop/SampleApp
$(PROJECT_NAME)SampleApp
$(FULL_PRODUCT_NAME)SampleApp.app
$(CONFIGURATION)Debug/Release

2016年9月14日水曜日

ngrok - localhostを簡単に外部公開 -


開発している時に、ローカルの開発環境をテストサーバーに上げるのが面倒だったり、
デモなどで少しの間だけ外から見れるようにしたい!!
なんて事があるかと思います。
そんな時にはngrokが便利です。

ngrokとは
localhostの環境を外から見れるようにセキュアなトンネルを作ってくれる
便利なツールです。

インストール


ダウンロードのページに行って、環境にあったバイナリファイルを
ダウンロードするだけです。
筆者の場合(MacOS)ですが、ダウンロードして、バイナリファイルをパスの通ってる
/usr/local/bin配下に置きました。
ちゃんとインストールできたかは、
$ ngrok version
ngrok version 2.1.3
で確認できます。

実行


試しに、簡単なRackアプリケーションをlocalhostで起動し、
外部に公開してみます。
まずは普通にRackアプリケーション起動
$ bundle exec rackup
[2016-09-11 01:07:29] INFO  WEBrick 1.3.1
[2016-09-11 01:07:29] INFO  ruby 2.1.0 (2013-12-25) [x86_64-darwin14.0]
[2016-09-11 01:07:29] INFO  WEBrick::HTTPServer#start: pid=46061 port=9292
↑こんな感じで起動できました。この時http://localhost:9292
アクセスできます(ポート=9292)
そして実際ngrokを使って外部に公開してみます。
$ ngrok http 9292
ngrok by @inconshreveable        (Ctrl+C to quit)

Tunnel Status                 online
Version                       2.1.3
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://XXXXXX.ngrok.io -> localhost:9292
Forwarding                    https://XXXXXX.ngrok.io -> localhost:9292
エラーが起きなければ↑こんな感じで起動します。
そして実際外部からアクセスする際はhttp://XXXXXX.ngrok.ioまたは
https://XXXXXX.ngrok.ioでアクセスします。
実際にアクセスしてみると、Rackアプリケーションを立ち上げたコンソールに
アクセスログが残っているかと思います。

管理画面


また、ngrok起動中にhttp://localhost:4040にアクセスすると
管理画面が表示されます。

ステータスの表示や

リクエストの詳細などが見れます。

ん〜便利。

2016年6月15日水曜日

Googleの新しいビルドツールBazelを試してみる


Bazelとは?
Google自信が使っていたビルドツールを公開したものです。
Android、iOSなどでも使えるとのこと。現在はベータ版。
余談
なぜBazelを試そうかと思ったかというと、、
最近やってるTensorflowでBazelが使われていたからです、、はい。

環境準備 & インストール


2016年6月現在サポートされているプラットフォームは
  • Ubuntu Linux
  • Mac OS X
です。
あとJDK8以降が必要とのこと。
今回はVagrantでUbuntuの環境を用意してそこで試してみたいと思います。
UbuntuのバージョンがTrusty (14.04 LTS)であれば以下コマンドで
JDK8をインストールします。
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
ちなみに途中でsudo apt-get updateを実行しないと、
E: Unable to locate package oracle-java8-installer
のエラーが出るのでお忘れなく^^;
Ubuntuのバージョンが'Wily (15.10)'の場合は以下コマンドでインストール。
$ sudo apt-get install openjdk-8-jdk
正常にインストールできたか確認
$ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
良さそうです^^
あとは一気にBazelのインストールを行います。
$ echo "deb http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
$ curl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -
$ sudo apt-get update && sudo apt-get install bazel
$ sudo apt-get upgrade bazel
インストール確認
$ bazel version
Extracting Bazel installation...
Build label: 0.3.0
Build target: bazel-out/local-fastbuild/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Fri Jun 10 11:38:23 2016 (1465558703)
Build timestamp: 1465558703
Build timestamp as int: 1465558703

簡単なJavaプロジェクト作成


試しに簡単なJavaのプロジェクトを作成し、ビルドしてみます。
  • ディレクトリ構成
.
├── BUILD
├── WORKSPACE
└── src
    └── main
        └── java
            └── com
                └── slowhand
                    └── Sample.java
Bazelではworkspace毎の場所で作業します。
workspaceにはルート直下にWORKSPACEファイルが必要になります。
WORKSPACEはライブラリの外部参照を記述したりしますが、
今回は依存は無いので空のファイルを作成します。
  • Sample.java
単純にHello bazelと表示するだけのクラスです。
package com.slowhand;

public class Sample {
  public static void main(String args[]) {
    System.out.println("Hello bazel");
  }
}
  • BUILD
BUILDファイルにはソースコードの配置や参照ライブラリなど記述します。
java_binary(
  name = "sample",
  srcs = glob(["**/*.java"]),
  main_class = "com.slowhand.Sample",
)

ビルド&実行


それではビルドしてみます。
$ bazel build //:sample
INFO: Found 1 target...
Target //:sample up-to-date:
  bazel-bin/sample.jar
  bazel-bin/sample
INFO: Elapsed time: 10.765s, Critical Path: 7.52s
ビルドが成功するとbazel-binの配下に実行モジュールが作成されます。
$ bazel-bin/sample
Hello bazel
ちゃんと実行されてます^^
ちなみに、、WORKSPACEファイルがないと以下のエラーになります。
The 'build' command is only supported from within a workspace.

2016年1月14日木曜日

itamaeを使ってみる2



前回itamaeを使ってvagrant上のVMにhttpdをインストール&起動しましたが、
今回はserverspecを使って実際にちゃんと動作しているのかテストしたいと思います。

serverspecとは?
サーバーの状態をテストするフレームワーク。RSpecの書き方に準拠。

   serverspecのインストール


前回のGemfileに以下を追加
gem "rake"
gem "serverspec"
インストールし初期設定を行う
$ bundle install --path vendor/bundle
$ bundle exec serverspec-init
Select OS type:

  1) UN*X
  2) Windows

Select number: 1

Select a backend type:

  1) SSH
  2) Exec (local)

Select number: 1

Vagrant instance y/n: y
Auto-configure Vagrant from Vagrantfile? y/n: y
 + spec/
 + spec/default/
 + spec/default/sample_spec.rb
 + spec/spec_helper.rb
 + Rakefile
 + .rspec

   スペックの作成


serverspecの初期化を行うとspec/default/sample_spec.rbが作成されています
その中を見るとすでにhttpdのテストが書かれています。これをそのまま使ってみます。httpd_spec.rbとしてコピーし不要なものを削除。
require 'spec_helper'

describe package('httpd'), :if => os[:family] == 'redhat' do
  it { should be_installed }
end

describe service('httpd'), :if => os[:family] == 'redhat' do
  it { should be_enabled }
  it { should be_running }
end

describe port(80) do
  it { should be_listening }
end
実行してみます。
$ bundle exec rake spec
Package "httpd"
  should be installed

Service "httpd"
  should be enabled
  should be running

Port "80"
  should be listening

Package "httpd"
  should be installed

Service "httpd"
  should be enabled
  should be running

Port "80"
  should be listening

Finished in 0.26789 seconds (files took 6.26 seconds to load)
8 examples, 0 failures
上のように0 failuresになればOK

2016年1月10日日曜日

itamaeを使ってみる1


itamaeとは? 以前やったchefを簡単に使えるようにしたもの

   環境準備


gemをインストール
$ mkdir itamae_test
$ cd itamae_test
$ bundle init
Gemfileに追加
gem "itamae"

   ローカル環境でディレクトリ作成


単純にローカルでmkdir helloを行うだけのレシピを作成してみます。
itamae_test/hello.rbを以下の内容で作成
execute "mkhello" do
  command "mkdir hello"
end
早速実行してみる
$ bundle exec itamae local hello.rb -l debug
INFO : Starting Itamae...
DEBUG : Executing `mkdir -p /tmp/itamae_tmp`...
DEBUG :   exited with 0
DEBUG : Executing `chmod 777 /tmp/itamae_tmp`...
DEBUG :   exited with 0
INFO : Recipe: /Users/.../itamae_test/hello.rb
DEBUG :   execute[mkhello]
DEBUG :     execute[mkhello] action: run
DEBUG :       (in pre_action)
DEBUG :       (in set_current_attributes)
DEBUG :       (in show_differences)
INFO :       execute[mkhello] executed will change from 'false' to 'true'
DEBUG :       Executing `mkdir hello`...
DEBUG :         exited with 0
DEBUG :       This resource is updated.
DEBUG :       This resource is updated.
成功すればhelloディレクトリが作成されているかと思います。

   Vagrant環境でディレクトリ作成


上と同じ内容をVagrant上で実行してみます。
実行対象のVagrantを起動。
$ vagrant up
Vagrant対象に対してコマンドを実行
$ bundle exec itamae ssh --vagrant hello.rb -l debug
INFO : Starting Itamae...
DEBUG : Executing `mkdir -p /tmp/itamae_tmp`...
DEBUG :   exited with 0
DEBUG : Executing `chmod 777 /tmp/itamae_tmp`...
DEBUG :   exited with 0
INFO : Recipe: /Users/.../itamae_test/hello.rb
DEBUG :   execute[mkhello]
DEBUG :     execute[mkhello] action: run
DEBUG :       (in pre_action)
DEBUG :       (in set_current_attributes)
DEBUG :       (in show_differences)
INFO :       execute[mkhello] executed will change from 'false' to 'true'
DEBUG :       Executing `mkdir hello`...
DEBUG :         exited with 0
DEBUG :       This resource is updated.
DEBUG :       This resource is updated.
vagnrat上にhelloディレクトリが作成されていれば成功

   httpdのインストールと起動


もう少し実用的にVagrant上にhttpdをインストールしてサービスを起動する
レシピを作成してみたいと思います。
httpd.rbを作成
package 'httpd' do
  action :install
end

service "httpd" do
  action [ :enable, :start ]
  name "httpd"
end
実行
$ bundle exec itamae ssh --vagrant httpd.rb -l debug
ちゃんと実行されているか確認
$ service httpd status
httpd (pid  XXXX) is running...
   軽く使ってみて・・・
シンプルに扱えるのがいいですね。
Chef-soloしか使ってないという人はitamaeお勧めです。