20200514のMacに関する記事は8件です。

EC-CUBEの開発環境構築

開発環境はMacです:blush:

SymfoyCLIのダウンロード

#symfonyをインストール
$ curl -sS https://get.symfony.com/cli/installer | bash

#パスを通す
$ export PATH=$HOME/.symfony/bin:$PATH

SSLの設定

#証明書をインストール
$ symfony server:ca:install

#証明書が入っているか確認
$ ls ~/.symfony/certs/
default.p12 rootCA-key.pem  rootCA.pem  trusted

サーバー起動

symfony server:start

https://127.0.0.1:8000にアクセスしてEC-CUBEの画面が表示されればOK。

参考サイト

先人の教えに感謝:pray_tone1:
【2020年度版】EC-CUBE の開発環境の作り方
ローカル環境でEC-CUBEをhttpsで動かす方法

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

Go言語はじめました 〜その1〜

目的

とある開発案件で、はじめてGo言語を使ったWebアプリケーションを開発することになりました!
なので、自分用の学習メモとして記録を残しておこうと思いこの記事を書いています。
また、同じシチュエーションでこれからGo言語を始める方の参考になれば幸いです。

開発環境

  • macOS Catalina 10.15.4(19E287)
  • go 1.14.2

Go言語とは

2009年にGoogleが開発したオープンソースのプログラミング言語であり、Google社内におけるソフトウェア開発の生産性や拡張性のために開発されました。開発者は、UNIX開発に携わったロブ・パイク氏と、UNIX開発とC言語を開発したケン・トンプソン氏が設計しました。
対応OSは、Linux、MacOS X、Windows、Android、iOSとなっており主要なものはサポートされています。
ちなみに、正式名称は「Go」なのですが、それだけだと別の意味に捉えられることもあるので、「Golang」や「Go言語」と呼ばれることが多いようです。本記事では、「Go言語」と呼びます。

Go言語の特徴

C言語を意識しながら設計されている言語で、C言語以上にシンプルかつ信頼性があり、無駄のない有能なソフトウェア開発を簡単に実現できます。ゆえに、実用性があり、効率よく作業を行うことが可能なため、軽量・高速・シンプルなプログラミング言語として知られています。

1.シンプルな言語構造

複雑な機能は削られており、とてもシンプルな言語構造になっています。例えば、プログラミング言語では繰り返し処理を行う時に、for文とwhile分の2つが準備されています。しかしGo言語の繰り返し処理はfor文しか存在していません。このように言語をシンプルにすることで、高速コンパイルの実現やミスの軽減に役立っています。

2.誰が書いたコードでも読みやすい

言語構造がシンプルであるため、だれが作っても殆ど同じになる様に設計されています。また、コーディング規約に沿ってソースコードを自動整形してくれるgo fmtがあり、これを利用すると見た目が整い非常に見やすくなります。また、記述ルールが厳格なので、記述に迷うことなく決まった書き方で開発が進められます。

3.実行速度が速い

直接ネイティブコード(機械語)に変換することにより、高速でコンパイルが可能となります。また、コードの種類がシンプルで限定的であるため、内部処理も簡易化され、同時に複数の処理を実行できる仕様になっていることからも、より軽量・高速での処理が可能です。

4.並列処理に強い

大量データ処理には並列処理が必要になりますが、Go言語は並列処理を得意としており、goroutinechannelなどの機能を使うことでCPUへの負荷などを気にせずに処理を進められます。

5.拡張性(スケーラビリティ)が高い

Go言語では、小さな機能を必要に応じて組み合わせることで高い機能性を実現していくため、拡張性が高い言語と言えます。

6.クロスプラットフォーム対応

Go言語は、クロスコンパイルという、開発しているOSとは異なる環境向けに実行可能なコードを生成することが可能であるため、OSやソフトウェアが異なるシステム上でも実行できます。

7.消費リソースが少ない

リソースのコストパフォーマンスが非常に良いと言われています。例えば、同様の処理をJavaと比較した場合、メモリはJavaの約30分の1ですみます。

Go言語のデメリット

1.Genericsがない

Go言語ではGenericsをサポートしていないため、Javaのgeneric typeのような記述はできません。これにより、安全性の高いメモリ管理やシンプルな構造を保っていると言えます。
Genericsは型を汎用化することができますが、適切に使用しないと逆にソースコードが乱雑になる危険性があります。それを避けるため、Go言語ではあえてGenericsをサポートしていないのです。

2.継承をサポートしない

コードの再利用や拡張性を高める上で役立つ「継承」もサポートされていません。少ないコードでプログラムできるというメリットはありますが、コードが複雑になれば継承により読みづらくなるという場合もあるからです。
規模の大きなシステム開発におけるコードの読みやすさや、メンテナンスのしやすさが優先されています。

3.例外処理がない

RubyやJavaの例外処理と同様の機能はありません。これも、Go言語がシンプルであることを保つために削ぎ落とされた機能です。
その代わり、PanicRecoverを使えば、エラーを処理する例外と近い機能が実装できます。

Go言語でできること

Go言語がどのような用途で主に使われているのか、得意なのかについて、以下で紹介します。
以下のもの以外でも、AI開発でも徐々に需要を増やしており、多くのシェアを持っているPythonと並ぶ程の注目があり期待されています。

Webサーバー/Web API構築

標準ライブラリのnet/httpパッケージを使用すれば、Webサーバー・Web APIを簡単に構築できます。
Go言語の特徴である、高速・軽量・並列処理に強い点などが生かされています。
代表的なものとして、YouTubeもGo言語で構築されています。

アプリケーション開発

AndroidやiPhoneといったスマートフォンで動作するネイティブアプリケーションの開発も可能です。モバイル向けのアプリ制作に使うツールが集められたGo mobileを使えば、開発がとても快適に行えます。

コマンドラインインターフェース(CLI)ツール作成

コマンドベースで操作を行うCLIによって動作するアプリケーション制作にもGo言語は向いています。
Go言語はマルチプラットフォームに対応したクロスコンパイルの機能があるので、それぞれのプロットフォーム による互換性や依存関係を心配せずに、環境に適したツールの制作が簡単に行えます。

Go言語のインストール

ちょっと座学が長くなってしまいましたね。
それでは、まずMacにGo言語をインストールしてみましょう。
事前準備として、MacにHomebrewをインストールしておいてください。

インストール

$ brew install go

Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/go-1.14.2_1.catalina.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/15/15b5623471330edcc681d7f9d57b449660e6d4b98c7f67af67f4991fc75d61fc?__gda__=exp=1589359948~hmac=bf89e2d60937f105e542c1b210786b7ef609ac57c7934ddd5f4a03f9f7749682&response-content-disposit
######################################################################## 100.0%
==> Pouring go-1.14.2_1.catalina.bottle.tar.gz
?  /usr/local/Cellar/go/1.14.2_1: 9,440 files, 424.4MB

バージョン確認

$ go version

go version go1.14.2 darwin/amd64

これでインストールは完了です。
2020年5月現在の最新バージョンは1.14.2です。

Go言語でHello World!

それでは実際にプログラムを動かしてみましょう!!

# ディレクトリ作成
$ mkdir -p ~/golang/example

# 移動
$ cd ~/golang/example

# テストプログラムを作成
$ vi hello.go

hello.goの中身は以下のように記述します。

hello.go
package main

import "fmt"

func main() {
    fmt.Printf("Hello, World\n")
}

それでは実行です。

$ go run hello.go

Hello, World

ビルドもしてみましょう。

$ go build hello.go
$ ls
hello       hello.go
$ ./hello
Hello, World

ビルドするとプログラムファイルと同じディレクトリにhelloというバイナリファイルができました!
これを実行すると、go runと同じ結果が返ってきますね。

ちなみに、go rungo buildの違いはなんでしょうか。。。

go runは、自動的にコンパイル・実行を同時に行ってくれるコマンドですね。簡単なテストなどで有効ですね。
ただし、カレントディレクトリ以下の全ファイルを読み込むわけではないので、importされたパッケージのみ読み込み、同階層のmainパッケージに属する別関数などは無視されてしまうので注意が必要です。

go buildは、自動的にmainパッケージを読み込み、main関数があるファイルを特定し、そのファイル名を使ったバイナリファイルを生成します。
基本的にはカレントディレクトリ以下をスコープにして読み込んでコンパイルするファイルを決めるので、カレントディレクトリ以下にあるファイルが読み込まれないといったことはありません。
ビルド時に色々とオプションなどがあるみたいなので、そのあたりままた別途学習してみようと思います。

ちなみに、、、

下記のように、main関数の括弧を別の行に書くと"syntax error"になってしまいました。
結構、がちがちにコーディング規約が決まっているのね。。。

hello.go
package main

import "fmt"

func main()
{
    fmt.Printf("Hello, World\n")
}
$ go run hello.go

# command-line-arguments
./hello.go:5:6: missing function body
./hello.go:6:1: syntax error: unexpected semicolon or newline before {

また、Go言語には標準でコードを整形(静的解析)してくれる機能gofmtがあるようです。
下記のようなコードをgofmtにかけてみます。

(整形前)hello.go
package main
import "fmt"
func main(){
fmt.Printf("Hello, World\n")
}
$ gofmt -w hello.go
(整形後)hello.go
package main

import "fmt"

func main() {
    fmt.Printf("Hello, World\n")
}

空行・インデントが追加されました!!
これを使えば、複数のエンジニアで記述したコードもある程度統一できそうですね。

まとめ

ここまでで、Go言語の基礎知識、インストール方法、実行まで学習してきました。
まだ、曖昧な部分が多くてフワフワしていますが、徐々に知識を深めていければと思います。
次回は、Go言語の公式ドキュメントをもとに、基本構文を学習してみようと思います。

ども、ありがとうございました。

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

Go言語への道 〜その1〜

目的

とある開発案件で、はじめてGo言語を使ったWebアプリケーションを開発することになりました!
なので、自分用の学習メモとして記録を残しておこうと思いこの記事を書いています。
また、同じシチュエーションでこれからGo言語を始める方の参考になれば幸いです。

開発環境

  • macOS Catalina 10.15.4(19E287)
  • go 1.14.2

Go言語とは

2009年にGoogleが開発したオープンソースのプログラミング言語であり、Google社内におけるソフトウェア開発の生産性や拡張性のために開発されました。開発者は、UNIX開発に携わったロブ・パイク氏と、UNIX開発とC言語を開発したケン・トンプソン氏が設計しました。
対応OSは、Linux、MacOS X、Windows、Android、iOSとなっており主要なものはサポートされています。
ちなみに、正式名称は「Go」なのですが、それだけだと別の意味に捉えられることもあるので、「Golang」や「Go言語」と呼ばれることが多いようです。本記事では、「Go言語」と呼びます。

Go言語の特徴

C言語を意識しながら設計されている言語で、C言語以上にシンプルかつ信頼性があり、無駄のない有能なソフトウェア開発を簡単に実現できます。ゆえに、実用性があり、効率よく作業を行うことが可能なため、軽量・高速・シンプルなプログラミング言語として知られています。

1.シンプルな言語構造

複雑な機能は削られており、とてもシンプルな言語構造になっています。例えば、プログラミング言語では繰り返し処理を行う時に、for文とwhile分の2つが準備されています。しかしGo言語の繰り返し処理はfor文しか存在していません。このように言語をシンプルにすることで、高速コンパイルの実現やミスの軽減に役立っています。

2.誰が書いたコードでも読みやすい

言語構造がシンプルであるため、だれが作っても殆ど同じになる様に設計されています。また、コーディング規約に沿ってソースコードを自動整形してくれるgo fmtがあり、これを利用すると見た目が整い非常に見やすくなります。また、記述ルールが厳格なので、記述に迷うことなく決まった書き方で開発が進められます。

3.実行速度が速い

直接ネイティブコード(機械語)に変換することにより、高速でコンパイルが可能となります。また、コードの種類がシンプルで限定的であるため、内部処理も簡易化され、同時に複数の処理を実行できる仕様になっていることからも、より軽量・高速での処理が可能です。

4.並列処理に強い

大量データ処理には並列処理が必要になりますが、Go言語は並列処理を得意としており、goroutinechannelなどの機能を使うことでCPUへの負荷などを気にせずに処理を進められます。

5.拡張性(スケーラビリティ)が高い

Go言語では、小さな機能を必要に応じて組み合わせることで高い機能性を実現していくため、拡張性が高い言語と言えます。

6.クロスプラットフォーム対応

Go言語は、クロスコンパイルという、開発しているOSとは異なる環境向けに実行可能なコードを生成することが可能であるため、OSやソフトウェアが異なるシステム上でも実行できます。

7.消費リソースが少ない

リソースのコストパフォーマンスが非常に良いと言われています。例えば、同様の処理をJavaと比較した場合、メモリはJavaの約30分の1ですみます。

Go言語のデメリット

1.Genericsがない

Go言語ではGenericsをサポートしていないため、Javaのgeneric typeのような記述はできません。これにより、安全性の高いメモリ管理やシンプルな構造を保っていると言えます。
Genericsは型を汎用化することができますが、適切に使用しないと逆にソースコードが乱雑になる危険性があります。それを避けるため、Go言語ではあえてGenericsをサポートしていないのです。

2.継承をサポートしない

コードの再利用や拡張性を高める上で役立つ「継承」もサポートされていません。少ないコードでプログラムできるというメリットはありますが、コードが複雑になれば継承により読みづらくなるという場合もあるからです。
規模の大きなシステム開発におけるコードの読みやすさや、メンテナンスのしやすさが優先されています。

3.例外処理がない

RubyやJavaの例外処理と同様の機能はありません。これも、Go言語がシンプルであることを保つために削ぎ落とされた機能です。
その代わり、PanicRecoverを使えば、エラーを処理する例外と近い機能が実装できます。

Go言語でできること

Go言語がどのような用途で主に使われているのか、得意なのかについて、以下で紹介します。
以下のもの以外でも、AI開発でも徐々に需要を増やしており、多くのシェアを持っているPythonと並ぶ程の注目があり期待されています。

Webサーバー/Web API構築

標準ライブラリのnet/httpパッケージを使用すれば、Webサーバー・Web APIを簡単に構築できます。
Go言語の特徴である、高速・軽量・並列処理に強い点などが生かされています。
代表的なものとして、YouTubeもGo言語で構築されています。

アプリケーション開発

AndroidやiPhoneといったスマートフォンで動作するネイティブアプリケーションの開発も可能です。モバイル向けのアプリ制作に使うツールが集められたGo mobileを使えば、開発がとても快適に行えます。

コマンドラインインターフェース(CLI)ツール作成

コマンドベースで操作を行うCLIによって動作するアプリケーション制作にもGo言語は向いています。
Go言語はマルチプラットフォームに対応したクロスコンパイルの機能があるので、それぞれのプロットフォーム による互換性や依存関係を心配せずに、環境に適したツールの制作が簡単に行えます。

Go言語のインストール

ちょっと座学が長くなってしまいましたね。
それでは、まずMacにGo言語をインストールしてみましょう。
事前準備として、MacにHomebrewをインストールしておいてください。

インストール

$ brew install go

Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/go-1.14.2_1.catalina.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/15/15b5623471330edcc681d7f9d57b449660e6d4b98c7f67af67f4991fc75d61fc?__gda__=exp=1589359948~hmac=bf89e2d60937f105e542c1b210786b7ef609ac57c7934ddd5f4a03f9f7749682&response-content-disposit
######################################################################## 100.0%
==> Pouring go-1.14.2_1.catalina.bottle.tar.gz
?  /usr/local/Cellar/go/1.14.2_1: 9,440 files, 424.4MB

バージョン確認

$ go version

go version go1.14.2 darwin/amd64

これでインストールは完了です。
2020年5月現在の最新バージョンは1.14.2です。

Go言語でHello World!

それでは実際にプログラムを動かしてみましょう!!

# ディレクトリ作成
$ mkdir -p ~/golang/example

# 移動
$ cd ~/golang/example

# テストプログラムを作成
$ vi hello.go

hello.goの中身は以下のように記述します。

hello.go
package main

import "fmt"

func main() {
    fmt.Printf("Hello, World\n")
}

それでは実行です。

$ go run hello.go

Hello, World

ビルドもしてみましょう。

$ go build hello.go
$ ls
hello       hello.go
$ ./hello
Hello, World

ビルドするとプログラムファイルと同じディレクトリにhelloというバイナリファイルができました!
これを実行すると、go runと同じ結果が返ってきますね。

ちなみに、go rungo buildの違いはなんでしょうか。。。

go runは、自動的にコンパイル・実行を同時に行ってくれるコマンドですね。簡単なテストなどで有効ですね。
ただし、カレントディレクトリ以下の全ファイルを読み込むわけではないので、importされたパッケージのみ読み込み、同階層のmainパッケージに属する別関数などは無視されてしまうので注意が必要です。

go buildは、自動的にmainパッケージを読み込み、main関数があるファイルを特定し、そのファイル名を使ったバイナリファイルを生成します。
基本的にはカレントディレクトリ以下をスコープにして読み込んでコンパイルするファイルを決めるので、カレントディレクトリ以下にあるファイルが読み込まれないといったことはありません。
ビルド時に色々とオプションなどがあるみたいなので、そのあたりままた別途学習してみようと思います。

ちなみに、、、

下記のように、main関数の括弧を別の行に書くと"syntax error"になってしまいました。
結構、がちがちにコーディング規約が決まっているのね。。。

hello.go
package main

import "fmt"

func main()
{
    fmt.Printf("Hello, World\n")
}
$ go run hello.go

# command-line-arguments
./hello.go:5:6: missing function body
./hello.go:6:1: syntax error: unexpected semicolon or newline before {

また、Go言語には標準でコードを整形(静的解析)してくれる機能gofmtがあるようです。
下記のようなコードをgofmtにかけてみます。

(整形前)hello.go
package main
import "fmt"
func main(){
fmt.Printf("Hello, World\n")
}
$ gofmt -w hello.go
(整形後)hello.go
package main

import "fmt"

func main() {
    fmt.Printf("Hello, World\n")
}

空行・インデントが追加されました!!
これを使えば、複数のエンジニアで記述したコードもある程度統一できそうですね。

まとめ

ここまでで、Go言語の基礎知識、インストール方法、実行まで学習してきました。
まだ、曖昧な部分が多くてフワフワしていますが、徐々に知識を深めていければと思います。
次回は、Go言語の公式ドキュメントをもとに、基本構文を学習してみようと思います。

ども、ありがとうございました。

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

新しいMacを購入したらまずやる便利な設定

はじめに

自分が新しいMacの環境構築を行う時にいつも行っている設定の備忘録です。環境移行すればいいじゃんという方もいらっしゃるとは思いますが、

  • いらない設定の見直しをしたい
  • 諸々の設定への理解を深めたい
  • 何か新しい知見を得たい

という気持ちで毎回設定を作り直しています。何か思いついたら随時更新していきます。また、何かおすすめ設定あれば気軽にコメントください

デスクトップ周り

カーソルの動作を高速に

カーソルの動作を高速にすることで作業効率が上がります。

システム環境設定>トラックパッド>軌跡の速さを速いに

タップ(トラックパッドに触れるだけ)でクリック扱いにする

クリックが高速になるのでおすすめ。副ボタンも二本指でタップになります。

システム環境設定>トラックパッド>ポイントとクリック>タップでクリックにチェック

Dockを左から自動的に表示/非表示

かっこいいです。エンジニアに多い設定?

システム環境設定>Dock>画面上の位置を左に
システム環境設定>Dock>Dockを自動的に表示/非表示にチェック

Dockから使わないアプリケーションの削除

頻繁には使わないアプリケーションはDockから削除しておきましょう。

Dockを表示させる>アプリを二本指タップ>オプション>Dockから削除

デスクトップ上のファイルを自動で整列

設定をしておくと自動的にデスクトップ上のファイルが整列されるので便利です。

デスクトップ上で二本指タップ>表示順序>お好みの表示順序を選択

ターミナル周り

ターミナルの装飾

ターミナルの設定をいじるとかっこいいです。

・テーマの設定
ターミナルの環境設定>プロファイル>左側の欄で好きなテーマを選択>下の方にあるデフォルトをクリック
・不透明度の調整
ターミナルの環境設定>プロファイル>テキスト>背景の下の色マークをクリック>不透明度を調整
・サイズの調整
ターミナルの環境設定>プロファイル>ウィンドウ>ウィンドウサイズを調整

参考記事→お前らのターミナルはダサい

before
スクリーンショット 2020-05-14 11.01.56.png

after
スクリーンショット 2020-05-14 11.00.46.png

自分はIcebergテーマを利用しています。またプロンプトの設定も変更しています。詳しくは参考記事を参照してください。

サーバー周り

.ssh/configの設定

リモートサーバーでアクセスする際に、以下のように毎回入力するのは大変かと思います。

ssh ユーザー名@hoge.example.com

そこで以下のように~/.ssh/configを記述してsshコマンドを簡略化しましょう。

Host hoge(任意)
     HostName hoge.example.com
     User ユーザー名
# sshコマンドが簡略化される
ssh hoge

その他

homebrewを入れる

homebrewはMacのターミナル上からコマンド操作を行い、ソフトの管理(アップデート、インストール、アンインストールなど)をするシステムです。brew install hogeで欲しいhogeをインストールできます。以下のコマンドをターミナルで叩きましょう。

 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

おわりに

是非時間をかけて自分自身に最適な設定を作ってみてください。作業効率が変わると思います。
何か思いついたら随時更新していきます。

参考資料

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

新しいMacを購入したらまずやるカッコイイ・便利な設定

はじめに

自分が新しいMacの環境構築を行う時にいつも行っている設定の備忘録です。環境移行すればいいじゃんという方もいらっしゃるとは思いますが、

  • いらない設定の見直しをしたい
  • 諸々の設定への理解を深めたい
  • 何か新しい知見を得たい

という気持ちで毎回設定を作り直しています。何か思いついたら随時更新していきます。また、何かおすすめ設定あれば気軽にコメントください

デスクトップ周り

カーソルの動作を高速に

システム環境設定>トラックパッド>軌跡の速さを速いに

カーソルの動作を高速にすることで作業効率が上がります。

タップ(トラックパッドに触れるだけ)でクリック扱いにする

システム環境設定>トラックパッド>ポイントとクリック>タップでクリックにチェック

クリックが高速になるのでおすすめ。副ボタンも二本指でタップになります。

Dockを左から自動的に表示/非表示

システム環境設定>Dock>画面上の位置を左に
システム環境設定>Dock>Dockを自動的に表示/非表示にチェック

かっこいいです。エンジニアに多い設定?

Dockから使わないアプリケーションの削除

Dockを表示させる>アプリを二本指タップ>オプション>Dockから削除

頻繁に使わないアプリケーションはDockから削除しておきましょう。

デスクトップ上のファイルを自動で整列

デスクトップ上で二本指タップ>表示順序>お好みの表示順序を選択

設定をしておくと自動的にデスクトップ上のファイルが整列されるので便利です。

ターミナル周り

ターミナルの装飾

ターミナルの設定をいじるとかっこいいです。

・テーマの設定
ターミナルの環境設定>プロファイル>左側の欄で好きなテーマを選択>下の方にあるデフォルトをクリック
・不透明度の調整
ターミナルの環境設定>プロファイル>テキスト>背景の下の色マークをクリック>不透明度を調整
・サイズの調整
ターミナルの環境設定>プロファイル>ウィンドウ>ウィンドウサイズを調整

参考記事→お前らのターミナルはダサい

before
スクリーンショット 2020-05-14 11.01.56.png

after
スクリーンショット 2020-05-14 11.00.46.png

自分はIcebergテーマを利用しています。またプロンプトの設定も変更しています。詳しくは参考記事を参照してください。

homebrewを入れる

homebrewはMacのターミナル上からコマンド操作を行い、ソフトの管理(アップデート、インストール、アンインストールなど)をするシステムです。brew install hogeで欲しいhogeをインストールできます。以下のコマンドをターミナルで叩きましょう。

 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

おわりに

見た目のカッコよさは仕事のモチベーションにつながると思います。是非時間をかけて自分自身に最適な設定を作ってみてください。
何か思いついたら随時更新していきます。

参考資料

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

WindowsユーザがMacに入門した時のTIPS集

大きな話はWeb上に記事がゴロゴロ転がっているので、非常に細かい「痒いところ」をなんとかするために自分がやったことを備忘録代わりにメモる。

ウィンドウをフルスクリーンではなく最大化する

ウィンドウ最上部をダブルクリックすればいい。
それが厳しい人は、Optionキーを押しながら最大化ボタンを押すことでもできる。
https://aprico-media.com/posts/2774#head-56a55dcc81fc255823f276cf615fe898

Capslockを別のキーに割り当てる

システム環境設定から キーボード > [キーボード]タブにある[修飾キー] > CapsLock。
個人的に、Commandが死ぬほど打ちにくい位置にあるので、CommandをCapsLockにも割り当てた。(親指で押せ、という人がいるが、親指でも押し辛い。変換までが限界。CapsLockの位置も小指が死にそうになるけれど)

バックスラッシュを入力する

Windowsでは¥と\を特に区別なく使っていたが、Macでは完全に別の文字になる。
正規表現とかでバックスラッシュ()を使いたい時はOption+¥を使う。
https://14code.com/blog/20170810_1282/

パスバー(Windowsで言うアドレスバー)を表示する。

Finderを開いた状態で表示 > パスバーを表示

Finderから今いる場所をTerminalで起動

Windowsの場合、アドレスバーにコマンドを打てたので、それと同じことをやりたい。
Finderの上部にある歯車マークから、サービス > 新規ターミナル or 新規ターミナルタブ、でターミナルが開く。
https://qiita.com/yamagh/items/02608e97be22c85cefaa

Finderでフォルダを上書き保存する方法

Macの場合、単にフォルダをD&Dすると「置き換え」になるらしい。
なのでOptionを押しながらD&Dする。
既存ファイルが全て吹っ飛ぶ可能性すらあるので、事前に知っておいたほうがいい。
http://babyp.blog55.fc2.com/blog-entry-911.html

キーボードショートカットを覚える

これを見ておく。 https://haniwaman.com/windows-to-mac/
いきなり暗記するのはしんどいので、ブックマークしておいて、ほしいときに都度確認して徐々に慣れる、と言う感じ。

サッとカレンダーを表示する

Windowsではタスクバーの時計を押せばカレンダーが出てくる。「第3月曜って何日だっけ?」みたいなときに便利だった。
Macではこういう機能が標準ではないっぽい。なのでアプリを入れる。
https://www.outoutput.com/mac-app-monthlycal/
https://weekly.ascii.jp/elem/000/002/620/2620087/

キーボードで画面をロック

WindowsではCrtl+Lで画面ロックができるので、それと同じことをMacでもやりたい。
Macの場合はCtrl+Command+Qでできる。
が、三つもボタンを押すのはメンドイと感じたので、画面ロックをTouch Barに追加した。
https://qiita.com/n_sekiya/items/a51102e0ba10fb915c42

Touchbarに変換候補を出さなくする

パスワードを入力する際に、誤ってかな入力モードでいれてしまうと、画面上では***みたいにマスクされる一方、Touchbarには非常に見易くパスワードを晒してくれるので、心臓に悪い。OFFにする。
https://pc-karuma.net/mac-touch-bar-ime/

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

#Mac "deleted" process use High CPU ( Mac Bookで排熱音・CPU使用が止まらなかった時の記録 )

参考

https://discussions.apple.com/thread/8196477

症状

3日ぐらいずっと排熱が止まらない、収まる気配がない
deletedプロセスを殺してもまた起動する
OSを再起動しても症状が続く
買ったばかりのMacBookAir 2018

image

結果

rm -rf ~/Library/Caches してOSを再起動したら静かになった

詳しい原因は不明

記録

$ ls ~/Library/Caches
./                                                 com.apple.iCloudHelper/
../                                                com.apple.icloud.fmfd/
CloudKit/                                          com.apple.imfoundation.IMRemoteURLConnectionAgent/
FamilyCircle/                                      com.apple.nsservicescache.plist
GeoServices/                                       com.apple.nsurlsessiond/
Google/                                            com.apple.parsecd/
Maps/                                              com.apple.passd/
PassKit/                                           com.apple.preferencepanes.searchindexcache
VoiceTrigger/                                      com.apple.preferencepanes.usercache
com.apple.AMPLibraryAgent/                         com.apple.proactive.eventtracker/
com.apple.AddressBookSourceSync/                   com.apple.remindd/
com.apple.AppleMediaServices/                      com.apple.systempreferences.imageCache
com.apple.HomeKit.configurations/                  com.apple.tiswitcher.cache
com.apple.Music/                                   com.apple.touristd/
com.apple.Safari/                                  com.docker.docker/
com.apple.Spotlight/                               com.electron.chatwork/
com.apple.akd/                                     com.electron.chatwork.ShipIt/
com.apple.ap.adprivacyd/                           com.microsoft.VSCode/
com.apple.appstore/                                com.microsoft.VSCode.ShipIt/
com.apple.bird/                                    com.mizage.Divvy/
com.apple.cache_delete/                            com.runningwithcrayons.Alfred/
com.apple.commerce/                                com.sequelpro.SequelPro/
com.apple.iBooksX/                                 familycircled/

~/Library/Cachesを削除した
中でも大事そうな3つは削除されなかった

$ rm -rf ~/Library/Caches
rm: /Users/yumainaura/Library/Caches/com.apple.HomeKit.configurations: Operation not permitted
rm: /Users/yumainaura/Library/Caches/CloudKit: Operation not permitted
rm: /Users/yumainaura/Library/Caches/com.apple.ap.adprivacyd: Operation not permitted
rm: /Users/yumainaura/Library/Caches: Operation not permitted

削除前のディスク
/Volumes/Recoveryというのがある

$ df
Filesystem    512-blocks      Used Available Capacity iused      ifree %iused  Mounted on
/dev/disk1s1   976490576  21733352 733482088     3%  487534 4881965346    0%   /
devfs                377       377         0   100%     655          0  100%   /dev
/dev/disk1s2   976490576 215557648 733482088    23% 1066170 4881386710    0%   /System/Volumes/Data
/dev/disk1s5   976490576   4194344 733482088     1%       2 4882452878    0%   /private/var/vm
map auto_home          0         0         0   100%       0          0  100%   /System/Volumes/Data/home
/dev/disk1s4   976490576   1031416 733482088     1%      43 4882452837    0%   /Volumes/Recovery

削除後のディスク
/Volumes/Recoveryがなくなって/System/Volumes/Data/homeが生まれている
なにこれ

$ df
Filesystem    512-blocks      Used Available Capacity iused      ifree %iused  Mounted on
/dev/disk1s1   976490576  21733352 731261312     3%  487534 4881965346    0%   /
devfs                378       378         0   100%     656          0  100%   /dev
/dev/disk1s2   976490576 219875576 731261312    24% 1067673 4881385207    0%   /System/Volumes/Data
/dev/disk1s5   976490576   2097192 731261312     1%       1 4882452879    0%   /private/var/vm
map auto_home          0         0         0   100%       0          0  100%   /System/Volumes/Data/home

関連

Macのハードディスクの空き容量を開放する - Qiita

image

奥の奥までOS X Lion 第2回 - 未知のパーティション「Recovery HD」を探る (2) 「Recovery HD」をマウントする | マイナビニュース

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/3165

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

Flutter desktopで自分用Macアプリを作る

初投稿です.
以前Androidアプリをバイトで作っていたのですが,Macのアプリも作れるようになったため試してみます.

Flutter

  • 1つのコードでiOS,Android両方動く.
  • ボタンなどのUI要素もコードに含める.
  • "Hot Reload機能"により,アプリのデバッグ中でもソースコードの変更を反映できる.

開発環境

  • iMac (27-inch, 2019)
  • Visual Studio Codeにて開発

Flutterインストール & Macアプリ開発の設定

  1. flutter公式サイトの"Get Started"からインストールします.
  2. このページ(Desktop support for Flutter)を参考にデスクトップアプリ開発機能を有効にします.

作ったもの

今やりたいことを入力し,ランダムで決めてくれるアプリ.
* 制作物のGithubリポジトリ
RandomChoiceApp.gif

使ったライブラリ

  • rxdart & provider
    やりたいことリストのデータを複数のWidgetで共有するために使用しました.
    rxdartはReactive Extentionsのライブラリで,
    「やりたいことを入力するWidget -> Subject -> グラフなどの表示Widget」
    と,変数の更新を伝えることができます.
    providerは親Widgetから子Widgetへ,上記のSubjectを持ったBlocインスタンスを渡すために使いました.

  • charts_flutter
    グラフ描画のために使用しました.
    円グラフのほかにも,様々なグラフを描くことができます.

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