Haji Papa's Bits & Bytes

Haji Papa's Bits & Bytes

An IT leader, business manager, and anime-loving dad of three, documenting my journey in tech, work, and language learning.

DockerでOpen WebUI+Ollama環境を簡単構築!
IT

DockerでOpen WebUI+Ollama環境を簡単構築!

LLMを手軽に使う方法とGPUトラブル対処法 1. はじめに ローカル環境で大規模言語モデル(LLM)を試したいけれど、難しそう…と思っていませんか? 今回は、Docker を使って、話題の Open WebUI と Ollama を簡単に構築し、手軽にLLMを使える環境を作る方法をご紹介します。 さらに、私が実際にハマった「GPUが認識されない問題」とその対処法も【補足】としてまとめました! 2. Open WebUI+Ollamaとは? * Ollama:ローカルでLLMを動かせるエンジン。各種モデル(例:Gemma、Llama3など)を簡単に利用可能。 * Open WebUI:Ollamaをブラウザから操作できる便利なフロントエンド。 この2つを組み合わせることで、まるでChatGPTのようにローカル環境でLLMが扱えるようになります! 3. Dockerを使った構築手順 ① 必要環境 * Docker & Docker Compose v2 がインストール済みであること ② docker-compose.
3 min read
【セキュリティ】プレースホルダでSQLインジェクションを防ぐ
IT

【セキュリティ】プレースホルダでSQLインジェクションを防ぐ

前回までで、SQLインジェクションとOSコマンドインジェクションの実験を行いました。 今回は、プレースホルダという機能を使って、PHPコードをSQLインジェクションができない安全なコードにしていきたいと思います。 次のコードは、前回まで使用していたsectest.phpの内容です。 <?php $servername = "localhost"; $username = "sectest"; // DB sectestにアクセスするユーザー $password = "sectestpass"; $dbname = "sectest"; $conn = new mysqli($servername, $username, $password, $dbname); // エラー確認 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error)
3 min read
【セキュリティ】SQLインジェクションを通じてOSコマンドインジェクションをしてみる
IT

【セキュリティ】SQLインジェクションを通じてOSコマンドインジェクションをしてみる

前回の【セキュリティ】SQLインジェクションを実験してみるで作成したWebサイトを使って、OSコマンドインジェクションを試みたいと思います。 1. 脆弱性の設定 まずは、脆弱性を作ります。 DBの脆弱性の設定 DBのユーザーsectestにFILE権限を付与しておきます。 DBの管理者権限で下記を実行します。 MariaDB [(none)]> GRANT FILE ON . TO 'sectest'@'localhost'; Query OK, 0 rows affected (0.007 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec) ディレクトリの脆弱性の設定 MariaDBからファイルの作成が可能な/var/www/html/
2 min read
【セキュリティ】SQLインジェクションを実験してみる
IT

【セキュリティ】SQLインジェクションを実験してみる

今回は、IPA(情報処理推進機構)の「安全なウェブサイトの作り方」のはじめに登場するSQLインジェクションについて、実際にWEBサイトを構築して実験してみたいと思います。 1. DBの作成 まずは、Webページからアクセス可能なデータベースsectestを作成します。 今回はMariaDBを使用しています。 MariaDB [(none)]> create database if not exists sectest; //DB sectestを作成 Query OK, 1 row affected (0.000 sec) MariaDB [(none)]> use sectest; //DB sectestを選択 Database changed MariaDB [sectest]> create table users ( -> id int
3 min read
PythonからOllama APIを使って、文章を要約する
Programming

PythonからOllama APIを使って、文章を要約する

前回「Ollama APIを使用してみる」で、Ollama APIを試してみました。 今回は、PythonとOllama APIを使って、PDFファイルの要約をGemma3にしてもらおうと思います。 春期の情報処理試験も近いですので、それに関連するPDFの要約を作成してみましょう。 必要なライブラリのインストール pip install aiohttp PyMuPDF import fitzとあるのでpip install fitzとしがちですが、pip install PyMuPDFです。 Pythonコード(ファイル名: summarize_pdf_ollama.py) import asyncio import aiohttp import fitz # pip install fitzではなく、pip install PyMuPDF import sys import os import time import json
5 min read
Ollama APIを使用してみる
IT

Ollama APIを使用してみる

前回掲載した「Ollamaを使ってGemma3を動かしてみる」の続きで、今回はOllamaをAPI経由で使ってみたいと思います。 下記のサイトに従って、さっそくAPI経由でGemma3を使ってみましょう。 ollama/docs/api.md at main · ollama/ollamaGet up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, and other large language models. - ollama/ollamaGitHubollama 「なぜ空は青いの?」というプロンプトを投げてみます。 $ curl http://localhost:11434/api/generate -d '{"model": "gemma3:4b"
2 min read
Let's use Ollama
IT

Ollamaを使ってGemma3を動かしてみる

Ollamaとは Ollama は、ローカル環境で大規模言語モデル(LLM)を簡単に実行できるようにするオープンソースのソフトウェアです。 いま話題のDeepSeek、Phi-4、Gemma3 などの人気のある LLM を手軽にダウンロードして、実行できます。 Ollamaのインストール 下記のサイト(https://ollama.com)にアクセスし、Downloadボタンをクリックします。 OllamaGet up and running with large language models. リンク先の画面に、OSごとにインストールの仕方が表示されているので、その支持に従ってください。 curl -fsSL https://ollama.com/install.sh | sh $ curl -fsSL https://ollama.com/install.sh | sh >>>
3 min read
【Termux+Python】Pydanticを導入してみた
Programming

【Termux+Python】Pydanticを導入してみた

Pydantic は、Python用のデータバリデーションおよびデータモデルライブラリです。Pythonの型ヒント (type hints) を活用して、データのバリデーションや変換を自動で行います。 Pydanticを導入することにより、下記の利点があります。 * バリデーションの自動化型ヒントを使うだけで、詳細なバリデーション処理を簡単に定義できる。 * 可読性の向上データモデルが明確になり、コードの可読性が高まる。 * エラー対応が楽になるバリデーションエラーが詳細に表示され、デバッグしやすい。 * API開発が効率化FastAPIなどと組み合わせると、エンドポイントのパラメータバリデーションやスキーマ生成が簡単。 * 型変換が便利データベースや外部APIから取得したデータの変換が容易。 Pydanticの導入方法 1. Rustをインストールする pydantic v2は高速化のために一部をRustで実装しており、デフォルトでビルド時にRustコンパイラを要求します。したがって、Pydanticをインストールする前にRustを導入します。 $ pkg u
2 min read
【English】get with it. (Langaku+)
English

【English】get with it. (Langaku+)

マンガを使って英語の多読ができるLangaku+というアプリから、ぜひ機会があれば使ってみたいという英会話フレーズをご紹介します。 マンガで英語が学べるアプリ #Langaku 詳しくはこちら→https://onelink.to/langaku_koma 出典:君に届け "Get with it." はカジュアルなアメリカ英語で以下のようなニュアンスがあります。 1. 状況を理解して(適応して) * 目の前の状況や新しい情報を理解して、受け入れることを促す。 * 例: Come on, get with it! We're leaving in 5 minutes. (ほら、急いで!5分で出発だよ。) 2. 時代に追いつけ(流行やトレンドに遅れないで) * 新しいトレンドや常識を理解して受け入れる。 * 例: You still use that old
2 min read
【English】間違い探し Some food ...
English

【English】間違い探し Some food ...

正解を表示 正解: Some food has been laid out.(料理が並んでいます。) 解説: 「food」は不可算名詞 (uncountable noun) です。不可算名詞は常に単数扱いされるため、has が正しいです。 Some + 不可算名詞の例: * Some water has spilled.(水がこぼれました。) * Some information has been provided.(情報が提供されました。) 「いくつかの~」という意味で可算名詞の複数形を使う場合は、have が使われます。 Some + 可算名詞の複数形の例: * Some books have been laid out.(本が並べられています。) * Some people have left.(何人かの人が去りました。)
1 min read
【English】  kind of ...(Langaku+)
English

【English】 kind of ...(Langaku+)

マンガを使って英語の多読ができるLangaku+というアプリから、ぜひ機会があれば使ってみたいという英会話フレーズをご紹介します。 マンガで英語が学べるアプリ #Langaku 詳しくはこちら→https://onelink.to/langaku_koma 出典:君に届け kind of には以下のニュアンスがあります。 1. 程度を弱める(やや・ちょっと・なんとなく) * I kind of like this movie.(この映画、なんとなく好き。) * She kind of looks like my sister.(彼女、なんとなく私の妹に似てる。) 2. 曖昧さやためらいを表す(はっきり言いづらい気持ちを表現) * I kind of want to quit my job.(仕事を辞めたい気もするけど…
2 min read
【Termux+Python】AndroidでPythonを動かす
Programming

【Termux+Python】AndroidでPythonを動かす

Androidの環境でPythonを動かす方法は、いくつかありますが、ここではLinux環境に近い操作が可能なTermux上でPythonを動かす方法をご紹介します。 Termuxは、Android端末上で動作するLinux端末エミュレータ兼パッケージ管理システムです。 1. F-Droidをインストールする PlayストアからもTermuxはダウンロードできますが、バージョンが古いようですので、F-DroidまたはGitHubから最新版をインストールすることが推奨されています。ここでは、F-Droid経由でインストールしていきます。 * F-Droid公式サイト(https://f-droid.org/ja/ ) サイトに表示されているQRコードから、F-Droidのインストールを行います。 QRコードを読み込むとF-Droid.apkがダウンロードされるので、「パッケージ インストーラで開く」で開きインストールを行います。 2. F-DroidからTermuxをインストールする 2-1. F-Droidを起動したら虫眼鏡のボタンを押し
2 min read
【SC一問一答】 単一障害点の故障
IT

【SC一問一答】 単一障害点の故障

会社のシステムチーム内で、情報処理安全確保支援士の試験に、みんなで受けよう!ということになりましたので、その備忘録です。 問題: 透過型ファイアウォール(ブリッジモードで作動するFW)で、FWが故障した際に、安全性よりも可用性を優先し、デフォルトでパケットの通過を許可することがある。この動作を何というか? 正解を表示 正解: フェールオープン(Fail Open) 解説: 動作方式動作の特徴代表的な例メリットデメリットフェールオープン障害時にシステムを開放し、動作を続行するネットワークスイッチ(電源断で通信が開放)サービス継続が可能セキュリティリスクが高いフェールクローズ障害時にシステムを遮断するファイアウォール(障害時にすべての通信を遮断)セキュリティが強化されるサービスが完全に停止するフェールセーフ障害時に安全な状態へ移行するエレベーター(最寄り階で停止しドアを開く)被害を最小限に抑えられる完全な動作は保証されないフェールソフト障害時に最低限の機能を維持して動作CPU(過熱時にクロックダウン)システムが完全に停止しないパフォーマンスが低下する
1 min read
【Ghost】ブログの記事をカテゴリ別に別ページに表示させる
IT

【Ghost】ブログの記事をカテゴリ別に別ページに表示させる

Ghostを使用してブログの記事をカテゴリ別に専用ページに表示させる方法を紹介します。ちなみに、Ghostのバージョンは5.109です。 1. routes.yaml の設定 Ghostでは routes.yaml を編集することで、カテゴリごとに異なるページを作成できます。 テキストエディタを開いて、下記のようにページ別に分けたいカテゴリを設定します。 yamlは半角スペース2個でインデントですので注意してください。 たとえば、/news/はwww.89wa.jp/news/にアクセスすると、最初のタグが「infra」の記事の一覧が表示されるようになります。 collectionsは記事リストを作成する際に使用します。 今回は、タグの種類に関係なく記事の一覧が表示されるように設定しています。 {slug}には、その記事のURLが入ります。 routes: /news/: controller: channel filter: primary_tag:news /infra/: controller: channel filter:
2 min read
【English】間違い探し discuss
English

【English】間違い探し discuss

英語文法クイズ 英会話の練習中、間違えたところをクイズ形式にしています。 どこが間違っているかわかりますか? 問題: 以下の文のどこが間違っていますか? I want to discuss about the progress of the project. Let's sync up. 正解を表示 正解: I want to discuss the progress of the project. Let's sync up. 解説: 「discuss」は他動詞なので「about」は不要です。「discuss the progress」が正しい表現です。 「sync up」 → 「同期する」「スケジュールを合わせて話し合う」
1 min read
【Ghost】Oracle Linux 8 にCMSのGhostを導入
IT

【Ghost】Oracle Linux 8 にCMSのGhostを導入

Ghostとは ブログサイトを立ち上げることにしました! ブログって続けるのがたいへんですよね ^^; ブログサイトの管理(CMS・Content Management System)には、WordPressが有名ですが、WordPressは何度か実装したことがありましたので、今回は別のCMSを探してみました。 そこで見つけたのがGhostです。 Ghostは、Node.js(JavaScript)ベースのCMSです。 とはいっても、サイトを運用するだけなら、JavaScriptの知識はまったくいりません。 SEO対策やメルマガ機能が充実し、モダンで洗練されたデザインのサイトが作れるそうです。 Ghostの導入 今回は、OCI(Oracle Cloud Infrastructure)上でARMベースのインスタンスを作りましたので、そこにGhostを導入していきたいと思います。 環境 * OS: Oracle Linux Server 8.10 * Shape: VM.Standard.A1.Flex * OCPU count: 1 *
6 min read