14 янв. 2013 г.

Oracle предупреждает (JDK)

Вот тут говорят, что:
About the Java 6 Auto-Update to Java 7
Oracle is now extending the End of Public Updates again for 4 additional months to provide developers and users with additional time to migrate to Java 7. The last publicly available release of Java 6 will be in February of 2013 with the release of Java SE 6 Update 39 (Java SE 6u39).
 Что-то непонятно как быть с Android SDK, коий требует определенную версию JDK:

JDK 6 (JRE alone is not sufficient)
 И насколько можно судить по отзывам, JDK 7 требует дополнительных телодвижений.

Припоминаю подобный фортель с Symbian SDK, который требовал ActivePerl, причём определенной версии и в один момент был убран с сайта ActiveState для свободного скачивания (однако для "users with ActiveState Busine$$ Edition $upport" неподдерживаемые версии доступны), подробнее об этом вот тут.
Занятно, когда адепты Private API, Symbian Platinum Partner$$ и платной премиум поддержки вляпались в свои же Premium к*к*шки, хотя вопрос с новыми версиями SDK (Symian^3, S60 5th Edition, and S60 3rd Edition SDKs) вроде как решили.

10 янв. 2013 г.

Не запускается Android SDK Manager

Как так можно, выпускать обновления тулсета без достаточного тестирования мне непонятно. Но обновив на днях и Android SDK до версии 21.01 и заодно Eclipse, c Indigo до Juno, испытал на себе сабжевую проблему.
Гугление выдавало в основном треды разной свежести на stackoverflow.com с кучей решений, кому-то помогло создание переменной окружения в винде %JAVA_HOME%, с указанием пути до JDK (в моем случае она давно присутствовала в виде C:\Java\jdk1.6.0(x64), с тех самых пор, как перешел на Windows 7 x64 и инсталлятор SDK перестал видеть установленный JDK и до сего обновления все работало), кому-то создание переменной окружения %ANDROID_SDK_HOME% (ничего не могу сказать, не понадобилось ни разу), кто-то изменил файл android.bat в директории Android-SDK\tools\, кто-то просто почесал ж*пу левой рукой и помогло. Короче всё оказалось не в кассу.
Потом нагуглился еще один страдалец как и я, с инструкцией... в общем изменив переменную окружения %JAVA_HOME% с C:\Java\jdk1.6.0(x64) на C:\Java\jdk1.6.0(x64)\bin удалось добится запуска SDK Manager через батник android.bat, а добавив в переменную окружения %PATH% путь C:\Java\jdk1.6.0(x64)\bin (раньше и без этого работало прекрасно) удалось добиться запуска SDK Manager непосредственно из Eclipse.
А запустить это чудо (SDK Manager.exe) непосредственно с бинарника удалось из консоли, предварительно выполнив в ней команду set PATH=c:\Java\jdk1.6.0(x64)\bin, что этой сволочи не хватало мне не понятно, возможно мешали другие прописанные пути, их можно проверить в той же консоли выполнив команду echo %PATH%.

Btw, делать рестарт после изменения переменных среды, как пишет по вышеназванной ссылке данный блоггер не обязательно, достаточно сделать смену пользователя (LogOff/logOn) и всё это дело апплится без перезагрузки машины. Проверяется тем же echo %PATH%.

И еще один маленький, но важный нюанс: в прошлом пользовался 32-битной виндой, при переходе на Windows x64 внезапно (ха-ха-ха) выяснилось, что запуск командного интерпритатора aka консоли (cmd.exe) из 32-битного приложения, запускает 32-битное же приложение интерпритатора cmd.exe из SysWOW64 вместо нативного для системы (т.е. под архитектуру AMD64) cmd.exe из System32, причем запуск непосредственно и из той и из другой директории 32-битного приложения (в моем случае Total Commander) запускает всё равно 32-битный cmd.exe, получается что-то вроде симлинка с редиректом в SysWOW64. Учитывая что JDK я устанавливал x64, ловил головняки.
А я так удобно запускал консоль из Total Commander прямо в нужной директории... Особо не искал решение, но надо бы разобраться и с этим делом.

30 сент. 2010 г.

So ugly

Nintendo DS "залез" на E61(71) и родилось...
http://thenokiablog.com/2010/09/28/meego-handset-ti-omap-4/
Это...
P.S. Даже для инженерного экземпляра выглядит UI уныло-преуныло, работает мягко говоря небыстро. Вид устройства - ну тут о вкусах не спорят.
Похвалились мля...

10 июн. 2010 г.

Релиз Code::Blocks 10.05

Вообще мне пофиг, я из SVN сам собираю, но мне не жалко, берите :3
BTW, Ubuntu-style именование версий поднимает ЧСВ до заоблачных высот.

9 июн. 2010 г.

I luv wxCURL

Долго и упорно боролся с wxHTTP, нарисовал свой класс на его основе, многопоточность, редиректы, какое-никакое разруливание кодов ответа сервера, система кастомных ивентов (custom events), etc, etc. Разобрался с багом 50% загрузки процессора при запросе не этот , другой (хорошо в трее сидит иконка с гистограммой загрузки CPU от Rainmeter, так бы ни в жисть не увидел). Т.е. классическая система костылей и подпорок, best friends of codemonkey.
Кстати гугля (в частности code.google.com) кладет болт на стандарты HTTP и на запрос заголовков ответа сервера (метод HEAD, т.е. без тела) дает облизать фигу (404 Not Found). Google professionals is so professionals :3
В общем всячески пытался изобрести лисапед. Что характерно знал что есть CURL и wx-обвязка для него wxCURL, но по какой то неведомой причине считал что он GPL (я же лиценс-виолатор любитель мирандосорсов какой нить), оказалось что лицензия MIT, т.е. вполне кошерно ложится на source closed продукт, и не против статической линковки. Короче +200 kb и спокойные нервы вполне сопоставимая цена. При динамической линковке ненужное (WebDAV и подобное) можно убрать из редистриба либы.
Не особо хитро-мудро собирается но для VC кое-что напортачено, а для MinGW через make вообще просто.

16 янв. 2010 г.

Жуки

Реквестирую официальное признание понятий "пьяный коммит" и "рождественский билд". Как известно (мне) на форуме Code::Blocks регулярно выкладываются ежемесячные ночные билды для венды. Очередной билд ознаменовался включением пары полезных плагинов: CCCC и CppCheck, а также тем что в добавить их туда забы(и)ли. Поразмыслив для приличия закатал рукава сделал SVN чекаут самой последней версии, благо собирается все это в том же кодеблоксе без особых приседаний. В общем обнаружилось, что:
В пылу -пред(-пост) новогодней горячки, доточили одну из важных частей любой IDE, а именно codecompletion, до совершенно *Вырезано цензурой* состояния, что выразилось в том, что *Вырезано цензурой* кодекомплит *Вырезано цензурой* не работает с *Вырезано цензурой* SDK от *Вырезано цензурой* Microsoft, вернее работает настолько *Вырезано цензурой*, что забирает все *Вырезано цензурой* процессорное время. Такое ощущение что *Вырезано цензурой* тред парсера впал в *Вырезано цензурой* infinity loop. В общем висит одиноко мой месседж (подробнейше описан, любая блондинка воспроизведет баг) в багтреке уже неделю, а у основной массы разработчиков в Debian based Windows (Ubuntu по вашему) ВСЕ *Вырезано цензурой* НОРМАЛЬНО РАБОТАЕТ. В бубунте. Или с MinGW. Но работает *Вырезано цензурой* же, значит бага нет. *Вырезано цензурой* чинить то, что работает, лучше написать 3 пуда нового кода, дождаться пока бага прочно вростет в новый код, а потом сесть и начать переписывать всю эту *Вырезано цензурой* в новый бранч. *Вырезано цензурой* искать легкие пути?
P.S. Посмотрел историю коммитов, примерно такая картина:
- Добавлено: *а*
- Добавлено: *б*
- Исправлено: *а* не работало с *б*
- Исправлено: *б* не работало с *а*
и так по кругу.
Неправильно это как-то наверное.

Примечание *Вырезано цензурой* читать как: отлично, хорошо, здорово, нужно, годно, etc.

Update:
2010-Jan-25 10:01 Починили
Действительно был infinity loop, и кто-то сказал за новый бранч :конфьюзед:
Спасибо чуваку из Китая, который не являясь постоянным разработчиком нашел багу и накатал патч (который закоммитили через 6 дней).

30 дек. 2009 г.

MinGW vs MSVC

Решил попробовать скомпилировать проект с помощью бесплатного тулкита Microsoft Visual Studio Express а именно Visual Studio 8 (2005). Тулкит "жирный" 462 mb. сама Visual Studio, и 395 mb. Windows Platform SDK (в 2005 версии не входит в состав VS, imho это правильно).
Наверное дело привычки, но студия как IDE после Code::Blocks мне не понравилась, почти без "танцев" сбилдил либы wxWidgets, сам же проект "ниасилил", в общем на Code::Blocks лично мне оказалось удобней (правда геморрой был и там, но спасло гугление на официальном форуме wxWidgets).
В общем Release теперь билдиться только с помощью компилятора MSVC. Почему? Все просто: размер бинарника собранного в MinGW - 3.3 mb, в MSVC - 2.2 mb, т.е. - 30% (или + 50% это как посмотреть). К тому же компилятор явно быстрее, это факт. Но к студии необъяснимое отвращение, почему-то интерфейс (контролы и т.п.) вызывают стойкую ассоциацию с .NET приложением, воротит и все тут.
Параллельно посмотрел Qt 4.6, чего-то не собираются некоторые экземплы, покрутил примеры, да, фреймворк по-хорошему толст, примеры некоторые впечатляют, говорят современный (обозвать ивенты и обработчики событий сигналами и слотами и присобачить слева moc прекомпилятор это нее**цо модерново, да).
Но вот я подумал о своем приложении не супер-пупер, но и не самом простом (IPC, Custom Events, Sockets, не самый хреновый GUI, кстати нативный и выглядящий как на WinAPI). Так вот аппликуха использует в среднем около 2.5-3 mb оперативной памяти, сидит в трее и расчитана на постоянное использование, размер NSIS инсталлятора менее психологической метки в 1 mb и никаких дополнительных либ, для небольших и средних проектов самое оно (хотя назвать Code::Blocks небольшим или средним язык не поворачивается и он чертовски хорош). С Qt эти показатели увеличиваются в разы. Лицензия wxWidgets опять же намного свободней. Вот и вся логика, а модерн ради модерна пусть будет для эстетов и пиарастов.
P.S. Разработка wxWidgets началась в 1992 году, Qt - в 1994, думаю костылей и там и там хватает.

15 дек. 2009 г.

wxWidgets 2.9

Попробовал нестабильную ветку. Она действительно нестабильная. И кривая. Местами.
Некоторые методы объявлены как депрекейтед, некоторые просто изменили. Строки (wxString) например, DDE (wxConnection) и т.д. и т.п.
Но это все можно понять, избавляются от старого хлама. Но вот чего я понять не могу, так это изменившегося размера exe-шника статически слинкованного приложения:
3.3 mb на wxWidgets 2.8.10
7.2 mb на wxWidgets 2.9.0
5.2 mb на wxWidgets 2.9.0 после применения патча на кривые руки

Понятно что не WinAPI, но так недалеко и до Q-евого кошмарика где приложение тянет с собой туеву хучу бегамайт shared либ (QutIM например при размере около 2 mb тянет более 20 mb либ), это просто 3.14дец, хуже только .NET (недавно обновился на 250 mb ради Paint.NET).

В общем убежал в ужасе обратно на stable.

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" есть, бугага.

29 сент. 2009 г.

The power of the OpenSource ("звезда в шоке")

WxWidgets 2.8.10

http.h

...
protected:
enum wxHTTP_Req
{
wxHTTP_GET,
wxHTTP_POST,
wxHTTP_HEAD
};
...

bool BuildRequest(const wxString& path, wxHTTP_Req req);
...



http.cpp


bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req)
{
const wxChar *request;

switch (req)
{
case wxHTTP_GET:
request = wxT("GET");
break;

case wxHTTP_POST:
request = wxT("POST");
if ( GetHeader( wxT("Content-Length") ).IsNull() )
SetHeader( wxT("Content-Length"), wxString::Format( wxT("%lu"), (unsigned long)m_post_buf.Len() ) );
break;

default:
return false;
}


Но ведь подумали же, твоюжтымать! есть такой метод "HEAD", есть.

P.S.

Name: src/common/http.cpp
Purpose: HTTP protocol
Author: Guilhem Lavaux
Modified by: Simo Virokannas (authentication, Dec 2005)
Created: August 1997
RCS-ID: $Id: http.cpp 44660 2007-03-07 23:07:17Z VZ $
Copyright: (c) 1997, 1998 Guilhem Lavaux
Licence: wxWindows licence

24 сент. 2009 г.

Почему закрылся mshell.net.ru

Первопричина банальна: в июле сильно приболел, до такой степени, что передвигался с помощью подручных предметов, почти не ходил, хостер и прикрыл аккаунт за просрочку (изменили правила оплаты и с телефона заплатить я не мог), к пк почти месяц не подходил. Потом просто плюнул, и резуректить не стал. Судя по тому, что спустя 2 месяца поинтересовалось этим фактом 2 человека (обоих худо-бедно знаю около 2,5 лет) "отряд не заметил потери бойца".
Хотя нет, заметил: появился почти клон, позиционируется как "единственный & русскоязычный", тот же движок форума, вики правда есть с частичным переводом по качеству где-то на уровне "PROMT Advanced", т.е. вроде не машинный, но точно не человек переводил (раздел о ООП в mShell я переводил пару дней, но за качество почти не стыдно), ну да я и этого не сделал по причине нехватки времени.
Ладно, болеют "за судьбу mShell" (почти дословно) пусть, в конце концов и мне что то он дал, но принципиально для "коммюнити" и тем, что на официальном форуме, делать ничего не буду, оно за 2 года (столько прожил mshell.net.ru) почесалось один раз. Под хвостом.
Но за ночь с Ксенией Собчак тугрики, вполне могу, по другому надоело...
P.S. GFTP пишу "just for fun", полный рефакторинг, на ООП рельсы "at all", две панели наконец-то, хотя сайта теперь нет и кагбе он мне нафиг не нужен. Скиллы прокачиваю. Сейчас он аццкая смесь C++ с mShell. Писать не то чтобы очень просто (язык хоть и скриптовый, но не как Python, где на каждый чих есть библиотека, но и результат не торт), все ручками, зато экспириенс какой.

23 сент. 2009 г.

BTW: wxWidgets meet Symbian

На форум.нокиа некоторое время назад разговор о wxWidgets оказывается его портировали на Symbian, пытался тогда еще собрать, но потерпел эпичный фейл, в чем дело было уже не помню да и забросили давно, однако вот тут пишут, что его еще пинают
"Another good news is that people are working on using wx under several new platforms: this month we had posts about wxSymbian again (wxBase part only, no GUI yet)"
, а то сигналы... слоты...