- 投稿日:2020-06-27T19:17:59+09:00
Macで現在日時をクリップボードにセットする
やりたいこと
- 下の画像のようなメモをTyporaで書いているんだが、
- 日時
# 2020-06-27 18:28:41
の部分を書くのが面倒くさいのでなんとかしたいスクリプトエディタを起動して
ソース
- dateのフォーマットはお好きにどうぞ
set the clipboard to (do shell script "date '+# %Y-%m-%d %H:%M:%S'")保存する
アプリケーションを実行する
Spotlightを使うと便利
- 投稿日:2020-06-27T17:37:57+09:00
Macで$pipenv installをした時にjson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)が出たら
エラーが出たぞ!
こんな感じのエラーが出たら
$ pipenv install Pipfile.lock is corrupted, replaced with ()… Locking [dev-packages] dependencies… Locking [packages] dependencies… Traceback (most recent call last): File "/usr/local/bin/pipenv", line 8, in <module> sys.exit(cli()) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 764, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 717, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 956, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke return callback(*args, **kwargs) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 64, in new_func return ctx.invoke(f, obj, *args, **kwargs) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/core.py", line 555, in invoke return callback(*args, **kwargs) File "/usr/local/lib/python3.7/site-packages/pipenv/vendor/click/decorators.py", line 17, in new_func return f(get_current_context(), *args, **kwargs) File "/usr/local/lib/python3.7/site-packages/pipenv/cli/command.py", line 254, in install editable_packages=state.installstate.editables, File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 1874, in do_install keep_outdated=keep_outdated File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 1221, in do_init pypi_mirror=pypi_mirror, File "/usr/local/lib/python3.7/site-packages/pipenv/core.py", line 1055, in do_lock packages, project, r=False, include_index=True File "/usr/local/lib/python3.7/site-packages/pipenv/utils.py", line 828, in convert_deps_to_pip indexes = project.sources if hasattr(project, "sources") else [] File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 862, in sources if self.lockfile_exists and hasattr(self.lockfile_content, "keys"): File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 615, in lockfile_content return self.load_lockfile() File "/usr/local/lib/python3.7/site-packages/pipenv/project.py", line 999, in load_lockfile j = json.load(lock) File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 296, in load parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads return _default_decoder.decode(s) File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)一番したのトレースバックだけをみてたら解決策が出てこなくて一番上を見たらPipfile.lockがコンフリクトしてるよ!って出てました。
これの解決方法はPipfile.lockを削除し、新たに
$ pipenv installで良いです。
なお、PipenvはPipfile にインストールしたいバージョンを書くことで、Pipfile.lock に実際にインストールしたバージョンが記録されるというものです。こうして開発者がインストールしたのと同じ環境を他の人も再現出来るので複数人での開発に便利です。
なお、これだけだと別にそんなに気にする必要もないのですが、意外とこのエラーは実際の開発でも起こる現象らしく、gitで複数のブランチを切ってそれがmasterブランチにマージされたものを手元にpullするとコンフリクトが発生するようです。
その際は手元のPipfile.lockを削除し、再び$ pipenv install $ git add Pipfile.lockでオーケーです。
- 投稿日:2020-06-27T16:29:17+09:00
Macでzshをデフォルトで使えという警告を非表示にする
以前まで表示されなかった警告が発生
macOS Catalinaにアップデートしてから、bashを起動すると以下のメッセージが表示されるようになった。
(デフォルトでfishを使用しています)ymmmtym@localhost ~> bash The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support.apple.com/kb/HT208050. ymmmtym@localhost:~$解決方法
結論からいうと、~/.bashrcに以下を追記することで解決できた。
~/.bashrcexport BASH_SILENCE_DEPRECATION_WARNING=1警告メッセージについて
警告メッセージで素直に表示されたサイト(https://support.apple.com/ja-jp/HT208050)にアクセスしてみる。
macOS Catalina から、Mac は zsh をデフォルトのログインシェルおよびインタラクティブシェルとして使うようになります。それ以前のバージョンの macOS でも、zsh をデフォルトにすることができます。
zsh以外を使用すると、警告メッセージが表示される仕様になっているらしい。
おまけ
Macの場合だけ、bashのバイナリファイルが少し違うみたいです。
Ubuntu16.04の場合
ymmmtym@ubuntu16.04:~$ strings /bin/bash |grep BASH_SILENCE_DEPRECATION_WARNING ymmmtym@ubuntu16.04:~$Mac(macOS Catalina)の場合
ymmmtym@localhost:~$ strings /bin/bash |grep BASH_SILENCE_DEPRECATION_WARNING BASH_SILENCE_DEPRECATION_WARNING ymmmtym@localhost:~$
- 投稿日:2020-06-27T14:33:45+09:00
macOS プログラミング学習 便利なショートカットキー
プログラミング学習 便利なショートカットキー
自分が知っているものに限りますが、これまでのプログラミング学習で役立ったショートカットキーをqiitaにも書き残しておこうと思います。
参照する場合は、以下の環境構築と当てはまった上でご覧ください。環境構築
・使用PC:macOS
・Google Chrome(ブラウザ)
・Visual Studio Code(コードエディター)常時
これらはプログラミング学習だけでなくmacを使っているときに最も使用しているショートカットキー
切り取り
command + x
コピー
command + c
貼り付け
command + v
コードエディターを使用しているとき
巻き戻し
command + z
操作する前の状態に戻せる
間違って消したりしたときに便利でよく使う。複製
複製したい文をドラッグして
shift + option + 下矢印キー
直下に複製される。
よく使う。移動
移動したい文をドラッグして
option + 矢印キー
よく使う。保存
command + S
すぐに保存したいときに使う。字下げ
Tab
字下げを戻すとき(字上げ)には
Tab + shift
よく使う。自動インテンド
shift + option + F
自動的にインテンド調整が入る機能
まとめてインテンドしたいときに使う。コメント切り替え
command + /
コメント機能のon/offを切り替えられる。
よく使う。まとめて書き換え(同じ文字のみ)
command + D
変更したい文字が複数ある場合に使用。カーソルの追加
command + option + 矢印キー
同じclassを追加したいときに使う。
li要素に使うことが多い。ブラウザ上を使用しているとき
デベロッパーツールの起動
command + option + i
HTMLやCSSの編集、Javascriptのconsoleのチェックを行うとき。
よく使う。今後もここに追加していく予定です。
- 投稿日:2020-06-27T10:08:10+09:00
【FuelPHP,エラー対処法】Uncaught Fuel\Core\PhpErrorException: mysqli::__construct(): (HY000/2002):
はじめに
MacOS
フレームワーク:FuelPHP
MAMPエラー内容
cronで実行しようとすると下記のエラー
Uncaught Fuel\Core\PhpErrorException: mysqli::__construct(): (HY000/2002):解決法
db.php 内の "localhost" を "127.0.0.1" に変更します。
fuel/app/config/db.php//変更前 'default' => array( 'type' => 'mysqli', 'connection' => array( 'hostname' => 'localhost', 'port' => '3306', 'database' => 'db_name', 'username' => 'root', 'password' => '', 'persistent' => FALSE, ), 'identifier' => '`', 'table_prefix' => '', 'charset' => 'utf8mb4', 'caching' => false, 'profiling' => true, ), //変更後 'default' => array( 'type' => 'mysqli', 'connection' => array( 'hostname' => '127.0.0.1', 'port' => '3306', 'database' => 'db_name', 'username' => 'root', 'password' => '', 'persistent' => FALSE, ), 'identifier' => '`', 'table_prefix' => '', 'charset' => 'utf8mb4', 'caching' => false, 'profiling' => true, ),公式ドキュメントにも書いてありましたね。笑
ちなみにMySQLのソケットファイル(mysql.sock)が見当たらない場合にこのエラーが発生することもあるようです。
https://k-holy.hatenablog.com/entry/2014/05/28/192707
実はずっとこっちが原因ではないかと試行錯誤していました。
- 投稿日:2020-06-27T04:11:25+09:00
ゼロから始めるScala (環境構築 mac)
Scala をはじめよう
Scala とは?
プログラミング言語の1つ。
「オブジェクト指向」と「関数型プログラミング」の両方の性質を併せ持つ (両方できる二刀流)。
Scala の「良さ」
- オブジェクト指向と関数型プログラミングの両方を表現できる。
- オブジェクトの「不変性」が意識された設計
- 高いモジュール性
- Java と互換性がある (Java のライブラリを使うことができる)
- 非同期の計算ができる
Future
ライブラリを標準装備- 並列・分散プログラミングのためのライブラリ
Akka
があるインストール on Mac
Homebrew
を使うのが簡単だと思う。環境構築は全部こいつでなんとかなる(気がする)。
探す
# scala (本体, しかし前提として Java が動く環境が必要 - 後述) $ brew search scala ==> Formulae scala scala@2.11 scala@2.12 scalaenv scalapack scalariform scalastyle ==> Casks scala-ide # sbt (scalaのビルドツール, 色々するのに便利なやつと思えば良い) $ brew search sbt ==> Formulae sbt sbt@0.13 sbtenv(前提として) Java をインストール
やはり
Homebrew
を使う。
AdoptedOpenJDK
をインストールするのが良いっぽい。AdoptedOpenJDKはJava大好きコミュニティ()により提供されているOpenJDKのバイナリ(だと思っている)。
Oracle経由でのインストールが、アカウント登録とか、自分でフォルダ配置するとか面倒になったので、変にこだわるよりは、これでサクッと入れてしまうのがコスト低いと思う...# リポジトリの追加 $ brew tap AdoptOpenJDK/openjdk # search $ brew search openjdk # install $ brew cask install adoptopenjdk11JAVA_HOMEのPATHを設定しよう
java_home
コマンドでインストールされたディレクトリの場所を確認$ /usr/libexec/java_home -v 11 /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
$ なんたら/java_home -v 11
して出てきた文字列を、環境変数JAVA_HOME
としてPATH
に追加必要に応じて
.bash_profile
や.bashrc
などに記述する。# .bashrc に書いた。 export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home PATH=${JAVA_HOME}/bin:${PATH}設定ファイルの再読み込み
# 以下、どちらか一方でOK source ~/.bashrc exec $SHELL -l一応、チェックする。
$ java -version openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.7+10) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.7+10, mixed mode) $ javac -version javac 11.0.7 # コンパイル例 $ javac source.java # 実行例 (.class を含めないように注意) $ java Sourcescala を入れる
(後述の)
sbt
だけでも良いが、一応書いておく。# install $ brew install scala以上。
使ってみる
# REPL起動 $ scala Welcome to Scala 2.13.3 (OpenJDK 64-Bit Server VM, Java 11.0.7). Type in expressions for evaluation. Or try :help. scala>例
// 出力 scala> println("Hello scalalala") Hello scalalala // 演算1 scala> 1 + 2 val res1: Int = 3 // 演算2 scala> 3 * 6 val res2: Int = 18 // 演算3 scala> 8.0 / 2.0 val res3: Double = 4.0 // 終了 scala> :quit // scala> :q でも OKソースファイル
拡張子は
.scala
Main.scalaobject Main { def main(args: Array[String]): Unit = { println("Hello scala program") } }
- コンパイルして実行
$ scalac Main.scala $ scala Main
- コンパイルしないで実行
$ scala Main.scala
- REPLから実行
$ scala Welcome to Scala 2.13.3 (OpenJDK 64-Bit Server VM, Java 11.0.7). Type in expressions for evaluation. Or try :help. scala> :load Main.scalasbt を入れる
# install $ brew install sbt以上。
使ってみる
# REPL起動 $ sbt console ... [info] Starting scala interpreter... Welcome to Scala 2.12.10 (OpenJDK 64-Bit Server VM, Java 11.0.7). Type in expressions for evaluation. Or try :help. scala>(あとは同じなので詳細略)
sbt でコンパイル, 実行
下準備として、何かフォルダを作っておくと良いと思います。
(名前はmyfolderとしましたが、なんでも良いです、対応する部分は読み替えてください)$ mkdir myfolder $ cd myfoldermyfolder下にソースファイルを書いて置きます。
HelloWorld.scalaobject HelloWorld { def main(args: Array[String]): Unit = { println("Hello, Scala World!") } }myfolder下に
sbt
の設定ファイルを置きますbuild.sbtscalaVersion := "2.12.10" scalacOptions ++= Seq("-deprecation", "-feature", "-unchecked", "-Xlint")
sbt
を起動[info] ... sbt:myfolder>
run
コマンドで実行sbt:myfolder> run [info] Compiling 1 Scala source to ... [info] Running HelloWorld Hello, Scala World! [success] Total time: 1 s, completed 2015/02/09 15:44:44`
run
コマンドでは、mainメソッドを持つオブジェクトを探して実行してくれるらしい。というか、なんか日付がおかしい...??
参考
- ドワンゴ 新卒エンジニア向けの研修資料
- Scalaプログラムの基本(まとめ)
- 第一章:猿でも分かるScala!
どうして猿を引き合いに出したがるのか...