Category: Soft/Programming

  • Clipper живее всех живых

    Есть проект по поддержке Clipper: http://www.harbour-project.org/

    Как ни странно на нем еще пишут и даже для разных платформ.

  • smtp, port 25

    Уже неделю на домашнем компе не мог отправить почту. Приходилось отсылать через Webmail.

    Вчера задолбало и полез в интернет. оказалось, что козлы из Укртелекома отрубили доступ к порту 25. Молча, без всяких предупреждений:-( Это они типа со спамом борются, *удаки. А что делать нормальным юзерам при таком раскладе?

    Ящики на abadev.com перенеправил на порт 465+SSL, а вот со scalabium.com такое не проходит. Порты 465 и 587 не работают на Hostrocket. Пока не знаю, что с ним делать…

    Update: порт 587  работает, но нужно выключить SSL

  • facebook: shortname for page

    Seems like now the Facebook do not require the 25 likes for page and everyone can create the short name.

    I created for Scalabium Software: http://www.facebook.com/Scalabium

  • AdSense+social buttons

    Два месяца назад ради интереса на одну страницу сайта с бесплатным продуктом и рекламным блоком от Google AdSense я добавил кнопки для социальных сетей (Google+, Facebook, Twitter etc)

    Нажимают их редко (за два месяца около 60 нажатий в сумме), но заметил другой эффект. После этого выросли суммы по кликам на рекламе. Само количество кликов на AdSense блоки такое же, количество показов тоже. А вот суммы выплат увеличились раза в два.

    Причем это не ошибочные клики (нажатие на рекламу вместо кнопок от социалок). Они далеко разнесены и рядом не расположены.

    Нужно попробовать добавить такие же кнопки социальных сетей и на все страницы Delphi Tips и на другие страницы с бесплатными продуктами (там, где висит AdSense).
    Тут даже дело не в деньгах (хостинг оплачивает и ладно:-)), а просто интересно самому.

  • e71 TV dual SIM

    Месяц назад заказал на PickEgg двухсимочный телефон – полный клон Nokia E71
    Вот он:

    e71 TV dual SIM


    Полная халява – удобный, куча функционала и всего за $26 (вообще $41, но была какая-то акция на него)Предварительно уточнил у них наличие русского интерфейса и способности читать-писать русские СМС и контакты. Все пришло очень быстро и качественно сделано.

    Но в Украине нужно регистрировать все телефоны (их IMEI) в УДЦР и для этого высылать заказным письмом:
    – заявление
    – копии первой+второй страницы+прописки из паспорта
    – оригинал упаковки посылки с моим адресом и трекингом (копии уже не проходят, хотя на сайте написано, что их достаточно!)
    – оригинал таможенной декларации CN22 с этой же посылки. При этом в описании товара должно быть написано “Mobile phone” или “Cell Phone”
    – инвойс заказа

    Самое интересное, что у меня есть все кроме формы CN22. Китайцы забыли ее приклеить на пакет:-)
    Сначала я покопался в старых пакетах и думал выковырять CN22 с них. Но там везде явно пропечатано в описании товара “Electronics” или вообще какие-то нечитаемые закорючки-иероглифы.
    Покупать чистый бланк этой CN22 и как-то его подделывать-состаривать не хотелось.

    В принципе неделю назад вернулся из Израиля и можно было на таможне в Борисполе предъявить этот телефон (как купленный “там”) и потребовать оформление декларации (т.к. сейчас в паспорте Украина не ставит отметки прилета-улета). Но возиться с этим тоже муторно.

    Поэтому пришлось идти другим путем:
    – качаются драйвера и программа IME
    – телефон подключается к компу через стандартный USB кабель. При этом на самом телефоне предлагается выбрать режим – нужно выбрать COM port
    – при первом подключении Windows спрашивает драйвера и мы подсовываем их из скачанного архива
    – запускаем программу IME.exe, подключаемся к com-порту (в моем случае был port=11) на скорости 9600
    – если все сделано правильно, то программа подклюится к телефону и вычитает текущие IMEI
    – у меня валяются куча старых ужу неиспользуемых телефонов. При этом их IMEI – “белые”, т.е. уже находятся в украинской базе УДЦР (проверил заранее). Поэтому в этой же программе я ввел два “белых” IMEI (из старых мобилок) и записал в новый телефон (вместо предыдущих значений)
    – телефон выключаем (я просто вынул батарею) и включил опять.
    – вуаля. Теперь в новом телефоне у меня два “белых” IMEI и уже не нужно регистрировать их в УДЦР

    По идее наверное (я не проверял и точно не знаю) можно залить и белые IMEI из существующих (по которым сейчас звонишь) мобилок.
    Насколько я помню регистрация телефона идет по паре сим-карта+IMEI, т.е. конфликта при одновременной работе двух телефонов не будет.
    Более того, почти все китайские телефоны имеют одни и те же IMEI в рамках одной партии при поставке.

    Т.е. ситуация такая же, как с MAC адресом сетевых карт. Он вроде бы и есть, и на него какие-то защиты навешивают. Но поменять его – пара пустяков. И вся партия дешевых сетвых карточек имеет одинаковый MAC-адрес

  • SecureString type

    The SecureString type from .NET 2.0 is very useful because allow to keep/store the strings/password as encrypted text. They are encrypted in memory cache too and will be decompressed only when you’ll copy the value to usual String’s variable.

    Unfortunately in VCL/Delphi the string type with similar functionality is not added still now.

  • 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;
  • 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: Всеволод Леонов тоже выложил в свой блог запись о Киеве и поместил туда фотку. на ней даже я замечен:

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