命名って難しい

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

どうにかドキュメントをmarkdownで書かせてhtmlに変換したい

ドキュメントはOfficeのExcelやWordの弊社ですが、やはりバージョン管理システムを利用していると変更点を知りたいことがあるので、markdownで書いて欲しいと思っています。

しかし、markdown自体も社内では認知されておらず、また閲覧することもままならないので、htmlに変換して見せようと思いました。ただし、他の作業者(markdown知らない)を考慮し、環境設定も考えてみます。

  • 環境
  • やりたいこと
  • 環境設定スクリプト
    • 実現したい環境
    • pandoc…の前にwinget
    • pandoc
    • pandoc用のテンプレート導入
    • まとめ(setup_documentation_env.ps1)
  • html出力スクリプト
  • githubにサンプルを置きました。
続きを読む

PowerShellでEDINETのAPIを叩く(開示情報)

株式投資や取引先管理など、開示情報が必要な時があります。 そこで電子的な方法で閲覧するためのサイトがEDINETです。

disclosure.edinet-fsa.go.jp

EDINETにはWebAPIがあるので、今回はこれを呼び出してデータを取得してみます。

  • 環境
  • まずは規約から
  • API
    • 書類一覧取得 API
    • 書類取得 API
  • サンプル
  • APIを触ってみての感想
続きを読む

PowerShell5.1でLINEWORKS API2.0を叩く!JWTで苦労したService Accountのアクセストークン取得編

弊社採用のLINE WORKSなのですが、今までAPI1.0を利用していたのですが、廃止予定が迫ってきたのでAPI 2.0を触りはじめました。

developers.worksmobile.com

LINE WORKS API 2.0のリリースに伴い、LINE WORKS API 1.0は2023年4月30日をもって提供を終了いたします。
提供の終了前であっても、サービスの仕様変更等によりLINE WORKS API 1.0の一部が正常に利用できない場合があります。できるだけ早いLINE WORKS API 2.0への移行をご検討ください。

とのこと。

弊社はテック企業ではないので、マシンの環境をおいそれとアップデートしたりできませんし、開発用端末も他部署の業務用PCと同様の環境となっています。

また、作成したPowerShellスクリプトも配布する時があるので、PowerShell5.1(Win10標準)環境での実現にこだわっています。

本記事は下記の環境で LINE WORKS API 2.0のService Account認証し、アクセストークン取得するまでを実現したソースコードを説明します。

もくじ

  • アクセストークン取得までの流れ
    • 1. アプリ開発者は、Developer ConsoleよりService Accountを発行する
    • 2. アプリは、Service Accountを使用してJWT生成する(RFC-7519)
      • 共通して利用する、Base64URLを実装する。
      • Header
      • Payload
      • Signiture
    • 3. アプリは、JWTを電子署名する (signature) (RFC-7515)
      • PowerShell 6.2 なら簡単らしい(私の環境では動作未検証)
      • .NET 5以降なら簡単らしい(私の環境では動作未検証)
      • 前提とした環境での解決方法【PEMをopensslkey.csで読み込む】
      • opensslkey.cs をPowerShellで利用して署名処理を実装する
    • 4. アプリは、LINE WORKSにAccess Tokenの発行を要求する (RFC-7523)
    • 5. アプリは、Access Tokenの有効期限が過ぎた場合、Refresh Tokenをもとに再発行する
  • それぞれの処理をまとめたソースコードGitHub に置いています。
続きを読む

検索ボックス入力中の文字列を取得してリアルタイム絞り込みを行う

弊社のアプリを進化させるため、よくWebであるやつをWindowsFormsで再現してみました。

画面1

こんな感じの画面でテキストボックスに入力すると・・・

絞り込み

変換途中の文字でこんな感じで絞り込める、そんな感じのを実現します。

  • 原理
    • 入力中の文字列の取得
      • コンテキストの取得 ImmGetContext
      • コンテキストの開放 ImmReleaseContext
      • 入力中の文字列の取得 ImmGetCompositionStringW
    • 絞り込み(力技)
  • ソースコード
    • DataGridViewのデータについて
    • テーブルの構築
    • IMM用クラス
    • KeyDownイベント
    • フィルタ処理
  • サンプルプロジェクト
続きを読む

PowerShellで作ったモジュール(psm1)をプライベートなリポジトリに発行して開発チームで共用する

今日はPowerShellを。

1つの処理の流れで複数のスクリプト(ps1)で共通して使う処理をモジュール (psm1)にまとめて実装することがあります。

それらのモジュールは公開されたPowerShell Galleryに発行することで、Install-Moduleコマンドを使って、世界中で使ってもらうことができます。

www.powershellgallery.com

しかし、開発チームなどだけで共有したい場合、どのように共有すればいいだろう、というのが今回の記事の発端です。

  • 調べたこと
  • まとめ&感想
    • まとめ
    • 感想
続きを読む

iPhone,iPadで使える、Twitter対応魚拓ショートカットつくってみた

Twitterで読みたい記事ツイートをブックマークに入れていたら見返した時にその人が消していたことが何度かありました。

記事だけでなくそのコメントも貴重な情報なのでTwitterで簡単に魚拓を取れるショートカットを作ってみました。

  • 魚拓ってなに?
  • どんなことをするショートカット?
  • 対応アーカイブサービス
  • ショートカットをダウンロードするための共有リンク
  • 使い方
    • 1.ツイートの共有アイコンをタップ
    • 2. 共有をタップ
    • 3.好きな魚拓サービスのショートカットをタップ
    • 4. 魚拓サービスのURLがブラウザで開かれます。
      • Internet Archiveの場合
      • Archive.todayの場合
      • Web魚拓(Megalodon)の場合
  • ロジック解説
  • ショートカットを作ってみた感想
続きを読む

Powershellでpythonをセットアップしつつ、SQL Serverのテーブルなどの定義をスクリプトに出力するパッケージを実行するPowershellスクリプト

新しい社内アプリケーションを作る際、データベースも含めバージョン管理したいと思い、SQL ServerDDLを出力する方法を色々調べていました。 今まで、SQL Server Management Studioを利用し、GUI上で操作していたのですが、コマンドラインで実行できるものとしてpythonのパッケージを発見しました。

ただし、社内の開発用端末にはpythonが標準でインストールされていないので、そのpythonのセットアップ(embeddableです)も含めて環境構築するスクリプトを作りました。

  • 環境
  • Pythonパッケージについて
  • pythonの環境構築の流れ
    • python embeddableバージョンのダウンロード・展開
      • ダウンロード~展開までのコードサンプル
    • pipのインストール
      • pipインストールのサンプルコード
    • mssql-scripter のインストール
      • mssql-scripter のインストールのサンプルコード
  • 作ったものはGitHubに公開しました
    • ファイルの説明
      • Setup.ps1
      • ExportDDL.ps1
        • ExportDDL.Config.json
    • ExportDDL.ps1を実行すると・・・
続きを読む