なんとな~くしあわせ?の日記

ClojureとかAWSの設定とかをメモする技術ブログ

C++

CMakeでNinja向けファイルを生成する

Windowsでlinux向けC++コードをビルドする際に困るのはそのビルドの遅さだ。msys2を使ってMakefileを生成すると、死ぬほど時間がかかる。今までの数年間はautomakeでMakefileを生成していた。けれどもその遅さは普通の人間なら気が狂うレベルの遅さなのでや…

Tinyexprで文字列上の数値計算をする

C++

久しぶりにC++の記事以下のような文字列中の数値計算をどうすれば行えるか悩んでいた。これを MOV ECX,512*1024/4 これに変換したい MOV ECX,131072 Tinyexpr それには文字列型の計算式を評価して結果を返すライブラリが必要。とりあえず組み込みやすいやつ…

circleci-matrixを使って、Travisのような環境変数を複数使ったビルドをする

Travisを使う場合、envというステートメントをyamlファイルに設定することで複数の条件を並列でテストできますよね。 ただ、Travis最近重くてちょっと嫌だなあと思っていたのでCircleCIを使い始めたんですが、CircleCIにはこの機能がない。しかし、有志が作…

C++のbindはちょっと面白そうだった

Stackoverflowにて面白そうな問題を発見。stackoverflow.comというのは、今の自分の課題として関数を関数に渡してその結果を受け取りたいというものがあったのだ。Scalaだと関数オブジェクト渡すか、ラムダ式渡す感じでかるーくやれるのだが。C++の場合、記…

JaneClone 1.1.5をリリースした

表題どおり、今回の更新は主にバグ修正がメイン。リアルが忙しく、開発に対するモチベーションが減少していたが、 協力者が増えた CI環境を構築できた ことは嬉しかった アプリケーションの配布サイトも更新してみた、ダウンロードは以下から JaneClone by H…

configureでいろいろ設定する

autotoolsのちょっとしたまとめを書く autotoolsの導入 全く初めての状態からの導入は以下の記事から Autoconf, Automakeを使う - なんとな~くしあわせ?の日記 Autoconf, Automakeを使う - なんとな~くしあわせ?の日記ライセンスについては以下から auto…

libxml2でHTMLを整形する

だいぶ前にlibxml2を使ってHTMLをパースした。libxmlでHTMLParserを使う - なんとな~くしあわせ?の日記 libxmlでHTMLParserを使う - なんとな~くしあわせ?の日記libxml2のAPIを見ていると、HTMLの整形も出来るらしいのでやってみた。 使用したAPI htmlDo…

Rubyる

引き続きRubyを使ってみる、また他の言語とくらべてみる リストを使う処理 Ruby書いてると他の言語でmain関数を忘れてしまう… Ruby [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ list = Array.new() list.push("a") list.push("b") list.push("c") list.each{|str| puts(s…

wineでMinGW + msysを動かす - 3

以前、Linux上でminttyを動かすところまで行ったwineでMinGW + msysを動かす - 2 - なんとな~くしあわせ?の日記今度はこのままWIN32プログラミングまで手を伸ばしてみる Wineのバージョンは1.7.16、Debian 7.4 Wheezyでテスト。MinGW + msys + minttyの起…

o2onのUNIX移植進捗

表題通り、最近はちょっとo2onの移植がマイブーム。当初ソースを見た時は一瞬で諦めていたのだが、なんかわからんけどだいぶC++読み書きできるようになってきた。comskipの移植とかもやったしやってやれないことはない。 移植の目的 ・P2Pアプリケーションに…

イベント処理メモ

やりたいこと:WIN32アプリケーションのクロスプラットフォームな移植 WIN32 thread的処理をPOSIX threadで peventが便利じゃぞ neosmart/pevents · GitHubたぶんこんな感じ? あとで追記… _beginthreadex #ifdef _WIN32 /** win32 thread */ OtakuHandle = …

Javaでクラスのソートとか

以前C++でクラスを含んだコンテナのソートをやった vector<クラス>をソートしたいとき - なんとな~くしあわせ?の日記 Javaでソートをやってみる ビューから取得したクラスの中身が汚いのでソートしたくなる場合あると思います。 (DBから取得する場合SQLで…

BYTEとWORDの変換(C/C++)

C++ C

C/C++言語は動作するプラットフォームによって姿を変える。さながらカメレオンのように動作するプラットフォームの色に染まるのだ。クロスプラットフォームで動作するネイティブプログラムで特に苦労するのは、微妙にいろいろ型が異なることだ。 例えは以下…

C/C++のGUIライブラリ比較

いつもお世話になっているWxWikiを抜粋して翻訳元ネタ WxWidgets Compared To Other Toolkits - WxWiki wxWidgetsと他のツールキットの比較 いくつかの一般的な覚え書き: wxWidgetsはC++によってのみ動作するわけではありません、python, perl, php, java, …

C++勉強会に行ってきた

正式名は「江添とボレロ村上の京都C++勉強会」? とりあえず江添さんとボレロさんを生で見れた。decimalbloatさんもいた。 江添さんスライド C++14の新機能全体的に知らないことばかりだった。 wandboxとvimの連携が便利そうだった。関係ないけどwandboxにJa…

C++ (fork) Advent Calendar 2013 9日目

Advent Calendar 初参加です。あまり言語仕様的なところはわからないのですが、なんかC++でGUI作りたいって人のためにwxWidgetsのことを書きます。 概要 1.1 wxWidgetsのアーキテクチャと位置づけ 1.2 他のライブラリとの比較 2.各プラットフォームでのwxWi…

FreeBSDでC++11

C++11の機能を使いたいのよ 表題通り、最初からインストールされているclang/clang++ではC++11の機能を使えなかったので… どうすんのかな〜とググっていたら解決策を示してくださるブログ発見 alaif Laboratory: FreeBSD 9.1 RELEASEでC++ 11結局FreeBSDでC+…

MacOSXの動的リンクライブラリの設定変更

OSXで配布するプログラムを動的リンクライブラリで作成した場合、最終的にライブラリの見ているファイルを変更しなくてはいけない。OSXの作法としては、Hoge.app/Contents/MacOS以下にライブラリをぶち込めばいいらしい。ちなみに Windowsの場合は特に何もし…

UNIX向けソフトウェアをMinGWに移植する際のテクニック

UNIX向けソフトウェアをMinGWに移植する 最近MinGWのクロスコンパイラを使ってcurlppとspidermonkeyのビルドができるようになった。これはつまり、もともとLinux/Mac/MSVC向けでしか動かなかったものをMinGWでビルドできるようにしたということである。その…

wxWidgets-2.9.5 msw

ビルドしようとしたら Win9.x系のコードがundefined referenceになってた...ほげー環境:Debian Wheezy コンパイラ: $ /usr/x86_64-w64-mingw32/bin/gcc --version gcc (rubenvb-4.7.2-release) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. T…

列挙型の管理(C++)

定義した列挙型の数が多くて困る wxWidgetsでソースを書いていると、制御用の列挙型の定義がどんどん多くなっていく。列挙型を定義することで、プログラム自体は書きやすくなるのですが…あと列挙型を文字列として取り出したくなってきた。 EnumString.h 最低…

JaneClone開発状況

Macサポートできそう Macクソだ、Macクソだと言いつつもバグを潰しているうちにJaneCloneの基本的な機能が使えるようになった。フォントをMonaに変更したらこの通り。ID抽出がバグってるが気にしない AAも綺麗に表示された、画像の人物は三尋木プロ あとはど…

wxWidgetsでのスレッド間通信

発端 スレッド間通信なんてけったいなものは、普通趣味のプログラミングでは使わない(たぶん) 使おうと思ったのは純粋にそれが必要になったからだ。 やりたかったこと アプリケーションにログを出したかった。 古くはIEのステータスバーに出るログのように…

MacでwxWidgets

MacでC++やるのはつらい。環境構築しにくい。以下手順。 環境はMac OSX Lion 10.7 開発環境を揃える Command Line Tools for Xcodeをインストール 表題の通り、Apple Developerからダウンロードしてインストール。 これを入れるとUNIXコマンド系がひと通り /…

Importing inline functions in MinGW

MinGWでクロスコンパイルしようとして壁にぶつかったので翻訳エラーメッセージは warning: '~~~' redeclared without dllimport attributec++ - Importing inline functions in MinGW - Stack Overflow 質問者 I'm using a shared library that defines inli…

cURLppメモ

レスポンスヘッダを一緒に出力する場合はオプションをtrueにする new curlpp::options::Header(true) 2chの板一覧情報をcurlppで取得するときの例。かなりすっきりと書けると思う。 相変わらずwxWidgets混じりのC++なんで、単純にコピーしただけではコンパイ…

C++でクロスプラットフォームなネットワーク用ライブラリ

そんなお題でStackOverflowの質問スレッドが立ってる。bump! bump!...Stackoverflow - C++ sockets library for cross-platformけち臭いStackoverflowはライブラリの比較を禁止にした。おかげでそのエントリは削除されてしまったので、archiveへのリンクを載…

wxHtmlWindow上での動的な画像のリロードなど

JaneStyle等で実装されているHTML表示ウィンドウにて画像のサムネイルを表示させる方法(wxWidgetsにて)を検討していた。他に同じ事を考えている人が居るかもしれないのでメモしておく。wxHtmlWindow上では「memory:」というタグが最初から使用することができ…

C++からSQLiteを使う

SQLiteをC++のプロジェクトに組み込む場合の関連情報について・SQLiteをソースからコンパイルする場合、通常版と「Amalgamation(混汞)」版がある ->通常版はプロジェクト管理のためソースが分割されている ->Amalgamation版は全てのソースが4つにまとめら…

JaneClone開発状況

・使用するデータベースをMetakitからSQLiteに変更した ・プロジェクトにSQLiteとwxSQLiteを込みこみにして、configure;makeを叩けばビルドできるようにした感想:疲れた…