しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Certbotで自分のサービスをSSL化

Certbotを使って自分のサービスのSSL化を行いました。
設定はこちらを参考にしました。

Let's Encrypt の使い方 - Let's Encrypt 総合ポータル

環境

OSはCentOS6でサーバーはnginxを使っています。

SSL化

SSL化は非常に簡単で、下3つのコマンドで済みました。

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto

コマンドを実行すると下のようにどのドメインをSSL対応するか聞かれます。
ドメイン情報はnginxの設定を読み込んで自動抽出してくれます。

f:id:llcc:20180103185957p:plain

そのあと、httpsへの自動リダイレクトをするかを聞かれます。
「自動リダイレクトをする」を選ぶとnginxの設定を書き換えてリダイレクトするようにしてくれます。

f:id:llcc:20180103190144p:plain

以上でSSL対応は完了です。

f:id:llcc:20180103190335p:plain

【チュートリアル実践】Illustratorで花を描く

こちらのチュートリアルを参考に花びらを描いてみました。

f:id:llcc:20171223131104p:plain

www.tutorialmaniacs.net

学び・メモ

  • 色選びに悩んだらスウォッチを使うと良さそう
    • 今回使った植物以外にも金属や水など色々なパターンがある
    • スウォッチは布の見本・小布などの意味があるらしい
  • 少し色や形を変えるだけで色々な種類の花が作れそう

f:id:llcc:20171223131806p:plain

【Swift、検証】didSetでの#functionがどうなるか調べてみる

Swiftには現在のメソッド名を返してくれる#functionというリテラルがあります。
このリテラルがdidSetやComputed propertyだとどうなるかを調べてみました。

func myMethod() {
    print(#function) // → myMethod
}
myMethod()

didSetでの#functionの挙動

didSetで試した所、下のようにプロパティー名を返しました。

class MyClass {
    var myValue = 0 {
        didSet {
            print(#function) // → myValue
        }
    }
}
MyClass().myValue = 1

Computed propertyでの#functionの挙動

Computed propertyもdidSet同様にプロパティー名を返しました。

class MyClass {
    var myValue: Int {
        get {
            print(#function) // → myValue
            return 0
        }
        set {
            print(#function) // → myValue
        }
    }
}
_ = MyClass().myValue
MyClass().myValue = 1

【Chrome拡張】新規タブのよく見るページを削除する

Chromeで新しいタブを開いた時に出る「よく見るページ」。
面白い機能なんですがついついそこ経由でネットサーフィンする事があるので、Chrome Extensionを作って削除する事にしました。

f:id:llcc:20171220164749p:plain

Chrome Extensionで新規タブを上書き

Chrome Extensionでは新規タブや履歴ページを上書きする機能があるのでそれを使いました。
まずは適当なフォルダを作ってnewtab.htmlという空ファイルを作成します。

f:id:llcc:20171220165129p:plain

同じフォルダにmanifest.jsonというファイルを作成して、下のように記述します。

{
  "name": "NewTabCleaner",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "新しいタブのよく見る項目を削除する",
  "chrome_url_overrides" : {
    "newtab": "newtab.html"
  }
}

これで新規タブの上書きができるようになりました。
続けてChrome上でこれを読み込みます。

自作Chrome Extensionの読み込み

まずはChromeのメニューから拡張機能ページに移動します。

f:id:llcc:20171220165317p:plain

そこにある「パッケージ化されていない拡張機能を読み込む…」を押すとフォルダ選択画面になるので、先程作った拡張機能のパスを指定します。

f:id:llcc:20171220165455p:plain

読み込み完了すると下のように拡張機能が追加されます。

f:id:llcc:20171220165411p:plain

この状態で新しいタブを開けばまっさらなページが表示されます。

f:id:llcc:20171220165558p:plain

【iOS】Xcconfigで設定を外部ファイル化

Xcconfigというファイルを試してみました。

このファイルを使うと、下のような書き方で設定を定義できます。

f:id:llcc:20171219151547p:plain

Xcconfigを使わない場合は下記のようにBuild Settingsで行う必要があります。

f:id:llcc:20171219151605p:plain

Xcconfigの使い方

Xcconfigファイルの作成は、Configuration Settings Fileを選択する事で行います。

f:id:llcc:20171219151810p:plain

作成すると下のように空ファイルが作られます。

f:id:llcc:20171219151900p:plain

ここで下のように設定を記述していきます。

TEST1 = 10
BundleDisplayName = マイアプリ

作成した設定ファイルの読み込みは下の箇所で行います。

f:id:llcc:20171219152035p:plain

上記設定をすると、下のようにBuild Settingsに反映されます。

f:id:llcc:20171219152331p:plain

この設定はInfo.plistなどで活用する事ができます。

f:id:llcc:20171219152430p:plain

SKShapeNodeのfillTextureに画像をセットしたのに表示されない時の対処法

表題の件で少しハマったのでメモ。

画像を表示する方法

まずはプロジェクトに画像を追加します。

f:id:llcc:20171214145632p:plain

画像を追加したら、下のようにSKShapeNodeのfillTextureに画像をセットします。

import SpriteKit

class GameScene: SKScene {
    override func didMove(to view: SKView) {
        let node = SKShapeNode(circleOfRadius: 100)
        node.fillTexture = SKTexture(image: #imageLiteral(resourceName: "ball"))
        addChild(node)
    }
}

実行結果は下の通りです。
SKShapeNodeの枠線はあるけど画像は表示されません。

f:id:llcc:20171214145840p:plain

画像を表示するためには、下のようにfillColorをセットする必要があります。

class GameScene: SKScene {
    override func didMove(to view: SKView) {
        let node = SKShapeNode(circleOfRadius: 100)
        node.fillTexture = SKTexture(image: #imageLiteral(resourceName: "ball"))
        node.fillColor = UIColor.white // 今回追加
        addChild(node)
    }
}

f:id:llcc:20171214145955p:plain

公式ドキュメントによると、fillTextureはfillColorとブレンドして表示されます。
画像が表示されなかったのは、fillColorが透明だった為だと思います。

fillTexture - SKShapeNode | Apple Developer Documentation

fillColorを白以外の色にすると少し黒っぽい画像が表示されます。

node.fillColor = UIColor.lightGray

f:id:llcc:20171214150249p:plain

RubyでCoincheckのAPIを叩いてみる

Rubyを使ってCoincheckのAPIを叩いてみました。

取引所APIドキュメント | Coincheck(コインチェック)

APIは、認証不要のpublic apiと認証が必要なprivate apiの2種類あります。
今回は板情報を取得するpublic apiを叩いてみようと思います。

Coincheckは公式ライブラリがあるので、それを利用しました。

source "https://rubygems.org"

gem 'ruby_coincheck_client'

板情報の取得は下の通りです。

require 'ruby_coincheck_client'

cc = CoincheckClient.new
puts JSON.parse(cc.read_order_books.body)

次のように注文情報を取得する事ができます。

f:id:llcc:20171213142655p:plain

現在のレートの取得は下の通りです。

require 'ruby_coincheck_client'

cc = CoincheckClient.new
puts JSON.parse(cc.read_rate.body)

次のように現在の価格を表示してくれます。

f:id:llcc:20171213142947p:plain

関連記事

www.cl9.info