今からでも間に合う - にほんブログ村
chevron_left

メインカテゴリーを選択しなおす

cancel
arrow_drop_down
  • Codejock Calendar MultipleResource

    using AxXtremeCalendarControl; using System; using System.Diagnostics; using System.Windows.Forms; using XtremeCalendarControl; namespace CodejockTest_ { public partial class Form1 : Form { AxCalendarControl axCalendarControl; CalendarResource _outlook = new CalendarResource(); public Form1() { Init…

  • Azure DevOps REST API: Exploring List Iteration and Area Path

    list iteration path and area path using azure devops rest api. (adsbygoogle = window.adsbygoogle []).push({}); 環境 nugetパッケージ コード 参考 環境 Visual Studio 2022 Community .NET Framework 4.8 Console App nugetパッケージ Microsoft.TeamFoundationServer.Client [19.255.1] Microsoft.TeamFoundationServer.Interactive…

  • TeamsにGraphを使ってBot投稿するまで

    GraphClientの生成 learn.microsoft.com Chatにメッセージを送信 learn.microsoft.com

  • Using Azure DevOps REST API Without Personal Access Token

    Use azure devops rest api without personal access token. personal access tokenを使ったアプリは運用が面倒なのでこっちのほうがよさげ。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 nugetパッケージ 事前準備 コード 参考 環境 Visual Studio 2022 Community .NET Framework 4.8 Console App nugetパッケージ Microsoft.TeamFoundationServer.Client [19.2…

  • C#を使ってAzure DevOpsでWorkItemを自動作成

    C#でazure devops rest apiを使い、WorkItemを作成する。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 nugetパッケージ 事前準備 コード (追記)おまけ 参考 環境 Visual Studio 2022 Community .NET Framework 4.8 Console App nugetパッケージ Microsoft.TeamFoundationServer.Client [19.255.1] 事前準備 azure devops側でPersonal Access Tokenを取得しておく コ…

  • Azure DevOps REST APIを使用したC#開発の手順

    C#でazure devops rest apiを使う。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 nugetパッケージ 事前準備 コード 参考 環境 Visual Studio 2022 Community .NET Framework 4.8 Console App nugetパッケージ Microsoft.TeamFoundationServer.Client [19.255.1] 事前準備 azure devops側でPersonal Access Tokenを取得しておく コード using Microsoft.Tea…

  • VS拡張(VSIX)を試してみる

    VSIXのプロジェクトを作成し、Visual Studio自体を操作してみる。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 コード 初期化部 アクセス部 環境 Visual Studio 2022 Community .NET 6.0 WinForms コード EnvDTEを使ったらいろいろできそう。 初期化部 private DTE2 _dte; public static async Task InitializeAsync(AsyncPackage package) { await ThreadHelper.Joinable…

  • ZipArchiveを使ってzipファイル生成

    ZipFile.CreateFromDirectoryが使いにくいので1ファイルずつ判断しながらアーカイブ化していく。 ※使いにくい:圧縮対象ディレクトリ内に圧縮ファイルを出力しようとすると例外が出る ※空ディレクトリ判定に時間がかかるのが課題 using System.IO.Compression; public static class ZipFileWrapper { public static void Compress(string srcDir, string outFile) { using var ms = new MemoryStream(); using (var ar =…

  • xmlから読み込んだデータをDataFrameに反映する

    [memo] <?xml version="1.0" encoding="UTF-8"?> <StringTable> <StringEntry Id="1" Res="aaa"/> <StringEntry Id="2" Res="bbb"/> </StringTable> <?xml version="1.0" encoding="UTF-8"?> <StringTable> <StringEntry Id="2" Res="BBB"/> <StringEntry Id="3" Res="ccc"/> </StringTable> <?xml version="1.0" encoding=…

  • 一ヶ月放置した結果

    2月は忙しくて更新出来ませんでしたが、初月に記事数ある程度確保してSEO対策いろいろしたら初月の7割くらいのアクセス数がありました。 またぼちぼち再開します。

  • opencvでパターンマッチング(異なるサイズ)

    前回、パターンマッチを試しましたが、異なるサイズに対応できていなかったので、今回は異なるサイズに対するパターンマッチングを試してみます。 なお、回転とかも同じ考え方でできると思うので傾き違いに関しては割愛します。 また、アルゴリズムについては勉強したわけではないので王道があるのかとかは知らないですし、パフォーマンス面も考慮していません。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 使用するライブラリ 異なるサイズへのパターンマッチ 考え方 コード サイズを変えながら繰り返し 一致度でフィルタをかける 結果 おしまい 環境 VSCo…

  • opencvでパターンマッチング(テンプレートマッチング)

    ある画像の中から、パターン(テンプレート)と一致する個所を検出するパターンマッチングを試してみました。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 使用するライブラリ 使用する画像 検索対象 テンプレート画像 試してみる コード全文 グレースケール化 パターンマッチ マッチ度の高い箇所を表示する 結果 おしまい 環境 VSCode python 3.11.0 使用するライブラリ cv2 パッケージのインストール方法についてはこちら 使用する画像 検索対象 google先生のTOPページ google先生のTOPページ テンプレート…

  • python入門~seleniumで要素を取得する~

    こちらでブラウザをを起動できたので、次はブラウザを実際に操作してみます。 基本は、ページ内の要素(Element)を取得して、その要素に対して操作を要求します。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 使用するライブラリ 要素の取得方法 開発者ツール使って要素を特定 ブラウザを操作する find_element()で要素を取得する キー入力をエミュレートする 入力を確定する おしまい 環境 VSCode python 3.11.0 Edge WEbDriver 使用するライブラリ selenium パッケージのインストール方法…

  • python入門~ブラウザを表示しないでWEB操作~

    ブラウザ操作を自動化する際、裏で自動的に動いて欲しいことも多いかと思います。 今回はその方法の紹介です。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 使用するライブラリ ブラウザを表示しなくする方法 Optionsクラスを使用する コード おしまい 環境 VSCode python 3.11.0 Edge WebDriver 使用するライブラリ selenium パッケージのインストール方法についてはこちら ブラウザを表示しなくする方法 Optionsクラスを使用する ブラウザの表示を抑制するにはOptionsクラスを使用します。…

  • python入門~seleniumの導入~

    webブラウザ自動化のための、selenium導入までの方法です。 スクレイピングしてみたい人はまずはここからはじめましょう。 (adsbygoogle = window.adsbygoogle []).push({}); 環境 使用するライブラリ ブラウザに応じたWebDriverの導入 Edge向けWebDriverを入手する WebDriverの配置 seleniumのインストール ブラウザを起動してページを表示する おしまい 環境 VSCode python 3.11.0 Edge WebDriver 使用するライブラリ selenium 4.8.0 パッケージのインストール方法…

  • python入門~ファイル・ディレクトリの存在確認~

    ファイル・ディレクトリの存在を確認するためには、標準ライブラリosのos.path.exitsts()を使用します。 import os dir = r"c:\hoge" file = r"c:\hoge\piyo.txt" if os.path.exitsts(dir): pass if os.path.exitsts(file): pass python入門Top

  • pythonビルド用に仮想環境を作成する(pipenv)

    pythonファイルをexe化しようとすると、使うライブラリによっては環境に含まれるライブラリを全部含めてexe化してしまいます。 無駄に容量を食わないように、仮想環境を作って必要ライブラリだけをインストールした状態でexe化するのが王道となります。 また、開発の用途によっては使用するライブラリ群も大きく変わってきますし、バージョンに依存した処理を書くことも多数あると思います。 このように、要する環境によって使い分けたい場合に仮想環境が役に立ちます。 pipenvを使う インストール 仮想環境用のフォルダを作る 仮想環境フォルダで環境を構築する 環境の違いの結果を確認する 仮想環境から抜ける …

  • pip installで「Could not install packages due to an OSError」が出た時の対処

    pythonのライブラリをインストールしようとしたら、以下のようなエラーが出てインストールに失敗することがあります。 ↓は仮想環境を作ろうとしてpipenvをインストールしようとしたときのエラー。 ERROR: Could not install packages due to an OSError: [WinError 2] 指定されたファイ ルが見つかりません。: 'C:\\Python311\\Scripts\\pipenv.exe' -> 'C:\\Python311\\Scripts\\pipenv.exe.deleteme' 細かいことは調べていませんが、実行ファイル系を、Lib\…

  • ファイルパスを文字列として入力する際

    ファイルパスを文字列として入力する場合、ディレクトリを\\のようにエスケープ文字付けなくてはいけないのは面倒です。 このような時、文字列のはじめにrを付加すると、エスケープ文字が不要になります # 通常 dir = "C:\\work\\hoge\\piyo.txt" # r付 dir = r"C:\work\hoge\piyo.txt" python入門Top

  • opencvを使ってバーコードを検出

    opencv-pythonを使ってバーコード検出してみる

  • pylinqext v0.5.1更新しました

    平日は更新が捗りませんが、微更新しました pypi.org github.com 更新履歴 こんなの書けるようにしました 更新履歴 v0.5.1 enumerable implement to_pydict() pydict items() / keys() / values() return pylist copy() return pydict こんなの書けるようにしました from pylinqext import enumerable, pydict d = pydict({1:1, 2:4, 3:9}) d.items()\ .where(lambda x: x[0] >= 2)\ …

  • python入門~基本構文②~

    基本構文② 実験結果を整理しました 継承とフィールドとコンストラクタ デコンストラクト コールバックとラムダ式 リスト内包表記 yield と generator ライブラリの再ロード 継承とフィールドとコンストラクタ class Base1: def __init__(self):# コンストラクタ print("Base1.__init()__") self.__private_field = 0 # privateフィールド(__始まり) self._protected_field = 0 # protectedフィールド(_始まり)→ウソ。protectedはないらしい self.pu…

  • pylinq、名前を変えてPyPlに登録しました(pylinqext v0.5.0)

    pylinq、PyPlへの登録の仕方を試してみようと思ったら「似た名前があるからダメ」と怒られてしまったので、名前変えて登録まで済ませました。 pylinq から pylinqext に名前変えてます。 pip install pylinqext でインストールできるようになってます。 ある程度満足する程度には作ったのであとはゆるく拡張していきます。 super-string37.com super-string37.com

  • pylinq v0.0.3

    pylinq v0.0.3 pythonでC#風LINQ書くためのライブラリ

  • pylinq v0.0.1-alpha

    pylinq is a package for C#er to write code like LINQ.

  • googleアドセンス一発合格した

    \(^o^)/

  • pythonでLINQ(実験中)

    pythonでLINQ風に扱えるライブラリ実装してみてます。 形になってきたら出してみます。 飽きなければ。。。 実装中サンプル # 数宇と文字が混ざったリスト p1 = pylist([1,"2",3,4,5,6,"7",8,9,10]) print(p1) # selectというよりはOfType p2 = p1.select(lambda x : int(x)) print(p2) # Method Chain p3 = p1.select(lambda x : int(x))\ .where(lambda x : x % 2 == 0) print(p3) # Sum print(p2…

  • python入門~list、dict~

    listとdictについて細かい説明はなしで書き方サンプルのみ list dict list # 生成 l1 = [] # 空のリスト l2 = ["abc", 123, l1] # 初期値 #操作 l1.append("hoge") # 末尾に追加 l1.insert(0, "piyo") #指定位置に追加 l2.remove("abc") # 要素削除 l3 = l1.copy() # コピー pop = l1.pop(0) # 指定位置の要素を取り出す l4 = ["s", "u", "p", "e", "r", " ", "s", "t", "r", "n", "g"] l4.sort…

  • 特定コミット間のコミットに紐づいた作業項目を取得する

    azure devopsの特定コミット間に紐づいた作業項目を抜き出します。

  • VSCodeでpythonのインテリセンスが効かない時の対策

    VSCode+pythonでインテリセンスが表示されない時の対策の一つです

  • python入門~azure devops rest apiを使う~

    pythonでazure devops rest apiにつないでみました

  • azure devopsの環境を無料の範囲で構築する

    azure devopsの環境を無料の範囲で構築するまでの流れを紹介しています。

  • python入門~DataFrameの表をDataViewerできれいに表示~

    VSCodeを使って、DataFrameの内容をきれいに表示する方法です。

  • python入門~DataFrameでRDB風に扱う~

    pandasはRDBを扱う機能は持っていないようです。 が、持っている機能を使えばRDB風に扱うこともできます。 ここで使用するのが、 DataFrame.merge です。 さっそく使い方について見ていきます。 環境 使用するライブラリ データの準備 主キーでつなげる おしまい 環境 VSCode python 3.11.0 使用するライブラリ pandas パッケージのインストール方法についてはこちら データの準備 簡単なRDB風のデータ構造を作ってみます。 社員番号 社員情報ID str int 社員情報ID 社員名 所属部署ID int(主キー) str int 所属部署ID 所属部署…

  • python入門~pandas DataFrame基礎①~

    pythonをはじめようと思ったきっかけが、機械学習とかディープラーニングという人も多いのではないでしょうか。 pandasは、データ解析するのに役立つ機能を豊富に持ったライブラリです。 さっそく何ができるのか見ていこうと思います。 はじめに 環境 使用するライブラリ データの準備 Kaggleのサイトでユーザー登録 データの取得 ユーザー登録できない人は データを読み込む CSVを読み込む 読み込んだDataFrameを表示してみる データにアクセスする おしまい はじめに 環境 VSCode python 3.11.0 使用するライブラリ pandas パッケージのインストール方法について…

  • 駆け出しプロマネに向けた見積もり手法

    ソフトウェア開発において、見積もりは必須の作業です。 開発スタイルは様々ありますが、共通して大事と思うポイントについて紹介します。 全部が全部必要というわけではありません。 判断材料として武器を多く持てるようにしましょう。 ※個人の経験上、CCPMライクな手法に寄ってるとは思います。 想定読者 見積もりの手法 2点見積もり ABPとHP 見積もりポーカー 見積もる前の事前準備 過去のデータを集める 有識者とネゴをとる 見積もりの合意形成に必須の項目 前提条件を合わせる 完了条件を合わせる 見積もりのプロセス WBSを作る 分解したタスクについて見積もる 必要に応じて、見積もるための調査をする …

  • python入門~C#からpythonを呼び出す~

    C#からpythonnetを使ってpythonを呼び出します

  • python入門~はてなブログの記事一覧を取得する~

    super-string37.com 上記記事の通信部分をpythonで書き直してみました。 結果、めちゃくちゃ簡単でした。 pythonハマりますねこれは。 環境 必要パッケージ ソース とりあえず動くところまで 処理を分割して読みやすくする クラス化して必要な処理だけを公開 おしまい 環境 VSCode python 3.11.0 必要パッケージ requests HTTP通信するのに使用します feedparser ATOMを解析するのに使用します パッケージのインストール方法についてはこちら ソース とりあえず動くところまで import requests import feedpar…

  • python入門~基本構文~

    ここではpythonの基本構文について紹介します。 個人的な備忘録の意味合いが強いです。 基本構文 for while if 例外キャッチ 例外発行 コメント 関数の宣言 クラスの宣言 基本構文 for for num in range(5) : print(num) for num in range(10, 20) : print(num) for a in array : print(a) break / continueもある while while 条件式 : 処理 if if 条件式 : 処理 elif 条件式 : 処理 else : 処理 例外キャッチ try : 処理 excep…

  • python入門~pipを使ってパッケージをインストール~

    はじめに 試しにインストールしてみる おしまい はじめに pipとは、pythonのパッケージ管理ツールで、最新のpythonであれば標準でインストールされています。 pythonには多くのライブラリが提供されているので、うまく活用することで、車輪の再発明をすることなく目的の機能の開発に専念できるでしょう。 試しにインストールしてみる HTTP通信でGETを行いたいのでrequestsというパッケージをインストールしてみます。 VSCodeからターミナル(powershell)を起動し、以下を入力します。 pip install requests いろいろログが出ますが最終的に Success…

  • VSCodeでエディタとターミナルを行き来するショートカット

    VSCodeを使っていると、エディタとターミナルを行き来することはよくあります。 が、デフォルトではそれらを行き来するショートカットキーは備わっていません。 キーボードユーザにとってそのためにマウスに手を伸ばさなくてはいけないなんて死活問題です。 この記事では上記課題を解消する方法を紹介します。 ショートカットキーの設定ファイルを開く キーの割り当てを記述する ショートカットキーの設定ファイルを開く ショートカットキーの設定はkeybindings.jsonというファイルに記載されています。 以下の手順で開くことができます。 「Ctrl+Shift+P」を押下し、コマンドパレットを開く 「sh…

  • python入門~環境構築~

    この記事では、pythonの環境構築について紹介します。 pythonのインストール Visual Studioからのインストール 公式からのインストール インストールできたこととバージョンの確認 開発環境のインストール Visual Studio VSCode どちらを使うのがよいか? 使ってみる hello, worldの表示 おしまい pythonのインストール まずはpython本体をインストールしていきます。 Visual Studioからのインストール こちらを選択する方はすでにVisual Studioはインストールされていると思うので、その中でのpythonインストール方法です…

  • IServiceCollectionとコンストラクターインジェクションの作りを理解する

    BlazorというかASP触り始めてまだ数日ですが、IServiceCollectionとコンストラクターインジェクションの動きがわからなかったので自分で実装してみました。 仕組みに興味がある方の参考になればと思います。 環境 前提知識 早速書いてみました App ServiceProvider IAppBuilder AppBuilder IServiceCollection ServiceCollection 呼び出し側 おしまい 環境 VS2022 .NET6 コンソールアプリ 前提知識 DI(Dependency Injection)自体の説明はしません。 仕組みや設計の理解がメインな…

  • はてなブログの記事をHttpClientで取得する

    Blazor Server/Clientの実装をもっと試したかったので作ってみました。 あとでデータベースも扱ってみたいということもあり、ある程度のデータがあるはてなブログの情報を取得してみます。 構成 事前準備 はてなブログのAPIキー取得 サーバー側の実装 コントローラーの実装 BASIC認証 クライアント側の実装 Microsoft.SyndicationFeed.ReaderWriter ページの追加 読み込み処理の実装 出来上がったもの おしまい 構成 VS2022 .NET6 Blazor WebAssemblyプロジェクト HTTPS用の構成 ASP.NET Core Hoste…

  • C#でタイトルバーをカスタマイズする

    WinFormsでタイトルバーをカスタマイズしてみます。 カスタマイズするためには クライアント領域を拡張する 拡張した領域はどのように扱われるのか システム操作が行えなくなる 通常のクライアント領域と同等に扱える タイトルバーっぽくしていく ToolStripでダークモードっぽく ハイライト色の微調整 リサイズ・移動に対応する リサイズに対応する 移動に対応する 出来上がり 見た目 ソース カスタマイズするためには いろいろなやり方があるようです。 FormBorderStyle.Noneにする 独自に描画する クライアント領域を拡張する やり方については以下のサイトを参考に「クライアント領…

  • メソッドハイジャック

    C#のsealedメソッドをオーバーライドする 物騒な表現ですが、要はsealedなメソッドをオーバーライドできるらしい。 書いてることは分かるけど、ILコードやマシンコードまで把握した上での処理はたどり着ける気がしません。 世の中には変態と呼べる人がたくさんいるんだろうなーという紹介。

  • twitter連携てすと

    連携てすと ↓ されなかった。 また帰った調べよう。 今日から仕事初め

  • タイトルバーをダークテーマにする

    WinFormsでダークテーマは実現できるのかを調べてみた。 結論、費用対効果は悪そう。

  • GitHubのTrafficを取得して一覧表示する

    冬休みの自由研究アウトプット 作ったもの 調べたもの 構成 中身 ◆Blazor WebAssembly ◆Blazor Server ◆GO Blazor側のソース おしまい 冬休みの自由研究アウトプット 年末年始ひたすら調べて実験して最終的に作ったもの 作ったもの GitHubのユーザーのリポジトリごとのTrafficをブラウザで表示するページ。 GitHubからも見れるけど、リポジトリ単位でしか見れなくて面倒だったので。 数が少ないのは気にしない。。。始めたばかりだし。 調べたもの 基本的なこと Server - Client GO 基本構文 配列の書き方 ループの回し方 HTTPのハン…

  • 簡易WEBサーバーを立ち上げる

    GOでの開発環境が整ってきたので super-string.hatenablog.com 早速WEBサーバーを立ててみる 環境 Ubuntu 22.04 GO 1.19.4 VSCode 書こうとしてみたら helloとだけ打ってみたらコードスニペットが出てきて、選択したら以下のコードが自動で入力された。 package main import ( "fmt" "net/http" "time" ) func greet(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World! %s", time.Now())…

  • ホスト名を変更したい

    デフォルトで長ったらしいホスト名がついてた 長ったらしい名前がついてて邪魔なので、短く変更できないか調べた。 @以下をホストと呼ぶこと自体知らなくて調べ方に難儀した。。 コマンド自体は比較的すぐ見つかる。 $ sudo hostnamectl set-hostname [newName] 実行してみるが・・・動かない。 System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down 何言ってるかさっぱりなのでググる旅へ。 結…

  • UbuntuにGO言語環境をインストール

    Ubuntu環境が作れたはいいが・・・ super-string.hatenablog.com ↑で環境作ったので、何しようと考えたときやっぱWEB関連だなぁってことでGO言語を選択。 環境 Ubuntu 22.04 GO 19.4 インストール $sudo apt install -y golang-go 失敗した。 ↓を実行した後にもう一回実行したらインストールできた。 なぜかはわからぬ。 $sudo add-apt-repository ppa:longsleep/golang-backports $sudo apt update これだけだと使いにくいのでVSCode拡張を使う WSL…

  • Versionの確認方法

    Ubuntu lsb_release -a GO go version

  • WindowsでLinuxを使う

    なんでLinux? WEBの勉強のためにいろいろ調べてると、WEBサーバーはLinuxで構築することが多いそうな。 説明は以下のサイトがわかりやすかった。 eng-entrance.com で、比較的最近のWindowsでLinux環境を構築できるようになったとのこと。 そもそもLinux自体も使ったことないので手を出してみることにした。 WSLをインストールする WSL(Linux用Windowsサブシステム)をインストールする。インストールするというか、機能を有効にする。 PowerShellとかコマンドプロンプトを管理者権限で起動して以下のコマンドを打つだけ。 インストールが完了したら再…

  • Friendlyを使って簡単にDLLインジェクション

    昔からお世話になってるライブラリ Codeer さんで開発されているFriendlyというライブラリ。 最近またお世話になったので紹介も込めて。 Friendlyって? 本家で紹介されてるので一言でいうと、変態ツール。 今回はこのライブラリを使ってDLLインジェクションを簡単に実現してみた。 環境 VS2022 .NET6 構成 プロジェクト 用途 Friendly_DLLInjection DLLを注入したい対象exe InjectorApp DLLを注入するためのテストexe InjectTarget 注入したいdll それぞれのプロジェクトに依存関係はない。 説明 InjectTarge…

  • Blazor×WebAssemblyで図形描画

    ブラウザ上でクリックした位置に図形を描画したい WinFormsでできていたことをブラウザでどれだけ実現できるのかを試してみた。 BlazorもWebAssemblyもASP.NETもこれが初挑戦。 そっちを調べるほうが時間かかった。 Blazor×WebAssemblyで図形描画 できた。 環境 VS2022 .NET6 構成 Blazor WebAssembly アプリ HTTPS用の構成 ASP.NET Core Hosted 準備 Blazor.Extensions.Canvas(1.1.1)のnugetパッケージをインストール 書いてみる Canvasの準備 WinFormsのPic…

  • WPFのコントロールをWinFormsで使う

    WinFormsでリッチなUIを使いたい 大規模プロジェクトほど環境を移行するのは難しい。 でも最近の?リッチUIは使いたい。 を手軽に実現できないかを調べてた結果。 WPFコントロールをWinFormsで表示 結果、できた。 環境 VS2022 .NET6 プロジェクト構成 WinFormsプロジェクト ↓ WPFラッパープロジェクト ↓ WPFカスタムコントロールプロジェクト やりたいこと ツールボックスから配置できる できるだけ移植しやすくする リッチに見せられる部分を優先 そもそも仕組み的に可能なのか? そもそも仕組みが提供されていた。 ElementHost クラス (System.…

arrow_drop_down

ブログリーダー」を活用して、super-stringさんをフォローしませんか?

ハンドル名
super-stringさん
ブログタイトル
今からでも間に合う
フォロー
今からでも間に合う

にほんブログ村 カテゴリー一覧

商用