2024年1月23日火曜日

miniDV、DV、HDVテープから無料で取り込める(キャプチャー)ソフト

2024年1月21日時点の情報です。

もはや i-Link (IEEE1394、FireWire)を繋げられる環境、そしてまともに動作するビデオカメラが有ること自体希少かと思いますが、そこに加えてカムコーダーから DV をキャプチャーできるソフトも軒並み消えていっています。

このページでは執筆時点で無料で利用できたソフトを紹介します。

PowerDirector 364 無料体験版

しょっぱなから胡散臭くなりましたがw
実は mpeg 取り込みだけなら PowerDirector 364 の無料体験版で可能です。
もちろん mpeg 取り込みだけならウォーターマークや制限などはありません。

キャプチャー方法が少しわかりにくいので解説します。(ドキュメントにも書かれてない感じだし……)

まず、メディア画面の「録画/録音」ボタンを押し、出てきたメニューから「Web カメラから録画」を選択します。(一見間違っているようですがこれが正解ですw)

すると各種デバイスからの取り込み画面が開くので「DV カムコーダーからの取り込み」または「HDV カムコーダーからの取り込み」のボタンを選択してください。(あ、もちろんカメラがすでに接続されて電源ONである必要があります)

あとはまぁなんとなくやり方は分かるかと思いますので頑張ってください(酷)

2024年1月21日日曜日

磁気浮上:ネオジム磁石を回転させるだけで擬似ピン止め効果

まずはこちらの動画をご覧ください

回転するネオジム磁石に、別のネオジム磁石を近づけるとピン止め効果のように保持させることができるようです。

用意するもの

ほとんど100均(DAISO)で入手できます。
  • ネオジム磁石
    • フローター(浮く側)用の磁石
      • 例:100均のネオジム磁石:サイズ:直径0.6×0.3cm
    • ローター(回転する側)用の磁石
      • 例:0.6cm×0.6cm×0.6cm
  • ルーター(ハンドグラインダー・リューターとも言う)
  • DCモーター
    • 100均の電動字消しを分解して用意した
      • 他にも100均のおもちゃやカプチーノミキサーやハンドミキサーなどからも取れると思う。
  • セロハンテープ

やり方

  • ハンドグラインダー(リューター・ルーターとも言う)にネオジム磁石を取り付けて回転させる方法が一般的。
  • ローター(回転する側の磁石)の向きが重要。
  • フローター(浮く側の磁石)はN極側が保持される。S極側では遠のくだけ。回転方向によるのだろうか?
    • ローター側をほんのわずかに傾斜させることが重要だった。
      • 傾斜していないと保持できず、傾斜させすぎると弾いてしまう。回転数に合った角度があるのかも。
      • 傾斜させた結果、フローター側に近い極によって保持される側の極が決まると思われる。
  • フローターをアルミの上に置くと、過電流により振動が軽減され保持されやすくなる。

参考

2021年12月4日土曜日

OracleCloud に Node-RED をインスールして無料で使い倒す方法

OracleCloud の太っ腹すぎる Always Free Cloud Services(期間の制限なく使用できるサービス)で構築した VM へ Node-RED をインストールする方法です。

さも自分で考えたかのような書き出しですが、ほとんど公式ブログの手順に沿って作業しただけです🤤

Installing Node-RED In An Always Free VM On Oracle Cloud (えいご)

2019年の記事なので、今(2021年)とは少し異なる部分もありますがやることは同じです。

そのため基本的には、指示通り設定すれば OK なのですが、私が実際にやってみて、気がついた点がいくつかあるので、ここにメモしておきます。

あと、ついでに HTTPS 化ポート転送もやります。

ちゃんと Oracle Linux を選びましょう。

ついつい見知った Ubuntu を使いたくなるかもしれませんが、指示通り(?)Oracle Linux を選択しましょう。

もし Ubuntu を選択した場合、以降の手順が色々と変わってきてしまいます。
もし Ubuntu でないと残尿感があるという方は、Ubuntu で構築した方もいらっしゃるようなので、そちらを参考にしてください↓

NODE-REDをORACLEの無料VPSサービスで使う

インストールスクリプトの違いに注意!

Oracle Linux に Node-RED をインストールする際に使用するインストールスクリプトは、Ubuntu や Raspberry Pi OS(旧 Raspbian)へインストールする際に利用するインストールスクリプトとは、パスが違う点に注意してください。

ブログの指示通りに、

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/rpm/update-nodejs-and-nodered)

を使用しましょう。

一見、Debian 系と同じに見えますが、微妙にパスが異なります
Oracle Linux は Red Hat ベースなので、Debian 系のインストールスクリプトは使えません。

インストールスクリプトについては公式の「Linux Installers for Node-RED」をご覧ください。
あと公式の「ローカルでNode-REDを実行する」も見たらいいかも。

もし外部から繋がらなかったらポート設定してみて。

これはもしかしたらやらなくても良い手順なのかもしれないのですが、指示には書いてないのに私はうっかりやっちゃったので、一応書いておきます。

なお、Oracle Linux 7では、デフォルトのファイアウォール・ユーティリティは firewalld (firewall-cmd)です。(参考:Oracle® Linux 7セキュリティ・ガイド
iptables では無いので注意!

VM インスタンスに対して、

sudo firewall-cmd --permanent --add-port=1880/tcp

した後、

sudo firewall-cmd --reload

して、ポート 1880 を有効にしました。

このドキュメント「Free Tier: Install Node Express on an Oracle Linux Instance」の「4. Create a Node Express Application + Install and Set up Node Express」を参考にしました。

てか、https 化する手順でも 80 番に対して同じようなことしてるので、やっぱ必要な手順だと思う。

リンクされている https 化の手順は古い

このページね。

Free SSL Certificates In The Oracle Cloud Using CertBot And Let's Encrypt

certbot-auto はもうサポートされていません。

ポート 80 番を開放する方法以外は参考にしていない。

は?んじゃどーすんのさ。

私が勘で行った方法でよければどうぞ↓

Oracle Linux で動いている Node-RED の HTTPS 化手順

※ そもそもドメイン側の設定は別途済ませておきます。
※ Certbot で Let's Encrypt から証明書を発行してもらう想定です。

まず snap をインストールします。
参考にしたのはこちらのページ「Installing snap on Red Hat Enterprise Linux (RHEL)

sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

sudo yum update

なんか指示が出たので、それに従って再度 update

sudo yum update --skip-broken

何度か確認させられるけど、Complete! した。

sudo yum install snapd

インストールできた。

sudo systemctl enable --now snapd.socket

sudo ln -s /var/lib/snapd/snap /snap

必要なのか分からないけどページの指示に従いやった。
そして再起動。

ここからは、Certbot の設定。

参考にしたのは「Web Hosting Product on CentOS 7」の組み合わせ。

sudo snap install core; sudo snap refresh core

コアなんて無いとかエラー出る。まぁ無視して次。

sudo snap install --classic certbot

インストールできた。

sudo ln -s /snap/bin/certbot /usr/bin/certbot

必要ない気もしたけど指示に従ってやった。

sudo certbot certonly --standalone

メールアドレス入力、利用規約に同意、メール送っていいかの確認、ドメインの入力をやった。

sudo certbot renew --dry-run

テストも成功した。

ここからは Node-RED の設定。

いつもの、

~/.node-red/settings.js

を編集します。
具体的な方法は「セキュリティ」のページを参照。

/** Option 1: static object */
https: {
  key: require("fs").readFileSync('/etc/letsencrypt/live/[ドメイン]/privkey.pem'),
  cert: require("fs").readFileSync('/etc/letsencrypt/live/[ドメイン]/cert.pem')
},

の項目のコメントを外して、秘密鍵と証明書へのパスを入力して有効にします。

[2024年4月8日追記:ここから]cert.pem (サーバー証明書のみ)では証明書チェーン(認証パス)が不完全なのでルート証明書、中間CA証明書、サーバー証明書が全部含まれている fullchain.pem を指定するほうが確実です。
例えば私の場合、cert.pem では Android 11 以降の端末から WebSocket 通信ができないなどの問題が発生しましたが fullchain.pem に変更することで解決することができました。[2024年4月8日追記:ここまで]

ただし、

/etc/letsencrypt/live/
/etc/letsencrypt/archive/

のパーミッションは、0700 になっていて Node-RED が読めません。
なので、

sudo chmod 0755 /etc/letsencrypt/live/

sudo chmod 0755 /etc/letsencrypt/archive/

して、さらに所有グループも自分(opc)に変更して↓

sudo chgrp opc /etc/letsencrypt/live/[ドメイン]/privkey.pem /etc/letsencrypt/live/[ドメイン]/cert.pem

Node-RED が読めるようにする必要があります。

以上でサーバーを再起動すれば、HTTP 化も完了です。

おしまい🤤

[2021年12月6日追記]

ポート 443(HTTPS)から 1880 へ転送したい

「https://ドメイン:1880/」ではなく「https://ドメイン」でアクセスしたいんじゃ!という場合の手順です。

まず今までの手順同様、ポートの設定をおこないます。

次に、firewalld で 443 へのアクセスを 1880 へ転送するようにします。

sudo firewall-cmd --permanent --add-forward-port=port=443:proto=tcp:toport=1880

そしたらリロードします。

sudo firewall-cmd --reload

これで :1880 なしでもアクセスできるようになります👍

めでたしめでたし🤤

2020年7月19日日曜日

Node-RED での CORS 対応まとめ(IBM Cloud版も対応)

CORS とはブラウザに「No 'Access-Control-Allow-Origin' header」とか言われちゃうアレです。
まず普通に GET とか multipart/form-data での POST なら

msg.headers = {};
msg.headers["Access-Control-Allow-Origin"] ="*";

って function ノードに書いてレスポンスすれば OK!👍

でも、application/json を POST したいんじゃ!ってなるとプリフライトリクエストが発生して、上記だけでは「No 'Access-Control-Allow-Origin' header」って言われちゃいます。
しかも、Node-RED 上ではリクエストが来ているのかも確認できません。

この場合は POST のレスポンスに Access-Control-Allow-Origin を付与するのではなく、POST の前に発生する OPTIONS メソッドに対して Access-Control-Allow-Origin を付与させる必要があります。

でも、Node-RED の HTTP in ノードには OPTIONS はありません。
なのでエディター上ではリクエストが確認できません。

これに対応するには、Node-RED の設定ファイル(setting.js)を修正する必要があります。
ちなみに、Node-RED IBM Cloud Starter Application の場合は、bluemix-setting.js です。

そのファイル内にコメントアウトされている httpNodeCors という記述があるので、それをコメント解除します。
IBM Cloud で bluemix-setting.js の場合はそもそも記述がないので、

var settings = module.exports = {…(略)…}
の中に

httpNodeCors:{
  origin:"*",
  methods:"GET,POST,PUT,DELETE"
},

とか追記しときゃ OK です。(methods に OPTIONS は無くていい)
まぁ Continuous Delivery 利用するか CLI でなんやかんやして push とかしないとダメなんでめんどいですが。
もしかしたら Cloudant 内の settings ドキュメントの編集でも対応できるかもしれませんので、誰かチャレンジしてみてくださいw

修正したら再起動して解決ですヤッタネ☆

CORS とかプリフライトリクエストについて詳しく知りたい方はこちら。

2020年6月30日火曜日

itch.io で日本語に対応しているゲームの検索方法

itch.io で日本語対応のゲームを検索したいときは、検索画面の URL の最後に /lang-ja を追加すれば OK ですヽ(=´▽`=)ノ
例えばこんな感じ。

検索画面の絞り込みで操作できるといいんですけどねぇ…
今のところその機能はないようです。

2019年11月21日木曜日

GDevelop 5 でゲームを作ってみた感想

GDevelop に関する記事をまとめた別ブログを用意しました。
GDevelop に関する情報をまとめたブログ
最新情報などはこっち↑を見てね。

以下は、かなり古いバージョン(2019年頃)の情報です。

GDevelop 5 を使ってみて、気が付いた点の備忘録。
こんなゲームを作りました ⇒ BomBomDig

地味便利機能
  1. プレビューボタンを右クリックすると表示されるメニューから、開始シーンを固定できる。
  2. イベントのグループやコメントは右クリックから Edit で色を変えることができる。
  3. 「条件を追加」「アクションを追加」を右クリックするとショートカットメニューが表示される。

Pi (円周率)が無い!
Else が無い!
これタイルマップじゃない!ただのタイリングだ!
反転できない。エフェクトにフリップはあるが判定やポイントは反転しない。(ベータ版では対策済み)解決済み

条件でオブジェクトを絞り込んでも、そのアクションがオブジェクトの数だけ繰り返されるわけではない。
例えば対象を3つに絞り込んで、アクションで score + 1 としても結果は3ではなく1。

条件というより対象の絞り込みだと考える必要がある。
マスクオブジェクトが上に乗っていないボタンに限定したい場合、
Not mouse on マスクオブジェクト
and
mouse on ボタン
では、マウスが乗っていないマスクオブジェクトとマウスが乗っているボタンに絞り込まれるだけなので意味がない。

衝突マスクのないスプライトを消そうとすると止まる。

シーンエディタ上でオブジェクト変数を変更した直後に、別のオブジェクトを選択すると変更が反映されない。一度何もないところをクリックする必要がある。

Tweenが機能しない。
1つもステージに配置されていないオブジェクトを複製してTweenを設定しても機能しない。

1つもステージに配置されていないオブジェクトをマウスオン判定しようとしても機能しない。

テキストの幅指定ができないので一行だと右寄せ・中央寄せの意味がない。
エディターと実行環境で文字の位置がずれる(フォントによるかもしれん)

Android アプリのバージョンコードはバージョン番号が変換される。
1.0.1⇒10001

SubStr()は他の言語のように開始位置をマイナスにして末尾から数える方法は使えない。

シーンタイマーなどは一時停止するだけで生成される。
条件で確認するだけでも生成されるっぽい。 

Center Point を変更すると、当たり判定がおかしくなる。
報告済みだが対応されている気配なし。

条件の「& および」で反転条件にしても効果がない?

条件の「ではない」を利用すると対象のオブジェクトが存在しないのに実行されるイベントを作成することができてしまう。

三角関数(三角比)の翻訳がゴミ
正弦(サイン sine)、式は sin()
余弦(コサイン cosine)、式は cos()
正接(タンジェント tangent)、式は tan()
余接(コタンジェント cotangent)、式は cot()
正割(セカント secant)、式は sec()
余割(コセカント cosecant)、式は csc()

イベントの検索は繰り返しの設定箇所にはヒットしない。

Z Order が同じ値の場合、あとから生成されたインスタンスが下になる。
エディター上では、あとから生成したインスタンスが上になるが、再生時には下になる。

エクスポートされた Windows (自動インストーラーファイル)は、実行すると問答無用で
C:\Users\[ユーザー]\AppData\Local\Programs\
にインストールする凶悪仕様。

BB テキストのワードラップは半角スペースの箇所でのみ有効。
日本語や全角スペースでは改行しない。

オリジナルの衝突マスクと独自の衝突マスクが重なるとエラーになる?

2019年4月8日月曜日

ドラッグ&ドロップ(ノンプログラミング)でアプリが作れるサービス2019年まとめ

ビジュアルプログラミングでアプリが作れるサービスをまとめてみました。
いずれもドラッグアンドドロップで、画面設計からプログラミングまでできるので、とても簡単(?)にスマホアプリが作れます。
Monaka に挫折した方や、Buildy、Yappli、アプスタ、BRAND などでは実現できないアプリを構築したい方向けです。

なお、2019年4月8日時点での評価です。

Thunkable

https://thunkable.com/
iPhone と Android の両方で機能するアプリを作ることができます。
無料版だと作成しているもの(プロジェクト)が Thunkable Public Gallery に公開されるという変った料金体系です。
つまり無料版で作られたものは、誰でも自由にプレビューしたりコピーしたりできます。
あまりパーツの種類は多くないですが、基本的なことから Firebase との連携、マネタイズは一通り可能です。

ただ、コミュニティーが、新しい Thunkable X(上記)と古い Thunkable Classic の記事が混在していて(タグ分けはされている)ちょっと混乱します。
個人的にアイコンフォントの利用が、まだできない点が残念です。(Classic だとできる)

AppyBuilder

MIT App Inventor の派生サービス。そのため Android のみです。
その分、利用できるパーツの種類が多く、画面設計や機能の自由度は高いです。
さらに Firebase との連携やマネタイズなども一通り可能な上に、完全に無料という点が驚きです。
ただちょっと全体的に古臭いw

Kodular

こちらも MIT App Inventor の派生サービス。やっぱり Android のみです。
AppyBuilder とできることに大差はありませんが、2017年にスタートしたサービスなので流行りの(?)画面構成などが作りやすいです。
当然のように無料で逆に怖いw

Composer 3

https://www.appgyver.com/
旧 AppArchitect かつ旧 Composer という、ややこしい過去を持つサービスです。
iPhone と Android の両方に向けたアプリを出力できるようですが、正直、利用できるパーツの種類が少なく、上記のサービスに比べると機能面で劣ります。
また、無料試用では実機テストができないようです。というかドキュメントが古い、または不足している印象です。
チャットでお話を伺ったところ、B2E(従業員向け)アプリにフォーカスしていて、最新版がリリース間近とのことです。

stencyl

http://www.stencyl.com/
これは2Dゲーム作成ソフトウェアです。
無料版では Flash や HTML5 での出力が可能です。
スマホアプリとして出力するには年間契約の購入が必要です。
ゲーム作成に特化していますが、それ以外のアプリを作ることも可能です。
ただ、文字入力や日本語表示に難ありw

Ionic Creator

既に完全に放置されているサービスです。おすすめできません。
なお、本家の Ionic フレームワークそのものは順調に進化しているようですw

その他

諸々の理由で評価はしていませんが、以下のようなサービスもあります。

buildfire

店舗向けのアプリ作成サービス。国内サービスを利用したほうが良い。

yapp

基本有料。国内の yapp.li というサービスとは別物。

Appy Pie

主に店舗向けのアプリ作成サービス。機能を選択するだけで作れたりする。

appery.io

基本有料。全然ノンプログラミングじゃないw

applican

今回紹介する唯一の国内サービス。全然ノンプログラミングじゃないw

以上!

おしまーい。