タグ

ブックマーク / news.mynavi.jp (37)

  • Pythonのネットワークプログラミングに必要なデータまとめ

    Comparitechは11月13日(米国時間)、「Python Network Programming Cheat Sheet - Downloadable JPG & PDF」において、Pythonを使ったネットワークプログラミングに必要となるモジュールやライブラリ、コードサンプルなどをまとめたチートシートおよびテーブルの公開を伝えた。 公開されたチートシートには次のデータがまとめられている。 一般的に必要となるモジュール: PIP、IDLE ネットワークプログラミングライブラリ ネットワークフォレンジック: 必要なライブラリとスクリプト Pythonキーワード データ型、算術演算子 Pythonを使ったネットワーク分析 dnspythonライブラリ ソケットモジュール(Berkley APIインタフェース) ソケットタイプ、ソケット作成 ソケットサンプル スクリプトサンプル 解析モジ

    Pythonのネットワークプログラミングに必要なデータまとめ
  • システム負荷を表示するtloadコマンドの使い方 | マイナビニュース

    HowtoForgeに10月25日(米国時間)に掲載された記事「Linux tload Command Tutorial for Beginners (with Examples)」が、システム負荷平均を表示するtloadコマンドの使い方を伝えた。tloadはシステム負荷をターミナルにCUIでグラフィカルに表示するコマンドで、使い方はtloadと実行するだけ。ターミナルにシステム負荷がCUIベースのグラフとして表示されるようになる。 tloadコマンドの実行サンプル Ubuntu 18.04 LTS tloadコマンドは-sでスケールを指定することができるほか、-dで更新頻度を指定することができる。 物理的なシステムコンソールやssh経由でログインしてしか操作することのできないサーバをモニタリングする場合など、tloadはシステム負荷の状況を表示するシンプルな方法として利用できる。GUI

    システム負荷を表示するtloadコマンドの使い方 | マイナビニュース
  • これだけは押さえておきたい「2018年ネットワーク技術最新動向」

    Ethernetとの互換性が重視されつつあるInfiniBand ネットワークの進化は、基的には高速化や広帯域を目指すものだが、CPUの高速化と同様に、ネットワークの高速化についてもそろそろ物理的な限界に突き当たりつつあるのではないか、という懸念は出てきている。とはいえ、進化のペースは鈍化しているものの、まだ高速化の取り組みが完全に放棄されたわけではない。 LANの世界におけるデファクトスタンダードであるEthernetでは、10GbpsがIAサーバの標準ネットワークインタフェースとなっており、必要に応じて25Gbpsも選択可能、という状況だ。それ以上の速度では、40Gbps、50Gbps、100Gbpsといった規格に基づく製品が市場に投入されており、ロードマップとしては200GbE、400GbEといったさらなる高速化が見えている。 一方、HPCの分野で使われてきたInfiniBandは

    これだけは押さえておきたい「2018年ネットワーク技術最新動向」
  • ゼロからはじめるPython(4) Jupyterでいろいろなグラフを描画しよう

    前回、Jupyterノートブック上で、CSVファイルを読み込み、棒グラフを描画する方法を紹介した。今回は、CSVファイルの任意のデータを取り出したり、さらに、いろいろなグラフを描画する方法を紹介する。 人口の増減を確認しよう 前回より、Pandasというライブラリを利用して、CSVデータの読み込みと描画を行っている。Pandasは、非常に強力なデータ分析ライブラリだ。また、前回見たとおり、CSVファイルを読み込んでグラフを描くだけなら、数行記述するだけで事足りるというお手軽さも魅力だ。 さて、今回はもう少しPandasの実力を確認してみよう。最初に、Pandasで特定の列を取り出してみよう。そのためには、以下のように記述する。 import pandas as pd df = pd.read_csv("population.csv", encoding="SHIFT_JIS") df["平

    ゼロからはじめるPython(4) Jupyterでいろいろなグラフを描画しよう
  • 【再録】コンピュータアーキテクチャの話(6) キャッシュの構造(基礎編) - どういう単位でキャッシュに入れるのか?

    連載はHisa Ando氏による連載「コンピュータアーキテクチャ」の初掲載(2005年9月20日掲載)から第72回(2007年3月31日掲載)までの原稿を再掲載したものとなります。第73回以降、最新のものにつきましては、コチラにて、ご確認ください。 キャッシュって何だろう? 性能の観点でCPUの仕様を見るとき、コア数、クロック周波数の次に来るのがキャッシュの容量というのが一般的であるが、キャッシュとはどういうもので、どう動くのかについてはあまり理解されていないように思われる。そこでこの一連の連載ではキャッシュについて述べようと思う。 プロセサのクロックが16MHz(GHzでは無い!)程度であった1980年代半ばまではDRAMメモリのアクセス時間も5サイクル程度であり、データをDRAMまで取りに行くことは大した問題では無かった。しかし、プロセサのクロックが1GHzを超えると、プロセサのクロ

    【再録】コンピュータアーキテクチャの話(6) キャッシュの構造(基礎編) - どういう単位でキャッシュに入れるのか?
  • Linuxコマンドチートシート6選

    IT'S F.O.S.Sに2月4日(米国時間)に掲載された記事「Download 6 Best Linux Command Cheat Sheets For Free」において、Linuxコマンドチートシート6選を紹介している。LinuxコマンドチートシートはLinuxでよく使われるコマンドとその簡単な意味をまとめた参照ノートで、よく使われるコマンドがコンパクトにまとまっており参考になる。 紹介されているチートシートは次のとおり。 RED HAT LINUX COMMANDS CHEAT SHEET (ダウンロード) CHEAT SHEET FROM LINUX TRAINING ACADEMY (ダウンロード) LINUX COMMAND CHEAT SHEET FROM LINOXIDE (ダウンロード) LINUX COMMAND CHEAT SHEET FROM LOGGLY (ダ

    Linuxコマンドチートシート6選
  • Pythonで学ぶ 基礎からのプログラミング入門(36) Pythonのコーディング規約「PEP8」

    今回はコーディング規約について学びます。今までの回では特に断らずに変数やクラスに名前を付けたりしていました。また、インデントなども特に深い説明はしていません。 自分ひとりでコードを書くのであれば、自分にとってわかりやすいものをつけてかまいません。初心者のうちは細かい制約にこだわるよりも、コードを書くことのほうが上達への近道だからです。ただ、自分が書いたプログラムをほかの人が読んだり、自分もほかの人のコードを読む機会が増えたりするのであれば、少し事情が変わってきます。 多くの人がひとつのプログラムを作る場合、個人個人が自分の好き勝手にコードを書くと、スタイルがバラバラになってしまい、コードの品質を維持できなくなってしまいます。そのため、「このようにしましょう」というルールを設けて、それにしたがってコードを書きます。そのルールが「コーディング規約」と呼ばれているものです。 コーディング規約はル

    Pythonで学ぶ 基礎からのプログラミング入門(36) Pythonのコーディング規約「PEP8」
  • NVIDIA、スーパーコンピュータ向けGPU「Tesla P100」にPCIeカード版

    米NVIDIAはこのほど、Pascalアーキテクチャを採用したスーパーコンピュータ向けGPU「Tesla P100」のPCI Expressカード版を発表した。2016年第4四半期からCRAYやDELL、HP、IBM、Lenovoなどのベンダから搭載システムが提供されるという。 「Tesla P100」は、2016年4月の開発者向けイベント「GPU Technology Conference」(GTC)にて発表したGPUで、ディープラーニングとAI向けに開発された製品という。新アーキテクチャ「Pascal」をベースとし、製造プロセスは16nm FinFETで、メモリに第2世代HBM(High Bandwidth Memory)を採用する。 GTCで発表された「Tesla P100」はプロセッサ間のインターコネクトに独自の「NVLink」を使うことで、160GB/sの広帯域幅を実現する点が特

    NVIDIA、スーパーコンピュータ向けGPU「Tesla P100」にPCIeカード版
  • [Github Universe 2016]巨大なGitHubを支える3点分散システム「Spokes」とは?

    レポート [Github Universe 2016]巨大なGitHubを支える3点分散システム「Spokes」とは? 世界中で使われているGitHub。そのリポジトリの総数は3800万、Gistの総数は3600万を超えている。このような大規模システムはどのような仕組みで構築されているのだろうか。Githubが9月13日から15日にかけて開催した年次イベント「GitHub Universe 2016」で、同社のGitインフラストラクチャエンジニアリングマネージャであるPatrick Reynolds氏が発表した内容からその仕組みを解いてみる。 データ複製の仕組みを変更 GitHubは最近、インフラストラクチャの構造を変更したそうだ。これまで、ファイルサーバに配信されたデータはいわゆるRAIDのような技術を使って複製が行われていた。これをアプリケーションレベルでのレプリケーションとなる分散型

    [Github Universe 2016]巨大なGitHubを支える3点分散システム「Spokes」とは?
  • C言語1000行以下のエディタ「Kilo」を理解する(1) シンプルな内部構造

    以前、Salvatore Sanfilippo氏によって開発されたエディタ「Kilo」を取り上げたところ、高い関心を集めた。Kiloはclocカウントでソースコードが1000行以下で、しかもcursesなどのライブラリも使っていない。VT100の基的なエスケープシーケンスとlibcで提供されている機能だけを用いて実装されたエディタで、シンタックスハイライトにも対応している。C言語1000行程度でここまで実用的なエディタが開発できるというのは、教育向けの素材として興味深い。 連載では、Kiloのソースコードを読み、どのような仕組みでエディタが作られているかについて紹介する。C言語でソフトウェアを開発する際に利用する機能が網羅されており、学習素材としてなかなかのポテンシャルを持っている。エディタがどのように実装されているのかを知るためにも、一度は読んで見てほしいソースコードだ。 頭から読む

    C言語1000行以下のエディタ「Kilo」を理解する(1) シンプルな内部構造
  • おもしろくて役に立つ8つのbashプロンプト

    Make Tech Easier - Uncomplicating the complicated, making life easier Joshua Price氏がMake Tech Easierにおいて8 Useful and Interesting Bash Promptsのタイトルのもと、bashシェルにおけるさまざまなコマンドプロンプトの設定例を紹介している。使いやすいコマンドプロンプトはコマンドラインの使い方を変えると説明があり、同氏が調査した中でも、特によく使われていたり、おもしろいプロンプトとその設定例が紹介されている。紹介されているプロンプトは次のとおり。 間違ったコマンドを入力すると顔が変わるプロンプト もっともおもしろいプロンプトのひとつだが、使いやすくもあるプロンプト。コマンドの実行が成功したか失敗したかで、プロンプトに表示されるアスキーアートの顔を変更するという

  • 攻略! ツール・ド・プログラミング(52) Googleが開発した高速圧縮ライブラリ「Snappy」をJavaで使う

    「Snappy」はGoogle社が開発した高速圧縮/伸長(解凍)ライブラリである。もともとは「Zippy」という名称で知られていたものだが、BSD Licenseに基づいてオープンソース化され、誰でも利用できるようになった。ZippyはBigTableやMapReduceから内部的なRPC処理にいたるまで、Google社内のあらゆるプロジェクトで利用してきた実績を持つ。 Snappyの最大の特徴は、圧縮/伸張の実行速度である。シングルコアのIntel Core i7プロセッサにおけるベンチマークでは、圧縮で毎秒250MB以上、伸張で毎秒500MB以上の性能を実現しているという。一方で圧縮率はzlibやLZOといった主要なツールよりも劣る。圧縮率はプレーンテキストで1.5から1.7倍、HTMLで2から4倍、JPEGやPNGといった圧縮済みのファイルフォーマットでは1.0倍となっており、これは

    攻略! ツール・ド・プログラミング(52) Googleが開発した高速圧縮ライブラリ「Snappy」をJavaで使う
  • 最適化オプション込みのGCCとClangベンチマークの結果は?

    Phoronix Media is the largest Internet media company devoted to enriching the Linux hardware experience and catering its content to Linux gamers and computer enthusiasts. Phoronixは3月3日(米国時間)、「GCC vs. Clang Benchmark Comparison At Varying Optimization Levels」において、GCC 5.3.1とLLVM Clang 3.8のベンチマーク結果を公開した。これまで同様のベンチマーク結果は定期的に公開されているが、今回の結果には最適化オプションを指定した場合の結果も含めてGCCとLLVM Clangの比較結果が掲載されている。 最適化オプションとして

    最適化オプション込みのGCCとClangベンチマークの結果は?
  • Pythonで学ぶ 基礎からのプログラミング入門(33) マルチスレッド処理を理解しよう(後編)

    前回はマルチスレッドの概念の簡単な説明とともに、速度の測定方法とマルチスレッドの簡単な利用方法について学びました。今回はその発展として、継承によるマルチスレッド向けのクラスの作成やロックを使ったスレッド間の同期、マルチスレッド以外の並列化手法といった内容を扱います。 継承によるマルチスレッドの実現 前回はthredingモジュールのThreadクラスのコンストラクタにマルチスレッド化したい関数とその引数を渡すという形でマルチスレッドを実現しました。 このほかにもThreadクラス自体を継承することでマルチスレッドとして動作させるクラスを作成して使うこともできます。それほど複雑ではないので、まずはコードを見てみましょう。 import threading, time # Class definition class MyThread(threading.Thread): def __init

    Pythonで学ぶ 基礎からのプログラミング入門(33) マルチスレッド処理を理解しよう(後編)
  • Pythonで学ぶ 基礎からのプログラミング入門(32) マルチスレッド処理を理解しよう(前編) | マイナビニュース

    今回はマルチスレッドについて扱います。マルチスレッドは、簡単に言ってしまえば複数の処理を「並列」に進めることができるものです。マルチスレッドの反対がシングルスレッドであり、これは複数の処理を順番に進めていくものです。逆に言えば、ある処理が終わるまでは次の処理を実施することはできません。マルチスレッドおよびシングルスレッドの“スレッド”は「プログラムの実行単位」のことで、名前からわかるようにマルチスレッドはプログラムをマルチな実行単位で実行します。 今回の流れとしては、まず最初にプログラムの実行時間の測定手法について学びます。これを理解していないとマルチスレッドを使った高速化がどれほど効果的なものか理解しづらいためです。次にさまざまな処理にかかる遅延がどれほどのものかについて学びます。それらの基礎ができたうえで、シングルスレッドの問題点について、その次にマルチスレッドがどのようにその問題を克

    Pythonで学ぶ 基礎からのプログラミング入門(32) マルチスレッド処理を理解しよう(前編) | マイナビニュース
  • にわか管理者のためのLinux運用入門(2) 「うっかりミス」を回避するための基本方針

    責任回避に全力投球! 日々サーバの管理をしていれば、当然ながら操作を誤ることもある。ありがちなのは、うっかりデータを削除してしまうというミスだ。受注データや売上データ、顧客データといった重要な業務データを削除してしまった場合、個人の評価に影響があるだけでなく、会社の経営自体に大打撃を与えかねない。 予期できる危険は、全力で回避しよう。「データをうっかり削除してしまう」のはなぜなのかを考え、あらかじめ対策を立てておくのだ。ここでは、「そもそも、データを削除できてしまうのがいけない」と考えてみよう。たとえ操作を誤ったとしても、データを削除できないのであれば問題は発生しない。 「そんなことができるのか?」と思われるかもしれないが、それができるのだ。やり方はいろいろあるのだが、今回は「削除権限を持ったユーザーによる操作は、必要最小限にする」という方針で進めていこう。 管理者ユーザー「root」と一

    にわか管理者のためのLinux運用入門(2) 「うっかりミス」を回避するための基本方針
  • Pythonで学ぶ 基礎からのプログラミング入門(30) 例外処理について学ぼう(中編)

    前編では基的な例外処理の手法、および例外の種類について扱いました。中編では、 例外処理の場合分け どのような例外が発生しているかの確認 例外をわざと発生させるテクニック について解説していきます。 例外処理の場合分け 前回は、try/exceptについて学びました。簡単に復習すると、例外が発生する可能性のある箇所を「try」で囲み、例外が発生した場合の処理を「except」に書くのでした。 たとえば以下のプログラムを実行するとします。 print('1: outside of try/catch') try: print('2: inside of try scope') 5 / 0 print('3: inside of try scope') except Exception: print('4: inside of except(catch) scope') print('5: o

    Pythonで学ぶ 基礎からのプログラミング入門(30) 例外処理について学ぼう(中編)
  • XMLはもう不要!? Google製シリアライズツール「Protocol Buffer」 (1) 構造化データをバイト列に変換するための新技術 | マイナビニュース

    Protocol Bufferとは Protocol BufferはもともとGoogle社内で利用されていた技術/ツールだ。今月7日にApache Software License 2.0の下、オープンソースソフトウェアとして公開されたばかりで、稿執筆時点の最新バージョンは2.0のβ版。正式リリースが2008年8月に行われる予定だ。 Protocol Bufferは、一言で言うと、構造化データをバイト列に変換(シリアライズ)するソフトウェアである。プログラム言語中で用いられるデータ構造をファイルに保存する際や、RPC(Remote Procedure Call)でデータをやり取りする際などに用いられる。 同様の目的で用いられる技術としては、XMLやJavaのオブジェクトシリアライズなどが挙げられる。ただし、Protocol Bufferは、そうした類似技術と比較して、以下のような特徴を備

  • イマドキのIDE事情(60) Swing用Eclipseプラグインの決定版! Visual Swing for Eclipse

    EclipseでのGUIアプリ開発事情 Javaは標準でSwingというGUIアプリケーションのためのAPIが提供されている。しかし、Javaの標準的な統合開発環境であるEclipseにはSwing向けのGUIデザイナが搭載されておらず、サードパーティ製のプラグイン(連載第15回を参照)にもこれまではオープンソースのものは存在しなかった。これに対し、Eclipseと並ぶオープンソースのJava IDEであるNetBeansにはMatisseと呼ばれる強力なGUIデザイナが搭載されており、Swingアプリケーションの開発はEclipseの大きな弱点の1つとなっていた。 今回紹介するVisual Swing for EclipseはSwing向けのGUIデザイナを提供するオープンソースのEclipseプラグインだ。 Visual Swing for Eclipseのインストール Visual

  • Pythonで学ぶ 基礎からのプログラミング入門(15) Pythonをシェルスクリプトのように使ってみよう(前編)

    読者のみなさんは、「シェルスクリプト」をご存知ですか。簡単にいってしまうと、「“cd”や“ls”といったターミナルで利用するOSのコマンド」とそれを制御する文法に従って書かれたプログラムのことです。今回と次回は、Pythonでそれ相当のことを実行する方法について紹介します。 「シェル」とは シェルは以下の図のようにOS(Kernel)とユーザの間に存在するコマンドベースのインタフェースとなります。たとえば「cd」というコマンドは、ユーザがOSに対して「現在のディレクトリを変更して」と依頼し、OSがシェルを介してユーザの要求を受け取り応答を返すという流れで動きます。 シェルスクリプトは、ユーザからシェルへの要求をプログラムに沿って実行するものです。たとえばファイルのバックアップを定期的に実行しようと思った場合、 NFSでリモートのストレージをマウント ディレクトリA 配下を日付をつけて丸々コ

    Pythonで学ぶ 基礎からのプログラミング入門(15) Pythonをシェルスクリプトのように使ってみよう(前編)