Blog

  • LED strips

    Решил дома сделать подсветку в холле и коридоре на светодиодных лентах. Всего там по периметру под потолком нужно будет около 30 метров ленты, но пока для пробы купил 2*5 метров на ebay:
    http://www.ebay.com/itm/320773030394?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

    Покупал 20 октября, а сегодня забрал их уже у себя на почте. Очень оперативно. Жаль только, что китаец не дает номер для трекинга.

    Кстати в тот же день (20 октября) я заказывал инфракрасный контроллер для управления этими лентами – тоже пришел сегодня и забрал его на почте!

  • Detect if the current user is logged as administrator

    From Vista and Windows 7 times a lot of operations are disabled for users without administrator privilegies.

    You may use the next code to test if logged user is in administrator group:

    function IsAdmin: Boolean; 
    const 
      DOMAIN_ALIAS_RID_ADMINS = $00000220; 
      SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); 
      SECURITY_BUILTIN_DOMAIN_RID = $00000020; 
    var 
      hAccessToken: THandle; 
      ptgGroups: PTokenGroups; 
      dwInfoBufferSize: DWORD; 
      psidAdministrators: PSID; 
      x: Integer; 
      bSuccess: BOOL; 
    begin 
      Result := False; 
      bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, 
        hAccessToken); 
      if not bSuccess then 
      begin 
        if GetLastError = ERROR_NO_TOKEN then 
        bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, 
                                      hAccessToken); 
      end; 
      if bSuccess then 
      begin 
        GetMem(ptgGroups, 1024); 
        bSuccess := GetTokenInformation(hAccessToken, TokenGroups, 
                                        ptgGroups, 1024, dwInfoBufferSize); 
        CloseHandle(hAccessToken); 
        if bSuccess then 
        begin 
          AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, 
            SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 
            0, 0, 0, 0, 0, 0, psidAdministrators); 
          {$R-} 
          for x := 0 to ptgGroups.GroupCount - 1 do 
            if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then 
            begin 
              Result := True; 
              Break; 
            end; 
          {$R+} 
          FreeSid(psidAdministrators); 
        end; 
        FreeMem(ptgGroups); 
      end; 
    end;
  • ASUS p320 battery

    Вчера заказал на ebay батарейку к своему смартфону

    Сначала хотел купить прямо в местной лавке за 155 грн (~$19), но оказалось, что у них их нет в наличии и в скором времени не появятся. Поэтому заказал у китайцев. За те же деньги будет два аккумулятора

    Сегодня уже китаец выслал номер для трекинга (RT108590439HK):
    http://www.hongkongpost.com/eng/tracking/index.htm
    Он пока еще не детектится и нужно подождать пару дней

    Кстати во время оплаты через PayPal почему-то прошла конвертация через гривны. Т.е. эти $20 сначала конвертнулись в гривны, а потом опять в доллары для списания с долларовой карты Visa. Банк получил дополнительные 50 центов;-)
    Раньше у меня было выставлено в PayPal платить в валюте продавца без конвертации. Вчера хотел найти эту опцию и не нашел…

    PS: почтальон принес домой посылку днем 17 октября. Довольно оперативно

  • Kindle Fire

    Kindle Fire вызывает какие-то двоякие впечатления. С одной стороны, давно ждал его появления (но хочу дождаться 9-10 дюймов). С другой стороны, он у них получился какой-то большой – лишние края по бокам делают его огромным.
    http://www.amazon.com/gp/product/B0051VVOB2/ref=famstripe_kf

    Кстати они еще и обновили линейку книжек – новые Kindle Touch+бесклавиатурники, уменьшили цены на старые (Kindle Keyboard). При этом все их выпустили в двух вариантах – с рекламой и без.
    Странно, что пока не запустили свой платный магазин книг…

  • Delphi XE2 в Киеве

    Вчера ходили на семинар Embarcadero, посвященный выходу RAD Studio XE2
    В основном все техническое вел Всеволод Леонов, а по лицензиям и стоимости говорил Кирилл Раннев (глава Embarcadero в СНГ)

    Основные нововведения в XE2:
    – компилятор под 64 бита
    у меня часто спрашивают для ActiveX библиотек и extended procedure for MS SQL
    – LiveBinding
    это круто, но пока неясен полный синтаксис самих выражений и какой парсер за это отвечает
    Кроме того, не очень понятно за счет какого нового RTTI у объектов это сделано.
    И конечно, в следующей версии явно нужно убирать ручные нотификации из кода про обновление связанных свойств-объектов. Это должно быть автоматом, как для dbware

    – FireMonkey
    тут не однозначно. С одной стороны выглядит это все, как попса с мельканием, вращением и т.п. С другой стороны, обещанная кроссплатфоменность и однозначное “VCL не убирается, но развиваться будет только FireMonkey – новые проекты пишите только на нем”
    Для каких-то видов приложений FireMonkey будет явно плюсом – трехмерные CAD, планировка квартир, работа с картинками (эффекты, вращения и .п.)
    Но для бизнес приложений что-то я пока скептически настроен. Разве что некий dashboard можно на нем попробовать реализовать.
    В любом случае набор стандартных компонент FireMonkey пока куцый и можно попробовать туда “ворваться” и занять свою нишу

    – многоплатформенность
    пока лично меня Macinotish не интересует. Может если добавят Android, то еще можно будет подумать. Пока даже нет идей, что из моего софта может пойти на этих платформах. Да и скорее всего там все сырое пока.

    – DataSnap
    с каждым разом он все улчучшается и вроде даже заявлена генерация клиентских прокси-классов на c++, java, php etc из серверов-приложений (webservice). По идее стоит все-таки попробовать:-)

    – заявлен новый Delphi PHP XE2, но что-то я его не вижу в Partner Portal
    по крайней мере заказать лицензию на него не получается, а предыдущий Delphi PHP XE у меня работает странно

    PS: разыгрывали 4 футболки с надписью Embarcadero. Одна у меня:-)

    PPS: Всеволод Леонов тоже выложил в свой блог запись о Киеве и поместил туда фотку. на ней даже я замечен:

    Фото Всеволода Леонова

  • position tracker

    Если стоит задача отслеживать текущее положение коммуникатора на Windows Mobile, то есть два метода:
    1. GPS
    получать позицию из встроенного gps можно либо с помощью GPSID (идет в поставке с VS .NET 2008), или открываю порт COM1 и читая данные оттуда (pure binary data+парсить их)

    2. phone cell towers
    с помощью RIL драйвера получается CellID, который конвертируется в Latitude/Longitude либо с помощью открытых баз, либо через API к серверам (Yahoo, SonyEricson, Yandex…)

    Ссылки по теме:
    http://msdn.microsoft.com/en-us/library/dd938890.aspx
    http://dalelane.co.uk/blog/?p=241
    http://sourceforge.net/projects/opencellclient/

    Кстати показать потом карту с координатами легко:
    – Google Map:
    http://maps.google.ru/maps?q=55.882244,37.618561
    – Карты.Яндекс (сложнее):
    http://n.maps.yandex.ru/?ll=30.466768%2C50.429686&spn=0.03931%2C0.019929&z=15&l=wskl&oid=7383247

  • PayPal: прием платежей

    С 24 сентября граждане Украины смогут принимать платежи на свой счет PayPal:
    https://cms.paypal.com/ru/cgi-bin/marketingweb?cmd=_render-content&fli=true&content_ID=ua/upcoming_policies_full&locale_x=ru_RU

  • лудим-паяем-кастрюльки починяем

    Всю прошлую неделю роутер D-Link 2640U стал включаться с третьего-четвертого раза. Т.е. тупо при включении горит красным лампочка Power и периодически мигают лампочки Status+DSL. Несколько раз включить-выключить питание помогает и роутер стартует нормально.

    А в воскресенье эта железяка перестала включаться даже с десятого раза и я оказался дома без интернета. А без интернета жизни нет. На “запасном” Huawei 1550 с мобильным интернетом от Utel (10коп за 1Mb) сильно не разгуляешься.

    В понедельник на работе решил поискать новый роутер на hotline.ua В принципе присмотрел пару Linksys/Asus с Wi-Fi 802n, но сказать, что они мне уж сильно приглянулись, так не сказал бы.

    И случайно на форумах ixbt.com наткнулся на обсуждение проблемы (аналогичной моей) с включением 2640U. У кучи людей такие же симптомы и при этом возникают через год после покупки железяки. Моя хоть честно отработала 3 года:-)

    Там же была на аналогичное обсуждение на форумах самого D-Link’а c рецептом лечения – перепаять вздувшийся конденсатор в блоке питания (330мкФ, 25V, 105градусов Цельсия). Самое интересное, что в воскресенье я сам роутер разбирал в поисках вздувшихся конденсаторов, а вот сам блок питания и в голову не пришло разобрать.

    В общем вчера на КарДачах были куплены 3 конденсатора (два про запас) по 75копеек штука и вечером впаял. Правда впаял я 470мкФ, 50V, 85 градусов. Он чуть больше по размеру, чем 330мкФ, но там место было на плате.

    Все заработало и вечером уже был интернет. Надеюсь будет еще долго работать.
    Можно сказать съекономил на новом роутере:-)