タグ

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

  • 新春特別企画・2024年のUbuntu | gihyo.jp

    あけましておめでとうございます。今回は2024年のUbuntuと題して「今後のUbuntuはどのように変化していくか」を中心にした、Ubuntuに関わるある種の未来予測(与太話ともいう)をお届けします。 Ubuntu 24.04 LTS まず2024年のUbuntuに訪れる変化としては、“⁠Noble Numbat⁠”⁠、Ubuntu 24.04 LTSです。現時点ではまだ「どのような姿になるのか」という部分は見えきっていないものの、デスクトップ周りの更新が行われ、そして新インストーラーやツール、新しいソフトウェアセンターを搭載した最初のLTSリリースとなります。既存のリリースの延長線上にある「この2年間の集大成」という位置づけとなるでしょう。 新インストーラーや各種ツールはFlutterをベースとしたものでの「作り直し」が進められています。またカーネル側でもRustの活躍の空間が広がると

    新春特別企画・2024年のUbuntu | gihyo.jp
    dshimizu
    dshimizu 2024/01/06
  • 第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp

    章では、HTTP/3がTCPに代わって下位層で用いるQUICについて解説します。 QUICはトランスポートプロトコル QUICはトランスポートプロトコルです。QUICの説明に入る前に、トランスポートプロトコルついておさらいします。 TCP/IPの4階層モデル プロトコルは階層で役割を分担しています。TCP/IPの4階層モデルでは、アプリケーション層、トランスポート層、インターネット層、ネットワークインタフェース層に分かれます(図1⁠)⁠。 図1 TCP/IPの4階層モデル アプリケーション層に分類されるアプリケーションプロトコルは、クライアントやサーバで動作するアプリケーションの動作に関するデータやメッセージの通信ルールを規定します。たとえばSMTP(Simple Mail Transfer Protocol)は、メールを送信する通信ルールを規定しています。HTTPはこの層に属します。

    第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp
  • GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp

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

    GoにはなぜXという機能がないのか? 〜テスト関数ごとの暗黙的な初期化処理の実現を考察する | gihyo.jp
    dshimizu
    dshimizu 2023/04/10
  • 第153回 mysqlpumpを使ってバックアップを取ってみる | gihyo.jp

    皆さんはMySQLからデータを論理バックアップする際にどんなコマンドを使っているでしょうか? 5.7より前のバージョンを利用していた場合は、第15回 mysqldumpを使ってバックアップするや第62回 MySQLのクライアントプログラムいろいろ[その2]で紹介したmysqldumpを使用していることが多いのではないかなとは思います。 今回は、MySQL 5.7.8から導入されたmysqlpump(誤字じゃないです)について紹介してきます。 検証環境 今回は、第125回 phpMyAdminでDockerで建てたMySQLにアクセスするで記載したdocker-composeを利用して作成します。手元で簡単に試せるように、GitHubのわたしのレポジトリにサンプルコードとして置いてあるので、気軽に試したい方はgit cloneして試してみてください。試すにはdockerdocker-com

    第153回 mysqlpumpを使ってバックアップを取ってみる | gihyo.jp
  • ChatGPTのおさらいと、プログラミングに活用するための第一歩 | gihyo.jp

    大量の文章から学習することで、多言語を取り扱う能力だけでなく、高度な推論能力まで手に入れました。 GPT-3.5、とりわけその初期モデルのCodexはGitHubに存在する5400万の公開リポジトリから採取された159GBのPythonコードでGPT-3をfine-tuning(微調整)することで生まれました。ChatGPTがとりわけPythonが得意なのはここから来ています。 ChatGPTの学習データを考えることはその能力を発揮させるときに極めて有効です。質問時も以下のように、『⁠涼宮ハルヒの憂』というライトノベル作品について日語で聞いたときはSOS団の略称を間違えるなどしますが、英語ではほぼ期待通りの回答を見せます。 図1 『ハルヒの憂』について日語で聞いた場合の回答 図2 『ハルヒの憂』について英語で聞いた場合の回答 知ったかぶりをするChatGPT ところで、ChatG

    ChatGPTのおさらいと、プログラミングに活用するための第一歩 | gihyo.jp
    dshimizu
    dshimizu 2023/03/24
  • Go言語プログラミングエッセンス

    このの概要 Go言語ユーザーとして,「もう一段レベルアップしたい」「開発に使いたい」と思っている方に向けた,Go言語の解説です。関数やパッケージの使い方,並行処理,テストといった基的なトピックにおいて,「こう書くと綺麗になる」「こう書くとパフォーマンスが上がる」といったエッセンスを紹介します。後半ではCLIアプリ/Webアプリの開発手順や,現場で使われている便利なパッケージなど,著者が業務やOSSの開発で培った技術をふんだんに紹介します。 こんな方におすすめ Go言語の入門を終え,さらに深く学びたい人 第1章 プログラミング言語Goとは 1.1 Goの簡単な歴史 1.2 Goの立ち位置 1.3 Goが利用される場面 標準でUTF-8をサポート マルチプラットフォーム 並行処理の扱いやすさ ストリーム指向 シングルバイナリ 1.4 教育用途としてのGo 1.5 なぜGoが使われるのか

    Go言語プログラミングエッセンス
  • Rust製高速データフレームライブラリ、Polarsを試す | gihyo.jp

    門脇@satoru_kadowakiです。今月のPython Monthly Topicsでは、Rust製の高速データフレームライブラリ Polars について紹介します。 Polarsとは Pythonデータ分析に使用される主なライブラリに pandas があります。Polarsはpandasと同様にデータフレームというデータ構造オブジェクトを提供するサードパーティライブラリです。特にpandasを意識して作られており、メインページに「Lightning-fast DataFrame library for Rust and Python」とあるように、Rustによる高速処理を謳っています。 Polarsのリポジトリや関連ドキュメントは以下を参照してください。 Github: https://github.com/pola-rs/polars ユーザーガイド: https://pola

    Rust製高速データフレームライブラリ、Polarsを試す | gihyo.jp
    dshimizu
    dshimizu 2023/02/07
  • Node.js最新動向 ~TechFeed Conference 2022講演より | gihyo.jp

    記事は、2022年5月に開催されたTechFeed Conference 2022のセッション書き起こし記事「Node.js 最新動向(Yosuke Furukawa⁠)⁠ — TechFeed Conference 2022講演より」を転載したものです。オリジナル動画/記事はTechFeedをご覧ください。 Node.js最新動向というところで古川から話させていただきます。 私はNode.jsの一般社団法人Japan Node.js Association代表として活動している古川陽介と申します。よろしくお願いします。 「Node.jsの現在とこれから」みたいな話をできるといいかなと思っているのですが、いったんNode.jsのv18の話からします。 これは4月末にリリースされて、今は5月なんですけどv18.1.0が最新になっていますので、その最新の話をまず共有させていただいてから、次に

    Node.js最新動向 ~TechFeed Conference 2022講演より | gihyo.jp
    dshimizu
    dshimizu 2022/08/20
  • 2022年のRed Hat Enterprise Linux、そしてCentOS Streamの今後は? ―Red HatにOS戦略を聞いてみた | gihyo.jp

    2022年のRed Hat Enterprise Linux、そしてCentOS Streamの今後は? ―Red HatにOS戦略を聞いてみた Red Hatの日法人であるレッドハットは4月12日、代表取締役社長 岡玄樹氏による2022年度事業戦略説明会を開催しました。グローバル/国内ともに前年度比2桁を超える成長を果たした同社ですが、その牽引役となったのがコンテナプラットフォーム「Red Hat OpenShift」です。2020年には2800社だったOpenShiftの導入社数は、2021年にはプラス1000社の3800社と大幅に増え、さらにこれまで主流だった金融業界だけではなく、通信や製造業、流通/小売へとさまざまな業界に採用が拡がりました。 OpenShiftの導入社数は2021年度で1000社増え3800社に。日でもNTT東日や東京エレクトロン、日立製作所などさまざまな業

    2022年のRed Hat Enterprise Linux、そしてCentOS Streamの今後は? ―Red HatにOS戦略を聞いてみた | gihyo.jp
    dshimizu
    dshimizu 2022/04/28
  • 第1回 Goという選択肢はベストだったのか | gihyo.jp

    【話し手】 白川 みちる(SHIRAKAWA Michiru) (micchie)Go言語コミュニティのオーガナイザーを務める。プログラミング初学者向けの教育に興味がある。 GitHub:mi-bear Twitter:@micchiebear URL:https://web.womenwhogo.tokyo/ 技術分野は成熟が進み、新しい領域が急激に増えています。コーナーでは技術へのタッチポイントを増やすことを目標に、各分野で活躍されている方をお迎えします。 今、Go言語は広く受け入れられています。しかし専門外の立場からは実際の使い勝手は意外とわかりにくいものです。言語の強みや利用の指針を知るために、Goコミュニティで活躍して普及に尽力されている白川さんへインタビューしました。等身大の魅力をうかがいます。 Goとの出会い 日高:まずGo言語に触れた経緯についてお聞きしたいと思います。

    第1回 Goという選択肢はベストだったのか | gihyo.jp
  • 第100回 「MySQL道普請便り」と探るMySQLの進化 | gihyo.jp

    第1回はMySQL特定のバージョンに関する話題ではありませんでしたので、「⁠サンプル環境」が初めて姿を現すのは第2回です。当時はまだMySQL 5.6系が最新版でした。 第5回の時点では最新版はMySQL 5.6系でしたが、「⁠Dockerイメージを使ってRC(リリース候補版)を試すことができます」というテイストの記事だったため、ここで初めて「最新版(製品版、GA版)以外のMySQL⁠」⁠、「⁠MySQLの(Docker公式[2]の)Dockerイメージ」が登場しました。 第8回ではMySQL 5.7がリリースされたことを記念して、今までの5.6環境をどのような手順で5.7にバージョンアップするべきかを紹介しました。後に8.0としてリリースされる「MySQL 5.7の次のバージョン」は、この時点では5.8として触れられています(後にバージョン番号が再考されて8.0系になります⁠)⁠。 それ

    第100回 「MySQL道普請便り」と探るMySQLの進化 | gihyo.jp
  • 第42回 Linuxカーネルのケーパビリティ[1] | gihyo.jp

    前回からだいぶ間隔が空いてしまいました。前回の最後に案内したudzuraさんのCRIUに関する記事はもう少し時間がかかるようですので、もうしばらく私が担当したいと思います。 今回から数回は、Linuxカーネルに実装されているケーパビリティについて説明します。ケーパビリティは2.2カーネルのころから実装されてきているかなり古くからある機能で、コンテナ向けの機能ではなく一般的に使われている機能です。もちろん、コンテナの安全性を高めるための重要な機能でもあります。 setuid 一般的にはUNIX系のOSでは、プロセスはroot権限(実効ユーザIDが0)で実行される特権プロセスと、一般ユーザ権限で実行される(実効ユーザIDが0以外の)非特権プロセスに分けられます。 一般ユーザは、通常はそのユーザの権限でプログラムを実行すれば良いのですが、一般ユーザが実行するプログラムであっても処理の内容によって

    第42回 Linuxカーネルのケーパビリティ[1] | gihyo.jp
  • 第78回 MySQLプロトコルのハンドシェイクパケットを眺めてみる | gihyo.jp

    MySQLを触ったことがある人なら、一度はMySQLのクライアントを一から全部作ってみたくなることがあると思います! そういうときのために、今回は、MySQLプロトコルを用いてMySQLに接続するために必要なハンドシェイクパケットの見方を説明していきたいと思います。 MySQLプロトコルとは? MySQLプロトコルは、MySQLサーバとMySQLクライアントを接続するためのプロトコルです。このプロトコルを使ってConnector/Jといったコネクタ類やMySQL Proxy、マスタースレーブのレプリケーションなどに利用されています。このプロトコルにはSSLを用いた暗号化や圧縮といった機能も含まれていますが、今回は紹介しません。 このプロトコルは、コネクションを張るフェーズとコマンドを実行するフェーズの2つのフェーズに分かれていて、今回説明を行うのはコネクションを張るフェーズに関する部分です

    第78回 MySQLプロトコルのハンドシェイクパケットを眺めてみる | gihyo.jp
  • 第528回 AMD Ryzen GでパワフルPCを構築する[GPUのベンチマーク編] | gihyo.jp

    今回はSSDをWDS512G1X0CからASX7000NP-256GT-Cに変更しました。というのも、WDS512G1X0Cはどうにも相性問題が解決できず、安定して使用できていません。マザーボードのUEFI BIOSのアップデートあるいはWDS512G1X0Cのファームウェアのアップデートで解決する問題とは思いますが、いつ安定して使用できるのかはわかりません。このSSDは検証用に購入したものなので、運用では容量不足で、何か新しいものを買わなくてはいけないのかなと頭を抱えつつ若干楽しみでもあったりして、このあたりは自作PCならではのドキドキ感です。 使用したOSはもちろんUbuntu 18.04 LTSです。 ベンチマークの結果を眺めていても傾向がわかりにくかったため、急遽SAPPHIRE PULSE Radeon RX 550 2GD5も追加することにしました。 使用したドライバー 第5

    第528回 AMD Ryzen GでパワフルPCを構築する[GPUのベンチマーク編] | gihyo.jp
    dshimizu
    dshimizu 2018/07/26
  • 第288回 デプロイツール「Juju」を使って大魔導師を目指そう | gihyo.jp

    やれ仮想化だ、やれクラウドだと、様々な単語が流行っていく中で、管理者が構築・運用しなければいけないサーバの数はどんどん増えています。今回はUbuntu Serverを「スケール」させるうえでとても便利なデプロイツールである「Juju」を紹介します。 Jujuとは 「Juju」はCanonicalが開発している「サービスオーケストレーションツール」です。公式サイトやホワイトペーパーでは抽象的な表現が多すぎて「お前は何を言っているんだ」状態なJujuですが、簡単に言うと「Amazon EC2やOpenStack、Azure、LXC、MAASといったサービス上にUbuntu Serverを用意し、そこに既存の各種サービスをデプロイするための自動化ツール」です。 Ubuntuにはもともと強力なパッケージ管理システムであるAPTが存在します。APTシステムを使えば多種多様なソフトウェアの依存関係の解

    第288回 デプロイツール「Juju」を使って大魔導師を目指そう | gihyo.jp
  • 第521回 入門システムコンテナマネージャーLXD 3.0:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

    先日リリースされたUbuntu 18.04 LTSでは、4月にリリースされたばかりのLXD 3.0が導入されました。今回はUbuntu標準のシステムコンテナであるLXDについて、改めて基的な使い方を説明します。 システムコンテナの管理ツールであるLXD LXDはCanonical主導のもと開発されているシステムコンテナの管理ツールです。 コンテナ型の仮想環境と言えばDockerが有名ですが、LXDはDockerと同じような技術的要素を用いてはいるものの[1]⁠、その目的が異なります。Dockerが特定のアプリケーション・プロセスを動かすための環境を構築することを主目的としたアプリ(プロセス)コンテナであるのに対して、LXDはシステムそのものを提供することが目的なのです。 LXDは一度インスタンスを構築しログインしたあとは、普通のLinux環境とほぼ同じように使えます。Dockerはよく「

    第521回 入門システムコンテナマネージャーLXD 3.0:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
  • 第6回 N-gramと形態素解析との比較 | gihyo.jp

    これまでに、N-gramと形態素解析の2つの検索エンジンの、見出し語の切り出し方法を説明しました。今回は、2つの見出し語の切り出し方法を比較し、それぞれの得意な点、不得意な点を明らかにしていきます。 2つの手法の概要 はじめに、2つの手法をおさらいしてみます。 形態素解析 検索対象のテキストを形態素解析を行い分かち書きを行う 分かち書きした単位を見出し語として転置インデックスを作成する 転置インデックスを元に検索を行う N-gram 検索対象のテキストをN文字単位の文字列片に分解する 分解した文字列片を見出し語として転置インデックスを作成する 検索語をN文字単位の文字列片に分け検索を行う 文字列の出現位置情報を利用すれば、漏れのない完全一致の検索が可能 大きな違いは、「⁠転置インデックスの見出し語をどのように作るか」というプロセスが異なる点です。形態素解析は構文解析を行って分かち書きを行う

    第6回 N-gramと形態素解析との比較 | gihyo.jp
  • #3 teratailのQ&Aから学ぶWebセキュリティの現状 | gihyo.jp

    ITエンジニア特化型Q&Aフォーラムteratailが主催となり、2018年3月24、25日の2日間に渡り開催された「MANABIYA -teratail Developer Days-」ではITエンジニアの問題解決カンファレンスをテーマに「疑問」を主題としたセッションが多く実施されました。その中から、徳丸 浩さんによる基調講演「teratailのQ&Aから学ぶWebセキュリティの現状」のレポートをお送りします。 徳丸氏による基調講演の模様 セキュリティのプロがteratailで回答し続ける理由 講演は徳丸さんの自己紹介から始まりました。セキュリティ仕事としてセキュリティの書籍『体系的に学ぶ安全なWebアプリケーションの作り方』(⁠SBリエイティブ)や『徳丸浩のWebセキュリティ教室』(⁠日経BP社)を執筆し、脆弱性診断やコンサルティング業務を行う徳丸さんが、無償でYahoo!知恵袋やt

    #3 teratailのQ&Aから学ぶWebセキュリティの現状 | gihyo.jp
  • 第6回 Linuxカーネルのコンテナ機能[5] ─ネットワーク | gihyo.jp

    コンテナに関係する主要な機能2つの説明が済んだので、今回はLXCで使われることが多いネットワーク関連の機能を紹介しましょう。 コンテナとネットワーク名前空間 コンテナでのネットワークの使用と密接に関係するのが第2回で紹介したネットワーク名前空間です。 コンテナでネットワークを使用する場合、一般的にはネットワーク名前空間を作成します。そして、ホスト上に存在するネットワークインターフェースを、作成したネットワーク名前空間に割り当てます。そうすると、ホストや他のコンテナからは見えない、コンテナからだけ見えるネットワークインターフェースとなります。 もちろん、ネットワーク名前空間を作らなくてもコンテナは作れます。しかし、システムコンテナを使う場合、最近はupstartやsystemdといったソケットを使用するinitが使われることが多いので、ネットワーク名前空間をホストと分けておくのが普通です。

    第6回 Linuxカーネルのコンテナ機能[5] ─ネットワーク | gihyo.jp
  • 第4回 UTF-8の冗長なエンコード | gihyo.jp

    今回は、文字コードに関連するセキュリティの話題では古参ともいえるUTF-8の冗長なエンコードというテーマについて紹介します。 UTF-8とは UTF-8は、各文字を1~4バイトの可変長で表現するUnicodeの符号化方式のひとつです。 U+0000からU+007Fの範囲の文字を0x00から0x7Fの1バイトで表現しているため、US-ASCIIと互換性がある、バイト列の途中からでも文字の先頭バイトを簡単に検出できる、多バイト文字の途中に0x00や0x5C(\⁠)⁠、0x2F(/)などが現れない、などの特徴があります。 UTF-8での文字のビットパターンは表1のようになります。 表1 UTF-8でのビットパターン

    第4回 UTF-8の冗長なエンコード | gihyo.jp