misc/class
lib/jquery_pnotify, lib/moment, lib/lodash, misc/notification, site/engine, misc/social
if( $.browser.msie && $.browser.version <= 8 ) include('lib/respond'); $._social.__cfg = {"init":[{"service":"basic"},{"fb_app_id":"1997094873850041","service":"fb"},{"vk_app_id":"2978320","service":"vk"},{"service":"twi"}],"like":[{"service":"fb"},{"service":"vk"},{"via":"","channel":"","hash_tag":"","service":"twi"}]}; window._SiteEngine = new classes.SiteEngine( { user_id: 0, controller: 'content_tape', action: 'view', content_css_version: '1459538664', social_enabled: 0} );

Faiwer

Блог web-программиста

Opera и загрузка файлов в CKeditor 3

27 мая 2011

Столкнулся с проблемой в Opera - после загрузки файла в диалоговом окне редактора CKEditor, если повторно загрузить файл, запрос для загрузки файла на сервер идёт не на заданный вами в настройках URL, а на два таких адреса. Как оказалось, виной тому использование события для тега bodyonbeforeunload, которое срабатывает всякий раз, когда document закрывается или перегружает страницу. Сие событие не функционирует в Opera, а так как форма для загрузки файлов не меняется до тех пор, пока диалоговое окно не будет закрыто, URL в нём "складывается".

Решение проблемы - использовать тег <base>, при формировани ответа на серверной стороне. В нём можно указать такой относительный URL, который заставит все относительные ссылки на странице складывать не с реальным Location документа, а с его Base модификацией. Но! не стоит забывать о том, что мир не стоит на месте, и когда-нибудь onbeforeunload появится и в опере... а посему костыль, решающий эту проблему сейчас может насолить в будущем :)

Javascript: Double → Int32

11 мая 2011

В Javascript для чисел используется тип double (8 байт, числа с плавающей запятой). Мне понадобилось создать имитацию одного Delphi приложения при помощи JavaScript. В ходе сего процесса я наткнулся на проблему переполнения 2147483647 + 10

  • JS (Double):  2147483657
  • Delphi (Integer): -2147483639

Создать переменную типа Int в JS нельзя. Но как оказалось привести  2147483657 к - 2147483639  можно без бубнов и плясок добавив побитовое или:

  • JS: 2147483647 + 10 | 0 == -2147483639

Спасибо stackoverflow :) Более подробно про логические операторы можно прочесть здесь.

 

Opera Dragonfly

10 апреля 2011

Любой современный браузер должен обладать инструментами для web-разработчика, Opera в их числе, её "инструмент" зовётся стрекозой (Dragonfly). К сожалению, сие насекомое сильно уступает по удобству и функционалу Firebug-у и Chrome Developer Tools-ам. Но что есть, то есть. Среди прочих недостатков стрекозы — она расположена на сервере производителя, и не смотря на то, что её файлы сохраняются в кеше, он обновляется слишком часто, что может служить серьёзной преградой для её использования на работе или со сверх-дорогим интернет-каналом.

подробности…

VLC - Как сделать фильм погромче?

3 апреля 2011

1. Регулятор громкости программы заканчивается на 200%, однако, если крутануть колесом мыши вперёд, можно поднять значение до 400%

подробности…

TIniFIle

27 марта 2011

Начиная с D2009, в Delphi появился нативный Unicode, однако в порывах использовать его в IniFile-ах может возникнуть некоторая заминка. Для того, чтобы TIniFile смог адекватно прочесть ваши unicode-cтроки, необходимо сохранять файл в кодировке USC2. Но на этом приколы не заканчиваются, сохранять нужно именно в USC2-Little Endian, а не Big Endian, в противном случае, класс не сможет прочесть Boolean переменные. Такие вот пироги =(