自作のコマンドを作る

会社でお昼を食べてる時に、ふと思った。 コマンド作った事ないや。

という事でお昼休みに更新。

コマンド作成

  • コマンドファイルを作成
# vim tbrhdys

#!/bin/sh
echo "hello tbrhdys!!"
  • コマンドファイルに権限を付与して/usr/local/bin/ に配置
sudo chomd a+x tbrhdys
mv tbrhdys /usr/local/bin/
  • 実行
tbrhdys
> hello tbrhdys!!

PostgreSQLのBackupとRestore

PostgreSQLのbackup / restore

使う度にオプションを忘れてしまうので、メモ

  • 前提
    • postgresユーザで実行
    • [調べ途中]postgresグループであれば良いのか?
su - postgres
  • db backup

    pg_dump -c database_name > out_file_name

    • PlainTextで出力する為、内容が見れる。作成したファイルはSQL文が格納されている
      • option
        • -c [clean] PlainTextの中にDROP文->CREATE文とSQL文が吐かれる
        • -Fc tarにしたり、アーカイブ形式にしたりは都度更新します
  • db restore

    psql database_name < in_file_name

ハミガキ習慣

ハミガキ習慣のサポートページ

ハミガキ習慣は、食べた後に歯磨きをしないと虫歯菌が繁殖する事を伝え 食後の歯磨きを習慣化する為のアプリです。

プレイ方法

  • 食べ物によって難易度が異なります
  • 一定時間、または半分以上の歯がむし歯になるとゲームオーバーとなります

スクリーン

f:id:tbrhdys:20150705113203j:plain f:id:tbrhdys:20150705113210j:plain

使用デバイス

お問い合わせ

お問い合わせの際は、事象、お問い合わせ内容をコメントに記載して下さい。

lualatexを試す

MarkDownのドキュメントをPDFで出力したい

普段はブラウザからPDF印刷で出力しているが、体裁を整えたいという理由でググると pandocという言葉に行き着く

  • MacTeX.pkg をInstall

MacTeX - TeX Users Group

  • pandoc コマンドでpdfを出力する
pandoc: lualatex not found. lualatex is needed for pdf output.
  • これはpathを通す必要があるという事
    • Pathを追加
### lualatex
export PATH=$PATH:/usr/texbin
  • 日本語を含むpdfを出力
    • 結構時間かかって念願のpdf出力
pandoc -o test-ja.pdf --latex-engine=lualatex test.md

参考リンク

Markdownで書いたテキストをPDFに変換して納品用ドキュメントを作成する方法 - ククログ(2015-04-27)

rcmdnk.github.io

GameScene.swiftからViewControllerのdissmissViewControllerAnimatedを呼ぶ

はまりながらもstackoverflowの記事に当たり、何とか解決

やりたい事

  • GameScene.swiftでUIButton生成
  • ButtonタップでViewControllerのdissmissViewControllerAnimatedを呼ぶ

参考リンク

ios - How to call method from ViewController in GameScene - Stack Overflow

対応内容

  • GameSceneにviewControllerプロパティを作成
class GameScene : SKScene, SKPhysicsContactDelegate {
    var viewController: ViewController!
  • ViewControllerではGameScene作成時にself(ViewController)を代入
// シーン作成
let scene = GameScene()
scene.viewController = self
  • これでGameScene内でButtonのaddTargetでタップされた時に呼ぶ事が出来る
// ボタンを生成
let homeIcon = UIButton(frame: CGRectMake(50, 400, 200, 50))
homeIcon.setImage(UIImage(named: "home"), forState: .Normal)
homeIcon.addTarget(self, action: "backToMenu:", forControlEvents: .TouchUpInside)
self.view!.addSubview(homeIcon)

func backToMenu (sender: UIButton) {
    self.viewController.dismissViewControllerAnimated(true, completion: nil)
}

UIButtonをタップした時にfuncをcallする

細々とSwiftでアプリ実装を進めててるけど、ググるObjective-CSwiftのサンプルが出てくる事が多い。 結果として、Swiftを学びつつもObjective-Cが少しずつ読める(読む気になる)という感じになってきた。

さて、ちょっとハマったのでメモ。

UIButtonをコードから生成して、funcをcallする方法。 UIButtonからcallする場合はsenderを定義する必要がある。

作ったボタンをタップするとException発生

unrecognized selector sent to instance 0x7ff630592d80'

対応

  • callするfuncの引数にsender: AnyObjectを追加

原因

  • callされる側にSender

サンプル

let hogeBtn = UIButton(frame: CGRectMake(0, 0, 300, 50))
hogeBtn.layer.position = CGPoint(x: self.view.frame.width/2, y:100)
hogeBtn.setTitle("hogeButton", forState: .Normal)
hogeBtn.addTarget(self, action: "hoge:", forControlEvents: .TouchUpInside)
self.view.addSubview(hogeBtn)

// NG  パターン
func hoge() {
    NSLog("called")
}

// OK パターン
func hoge(sender: AnyObject) {
    NSLog("called")
}

// OK パターン 必ずUIButtonからcallされるのでAnyObjectじゃなくて良い
func hoge(sender: UIButton) {
    NSLog("called")
}

参考にさせて頂きました

http://qiita.com/mokemokechicken/items/9d7b941a45a5534411c9

Swift 1.2 Sequeで画面遷移

何度やっても覚えられず、Objective-C / Swiftでやってるけど、 UIの操作は記録に残しづらいので、忘れる度に調べてる気がする

手順

  • seque追加
    • ViewController上に配置したボタンから別のViewへCtrlを押しながらドラッグ
  • 戻る手順
    • 戻り先にメソッド追加
    • 戻るボタンをCtrlを押しながらViewの最上部にあるExitアイコンまでドラッグ

参考にさせて頂きました ありがとうございます。 m( )m

Swiftでセグエを利用した画面遷移 - Qiita