※後日書きます
そういえば「カワサキバイクマガジン」デビューしてました(・∀・) pic.twitter.com/YbYrIDihIc
— 勝部麻季人 💦👏 (@katsube) December 31, 2020
※後日書きます
そういえば「カワサキバイクマガジン」デビューしてました(・∀・) pic.twitter.com/YbYrIDihIc
— 勝部麻季人 💦👏 (@katsube) December 31, 2020
アプリを起動すると自動的に最新版があるか確認し、もし更新されていれば自動的にバージョンアップしてくれる機能を実装します。
いくつか方法はあるのですが今回は
という方向でまとめていきます。
続きを読む
今回はインターネット経由で配布したmacOS用のアプリが安全であることを証明するための作業を行います。
ぶっちゃけ面倒です←
あとmacOSがないと作業できませんのでWindowsユーザーの方は(お小遣いを)準備してから挑んでください。
続きを読む
開発中はconsole.logで見れば良いのですが、ファイルにも情報を記録しておきたい場合にelectron-logを利用すると非常に簡単にログを記録することができます。
const log = require('electron-log');
log.info('Hello, log');
log.warn('Some problem appears');
以上です。めっちゃシンプルじゃないですかw?あとはOSによってログを保存するのによく利用されるディレクトリへ自動で保存されます。
今回はelectron-logのもう少し詳しい使い方を見ていきます。
続きを読む
前回はファイルダイアログで読み込みを行いましたが、今回は保存を行います。
今回もOSの機能を利用するダイアログの表示とファイルを読み込む部分はメインプロセスが担当し、それ以外の部分をレンダラープロセス(Chromium上で動いている箇所)が行うことにします。レンダラーでもOSの機能を利用できますがメインプロセスに任せた方が役割分担がはっきりして個人的に気持ち良いためです。
今回はファイルダイアログでファイルを指定しその内容を読み込んでみます。
Electronで実装するにはいくつかのパターンがありますが、ここではOSの機能を利用するダイアログの表示とファイルを読み込む部分はメインプロセスが担当し、それ以外の部分をレンダラープロセス(要はChromium)が行うことにします。レンダラーでもOSの機能を利用できますがメインプロセスに任せた方が役割分担がはっきりして個人的に気持ち良いためです。
アプリの顔である「アプリアイコン」を設定します。
今回はelectron-builderを利用してビルドする際の内容です。
アイコン画像を設定するのは非常に簡単なのですが、個人開発しているプログラマー的には画像を用意するのが一番ハードル高いですねw
続きを読む
Electronでアプリの「メニュー」を作成します。
基本的にはElectronのドキュメントの内容に沿って、Electronに予め用意されている機能を利用しWinodwsとmacOSの両方に対応するところまでを取り上げます。
続きを読む
Electronでユーザーの言語環境を取得します。
日本国内で日本人向けにのみ公開する場合は何も気にせず日本語で実装すれば良いわけですが、AppStore(Mac)やMicrosoftStore(Windows)で販売を計画している場合はやはり多言語対応したくなりますよね。
続きを読む
ここ数日、SSHへのアタックが急激に増加した関係で特定のIPアドレスからだけログインできるよう対応しました。結論から言うと以下の設定を行うだけです。
$ sudo vi /etc/hosts.allow
sshd: (許可したいIPアドレス)
$ sudo vi /etc/hosts.deny
sshd: all
/etc/hosts.allowで許可を、/etc/hosts.denyで拒否の設定を行います。これはSSHだけではなく「TCP Wrapper」を利用しているサーバソフトウェアは同じ要領で設定が可能です。
逆にブロックしたい場合には以下のように設定します。
$ sudo vi /etc/hosts.allow
sshd: all
$ sudo vi /etc/hosts.deny
sshd: (拒否したいIPアドレス)
IPアドレスは半角スペースで区切り複数同時に記述することや、サブネットマスクなどで指定することもできます。
sshd: 192.168.1.1 192.168.1.2
sshd: 192.168.1.1/255.255.255.0
以下のようにIPアドレスの途中までを記述した場合は前方一致となります。
sshd: 192.168.1.
IPアドレスだけではなく.example.com
など接続元のドメインで許可(拒否)もできます。以下の例では後方一致となります。ただしドメインを指定した場合はIPアドレスのみの場合と比べてドメインを調べる処理が加わりますので多少重くなります(よほど大量に来なければ気にするほどではありませんが)
sshd: .ocn.ne.jp
行末にバックスラッシュ()を付けると途中で改行することも可能です。
sshd: 192.168.1.1 192.168.1.2 \
.ocn.ne.jp
いずれもファイルに保存した瞬間に設定が適用されるため、間違えた設定をしてしまうと自分でも二度とログインできなくなる可能性があります。設定する際には十分に注意してください。
一言で言えばGulpのようなタスクランナーっぽいことをmacOS上でやりたかったのです。
「Gulp入れればいいじゃん」という話もありますが、今回はファイルが更新されたら特定のコマンドを実行したいだけだったので、わざわざNode.jsの環境を整えてJavaScriptをガリガリ書くのはちょっと面倒だったんですよね。
macOSではファイルが更新されたか監視する際にfswatchを使うのが鉄板のようなので、こちらを利用します。
※この記事は専門学校の講義用に作成されたものです
今回はLinuxを利用する上で避けては通れない「パーミション」について取り上げます。
今後Linux上でプログラミングを行ったり、サーバ運用をする場合には必ずこのパーミションを意識して行う必要が出てくるためです。もしいい加減なパーミションの設定をしていると、コマンドを間違えて実行した際の被害の拡大を招くだけではなく、悪意のある第三者に攻撃の糸口を与えてしまいかねません。
パッと見は地味ですが非常に重要な項目と言えます。
続きを読む
Redmineの標準のガントチャートは一覧表示されたものを眺める以上のことができません。そんな時に使うのが「EasyGanttプラグイン」。ドラッグ&ドロップでチケットの期間や依存関係が設定できる優れ物で、機能は限定されてしまいますが無料でも利用できます。
非常に便利なのですが、海外製ということもあり日本の祝日にはデフォルトだと対応していません。そのまま使っているとうっかり祝日も工数に含めてしまいそうになるのでViewCustomizePluginを利用しこの問題に対応します。
2021年末までの祝日一覧も掲載しましたのでコピペしてご利用ください。
続きを読む
このブログはCloudFrontからLightsailで作成したオリジンを参照する構成になっているのですが、最近オリジンに直接リクエストが来ることが増えました。間違えてオリジンのURLを返している可能性もあったのでログを解析してたのですが、大方の予想通りセキュリティホールを探っている物ばかりでした。
めちゃめちゃ気持ち悪い(´・ω・`) オリジンへのリクエストはCloudFrontからしか来ないと割り切って、80/443番へ直接来るリクエストはすべて拒否することにしました。
ここではApacheの設定を掲載しますが、同様の手法でnginxなど他のWebサーバーでも利用できると思います。