Скрипт для обновления FlashPlayer-а
20.10.2013 15:00
0
В который раз при обновлении FlashPlayer-а приходится лезть на сайт Adobe и бороться с их web-based установщиком. Надоело!
Скин будильника для MIUI
18.10.2013 13:53
3
В новой версии MIUI v5 появился новый будильник с горизонтальным слайдом, который как по мне - так очень блеклый и безликий. Решил я вернуть старый вариант из MIUI v4.
Xiaomi MI2
16.10.2013 00:08
0
Став обладателем данного отличного аппарата приведу краткую инфу которая может быть будет полезна другим владельцем телефона MI2.
Муки выбора смартфона
13.10.2013 14:44
0
Всегда долго и вдумчиво выбираю устройства. Они должны радовать глаз, быть функциональными и надежными. Однако, к сожалению, мы живем в век одноразовых предметов, и выбрать что-то подходящее под эти критерии весьма и весьма сложно.
Бегущая строка с прыгающими буквами на JS (canvas)
05.10.2013 20:57
0
Когда-то написал эту штуку под впечатлением от демки Lyra II еще на zx-spectrum.
Вот переписал на JS много лет спустя :) Ностальгия замучала :)
AVR Studio: хак для работы клонов STK500
25.09.2013 11:10
15
IT в картинках
16.09.2013 22:52
3 Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня...


Мой набор курсоров
26.08.2013 23:43
3Пришлось сесть, освоить за пару дней CorelDraw и нарисовать свой собственный вариант, а заодно и все остальные, требуемые системой.
С тех пор так ими и пользуюсь, вот решил поделиться.
Анимированное лого Firefox OS
18.08.2013 16:50
1Увидел анимированное лого на сайте Firefox OS и не смог пройти мимо :-)
Во-первых очень красиво нарисовано, во-вторых чистая CSS анимация!
Во-первых очень красиво нарисовано, во-вторых чистая CSS анимация!
Свои SQL placeholder-ы
08.08.2013 15:06
0Работа с плейсхолдерами обычно представляет собой нечто такое:
func( "select * from ? where `id`=?", "table1", 5 )
Внутри функции это развернется в:
select * from `table1` where `id`="5"
Всю работу по эскейпингу аргументов и заключение их в спецсимволы берет на себя как раз парсер плейсхолдеров.
Существуют так называемые "нативные" плейсхолдеры - они реализуются самой БД или драйвером БД и работают очень быстро, однако функционал их очень беден и работа отличается от БД к БД.
Я же расскажу здесь о "внешних" плейсхолдерах - т.е. реализуемых на стороне скриптового языка. Они чуть медленнее, так как обработка происходит в самом скрипте, но имеют на порядок больше функционал и независимы от БД.
В моем случае падение скорости совсем незначительное - используется обычное PCRE регулярное выражение для замены плейсхолдеров в строке и небольшая логика - в исходниках класса можно посмотреть.
Создать свои плейсхолдеры меня побудила статья про DBSimple от dkLab.
Там предлагались несколько плейсхолдеров, сильно облегчающих жизнь с SQL.
Идею и подход позаимствовал оттуда, а вот сами плейсхолдеры значительно изменил.