20200218のMacに関する記事は6件です。

ETロボコンに向けてEV3RTのアップデートをする(macOS Catalina)

はじめに

ETロボコン2020年に向けて開発環境バージョンのβ7-3が出ていたのでアップデートしたいと思いいろいろ調べ時間がかかったため,備忘録です.

対象

  • 2018,2019年のロボコンでmacOSを使用して開発環境していた人たち
  • 自身のmacをmacOS Catalinaにアップデートした人
  • gccなどのコンパイル自体はもう終わっている人

手順

  • TOPPERS wikiの開発環境ダウンロードページ(1)からev3rt-beta7-3-release.zipをダウンロード
  • EV3で使用しているmicroSDカード内のデータを移動させたのちhrp2/sdcardのデータをmicroSDカードにコピー
  • ev3rt-beta7-3-release内のhrp2.tar.xzを展開
  • cfgバイナリファイルをev3rt-beta7-3-release/hrp2/cfg/cfgにコピー *1
  • ev3rt-beta7-3-release/hrp2/sdk/workspace内にあるhelloev3に対してmake app=helloev3をしてコンパイル *2
  • microSDカード内のev3rt/appsに作成したappバイナリファイルをコピーし動作確認

*1 2020/2/18時点は,cfgバイナリファイルをダウンロードできないため,β7-2で使用していたcfgバイナリファイルをev3rt-beta7-3-release/hrp2/cfg/cfgにコピーする方法で解決

*2 2020/2/18時点は,一部のバイナリファイルがmacのソフトウェア検証に引っかかるため実行できない場合があります.解決策の一つはシステム環境設定 -> プライバシーとセキュリティ(2)(3)で逐次許可していく方法があります.

さいごに

アップデートはとても簡単なのですがcfgバイナリファイルダウンロード出来んのなぜだろう?

参考文献

(1) 開発環境構築のマニュアル-ダウンロード
(2) macOSユーザーガイド-開発元が未確認のMacアプリケーションを開く
(3) Macで「開発元を確認できないため、開けません」と表示された時の対処法

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

様々なブラウザやテキストエディタでMarkDownを表示させる

様々なブラウザ(Chrome, Firefox)やテキストエディタでMarkDownを表示する方法です。

ブラウザ

Chrome

1.コチラより、「Markdown Preview Plus」を「Chromeに追加」します。
image.png

2.「Markdown Preview Plus」を追加しますか?と聞かれるので、「拡張機能を追加」をクリック
image.png

3.「Google Chromeの設定」 > 「設定」(画面右方)
image.png

4.「拡張機能」(画面左方)
image.png

5.Chromeに読み込まれている拡張機能一覧が表示されるので、「Markdown Preview Plus」の「詳細」をクリック
image.png

6.「ファイルのURLへのアクセスを許可する」の右端のトグルをONにする
image.png

これで、Chromeで対象ファイルを読み込むと、MarkDown表示されます。
image.png

Firefox

1.コチラより、「Markdown Viewer」を「Firefoxへ追加」します。
image.png

2.「Markdown Viewerを追加しますか?」と出るので、「追加」をクリック
image.png

3.「MarkDown ViewerがFirefoxに追加されました。」と出るので、「OK」をクリック
image.png

4.ブラウザより、「メニュー」>「アドオン」(画面右方)
image.png

5.「拡張機能」を選択し、Markdown Viewerの右端の「・・・」 > 「管理」をクリック
image.png

6.「オプション」タブに移動し、「ALLOW ALL」をクリック
image.png

7.「Markdown Viewerが追加の許可を必要としています。」と出るので、「許可」をクリック
image.png

これで、Firefoxで対象ファイルを読み込むと、MarkDown表示されます。
image.png

テキストエディタ

続いて、テキストエディタです。
可能な範囲で方法を記載しました。
(不明なものは「-」と記載しています。後日分かったらアップします。悪しからず・・・)

Windows / Mac両方対応

テキストエディタ名 MarkDownを表示する方法
Atom Ctrl(Command)+Shift+M
Visual Studio Code 1. ファイル名が表示されているタブを右クリック
2. Open Preview
MarkRight -
HarooPad -
Brackets 拡張機能「Markdown Preview」のインストールにより可能 → 手順はコチラ
Sublime Text 「OmniMarkupPreview」というプラグインを入れると可能 → 手順はコチラ

Windowsのみ

テキストエディタ名 MarkDownを表示する方法
MarkDown#Editor 左のウィンドウにテキストファイルを読み込むと右ウィンドウにリアルタイムに表示
Mery -

Macのみ

テキストエディタ名 MarkDownを表示する方法
MacDown 手順はコチラ
Mou -
Chocolat -

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Idris の環境構築をする(Mac OS)

こんにちは, ねりあです.

この記事は Idris という言語についての記事になります.

僕は別件で依存型に関する記事を書いていたんですが, その途中で
「依存型の話を書いてるのに Idris 触ったことないの〜プークスクスw」
と脳内の自分が煽ってくるので, とりあえず環境構築したので, その話を記事にします.

インストール

まずは install です.
と言っても以下の通り, brew install するだけです.

$ brew update
$ brew install idris

これで, Idris のインストール終了です.
インストールというか環境構築が終了してしまいました.
以下でバージョンが表示されれば完了です.

$ idris -v
1.3.2

プログラムを実行してみる

流石にこれで終わるのは味気ないので, 世界に挨拶ぐらいはしましょう.
以下を作成します.

hello.idr
main: IO()
main = putStrLn "Hello World"

あとは実行するだけです.
コンパイルして実行する方法と REPL から実行する方法の2種類があります.

コンパイルして実行する方法

以下の通り実行すればコンパイルして実行することができます.

$ idris hello.idr -o hello
$ ./hello
Hello World

REPL で実行する方法

idris コマンドで REPL を起動でき, REPL 内でも実行できます.

$ idris
     ____    __     _                                          
    /  _/___/ /____(_)____                                     
    / // __  / ___/ / ___/     Version 1.3.2
  _/ // /_/ / /  / (__  )      http://www.idris-lang.org/      
 /___/\__,_/_/  /_/____/       Type :? for help               

Idris is free software with ABSOLUTELY NO WARRANTY.            
For details type :warranty.
Idris> :load hello
*hello> :exec main
Hello World

REPL 内では : を付けるとコマンドとして認識してくれます.
REPL を抜けたい場合は :quit で抜けることができます.

まとめ

まあ, 大したことを話していないので, まとめもくそもないのですが,
Idris は依存型について調べているとサンプルコードで大量に見ます.
依存型が何かという話は現在記事を執筆中なので, またの機会に.

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacからWindowsにlaravel開発環境を移してみた!(サーバー起動まで)

用意したもの

virtual box
vagrant
cyberdock
tera term

vagrant upしてvirtual boxを起動します。

virtual boxにログインするためtera termを使いsshでログイン

その後、virtual boxにファイルをアップロードするためcyeberdockを使いアップします。

php artisan serveを起動するとこんなエラーが・・・・

PHP Parse error:  syntax error, unexpected '?' in /home/vagrant/laravel_lessons_copy/myblog/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 500

Laravel5.5はPHPのバージョンが7.0.0以上を必要としています。PHPのバージョンが7未満だと上記エラーになる場合があります。特にCentOSをはじめとするサーバOSはデフォルトでPHP7以上になっているものが少ないため、注意が必要です。
Laravel初期設定でやりがちなミス:引用元URL(https://www.inet-solutions.jp/technology/laravel-setting/)

ということなのでバージョンアップ

sudo yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-mcrypt

これでphp artisan serveが実行できるはずです。

ちなみにここでも繋がらなかったので下記で起動を行いました。

$ php artisan serve --host 192.168.33.10 --port 8000

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

pixelaでPCの利用状況を可視化する

はじめに

日々の様々な活動量をgithubのようなグラフで可視化してくれるAPIサービスpixelaを使って日々のPCの利用状況を可視化する方法を紹介します。
利用状況といっても1日のうちのログオン回数(休憩時などPCから離れたあと再度ログオンした回数も含む)をカウントしてグラフ化します。
今回は、MacとWindows10でのログオン回数をグラフします。

pixela CLIのインストール&ユーザー登録

本家の「CLI toolsで使う」を参考にしながらインストールとユーザー登録を行います。

Mac版はhomebrewでインストールします

% brew install a-know/tap/pi

Windows10版はダウンロードページからプログラムファイルをダウンロードします。

  • ダウンロードしたzipファイルを解凍する
  • 解凍した中にあるpiコマンドをC:¥Users¥<UserName>¥binにコピーする
  • C:¥Users¥<UserName>¥binをPATHに追加してpiコマンドを実行できるようにする

下記コマンドでユーザー登録を行います。(Mac/Windows10共通)
<UserName><SecretToken>は適宜設定してください。

% pi users create --username <UserName> --token <SecretToken> --agree-terms-of-service yes --not-minor yes

pixelaグラフの新規作成

macの利用状況グラフを作成します。

% pi graphs create -u <UserName> -g mac -n "Mac usage graph" -i logon -t int -c shibafu -z "Asia/Tokyo"

Win10の利用状況グラフを作成します。

% pi graphs create -u <UserName> -g win10 -n "Win10 usage graph" -i logon -t int -c sora -z "Asia/Tokyo"

Macでログオンをカウントする

ログオンをカウントするためには、Automatorsleepwatcherを利用します。
ログイン時はAutomatorでカウントアップを行います。
スリープなどからの復帰はsleepwatcherでカウントアップを行います。

Automator設定方法

  • Automatorを起動する
  • 「新規」-「アプリケーション」を選択する
  • 「シェルスクリプトを実行」を右側にドラッグする
  • 下記のシェルスクリプトを記載して「PixelaIncr.app」という名前で保存する
export PIXELA_USER_TOKEN=<SecretToken>
/usr/local/bin/pi pixel increment -u <UserName> -g mac
  • 「システム環境設定」を起動し、 「ユーザーとグループ」を開く
  • ユーザーの「ログイン項目」に上記の「PixelaIncr.app」を追加する

上記設定だけだとログイン時にしかカウントアップされない為、スリープからの復帰などはカウントされません。
スリープからの復帰をカウントする為には、sleepwatcherを利用します。

sleepwatcher設定方法

sleepwatcherをインストールします

% brew install sleepwatcher
% brew services start sleepwatcher

sleepwatcherがスリープから復帰した時に実行される~/.wakeupを下記で作成します。

~/.wakeup
#!/bin/zsh
export PIXELA_USER_TOKEN=<SecretToken>
/usr/local/bin/pi pixel increment -u <UserName> -g mac

~/.wakupに実行権限を付与します。

% chmod +x ~/.wakeup

Win10でログオンをカウントする

ログオンをカウントするためにはタスクスケジューラを利用します。
まずは、タスクスケジューラで利用するbatファイルとvbsスクリプトを作成します。
カウントアップする為のbatファイルを下記で作成します。

PixelaIncr.bat
set PIXELA_USER_TOKEN=<SecretToken>
C:¥Users¥<UserName>¥bin¥pi pixel increment -u <UserName> -g win10
exit

上記bat実行時にウィンドウを表示したくないので下記のVBSファイルを作成します。

PixelaIncrHide.vbs
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c C:¥Users¥<UserName>¥bin¥PixelaIncr.bat", vbhide

タスクスケジューラ設定方法

  • 「Windowsキー」+「R」で表示された検索窓に「taskschd.msc」と入力してタスクスケジューラを起動する
  • 「操作」->「基本タスクの作成」を選択する
  • 「名前」に「pixela-incr」を入力し、「次へ」を押下する
  • トリガーで「ログオン時」を選択する
  • 操作で「プログラムの開始」を選択する
  • 「プログラム/スクリプト」で「参照」で上記のvbsファイル「PixelaIncrHide.vbs」を指定する

これで「ログオン時」はカウントアップされますが、「ロック解除時」はカウントアップされないので上記タスクに「ロック解除時」の条件も追加します。

  • 作成したタスク「pixela-incr」のプロパティを開く
  • 「トリガー」タブを開く
  • 「新規」ボタンを押下
  • 「タスクの開始」で「ワークステーション アンロック時」を選択する
  • 「設定」で「特定のユーザー」を選択し、ユーザーを指定する

実行結果

mac及びWin10でログインやスリープ、ロック解除などを行うと下記のようにログオン回数がカウントアップされ表示されるようになります。

Mac Usage Graph
Pixela-Mac-UsageGrpha.png

Win10 Usage Graph
Pixela-Win10-UsageGrpha.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

モチベーションが低いダイナモDB入門

はじめに

色々と訳あり、ダイナモDBを練習してみます。

事前知識

MySQLなどの知識は少しあります。
FirebaseでNoSQLには触ったことあります。

手順

AWSにアカウント作成済みとします。
pip3もインストール済みとします。

(1)AWS CLIインストール

pip3 にてAWS CLIをインストールします。

pip3 install awscli --upgrade --user

(2)テーブルを作成する

AWSにログインし、DynamoDBを選択。
デカデカと出ているテーブル作成をクリックします。
image.png

テーブル名を[moti]、プレマリキーを[downs]にします。
ついでにソートキーは[num]にします。
image.png
よくわからないので「デフォルト」のまま作成します。

image.png

できたようです。

(3)awsでアカウントを作ります

IAMというのを作らないとAWS CLIで使えないので作ります。
IAMを選択し、ユーザを追加します

image.png

プログラムからのアクセスにチェックを入れます。

image.png

ダイナモDB系の権限を許容します
image.png

タグを作らず進めます

アクセスキーとシークレットキーをコピーしておきます
image.png

下記のようにawscliにログインします。

$ aws configure --profile hashito
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxx
Default region name [None]: hashito
Default output format [None]: 

※一番下にもありますが…これ間違えています…
 Region→ap-northeast-1、output formatはtextなどがいいです。

(4)awscliで操作します

こんな感じのコマンドでデータを追加するようです。

$aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "1" }, "num": { "S": "2"}, "created_at": { "S": "1544741492" }, "message": { "S": "aaaaaaaaaaaaaa" } }'

よく読むとわかりますが基本的にJSON形式の入れ子になっています。
最も上の層が属性のキー名で次の層が属性(SはString、NはNumber的な感じ)になっています。

{"key name":{"type char":"var"}}みたいな感じですね

追加されています
image.png

table一覧

$ aws dynamodb list-tables
TABLENAMES  moti

データ取得

$aws dynamodb get-item --table-name moti --key '{ "downs": { "S": "1" }, "num": { "S": "2"}}'
CREATED_AT  1544741492
DOWNS   1
MESSAGE aaaaaaaaaaaaaa
NUM 2

(5)色々と試す。

プレマリキーが同一の場合はどうなるか

$aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "1" }, "num": { "S": "2"}, "created_at": { "S": "1544741492" }, "message": { "S": "aaaaaaaaaaaaaa" } }'
$aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "1" }, "num": { "S": "3"} }'

上書きされず、別データとして扱われます。

image.png

プレマリキーとソートが同一の場合はどうなるか

$aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "1" }, "num": { "S": "2"}, "created_at": { "S": "1544741492" }, "message": { "S": "aaaaaaaaaaaaaa" } }'
$aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "1" }, "num": { "S": "2"} }'

上書きされます。
image.png

いくつかまとめて持ってくるには?

雑にデータを追加します

$ aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "1" }, "num": { "S": "3"} }'
$ aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "1" }, "num": { "S": "2"} }'
$ aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "2" }, "num": { "S": "2"} }'
$ aws dynamodb put-item --table-name moti --item '{ "downs": { "S": "3" }, "num": { "S": "2"} }'

$ aws dynamodb query --table-name moti --key-condition-expression 'downs =:_downs' --expression-attribute-values '{ ":_downs": { "S": "1" }}'
None    2   2
DOWNS   1
NUM 2
DOWNS   1
NUM 3

--expression-attribute-valuesというので変数を定義して、--key-condition-expressionでwhereみたいにするようですね。

感想

NoSqlを初めて触ってみましたが楽しいですね。
ただ、SQL的なのがややこしい…
そもそも、あまりこれで条件区切って持ってこないのかもしれないです。

(詰まった)

(詰まった)'aws'コマンドがない

インストールしたはずのawsコマンドが存在しませんでした。

$ aws help
-bash: aws: command not found

どうやらPython3-pipのインストールフォルダにパスが通っていないことが原因でした。
まず、Python3-pipでインストールしたフォルダを確認します。

$ pip3 show awscli
Name: awscli
Version: 1.18.0
Summary: Universal Command Line Environment for AWS.
Home-page: http://aws.amazon.com/cli/
Author: Amazon Web Services
Author-email: UNKNOWN
License: Apache License 2.0
Location: /Users/{user}/Library/Python/3.8/lib/python/site-packages
Requires: botocore, PyYAML, docutils, s3transfer, rsa, colorama
Required-by: 

ここにはないようです…
こちらの記事を参考に…

AWS CLI の パス を通す
https://qiita.com/plum_shiga/items/5214510f9786898c987f

私のはここにありました。

$export PATH=/Users/{user}/Library/Python/3.7/bin:$PATH
$aws -help
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: the following arguments are required: command

(詰まった)Could not connect to the endpoint URL: "https://dynamodb.hashito.amazonaws.com/"って出る。

雑に設定しすぎてaws configureで設定したリージョンが異なっていたようです。

AWS Access Key ID [****************]: 
AWS Secret Access Key [****************]: 
Default region name [hashito]: ap-northeast-1
Default output format [hashito]: text

設定し直しました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む