DegitalOceanでのVSCode

degitaloceanでVSCode使おうとしてはまったので備忘録。

最初のイメージとしては、ターミナルの中から起動するイメージだったのですがクライアントのVSCodeを起動してアクセスする方式にしました。
(この方式だとPUTTYのターミナルはあまり必要なくなりました。)
躓いたのは、公開鍵の持ち方です。
・普通のフォルダに鍵ファイルを置いて指定すると怒られる。
 (ユーザフォルダなどに置くと良い)
・PUTTYGenで作成した公開鍵をOpen形式に変換したファイルを指定する必要がある。
 (PUTTYGenに変換機能あり)
の2点です。
詳しくは後程追記します。

Ubuntuのmigrateで失敗する

Windows10の環境で作成した、ユーザ認証用のDjangoライブラリ(django-allauth)を使用したプロジェクトをDegitalOceanにデプロイする際にはまったので備忘録です。
まず、
>python manage.py makemigrations
を実行すると
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration account.0001_initial is applied before its dependency accounts.0001_initial on database ‘default’.
などのエラーが表示されます。
どうもallauthで作成されるモデルが作成されていないため、作成さていないテーブルへカスタマイズ用の定義を追加しようとしたため、順番が違うよと言われているようだったので、再実行すると基本のテーブルが作成されているにも関わらず、カスタマイズ用のテーブルが作成されなくなりました。
>python manage.py showmakemigrations
でスケジュールを見てみると

account
[X] 0001_initial
[X] 0002_email_max_length
admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
[X] 0003_logentry_add_action_flag_choices
auth
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
[X] 0008_alter_user_username_max_length
[X] 0009_alter_user_last_name_max_length
[X] 0010_alter_group_name_max_length
[X] 0011_update_proxy_permissions
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
sessions
[X] 0001_initial
sites
[X] 0001_initial
[X] 0002_alter_domain_unique
socialaccount
[X] 0001_initial
[X] 0002_token_max_lengths
[X] 0003_extra_data_default_dict
と表示され、カスタマイズテーブルは無視されています。
そこで個別にmigrateしようとおもい、

>python manage.py makemigrations xxxx
(xxxx はアプリ名)
を実行すると、今度は
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration socialaccount.0001_initial is applied before its dependency accounts.0001_initial on database ‘default’.
と怒られます。
仕方ないので、env/lib/python3.8/…/socialaccount/migrationsの下を__init__.py以外を削除して実行すると今度は
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration account.0001_initial is applied before its dependency accounts.0001_initial on database ‘default’.
と怒られたので、同様にaccount/migrationsの下も__init__.py以外を削除。
これでやっと
>python manage.py makemigration xxxx
が成功しました。
書いてみると単純そうだけど、試行錯誤してる最中はもう直接create tableしちゃおうかとも思ったけれど、migrateの恩恵にあずかると、楽したくなるなあと思う今日この頃です。


Djangoのチュートリアルにあるchoice_set

これはQuestionテーブルが外部参照しているChoiceテーブルのデータ、という意味のようです。
これは、はじめてこのチュートリアルを実行する人はなやむかもなあ。
まず、抽出して表示するのがなんでChoiseデータなの?
ってところからおかしくない?
Questionテーブルの内容を表示させるところじゃないかなあ???

ところで、またも勝手な備忘録
Djangoの新しいプロジェクトを作るコマンド
>django-admin startproject mysite
Djangoの新しいアプリを作るコマンド
>python manage.py startapp myapp

セールスフォース・ドットコム

クラウド型のシステム開発基盤としては、Azure、Googleクラウド、AWSといったところが主なものかと思っていましたが、セールスフォース・ドットコムという会社のFource.com、Herokuというのがあるんですね。
なんと、持続化給付金の申請サイトはこの会社が手掛けたそうですし、トヨタ自動車KDDIみずほフィナンシャルグループ三菱UFJフィナンシャル・グループ損害保険ジャパン日立グループジョンソン・エンド・ジョンソンファーストリテイリングローソン株式会社日本総合研究所小田急電鉄楽天など、規模・業種を問わず多数の企業がこの会社のクラウドコンピューティング・サービスを導入しているそうです。
2009年には環境省経済産業省総務省が所管するエコポイントのインターネット申請システムを経済産業省から打診を受けてからわずか3週間でシステム開発を完了・稼働させたそうで、この会社、2019年度版日本の「働きがいのある会社」ランキング1位に選出されているそうで、クラウド=AWSと思っていましたが、Herokuもありかな?
Herokuはサーバーがアメリカにあるのでアクセスが難ありと聞いていましたが…

AWSで.Net CLiサンプル動かず?

AWSの.NetCoreのサンプルのコンソールアプリを動かしてみました。
結果、bash: line 1: hello/obj/project.assets.json: No such file or directory
と怒られました。
確かにobjフォルダの下にDebugフォルダも、exeもdllもできていません。
で、色々とネットで調べてみるとどうやらAWSで動かすために必要なファイルがサンプルのインストール手順だと不足していたようです。
コマンドプロンプトから
>dotnet restore
を実行したら、正常に実行されました。

Zoom

Qiita会議に参加しようかな?
ということで、Zoom入れてみました。
公式サイトはここです。
facebookアカウントでログイン

右上のリソースをクリックして表示された選択リストから “Zoomクライアントをダウンロード” を選択(画像だと弄ってたら選択リストが英語になったのでRESOURCE)

ミーティング用Zoomクライアントの “ダウンロード” ボタンをクリック
ダウンロードしたインストーラを実行

ミーティングに参加

AWS Summit Online 開催のお知らせ

クラウドの最新技術を “実際に手を動かして楽しみながら学ぶ” 23日間
開催期間 2020 年 9 月 8 日 (火) ~ 9 月 30 日 (水)  
◎詳細:
http://rd.itmedia.jp/33DW

これはちょっと参加してみたい!

話は違いますが、知り合いがアマゾンを騙ったメールにうっかり返信してしまったそうですが、アマゾンに問い合わせたところ、とても親切に対応して頂けたそうです。
勢いのある企業は、働き手も違う?

 

 

Cloud9とDjangoとWebサーバー起動と

Cloud9でPythonベースのWebシステムを構築する場合に使用するWebフレームワークですが、DjangoとFlaskが主なフレームワークのようです。
どちらを採用しようかググった結果、日本語環境が比較的整備されているDjangoにしようと思います。(;’∀’)
cloud9のコンソール画面でPythonのバージョンを確認します。

3.6.10ですね。2.x.系の方は3.x.系にアップグレードしてください。
Djangoの特徴としてプロジェクトごとに仮想環境を作成していくことが一般的な開発手順のようです。
次のコマンドで仮想環境を構築します。

コマンドの先頭に(venv)が表示されている場合、仮想環境に居るようです。
ではインストールしてみましょう。

pipが古いよって警告が出ていますが、Djangoは無事インストールされたようです。

Cloud9には既にMySqlがインストール済のようです。

起動/停止してみます。

はじめての起動時はパスワードなしで起動してください。

文字コードを確認します。

character_set_databasecharacter_set_serverlatin1ですね。
このままだと日本語を書き込もうとしたときにエラーで落ちるので、/etc/my.cnfに設定を追加します。
character-set-server=utf8mb4

mysqlを再起動します

再度キャラクタセットを確認します。

Django用のユーザーとDBを作成します。

権限を付与します。

以上でmysql側の設定は終了です。

ちょっと横道にそれちゃいますが、
仮想環境は複数の開発を行う場合、それぞれのプロジェクトによって必要となってくるライブラリなどが異なってくるため、環境の競合がが発生しないためにプロジェクトごとに仮想環境を作って管理していこうというものですが、Pythonの標準ツールとしてvenvがあります。
venv以外にもvirtualenvなどのサードパーティ製のツールを使用しても仮想環境を作成することは可能です。ちなみに、venvで作成した仮想環境から抜けるには、
>deactivate
を実行します。

では、Djangoのサンプルを起動するところまで頑張ってみたいと思います。

任意のフォルダを作成し、gitからDjangoのサンプルアプリを取得します。

仮想環境を起動します。

サンプルの起動準備をします。

マイグレーションでサンプルアプリのデータベースを作成します。

サーバーを起動します。

ただし、アプリサーバは起動していますが、まだAWSのファイアーウォールとdjangoのホスト制限のせいで外部からアクセスできません。
これからその設定をしていきます。

Cloud9のメニューバーから’Go To Your Dashboard’を選択します。

サービスをクリックし表示画面から、’EC2’を選択します。

EC2のダッシュボードが表示されるので、「実行中のインスタンス」をクリックします。

EC2インスタンスの一覧が表示され、1つしかない場合、選択状態になっています。
画面下部にはその詳細が表示されていますが、そのうち「パブリック DNS (IPv4)」の欄に表示されているのが、URLの中央部(ホスト)になります。
この前に”http://”を、後に”:8000″をつけてアクセスしてください。

次に、セキュリティグループの欄をクリックします。

インバウンドルールを設定するダイアログが表示されるので、「ルールの追加」をクリックし、TCPカスタムを選択し、ポートの欄に8000を入力します。最後に、追加をクリックします。これで、ファイアーウォールの設定画変更され、8000番ポートのアクセスが許可されます。

上記の、「パブリック DNS (IPv4)」の欄に表示されている内容に、前に”http://”を、後に”:8000″をつけてアクセスしてください。

この時点で、Djangoのアプリにアクセスすることができます。
ただし、ホスト制限に引っかかり、下記のようなエラーが表示されます。

DjangoのALLOWED_HOSTSを設定する

まず、開きっぱなしのCloud9のIDEで、アプリケーションのディレクトリにあるconfig/settings.pyを開きます。
その中ほどまでスクロールし、ALLOWED_HOSTSというリストに、先程の「パブリック DNS (IPv4)」の欄に表示されている内容を追加します。
もう一度、:8000で終わるURLにアクセスして下さい。

サンプルアプリが起動しました。

次回は、このサンプルのDBをSQLiteからMySqlに変更したいと思います。

Gitのリモートリポジトリの移動

リモートリポジトリの移動は色々とあるようですが、簡単そうな方法で。
移動先のフォルダを初期化します。

ローカル側に一度リモートリポジトリのクローンを作成し、カレントフォルダをクローン作成先に変更します。

初期化した新しいリモートリポジトリへPushします。

以上です。

動的に読み込んだJavaScriptのソースがデバッグで表示されない

これはそう言われればなんとなく理解できるのですが、最初なんでPF12押しててソースでないんだ???
しゃーないconsole.logでだすか・・・
なんて思ってましたが、debugger;っていれるとデバッグモードであればそこで止まってくれます。
単純に止めたい行の前にdebugger;って入れてください。
そこでブレークします。
本番モードだとブレークしません。
IEでも、chromeでも大丈夫でした。
chromeだとその後ブレーク設定するとそこでブレークしました。
IEだとスルーするような?

AWS Lambda

AWS Lambdaとはなんでしょう?
Amazonの説明によると”AWS Lambda はサーバーをプロビジョニングしたり管理する必要なくコードを実行できるコンピューティングサービスです。 “ということですが、どうやらアプリだけ用意すればそのほかのリソース云々は気にせず、使用量に応じた料金だけお支払いいただければよろしいですよ!ということのようです。
(かなり大雑把な説明ですみません。)
これは、ベンダーはサーバーを持たずに開発だけすればよく、ユーザーもサーバーを維持&メンテナンスする必要がなく、開発費用とアプリの使用頻度に応じて決められた料金を負担すれば良いことになります。(この使用頻度に応じた料金もかなり安価だと思いますし、使用していない時間帯は費用が発生しません。)しかも、無料利用枠があり、1 か月ごとに 100 万件の無料リクエスト、および 40 万 GB-秒のコンピューティング時間が、それぞれ含まれます。
これは小さな会社にとっては、アイデア次第で大化けできる可能性を秘めたツールと言えそうです。

MacへのLibreOfficeのインストール

ここからダウンロードしてインストールして下さい。
同意して無料ダウンロードを開始をクリックします。
許可をクリック
ダウンロードしたdmgファイルをクリックします。
展開したファイルをアプリケーションフォルダへ移動します。
以上でJavaのインストールは終了です。
ここからダウンロードします。
下のLibreOffice 6.3.6のダウンロードボタンをクリックします。
ダウンロードしたファイルをクリックします。
しばらくすると上図の画面が表示されるため、指示にしたがって、LibreOfficeをアプリケーションフォルダに移動します。
LaunchPadからLibreOfficeを起動してみます。
続いて、日本語化を行います。
先ほどの画面の”・翻訳されたユーザーインタフェース:日本語(Torrent,情報)”をクリックすると、日本語化のパッチプログラムがダウンロードできます。
ダウンロードしたファイルをダブルクリックします。
左上のLibreOffice Language Packをダブルクリックします。
開くをクリック
インストールをクリックし、インストールを開始します。
インストールが完了しましたので、LibreOfficeを起動してみます。
※日本語化を確認するためには、一度LibreOfficeを完全終了させる必要があります。
無事表示されました。
以上でLibreOfficeのインストールは終了です。
これで、やっと息子から頼まれた有給管理表を作成できます。

MAC ショートカットキー

久しぶりにMAC miniさわったら、基本のショートカットキー忘れてるし😞

・かな漢字変換
 Control + Spaceキー
 ※今回キーボードにANKER繋げたら@が打てず、システム環境設定→キーボード
  で、日本語キーボードを追加してもなんも変化なし。
  ググったら、スクロールした一番下にある変換学習のリセットボタンをクリック
  したらうまくいくかもってことで、リセットしたら正常に表示されました。

・スクショ
 Shift + Command + 3(or4)キー
 (3は全体、4は部分選択)
 Shift + Command + Control + 3(or 4)キーだとクリップボードにコピー

・LINEの送信
 これは設定で変えられるんだけれど、メニューバーのLINE→設定→トーク
 で今はCommand + Enter

完全に自分のためだけになってる💦

第35期決算

2019年度の決算処理が終了しました。
皆様のご協力、ご尽力によりまして、利益を上げることができました。
ありがとうございました。
今期も宜しくお願い致します。

HPにアクセスできず

WordPressを使用して、HPを作成していましたが、原因不明のエラーによりダッシュボードすら入れなくなり、やむおえずインストールからやり直すことに。
応急処理でWordPressを継続使用してますが、WordPressのロゴがフッターに入るのが煩わしい(※)し、近々Pythonで書き換えたいと思います。
でも、この復旧したHP、数時間でできましたので、もしWordPressでもよろしければ、格安でHP製作承ります!(その場合はきちんとバックアップ採取します)

(※)ロゴ、消せますね
https://fox-wp.com/credit-theme-name-hide-delete-wordpress/