<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>connvoi.com</title>
        <description>Engineering, Lifehack, Games</description>
        <link>https://connvoi.com/</link>
        <atom:link href="https://connvoi.com/feed.xml" rel="self" type="application/rss+xml"/>
        <pubDate>Wed, 18 Feb 2026 10:01:01 +0900</pubDate>
        <lastBuildDate>Wed, 18 Feb 2026 10:01:01 +0900</lastBuildDate>
        <generator>Jekyll v4.2.1</generator>
        
            <item>
                <title>LangChainとLangGraphによるRAG・AIエージェント開発</title>
                <description>&lt;h2&gt;LangChainとLangGraphによるRAG・AIエージェント開発&lt;/h2&gt;
&lt;p&gt;少しずつ読んでいってる&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://amzn.to/44Q9PHr&quot;&gt;LangChainとLangGraphによるRAG・AIエージェント実践入門&lt;/a&gt;
&lt;!--more--&gt;&lt;/p&gt;

&lt;h2&gt;この本のソースコードの位置&lt;/h2&gt;
&lt;p&gt;ここに本に載っているコードがある。colab形式なので、jypyterとかcolabだとそのまま実行できる。
notebook系で実行した方がキャッシュとか効くからいいかもしれない。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/GenerativeAgents/agent-book.git&quot;&gt;github:agent-book&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;webでコード編集するのが嫌いなので、適当にローカルにファイルを作って同様の処理をやっている&lt;/p&gt;

&lt;h2&gt;4章 LangChainの基礎&lt;/h2&gt;
&lt;p&gt;LangchainのインストールとOpenAIを使ったチャットのレスポンスの取得など
下はLanghainのドキュメントをembeddingして、RAGとして検索に使っている。&lt;/p&gt;

&lt;p&gt;RAGの流れ&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;DocumentLoader: データの読み込み&lt;/li&gt;
  &lt;li&gt;DocumentTransformer: データの加工、前処理など&lt;/li&gt;
  &lt;li&gt;embedding(model): ドキュメントのベクトル化&lt;/li&gt;
  &lt;li&gt;Vector store: ベクトル化したドキュメントの保管先(Chroma, elasticsearch, solrなどなど)&lt;/li&gt;
  &lt;li&gt;Retriever: 情報を検索する&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-py highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;langchain_community.document_loaders&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;GitLoader&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;file_filter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;file_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;file_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;endswith&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;.mdx&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;loader&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;GitLoader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;clone_url&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;https://github.com/langchain-ai/langchain&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;repo_path&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;./langchain&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;branch&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;master&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;file_filter&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;file_filter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;raw_docs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;loader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;langchain_text_splitters&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CharacterTextSplitter&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;text_splitter&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;CharacterTextSplitter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;chunk_size&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;chunk_overlap&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;docs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text_splitter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;split_documents&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;raw_docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;langchain_openai&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OpenAIEmbeddings&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;embeddings&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OpenAIEmbeddings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;text-embedding-3-small&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;AWSのS3からデータを読み込むためのDocument loaderはありますか？&quot;&lt;/span&gt;


&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;langchain_chroma&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Chroma&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;db&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Chroma&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;from_documents&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;embeddings&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;retriever&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;db&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;as_retriever&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;AWSのS3からデータを読み込むためのDocument loaderはありますか？&quot;&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;context_docs&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;retriever&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;len = &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;context_docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;first_doc&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;context_docs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;metadata = &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;first_doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;first_doc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;page_content&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;5章 LangChain Expression Language( LCEL )&lt;/h2&gt;

&lt;p&gt;パイプで繋いで簡単に表現できる。&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;prompt | model | output_perser&lt;/code&gt;みたいに。
これを並列に書いたり、RunableLamdaにして自前のfunctionを追加したりできる。
まだ慣れないなー。&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

prompt = ChatPromptTemplate.from_messages(
    [
        (&quot;system&quot;, &quot;ユーザーが入力した料理のレシピを考えてください。&quot;),
        (&quot;human&quot;, &quot;{dish}&quot;),
    ]
)
model = ChatOpenAI(model=&quot;gpt-4o-mini&quot;, temperature=0)
output_parser = StrOutputParser()

prompt_value = prompt.invoke({&quot;dish&quot;: &quot;カレー&quot;})
ai_message = model.invoke(prompt_value)
output = output_parser.invoke(ai_message)
print(output)

#3行書くよりも下で完結させれる
chain = prompt | model | output_parser

for chunk in chain.stream({&quot;dish&quot;: &quot;カレー&quot;}):
    print(chunk, end=&quot;&quot;, flush=True)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;6章 AdvancedRAG&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;ベクターデータベースに入れる&lt;/li&gt;
  &lt;li&gt;retrieverとしてベクトルDBからデータを取り出す
    &lt;ul&gt;
      &lt;li&gt;検索前&lt;/li&gt;
      &lt;li&gt;HyDE（Hypothetical Document Embeddings） ユーザーの回答を仮想的に推論し、検索クエリとして利用する&lt;/li&gt;
      &lt;li&gt;HyDEで複数の検索クエリを作成して、ベクトルDBに投げる方法もある&lt;/li&gt;
      &lt;li&gt;検索後
        &lt;ul&gt;
          &lt;li&gt;RAG-Fusion 複数の検索クエリの取得結果をまとめる(Fusionする)&lt;/li&gt;
          &lt;li&gt;RRF (Reciprocal Rank Fusion) 1/(rank + k )をスコアとしてランキングを並べる&lt;/li&gt;
          &lt;li&gt;1つの検索結果を並び替えるリランクのモデルもある&lt;/li&gt;
          &lt;li&gt;Cohereのリランクモデルで、上位3件のみをllMに入れるなど(あとでやろう)&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;7章 オフライン評価&lt;/h2&gt;
&lt;p&gt;RAGEによるオフライン評価のやり方など。&lt;/p&gt;

&lt;h2&gt;8章 AIエージェント&lt;/h2&gt;
&lt;h2&gt;9章 LangGraphによるAIエージェント実装&lt;/h2&gt;
&lt;h2&gt;10章 AIエージェントのデザインパターン&lt;/h2&gt;
&lt;h2&gt;11章 AIエージェントのデザインパターン実装&lt;/h2&gt;
&lt;p&gt;LangGraphによる簡単な実装例
要件定期をしてくれるAIエージェントの実装とかの話
ここは他の本と一緒に読んでいきたいのでざっと流す&lt;/p&gt;

&lt;h2&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;RAG周りの実装を知りたかったのでよかった&lt;/li&gt;
  &lt;li&gt;思った以上にAIエージェントの開発というものが進んでいて、すでにそれぞれのフレームワークがあったりデザインパターンも語られるようになっているのね&lt;/li&gt;
  &lt;li&gt;AIエージェントの部分は他にも気になっている本があるのでそこで一緒にやってみる&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Sat, 06 Sep 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/life/2025/09/06/RAG-agent-book/</link>
                <guid isPermaLink="true">https://connvoi.com/life/2025/09/06/RAG-agent-book/</guid>
                
                <category>lifehack</category>
                
                
                <category>life</category>
                
            </item>
        
            <item>
                <title>cpuのモードを切り替えてサーバを早く動かす方法のメモ(非クラウド限定)</title>
                <description>&lt;p&gt;cpuのモードを切り替えてサーバを早く動かす方法のメモ&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;cpu governorの設定を変更する&lt;/li&gt;
  &lt;li&gt;Ubuntuの場合 cpufrequtilsを使う&lt;/li&gt;
  &lt;li&gt;RedHatの場合 tuned-admを使う&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;cpuのモードを切り替えて処理を高速化する&lt;/h2&gt;
&lt;p&gt;OS毎にcpuのモードが存在して、大体のところ、省電力 or エコモードみたいなものに設定されている
そのモードを電力無視&amp;amp;cpuパフォーマンス最優先モードにすると、パフォーマンスが改善する(思いの外変わった)&lt;/p&gt;

&lt;p&gt;クラウドではないオンプレやレンサバ、個人のローカルPCでのみ有効なので注意。&lt;/p&gt;

&lt;p&gt;Ubuntuではcpuのgovernor設定をperformanceに、
RedHatでは同設定をlatency-performanceにすることで変更できる&lt;/p&gt;

&lt;h2&gt;設定方法 Ubuntu&lt;/h2&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo apt install cpufrequtils

cat /etc/default/cpufrequtils

GOVERNOR=&quot;ondemand&quot; &amp;lt;-- ここをperformanceに変更する
ENABLE=&quot;true&quot;
MIN_SPEED=&quot;1000000&quot;
MAX_SPEED=&quot;3000000&quot;
LATENCY_THRESHOLD=&quot;10&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;設定ファイルの変更後に systemctl でcpufrequtilsを再起動すれば終わり&lt;/p&gt;

&lt;h2&gt;設定方法 redhat&lt;/h2&gt;
&lt;p&gt;tunedのパッケージが入っていれば、tuned-admのコマンドが利用できる&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo tuned-adm profile latency-performance
sudo tuned-adm active
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;ちなみに設定できる値はlistオプションで確認できる&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ tuned-adm list
Available profiles:
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- hpc-compute                 - Optimize for HPC compute workloads
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- powersave                   - Optimize for low power consumption
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests
Current active profile: latency-performance
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;cpu governorの設定を変更する&lt;/li&gt;
  &lt;li&gt;Ubuntuの場合 cpufrequtilsを使う&lt;/li&gt;
  &lt;li&gt;RedHatの場合 tuned-admを使う&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Wed, 25 Jun 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/life/2025/06/25/boost-cpu-performance-onpremiss-or-local/</link>
                <guid isPermaLink="true">https://connvoi.com/life/2025/06/25/boost-cpu-performance-onpremiss-or-local/</guid>
                
                <category>lifehack</category>
                
                
                <category>life</category>
                
            </item>
        
            <item>
                <title>2025年度版 エアコン購入のライフハック</title>
                <description>&lt;p&gt;10年使っていたエアコンが水漏れ&amp;amp;壊れたので買い替えたので、その知見をメモ&lt;/p&gt;

&lt;p&gt;もはや家電量販店でエアコン買う時代ではないのかもしれない。。。&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2&gt;エアコン購入のライフハックまとめ&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;型落ちエアコンを本体だけ購入する&lt;/li&gt;
  &lt;li&gt;設置業者は自分で選ぶ&lt;/li&gt;
  &lt;li&gt;三菱電機のエアコンは個人で掃除がしやすい&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;型落ちエアコンを買って節約をする&lt;/h2&gt;
&lt;p&gt;なんで型落ちエアコンを買うのかというと、シンプル安いから。&lt;/p&gt;

&lt;p&gt;大手の家電量販店では基本的に最新版のエアコンしか置いてなく、めちゃくちゃ高い
自分が購入したのはMITSUBISHI MSZ-ZW4024S-Wというやつで EXPRICEで15万円。
一方、ヨドバシカメラだとそれの最新機種が31万円もする。ほぼ２倍！&lt;/p&gt;

&lt;figure class=&quot;caption&quot;&gt;
    &lt;img src=&quot;/images/blog/exprice-aircon1.png&quot; alt=&quot;ヨドバシ最新モデル&quot; /&gt;
    
    &lt;figcaption class=&quot;caption-text&quot;&gt;ヨドバシ最新モデル&lt;/figcaption&gt; 
    
&lt;/figure&gt;

&lt;figure class=&quot;caption&quot;&gt;
    &lt;img src=&quot;/images/blog/yodobashi-aircon1.png&quot; alt=&quot;型落ち2024モデル&quot; /&gt;
    
    &lt;figcaption class=&quot;caption-text&quot;&gt;2024モデルは15万 価格差2倍！&lt;/figcaption&gt; 
    
&lt;/figure&gt;

&lt;p&gt;いろいろ事情があるとは思うが、いくら最新機種とはいえ対して性能差がないものが倍額になってたりすると、もう家電量販店で買いたくなくなるよね。&lt;/p&gt;

&lt;h2&gt;設置業者を自分選ぶ&lt;/h2&gt;
&lt;p&gt;家電量販店で購入して工事まで依頼すると、エアコン設置業者ガチャが発生してしまう&lt;/p&gt;

&lt;p&gt;2階に設置してもらうので高所作業があったり、持ち家なので綺麗にやって欲しかったので、ガチャ要素は取り除くため
お店に任せず自分で探すことにした。&lt;/p&gt;

&lt;p&gt;とはいっても、くらしのマーケットのアプリを使って&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;自宅からそんなに遠くない&lt;/li&gt;
  &lt;li&gt;社長が顔出ししてる&lt;/li&gt;
  &lt;li&gt;口コミと実績がそこそこある&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ところを選んで、都合のいいところに依頼。&lt;/p&gt;

&lt;p&gt;2人作業員が来て1人は女性が来て、力仕事でも女性が働ける会社なんだと思いそれも良かった。
アプリ経由で写真とやり取りが前もってできているので特に見積もりから変更もなく、綺麗に設置してもらった。&lt;/p&gt;

&lt;h2&gt;おすすめのエアコンの機種&lt;/h2&gt;
&lt;p&gt;エアコンのシェアはパナソニック、ダイキン、三菱電機がTop3になっていて、その3社から選んだ方がいい。
その3社であれば販売台数も多く、エアコンクリーニング業者も割とこなれている印象。&lt;/p&gt;

&lt;p&gt;中でも三菱のエアコンは分解性能が高く、個人が清掃できる範囲が他社より広くて良さげなので三菱のものにした。
三菱のエアコンはフィンの前が大きく開き、ルーバーも観音開きで開いて掃除ができる。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.mitsubishielectric.co.jp/home/kirigamine/function/cleanliness/#hazuseru_body&quot;&gt;はずれるボディ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;あと、換気機能、ダイキンのうるさらXのような追加機能が入っているやつや最上位機種とかは避けた方が無難(工事が特殊になる。メンテが大変)。
フィルタお掃除機能は本当はなくてもいいが、省エネモデルのエアコンにほぼ全部ついているのでまぁ仕方がないという感じで買った。&lt;/p&gt;

&lt;h2&gt;エアコン購入にかかった費用&lt;/h2&gt;
&lt;p&gt;エアコン2台と設置工事費用の内訳は&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;エアコン14畳用 15万&lt;/li&gt;
  &lt;li&gt;エアコン 6畳用  6万&lt;/li&gt;
  &lt;li&gt;設置工事費用    8万&lt;/li&gt;
  &lt;li&gt;2台同時購入割引  -2万&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;合計で 27万円になりました
なんとヨドバシの1台分より安いw&lt;/p&gt;

&lt;h2&gt;エアコン購入のライフハックまとめ&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;型落ちエアコンを本体だけ購入する&lt;/li&gt;
  &lt;li&gt;設置業者は自分で選ぶ&lt;/li&gt;
  &lt;li&gt;三菱電機のエアコンは個人で掃除がしやすい&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;買ったエアコンを自宅に置いておいて場所をとったりするも、型落ち買って安く上げた方が満足度が高いかと&lt;/p&gt;
</description>
                <pubDate>Tue, 17 Jun 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/life/2025/06/17/Air-conditioner-replacement/</link>
                <guid isPermaLink="true">https://connvoi.com/life/2025/06/17/Air-conditioner-replacement/</guid>
                
                <category>lifehack</category>
                
                
                <category>life</category>
                
            </item>
        
            <item>
                <title>本 『検索システムガイド』を読んだ</title>
                <description>&lt;h2&gt;検索システムガイド&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.lambdanote.com/products/ir-system&quot;&gt;検索システムガイド 実務者のための開発改善ガイドブック&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;を読んだ。もはやNoteBookLMがないと生きていけない感じになってきてる。&lt;/p&gt;

&lt;!--more--&gt;
&lt;p&gt;気になった用語とかいろいろ&lt;/p&gt;

&lt;h2&gt;block max WAND&lt;/h2&gt;
&lt;p&gt;block-max WANDは、MaxScoreアルゴリズムをベースに、さらに効率的なスコア計算を行うアルゴリズムです。
Apache Luceneのバージョン8.0.0から実装されており、デフォルトで有効になっています。
block-max WANDを有効にした場合と無効にした場合とでクエリ処理のパフォーマンスを計測した結果、返却件数が10件の場合、block-max WAND有効時は無効時に比較して4.5倍ものパフォーマンス向上が見られます。
ただし、返却件数が増えるほど差は縮まり、1000件程度になるとblock-max WANDのほうが遅くなるようです。&lt;/p&gt;

&lt;h2&gt;検索のランキング&lt;/h2&gt;
&lt;p&gt;TF-IDFとBM25：&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;TF-IDFは情報検索の初期から広く利用されており、現在でも使われています [1]。BM25は確率ランキング原理に基づいて開発された手法で、現代の検索システムでも広く使われています。&lt;/li&gt;
  &lt;li&gt;Apache SolrやElasticsearchでは、デフォルトのスコアリング方式としてBM25が採用されています&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;属性情報や他の要素によるランキング（ブースト）&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;検索クエリに合致するドキュメント集合を、ドキュメントに紐づけられた属性情報でソートすることで、ユーザーが求めるランキングで検索結果を提示できます 。&lt;/li&gt;
  &lt;li&gt;検索エンジンの実装の中には、ランキングにあたり、BM25などの類似度に特定のフィールドの値を足したり掛けたりしたスコアを利用できるものがあり、これはブーストと呼ばれることがあります。&lt;/li&gt;
  &lt;li&gt;Elasticsearchでは、Function scoreクエリという機能を利用することでブーストを実現できます&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;機械学習によるランキング学習（LTR)&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;適切な訓練データから検索ランキングモデルを構築し、それを検索システムに組み込むことで、人手によるチューニングが不要で精度も高い検索結果のランキングを提示できるようになります&lt;/li&gt;
  &lt;li&gt;ランキング学習は、目的関数の選び方によって、ポイントワイズ、ペアワイズ、リストワイズの3種類に大別されます&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;そもそも検索とは〜から入って、検索のUIからプロジェクト管理、ランキングぐらいまで検索周りのことを一巡り学べる本だった。
RAGが全盛期とはいえ、実装周りまでのことをかなり詳しく書いてあって、とても勉強になった。
あとは8章に書いてある検索プロジェクトの立ち上げと計画周りが一番大変じゃないかな〜〜〜？って思ったりもした&lt;/p&gt;
</description>
                <pubDate>Fri, 07 Mar 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/tech/2025/03/07/search-system-guide/</link>
                <guid isPermaLink="true">https://connvoi.com/tech/2025/03/07/search-system-guide/</guid>
                
                <category>tech</category>
                
                <category>search</category>
                
                <category>book</category>
                
                
                <category>tech</category>
                
            </item>
        
            <item>
                <title>キニニュー 龍が如く8 パイレーツin Hawaii、キャッ党忍伝てやんでえ、GibberLink、エルゴキーボード、laravel12、python13 などなど</title>
                <description>&lt;h2&gt;最近のキニニュー&lt;/h2&gt;
&lt;p&gt;最近に気になったニュース、略してキニニューのリスト&lt;/p&gt;

&lt;h2&gt;龍が如く8 パイレーツin Hawaiiがなんで海外で人気なのか？の記事が面白かった&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.howtogeek.com/the-new-pirate-yakuza-knows-its-a-game-and-owns-it/&quot;&gt;The New Pirate Yakuza Knows It’s a Game and Owns It&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;いわゆるトリプルAのタイトルのゲームがハリウッド化してきてしまって、映画みたいになってきているのに対して、
龍が如くのシリアスなストーリーとバカバカしいサブストーリーを持ったゲームがゲームがゲームとしてのあり方を思いださせてくれるっていう記事&lt;/p&gt;

&lt;p&gt;さすが真島の兄さん&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2&gt;おっとどっこい過去！で有名なキャッ党忍伝てやんでえ 新作ゲーム化発表&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.famitsu.com/article/202502/33907&quot;&gt;『キャッ党忍伝てやんでえ』新作ゲーム化発表。デザインは原作そっくりのセル風アニメ。オランダのゲームスタジオが開発中&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;は？令和ですよね？いま！！！
しかも声優はオリキャスらしいwすごいw&lt;/p&gt;

&lt;h2&gt;GibberLinkというプロトコルが面白そう&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/PennyroyalTea/gibberlink&quot;&gt;The GibberLink Protocol: A New Way to Connect Your Devices&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;すごく未来っぽくて好き&lt;/p&gt;

&lt;h2&gt;2025のベストというには早いけど、エルゴキーボードのベスト&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.howtogeek.com/best-ergonomic-keyboards/&quot;&gt;The Best Ergonomic Keyboards of 2025&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;もうベスト2025だしちゃうの？(笑)Logitech Ergo K860が一番いいらしい&lt;/p&gt;

&lt;h2&gt;laravel12のリリース&amp;amp;laravel cloudのリリース&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.laravel.com/laravel-cloud-is-live-can-you-ship-in-1-minute&quot;&gt;Laravel Cloud is live! Can you ship in 1 minute?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://laravel-news.com/laravel-12?utm_medium=feed&amp;amp;utm_source=feedpress.me&amp;amp;utm_campaign=Feed%3A+laravelnews&quot;&gt;Laravel 12 is Now Released&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1分でデプロイできるらしい。あと、記事にのってるlaravel用のvscode exetentionが割と便利&lt;/p&gt;

&lt;h2&gt;Laravelのスターターキット&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://laravel-news.com/getting-to-know-laravel-12-starter-kits?utm_medium=feed&amp;amp;utm_source=feedpress.me&amp;amp;utm_campaign=Feed%3A+laravelnews&quot;&gt;Getting to Know Laravel’s New Starter Kits&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;いままではwelcomeてきなページだったけども、laravel12からはプロファイルのページ？みたいなものになるらしい&lt;/p&gt;

&lt;h2&gt;python13にJITコンパイラの実験的導入&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://gihyo.jp/article/2025/02/monthly-python-2502?utm_source=feed&quot;&gt;Python 3.13で更新された機能の紹介&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;python 13にjitコンパライラが導入されたらしい。
記事だと30%程度高速化されたらしいので、自分で使っているものにも使ってみたい&lt;/p&gt;

</description>
                <pubDate>Sun, 02 Mar 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/life/2025/03/02/kini-new-vol2/</link>
                <guid isPermaLink="true">https://connvoi.com/life/2025/03/02/kini-new-vol2/</guid>
                
                <category>lifehack</category>
                
                
                <category>life</category>
                
            </item>
        
            <item>
                <title>キニニュー MS wordでDOOM、3DLEDテトリス、企業DC、ChatGPTでピクセルアートなど</title>
                <description>&lt;h2&gt;最近のキニニュー&lt;/h2&gt;
&lt;p&gt;最近に気になったニュース、略してキニニューのリスト&lt;/p&gt;

&lt;!--more--&gt;
&lt;h2&gt;DOOMがMS wordで動く&lt;/h2&gt;
&lt;p&gt;なぜ人はありとあらゆる場所でDOOMを起動しようするのか。それは、できるからだ。
WordとVBAを有効にすればできるみたい&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.howtogeek.com/doom-in-word-document/&quot;&gt;Doom Now Runs in a Word Document&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;3DLEDライトでやるテトリス&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://hackaday.com/2025/01/21/from-retro-to-radiant-3d-tetris-on-a-led-matrix/&quot;&gt;From Retro To Radiant: 3D Tetris On A LED Matrix | Hackaday&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;linuxのカーネルアップデートを記念したギターペダルのプレゼント&lt;/h2&gt;
&lt;p&gt;ワロタ&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;And as per the rc7 release announcement last week, I have selectedguitar pedal winners.Yes, &quot;pedals&quot; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://lkml.org/lkml/2025/1/19/281&quot;&gt;LKML: Linus Torvalds: Linux 6.13&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;ChatGPTでピクセルアート&lt;/h2&gt;

&lt;p&gt;やってみたい
&lt;a href=&quot;https://gigazine.net/news/20250110-pixel-art-tsukuru-chan/&quot;&gt;ChatGPT上でキャラクターのかわいいドット絵を作れるGPTs「ピクセルアートつくるちゃん」を使ってみた - GIGAZINE&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;会社で企業DCが入る&lt;/h2&gt;
&lt;p&gt;所属してる会社が企業DCを始めることになり、若手にこのリンク読んでおいて！って投げつけた。復讐もかねて&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://hayatoito.github.io/2020/investing/&quot;&gt;普通の人が資産運用で99点をとる方法とその考え方 - hayato&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;pythonチートシート&lt;/h2&gt;

&lt;p&gt;可視化のチートシートが欲しかった&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://qiita.com/tarantula426/items/d8cd79c2bfd649e4f1f1&quot;&gt;データサイエンス系チートシートを網羅してみた #Python - Qiita&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;laravelのリダイレクトの例&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://laravel-news.com/redirecting-to-controller-actions&quot;&gt;Redirecting to Controller Actions in Laravel - Laravel News&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;laravelのroute設定&lt;/h2&gt;
&lt;p&gt;たまに忘れるrouteの書き方など&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://laravel-news.com/route-enum-integration?utm_medium=feed&amp;amp;utm_source=feedpress.me&amp;amp;utm_campaign=Feed%3A+laravelnews&quot;&gt;Route Definition Enhancements in Laravel with Enum Integration - Laravel News&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;laravelのTips集&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/OussamaMater/Laravel-Tips&quot;&gt;OussamaMater/Laravel-Tips: Daily Laravel and PHP tips.&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;laravelのユーザー管理のハンズオン&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/laravel/comments/1i3gppr/laravel_user_roles_and_permissions_management/&quot;&gt;Laravel User Roles and Permissions Management from Scratch : r/laravel&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;PHPerKaigi開催&lt;/h2&gt;
&lt;p&gt;いけるかなー？
&lt;a href=&quot;https://gihyo.jp/article/2025/01/phperkaigi2025?utm_source=feed&quot;&gt;PHPerKaigi 2025が3/21-23に開催、タイムテーブル公開、参加チケット販売中 | gihyo.jp&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;子育て育児&lt;/h2&gt;
&lt;p&gt;タスク管理として意識づけ。だけど押し付けはNG&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://levtech.jp/media/article/column/detail_596/&quot;&gt;「宿題やりなさい」を言わない我が家。子ども自らタスクの進捗管理ができるようになるフォローの仕方 レバテックラボ（レバテックLAB）&lt;/a&gt;&lt;/p&gt;
</description>
                <pubDate>Wed, 22 Jan 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/life/2025/01/22/kini-new-vol1/</link>
                <guid isPermaLink="true">https://connvoi.com/life/2025/01/22/kini-new-vol1/</guid>
                
                <category>news</category>
                
                <category>info</category>
                
                <category>tech</category>
                
                
                <category>life</category>
                
            </item>
        
            <item>
                <title>Autodesk fusionを使った3dプリント</title>
                <description>&lt;h1&gt;Autodesk Fusionを使ってみる part1&lt;/h1&gt;
&lt;p&gt;Autodesk Fusionを使った3dプリントをやるまでの話のPart1
そのうち続きを出すかもしれない。インストールからスケッチまで&lt;/p&gt;

&lt;p&gt;Claudeで壁打ちしつつ進めていて、その記録をclaudeに書き出してもらっている
一旦AIで書いてもらった記事を自分で読んで修正してこの文章になっている&lt;/p&gt;

&lt;!-- more --&gt;

&lt;h2&gt;はじめに&lt;/h2&gt;

&lt;p&gt;Fusion360（現在は「Autodesk Fusion」に名称変更）は、Autodesk社が提供するクラウドベースの3D CAD/CAM/CAEソフトウェアです。個人利用であれば無料で使用できるため、3Dプリンターユーザーには最適なツールです。&lt;/p&gt;

&lt;p&gt;今回は、以下の内容を解説します：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fusion360の個人ライセンス取得・インストール方法&lt;/li&gt;
  &lt;li&gt;スケッチの作り方と押し出し方&lt;/li&gt;
  &lt;li&gt;ビューモードの操作方法&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;1. Fusion360 個人ライセンスのインストール方法&lt;/h2&gt;

&lt;h3&gt;ライセンスの種類&lt;/h3&gt;

&lt;p&gt;Fusion360には主に以下のライセンスがあります：&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;ライセンス&lt;/th&gt;
      &lt;th&gt;対象&lt;/th&gt;
      &lt;th&gt;費用&lt;/th&gt;
      &lt;th&gt;有効期間&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;商用版&lt;/td&gt;
      &lt;td&gt;企業・商用利用&lt;/td&gt;
      &lt;td&gt;年額約91,000円（税抜）&lt;/td&gt;
      &lt;td&gt;サブスクリプション&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;教育機関版&lt;/td&gt;
      &lt;td&gt;学生・教員&lt;/td&gt;
      &lt;td&gt;無料&lt;/td&gt;
      &lt;td&gt;1年（更新可）&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;個人用（非商用）&lt;/td&gt;
      &lt;td&gt;趣味利用の個人&lt;/td&gt;
      &lt;td&gt;無料&lt;/td&gt;
      &lt;td&gt;3年（更新可）&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;個人用ライセンスは、&lt;strong&gt;非商用目的&lt;/strong&gt;（趣味での3Dプリント、個人的なデザイン作成など）であれば無料で使用できます。&lt;/p&gt;

&lt;h3&gt;個人用ライセンスの制限事項&lt;/h3&gt;

&lt;p&gt;無料の個人用ライセンスには以下の制限があります：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;アクティブなデータは10点まで&lt;/li&gt;
  &lt;li&gt;データの共有機能が制限される&lt;/li&gt;
  &lt;li&gt;一部の高度な機能が使用不可&lt;/li&gt;
  &lt;li&gt;商用利用は不可&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;趣味で3Dプリントを楽しむ分には十分な機能が使えます。&lt;/p&gt;

&lt;h3&gt;インストール手順&lt;/h3&gt;

&lt;h4&gt;Step 1: 公式サイトにアクセス&lt;/h4&gt;

&lt;p&gt;Autodesk Fusion公式サイトにアクセスします。&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;https://www.autodesk.co.jp/products/fusion-360/personal
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4&gt;Step 2: 無償体験版をダウンロード&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;「無償体験版をダウンロード」をクリック&lt;/li&gt;
  &lt;li&gt;「非商用」を選択&lt;/li&gt;
  &lt;li&gt;「個人用Fusionを入手」をクリック&lt;/li&gt;
  &lt;li&gt;ここで、Autodeskにアカウントを作成しておく&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Step 3: インストール&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;ダウンロードしたインストーラーを実行&lt;/li&gt;
  &lt;li&gt;インストールが完了するとFusion360が自動起動&lt;/li&gt;
  &lt;li&gt;作成したAutodeskアカウントでサインイン&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;これでインストール完了です！&lt;/p&gt;

&lt;h2&gt;2. スケッチの作り方と押し出し方&lt;/h2&gt;

&lt;p&gt;Fusion360でモデリングする基本的な流れは：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;スケッチ作成 → 2D図形を描く → 押し出して3D化
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;この流れを表札作成を例に解説します。&lt;/p&gt;

&lt;h3&gt;2.1 新規デザインの作成&lt;/h3&gt;

&lt;p&gt;Fusion360を起動したら、新しいデザインファイルが自動的に開きます。&lt;/p&gt;

&lt;h3&gt;2.2 スケッチの作成&lt;/h3&gt;

&lt;h4&gt;方法1: ツールバーから（おすすめ）&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;画面上部のツールバーで「作成 ▼」をクリック&lt;/li&gt;
  &lt;li&gt;ドロップダウンメニューから「スケッチを作成」を選択&lt;/li&gt;
  &lt;li&gt;画面中央に3つの平面が表示される
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;XY平面&lt;/strong&gt;（オレンジ）: 壁のように垂直な面&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;XZ平面&lt;/strong&gt;（黄色）: 床のように水平な面&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;YZ平面&lt;/strong&gt;（青）: 横から見た垂直な面&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;描きたい平面をクリック（今回はXZ平面がおすすめ）&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;方法2: ブラウザから&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;画面左側の「ブラウザ」パネルで「原点」を展開&lt;/li&gt;
  &lt;li&gt;「XZ平面」を右クリック&lt;/li&gt;
  &lt;li&gt;「スケッチを作成」を選択&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;2.3 スケッチモードの確認&lt;/h3&gt;

&lt;p&gt;スケッチモードに入ると、以下の変化があります：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;✅ ツールバーが「スケッチ」用のコマンドに変わる&lt;/li&gt;
  &lt;li&gt;✅ グリッド線が表示される&lt;/li&gt;
  &lt;li&gt;✅ 画面右下に「スケッチを終了」ボタンが表示される&lt;/li&gt;
  &lt;li&gt;✅ 左のブラウザに「スケッチ」が追加される&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;2.4 長方形を描く（表札の土台）&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;ツールバー「作成 ▼」→「長方形」→「2点指定の長方形」を選択&lt;/li&gt;
  &lt;li&gt;画面中央（原点付近）でクリック → 1点目を配置&lt;/li&gt;
  &lt;li&gt;マウスを右下方向にドラッグ&lt;/li&gt;
  &lt;li&gt;数値入力欄が表示されたら：
    &lt;ul&gt;
      &lt;li&gt;横: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;150&lt;/code&gt; と入力 → Tabキー&lt;/li&gt;
      &lt;li&gt;縦: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;80&lt;/code&gt; と入力 → Enterキー&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;150mm × 80mmの長方形が完成！&lt;/li&gt;
  &lt;li&gt;画面右下の「スケッチを終了」をクリック&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;ポイント:&lt;/strong&gt; 閉じた形状（長方形や円など）は水色に塗りつぶされます。これは「押し出し可能な状態」の証拠です。&lt;/p&gt;

&lt;h3&gt;2.5 押し出しで立体にする&lt;/h3&gt;

&lt;p&gt;スケッチを描いただけでは2Dのままです。「押し出し」コマンドで3D化します。&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;ツールバー「作成 ▼」→「押し出し」を選択&lt;/li&gt;
  &lt;li&gt;水色の長方形をクリック（すでに選択されている場合はそのまま）&lt;/li&gt;
  &lt;li&gt;ダイアログが表示されたら「距離」に &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;5&lt;/code&gt; と入力（厚さ5mm）&lt;/li&gt;
  &lt;li&gt;「OK」をクリック&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;これで厚さ5mmの板が完成しました！&lt;/p&gt;

&lt;h3&gt;2.6 文字を追加する&lt;/h3&gt;

&lt;p&gt;表札に文字を入れましょう。&lt;/p&gt;

&lt;h4&gt;上面にスケッチを作成&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;板の上面（広い面）をクリック&lt;/li&gt;
  &lt;li&gt;右クリック →「スケッチを作成」を選択&lt;/li&gt;
  &lt;li&gt;スケッチモードに入る&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;テキストを配置&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;ツールバー「作成 ▼」→「テキスト」を選択&lt;/li&gt;
  &lt;li&gt;板の上でクリックして配置位置を決める&lt;/li&gt;
  &lt;li&gt;右側のダイアログでテキストを編集：
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;文字&lt;/strong&gt;: 表札に入れたい名前を入力&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;フォント&lt;/strong&gt;: お好みで選択（日本語なら「メイリオ」等）&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;高さ&lt;/strong&gt;: 20〜30mm（読みやすいサイズ）&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;位置合わせ&lt;/strong&gt;: 中央揃えがおすすめ&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;「OK」をクリック&lt;/li&gt;
  &lt;li&gt;「スケッチを終了」をクリック&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;文字を押し出す&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;ツールバー「作成 ▼」→「押し出し」を選択&lt;/li&gt;
  &lt;li&gt;文字をクリックして選択（複数の文字は順番にクリック）&lt;/li&gt;
  &lt;li&gt;「距離」に値を入力：
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;凸文字（浮き出し）&lt;/strong&gt;: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;2&lt;/code&gt;（プラス値）&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;凹文字（彫り込み）&lt;/strong&gt;: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-2&lt;/code&gt;（マイナス値）&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;「OK」をクリック&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;表札の完成です！&lt;/strong&gt; 🎉&lt;/p&gt;

&lt;hr /&gt;

&lt;h2&gt;3. ビューモードの操作方法&lt;/h2&gt;

&lt;p&gt;3Dモデリングでは、様々な角度からモデルを確認することが重要です。Fusion360には複数のビュー操作方法があります。&lt;/p&gt;

&lt;h3&gt;3.1 ビューキューブ（最も簡単）&lt;/h3&gt;

&lt;p&gt;画面右上にあるサイコロ状のキューブを使います。&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;クリック場所&lt;/th&gt;
      &lt;th&gt;結果&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;「上」&lt;/td&gt;
      &lt;td&gt;真上から見下ろす&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;「前」&lt;/td&gt;
      &lt;td&gt;正面から見る&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;「右」&lt;/td&gt;
      &lt;td&gt;右側面から見る&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;「下」&lt;/td&gt;
      &lt;td&gt;真下から見上げる&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;角をクリック&lt;/td&gt;
      &lt;td&gt;斜め視点（アイソメトリック）&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;辺をクリック&lt;/td&gt;
      &lt;td&gt;2面が見える角度&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;キューブをドラッグすると、自由に視点を回転できます。&lt;/p&gt;

&lt;h3&gt;3.2 マウス操作（作業中に便利）&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;操作&lt;/th&gt;
      &lt;th&gt;結果&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;中ボタン（ホイール）ドラッグ&lt;/td&gt;
      &lt;td&gt;視点を回転&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Shift + 中ボタンドラッグ&lt;/td&gt;
      &lt;td&gt;平行移動（パン）&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ホイール回転&lt;/td&gt;
      &lt;td&gt;ズームイン/アウト&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;これらの操作は作業中に頻繁に使うので、ぜひ覚えておきましょう。&lt;/p&gt;

&lt;h3&gt;3.3 画面下部のナビゲーションバー&lt;/h3&gt;

&lt;p&gt;画面下部中央にあるアイコン群でも操作できます。&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;アイコン&lt;/th&gt;
      &lt;th&gt;機能&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;🖐️（手のひら）&lt;/td&gt;
      &lt;td&gt;パン（平行移動）&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;🔍（虫眼鏡）&lt;/td&gt;
      &lt;td&gt;ズーム&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;🔄（軌道）&lt;/td&gt;
      &lt;td&gt;視点回転&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;⬜（フィット）&lt;/td&gt;
      &lt;td&gt;全体が画面に収まるよう調整&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3&gt;3.4 キーボードショートカット&lt;/h3&gt;

&lt;p&gt;効率的に作業したい方向けのショートカットキーです。&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;キー&lt;/th&gt;
      &lt;th&gt;結果&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;F6&lt;/td&gt;
      &lt;td&gt;上から見る&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;F7&lt;/td&gt;
      &lt;td&gt;前から見る&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;F8&lt;/td&gt;
      &lt;td&gt;ホーム視点（斜め）&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;F&lt;/td&gt;
      &lt;td&gt;選択したオブジェクトにフィット&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3&gt;3.5 ビュー操作のコツ&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;スケッチ作業時&lt;/strong&gt;: 真上や真正面など、平面的なビューが見やすい&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;3D確認時&lt;/strong&gt;: 斜め視点（アイソメトリック）で立体感を確認&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;細部確認時&lt;/strong&gt;: スクロールでズームイン + ドラッグで回転&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;4. STLファイルの書き出し（3Dプリント用）&lt;/h2&gt;

&lt;p&gt;モデルが完成したら、3Dプリンター用のSTLファイルに書き出します。&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;画面左の「ブラウザ」で「ボディ」を展開&lt;/li&gt;
  &lt;li&gt;書き出したいボディを右クリック&lt;/li&gt;
  &lt;li&gt;「STLとして保存」を選択&lt;/li&gt;
  &lt;li&gt;保存オプション：
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;形式&lt;/strong&gt;: バイナリ（ファイルサイズが小さい）&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;単位&lt;/strong&gt;: mm&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;精度&lt;/strong&gt;: 高（細かい文字もきれいに出力）&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;ファイル名を付けて保存&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;あとはSnapmakerなどのスライサーソフト（Luban等）でSTLファイルを開いて印刷するだけです！&lt;/p&gt;

&lt;h2&gt;まとめ&lt;/h2&gt;

&lt;p&gt;Fusion360の基本操作をまとめると：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;スケッチを作成&lt;/strong&gt;: 平面を選んで2D図形を描く&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;押し出し&lt;/strong&gt;: 2D図形を3Dに変換&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;繰り返し&lt;/strong&gt;: 面を選んでスケッチ → 押し出しを繰り返してモデルを作り込む&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;書き出し&lt;/strong&gt;: STL形式で保存して3Dプリント&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;最初は難しく感じるかもしれませんが、この「スケッチ → 押し出し」の流れさえ覚えれば、様々なものが作れるようになります。&lt;/p&gt;

&lt;h2&gt;参考リンク&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.autodesk.co.jp/products/fusion-360/overview&quot;&gt;Autodesk Fusion 公式サイト&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.autodesk.com/jp/campaigns/fusion-360/tutorial/beginner&quot;&gt;Fusion360 ビギナー向けレッスン（公式）&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.autodesk.co.jp/products/fusion-360/personal&quot;&gt;個人用ライセンス申請ページ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Sun, 12 Jan 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/tech/2025/01/12/autodesc-fusion-part1/</link>
                <guid isPermaLink="true">https://connvoi.com/tech/2025/01/12/autodesc-fusion-part1/</guid>
                
                <category>3dprint</category>
                
                <category>autodeskfusion</category>
                
                
                <category>tech</category>
                
            </item>
        
            <item>
                <title>ニュースやらリンクやら</title>
                <description>&lt;h2&gt;最近きになったニュースやリンクをまとめておく&lt;/h2&gt;
&lt;p&gt;技術系多め&lt;/p&gt;

&lt;!--more--&gt;
&lt;h2&gt;13インチタッチパネル付きゲーミングPC&lt;/h2&gt;
&lt;p&gt;RTX50系が話題ですが、それを搭載しつつ、なんと、pcケースにタッチパネル搭載のPCがMSIから出るそう。うそでしょ？&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://jp.msi.com/news/detail/MSI-Unveils-MEG-VISION-X-AI-2nd-Gaming-Desktop--Combining-Intelligent-Control-with-Powerful-Performance-145185&quot;&gt;MEG-VISION-X-AI-2nd-Gaming-Desktop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Pythonで文字起こし&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://gihyo.jp/article/2024/12/monthly-python-2412&quot;&gt;Pythonで音声認識モデルWhisperを使って文字起こし&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;良さそう。zoomの文字起こしがあんまりよくないのでこっちでやってみたい&lt;/p&gt;

&lt;h2&gt;ubuntu周りのアップデート&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://gihyo.jp/admin/clip/01/ubuntu-topics/202412/20&quot;&gt;Jetson Orin Nano Super⁠⁠、 plucky（Ubuntu 25.04）の開発; カーネルバージョンの確定&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;apache luceneのアップデート&lt;/h2&gt;
&lt;p&gt;いつの間にか新しいバージョンが出ている&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://solr.pl/en/2024/12/23/apache-lucene-10-1-0/&quot;&gt;Apache Lucene 10.1.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;ターミナルアプリ gothy&lt;/h2&gt;
&lt;p&gt;そろそろiTerm2から乗り換えてみようかな？というぐらいに思ってる&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghostty.org/&quot;&gt;Gothy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;laravelにSSOを導入するチュートリアル&lt;/h2&gt;
&lt;p&gt;使うことになるかもしれないのでみておく&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.propelauth.com/post/enterprise-sso-laravel&quot;&gt;Adding Enterprise SSO / SAML to Laravel&lt;/a&gt;&lt;/p&gt;
</description>
                <pubDate>Thu, 09 Jan 2025 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/life/2025/01/09/latest-news/</link>
                <guid isPermaLink="true">https://connvoi.com/life/2025/01/09/latest-news/</guid>
                
                <category>news</category>
                
                <category>info</category>
                
                <category>tech</category>
                
                
                <category>life</category>
                
            </item>
        
            <item>
                <title>GCEのインスタンスのhosterror時に自動で再起動しないようにする</title>
                <description>&lt;h2&gt;GCEのHostErrorが起きた&lt;/h2&gt;
&lt;p&gt;そして、勝手にインスタンスが再起動して復帰してきていろいろ面倒だった&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;GCEのインスタンスがHostsErrorの時は自動で再起動する&lt;/li&gt;
  &lt;li&gt;任意のタイミングで再起動されて困るシステムは自動再起動を無効化したほうがよい&lt;/li&gt;
&lt;/ul&gt;

&lt;!--more--&gt;

&lt;h2&gt;GCEのインスタンスが突如として再起動した&lt;/h2&gt;
&lt;p&gt;普段だと、GCEのインスタンスが突如として再起動することはほぼない
監視としては4~5分間インスタンスが停止するような状況だった。&lt;/p&gt;

&lt;p&gt;ログとしてはmessagesにいきなり起動シークエンスのログが流れていた
どうやらHostsErrorというものらしく、GCEのインスタンスをホストしている物理マシンが何かしらのエラーを起こしたときに発生するらしい&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://cloud.google.com/compute/docs/troubleshooting/troubleshooting-reboots?hl=ja#hosterror&quot;&gt;GCEのドキュメント&lt;/a&gt;によると、このエラーが発生した場合、GCEは自動でインスタンスを再起動するようになっている&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ホストエラー（compute.instances.hostError）は、VM をホストしている物理マシンで、VM がクラッシュするようなハードウェアまたはソフトウェアの問題が発生したことを意味します。ハードウェア全体の障害やその他のハードウェアの問題でホストエラーが発生すると、VM のライブ マイグレーションが停止することがあります。VM が自動的に再起動するように設定されている場合（デフォルト設定）、Google は通常、エラーが検出されてから 3 分以内に VM を再起動します。問題によっては、再起動に最大 5.5 分かかります。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;で、自動再起動が発生してしまうと困ることが、持っているディスクの状態とサービスの状態の同期が取れなくなってしまう
動かしているサービスによっては、中途半端な状態でサービスを続けちゃう状態になってしまう。というか実際にそうなった&lt;/p&gt;

&lt;p&gt;自分の場合はApache Solrのインデックス半壊した？みたいな状態になってしまった。
おそらく、データの更新中にHostsErrorが発生し、再起動した時にそのままの状態でサービスが開始されてしまったのが原因だと思われる&lt;/p&gt;

&lt;h2&gt;HostsError時の自動再起動を無効化する&lt;/h2&gt;
&lt;p&gt;サービスにもよるんだけど、自動再起動を無効化することにした
gcloudのコマンドが割と簡単に出来た&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;gcloud compute instances set-scheduling INSTANCE_NAME  &lt;span class=&quot;nt&quot;&gt;--no-restart-on-failure&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;GCEのインスタンスがHostsErrorの時は自動で再起動する&lt;/li&gt;
  &lt;li&gt;任意のタイミングで再起動されて困るシステムは自動再起動を無効化したほうがよい&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Mon, 28 Oct 2024 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/tech/2024/10/28/GCE-autorestart/</link>
                <guid isPermaLink="true">https://connvoi.com/tech/2024/10/28/GCE-autorestart/</guid>
                
                <category>GCE</category>
                
                
                <category>tech</category>
                
            </item>
        
            <item>
                <title>Apache Solrをbuildする</title>
                <description>&lt;h2&gt;Solrをビルトした時のメモ&lt;/h2&gt;
&lt;p&gt;ちょっと、Solrをビルドする必要ができたので、調べた時のメモ&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2&gt;環境設定&lt;/h2&gt;
&lt;p&gt;環境はUbuntu 22.04を使ってやっていく
まずは必要パッケージのアップデートとインストールなど&lt;/p&gt;

&lt;p&gt;javaとビルトツールとしてgradleを使っているのでインストールする&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt update
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;openjdk-17-jdk
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;gradle
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;コードの取得〜ビルド&lt;/h2&gt;
&lt;p&gt;Solrでは、gradlewというコマンドをgradleのラッパーとして使っている
それのassembleを実行することでビルドができる&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git clone https://github.com/apache/solr.git

&lt;span class=&quot;c&quot;&gt;#ビルドの実行&lt;/span&gt;
./gradlew assemble

&lt;span class=&quot;c&quot;&gt;#ビルドが成功すると以下の場所にビルドされたファイルができる&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;solr/packaging/build/VERSION
&lt;span class=&quot;c&quot;&gt;#起動する&lt;/span&gt;
bin/solr start &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2&gt;その他&lt;/h2&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# いわゆるhelp
./gradlew help

# buildなので利用できるオプションの表示をする
./gradlew tasks


# テストの実行
./gradlew check
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;この辺を読んでおく
&lt;a href=&quot;https://github.com/apache/solr/blob/main/dev-docs/solr-source-code.adoc&quot;&gt;github/solr/dev-docs&lt;/a&gt;&lt;/p&gt;
</description>
                <pubDate>Sat, 19 Oct 2024 00:00:00 +0900</pubDate>
                <link>https://connvoi.com/tech/2024/10/19/solr-build/</link>
                <guid isPermaLink="true">https://connvoi.com/tech/2024/10/19/solr-build/</guid>
                
                <category>solr</category>
                
                
                <category>tech</category>
                
            </item>
        
    </channel>
</rss>