developer's diary

最近はc#のエントリが多いです

PHPでPDF出力 ~ wkhtmltopdfを利用した「ええ感じ」のサンプル(htmlを利用)

php

wkhtmltopdfをインストール(Homebrew-cask利用) knplabs/knp-snappyの準備 画像埋め込みの確認用に猫の画像を検索してダウンロードしておく phpファイル作成 結果 その他 tcpdfはこちら dompdfはこちら wkhtmltopdfをインストール(Homebrew-cask利用) wkhtml…

C# (dotnetcore) .netの内部実装を覗いてbit演算子の使い方を学んでみよう

前提 c#のboolは1Byte c#のintは4byte bitの使い所 1億件の情報を保存する .netのリファレンス 実装(referencesource)を覗く .netのリファレンス ソースとは Controlクラスでbit演算子を使っているところを覗いてみる フラグを格納する変数の定義 フラグの定…

都道府県知事のtwitterアカウントを調べてみた

北海道 鈴木直道 青森県 三村申吾 (なし) 岩手県 達増拓也 宮城県 村井嘉浩 (なし) 秋田県 佐竹敬久 (なし) 山形県 吉村美栄子 (なし) 福島県 内堀雅雄 (なし) 茨城県 大井川和彦 栃木県 福田富一 群馬県 山本一太 埼玉県 大野元裕 千葉県 鈴木栄治(森田健作…

VSCode、Laravelのweb.phpでUndefined type 'Route' のエラーメッセージを消す方法を探す記録

php

問題 調べる 解決策 Authも使う場合はこちらも追加 結果 参考 問題 VSCodeでなみなみ線がつく。 調べる あった。 github.com 解決策 routes/web.phpの先頭に以下のコード追加 use Illuminate\Support\Facades\Route; Authも使う場合はこちらも追加 use Illum…

キャッシュアルゴリズムの情報収集

そもそもキャッシュとは 参考 wikipediaにあるキャッシュアルゴリズムをそれぞれ調査 Least Recently Used (LRU) [直訳:最近使用されていない] 利用箇所とか Most Recently Used (MRU) [直訳:最近使用された] Pseudo-LRU (PLRU) [直訳:擬似的-最近使用され…

C# (dotnetcore) iText7でスキャンした電子書籍に目次(しおり)をつけてみた(The Art of UNIX Programming)

The Art of UNIX Programmingの目次をつける 結果 NuGetでiText7をインストール ソース The Art of UNIX Programmingの目次をつける この本をスキャンしてPDFにしました。 The Art of UNIX Programming作者:Eric S.Raymond発売日: 2007/06/19メディア: 大型…

C# (dotnetcore) CsvHelperでKEN_ALL.CSVを読み込み、郵便番号から住所を返答するコンソールアプリ作成

KEN_ALL.CSVとは 日本郵便が無償配布している、郵便番号と住所の対応が収録されたcsvファイル www.post.japanpost.jp KEN_ALL.CSVのレイアウト No. 項目 型 説明 1 全国地方公共団体コード(JIS X0401、X0402) 半角数字 全国地方公共団体コード - Wikipedia…

C# (dotnetcore) DataTableをSerialize/Deserializeする(System.Xml.SerializationとProtoBuf.Dataを比較)

DataTableをシリアライズ /デシリアライズ してみます。 また、XmlSerializerと、protobuf-net-dataでシリアライズで作成されたファイルのサイズ比較、 シリアライズ 、デシリアライズ の速度比較を行ってみました。 用語 用語 英語 意味 シリアライズ Seria…

C# (dotnetcore) 異体字セレクタ(辻辻󠄀)、サロゲートペア文字(𠀋)、絵文字(💡)を扱ってみる。(Visual Studio for Mac環境)

日本語文字ってややこしいです。 「辻辻󠄀𠀋」なんて文字をc#で扱ってみました。 lengthが正しい文字数でないことをご確認ください。 Visual Studio for Mac環境だと文字化け 辻󠄀が文字化け Visual Studio Codeは惜しい 辻と辻󠄀の違いが分からない。 ソース u…

【改善】C# (dotnetcore) CSVファイルを永続化に利用したコンソールアプリを改善

本エントリは以下の解答をもう一歩改善した内容 mitsugeek.net 前回の、「カンマを含められない」、「Main関数の行数が多い」を改善。 解答(ソース) 各項目の解説 解答(ソース) using System; using System.Collections.Generic; using System.Globaliza…

【解答】C# (dotnetcore) CSVファイルを永続化に利用したコンソールアプリの作成

本エントリは、以下のエントリに対する解答の1つです。 mitsugeek.net 解答(ソース) 各項目の解説 プログラム上の課題 カンマを含められない Main関数の行数が多い ファイルの行数に伴いレスポンスが悪化する 発展のアプローチ コマンドライン引数を使っ…

【課題】C# (dotnetcore) CSVファイルを永続化に利用したコンソールアプリの作成

本エントリは、以下のようなコンソールアプリで、データの保存にCSVを使うというプログラミングの課題です。 仕様 動作の流れ 利用する部品 解答 仕様 起動時に永続化したデータを読み込み、以下のコマンドを受け付ける exitを選ぶまで、説明→コマンド→説明→…

C# (dotnetcore) int型の最大値、最小値を超えるとどうなるか

早速実行 using System; namespace Test { class Program { static void Main(string[] args) { int i = int.MinValue; Console.WriteLine(i); --i; Console.WriteLine(i); ++i; Console.WriteLine(i); } } } 結果 -2147483648 2147483647 -2147483648

C# (dotnetcore) Docker コンテナで実行するコンソールアプリケーションのチュートリアルを実施してみた

このエントリは、個人的にメモをまとめたものになります。 個人的なチュートリアルの補助的役割です。 実施したチュートリアル docs.microsoft.com 事前の準備 Docker Desktop on Macをインストール docs.docker.jp インストールが成功すると、Dockerコマン…

C# (dotnetcore) 暗黙的な型指定(var)を利用する際の指針

参考書籍 独習C# 新版作者:山田 祥寛発売日: 2017/12/15メディア: Kindle版 参考書籍に、「暗黙的な型指定(var)」の使い所が書かれていたので、自分なりに調べてまとめておく。 Q:結局のところ、暗黙的な型指定(var)と明示的な型(2.3.3 項)と、いずれを利用…

PHPでPDF出力 ~ dompdfを利用した「ええ感じ」のサンプル(htmlを利用)

php

dompdfの準備 画像埋め込みの確認用に猫の画像を検索してダウンロードしておく phpファイル作成 結果 その他 tcpdfはこちら wkhtmltopdfはこちら dompdfの準備 プロジェクト用ディレクトリ作成 mkdir pdf-example2 ディレクトリに移動 cd pdf-example2 compo…

PHPでPDF出力 ~ tcpdfを利用した「ええ感じ」のサンプル(htmlを利用)

php

tcpdfの準備 画像埋め込みの確認用に猫の画像を検索してダウンロードしておく phpファイル作成 結果 参考 その他 dompdfはこちら wkhtmltopdfはこちら tcpdfの準備 プロジェクト用ディレクトリ作成 mkdir pdf-example ディレクトリに移動 mkdir pdf-example …

C# (dotnetcore) OpenPop.NETでGmailに接続してCAPAコマンドを実行

CAPAコマンドとは、POP3サーバーに実装されている機能を確認する為のコマンドです。 過去記事を振り返りしていたら、 以下の記事を見つけ、 C#でもUIDLが利用できるのか確認してみたので、記事にまとめときます。 mitsugeek.net ログ付きで確認 using System…

C# (dotnetcore) HttpClientを利用してredmineのAPIを叩く(プロジェクト一覧)

注意 単純なコンソールプログラムのため、 HttpClientをusingで囲わないでくださいという警告を無視しています。 redmineを準備 今回テストで利用するプロジェクトです。 redmineのページ ブラウザでアクセスした結果 APIにブラウザでアクセスすると、以下の…

C# (dotnetcore) スキャンしてOCR処理したPDFをiText7(AGPL)を利用して読み込んでみる

注意 iText7はAGPLライセンスです。利用する場合、利用者に対して、全ソースコードを公開する必要があります。 公開サイト等で利用する場合は、商用ライセンスの購入をお勧めします。 やりたいこと PDF名でディレクトリの存在チェック 存在しない場合、ディ…

C# (dotnetcore) Microsoft.Data.Sqlite と System.Data.SQLite の速度比較

前回の記事で作成したプログラムを1000回繰り返してどちらが早いか比較 mitsugeek.net ソース private static void Main(string[] args) { //Microsoft.Data.Sqlite + SQLitePCLRaw.bundle_e_sqlite3 System.Diagnostics.Stopwatch sw; sw = new System.Diag…

C# (dotnetcore) Microsoft.Data.Sqlite と System.Data.SQLite を利用してみる

NuGetでSystem.Data.SQLite.Coreを検索するとMicrosoft.Data.Sqlite と System.Data.SQLiteが現れた System.Data.SQLite.CoreをNuGetで検索 Download数をみると、Microsoft.Data.Sqliteの方が圧倒的に多い。 どっち使えばいいんだろ? ということでどっちも…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (6:完)

Console用のスピナー用の部品を作ろうという連載を初めて6記事目。 Console用のスピナー用の部品の開発は、今回を持って一旦終了とします。 前回の記事 mitsugeek.net Stepの実装を修正 ProgressBar.Step プロパティ をみても、特に何もしていなさそう。こ…

C# (dotnetcore) ディレクトリを指定してZIPファイルを解凍

前回の記事 mitsugeek.net 今回は解凍 前回の記事で圧縮したZIPファイルを解凍します。 今回も、System.IO.Compression を使います。 docs.microsoft.com ソースを記述 using System; namespace ZipArchiveExample { class Program { static void Main(strin…

C# (dotnetcore) ディレクトリを指定してZIPファイルを作成

System.IO.Compression を使います。 docs.microsoft.com 早速やっていきましょう。 テスト用のフォルダ・ファイルを作る mkdirコマンドでディレクトリを作成 mkdir /tmp/test/日本語フォルダ mkdir /tmp/test/日本語フォルダ/test mkdir /tmp/test/日本…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (5)

前回の記事 mitsugeek.net 課題 Consoleへの操作部分のテストをどうするか。 一つの解決策 Console.SetOutを利用して、Console.Outの出力先を変えてしまう。 [Fact] public void ConsoleTest() { var output = new System.IO.StringWriter(); Console.SetOut…

C# (dotnetcore) yield returnイテレーターは使った方が良いのか?

Mac Book Prodの dotnetcore3.1 で確認しました。 結論 結論からいうと、yield returnイテレーターを利用すると、メモリが節約され、若干時間が早くなった。 今回、指定したフォルダ配下のファイルを抽出する関数を、 Listと、IEnumerableでそれぞれ作成し、…

MacのGoogle chromeをコマンドラインから起動してみる。

なぜか一番アクセスの多い記事 なぜかこのエントリが当ブログで人気のようなので、Macでも同じことをやってみようと思った。 mitsugeek.net MacでChromeを起動する。 引数に、urlを指定すると指定したURLが起動する。 /Applications/Google\ Chrome.app/Cont…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (4)

前回の記事 mitsugeek.net 課題 (updateメソッドの分解(メソッドが長い)) updateメソッドが長い、コメントなしでロジックが16行。コメント等入れて36行。 そんなに長いメソッドではないが、メソッドの内容にいろいろな物が含まれているため、 分別する。 描…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (3)

前回の記事 mitsugeek.net 前回見つけた矛盾を修正する 前回見つけた矛盾、 Value設定後に、Maximum、Minimumに値を設定すると不整合になる可能性を潰す。 Maximumを設定した際に、Maximum < Valueの場合、ValueにMaximumを設定 Minimumを設定した際に、Mini…