- 投稿日:2020-02-04T23:54:45+09:00
Macで論文からベクター画像を切り出す方法
はじめに
PDFの図表等を切り出してVector画像として保存する方法を覚えたので、ここに紹介する.
ベクター形式(pdf,eps等)で画像を保存をしておくと、スライドなどに載せて拡大してもボケずに表示させられるので便利方法
Macに標準搭載されているプレビューを用いる.
切り出した画像は余白が残っているので次のコマンドを実行して詳細にトリミングしましょう
$ pdfcrop hoge.pdf実行するとcropという文字列が追加されたファイルができますが、出力ファイル名を指定したいときには,以下のようにコマンドラインの最後にファイル名を加えます.
$ pdfcrop hoge.pdf fig.pdfおわりに
切り取りした後、そのままプレビューを終了すると元のページが復元できないので、切り取りが終わったら
command + Zでページを元に戻すかバックアップをしておきましょう参考文献
- 投稿日:2020-02-04T23:38:12+09:00
君は知っているかSequelProの便利な機能
はじめに
最近、自宅に帰ってからSequelProを触るようになり、そこで気づいた小技や初めて使った機能を同期に共有したところ絶賛してくれたので、せっかくなので記事にしようと思いました。
SequelProとは
MysqlのDBを確認できるMac用のGUIアプリケーションです。Mysqlクライアントの中でどれくらいのシェア率があるかまではわからないですが必要な機能は一通り揃っているようです。
なお現在の正式版バージョンは1.1.2であり、このバージョンは最新OSなどで頻繁にクラッシュする報告が多数あり、アップデートも2016年から止まっています。正式版ではなくテストビルド版を使うことでクラッシュを回避することができ、最新のテストビルド版のアップデートは7ヶ月前となっているためクラッシュに悩む人は移行するのもありだと思います。
今回はどちらのバージョンでも使用可能なものについて紹介します。
ちょっと便利な使い方
タブの複製 - 新しいタブで同じDBサーバに接続する
例えばテーブルAを見ているとき、Aと関連のあるテーブルBを並べて見たいっていうときありますよね。わざわざSELECTしてJOINして見るのも面倒だし、
Cmd + Tで新しいタブを開いて見ればいいやってなると思います。
SequelProには新規タブでテーブルを開くという機能があります。テーブルを右クリック(もしくは画面左下の歯車のマーク)して選択すると、接続中の同じDBサーバに接続し今見ているテーブルを新しいタブで開くところまでやってくれます。ショートカットキーがデフォルトでは割り当てられていないので、Mac本体の設定で割り当てておくことをお勧めします。(僕は
Cmd + Shift + T)
これで実質タブの複製が実現できます。データベース名で絞り込んで移動
例えば、テスト環境にはたくさんのDBが存在するけれど、自分がよく使うのは1つか2つ程度、みたいな環境の人はたくさんいるんじゃないでしょうか。
SequelProでDBを選択するとき、プルダウン形式で選べるのですが、数が多いとスクロールが必要だったり、DB名に番号をつけているような場合辞書順なため1の次は10だったりで少し探しづらいです。
SequelProのショートカットにCmd + Shift + D(データベースへ移動)が割り振られており、これでDBの名前で絞り込み、Enterで即移動することができます。移動した後はフォーカスがFilter(テーブルの検索)になっていると思うのでマウスを持たずに一連の動作が可能です。
カラム名でテーブルを検索したり情報を見たりする
Cmd + Opt + Ctl + Nというちょっと押しづらいショートカットを使うと、ナビゲーターというものが現れます。ここでは、接続中のサーバの全DBのテーブル名やカラム名を検索をすることができます。検索したカラムをクリックするとメインの画面の方でそのテーブルに移動してくれます。
「あのデータのカラムはnicknameって名前だったけど、なんて名前のテーブルだっけ」みたいなときにnicknameですぐに検索できます。一緒に型など簡単な情報も出てくるので、探したかったものかどうかもその場でわかります。逆に
syncを押すとメイン画面で見ているテーブルの情報がナビゲーターに表示されます。テーブル情報タブより情報量は少ないですが最低限の情報が見れるのでクエリを書くときなどは便利ではないでしょうか。ただし、DBの数やカラムが多い場合は検索するとSequelProが落ちてしまうので注意しましょう。
ショートカットから補完機能を呼び出す
クエリタブからクエリを実行できる機能って便利ですよね。履歴が残せたり、行を選んで実行できたりと嬉しい機能が備わっています。便利な機能の一つに、自動で入力候補を補完してくれる機能があるのですが、自然に出てくる候補はDB名、テーブル名、カラム名など区別なく出てきてしまうため、絞り込み切るのに長い文字を打たないといけないことがあります。
そこで、
Cmd + Opt + {1, 2, 3}を使うことで、候補となる元の項目を絞ることができます。Cmd + Opt + 1だとDB名から、2ならテーブル名、3ならカラム名と候補の元を先に絞り込めます。下の画像はCmd + Opt + 2でテーブル名の補完を呼び出したあと'm'と入力した場合です。最初の画像とは候補が変わっていて探しやすくなっています。カラムを複数条件で楽に検索
テーブルを選択した後、
Cmd + Fでレコードの絞り込みができることは、ほとんどの人がご存知だと思います。フィルターの横にある+ボタンで条件を増やしAND検索できることも、ある程度SequelProを触っている人はご存知の機能だと思います。
(2020/2/6追記)バージョン1.1.2だとこの+ボタンは存在しないようです。この検索ですが、カラムを決めて演算子を決めて入力をするという、当たり前ですが少し面倒な作業に感じます。特定の1レコードを探したい場合はユニークキーで検索すれば条件は一つで済みますが、複数のレコードをざっと見たいときなどはイマイチです。
そんなモヤモヤを解消してくれるのが、
Cmd + Shift + Fによるフィルターです。メイン側の画面に表示されているレコードと同じテーブル形式の入力欄があり、そこの各カラムに検索条件を入れてあげると設定された演算子(デフォルトはLIKE)で絞り込みをしてくれます。ウィンドウの右下で、検索に使う演算子を決めることもできます。
同じ行同士の条件はAND、別の行同士の条件はOR検索としてフィルターすることができます。どのカラムも常に同じ条件なのがデメリットですが、ある程度のレコードを絞るような検索はこれで十分便利と思います。(WHERE queryの編集の仕方はわからなかった?)
さいごに
SequelProを使うようになってから時間の浅いひよっこなので、慣れた人は普段から使っていた機能かもしれません。僕と同じような駆け出しの方にこの記事が役立てば良いと思います。
他にも便利な機能がありましたらぜひ教えてください。
- 投稿日:2020-02-04T23:06:43+09:00
iOSとmacのunityのnative pluginを作る
iOSとmacのunityのnative pluginを作る
unity editorで使えるmacOS用のbundleとiOS用のFrameworkのnative pluginを作成する手順です。
Bluetoothや動画作成など、Unityに実装されていない機能をiOS, macOSの機能を使うことで実現します。
UnityPluginXcodeTemplateをベースに作成します。
UnityPluginXcodeTemplateを使うことで、unityのnative pluginを作成するために必要なxcodeの複雑な設定の必要がなくなり、editorで動作確認できるbundleと実機用のframeworkが同時に開発できます。今回作成するnative pluginの目的
- unity(C#)には加算演算が実装されていない(設定)です。そこで、swiftの加算演算子を使って加算演算を実現するnative pluginを実装します。
- 手順に着目しているので、今回は加算演算のみの実装ですが、同じ手順でbluetoothなどのnative pluginを作成しているので、参考になれば嬉しいです。
- iOS, macOSで使えるbluetoothのnative plugin: https://github.com/fuziki/UnityCoreBluetooth
作成するC#クラス
- NativeSuperCalculatorクラスです。
- 加算演算ができるAddメソッドを持っています。
NativeSuperCalculator.cspublic class NativeSuperCalculator { public static int Add(int l, int r); }作成するSuperCalculator Xcodeプロジェクト
5つのターゲットがあります
Target Description SuperCalculator.framework iOS BuildとExample_iOSでの動作確認に使用するframework SuperCalculator_macOS.framework macOS_Exampleで動作確認に使用するframework SuperCalculator_bundle.bundle macのUnity Editorで動作確認に使用するbundle Example_iOS 作成した実装をUnityに組み込む前にiOSで動作確認するために使用する Example_macOS 作成した実装をUnityに組み込む前にmacOSで動作確認するために使用する 作成するswiftクラス
SuperCalculatorクラスです。
加算演算ができるaddメソッドを持っています。SuperCalculator.swift@objcMembers public class SuperCalculator: NSObject { public static func add(l: Int, r: Int) -> Int { return l + r //swiftにしか加算演算子がない(設定) } }Xcode プロジェクトを作成する
1. UnityPluginXcodeTemplateをcloneしてrename
git clone https://github.com/fuziki/UnityPluginXcodeTemplate mv UnityPluginXcodeTemplate/ SuperCalculatorPlugin/ cd SuperCalculatorPlugin2. setting.ymlを編集
setting.ymlPROJECT_NAME: SuperCalculatorPlugin FRAMEWORK_IOS: SuperCalculator FRAMEWORK_MACOS: SuperCalculator_macOS BUNDLE_MACOS: SuperCalculator_bundle EXAMPLE_IOS: Example_iOS EXAMPLE_MACOS: Example_macOS3. xcodeprojを作成する
xcodegenを使用して、Xcodeディレクトリ下にxcodeprojを作成します。
make setup open Xcode/SuperCalculatorPlugin.xcodeproj/Swiftで機能を実装する
1. SuperCalculator.swiftの実装
- xcodeプロジェクトのNavigator AreaからLibrary/Sourcesを右クリック→ new file...を選択
- swift fileを選択し、next
ファイル名はSuperCalculatorを指定、targetはSuperCalculator, SuperCalculator_macOS, SuperCalculator_bundleを選択してcreate
SuperCalculatorクラスを実装する
objective-cから呼び出すために@objcMembers属性をつけます。
SuperCalculator.swift@objcMembers public class SuperCalculator: NSObject { public static func add(l: Int, r: Int) -> Int { return l + r//swiftにしか加算演算子がない(設定) } }2. Unityからの呼び出し部分の実装
- NativePlugin.hの実装
- Unityのnative pluginはcの呼び出しなので、cのインタフェースを作成します。
- superCalculator_addを追加します。
NativePlugin.h#ifdef __cplusplus extern "C" { #endif int add_one(int num); + int superCalculator_add(int l, int r); //追加する #ifdef __cplusplus } #endif
- NativePlugin.mmの実装
- superCalculator_addが呼ばれたら、swiftのSuperCalculator.addを呼び出して計算します。
NativePlugin.mmint superCalculator_add(int l, int r) { return (int)[SuperCalculator addWithL:l r:r]; }3. macOS, iOSでの動作確認(optional)
- viewDidLoadでsuperCalculator_addを呼び出して、正しく動作することを確認する。
※ iOSは実機のみサポートです。ViewController.swiftoverride func viewDidLoad() { super viewDidLoad() // Do any additional setup after loading the view. let res = superCalculator_add(32, 42) print("res: \(res)") }UnityのNative Pluginとして導入する
1. iOS向けframeworkのビルド
2. macOSのunity editor向けbundleのビルド
3. 成果物の確認
- 4つ作成されているはず
- Xcode/Out/Assets/SuperCalculatorPlugin/Plugins/iOS/SuperCalculator.framework.meta
- Xcode/Out/Assets/SuperCalculatorPlugin/Plugins/iOS/SuperCalculator.framework
- Xcode/Out/Assets/SuperCalculatorPlugin/Plugins/macOS/SuperCalculator_bundle_xxxxxxx.bundle
- Xcode/Out/Assets/SuperCalculatorPlugin/Scripts/SuperCalculator_bundle.cs
4. 成果物をUnityにコピーする
- Xcode/Out/Assets/SuperCalculatorPlugin/. を Unity/LibraryUser/Assets/Plugins/. にコピーする
mkdir Unity/LibraryUser/Assets/Plugins/SuperCalculatorPlugin cp -r Xcode/Out/Assets/SuperCalculatorPlugin/. Unity/LibraryUser/Assets/Plugins/SuperCalculatorPlugin/.Unityからnative pluginを使う実装
1. NativeSuperCalculator.csを作成し、NativeSuperCalculatorクラスを実装する
NativeSuperCalculator.csusing System.Runtime.InteropServices; namespace SuperCalculatorPlugin { public class NativeSuperCalculator { [DllImport(SuperCalculator_bundle.IMPORT_TARGET)] private static extern int superCalculator_add(int l, int r); public static int Add(int l, int r) { return superCalculator_add(l, r); } } }2. NewBehaviourScriptなどで呼び出してみる
NewBehaviourScript.csusing SuperCalculatorPlugin; public class NewBehaviourScript : MonoBehaviour { void Start () { int res = NativeSuperCalculator.Add(32, 45); Debug.Log("res: " + res); } }おわりに
Unityに実装されていない(設定の)加算をnative pluginを使って実現するプラグインを作成しました。
iOSの実機のみで使用する場合は、.mmファイルをベタ置きしてunityのビルドしたxcode projectにブリッジヘッダを設定すると言う方法もあるのですが、ブリッジヘッダの設定や、editorで動かないなど手間がかかるので、個人的にはbundleとframeworkを作りたい派です。
同様の手順でbluetoothや、ble keyboard, mp4作成など、unityに実装されていない、楽しい機能のネイティブプラグインを作成できるので、一度試してみて頂けると嬉しいです!
- 投稿日:2020-02-04T20:41:36+09:00
【Mac】PC起動時にRTSP対応のカメラ映像を自動再生
概要
Macを起動した際に自動でストリーミング配信映像を再生する方法について書きたいと思います。
展示会や説明会などでPCを起動したら自動でストリーミング配信映像を流したい時に活用
- 手順
- ffplayでストリーミング映像を表示出来るか確認
- ffplayを実行するスクリプトを書く
- Macで上記スクリプトを起動時に実行するように設定
- 確認方法
実施手順
① ffplayでストリーミング映像を表示出来るか確認
まずffplayを実行するためにbrewでダウンロード。ffmpegをDLすると一緒にffplayが入ります。$ brew install ffmpeg次にffplayでRTSPプロトコルの映像を再生
$ ffplay rtsp://ユーザ名:パスワード@IPアドレス:ポート番号/動画再生URL 例)$ ffplay rtsp://admin:hogehoge@192.168.1.100:554/axis-media/media.amp② ffplayを実行するスクリプトを書く
シェルスクリプトを書く$ cat rtsp.sh #!/bin/bash # 下記rtspは適宜置き換える /usr/local/bin/ffplay rtsp://admin:hogehoge@192.168.1.100:554/axis-media/media.amp実行権限を付ける
$ chmod +x rtsp.sh③ Macで上記スクリプトを起動時に実行するように設定
~/Library/LaunchAgents配下にplistを作成。今回はrtsp.plistという名前で作成
※ /Users/ユーザ名/rtsp.shの部分は②で作成したシェルスクリプトを指定$ cat rtsp.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>test</string> <key>Program</key> <string>/Users/ユーザ名/rtsp.sh</string> <key>RunAtLoad</key> <true/> </dict> </plist>plistの設定を反映させる
$ launchctl load ~/Library/LaunchAgents/rtsp.plist④ 確認方法
Macを再起動してストリーミングが自動で再生出来たらOK。
再起動に時間がかかる場合は以下のコマンドを実行することで確認が出来ます。$ launchctl unload ~/Library/LaunchAgents/rtsp.plist $ launchctl load ~/Library/LaunchAgents/rtsp.plist
- 投稿日:2020-02-04T19:56:11+09:00
プログラミング歴1ヶ月 PythonでNYダウの株価を抽出!
初めまして、Kayです。
投資をやっていまして、今年の1月からPythonにフロンティアを感じ、投資に応用出来ないかということで、ようやくYahooファイナンスの株価の抽出くらいまでたどり着きました。
というわけで、プログラミング歴は1ヶ月です(笑)使用したもの
言語:Python3
ライブラリ:urllib、BeautifulSoup
MacBook Pro
BeautifulSoupをインストールする
shell.sh$ pip3 install beautifulsoup自分の場合、MacOSだったので、pip3インストールとなりました。windowsの人は違うと思うので注意してください。
Pythonのコード
dow.pyimport urllib.request import ssl from bs4 import BeautifulSoup url = "https://finance.yahoo.co.jp/quote/%5EDJI" ssl._create_default_https_context = ssl._create_unverified_context html = urllib.request.urlopen(url) soup = BeautifulSoup(html, "html.parser") p = soup.find_all("p") dow = "" for tag in p: try: string_ = tag.get("class").pop(0) if string_ in "wlbmIy9W": dow = tag.string break except: pass print(dow)BeautifulSoupでYahooファイナンスからurlを引っ張ってきます。
↓
株価がpというところに入っているのでhtmlデータの中のpを検索します。
↓
pの中のclass="wlbmIy9W"の場所を特定するようにfor文とtry except文で構築する。ちなみに、サイトを右クリックで検証を押すと、簡単に抽出箇所を特定できます。
Python3ではSSL証明書が必要になるのが注意点
import ssl ssl._create_default_https_context = ssl._create_unverified_contextPython3ではこのコードを書き込む必要があります。
書かないと必ずエラーになります。
もしかしたらPython2では必要ないかもしれません。抽出完了
shell.sh$ python dow.py >>>28,399.81ようやく抽出完了です。5時間もかかりました(笑)
今後はもっと発展させていきたいですね。参考にさせていただいた記事
こちらの方がもっと発展したコードを書いているので必読です!
- 投稿日:2020-02-04T19:14:46+09:00
FFmpegで手軽にサクッとmacの画面録画をいい感じのgifにする
TwitterやSlack、メールなどで情報を共有する時ってやっぱり動画だと楽じゃないですか。
ビジュアルや動作の部分を伝える時は、結構シビアに言葉選ばなきゃいけないし、伝えられる側もUIの部分とか文章で説明されても困るわ!って思いますよね。
動画があればお互いに簡単に情報共有できるし、認識のズレも少なくなって時短にもなる。
いいことづくめなんだけど、mac買ったばっかりの素人が動画送ろうとするとちょっとハードル高いんですよね…
そもそも、画面のキャプチャー動画を作るツールもよくわからないし設定も必要だし、そもそもデータ容量重すぎ…どうしよ…
みたいな方結構いると思うんですよね!
僕がそうでした!!この記事ではmacの標準機能で画面録画を行う方法と、FFmpegでサクッと画面録画をgifにする方法を紹介します!
画面録画
macは標準機能として
commando + shift + 5で画面録画が出来ます!同時に押すと以下のような画面が出ます
画面端に破線が表示されているのがわかるでしょうか?
この破線の範囲内が画面録画を行う範囲になります。
(画面全範囲などを指定することが出来たり、その他オプションもあるので試してみてください)範囲は自由にいじれます。任意の箇所を囲った後に右端の「収録」ボタンを押しましょう!
するとすぐに録画スタートです!
終わりたい時は再度
commando + shift + 5を押すとメニューバーが出てきますので、停止ボタンを押してください。こんな感じで超簡単に画面録画が出来ます!
gifに変換
このままだと短い動画でも容量が大きく、投稿することは出来ません。
なのでFFmpegでgifに変換していきましょう。
FFmpegインストール
$brew install ffmpeggifに変換
今回はサクッと手軽にいい感じのgifを作成したいだけなので細かいオプションについては説明しません!!!!(わかりません)
とりあえず以下のコマンドで絶妙にいい感じの容量と画質のgifになります!!!!!
詳しいことは以下の記事なんかがとても参考になると思います!
それFFmpegで出来るよ!ffmpeg -i sample/sample.mov -vf scale=960:-1 -r 10 sample/sample.gif
sample/sample.movは撮影した動画のパス
sample/sample.gifは吐き出し先のパス※※※※※ちなみに、撮影した動画の名称はデフォルトだと「日本語+スペースあり+拡張子なし」のようなアホみたいな名称になっているので、
sample.movのようにリネームすることをお勧めします!※※※※※そして出来上がったgifがこちら!
MapTilerの地図をReact/Mapbox GL JSを使って最短でブラウザ上に表示させるで作った動画になります(宣伝)
こんな感じで簡単にgifを作成して情報共有できるのでぜひ利用してみてくださいね!!!
- 投稿日:2020-02-04T18:45:52+09:00
Mac Chromeで使うショートカット
タブとウィンドウ 隣のタブに移動する ⌘+option+矢印 特定の・最後のタブに移動する ⌘+1~8・9 戻る・進む ⌘+[・] または ⌘+矢印 現在のタブまたはポップアップを閉じる ⌘+w Google Chrome 機能 デベロッパーツール(検証)を開く・閉じる ⌘+option+i アドレスバー アドレスバーに移動する ⌘+l ウェブページ 再度読み込み ⌘+r キャッシュコンテンツを無視して再度読み込み ⌘+shift+r クリック可能な項目間を移動する(順・逆) tab・shift+tab ページ上のすべての要素を拡大・縮小する ⌘+ +・- ページ上のすべての要素をデフォルトのサイズに戻す ⌘+0 ウェブページを 1 画面ずつ下・上にスクロールする space・shift+space ホームページを現在のタブで開く ⌘+shift+h
- 投稿日:2020-02-04T18:45:52+09:00
Mac Chrome ショートカット 使うやつ
タブとウィンドウ 隣のタブに移動する ⌘+option+矢印 特定の・最後のタブに移動する ⌘+1~8・9 戻る・進む ⌘+[・] または ⌘+矢印 現在のタブまたはポップアップを閉じる ⌘+w
Google Chrome 機能 デベロッパーツール(検証)を開く・閉じる ⌘+option+i
アドレスバー アドレスバーに移動する ⌘+l
ウェブページ 再度読み込み ⌘+r キャッシュコンテンツを無視して再度読み込み ⌘+shift+r クリック可能な項目間を移動する(順・逆) tab・shift+tab
- 投稿日:2020-02-04T12:22:33+09:00
macをアクセスポイントにしてWIFI接続する
起
職場にメンバーが増えたことで無線LANの接続台数が増えて検証端末が繋がらなくなってきた
そうだ、macをAPにして検証端末を繋げようやったこと
1. システム環境設定 -> 共有
2. 共有設定画面を開いたらサービスから「インターネット共有」を選択
3. 共有する接続経路、相手のコンピュータでのポートを選択
4. WI-FIオプションで適当にネットワーク名、パスワードを設定
5. 設定が終わったらサービスのインターネット接続にチェックを入れて共有開始
以上でAPとして利用できるようになります。
まとめ
端末や人が増えたりすると無線LANの接続上限は結構問題になってきたりするかと思います。
macから繋いでやることで回避は可能なので、どうしても繋がらなかったりした際はお試しあれ























