タグ

ブックマーク / atmarkit.itmedia.co.jp (43)

  • 無料で読める、東大/京大の「Python教科書」電子書籍

    稿は、2021年5月26日に公開した記事を、2023年11月13日の最新情報に合わせて改訂したものです。東大と京大のどちらも2023年版が公開されています。 プログラミング言語Pythonを習得したい場合、まずは教科書型のコンテンツなどで一通りの基礎知識を学ぶ必要があるだろう。そういった目的に合うコンテンツは、書籍を含めてさまざまなものがある。稿ではその中でも、東京大学もしくは京都大学の授業で使われており信頼性が高い電子書籍、しかも無料で入手可能なものを紹介する。 東大/京大の「Python教科書」電子書籍 東京大学『Pythonプログラミング入門』

    無料で読める、東大/京大の「Python教科書」電子書籍
  • Webの仕組みとWebサーバの構造

    格的なWebサイトを立ち上げるなら、インターネットの基幹技術およびWebサーバの動作や仕組みを理解しておく必要がある。そこで、名前解決やURLの処理方法からWebサーバの仮想ディレクトリ、MIMEまで、ここで基礎的な知識を再確認しておこう。 第1回でApacheの特徴について紹介したところ、思いのほか多くの方に見ていただいたと聞き、Apacheへの注目度の高さを再認識している。来ならば、ここでインストール方法や設定方法、開発手法などを紹介するところなのだが、それは少しの間お待ちいただきたく思う。そうした話よりも先に、それらの知識の基礎となる部分を再確認しておきたいからだ。 上級者にとっては、既知の内容となるかもしれないが、今回はご容赦いただきたい。 Webサーバの基的な動作 前回の内容の繰り返しとなるが、Webサーバの基的な動作は、大きく分けて2種類しか存在しない。Webブラウザか

    Webの仕組みとWebサーバの構造
  • ルータの役割とIPネットワークの仕組み

    ルータはネットワーク構築に欠かせない機器だ。いま話題のブロードバンドルータで、ルータとIPネットワークの基的な仕組みを理解しよう。 ADSLやCATVユーザーの伸びに比例して現在人気急上昇中の「ブロードバンドルータ」だが、果たしてその仕組みや役割について、どれだけ知っているだろうか? いったい、ブロードバンドルータと一般に「ルータ」と呼ばれる機器とはどこが違うのか? また、ADSLやCATV環境にブロードバンドルータを導入すると、どんないいことがあるのか? そして、タイトルにもある、ネットワークの「ルーティング」とは何だろう? え? よく分からないって? いやいや、ご心配なく。この連載は、そんなあなたのためにこそ始めるのだから。これから全3回にわたり、ブロードバンドルータとルーティングの秘密を解説していこう。 “ブロードバンドルータ”って何だろう? 「ブロードバンドルータ」とは、そもそも

    ルータの役割とIPネットワークの仕組み
  • ブロードバンドルータの内と外

    前回までに解説した、基的なルーティングの動作は理解できただろうか。今回はさらに一歩進めて、一般的なブロードバンドルータに搭載されているルーティング技術について見てみよう。 ブロードバンドルータの内側と外側~LANとWAN ブロードバンドルータには、「LAN側」「WAN側」の2つのポートがそれぞれ用意されている。WAN側はADSLモデムやCATVモデムなど、外部のネットワークと接続するためのポートだ。LAN側は、ハブ(コラム参照)として構成され複数ポートの場合もあるが、家庭内のPCなどの機器を接続するためのポートだ。 通常のルータであれば、単に同じポートが複数並ぶだけであり、ブロードバンドルータのように内部と外部で区別されることはない。 ブロードバンドルータでは、このように外部と内部とを切り分け、内部から外部へのアクセスは可能だが、外部から内部へのルーティングは行えないようにしているのが普

    ブロードバンドルータの内と外
  • AIとは何か、人工知能学会会長が語った常識と誤解

    人工知能AI)がブームになっているが、これまでのブームとどう違うのか。AIは、どのような発展段階にあるのか。人間の仕事を奪う「敵」なのか。人工知能学会会長である山田誠二氏の、こうした疑問に答えるような講演を要約してお届けする。 人工知能AI)がブームになっているが、これまでとどう異なるのか。人工知能は、どのような発展段階にあるのか。人間の仕事を奪う「敵」なのか。こうした疑問に答えるような講演を、人工知能学会会長の山田誠二氏が、2016年11月1日に開催したイベント「SAS Analytics Next 2016」で行った。これを要約してお届けする。山田氏は国立情報学研究所教授、総合研究大学院大学複合科学研究科情報学専攻教授、東京工業大学情報理工学院情報工学系特定教授を務めている。 なお、以下は山田氏の講演を要約・再構成したものであり、文責は筆者にある。 「強いAI」と「弱いAI」 何を

    AIとは何か、人工知能学会会長が語った常識と誤解
    ikosin
    ikosin 2016/11/18
  • ボランティアWi-Fiネットワーク構築集団「CONBU」の正体に迫る

    ボランティアWi-Fiネットワーク構築集団「CONBU」の正体に迫る:ものになるモノ、ならないモノ(70)(1/4 ページ) 連載目次 「Wi-Fiネットワーク構築」のプロフェッショナル集団 筆者を取り囲む6人の男性陣。ネットワークエンジニアのプロフェッショナル集団「CONBU(コンブ)」のコアメンバー6人だ。CONBUは主にネット系の大規模なカンファレンスや勉強会などのイベント会場において、会場ネットワークを構築し、インターネット接続を提供している。 「プロフェッショナル集団」と言い切ってしまうと誤解を招くかもしれない。正確にはCONBUは、「Wi-Fiネットワーク構築のボランティア集団」だ。ただし、ボランティアとはいえ、その活動内容や現場での様子は、そこに報酬が発生しないというだけで、プロの仕事師以外の何者でもない。それゆえ冒頭で「プロフェッショナル集団」という言い方をさせてもらった。

    ボランティアWi-Fiネットワーク構築集団「CONBU」の正体に迫る
    ikosin
    ikosin 2016/09/01
  • 初心者のためのLT作成講座――まずは構成を練る

    ライトニングトークをすると、これまで得られなかった気付きやノウハウを得られる。コミュニティとLTをこよなく愛するエンジニアによる「LT」解説 LTをして、コミュニティライフを楽しもう! ライトニング・トーク(以下:LT)をご存じですか? LTとは「5分間きっかりで行うプレゼン」です。IT系のカンファレンスや勉強会に参加したことがある人なら、一度は見たことがあるのではないでしょうか。 連載では、LTの事例紹介を通じて、「LTをするといろいろいいことがあるよ!」ということをエンジニアの皆さんにお伝えしたいと思います。LTをすると、いろいろな気付きやノウハウを得られます。 ●連載の目的 LTおよびプレゼンテーションへの理解を高め コミュニケーション能力の向上を目指し コミュニティライフをより楽しむ 今回は、2010年9月30日のDevLOVEイベント「Energized Work !」のLT

    初心者のためのLT作成講座――まずは構成を練る
  • 開発者が知っておくべきJavaと仮想マシンの歴史

    Javaの黎明(れいめい)期、多くの人々にJavaが知られ、広まった理由の1つは、WebブラウザにJava VMが組み込まれたことにあるでしょう。その当時のWebブラウザ開発のエキサイティングな様子は、雑誌『Wired』の古い記事「The Java Saga」で読むことができます。 Webブラウザ上で動作するJavaアプレットの勢いも借りて、各OSベンダが米サン・マイクロシステムズからライセンス提供を受け、各OSプラットフォーム用のJava環境が続々とリリースされます。 その一方、米マイクロソフトのWebブラウザ「Internet Explorer」(以下、IE)にJava VMが組み込まれたことは、歓迎とともに混乱を招きました。米マイクロソフトが提供したWindows 95/NT用のJava VM((MSJVM))が持つ「J/Direct」機能は高性能ながら、Win32 APIを直接呼び

    開発者が知っておくべきJavaと仮想マシンの歴史
  • なぜTwitterは低遅延のままスケールできたのか 秒間120万つぶやきを処理、Twitterシステムの“今” − @IT

    ユーザー同士のつながりを元に時系列に140文字のメッセージを20個ほど表示する――。Twitterのサービスは、文字にしてしまうと実にシンプルだが、背後には非常に大きな技術的チャレンジが横たわっている。つぶやき数は月間10億件を突破、Twitterを流れるメッセージ数は秒間120万にも達し、ユーザー同士のつながりを表すソーシャル・グラフですらメモリに載る量を超えている。途方もないスケールのデータをつないでいるにも関わらず、0.1秒以下でWebページの表示を完了させなければならない。そのために各データストレージは1~5ms程度で応答しなければならない。 Twitterのリスト機能の実装でプロジェクトリーダーを務めたこともあるNick Kallen氏が来日し、2010年4月19日から2日間の予定で開催中の「QCon Tokyo 2010」で基調講演を行った。「Data Architecture

  • PhantomJSとJasmineで振る舞い駆動開発なJavaScriptテスト

    PhantomJSとJasmineで振る舞い駆動開発なJavaScriptテスト:フレームワークで実践! JavaScriptテスト入門(2)(1/3 ページ) しっかりとJavaScriptをテストするために、今注目のJavaScript用のテストフレームワークをいくつか紹介し、その概要から実践的な使い方まで解説する連載 前回は、JavaScriptテストの基、今回からフレーワムークを紹介 前回の「JavaScriptテストの基礎知識と使えるフレームワーク6選」では、JavaScriptのテストを取り巻く環境や、JavaScriptのテストに使用できるフレームワークの紹介を行いました。今回からは、前回の記事で紹介されたフレームワークを使用して実際にJavaScriptのテスト環境を構築し、テストを行うまでの流れを解説します。 今回は「PhantomJS」と「Jasmine」を取り上げま

    PhantomJSとJasmineで振る舞い駆動開発なJavaScriptテスト
  • 国語力とプログラミング力の関係 解説編

    2009年1月、Cyan設計者 林拓人氏とLispの伝道師 竹内郁雄氏との対談「Cyanを設計した高校生、5カ月で5つの言語を習得」が大きな反響を呼んだ。その原因の1つは、竹内氏が発したひと言「わたしの持論ですが、国語ができる(=日語できちんとした文章が書ける)人じゃないとプログラムは書けない」だ。これについてネットでは同意する意見が多かったものの、記事中で根拠が明らかにされていなかったため議論が紛糾した。そこで編集部は竹内氏に詰め寄り、「わたしの持論」について詳しく説明してもらうべく寄稿をお願いした。国語力とプログラミング力には当に相関関係があるのだろうか。 事のいきさつ~Cyan設計者 林くんとの対談で発してしまったひと言が思わぬ反響を呼ぶ Cyan言語で経済産業大臣賞を受けた開成高校の林拓人くんと対談(「Cyanを設計した高校生、5カ月で5つの言語を習得」)しているうちに、つい調

    国語力とプログラミング力の関係 解説編
  • VLANの基本的な仕組みを攻略する

    VLANの目的とは? VLANとは“Virtual LAN”の意味だが、実際には「仮想サブネット」といい換えた方がイメージしやすいかもしれない。一般にVLANという場合、スイッチの内部で複数のネットワークに分割する機能のことを指す。すでに定着した技術だが、無線LANの利用拡大やVoIPのような新しいネットワーク・アプリケーションの普及、セキュリティに対する関心の高まりなどの理由により、最近あらためて注目されている。ここでは、VLANの基的な知識を再確認し、その実情を把握する一助としたい。 VLANの使用目的は、「ネットワークを任意に分割する」ことである。「EthernetはCSMA/CD方式のネットワークなので、ノードが増えると急速にパフォーマンスが劣化する」というのは、技術的にはいまでも同じだが、利用の現実からするともう過去の話になったといっても過言ではないだろう。シェアードハブの利用

    VLANの基本的な仕組みを攻略する
  • 第36回 理想と現実のギャップは早めに軌道修正を――GitHubでコードをアピールして“はてな”に転職した若きエンジニア

    「間違えた!」と思っても、3年は我慢すべきか? 就職活動や転職活動を経て、目指す会社に入社してみたものの、思い描いていたイメージと「何かが違う」――そんな経験を持つ人も少なくないだろう。 世の中、理想と現実が細部まで一致することはまずあり得ない。多くの人が、細かなギャップを埋めながら現実と向き合っているはずだ。 しかしそのギャップが埋めきれないほど大きかった場合には、将来のためにも早い段階で大きな方向修正を行うべきかもしれない。たとえ転職してでも。 今回お話を伺った芝端紹公さんは、理想とするエンジニア像を曲げることなく追い求め、理想の仕事に巡り合えたエンジニアの一人である。 芝端さんの行動力は、理想と現実とのギャップに悩む多くのエンジニアにとっても参考になるのではないだろうか。 【転職者プロフィール】 芝端紹公さん(30歳) 株式会社はてな アプリケーションエンジニア(2012年4月入社)

    第36回 理想と現実のギャップは早めに軌道修正を――GitHubでコードをアピールして“はてな”に転職した若きエンジニア
    ikosin
    ikosin 2015/07/04
    “Scalaを使ったはてなブックマークのフルスクラッチ”
  • 意外と知らないバージョン表記・数字の豆知識

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) ちまたにあふれるバージョン表記 少し前に「Web 2.0」「○○2.0」という表記が流行したのを覚えていますでしょうか。よく見かける広告のコピーにも、最近では「バージョンアップ」という言葉が普通に使われています。バージョンや、バージョン表記は、ソフトウェアの世界だけでなく、ごくごく一般化したように思えます。しかし実際には、どういう意味か分からないのが、バージョン表記です。 アプリケーションソフトウェアの開発は、さまざまな状態/段階を経て完成します。その段階/状態と、リリース後の状態/段階を示したのが、バージョン表記です。 例えば、数字以外でも、以下のような表記を見かけたことはありません

    意外と知らないバージョン表記・数字の豆知識
  • ビルドツールGradleのインストールと使い方、Jenkins/Git連携

    ビルドツールGradleのインストールと使い方、Jenkins/Git連携:小山博史のJavaを楽しむ(18)(1/5 ページ) オープンソースのビルドツール「Gradle」の主な特長やLinux/Windowsでの環境構築方法、さまざまな使い方に加え、CI/バージョン管理との連携方法を解説します。 「これから」のための柔軟なビルドツール、Gradleの主な特長4つ Javaではアプリケーションをビルドしたり、Webアプリをサーブレットコンテナへデプロイしたりするときにビルドツールを使うことがよくあります。ビルドツールを使うと、開発中に変更があった部分に影響する範囲だけコンパイルをしたり、アプリのパッケージを作成するときに必要な比較的単純なファイルコピーの作業をミスなく実行したりすることが、簡単にできるようになります。 今回紹介をするGradleはオープンソースのビルドツールの1つです。J

    ビルドツールGradleのインストールと使い方、Jenkins/Git連携
  • Redmine連携でチケットをチャットに通知&開発を楽しくするHubotスクリプト6選

    「サンプルアプリケーションに対して修正を行う」シーンを例に、Hubotと各ツールがどう連携するかを解説しながら進めていきます。 サンプルアプリケーションは「Spark」という、Rubyの軽量Webフレームワークである「Sinatra」を参考にして作られたJavaベースのフレームワークを使い、「Hello World!」と表示するだけの簡単なWebアプリケーションを作成しました。サンプルアプリケーションの中身については、次回解説します。 タスク管理は「Redmine」で行います。サンプルアプリケーションに機能を追加する前に、Redmineにチケットを作成します。チケットの作成や更新情報もチャットに流したいので、先に設定しておきましょう。 バージョン管理はGitHubそっくりなUIと機能を提供している「GitBucket」(Scala製)で管理し、ビルドやデプロイは「Jenkins」で行います

    Redmine連携でチケットをチャットに通知&開発を楽しくするHubotスクリプト6選
    ikosin
    ikosin 2014/12/06
  • OpenStackが今求められる理由とは何か? エンジニアにとってなぜ重要なのか?

    OpenStackが今求められる理由とは何か? エンジニアにとってなぜ重要なのか?:OpenStack超入門(1)(1/3 ページ) スピーディなビジネス展開が収益向上の鍵となっている今、システム整備にも一層のスピードと柔軟性が求められている。こうした中、なぜOpenStackが企業の注目を集めているのか? 今あらためてOpenStackのエキスパートに聞く。 今強く求められている「ビジネスとITの連携」 経営環境変化が激しい近年、「ビジネスとITの連携」の重要性がますます高まっている。これを受けて、開発、運用の両面でさまざまなムーブメントが起こっている。その一つの象徴といえるのが、開発分野におけるアジャイルや、アジャイルを核とするDevOpsだろう。これまでビジネス部門と開発・運用部門は、部門の壁、契約の壁などによって分断されてきた。しかし変化の速い市場に最適なサービスを迅速に立ち上げ、

    OpenStackが今求められる理由とは何か? エンジニアにとってなぜ重要なのか?
  • netstatコマンドを使いこなす @IT:Windows TIPS -- Tips:

    TCP/IP関連のトラブルシューティングを行う場合に、必ずといってよいほど使うコマンドとして「netstat」コマンドがある(実行ファイル名はnetstat.exe)。このコマンドは、主にTCPの通信状態を調べるためには必須であり、ぜひともその使い方をマスターしておきたい。 netstatの基――通信中のTCPコネクションの調査 netstatコマンドの最も基的な使い方は、通信中のTCPコネクション(TCP接続)の状態を表示させることである。このコマンドを実行すると、ローカルPCのTCP/IPプロトコルスタック上において、現在アクティブになっているTCP通信の状態を表示できる。 ●「TCP」とは? 「コネクション」とは? TCPとは、2つのアプリケーション間で、信頼性のある通信路(コネクション)を開設し、お互いにデータなどをやりとりするための機能である。通信するアプリケーションは、同一

    netstatコマンドを使いこなす @IT:Windows TIPS -- Tips:
  • 第4回 不正アプリ対策として知っておきたいAndroidアプリへの「許可」設定

    連載目次 前回は、Androidアプリケーションを入手する「アプリ・ストア(マーケット)」と、アプリケーションのインストール時のセキュリティについて説明した。今回はその続きとして、アプリケーションのインストール時に表示される各警告メッセージ(アクセス許可を求めるメッセージ)について、細かく説明しておく。 インストール時に表示される警告メッセージの意味 Android端末にアプリケーションをインストールする際に表示される「警告メッセージ」は、そのアプリケーションが必要としている端末の各種機能の利用や各種リソースへのアクセス要求の一覧である。 アプリケーションのインストール時に表示される警告メッセージ これはAndroid OS 4.2のGoogle Playストアの例。アプリケーションが必要とする機能やリソースへのアクセス許可要求の一覧が表示される。 (1)1つ1つの許可要求はおおまかに分類

    第4回 不正アプリ対策として知っておきたいAndroidアプリへの「許可」設定
  • Struts後時代のJava EE/Javaモダン開発はどうあるべきか~JJUG CCC 2014 Springまとめリポート(前編) - @IT

    Javaユーザーグループは2014年5月18日、「JJUG Cross Community Conference 2014 Spring」を開催した。「JJUG Cross Community Conference」(以下、JJUG CCC)は毎年春と秋に開催されるカンファレンス。初心者向けからエキスパート向けまで、Java/JVMに少しでも関連すればいいという広いテーマでさまざまな講演が行われている。 今年は4トラック同時進行、合計25ものセッション、ハンズオンセミナーという規模で大いににぎわった。 そして最新仕様であるJava EE 7に準拠しているのは2014年5月現在「GlassFish」「WildFly」のみで、主流は多種多様なアプリケーションサーバーが対応しているJava EE 6とのことだ(楽天GlassFishを活用していることでも有名)。 エンタープライズ分野でJa

    Struts後時代のJava EE/Javaモダン開発はどうあるべきか~JJUG CCC 2014 Springまとめリポート(前編) - @IT