- 1. MSTICpyの実践活用の一例の紹介 SANS APAC DFIR Summit 2023
- 2. bytes型を要素としたリストを、str型を要素としたリストにする(Python 3)
- 3. ChatGPT APIをお試しで使ってみる。
- 4. Autokey フレーズとタスクのツール
- 5. Djangoでテーブルを作成
- 6. djangoでadminサイトへのリンクを動的に生成する方法
- 7. python activateしても仮想環境にはいれない
- 8. Djangoのstaticファイル
- 9. Django初期設定のコマンドをメモ
- 10. VSCodeのDevcontainerでpython環境構築
- 11. streamlit helloを実行しようとすると、zsh: command not found: streamlitとでてしまう件
- 12. 【2023年版】PythonでMultiSetを使う
- 13. ChatGPTと会話しながらPythonでデータを可視化するアプリケーションを作成してみたのでメモメモ
- 14. ChatGPTと会話しながら簡単なPython実行環境を構築したのでメモメモ
- 15. 仮想「データサイエンティスト採用試験」作って採点してみる
- 16. Djangoでカバレッジの取得と, Codecovでカバレッジ確認をできるようしてバッジを付ける
- 17. 「オリジナルのジェットコースター」の画像をSketch to imageでAI生成してみた
- 18. chatGPTを使用して, Youtubeの字幕を要約する (3)
- 19. 【Python】変数名と値を同時に表示する小技
- 20. C言語でpythonのモジュールを作る第一歩
MSTICpyの実践活用の一例の紹介 SANS APAC DFIR Summit 2023
# 伝えたいこと
2023年9月にSANS APAC DFIR Summit 2023にて
`「msticpyの実践活用: 高度な脅威ハンティングを実現すべくSIEMとの虹の懸け橋となる」`
と題して、Microsoftの脅威ハンティングツール msticpyの実践活用の方法の一例の紹介とmsticpyをAPACで布教させていただきました。
スライド資料の共有と、35分の発表時間に伝え切れなかったことをこちらで書きます。# APAC DFIR Summitの発表スライド
持ち時間は35分で、Live Onlineの当日は700名ほどが参加されていたそうで、私は予定通り日本語で話し、同時通訳の方が英語に翻訳されました。Evaluationシートで コンテンツは5段階評価で平均4.31をいただき、プレゼンは平均4.21をいただくことができ一安心です。
日本語版の発表スライドはこちらです↓。
英語版「Practical msticpy use: ra
bytes型を要素としたリストを、str型を要素としたリストにする(Python 3)
## はじめに
IPTCInfo3で画像ファイルの情報を取得すると、各要素の型はbytes型(文字列の文字コード)で返されます。
たとえば、キーワードを取得すると、「bytes型を要素としたリスト」を返してきます。「2月,冬,雪,ダム,雪景色,青空,サンプル」であれば、`[b’2\xe6\x9c\x88′, b’\xe5\x86\xac’, b’\xe9\x9b\xaa’, b’\xe3\x83\x80\xe3\x83\xa0′, b’\xe9\x9b\xaa\xe6\x99\xaf\xe8\x89\xb2′, b’\xe9\x9d\x92\xe7\xa9\xba’, b’\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x97\xe3\x83\xab’]`が返されます。
これを`[‘2月’, ‘冬’, ‘雪’, ‘ダム’, ‘雪景色’, ‘青空’, ‘サンプル’]`としたいので、各要素をstr型にしたリストに変換する方法を確認しました。
## bytes型を要素としたリスト
IPTCInfo3が返してくるリストを想定しています。
“`python
#
ChatGPT APIをお試しで使ってみる。
## 背景
入力したキーワードからクイズを生成してくれるWebアプリを作りたく、ChatGPT APIを利用するにあたり、準備作業を記事にしてみました。## 準備
以下のサイトを参考に実施しました。
まずはOpenAIのサイトにアクセスしてログインします。
アカウントがない場合は、アカウントを作成します。
https://openai.com/productログイン後、以下のサイトからAPI Keysを発行します。
https://platform.openai.com/account/api-keysこんな感じの画面
![](https://storage.googleapis.com/zenn-user-upload/be923b2f4ec0-20230720.png)「Create new secret key」を押下して、適当なAPIKey名を入力、
「Create secret key」をクリックしたら、一度だけキーが表示されるので控えておきます
Autokey フレーズとタスクのツール
+ Linux Mint21.1
+ Python3すべてが書かれいます。 [Welcome to AutoKey! — AutoKey Main 0.96.0 documentation](https://autokey.github.io/)
## AutoKeyについて
+ Wikipedia 翻訳
“`
AutoKey を使用すると、ユーザーはホットキーとトリガー フレーズを定義して、
事前定義されたテキストに展開することができ、タイプミスや一般的なスペルミスの修正やテキストの定型セクションの挿入など、頻繁または反復的なタスクを自動化できます。
“`## AutoKeyの2つの機能を持ちます。
:::note alert
変更したとき、Saveを忘れないこと。
:::### テキスト置換
テキストエディタなどでユーザが、あらかじめ決めてある単語を入力します。
エンターキーを押下した時、登録していたテキスト文に置換してくれます。
![Auto01.png](https://qiita-image-store.s3.ap-northeast-1.am
Djangoでテーブルを作成
# Djangoでワンパン!テーブルを作成する方法
今回も初心者の人、または僕自身のアウトプットのための記事です。
dbはデフォルトのsqlite3です。
三択のクイズアプリを作成する際のテーブルを考えます。必要なテーブルは
・テーマ
・問題文
・選択肢です。
## models
“`
from django.db import models# Create your models here.
class Theme(models.Model):
theme_name = models.CharField(max_length=999)def __str__(self):
return self.textclass Question(models.Model):
theme = models.CharField(max_length=100)
question_text = models.CharField(max_length=999)def __str__(self):
return
djangoでadminサイトへのリンクを動的に生成する方法
# まとめ
html 内で以下のようにリンクを作成すれば行ける.“`django
管理サイト
“`
### メモ
django でサイトを作成しているとき管理サイトへ移動したいとき予めボタンを作成しておいて簡単に移動できるようにしたかった.
djangoでは/adminで管理サイトに移行されているがセキュリティの都合上urlをadmin以外に変更したほうが良い.
そのためなんのurlに変えたか分からなくなるため動的生成して簡単に移動できるようにしたかった
djangoは国内の利用者が少ないようで日本語で検索しても見当たらなかったためメモ代わりにまとめた# 参考サイト
https://stackoverflow.com/questions/694477/getting-django-admin-url-for-an-object
python activateしても仮想環境にはいれない
# activateしても入れない
コマンドプロンプトに仮想環境名(.venv)がでているにもかかわらず、pip freezeをすると相変わらず仮想環境に入れていない環境である。このような場合の対処方法。#解決方法
仮想環境名が.venvの場合、.venv\Scripts\activate.batをメモ帳で開いて、
“`
set VIRTUAL_ENV=(仮想環境のパス)
“`
の記述を見て、仮想環境.venvの親フォルダの名前を上のパスのフォルダ名と一致させることで上記の問題を解決できる。仮想環境を構築したときのフォルダ名からフォルダ名を変更してしまうと仮想環境にうまく入れなくなるっぽい。フォルダ名が一緒で、他のフォルダに持っていったときは正しく動いた何はともあれ、仮想環境を構築したときからフォルダ構造は変えない方が安全っぽい。仮想環境というからにはポータブルな感じがしてたのになぁ…。
Djangoのstaticファイル
# static
Djangoで静的ファイル(js css image)等を使用する際に使います。
サーバーで動的な動きをしないファイルですね。Djangoでは以下のようなディレクトリ構造なのでtest_web内にstaticディレクトリを打ち込みます。
“`
.test
├── db.sqlite3
├── manage.py
├── test_app
│ ├── __init__.py
│ ├── ////省略////
└── test_web
├── __init__.py
├── templates
├── models.py
├── urls.py
├── views.py
└── test_web <---ココ ├── js ├── css └── images ``` ## setting セッティングファイルに以下のコードを書いておけば問題ないです。 ``` STATIC_URL = 'static/' ``` ## staticファイルの読み込み 面倒と
Django初期設定のコマンドをメモ
追記予定あり…
# Django初期設定1 Djangoプロジェクトを作成します。
“`jsx
django-admin startproject quiz_project
cd quiz_project
“`2 Djangoアプリを作成します。
“`jsx
python3 manage.py startapp quiz_app
“`3 プロジェクトの`settings.py`でアプリを登録します。
“`jsx
INSTALLED_APPS = [
…
‘quiz_app’,
…
]
“`
VSCodeのDevcontainerでpython環境構築
VSCodeのDevcontainerアップデートで記載方法が変わっていたので備忘録として、簡単な環境構築をまとめてみました。
# 環境
・Visual Studio Code
・Docker DesktopVSCodeの拡張機能として以下をインストール
・Dev Containers# サンプル構成
“`
sample/
┣ .devcontainer
┃ ┗ devcontainer.json
┃
┗ sample.py
“`“`:devcontainer.json
{
// 接続するコンテナの名前
“name”: “Python 3.11 Dev”,// 利用するコンテナイメージ
“image”: “python:3.11-slim”,// コンテナ起動時のホストとの疎通ポート
“forwardPorts”: [
5000
],// コンテナビルド時に実行したいコマンド
“postCreateCommand”: “apt-get updat
streamlit helloを実行しようとすると、zsh: command not found: streamlitとでてしまう件
会社でpythonを使った開発を始めようということで、streamlitを勉強しようと思い、streamlitを起動しようとstreamlit helloしたら、
“`
zsh: command not found: streamlit
“`
の文字が、、。
パスが通ってないのか。。
調べてみると
pip install streamlit実行時にどこにインストールされたのかが、吐き出されるwarningに出力されているとのこと。
“`
WARNING: The script pygmentize is installed in ‘/Users/ユーザー名/Library/Python/3.8/bin’ which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use –no-warn-script-location.
WARNING: The scripts f2py, f2py3 and f2py3.8 are inst
【2023年版】PythonでMultiSetを使う
Atcoderの2023年8月の言語アップデートに伴い、Pythonで`sortedcontainers`ライブラリが使えるようになりました。平衡二分木を使ったMultiSetはPythonにないので、今後は`sortedcontainers`の`SortedList`が使えそうです。
## SortedListのメソッド一覧と計算量
[Grant Jenksの公式ドキュメント](https://grantjenks.com/docs/sortedcontainers/sortedlist.html)を参照しました。| メソッド | 説明 | 計算量 |
|————————|——————————————————————————-
ChatGPTと会話しながらPythonでデータを可視化するアプリケーションを作成してみたのでメモメモ
どうもこんにちは。
Pythonチャレンジ第2弾です。第1弾で環境構築をしていますので、先にそちらを参照してみてください。
↓第1弾はこちら↓
https://qiita.com/PDC-Kurashinak/private/355fcd920aa6803e59f3
第1弾でPython実行環境構築したから何か簡単なアプリ作ってみようと思って作ってみました。
今回は、「CSVデータをグラフで可視化するアプリケーションを作ってみた」って感じです。
# 概要
要件としては以下のような感じです。
1. CSVデータを分析したい
1. 分析結果を可視化したい上記要件をPythonで実現してみました。
# 構築方法
## 1. 必要なライブラリを追加
以下のコードを`requirements.txt`に記述します。(ライブラリについては最後に説明をしておくこととします。)
“`makefile
Flask==2.0.1
pandas==1.3.3
matplotlib==3.4.3
“`## 2. Flaskアプリケーションの作成
python_testディ
ChatGPTと会話しながら簡単なPython実行環境を構築したのでメモメモ
どうもこんにちは。
たまたま一日暇だったので、勉強がてらPythonの実行環境をdockerを使用して構築してみました。なんの筋道も立てずに「環境構築してみよー」と思って始めてみたのですが、やはり**ChatGPT**さんにお世話になりました。
# 下準備
下準備として、python環境を構築するためのディレクトリを作成しておきます。
プラスでsample.pyファイルに`print(“hello world”)`を記述して保存しておくと良いです。# AIとの会話の内容
まず、以下のように雑に教えを乞いました。
“`
Macbookのローカル環境でDockerを使用してPythonの開発環境を構築したい。自分のPCには、/Users/test_user/code/python_testディレクトリを作成した。
python_testディレクトリを作業用ディレクトリとして開発環境構築をする手順を教えて。python_testディレクトリには、sample.pyというファイルが配置されていて、`print(“hello world”)`のコードのみが?記述されてい
仮想「データサイエンティスト採用試験」作って採点してみる
# はじめに
仮想です。
今の所弊社ではこの「業務未経験可のデータサイエンティスト求人」及び「それ用の試験」は実施しておりません、ご了承ください。
そのうちするかもしれないけども。### 動機
– 異業種からの転職組・実務経験なし組用にスキルチェック課題を作りたい
– 試しに作ってみると採用云々関係なく、基礎の理解に役立ちそうな練習問題になりそうなので公開しておきます
– よさそうなら本当に試験として使いたいなぁ### 試験目的
– 設定された実務っぽい課題に対して、適切に「仮説の設定・方針の設計・分析・検証・考察」の流れが組めるかを確認する
– 明確な答えがある問題ではありません
– 精度やモデルの高度さは度外視
– うまく精度出ていなくてもいい
– もっと言うとプログラム組めてなくても流れが説明できていれば減点はない・・・という旨を課題を提示したときに先に説明する想定
↓↓↓作ってみた試験 ここから↓↓↓
# 仮想試験問題
## 問題設定
データサイエンティストであるあなたに、以下のような相談が持ち掛けられました。
相談者はWebコンテンツ作
Djangoでカバレッジの取得と, Codecovでカバレッジ確認をできるようしてバッジを付ける
# django でカバレッジを確認する方法
coverage.py を使用することで確認できる.
とりあえずインストール“`bash
pip install coverage
“`djangoでテストを書いている前提で進める.
テストの書き方は下記を参考にすると良いhttps://zenn.dev/tmasuyama1114/articles/django-how-to-unit-test
通常は以下のように実行してテストを行うと思う
“`bash
python3 manage.py test
“`カバレッジを取得するときは,
“`bash
coverage run –source=’.’ manage.py test
“`これでカレントディレクトリ以下のファイルはすべて対象にしてカバレッジを取得する.
カバレッジを確認するには,“`bash
coverage report
“`で確認可能
ここでCodecov の連携は以下のサイトから GitHub と連携しておく必要がある.https://github.com/apps/cod
「オリジナルのジェットコースター」の画像をSketch to imageでAI生成してみた
[Supership](https://supership.jp/)の名畑です。[今剣](https://twitter.com/trampshunya/status/1347903977552113665)への想いをありったけ込めて[すえひろがり](https://musical-toukenranbu.jp/pages/suehirogari_ranbuyagaimatsuri)の完走を応援しています。
## はじめに
前回「[「食パンをくわえて走る女子高生」のイラストをSketch to imageでAI生成してみた](https://qiita.com/nabata/items/034766f85499423c9e00)」という記事を書きました。[Stable Diffusion](https://ja.stability.ai/stable-diffusion)の提供元[stability.ai](https://stability.ai/)による画像編集ツール[ClipDrop](https://clipdrop.co/)が提供する**Sketch to image**
chatGPTを使用して, Youtubeの字幕を要約する (3)
# 更新履歴
2023/09/19 : GitHub Actions の設定ファイルを追加# 振り返り
前回chatGPTを使って字幕要約ツールを作り, REST APIを作って見たいという形で終わっていた.
2023年5月に公開して, 2023年8月頃に着手した形になる.https://qiita.com/nagato0614/items/ab163d32ff08086e9be7
# はじめに
APIではないがDjangoを使用してYouTube要約Web appを作成して公開するところまでできた.
大体1ヶ月ほどでURLを渡して要約を表示するところまでできたので,
どのようにして実装して, どこで詰まったのかなどをまとめる.
開発の際には, chatGPT, GitHub Copilotなどをフル活用して開発を行った.https://www.nagato-app.com/
# 開発環境
– OS : Windows 10
– IDE, エディタ : PyCharm
– バージョン管理 : GitHub
– CIツール : GitHub Actions
– Web
【Python】変数名と値を同時に表示する小技
# 先に結論
置換フィールド`{}`内に記述した変数の後に`=`をつけるだけです
“`python
hoge = “Hello, Python!”
print(f”{hoge=}”)
“`
↓ 出力結果
“`
hoge=’Hello, Python!’
“`# 少し解説
pythonにはフォーマットメソッドというものがあり、この記述はフォーマットメソッドの機能の1つです。
下記のように記述することで`{}`内に任意の値を入れることができます。
“`python
hoge = “Python”
print(“Hello, {}!”.format(hoge))
“`
↓ 出力結果
“`
Hello, Python!
“`クォーテーションの前に`f`もしくは`F`をつけることで`{}`内に変数をそのまま入れることができます。
ここに`=`を追加することで最初に紹介したように、変数名と値を同時に表示することができます!
“`python
hoge = “Python”
print(f”Hello, {hoge}!”)
“`# まとめ
変数
C言語でpythonのモジュールを作る第一歩
Cでpythonのモジュールを作る。第一歩。
frというテストモジュールを作ります。### 環境
arch linux
python 3.11
gcc 13.2.1 20230801
GNU Make 4.4.1### モジュール構成
“`
fr.Open Trueを返す。
fr.Close Trueを返す
fr.fr 0.5を返す。
“`### モジュールを置く、ユーザーのlibraryディレクトリ
$HOME/lib/
ないなら、
“`
mkdir -p $HOME/lib/
“`として、作っておきます。
### モジュール本体ソース
“`fr.c
#include
#include
#include//
// Open()
//
static PyObject* Open(PyObject *self,PyObject *args) {
Py_RETURN_TRUE;
}//
// Close()
//
static PyObj