PHP+JavaScript(Vue.js) メモプログラム

何かメモを取る場合、テキストファイルにパッと書くことが多いので、ブラウザに書けたらどうだろうと思い作成してみた。

普段からブラウザは開いているし、レンサバに設置すれば外でも見れるので、テキストファイルより便利になりそうと思っていたが、しばらく使ってみて、やっぱりテキストファイルに戻ってしまった。

C#+JavaScript(Vue.js) 工数管理プログラム

製造業では作業時間(工数)の集計は必須。しかし中小企業では作業者が紙に書いて、後々エクセル上で集計というパターンが結構ある。

今回はタブレットを使って作業時間を作業者が直接入力することを想定したプログラムを作成してみた。

タブレットなのでWebインターフェースを採用。専用サーバーを保有していない場合を想定し、C#内蔵の簡易サーバーでリクエストを処理。普通のPCでもソフトを立ち上げておけば処理できる。

書き出しもDBではなく、フォルダ+テキストファイルとして、管理者のPCの知識が少なくても何とか対応できる環境にした。

C#のサーバーVer2

最初はTask.Runで非同期にしてWhileで待受していた。BeginGetContext/EndGetContextを利用する場合。

C# サーバー

最低限の動作。

あるいはこんな書き方

フォームを使う場合

 

LINE WORKSインストール

有料版と無料版で同じプログラムなのか不明だが、手抜きなのか?と思うほど不安定。直近でPC数台にインストールして発生した問題。

・連絡先から新規トーク送信時(トークルーム作成時)によく落ちる。ほんと頻繁に落ちる。クラッシュレポートを呼んでストンと落ちて固まったりしないからいいんだけど。

・連絡先から新規トーク送信時に出てくる新しいウィンドウと本体のウィンドウのサイズが違う。まぁ、サイズの違いはいいとしても…本体をデスクトップの下側に置いておくと新しいウィンドウがデスクトップからはみ出る。新しいウィンドウが画面からはみ出るのはどうかと。

・一度設定するとプロフィール写真が消せない。トークでは表示されていないようだけど、マイプロフィールからは消えない。

・インストール完了後、起動しない。エラーレポートを見るとig75icd32.dllが原因と出てるので、Intelグラフィックドライバーをメーカーサイトから落として更新すると起動できた。この程度軽量のアプリでドライバーの影響で落ちるのはどうなんだろう。

・インストール時にパスを選べるがアンインストールは選んだパスでアンインストールの処理をしないっぽい。それにインストールのパスを変えると、全ての文字が化けて動作がおかしくなる。

最後の2つはライブラリの影響かと思うけど、ビジネスユースでこのクオリティは酷い。導入実績がすごい数あるけど、絶対問題出ているだろうと思う。

・追記(数カ月後)

PC版の更新が来て、落ちることはほぼなくなった。

iOS/Androidスマホ、Androidタブレットにも数台インストールしてみた。

・スマホは特に大きな問題は発生していない。

・Androidタブレットは酷い。トークが届くまで遅い。忘れたころに届く。最悪届かない…こりゃ酷い。

・同じアカウントの、PC、スマホ、タブレットのトークがしっかり同期しない。アプリで更新のボタンをおしたり、端末を再起動しても同期しない。

何というか、全体的に不安定。同期しないとか届かないとか。導入実績がすごい数あるんだから、絶対クオリティについて把握してると思うんだけど、まぁアプリのコメントを読んでみると問題がないという評価は多いけど、一定数通知が出ないとか不安定という評価があるし、現時点でも放置ということは対応するつもりがないんだろうな。

現状オススメできないかな。こういうサービスは一度導入すると他への移行も大変だし止めたほうがいい。

・追記(一年近く使って)

PCはある程度安定しているが、どうもAndroidのタブレットはダメっぽい。届くのが遅いというの部分は、結局解決しなかった。

数台のPC(スマホやタブレットの利用はなし)で実際の業務に利用していて、利用者からはわりと好評。ビジネス向けのチャットサービスはいくつかあるけどUIが慣れたLINEというのがいいのだろう。

情シスがない規模の中小企業で、まだメールがメインって状況なら入れてもいいかもしれない。

通常のLINEと同じようなUIなのでPCに詳しくない人でも使いやすい。

C# Excel操作③

 

C# ComboBox 枠に色をつける

 

Arch Linux MariaDB

・先ずソースから挑戦

入ってなければ
pacman -S cmake
pacman -S ncurses

ソースをダウロードして解凍
tar zxvf mariadb-10.3.12.tar.gz
cd mariadb-10.3.12

cmake . -DCMAKE_INSTALL_PREFIX=/root/share/mariadb -DCMAKE_PREFIX_PATH=/var/lib/pacman/local/ncurses-6.1-6/ -DPLUGIN_TOKUDB=NO

(.はソースディレクトリでCMakeLists.txtが必要)
(DCMAKE_INSTALL_PREFIXはmake installしたときの配置先)

make -j 1
make -j install

パッと調べるとこんな感じのようだかエラーが出るので要調査。

・パッケージにて

pacman -S mariadb
mysql_install_db –user=mysql –basedir=/usr –datadir=/var/lib/mysql

Arch Linux カーネルのコンパイル

・カーネルバージョン確認

uname -r

・カーネルソース保存

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.99.tar.gz

・シンボリックリンク

ln -s linux-4.9.99 linux

・コンフィグ作成

make clean && make mrproper
今までconfigで設定した内容の消去を行う。初期化。

Archのデフォルト設定を利用する場合。
zcat /proc/config.gz > .config

あるいは、

make localmodconfig
ゲストOS内で現在ロードされているカーネルモジュール情報から
カーネルに読みこまれていないmoduleを無効にした設定をおこなう。

・その他コンフィグ

必要な場合。

make oldconfig
今あるconfig使って、新しい設定だけを問い合わせてくるというものがある。

make config
対話型のコンフィギュレータ

make menuconfig
メニューベースのコンフィギュレータ

make xconfig
Xベースのコンフィギュレータ

・コンパイル

make

今回はbcが無いとエラーがでた。

pacman -S bc

makeは時間がかかる。

・カーネルモジュールのコンパイル

make modules_install

以下にコピーされる。

/lib/modules/xxx

・bootディレクトリにカーネルをコピー

名前の前にvmlinuz-をつけるのは必須。
cp -v /usr/src/linux-4.9.99/arch/x86_64/boot/bzImage /boot/vmlinuz-linux49

・initramfs生成

mkinitcpioを利用。

mkinitcpio -k 4.9.99 -g /boot/initramfs-linux49.img

/lib/modules/xxxのソースディレクトリ名を使う。

・ブートローダーの設定

/boot/grub/grub.cfg

linux /vmlinuz-linux …
initrd /initramfs-linux.img
この部分を変更。

これで完了。

・カーネルモジュール

一覧
lsmod

内容確認
modinfo

ロード
insmod

アンロード
rmmod

ロード・アンロードの依存関係を自分で処理。
(lsmodのUsed byにて分かる)

依存関係を自動で処理する場合のロード・アンロード
modprobe xxx
modprobe -r xxx

Arch Linux VirtualBoxのディスクサイズ変更

・VirtualBox

cd C:\Program Files\Oracle\VirtualBox
VBoxManage.exe modifyhd “G:\VirtualBox VMs\Arch Linux\arch.vdi” –resize 20480

・ブートメディアで起動

・パーティーションサイズの変更
parted
p
resizepart xxx 100%

・デバイス名チェック
fdisk -l

・整合性チェック
fsck -f /dev/sda2

・ファイル
resize2fs /dev/sda2 [size]

Arch Linux 初期設定

今回はVirtualBoxにて実験

インストールメディアからブート

基本インストール

・キーボードレイアウト

loadkeys jp106

・パーティション確認

fdisk -l

・起動モード確認

ls /sys/firmware/efi/efivars

ディレクトリがあればUEFI

・パーティション作成

parted /dev/sda
mklabel msdos
mkpart primary ext4 1MiB 100MiB
mkpart primary ext4 100MiB 100%
q

・partedコマンド

p
確認

q
終了

rm
削除

・パーティションフォーマット

mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda2

・マウント

mount /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot

・リポジトリ変更

/etc/pacman.d/mirrorlist
日本のリポジトリを一番上に移動。

・ベースシステムインストール

pacstrap /mnt base base-devel

・fstab

genfstab -U /mnt >> /mnt/etc/fstab

・chroot

arch-chroot /mnt /bin/bash

・ロケール設定

/etc/locale.gen
コメントを解除
en_US.UTF UTF-8
ja_JP.UTF UTF-8

実行
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf

・キーマップ設定

/etc/vconsole.conf
追加
KEYMAP=jp106
FONT=lat9w-16

・タイムゾーン設定

ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

・ハードウェアとシステムの日時同期

hwclock –systohc –utc

・ホストネーム設定

echo vm > /etc/hostname

/etc/hosts
追加
127.0.0.1 localhost.localdomain localhost vm
::1 localhost.localdomain localhost vm

・DHCP有効化

systemctl enable dhcpcd

・rootパスワード設定

passwd
123

・GRUBインストール

pacman -S os-prober grub
grub-install –target=i386-pc –recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

・起動

exit
umount -R /mnt
reboot

・復旧する場合

起動メディアでブート

mount /dev/sda1 /mnt/boot
mount /dev/sda2 /mnt
arch-chroot /mnt

・VirtualBoxを含めネットワークの設定

VirtualBoxの設定でネットワークをブリッジに。
ncpa.cplからVirtualBoxのNICを192.168.11.200に。

・WiFiオン

wifi-menu -o

有線は自動でつながる

・IPアドレス確認

networkctl status

・DHCP停止

systemctl disable dhcpcd

・IPアドレス指定

/etc/systemd/network/static.network

[Match]
Name=enp0s3

[Address]
Address=192.168.11.201/24

[Network]
DNS=192.168.11.1

[Route]
Gateway=192.168.11.1

systemctl start systemd-networkd
systemctl start systemd-resolved
必要ならenable

・SSHインストール

pacman -S openssh
systemctl start sshd

/etc/ssh/sshd_config
追加
PermitRootLogin yes
AllowUsers root

・iptables設定

この段階では特に編集しなくてもつながる。

確認
iptables -L

/etc/iptables/iptables.rules
追加
-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT

再起動
systemctl restart iptables

・vim

pacman -S vim

・samba

必要ならユーザー追加。今回はrootで処理。

useradd -c “Guest User” -d /dev/null -s /bin/false pcguest
chown pcguest:pcguest share

作成したユーザがパスにアクセスできること。

LAN向けなので、最低限

pacman -S samba

mkdir share
chmod ugo+rwx share

設定ファイル
vim /etc/samba/smb.conf

作成されない場合ArchLinuxのサイトにサンプルがあるので写す。
あるいは直接作成。

[global]
unix charset=UTF-8
dos charset=CP932
security = user
guest account = root
map to guest = bad user

[share]
path = /root/share
writable = yes
guest ok = yes
force create mode = 0777
force directory mode = 0777
share modes = yes
vfs objects = recycle

起動
systemctl start smb
systemctl start nmb
必要ならenable

動作確認
ss -ltnp

・dotnet

pacman -S dotnet-runtime
pacman -S dotnet-sdk
pacman -S aspnet-runtime

・pacmanコマンド

レポジトリ最新
-Syy

ソフト更新
-Syyu

レポジトリ検索
-Ss

ローカル検索
-Qs

インストール済みリスト
-Q

-S
インストール

-R
アンインストール

-Rs
依存も含みアンインストール

-Rns
アンイントール時のバックアップ削除

-Scc
インストール時のキャッシュ削除

-Sg
グループに含まれるパッケージ。

GUIの設定

・GUIとCUIの切り替え

Ctrl + Alt + F1,F2~

・グラフィックドライバ

環境にあわせて選択。
pacman -S xf86-video-intel
pacman -S xf86-video-amdgpu
pacman -S xf86-video-ati
pacman -S nvidia nvidia-utils

・調べ方

lspci | grep VGA

・xserver

pacman -S xorg-server
pacman -S xorg-xinit
pacman -S xorg-apps(必要なら)
pacman -S mesa(必要なら)

・キーコンフィグ

/etc/X11/xorg.conf.d/10-keyboard.conf
追加
Section “InputClass”
Identifier “Keyboard Defaults”
MatchIsKeyboard “yes”
Option “XkbLayout” “jp”
EndSection

・デスクトップインストール

pacman -S xfce4

echo “exec startxfce4” >> ~/.xinitrc

startx

・ロケール設定

/etc/locale.conf
追加(あるいは置換)
LANG=ja_JP.UTF-8

・フォントインストール

pacman -S otf-ipafont