タグ

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

  • 今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様

    はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし紹介していくことで、今のC++言語の姿を理解していただきます。 対象読者 かつてはC++をたしなんでいたという方 今からC++言語を始めるという方 モダンなプログラミング言語のパラダイムに興味のある方 必要な環境 記事のサンプルコードは、以下の環境で動作を確認しています。 macOS Sonoma/Windows 11 Xcode Command

    今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様
    sinsara
    sinsara 2024/05/24
  • 生のポインタは使わないで! Modern C++のメモリ管理

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

    生のポインタは使わないで! Modern C++のメモリ管理
    sinsara
    sinsara 2023/10/21
  • Gitの内部構造をよく理解して、うまく使おう【基本の仕組みを解説】

    対象読者 Gitをより深く理解したい方 Gitの自作に興味がある方 Gitの内部構造を学ぶ意義 Gitの使い方を知っている人でも、それぞれのサブコマンドが実際どういった挙動をしているか、ましてや内部構造がどうなっているかを学んだことがある人は少ないかもしれません。というのも、Gitが内部を知らなくとも十分使える優秀なツールになっているからだと思います。 しかし、Gitの内部実装を知ることで、コマンドの挙動を正確に理解できるだけでなく、Gitを使っていて何らかの問題が起きたときにも、自分で対処できるようになります。そうしたGitの地力を鍛えるために、内部構造の把握は重要な要素になってきます。 また、今回の内容を学べば、Gitの大枠を実装することもできてしまうので、興味がある方はぜひ挑戦してみてください。 Gitについての誤解 それでは、まずGitについて多くの人が誤解しているであろう点を挙げ

    Gitの内部構造をよく理解して、うまく使おう【基本の仕組みを解説】
    sinsara
    sinsara 2023/02/25
  • Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く

    昨今、開発者の中で人気が増しているプログラミング言語「Rust」。気になっている開発者は多いものの、業務での採用はまだこれからと考えている人も多いだろう。そんな中、ゆめみではRustに力を入れ、自社内外の案件でRustの活用を進めている。なぜ、ゆめみではRustの習熟を推奨するのか。その理由とともに、Rustの特徴、実際に使って見た感想、さらにはRustの今後の展望などについて、ゆめみでRustの推進に関わっているチャレンジCTO(最高技術責任者)の池口直希氏、エンジニア兼チャレンジ取締役のスミス 祐一郎 ルーク氏、サーバサイドエンジニアの舩戸隆氏に話を聞いた。 ゆめみでRust活用を牽引するエンジニア 2006年にグレイドン・ホアレ氏という個人プロジェクトとして開発されたプログラミング言語「Rust」。2009年にMozillaが開発に参入してプロジェクト化。その後、仕様変更を繰り返し、

    Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く
    sinsara
    sinsara 2022/09/29
  • 動かして学ぶ! Rustの言語仕様

    はじめに 連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。前回記事では、WebAssemblyに至るまでのWebフロントエンド高速化の歴史を紹介するとともに、RustWebAssemblyを実装する大まかな流れを説明しました。 記事では、WebAssemblyの実装で必要となるRust言語の基礎を説明していきます。 対象読者 話題のRust言語について学びたい方 動的なWebページにさらなる速度を求める方 WebAssemblyに興味があるが、Rustのハードルが高いと思っている方 必要な環境 記事のサンプルコードは、以下の環境で動作を確認しています。 Windows 10 64bitrustup 1.24.3 cargo 1.55.0 サンプルコードを実行するには

    動かして学ぶ! Rustの言語仕様
    sinsara
    sinsara 2021/11/09
  • 漆原氏が語る「一生エンジニア」でいる方法――理論と情熱で35歳定年説を論破する【デブサミ2019】

    「皆さん、コード書いてますか?」――ITエンジニアの祭典「Developers Summit 2019」は、そんな呼びかけから開幕した。拡大鏡をかけながらでも、コードを書き続ける生涯を目指す。そう語られたこのセッションは、「エンジニア35歳定年説」という「嘘」を論破するための、理論と情熱にあふれた内容であった。セッション内では科学的なエビデンスを論拠とする数々の方法論が示され、そこには「一生エンジニア」を実現するためのノウハウが詰まっている。それを目指すエンジニアの方はもちろん、若手エンジニアの意欲向上に悩むリーダーや、エンジニアの心理がわからない管理職、離職率に悩む人事担当など、エンジニアに関わる様々な職種の方々も、このセッションから課題解決のヒントをつかんでいただけるだろう。稿では、ベストスピーカー1位を受賞した、ウルシステムズ 漆原茂氏のセッションをお届けする。 大事なのは、「内発

    漆原氏が語る「一生エンジニア」でいる方法――理論と情熱で35歳定年説を論破する【デブサミ2019】
    sinsara
    sinsara 2019/04/18
  • 【C89】ニッチでエッジな技術本をゲットしよう! ~IT技術系同人誌の新刊ガイド(2015年冬版)

    コミケ89の基情報 公式サイトのコミックマーケット89の情報を参考にしています。 開催場所 東京ビッグサイト(東京国際展示場) 開催日 2015年12月29日(火)~31日(木) 10時~16時(サークルの出展時間) 技術同人誌が多くあるエリア ジャンルごとに開催日が異なっており、技術同人誌が多く販売されているのは、ジャンルコード240「同人ソフト」のエリアです。今回は3日目(12月31日)に配置されており、東4ホールの「シ54~89 ム~ロ」あたりになります。ここ以外にも配置されている場合があります。 記事で紹介するサークルは、3日目東地区のエ、シ、ホ、ム~モのブースにあります。 過去のコミケガイド コミケ88(2015年夏) ニッチでエッジな技術をゲットしよう! ~IT技術者向けコミケ 初心者ガイド(2015年夏版) コミケ87(2014年冬) ニッチでエッジな技術をゲット

    【C89】ニッチでエッジな技術本をゲットしよう! ~IT技術系同人誌の新刊ガイド(2015年冬版)
    sinsara
    sinsara 2015/12/24
  • Visual Studio 2015で進化するCordovaアプリ開発環境

    2015年4月、マイクロソフトBuildカンファレンスでVisual Studio 2015が発表されました。iOSやAndroidアプリ開発機能が強化され、Objective-CやC++を使ったネイティブ言語に対応することが、以前の記事でも取り上げられています。一方、HTML5などのWeb技術を用いたモバイルアプリ開発機能についても大幅に強化されています。今回は、そういったネイティブ言語「ではない」の技術の代表格であるHTML5を用いた開発について、Visual Studioがどのように対応しているのかを見ていきます。 Visual Studio 2015 HTML5はクロスプラットフォームの標準技術 HTMLはWebのための標準マークアップとして誕生し、HTML5ではその周辺の技術CSSJavaScript)も巻き込んで大幅な機能拡張が行われました。そのなかには「オフライン対応」や

    Visual Studio 2015で進化するCordovaアプリ開発環境
    sinsara
    sinsara 2015/09/04
  • ニッチでエッジな技術本をゲットしよう! ~IT技術系同人誌の新刊ガイド(2015年夏版)

    コミケ88の基情報 公式サイトのコミックマーケット88の情報を参考にしています。 開催場所 東京ビッグサイト(東京国際展示場) 開催日時 2015年8月14日(金)~16日(日) 10時~16時(サークルの出展時間) 技術同人誌が多くあるエリア ジャンルごとに開催日が異なっており、技術同人誌が多く販売されているのは、ジャンルコード240「同人ソフト」のエリアです。今回は3日目(8月16日)に配置されています。 記事で紹介するサークルは、3日目東地区の「A」、「O~Q」、「ポ」のエリアにあります。 コミケ87(2014年冬)でのIT技術系向けガイド ニッチでエッジな技術をゲットしよう! ~IT技術者向けコミケ 初心者ガイド(2014年冬版) コミケってどんなところ? 技術はどこで手に入るの?……という方はまずこちらをお読み下さい。 ニッチでエッジな技術をゲットしよう! 第2弾

    ニッチでエッジな技術本をゲットしよう! ~IT技術系同人誌の新刊ガイド(2015年夏版)
    sinsara
    sinsara 2015/08/05
  • 「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法

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

    「HTTP/2」がついに登場! 開発者が知っておきたい通信の仕組み・新機能・導入方法
    sinsara
    sinsara 2015/06/23
  • デブサミ2015、講演関連資料まとめ

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

    デブサミ2015、講演関連資料まとめ
    sinsara
    sinsara 2015/04/16
  • いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【前編】

    対象読者 JavaScriptフレームワーク・ライブラリの選定に悩んでいる方 格的にJavaScriptを触るのが初めてという方 jQueryでの大規模なフロントエンド開発に限界を感じている方 必要な環境 Node.jsがインストールされていることが推奨です。 React.jsとは何か React.jsは最近注目を浴びているFacebook製のライブラリで、MVCアーキテクチャでいうViewにあたる機能を提供します。 前提として、JavaScriptの世界でMVCのVといえば、紛れもなくDOM(Document Object Model)のことを指します。特に何も意識しないで作った場合、都合の良いDOMからデータを引っ張り出しては別のDOMを書き換えるといった、行き当たりばったりな作りになりがちです。そこで、MVCの考え方を導入することにより、データを画面とは独立した構造体として切り出し

    いま最も注目のライブラリ「React.js」でシングルページアプリケーションを作ってみよう! 【前編】
    sinsara
    sinsara 2015/02/25
  • Javaで業務アプリを開発するための環境構築手順(Windows/Mac対応)

    この連載は、Javaをいきなりやることになってしまった新卒の人や、Java以外の言語の使用経験しかない人など、Javaの初心者なのに業務アプリ(ビジネスで使われるアプリケーション)の開発で即戦力にならないといけない人達に向けての連載になります。標準のJavaでできることはもちろん、DB操作のためのSQLやよく使われるライブラリの使い方など、単なるJavaのみの紹介ではなく、Javaでの業務アプリの開発に必要とされる基礎知識全般について連載を通じて学んでいくことを目的としています。 はじめに 今回の記事では、Java(ジャバ)で業務アプリを開発するための開発環境の構築を行います。また、Javaのアプリケーションの開発では統合開発環境(IDE)を使って作業することがほとんどです。統合開発環境とはアプリケーションの開発をサポートする環境で、この連載では多くの現場で使われているEclipse(エク

    Javaで業務アプリを開発するための環境構築手順(Windows/Mac対応)
    sinsara
    sinsara 2014/06/13
  • HBaseをSQLで操作してみよう(前編)

    はじめに 連載では、ここまでにいくつかのHBaseのユースケースを紹介してきました。RDBとは設計のやり方が違うので、戸惑われた方もいらっしゃると思います。 今回は、HBaseをSQLで操作できるライブラリ「Phoenix」を紹介したいと思います。NoSQLのHBaseをSQLで操作するというと変に聞こえるかもしれませんが、HBaseをRDBのように扱えるのはメリットだと思います。ただし、Phoenixを使ったからといって、HBaseをまったく意識しなくて良いということではありません。 今回のテーマでは、HBase上でどう実現されているかについて着目していきたいと思います。まずは前編ということで、実際にPhoenixを動かしてみましょう。 対象読者 HBaseを使ってみたいけど、どう使ったらよいか分からない方 MySQLなどのRDB以外のデータベースを使ってみたい方 Phoenixとは

    HBaseをSQLで操作してみよう(前編)
    sinsara
    sinsara 2014/01/31
  • 「D3.js」を使ったデータビジュアライゼーション

    Webやスマートデバイス、センサーなどあらゆるものから情報を収集出来るようになり、世の中には膨大なデータが溢れかえっています。また、ビッグデータやデータサイエンティストといったキーワードに注目が集まり、データ活用への期待が高まっています。しかし、単純に収集したデータはそのままでは見づらく、そこから意味を汲み取ることは困難です。そこで、データの見せ方や伝え方が重要になってきます。 D3.jsとは D3.jsは、Mike Bostock(mbostock)が作成したデータ可視化用途で人気のJavaScriptライブラリで、データをDOMと結びつけ、データ駆動によりグラフを作成することができます。ソースコードはGithubで公開されており、人気を表すStarの数がGithubに公開されているリポジトリ全体で6番目に多いことからも、注目の高さが伺えます(2013/10現在)。ライセンスは修正BSD

    「D3.js」を使ったデータビジュアライゼーション
    sinsara
    sinsara 2013/12/27
  • Webサイト高速化に必要なHTTPの仕組みを理解する (1/4):CodeZine

    はじめに こんにちは、クラスメソッド株式会社でWebを担当している野中です。これから身につけるWebサイト高速化テクニック第2回目です。 第1回の「Webサイト高速化対策の現状」は読んでいただけましたか?「Webサイト高速化対策の現状」では高速化対策がなぜ必要なのかを紹介しているので、この回を読む前にぜひ読んでおいてください。 今回は、Webサイトの高速化に大きく関係するHTTPについて復習したいと思います。高速化対策と言ってもWebサイトが遅延する原因はさまざまです。 読み込むファイル数が多いことやサーバー側の処理に時間がかかっている、またはエンドユーザーが利用しているネットワークが原因かもしれません。 ところが原因を探っていくと、Webサイトが遅くなってしまう要因の多くにHTTPが関係しています。 実際の高速化手法も大事ですが、事前知識としてHTTPについて知っておきましょう。 対象読

    Webサイト高速化に必要なHTTPの仕組みを理解する (1/4):CodeZine
    sinsara
    sinsara 2013/03/30
  • Webサイト高速化対策の現状

    はじめに はじめまして、こんにちは。クラスメソッド株式会社でWebを担当している野中です。 この度、「これから身につけるWebサイト高速化テクニック」と題して記事を連載させていただくこととなりました。 連載ではWeb担当者やWebデザイナー、コーダーの方々に向けて高速化に関する手法や技術について調べ、身につけたテクニックを細かな解説を加えて紹介していきます。中には少し難しいテクニックも含まれますが、できる限り分かりやすく、すぐに実践できるよう紹介していきたいと思います。とても長い連載ですが、よろしくお願いいたします。 なお、連載はクラスメソッド開発ブログで連載されている「身につけておきたいWebサイト高速化テクニック」の増補改訂版です。 連載の流れ 連載はできるだけ多くの方に興味を持っていただけるように、最初に高速化対策の全体像と必要な知識を紹介します。その後、具体的な高速化対策と

    sinsara
    sinsara 2013/03/12
  • Fluentdで始めるリアルタイムでのログ有効活用

    はじめに Fluentdは、ログを収集し格納するためのログ収集基盤ソフトウェアです。Fluentdにインプットされた、すべてのログをJSONに変換し、アウトプットします。インプットとアウトプットはモジュール化されており、モジュールを追加することでインプット元とアウトプット先を追加できるようになっています。 Fluentdは急速に知名度を高め、多くのWebサービス会社で実際に使用されるようになりました。従来のログが抱えていた問題も、Fluentdが適切な解決策となっていると認知され、かつ簡単に導入・スモールスタートできるミドルウェアであったことが大きかったと思います。 稿では、Fluentdの簡単な仕組みと導入方法、シンプルな動作事例について紹介します。 対象読者 システム管理者 データサイエンティスト 必要な環境 UNIX系OS Ruby 1.9 ログを出力する理由 システム運用を始める

    Fluentdで始めるリアルタイムでのログ有効活用
    sinsara
    sinsara 2013/02/14
  • スマートフォン向けWebサイトの表示速度 高速化手法

    対象読者 スマートフォンWebサービス開発者 特に、フロントエンド周りの開発に従事する方 スマートフォン向けWebサイト高速化のテクニック スマートフォンはOS/デバイスの進化が激しく、要求される最適化の内容も半年で別物になることがあります。そのため最適化に際しては、案件ごとの状況や目的、デバイス/OSのシェアに応じて、まずターゲット端末を選定し、問題の検出を行います。 この記事では「iPhone 4+iOS 5」を想定して話を進めます。実際に「iPhone 4+iOS 5」はよく現場でも最も動作が重い組み合わせとしてターゲット端末に挙がります。これはiPhone 4がRetinaディスプレイを採用したことで960×460ピクセルの高解像度を備えながら、CPUなどのデバイス性能が潤沢とはいえず、ボトルネックが生まれやすいためです。iOS 4ではなくiOS 5をターゲット端末として扱うのは、

    スマートフォン向けWebサイトの表示速度 高速化手法
    sinsara
    sinsara 2012/11/09
  • Microsoft、「.doc」「.xls」などのOfficeバイナリファイル仕様を公開

    Microsoftは15日、Office 97以降で使われているバイナリファイル形式の文書仕様を公開した。「Microsoft Open Specification Promise」(OSP)プログラムの下で使用できる。 公開されたのは拡張子が「.doc」「.xls」「.ppt」となるOffice製品のバイナリファイル仕様。これらのバイナリファイルはOffice 97より採用され、Office 2003まで基的な保存形式となっている。最新版のOffice 2007からはデフォルト保存形式が「Office Open XML」(.docx、.xlsx、.pptx)となっているが、バイナリ形式での保存もできるようになっている。 MicrosoftのWebサイトでは「Word 97-2007バイナリファイルフォーマット」(.doc)、「Excel 97-2007バイナリファイルフォーマット」(

    Microsoft、「.doc」「.xls」などのOfficeバイナリファイル仕様を公開
    sinsara
    sinsara 2012/03/18