27 нояб. 2009 г.

Notepad++ отжигает

That explains why Notepad++ is not available (and won't be available) under Linux :P


MinGW, wxString::ToLongLong() и все все все

Дано:
wxString - строка содержащая число в строковом представлении.
m_nSize - 64 битное число.
MinGW - компилятор.
wxWidgets - фреймворк.

Задача:
Конвертировать строку в число, дабы произвести некие действия.

Решение:
Открываем доки, ищем и находим следующее:

wxString::ToLongLong
bool ToLongLong(wxLongLong_t *val, int base = 10) const

Если конвертирование возможно получаем true, но вся соль в том, что в случае с MinGW во всех случаях обламываемся и получаем false, т.к. есть некоторое условие:

Compilers with C99 support and Microsoft Visual C++ version 7 and higher do support this.

Читаем и изучаем stdlib.h и внимательно справку по wxString
Получаем следующее:

m_nSize = atoll(strHeaderSize.char_str());

Проверяем результат:

wxMessageBox(wxString::Format(wxT("%lld"), m_Size));

и обламываемся, оказывается M$ имеет свой стандарт на форматирование и в MinGW

надо использовать следующее:

wxMessageBox(wxString::Format(wxT("%I64d"), m_nSize));


Да-да, стандарты существуют для того же для чего и законы.


P.S. в Symbian при переходе с 7.0s-8.1a на 8.1b тоже изменили:

BEFORE:

x.GetTInt();

AFTER:

I64INT(x);

26 нояб. 2009 г.

Бобик сдох?

Airbit`овцы похоже решили окончательно уйти в аутсорсинг, классическая ситуация "верхи" не хотят "низы" не могут. Не идет дело, так поменяй стратегию, зачем быть собакой на сене? В виде Open Source mShell(с платной коммерческой лицензией например как в QT) пошло бы бодрее, на правах контрибутора я бы поучаствовал например just for fun. Это если они не хотят быть просто аусорсинговой компанией, в Ovi Store же по поводу остальных продуктов компании отзывы кхм... скептические G-Meter убрали комменты были тоже не фонтан. Бабка Ванга считает, что либо они продадуться (оч. распространенный вид бизнеса на Западе), либо OS вариант, либо, если нет чувства коньюктуры... попутного ветра в широкую спину. Понаблюдаем из партера.

Nightly Builds

Активно попользовался Code::Blocks (8.02 Stable), раздражали только несколько вещей:
- Никакущий code outline
- Не всегда логичное поведение табов
- Меню Copy/Paste за каким то х**ом спрятано в подменю ("очень" удобно особенно ночью когда на ощупь вместо Ctrl+C и Ctrl+V попадаещь не на ту клавишу, т.к. у меня на Ctrl+B стоит компиляция)
- Отсутствие хоткеев на Find Declaration/Implementation

Терзался стоит ли связываться с ночником, но стабильная версия датирована 28 Feb 2008...
В общем паралельно поставил ночной билд и из всего списка остался только Меню Copy/Paste. Outline удобнейший, табы лучше, все хоткеи в настройках + бонусы в виде новых плагинов (выделение слов по дабл клику, inline поиск, список открытых файлов, wxSmith с AUI, Тетрис!!!111). Но падал 2 раза на закрытии при запросе сохранения лайота, в принципе не чревато если предохраняться сохраняться.
Да и написан на C++ и wxWidgets т.е. быстр, нетребователен к ресурсам и вносит некоторый элемент гармонии "на чем пишу тем и пользуюся" после диссонанса навеяного Carbide.C++ являющимся выкормышем Eclipse и Java к которой у меня и не только у меня "трепетное" отношение.

Параллельно попобовал CodeLite вот где тихий ужас, пытался настроить компилятор на статичную линковку 3 часа(!), оказалось что сначала надо задать директорию с lib (изначально натравлен он на динамическую), затем уже создавать workspace. Неправильный порядок вводил светлокод в тупняк, а погромиста в ярость. В общем блоку пока сливает всухую. Но если сравнить например с QT Creator то не так страшно, это чудо вообще IDE не назовешь, медиаплеер даже кнопка "Play" есть, бугага.