Ne v kontakte Antisocial programmer's blog

Opera Mini для iPhone

    notes     soft     review

Свершилось!

Opera Mini для iPhone уже в AppStore!

И она работает!

Общее впечатление - быстрая, но еще шероховато. Есть небольшие глюки с рендерингом страниц и обработкой форм, но в основном юзабельно. Галерея скриншотов,в котороя я постарался отразить все асперты работы с новым браузером - под катом.

Read more →

lint, large file, _FILE_OFFSET_BITS 64, problem, solaris, llib-lc

    dev     unix     solaris     bugs

Achtung!

If you are using long file (more than 4Gb) support for C standart library (via defining _FILE_OFFSET_BITS 64 macro or something else) and lint shows you errors like this:

(88) warning: constant in conditional context

argument unused in function
    (18) sig in sighandler

value type declared inconsistently
    lseek               llib-lc:unistd.h(396) long () :: unistd.h(396) long long ()
    tell                llib-lc:unistd.h(515) long () :: unistd.h(515) long long ()
    ftello              llib-lc:stdio.h(319) long () :: stdio.h(319) long long ()

function returns value which is always ignored
    fflush              fprintf             printf              fwrite
    signal              alarm               lseek64

function argument ( number ) declared inconsistently
    ftruncate (arg 2)   llib-lc:unistd.h(320) long  :: unistd.h(320) long long
    lockf (arg 3)       llib-lc:unistd.h(394) long  :: unistd.h(394) long long
    lseek (arg 2)       llib-lc:unistd.h(396) long  :: unistd.h(396) long long
    pread (arg 4)       llib-lc:unistd.h(410) long  :: unistd.h(410) long long
    pwrite (arg 4)      llib-lc:unistd.h(434) long  :: unistd.h(434) long long
    truncate (arg 2)    llib-lc:unistd.h(520) long  :: unistd.h(520) long long
    fseeko (arg 2)      llib-lc:stdio.h(318) long  :: stdio.h(318) long long

declared global, could be static
    min                 main.c(13)
    sighandler          main.c(18)
    fp                  main.c(11)

...Don't panic! It's known bug:

Read more →

Simple AJAX Long Request

    dev     web     projects     ajax

Для одного из моих проектов, над которым я сейчас активно работаю понадобилось сделать возможность выполнения длинных запросов с "обратной связью", т. е. с возможностью отсылки информации о ходе выполнения скрипта. Поскольку подключать к проекту какого-нибудь монстра типа JQuery ради одной этой возможности я посчитал нецелесообразным, решено было написать свою простую библиотеку, выполняющую эту функцию. результат я представляю вам в этом посте.

Simple AJAX Long Request (SALR) 1.0

Возможности:

  1. Отправка GET запросов с произвольными данными, переданными в виде хеша.
  2. Отправка форм POST и GET запросами.
  3. Автоматическая конвертация PHP-типов в соответствующие типы объектов JS.
  4. Глобальный доступ к PHP API благодаря реализации в виде статического класса.
  5. Перехват многих фатальных ошибок (см. http://dklab.ru/chicken/nablas/45.html)

Read more →

Молниеносная верстка с помощью Zen Coding

    web     dev     frontend     articles

Всем нам приходится писать html-код, кому-то больше, кому-то меньше.

В частности, у меня написание шаблонов для моих движков зачастую занимает до трети времени от разработки. Главная причина тому - сравнительная многословность html, да и css. Так бы я и мучился, если бы очередной раз не наткнулся на статью по Zen Coding.

Как постичь Дзен?

Если кратко, то Zen Coding - это целое семейство плагинов к разным редакторам, позволяющее писать сокращенный код, который потом будет автоматически развернут с полную конструкцию. Вот вам сразу пример:

Read more →

О том, почему интернет-банк работает только в IE6.

    thoughts     web     banks

Много слов (в том числе нелицеприятных) было сказано о различных интернет-банках и подобных системах, отличающихся крайне кривым интерфейсом, который зачастую еще и работает только в ИЕ6. Безумное количество лучей различного содержания было послано их разработчикам и Биллу Гейтсу заодно, огромное количество нервов вымотано и, по некоторым данным, с несколькими известными дизайнерами и юзабилити-экспертами случился инфаркт.

Почему все это происходит? Недавно мне представился случай увидеть это со стороны программиста. Один из моих друзей работает в компании, разрабатывающей какую-то крупную систему, помимо прочего работающую с финансами и документами. В детали я не вникал, но система здоровенная, работает над ней куча людей. Мой друг работает в этой компании Java-кодером. Сразу скажу, что программист он толковый, гораздо опытнее меня, но с вебдевом дела не имел чуть менее, чем вообще. Недавно он стукнулся ко мне в аську с вопросами по html-верстке, ибо его отрядили писать веб-интерфейс к той системе. Сами вопросы воспроизводить не вижу особого смысла, но куски кода, которые он приводил, просто выносили мозг запутанностью и "семантичностью" верстки. Часть объяснялась применением достаточно запутанного, с моей точки зрения, шаблонизатора wicket (по ощущениям - что-то вроде Smarty, только для Java). Однако были там и такие вещи, как таблица внутри и аналогичные прелести. Неудивительно, что браузер от таких финтов бесился и отрисовывал все как попало.

К чему я это говорю? Да к тому, что мой друг Java-кодер, а не верстальщик. И в его обязанности изначально не входила верстка. Однако кто-то решил сэкономить (опять кризис виноват?) и свалить на него и верстку тоже. Результат: все выглядит совсем не так, как хотелось бы, html-код до жути избыточен и трудночитаем. Думаю, что не погрешу против истины, если скажу, что зачастую та же ситуация возникала и при разработке других систем, интернет-банков и пр. А потом мы сидим на каком-нибудь хабре и поливаем говном разработчиков интернет-банка.

PS. Кстати, когда я подключал себе интернет-банк в альфа-банке, мне в офисе сказали, что он работает только в IE. Однако я уже почти полгода спокойно пользуюсь им из-под Linux'a в Firefox. Так что еще не все потеряно :-)

Read more →