середа, 7 липня 2010 р.

BeHealthy now available in Bodega Mac apps store

Good news! Today BeHealthy was approved to great Mac application store Bodega. New updates of application will be soon - I'm working on it.

четвер, 1 липня 2010 р.

BeHealthy 0.0.1 build 1 beta for Mac OS

I've just released ver. 0.0.1 b1 of BeHealthy - utility to control your work time. I made it for my own, so feel free using it and be healthy.
BeHealthy
is currently in beta stage and therefore some functions might not work as you like. Please don’t get angry and have patience!
Mac OS 10.6 required
Download

четвер, 27 травня 2010 р.

Android sqllite БД на SD карті

Виникла потреба розміщувати базу даних на SD карті мого HTC Hero. Вирішення знайшлося майже відразу (я ж новенький в розробці для Android):
try
{
File dbPath = new File(Environment.getExternalStorageDirectory(), "myappname");
if (!dbPath.exists()) {
dbPath.mkdirs();
}
File dbFile = new File(dbPath, "mydb.db");
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
db.execSQL(CREATE_MYTABLENAME);
}
catch (SQLException ex)
{
System.out.print(ex.getMessage());
}
Тепер є можливість редагувати файл бази даних сторонніми засобами.

четвер, 24 грудня 2009 р.

Запрошення на Google Wave

Є 25 запрошень на Google Wave. Пишіть кому потрібні :)

вівторок, 2 червня 2009 р.

C++0x: static_assert

Поцяцькався з новою VS2010 beta і вирішив слідкувати за новим стандартом, до якого надіюсь залишилось не так довго.
Найперша і найдоступніша фіча, застосування якій можна знайти відразу - це static_assert. Призначення її очевидне - перевірка виразів на етапі компіляції. Раніше для цих цілей я використовував Boost.StaticAssert (і зараз використовую, бо переводити комерційні проекти на VS2010 ще рано, та і про кросплатформеність поки ще рано мріяти). Але на відміну від boost версії тут є можливість вказувати текст помилки.
При компіляції коду де присутня стрічка
static_assert(false, "It is false");
бачимо:
------ Build started: Project: test1, Configuration: Debug Win32 ------
ClCompile:
test1.cpp
c:\documents and settings\alexandr\my documents\visual studio 10\projects\test1\test1\test1.cpp(18): error C2338: It is false
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
При використанні boost
BOOST_STATIC_ASSERT(false);
отримуємо не такий зрозумілий вивід:
------ Build started: Project: test1, Configuration: Debug Win32 ------
Compiling...
test1.cpp
c:\documents and settings\alexandr\my documents\Visual Studio 2005\projects\test1\test1\test1.cpp(18):(3455) : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE'
with
[
x=false
]
test1 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Чекаємо з нетерпінням стандарту, а поки використовуємо boost реалізацію.

понеділок, 1 червня 2009 р.

Суб’єктивний огляд MS Visual Studio 2010 Beta

Після денного завантаження всіх компонентів нової MS Visual Studio 2010 Beta нарешті встановив її. Перше що кидається в очі це жахливий синій інтерфейс, дуже повільна робота і неприємно розмазані шрифти(можливо недоліки бета версії; можливо у Windows XP воно так і повинно виглядати, бо розраховували на Windows 7). Також у новоствореному проекті під час сканування файлів проекту - Solution Explorer бридко блимає :(

Порадувало досить симпатичне діалогове вікно створення нового проекту. Непоганий дизайн, ергономічність і все досить логічно структурузовано:


З нового, що відразу помітно:
  • мова F# встановлена за умовчанням (відразу з’явилося бажання вивчати функціональне програмування), що не може не радувати;
  • нова .NET Framework 4.0 (так як шарпові мови цікавлять мало про нововведення тут);
  • можливіть вибору версії .NET Framework під час створення проекту;
  • у діалоговому вікні створення проекту є пункт Online Templates, де знаходяться декілька досить цікавих шаблонів;
  • покращений редактор коду;
  • додали Extension Manager зі зручним інтерфейсом доступу до додатків, їхнім встановленням і керуванням (є досить цікаві і надія що будуть досить зручні додатки для доступу до систем контролю версій)
  • додали Parallel Patterns Library (PPL). Річ досить цікава, але як я зрозумів не кросплатформена (але ж Microsoft це ніколи не хвилювало), тому доведеться використовувати OpenMP покищо (omp.h наявний). Ще були додані Asynchronous Agents Library, Work scheduler і Resource manager, але їх я ще не вивчав. Досить зручно використовувати для розпаралелювання циклів(Concurrency::paparallel_for_each, Concurrency::paparallel_for):

    #include <ppl.h>
    #include <array>
    #include <iostream>

    template<class Ty>
    void square_function(Ty& n)
    {
    n *= n;
    }

    int main(int argc, char* argv[])
    {
    std::tr1::array<int, 5> values = { 1, 2, 3, 4, 5 };
    Concurrency::paparallel_for_each(values.begin(), values.end(), &square_function<int>);
    return 0;
    }
  • додані нові C++ фічі (Lambda functions, Transporting exceptions, Rvalue references, auto keyword, decltype keyword).

Це все, що я помітив після 10 хвилинного знайомства з новою студією (воно було того не варте).

UPD1 02.06.2009

понеділок, 18 травня 2009 р.

Зміни у веденні блога

Привіт. 
Я, blackstone - програміст на мові Java з невеликим стажем. Відтепер я допомагатиму вести цей блог IUKNOWN.
Думаю що мої пости переважно будуть присвячені Java, але зараз про це ще рано щось казати.