サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
techblog.asahi-net.co.jp
朝日ネットで技術部門の執行役員をしている草場です。 前回に引き続き、社内用ChatGPTについての取り組みを紹介します。 前回記事はこちら techblog.asahi-net.co.jp 6月以降のできごと コスト OSS選定(LibreChat選定) Azure OpenAI Serviceでも言語モデルの変更が可能 認証オプション コンフィグでの機能制御 メンテナンス・更新頻度 システム構成 苦労話 Azureでのモデル切替の設定方法 Automated Moderation System Google認証 今後について 最後に 付録(.env diff) 6月以降のできごと 前回、GPT-4対応予定としていましたが、あれからの出来事はこのような感じです。 7月:Azure OpenAI ServiceからGPT-4 オンボードのメールが届く(見落とす) 8月~10月:OktaとSl
はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、 rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ
はじめに 開発部のcbmkageです。 仕事でプログラムを書いていると、どうしたら期待通りに、かつ高速に動作するアルゴリズムが実装できるか、考えることがあります。 本記事では、アルゴリズムについて新たな視点を与えてくれる本「Algorithm Design with Haskell」を紹介します。 本記事はHaskell中級者向けです。Haskellの文法や、代表的なリスト操作関数を知っていることを前提としています。 はじめに Algorithm Design with Haskellとは 準備: 関数の同値関係 貪欲アルゴリズムのPART紹介 貪欲アルゴリズムとは 候補の生成と選択 貪欲アルゴリズムへの改善 まとめ 採用情報 Algorithm Design with Haskellとは Algorithm Design with Haskell 作者:Bird, Richard,Gib
はじめに 開発部の ikasat です。 Python の言語・ライブラリ・処理系はプログラマのタスクを手早く簡単にこなせるようにするために設計されており、数行程度のコードを書いただけでも内部で様々なことをやってくれます。 しかし、この便利さが特定のユースケースにおいては逆にお節介になってしまうこともあり、また内部動作が複雑であることにより挙動を修正する方法も分からなくなりがちです。 特に組み込みの open 関数や標準入出力 (sys.stdin, sys.stdout) はその最たる例であり、UnicodeEncodeError / UnicodeDecodeError や TypeError: a bytes-like object is required は Python を使った人であれば誰もが見たことのあるエラーメッセージでしょう。 私自身これまでこの類のエラーが出た時には検索
開発部の 8luka です。 当社ISPサービスASAHIネットの個人のお客様にコンビニ払込用紙での支払方法(以下、コンビニ払いと記載します)を導入して一年ほど経ちました。 なぜ導入したのか、どう導入したのか、導入してどうなったのか、そんな話をこの件の開発を諸々担当した立場からお伝えします。 目的の話 誰が・いつ・コンビニ払い? それでもお支払いいただけなかったら? コンビニ払いの導入前はどうなってたの? それをどうして変えようとしたの? それで、導入できたの? 実現方法の話 利用料金の計算から債権データの生成まで 払込用紙の送付 印刷リクエストの冪等性の確保 送付できない・できなかったケースの対応 再発行 入金データと消込 入金と請求の紐付けの知識のありか 滞納対応 効果の話 採用情報 目的の話 誰が・いつ・コンビニ払い? 個人のお客様(以降「お客様」と表記します)には、ASAHIネット
初めまして、朝日ネット開発部の hogeyama です。 今回は Haskell の中級的なトピックとして、 GHC 9.2 で導入された Quick Look 型推論アルゴリズムを取り上げようと思います。 概要 Haskell のデファクトスタンダードなコンパイラである GHC では通常の多相(ジェネリクス)の一般化である非可述的多相(impredicative polymorphism)を実装していますが、その型推論アルゴリズムは長らく「型推論が弱い」「実装が不安定でコンパイラのバージョンアップでデグレが起きる」といった問題を抱えていました。 しかし昨年10月、Quick Look という新しいアルゴリズムが GHC 9.2 に実装されたことでこの問題が解決しました。 本記事ではこの Quick Look によって何が変わるのか、利用する際に何に気をつければよいのかを非可述的多相の概要
※9/16 タイトルを変更しました。 はじめまして。朝日ネット2021年度新卒社員のjiweenです。 オブジェクト指向は今や普通にプログラミングをしていれば必ずと言っていいほど遭遇するありふれた概念ですが、とても一筋縄ではいかない奥の深いプログラミングパラダイムでもあります。オブジェクト指向に悩まされ夜も眠れない全ての人のために、本連載ではなるべく初学者の目線からオブジェクト指向を分析し、オブジェクト指向を実践するための考え方を提案します。6回程続く長い連載になりますがお付き合いいただけると幸いです。 第1回 (今回) では全体の概要とモチベーションについての話をさせていただき、前提知識や仮定の確認を行います。第2回では本連載の結論として、オブジェクト指向設計における重要な考え方を説明します。第3回以降では、結論の具体的な説明と実践的な知識のため、GoFデザインパターンと呼ばれる設計パタ
ここではHaskellの中級者向けのトピックを簡単に取り上げたいと思います。 今回は余代数(Coalgebra)についてです。Haskellを書いていると『余(なんとか)』という言葉をみかけることがあります。これは英語の接頭辞 Co- の訳で、ここでは代数(Algebra)の双対(Dual)という意味で余代数と呼ばれています。 さてHaskellやOCamlのデータ型は一般に代数的データ型(Algebraic data type)と呼ばれます。このデータ型にパターンマッチングを加えて、(オブジェクト指向言語などと比較したときの)関数型言語の特徴と紹介されることも多いと思います。実はこのデータ型にはもともと余データ(Codata)と呼ばれるような相方がいたのですが、人類が扱うには早すぎたのか、データ型に比べると余データは長らく影の存在でありました(ちなみに余データは口語上はコデータと呼ぶかも
朝日ネットでWebアプリケーション開発の業務を担当している tommy です。 朝日ネットでは、2020年4月1日からフレッツ 光クロスに対応したサービスの提供が始まりました。 「フレッツ 光クロス」は、NTT東日本・西日本が提供する通信速度が上り/下り最大概ね10Gbps1の光回線サービスです。 こちらの回線に対応したサービスとして、現在「AsahiNet 光クロス」、「フレッツ 光クロス」、「ドコモ光 10ギガ」を提供しております。 後ほどこの記事で説明しますが、フレッツ網を使ったインターネット接続には、「PPPoE」と「IPoE」の2種類の方法があります。「PPPoE」と「IPoE」は、大まかに言って、情報の伝送方式が異なり、朝日ネットで用意している機材が異なるとお考え下さい。 従来、朝日ネットでは PPPoE で IPv4 接続を提供しそれをもって契約を開始、その後 IPoE の開
ISPネットワーク基盤の構築を担当しているskgc777です。 今回は、ネットワーク機器やサーバ機器を稼働させる上で欠かせない「電源」について話をしてみたいと思います。 データセンターの電源の種類 ネットワーク機器やサーバ機器の電源の種類 コンセント形状 電源コード 機器本体側の電源コード差し込み口 機器の安定稼働を目指して 採用情報 データセンターの電源の種類 一般家庭では、パソコンや電子レンジ等の電化製品用として、主に100Vの電圧が使われています。 IHクッキングヒーターや大きめのエアコンを設置している家庭では、200Vの電圧が使われていることもあります。 データセンターでも、一般家庭と同様に100Vだけでなく、200Vの電圧が利用可能です。 電源の効率的な運用という観点では、同じ電力(W)を供給をするのに必要な電流(A)が半分で済む200Vの方が効率的とも言えます。 100Vの電源
初めまして。朝日ネットのhakuです。今回はわかるようでよくわからないSSL証明書について話してみたいと思います。 Protocol HTTPとHTTPS SSLとTLS 暗号化アルゴリズムのCipher Suite(暗号スイート) 証明書の構成 ルート証明書 中間証明書 サーバ証明書 クロスルート証明書 認証別証明書の種類 自己署名証明書(通称:オレオレ証明書) DV証明書 ドメイン認証(DV: Domain Validation) OV証明書 企業認証(OV: Organization Validation) EV証明書(Extended Validation) 認証別証明書の疑問 サービス別証明書の種類 ワイルドカード証明書 マルチドメイン証明書 (MDC) プロトコル側の対応:SNI(Server Name Indication) ネイキッドドメイン(Naked Domain) ま
こんにちは、朝日ネットでISPのインフラ保守を行っているa-fujisakiと申します。セキュリティ担当の一人としてお客様の所有されている機器がインターネット越しに悪用される事を防ぐ仕事をしています。 本記事では 前回 に引き続き、ネットに接続した機器が身に覚えのないアップロードを何百ギガと繰り返している、一旦電源を落として再接続しても改善しないといった症状が発生している場合の理由と対策について解説します。 電源を落とすと一旦改善するケースは、 過去記事 で解説しています。 各種の症状について頻度を★マークで示しております。 リモートデスクトップ乗っ取られ被害 ゲートウェイ乗っ取られ被害 telnet経由での乗っ取られ被害 NASの運用による乗っ取られ被害 なぜ大企業でも有名人でもない私の機器が被害に逢うの? このような被害にあわないために 採用情報 リモートデスクトップ乗っ取られ被害 リ
はじめに 朝日ネットのaibaです。 前回のサーバラックでのケーブリングについて の記事に引き続きデータセンターに関係する話題について書いていきたいと思います。 今回は、データセンター内の機器管理手法について検討したいと思います。 はじめに DCIMとは 管理手法の検討 機能要件 OpenDCIM (Opensource Data Center Infrastructure Management ) Netbox phpIPAM (php IP Address Management) Google スプレッドシート Microsoft Office Excel 管理ソフトウェアの決定 実際に触ってみた Dockerで即席試用 できること IPアドレス管理 ラック管理 実際に使ってみて 導入するにあたっての課題 将来的な展望 まとめ 採用情報 DCIMとは DCIMとは「Data Cente
開発部のxgotoです。Haskellの初級・中級者向けのトピックを取り上げたいと思います。 今回は型(Type)についてです。型はHaskellの入門書でも必ず最初のほうに説明されるもので、手元の本によれば、 型とは、互いに関連する値の集合である。 ---- 『プログラミングHaskell』 Graham Hutton 著 / 山本和彦 訳 だとか、 値の世界は型と呼ばれる系統的な集まりへと分割される。 ---- 『関数プログラミング入門 Haskellで学ぶ原理と技法』 Richard Bird 著 / 山下伸夫 訳 などのように書かれています。たとえば Bool は True と False の2つの値からなる集合だし、Intは整数の集合というように、型は値の集合というふうにみることができます。それならば型などと呼ばずに集合と呼べばいいと思いますが、「異なるものには異なる名前をつけろ
はじめまして、朝日ネットでISPのインフラ保守を行っているa-fujisakiと申します。セキュリティ担当の一人としてお客様の所有されている機器がインターネット越しに悪用される事を防ぐ仕事をしています。 本記事では、インターネットが遅い、調べてみるとネットに接続した機器がアップロードを何百ギガと繰り返している、一旦電源を落として再接続すると復旧するがすぐ元に戻る、といった症状が発生している場合の理由と対策について解説します。 各種の症状について頻度を★マークで示しております。 時刻同期(NTP)サービスの公開による踏み台被害 DNSサービスの外部公開による踏み台被害 LDAPサービスの外部公開による踏み台被害 UPnPサービスの外部公開による踏み台被害 このような被害にあわないために 採用情報 時刻同期(NTP)サービスの公開による踏み台被害 NTP monlistの脆弱性を悪用したリフレ
朝日ネット ネットワーク部のTと申します。初めまして。 今回、BBIX BGP Meeting 2019 Summer が 都内で開かれました。 このイベントで、朝日ネットのバックボーン運用について、少しお話しさせていただきました。 その中でお話したことの一部を紹介させていただきます。 はじめに データセンターの契約 フレッツ収容設備の場変 採用情報 はじめに 2016年春を過ぎた頃、大きなプロジェクトの話が持ち上がりました。朝日ネットのVNE事業者としての参入です。 いろんな議論を経て、自社でVNE事業者として、NTT東西とIPv6接続するというプロジェクトです。一般的には、IPoEといわれるサービスです。 このIPoEサービスは、「IPv6接続機能」として、2017年4月にリリースしました。それまで、朝日ネットは、IPv6をサービスしていなかったのですが、実験的に実装した構成のため、サ
はじめに こんにちは。朝日ネットでWebアプリケーションの開発を行っている tommy です。 OpenAPI Specification は RESTful な API を記述するための仕様です1。2015年に Open API Initiative が発足し、それまで Swagger という名前で進められていたプロジェクトを引き継ぎました。 現在では実質上の世界標準といえます。 今回は、この OpenAPI を書いている時に、コピペして使える、逆引きの小さなサンプル集が欲しいと思ったので、書いていこうと思います2。 はじめに OpenAPI について Swagger Editor チートシート GET アクセス パラメータ (parameters) クエリパラメータ パスパラメータ リクエスト本文 (requestBody) multipart/form-data JSON リクエスト
はじめに 開発部の tasaki です。 6 月の記事(「Pythonのパッケージングのベストプラクティスについて考える2018」)では setuptools, pip, venv を使ったパッケージングのフローについて考えました。 techblog.asahi-net.co.jp 今回はモダンな開発用ツールチェーンを持つ他の言語(具体的には JavaScript (Node.js), Go, Rust あたりを意識)と似たような開発フローを Python において構築するにはどうすればよいかということを考えていきます。 はじめに 対象バージョン 備考 TL;DR (結論) pip と virtualenv の統合 (Pipenv) 概要 使い方 インストール Pipenv プロジェクトの新規作成 setup.py との併用 静的な型の検査 (mypy) 概要 設定例 使い方 Lintin
はじめに 開発部の tasaki です。8 月の記事では TypeScript + React + Redux + React Router + α を使って 1 ファイルで完結する小さいアプリケーションを書きました。 techblog.asahi-net.co.jp 今回は TypeScript + Vue + Vuex + Vue Router の組み合わせで同じものを書き、2 つのライブラリの共通点と違いについて探ってみたいと思います。 このようなものを書いた主な理由は以下の 3 つです。 適度に小さく完備なアプリケーションの構成を作っておき、そのソースコード自体をチートシートとして使いたい React と Vue の共通点や差異について説明をする時に使える実例を用意しておきたい React や Vue を TypeScript から使う際の書き方を確立しておきたい 以下、実際にアプ
はじめに watanabeです。 前回の記事ではデバッグ機能からプッシュ通知を送信して受け取ったときの処理を実装しましたが 今回は受信する端末ごとに異なるトークンを取得して、特定の端末にプッシュ通知を送れるようにします。 はじめに 実装の手順 1.Firebase Cloud Messagingで必要な値を取得する 2.端末ごとのトークンを取得して表示する仕組みを作る index.html(メインのHTML) main.js(メインページで読み込むjs) manifest.json(PWA化に必要なManifestファイル) firebase-messaging-sw.js(新たに作成したService Worker) 3.コマンドをCurlで送信してプッシュ通知を受け取る 次回予告 採用情報 実装の手順 Firebase Cloud Messaging(FCM)で必要な値を取得する 端末
初めまして。AWS触り始めて半年ちょいの初心者インフラエンジニア、jttest0です。 いつかAWSチョットデキルの境地に至れることを夢見て日々公式ドキュメントとにらめっこしています。 本記事は、htmlファイル等の自作は出来るけどインフラ系*1の知識が無くてウェブサイトの公開の仕方がわからない! というお悩みを抱えた方へお送りいたします。 こちらは、全三回*2にわたる連載記事の記念すべき第一弾です。 今回は、S3バケットで静的ウェブサイトホスティングするところまでを扱います。意味がわからなくても大丈夫です。自分の作ったウェブサイトが公開された状態になるということです。 そもそもウェブサイトってどう作るの……? ウェブサイトのすゝめ AWSアカウントを作ろう ファイルの置き場所を作ろう アクセス用のURLを作ろう インターネット公開のための設定をしよう 第1回まとめ 採用情報 ※構築部分
はじめに 開発部の tasaki です。Python 3.7 のリリースが今月末に行われるということで、あらためて 2018 年現在の Python のパッケージ構成におけるベストプラクティスについて検討してみたいと思います。 対象読者 この記事は、 書き捨ての Python スクリプトなら書けるが、ちゃんとしたパッケージの作り方がよく分からない 公式リファレンスのモジュールの章を読んだが、結局具体的にどういう構成にすればよいのか分からない setuptools.setup 関数の大量の引数のどれを使えばよいのか分からない というような人を対象としています。 対象バージョン 処理系とツールチェーンのバージョンは、 Python 3.4 (2014/03/16 リリース)以降 pip 8.1.2 以降 setuptools 19.2 以降 を対象とします。 EPEL の python34,
朝日ネットで業務システムを開発しているkakoです。以前からやりたかったテーマに取り組んでみたいと思います。 やりたいこと モチベーション 本気でISP事業者を立ち上げるには なんちゃってISP(KakoNet)の概要 採用情報 やりたいこと ISPの機能を持ったシステムを構築してみたい。 後述しますが、本気でISP事業者を立ち上げるのではなく、AsahiNet内のプライベートASになんちゃってISP(KakoNetと命名)を構築することを目標に取り組んでいきたいと思います。 モチベーション 筆者は業務システム開発のエンジニアとして勤務していますが、ISPって何をやってるの?どういう機能を持ってたらいいの?と考えてみたら、抽象的/概念的なことしか理解できていないなと…。ISP事業者で働き始めて数年が経っているのだから、自信を持って誰かに説明できるくらいにはなりたい…。じゃあイチからISPを
このページを最初にブックマークしてみませんか?
『朝日ネット 技術者ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く