Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
状態遷移表からひな型コードを生成する この状態遷移表からコードを起こすわけですが、状態遷移の実装については『StateパターンでCSVを読む』を書きました。デザイン・パターンの一つ:Stateによる実装です。今回の実装はC、継承も仮想関数も使えないという利き腕を封じられた条件なので戦術を大きく変えにゃならんです。 状態遷移の実装は要するに「(1)現状態 と (2)受理したイベント の組」に対応する「(3)アクション と (4)遷移先(新たな状態)」を引き当てることに他なりません。ならば上記(1)~(4)の並びをレコードとし、そのレコード列(=状態遷移表)から「(1)現状態 と (2)受理したイベント の組」に一致するレコードを探し出して「(3)アクション を実行して (4)新たな状態 に遷移」すればいい。 状態遷移表からひな型コードの生成には使い慣れた「T4-template」を用います。
Notes: [NEW] Implemented after the CTP3 table was published. [1] NSDMIs and initializer lists were previously listed as Yes, but have been downgraded to Partial. After users encountered silent bad codegen when using braced-init-lists in NSDMIs and mem-initializer-lists, the compiler team blocked these broken scenarios with a compiler error C2797. This VCBlog post published in August has more inf
Alcantarea - A Visual Studio Extension for Runtime C++ Code Editing Alcantarea is an add-in for Visual Studio that allow you to apply C++ code changes to running programs. This functionality makes development iteration cycle drastically faster, and makes C++ programming more fun. Visual Studio has similar functionality called Edit and Continue. Alcantarea has some advantages and disadvantages. Not
はじめに 美しく素晴らしいプログラミング言語が数多く存在する中、未だC++を使ってる業界は少なくなく、おそらく多くの人がそのコンパイル&リンクの遅さにイライラしていると思います。 ただでさえ遅いのに、C++様は僕達をあざ笑うかのように、リリースに近づけば近づくほどソースコード量の増大によってコンパイル&リンク時間も増えていきます。 プロジェクト末期は、溢れかえったタスクをどうにか消化するために少しでもコーディングに時間を割く必要があるのに・・・くそっorz というわけでここではそんな不幸なプログラマを減らすためにも、僕の知る限りのコンパイル&リンク時間を減らす方法を書いてみようかと思います。 まぁ高性能PCや、インクレディビルドの購入が可能であればこんな苦労をしなくても済むかも知れませんが。。。 そもそも、コンパイル&リンクが遅くなると何がイケないの? 単純に実装→確認に時間がかかると、実
マイクロソフトは、C++でいかにしてMicrosoft Officeのクロスプラットフォームを実現したのか マイクロソフトはOfficeソフトウェアのマルチプラットフォーム展開を進め、Windows版、Macintosh版だけでなくWebから使えるOffice Onlineに加え、iPad版、Android版も公開を始めました。 Officeのような大規模なアプリケーションのマルチプラットフォームへの移植は、どのようにして行われているのか。9月に米国で開催されたC++言語のイベント「CppCon 2014」で行われた同社の講演「How Microsoft Uses C++ to Deliver Office (and More) Across iOS, Android, Windows, and Mac, Part I 」がYouTubeで公開されています。 Officeのコア部分はC++
Xilinxは11月17日(現地時間)、FPGAを利用してデータセンターアプリケーションの1W当たりの性能を最大25倍向上するOpenCL、C、C++用開発環境「SDAccel」を発表した。 「SDAccel」は、ターゲットとなるFPGAのアーキテクチャに合わせて最適化できるコンパイラを実装しており、CPUまたはGPUと比べて最大25倍まで1W当たりの性能を向上させ、他社のFPGAソリューションに比べて、3倍の性能およびリソース効率を実現する。また、多くのプログラマが活用している基盤コンパイラ技術を利用しており、コンピュータによる検索、画像認識、機械学習、トランスコーディング、ストレージ圧縮、暗号化などの幅広いデータセンターアプリケーションにおいて、高性能のアクセラレータや、最適化されたメモリ、データフロー、ループパイプラインを生成するための新規または既存のOpenCL、C、C++コードを
新サイトに移転しました Siv3D の新しい Web サイトは siv3d.github.io です。
「fplutil 1.0」は、build_all_android.py、buildutil、libfplutil、android_ndk_perf.pyを収録している。 build_all_android.pyは、コマンドラインからAndroid NDKでのC/C++によるネイティブAndroidアプリのビルド、インストール、実行を可能にするスクリプト。自動ビルドだけでなく、開発時にコンパイル~実行をくり返し行う場合にも役立つ。 buildutilは、C/C++によるAndroid/Linux向けアプリの設定、ビルド、アーカイブ機能を搭載する、Pythonモジュールを利用したスイート。自動ビルドに対応した統合環境で、Android Development Toolkitに含まれる従来ツールを使用している。 libfplutilは、Androidで「Hello World」のようなmain(
米Facebookは11月5日、C++向けのHTTPライブラリ「Proxygen」を発表した。サーバーやクライアント向けコードが含まれており、HTTPを利用したC++プログラムのやりとりを改善し、HTTPを利用するアプリケーションの構築を容易にするという。 Proxygenは、HTTPライブラリとシンプルなWebサーバーを組み合わせたソフトウェアフレームワークで、Facebook社内においてHTTPサーバーやプロキシ、クライアントなどを構築する際に利用されている。Proxygenの公開の目的として、高性能なHTTPサービスの開発と実装を支援するとしている。サーバーとクライアントコードを含み、既存のアプリケーションと容易に統合できる高性能のHTTPフレームワークを目指しているという。 Proxygenは2011年にスタートしたプロジェクトで、当初はカスタマイズ性の高い高性能なHTTPリバース
#ifndef UTILS_H_ #define UTILS_H_ #include <chrono> #include <cstdio> #include <iostream> // durationミリ秒のビジーウェイト void busy_wait(int duration) { using namespace std::chrono; auto start = high_resolution_clock::now(); auto stop = start; do { stop = high_resolution_clock::now(); } while ( duration_cast<milliseconds>(stop - start) < milliseconds(duration)); } // めっちゃ遅いかけ算とたし算 template<typename T> inli
「われわれの課題は、どうやって飛行中のジャンボジェットを組み立て直すかだ」 「Microsoft Office」に取り組むMicrosoftのディスティングイッシュドエンジニアIgor Zaika氏は、同社のOfficeチームが直面する難問をこう説明した。Microsoftは、どのように10億人のOfficeユーザーのサポートを継続し、混乱させないようにしながら、Officeの核となるインフラを再構築して「Windows」以外のOSでも動くようにしたのだろうか。 Zaika氏は最近、Facebookの@Scaleカンファレンスで、Officeのクロスプラットフォームアーキテクチャ戦略について語った(TwitterユーザーWalking Cat氏の、同氏のプレゼンテーションへのリンクに感謝する)。その50分間のセッションで、Zaika氏はMicrosoftがどのようにC++を使ってOffic
チューリッヒ工科大学(ETH)の天文学研究所が、PythonコードをC++コードに変換してコンパイルするツール「HOPE」を公開した。天文学に関連する機能のみに特化したツールで、PythonとC++を組み合わせることでプログラミングの容易さを保ちつつ天文物理学の計算に要求される性能を実現するとしている。 HOPEは、チューリッヒ工科大の天文学研究所内のソフトウェアラボで開発されたコンパイラ。Pythonで実装されており、PythonコードをC++に変換およびコンパイルして実行できる。実行時にコンパイルを行うJIT(Just In Time)型のコンパイラで、関数単位でのコンパイルを行う「method-at-a-time」型のアーキテクチャを持つ。ライセンスはGPLv3。 ほかのPython実行環境と異なる点として、HOPEは天体物理学で必要とされる計算に特化している点が挙げられている。Py
この記事は Competitive Programming Advent Calendar Div2013 の 12 月 23 日の記事として書かれました. C++11 のすすめ C++03 は普段から使っているけども C++11 はまだ触ったことがない人向けの入門記事です.最近は多くのプログラミングコンテストで C++11 が使えるようになりつつあります.C++11 で大幅に C++ が書きやすくなっているので,ぜひこの記事を読んで C++11 を使い始めてください!この記事では C++11 に追加された多数の新機能のうちコンテストに役立ちそう(もしくは多くの人が使いそうな)機能を紹介します. 手元での実行の仕方 GCC もしくは clang を利用していれば -std=c++0x というオプションを追加すれば C++11 の機能が有効になります. $ g++ -std=c++0x -o
C++11の標準ライブラリ<thread>を使った並列化 大量のデータを分割し、複数のスレッドに分担させて処理時間を稼ぐことを考えます。スレッドに関わるAPIは、WindowsならCreateThreadやWaitForNltipleObjectなど、Linuxならpthread_xxxxと、OSによって異なるのですが、C++11では標準ライブラリ<thread>がOSごとの差異を吸収してくれているのが嬉しいところ。大量のデータを詰め込んだvectorを2つのスレッドでソートしてみます。 #include <iostream> // cout, endl #include <thread> // thread #include <algorithm> // inplace_merge, etc. #include <chrono> // clock, time_point, duratio
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く