タグ

ブックマーク / xtech.nikkei.com (119)

  • VSCodeの拡張機能が役立つ、ごちゃごちゃのPythonコードを整理する必殺技

    人工知能AI)の開発に重要な役割を果たすのが「データ」だ。注目のプログラミング言語「Python」と開発環境「Visual Studio Code(VSCode)」を使ってデータの加工や分析を行う方法を解説する。 【応用編】コードを整理する データ分析の作業でJupyterを使うと、一部のコードを何度も修正して試したり、途中にコードを追加して実行したりできるので、とても便利です。一方、あとで改めて実行し直そうとしたときに、無駄なコードが残ったままで、実行に時間がかかってしまうこともあります。 この問題を助けてくれる、VSCodeのJupyter用拡張機能である「Gather」を紹介します。 拡張機能「Gather」 Gatherは、ボタン1つでノートブックのセルの実行結果を解析します。そして、その実行結果を出すのに必要なコードだけを集めて新しいノートブックにコピーします。つまり、散らかっ

    VSCodeの拡張機能が役立つ、ごちゃごちゃのPythonコードを整理する必殺技
    clavier
    clavier 2022/03/19
  • 習得すればメリット大!Linuxカーネルをビルドできるようになろう

    システム開発や運用には欠かせない存在であるサーバーOS、Linux。「Ubuntu」などのLinuxディストリビューションが提供されており、手軽に利用できます。ただソースコードから実行形式へと自前で変換できるようになれば、特定の機能をカスタマイズできる、最新版をいち早く使えるなど多くのメリットがあります。何より、Linuxカーネルの仕組みを理解する上で大変役に立つでしょう。 特集では、Linuxの中核である「Linuxカーネル」のソースコードを実際に動く状態に変換する「ビルド」の方法を4回にわたって紹介します。難しそうに感じるかもしれませんが、コツさえ覚えてしまえばカーネルのビルドは決して難しくありません。 まず、カーネルやビルドの基礎知識から押さえていきましょう。Linuxカーネルは、以下のようなソースコードの形で開発・配布されています注1。

    習得すればメリット大!Linuxカーネルをビルドできるようになろう
    clavier
    clavier 2020/11/19
  • トヨタ系やNVIDIAが注目、数学的に欠陥ゼロのソフト開発

    車載ソフトの欠陥(バグ)をゼロにする開発手法が注目を集めている。自動運転を背景に、ソフトの安全性やセキュリティーをこれまで以上に高める必要性が出てきたためだ。トヨタ系で電動パワーステアリング(EPS)大手のジェイテクトが量産に導入しようとしているほか、自動運転向けの車載SoC(System on Chip)を手掛ける米NVIDIA(エヌビディア)も同様の手法を検討している。 ジェイテクトやエヌビディアが検討しているのは、ソフトに欠陥がないことを数学的に証明する「定理証明(形式手法の一種)」と呼ぶものだ。自動運転やステアバイワイヤ(SBW)の実用化に伴い、車載ソフトの安全要求は急激に高まっている。これまではシステムの主機能に故障が発生した場合、安全機構によってシステムを停止すれば済んでいた。これに対し、自動運転やSBWではシステムを停止するとむしろ危険なため、安全機構によって最低限の機能(バ

    トヨタ系やNVIDIAが注目、数学的に欠陥ゼロのソフト開発
    clavier
    clavier 2020/09/19
  • 自分のコードを嫌いにならない、そのためにやるべきこと

    「異能」ともいえる際立った能力や実績を持ち、まわりから一目置かれるエンジニアを1カ月に一人ずつ取り上げ、インタビューを掲載する。今月取り上げるのは、テスト駆動開発(TDD)の日での第一人者として知られる和田卓人氏。JavaScriptのテストフレームワーク「power-assert」の作者でもある。最終回である今回は、power-assertの開発やテストに対する考え方などを聞いた。 (前回から続く) 自社製品を開発しようとワークフローエディターを自作して得たJavaScriptのスキルセットは、ぼくの大きな財産になりました。ワークフローエディターはかなり複雑なソフトウエアなので、テストコードなしでは開発は困難です。そこでJavaScriptのテストについてもいろいろ調べてみました。しかし、JavaScriptのテストの仕組みは当時はまだ全然発達しておらず、ほぼ手探り状態でした。 201

    自分のコードを嫌いにならない、そのためにやるべきこと
  • nullチェックの煩雑さを解決、Java SE 8で導入されたjava.util.Optionalクラス

    変数に値が代入されているかどうかを調べるためのイディオムとしてnullチェックがあります。 nullチェックがよく使用されるのが、メソッドの返り値や引数です。例えば、条件に合致した要素を探すsearchメソッドを考えてみましょう。ここでは、searchメソッドの返り値の型がResultクラスだとします(リスト1)。 リスト1●nullチェックの例 Result result = search(t -> t.startsWith("a")); if (result == null) { // 結果がなかった場合の処理 } else { // 結果に応じた通常の処理 } もし、条件に合致する要素がなければsearchメソッドはnullを返します。しかし、nullをそのまま扱ってしまうと、NullPointerException例外が発生してしまいます。 そこで、それを防ぐためにif文で変数の値

  • 第18回 HTML5で家計簿アプリを作る 設計と基本機能の実装

    前回までは、日報アプリケーションを題材に解説をしました。 特に「入力系」のアプリケーション開発の際に役立つ フォーム要素について解説するとともに、 実装に役立つツールを紹介してきました。 第9回 HTML5で日報アプリを作る 実装編[1] 画面の構造を定義する 第10回 HTML5で日報アプリを作る 実装編[2] 画面のレイアウトを定義する 第11回 HTML5で日報アプリを作る 実装編[3] 操作や処理を定義する 第12回 HTML5で日報アプリを作る 解説編[1] HTML5の入力補助部品を使う 第13回 HTML5で日報アプリを作る 解説編[2] レスポンシブWebデザインBootstrapを使う 第14回 HTML5で日報アプリを作る 解説編[3] 非同期処理とCSS Animationを使う 第15回 HTML5で日報アプリを作る ツール編[1] 開発者ツールで生産性を向上する

    第18回 HTML5で家計簿アプリを作る 設計と基本機能の実装
  • 失恋編 第5回 例外処理を覚えて彼女からのメッセージを復号する

    僕の携帯電話に,彼女の名前が光っている。少し体温が上昇したことを感じながら,彼女からのメールを開いた。そこには想像した通り,意味不明な数字が並んでいた。普通のメールではなくてガッカリした半面,何より彼女からメールが来たことがうれしかった。僕はすぐにでもこれを解いて彼女の言葉を知りたい衝動に駆られた。 しかし,焦って物事を進めると大抵はうまく行かない。いつものようにRubyについて思いをはせながら冷静になろう。今回は,Rubyの例外処理について考えてみよう。 例外処理はbeginとrescueを利用する そもそも例外処理とは何なのだろうか。例外は,プログラム実行中に発生したエラーを処理する機能のことだ。多くの言語が例外処理機能を備えているので,ロバスト(堅牢)なコードを書くために,ぜひとも有効に使いたいものである。 そこで今回はまず,例外処理の基を見ていこう。リスト1のコードを見てほしい。

    失恋編 第5回 例外処理を覚えて彼女からのメッセージを復号する
  • 専門家が明かすAWSのコスト削減策(1)

    AWSを安く使うにはコツがある。オンプレミス環境と同じように考えていては、コストが高くなる一方だ。コスト削減に効果がある九つのポイントを専門家が解説する。 狙うべきは九つのポイント サーバー乱立には要注意 Amazon Web Services(AWS)は、実際に利用した分だけ料金が発生する従量課金制のクラウドサービスである。サービスメニューや機能も多く、それらを理解してうまく使いこなさないと、コストが大きく膨らみかねない。 実際、安易に仮想サーバー(EC2インスタンス)を立て、オンプレミス環境と同じように使うケースが多い。このような使い方では、コストは高くつく一方だ。また、毎月の利用料金がどのくらい変動しているのかを把握せずに、知らぬ間にコストが膨らんでいたというケースもある。 第7回から第9回では、AWSのサービスを最大限活用しながら、安価に利用するためのテクニックを紹介する。インスタ

    専門家が明かすAWSのコスト削減策(1)
  • [チュートリアル]Amazon Machine Learningの使い方

    記事は、Amazon Machine Learning(Amazon ML)の特徴と、仕組みを理解する上で必要となる機械学習の知識を説明した「Amazon Machine Learningで何ができるか」を補完するものだ。お読みでない方は、まずこちらからご覧いただきたい。 ここではAmazon MLのサンプルを用いながら、学習用データのインポートから学習モデルの構築、予測結果の出力までの流れを追いかける。 ●Amazon MLの仕組み 前の記事で説明した通り、Amazon MLでは機械学習の作業の流れが整理されており、順に行うことで簡単にモデルや予測APIを構築できる。Amazon MLにおける機械学習は、基的には以下の流れに従って進める。 各作業の成果は「エンティティ」と呼ばれるAWS上のオブジェクトとして管理される。各エンティティの詳細は表のとおりである。 この章では、各作業が具体

    [チュートリアル]Amazon Machine Learningの使い方
  • 手軽にHTML5/JavaScript開発を始めるための環境構築法

    HTML5とJavaScript、スタイルシートを使ってフロントエンド開発を行うにあたって、その開発環境を整える必要があります。とはいえ、クライアントサイドのJavaScript実行環境として、Webブラウザーは既にありますので、セットアップする必要はほとんどありません。今回はその方法をいくつかの種類別に紹介します。 まず、開発に必要なものを確認しましょう。 Webブラウザー Windowsであれば標準のInternet Explorer(IE)、OS XであればSafariを使って開発できます。より便利な開発環境を求める場合はGoogle ChromeやFirefoxをお薦めします。 node.js サーバーサイド(今回は個人のコンピュータを想定しています)上で動作するJavaScriptエンジンです。フロントエンドを開発するだけであれば不要ですが、HTTPサーバーを構築したり、ファイル

    手軽にHTML5/JavaScript開発を始めるための環境構築法
  • [3]ソニー銀行、NTTドコモ、HISが明かす、AWSのここが良かった悪かった

    アマゾン データ サービス ジャパンが2015年6月2、3日に東京都内で開催したイベント「AWS Summit Tokyo 2015」で、「ユーザーがユーザーに聞く! AWS導入者が語るココダケの話」と題するパネルディスカッションが実施された(写真1)。Amazon Web Services(AWS)を導入したユーザー企業同士が、格利用を通じて感じた利点や、導入前には想定していなかった問題について議論を交わした。 写真1●「AWS Summit Tokyo 2015」で実施されたパネルディスカッション「ユーザーがユーザーに聞く! AWS導入者が語るココダケの話」の様子 パネリストとして登壇したのは、ソニー銀行の福嶋達也システム企画部長、NTTドコモ イノベーション統括部 企業連携担当 担当課長 博士(学術)の森谷優貴氏、エイチ・アイ・エス(HIS) 社情報システム部 基盤システムグル

    [3]ソニー銀行、NTTドコモ、HISが明かす、AWSのここが良かった悪かった
  • 記者は対ハッキング演習に参加した、そして砕け散った

    年の瀬も押し詰まった2014年12月某日、記者は目の前に置かれたノートPCの前で途方に暮れていた。画面に映っているのは自分が管理を任されているWebサイト。明らかに表示や挙動がおかしい部分があり、不正アクセスと改ざんを受けている。すぐに対策に動かねばならないが、具体的にどこから手を付ければいいのか、何をどう調べていけばいいのか分からず体が動かない……。 これは当日実際に記者が体験したことだが、不正アクセスおよび改ざんを受けたのは、インターネット上で正式にサービスを提供している物のWebサイトではない。仮想化ソフトを利用して作った、仮想Webサーバー上で稼働する演習用Webサイトである。 そう、記者はこの日、Webサイトがハッキング被害を受けたとき、どのようにその兆候や痕跡を見つけ、しかるべき対処をするべきかを実践形式で学ぶセキュリティ演習に参加していたのだ(写真1)。開催したのは大手セキ

    記者は対ハッキング演習に参加した、そして砕け散った
  • プロセスとジョブの管理

    Linuxを使いこなしたいけれど,使い慣れたWindowsとは操作方法が違うので思うように操作できない。この壁を取り払うのがコラムの目的です。Linuxやその上で動くソフトウエアを実際に使うために役立つ知識や操作方法を説明します。 今回は,プロセス管理やジョブ管理について紹介します。 Linuxでは,複数のユーザーが複数のアプリケーションを同時に使用できます。例えば,あるユーザーは,Webブラウザでインターネットを閲覧しながら,テキスト・エディタで文書を編集することができます。また,その最中に,別のユーザーが同じシステムにログインして,メールを送信するといったことも可能です。このようにLinuxシステムでは通常,複数のアプリケーションが同時に動作しています。 そこで今回は,複数のアプリケーションが動作している状況などを管理するプロセスやジョブの管理について解説します。 プロセス管理をマス

    プロセスとジョブの管理
  • 冗長化とか自分で試してみると超楽しいじゃないですか!

    様々なインフラ技術者に、どうやって技術を学んできたかを尋ねるこのシリーズ。今回は、アプリケーションからネットワークまで幅広い技術知識を持つエンジニア、新里 祐教氏の意見を聞く。新里氏は連載の第3回で登場した企業、GMOインターネットに勤務している。新里氏は以前の会社ではインフラを主に担当し、GMOではアプリケーション技術を中心に幅広い知識を使って業務を遂行している。新里氏に、これまでの学びの軌跡を聞いた。 新里さんの業務内容について教えていただけますか。 特定のプロジェクトを担当するのではなく、独立遊軍的な動きをする業務を行っています。例えば、他社から売り込みで持ち込まれた新しいテクノロジーを自社のサービスに組み込むかどうかを検討したりします。そのため「社長室付き」という所属になっています。

    冗長化とか自分で試してみると超楽しいじゃないですか!
  • VLAN、使ってますか?

    企業ネットワークに関して、構築や運用、トラブルなどの事例を取材する機会がよくあります。取材先の企業は、中小規模~そこそこ大きい規模、といったところが多いのですが、その企業のネットワークを担当している社内SEの方は、たいがい一人とか数名だったりします。 その取材時に、社内ネットワークをVLANで区切ってセグメント分けをしているかどうかを尋ねるようにしています。というのも、後述するように、私がネットワークの勉強を始めた頃、VLANはネットワークの中心に位置する技術だと思っていたためです。 VLANとは、ネットワークをイーサネットレベルで区切ってセグメント化する技術。仮想的に社内LANを複数のエリアに区切るために使われたりします(図)。

    VLAN、使ってますか?
  • 軽量Linuxの新顔「CoreOS」を体験

    サーバー向け軽量OS「CoreOS」正式版がこの7月にデビューした。CoreOSは、アプリケーションをOSごと簡単に初期導入できる今話題のOS仮想化ソフト「Docker Engine」に特化した専用OS。メモリーが1Gバイト程度のマシンでも十分試せる軽量さが売りの“クラウドOS”だ。Windows XP世代の中古PCであっても、その可能性を簡単に体感できる。実際にCoreOSのインストールから初期設定までを試してみた。 CoreOSは、OS仮想化ソフトの「Docker Engine」に特化したOS。Docker EngineはOSを仮想化して1台のマシンで複数のOSを同時に実行するためのツール群だ。アプリケーションとOSを合わせた実行環境(コンテナー)をイメージファイル化する機能を備え、アプリケーションの迅速かつ大規模な展開を可能にしている。開発元の米Docker社は、配布のためのクラウド

    軽量Linuxの新顔「CoreOS」を体験
  • 第1回 カーネルやinitを刷新

    3年8カ月ぶりのメジャーバージョンの新版となる「Red Hat Enteprise Linux 7」(RHEL 7)が米国では6月10日、国内では7月10日に発表された。リリースに際し、開発・提供元の米Red Hat社は、この新版が「エンタープライズOSを再定義したもの」(Redefining the Enterprise Operating System)とのメッセージを発信している。 RHEL 7もOSの中核としてLinuxカーネルを採用しているという点では、従来通りに「Linuxディストリビューション」であり、この点では連続性を維持している。しかし、誕生から20年を超えたLinux歴史において、「エンタープライズOSを再定義した」といえるほど大きな変更が、カーネルとユーザースペースに大別されるLinuxの処理のいずれにも加えられている。まずは、その“大きな変更”について説明する。

    第1回 カーネルやinitを刷新
  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
  • [1]日本人のSE/プロマネが日本語を学び直すべき理由

    筆者の業はプロマネ(プロジェクトマネジャ)ですが、ここ数年は業をそっちのけにして、ソフトウエア開発に関わるSE(システムズエンジニア)とプロマネを対象に、文章作法の研修やセミナーを実施してきました。これまで研修で接した技術者は6000人、セミナーで接した人は4000人に及びます。 延べ1万人に教えた経験から分かったのは、ソフトウエア開発に関わるSEとプロマネの文章力、すなわち言葉の力が訓練されていないということです。訓練には教材が必要です。そこでSEとプロマネが文章を書くうえで必要となる事柄を「SEとプロマネを極める 仕事が早くなる文章作法」(発行:日経BP社)にまとめました。その中でも特に基的な事項、別の言い方をすれば、SE/プロマネは知っていて当然であろう文章作法を、連載で紹介しましょう。 SE/プロマネの仕事の大半は「文章」の作成 残念なことに「SEやプロマネのための文章作法

    [1]日本人のSE/プロマネが日本語を学び直すべき理由
  • 説明に困らないソフトウエアテスト技法

    開発者の方々は、開発技術をたくさん学ばねばなりません。その上テスト技法も身に付けるのは大変です。開発と品質管理は分業し、それぞれに専門性を高めるのが合理的です。ただ、それぞれが何をしているのか分からなくてはうまく連携できません。互いに少しの知識を持ち合わせているだけで、双方の仕事量を減らす効果があったり、効率が上がったりという効果が期待できます。連載では、開発者の方々に向けて、テスト技法の一つである「直交表」を使用した組み合わせテスト技法を中心に解説します。どのようなテストをしたのかを明確に「説明できる」ようになります。

    説明に困らないソフトウエアテスト技法