読者です 読者をやめる 読者になる 読者になる

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

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

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!...http://web.archive.org/web/20151129183512/http://stackoverflow.com/questions/678367/c-sockets-library-for-cross-platform出てきたライブラリとか、それ以外を並べてみる ライブラ…

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

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

C++からSQLiteを使う

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

JaneClone開発状況

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

wxWidgetsにおけるプラットフォームごとのアイコン読み込み方法

Windows,Linux,Macその他での共通コードからのビルドが可能なwxWidgetsであるが アイコンの読み込み方法はかなりプラットフォーム依存である。やっとMacでの正しいやり方が分かったので、まとめて書き留めておく。 簡単な方から順に説明する1. Linuxの場合:…

wxWidgetsと日本語

何度も同じようなエントリを書いているが、書かずにはいれない。日本語って面倒。 #include <wx/wx.h> #include <iostream> int main() { wxString jap = wxT("あいうえお"); std::cout << jap << std::endl; std::cout.setf( std::ios::hex, std::ios::basefield );// 16進数で</iostream></wx/wx.h>…

vector<クラス>をソートしたいとき

vector内部にオリジナルのクラスを作って、なおかつソートさせたいときがありますよね。 そんな時はbinary predicateをstd::sortの3つ目の引数に設定してやればいいらしい。「binary predicate」は日本語でなんて言えばいいんだろう?逐語訳すると二進述語…

Macでconfigure

私はMacを使い始めて日が浅いが、C++のコンパイルがこんなに面倒だとは思わなかった。なんか設定が消えているのだろうか。 CXXFLAGS='-I/Developer/SDKs/MacOSX10.6.sdk/usr/include/ -I/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/ -I/Developer…

単純なint型の集合をstring型に

最近nkfをいろいろ触っている。nkf_charはtypedefで定められたint型の別名である。 nkf_charはShift_JISなら2ついるし、UTF-8なら3ついるかもしれない。 それをC++のstd::stringとかstd::wstringとかwxStringに変換できないかなあと思ってた。つまりは可変…

libnkfを使う

iconv絡みでいろいろエラーが出て困ったので、よりポータブルな文字コード変換ライブラリを求めてlibnkfにたどり着いた。 libnkflibnkfを使うついでに多段makeとMakefile中のif文の練習をする configureスクリプトがあったけど新たにMakefileを書いた。 プロ…

wxWidgetsでShift_JISからUTF-8変換

/* * main.cpp * * Created on: 2012/05/15 * Author: learning */ #include <wx/wx.h> #include <wx/strconv.h> using namespace std; int main() { // Shift_JISの文字列を const char* 型で宣言 const char sjis[9] = {0x88,0xa2,0x82,0x70,0x90,0xb3,0x93,0x60}; wxString sjis_</wx/strconv.h></wx/wx.h>…

libxmlでHTMLParserを使う

メイン関数から直接libxmlの関数を呼ぶ最小限のサンプル 「&」とかの実体参照化しなければいけない文字がある場合エラーは出るが、とりあえず最後まで動くはず。 #include <libxml/HTMLparser.h> #include <iostream> using namespace std; void FindInfo(xmlNode*& element); int main() {</iostream></libxml/htmlparser.h>…

wxSQLite3の練習

Bindを使いたかったのだけれどエラー出まくりで断念。結局SQLクエリをwxStringでつなげた。 /** * WxSQLiteTest.cpp - wxSQLiteのテスト用ソースコード * */ #include "WxSQLiteTest.h" bool WxSQLiteTest::OnInit() { return true; } int WxSQLiteTest::OnE…

なんか前もやってた気がするけど

2chのスレッド一覧を正規表現で取り出す #!/usr/bin/perl -w use strict; open (FH, "< test.dat"); my @list = <FH>; my $line; foreach $line (@list) { # サンプル:9241201701.dat<>ステマと言われて困っています。- 2ちゃんねる知恵袋 (10) if ($line =~ /</fh>…

emacsでC++

今までeclipseでやってたのがだいぶ軽くなった印象 「C-x C-s」で保存 「C-b k」でバッファを破棄 「M-x compile RET」でMakefileを実行将来的にはECBとかいうやつも導入してみたいなあ、eclipseとどっちが重いか勝負 ECB(Emacs Code Browser) - 紫藤のWiki

wxSQLite3を使う

SQLiteはAndroidの標準DB(?)にも採用されている優れたリレーショナルデータベースです。 wxWidgetsで使おうと思っていたので、wxSQLite3をビルドして組み込んでみた。まずぶち当たるのはバージョンの問題。SQLite自体が結構な速さで更新されているのでちゃん…

C/C++でundefined reference toエラーが出る場合

C++

フリーソフトを落としてきて「./configure → make」しようとすると 「undefined reference to〜」が出てきて砂を噛むような思いをした人は多いはず。 パターン1 '~'の部分にメソッド名とかが見える undefined reference to `HogehogeClass::HogehogeMethod…

wxTreeCtrl

ツリー構造でファイル名などを配置したいと思った。 wxPanel *panel = new wxPanel(this, -1); wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL); // 親要素 wxArrayString array; array.Add(wxT("親要素1")); array.Add(wxT("親要素2")); array.Add(wxT("…

wxXmlDocument

wxXmlDocumentを試してみる。wxWikiには、wxWidgetsには適当なXMLパーサがないと書かれていたがwxWidgets2.9からXML読み取り用のクラスを使えるようになったのだ。ひとまずここのサイト『たのしいXML』サンプルファイル集からお借りしたXMLのサンプルファイ…

Shift-JISからutf-8に直接変換

C C++

C言語で2ちゃんにつないで、ダウンロードした内容をUTF-8に変換する処理。 文字コード対応表はここのサイトUnicode対応 文字コード表のものを使わせてもらった。漢字とカナを変換するために、16進数で「9,a,b,c,d,e」から始まるものを全てくっつけた。 たぶ…

C言語でchar文字判定

1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 5 using namespace std; 6 7 int main(){ 8 9 string sjis = "\x88\xa2\x82\x70\x90\xb3\x93\x60"; 10 cout << sjis << endl; 11 12 for ( int i = 0;i < sjis.length(); i++){ 13 char hex[3]; 14 char testHex[8]; </string.h></stdio.h></iostream>…

wxで画像の読み込み・書き出し

海外のwikiに非常に良いお手本があったので使ってみる。 Drawing on a panel with a DC - WxWiki 結局wxWidgetsで画像をだそうと思ったらDCのコンストラクタを記述して、実体からメソッドをいじってBlitで描画するようだ。 特にPanelとかSizerとか関係なくDC…

いろいろな言語でHttpClient

全てのコードが最適な形で書かれている訳ではないことをご了承ください。あくまで自分の実験的なコードです。参考にしたサイトは一番下にまとめて記述しています。 Java package foo.bar; import java.io.*; import java.net.*; public class HttpClient { p…

Code::BlocksでwxWidgets

前々から使おうと思いながらEclipseで開発を行っていたwxWidgetsですが、ようやく使い方がわかってきたのでこっちに移行しようかなと。やっぱUnix側のC++はEclipseじゃ無理だべ。Javaに関しては無敵なんだけどな。 最近eclipseのバグの理由がわかってeclipse…