タグ

ブックマーク / gihyo.jp (30)

  • OpenAI、2023年4月までの知識をもつ高性能な「GPT-4 Turbo」、カスタム化できるChatGPT「GPTs」を発表 | gihyo.jp

    OpenAI⁠⁠、2023年4月までの知識をもつ高性能な「GPT-4 Turbo」⁠⁠、カスタム化できるChatGPT「GPTs」を発表 OpenAI2023年11月6日、同社主催の開発者カンファレンス「OpenAI DevDay」にて、ChatGPTに関する新たな機能やサービスを発表した。 New models and developer products announced at DevDay GPT-4の高性能モデル「GPT-4 Turbo」 2023年7月に一般利用が始まったGPT-4の、さらに次世代となるモデルである「GPT-4 Turbo」のプレビューが発表された。GPT-4 Turboは2023年4月までの出来事に関する知識を取り込んでおり、より高性能となった。また128kコンテキストウィンドウをもち、1つのプロンプトに300ページ以上のテキスト相当の内容を収めることができ

    OpenAI、2023年4月までの知識をもつ高性能な「GPT-4 Turbo」、カスタム化できるChatGPT「GPTs」を発表 | gihyo.jp
  • コンテナオーケストレーションとGoogle Kubernetes Engine(GKE)の特徴とその活用 | gihyo.jp

    連載は、Google Cloudのアプリ開発とDBプロダクトにおけるスペシャリスト達が、Google Cloudプロダクトを利用した、クラウドネイティブな開発を実践する方法を解説しています。 第2回では、Google Cloudが提供するフルマネージドなKubernetesプラットフォームであるGoogle Kubernetes Engineのアーキテクチャや特徴を紹介します。この記事を読むことでGoogle Kubernetes Engineのユースケースや利点について理解できます。 対象となる読者として、クラウドを利用したアプリケーションプラットフォームを開発/運用するエンジニア、またそのプラットフォーム上でアプリケーションを開発するエンジニアを想定しています。 Kubernetesとは KubernetesはOSSのコンテナオーケストレーションシステムです。 Google内部で利用

    コンテナオーケストレーションとGoogle Kubernetes Engine(GKE)の特徴とその活用 | gihyo.jp
  • OpenTF、TerraformのフォークをGitHubで公開 | gihyo.jp

    The OpenTF Foundationは2023年9月6日、HashiCorp製の構成管理プラットフォームTerraformのフォークを作成し、GitHubリポジトリで公開した。 The OpenTF fork is now available! -OpenTF Foundation HashiCorpは2023年8月10日、それまでMozilla Public License v2.0の元で公開してきたTerraformをはじめとする同社製品のライセンスをBusiness Source License v1.1に変更した。このため、オープンソースとしてTerraformを利用してきたユーザやコミュニティでライセンス違反となり使用できなくなる懸念が生じている。Terraformはスタンダードな構成管理基盤として多くの組織で利用されており、HashiCorpのライセンス変更はこれらの組織

    OpenTF、TerraformのフォークをGitHubで公開 | gihyo.jp
  • 第1章 関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる | gihyo.jp

    [入門]関数プログラミング―質の高いコードをすばやく直感的に書ける! 第1章関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる マルチコア環境が身近になった影響からか、勉強熱心なプログラマの間で関数型言語が話題になっているようです。関数型言語が奨励する関数プログラミングでは、これまで命令型言語で習得した、命令プログラミングの再代入を使う技法があまり通用しません。そのため、「⁠関数型言語は難しい」と言って途中で投げ出してしまう人も多いようです。 この特集では、関数プログラミングの習得を一度諦めてしまった人や、これから始める人のために、関数プログラミングのポイントをできるだけわかりやすく説明します。 筆者がわかるようになるまで 実は筆者も長い間、関数プログラミングを習得できませんでした。筆者は、長年Emacs Lispを使って、Mewというメールリーダーを開発して

    第1章 関数プログラミングは難しくない!―初めて学ぶ人にも、挫折した人にもきちんとわかる | gihyo.jp
  • 第772回 サーバー上で動くRSSリーダーであるFreshRSS | gihyo.jp

    前回はUbuntuデスクトップで動くRSSリーダーであるNewsFlashを紹介しました。今回はサーバー上で動作し、任意のウェブブラウザーで閲覧可能なRSSリーダーである「FreshRSS」について紹介しましょう。 図1 Web UIながら、テーマが豊富でコンパクトにまとめて表示できるFreshRSS 拡張機能も備えたFreshRSS RSSリーダー(フィードアグリゲーター)については前回も紹介しましたが、簡単に説明すると「RSSに対応したサイトの更新通知を受け取り、その内容を閲覧できる仕組み」です。スマートフォンで言うところの「ニュースアプリ」に近いものだと思っておけば良いでしょう。 ニュースアプリはローカルで動かしてインターネット越しにデータを集めます。それに対してFreshRSSや第266回で紹介したTiny Tiny RSSなどは、サーバー側でRSSのフィードデータを定期的に収集し

    第772回 サーバー上で動くRSSリーダーであるFreshRSS | gihyo.jp
  • ChatGPT APIのFunction callingを使って、請求書の構造化データを抽出する | gihyo.jp

    いまからわかる!ChatGPT活用プログラミング ChatGPT APIのFunction callingを使って⁠⁠、請求書の構造化データを抽出する 先月、OpenAIからFunction calling(関数呼び出し)機能がリリースされました。これが何なのか、何のために使うべきなのか、ちょっと見ただけでは分かりづらいと思います。 今回は請求書から情報抽出をするというよくありがちなケースを題材に、Function callingの利便性を示してみます。 Function callingとは OpenAI2023年6月13日にリリースしたChat APIの追加機能です。主にできることとして以下の3つが挙げられています。 外部ツールを呼び出して質問に答えるチャットボットを作成する 自然言語を内部APIの呼び出しやSQLに変換する テキストから構造化データを抽出する たとえば天気予報と血液型

    ChatGPT APIのFunction callingを使って、請求書の構造化データを抽出する | gihyo.jp
    takaya030
    takaya030 2023/07/18
    function calling
  • Canonical、Spark on Kubernetesソリューション「Charmed Spark」のベータ版を公開 | gihyo.jp

    Linux Daily Topics Canonical⁠⁠、Spark on Kubernetesソリューション「Charmed Spark」のベータ版を公開 Canonicalは7月3日、Kubernetes上でSparkジョブをデプロイ/実行するオープンソースソリューション「Charmed Spark」の最初のベータ版リリースを発表した。 Charmed Spark beta release is out – try it today | Canonical Charmed SparkはCanonical Data Fabricチームが開発を主導するソリューションのひとつで、Charmed Sparkのほかに「Charmed Kafka」「⁠Charmed MongoDB」「⁠Charmed OpenSearch」「⁠Charmed PostgreSQL」「⁠Charmed MySQ

    Canonical、Spark on Kubernetesソリューション「Charmed Spark」のベータ版を公開 | gihyo.jp
  • Go Conference 2023 参加レポート | gihyo.jp

    2023年6月2日にオンラインで開催されたGo Conference 2023に参加してきました。今回はreBakoというバーチャル空間で開催されました。この記事では、全32のセッションのなかから、4つのセッションを取り上げてレポートします。 なお、Go Conferenceは一般社団法人Gophers Japanが年に1回開催しているプログラミング言語Goに関するカンファレンスで、今回で10周年を迎えました。 バーチャル空間に設置されたスポンサーやコミュニティのブース セッションのレポートに入る前に、バーチャル空間に設置されたブースについて触れておきます。 設置された多くのスポンサー企業のブースには、イベント参加者が自由に入って会話できる形になっていました。各社のブース内容も、CTFに挑戦できたりエキスパートなエンジニアの会話が聞けたりと、工夫が凝らされていました。筆者が所属するナレッジ

    Go Conference 2023 参加レポート | gihyo.jp
  • データエンジニアが最初に学ぶべき3つのポイント:「ETL」「データモデリング」「ワークフロー」 | gihyo.jp

    株式会社primeNumberでChief Product Officerを務めている小林寛和と申します。 私は新卒から今までデータエンジニアとしてキャリアを歩んできました。新卒で入った事業会社ではデータ分析基盤の新規構築をリードし、現在ではtroccoというデータエンジニアのためのサービスを立ち上げてプロダクトの責任者を務めています。 キャリアの大半をデータエンジニアとして過ごし、さらに現在ではそれらの方に向けてサービスを提供している立場として、これからデータエンジニアになろうとしている方に最初に学んでほしい3つのポイントをまとめてみました。 なお、記事では以下のような方を想定しております。 これからデータエンジニアになろうとしている これからデータ分析基盤を新規に立ち上げようとしている データエンジニアリングの必修科目とは データエンジニアリングの必修科目を考えるために、まずはどのよ

    データエンジニアが最初に学ぶべき3つのポイント:「ETL」「データモデリング」「ワークフロー」 | gihyo.jp
  • 第197回  MySQLでJSONを活用してみる[その1] | gihyo.jp

    皆さんがWeb APIを設計する時によく使うフォーマットにJSONがあります。他サービスとやり取りする際に、従来であればJSONの解析を行い、正規化を行い、必要なキーとバリューを取得し保存するという方法が一般的でした。 今回は、MySQL 5.7からサポートが強化されているJSONを活用する方法を紹介していきたいと思います。 検証環境 今回はdockerで建てたMySQLを使用します。以下のコマンドでdockerを建てて、ローカルからアクセスをします。 % docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest アクセス方法は以下の通りになります。 % mysql -uroot -pmy-secret-pw -h127.0.0.1 -P3307 執

    第197回  MySQLでJSONを活用してみる[その1] | gihyo.jp
  • Goの標準ライブラリに学ぶジェネリクス | gihyo.jp

    はじめに 2022年3月にリリースされたGo1.18ではジェネリクス(型パラメータ)が導入されました。長年楽しみされてきた機能で、少しずつGoの標準ライブラリでも使用され始めています。一方でリリース時に少し試してはみたものの、使いどころ所が難しいと思った読者の方も多いのではないでしょうか。この記事ではGoの標準ライブラリにおける利用例を紐解きながらジェネリクスへの理解を深めていきます。 timeパッケージ 日付と時刻の操作を扱うtimeパッケージでは内部的にジェネリクスが利用されています。JSONのシリアライズを行うMarshalJSONへのバリデーションの改善とジェネリクスの導入により、9%以上の高速化が成されました。では実装を見てみましょう。 timeパッケージのformat.goより func atoi[bytes []byte | string](s bytes) (x int,

    Goの標準ライブラリに学ぶジェネリクス | gihyo.jp
  • 第195回 MySQLレプリカの自動ソース切り替え | gihyo.jp

    ソースリストを確認するには以下のいずれかのテーブルを確認します。 mysql.replication_asynchronous_connection_failoverテーブル performance_schema.replication_asynchronous_connection_failoverテーブル mysql> SELECT * FROM mysql.replication_asynchronous_connection_failover; +--------------+-----------+-------+-------------------+--------+--------------+ | Channel_name | Host | Port | Network_namespace | Weight | Managed_name | +--------------

    第195回 MySQLレプリカの自動ソース切り替え | gihyo.jp
  • GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp

    つきなみGo GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する はじめに 筆者はGoだけではなく、Scalaなど他言語を扱った経験もあり、しばしばGoには他の言語にあるXという機能がなぜないのだろう?と考えることがあります。 たとえば、テスト関数ごとに暗黙的に呼ばれる初期化関数の定義があります。データベースに対するDrop・Create・Insertなどの処理をテストごとに実行したい場合に定義できると便利でしょう。同じ処理を都度書いているとテストケースが増えてきた時にメンテナンス性が下がってしまったり、初期化処理を追加し忘れてしまう恐れなどもあります。 しかし、Goにはこのようなテスト関数ごとに暗黙的に実行される初期化処理を定義できません。Goが他言語に劣っているようにもみえますが、当にそうなのでしょうか? 公式のFAQにもあるように、とある機能

    GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp
  • 第188回 あれなんだっけ?って時に使えるMySQLのHELP構文 | gihyo.jp

    皆さんは、MySQLであのオプション何だったっけかなぁ?って思った時、何をするでしょうか? ちょっと前の話になってしまいますが、Oracle社公式のMySQL 8.0 リファレンスマニュアルが日語化されたので、こちらを見る人が多いのかと思いますが、さまざまな先人の知識を得るために、Googleなどの検索エンジンで検索をする場合もあるかもしれません。 ネットワークがつながっている場合はそういう対応もできますが、ネットワークにつながっていない場所で、MySQLのバイナリがあるのに検索ができないなんて事が起こるかもしれません。そんな時に知っておくと、ちょっと役に立つかもしれないHELP構文に関して紹介していこうと思います。 検証環境 今回はdockerで建てたMySQLを使用します。以下のコマンドでdockerを建てて、ローカルからアクセスをします。 % docker run --platfo

    第188回 あれなんだっけ?って時に使えるMySQLのHELP構文 | gihyo.jp
  • 入門 継続的プロファイリング 〜Kubernetesにおけるオブザーバビリティの最前線〜 | gihyo.jp

    こんにちは。サイバーエージェントの杉浦です。 連載「5分でわかる!Kubernetes/CloudNative Topics」の第6回は、オブザーバビリティに注目して、Kubernetesにおける継続的プロファイリングについて取り上げます。 オブザーバビリティとプロファイル 安定してサービスを提供するためには、デプロイしたアプリケーションの状態を継続的に観測し、不具合やその予兆を察知・対処していく必要があります。 アプリケーションの状態を観測する能力をオブザーバビリティ(Observability[1])といいます。このオブザーバビリティを確保するにあたってどのようなデータを用意すべきか、従来ではメトリクス・トレース・ログの3つを柱とすべきだとされていました。 それぞれメトリクスはCPU使用率やメモリ使用量といった時系列の数値データ、トレースは個々のアプリケーションを伝播する特定のリクエス

    入門 継続的プロファイリング 〜Kubernetesにおけるオブザーバビリティの最前線〜 | gihyo.jp
  • 第52回 Linuxカーネルのコンテナ機能 ― cgroupを使ったI/O制限 | gihyo.jp

    第37回で説明した通り、cgroup v1には様々な問題点が指摘されており、その問題を解決すべくcgroup v2が実装されました。 cgroup v1では、各コントローラがバラバラに実装されており、コントローラ間の連携が取れませんでした。これが原因で、リソースを制限するにあたって一番表面化していた問題が、ディスクI/Oに対して制限をかける際の問題でした。cgroup v1ではblkioコントローラでI/Oに対する制限をかけられましたが、限定的な制限しかかけられませんでした。 LinuxでのI/O コントローラ間で連携ができないため、blkioコントローラを使ったI/O制限が限定的になってしまう理由を説明するために、Linuxでディスクへファイル入出力する際の仕組みを簡単に説明しておきましょう。もう少し詳しい仕組みが知りたい方は『[試して理解]Linuxのしくみ』など、関連する書籍や文書を

    第52回 Linuxカーネルのコンテナ機能 ― cgroupを使ったI/O制限 | gihyo.jp
  • 第192回 MySQLのパラレル操作について | gihyo.jp

    MySQLでは一般的に、ユーザーからのクエリやDDLなどの操作はシングルスレッドで処理されます。現行のMySQLでは、PostgreSQLOracle Databaseが提供しているようなパラレルクエリはサポートしていません。しかし、MySQL 8.0とそれ以降から、InnoDBへの一部の操作がパラレルで処理されるようになりました。そのため、1つの操作に対して複数のCPUを効率的に利用することで、高速に処理することができるようになります。 今回は、パラレル操作と関連するパラメーターについて紹介したいと思います。なお、利用しているMySQLのバージョンは、8.0.32になります。 パラレル読み取り MySQL 8.0.14とそれ以降から、オプションinnodb_parallel_read_threadsが追加されました。このオプションは、InnoDBのクラスタインデックスのページを同時に読

    第192回 MySQLのパラレル操作について | gihyo.jp
  • Goのカバレッジツールを使いこなす | gihyo.jp

    はじめに テストでコード品質を担保していくことは、継続的インテグレーションの観点などで必要不可欠です。そして、十分なテストコードが書かれているかどうかの指標として、よく使われるものといえばテストカバレッジがあります。 Goではgo testコマンドと、go tool coverコマンドがカバレッジ計測の機能を担っています。今回は、これらのツールをより深く使い込んでいくために、既存機能の一歩進んだ使い方や最新機能について紹介します。 なお、記事で紹介しているコマンドなどはmacOSで実行した場合の例となります。 オリジナルのカバレッジ統計データを集計する まずは既存のカバレッジの統計データを取得する方法を振り返り、より詳細な情報を集計するアプローチについて紹介します。 Goのカバレッジツールで出力できる統計データ 既存のgo testコマンドおよびgo tool coverコマンドで出力で

    Goのカバレッジツールを使いこなす | gihyo.jp
  • 第708回 GUIでネットワーク設定を行う | gihyo.jp

    今回はGUIを使用してネットワークを設定する方法を紹介します。 Ubuntuのネットワーク設定 いまさらいうまでもなくUbuntuはデスクトップ用途とサーバー用途で使用されているため、ネットワークの設定はかなり柔軟に行なえます。 デスクトップ用途ではあまり使用する機会はありませんが、Netplanを使用するとバックエンドのレンダラー(Network ManagerかSystemd-networkd)を切り替えつつも同じネットワーク設定を保持できたりもします。 今回はそんな方法ではなく、UbuntuでGUIを使用して基的なネットワーク設定をする方法を紹介します。もちろんバックエンドのレンダラーはNetwork Managerです。 GUIのネットワーク設定ツールは2種類用意されていて、1つは設定ツールの「Wi-Fi」と「ネットワーク」で、もう1つは「高度なネットワーク設定」です。すなわちこ

    第708回 GUIでネットワーク設定を行う | gihyo.jp
  • Laravel 10リリース、PHP 8.1以降をサポート | gihyo.jp

    2月14日、PHPフレームワークLaravelの最新バージョンLaravel 10がリリースされた。 Laravel 10 is now released! -Laravel News Laravel 10ではPHP 8.0のサポートが終了となり、利用するにはPHP 8.1が必要で、読み取り専用プロパティなど、8.1の機能を使った開発が可能となる。またLaravel Pennantというパッケージが新たに追加された。これはフィーチャーフラグを利用できるパッケージ。フィーチャーフラグはDevOpsでよく使われる機能で、アプリケーションの機能を段階的にロールアウトしたり、新しいインターフェース設計のA/Bテストを手軽にできるようになる。 そして新たなLaravel Processサービスのプロセスレイヤーは、CLIプロセスのテストと実行をサポートする豊富な機能を提供する。このほかLaravel

    Laravel 10リリース、PHP 8.1以降をサポート | gihyo.jp