28 сент. 2012 г.

Compare file version strings

На всякий случай код функции сравнения строк с номерами версий файлов. А то в интернете находятся только какие-то монстры.
function CompareVersionStrings(const V1, 
  V2: String): Integer;

  function ExtractInt(const V: String; 
    var B: Integer): Integer;
  var
    E: Integer;
  begin
    E := B + 1;
    while (B <= Length(V)) and (E <= Length(V)) 
      and (V[E] <> '.') do Inc(E);
    Result := StrToIntDef(Copy(V, B, E - B), 0);
    B := E + 1;
  end;

var
  B1, B2: Integer;
begin
  B1 := 1; B2 := 1;
  repeat
    Result := ExtractInt(V1, B1) - ExtractInt(V2, B2);
  until (Result <> 0) or 
    ((B1 > Length(V1)) and (B2 > Length(V2)));
end;

23 сент. 2012 г.

Чтобы git кирилические имена файлов отображал

Следует в git\etc\gitconfig прописать:

...
[i18n]
commitencoding = cp1251
logoutputencoding = cp866

Вместе с другими полезными установками будет:

[core]
symlinks = false
autocrlf = true
quotepath = false
ignorecase = true
[color]
diff = auto
status = auto
branch = auto
interactive = true
[pack]
packSizeLimit = 2g
[help]
format = html
[http]
sslCAinfo = /bin/curl-ca-bundle.crt
[sendemail]
smtpserver = /bin/msmtp.exe
[diff "astextplain"]
textconv = astextplain
[rebase]
autosquash = true
[i18n]
commitencoding = cp1251
logoutputencoding = cp866

20 сент. 2012 г.

Subversion, Git, Mercurial...

Такое впечатление, пока разберешься со всеми нюансами Git и Mercurial (чтобы сделать осознанный выбор) выйдет новая версия SubVersion, где будет решена проблема офф-лайн комитов и переименования файлов, что сразу снимет все вопросы.

18 сент. 2012 г.

Маска для IPv4 адреса

Маска для оператора SIMILAR TO, которую можно использовать, например, при создании домена:

CREATE DOMAIN dipaddress
VARCHAR(15)
CHECK(VALUE SIMILAR TO
'(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-6]).){3}([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-6])')

17 сент. 2012 г.

Multithreaded debugging

Справа Oracle VM VirtualBox в котором крутится WinXP 32bit. В отладчике — Гедымин в режиме HTTP сервера. Слева — основная система для разработки — Win7 64bit. В отладчике виден код HTTP клиента платформы Гедымин.

Используется библиотека интернет компонент Indy 9.

13 сент. 2012 г.

Apple и деньги

Настоящий гений Apple проявляется не в том, чтобы запатентовать "прямоугольник со скругленными углами" и на основании этого стрясти миллиард зеленых с опасного конкурента, а в том, чтобы выжимать каждую копейку из любого, кто попадется под руку.

Купил яблочный музыкальный плейер? Заплати копеечку за сетевой адаптер. Можно конечно и не покупать, в стандартной поставке идет USB кабель, но тогда придется забыть о быстрой подзарядке. Позарился на новейшую модель? Раскошеливайся на переходник стоимостью 29 USD или выкидывай вполне себе годное подзарядное, так как новый разъем не совместим ни с чем из существующего в природе.

В погоне за длинным долларом Apple готова придушить даже тех, от кого зависит привлекательность, а следовательно и будущее, ее платформы — сторонних разработчиков. Это под Windows можно написать, скомпилировать и распространять программу не отчисляя Microsoft ни единой копейки. В мире Apple все происходит иначе.

Следите за руками:

  1. Вы разработчик мобильного приложения, которое создали, скажем, с использованием кросс-платформенного фрэймворка PhoneGap.
  2. Вы успешно запустили свое приложение на Android и Windows Phone, и теперь хотите осчастливить сотни миллионов обладателей устройств iOS.
  3. Здесь начинается самое интересное. Единственный легальный способ распространения — это магазин App Store. Для доступа к нему следует стать участником iOS Developer Program всего за (сюрприз!) 99 долларов в год.
  4. Откомпилированный проект вы не можете просто так загрузить для распространения. Файлы должны быть подписаны цифровым сертификатом, который генерируется программой Keychain Access, которая (сюрприз №2!) является приложением под операционную систему Mac OS X. Т.е. между делом вам придется прикупить хотя бы самый дешевенький (если такое понятие вообще применимо к продукту с логотипом надкушенного яблока) макинтош.
  5. Ваши финансовые вливания не гарантируют, что программа пройдет цензуру App Store и будет допущена к распространению. Но, если вам повезло, то с этого момента вы работаете не только на себя, но и на толстого дядю из солнечной Калифорнии.

    Потому как с каждой продажи Apple забирает себе скромные 30% комиссионных.