月別アーカイブ 9月 2018

takahashi 著者:takahashi

mac OSの回復USBディスクを作成する方法

最近、会社のiMacのmac OSが立ち上がらなくなってしまっため、OSの上書きを試みましたが、内臓のリカバリーモードではうまく行きませんでした。
そこで、外部メディアにインストーラーイメージを入れて、外部からリカバリしてみることにしました。

今回の操作を行うには、メディア作成時に正常に起動するMacintoshと約12GB以上の容量を持つ空のUSBメモリが必要になります。
データが入ったUSBメモリも使用できますが、今回の手順を試すとUSBメモリ内の全データが削除されてしまうので注意してください。

手元に正常に稼働するMacintoshが1台しかない方は、緊急時に備えてあらかじめ1本作っておくことをお勧めします。
なお、OSの再インストールに使う際はバージョンをアップグレードするごとに作成する必要があります。

まずはmacOSを起動して、AppStoreから現行のmacOSを探します。
リカバリディスクが作れるのは、AppStoreからダウンロードできるバージョンに限られますので注意してください。

写真は既に入手した後の画面のため、”開く”になっていますが、ダウンロード前に開くと”ダウンロード”というボタンになっているので、クリックします。
ダウンロードが終了すると、アプリケーションフォルダに”macOS Mojaveインストール”が追加されます。

この状態になっていることを確認したらアプリケーションからTerminal.appを開き、次のようにコマンドを入力します。(※この手順を実行するとUSBメモリ内のデータがすべて削除されます)

sudo /Applications/Install\ macOS\ バージョン名(例:mojave).app/Contents/Resources/createinstallmedia --volume /Volumes/インストールメディアにするUSBメモリのデバイス名

コマンドを実行すると、USBへのインストーラーイメージの書き込みが開始されます。
コマンドライン上に進行状況が表示されるので、完了するまで待ちます。

Ready to start.
To continue we need to erase the volume at /Volumes/Install macOS (バージョン名)/.
If you wish to continue type (Y) then press return: Y
Erasing disk: 0%... 10%... 20%... 30%... 100%
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%
Making disk bootable...
Copying boot files...
Install media now available at "/Volumes/Install macOS (バージョン名)"

完了したら、”Install macOS (バージョン名)を取り出す”をクリックしてUSBを取り外し、保管しておきます。

作成したUSBインストールメディアを使用する際は、まずmacOSが起動している場合は一度シャットダウンします。
そのあと、USBを本体に差し込み、

キーボード左下あたりにある”option(alt)キー”を押したまま電源ボタンを押します。

すると、どのディスクからOSを起動するか選択する画面が出てきますので

“Install macOS (バージョン名)”
を選択します。

あとは言語を選べば…

内臓のリカバリーモードと同等の画面が表示されました。
内容もそのままリカバリーモードと同じなので、OSのインストール以外にもディスクチェックやTerminalの起動も行うことができます。

困ったときは是非参考になれば幸いです。

  • この記事いいね! (0)
村上 著者:村上

【Android】「No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android」エラーの対処法

タイトルにある通り、Android Studioで発生したエラーの対処法についてです。
エラー文はこちら。

No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android

NDKツールチェーンフォルダに必要なファイルが足りないことが原因のようでした。

 

今回エラー解消で参考にさせていただいた投稿はこちらから。

“No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android”・Issues #15・google/filament・GitHub
https://github.com/google/filament/issues/15

この中に、AndroidのDeveloperサイトから、NDKをダウンロードしてきて、それを適切な場所に置く、という対処法があり、こちらを行いました。

まず、下記から自分の環境に対応したパッケージをダウンロードします。

NDK のダウンロード|Android NDK|Android Developers
https://developer.android.com/ndk/downloads/?hl=zh-en


私の場合は、「Windows 64 ビット」のパッケージをインストールしました。
ただ、サイズが 700MB くらいあるので、少し時間がかかります。
ダウンロードが完了したら展開しておきましょう。

次に、Android SDKのある場所を開きます。
私のWindows環境では、C:\Users\[ユーザー名]\AppData\Local\Android\sdk でした。
そこにある ndk-bundle フォルダの中の、さらに toolchains フォルダを開きます。

そのフォルダ内に、mips64el-linux-android-4.9mipsel-linux-android-4.9 が足りていなかったため、ダウンロード・展開をしたファイルからその2つをコピーします。

あとは、Android Studio に戻って、再ビルド(もしくは Try Again)を実行します。
私の場合は、これでビルドが完了しました。

 

以上、「No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android」というエラーの対処法でした。
こういう、ファイルが足りない系のエラーって面倒ですね…。
が、何とか解決できてよかったです。
もし同じ状況に陥った場合は、是非参考にしてみてください。

  • この記事いいね! (10)
著者:杉浦

javascriptの関数の扱い

 javascriptの関数は第一級オブジェクトとして扱われています。 
 wikipediaから引用した第一級オブジェクトの性質は次の通りです。

言語によって異なるが、第一級オブジェクトは概ね次のような性質をもつ。

  • 無名のリテラルとして表現可能である。
  • 変数に格納可能である。
  • データ構造に格納可能である。
  • それ自体が独自に存在できる(名前とは独立している)。
  • 他のものとの等値性の比較が可能である。
  • プロシージャや関数のパラメータとして渡すことができる。
  • プロシージャや関数の戻り値として返すことができる。
  • 実行時に構築可能である。
  • 表示可能である。
  • 読み込むことができる。
  • 分散したプロセス間で転送することができる。
  • 実行中のプロセスの外に保存することができる。

  •  javascriptの関数は第一級オブジェクトです。プロシージャや関数の戻り値として返すことができます。
     このためjavascriptの関数の定義は似たような二種類の書き方が出来ます。一つはただ関数の宣言を行う処理が起きる書き方、もう一つは関数を変数に格納する処理が起きる書き方です。

    function a(){console.log('hoge')}//関数の宣言のみを行う。変数aの中に名前aの関数が格納される。
    a = function(){console.log('hoge')}//変数aの中に名無しの関数を格納する。
    

     それぞれ実行すると次の様になります。

     またES6で追加されたアロー関数を使うと次の様にも書けます。関数を定義した感じがあまりしません。この書き方が浸透したような場所でない限り、本来の目的通りコールバックに使うべきでしょう。

    a = () => {console.log('hoge')}//変数aの中に名無しの関数を格納する。
    

     本来の目的に沿った書き方は次の様な書き方です。

    //イベント付与では元々コールバックとして関数式、関数オブジェクトを渡していた。引数無しならばこのように書ける
    function console_log_hoge(){
        console.log('hoge')
    }
    $('p').on('click',console_log_hoge)
    
    //アロー関数による引数渡しは短くわかりやすく書ける
    //また$('p').on('click',console_log_innerText(e))とした場合,その場で関数が実行されてしまう
    function console_log_innerText(e){
        console.log(e.target.innerText)
    }
    $('p').on('click',e => console_log_innerText(e))
    

     最後にこんなこともできるがするべきではない書き方をひとつ。

    function a(){
    	return function b(){
    		return console.log('c');
    	}
    }
    a()()
    


     関数を実行した返り値の関数を実行しました。

    • この記事いいね! (0)
    asaba 著者:asaba

    【react】BrowserRouterを使って実機でビルドすると画面が描画されない件

    今開発中のReactでreact-router-domライブラリのBrowser-routerでこけました。

    どのような現象かというと、npm startで起動するとコンポーネントがちゃんと描画されるのですが、yarn run buildでビルドしてから

    cordova run android(browser)で反映させてた時に真っ白になります。しかもログにエラー扱いで表示されないので解決するのに時間が

    かかってしまいました。

    解決方法はというと、まず下記のスクショを見てください。

    importでHasuRouterを定義した後に、<BrowserRouter>で<switch>タグで囲んだ遷移のリストを囲んでいるのが分かります。

    本来はこれを使って<switch>タグで<Route>タグのpathと一致した場合にそのページに遷移するというベーシックな

    画面遷移ですが、実機だとうまく描画してくれなかったです。

    どうしようかなと思いネットを漁っていたら見つかりました解決方法が見つかりました。(リンク先は忘れてしまいました、すみません。。)

    v4に移行した後は、<HushRouter>で囲むとsuccessするよー!みたいなことが書いてあったことは覚えています。

    とりあえず下記の画像のようにタグ名を変えてビルドー>無事コンポーネント描画され大成功!!です。

    ものすごくざっくりですが、v3で慣れていた方はこれに限らず色々と書き方が変わっていたのでv4マイナーチェンジぶりにいらいらするかもしれないですね。

    詳細をうまく伝えられなかったのは残念ですが、もう少しreactに詳しくなった後に説明したいと思います。

     

     

    • この記事いいね! (0)
    takahashi 著者:takahashi

    Windows10で回復ディスクを作る方法

    最近のWindowsは、Windowsが起動していない状態で起動オプションを呼び出すのがデフォルトでできなくなっており、折角回復パーティションをインストールしてあってもWindowsそのものが立ち上がらなくなってしまうと回復オプションにすらアクセスできなくなってしまう可能性があります。

    そんなときのために、回復オプションを呼び出すための専用のWindows、Windows RE(Recovery Enviroment)があります。
    Windows REを使えば、スタートアップ修復やWindows外からのシステムの修復、初期化の操作などを行うことが可能です。

    今回は、Windows上からWindows REが起動できる光学ディスクの作り方を説明します。

    まず、スタートメニューを開き、検索欄に”コントロールパネル”と入力します。

    コントロールパネルの項目が出てくるので、クリックして開きます。

    コントロールパネルを開いたら、右上の検索欄に

    バックアップと復元

    と入力してエンター。

    “バックアップと復元(Windows7)”または”バックアップと復元”の項目をクリックします。


    左側の”システム修復ディスクの作成”をクリックします。

    するとウィザードが開きます。

    ディスクドライブにディスクを入れ、”作成”を押せばWindows REの入った回復ディスクが作られます。

    起動するときは、作成したディスクをドライブに入れ、起動オプションでドライブから起動するように指定すれば、Windowsの回復オプションを表示させることができます。

    基本的に同じOSのバージョン間であれば使いまわし可能なはずですので、あらかじめ作っておくと便利かもしれません。

    • この記事いいね! (0)
    村上 著者:村上

    【Corodva】Android端末で実行した時に変更内容が反映されない時の対処法

    昨日投稿した 【Android】Create React AppとCorodvaで作成したAndroidアプリにプラグインが追加できない時の対処法 の内容とも少し関わってくるのですが、Create React AppとCorodvaで作成したアプリが、何故かAndroidでだけ変更内容が反映されないという状況に陥ったので、その対処法についてです。
    この現状が起こるのはAndroidだけで、BrowserとiOSについては何の問題もなく、変更内容が反映されていて…。
    原因が分からず、かなり苦しめられました。

     

    さて、解決方法ですが、何てことはなく、単にパッケージもしくはプラットフォームのバージョンが新しすぎたせいでした。
    今回、アプリの環境をつくるにあたり、Cordovaのバージョンを 7.1.0 から 8.0.0 にアップデートしたのですが、それが原因のようです。
    もしくは、Android自体のバージョンが高すぎたのかもしれませんが…とにかく、バージョンが新しすぎて、Androidのファイルが正しく作られていませんでした。
    そのため、cordova buildなどの Cordovaのコマンドが正常に働いていなかったのかもしれませんが…エラーが表示されなかったので、発見がかなり遅くなりました。
    バージョンに思い至ったのも偶然だったので、もしかしたらこれ以上に解決まで時間が可能性もあり…ぞっとしませんね。

    ということで、Cordovaのバージョンを、以前と同じ 7.1.0 に戻したところ、あっけなく変更箇所がアプリに反映されました。
    さらに、昨日紹介したプラグインが正常にインストールされない問題についても、バージョンを下げてプラットフォームを再インストールしたところ、必要なファイルが正常に作成されたため、特に修正する必要もなくインストールに成功しました。
    …容易にバージョンを上げないようにしなければ…!

     

    以上、Cordovaで変更した内容が反映されないときの対処法でした。
    とりあえずは、パッケージのバージョンは容易に上げないようにすべきですね…。
    古すぎるのもまずいとは思いますが、新しすぎでも問題のようですので、最新より1つ下のバージョンくらいがちょうどいいのかもしれません。
    皆様もバージョンによる不具合には十分お気を付けください。

    • この記事いいね! (0)
    asaba 著者:asaba

    【iosアプリ】これで必勝!?危険物乙四過去問アプリ

    App storeを漁っていたら危険物乙四免許過去問のアプリが・・・

    試しに見てみました。

    中身は、結構簡略に作られており、冊子のような分厚くて持っていくのも面倒ではないのでカフェとかで勉強するにはよさそうですね。

    広告が頻繁にでてきますが、質は間違いなく良いので試してみる価値はあると思います。

    P.S.筆者が受けたときにこんなのがほしかったです。

    • この記事いいね! (0)
    著者:杉浦

    様々な言語の表を生成するwebサービスTables Generator

    Tables Generatorは表を生成するwebサービスです。
     表は何かと便利な表現ですが言語によっては表を表現するための文字列が煩雑なことが有ります。HTMLは最低限

    で括る必要があります。texは&で区切るうえ左揃えと縦線の記入を表すと|l|l|l|l|l|と並び、大変見難いです。
     Tables Generatorは簡単にそれらの表を作れます。下図の赤丸の部分で作りたい表の形式を指定、してFile,Edit等で表を操作することで表を作り、Generateすることでコードが出力されます。

     おすすめはあらかじめcsvファイル化した上でFileからimport csvして、微細な加工を手作業する事です。csv形式は様々な場所で使えます。
     テーブルの操作は基本的にマウスで行います。複数のマス選択はドラッグかctrl+クリックです。

    • この記事いいね! (0)
    村上 著者:村上

    【Android】Create React AppとCorodvaで作成したAndroidアプリにプラグインが追加できない時の対処法

    長いタイトルですが、本日これが起こったので、自分のための備忘録として対処法をまとめます。

    開発環境は、Create React App と Cordovaを使っています。
    こちらについては、下記の記事のとおりに作成しましたので、ご参考ください。

    Create React App & Cordovaでアプリをつくる環境を整える 2018年4月時点 – Qiita
    https://qiita.com/bathtimefish/items/113154e89650b351b5b7

     

    さて、本題のプラグインの追加ですが、まず追加したいプラグインは下記の2つです。

    ・https://github.com/petermetz/cordova-plugin-ibeacon
    ・https://www.npmjs.com/package/cordova-plugin-bluetooth-serial

    が、この2つを追加したところ、cordova build android が動かなくなる状況に…!

    エラー文によると、androidディレクトリ以下の ressrc、そして AndroidManifest.xml が何故かつくられていないことが原因でした。
    そのため、対処法としてはまず一旦プラグインを削除し、Androidのプラットフォームを削除・再作成を行いました。

    で、その時点でビルドを行い、正常にビルドが完了するかを確認しました。
    この時点では問題なかったのですが、エクスプローラでファイルを確認してみると、やはり res、src、AndroidManifest.xml がない…。
    なので、他のCordovaの環境から、上記ファイルをコピー&ペーストして、package名や、ディレクトリ構造をコピー先の環境に合わせるというアナログな手法を取ってみました。
    その後、再度プラグインを入れ直したところ、どうやら正常にインストールできた模様。
    そして、最後に再度ビルドを行いましたが、今度は正常に完了しました!
    試しに実機を接続して、cordova run androidを実行してみましたが、こちらも正常に実行され、問題なくアプリが起動しました!

     

    ということで、凄くアナログな方法ではありますが、この方法で何とか無事にプラグインの導入が完了しました!
    …アナログだろうが動けばいいんです…!
    もし同じようなヵ所でお困りの方がいらっしゃいましたら、良ければ参考にしてください。

    • この記事いいね! (0)
    著者:杉浦

    画像を扱う多機能なCLIツールimagemagick

     imagemagickは画像を扱うソフトです。imagemagickの特長は多彩な動作と多様な対応形式にあります。以下は最近使ったコードです。

    magick convert -density 200 *.pdf -set filename:src %t %[filename:src].png //pdfファイルをpngファイルへ変換
    magick convert -crop 128x128 x.jpg output.jpg//x.jpgを128x128サイズで切り分けてoutput-n.jpgへ出力
    magick convert output-0.jpg -resize 256x256 ..\output\out.jpg//output-0.jpgを256x256サイズへ拡大してoutput以下へ保存
    magick convert -size 128x128 -gravity center -font "Meiryo-&-Meiryo-Italic-&-Meiryo-UI-&-Meiryo-UI-Italic" -pointsize 60 label:%%i -transparent white %%i.png//batchでiをイテレーターにループ。中央に数字のiを描いた128x128の画像を生成
    magick convert base.png %%i.png -gravity center -compose over -composite icon_%%i.svg//base.pngを背景にして↑で作った画像を重ね合わせ、svg形式で出力
    magick convert -append 137.715136_*.gif output.gif//縦に結合
    magick convert +append output*.gif all.gif//横に結合
    magick convert +adjoin ss.gif pic.gif//gifをフレームごとに分解
    

     もちろん、この他にも様々なことができます。
     大変便利なimagemagickですが、ベクトル形式の画像の扱いは苦手です。imagemagickは知る限りbitのmapとして画像を扱います。このせいかsvgを生成する際もドットをラッピングするという手法を取っており、拡大してもジャギーが出ないというベクトル画像の利点が死にやすいです。

    • この記事いいね! (0)