エンジニアリングとお金の話

都内で働くエンジニアの日記です。

技術

共通的に使用するpythonコマンドはpipxで管理することにした

pythonで環境を構築する際に常に悩んでいたのが、共通的に使用したいpythonコマンドのインストール方法である。具体的にはPoetryやJuypter labなど。 今まではpyenvでインストールしたpython環境にpipで導入していたが、なんか気持ち悪い。良い解決方法が無いか探…

response_formatとfunction_callingのjson出力の違いについて

先日OpenAI DevDayで発表があったresponse_formatを早速使用してみました。 response_formatはプロンプトにjson形式を指定することで出力がJSON形式に固定されるモードになります。使い方は簡単で以下条件を満たせばOKです。 モデルをgpt-4-1106-previewかgpt-3…

LangChainが発行しているプロンプトを確認する方法について

LangChainは非常に便利だけど自分が意図しないプロンプトが作成されていることがある。確認する方法が無いか探していたらログに出力出来ることが分かった。下記コードを追加することでログ上にLangChainが発行するプロンプトが出力される。 import openai opena…

langchainのLLMとチェーンの使い分けについて

langchainには様々なモジュールが存在するが各々の関係性が良く分かって無かったので調査した。 langchainのモジュール 主なモジュールは以下の通り LLM : 言語モデルによる推論の実行。 プロンプトテンプレート : ユーザー入力からのプロンプトの生成。 チェ…

langchainのchainとagentの連携について

langchainの勉強の一貫としてchainとagentの連携を行ってみた。 フォルダ構成 langchain_work_3 ├── agent.py ├── main.py ├── output_parser.py └── tools.py 処理内容 main.pyからagent.pyを呼び出す agent.pyの中で条件を達成するためのツールをtools.pyか…

vscodeのvim設定について

Chat GPT APIでプログラミングをしようと思いコードを書いているがvscodeのvim設定で毎回イラッとしていた。特にノーマルモードで日本語入力状態になって何も出来ない状態になる事象が多々発生した。防ぐ方法として2つの対応を行った。 im-selectの導入 qiita.c…

mac購入後に行う初期設定

appleの初売りでmac book pro 14インチを購入した。 以前購入したmacが2014年だったので8年ぶりの端末購入になる。 これからは3〜4年毎に買い替えを行うようにしようと思い、今回行った設定を忘れないようにまとめておく。 端末設定(システム環境設定で行うこと)…

一日で600万円損した話

だいぶ傷が癒えて来たので反省を込めて書こうと思う。今年は結構株で利益が出ており、6月の暴落局面も事前に回避出来る事が出来て非常に調子が良かった。 変に自信がついてしまったこともあり、ちょうどその頃話題になりかけていたサル痘関連の銘柄を購入す…

システム設計の原則7

システム設計の原則7感想 業務データとロジックを一体にして業務ロジックを整理する クラス設計で大切なことは、使う側のクラスのコードがシンプルになるように設計すること。そういうオブジェクト指向らしいクラスを設計するためには次の点に気を付ける。 …

システム設計の原則6

システム設計の原則の感想6 状態の遷移ルールをわかりやすく記述する 状態遷移を処理する際に、通常はif文やswitch文を用いて処理しがちだが、列挙型とコレクションを使うことでシンプルに宣言することが出来る。 enum State{ 審査中, 承認済, 実施中, 終了,…

システム設計の原則4

システム設計の原則の感想4 else句をなくす else句はプログラム構造を複雑にするので、else句をできるだけ書かない方がプログラムが単純になる。 悪い例 def fee(): result = "" if isChild() result = childFee() elif isSenior() result = seniorFee() els…

システム設計の原則3

システム設計の原則の感想3 型を使ってコードをわかりやすく安全にする intやstringなどの基本データ型だけで書いたプログラムは思わぬバグを生む可能性がある。 悪い例 int amount(int price,int unit,int charge) { //すべて基本データ型だと例えばunitと…

システム設計の原則2

システム設計の原則の感想2 値の範囲を制限してプログラムをわかりやすく安全にする 基本データ型をそのまま使うと実際の業務とはかけ離れた値を設定出来てしまい、無意識に異常な値を扱ってしまう可能性がある。業務的に正しい値を扱うためには値の範囲を…

win-vpsのwindows server2016を日本語するためにやったこと

macでマネックス証券のトレードステーションを使いと思いvpsサーバを契約することにした。色々検討した結果ロシアのwin-vpsが恐ろしく安いことが分かった。 win-vps 一番安いメモリ6Gのプランが3$なので、1ドル110円と考えて1ヶ月あたり330円。なお、別途O…

好きだから稼げるということ

今年に入ってから株式投資とは距離をおいています。そのため売買自体はほぼ行っていない状態です。 ただ、株価の動向自体は常に追っているので毎日ヤフーファイナンスのランキングを眺めたり、投資に関する本を読んだりしています。これは強制では無く自分が…

codexaの機械学習コースを終えた

機械学習の勉強をお昼休みにしたいと思い何かいいものが無いかと探していました。その時見つけたのがcodexaになります。 www.codexa.net 機械学習を行う上でで知っておきたいpythonの基礎知識やnumpyやpandasなどのライブラリに付いての知識を動画で学ぶこと…

データサイエンティスト講座の勉強を始めた

今年はデータに強いエンジニアを目指してデータサイエンスの勉強に力を入れていこうと思っています。 その一環として東京大学の松尾研究室が公開しているデータサイエンティスト講座の勉強を始めました。 weblab.t.u-tokyo.ac.jp 全ての講義がjyupter notebo…

vimでpython(jedi)の補完が効くようになった

homebrewでvimのバージョンをアップしたらpythonの補完が効かなくなりました。。何を打っても「パターンは見つかりませんでした」と表示されます。 pythonの補完にはjediを使用しています。色々調べていると「:JediDebugInfo」というコマンドで現在の状況が…

AI APIコンテストに参加することにした

株式会社ディップがAI APIコンテストを1/15から開始しました。 自分も参加すること決定です。久々に技術的なコンテスト参加なのでワクワクします。 概要 【名称】 「AI APIコンテスト」 【URL】 http://ainow.ai/ai-api-contest/ 【参加資格】 どなたでも参…

【技術】swiftを久しぶりに書いた

とある事情でiphoneアプリを作成する必要があり、久しぶりにswiftを書いた。その際に学んだ事をメモ。

【技術】Xvimが動かなくなったらすること

Xcodeをアップデートすると毎回XVimが動かなくなり、その都度なんでだろうと思っていた。原因を調査していたらXVimのページ書に理由が書いてあった。

【技術】kerasのnp_utils.to_categoricalについて

ディープラーニングの勉強を最近はじめた。手始めに評判がいいkerasを使用している。

【技術】会社の端末を理想の開発環境にしてみた

自宅ではmacを使用して開発を行っているが、会社ではwindows端末が支給され使用している。基本vimとpythonが入っていれば開発は行えるが、自宅での開発と比べると使いづらく不満を感じていた。 ちなみに、自宅では以下の開発環境を使用している。 ターミナル…

【技術】pythonでwebsocketを試してみた

tornadoを使用してwebsocketを試してみた。 準備 pipにてtornadoとwebsocket-clientをインストール

【技術】pythonのインポートについて

pythonのインポートてよく分からなかったので調べてみた。 確認用モジュールのフォルダ構成 D:\WORK\PYTHON\TEST │ main.py │ __init__.py │ └─ package sub.py __init__.py main.pyからsub.pyを使用する為にインポートを行う。なお、sub.pyの中身はこんな感…

【技術】pythonのデコレータを整理してみた

pythonのデコレータが良く分かっていなかったので自分なりに整理してみた。 デコレータとは? 関数を関数で包む為の簡単な書き方(シンタックスシュガー)。具体的には関数hogeの前に@decoと付けるとhoge=deco(hoge)となる。 #デコレータ関数 def deco(func): …

【技術】VBAで重複を除去する方法

vbaで重複した値を除去したい場合は、辞書を作成してキーに値を突っ込めばOK。最近仕事で使用したのでメモ書きしておく。

【技術】仕事に活かせるVLOOKUPの使い方

エクセルで一番好きな関数を挙げて下さいと言われたらダントツでvlookupを選ぶ。vlookupが無いエクセルを想像する事が出来ない。それぐらいvlookupを愛している。 vlookupが好きな理由は使い道が複数あり、簡単に痒いところに手が届くからだ。自分がvlookup…

【技術】スタートアップが求める人材について

リクルート社主催のCodeIQ感謝祭に参加してきた。おそらく3回目ぐらいの参加だと思われる。 atnd.org 13時〜18時までと非常に長丁場であったが、エンジニアに役立つ色々な話を聞くことが出来た。その中で各社の代表がスタートアップに採用される為に求めら…

【技術】勉強会の種類について

鹿児島から東京に出てきて良かったと思う事がある。それは、東京はITの勉強会が恐ろしく多いという事だ。毎日どこかで勉強会が行われている。