20200621のMacに関する記事は7件です。

[未解決] 【macOS Catalina】crontab -e でOperation not permittedの解消方法

[未解決] 【macOS Catalina】crontab -e でOperation not permittedの解消方法

既にQiitaにもいくつかエントリーがありますが、それでも解決できない場面があったので、補足として記載します。

macOS Mojave で crontab -e できない
【Mac】crontabでOperation not permittedと出た時の解決方法

解消方法

log
crontab: installing new crontab
crontab: tmp/tmp.7351: Operation not permitted
crontab: edits left in /tmp/crontab.ji8RUZh6dh

上記のエラーが発生した場合、以下を開く。
「システム環境設定 > セキュリティとプライバシー > プライバシー > フルディスクアクセス」
iTermを使用している場合は、iTermにチェックを入れて追加する。

ここからが解決できない問題

mountしたドライブ(外付けSSD)にcronが実行できない

crontab -eで以下のような記述をしました。
Seagate_5TB_yが外付けSSDで、その中のGoogle Driveフォルダに個人のGoogle Driveフォルダをマウントさせています。

*/1 * * * * tar zcvf /Volumes/Seagate_5TB_y/Google\ Drive/ssh.tar.gz ~/.ssh/

しかしながら、結果は、、

tar: Failed to clean up compressor

となり、mount先に新しいファイルを作成することができません、

最後に

現在では、gdriveコマンドやskickコマンドがGoogleの認証が使用できない事象が発生してます、
そこと関係があるのかもしれません。

解決方法をご存知の方はご教授頂ければと思います。

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

実機テストで「The maximum number of apps for free development profiles has been reached.」のエラーが出て困った話。

カメラアプリの開発中、実機にてビルドを行うと「Unable to install "product name"」と出てきて、詳細を確認すると「The maximum number of apps for free development profiles has been reached.」のエラーが出て、実機にアプリのインストールができず困った話です。

実行環境
xcode:version 11.5
iOSバージョン:13.5.1
実機:iphone7 

お金を払って開発者アカウントにしない限り、xcodeで作成したアプリを実機に三つまでしかインストールできないとのことだったのですが、私は初めての実機テストだったためインストールしているアプリが0の状態で、エラーが発生していました。

上記のような状況で、私が解決できた方法について以下に記載いたします。

1.Window->Devices and Simulators->実機を選択してOpen Consoleボタンをクリックしてログを表示
2.アプリを実行して実機へのインストールを試みる。
3.右上の検索にMIFreeProfileValidatedAppTrackerを入力してログを絞り込む。

コンソールログのコピー.png

ログメッセージを確認すると、AppStoreから以前ダウンロードしたであろうアプリが表示されます。ここに表示されているアプリは、以下の写真のように実機ホーム画面の雲マークがついたアプリになるかと思います。

iphoneホーム画面.PNG

雲マークがついたアプリをインストールもしくは削除することで、今回のエラーは解消されました。

「非使用のAppを取り除く」という設定をONにしていると、長期間使用されていないアプリが削除され、雲マークがつくようです。

xcodeのアプリが問題ではなく、AppStoreのアプリ原因だったのは盲点で、かつ実機のログまで確認しないとエラーの原因にたどり着かないので、教えていただいた方には本当に感謝しております。

似たような状況の方の解決につながれば幸いです。

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

【hidden_field】rails hidden_field を使って情報を送ろう!!!!

【ゴール】

hidden_fieldを使って情報を送る

画面収録 2020-06-21 20.06.48.mov.gif

【メリット】

■ paramaterの理解度向上
■ hidden_fieldの使い方理解
■ MVCの理解度向上

【開発環境】

■ Mac OS catalina
■ Ruby on Rails (5.2.4.2)
■ Virtual Box:6.1
■ Vagrant: 2.2.7

【実装】

アプリケーション作成

※「scaffold」で一気に作成

mac.terminal
$ rails new hidden_lesson
$ rails g scaffold Item name:string text:text price:integer amount:integer
$ rails db:migrate 

アプリケーション調整

※ルートを追記
※homeにitemsのindexページが来るように
※postメソッドで確認画面へのルートを作成

config/routes.rb
 root 'items#index'
 post 'items/confirm' => 'items#confirm'

※views/itemsにconfirm.html.erbを作成
※items/_form.html.erbを編集
hidden_fieldでUserには見えないようにページで情報を保持します!!!

items/confirm.html.erb
<h3>Confirm page</h3>
<%= form_with model:@item do |form| %>

<div class="field">
  <%= form.label :name %>
  <%= @item.name %>
  <%= form.hidden_field :name %>
</div>

<div class="field">
  <%= form.label :text %>
  <%= @item.text %>
  <%= form.hidden_field :text %>
</div>

<div class="field">
  <%= form.label :price %>
  <%= @item.price %>
  <%= form.hidden_field :price %>
</div>

<div class="field">
  <%= form.label :amount %>
  <%= @item.amount %>
  <%= form.hidden_field :amount %>
</div>

<div class="actions">
  <%= form.submit %>
</div>
<% end %>

items/_form.html.erb
<%= form_with(model: item, local: true) do |form| %> #これを↓に変更

<%= form_with(model: item, local: true, url: items_confirm_path) do |form| %>

以上です。商品詳細画面遷移前に確認画面が挟まれているはずです。

【合わせて読みたい】

■form_withに関して
https://qiita.com/tanaka-yu3/items/50f54f5d4f4b8dfe19f3

■local: trueに関して
https://qiita.com/hayulu/items/5bf26656d7433d406ede

■確認画面作成に関して
https://qiita.com/tomoharutt/items/7959d28764912c64562f

■formの引数が2つの場合
https://qiita.com/tanaka-yu3/items/94d2b9fccc9577756127

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

JavaScript for Automation (JXA)

java scriptでMacを自動化できる

アプリケーションの起動

function run(){
    var app = Application("apps");
}

引数を渡してiTuneで曲を再生

function run(argv){
    if(argv.length == 2){
        console.log(argv[0] + " : " + argv[1] + " を再生します");
        var app = Application("iTunes");
        app.playlists[argv[0]].tracks[argv[1]].play();
    }

    else{
        console.log("'プレイリスト' '曲名' を指定してください");
        }
}

scriptの実行

実行

osascript -l JavaScript sample.js

引数を渡して実行

osascript -l JavaScript sample.js testPlay hoge  
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Apache Spark Streamingをローカルでサクっと動かす

はじめに

  • Apache Spark StreamingをMacのローカル環境でサクっと動かしたい。

sparkのインストール

$ brew install apache-spark

ソースコード

build.sbt

name := "spark-sample"
scalaVersion := "2.11.12"
resolvers += "Typesafe Releases" at "https://repo.typesafe.com/typesafe/releases/"
javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-Xlint")
libraryDependencies ++= Seq("org.apache.spark" %% "spark-streaming" % "2.4.6")

Mainクラス

localhostの9999番ポートから5秒ごとに文字列を取得してカウント結果を出力するコード。

import org.apache.spark.streaming._
import org.apache.spark._

object StreamingSample {
  def main(args: Array[String]) {
    // SparkStreamingコンテキストを作成
    val conf = new SparkConf().setAppName("Streaming Sample")
    val sc = new SparkContext(conf)
    val ssc = new StreamingContext(sc, Seconds(5))

    // ストリームからデータを読み込み処理をする
    val lines = ssc.socketTextStream("localhost", 9999)
    val words = lines.flatMap(_.split(" "))
    val pairs = words.map(word => (word, 1))
    val wordCounts = pairs.reduceByKey(_ + _)

    // 結果を出力する
    wordCounts.print()

    // コンテキストの起動と維持
    ssc.start()
    ssc.awaitTermination()
  }
}

実行

ローカルにncコマンドで疑似ストリームを作り文字を入れる。

$ nc -lk 9999
aaa
aaa
bbb
bbb
ccc

jar作成

$ sbt clean package

作成したjar実行

$ /usr/local/Cellar/apache-spark/2.4.6/libexec/bin/spark-submit --class StreamingSample target/scala-2.11/spark-sample_2.11-0.1.0-SNAPSHOT.jar

出力結果

ちゃんと5秒ごとにカウント結果が出力される。

-------------------------------------------
Time: 1592726930000 ms
-------------------------------------------
(aaa,2)
(bbb,2)
(ccc,1)

まとめ

  • Sparkは難しいイメージがあったが、Sparkのインストールからローカル実行まであっという間にできた。
  • Scala12やJava11を使うとエラーなどでうまくいかなかったので今回はScala11・Java8で実行した。Spark2.4系はScala12用のライブラリも提供されていて動かないことはないと思うので調べて動くところまではやってみたい。

参考文献

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

Cloud9をデスクトップアプリ化する(macOS 2020年版+おまけのWindows)

概要

AWS Cloud9をブラウザ(Chrome)から利用すると、Chromeにバインドされているキーボードショートカットが優先されてCloud9のキーバインドが正しく動作しません。これを回避するためにChromeをデスクトップアプリとして起動する方法です。Windowsでは簡単にできるのですが、macOSのChromeでは現状簡単にできないので、Automatorを使う方法を記述します。簡単ですが、Windowsの手順ものせますね。

用意するもの

  • Mac (macOS Catalina)
  • Google Chrome
  • AWSアカウント(Cloud9設定済み)

MacでCloud9をデスクトップアプリ化する手順

ChromeでCloud9を開き、URLをコピーしておく

アプリケーションからAutomator.appを開く
スクリーンショット 2020-06-21 16.02.50.png

シェルスクリプトを実行を選ぶ

スクリーンショット 2020-06-21 16.04.21.png

シェル/bin/bashを指定し、以下を入力して"Cloud9.app"という名前で保存する。

open -n -a 'Google Chrome' --args '--app=(Cloud9のURL)'

Cloud9.appの「情報を見る」

スクリーンショット 2020-06-21 16.06.41.png

左上のアイコンを選択し、アイコンにしたい画像をそこへDrag & Dropする。

これで、Cloud9.appを起動すると、Chromeのキーバインドが優先されなデスクトップアプリ風のCloud9コンソールが立ち上がります。

Windows でCloud9をデスクトップアプリ化する手順

Windowsの場合簡単です。

  1. ChromeでCloud9を開く
  2. Chromeの設定メニュー(右上の3つの点)> その他のツール > デスクトップに追加

以上です。

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

install apt-get to Mac

NOTE: install time is maybe 60~80 minutes

Environment

OS X : 10.15.5
Shell Type:zsh
xcode: 11.5

Requirements

1.Xcode Command Line Tools

Open link: https://developer.apple.com/download/more/
Next, search: Command Line Tools
Download file that matched your xcode version.

2.JDK

https://www.oracle.com/jp/java/technologies/javase-downloads.html

Process

Open link: http://www.finkproject.org/download/srcdist.php?phpLang=en
Download InstallFink.tgz file from https://github.com/fink/scripts/releases/tag/setup/0.45.1

Next, type below commands.

tar -xvf InstallFink.tgz
cd InstallFink
sh Install\ Fink.tool

NOTE: When XQuartz is downloaded and installed by Install\ Fink.tool, sh command is stopped command.

Then you just execute sh Install\ Fink.tool.

While installing, terminal ask some questions.
Then you just type "Enter".(If you don't need to customize)

Finally, open another tab.
Then you type apt-get

$ apt-get
apt 0.5.4 for darwin x86_64 compiled on Jun 21 2020 10:23:53

reference:

https://qiita.com/taka_baya/items/c84e306f05e2513e4a67

https://qiita.com/___xxx_/items/4a318f29e1dd68ad8071

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