並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 714件

新着順 人気順

Zennの検索結果241 - 280 件 / 714件

  • プログラミング言語AWKのここがLOVE

    プログラミング言語AWKが好きなので、この言語のどこが好きかを語ります。主にAWKを知らない、知ってるけど使ったことが無いかた向けの記事ですが、使ったことがあるかたも「こういう思いで使ってる人がいるのか」と遠巻きに眺めてもらえればと考えます。また、後半で最近出たAWKの書籍についても紹介しているので、そちらも役立つかもしれません。 AWKとは AWKは1977年にAT&Tベル研究所で生まれたプログラミング言語です。AT&Tベル研究所といえばUNIXが生まれたところです。著者もUNIXに縁が深い、この世界のレジェンドばかりです。たとえばKernighan先生はプログラミング言語Cをはじめ、たくさんの書籍の著者として有名です。なんだか強そうな言語ではないかという気がしてきました。 AWKは汎用プログラミング言語ですが、「1行1レコードになっているテキストファイルを最小の手間で処理するワンライナ

      プログラミング言語AWKのここがLOVE
    • Next.jsアプリをVercelからGoogle Cloudに移行した話

      ZennではフロントエンドにNext.jsを使っています。もともとはVercelで動かしていたのですが、2021年3月にGoogle Cloudに移行しました。今回は移行を決めた理由や、具体的な構成、移行作業などについて書きたいと思います。 なぜ移行したのか Next.jsのデプロイ先としてVercelは圧倒的に優れています。ISRやImage OptimizationといったNext.jsの強力な機能をサーバー側の追加設定なしで使用できますし、CDNでの静的ファイルのキャッシュなども特に意識しなくてもいい感じにやってくれます。 Vercel以外にデプロイするとなると、Next.jsの一部の機能がうまく動かなかったり、パフォーマンス・チューニングを自分で頑張る必要があったりと自分で面倒を見なければならない部分が多くなります。 しかし、Zennのケースでは以下のような理由からVercelから

        Next.jsアプリをVercelからGoogle Cloudに移行した話
      • 業務アプリケーション開発にGoを採用する理由

        この記事は MICIN Advent Calendar 2022 の24日目の記事です。 前回は熊沢さんの2つの新規事業立ち上げで経験したタイプ別MVP検証の進め方でした。 はじめに 本記事では、業務アプリケーションのバックエンドとしてGoを採用することによるメリットを、実際の業務経験を振り返りつつ考察してみます。 近年では多くの企業でGoが採用されています。その採用理由は、「並行処理をたくさん行いたいから」「学習コストが低いから」「フットプリントが小さくコンテナベースのプラットフォームに向いてるから」「Googleが使ってるから」「高速だから」といったところが挙げられるんじゃないでしょうか。 一方で、単なるモノリスなAPIとしてGoを選ぶ必要はないんじゃないのか、といった声もよく聞きます。「初期フェーズはスピード重視でRuby on Railsが最強だ」「枯れた技術であるJava + S

          業務アプリケーション開発にGoを採用する理由
        • Docker のキャッシュを全力で使いこなそう

          tl;dr 依存パッケージのダウンロードは最初に実行しよう マルチステージビルドは必須と覚えておこう RUN --mount=type=cache を使おう(でも BuildKit を使えるかは確認して!) pnpm fetch も期待大 はじめに みなさん,Docker を使って開発するときに依存パッケージのダウンロードをずっと待ち続けた経験はありませんか?「依存パッケージの追加なんて頻繁に発生しないし,我慢しよう…」と妥協している方も多いでしょう. 頻繁に発生しない?本当にそうですか? 追加ではなくても依存パッケージの更新なんてよく発生するし,ベースイメージを更新することもあります.その度に全部ダウンロードし直しなんて堪ったもんじゃありません.モバイル回線だったら一瞬でギガがなくなっちゃいますよ! ということで,この記事ではキャッシュを活用して依存パッケージのダウンロードが何度も発生し

            Docker のキャッシュを全力で使いこなそう
          • MySQLを使っても会社は潰れない

            MySQLを使っても会社は潰れない そんな話は聞いたことがない。AWS Lambdaが再帰実行されて潰れた会社の話は実際に聞いたことがあるが。 つい先日、私が書いた記事がとんでもなく大事になってしまい、大変な賛否を巻き起こした。 まさかこんなに読まれると思っていなかったので、大変驚いたのと同時にインターネッツの恐ろしさを体感した。 その中でも特に物議を醸したのが「MySQLを使うと会社が潰れる」というフレーズだった。 「MySQLを使うと会社が潰れる」とはなんだったのか 私がこのフレーズを選んだ理由は、言うまでもなく単に読者の注意を引く表現を使いたかったからである。 このフレーズがセクションの先頭にあったら、「なにをいってるんだこいつ?」と先を読んでみようという気になると思った。 そして続きを読んでいくと「なんだそういうことか」と意図を汲んで、それで同意するかしないかは人それぞれだろうなと

              MySQLを使っても会社は潰れない
            • Zennのバックエンドを Google App Engine から Cloud Run へ移行しました(無停止!YES!)

              Zennは、Next.js + Ruby on Rails(APIモード)を Google Cloud の App Engine へデプロイして稼働していました。最近、Rails の実行環境を App Engine Flexible から Cloud Run へ移行したので、その記録を残します。 ロードバランサーのバックエンドサービスを付け替えることで実現 最初に、どうやって移行したかです。Zennのバックエンドはもともとロードバランサーで構成されていました。以下の図のように、ロードバランサーの Backend Service より背後を切り替えることにより実現しています。Cloud Run とそこにアクセスするための Serverless NEG はあらかじめ稼働させておくことで、ダウンタイムなしで切り替えられました。 参考:負荷分散 | Google Cloud https://clo

                Zennのバックエンドを Google App Engine から Cloud Run へ移行しました(無停止!YES!)
              • GitHubの運用を「会社」にしていく話

                Ubie DiscoveryでSREなどをしている@itkqです。 UbieではGitホスティングにgithub.comを使っています。プロダクト開発に必要なprivateなコードベースはもちろん、OSSや就業規則といったドキュメントをpublicにホストしたりもしています。また、この記事を書いている時点で、メインのOrganizationのメンバーは121名です。 自分が入社したのは一年前(2021年1月)で、まだ情報システム専任の人がいませんでした。それから今に至るまで、GitHubの運用を「会社」にしていく話を書きます。 一年前のGitHubの運用 当時、UbieのOrganizationに所属していた人数は、業務委託含め80〜90名ぐらいで、Businessプランを利用していました。私はSREとして入社しましたが、情報システム専任の人がおらず、SREをはじめとする何名かのメンバーが

                  GitHubの運用を「会社」にしていく話
                • AWSのアーキテクチャ図を描くときに意識していること

                  最初に 公式のガイドライン AWSが配布しているツールキットの中に基本的なガイドラインが記載されています。 描き方に正解はない こちらの記事のあるようにアーキテクチャ図に正解はなく、伝えたいことが適切に伝わるということが大切だと思います。 伝えたい内容や伝える相手によって重点や粒度を変えることを心がけています。 描画ツール diagrams.net(Draw.io)を使ってます。 意識していること アイコンは最新バージョンを使用する AWSのアイコンは定期にアップデートされるので最新のアイコンを使うようにします。 ちなみにdiagrams.netでEC2と調べると古いアイコンが先頭に出てきたので意識していないとこちらを使いがちかもです。 アイコンのバージョンを混ぜない アイコンは最新バージョンを使用すると同じような内容ですが、複数バージョンのアイコンが混在しないようにします。以下の図ではE

                    AWSのアーキテクチャ図を描くときに意識していること
                  • 2020年版: なぜ仮想 DOM / 宣言的 UI という概念が、あのときの俺達の魂を震えさせたのか

                    本記事は、 「なぜ仮想 DOM という概念が俺達の魂を震えさせるのか」 https://qiita.com/mizchi/items/4d25bc26def1719d52e6 の 2020 年版のリライトです。 2014 年当時、日本においては React は未だ知る人ぞ知るライブラリ、という位置づけでした。それが、この記事によって一気にメジャーになったように思います。 オリジナルは2014 年末の情報によって書かれたもので、さすがに 6 年経った今では情報が古くなっており、当時の暗黙のコンテキスト、古いリソースの参照、初学者の混乱を招く表現が残ったままになってしまっています。 定期的に更新しようとも思いましたが、そうすると 2014 年末の歴史的な背景を失ってしまうため、あえてそのまま残し、新しい記事を投稿することにしました。増補改訂版というより、ほぼ書き直しです。 この記事は本来なら

                      2020年版: なぜ仮想 DOM / 宣言的 UI という概念が、あのときの俺達の魂を震えさせたのか
                    • Goのプロジェクト構成の基本

                      Goのプロジェクトをどの様なファイル構成で配置すれば良いか読み物が少ないという指摘を見たのでまとめてみようと思う。 GOPATHについて Go1.16がリリースされたことでGo-Moduleによるプロジェクト構成が標準で推奨されることになりました。(Go1.11までさかのぼってGo-Moduleは使える様になってます) Go-Moduleモードでは「GOPATH配下にプロジェクトを置かなければならない」という制約からは解放されています。なので、実質GOPATHはどこを指していても構わないし設定されていなくても「ユーザーホーム/go」というデフォルトの場所が決まっているので開発できます。 おすすめの環境変数設定は以下の2つだけ。 「GOPATH=~/.go」(WindowsはGOPATH=%USERPROFILE%\.go) 「PATH=$GOPATH/bin:$PATH」(Windowsは

                        Goのプロジェクト構成の基本
                      • 仕様書とテストを用いた「AI駆動開発」

                        数年前にAIを離れ現在はフロントエンドをやっているのですが、半年くらい前に思い切り引き戻されました。画像生成AIにおけるmidjourneyとstable diffusionの登場です。noteのCTO深津さんが記事を出したと思ったのも束の間、急速に進化を果たしました。 絵柄の固定・ポーズの指定・マシンスペックなど、日々さまざまな問題を解決しながら新たな技を身につけています。 しかし、同等かそれ以上に話題になっているのは大規模言語モデル(Large Language Model)かもしれません。ChatGPTが話題になった思ったら、BingやPerplexity,You.comなど大規模言語モデルを交えたサービスが次々と登場しました。 活用方法もたくさん見つけられており、私は特に以下の二つの記事が好きです。 「感情回路」の記事に入力(プロンプト)でここまで変わるのかと感動したことを覚えてい

                          仕様書とテストを用いた「AI駆動開発」
                        • Rustでゲームボーイエミュレーターを書いた

                          RustでTGB-Rというゲームボーイエミュレーターを書きました。 とりあえずWindowsとLinuxで動作確認をしていて、エミュレーションの精度もそれなりに出ているはずです(以下は非公式ROMによるスクリーンショット)。 GameBoy WORDLE 2048gb Hi-Colour Demo Bad Apple!! 名前は、以前私が書いていたゲームボーイエミュレーターの精神的後継だったり、Rustで書いていたりとかでこうなりました。 以前書いたエミュレーターもオープンソースで公開していたのですが、ふと検索してみたら、GitHubにプロジェクトができていて、メンテナンスが続けられていました。 私がこれを書いていた時期はGitHubどころかgit自体が存在しないような時代で、サーバーを借りてそこに手作りのアーカイブをしこしこアップロードしていたような、あまりに素朴な開発でしたが、そんな時

                            Rustでゲームボーイエミュレーターを書いた
                          • JSの日付ライブラリは、どれを使えばいいのかまとめ

                            Moment.jsは、新規開発停止、メンテナンスモードに移行 Moment.jsは、新規機能の開発停止、メンテナンスモード(セキュリティ修正とMoment Timezoneのデータ更新は行う)に移行することが発表されています。これから新規開発するプロジェクトでは、別のライブラリを使うことが推奨されています。 僕の新規開発のプロジェクトでも当初はMoment.jsを使っていましたが、リリース前にこの発表が出たので、別のライブラリに変更することにしました。 Moment.jsのドキュメントページに、推奨ライブラリが4つ掲載されていたので、その中から選ぶことにしました。 Luxon Day.js date-fns js-Joda 簡単に結論が出るケース Day.jsを使うべき人 Moment.jsからの移行 Moment.jsを使い慣れている人 Day.jsはMoment.jsと同じAPI体系を

                              JSの日付ライブラリは、どれを使えばいいのかまとめ
                            • Prisma: Node.js & TypeScript向けの完璧なORM

                              本記事は、@nikolasburk氏による「The Complete ORM for Node.js & TypeScript」(2021年4月21日公開)の日本語翻訳を、著者の許可を得て掲載しているものです。今後Prismaの公式ブログの日本語翻訳の許可をいただいたので、このアカウントで継続して翻訳していきます。※画像やリンクは公式のBlogからお借りしています。 Prismaは、Node.jsとTypeScriptのための次世代ORMです。2年以上の開発期間を経て、すべてのPrismaツールが製品化の準備が整ったことをお伝えできることに興奮しています! コンテンツ オブジェクト-リレーショナルマッピングの新しいパラダイム あらゆるスタックに対応するPrisma ミッションクリティカルなアプリケーションでの運用に対応 オープンソースを超えて お手伝いできることは? Prismaを始めよう

                                Prisma: Node.js & TypeScript向けの完璧なORM
                              • Google CloudのTerraform職人が失職する機能が出てしまった……

                                Google CloudがApplication Design Centerという、構成図を書けばTerraformを書いて、デプロイまで行う機能をリリースしました。[1] どうやらGoogle CloudはTerraform職人を失職に追い込みたいようです。 Application Design Centerの概要 アプリケーション デザイン センターは、Google Cloud アプリケーション インフラストラクチャの設計、共有、デプロイに役立ちます。アプリケーション デザイン センターを使用すると、アプリケーション テンプレートを設計し、開発者と共有し、インスタンスをデプロイして、設計を進化させることができます。 つまりApplication Design Centerはインフラ構成図の設計・共有・デプロイを補助するツールで、アプリケーション開発者やプラットフォーム管理者が効率的に管

                                  Google CloudのTerraform職人が失職する機能が出てしまった……
                                • MCPサーバーを使って請求書作成から送付まで自動化してみた話

                                  はじめに こんにちは 株式会社BTMでエンジニアをしている島谷です。 現在、他社様と副業契約を結んでおり、毎月月初に請求書を作成して送付しています。 その作業が毎回手間に感じられ、「もっとスマートに作成できないか」と考えるようになりました。 そこで、話題の Model Context Protocol(以下、MCP)を使って、請求書作成から送付までの自動化に試みました。 背景 これまで、月初になると手作業で次のような手順を踏んでいました。 Toggl Track で前月分の合計作業時間を控える Googleスプレッドシートの「請求書テンプレート」シートを複製 複製したシートに合計作業時間および請求日、支払い期限等の日付を入力 PDFとしてエクスポート 担当者宛てにGmailで送信 流れ自体は単純ですが、シートへの入力ミスを防ぐために何度も確認していることから、10〜15分ほど取られていまし

                                    MCPサーバーを使って請求書作成から送付まで自動化してみた話
                                  • 関数の多重下請けをやめよう。単一責任の原則と関数の"責任"について

                                    「多重下請け構造は悪い」、これは世間的にだいぶ浸透してきた考えだと思います。しかし、プログラマは 多重下請けのコードを気づかぬうちに書いてしまうことが多々あります。 なんなら皆さんもついウッカリやってしまっているでしょう。 当然ながらコードベースでも多重下請けは良くありません。今回の記事では、多重下請けコードとは何か、その問題点、回避方法を解説します。 多重下請け構造になってるコードとは? 多重下請け構造になってるコードとは、タスクをたらい回しにしているコードです。 たとえばECサイトで注文するシーンを考えてみます。サーバーの実装はこんな感じです。 def 注文API(): 注文処理(price) 集計DBにログを送る() def 注文処理(price): 決済する(price) 履歴に保存する() def 決済する(price): if キャンペーン期間中だったら: 支払う(price

                                      関数の多重下請けをやめよう。単一責任の原則と関数の"責任"について
                                    • ぼくのかんがえたさいきょうの useState + useContext よりも Redux のほうが大抵勝っている

                                      「Redux は学習コストが高い」などと言って useState(または useReducer)と useContext を組み合わせ 劣化 オレオレ Redux を作ってしまうのを見かけます[1]。よくないことだと思いますが、気持ちは非常にわかります。Redux エコシステムがそういう気持ちにさせてしまう部分は大いにあります。 Redux は それ単体なら 学習コストは useReducer + useContext と同等であることを示してこの気持ち(誤解)を解かしつつ、なぜそういう気持ちになってしまうのか考察してみます。 まず useState と useReducer の違いを押さえておく 知っている方はスキップしてください。 useState と useReducer は本質的には同等で、どちらもコンポーネントにステート(状態)を持たせる役割があります。次のようなカウンターアプリ

                                        ぼくのかんがえたさいきょうの useState + useContext よりも Redux のほうが大抵勝っている
                                      • GitHubで使えるようになった Mermaid の便利なところ

                                        はじめに GitHub で Mermaid がサポートされました。 Mermaid は図やグラフを描画するの独自の記法を持ちます。 その記法を Markdown のコードブロック中に記述するだけで図を描画できるのが便利です。 ...便利なのですが、記法が独特なことや機能が豊富なことから、とっつきにくいところもあります。 弊社[1]では みんチャレ 開発の情報共有ツールとして esa.io を活用しており、 esa も Mermaid をサポートしており以前から活用していました。 この記事では、私がこれまでに活用してきた中から特に便利だと感じた機能を紹介します。 ちなみに Zenn も Mermaid をサポートしているため図を描画できます。 Gantt ガントチャートです。 私が Mermaid を使いたいと思ったきっかけの機能です。 まずは、一番シンプルな例を書きます。 gantt Co

                                          GitHubで使えるようになった Mermaid の便利なところ
                                        • Rustが嫌いです。

                                          0. 前書き - リモートデスクトッププロジェクトとの悲しき邂逅 私がremote-desktop-rsというクロスプラットフォームのリモートデスクトッププロジェクトを始めたとき、Rustの評判を信じていた。「メモリ安全性とパフォーマンスの素晴らしい組み合わせ」「優しいコンパイラエラー」「素晴らしいエコシステム」——本当にそうだったのか? 1. 学習曲線は「少し急」ではなく「エベレスト級」 「所有権の概念を理解すれば、あとは簡単です」と言われ続けた。嘘だ。絶対に嘘だ。 1.1 所有権地獄 私はcommon/src/lib.rsで単純な「ビルド情報」構造体を作成しようとした: // 素晴らしい所有権システムと戦った結果の姿 pub fn build_info() -> BuildInfo { let build_date = chrono::Local::now().format("%Y-%

                                            Rustが嫌いです。
                                          • Gitのオブジェクトの中身

                                            はじめに Gitのインデックスの中身、Gitのブランチの実装に続く、Gitの中身を見てみようシリーズです。Gitが管理するオブジェクトの種類や中身について見てみます。基本的にはPro Gitの10. Gitの内側をまとめなおしたものです。 オブジェクトの種類 Gitは、内部でファイルやコミットを「オブジェクト」として.git/objects以下に保存しています。オブジェクトには以下の4種類があります。 blobオブジェクト: ファイルを圧縮したもの。ファイルシステムの「ファイル」に対応 treeオブジェクト: Blobオブジェクトや別のTreeオブジェクトを管理する。ファイルシステムの「ディレクトリ」に対応 コミットオブジェクト: Treeオブジェクトを包んだもの。コミットのスナップショットに対応するTreeオブジェクトに、親コミット、コミットメッセージなどを付加する タグオブジェクト:

                                              Gitのオブジェクトの中身
                                            • フリーで使える日本語の主な大規模言語モデル(LLM)まとめ

                                              ありがとうございます! 実は私本人がそのモデルの構築に関わっているのですが、詳細はまだ言えない状況です...。 来年3月の言語処理学会年次大会(NLP2023)での続報をお待ちください!このモデルに関する論文が公開される予定です(一応それを待ってからこの記事にも掲載します)。 (私が書いたものではありませんが、現段階で公開できる情報をまとめた記事があります: https://note.com/utokyo_itc/n/nb18b2a753f23 )

                                                フリーで使える日本語の主な大規模言語モデル(LLM)まとめ
                                              • ユーザー投稿型サイトのSEO対策

                                                Zennという技術情報共有サービスを運営しています。長期的にZennの流入経路の多くは「検索」になると予想しています。むしろ検索流入が多いサービスであるべきだと考えています。 具体的なソースコードや数式が並ぶ文章は、ソーシャルメディアではあまりシェアされません。ある程度抽象的な内容でないと、読者層が狭く、読み手も労力を必要とするからです。 (具体的な話を盛り込みつつ話題を集める文章を書けるスーパーな方もときどきいますが) しかし、いざ仕事で問題に直面したとき、自分を助けてくれるのは、たいてい具体的なコードを含む記事や実際に問題に直面した人によるニッチな体験談です。すぐに誰かに届くものではないけれど、後から同じ道を通った人は助かる… そんな先人の知恵がたくさん集まる場所になったらいいなと考えています。 SEOに関する情報収集源 本題に入る前に、僕が参考にしているSEO対策の情報源を紹介してお

                                                  ユーザー投稿型サイトのSEO対策
                                                • S3 互換オブジェクトストレージまとめ

                                                  概要 S3 互換オブジェクトストレージの サービス を自分のためにまとめている。サービスとして提供されているのが前提で、 自前運用は範囲外 。 目的 以下の内容に絞って調べている。 日本リージョンの有無 egress の費用 容量の費用 追加調査予定 PutObject 対応 PresignedGetObject 対応 S3 互換 S3 互換の条件は s3cmd や aws sdk s3 がそのまま利用できる事。細かい互換性は気にしない。 比較用の AWS S3 https://aws.amazon.com/jp/s3/pricing/ 最小プラン Tokyo / Osaka リージョンあり 1 GiB 追加の egress 転送量は 0.114 ドル 1 GiB の追加容量は 0.025 ドル TODO SLA 書いてるのと書いてないのがあって拾いにくい 対象外 Azure は S3 互

                                                    S3 互換オブジェクトストレージまとめ
                                                  • VisualStudioCodeで絶対にしておくべき設定ベスト20

                                                    Visual Studio Codeで絶対にしておくべき設定ベスト20 はじめに Visual Studio Code(VSCode)は、開発者にとって非常に人気のあるエディタであり、その柔軟性と拡張性から多くのプログラミング言語やフレームワークに対応しています。VSCodeを最大限に活用するためには、適切な設定を行うことが重要です。本記事では、VSCodeで絶対にしておくべき設定ベスト20を紹介し、それぞれの設定がどのように開発体験を向上させるかを詳しく解説します。 1. テーマの選択 1.1 ダークテーマとライトテーマ VSCodeでは、ダークテーマとライトテーマの両方が利用可能です。開発環境の明るさや好みに応じてテーマを選択することで、目の疲れを軽減し、作業効率を向上させることができます。特に、長時間のコーディング作業を行う場合、適切なテーマ設定は重要です。 1.2 テーマの変更方法

                                                      VisualStudioCodeで絶対にしておくべき設定ベスト20
                                                    • TypeScriptのdeclareやinterface Windowを勘で書くのをやめる2022

                                                      おことわり 個々の関数や変数に正しい型をつける話はしません。TypeScript HandbookのDeclarationの章などを読むことをおすすめします。 かわりに、本稿では関数や変数の型宣言をどこにどう置くべきかの指針を与えます。 モジュールとスクリプト declareを正しく使うにはまずモジュールとスクリプトの区別を理解し、意識することが大切です。 ブラウザやNode.jsは外部からの指定でモジュールとスクリプトを区別しますが、TypeScriptでは原則としてファイルの内容でモジュールとスクリプトを区別します。 import 宣言または export 宣言が1つ以上あればモジュール。 CommonJSモジュールの場合はTypeScript専用構文である import = 宣言、 export = 宣言を使う。 それ以外の場合はスクリプト。 ただし、JavaScriptファイル (

                                                        TypeScriptのdeclareやinterface Windowを勘で書くのをやめる2022
                                                      • 開発用適当ツールは Rust で作るのもオススメ

                                                        開発用適当ツールは Go で作るのがオススメ!? 先日、開発用適当ツールはGoで作るのがオススメ という記事を拝見しました。 まだ読んでないよという方はぜひ読んでみてください! とても良い記事でした😌✨ Go 言語も CLI ツールの実装に向いているということも分かりました。 そして、Go 言語の魅力も伝わってきました...!! まとめると以下のような点がメリットとして挙げられていると思います。 go run で簡単に実行できる シングルバイナリにクロスコンパイルできる go.mod / go.sum が依存性管理を楽にしてくれる 動作速度も申し分なし たしかに開発用適当ツールの作成というユースケースは Go は魅力的な選択肢だと思います! 開発用適当ツールは Rust で作るのもオススメ 前置き 最初に大事なことを言っておきます。 タイトルにもあるように、Rust も であって GO

                                                          開発用適当ツールは Rust で作るのもオススメ
                                                        • 読みやすいコードを書く

                                                          読みやすいコードとは何か 読みやすいコードとは、脳に負荷がかからないコードである。脳に負荷がかからないコードとは、人間の脳の特性に配慮して書かれたコードである。したがって読みやすいコードを書くには、まず人間の脳の特性を把握する必要がある。読みやすいコードの特徴は、この人間の脳の特性から論理的に導かれる。 また、「コードを読む」とは過去から未来への情報伝達、または自分から他者への情報伝達であり、情報理論における以下の2つの数学的原理にも支配される。 頻出する情報には共通の符号を割り当てることで情報を圧縮することができる。 失われた情報を復元することはできない。 この記事に書かれた内容はプログラムに止まらず、ドキュメント、記事の執筆など、プレインテキストによって情報を伝達する際には一般に適用可能である。 もしもこの記事を読むのが面倒であれば、以下の5つだけを覚えておけばよい。 ひとつの処理の単

                                                            読みやすいコードを書く
                                                          • 最強のツール「LangSmith」が登場した話【Python / LangChain】

                                                            【📩 仕事の相談はこちら 📩】 お仕事の相談のある方は、下記のフォームよりお気軽にご相談ください。 https://forms.gle/G5g1SJ7BBZw7oXYA7 もしもメールでの問い合わせの方がよろしければ、下記のメールアドレスへご連絡ください。 info*galirage.com(*を@に変えてご送付ください) 🎁 「生成AIの社内ガイドライン」PDFを『公式LINE』で配布中 🎁 「LINEで相談したい方」や「お問い合わせを検討中の方」は、公式LINEでご連絡いただけますと幸いです。 (期間限定で配信中なため、ご興味ある方は、今のうちに受け取りいただけたらと思います^^) https://lin.ee/3zRuqKe おまけ①:生成AIアカデミー より専門的な「生成AIエンジニア人材」を目指しませんか? そんな方々に向けて、「生成AIアカデミー(旧:生成AIエンジニア

                                                              最強のツール「LangSmith」が登場した話【Python / LangChain】
                                                            • 【Obsidian】2023 年でオススメのプラグイン 66 選

                                                              この記事で使用している画像は、公式の github から引用したものです。今回、あまりにも数が多いため引用リンクは省略しています。一部、自身で撮影したものもあります。 ファイル Recent Files ★★★ 最近開いたファイルの一覧を表示してくれるプラグイン。何故これがデフォルトで無いのかがよくわからない。絶対に入れておきたい。 Auto Template Trigger ★★★ 新しいノートを作成する際にテンプレートを選択して挿入できるプラグイン。ノートを書く敷居を下げてくれるので重要。 Quick Explorer ★★★ エクスプローラー機能を強化するプラグイン。ノートが増えてくると非常に便利。 Tag Wrangler ★★★ Tag pane から rename や merge などができるようになるプラグイン。 Quick Switcher++ ★★ ファイル移動のプラグイ

                                                                【Obsidian】2023 年でオススメのプラグイン 66 選
                                                              • Zennで発生した障害の原因と行なった対策のまとめ

                                                                2021/02/24の11時頃〜1時間ほどzenn.devにアクセスしづらい・アクセスできない問題が発生していました。その後も3時間ほど一部のページへのアクセスができない状況となっていました。Zennに投稿してくれた方、見に来てくれた方、ご迷惑をおかけしてすみませんでした。 今回の障害は学びが多かったので、個人の記事として残しておくことにします。 原因 今回の障害は、使用しているクラウドサービスではなく、Zenn自体に原因がありました。 1. KaTeX記法により生成されるHTMLが思った以上に大きかった ZennのマークダウンエディターではKaTeX記法をサポートしています。例えば、$a\ne0$と書くとa\ne0と表示されます。 KaTeXはサーバーサイドレンダリングをサポートしており、KaTeX記法からの数式のHTMLへの変換はサーバーサイドで行なっていました。DBにはマークダウンだ

                                                                  Zennで発生した障害の原因と行なった対策のまとめ
                                                                • HerokuのOAuthトークン流出で、やっておくといいことリスト(コメント大歓迎)

                                                                  2022年4月16日(日本時間)にアナウンスがあった、Heroku/Travis-CIのOAuthトークンの流出および悪用を受けて、ユーザーとしてやっておくといいことをまとめました。 GitHubのOrganizationのオーナー向けと個人向けで分けてあります。 追記: 複数の補足のコメントを頂き、記事にも取り込んでいます。ありがとうございます! 注意 執筆者はGitHub, Heroku, Travis-CIの専門家ではありません。この記事は誤っている可能性があります。 この記事は現在調査中の問題について書かれています。最新情報は必ず公式サイトをご確認ください。 GitHub Heroku Travis CI インシデントの概要 GitHubがHerokuとTravis-CIのOAuthアプリケーションに発行したトークンが流出・悪用したことで、それらの連携が有効だった多くのOrgani

                                                                    HerokuのOAuthトークン流出で、やっておくといいことリスト(コメント大歓迎)
                                                                  • オープンなLLMをローカルPCのDocker環境で動かす

                                                                    次々と発表されるオープンな日本語大規模モデル どうなっているの??という感じですよね。 我らがnpakaさんは、さっそくGoogle Colabで動かしていらっしゃいます。 ただ、Google Colabだと毎回モデルのダウンロードが大変なので、ローカルでDocker使って手軽に動かせるといいな、ということでやってみました。 以下GitHubのリポジトリにDockerfileとサンプルプログラムをおいています。チャットっぽいことをできるようにしています。 上記で、サイバーエージェントとリンナのLLMが両方動きます。 使用環境 前提となる環境です。使用しているPCのスペックは以下です。 項目 内容

                                                                      オープンなLLMをローカルPCのDocker環境で動かす
                                                                    • 【実践】エンジニアの基礎教養-アルゴリズムを学べる本

                                                                      筆者は新卒エンジニア時代に社内でアルゴリズム勉強会を主催していました。 その内容を本形式に書き起こしたものになります。 【この本の特徴】 📗問題演習形式でアルゴリズムの基礎が身に付く構成となっています。 📗分かりにくい概念は丁寧に図解で解説しています。 📗基礎的なアルゴリズムがどのように世の中に役立っているのかを言及しています。 アルゴリズムに関して、皆さんの理解を深めるお手伝いができれば幸いです。

                                                                        【実践】エンジニアの基礎教養-アルゴリズムを学べる本
                                                                      • Obsidian.Zenn

                                                                        次世代のノートテーキングツールである Obsidian を使って Zenn で記事や本を作ろう!

                                                                          Obsidian.Zenn
                                                                        • 正規表現でガチャを回せる投稿サイトを作った話

                                                                          (映像もつくりました) 正規表現ガチャ(英語名:Regech)という、正規表現から生成されるランダムな文字列でガチャを引ける投稿サイトをNext.jsで個人開発した話です。 筆者について 今までPHPやjQueryで開発をしてきた19歳です。 制作期間は20日ほどです。 もしよければ、読んで・遊んでいってもらえたら嬉しいです! つくったもの 正規表現にマッチするランダムな文字列を生成するアプリです。 例:(にゃん?)+→にゃにゃんにゃんにゃ おもしろいガチャができたら投稿することでみんなで遊べるようになります。 ぜひ、おもしろいガチャを作って投稿してください! 正規表現の学習にもおすすめです。 英語対応もしてみたので英語環境からアクセスするか、/en/にアクセスすると英語でも見れます。 私のおすすめガチャ 私のおすすめです。他にもおもしろいガチャが投稿されているので遊んでみてください! リ

                                                                            正規表現でガチャを回せる投稿サイトを作った話
                                                                          • はじめに|ITエンジニアのためのプロンプトエンジニアリング

                                                                              はじめに|ITエンジニアのためのプロンプトエンジニアリング
                                                                            • ハッシュ化だけではもう古い ソルト&ペッパーという技術

                                                                              昨今、生成AIの発展とともに、情報の不正な取得を試みる攻撃パターンが急速に多様化しています。このため、企業は残念ながらいつか情報漏洩するという前提で必要な対策を行う必要があります。 一般的なウェブシステムにおける暗号化の限界点 そのため普遍的に用いられる技術の一つが「暗号化」ですが、ウェブシステムの場合完全な対策は難しいのが実情です。例えばデータベースを暗号化しても、フロントエンドなど、システムのどこかに必ず暗号を復号できるノードが存在します。フロントエンドに侵入されれば、データベースの暗号化だけでは情報漏洩を防ぐことは困難です。TDE(Transparent Data Encryption:透過的データ暗号化)という、高価な専用ハードウェアを用いて特定のカラムを暗号化する手法もありますが、それにしてもフロントエンドに侵入されるケースを考えると復号化は懸念されます。 ハッシュ化による対策

                                                                                ハッシュ化だけではもう古い ソルト&ペッパーという技術
                                                                              • Cline / RooCodeを安全に使うためにDevContainerを使い始めた

                                                                                AIコーディングエージェントは便利ですが、意図しない挙動を行った時に、被害を最小限にとどめる工夫がいるな〜と思っています。例えば、なんらかの設定をミスって、rm -rfが暴走するとか、無限ループを実行してしまうといったインシデントが考えられます。 当初そのために、今お買い得なXserver VPSを借りて快適な独立した作業環境を構築していました。4GBインスタンスでVSCode ServerとDockerを動かしてたんですが、メモリ使用に耐えられなくなってきて。ちょくちょくOOM(Out of Memory)が出て、「うーん、これは厳しいかな」と感じてました。 そこで、自宅PCを刷新して開発用VMをプロジェクトごとに建てようかと思ったんですが、それはそれでオーバーヘッドでかいですよね。OS管理とかアップデートとか考えると面倒くさい。 要は、プロセスが分離されてて、ワーキングディレクトリ外に

                                                                                  Cline / RooCodeを安全に使うためにDevContainerを使い始めた
                                                                                • Goで学ぶGraphQLサーバーサイド入門

                                                                                  GraphQLはリクエストクエリを書くことで、必要な分のデータを柔軟に取得することが可能なAPI形式です。 RESTとは違うその仕組みはクライアント目線ではとても便利なものですが、サーバーサイドに立ってみると無限の組み合わせがあるリクエストクエリに一体どう対処しているのか不思議に思う人もいるでしょう。 この本では、Goのgqlgenというライブラリを用いてGraphQLサーバーを作る過程を通して、サーバーサイドGraphQLを理解・開発するのに必要な知識を解説していきたいと思います。

                                                                                    Goで学ぶGraphQLサーバーサイド入門

                                                                                  新着記事