ku-sukeのブログ

Just another hatena blog

絶対に途切れさせない子供のオンライン授業セット

 自分の方は何とでもなるのだけど、子供の塾などオンライン授業が本格化するにむけて、できるだけ授業中の中断を防ぐ仕組みを考えてみた。

 

1.機材は5万円以下で。ChromebookiPadが安定

 子供用なので、扱いが雑になる+画面が小さすぎると板書が見にくいという点を考慮すると、あまり高価でなく、安定して動作し、そこそこの画面サイズという点が求められると思います。

 

 5万円以下の価格だと、PCのスペックはしょぼくなるので、Windowsだとかなり気を使って運用しないと安定動作しない可能性があります。そこでChromebookを我が家では使っています。14インチで約5万円でした。ZoomもWeb版ですが動作します。

※追記:ZOOMのバージョンアップにより処理負荷が高まったのか、40分程度でフリーズすることが増えました。CPUが一定以上の機種を選ぶ必要がありそうですが、そうなると5万円では難しいかもしれません。

いまAmazonみたら結構売り切れていたので「日本語キーボード」の機種を選ぶとよいでしょう。

Amazon.co.jp: chromebook 日本語: パソコン・周辺機器ストア

 

もうひとつの選択肢はiPadです。無印というかスタンダードモデルは約4万円弱とリーズナブルで、こいつに

  • キーボードカバー
  • Bluetoothマウス
  • lighting+USBドングル

あたりを追加で買っても5万円前後で収まると思います。

 

Apple iPad (10.2インチ, Wi-Fi, 32GB) - シルバー

Apple iPad (10.2インチ, Wi-Fi, 32GB) - シルバー

  • 発売日: 2019/10/02
  • メディア: Personal Computers
 
Apple Lightning - USB 3カメラアダプタ

Apple Lightning - USB 3カメラアダプタ

  • 発売日: 2016/03/23
  • メディア: Personal Computers
 

 

 

マウスは最近対応した機能なので、子供向けにはなくてもいいです。親のパソコンみたいにマウスほしいというので・・・

もし板書が10.1インチでみにくい場合は、lightning - HDMIドングルでテレビと接続すれば大画面にミラーリングして映すことができます。ただし後述の有線LANと併用できる製品はなさそうなのでその点はご注意ください。

 

2. 安定した通信には有線LANで妥協する

 比較的高価なWiFiルーターを導入している我が家でも、週に1,2分間切れることがあります。集合住宅などでは、ほかの家の電波が混線したり、なかなか「絶対に」とはいきません。そこで妥協して有線です。

どうせ家は教材の山で散らかっているので(?)、部屋の中が多少不格好でもよいでしょう。

 

ケーブルの長さは5mを買いましたが、家の壁に沿わせて配線したい場合などは、直線距離の3倍くらいで購入しておくとよいでしょう。

 

現状我が家はChromebook+USB-LANアダプタ+5m有線LANで、安定して授業をつなぐことができています。親の会議は切れてもチャットで連絡したりリカバリ手段が用意されていますが、こどものオンライン授業の場合、先生側も多人数のサポートが回らない可能性がありますので、できるだけ安定した環境で参加させたいですね。

OSSに効率的に寄付したいと思ったメモ

 いまや業務上では便利なOSSライブラリとかをたくさん使わせてもらっているんだけど、そのほとんどは無償のボランティアに支えられて作られています。特に海外のメジャーな製品の翻訳とか、日本語ロケール対応なんかは初学者に限らず日本人の開発環境に多くの影響を与えています。ぼく個人でもVueを1年ちょっとサポートしてます。

 

そんな活動に少しでも貢献したいと考えているのですが、現状クレカでぽーんと寄付する(Github sponsers)ものなどは、基本的に税制優遇がありません。一方で、赤十字や特定のNPOに寄付したり、公益財団法人?みたいなものに寄付すると税控除があります。ようはふるさと納税みたいに、寄付した分の何割かが所得税などが引かれてお得なわけです。倍プッシュできますね。

 

www.nintei-torou.net

OSSの活動は公益性が非常に高いと考えていますが、このような寄付のしくみはキチンと会計報告がなされている団体でないと税制優遇を受けることができません。その運営の費用とコストを考えるとなかなか難しいなと思うわけです。

 

マイ基金というのを見つけた

で、いろいろ調べていたところ「マイ基金」という制度を見つけました。イニシャルで100万円以上基金に拠出すると、税額控除対応の助成基金を作れるというものです。手数料10%程度払うだけで、運営が丸投げできてよいのではと思い資料を取り寄せてみました。

kosuikyo.com

 

残念ながら、(おそらく不正を防止するためでしょうが)助成先の選定にはかかわることができないようでした。また、助成先も個人または任意団体となり、助成金に応募する手間などがかかります。OSSに貢献するクラスのエンジニアであれば、たとえば年間10万円の活動資金のために多大な事務作業をしてまで応募することはなさそうだし、本名を公開したくないとか、そもそもユーザ会として活動してるから個人でもらうのかよみたいな点があります。

 

というわけで、税制優遇を受けながらOSSに金銭貢献するのは難しそうだなというのが現在のぼくの見解です。それこそIssueHuntみたいなものもあるけれど、お金を払う手段というよりも受け取る側の(会計の透明性や所得税も含めた)仕組みづくりが重要になる気がします。

 

色々ハックすればNPO作って「広告費」の名目で企業からお金をうけとり各OSSコミッターに「業務委託費」を支払うみたいなスキームはできそうですけどね。イベントカンファレンス支援とか。広告費は多くの場合企業も個人も損金で落とせるので、悪くないかなとは思っています。

どう設計する?.orgみたいなのをやってみたい

  以前会社のブログで、「壁打ち」に関する記事を書きました。法人サイト更新してなくて恥ずかしいのですが。

www.uplucid.com

 

ひさしぶりに思い出す機会があり、壁打ちをもっと職種として体系的に扱えないのかと考えたところ、システムに限ればソリューションアーキテクトが近いのかなと思いました。

AWSが考え出した概念なんですかね。

https://zine.qiita.com/job-offer/aws-solutions-architect/

 

この記事ではいくつかに分類されているようですが、ようは顧客のビジネスをヒアリングし、その解決策(ソリューション)のアーキテクチャを作ってくれる人(設計者)とここでは扱います。(より込み入った技術アドバイスは除くものとします)

 

メルカリみたいなの作りたいんだけど

 

 ○○みたいなの作りたい!というのはいろんな現場で起こることです。しかし適切な壁打ちができなければいろんな意味で犠牲者がたくさん出てしまいます。ここはちゃんとした設計をしなければなりません。まずは予算を聞いてみましょう。

 

うーん 20万円くらいかなぁ。

 

 つぎに相手を張り倒しましょう。ではなく、20万円の原資でどのくらいのビジネスを考えているのか聞いてみたり、本当にやりたいことは何なのか聞いてみたり、メルカリと同じものを作ろうとしたら小規模でもこの高騰した東京のエンジニア相場だったら数千万はかかりますよと優しくお伝えしましょう。

 

 などと脳内シミュレーションで考えていたら、やはりこのような知識は形式知になっておらず、よくないなと感じました。

例えばおなじファイル共有システムを作るのでも、

  • さくらの共用レンタルサーバにありもののスクリプトを動かすのと
  • 高度な暗号化に対応し地理的に分散コピーされてるのにチョッパやでアクセスできて監査にも耐えうるやつをクラウド使わず自前構築

だと値段が4,5桁変わってくる可能性があるわけです。このように「言外にありそうな要件を過去のパターンマッチから補完する」「顧客が本当に欲しかった程度のものを過不足なく提案する」「運用のことまで考えられている」「そもそも作る必要あります?」「無理なものは無理という」みたいな知識は、なかなか教えることが難しいなと感じています。ビジネススクールケーススタディにも近い感じがしますね。

もし良い書籍があればおしえてください。

 

どう書く?orgの設計版みたいなやつをやってみたい

 

 ここからはめちゃくちゃ思いつきなんですが、特定の界隈で一世を風靡した「どう書く?org」というコードゴルフのサイトがあったのですが(今調べたら別の方がリニューアルしてた)それの設計版ができないかなと思ってます。

 

 たとえば「メモアプリが作りたい」というふわっとしたお題があった時に、シチュエーションを考えながらいろんなバリエーションをみんなで書くわけです。

 サーバは共用?クラウドコンテナ?サーバレス?アプリはWebのみ?フルネイティブ?Expoみたいなプラットフォーム?もしかするとエンプラ要件ならSalesForceで作るべき?とかとか・・

 

 自分が得意な領域が出ますよね。「ある程度パブリックにすることでSEO流入を期待できる設計にしよう」とかいうマーケが好きな人、いやいやパブリックにすると著作権の問題が出るから利用規約でしばってパトロールする管理画面が必要とかリーガル強い人みたいに。

 

 コードゴルフと違って?ものによっては結構な工数を回答に使うので、最初は仲間内でわいわいやってみるのも面白いかもしれない。 VPoEとかSAのみなさん、いかがでしょうか。

 

プロダクトの「使い始める」価値と、「使い続ける」価値

 プロダクトづくりの現場でふと昔のことを思い出して、ちょっとこれはブログに残しておこうと思ったのでメモ。おおむね自分用です。

 

○○の課題を解決するプロダクトづくり

リーンとかプロダクトづくりの手法が普及してきたことによって、プロダクトづくりの現場は「○○な顧客の課題を解決する~~」みたいな会話をすることが多くなりました。とても良いことですね。

プロダクトアウトとか自己中心的なプロダクトづくりからみると、それはもう大幅な進捗があってよいのですが、一方でSolution Problem Fitといいますか、課題に対する打ち手を考えるときには2つに分けて考えるといいんじゃないかという話です。

 

あまり使われなかったけど導入につながった機能

 一番思い出深いのが、某社で店舗向けサービスをやっていた時の頃です。B2B2C的なかんじで一般のお客さんが使うための店舗に設置する製品なのですが、営業さんが店舗にプレゼンに行くと、とある新機能がプレゼン受けがよかったと報告されました。

 確かに技術的に目新しいので他社にはないのですが、まぁそこまで便利かといわれると個人的には普通かなという機能でした。どちらかといえば「顧客の課題を解決する」機能としては集計やレポート機能が主だったのですが、そちらはあまりピンと来ていないようだというのです。

 しかし、一度使い始めると、受けの良かった機能の利用率は3割以下で「そこまで便利じゃないね。」という評価でしたが、メイン機能の方は満足されて利用を継続いただけていました。

 

本質的な価値にたどり着くための客寄せパンダ

 客寄せパンダ、と書いてしまうと身も蓋もないかもしれませんが、新規サービスを考えるときに本質的な価値をしっかり設計したら、そのあとで客寄せパンダ的な「目玉機能」についても考えてみるとよいと思いました。

 なぜなら、本質的な価値というものは継続して初めて分かることも多く、そこまでたどり着かないと価値を感じることができないのです。もちろん、そのために広告を打ったりすることもありますが、機能や体験設計の段階においても「使い始めるときに感じる価値」や「インストールして最初の15分で感じる価値」を定義してみるとよいでしょう。

 

関連して「IA的なデザイン」と「行動を引き出すデザイン」あるいは「気持ちを動かすデザイン」についてもどこかで考察したい。

 

OrangePi のNAS構築いったん完成(NextCloudPi)

あらすじ

自宅にAdBlockdnsサーバを立てたくなったku-sukeは、ついでに古くなったLinkStationのリプレースを検討する。いろいろ方式はあるがどうもNextCloudPiがよいようだ。ハードはOrangePiとWDのSSDを買ってさっそく構築してみた。

blog.ku-suke.jp

前回の記事の続きです。自宅の環境すべてで自動的にAdBlockされるのは意外といいものです。スマホゲーム内のインターステーシャル動画とかもほとんどでなくなりました。

 

さて、がんばって200GBくらいバックアップを取ったのですが、よくよく調べたところファイル名が日本語のところが見事にぶっ壊れており、躊躇なく初期化しました。やりなおしです。

調べてみるとLinkStationにはUSB接続の外部ストレージにバックアップする機能があり、ext3に対応していました。これ幸いとssdext3に変換し、標準機能を使ってバックアップしました。速度は遅いらしく4-5時間かかった気がします。

バックアップ済みのssdをorangepiにマウントし、ext4に変換します。

$ sudo umount /media/ssd
$ sudo tune2fs -O extents,uninit_bg,dir_index,extent,flex_bg,huge_file,dir_nlink,extra_isize /dev/sda1
$ e2fsck -fDC0 /dev/sda1

一部修復も行われ、無事読み書きが確認できたので、UUIDを調べてfstabに記載します。

UUID=dc33d819-3add-XXXX-XXXX-7a88712d8311 /media/ssd ext4 defaults 0 0

このバックアップデータは、普段使わないため、NextCloudとは別の領域に格納し、宅内環境でSMB経由でのみアクセスします。

 

NextCloudのフォルダ同期を試す

これでひとまず完成なので、実運用に耐えうるのかテストしてみたいと思います。使い方はやや特殊で、OneDriveみたいにDocumentsとDesktopを複数マシンで同期してみたいと思います。OneDriveの場合はDocumentsをクラウド同期にしてしまうとパワポとかが保存時にクラウド上に書き込むのを待ってしまうのですが、こちらならサードパーティ製なのでそのようなこともなさそうです。

 

f:id:ku-suke:20190601234618p:plain

Pixel 3aからもすぐに確認出来て、米国にサーバがありそうなクラウドストレージの10倍以上サクサクなので意外といいかもしれません。


f:id:ku-suke:20190601235133j:image

 

OrangePi / ASUS に接続したSSDのベンチマーク(SMB経由)

前回、OrangePiを構築したわけですが、いったんSSDASUSについているUSB3.0ポートに接続していました。こちらをいろいろと試しつつベンチマークをとってみたいと思います。

変更前:Buffalo LinkStation LS210D 

PC→WiFiASUSルータ→有線LAN→3.5inchHDD

f:id:ku-suke:20190519220807p:plain

こんなかんじです。普段使いはしてなくてほぼバックアップ用でした。

 

ASUS RT-AC87U のUSB3.0ポート

標準でついている機能を利用してみます。PC→WiFiASUSSSD

f:id:ku-suke:20190519220959p:plain

シーケンシャルリードは、ほぼ頭打ちです。WiFiの性能かもしれません。40MB/sとして、320Mbpsですかね。ランダムリードは全般的に伸びています。

 

OrangePiのUSB2.0接続

最後はOrange Piへの接続です。これもSMB経由になります。

PC→ASUSルータ→有線(1000base)→OrangePi→USB2.0SSD

f:id:ku-suke:20190519221542p:plain

なぜかSeq Readだけ性能が上がってしまったのですが、それ以外は微妙でした。こちらのメリットとして、ASUSルータNASでベンチを取るとCPUが張り付くのですが、OrangeNASだととくに問題ないため、家でガンガン動画を見ているときにルータが熱暴走とかしなさそうという安心感はあります。

ただし、NextCloudPiで使用するには、extでフォーマットしなおす必要があり、すでに旧NASからコピーした200GBのデータをどうするかが悩みどころです。自分しか使わないので、50GB分だけ切り出してextにして使っているのもよいかもしれません。

 

 

OrangePi One PlusでNASリプレースと家庭内AdBlock運用

f:id:ku-suke:20171226193634j:plain

OrangePi One Plus

無事構築できたので書いてみます。動機としてはぶっちゃけやってみたかっただけなんですが、NASが5年以上使用して老朽化してたり、AmazonやAndroidTVでTVerの広告が多すぎるっていうクレームが家族からきたりという点もあります。

 

使用機材

 

Orange Pi One Plusとは

Raspberry Piみたいなシングルボードコンピュータです。ラズパイほど安定していませんが、中華ガジェットでは有名なAllwiner H5を搭載し、メモリも1GBあるのでなかなかパワフルです。技適はありませんがWiFiがついていないので安心して(?)使うこともできます。

 

 電源とケースも買いましたがケースだけまだ届きません。

今回はこれでNASDNSフィルタリングを作ります。

 

OwnCloudのフォーク版NextCloudPiを使おう

とはいえ先人が多くのノウハウを公開していたので僕のは後追いになります。無事できたよという記事です。

 

OSはArmbianのStretchを使う

唯一のハマりポイントとしてはこれ。公式サイトにいくつかイメージが公開されているんですが、最新版は起動せず、古い奴はUSBにキーボードが刺さっていると起動しないといわれました。

また、そもそも使おうと思っていたNextCloudPiがDebian Stretchを公式にサポートしていたため、Armbianという有志がメンテしているイメージを使うことにしました。

https://qiita.com/masataka55/items/182ac6b2fdd0a984f641

NextCloudPi – Own your bits

 

Armbianインストール後、ユーザを追加・rootを無効化して、MACアドレスの固定化を行いました。ArmbianはまだTEST用で、起動ごとにRANDOM MAC ADDRESSになるのは不便なためです。

パスは違いますが、こちらの記事に従ってoneplusようのdtbを生成したところ、無事MACアドレスが固定されました。

https://gato.intaa.net/archives/8244

 

NextCloudPiをインストールします。ワンライナーでシェル実行するだけで30分ほどでインストールが完了しました。

 

ポートフォワーディングとLet's Encryptの実施

家の外からアクセスするため、ルーターの設定で80/443をあけ、DDNSをセットアップします。なんとNextCloudPiの管理画面からLet's Encryptが設定できるので、Web画面上で簡単に設定することができました。これで80番は閉じておいてもいいですね。

 

f:id:ku-suke:20190518170855p:plain

 

なぜかdnsmasqもすぐ使えた

なぜかわからないのですが各種DNSソフトウエアの導入も管理画面からできました。おそらくDDNSも運用できるようにという配慮かもしれません。

これでdnsmasqをいったん立ち上げて動作確認した後、この記事に沿ってDNSのBlacklistを埋め込むことにしました。

 

ohtorii.hatenadiary.jp

AdBlock用のconfを作成した後、dnsmasq.dの中に入れて読み込む形式で設置しました。いくつかネットサーフィンしてみて問題があればホワイトリストいりできるような運用体制を作ってみようと思います。

 

Mackerelのインストールと温度管理

さて、一通り動きましたがDNSサーバがたびたび止まるのはよくないので、死活監視することにしました。Mackerelをインストールします。※APIキーの取得が必要です

https://github.com/mackerelio/mackerel-agent

Releaseから最新版のlinux-armパッケージを落としてきます。/etc/ 配下に配置し、systemdとしてデーモン化します。

https://blog.adachin.me/archives/4007

 

通常の負荷だけでなく、温度も管理したいとおもいます。カスタムメトリクスを作ればいいようです。

Raspberry Piの温度をMackerelで監視し、アラートを飛ばす - Qiita

しかし、RasPiに含まれるvcgencmd がArmbianにはありません。そこでPythonで温度を取得することにしました。

#!/usr/bin/python2.7
import os

temp = 'cat /sys/class/thermal/thermal_zone0/temp'
temp = os.popen(temp).readline().strip()
temp = int(temp) / 1000
print( str(temp) )

 ちょっと雑なコードなので動かなかったらごめんなさい。こんなかんじで無事温度の管理をすることができました!

 

というわけで実際にNextCloudPiを使っていきたいのですが旧NASの整理が終わらないのでここまでで。姫トランスとかでてきてやべえ

 


Hime Trance kai & J Eurobeat / Mirukomeda 138