Boost.Optional Must Go - 野良C++erの雑記帳 Boost.Optional Must Go (2) - 野良C++erの雑記帳 最近、何回かに分けて、 Boost.Optional について、(細かい)不満を日記に書いてきました。 これは別に Boost.Optional が嫌いだから不満を書いた訳ではなく、むしろ その逆、 Boost.Optional が便利な分、逆に不満点が目立つので書いていたわけですが、 よく考えたら、 Boost.Optional の便利さを、纏まった記事で書いていないなー、 と、そう思い至ったので、この辺で Boost.Optional を徹底的に推奨する記事でも書いてみようかな、 というわけで、さんざん既出なネタばかりですが、折角なので書いてみることにしましたよ。 冒頭に挙げた以外で参考になるような記事は、この辺でしょうか: C++
Apacheのaccess_logはすぐ大きくなりますよね。 ログファイルのサイズが大きくなれば、ログ解析のときにも困るし、運用に支障が出ます。 というわけで、今回はApacheのaccess_logのログローテートテクニックについて、具体例を交えながら解説してみようと思います。 ローテートの方法として以下3つの手法を考えてみます。 cronとシェルスクリプトの合わせ技で頑張る Apacheのに搭載されている機能を使う logrotate.dに頼る 具体的な手順・解説は以下のとおり。 その1:cronとシェルスクリプトの合わせ技 以下のようなスクリプトを作成し、cronに仕込んでみます。 #!/bin/sh HIDUKE='date +%y%m%d' cd /usr/local/apache2/logs mv access_log access_log.$HIDUKE ../bin/apa
原文 昨年末に一気に購入したプログラミング書籍一覧です。それまでずっと自分のほしい物リストにあったものでした。 プログラミング書籍を選ぶ時の基準はたくさんありますが、ほしい書籍をすべて買えるようなもんでもないため、以下の基準で選定しました。 英語で書かれていること Kindle版ではなく紙媒体で購入できること 少なくとも一人以上の先輩やすごいと思う仲間のプログラマが勧めていること 今回以下の書籍を買う際に考慮した理由は多々あり、 海外のプログラマがどんな本を読んでいるのか気になっていた English Firstでプログラミングを学ぶようにしている 焦らず基礎からじっくり勉強したい いわゆる誰もが一度は手にする「古典モノ」を手元においておきたい といったものがありました。 大事なのは、本を購入するときに各々の判断基準を明確にしておくこと だと思います。それでは、1つずつ紹介していきます。な
入門bash 第3版posted with カエレバCameron Newham,Bill Rosenblatt オライリージャパン 2005-10-27 Amazonで探す楽天市場で探すYahooショッピングで探す 目次 目次 はじめに 初期設定の方法 bashのhistoryをインタラクティブに検索して、入力する rostopic listからpercolで選んで、rostopic echoする方法 参考資料 MyEnigma Supporters はじめに Pythonにはpercolという、 標準出力のデータを、 簡単に選択してフィルタリングできるツールがあります。 github.com このツールを使うと、 bashでの開発や、 ROSのCUIツールを便利にすることができたので、 いくつか紹介したいと思います。 初期設定の方法 まず初めに、percolをインストールします。 $
Writing your own TCP/IP stack may seem like a daunting task. Indeed, TCP has accumulated many specifications over its lifetime of more than thirty years. The core specification, however, is seemingly compact1 - the important parts being TCP header parsing, the state machine, congestion control and retransmission timeout computation. The most common layer 2 and layer 3 protocols, Ethernet and IP re
(2015/07/15 9:30 追記) 結論から言うと、球面上に一様分布する関数を使うことで分散できたので、最終的なコードも含めていちばん最後に追記しました。 最近Processingで遊んでいて、「3D空間に三角関数を使ったプロットをいっぱい置いて球面を作る」というコードを書いていたんだけど、一部にプロットが集まってきてしまうのが気になっていた(ちょっとわかりにくいけど、下の画像でいうと中心左寄りの部分)。 そこで、乱数の生成処理を工夫して、ある程度ランダムでプロットを置きつつも一部に集中してしまうのを回避しようといろいろ試してみたので、その内容をメモる。 (途中からそれって乱数なの?みたいな気分になってきたけど、考えがまとまらなくなりそうだったので気にしていません……。) 元々のコードはこんな感じ。このコード自体はこのサイトを参考にして作った。 private static fina
shared_ptrを使ってみる unique_ptrが変数の寿命が尽きた段階でメモリ領域を開放するのに対し、shared_ptrは参照カウンタを持ち参照カウンタがゼロになるとメモリ領域を開放する。 #include <tchar.h> #ifdef __BORLANDC__ #include <boost/tr1/memory.hpp> namespace std { using namespace tr1; // 他のコンパイラと同様にstd::tr1をstdとする } #else #include <memory> #endif #include <iostream> // 円を表す図形 class CPrimitiveCircle { public: CPrimitiveCircle() : x(0), y(0), r(0) { } CPrimitiveCircle(int xx,
サイトの構築。作品の販売。ブログの投稿。この他にもさまざまな機能があります。 ログイン サイトをはじめよう 非公開サイト このサイトは現在プライベート設定になっています。
C++編で扱っている C++ は 2003年に登場した C++03 という、とても古いバージョンのものです。C++ はその後、C++11 -> C++14 -> C++17 -> C++20 -> C++23 と更新されています。 なかでも C++11 での更新は非常に大きなものであり、これから C++ の学習を始めるのなら、C++11 よりも古いバージョンを対象にするべきではありません。特に事情がないなら、新しい C++ を学んでください。 当サイトでは、C++14 をベースにした新C++編を作成中です。 前章までの Studentクラスでは、SetData というメンバ関数を用意して、メンバ変数に初期値を与えるという形を取りましたが、本来は、メンバ変数を初期化するためには、コンストラクタ^を利用するべきです。 コンストラクタは、オブジェクトがインスタンス化されるときに、自動的に呼び出さ
前回のValue Parameterized Testsに続き、今回はType Parameterized Testsというのを紹介したいと思います。コードがコンパイルできなかったらタイポしてるので本家の方を見てね。 Type Parameterized Testsとは Type Parameterized Tests(勝手にTPTと略します)とは、複数の型に対するテストコードを生成するための機能です。Value Parameterized Testsの型バージョンと思えばOKです。 例えばstd::vectorのユニットテストを考えます。 TEST(VectorTest, push_test) { vector<int> v; vにいろいろ }このとき、vectorにはいろいろな型を入れてテストをしてみたいですね。そうなると今までは TEST(VectorTest, int_push_t
自然言語処理については、 前から興味があったのですが、 なかなか学ぶのが難しい。。。 ということで、自然言語処理に強い某社の専門家にお勧めを聞いてきました! ついでに自分の持っている本も持っていき、 その評価も聞いてきました。 一冊目 入門 自然言語処理 作者: Steven Bird,Ewan Klein,Edward Loper,萩原正人,中山敬広,水野貴明 出版社/メーカー: オライリージャパン 発売日: 2010/11/11 メディア: 大型本 購入: 20人 クリック: 639回 この商品を含むブログ (44件) を見る 私「自然言語処理といえば、これですよね。最初に買ったのがこれでした」 専「え、それ辛くない?」 私「大分」 専「これNLTKを使う前提だしね。独学には向かないんじゃないかな。監督者がいて、かつPythonやったことない人が期間をかけてやるには良いんじゃないかな」
はじめに この記事は「旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門」の2つ目の記事です。 シリーズの最初から読みたい方は 旧石器時代のJavaScriptを書いてる各位に告ぐ、現代的なJavaScript超入門 Section1 ~すぐにでも現代っぽく出来るワンポイントまとめ~ へどうぞ。 また、このシリーズではECMAScript5を概ね対応するブラウザを対象としています。 もっと平たくいうと、IE8以下は切り捨てます。ご了承ください。 そしてプロによるマサカリ 対策として一つ重要な注意書きをします。 この記事中で出てくる「CommonJSモジュール」という表現は全て「CommonJSのModules 1.0仕様をベースとして、Node.jsが独自に拡張したCommonJS派生のモジュール仕様及びインターフェース(require/exports
GraphXよりも使いやすいグラフデータ処理ライブラリ「GraphFrames」:Java、Pythonでのグラフデータ処理が簡単に 「Apache Spark」のグラフデータ処理ライブラリ「GraphFrames」がリリースされた。米Databricks、米カリフォルニア大学バークレー校、米マサチューセッツ工科大学がSparkの「DataFrame」をベースに共同で開発したもの。 オープンソースの高速な大規模分散データ処理フレームワーク「Apache Spark」(以下、Spark)の開発を主導する米Databricksは2016年3月3日(米国時間)、Sparkのグラフデータ処理ライブラリ「GraphFrames」をリリースした。GraphFramesは、Databricksと米カリフォルニア大学バークレー校、米マサチューセッツ工科大学(MIT)がSparkの「DataFrame」をベ
環境構築 コード 環境 OS Windows 7 AP サーバー GlassFish 4.1 Open Source Edition (一部 Wildfly 9.0.1 使用) 1.8.0_60 DB サーバー MySQL 5.5.28, for Win64 (x86) JTA とは Java Transaction API の略。 Java で トランザクションマネージャ を扱うための各種 API を定義した仕様。 トランザクションマネージャとは、分散トランザクションの管理を行うサービス(ミドルウェア)で、 Java EE サーバーだと EJB コンテナがその役割を担っている。 DTP Distributed Transaction Processing の略(直訳するなら、分散トランザクション処理?)。 X/Open という組織が策定した、分散トランザクションについての標準規格。JTA
OSをサポートできる、アウトオブオーダ実行に最適化したオレオレコンピュータを作りたい! そんな夢を2人の学生がかなえました。本書は、全く新たなCPUとコンピュータシステムそのものを開発・提供することを目的としたプロジェクト「Open Design Computer Project」の成果を、開発に携わった学生2人がまとめたテキストです。独自アーキテクチャのCPUをFPGA上に実装し、そのCPUのためのgccとbinutilsの移植方法について解説します。 【サポートはこちら】→https://www.shuwasystem.co.jp/support/7980html/4536.html ハードウェア編 1 CPUを自作するということ 2 開発環境を整えるということ 2.1 オリジナルCPUでソフトウェアを動かすためには 2.2 コンパイラとアセンブラの自作? 3 オープンソース・オープン
こんにちは、VASILYのバックエンドエンジニアの塩崎です。 iQONの中ではクローラーと検索サーバーを担当しています。 iQONのクローラーには提携ECサイトさんからクロールした商品を商品カテゴリー(Tシャツ、ワンピース、etc.)に自動的に分類する機能があり、商品タイトルや商品説明文などのテキスト情報を元に分類を行っています。 しかし、一部のカテゴリー(セーター・ニット帽)の商品はテキスト情報だけからでは精度の良い分類を行うことができません。 そのため、これらのカテゴリーの商品については画像を用いたカテゴリー分類を導入しました。 これらの機能を実現するために、当社のデータサイエンスチームとも協力を行い、ディープラーニングを用いたカテゴリー判定器を開発しました。 また、この機能は既存のクローラーの機能からの独立性が高いので、クローラーに組み込むときにはマイクロサービス化をして組み込みまし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く