Ne v kontakte Antisocial programmer's blog

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 →

Coffiem lilsum dolor sit amet

    blog     fun     lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec metus at arcu commodo aliquam a vitae sapien. Donec ipsum massa, pellentesque et pharetra a, commodo non turpis? Quisque ultricies pellentesque augue, at mollis arcu vestibulum ac. Integer hendrerit rhoncus lectus. Aenean mauris dui, faucibus suscipit semper nec, eleifend ac lacus. In blandit eros ut libero dignissim vulputate tempus enim lobortis? Curabitur lorem urna, gravida quis pretium ac; porttitor vitae ante. Donec tincidunt purus non libero scelerisque consectetur. Donec lobortis sapien eget tellus vulputate facilisis ut eget justo? Nunc gravida porttitor quam ac pellentesque. Donec at turpis sit amet ante lobortis mollis eget quis dolor? Pellentesque quis mi sit amet libero suscipit accumsan quis a sem. Sed bibendum risus et sapien pretium in mollis tellus posuere? Nulla mi massa, tristique sodales tincidunt quis, posuere in nulla.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec porttitor semper iaculis. Vivamus facilisis dignissim venenatis. Aliquam varius auctor vestibulum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam tempor semper felis, eget bibendum magna faucibus eget. Vestibulum malesuada odio ut nunc mattis vel viverra urna mollis. Nam sed lorem et orci convallis sollicitudin id ut nibh. Donec sed est ac lacus ullamcorper vulputate auctor a mi. Pellentesque feugiat, dolor sed tincidunt ultrices, enim felis semper tellus, non ultricies neque felis at mi. Quisque posuere tortor ac nisl molestie et volutpat lectus gravida. Phasellus eu erat in nunc consectetur lacinia eu sed erat. Integer laoreet viverra velit, non placerat dolor pellentesque ac. In eu risus nulla, ut pharetra lorem. Cras nec nisl ut urna cursus viverra nec sit amet felis. Sed id quam quis mi tincidunt lobortis suscipit luctus diam! Nulla ac leo sed felis dapibus porta quis ut ante! Proin sit amet velit nec neque facilisis adipiscing non at metus.

In porttitor, nisi ac pulvinar lacinia, nisl risus rutrum elit, eu dapibus enim lorem ac justo. In ac tortor quis nunc imperdiet sagittis. Integer id risus leo. Mauris ac est enim! Etiam velit justo, vehicula in commodo nec; aliquam quis sem. Donec porttitor, tortor ac luctus ornare, eros quam adipiscing lacus, sit amet cursus dolor elit at metus! Proin sit amet ligula arcu, sed lobortis enim. Suspendisse potenti. Sed ac neque quam, non egestas turpis. Donec vel porttitor nulla. Sed aliquam rutrum iaculis. Nunc quis lacinia justo. Cras felis nibh; tempor ac luctus sed, faucibus eu est. Quisque porttitor tempus felis vel venenatis.

Pellentesque at tellus dui, ut mattis tellus? Donec in auctor nibh! Suspendisse dignissim commodo enim sit amet fermentum. Fusce quis magna non mauris aliquam varius. Curabitur laoreet ligula et lacus hendrerit ut dapibus velit rutrum? Aenean quam metus, tincidunt sed posuere at, posuere ut neque. А внимательным - подарок. Первым трем, кто напишет мне на я подарю Google Cache Dumper. Просто ради позитива. Fusce bibendum sem sit amet ante euismod eleifend placerat elit imperdiet. Proin ornare faucibus varius. Donec non cursus eros. Aenean facilisis, massa vel consequat pharetra, nulla libero hendrerit nibh, id mollis massa diam vitae sem.

Read more →