bizhub コピー機で式辞用紙を印刷する!印刷エラー回避方法

bizhub C308を利用して式辞用紙を印刷

式辞用紙を買ってきて、印刷しようとするも、用紙サイズの設定がうまくいかず、印刷時点で、手差し用紙のサイズの変更を促され、何度印刷しようとしても、うまくいきませんでした。

470mmに対応していない

まず bizhub C308は、Xサイズ 長さ470mm に対応していません。

私が印刷設定したのは、

Wordの用紙サイズ変更

まず用紙サイズテンプレートのユーザ設定のページサイズを 450mmにします。

bizhub設定

用紙サイズは不定形サイズにします。

幅 210mm

長さ 450mm

とします。

用紙種類を再生紙にします。

まとめ

まず、印刷を書けてしまう前に、上記設定を行うのがポイントです。

一度、印刷すると、複合機側で、手差し用紙の種類設定を迫られますが、どう設定変更してもエラーになってしまいます。

mailman Linuxからコマンド操作の覚書

コマンド

何度も調べるのにちょっと時間がかかってたので自分で使う物だけメモ

add_member -r member.txt list_name

member.text には、1行に1メールアドレスを記載する

change_pw -l メーリングリスト名 -p 新しいパスワード

メーリングリスト管理者のパスワード変更

list_lists

メーリングリスト名を一覧表示

list_members メーリングリスト名

メーリングリストに登録されているメールアドレスを一覧表示する

remove_members

メーリングリストから指定のメンバーを削除する

rmlist

メーリングリストを削除する

.Net Core 実行ファイルをLinuxで動かしたい

この記事で説明している事

この記事では、.NET Coreを利用し、コンソールアプリを作成して、Linux上でフレームワーク依存の実行可能ファイルを実行しています。

.Net Coreはクロスプラットフォーム

クロスプラットフォームで実行する際に

1.自己完結型

2.フレームワーク依存型

の2つの形式があります。

自己完結型にすると、そのアプリに.NETランタイムが含められます。ユーザは、.NETフレームワークのインストールをすることなく実行が可能です。

クロスプラットフォームバイナリ作成

dllファイルの形式で、フレームワーク依存として発行すると、クロスプラットフォームバイナリが作成されます。

dotnet <filename.dll> 

というコマンドで実行が可能です。

コンソールアプリの実行について

VisualStudio2017

.Net Core 2.1

でコンソールアプリを作成してみました。

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
    }

コンパイルするとdllファイルができています。

これをLinux上にコピーし、実行します。

$ dotnet ConsoleApp1.dll
Hello World!

実行できました。

この実行方法は、フレームワーク依存のクロスプラットフォームバイナリという位置づけで、予めLinuxに.NET Coreをインストールしておく必要があります。

詳しくは、こちらから

まとめ

.NET Core のフレームワーク依存のクロスプラットフォームバイナリを実行する方法は、

dotnet <filename.dll> 

で実行できます。

大勢の方とのWeb会議をZoomで行う ウェビナーっぽいもの

ウェビナーって?

ウェブ(Web)とセミナー(Seminar)を合わせた言葉です。

Zoomで、ウェビナーを企画したのでその設定をメモしておきます。

ミーティングの設定

ミーティングをスケジュールします

セキュリティ

パスコードにチェックしておくと、招待リンクがある方か、パスコードを持っている人だけが参加できるようになります。

もし、招待リンクがない方は、ミーティングIDと、パスコードの組み合わせで参加できる事になりますが、こちらは公開する予定がなく、ミーティングに参加するための招待URLだけで運用しようと考えています。

ビデオ

ビデオは参加してくださった方々の顔が拝見できるように、最初からオンにしておきます。

ミーティングオプション

入室時に参加者のマイクをミュートしておかないと、多数の参加者のミーティングになると皆さんの声が入ってきて収集がつかないような状況になる事もあります。

iPhoneの画面をテレビに出力

iPhoneの画面をテレビに出力したい

値段も安くて良さそうな製品をメモしておきます。

ライトニングから電源容らずでHDMI変換できるケーブルです。

接続簡単で、サクサク動きました。

充電してなくても使えるので、場所を選ばずTVでiPhoneの動画見たらできます

初めての.NET Core C# Windowsで作ってLinuxで動かす

環境

VisualStudio 2017

C#

Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-43-generic x86_64)

cat /etc/debian_version

buster/sid → これUbuntuが動いているVMです。WebArenaを借りています。

プロジェクト作成

まずはWindows上でプログラムを作成します。今回はコンソールアプリで試してみます。

.NET Coreのコンソールアプリを作成してみます。

コード

作成すると、Consoleに Hello Worldが表示されるアプリが作成されています。

Console.ReadKey();

だけ付け加えてあげます。でないとデバッグ起動したときにコンソールが起動したらすぐにとじてしまいます。

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
    }
}

デバックすると、コンソールが立ち上がり、Hello World!が表示されます。

また、コマンドプロンプトから同様の事が可能です。

ConsoleApp1.csproj

Program.cs

があるディレクトリに移動し

dotnet restore

dotnet run

で実行されます。

C:\Users\User\source\repos\test\ConsoleApp1\ConsoleApp1>dotnet restore
  C:\Users\User\source\repos\test\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj の復元が 31.78 ms で完了しました。

C:\Users\User\source\repos\test\ConsoleApp1\ConsoleApp1>dotnet run
Hello World!

Debian に .Net Coreをインストールする

Debian に .NET SDK または .NET ランタイムをインストールする

Debian10の場合

実際の環境はUbuntu 18.04.1 LTS (GNU/Linux 4.15.0-43-generic x86_64)です。最初stretchが入っているつもりで設定していったのですが、実はDebian10のbusterが入っていました。だけど、以下の手順で動いたのは間違いありません。

信頼されたキーの一覧に Microsoft パッケージ署名キーを追加し、パッケージ リポジトリを追加

wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/debian/9/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

.NET SDK をインストール

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-5.0

Debian上で実行する

ConsoleApp1.csproj

Program.cs

をLinux環境にコピーして実行してみました。

この状態では、frameworkの違いにより実行できないようです。

/home/ubuntu/dotnettest# dotnet restore
  Determining projects to restore...
  Restored /home/ubuntu/dotnettest/ConsoleApp1.csproj (in 260 ms).
root@webarena01:/home/ubuntu/dotnettest# dotnet run
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '2.1.0' was not found.
  - The following frameworks were found:
      5.0.6 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=2.1.0&arch=x64&rid=ubuntu.18.04-x64

apt-cache search .net

で探してみると、いっぱい出てくる状態になりました。その中で、今回怒られているのは

version ‘2.1.0’ was not found

なので、

dotnet-sdk-2.1 – Microsoft .NET Core SDK 2.1.816

をインストールしてみる事にしました。

すると、無事に Hello World! の文字列が表示されました。

home/ubuntu/dotnettest# dotnet restore
  Determining projects to restore...
  Restored /home/ubuntu/dotnettest/ConsoleApp1.csproj (in 395 ms).
/home/ubuntu/dotnettest# dotnet run
Hello World!

まとめ

.Net Coreはオープンソースで開発されているとの事。しかも、.Net 5からは、FrameWorkという言葉が抜けて、.Net Coreと統合されるそうです。

一つアプリケーションを作れば、他のOSのデバイスでも動いてくれる。.NETを実装したフリーでオープンなクロスプラットフォームと表現するそうです。

あまり開発に携わっていない私でも、何とか動かせそうで、ちょっとワクワクしますね。

ひかりのインターネット速度を上げたいならLANケーブルにもこだわるべき

CAT5eだからいいと思ってない?

IPv6 IPoE接続のプロバイダに乗り換えました。

だけど、どうしても100Mbps出ない。いつ計測しても80Mbps~90Mbpsで、なぜなんだろうと思っていました。

原因はLANケーブルだった

パソコンとルータ

ルータとONU

の間の速度は自動ネゴシエーションという形をとります。どの機器もGiga対応!とうたっていても、自動ネゴシエーションする時に、Giga通信ができないと判断すると100Mbpsで通信します。

これは、いくら性能の良いルータを購入していても、上位にあるホームゲートウェイ(光回線終端装置)とルータの間が100Mbpsしか出ていなければ、その配下は100Mbps以上は出ません。

パソコンのNICはGiga対応なのに

パソコンのNICはGiga対応。しかもルータはGiga対応。

この状況でLANケーブルを接続すると 100Mでリンク?

LANアダプタのリンク速度を見ると 100/100(Mbps)となっていました。

ケーブルを変えると

1000/1000(Mbps)でリンクしました。

ちゃんと、1000MbpsでリンクアップできるLANケーブルを見極め、まずはホームゲートウェイ(光回線終端装置)と、ルータを接続する必要があります。もちろん、両方ともLANポートがGiga対応してなきゃだめです。

LANケーブルを整えた後の速度

Wild Speedにて計測しました。上りの計測は100Mbpsまでしか対応していないため、99.46Mbpsとなっていますが、下りは念願の100Mbpsを超えました。

さらに、上りもGigaが計測できるところないかなと探したところ、BROADBAND speedtestサイトで、

驚異的な記録をたたき出していました。

これは、サーバの理論的な配置場所(自分が計測する場所から遠いか近いか)によって、速度が変わる例です。

楽天ひかり思ったよりいいです

今回、家のひかり回線をビッグローブ光から楽天ひかり変更しました。

IPv6 IPoEで接続して利用しています。楽天モバイルも利用しておりますので、1年間無料で家の光が使えるようになりました。月額おおよそ5,000円程度ですから、6万円ほどの値引きをいただいている感じです。

楽天モバイルも無料ですから言う事ないですね。

まとめ

IPv6 で、IPoE接続したの、なぜか速度が100Mbps出ないなとか、100Mbpsぎりぎりのところまではいくのにと思っていらっしゃる方がいたら、まずLANケーブルを疑ってみてはいかがでしょうか?

C# ソースコードを守る 難読化ソフト

最近、難読化するとウィルス判定

以前から使っているソフトは、.Net Reactorです。このソフト優秀でNativeEXEにしてしまうと、逆アセンブリソフトで、デコンパイルできません。

とても重宝していたのですが、WindowsDefenderなどにウィルス判定されてしまうんです。

難読化した後、ソフトウェアを実行しようとするとウィルス判定されてしまい実行できません。

それに削除もされてしまうし。

困ったもの。

そこで、できる限りという意味でこんな感じにしています。

ILMergeで一つにまとめる

C#で開発し、参照の追加を行うと、DLLファイルなどが無数にできます。

EXEと、DLLファイルが別々だと、分かりやすくなってしまいますので、DLLを一つにまとめます。この時にMicrosoft の NuGetで手に入るILMergeを使うと手間いらずで一つのファイルになってくれます。

ILMerge

ILMerge.MSBuild.Task

の2つをインストールします。この状態でコンパイルすると、

Debugフォルダの中に ILMerge フォルダができ、その中に一つの実行ファイルができています。これはとても手軽です。勝手に一つにまとまってくれるので。

できるだけソースコードを大きな塊にする事で、逆コンパイルしても分かりにくく、追究しにくくします。

.NetReactorを使う

ここで、.NetReactorの登場です。

本来なら、Native Exeにしてしまうのが一番です。デコンパイルできなくなるので。しかしそれをやってしまうと、ウィルス判定されてしまう。痛しかゆしです。

そこで、Native EXEファイルのチェックを外しておきます。

それ以外の難読化機能をONにしておき、デコンパイルされてもよく分からないようにします。

ILSpy で逆アセンブルしてみる

実際に逆アセンブルしてみます。

今回逆アセンブルに利用したのはILSpyです。ダウンロードしたファイルをインストールしなくても動く優れものです。ダウンロードはこちらから。

解凍してできた exeを実行します。

逆アセンブルするとこんな感じ

CPNameなど、ところどころ読める文章もあるのですが、その中身のコードはほとんどないとか、変数名なども何かの文字の羅列になっていて、意味がよく分かりません。

できたアセンブリもそのままちゃんと実行できます。

うんなんか良さそうです。

まとめ

.NetReactor にも、DLLを mearge する機能があるのですが、その状態で様々な難読化オプションを有効にすると、exeがうまく実行できなくなることが多い気がします。

今回、ILMergeで一つにしたことで、その問題を回避できたのかなと。

おまけ Phoenix Protector

難読化に無償のPhoenix Protector も利用してみました。難読化のレベルは .NET Reactorよりも優れているかもしれないと思えるほど、中身が分からなくなっていました。

.NET Reactor では、 ところどころ単語が読める状態のところがありましたが、Phoenix Protectorは全く読めるところがない。

こいつはいけるかもと思ったのですが、実行ファイルが起動しない。

ダメでした。残念。

Rasbery PIみたいな激安Orange PI PCにstretchを設定する

激安ボードPCのOrangePI

Rasbery PIは高くて買えなかったので、OrangePIを見つけて喜んで購入しました。何しろ安いんです。

もう、何年も前に購入して、サポート切れのDebianLInuxのJessieしかイメージがないと思っていたら、いつの間にかStretchがリリースされていました。

これは!と思い、引っ張り出してきてまた遊んでみます。

SDカードのフォーマット

MicroSDカードを準備します。64GBまでのMicro SD Cardが利用できます。用途に応じて容量を選んでください。サーバ用途でご利用であれば、信頼性の高いSDカードを選ぶと良いと思います。

私は、無名メーカの製品を選んで失敗したことがあります。SDカードの読込不良が出ると悲惨です。起動できなくなったりするので。その教訓から選んだカードは以下の製品です。

SDメモリーカードフォーマッター

SDカードのフォーマットには、SDカードフォーマッターを利用します。

ダウンロードした

SDCardFormatterv5_WinEN.zip

を解凍。できたセットアップファイルを実行します。

SD Card Formatter 5.0.1 Setup.exe

SDカードをフォーマットします。

クイックフォーマットでも、上書きフォーマットでも構いません。

CHSフォーマットサイズ調整にチェックを入れます。

Debian OSイメージをダウンロード

orengepi.org からダウンロードリンクのページがあります。

Orange Pi PC

Debian Image を私は利用していて、Stretchがリリースされていました

OrangePi_pc_debian_stretch_server_linux5.3.5_v1.0.tar.gz

をダウンロードしました。私は、7zipアプリを使っていて、7zipで、tar.gzを解凍しました。解凍してできたファイルは、

OrangePi_pc_debian_stretch_server_linux5.3.5_v1.0.img

というイメージファイルです。

Win32DiskImagerにて、ディスクイメージをSDカードへ書き込み

Win32 Disk Imager

Win32 Disk Imagerをダウンロードしてインストールします。

ディスクイメージ

Image Fileにダウンロード解凍してできたイメージファイルを指定します。

SDカードにかかれた内容を見るとこんな感じ

以前のJessieでは、zImageを差し替えるとか煩雑な作業をしないと、USBポートが全部使えないなどの症状があったのですが、今回は特にファイルの差し替えは必要ありませんでした。手軽になりました。

SDカードをOrangePI PCに入れて起動

OrangePI PCは、HDMIポートを搭載しているので、SDカードを入れ、ディスプレイ(HDMIポート対応)、USBキーボード、マウスをさして起動すればOKです。

ユーザ名・パスワード orangepi(ユーザ名とパスワードは同じ)

root パスワードもorangepiです。

SDカードをリサイズ

パーテーションがなんだか小さいです。

/ に割り当てられている容量が1.1GBしかない。8GBのSDカードを利用しています。

root@OrangePi:/home/orangepi# parted /dev/mmcblk0
GNU Parted 3.2
Using /dev/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: SD S08AG (sd/mmc)
Disk /dev/mmcblk0: 7969MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      21.0MB  73.4MB  52.4MB  primary  fat16        lba
 2      73.4MB  1296MB  1223MB  primary  ext4

S08AG は、7969MBあります。しかし、パーテーションとして割り当てられているのは1.3GB程度という状態でした。そこで

(parted) resizepart
Partition number? 2
Warning: Partition /dev/mmcblk0p2 is being used. Are you sure you want to continue?
Yes/No? Yes
End?  [1296MB]? 7969MB

パーテーション変更するとこんな感じに

(parted) print
Model: SD S08AG (sd/mmc)
Disk /dev/mmcblk0: 7969MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      21.0MB  73.4MB  52.4MB  primary  fat16        lba
 2      73.4MB  7969MB  7896MB  primary  ext4q

リサイズします

root@OrangePi:/home/orangepi# resize2fs  /dev/mmcblk0p2
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mmcblk0p2 is now 1927636 (4k) blocks long.

これで、ルートに割り当てている /dev/mmcblk0p2が7.4GBになりました。

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1       40960   143359   102400   50M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      143360 15564453 15421094  7.4G 83 Linux

これで、空きも6.1GBくらいになりちょっと安心できるようになりました。

root@OrangePi:/home/orangepi# df -lh
Filesystem      Size  Used Avail Use% Mounted on
udev            416M     0  416M   0% /dev
tmpfs            97M  5.1M   92M   6% /run
/dev/mmcblk0p2  7.3G  824M  6.1G  12% /
tmpfs           484M     0  484M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           484M     0  484M   0% /sys/fs/cgroup
/dev/mmcblk0p1   50M   17M   33M  35% /boot
tmpfs            97M     0   97M   0% /run/user/1000

ExcelからPostgresDBへODBC接続

ExcelのテーブルとしてPostgresDBのテーブルを利用

ODBC接続して、Excel内からテーブルにアクセスします。

ODBC用のDSNファイルはAccess上で作ってある前提で、

データから既存の接続を選択

データリボンの中の

既存の接続ボタンをクリック

参照ボタン

既存の接続ダイアログが表示されました。

参照ボタンから、Accessなどで作ったDSNファイルを選択します。

いつもの画面で接続

DSNで設定する、いつもの画面が表示されます。

サーバ名・データベース、ユーザ名、パスワードを入力すれば、テーブルを選択する画面が表示されます。

行数と利用方法

PostgressはUnicodeで、ExcelはシフトJISなので、文字化けするかと思いましたが、ODBC接続で吸収してくれているのか、文字化けはありませんでした。

しかし、64895行のデータを扱おうと思ったところ、フィルタかけるとやたら時間がかかって、実質上使えませんでした。

比較的小さいテーブルだったらいいのですが、数万行にわたるレコードを扱う際はやっぱりAccessで一度作らないとだめですね。

同じフィルタ作業でも、Accessだとスルスルっと表示されました。