ブックマーク / codezine.jp (16)

  • 生のポインタは使わないで! Modern C++のメモリ管理

    連載では、Modern C++と称されるC++について、Modern C++らしい言語仕様をピックアップし紹介していきます。第3回は、スマートポインタについて紹介します。高度なメモリ管理には生のポインタの使いこなしが必須という古い常識はもはや通用しません。メモリを効率よく、しかも安全に使うことを実現しているスマートポインタについて理解を深めます。 はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし

    生のポインタは使わないで! Modern C++のメモリ管理
  • VSCodeにChatGPTを! 導入方法や使い方を理解して次世代の開発環境を整えよう

    はじめに Microsoftの提供するVisual Studio Code(VSCode)は、2015年の最初のリリースから、今では開発用エディタの定番の座を占めるまでになりました。これには、無償で使えることも大きいですが、何よりエディタとしての使いやすさ、そしてさまざまな拡張機能によっていくらでも使い勝手を向上させ、利用の領域を拡げられることも大きいでしょう。連載では、このVSCodeにフォーカスし、基的な使い方から拡張機能の活用、そして格的な開発現場での利用を想定した高度な機能までを紹介していくことで、読者がVSCodeマスターになるお手伝いをします。 対象読者 テキストエディタメインで開発してきた方 Visual Studioより軽い環境が欲しいと考えている方 Visual Sudio Codeをもっと使いこなしたい方 必要な環境 記事の内容は、以下の環境で動作を確認していま

    VSCodeにChatGPTを! 導入方法や使い方を理解して次世代の開発環境を整えよう
  • 知って使えるJVMの概要とヒープダンプ取得から解析まで

    連載では、Javaプログラムの実行を担うJava仮想マシン(JVM)について、その情報を取得するさまざまなツールの利用を通じて理解を深めます。JVMやそのツールに関する知識はアプリケーションが正常に動作しているときではなく、障害など異常が起こった際に大いに活躍します。それだけでなく、Javaプログラムを動作させる仕組みを知ることはソフトウェアを開発するエンジニアの皆さんの知的な部分を刺激するとともに、シニアレベルのJavaエンジニアへと進む第一歩となります。連載第1回はJVMの概要を解説し、模擬的なトラブルシュート体験としてヒープダンプを取得して解析します。 はじめに 今後もアプリケーションをJavaで開発、運用していくことを前提にすると、そうした業務に携わる方は次のようなことを学び続けるでしょう。 Javaの半年ごとのバージョンアップに追随して新機能などを学ぶ アーキテクチャなどでの新

    知って使えるJVMの概要とヒープダンプ取得から解析まで
  • 機械学習モデルトレーニングのGPUアクセラレーションを可能にする「TensorFlow-DirectML」が一般提供に

    TensorFlow-DirectMLをインストールすることで、既存のモデルトレーニングスクリプトとのシームレスな連携が可能になる。 同社はこれまで、既存のTensorFlowチュートリアル、オンライン学習コース、TensorFlowベンチマークセット、AIベンチマーク、その他の一般的に使用されるニューラルネットワークから、さまざまなモデルスクリプトを集めており、これらのモデルを元に学生から専門家まで役立つ、幅広いシナリオを提供する。 また、ユーザーからのフィードバックに基づき、WindowsおよびWSL内でのTensorFlow-DirectMLのエクスペリエンスを改善し、畳み込みやバッチ正規化をはじめとする特定の演算子の最適化、GPUスケジューリングとメモリ管理の微調整など、TensorFlowがDirectMLを最大限活用できるようにするとともに、AMD、Intel、NVIDIAとの

    機械学習モデルトレーニングのGPUアクセラレーションを可能にする「TensorFlow-DirectML」が一般提供に
  • Flutterでのレイアウトの組み合わせ方を学ぼう~実際の画面例を使用

    サンプルアプリケーションの概要 今回作成するアプリは図1のようなもので、こちらを作成するサンプルを通じてレイアウトの紹介をしていきます。 このような一覧表示とその詳細という画面構成は、スマホアプリでよくあるのではないかと思います。実際には細かい部分の装飾をより行うわけですが、構成の基はよく使われているはずです。 図1:サンプルアプリケーションの画面 一覧画面の作成 一覧画面を作成するためにレイアウト構成を決め、その構成に合わせてコードを作成していきます。 一覧画面のレイアウト構成 一覧画面での各レイアウト構成を記したものが図2です。一覧として表示される部品は、今回はあくまでレイアウトのサンプルということで固定で作成しています。しかし、多くの場合ではデータをネットワーク上からロードし表示するようなことになる想定です。 従って、実際には、表示するアイテム数が何個になるのかはプログラム作成時に

    Flutterでのレイアウトの組み合わせ方を学ぼう~実際の画面例を使用
  • BizTech、「AI開発会社/AIサービスカオスマップ 2021」を公開 AI開発会社やAIサービスを紹介

    AI活用サービスの選定、導入・活用を支援するコンシェルジュサービス「AI Market」を運営するBizTechは、AI開発会社やAIサービスをカテゴリ別にまとめた「AI開発会社/AIサービス カオスマップ2021」及び「カテゴリ別レポート」を5月13日に公開した。 同カオスマップでは、AI Marketが各社Webサイトやプレスリリース等の公開情報を元に調査を行い、独自の視点でAI開発会社およびAIサービスを以下のカテゴリに分け、掲載するもの。 受託等サービス系 AI開発会社(総合(画像認識・音声認識・自然言語処理・予測等)・エッジAI・医療/創薬系) アノテーション/データセット(総合・プラットフォーム) AI人材関連サービス(育成/研修・派遣/紹介/活用) ツール系 AI開発/活用プラットフォーム(総合・医療用) AI-OCR AIチャットボット レコメンド/Web接客 法務・知財関

    BizTech、「AI開発会社/AIサービスカオスマップ 2021」を公開 AI開発会社やAIサービスを紹介
    forest1040
    forest1040 2021/05/14
    ideinが無いやり直し
  • C#でSPAが実現できる、Blazor WebAssemblyのはじめかた

    ASP.NET Coreは、ASP.NET 4.xをベースにしていますが、Webフォームには対応していません。また、開発言語にVisual Basicが利用できなくなりました。 一方、ASP.NET Coreになって、新たなライブラリ、フレームワークが提供されています。Razor Pagesは、ASP.NET Core 2.0から利用できる機能で、MVVMパターンのWebアプリケーションを実現できるフレームワークです。 MVVMパターン Razor Pagesでは、Viewにあたる部分はRazor構文によるcshtmlファイル(HTMLを拡張して、C#コードなどを含めることができる)に、ViewModelはそのcshtmlから生成されるC#のクラスになっています。このあたりの構造は、その後にリリースされた、Blazorフレームワークでも同様となっています。 Blazorは、通常JavaSc

    C#でSPAが実現できる、Blazor WebAssemblyのはじめかた
  • Visual Studio Code向けC++拡張機能、一般提供開始

    今回、バージョン1.0として一般提供を開始したC++拡張機能を利用することで、IntelliSenseスマートコード補完、デバッグ、リファクタリング、コードナビゲーションといったC++開発者向けのさまざまな機能を、Visual Studio Code上で利用できるようになる。 これらの機能は、さまざまなプラットフォーム、アーキテクチャ、コンパイラで利用可能なので、クロスコンパイルやリモート開発にも役立つ。 編集機能としては、IntelliSenseによるコード補完、パラメーター情報、クイック情報、メンバーリスト、すべての参照を検索、定義/宣言への移動、ピーク定義/宣言に対応したコードナビゲーション、シンボルの名前変更、コードのフォーマット、セマンティックのカラー化、Doxygenコメントドキュメントに対応している。 デバッガでは、ブレークポイントの設定、監視変数の設定、プログラムのステップ

    Visual Studio Code向けC++拡張機能、一般提供開始
  • レバテックフリーランス、2019年度のプログラミング言語別案件ランキングを発表

    同調査は、2018年4月1日~2019年3月31日と2019年4月1日〜2020年3月31日の、「レバテックフリーランス」のフリーランス向け新規案件データをもとに行われている。 2019年度のプログラミング言語別の新規案件は、2018年度に続いてJavaPHPが1位・2位となり、全体の約45%を占めた。C#/C#.NETは3位にランクインしており、上位5言語がシェアの70%近くを占めている。 求人側では人気の高いPythonは、フリーランス市場ではシェア4%に留まっており、対象データの機密性と情報セキュリティの観点から、Pythonエンジニアは業務委託よりも、正社員としての採用で多く募集されていることから、8位という結果となった。 また、経験の浅い若手人材の需要が一定数ある求人市場とは異なり、即戦力が求められるフリーランス市場では、案件数が限られていることも要因の1つといえる。 C#/C

    レバテックフリーランス、2019年度のプログラミング言語別案件ランキングを発表
  • Linuxカーネル開発者を目指す人のための無料オンラインコースが提供開始

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Linuxカーネル開発者を目指す人のための無料オンラインコースが提供開始
  • ScalaのWebアプリケーションフレームワーク「Play Framework」入門 ~(1)環境構築とスタートアップアプリの作成

    はじめに 最近の関数型言語ブームの中で、高い生産性と高い品質を誇る言語であると注目を浴びているのが「Scala」です。今回は、このScalaのWebアプリケーションフレームワークである「Play Framework」(以下、Play2)について紹介します。 「Scala」はTwitterやLinkedInなどのサービスで利用されており、2013年は日で初めてScalaに特化した大規模なカンファレンスが開かれたり、さまざまな情報媒体で取り上げられたりと、ここ1、2年で急激に人気が高まっているのではないでしょうか。 Play2はJVM上で動作し、これまでのJavaで開発するエンタープライズアプリケーションで多く採用されたサーブレットやJSPのアーキテクチャを採用せず、独自のMVCモデルのアーキテクチャを持っており、スケールアウトしやすい構造になっています。 連載では、開発者にもフレンドリー

  • 「Selenium2」のインストール手順と初めの一歩

    対象読者と環境 Webブラウザを使ったテストを自動化するOSSのツール「Selenium2(WebDriver)」のインストール手順と基的な使い方をご紹介します。想定読者は、テスト自動化に興味のあるプログラマーです。 SeleniumにはSelenium IDEというブラウザ操作を記録できるツールがあり、SeleneseというSelenium1に対応したコマンドをHTML形式で保存します。これによってノンコーディングでテストスクリプトを作成することができるのですが、WebDriverやプログラミングによる効率化の恩恵を受けることができません。記事はSelenium IDEを活用しながらWebDriver使ったテストスクリプトをJava(JUnit)形式で書いていくための手引きとなっています。 今回筆者が使用した環境は以下のとおりです。 OS:Windows 7 Java:1.7 Fir

  • さよなら手作業・人海戦術! HTML5時代のツール「Selenium2」でWebシステムのテストを自動化

    シリーズは、WebブラウザをUIとして利用した業務システムやアプリケーション(以下、Webシステム、Webアプリケーション)のテストをテーマとして、Webブラウザを使ったテストを自動化するOSSのツール「Selenium2」を紹介します。業務システム開発の現場で適用してきたノウハウを元に、これまでSelenium2について知らなかった人から以前使った経験がある人まで、より実践的な「使える」内容を盛り込んでいきたいと思います。 シリーズのスコープと対象読者 シリーズはWebシステム・Webアプリケーションのテストの中でも「Webブラウザを操作して実施するテスト」をスコープにしています。開発工程としては、1モジュールとして単体テストに位置付けられる場合もあれば、複数のモジュールやシステムと連携して結合テストや総合テストに位置付けられる場合もあるでしょう。これらのテストのことを、シリーズ

  • OpenGLを使った地図描画エンジンの作り方(1)

    初めに 従来のYahoo!地図アプリは、社内ではラスタ形式地図アプリと呼んでおり、サーバ上で生成された地図タイル画像(ラスタデータ)を端末側で貼り合わせることで、地図を表示していました。 しかし、画像でやり取りを行うために、次のようなデメリットもありました。それは、通信の帯域を多く占有したり、地図の回転をする場合に地名などの文字も回転してしまい、読みづらくなったりする点です。 そこで、今回フルリニューアルしたAndroidYahoo!地図アプリでは、サーバからベクトルデータを受信して、端末側で地図を描画するベクトル形式地図アプリに移行しました。 ベクトル形式地図アプリに移行したAndroidYahoo!地図アプリは、従来版と比べ、以下のような点がメリットとして挙げられます。 通信の軽量化 回転拡大縮小のスムーズ化 3Dなど新しい地図表現の追加 ベクトル形式地図アプリ ラスタ形式のデータ

  • 「Visual Studio 2013」ダウンロード版の提供開始、Expressエディションも

    同日リリースされた最新OS「Windows 8.1」を含む、マイクロソフトのプラットフォーム全般を対象としたソフトウェア開発をサポートする。クラウドやスマートデバイスを前提とするモダンなアプリケーションを、迅速かつ協業しやすいライフサイクルで提供する機能が特に強化された。 例えば、Windows 8.1アプリ開発、コードの編集画面で履歴や関連情報に素早くアクセスできる「CodeLens」、UIのレスポンス状況やバッテリー消費の分析、各ASP.NETコンポーネントフレームワークに対するプロジェクトの共通化、Gitによるバージョン管理のサポート、といった新機能が追加されている。 Visual Studio 2013のExpressエディションも提供が開始されており、製品版に比べて機能が制限されているものの、誰でも無償で利用できる(30日間以上の利用には無償のアカウント登録が必要)。 主な新機能

    「Visual Studio 2013」ダウンロード版の提供開始、Expressエディションも
    forest1040
    forest1040 2013/10/18
    visual studio 2013
  • オープンソースのワークフローエンジン「Activiti」入門

    1. オープンソースのワークフローエンジン「Activiti」とは 「Activiti」は、Apache2.0ライセンスのもとで配布されているオープンソースの“ワークフロー・エンジン”です。 BPMN2.0という規格に準拠していることから、“BPMN2.0エンジン”とも呼ばれています。 Activitiの開発は、オープンソースの「Enterprise Content Management(企業向けコンテンツ管理システム)」で有名な「Alfresco Software」によって行われています。 Activitiは、元JBoss jBPMプロジェクトリーダーであり、開発者でもあったTom Baeyens氏らによって開発されました。 よって、jBPMのVer.3およびVer.4のコンセプトを継承しており、JavaベースのWebアプリケーションへ組み込みやすいエンジンになっています。 これまでの

    オープンソースのワークフローエンジン「Activiti」入門
  • 1