Swift3でシングルトンを試す

シングルトンとは

インスタンスが必ず一つであることを保証したいクラスがあったときにそれを保証してくれるものがシングルトンである.

コード例

class Common: NSObject {
    static let sharedInstance = Common()
    var sharedString = ""

    private init() {

    }
}

利用側コード

class ViewController: UIViewController {
    var test = Common.sharedInstance.sharedString
}

pythonでOpen JTalkを使うサンプル

Open JTalkとは

”Open JTalk”は名古屋工業大学の研究チームが作ったフリーのLinux日本語音声合成エンジンのこと

Open JTalk - HMM-based Text-to-Speech System

インストール方法

環境

  • debian系Linux
  • python 2.7.x

インストール

sudo apt-get install open-jtalk
sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

コード

#-*- coding:utf-8 -*-
import subprocess
from datetime import datetime

def jtalk(t):
    open_jtalk=['open_jtalk']
    mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic']
    htsvoice=['-m','/usr/share/hts-voice/mei/mei_normal.htsvoice']
    speed=['-r','1.0']
    outwav=['-ow','open_jtalk.wav']
    cmd=open_jtalk+mech+htsvoice+speed+outwav
    c = subprocess.Popen(cmd,stdin=subprocess.PIPE)
    c.stdin.write(t)
    c.stdin.close()
    c.wait()
    aplay = ['aplay','-q','open_jtalk.wav']
    wr = subprocess.Popen(aplay)

def say_datetime():
    d = datetime.now()
    text = '%s月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
    jtalk(text)

if __name__ == '__main__':
    say_datetime()

3 ハードタブ インデント をはじめよう

3ハードタブインデントとは?

3文字分のtab文字でインデントを表現すること

例(例外的に3スペース)

#include <stdio.h>

int main(void) {
   printf("Hello World!\n");
   return 0;
}

NEWGAMEのねねっちも採用

このサイトのキャプチャからねねっちのコードを見ると3つスペースが空いてることがわかる

anihatsu.com

ハードタブとソフトタブ

  • ハードタブは\tとして表現される
  • ソフトタブは自動でスペースとして表現される

それだけ

なぜハードタブか

エディタの設定は人それぞれ.
2スペースインデントのコードを普段4スペースの人が読んだとき,「は?」となるはず
ハードタブなら\tなのでその人の環境によって幅が自動で調節される

.vimrcでの設定

set tabstop=3 " 画面上でタブ文字が占める幅
set softtabstop=3 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅
set autoindent " 改行時に前の行のインデントを継続する
set smartindent " 改行時に前の行の構文をチェックし次の行のインデントを増減する
set shiftwidth=3 " smartindentで増減する幅

bash上でC言語のプログラムを即時実行

やり方

.bash_profileに以下を記入

function shellc () {
  gcc $1 -o ~/.out && ~/.out
}

試す

test.cを作成

#include <stdio.h>

int main(void) {
    printf("Hello World!\n");
    return 0;
}

bash上で実行

USER$ shellc test.c 
Hello World!

polSearchが配信されるまでの流れ [polca企画検索アプリ]

polSearchとは

知らない人はここを見てください!↓

taillook.hateblo.jp

これまでの経緯

8月10日朝

polcaが配信される

8月10日昼

このツイートでpolcaを知る.

8月10日 14:39

以前からアプリを公開したいと思っていたので資金を募ってみる.

8月14日 朝

目標額達成!
目標額達成自称高専生初となる.

8月14日 18:19

これだ!と思い,@jmworksさんに連絡しAPIを使わせてもらえることに

8月14日 22:53

ご飯とか食べてたので実質3時間で原型のアプリを作成.

8月30日 22:02

AppStoreの審査に通る.

9月9日現在

新機能開発中

バーニラ♪を考えてみる

「バーニラ」とは?

「バーニラ」とは風○系・デ○○ル系の求人サイトの広告です.
(リンク注意)風俗求人【バニラ】で高収入アルバイト
この記事ではなぜこれが話題になったかを考察していく.

なぜ話題になったか

アドトラックの影響

新宿などの繁華街でスピーカーを積んだ装飾の激しいトラックが「バーニラ・バニラ・バニラで求人♪」とかなり大きな音で流しているのをよく見ると思います.(そこに行く人なら

例の曲の影響

Webアーカイブですが公式のダウンロードサイトがありました.著作物のご利用について | 株式会社コネクト
「子供が歌って困る」といった話もこの曲の中毒性から来ているのかも.

派生楽曲


【中毒新曲】高収入求人情報バニラ VANILLA EDM 2016 ver

ツイッターでの話題性

昔からあった「花びら大回転」的な看板に似た興味をもたらされるマインドコントロール的なソレがアレしているのかもしれない.
私が小学校の頃流行った麻原彰晃の歌も,今の熱盛もそのひとつだろう.

屋外広告物条例施行規則について

東京都の条例で広告の規制はあるが,新宿等のそれはナンバーが都外のもの.
都外のものなので効力がないらしい.

子供が歌うことについて

自分は「う○こう○こ」と連呼する子供が大人になるに連れ言わなくなるの同じで,なぜ公共の場でふさわしくないのかを学ぶ為にある意味この広告があってもいいのではと考える.

バニラの闇

バニラ,Vanillaだけど,逆から読むと「All in AV」

polca企画検索アプリ,polSearchをAppStoreに公開しました!

wo# polcaとは クラウドファンディング事業のCAMPFIRが8月10日に公開した少額のクラウドファンディングが可能な「フレンドファンディング」アプリ.

過去の記事(支援募ってみた)

taillook.hateblo.jp

募った支援でAppStoreのデベロッパーアカウントを購入出来ました.

これを作った↓

polSearch

polSearch

現在のダウンロード数

139ダウンロード(2017/09/08現在)

今後について

ブックマーク機能・ランキング機能等を考えています.

レビューして欲しい

レビューに欲しい機能とか書いて欲しいです.

Swift3で配列の逆順並び替え

.reverse()が使えなかったので調べた

参考 : reversed() - Array | Apple Developer Documentation

サンプル

let data = ["a", "b", "c", "d", "e"]
let result = Array(data.reversed())
print(result)

出力

["e", "d", "c", "b", "a"]

arp-scanコマンドの使い方

LAN内のデバイスを確認したい

arp-scanというコマンドを見つけた
LAN内のデバイス情報が確認できる.

インストール方法

brew install arp-scan

使い方

sudo arp-scan -l --interface en0

出力

こんな感じの出力.

Interface: en0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.1 00:80:87:e7:be:91   OKI ELECTRIC INDUSTRY CO., LTD
192.168.1.76    88:57:ee:df:68:60   (Unknown)
192.168.1.105   8c:70:5a:e3:41:6c   Intel Corporate

1077 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 1.856 seconds (137.93 hosts/sec). 3 responded

Macアドレスのみ出力するPythonスクリプト組んだ

github.com

Twitterカードの画像を更新する

Twitterカードの画像が更新されない

この前Twitterでシェアしたブログの記事のアイキャッチ画像を変更したけどTwitter側で変更が反映されない!ってなったので調べた.

Twitterカードの画像の更新方法

まず以下のサイト(Twitterカードの検証ツール)に行きます.

cards-dev.twitter.com

こんな感じの画面が出ます.

f:id:taillook:20170815234506p:plain

Card URLにアイキャッチ画像を変更したサイトのURLを貼って下の青いボタンを押します.

f:id:taillook:20170815234900p:plain

こんな感じのログが出て更新完了です.