命名って難しい

変数、関数、クラスなどなど実装より命名に毎回悩むタイプの人間による技術についてのメモ。

CSVを読み込んでSQL Serverの列のデータ型候補を生成するPowershellスクリプトを書いた!テストした!GitHubにアップした!

ハイテンションタイトルです。

自社の謎システムの出力や取引先提供のCSVで列の型が分からないものがあります。 今まではテキストで全部取り込んで、テストしながら少しつづテーブル定義を更新してインポートできるテーブルを作っていました。

現在いくつものCSVを取り込む案件があったため、スクリプトを作ってみました。

今回の新しい挑戦は以下です。

  • Powershellのクラスを実装をしてみた!
  • ユニットテストをしてみた!
  • 作ったものをGutHubで公開してみた!(Gitは業務で使っていないのですが、試してみました)
  • 開発環境
  • クラスを実装してみた!
  • ユニットテストをしてみた!
    • テストで分かったこと
      • using moduleとVSCodeでのテストのコツ
      • ヒアドキュメントの改行コードはファイルの文字コードに依存する。
      • Should Be で.Netの定数などを比較するときに正しく比較されないときの対処法
  • 作ったものをGutHubで公開してみた!
続きを読む

Windowsのpython開発で仮想環境(venv)・VSCode向けの設定・.gitignoreをセットアップしてすぐ開発できるようにするスクリプトを書いてみた

最近プライベートで勉強を兼ねてpythonで1つのツールを開発しています。

普段デスクトップで開発をしているのですが、外出先でも開発できるようにノートPCも使うようになりました。

新しい環境で開発を開始するとき、仮想環境と設定といろいろと面倒なことがあったので新しい環境下で利用できるスクリプトを書いてみました。

  • 前提とする環境
  • セットアップの内容
  • ソースコード
  • 気になるところ

前提とする環境

続きを読む

Python+SeleniumでWebDriverを自動管理してくれるクラスを作ってみたら同じような機能を持つパッケージがあったのでソースコードを供養します。

タイトルで終わり!

  • ソースコード
    • メイン
    • テストコード
  • 同じような機能を持つパッケージ、webdriver_manager
続きを読む

各ECモールの商品カテゴリ/商品分類を技術を使って一致させたい(結果確認)

前回の続きです。

前回 [https://notshown.hatenablog.jp/entry/2021/10/26/012326:e mbed:cite]

前々回 notshown.hatenablog.jp

前々回はECサイト上からのカテゴリデータの取得、前回はword2vecを利用したpython実装によるデータのマッチングです。

今回はマッチング結果のデータと思ったことをメモして終わります。 pastebinのデータ量の制限があったので、一部のみです。

  • 結論(というか思ったこと)
    • 商品カテゴリーの1:1での一致はほぼできない
    • トップ10を抽出し、人の目で選ばせればいいかも
  • 各カテゴリーのデータ
  • au Pay マーケット → yahoo!ショッピング
    • 完全一致
    • トップ1データ
  • yahoo!ショッピングau Pay マーケット
    • 完全一致
    • トップ1データ
続きを読む

各ECモールの商品カテゴリ/商品分類を技術を使って一致させたい(カテゴリーをマッチさせる)

前回の続きです。

notshown.hatenablog.jp

今回は pythonの環境と実装したスクリプトの挙動について簡単に説明します。

  • 環境設定
  • 実装
    • 流れ
    • ソースコード全体
    • 部分解説 Timer クラス
    • 部分解説 Word2VecComparer クラス
    • 部分解説 WordSeparatedCategory クラス
    • 部分解説 CompareResult クラス
    • 部分解説 関数 setup_logger
    • 部分解説 関数 conv_csv_to_ws_categories
    • 部分解説 関数 conv_results_to_dict
    • 部分解説 関数 main
続きを読む

各ECモールの商品カテゴリ/商品分類を技術を使って一致させたい(マスターデータをつくる)

ECの商品カテゴリは各ECによって粒度が違ったり表現が違ったり色々ですよね。

例えば商品を複数のECマーケットに出品したいなと思ったとき、商品カテゴリの設定は売れ行きにも影響するのでそんな雑にはできないかと思います。

【ここのECの〇〇というカテゴリは別のECの△△というカテゴリと同じ】と紐付けできたら便利だと思うんですよね。 そこで、技術でどうにかできないかなと調べてみました。

長くなるのでまずは今回はマスターデータを作るところ。

  • 商品カテゴリを探す
  • 商品カテゴリのマスターデータを作る
    • Yahoo!ショッピング
      • カテゴリー一覧ページ
      • カテゴリー2のページ
    • au Payマーケット
      • トップページ
      • カテゴリー2のページ
    • データの取得
      • 取得データ
        • au PAY マーケット
        • Yahoo! ショッピング
続きを読む

【2021/06版】Inkscapeを使いコマンドラインでSVGをPNGに変換してPowerPointに貼り付けたよ

Microsoftが公開しているAzureのアイコン画像集があります。

docs.microsoft.com

しかし、これはSVGなので弊社の利用しているPowerPoint2013では開けません。 今回、そのSVGPNGに変換してPowerPointに貼り付けるまでの流れを記事にします。

SVGPNG

Inkscapeのインストール

Inkscapeをダウンロードしてインストールします。 inkscape.org

私の試したバージョンは1.1, Released on May 24, 2021です。

f:id:NotShown:20210628094739p:plain
インストーラーのダウンロード

Inkscapeコマンドライン実行で変換を行う。

Inkscapeコマンドラインから変換を行うことができます。 Inkscape.com がコマンドライン用のバイナリです。

以下のようなコマンドで変換処理を行うことができます。

cd C:\Program Files\Inkscape\bin
inkscape.com --export-type="png" --export-width="1024" "変換対象.svg"

コマンドライン引数は以下を指定しています。

  • --export-type="png" : PNG出力
  • --export-width="1024" : 出力時の幅

参考

wiki.inkscape.org

なお、出力先はSVGと同じフォルダ になります。注意して下さい。

PowerPointに貼り付ける

このままドラッグアンドドロップで~と試したら 画質が非常に粗くなる という問題点が出てきました。

f:id:NotShown:20210628095341p:plain
アイコンの画質が粗くなる

変換していない既存のPNGと比べてサイズも同じだし何故だろうと色々調べたところ、 PowerPointの画像圧縮が原因でした。

オプションから ファイル内のイメージを圧縮しない(N) にチェックを入れましょう

f:id:NotShown:20210628095505p:plain
オプション画面

チェックを入れた後に同じPNGを貼り付けました。これで想定どおりの利用ができるようになりました。

f:id:NotShown:20210628095645p:plain
イメージ圧縮有無比較

変換をしていない既存のPNGは圧縮していてもキレイに利用できるので何故変換したものがこうなるのかの原因は分かりませんが、画質が粗くなる問題点の解決はできました。

以上です。