タグ

ブックマーク / eng-blog.iij.ad.jp (23)

  • ファイル書き込みをするプログラムで気をつけた方がよいこと | IIJ Engineers Blog

    この記事について この記事では、ファイルに書き込みを行うプログラムを実装する時の注意点について説明します。 ファイル書き込みは、プログラミングにおいて比較的よく利用される機能でありながら、実装時に注意していないと、システムクラッシュ(意図しない電源の喪失や OS のクラッシュ等)後にファイル上のデータが整合性を失う可能性、平たく言えば、データが破損する場合があります。 今回の主な内容はトランザクションに関連する事柄で、ご存知の方からすると当たり前と思われることだと思われますが、執筆者がプログラミングの勉強を始めて以降知らない期間が長かったことと、他にもご存知ない方がある程度いらっしゃるのではないかと思ったため、このように記事にさせていただきました。 また、ここで説明する注意点は、クラッシュ後にデータの整合性が重要でない場合は、気を付ける必要がないものであることを先に書いておきます。 先にこ

    ファイル書き込みをするプログラムで気をつけた方がよいこと | IIJ Engineers Blog
    rin51
    rin51 2024/03/06
  • 別れ話をBGPに載せて | IIJ Engineers Blog

    社長室兼基盤エンジニアリング部所属。これだけ見るとフルスタックエンジニアを超越しているが、実態はネットワークを中心にしたインフラ全般の企画が主なお仕事。AS2497 / The Internet / BGP / SRv6IIJ 2023 TECHアドベントカレンダー 12/22の記事です】 警告: タイトルから推測できるとおり、人によってはメンタルに来る可能性があります。at your own riskでお読みください。 私のXタイムラインにシスコシステムズさんのこんな記事が流れてきた。 引用元:愛の告白をBGPに載せて 題 show ip bgpを実行するのに、こんなに緊張するのは初めてだ。流宇太(るうた)はターミナルソフト画面に表示されているshow ip bgpコマンドを凝視しながらこう思った。 まだ若手エンジニアとは言えるが、幾つかの難関ネットワーク案件を完遂してきた実績を

    別れ話をBGPに載せて | IIJ Engineers Blog
    rin51
    rin51 2023/12/22
  • Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog

    IIJ 2023 TECHアドベントカレンダー 12/16の記事です】 この記事について 背景:TCP はコンピュータネットワークの通信において広く利用されているプロトコル・標準化された通信規格です。コンピュータは TCP/IP スタックと呼ばれるようなソフトウェアを実行することで、定められた規格に則って通信を行います。汎用 OS 環境では、TCP/IP スタックは多くの場合、カーネル空間に OS 機能の一部として実装されています。 課題:通信に関するソフトウェアの研究コミュニティでは、そのようなカーネル空間に実装されている TCP/IP スタックは、近年の高速な NIC の性能を十分に引き出すことが難しいという課題が指摘されてきました。 テクニックの紹介:当記事では、近年の研究コミュニティにおいて比較的一般的な高速化テクニックとされている「カーネルをバイパス(迂回)して TCP 通信を

    Linux カーネルをバイパスして TCP 通信を 10 倍速くする | IIJ Engineers Blog
    rin51
    rin51 2023/12/15
  • Python 3.11から追加された標準パッケージtomllibの紹介 | IIJ Engineers Blog

    2018年新卒入社し、SOCにてインフラ管理を担当。その後、マルウェア解析や検証業務などに従事。2022年度からは、社内のSREチームにて兼務を開始。主な保持資格は、CISSP, OSCP, GREM, GXPN, RISS, CKA, CKSなど。バイナリを読むのが好きで、一番好きな命令はx86の0x90(NOP命令)。 はじめに 私は、業務でマルウェア解析のようなリバースエンジニアリングをしており、業務効率化のために自作ツールを作ることがあります。皆さんは自作のツールの設定ファイルに、どのようなファイル形式を利用していますか。昨今は、KubernetesやAnsibleなどで用いられるYAMLや、フロントエンド界隈で頻繁に利用されるJSONなどが多い印象です。そんな中、今回はTOMLと呼ばれるファイル形式の紹介をします。プログラミング言語Rustのパッケージ管理ファイルに利用されていた

    Python 3.11から追加された標準パッケージtomllibの紹介 | IIJ Engineers Blog
  • Knuth: The Art of Computer Programming の話 | IIJ Engineers Blog

    2002年から約10年 IIJ技術研究所長. 年を取ってからは古い計算機や昔の計算法に興味が増し, シミュレーターを作ってそのプログラムを書いたり. 近頃はKnuthのTAOCPにあった問題のプログラムなどに挑戦したりしている. 【IIJ 2022 TECHアドベントカレンダー 12/5(月)の記事です】 クリスマスといえば, 英国王立研究所が1825年から続けている「クリスマス講演」が有名で, 岩波文庫にあるFaradayの「ロウソクの科学」はその1860年の講演だ. それに比べればまだ20年くらいだが, スタンフォード大学のKnuth教授も毎年「クリスマス講義」を続けている. しかし今回のブログはそのKnuthによる大著, The Art of Computer Programming(以後TAOCP)が話題である. 上段の左の横積みは, 英語版TAOCPの, 上から第1, 2, 3,

    Knuth: The Art of Computer Programming の話 | IIJ Engineers Blog
    rin51
    rin51 2022/12/05
  • 2022年度ハンズオン研修資料を公開しました | IIJ Engineers Blog

    はじめに IIJでは毎年「IIJ Bootcamp」というビギナー向けのハンズオン研修を開催しています。 4年目となる今年も有志の皆様のおかげで無事開催することができました。 今年度はOverviewと呼ばれる座学が7講義、ハンズオン研修が21講義という規模で行いました。 参考:これまでのIIJ Bootcamp [IIJ Bootcamp] ハンズオン研修2021 開催報告 [IIJ Bootcamp] ハンズオン研修2020 with リモート [IIJ] 2019年度ハンズオン研修の取り組み [Bootcamp!] 研修資料は以下のページに公開されています。一部は非公開となっていますが、大半はCC BY-SAで公開しています。 ぜひ学習や研修等とご活用ください。 https://iij.github.io/bootcamp/ 今年の特徴としては、プログラミング技法として以下のハンズオ

    2022年度ハンズオン研修資料を公開しました | IIJ Engineers Blog
  • ブラウザだけでDockerしたい | IIJ Engineers Blog

    九州支社技術部(九州・中四国事業部)所属。自作パソコン好きで、ハードウェア選定の仕事を与えると喜ぶ。最近は何でもコンテナにしたい教に入信し、コンテナ化の機会を虎視眈々と狙っている。 こんにちは、前回Dockerを完全に理解した、九州支社技術部(九州・中四国事業部)所属のy-morimotoです。 皆様、快適なコンテナライフいかがお過ごしでしょうか。 え?時間が無くてコンテナを動かす環境が準備出来ていない? そんな貴方に朗報です。 今からブラウザを開けば、すぐにDockerをご利用頂けます。 必要なのはDocker Hubのアカウントのみ。もちろん費用はかかりません。 以下URLからSign Upして、アカウントを作成しましょう。 https://hub.docker.com/(別のタブかウィンドウで開かれます) 1.Play with DockerDocker Playground) D

    ブラウザだけでDockerしたい | IIJ Engineers Blog
    rin51
    rin51 2022/03/24
  • “HTTPSレコード”って知ってる?今知るべき4つの注意点 | IIJ Engineers Blog

    [注] この記事はすぐに陳腐化するはずの内容について扱っています。何年か経ってからこの記事を参照する場合、2022年3月に書かれた内容であることを留意の上お読みください。 はじめに IIJ DNSプラットフォームサービスにて、先日大きなアップデートと小さなアップデートがありました。大きなアップデートというのは、これまでのマネージドDNSサービスに加えてもうひとつ、IIJ DNSトラフィックマネージメントサービスという新たなサービスが追加されたこと。サーバの死活監視結果に応じて動的にDNSの応答を変えることができます。小さなアップデートは、従来のマネージドDNSサービスへの機能追加。HTTPSレコードに対応しました。 サービスの宣伝という意味では大きなアップデートの方を紹介した方がいいんでしょうけれど、ヘソ曲がりなのでここでは小さなアップデート、HTTPSレコードの方に焦点をあてます。 そも

    “HTTPSレコード”って知ってる?今知るべき4つの注意点 | IIJ Engineers Blog
    rin51
    rin51 2022/03/23
  • 端末の文字幅問題の傾向と対策 | IIJ Engineers Blog

    電子メール、ネットワーク機器集中管理、異常検知、分散処理、クラウド基盤などのシステム開発に従事。古代Rubyist。 CLI や TUI なアプリケーションを使っていると、端末の画面が崩れてしまうことがよくあります。 たとえば、こんな TUI が、 環境によってはこんな感じで崩れます。 スクロールなどをしながらしばらく使っているとさらにどんどん崩れていきます。 こうなってしまった場合、とりあえず Ctrl-l で画面を再描画することで、大抵はなんとか読める程度にリセットできますので、ことあるごとに Ctrl-l を連打することになります。 ですが、どうしようもないケースもままあります。 例えば、私の場合は以下のようなシチュエーションで困ります。 w3m でテーブルなどを表示するとレンダリングが崩れる less でログの閲覧の際に表示されるべき文字が表示されず見落としが発生する Wander

    端末の文字幅問題の傾向と対策 | IIJ Engineers Blog
    rin51
    rin51 2022/02/15
  • リモートワークを快適に!通話用マイクの種類と選び方 | IIJ Engineers Blog

    2018年新卒入社。名古屋支社にてSI中心にお仕事をするエンジニア仕事ではサーバやミドルウェアを、趣味ではウェブやアプリを弄っています。 まえがき リモートワークがメインとなった昨今、会議や打ち合わせもTeams等のWeb会議で実施することが増えましたが、皆さんはマイクに拘ってますか? 100円ショップで買ったイヤホンマイクを使ったりしていませんか。(それが悪いとは言いませんが……) 通話をするにあたって、適当なマイクを使うと以下のようなトラブルが起きがちです。そして、これらのトラブルは自分が不便なだけではなく、相手に不快感を与えてしまうかもしれません。 音量をマックスにしているのに声が小さい 周辺の環境音(空調の音や外を通る車の音など)を拾ってしまう ノイズが入る(ザー、サーといったホワイトノイズ) スピーカーの音をマイクが拾ってしまいハウリングを起こす 上記のようなトラブルを避けるた

    リモートワークを快適に!通話用マイクの種類と選び方 | IIJ Engineers Blog
  • QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog

    Haskellコミュニティでは、ネットワーク関連を担当。 4児の父であり、家庭では子供たちと、ジョギング、サッカー、スキー、釣り、クワガタ採集をして過ごす。 不定期連載を始めます IIJ-II 技術研究所 技術開発室の山です。私はプログラミング言語HaskellでHTTP/2とTLS 1.3を実装した後、もっぱらQUICを実装することに時間を費やしてきました。 ご存知の方もいらっしゃると思いますが、今年の5月にQUICの仕様がRFC9000として公開されました。このRFCは実によく書かれているので、読みこなせばQUICの全容が掴めるでしょう。 しかし仕様は膨大ですし、実際に実装してみて初めて腑に落ちることもあります。そこでこの機会に、実際にQUICを実装した経験者目線で、QUICの解説をしていきたいと思います。なんとなくTCP/IPを分かっている方が、ある程度QUICの理解ができることを

    QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog
    rin51
    rin51 2021/07/01
    Kazu Yamamotoさん
  • 『電話はなぜつながるのか』:私のお気に入りなエンジニア向け書籍 | IIJ Engineers Blog

    ネットワーク技術部の竹﨑です。IIJには2020年度に新卒で入社し、IIJバックボーンの運用に携わる部署で働いております。過去にはこのような記事を投稿しております。 今回は私が電電・インフラ設備オタクになったきっかけの一冊をご紹介いたします。 はじめに 電話はなぜつながるのか そもそも書籍のタイトルである「電話はなぜつながるのか」と考えたことがある方は非常に少ないと思います。電話は水道電気ガスや“インターネット”と同じインフラであり、蛇口を捻れば出てくる水やケーブルを挿せばつながるインターネット( 最近ではケーブルをつなぐことは少ないかもしれませんね:) )のように受話器を上げて特定の番号へダイヤルすれば当たり前のようにつながるものとなっています。インフラ全般に言えることですが、当たり前に使えるということは驚くべきことです。しかし、あまり意識されることはありません。そのような当たり前だけど

    『電話はなぜつながるのか』:私のお気に入りなエンジニア向け書籍 | IIJ Engineers Blog
    rin51
    rin51 2021/05/25
  • 【資料公開】IIJ Technical NIGHT vol.9 | IIJ Engineers Blog

    日9/11(金)18:00より「IIJ Technical NIGHT vol.9」を開催します! ※前半のセッションが予定より長くなるため、15分拡大の19:45終了を予定しています この記事では、講演で使用する資料を公開します。 テーマは「セキュリティアナリストのお仕事──分析、AI、ツール開発」 IIJのSOC(Security Operation Center)での取り組みを紹介します。 サイバー攻撃に対応するため24時間ネットワークを監視するSOC。しかし、武器がなくては日々のセキュリティ・インシデントに立ち向かう事はできません。IIJでは、SOCのアナリストを支援する武器として、一般的に流通している情報やツールのほかに、社内のエンジニアが独自の方法で分析したり、ツールの開発を行っています。 今回はその中から、「インシデントを発見するためのインテリジェンス構築」と「インシデント

    【資料公開】IIJ Technical NIGHT vol.9 | IIJ Engineers Blog
    rin51
    rin51 2020/09/11
  • 部長席を破壊しました | IIJ Engineers Blog

    Twitterフォロー&条件付きツイートで「バリーくんぬいぐるみ」を抽選で20名にプレゼント! 応募期間は2019/11/29~2019/12/31まで。詳細はこちらをご覧ください。 今すぐツイートするならこちら→ フォローもお忘れなく! 【IIJ 2019 TECHアドベントカレンダー 12/15(日)の記事です】 システムクラウド部の濵﨑です。認定スクラムマスター(CSM)を取りました。 我々は今新サービス開発を行っています。 サービスの開発にあたっては検証タスクを洗い出したり、ユーザーストーリーマッピングを実施したり、とにかく描いて話してということが多くなります。毎回会議室を取って話す時間を作っていましたが、まとまった時間が確保しづらいですし、予定を取るのがあまりにも面倒なので貸し会議室を借りて合宿のような形式でワークショップを行ったりしました。 この貸し会議室作戦は大変よかったの

    部長席を破壊しました | IIJ Engineers Blog
    rin51
    rin51 2019/12/26
    > いい場所だったので部長席を2つ破壊してホワイトボードを4枚設置しました。
  • IIJ飯田橋オフィスでDFSはどれくらいおきているのか? | IIJ Engineers Blog

    Twitterフォロー&条件付きツイートで「バリーくんぬいぐるみ」を抽選で20名にプレゼント! 応募期間は2019/11/29~2019/12/31まで。詳細はこちらをご覧ください。 今すぐツイートするならこちら→ フォローもお忘れなく! 【IIJ 2019 TECHアドベントカレンダー 12/14(土)の記事です】 こんにちは、IIJ 金子です。 日は、無線LAN 5GHz帯でのDFSの発生状況を可視化してみようというお話をします。 はじめに 無線LANを運用していると気になるのは、外来レーダー波により引き起こされるDFS、そしてそれに起因してAPが行うチャネルの移動です。 「今自分がいる場所で、無線LANのDFSを引き起こすようなレーダーはどれくらい打ち込まれているのかしら?」とそんな疑問がふと沸いてきたので、ものは試しにと実際に測ってみることにしました。 無線LANとDFSについて

    IIJ飯田橋オフィスでDFSはどれくらいおきているのか? | IIJ Engineers Blog
    rin51
    rin51 2019/12/13
  • 分散SNSを使って技術を覚える | IIJ Engineers Blog

    Twitterフォロー&条件付きツイートで「バリーくんぬいぐるみ」を抽選で20名にプレゼント! 応募期間は2019/11/29~2019/12/31まで。詳細はこちらをご覧ください。 今すぐツイートするならこちら→ フォローもお忘れなく! 【IIJ 2019 TECHアドベントカレンダー 12/12(木)の記事です】 久しぶりに書きました。 どうもこんばんわ。九州支社で働くとみです。お久しぶりです。 実は2016年に一つ記事を投稿したのですが、実に3年半経過した今になってアドベントカレンダーの話が聞こえてきたので、久方ぶりに書いてみることにしました。 当時はこんな記事なんかを書いてたわけですが、この記事を書いてから3年間色々あったので、その中の一つを書いてみようかなと思います。 3年間で覚えたことを並べてみる 2016年当時はTHE ON-PREMISEと言われてもおかしくないような、どイ

    分散SNSを使って技術を覚える | IIJ Engineers Blog
    rin51
    rin51 2019/12/12
  • Vim で起きているイベントを Machinist で可視化する | IIJ Engineers Blog

    Twitterフォロー&条件付きツイートで「バリーくんぬいぐるみ」を抽選で20名にプレゼント! 応募期間は2019/11/29~2019/12/31まで。詳細はこちらをご覧ください。 今すぐツイートするならこちら→ フォローもお忘れなく! 【IIJ 2019 TECHアドベントカレンダー 12/9(月)の記事です】 昨年のアドベントカレンダーでも紹介した Machinist (マシニスト) は身の回りのあらゆるメトリクスを収集し、管理することを目的として開発されたサービスです。 今年7月に正式版リリースを済ませ、多数の方にご利用いただいています。 この記事では私が普段使っているテキストエディタである「Vim」を例に、コーディング中に発生しているイベントを収集し、Machinist で可視化する方法を紹介します。 コーディング中の細かいアクティビティを取得したい コーディングに関するアクティ

    Vim で起きているイベントを Machinist で可視化する | IIJ Engineers Blog
    rin51
    rin51 2019/12/09
  • JavaScriptマルウェアの解析テクニック | IIJ Engineers Blog

    Twitterフォロー&条件付きツイートで「バリーくんぬいぐるみ」を抽選で20名にプレゼント! 応募期間は2019/11/29~2019/12/31まで。詳細はこちらをご覧ください。 今すぐツイートするならこちら→ フォローもお忘れなく! 【IIJ 2019 TECHアドベントカレンダー 12/8(日)の記事です】 はじめに JavaScriptは、Webページに対して動的な処理を実行するプログラミング言語ですが、近年マルウェアのダウンローダなど悪意ある様々な用途に利用されるケースが多く見受けられます。PE(Portable Executable)のマルウェアに関する解析記事はインターネット上に多く存在しますが、特に日語で書かれたJavaScriptに焦点を当てた記事はとても少ないのが現状です。そこで記事では、JavaScriptマルウェアを解析する際に便利なテクニック(暗黙の内に使っ

    JavaScriptマルウェアの解析テクニック | IIJ Engineers Blog
    rin51
    rin51 2019/12/09
  • 数百のテナントが同居するマルチテナントKubernetesの世界 | IIJ Engineers Blog

    Twitterフォロー&条件付きツイートで「バリーくんぬいぐるみ」を抽選で20名にプレゼント! 応募期間は2019/11/29~2019/12/31まで。詳細はこちらをご覧ください。 今すぐツイートするならこちら→ フォローもお忘れなく! 【IIJ 2019 TECHアドベントカレンダー 12/6(金)の記事です】 シニアテクニカルマネージャの田口です。今年はKubernetesに始まり、Kubernetesに終わる1年でした。皆さん、コンテナ化の準備は万端ですか? IIJにおけるKubernetesの活用はまだ黎明期といったところですが、それでも急速に利用が進み、最も巨大なクラスタでは約200名のエンジニアが暮らし、数百のテナント(プロジェクト)が同居する規模にまで育ってきました。そのネタでブログを1と思ったのですが、1年前に比べるとKubernetesはプロダクション環境での普及が進

    数百のテナントが同居するマルチテナントKubernetesの世界 | IIJ Engineers Blog
    rin51
    rin51 2019/12/07
  • Network Stomper開発 Project 基板設計記[第1回(全5回)] | IIJ Engineers Blog

    こんな感じでGPIOは売り切れです。IO12とIO13が逆転しているのはかつてIO15をボタン入力2に割りあてて設計していたら、pull upできないことに気が付き急遽IO12と入れ替えたためです。さらにIO16は入力割り込みが使えないということにも気が付きましたが、基板を製造したあとだったので、そのままにしてポーリングで監視しています。 内蔵ROMのメッセージ UARTは別のピンを使ってSoCの内蔵ROMのメッセージを隠すという選択肢もあるのですが、今回はそのままにしました (ESP-WROOM-02 Datasheet v2.6, 2018, p. 6) (ESP8266EX Datasheet v6.0, 2018, p. 15)。このメッセージは少しやっかいで、ESP-8266に供給されているクロック周波数から自動的に通信速度が決まってしまい、ユーザは速度を指定できません。40MH

    Network Stomper開発 Project 基板設計記[第1回(全5回)] | IIJ Engineers Blog
    rin51
    rin51 2019/11/15