ハードウェアからサーバ・アプリまでワンストップで開発

皆さんは社内でのナレッジの共有はどうしておられるでしょうか?

弊社では、人数が少ないこと、それで合意形成が簡単であるということもあって、ownCloudを社内専用、DropBoxを社外も含めた場合での共有環境として使っていました。要するに「いろんなファイルがごっちゃに置いてある」状態だったわけですね。

ところが、ownCloudと言うか社内の共有ファイル環境が、去年のサーバのクラッシュで全損してしまいました。ここの話を長くするつもりはないのですが、まぁとにかく綺麗に全部消えました。コンテンツだけではなくて、環境そのものも消えてしまったので、しばらくはそういったものがないか、DropBoxを使うことにしていました。

さすがにそれは不便だったので、秋くらいにはそれ用のシステムを作って、より使いやすい環境にしています。

そのシステムは、実は随分前から作っていたもので、クラッシュ以前にもドキュメントの置き場として使っていたものです。

これは、Jupyter notebookJavascriptで再実装したものがベースで、コンテンツはipynb形式で扱うといったものです。入力や表示はJupyter notebookそのものなので、Jupyter notebookでできることは全部できるようになっていました。その反面、単なるドキュメントに過ぎないものもipynb形式だったので、いろいろ面倒臭い面もありました。

そこで、ファイルの扱いをよりエスクスプローラ的にして、markdownが扱えるメモシステムを別途開発していたんですね。個人的には結構気に入って使っていたのですが、これの開発環境もサーバのクラッシュで全損してしまいました。元のシステムから継承した部分も新規に書いた部分も全部消えました。ここでちゃんとgitにでも置いておけば良かったのですが、「元のシステム」からの変更点が多過ぎてブランチにするのもダルいし新規にリポジトリ作るには余分なファイルを整理しないといけないし、まぁ来週くらいには決めよう... と思ってたところでクラッシュ。なかなか辛かったです。

幸い、「元のシステム」はGithubに置いてあったのと、クライアントを開いたままのブラウザがあったということがあって、フロントエンド部分はブラウザのキャッシュからサルベージし、サーバは「元のシステム」を元に作り直しました。それが咋秋くらいには動くようになりました。webpackされたJavascriptからでも、頑張ればソースが復元できるものですねw

サーバそのものはまぁ何でもいいんですが、もう大袈裟なオンプレサーバを持つつもりはないので、Raspberry Pi4でサーバを作っています。

しばらくRaspberry Piをそのまま動かして満足していたのですが、SDカードがちょいちょい壊れて気持ち悪いので、今は/homeや/varはハードディスクに入れて使っています。ESP-IDFの開発環境でもそうですが、ことさらに遅いとか重いとかってことは感じていません。SDカードだとなんだかんだでrebootをしょっちゅうするハメになっていたのですが、/boot以外はみんなハードディスクに置いてしまったのでそういったこともなくなりました。/bootが残っているのは、ハードディスクの容量とインストーラの都合です。今の「ラズパイインストーラ」は2TBを超えたハードディスクには、うまくインストールできないようです(後半部分が使えない)。

現在のシステムでできることは、

  • エクスプローラっぽいファイルの管理
  • DnDによるファイルの操作とアップロード
  • DnDによるブックマーク(ファイルっぽく見える)
  • ファイルに注釈やアクセス権設定をつける
  • markdownによる文書作成編集
  • draw.io(旧形式)の編集

といったところです。個人的にはブックマーク機能がとても気に入ってます。

ここにさらに

  • 表計算っぽい表の作成編集(←イマココ)
  • チャートの作成
  • Jupyter notebookっぽい機能(kernelの互換性を維持する)
  • ObservableNotionのようなテンプレート機能

を順次つけて行きたいと思ってます。

今のところウェブサービスを立ち上げる的なことは考えていなくて、いわゆる「タダソフト」として公開する予定です。この辺の考え方については、またいずれ書きたいと思います。

最近のエントリー

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル

LED行燈の試作(1)