Bookmarks

С точностью до миллиметра
Врядли эта информация будет сильно востребована в повседневной жизни верстальщика, но ради интереса иногда можно и поизвращаться. Итак: верстка на миллиметрах. Первый вопрос, который возникает: что вообще можно верстать на миллиметрах? Второй — какие с этим могут быть проблемы? С первым вопросом все просто. На миллиметрах можно сверстать визитку формата 90х50, которую, в свою очередь, можно было бы распечатать на принтере. Сказано — сделано. Шутки ради использовал в качестве блочных элементов ...
Линкбилдинг: отделяем зёрна от плевел
«Что поСЕЕшь – то и пожнёшь». (Русская народная пословица, плавно переходящая в интернет-мем) Вниманию почтенного хаброчитателя, преимущественно, хабрасеошника и хабравебмастера, представляется уникальная возможность сравнить опыт западных SEO-специалистов и SEO-специалистов отечественных. Не так давно на популярном англоязычном SEO-ресурсе Search Engine Watch (что перевести можно приблизительно как «Поисковый Дозор»; привет Лукьяненко и Бекмамбетову :)) появилась статья Джона Линча «Анализир..
XML + CSS = счастье
Возрадуйтесь, дети мои, ибо пришёл я к вам с миром и богатыми дарами. Нет, я не принёс вам того, чего вы не видели. И даже не принёс того, чего вы не имели. От чистого сердца вручаю вам то, что всегда лежало у вас под ногами, но вы не замечали того, брезгливо перешагивая, пробегая мимо по своим, несомненно самым важным, делам. Константы! Да, ваши чаяния достигли моих ушей, пробрались в глубины души и вырвали наружу эти прекрасные создания, позволяющие синхронно менять связанные значения в разны..
docs.com изнутри
Утром получил письмо с инвайтом.Thanks for your interest in Docs. Our Docs service is expanding, and as a result, you can now create and/or upload your own documents (Microsoft Word, PowerPoint or Excel documents) in the service. We have already enabled these services for you; just go to http://docs.com/ where you can begin creating and uploading documents to share with your Facebook friends. We hope you enjoy Docs. The FUSE Labs Team Пара скриншотов внутри… Читать дальше →..
Выполнение SQL-подобных запросов над данными — как в браузере, так и на сервере
Marak Squires выпустил в свет JSLINQ — реализацию LINQ для Javascript, работающую как на стороне браузера, так и на стороне сервера (к примеру, node.js). Поддерживаются такие конструкции, как JOIN, UNION, RANGE, DISTINCT, COUNT etc. Смотрите:Код и примеры на GitHub; Живая демонстрация на сайте автора. Читать дальше →..
Разработка с использованием WEB SQL DB и Local Storage
Совсем недавно на хабре был пост, посвященный работе с WEB SQL DB. Одно из полезных применений локальных баз данных – работа в оффлайн режиме. Кроме этого, я покажу еще один вариант работы, когда вместо sql используется local storage, который поддерживается уже большим количеством браузеров. Читать дальше →..
Google Analytics: Определение позиции сайта по ключевому слову в поисковой системе Google
На текущий момент с помощью инструментов веб-аналитики можно отследить множество различных параметров, в том числе и ключевые слова, по которым пользователи перешли на сайт из поисковых систем. Но нам предоставляется информация только о том поисковом запросе, с которого пользователь перешел на сайт, но не его место в выдаче поисковой системы, на которое кликнул посетитель. К сожалению, большинство поисковых систем не предоставляют возможности отследить, с какой позиции поисковой выдачи был осущ..
Релиз LiveStreet 0.4
Сегодня вышел новый релиз блого-социального движка LiveStreet 0.4. Один год прошел с момента последнего релиза стабильной версии, за это время движок совершил существенный скачок вперед.Новые возможности: — Инсталлятор; — Система плагинов; — Плагин профилирования работы движка; — Плагин OpenID+ВКонтакте авторизации (отдельный плагин); — Функционал закрытых блогов и приглашений; Читать дальше →..
Реализация эффекта Philips Ambilight в превью изображений
Вчера в топике «Модификация изображений для сайта, или какие бывают превьюшки» в комментариях diGreez предложил, как мне показалось, очень интересный способ организации превьюшек изображений. Реализовал на PHP функцию, которая занимается созданием таких превьюшек. Функция документирована комментариями. Читать дальше →..
8bit Killer: FPS от восьмибитного лица
Что будет если взять фильмы «Безумный Макс» и «Побег из Лос-Анджелеса», добавить дух классических видеоигр (Contra, Megaman, Bionic Commando, Metroid и Wolfenstein 3D), а результат компилировать в исполняемый файл? Скорее всего получится «ничего». А вот если добавить отличную музыку и сюжет о спасении Земли от космического мутанта — тут уже совсем другое дело! Жанр: FPS Дата выпуска: 02/04/2008 Время на разработку: 8 месяцев Платформа:Windows Язык: English Читать дальше →..
Вышла совершенно новая сборка Chrome OS
Сегодня в наши руки попала совершенно новая сборка операционной системы Google Chrome OS. Запуская и работая с этой осью, понимаешь, что Гугл на верном пути. Для тех кто желает опробовать Chrome OS прямо сейчас, мы представляем эти ссылки Читать дальше →
Генерируем QR-код на PHP
QR-code, уже давно распространен повсеместно, во всех сферах человеческой жизни. Вроде такая популярная вещь, а нормальной библиотеки (Open Source) на PHP — нет. Товарища deltalab, очень напрягла эта проблема и он решил переписать имеющиеся в наличии С библиотеки ibqrencode от Kentaro Fukuchi, на более привычный ему язык PHP. Читать дальше →..
Документирование шаблонов
Документация — это хорошо! Она позволяет экономить время, и гармонично работать людям в команде. Встроенная в код документация — вдвойне хороша, она находится там где она нужна и не надо далеко ходить чтобы ее написать.Под катом пара наглядных примеров документации к шаблонам. Читать дальше →..
Прозрачный текст при совместном использовании фильтров Matrix и AlphaImageLoader в IE
Наткнулся на интересный баг(фичу) IE, при наложении на блок, с фоном из png картинки с альфа-каналом, AlphaImageLoader и какой-нибудь другой DX-фильтр содержимое блока становится своеобразной маской. Читать дальше →
Open API
Команда «ВКонтакте» так и не ушла на выходные, чтобы вслед за Merchant API успеть запустить еще один важный сервис для разработчиков — Open API. Благодаря VK Open API, любые внешние сайты теперь имеют возможность производить у себя авторизацию наших пользователей. Читать дальше →..
Привязка модели данных к представлению на javascript
Я думаю многие пользуются DataBinding`ом в .NET, она же привязка данных. Она позволяет, при выделенной модели данных и независимом визуальном представлении, забыть о синхронизации данных с формой. Привязав один раз properties модели к элементам представления, мы избавляемся от десятков обработчиков onChange и подобных для изменения полей модели, а в случае изменения поля вне gui-интерфейса (например синхронизация модели с базой), мы не будем мешать уровни абстрации, чтобы обновить textBox.text. ..
Квартет Анскомбе
Статистика — это такой инструмент… Очень страшный в неумелых руках. В умелых того страшнее, способен разорвать мозг на куски. Вот есть последовательности A, B, C и D, про которые известно следующее:  A B C D Среднее значение x 9.00 9.00 9.00 9.00 Дисперсия х 10.00 10.00 10.00 10.00 Среднее значение y 7.50 7.50 7.50 7.50 Дисперсия y 3.75 3.75 3.75 3.75 Корреляция между x и y 0.82 0.82 0.82 0.82 Прямая линейной регрессии y = 3 + 0.5 x y = 3 + 0.5 x y = 3 + 0.5 x ..
Вызов метода Javascript без его вызова фактически
Иногда мы бываем просто ленивыми. Особенно, когда доходит дело до написания кода. И хоть круглые скобки в вызове функции не приводят к избыточности, иногда все же они могут утомлять, особенно когда javascript-метод не нуждается в передаваемых ему аргументах. Иногда это просто надоедает. Читать дальше →..
Хабраиконки
Очень хочу стать хорошим дизайнером а также попробовать в этой жизни все. В сфере дизайна иконок я не профессионал, но пытаюсь отточить свои навыки. Где-то в недавних постах был топик про иконки для хабра, там-же был комментарий с предложением адаптировать иконку хабра к разным другим сетам иконок. Идея мне понравилась так-как сам по себе знак хабра не такой уж и сложный и узнаваемый. Сейчас у меня только 5 иконок для 4 сетов, делаю это без великой цели, ради удовольствия и тренировки. Буду бла..
Параллельный импорт данных
Представим, что у нас есть некоторый набор задач, допускающих возможность параллельного выполнения. К примеру, нам нужно организовать RSS-агрегатор, обновляющий через заданный промежуток времени все свои ленты. Понятно, что основное и при этом вполне ощутимое время будет уходить на загрузку данных с удалённого источника. Учитывая это, организация такого импорта путём последовательной загрузки лент лишена смысла, так в случае сколь-либо большого количества лент, импорт не будет укладываться в отв..
HTML 5 в Internet Explorer
Вкратце: как заставить новые теги из HTML 5 работать в Internet Explorer. Любой веб-разработчик смотря на HTML 5 плачет от счастья, которое наконец-то пришло в наш дом. Для большинства функций (такие как WebGL, многопоточность и веб-сокеты) придётся ждать поддержки от браузеров (а в самых правильных эти возможности уже есть), но новые удобные теги мы можем использовать уже сейчас. Однако Internet Explorer (даже последней, 8-ой версии) и тут сумел споткнуться — новые теги вне HTML 4 он просто н..
Кроссбраузерные HTML инклуды \\(^_^)/
Пусть у нас есть простенький хтмльчик index1.htm<!DOCTYPE html><html>     <head>         <title>Xbrowser HTML includes</title>         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>     </head>     <body>         <h1>First file</h1>     </body></html> Как известно, хтмл поддерживает инклуды только через iframe/object, но с ними не очень удобно работать из яваскрипта. Можно, конечно, прописать в каждую подключаемую страницу скрипт типа такогоnew function(){     var..
Создай свой QR-код с goo.gl
С недавнего времени, сервис коротких ссылок goo.gl, предоставляет возможность превратить любую ссылку в QR-код. Всё что вам нужно — это добавить в конце ссылки .qr (пример: goo.gl/t9Y3.qr).
«LibCanvas» — фреймворк для работы с Javascript Canvas
Здравствуй, Хабр! Думаю, люди, которые следят за моим творчеством, заметили, что я очень увлекся рисованием на Canvas в Javascript. Возможно это немного излишне, но ничего не могу с собой поделать, уж очень нравится эта технология. Так нравится, что я аж буду выступать на конференции с докладом о ней (Пономаренко Павел). Но это сейчас неважно, потому что я хочу презентовать фреймворк, который, хотя, только родился и еще не оброс функциональностью, но уже сейчас выглядит вполне завершенным, инте..
История одного «инцидента» или оконная пакость
Скажу сразу: слово «инцидент» взято в кавычки, т.к. на самом деле никакого инцидента не было. Это была «стабильная» работа форточек... И что же случилось?
Создание каскадных меню с ярлыками избранных приложений в контекстном меню Windows 7
Страшное название, но не придумал, как это сказать проще. Собственно, сама статья: В ходе этой статьи мы разберем как добавлять ссылки на избранные программы в контекстное меню рабочего стола Windows или «Моего компьютера». Инструкция разделена на 2 части: 1. Создание каскадных меню в контекстном и добавление ярлыков. 2. Добавление функциональности ярлыкам путем их регистрации. Начнем-с… Читать дальше →..
Javascript виджет авторизации OpenID
Где то полгода назад я сильно увлекся OpenID и всем что с ним связанно. Моим главным занятием в это время стало — неспешное чтение спецификаций, форумов, блогов и хабрапостов OpenID тематики. Все знания, которые мной были получены за это время, я «материализовал» в проекте компании, в которой собственно я работаю. Изучая спецификацию OpenID и прочих его расширениях (SREG, AX) и надстройках, мне пришла идея разработать Javascript виджет со своим API-прослойкой, в помощь другим разработчикам неж..
Браузер Кавер
На днях мы с ludoedoed запустили сервис для веб-дизайнеров www.browsercover.com, он быстро оборачивает картинки в окна популярных браузеров так, что картинки становятся похожими на скриншоты будущих сайтов. Это помогает восприятию, точно вам говорю. Готовые картинки отправляются заказчикам и в портфолио (самовывоз). Пользоваться сложно: нужно сначала загрузить картинку, потом в муках выбрать какой-нибудь браузер, определиться с размером конечного изображения, ввести ЮРЛ для адресной строки и за..
Quake2 на HTML5, без плагинов
В блоге Google Web Toolkit появилось сообщение, что разработчики из Гугль смогли прикрутить Quake2 (вернее проект Jake 2 — порт на java) к GWT. Были использованы следующие технологии: WebGL, Canvas API, html5-тег audio, Local Storage API и WebSockets. Для того, чтобы заставить работать Jake 2 с GWT, пришлось сделать некоторые доработки: — Переписать рендеринг под WebGL. — Переделать работу с сетью (для многопользовательской игры) с UDP на WebSockets. — Сделать все подгрузки ресурсов асин..
Office 2010 — бесплатно
Microsoft планирует с релизом Office 2010 выпустить специальную бесплатную версию Office 2010 Starter в добавление к бесплатным Office Web Apps. Эта версия, доступная только для OEM, по прогнозам компании, будет предустановлена на 80% новых компютеров и ноутбуков. Редакция Office 2010 Starter будет содержать в себе только облегченные версии Word и Excel, что зачастую с лихвой хватает обычному пользователю. Вместе с тем пользователь, с бесплатным, но ограниченным по возможностям офисом может по..
Высокохудожественные картинки на CSS
Вдохновленный логотипом Opera, сделанный Дэвидом Дисандро (David Desandro) с помощью CSS, Шон Мартел (Sean Martell) сделал логотип Mozilla Labs Raindrop, о котором писали и на хабре, правда не очень много. Читать дальше →
Динамические световые эффекты на Javascript с помощью Canvas
Jonas Wagner поэксперементировал с тэгом Canvas. Попробовал создать динамическое освещение 3-D объектов. Используются 2 текстуры — одна содержит цвета всех точек, другая нормали к поверхности (не знаю как точно перевести the surface normal). В описание довольно пространно описывается эта технология. Автор ссылается на http://en.wikipedia.org/wiki/Phong_shading и код, в котором, используется real-time вычисления освещения...
Турнирная таблица на SVG
Решил сделать интерактивную турнирную таблицу-график для футболного чемпионата России. Вот такую: Выбор инструментов был прост:табличка для браузера — значит, что-нибудь из вэб-технологий; нужна векторная графика; никаких закрытых либо сложных приложений при создании — я все-таки не вэб-дизайнер. В итоге выбор естественным образом пал на связку SVG+Javascript (что, правда, исключило IE из списка поддерживаемых браузеров). Читать дальше →..
Автоматический парсинг товаров с сайтов магазинов
Мы все время от времени покупаем какие-либо товары. Перед покупкой чего-нибудь более-менее дорогого или редкого, мы, как правило, сперва ищем товар в интернете. Сейчас на рынке поиска товаров доминируют Яндекс.Маркет и Price.ru, однако большая часть их баз данных — товары из интернет-магазинов. Интернет-магазины — замечательное изобретение, но зачастую требуется потрогать товар руками перед покупкой, сравнить с другими товарами, подумать… Возникает необходимость найти оффлайновый магазин с иском..
Must Have софт для Nexus One. Личный опыт
В своём блоге «Android в Украине» я написал одноименную статью Читать дальше →
ProgressBar — Javascript Canvas2d
Здравствуйте. Последнее время я достаточно часто имею дело с Javascript-canvas, особенно написание всяких игрушек, которые требовательны к трафику в силу необходимости загрузки множества картинок. Обычно сначала загружается около 50-100кб сжатого Javascript, после чего — энное количество картинок(например, 500кб, 2мб, 10мб и т.п.) и только после этого запускается сама игра. Можно, конечно, загружать по ходу, но отсутствие текстур врядли порадует игрока. Потому я решил, что необходимо сделат..
JQuery FormNavigate — плагин для удобной работы с onbeforeunload
Все, кто пользуется веб-интерфейсом gmail, наверняка замечали, как гугл заботится о нас и не даёт закрыть страницу, если мы начали составлять письмо и не сохранили его в черновики. И понадобилось мне для своего проекта сделать нечто похожее. Сперва сделал это используя window.onbeforeunload, но злая опера не поддерживает это событие. Призадумался, попутно нашёл плагин для jquery под названием FormNavigate. Читать дальше →..
Unlimited IE one-time CSS expressions
В поддержку дней CSS expressions на хабре Думаю все, кто сталкивался с решением каких-нибудь проблем в IE<8 знает про CSS expressions и про «одноразовые» CSS expressions, которые применяются к элементу только один раз, тем самым не создавая постоянной нагрузки на процессор. Обычно это решается так:.my-class { behavior: expression(someMagick(), runtimeStyle.behavior = 'none'); } А что, если хочется использовать больше свойств?..
CSS-Expressions on DOMReady (CSS+JS в одном файле)
Вероятно, многие из вас используя css-expressions сталкивались с проблемой периодического появления сообщения abort. В народе поговаривают, что связано это с изменением DOM-дерева до его готовности. Я тоже сталкивался и, не долго думая, решил написать небольшую «обертку» для expression’ов, которые я часто использую, учитывающую готовность DOM, упакованную в файл стилей. Оную вашему вниманию и представляю. Читать дальше..
Шрифт с помощью CSS
Дэвид Дисандро разработал CSS, который рисует шрифт. Шрифт он назвал Curtis. Читать дальше →
Строим график по статистике хаброюзера
По карме и рейтингу сложно понять какие блоги более интересны пользователю, и как в среднем другие пользователи оценивают его комментарии. Я решил реализовать возможность построить круговые диаграммы по обоим пунктам. В скрипте используются:XPath Регулярные выражения Google Charts Читать дальше →..
MIX: первый день, ВСЕ что вы хотели узнать про Windows Phone 7 и Silverlight 4
Полное и абсолютное руководство по материалам, представлнным вчера на MIX. Конференция MIX – это крупнейшее событие в мире web-разработки: три дня, более 130 докладов и сессий, десятки докладчиков с разных компаний со всех уголков мира. Подробное описание конференции я сделал в этой заметке, обратитесь к ней, если хотите узнать что это за мероприятие и какие темы на нем обсуждаются. Напомню, что всю информацию и онлайн-трансляцию можно найти по адресу http://live.visitmix.com/ .Запись прошедше..
uTorrent на страже online просмотра
Порой есть необходимость узнать качество видеоматериала, еще до его скачивания(сэмплы есть не всегда, да и скриншот не дает реальной картины) или просто быстро начать просмотр серии сериала, фильма, которые вдруг захотелось посмотреть в данный момент. В любимом клиенте utorrent, функция stream добавленная в alpha версии работает отвратительно. Для TorrentStream необходимо устанавливать специальный софт и смотреть в браузере. А как быть тем, кто любит «маленький» utorrent, хочет начать смотреть в..
OpenSource проект ищет разработчиков
Здравствуй, Хабр! Я хочу представить тебе свой некоммерческий проект и найти единомышленников/соразработчиков.Мотивационный скриншот О проекте
Простейшая генерация odt файла из существующего — работа над ошибками
Всем свойственно ошибаться… но я считаю, что ошибки стоит исправлять. Недавно обновился OpenOffice до версии 3.2 и я заметил, что генерируемые документы odt по-моему хабратопику открываются в нём с ошибками. Первой мыслью было то, что произошли какие-то кардинальные изменения в спецификации ODF 1.2. Но всё оказалось проще: Спецификация ODF требует в начале zip архива несжатый файл mimetype. OpenOffice до версии 3.2 распознавал odt файлы и не соблюдающие этого требования, в новой же версии это ..
Паттерн проектирования «Фасад» / «Facade»
Почитать описание других паттернов.Проблема Минимизировать зависимость подсистем некоторой сложной системы и обмен информацией между ними.Описание При проектировании сложных систем, зачастую применяется т.н. принцип декомпозиции, при котором сложная система разбивается на более мелкие и простые подсистемы. Причем, уровень декомпозиции (ее глубину) определяет исключительно проектировщик. Благодаря такому подходу, отдельные компоненты системы могу быть разработаны изолированно, затем интегрирова..
Доводим до ума Windows Media Center с помощью дополнения – Media Browser
Доброго времени суток, уважаемые Хабровчане! Я давно уже являюсь читателем Хабра, вот решился стать писателем :), тем более появился повод. Не так давно решил проблему просмотра фильмов на ЖК-телевизоре с компа, для, так сказать «неподготовленных пользователей» — родителей. Они в компе вообще ничего не понимают, а фильмы смотреть хочется. Записывать их на диски мне банально надоело. Прошелся поиском по сайту, подобной темы не нашел и решил заполнить пробел. Речь пойдёт о настройке Windows Medi..
«Прямой эфир» для общения c посетителями вашего сайта
Недавно я анонсировал Realplexor — habrahabr.ru/blogs/hi/79189/ — однопоточный событийно-ориентированный Comet-сервер, написанный на Perl и имеющий готовое API для Javascript и PHP. С его помощью можно создавать сайты, пользователи на которых взаимодействуют друг с другом в реальном времени, не перезагружая страницу и без значительного расхода трафика. Сегодня я хочу представить и, как водится, немного «покопаться в моторе» первой версии продукта Прямой эфир, работающей на платформе РуТвит с пр..
Поднимаем софтверный бизнес
Это вторая статья о становлении софтверного (интернет-) бизнеса в России (первая тут). В ней я собираюсь раскрыть некоторые ключевые моменты адаптации продукта под рынок (под требования пользователей), о преодолении тенологической пропасти, и чуть-чуть о реалиях российского бизнеса. Данный топик хочу приурочить к тому, что год назад (может, чуть раньше или чуть позже) появился продукт WEBO Site SpeedUp (ранее Web Optimizer). Мысли немного сумбурны, но, видимо, для каждого направления все сильно..
Превращаем Midnight Commander в консольный браузер для GIT
Вместо предисловия... Мне давно хотелось отсматривать код примерно как это сделано в meld, но только в консоли, и еще мне хотелось чтобы это все было увязано с системой управления версиями файлов GIT. В общем чтобы все делалось 1 кнопкой не выходя из mc.Ydiff Однажды у нас на канале (или это было на траке...) проявился некто Daniel Borca пошумел-пошумел и убежал, видимо не понравилась ему наша бюрократия, но зато оставил он после себя несколько сыроватых патчей, к готовившемуся релизу 4.7.0-pr..
Сервис для сборки Zend Framework в один файл
Здравствуйте, уважаемые хабрачитатели! Сей краткий пост посвящен небольшому сервису по сборке Zend Framework-a в один файл. Зачем это делать, не раз уже писалось на хабре (например, тут), но если кому-то лень читать, я передам основной тезис: при использовании кэшера опкода (к примеру, eaccelerator) сборка фреймворка в один файл дает большой прирост производительности. Сервис находится здесь. Кроме меня, его никто не тестировал, так что прошу сообщать о найденных багах. На данный момент исхо..
Паттерн проектирования «Декоратор» / «Decorator»
Почитать описание других паттернов.Проблема Возложить дополнительные обязанности (прозрачные для клиентов) на отдельный объект, а не на класс в целом.Описание Для более детального понимания проблемы, рассмотрим конкретную ситуацию. Пусть имеется некоторый объект — «кнопка», принадлежащий классу объектов «Кнопка», на который понадобилось возложить дополнительные обязанности. Под обязанностями, в данном контексте, понимаются какие-либо особенности поведения объекта. В случае с кнопкой, можно рас..
Singleton и Late static binding
Количество Singleton'ов в проекте зачастую прямо пропорционально его сложности и размеру. Естественно, что описывать закрытый конструктор, статическое свойство-объект и метод его получения для сколь-либо ощутимого количества классов немного утомительно, да и пожалуй неверно. Отсюда встаёт вопрос: как «вынести за скобки» реализацию Singleton'а? Читать дальше →..
Как правильно покупать товары на Ebay
Тема Ebay в связи с его русификацией становится очень актуальной, поэтому решил поделиться с хабрасообществом несколькими советами из области как правильно покупать товары на Ebay, чтобы не нарватся на мошенников и сделать правильную покупку. Большая часть описанного основана на личном опыте. Читаем далее..
Скачиваем Google Docs без браузера
Скриптик выглядит как-то так:#!/bin/bash token=$(curl -s https://www.google.com/accounts/ClientLogin -d Email=user.name@gmail.com -d Passwd=qwerty -d accountType=GOOGLE -d service=writely -d Gdata-version=3.0 |cut -d "=" -f 2) set $token curl --silent --header "Gdata-Version: 3.0" --header "Authorization: GoogleLogin auth=$3" "http://docs.google.com/feeds/user.name@gmail.com/private/full" | tidy -xml -indent -utf8 -quiet > /tmp/gdocs.xml file=(doc1 doc2 doc3 doc4)resourceId=(document:0ASpnxq..
Модульные сетки, часть третья. Таймсэйвер
Третья из шести статей по модульным сеткам и их адаптации под веб.
Паттерн проектирования «Адаптер» / «Adapter»
Почитать описание других паттернов. Пожалуй, начнем. Для начала, поясню несколько организационных вопросов.Описание того или иного паттерна, является моей сугубо личной интерпретацией теоретического и практического материала, собранного из книг и интернет-статей; При построении UML-диаграмм, я буду использовать свободный редактор от компании astah, ввиду его простоты и независимости от конкретного языка или среды. При этом, диаграммы не будут отличатся изобилием картинок и цветов, но будут яс..
Сборка и запуск HipHop-PHP
Почти три недели назад был анонсирован новый проект от Facebook. Он называется HipHop-PHP. Для широкой публики исходные коды стали доступны лишь сутки назад. HipHop был создан для улучшения производительности Facebook. Он преобразует PHP код в C++ код и комплирует его с помощью g++. HipHop доступен под opensource лицензией. В данной статье описан процесс сборки HipHop из исходных кодов и его использование. Читать дальше →..
Переход с Windows 7 RC на RTM
Как вы помните, Windows 7 RC прекратит хорошо себя вести в начале весны. Не все знают, что таки можно перейти с RC на RTM без переустановки системы. А я знаю, и с удовольствием расскажу. Прежде всего, в ветке HKLM\Software\Microsoft\Windows NT в значениях параметров EditionID и ProductName заменить слово Ultimate на слово Enterprise. Затем взять образ w7 Enterprise, открыть каким-нибудь редактором, UltraISO или еще чем-то, найти файл Sources\cversion.ini, и в строчке MinClient поставить номер..
10+ удобных онлайн-редакторов для программистов
Как у разработчика, очевидно, что ваш основной рабочий инструмент, который позволит вам быстро идею превратить в код: текстовый редактор. Время идёт, и теперь нам доступно множество онлайновых текстовых редакторов, которые могут помочь вам создавать свой код с любого компьютера, имеющего доступ в интернет. В этой статье рассмотрим более 10 таких редакторов.Amy Editor Созданый в 2007 Петром Кронторадом (Petr Krontorad), Amy Editor продвинутый редактор с интерфейсом в стиле Mac. Amy Editor имеет ..
Вожделенный Nexus One за ~$620 в Украине/России или как не платить перекупщикам
Что делать если хочеться заполучить вожделенный Nexus one, но не хочется переплачивать 200-300 баксов перекупщикам? Есть варианты, как купить телефон напрямую от Google и получить его домой примерно за $620 USD Читать дальше →
HTML 5. Работа с Web SQL базой данных
В HTML 5 есть много новых возможностей, которые позволяют web разработчикам создавать более мощные и насыщенные приложения. К этим возможностям относятся и новые способы хранения данных на клиенте, такие как web storage(поддерживается в IE8) и web SQL database. При этом если web storage ориентирован на хранение пар ключ-значение, то в случае с web SQL database у нас есть полноценный sqlite(во всех текущих реализациях применяется именно этот движок баз данных, что является проблемой при стандарт..
Релиз Skype для телефонов Symbian
Сегодня увидел радостную новость — 15 февраля 2010 г. Skype выпустил релизную версию своего приложения для телефонов Symbian. В качестве плюшечек заявлены бесплатные звонки Skype-to-Skype и собственно чат, плюс возможность передачи файлов.Как я понимаю, поддержка видео звонков будет попозже. Список поддерживаемых телефонов порадовал — насколько я понял — вся линейка S60v3 FP2 + S60v5. Приложение доступно по ссылке, или же просто зайдите с мобильного телефона на skype.com/m На мой телефон (nok..
Небольшой обзор веб-радио сервисов и интернет плееров
В последнее время, особенно когда нечего делать, часто хочется включить какую-нибудь музыку для фона (Работаю я чаще в тишине). Искать и заполнять плеер каждый раз разными хорошими песнями меня дико раздражает. Лень взяла свое или фантазия иссякла, но мне надоело каждый раз составлять плейлист подобным образом, как, впрочем, и обычным шаффлом. Решено было попробовать то, что предлагает веб. Что я там нашел для себя, попробую рассказать. Если вы можете добавить вкусный url, предлагайте. Читать да..
Добавляем свои поисковые системы
Что мне нравится в Google Chrome, так это возможность очень удобной работы с разными поисковыми системами: ввел ключевое слово, пробел и печатаешь запрос. Однако этой функцией пользуются на 100% далеко не все. Сегодня я хочу рассказать, как добавлять свои «поисковые системы» (это, на самом деле, могут быть не только поисковые системы) и тем самым повысить производительность работы в Интернете. Где это все настраивается? Смотрим картинку: Читать дальше →..
nodeJS и nonblocking I/O
Добрый вечер уважаемые читатели, На хабре последнее время проскакивало несколько упоминаний о node, быстрой платформе для создания вэб приложений на javascript, обладающей довольно уникальной на сегодняшний день особенностью, неблокирующим I/O (вводом/выводом).Для начала о nodeJS: 1) В качестве языка используется Javascript 2) Для выполнения Javascript используется движок V8 от Google, который работает довольно быстро благодаря компиляции в машинный код перед выполнением. 3) Для реализации н..
130 параметров алгоритма ранжирования сайтов от Google
На что Google обращает внимание при ранжировании сайтов? Почему этот поисковик является самым популярным в мире и занимает громадную долю рынка. Search Engine Journal собрал 130 из 200 факторов, учитываемых в ранжировании сайтов.
текст под произвольным углом без флеш и js
Ранее здесь была представлена статья о том как сделать вертикальный текст картинками, генерируемыми php. Теперь я хочу вам рассказать о том как сделать поставленную задачу без картинок, флеш и js, только средствами html и css. К тому же стало возможно сделать текст под произвольным углом. В конце статьи есть готовый пример. Читать дальше →..
Как интегрировать Buzz с ЖЖ и другими сайтами
У меня появился Buzz, и я обнаружил, что у других пользователей каким-то образом транслируется в Buzz FriendFeed, Juick и даже LiveJournal. У меня в Connected Sites этих сервисов нет, хотя я в них и залогинен. Вопрос: как добавить эти сервисы к Buzz? Кто уже знает? UPD: Кажется, эта возможность связана с тем, указаны ли эти сайты здесь: www.google.com/profiles/me, но я добавил ЖЖ, пока что не помогло… Возможно, сайты из профиля в Buzz добавляются раз с задержкой. UPD2: Брэд Фицпатрик объяснил,..
Рост продаж после повышения юзабилити и улучшения user experience сервиса PosterXXL.ru
Улучшение user experience и повышение юзабилити сервиса posterxxl.ru привело к росту чиcтой прибыли на 133%. Для большого количества отечественных e-commerce сайтов и интернет-магазинов рост прибыли возможен без дополнительных затрат на рекламу и продвижение, за счёт улучшения пользовательских качеств сайта. О том, как это было сделано на примере сервиса posterxxl.ru вы узнаете из этой статьи. Читать дальше →..
Учите японские азбуки
Если вам необходимо или интересно учить японский язык, то, вы вероятно, начнете с изучения слоговых азбук, хираганы и катаканы. Для этого я с удовольствием пользовался программой iKana, но многие мои знакомые не могут сделать того же, потому что разработчик пишет софт только для Mac OS X (да ещё и берет за это 12 €).Я всегда считал, что изучение слов незнакомого языка «по карточкам», да ещё в виде интерактивного теста — самый эффективный и гиковский способ. Поэтому я набросал небольшой сайтик, ..
Якорная навигация на jQuery (graceful degradation)
Недавно я наткнулся на интересный плагин для jQuery: BBQ — Back Button & Query Library. И решил на ее основе сделать свой плагин для навигации на основе якорей. Задачи, которые я себе ставил:нормальная работа ссылок в условиях выключенного javascript (читай — нормальная индексация страниц поисковиками) поддержка обычных anchor-ссылок безо всяких дополнительных запросов поддержка отображения подгруженного контента в разных областях страницы Результат можно посмотреть здесь. А еще можно почи..
Bash\'s dead, baby*. Viva zsh
Позволю себе поднять упавшее знамя, оставшееся после предыдущих ораторов и продолжить благое дело продвижения zsh в массы. Надеюсь, после прочтения топика вы тоже смените старый добрый, но, как по мне, так застрявший в прошлом, bash на более удобный и продвинутый zsh. Чтобы не быть голословным, попробуем рассмотреть это дело в контексте абсолютно субъективного и предвзятого сравнения bash vs. zsh. Покажите..
PXE Boot за 15 минут
Здравствуй %username%! Сегодня я расскажу как за 15 минут можно развернуть сетевую загрузку с удобным меню загрузки и минимумом полезных утилит. Нам понадобится cервер под управлением Linux в моем случае Ubuntu, немного энтузиазма и свободного времени. Я надеюсь статья будет вам полезна и я получу инвайт на Хабр :) Спасибо sky_lord! Читать дальше →..
NoSQL: HyperGraphDB — база данных на основе графов
Наверное, не многие знают о существовании такого типа баз данных, как базы данных на основе графов (graph db). Ранее в NOSQL среде была распространена всего одна система такого плана — Neo4j. Сегодня же к нам прибыло еще 2 — Infogrid и HyperGraphDB. О последнем и пойдет речь. Как описывают сами создатели свою систему:«HyperGraphDB — это расширяемая, портативная, распределенная, встраиваемая система общего назначения со свободным (open-source) механизмом хранения данных. Эта система разработана ..
Раскрась свои теги. CSSL
     Я иногда сталкивался с тем, когда web-программист не знал CSS или, скорее, не хотел заниматься облагораживанием своего HTML, который являлся результатом работы разрабатываемого им скрипта. Это натолкнуло меня на мысль, что ему (программисту) не помешало бы иметь при себе некоторое средство для создания «красивых» страниц. Средство должно было бы включать в себя некоторый CSS, возможно, картинки, и подключаться к любому HTML (очевидно, созданному по некоторым определённым правилам). При этом..
Горячая замена кода (code hot swapping) в РНР
Погода за окном просто требует чего-то горяченького, поэтому воспользовавшись возможностью что-то по исследовать в свободное время, я решил подумать — а можно ли не останавливая скрипт, подменить функцию, которая выполняется? С таким требованием я встретился чуть ранее, при разработке нашего стартапа. У нас был один из внутренних серверов, который заведовал всеми действиями между пользователями в реальном времени. Это обычный РНР-демон-роутер, который обрабатывал запросы от клиентских запросов (..
jQuery.deserialize()
Надо тут было сделать операцию, обратную методу jQuery.serialize(), т.е. по GET-строке заполнить форму. Вроде ничего не нашел, подумал, что написать будет быстрее, чем копаться. То, что получилось — раздаю всем желающим, возможно, кому нибудь час-другой сэкономит. Пример:mvasiliev.ru/jquery.deserialize.html Брать здесь:mvasiliev.ru/js/jquery.deserialize.js Читать дальше →..
Склад бесплатных иконок
Прошелся по закладкам и образовалась такая толстенькая подборочка ресурсов с бесплатными и качественными иконками, с которой спешу поделиться с тобой %username%!Iconfinder Читать дальше →
Румикс.ру. Через полгода после запуска
Полгода назад я публиковал здесь статью о своём стартапе — roomix.ru, который позволяет расставлять реальную мебель по виртуальной комнате, прямо на сайте. И в связи с участившимся в последнее время мнением «ох эти стартапы-однодневки, запустятся, запостятся на хабр, а потом загибаются» решил написать, что стало с нами сейчас и как мы заработали свой первый миллион. Читать дальше →..
Генератор иконок — Iconizer.net
Недавно я и Тимур Гаффоров запустили наш новый сервис для генерации иконок Iconizer.net. Сервис позволяет выбирать формат файла, с легкостью менять цвета, размеры и делать иконки прозрачными. В каталоге несколько тысяч иконок, удобно рассортированных по категориям, с наличием поиска. И конечно, иконки часто добавляются. Сервис немного похож на наш Preloaders.net, так как выполняет похожие функции. Но, самое главное, он перенял с него простоту дизайна и легкость использования...
Реализация 960gs в Drupal (NineSixty theme)
О NineSixty NineSixty это тема для Drupal на основе 960gs, предназначенная для использования в качестве базовой темы.Преимущества NS:контент-ориентированная разметка с использованием классов «push» и «pull» динамическая ширина блоков в зависимости от контента инструменты для отладки и визуализация сетки поддержка языков с направлением письма справа налево Читать дальше →..
Двунаправленный асинхронный обмен данными в веб-приложениях
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изо..
Регулярные выражения. Сборник рецептов
Мы каждый день работаем с текстом, решая разные задачи. Проверяем текст на правильность ввода некоторых данных, ищем, заменяем некоторые значения, выделем некоторые данные из текста. Порой объём этих данных значительно возрастает и справиться с такими объёмами текстовой информации за актуальный промежуток времени не получается. Нам на помощь прийдут регулярные выражение. Этот мощный инструмент многие специалисты уже давно используют очень успешно. Я говорю не только о разработчиках программного..
Чему я научился в Майкрософт
Проработав пять лет в различных командах в Майкрософт я вынес несколько вещей, о которых я даже не подозревал, когда оканчивал колледж. Основные ценности, чему я научился, вынесенные уроки, причина моего крика на друзей, как ни называй, они сослужили мне хорошую службу. Некоторые из этих вещей специфичны для Майкрософт, но большая часть найдет применение в любой командной/корпоративной среде. Некоторые из них сложны – из-за них тебя могут уволить (а может и хуже), если ты не знаешь, что делаешь..
Список Javascript библиотек для рисования графиков и диаграмм 2
Продолжаем тему визуализации данных в интернете. Предыдущие топики:Изумительные диаграммы с новым Chart контролом Визуализация направленных графов в вебе Список Javascript библиотек для рисования графиков и диаграмм — habrahabr.ru/blogs/javascript/79960/ (публикация в блоге — msug.vn.ua/blogs/akrakovetsky/archive/2010/01/04/javascript-charting-libraries.aspx) Читать дальше →..
Список Javascript библиотек для рисования графиков и диаграмм
О визуализация графов в вебе говорили здесь, навеяно этой статьей. Под катом обзор Javascript библиотек для рисования графов, диаграмм и прочей красоты. Читать дальше →
7+ превосходных инструментов для оптимизации изображений
Перевод статьи 8 Excellent Tools for Optimizing Your Images К сожалению на момент перевода один из сервисов перестал работать. Но хабровчане предложили еще много хороших решений! Одним из самых простых способов уменьшить время отклика страниц на вашем сайте является оптимизация изображений. Есть несколько бесплатных инструментов помогающих уменьшить и оптимизировать изображения. В этой статье вы найдете удобные инструменты для создания картинок для веба настолько маленьких по весу, насколько..
Сжатие Юникод данных
В одном будущем проекте встала задача передавать и хранить данные в формате VCard, которые содержат кириллические буквы. Так как размер передаваемой информации ограничен, необходимо было уменьшить размер данных. Было несколько вариантов: Использовать традиционные кодировки (для кириллицы — CP1251). Использовать форматы сжатия Юникода. На сегодняшний день это — SCSU и BOCU-1. Детальное описание этих двух форматов привожу ниже. Использовать универсальные алгоритмы сжатия (gzip). Красивый, но..
Баги Internet Explorer 8
Опубликован список из 59 CSS, 4 HTML, 2 DOM, 1 Javascript багов Internet Explorer 8. На некоторые из них указаны и решения. Информация периодически обновляется. UPD1 15:10МСК: Страница не открывается. Хабраэффект видимо не выдержала. UPD2: Сохраненная страница тут http://narod.ru/disk/15969326000/ie8.rar.html Спасибо habrausername!..
Небольшой отладчик в Javascript
Недавно столкнулся в исследованиях с проектом trimpath. Лично для себя ничего интересного не обнаружил, кроме интересного способа расстановки точек останова (я его немного видоизменил от оригинала — иначе длинные строки некорректно отображались в опере и ИА) Читать дальше →..
Повышение дохода от Adsense на 20%
Рецепт очень простой — надо выкинуть из «эфира» всех смс-разводил, тесты на что угодно, смс-шпионаж и прочие прочтения вконтактов. К сожалению необходима ежедневная фильтрация подобных объявлений на ресурсе, но в конечном итоге мне это дало, в среднем 20% прирост ежесуточного дохода. Это результат 4 недельного мониторинга доходности от Adsense. Эффект заметил примерно через неделю, но тогда я отфильтровал только около 50 подобных ресурсов. Сейчас список составляет 123 ресурса. Надеюсь, что он..
Готовимся к Хабра-эффекту
Заметка посвящена не столько возможным методам защиты (о них уже было много написано), сколько обзору небольшого списка для быстрой проверки при подготовке к возможных скачкам посещаемости. Судя по статистике нагрузки на электронные магазины на прошлой неделе (когда начался рождественский сезон продаж на Западе), даже для крупных магазинов время ответа может колебаться на 20%, что же говорить о менее крупных веб-сайтах? Такую проверку обязательно нужно проводить перед выпусками новых продуктов,..
Загрузка браузером нескольких файлов
Если нужно дать пользователю возможность загрузки нескольких файлов, традиционное решение на данный момент — использовать для этой цели Flash (реже — Java applet или ActiveX). В случае, если соответствующий плагин недоступен, пользователю, как правило, показывают стандартный HTML-элемент для загрузки файла. Последнюю ситуацию можно улучшить, если использовать встроенную в браузеры возможность множественной загрузки файлов. Из всех браузеров сейчас данную возможность не поддерживает только Inter..
Текст любой ценой: PPT. Дубль второй
Недавно я анонсировал свой вариант чтения презентаций PowerPoint с помощью чистого PHP. Тогда я с сожалением отметил, что класс сырой и нуждается в доработке. Долго ли, коротко ли, но ошибки были найдены — теперь файлы читаются заметно лучше, без всякой грязи. Надеюсь, вам пригодятся мои наработки. Читать дальше →..
Спам в Google Wave
Первые спамеры добрались до Google Wave, это бот удаляющий в публичных волнах контент и размещающий свой текст. Читать дальше →
Отладка Javascript
Многие задают мне один и тот же вопрос: «Как дебажить этот $%*!%$! Javascript?». Так вот, во-первых Javascript — не $%*!%$! А как я его дебажу — сейчас расскажу. (Примечание: наверное эта статья больше для новичков. Так что не судите строго) Читать дальше →
Большие таблицы и ENUM
Продолжение статьи Большие таблицы и уникальные ключи. У меня снова возникла необходимость изменить структуру достаточно большой таблицы в MySQL. Изменения касались поля типа ENUM. ИтакДано. Таблица MyISAM В таблице есть поле типа ENUM. Размер — 145 миллионов записей. Объём на диске — 12 ГБ. Также в таблице есть уникальный ключ на строковое поле VARCHAR(150).Необходимо изменить список констант поля ENUM. То есть имеем поле `my_field` ENUM('A', 'B') NOT NULL. Надо поменять на ENUM('C', 'D..
Маленькая js util библиотека, добавляющая полезные методы
Небольшая js библиотека (2кб min&gzip), реализующая функциональные методы (всего около 50), ниже часть из них: Collections: each, map,reduce, detect, select, reject, all,any, include, invoke, pluck, max,min, sortBy Functions: bind, bindAll, delay,defer, wrap Objects: keys, values,extend, clone, isEqual, isElement,isArray, isFunction, isUndefined
Управление проектом на одной странице (таблица из одноименной книги К. А. Кэмбэлла)
Только дочитал означенную в названии топика книгу. Она предлагает очень интересную и удобную схему для ведения проекта. Фактически, это – несколько усложненная диаграмма Ганта. Однако я предположил, что таблица уже созданная в Excel будет многим хабравчанам удобна. Сама по себе книга имеет ценностью на 80-90 % в этой схеме. Но, думаю, без первоисточников вполне можно справиться с изучением данной диаграммы, тем более, что на официальном сайте издательства она представлена как: Читать дальше →..
Большие таблицы и уникальные ключи
На днях у меня появилась задача — добавить новое поле в таблицу. Казалось бы, ALTER TABLE… Не тут-то было. Я запустил этот запрос в вечернее время, однако утром он всё ещё выполнялся (16 часов оказалось мало :) Я сразу предположил, что проблема скорее всего в построении уникального индекса и огромных размерах исходной таблицы. Как известно при ALTER TABLE сервер создаёт временный файл, в который копирует необходимые данные. SHOW PROCESSLIST это подтвердил. Приведу более подробную постановку з..
Текст любой ценой: PPT
Некоторое время назад мы с вами обсуждали получение чистого текста из различных форматов данных: будь то PDF или DOC. В одном из обсуждений был высказано предположение, что при парсинге презентаций PowerPoint я заработаю геморрой или другую страшную болезнь мягкой точки. Что ж, волей судеб мне пришлось доставать текст и из этого «сладенького» формата. Скажу честно, геморрой заработать не удалось, а вот класс для парсинга презентаций вышел. Читать дальше →..
Google Navigation работает во всем мире… благодаря небольшому хаку ;-)
Многие из Вас слышали, что пару недель назад Google представил свою программу для Навигации. Кто не видел- вот ссылка на видео Но с этой программой была одна проблема… Она работала только в США. Вероятно, лицензии на карты, купленные Google не позовляли использовать навигацию в других странах (в США у Гугла уже свои карты ;-) ) Но, как мы знаем, мир не без добрых людей: Благодаря их стараниям, Навигация работает во всем мире, в том числе и в наших странах- сам только что катался с ней по К..
Экспорт Дней рождения из вКонтакте в Google Calendar
Здравствуй, уважаемое хабрасообщество! Сегодня я хочу поделиться с тобой одним, весьма полезным, на мой взгляд, скриптом. Если вам уже всё понятно из картинки для привлечения внимания, вот линк. Читать дальше →
mod_rewrite: Просмотр списка правил только один раз
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек: он просматривает список правил снова и снова, пока URL удается хоть как-то изменить. Очень часто получаеются и бесконечные циклы(например добавление расширения — оно добавляется снова и снова, если специально регэкспом не ограничить), над которыми с непривычки приходится поломать голову. Все надежды на модификатор [L] тщетны — он лишь сразу запускает следующую иттерацию обработки. Да и без бесконечного цикла л..
Цепной квайн
Один японец написал забавный цепной квай.Что такое квайн?. посмотреть,что он написал
Ample SDK — Javascript GUI библиотека. Обзор
Доброго времени суток, %username%. Представляю твоему вниманию анонс Ample SDK, новой кросс-браузерной библиотеки интерфейса пользователя. Познакомиться с проектом Ample SDK тебе будет интересно по следующим причинам:упрощает создание клиентских веб-приложений реализует стандартные веб технологии и API кросс-браузерно повторяет архитектуру веб-браузера (ничего нового учить не надо!) позволяет использовать SVG в HTML (также в Internet Explorer, хм!?) позволяет использовать XUL в любом совре..
Запускаем софтверный бизнес в России
Много было в последнее время топиков о стартапах, организации команд, разработке ПО и некоторых других вещах, неразрывно связанных с софтверным или интернет-бизнесом. В этой статье я хочу рассказать, что сейчас будет вас ждать, пожелай вы открыть свою компанию по продаже программного обеспечения (ПО, далее софта). Ибо пока полноценных топиков на эту тему я не видел. Зачем нужен этот топик? Чтобы после прочтения можно было однозначно ответить на вопросы «А оно мне надо?», «Стоит ли переводить пр..
Дао Вебсервиса. (Или да хватит же изобретать велосипеды!)
Недавно на Хабре была опубликована статья под провокационным заголовком и призывом к прекращению изобретений велосипедов в API-строении. Поскольку тема мне интересна, то я просто не мог пройти мимо. Увы, реальность за хабракатом меня сильно разочаровала — я увидел очередной велосипед, да еще и с квадратными колесами. (Коллеги, ничего личного, только техническое обсуждение.) Правда, авторы честно сказали, что увидели на нескольких сайтах модное слово REST и решили сделать по нему. Только вот пон..
Расстановка дефисов, минусов, тире и кавычек
Вопросы правильной расстановки дефисов, длинного и короткого тире, знака минуса, кавычек-елочек и кавычек-лапок уже неоднократно поднимались в интернете и на Хабре в частности (см. ссылки ниже). Однако по-прежнему, студенты и аспиранты в своих курсовых и дипломных, диссертациях и авторефератах не уделяют достаточного внимания типографике. В данной заметке я привожу две таблицы с основными правилами расстановки указанных знаков и отбивок между ними при верстке текстов в системе LaTeX, в которой ..
Image Swirl или новая визуализация поиска изображений
Видимо ребята из Google не собираются останавливаться на достигнутых результатах в поиске изображений. Всего месяц назад механизм Google Similar Images (анализ картинок не по названию, а по содержанию) оценили все пользователи интернет-гиганта. Теперь же все желающие могут ознакомиться с Водоворотом Изображений. С ним ваши результаты поиска изображений соединены вместе в 12 различных групп. Google Image Swirl работает приблизительно для 200 000 изображений...
Почти настоящая многопоточность средствами php 5
В очередной раз читал про многопоточность в php точнее полное её отсутствие и всевозможные костыли в виде не блокируемых сокетов. Вот как раз там наткнулся на интересную статью в которой описывался очень простой и эффективный способ распараллеливания потоков. На основе этого материала написал небольшой класс что бы облегчить себе работу в будущем. Читать дальше →..
jQuery плагин для получения данных формы + ajax аплоадер файлов
Доброго времени суток, уважаемое Хабросообщество! Не пытаясь скрыть легкое волнение, публикую свой первый пост, темой которого стал мой скромный jQuery-велосипед для быстрого и безболезненного сбора данных, введенных пользователем на странице (сразу небольшая оговорка для тех, кто закричит — «ату его! Зачем еще один подобный плагин?», отвечу: во-первых — а быть может именно это кто-то из хаброчитателей и искал, во-вторых — для саморазвития, в-третьх: для собственного удобства и безболезненного и..
Борьба с нагрузкой на DiPHOST.Ru. Success story
Однажды...
API для сайта, хватит изобретать велосипед!
Поступила задача – создать API для сайта scribbler.ru, которое позволило бы сторонним разработчикам работать с ресурсами сайта, писать приложения как внутри, в виде swf файла, так и находящиеся вне сайта, допустим десктопное приложение, которое может получать/отправлять почту пользователям сайта. Всем известно, что популярные российские проекты (vkontakte.ru, mail.ru и какие-либо другие) имеют свой API. Для примера я начал было их осваивать и смотреть, как же они реализованы, и знаете что, кажд..
dklab_multiplexor: постоянное Javascript-соединение с сервером в условиях сотен тысяч онлайн-клиентов
Dklab_multiplexor — это инструмент, который позволяет держать одновременно сотни тысяч долгоживущих открытых HTTP-соединений с сервером. Например, если на вашем сайте находится одновременно несколько сот тысяч посетителей, каждый из них может быть связан с сервером постоянным соединением, установленным из Javascript. Это например, полезно при организации онлайн-чатов или мгновенных уведомлений. Dklab_multiplexor не претендует на полную универсальность или исключительность (кстати, если знаете ..
NoSQL: Riak — веб-ориентированная система хранения данных
Немного статей на хабре посвящены новому движению в IT индустрии — NoSQL. Я решил изменить это и написал статью-перевод-обзор об одном из докладов с конференции NoSQL прошедшей 5 октября в Нью-Йорке. В этой статье будет говорится о системе Riak, с которой мне довелось иметь счастье работать последнее время. Что такое Riak? Многие модные слова популярные сейчас, можно отнести к Riak. Riak — это документно-ориентированная база данных. Riak — это децентрализованное key-value хранилище данных, с по..
Browser persistence
Browser persistence — техника, позволяющая хранить в браузере довольно большие объемы данных, которые в отличие от cookie не отсылаются на сервер при каждом запросе. Все уже написано до меня, но на хабре никаких более-менее подробных упоминаний не нашел, поэтому написал краткий обзор — как это работает и собрал ссылки для более подробного изучения. Читать дальше →..
Getters & Setters в IE5+
Вот этим навеяло habrahabr.ru/blogs/javascript/66242/ Вопреки расхожему мнению ИЕ все таки умеет назначать аксессоры, правда только в VB, чего для некоторых задач вполне достаточно.<script language="vbscript">' Объявляем класс, экземпляр которого в последствии будем использовать из яваскриптаClass Accessor   Public Property Let hook(val)  ' объявляем сеттер для свойства hook класса Accessor    MsgBox val   End PropertyEnd ClassDim access ' объявление переменных в VB обязательноSet access = N..
Раздаем права на запуск/остановку сервисов под Windows
Буквально сегодня понадобилось дать человеку возможность перезапускать тестовый вебсервер под виндой. Права админа давать естественно давать не хочется. «Мощный» юзер не подходит. букв много Читать дальше →
PHP-разгон: серебряная пуля из автомата Комменца-Вальтера» (Commentz-Walter)
Видео блиц-доклада (тоже моего) с Highload'а про алгоритмы. Быдлокодинга в наш век уже много, поэтому много и неоптимальностей. Вот и пример — оптимизация поиска и замены подстрок (у нас вышло в 500 раз) и как это можно сделать в PHP (и как это сделано в MediaWiki). Комменц и Вальтер — они придумали свой алгоритм линейной сложности — аналог алгоритма Ахо-Корасик (который не склоняется, потому что это самка карасика — Margaret J. Corasick), только на основе вариации на тему Бойера-Мура...
Object-oriented PHP
Здравствуйте. Хочу презентовать хабрасообществу альфа-версию новой open-source библиотеки на PHP для работы с примитивами(string, integer, float и array) как с объектами. Под катом — короткое описание, ссылка на гуглокод, описание целей и планов. Читать дальше →
Создаём правильный «мокрый пол» c перспективой изображения на Javascript
В контексте одного из моих текущих проектов была поставлена задача сделать «мокрый пол». Картинок на пол планировалось класть огромное количество (но всего по паре на страницу, с заменой). В перспективе. В перспективе, кстати, временной и пространственной. Не найдя ничего стоящего, я взялся написать свой велосипед. И, по-сидев два с лишним вечера, сочинилась небольшая js-библиотека с generic-названием iWet.UPD: Версия 0.2Добавил белую маску. См. Демо. Выложил исходик маски в .psd Вылечил баг ..
Eventbug — расширение firebug для отслеживания событий в Javascript
Очень нужное, как по мне, расширение, которое добавляет в firebug панель Events с перечнем всех обработчиков событий на странице, а также интегрируется с панелью HTML, где можно посмотреть на какой элемент какие события навешены.
Системы коллективного комментирования в отладке сайтов
В этом обзоре мы проанализировали несколько систем коллективного комментирования веб-страниц и постарались найти идеальный инструмент для удаленного обсуждения и отладки work-in-progress сайтов с заказчиком и другими участниками работы. Читать дальше →
Делаем правильную платформу или Как повторить Google
ВведениеСегодня я расскажу о проектировании высоко-нагруженных отказоустойчивых систем. Акцент будет поставлен практическую разработку и жареные факты, а не на сухую теорию. После прочтения вы не испугаетесь разработки сервиса с миллиардом пользователей, если у вас будет достаточное количество серверов. Тема весьма обширна, но я постараюсь быть кратким и лаконичным. Читать дальше →..
Каковы стартапы на самом деле
Представляю вашему вниманию перевод очередного замечательного эссе Пола Грэма What Startups Are Really Like. Октябрь 2009 (Это эссе основано на выступлении в Школе Стартапов в 2009г.) Я не знал о чем говорить в Школе Стартапов, поэтому я решил спросить создателей стартапов, которые мы профинансировали. О чем я еще не написал? Я нахожусь в необычной ситуации, имея возможность проверить те эссе, которые я написал о стартапах. Надеюсь, что эссе на другие темы тоже верны, но у меня нет возможнос..
Одновременное использование нескольких операционых систем при помощи colinux, Virtual PC и утилиты Desktops
Преамбула: Последнее время, мне приходится писать немного кода, и есть необходимость тестировать результаты его работы под разными платформами. Естественно я использую виртуальные машины. Так как, кроме меня, моим ноутбуком пользуется еще и жена то основная ОС на нем winxp. Мне в принципе все равно с чем работать поэтому пусть будет windows… Раньше, когда у меня в качестве оконного менеджера использовался IceWM, мне нравилось то что я могу использовать несколько «рабочих столов», для запуска ..
Оптимизация Javascript с помощью Google Closure Compiler
Google открыла исходные коды нескольких инструментов, которые использовались их сотрудниками при разработке таких проектов как Google Docs, Google Maps и GMail. В числе этих инструментов имеется достаточно интересная штука, называемая Google Closure Compiler. Данная утилита минимизирует и оптимизирует javascript-код, за счет чего он начинает работать и загружаться быстрее. Читать дальше →..
MongoDB — варим хороший кофе
ВведениеДрузья, в первую очередь хочу поблагодарить вас за высокую оценку моего труда, это приятно, и мотивирует меня продолжать. Итак, почему надо покупать наших слонов я думаю вы уже поняли из первой статьи, кто-то уже скачал и попробовал на вкус, а кто-то только собирается. Как бы там ни было, начнем. Сегодня мы поставим MongoDB, ниже рассмотрим свежеиспеченный ХабраЛоггер и пошпионим за главной страницей Хабра в реальном времени :-) Читать дальше →..
JetBrains WebIDE — публичная сборка #701 / немного о ZendCon\'09 / кое что о неочевидных возможностях
И снова «идеальное IDE для PHP» от JetBrains ^) За прошедшее с предыдущей сборки время мы успели обзавестись официальным сайтом, посетить ZendCon'09 и наконец заняться обещанной оптимизацией производительности. Нашлось время и на несколько новых фич. Пока качается билд загляните под кат — кроме обычных подробностей там будет пара слов о ZendCon и о уникальных функциях платформы/WI. Читать дальше →..
MongoDB или как разлюбить SQL
ВведениеКоллеги, при разработке приложений, мы каждый день сталкиваемся с потребностью в гибком хранении информации (обновлении, поиске по ней, и т.д.). Класс продуктов, которые решают этот круг задач, как все мы знаем — Базы данных. Но что это такое в нашем понимании? У многих «база данных» твердо ассоциируется с MySQL, таблицами и SQL-запросами. И это устраивает до определенного момента. Действительно, реляционные базы данных дают массу преимуществ в работе: поскольку данные имеют сильную связ..
11 примеров использования CSS3
Здесь показаны 11 примеров того, как можно использовать CSS3. Они представлены в виде сравнения. В первом случае используется CSS2 (или Javascript), а во втором — CSS3.1. Закругление угловКлассический путь<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.corners.js"></script> <script type="text/javascript"> $(function(){ $('.box').corners('10px'); }); </script> <div class="box"> <!-..
RAR: создание store-архива
На днях я рассказывал, как получить список файлов, что содержит rar-архив без использования сторонних расширений или библиотек. В одном из комментариев промелькнула мысль, что в принципе, не смотря на закрытость алгоритма RAR, можно вручную создать архив без сжатия. Посидев один вечер над кодом, я представляю вашему вниманию класс для создания stored-RAR архивов. Читать дальше →..
Картинки делают вашу информацию интереснее
Приветствую всех! Я представляю вам свой Первый Пост На Хабре, он является объединяющим симбиозом нескольких постов моего личного блога [], и речь сейчас пойдёт о универсальной вещи, которая поможет увеличить продажи вашего товара, задержать на вашем сайте лишний десяток посетителей, и сделать из сложной многобуквенной статьи простой доходчивый рассказ. Также будут даны описания и адреса хранилищ этих вещей. А вещь эта называется «Картинка».В чём суть? Идея проста до безобразия: текст нужно со..
AFOM — расширение, потрясающим образом уменьшающее расходование памяти в Firefox
В очередной раз разозлившись на жрущий память Firefox, я залез на сайт дополнений. И обнаружил AFOM. Утверждалось, что он умеет понижать расходование памяти в Firefox. Отзывы, как ни странно, хорошие. Я решил протестировать. Включил Task Manager. Открыл 10 вкладок с Gmail, а также еще пару сложных сайтов. Потом закрыл. Обычно у меня после этого firefox ел мегабайт 300-400. И Task Manager показал, что в начале firefox действительно ел 300 мегабайт, а через полминуты упал до 80-и. И сейчас дер..
PHP-AMQP Что нового у Друзей?
При построении социальной сети по типу шардинга встает проблема обмена данными между шардами. Традиционная репликация в данном случае не подходит по разным причинам. Тема шардинга — это отельная большая тема и не является предметом данной статьи. В данной архитектуре для реализации «ленты Друзей» или «Новостной ленты» лучше использовать сервер очередей используя систему: Подписка-Уведомление. В качестве брокера обмена предлагается использовать сервер очередей RabbitMQ, реализующий протокол AMQ..
Пузырьки, кэши и предсказатели переходов
Эта заметка написана по мотивам одного любопытного поста, краткий коммент её же автора к которому сподвиг меня разобраться в происходящем поподробнее. Предлагается сравнить две вариации алгоритма сортировки пузырьком. Первая из них – обычный пузырёк, с небольшой оптимизацией — внутренний цикл можно закончить немного раньше, зная, что оставшаяся часть массива уже отсортирована:for (i=0; i<N; i++)   for (j=0; j<N - (i+1); j++)     if (a[j] > a[j+1])       swap(a[j], a[j+1]); Во втором вариа..
RAR: получение списка файлов без PECL
Не так давно я писал о получении текста из всевозможных файловых форматов, будь то DOC или PDF. Сегодня мы рассмотрим не менее интересный формат — формат сжатия RAR. Не буду обнадёживать страждущих — сегодня мы только прочитаем список файлов без каких-либо дополнительных расширений PHP. Итак, кому интересно, прошу под кат… Читать дальше →..
Подборка плагинов к jQuery
Вдогонку к этому посту, решил выложить еще одну неплохую и достаточно свежую подборку.jReject — jQuery Browser Rejection jReject — это простой способ сообщить пользователю, что его браузер устарел, предлагая скачать последние версии популярных браузеров. Внешний вид легко настраивается через CSS, а всплывающее окошко может отображаться как после загрузки страницы, так и по вызову определенных событий на ней. Еще плагины..
Пункт «Properties» будет убран из контекстного меню браузера Firefox (но можно использовать расширение)
Многие пользователи Файерфокса давно знают о том, что из контекстного меню (то есть из того, которое появляется, если правой клавишею мыши жмякнуть по странице) можно выбрать пункт «Properties» — и тем вызвать список свойств элемента страницы, жмякнутого мышою. Например, если жмякнутый элемент —это картинка-гиперссылка, то можно вызвать примерно вот какое окошко: Однако же некоторым другим пользователям Файерфокса и это окно, и этот пункт в контекстном меню не были ни за чем нужны. Так что, н..
Вращение объектов в 3D
Приветствую тебя, %username. Сегодня я хочу продемонстрировать возможности замечательного IMagick, и показать как с легкостью можно получить анимированное 3D gif изображение. Это может пригодиться, например в магазинах, которые продают мобильные телефоны, и хотят продемонстрировать покупателям телефон в 3D, без использования Flash. Читать дальше →..
1001-ый способ вертикального выравнивания
О вертикальном выравнивании блока неизвестной высоты по центру или низу родителя сказано много. Есть способы, основанные на display:table-cell для хороших браузеров (без кавычек) и expression для IE, способы, основанные на относительном позиционировании (могут плохо работать при переполнении). В этой заметке будет описан способ, работающий на особенностях такого мощного отображения, как встроенный блок (display:inline-block). Читать дальше →..
Статистика по поддоменам в Google Analytics
На многих сайтах большие разделы разнесены по отдельным поддоменам, особенно часто это встречается на разного рода порталах. В этой заметке я расскажу, как можно заставить всем известный сервис статистики Google Analytics правильно считать посещаемость таких сайтов. Читать дальше →..
Две маленькие и бесплатные программы для тестирования сайта на наличие возможных sql-инъекций и xss-уязвимостей
Mini MySqlat0r — Java-программа, исследующая структуру сайта и тестирующая найденные странички на наличие возможных sql-инъекций. На сайте прилагается pdf-мануал. XSSploit — программа написана на Python. Проверяет сайт на наличие xss-уязвимостей. На страничке с программой есть ролик-мануал. Серьёзные организации, наверное, не нуждаются в подобном софте, но наверняка найдутся люди, которым будет интересно проверить защищённость своих сайтов...
Firefox и RamDisk. Автоматизация, бэкап и автообновление
После написания топика об использовании Google Chrome на рамдиске, я получил несколько просьб сделать то же самое и для Firefox. Итак… Спустя неделю тестов, выкладываю готовый рецепт по использованию Фокса на рамдиске. Читать дальше →
Интерактивный редактор для jQuery — прорыв?
Странно, что такое шикарное событие не взбудоражило умы Хабровчан. Эта новость достойна твоего внимания, %username%! Внимание — видео! Понравилось? Тогда беги и качай бесплатно прямо сейчас: www.ixedit.com
Квантификаторы в регулярных выражениях
Регулярные выражения — это арифметика для алгоритмов. Они доступны во многих языках программирования, редакторах и настройках приложений. Как и сложение с умножением они просты в использовании. Но для правильного и эффективного использования regexp-ов нужно понимание того, как они работают. Я постараюсь описать принцип работы регулярных выражений, покажу в каких случаях бывают проблемы и как их решать. В продолжение общих советов. Читать дальше →..
Интересный подход для кэширования моделей
На днях я получил задание реализовать кэширование в моделях. В обсуждениях с коллегами родилась довольно интересная, на мой взгляд, идея, которую я бы хотел выставить на ваш суд. Читать дальше →
MySQL Profiler + firePHP
К топику «MySQL Profiler: простой и удобный инструмент профилирования запросов» (http://habrahabr.ru/blogs/mysql/70435/) Пример использования в php, с выводом в firebug (дальше только код) Читать дальше →
Как покупать на eBay. Советы из личного опыта
Оригинал статьи — olyapka.ru/2009/10/kak-pokupat-na-ebay/ Делать заказы с ebay я начала относительно недавно. Первая попытка была, когда я пыталась заказать один редкий японский телефон. Но, увы, за него заломили слишком высокую цену в ходе акциона. Затем я без каких-либо проблем заказала и получила USB-микрофон Samson. После того, я как познакомилась с Женей (у него тоже был опыт заказа всяких железок с ebay), мы оба подсели на онлайн-шоппинг и заказали себе немало отличной одежды, обуви и про..
Быстрое определение местоположения по ip в postgresql
В этом топике я хочу рассказать о задаче, очень часто встречающейся в веб-проектах — определение местоположения по ip-адресу. Начну с того, что для того, чтобы определить местоположение пользователя — нужна некая geoip база. Приведу здесь два популярных бесплатных варианта:IpGeoBase — очень хорошая бесплатная база, но, к сожалению, только по российским ip-адресам.MaxMind — огромная база по ip-адресам всех стран. Предоставляют бесплатную lite-версию базы. Точность базы по российским ip-адресам не..
Как сделать сайт более iPhone-совместимым за 5 шагов
Тот факт, что iPhone предлагает наиболее развитый мобильный браузер среди мобильных платформ, пожалуй, ни у кого не вызовет сомнений. Однако не все знают, что довольно небольшими усилиями можно сайт сделать еще более дружественным к тем, кто смотрят его на iPhone или iPod Touch. Ниже предлагаются простые 5 шагов, с которых можно начать, на примере сайта WHOIS Digger.Шаг 1. Аналог favicon.ico Когда пользователь создает ссылку на ваш сайт в виде иконки в SpringBoard, iPhone автоматически формиру..
Подводные камни при использовании кэширования в nginx
В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Например, мои конфиги nginx-а местами написаны кровью. Этой статьей я попробую немного улучшить ситуацию. В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание динамического «окна» в закэшированной странице.Я буду предполага..
jQuery для начинающих. Часть 3. AJAX
Представляю Вам третью статью из серии jQuery для начинающих. В этот раз я постараюсь рассказать о реализации AJAX запросов... Читать дальше →
jQuery + AJAX + (Google Search API || Yahoo Search API)
Как понятно из заголовка — данный пост будет посвящен работе с Google Search API и Yahoo Search API посредством Javascript бибилотеки jQuery. Читать дальше →
WHOIS Digger — Сервис проверки доменов с нестандартным интерфейсом
Как обычно выглядит сервис проверки доменного имени на занятость на разных сайтах регистраторов? Все очень скучно и банально: вы вводите имя домена, нажимаете на кнопку, страница перегружается со всеми потрохами, ресурсами и скриптами, только для того чтобы вы увидели, что доменное имя занято. Теперь надо вернуться назад, ввести новое имя и т.д. Где-то интерфейс чуть получше, где-то чуть похуже, но проблема остается: удобного инструмента для ведения «мозгового штурма» по выбору доменного имени я..
Различия между IE6, IE7 и IE8. Часть первая
(От перев. Данная статья не претендует на полноту и непротиворечивость, потому мы не будем строить на ее основании никаких теорий. Это всего лишь практическое пособие для разработчиков, немного исправленное и дополненное мной под реалии Рунета.) Одним из самых странных статистических фактов, связанных с использованием браузеров, является широкая распространенность Internet Explorer версии 6, 7 и 8. На сегодняшний день все версии Internet Explorer вместе занимают примерно 65% рынка используемых ..
Отключаем Supernode в Skype
Как известно, Skype использует p2p сеть для обмена данными. Если у Вас достаточно мощный компьютер, то Skype может решить сделать Вас Супернодом и, как следствие, скайп-трафик других участников сети будет идти через Вас. Начиная с версии 3.0 программы, появилась возможность отключить такую «фичу», что бы чужой трафик скайпа не шёл через Вас. Для этого необходимо залезть в реестр и создать там ветку:[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype] [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype\Phone]..
Статистика Google Analytics на вашем сайте. Часть вторая. Использование GAPI
С момента публикации первого топика о создании хабраподобной статистики (которую, кстати, почему-то тут не обновляют) с импортированием данных из Google Analytics прошел ровно год. Весь этот год все работало, статистика обновлялась, графики рисовались… пока все не сдохло. Как это и присуще гуглу, сдохло оно не сразу у всех, а потихоньку, в течение недели. При беглой диагностике проблемы выяснилось, что она заключается в гугловой авторизации. Учитывая, что скрипт авторизации мною был заимствован..
Динамический CSS?
Я давно ждал этого момента, нет честно, где-то в подкорке я очень-очень хотел такой штуки чтобы было удобно писать на CSS без переписывания похожих стилей по два раза, без выыскивания нужных разделов в собственном коде, в общем хотелось чтобы на CSS можно было работать легко и просто, что-то я затянул… И так встречайте xCSS — php-класс для работы с динамическим CSS. Поехали..
TwittReader – твитты на вашем сайте
Выкладываю свой велосипед с:возможностью вывода одного или нескольких последних статусов подсветкой ссылок, e-mail, юзеров, хэш-тегов кэшированием, которое работает в т.ч. когда Твиттер упал (а такое бывает) перекодировкой (если на сайте используется не UTF-8) гибкими настройками, собственными шаблонами Читать дальше →..
Как использовать пространства имён в PHP, Часть 3: Ключевые слова и автозагрузка
В части 1 и 2 нашей серии статей мы рассмотрели основы пространства имён, а также импортирование, псевдонимы и правила разбора имён. В данной, заключительной, статье мы обговорим некоторые более продвинутые опции пространства имён. Читать дальше →
Как использовать пространства имён в PHP, Часть 2: импортирование, псевдонимы и правила разбора имён
В части 1, мы обсуждали для чего нужны пространства имён (namespaces) в PHP, и что обозначает зарезервированное слово namespace. В этой статье мы исследуем оператор use и способ, которым PHP разрешает имена пространств имён. Читать дальше →
Мой редактор BB кодов
Некоторое время назад я опубликовал статью «Простейший редактор BB кодов». В запале обсуждения пообещал выполнить редактор в виде плагина. Вчера у меня выдалось несколько свободных часов, вот выполняю обещание. Читать дальше →
Optima с поддержкой украинского
В последнее время понадобилось много работать с текстами на украинском, используя шрифт типа Optima. При малых объемах получалось заменять «є» перевернутой «э», а вместо «і» и «ї» использовать английскую «i», дорисовывая где нужно точечки %) Но когда объемы текстов достаточно велики или приходится постоянно менять цвета и оформление текстов, то работа практически останавливается из-за постоянных правок. Хоть Optima и является достаточно распространенным шрифтом, но я так и не сумел найти нужных ..
Разбираемся с анимацией в jQuery
Здравствуйте. Сегодняшний топик я хотел написать о том, что механизм анимации в jQuery не эффективен, создает кучу таймеров, каждый из которых работает по отдельности, что приводит к чрезмерно частой перерисовки контента и сильно тормозит браузер, и хотел описать некоторые приемы написания «правильной анимации». В ходе подготовки примеров я понял, что я ошибался. Механизм анимации jQuery действительно не эффективен, создает кучу проблем, но причины этих проблем вовсе не в создании большого колич..
Как использовать пространства имен в PHP, Часть 1: Основы
Предисловие: На Хабре уже публиковались несколько статей, посвященных пространству имен в PHP (все ссылки на них я привожу в приложении). Однако, этот интересный и полезный вопрос был раскрыт не полностью. Поэтому я привожу перевод первой из трех статей по данной теме (остальные переведу в ближайшее время). P.S. Статья для начинающих Пространства имен (namespaces) — это одно из самых значительных изменений в PHP 5.3. Они будут хорошо знакомы С# и Java разработчикам, и, вероятно, они изменят к л..
Программа от SysInternals превращает ваш ПК в виртуальную машину
Disk2vhd, новый шедевр от Марка Руссиновича — простая в использовании утилита, позволяющая создать образ загруженной, работающей системы в формате Virtual PC. Нужно всего лишь скачать и запустить программу, выбрать диск, на котором расположена ваша Windows и указать, где следует сохранить виртуальную машину. Поддерживается 32 и 64-bit Windows XP SP2 и новее. Само приложение выглядит так: А вот скриншот уже созданной и загруженной виртуальной машины: Не стоит и говорить, насколько это прилож..
Server-side JS (v8+Node)
Недавно видел на хабре спор по поводу того, что нам не нужны никакие скриптовые языки, кроме javascript. Утверждение, конечно, спорное, но меня заинтересовала возможность применения javascript на сервере. Читать дальше →
Читабельный код
Делает из такого: if('this_is'==/an_example/){do_something();}else{var a=b?(c%d):e[f];} Такое: if ('this_is' == /an_example/) { do_something(); } else { var a = b? (c % d): e[f]; } Исходники сервиса: http://github.com/einars/js-beautify
Как заставить AJAX индексироваться
Мой вольный перевод вчерашнего анонса гугла о том, как сделать так, чтобы аякс индексировался. Команда гугла спешит представить вам новый подход который позволит индексировать сайты, сделанные с помощью AJAX. Выработанный стандарт поможет как вебмастерам так и пользователям, сделав содержимое интерактивных AJAX сайтов доступным для индексации любой поисковой системе, согласившейся принять участие в этом проекте. Мы полагаем, что если интерактивный контент станет доступным для индексации, то это..
CSS3: Во веки веков!
Давайте посмотрим правде в глаза. Mozilla производит настолько много альф, ночных сборок, релизов для разработчиков, что если Вы так и не обратили внимания на выпущенную недавно версию — Firefox 3.6 alpha — то Вас можно вполне понять. Хотя, на сей раз основания были очень даже веские, чтобы сосредоточить внимание гиков. Поскольку, среди прочих положительных нововедений, внесенные изменения предусматривают:свойство -moz-background-size множественные фоновые изображения новую единицу длины rem ..
JQuery Uploadify — мультизагрузка файлов с использованием флэш
Тема загрузки файлов без перезагрузки страницы поднималась уже неоднократно. Даже я как-то давно писал про это. В основном рассматривались решения без флэша, но сегодня я хотел бы поговорить про плагин для jquery с использованием флэша, а именно о JQuery Uploadify. Конечно, можно использовать и другой флэшевский загрузчик SWFUpload, но Uploadify, по моему мнению, на порядок легче и проще, вполне подходит для большинства целей, ну и конечно не забываем, что это плагин для нашего любимого jquery..
Memcached. Как найти ключи по паттерну?
Доброе утро|день|вечер|ночь, %username%! При использовании Memcached, иногда могут возникнуть вопросы: «А как посмотреть все ключи Memcached?» или «Как найти все ключи по маске „*“ или „sql_*“ ?» Вот тогда открываются мануалы и начинается поиск такой функции, но, к сожалению, такой не оказывается :-( Потом начинается Гугление… И там особо ничего нет :-( А потом начинается поиск незадокументированных возможностей :-) и тут «Ура! Нашел!» Читать дальше →..
Шаблоны программирования Javascript (часть II)
Продолжение начатого подробнее...
Шаблоны программирования Javascript (часть I)
Javascript предназначен для создания сценариев поведения сайта, это может быть как валидация форм, так и более сложные операции, такие как drag&drop или выполнение асинхронных запросов к серверу (например, Ajax). За последние нескольких лет Javascript библиотеки стали гораздо более популярны. Одной из причин этого, безусловно, является то, что веб-сайты становятся все более и более сложными и изобретать велосипед каждый раз уже не приемлемо, особенно, если у вас плотный график работы. Но оставим..
CKEditor, TinyMCE файловый браузер (PHP)
В продолжение, файловый браузер для CKEditor и TinyMCE, и просто для сайта. Сборка имеет два скина: dark & light Скриншоты кликабельны Читать дальше →
Способ вертикального выравнивания блока с помощью настоящего vertical-align
Сегодня, верстая один макет, я, кажется, изобрел очередной небезынтересный способ вертикального выравнивания блока относительно родительского. Он не основан на превращении блоков в ячейки таблицы и не использует css-свойство position.Требования — Должна быть известна начальная высота родительского блока; — Дочерний блок может иметь произвольный размер как по высоте, так и по ширине.Возможности — Работает в IE6+, O9+, FF2+, webkit; — Тру vertical-align выравнивание со всеми допустимыми значен..
Кеширование в PHP — теперь немного лучше, чем просто кеш
Так как в моем блоге комментируют эту статью только боты и то редко, то я решил выложить ее сюда, чтобы узнать мнение профессионалов. В этой короткой статье я расскажу, как я убирал тривиальность из политики кеширования на файлах в PHP сценариях. В принципе это всё можно применить и не к «файловому» кешированию. Надеюсь, многим эта статейка принесет пользу. Читать дальше →..
Про амперсанд
Амперсанд является вещью присущей в основном латинской типографике, но тем не менее штука это красивая. В этом коротком очерке я расскажу о том, как можно использовать амперсанд на веб-страницах как в текстовой, так и в нарисованной (pre-rendered) форме. Читать дальше →
Российские поисковики в Google Analytics
Система подсчета посетителей Google Analytics всем хороша, но есть у него небольшие недостатки, которые можно исправить. Я уже писал на хабре о том, как отображать полные обратные ссылки в Google Analytics. К недочетам GA можно отнести и “нелюбовь” к русскоязычным поисковикам, кроме Яндекса. Такие ПС, как Mail.ru, Rambler.ru, Aport.ru и другие, учитываются в статистики как “сайты — источники переходов”. А нам нужно, чтобы они считались Гугл Аналитиксом как “поисковые системы”. Решается проблема..
XSS фильтр на основе DOMDocument
За этот пост мне не дали инвайта, поэтому после регистрации я не спешил его публиковать. Решил что тема банальна и не интересна. Но сегодня увидел топик «Не очередной XSS фильтр» и не сдержался. Сделано на основе вот этой идеи Когда встал вопрос об обработке постов в блоге, я первым делом попробовал использовать регулярные выражения. Пробовал я не долго, т.к. быстро понял, что в лучшем случае получится огромное нечто, напичканное сложными регэкспами. Основная проблема, кроме сложности поддержк..
Nice alert
nice-alert.user.js заменяет модальный диалог alert на ненавязчивое сообщение в правом верхнем углу страницы. Работает в Opera, Firefox Greasemonkey и Safari GreaseKit. Cкачать nice_alert.user.js. (для Оперы, и только для неё, нужно скачать nice_alert.js, без «user».)Код на github-е. Скрипт на userscripts.org.
Сортировка строк таблицы методом drag\'n\'drop
В небольшой задаче сегодня нужно было осуществить сортировку таблиц. До этого решения были в лоб: поля ввода куда пользователь вводил порядковый номер строки, стрелочки «вниз-вверх». Всё бы ничего, но вот в сегодняшней задаче одно из условий требовало обновления кэша (строки таблиц) при каждом обращении к сортировке таблицы (изменил порядковый номер строки — обновляй кэш), поэтому «лобовые» методы не подошли. Да и пользователи системы часто жаловались на неудобства «лобных» методов сортировки. ..
Chrome Linker (Linkification для хрома)
Привет! Несколько месяцев назад я слепил расширение для хрома, которое преобразует текстовые ссылки на страницах в html-ные, т.к. такая функциональность нужна была самому. С того времени поменялась система расширений в хроме и старые перестали работать. В связи с этим, я обновил свое расширение, подписал его ключем и т.д. Если кто-то из хабрасообщества им пользовался, то новую версию можно скачать тут. Теперь расширения могут обновляться автоматически, так что если я чего туда добавлю, вам не ..
Список полезных PHP классов и библиотек
EmailSwift Mailer Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др. PHPMailer Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация. Читать дальше →..
Используем паттерн Наблюдатель(Observer) для создания индикатора выполнения процесса на Javascript
Идея паттерна Observer заключается в создании зависимости типа один ко многим. При изменении состояния одного объекта(субъекта), зависящие от него объекты(наблюдатели) об этом оповещаются и обновляются. Это нужно для согласования состояния взаимосвязанных объектов без их жесткой связанности. пример внутри..
Индексы в MySQL: многоколоночные индексы против комбинированных индексов
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE. Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированног..
PHP 5.3: DoS — это не баг, а фича
Именно так думают девелоперы PHP. Фича заключается в Segmentation Fault/Access Violation под unix/windows при исполнении кода:<?php class A {} class B extends A { public function __construct() { $args = func_get_args(); call_user_func_array(array($this, "parent::__construct"), $args); } } class C extends B {} $instance = new C(); // SegfaultРазработчики говорят, что это совсем не баг и хотят добавить в документацию сведения об этой фиче. Естественно пад..
Vanadium: семантическая валидация на клиенте
Vanadium — новый валидатор для клиента, который позволяет вам определять логику семантической валидации через атрибут класса (class). На главной странице проекта есть такие примеры, как:<input class=":required" type="text" /><input class=":integer" type="text" /><input class=":length;4" type="text" /><input class=":min_length;4" type="text" /><input class=":format;/^(vanadium)+$/i" type="text" /><input id="pass" class=":ajax;/username_checker/check.json" type="text" /><input id="pass" class=":em..
Ускорение работы NetBeans IDE
Смастерили с товарищем рецепт ускорения работы NetBeans. Подтормаживания и зависания теперь отсутствуют.
MySQL Profiler: простой и удобный инструмент профилирования запросов
Сегодня был неожиданно удивлен, какие удобные штуки таит в себе MySQL. ;-) Хочу представить вашему вниманию фичу MySQL — профайлинг. Появилась она начиная с версии 5.0.37. Всего парой запросов можно узнать, какими запросами формируется страница (для веб-девелоперов) и почему она тормозит. И раньше подобный функционал был доступен, но пользоваться журналом запросов не в пример сложнее.Итак, как пользоваться: Читать дальше →..
Чудо селекции — Traktor + Ableton
Пора выполнять обещания :) Итак, что мы имеем? Имеем две софтины, обе признанные лидеры индустрии, но каждой чего-нибудь не хватает для счастья. У Ableton не совсем удобная транспортная часть, зато почти полная свобода действия с маршрутизацией аудио и подключаемыми VST-эффектами. У Traktor же наоборот: очень удобная и интуитивно понятная панель управления транспортом, а вот с эффектами напряг. Встроенные, конечно, довольно неплохи по-своему, но их хватает далеко не для всех нужд. Еще для Аблто..
Три интересные задачи на знание SQL
Буквально несколько часов назад, после внимательного изучения комментариев вот к этому топику я был несколько удивлен что многие не очень любят использовать условия HAVING и похоже другие возможности СУБД. Скажу прямо — мне очень понравилась обсуждение простейшего и не работающего запроса, в результате которого многие узнали для себя много нового и познавательного (это мое личное мнение). Поэтому я решил сделать вот что — вывести три моих самых любимых задачи по знанию SQL (MySQL) на суд обществ..
Исследование дизайна сайтов портфолио — закономерности и современная практика
Для этой статьи мы отобрали 55 дизайн студий и студий веб-разработки, проанализировали их сайты портфолио и определили популярные закономерности дизайнов для таких сайтов. Основной целью этого изучения было предоставление фрилансерам и дизайн студиям полезных ориентиров для создания своего собственного портфолио. Мы сделали мозговой штурм самых важных вопросов касающихся дизайна и задали вопрос дизайнерам со всего света – какие решения они чаще всего должны принимать при создании дизайна для с..
Интеграция Doctrine в kohana 3
Здравствуйте, После выхода Kohana 3 хочется ее использовать в новых проектах, и использование Doctrine показало, что инструмент очень удобный, потому поделюсь рецептом интеграции. Читать дальше →
KO3: HMVC и роутинг
Не так давно вышла третья версия этого фреймворка. Еще до его выхода я делал небольшой обзор новых возможностей. Тогда я обошел тему роутинга и HMVC, но сегодня готов исправиться. Читать дальше →
Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое
Введение С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить. Статья большая, так что будет поделена на логические блоки:0. Зачем вообще что-т..
Текст любой ценой: RTF
Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf. Сегодня мы продолжим с обещанным rtf. Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей ..
Пример построения неблокирующего веб-приложения
За последнее время видел пару хабратопиков (раз, два), в которых описывается использование неблокирующих сокетов и событийно-ориентированного программирования в вебе. Хочу поделиться своим опытом создания веб-приложения на этой технологии. Недавно захотел создать свой сервис проверки номеров ICQ на невидимость. Алгоритм проверки старый и известный, но до сих пор работающий — отправка специально сформированного служебного сообщения и анализ ответа сервера. Необходимо было держать несколько посто..
Генерация музыки на основе заданного стиля
В данном посте я хочу рассказать об очень простом способе генерации музыки в заданном стиле с помощью контекстно-зависимой грамматики. А как это?
Подбор аддонов
С того момента, как появилась поддержка аддонов, их уже немало написано. Хочу предоставить небольшую подборочку: Читать дальше →
Подробный обзор CSS-свойства z-index
Принцип работы, особенности поведения в различных браузерах, примеры использования
15 способов создания скриншотов вебсайта
Перевел я тут статейку о создании скриншотов. Причем не просто снимков экрана а именно скриншотов вебсайтов. Русский перевод мне еще не попадался, так что может быть кому пригодится… Создание скриншотов вебсайтов является, вероятно, одной из обычных задач при пользовании Интернетом. Скорее всего, если у вас есть блог или вы работаете обозревателем в интернет-издании, это приходится делать чаще. В любом случае, есть несколько интересных инструментов для простого создания скриншотов — некоторые а..
Анимация в Internet Explorer
Не первый раз сталкиваюсь с этой проблемой, но обычно выручали различные «костыли». Сейчас решил разобраться. Суть в следующем: если в анимации начальное и конечное значение в процентах и разных знаков, объект будет «дёргаться».Пример:<style type="text/css">  #div-1 { position: absolute; width: 100px; height: 100px; background: grey; border: 1px solid black; top: 50%; margin-left: 50%; }</style><script type="text/javascript">  $(function(){   $('#link-1').click(function(e){    e.preventDefau..
Вращение предметов без флэш
Всем привет. Хочу предоставить вам на суд плагин для jQuery, позволяющий реализовать трехмерный показ предметов (например, телефонов или ноутбуков в каталоге интернет-магазина). Пожалуй, все встречали подобные инструменты основанные на технологии flash. Однако я считаю, что её использование здесь не к чему. Поэтому потратив несколько часов я реализовал подобный функционал на javascript в виде плагина к jQuery. вертеть дальше..
Отслеживание iframe
Однажды мне надоели жалобы клиентов, вроде «на моём сайте вирус, сделайте что-нибудь!». Объяснять людям об опасности сохранения паролей от ФТП на небезопасной машине так же надоело. Гениальное оказалось рядом — обычно поражаются файлы index.* и default.* — так почему бы не отслеживать изменение этих файлов. Сказано — сделано.UPD: код переписан — теперь никакого SQL и PHP, тупо парсим xferlog bash'ем Читать дальше →..
Эпиграммы о Программировании
Недавно мы с killnicole (вся вычитка и коррекция), nlugovoi, d9k, cleg  и ruguevara (все плюсы — этим товарищам, я всего лишь предложил текст) закончили перевод легендарного, самого цитируемого в программистском сообществе, не устаревающего эссе «Epigrams on Programming». С результатом перевода можно ознакомиться под катом. Читать дальше →..
Контролы форм в html 5
Честно говоря, я сначала хотел сделать обзор, как современные браузеры поддерживают всякие новые контролы для форм из спецификации html 5. Но похоже обзора не выйдет — единственный браузер, поддерживающий больше двух контролов — Опера. Я накидал очень простенькую страничку, куда поместил кучу input'ов с неведомыми мне доселе значениями свойства type и получил такой результат: Читать дальше →..
Джаббер чат на веб-странице
Прочитав пост на хабре про онлайн чат для сайта через джаббер, мне стало интересно — а как оно работает и как такое можно сделать самому, без готовых приложений. В итоге у меня получилась очень простая заготовка «чата для сайта через джаббер». К сожалению у меня нет выделенного сервера с линуксом для тестов, поэтому был использован локальный компьютер с Win7 (и сервером Apache). Как это вообще должно работать: пользователь заходит на сайт, и видит окошко, куда можно разговаривать. После того ка..
Простейшая генерация odt файла из существующего
Как-то раз передо мной стояла задача реализовать генерацию договоров для клиентов с нашего корпоративного сайта. Сначала задача была решена просто ужасно — был заготовлен html шаблон договора, а пользователю выдавалась конвертация шаблона в pdf. Само собой это выливалось в кучу неудобств, в том числе, если требовалось что-то поменять в договоре. Следующим решением было генерация odt документа. Это позволило редактировать документ нашим менеджерам независимо от сайта и программистов. Полностью..
Определяем порядок столбцов в составном индексе
Хочу поделиться простым эмпирическим методом, который я использую для определения того, в каком порядке должны идти столбцы в составном индексе. Этот способ подходит не только для MySQL, он также применим к любым СУБД, в которых используются b-tree индексы. Давайте начнем с запроса, который возвращает пустой результат, но при этом делает полный скан таблицы. EXPLAIN покажет на нем, что нет доступных индексов (т.е. possible_keys = NULL)SELECT * FROM tbl WHERE   status='waiting' AND   source..
Современная отладка JavaScript
В связи с достаточно широким выбором неплохих отладчиков, Javascript-программисты могут получить достаточно много пользы, изучая то как их можно использовать. Их пользовательские интерфейсы становятся все более совершенными, более стандартизированными между собой и более легкими в использовании, что делает их полезными как для экспертов так и новичков в отладке JS. В этой статье мы обсудим передовые методы отладки для диагностики и анализа ошибок, используя типичное веб-приложение. В настоящее..
Каскад раскрывающихся списков
Отличная статья с примером того, как организовать в веб-приложении каскад раскрывающихся списков select с помощью jQuery+AJAX/JSON. Параллельно показывается, как создавать свои собственные методы jQuery, работающие с набором элементов, и которые, как следствие можно встраивать в цепочки команд...
Альтернативный способ записи IP-адресов
Наверное, некоторые знают такую штуку, но думаю, далеко не все. Как мы все знаем, адрес IPv4 представляет собой 32-битное число. Традиционно IP-адрес записывается в виде 4-х октетов, разделенных точкой, в десятичной системе счисления. Например: 77.88.21.8. Однако существуют и другие, менее распространенные варианты записи. Во-первых, каждый из 4-х октетов можно записать в восьмеричной или шестнадцатеричной системах счисления: 77.88.21.8 = 0x4d.0x58.0x15.0x8 = 0115.0130.025.010, или даже можно..
Текст любой ценой: PDF
Продолжаем разбирать текстовые форматы на предмет получения текста. Итак, обещанный ранее PDF. С portable document format'ом не всё так просто, как DOCX или ODT, что мы рассматривали в прошлый раз, но всё же это всё ещё изначально текстовый, а не бинарный формат. Вы удивлены? Тогда давайте посмотрим на то, что там внутри. Дальше действительно много текста. Читать дальше →..
Шпионаж за чужой консолью
В стандартный состав FreeBSD входит замечательная программа watch(8), которая позволяет подсматривать за чужой консолью. Всё, что ей для этого необходимо это snp модуль, который достаточно собрать из сурцов а программа сама его подгрузит:# cd /usr/src/sys/modules/snp/ # make && make install Теперь выбираем цель:# w 9:16PM up 55 days, 52 mins, 2 users, load averages: 0.08, 0.06, 0.00 USER TTY FROM LOGIN@ IDLE WHAT nlo1 p0 nlo.habr.ru 9:06PM - w nlo2 p1 nlo.habr.ru 9:16PM - -bash (bash..
Текст любой ценой: DOCX и ODT
Недавно возникла задача получения чистого текста из различных форматов документооборота — будь-то документы Microsoft Word или PDF. Задача была выполнена даже с чуть более широким списком возможных входных данных. Итак, этой статьёй я открываю список публикаций о чтении текста из следующих типов файлов: DOC, DOCX, RTF, ODT и PDF — с помощью PHP без использования сторонних утилит. Читать дальше →..
Использование градиента в качестве фона страницы
За время существования web 2.0 в сети появились некоторые приемы так называемого web 2.0 дизайна, один из которых это градиент.   Создание подобного эффекта, если не брать в расчет элементы с фиксированной высотой доставляет верстальщику не мало сложностей. Ключевым моментом реализации является оптимизация графики, но с другой стороны слишком "пережатый" файл теряет качество, что особенно заметно при использовании такого элемента с нефиксированной высотой. А что делать если эффект градиента не..
Быстрая сортировка таблиц посредством Javascript
В процессе работы с таблицами, для удобства восприятия, а также быстрого анализа, рано или поздно возникает вопрос вывода отсортированного содержимого этих таблиц. Эту задачу в web-программировании можно решить двумя способами:Сортировка на стороне сервера посредством SQL или backend'а; Сортировка на стороне клиента. Минусы первого варианта — это перезагрузка страницы на каждый клик пользователя по контролам сортировки. Плюсы — скорость сортировки на больших выборках. Минусы сортировки на ..
GMail — проверка новых писем из командной строки
Не будем тянуть кота за хвост. Сразу к делуcurl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | wc -l Результатом будет количество новых писем у вас в ящике. Читать дальше →
Написание ТЗ для сайта
Введение Казалось бы, необходимость формализации всех требований заказчика, сведение их в единый документ и оформление его как юридически значимый, очевидно и необходимо для исполнения всеми разработчиками, как компаниями, так и фрилансерами. Читать дальше →
PHP, Closures, use & references
Хочу рассказать об одной особенности использования замыканий в PHP-5.3. Думаю, для многих она покажется очевидной, но тем не менее. Оказывается, используя use ($var1,..) — мы можем передавать переменные по ссылке: use (& $var1,..). Пример, иллюстрирующий возможные варианты использования (и просьба не тыкать носом в array_sum() ;) ):$rows = array(1, 2, 3);$total = 0 ;// Случай раз - use ($total) без ссылкиarray_walk($rows, function($row) use ($total) {         $total += $row;});echo "Total is $..
Упорядоченные списки, счётчики и экспрешн для IE
Представьте ситуацию: в макете страницы, которую вам надо сверстать, есть упорядоченный список. Всё бы ничего, да в дизайне стиль текста в списке отличается от стиля цифр, выступающих в роли маркера каждого пункта. И ладно, если отличие небольшое — в размере шрифта, цвете или другом свойстве шрифта. В таком случае самый простой способ реализовать подобное — задать стиль для элемента списка (это будет стиль для маркера), после чего обрамить всё содержимое пункта в блок, в котором переопределить ..
IxEdit — редактор Jquery-скриптов «налету»
IxEdit — редактор, позволяющий генерировать javascript-код для Jquery "налету", редактируя сценарии поведения объектов прямо в браузере (соответственно созданный код можно сразу опробовать). Использует Google Gears для хранения изменений в локальной БД (впоследствии их можно экспортировать в виде js-кода)...
Плакат A3 с тегами HTML 5
Известный сайт woork выпустил свой вариант таблицы тегов HTML 5 с описанием атрибутов. В отличии от других подобных таблиц, которые уже были представлены на Хабре, этот вариант, во-первых, обладет приятной внешностью, а во-вторых выполнен в формате A3. Файл можно распечатать и повестить над рабочим местом, благо внешний вид плаката хорош. Полный вариант плаката доступен по этой ссылке. Превью можно глянуть тут...
Видео уроки по бодибилдингу и фитнесу или расфасовка информации с помощью DLE
Всем привет! Хочу рассказать о своем первом мини-проекте, о сборнике видео по бодибилдингу и фитнесу.Предыстория После пары лет занятий в тренажерном зале и наблюдений во время тренировок за окружающими коллегами, были сделаны выводы, что очень многие допускают серьезные ошибки в технике выполнения упражнений, особенно новички. Я и сам поначалу допускал грубые и не очень ошибки, которые выливались в зря потраченное время, силы, деньги и некоторые травмы. Как этого избежать? Читать дальше →..
Doctrine и сортировка для связи многие к одному
Довольно давно использую связку Zend Framework и Doctrine и очень не хватало сортировки для коллекций получаемых по ссылке. Оказалось, что это легко реализовать. Позже в одном из проектов, созданном компанией в которой я работаю, был найден подобный метод, но, увы, не ясно просочилось-ли это от разработчиков Doctrine или было создано в недрах моей команды. Смущает тот факт, что найденный фрагмент кода написан для СУБД, которая в нашей компании не используется. Приступим?..
Как использовать стили операционной системы в CSS
В CSS 2.1 появилась одна интересная фича, о которой не все знают — это возможность задавать на веб-странице шрифты и цвета, которые используются в текущей системной теме операционной системы. Это может быть полезно в ситуациях, когда вы хотите приблизить интерфейс вашей страницы к пользовательскому интерфейсу операционной системы. Например, вы хотите написать Adobe AIR приложение, или сделать справочный интерфейс, наподобие нативной chm-справки (вот как здесь: manual.pohape.ru/). Читать дальше ..
Получение времени окончания теста в замерах скорости браузеров
Несколько недель назад я проводил кое-какие тесты скорости работы DOM в мобильных браузерах (результаты вскоре будут опубликованы). Наиболее важным следствием этих тестов оказались не полученные значения (хотя, они тоже довольно интересны), а тот факт, что я наконец-то смог подтвердить теорию, которая была у меня на уме уже по крайней мере два года. Читать дальше →..
Хитрости Nokia 5800 и N97
Перевод статьи "The ultimate guide to Nokia 5800 and N97 tweaks" Читать дальше →
Continuous integration для php
Эту статью написал мой добрый приятель и бывший коллега fred, работающий в команде программистов над большим и сложным проектом, который должен работать 24х7. Если кто-то решит пригласить его на хабр — с удовольствием вышлю его email по хабрапочте. Пожелания и комментарии приветствуются, а я обязуюсь передавать ответы автора в меру своих возможностей. Меня давно посещала мысль запустить CI-сервер для рабочего проекта. База модульных тестов уже достаточно внушительных размеров, а количество люде..
90-дневная ознакомительная версия Windows 7 Enterprise
Microsoft предлагает 90-дневную ознакомительную версию Windows 7 RTM Enterprise (Она разработана специально для ИТ-специалистов, чтобы вы смогли протестировать ваше программное обеспечение и оборудование на окончательной версии продукта.) По ссылке можно загрузить 32- и 64-разрядные версии Windows 7 RTM, которая поступит в продажу в ноябре, при этом не надо быть подписчиком TechNet, MSDN...
Список полезных инструментов для php разработчика
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку. Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода. Чита..
Учимся отражать микроDDoS на NGiNX
Коротко о нас. Совместно с Центром телекоммуникаций и информационных технологий МГУ им. М.В. Ломоносова, мы занимаемся исследованиями DDoS. Основная цель: разработать и донести до сообщества эффективные, доступные техники противодействия распределенным атакам на отказ в обслуживании. В рамках исследовательской программы мы бесплатно предоставляем защиту. Все что нужно — передать трафик на наше оборудование любым удобным способом (изменить А запись DNS, GRE/IPIP tunnel). В блоге проекта hll...
jQTouch выпускает новую версию мобильной доброты
Мы писали о jQTouch, основанном на jQueryiUI-подобном наборе средств, созданном Давидом Канедою(David Kaneda). Сегодня они выпустили новую версию, которая улучшает их расширяемую систему нижеследующим:Улучшенный переход к 3D-перевороту (improved 3D flip transition) События обратного вызова (callback events) для всех переходов между страницами, сильных тычков (swipe events), изменений ориентации Прилагаются демонстрации: Часы, To-do,Главное функциональное демо Темы: в настоящее время есть тем..
Годятся ли CSS-спрайты для шрифтов?
Возникла мысль: а нельзя ли использовать CSS-спрайты для того, чтобы выводить заголовки необычными шрифтами? Кажется, что сделать это не так и сложно. Нужно подготовить CSS-спрайт — вывести все буквы в картинку и сделать CSS, в котором для каждой буквы есть свой класс, позиционирующий фон на нужное место в картинке. Помечаем строку, которую нужно преобразовать, специальным классом. В момент загрузки выбираем все помеченные строки и для каждой их буквы создаем span с классом, соответствующим ..
10 шагов для добавления сайта в Яндекс.Новости и Google News
Яндекс.Новости и Google News являются крупнейшими новостными агрегаторами в России. Так, по данным TNS Russia в июне 2009 года Яндекс.Новости в день посещало чуть более 1,1 миллиона человек. Представьте, какой трафик на сайт могут дать подобного рода системы. И в отличие от, например, News2 и Smi2, новости попадают туда автоматически. Причем, для Google News не нужно совершенно ничего делать — главное, чтобы ваш сайт индексировался Гуглом. Для Яндекса нужно делать полнотекстовый фид со некоторым..
Анализ рынка ноутбуков с помощью Python
Введение В этой статье я расскажу о состоянии на сегодняшнем российском рынке ноутбуков. Всю аналитику мы будем проводить с помощью кода на python. Думаю она будет полезна как тем, кто ищет ноутбук, так и тем, кто хочет потренироваться написанию на python.Начнём Для анализа нам необходим набор данных, к сожалению я не смог обнаружить веб-сервисы у российских он-лайн магазинов ноутбуков, поэтому мне пришлось скачать прайс-лист одного из них (я не стану называть его) и вытащить из него цены и осн..
Защищаемся от HTTP DDoS и прочих Хабраэффектов
Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему. Читать дальше →..
Онлайн чат для сайта через джаббер (GTalk)
Великолепная веб-программа позволяющая разместить на вашем сайте панель с чатом для ваших клиентов сообщения которого будут прилетать в ваш джаббер клиент. Другими словами это способ организовать общения с посетителями сайта. Написать подробную инструкцию меня сподвигнула обзорная заметка на сайте dikiy.com Под катом так-сказать пошаговая инструкция как запустить онлайн чат на своем сайте Читать дальше →..
Как запретить браузеру выделять текст
Если Вы веб-разработчик, то у вас наверняка возникала необходимость в том, чтобы запретить пользователю выделение текста. Оговоримся, что я не имею ввиду полный запрет с целью защиты текста, а запрет на выделение всевозможных подписей, надписей и т.п. где выделение мешает работе интерфейса и пользователю (чаще всего при drag&drop, или выделении текста при двойном клике). Это в первую очередь касается веб-приложений и ни в коем случае не касается информационных сайтов. Читать дальше →..
Онлайн-генераторы графики WEB2.0 для новичков и не только
Последний раз при создании графических элементов для шаблона своего личного блога я отказался от графических редакторов установленных на компьютере. Отказался звучит громко, конечно я их использовал, но исключительно для склейки и подгонки размеров. Решил что блог это не рабочий сайт, поэтому можно экспериментировать. То что в итоге получилось нельзя назвать полностью «веб два нольным» форматом, ведь добавлялись лишь понравившиеся мне элементы, однако то что мне хотелось увидеть я добился исключ..
Повышение работоспособности: как я делаю работу, которую делать не хочу
Сегодня я продолжаю свою тему и пишу пост о том, как я «заставляю» себя делать скучную, нудную и неприятную работу. В работе абсолютного большинства людей есть задачи, которые выполнять не хочется, но надо. Решается эта проблема (если решается) обычно методом «заставить себя», или «через не могу». Так происходит, потому что все мы приучены к этому с раннего детства. Поэтому мы всегда мучаем себя, делая то, что нам ненавистно. Сопровождается такой выход большим количеством негативных эмоций. А э..
Редкие фичи nginx: random_index
Решил осуществить давнюю мечту, и написать про некоторые модули nginx, которые используются довольно редко. Сегодня речь пойдёт про random_index_module. Что это такое и зачем оно нужно?
Автоматическое управление скоростью µTorrent в зависимости от активности пользователя
В этой статье я бы хотел: 1) Поделиться с вами своей находкой: программой позволяющей изменять скорость популярного торрент-клиента utorrent через параметры командной строки. 2) Показать живой пример использования данной программы (c применением планировщика nncron).Предистория: Некоторое время назад захотел я, чтобы utorrent в мое отсутствие за компьютером мог полностью занимать канал, а по моему приходу сокращал бы свои аппетиты, чтобы я мог комфортно пользоваться интернетом. Подобных на..
Обналичка чеков
На днях украинский Приватбанк в своей системе интернет-банкинга Приват24 ввел обналичивание именных чеков, в том числе чеков GoogleAdSense. Думаю эта новость должна заинтересовать веб-разработчиков получающих прибыль с рекламных площадок Google. Теоретически обналичить чек можно в течении суток (находясь в Днепропетровске). Вот текст оф.новости:«Уважаемые пользователи! Представляем вам новую услугу — Акцептация именных чеков (в т.ч. чеки Google AdSense). Теперь Вы можете получить выплату по ..
Полноценные классы в Javascript
К сожалению, в своей практике освоения Javascript мне не приходилось встречать толковой реализации классов и механизмов наследования. Хотя сам язык достаточно гибок и имеет огромный потенциал. Не доводилось видеть и удобной организации приватных методов. Обычно для этого использую следующий трюк. В качестве приватного метода создают функцию прямо в конструкторе, где должны быть описаны и все методы использующие её:function MyClass() {   function privateMethod() {   }   this.publicMethod = fun..
Собеседование. Сегодня
В сферу моих профессиональных обязанностей входит проведение собеседования для соискателей на должность PHP разработчика. И дальше речь пойдет о собеседовании… Читать дальше →
CKEditor 3.0 released!
Новая ветка от FCKEditor'a CKEditor. Новый web-редактор с более легким и красивым интерфейсом.
Повышение работоспособности: как я избавился от бессонницы
У многих айтишников есть проблемы со сном. Ниже — описание моей проблемы и метод, которым я её решил. Несколько недель назад я получил сразу три крупных заказа, каждый из которых был жёстко ограничен сроками. Проекты были действительно интересными и хорошо оплачиваемыми, поэтому первые несколько дней я работал практически без сна. Естественно, производительность начала снижаться. Дошло до того, что я начал ловить себя на том, что несколько минут(!) я «тупо втыкал» в монитор, ничего при этом не ..
Yii: устройство ActiveRecord и Шардинг
В последнее время на хабре довольно много внимания уделяется фреймворку Yii. Он стал и нашим выбором для крупного проекта. А проблема большинства крупных проектов, как известно, в масштабировании. Не менее известно, что можно легко поставить сотни параллельных nginx и отбалансировать нагрузку на процессор, память, диск и даже канал. А вот с СУБД все гораздо сложнее. Для того, чтобы заранее побороть эту проблему правильным способом было решено реализовать в Yii поддержку шардинга. Речь под катом..
Когда Photoshop отображает совсем не то, что надо
Такая вот ситуация: дизайнер присылает макет, а у верстальщика открывается какая то лабуда светлая, или темная (если верстальщик испольует МасOS, а дизайнер Win.). Или же верстальщик сохраняет картинку, а там цвета другие стали. Разберемся почему так и как с этим жить. Читать дальше →..
Шпаргалки по HTML 5 и CSS 3
Наверняка вы видели разные шпаргалки по веб-программированию. Теперь появились шпаргалки по HTML 5 и CSS 3. Ссылки на скачивание под катом Читать дальше →
Простой скрипт для рассылки СМС
Я продолжаю изучать Питон. Язык красивый, меня радует что когда мой коллега — непрограммист, садится за мой код он его может прочитать и понять. Встала задача сделать СМС оповещение клиентов (ну о просрочке, новых услугах итд). Мы купили GSM модем Teleofis. Для работы с ним пошукали проги, не особо нашли, а уж бесплатного и тем более. Пришлось открыть мануалы и написать простенькую прогу под Винду, которая открывает COM порт, на котором сидит модем и пишет в него AT команды. Сам скрипт требует ..
Сравнение Yii с CodeIgniter
Как-то я пообещал сравнить Yii с CodeIgniter. Думаю, на данный момент я достаточно распробовал Yii, чтобы адекватно сравнить два замечательных фреймворка. Читать дальше →
Повышение работоспособности: как я просыпаюсь по утрам
В предыдущем посте я рассказывал о методах борьбы с проблемой «не могу заснуть». Тема оказалась востребованной, и я решил написать о своих методах борьбы с проблемой «не могу проснуться». Думаю, саму проблему описывать не стоит: большинство людей знают, как трудно проснуться утром, и какие неприятные ощущения возникают при одной мысли о том, что нужно покинуть тёплую постель, в которой так хорошо и спокойно… Но вставать как-то нужно, иначе будут проблемы. Лично мне было очень тяжело вставать по..
Как написать PHP-приложение на Kohana, Smarty, jQuery для работы с Facebook API — полный пример
Например, решили вы из странички на PHP (Kohana+Smarty) достучаться до Facebook API, получить от него список друзей (используя FQL, это такая разновидность SQL для запросов к табличкам Facebook), положить в MySQL, ну и через AJAX (jQuery+TableSorter+Trimpath JST) показать. Тут вам очень кстати попадается на глаза эта статья. Видимо, ничего не остаётся, кроме как читать дальше. Читать дальше →..
6 простых способов увеличения фрилансерской продуктивности
Лучшее в фрилансерской работе это то, что вы свободны в создании вашего собственного графика и правил. Однако это может быть и плохим фактором. Без нормально структурированного офисного пространства многие фрилансеры в конце дня могут задуматься – куда же делось все их время. Может быть трудно получить максимальную пользу от всего рабочего дня. Чтобы помочь таким фрилансерам, мы хотим представить некоторые простые пути для увеличения продуктивности. Идем дальше.....
Создаем OLAP куб. Часть 2
Итак, продолжаем создавать куб. Напомню, что в предыдущей статье, мы создавали Data Warehouse для хранения голосов хабра-пользователей за хабра-топики. Для тех, кто хочет начать сразу создавать куб, я выложил скрипт, который создает и наполняет хранилище (на моей машине скрипт занял 10 минут и нагенерил 1866268 хабра-голосов). Для того, чтобы создать OLAP куб, нам понадобится:SQL Server, на котором хранится наш HabraDW (подойдет любой); Microsoft SQL Server, с запущенными Analysis Services (2..
Full Hierarchy — иерархические структуры в базах данных
Здравствуйте. В этой статье я хотел бы написать про один очень интересный способ хранения иерархических структур в базах данных, не относящийся при этом к общепринятым и общеизвестным трём (Adjacency List, Nested Set, Materialized Path). Я не встречал в интернете упоминания о нём, о чём очень удивлен, ведь, по моему мнению, — это лучший и единственный способ хранить иерархические структуры. При разработке console-like форума я воспользовался именно этим способом, о чём ни на грамм не жалею. Это ..
Очистка изображения от шума, некоторые методы
Если Вы видели картинку, которая получается в современных цифровых фотоаппаратах без обработки, то Вы знаете, что выглядит она просто ужасно. Она заполнена шумом. Даже когда Вы скачиваете картинку на компьютер и она уже прошла внутреннюю обработку в фотоаппарате, если ее увеличить и посмотреть на отдельные пиксели, можно увидеть, как мужественно цифровые алгоритмы борются с шумом и проигрывают в этой неравной войне. Некоторые алгоритмы стирают мелкие детали напрочь, этим знамениты сотовые теле..
Удаление объектов на фотографии
Как удалить объект на фотографии так, чтобы не осталось черного пятна? Чтобы место этого объекта заняли другие объекты, и никто бы этого не заметил? Долгое время считалось, что эта задача почти неразрешима. Предлагались такие псевдо-решения, как, например, замазать дырку какой-нибудь текстурой:akvis.com/ru/multibrush-tutorial/examples/removing-object.php Наконец, на конференции SIGGRAPH в 2007 году было предложено уникальное по своей функциональности и возможностям решение. Не откажите себе в у..
Здоровье для гиков и не только
Введение. В последнее время на суд хабрасообщества были представлены несколько статей разных авторов в стиле «Здоровье для гиков, или как оторвать задницу от насиженного и родного с детства места». Упоминались также темы здорового питания, здорового сна, и несколько смежных. Последняя на данный момент публикация повествовала о такой дисциплине, как бодибилдинг. За это спасибо автору публикации sortafreel, к тому же, материал может оказаться полезным многим из нас. Но (и тут меня начнут пинать п..
Расставляем точки над прижатым футером: возвращаясь к истокам
Задача:Показать семантичный пример верстки с прижатым к низу футером неопределенной высоты стандартными средствами CSS 2.1; Получить на базе этого примера применимое на практике кроссбраузерное решение; «Попиарить» незаслуженно забытые значения свойства display; Добрым словом помянуть таблицы :) История вопроса: всё началось с этого коммента к этому топику, за ним последовало познавательное обсуждение, продолжившееся в личной переписке. И вот что получилось в итоге.....
Google Статистика поиска — Посмотрите, что ищут люди по всему миру (на 39 языках)
Статистика поиска Google позволяет сравнивать объемы поисковых запросов по различным регионам, категориям, временным рамкам и веб-службам. Приведенные ниже примеры иллюстрируют некоторые способы использования Статистики поиска Google. Независимо от того, представляете ли вы рекламное агентство, небольшую компанию, международную корпорацию или исследовательский центр, с помощью Статистики поиска вы сможете оценить интерес к требуемым поисковым запросам. Читать дальше →..
Некоторые ошибки при написании регэкспов
По мотивам переведенной статьи Впервые я увидел регэкспы еще в школе в перле, и в общем полюбил их с первого взгляда, конечно после того как разобрался что это такое :). И с превеликим энтузиазмом принялся все регэкспить. Конечно, при этом, понабивал себе шишек на мозг, но любить их не перестал. Со временем любая искренняя любовь взрослеет и перерастает в глубокую привязанность, с понимаем того, что объект твоего чувства может быть несовершенным, но от этого не менее любимым. Итак, несколько с..
TeX-like разметка на Javascript
При написании console-like форума был задан вопрос: «какую разметку лучше использовать?». Среди вариантов были стандартный бб-код ([b]bold[/b]), вики-разметка(*bold*), или TeX-like разметка (\b{bold}). После недолгого совещания выбор был остановлен именно на TeX-like. Была написана небольшая библиотека, которая, по моему мнению, достаточно интересна, расширяема и гибка. Желающие посмотреть пример могут перейти по ссылке freecr.ru/TeX/ Под хабракатом у меня исходный код под лицензией LGPL, объясн..
PHP Manual с комментариями пользователей в chm
Навеяно вот этим: Похапе мануал обновился Мне лично удобней пользоваться CHM версией руководства по PHP — быстрый поиск удобен, а интернет не всегда доступен. Но у официальной справки нет встроенных пользовательских комментариев, которые зачастую бывают очень полезны. Ранее они были в Extended-версии руководства, но сейчас она уже не поддерживается. Полазив в гугле, я обновленной версии руководства с комментами не нашел. Пришлось сделать собственную, и этот процесс может повторить любой желающ..
И без Javascript всё спокойно
Задача Совместить lite-версию сайта (работающую без Javascript'а) с обычной. Иными словами, сделать graceful degradation для Javascript-решений. Далее в посте небольшое руководство для тех, кому актуальна данная проблема. Читать дальше →
Типограф Евгения Муравьева для TinyMCE
В топике Новая версия веб-типографа Студии Муравьёва был представлен замечательный типограф.Типограф обрабатывает тексты не только по классическим законам (неразрывные пробелы, правильные кавычки, свисающая пунктуация и др.), но и по взятым канонам из «Справочника издателя и автора» Мильчина А. Э. Любители типографики должны это оценить. Я использовал его в своем движке магазина, и побочным продуктом стал простой и удобный плагин для TinyMCE. При нажатии на кнопку не отображается никаких всплы..
Bing покажет соседей по хостингу
Оказывается, поисковик Bing умеет делать обратный поиск по IP-адресу. Вводите запрос вида [IP:123.123.123.123] — и получите список сайтов на этом IP. Список сайтов с одинаковым IP-адресом означает, что все они физически располагаются, скорее всего, на одном и том же сервере. Таким образом, вы можете узнать своих «соседей» по хостингу. Имейте в виду, что соседей нужно выбирать с умом. Если на вашем IP сидят какие-то спамеры, до добра это не доведёт. У крупных сайтов никаких «соседей» по хости..
Web Optimizer 0.5.5 «falcon», RC4
После продолжительных летних каникул мы собрались с силами и выпустили новую сборку приложения для автоматического ускорения сайтов — Web Optimizer — под кодовым именем «falcon» (сокол). По заверению множества пользователей (зафиксировано более 900 реальных установок) приложение стало значительно стабильнее и мощнее. Загрузить: code.google.com/p/web-optimizator/downloads/listОсновные изменения Читать дальше →..
Магия Fireworks
Расскажу ка я вам про мой любимый растровый и векторный графический редактор Adobe Fireworks, который очень удобен для разработки сайтов. Например, реализация работы со слоями настолько удобна, что я не пользуюсь окном Layers, оно у меня отключено. Все слои прекрасно выделяется в рабочем окне (подсвечиваясь по наведению), и отлично видно с каким слоем работаешь. Но это все лирика, лучше что нибудь сделаю, чтобы влюбить вас в Fireworks. Делаю конечно кнопку с круглыми уголками :). Читать дальше ..
Cargo — платформа для портфолио
В моём предыдущем хабратопике несколько человек просили рассказать подробнее про Cargo, как оказалось хабра-сообщество еще с ним не знакомо, что же — распишу всё по шагам и с картинками.Cargo — это платформа (CMS) для веб-публикаций и организации сообществ, в настоящее время находящаяся в стадии разработки и тестирования. Она полномочна для создания различных творческих сообществ в сфере образования, дизайна, исследований, и концептуального искусства. Читать дальше →..
Похапе мануал обновился
Альтернативный мануал к PHP обновился. Напомню, он хорош для тех PHP-разработчиков, кто привык пользоваться chm-версией справочника, ведь он решает некоторые проблемы:Корректная кодировка русскоязычных разделов Решение проблем с открытием chm-файлов под Линуксом и Макосью Хотя наплыв пользователей одной известной операционной системы компании «Майкрософт» показал, что мануал приглянулся не только целевой аудитории. В новой версии произошли довольно полезные изменения:К каждому разделу справ..
Автоматическая загрузка файлов на Яндекс.Диск
Предлагаю вашему вниманию PHP скрипт автоматической загрузки файлов на сервис Яндекс.Диск. Скрипт прост до безобразия, достаточно передать ему в качестве параметров логин, пароль и путь к файлу и в результате он загрузит ваш файл на сервис и выдаст вам ссылку на него. Не знаю, сколько еще меня вместе с моими постами будет терпеть Яндекс, но все-таки приведу исходный код скрипта :) Читать дальше →..
Nginx + Symfony. Создаем виртуальные хосты автоматически
Давно использую symfony в роли фреймворка php. В роли веб сервера nginx + php-fpm, заметил что многие не используют замечательной вещи, которую умеет nginx. Ниже описанный скрипт, подходит как раз для проектов написанных на symfony в принципе для любых проектов, но данный пример лично я использую для symfony. Создавать виртуальные хосты без рукаприкладства! ;) Допустим у вас есть директория с проектами — /var/www/git/… Условие что директории проектов мы называемаем также как и хосты. Наприме..
GUI для Волны
В одной из статей я описывал инсталляцию волнового демо-сервера FedOne. В «комплекте» к серверу имеется и клиент, с весьма примитивным текстовым интерфейсом. Я уверен, что у многих из тех, кто тестировал FedOne, возникала мысль о написании GUI-клиента к нему. И вот Thomas Beverley выложил исходные тексты клиента FedOne с графическим пользовательским интерфейсом. На скриншоте вы можете посмотреть, как это все выглядит под Windows XP. Запущены сервер и два клиента.  Читать дальше →..
Взлом каптчи файлообменника
Введение В данной статье коротко рассказывается о процессе взлома captcha с ifolder.ru. Применение в процессе языка Python и сторонних библиотек. Применение алгоритма преобразований Хафа в составе библиотеки Open Computer Vision © Intel позволит нам избавиться от шума на изображении, простая в использовании и быстрая библиотека FANN (Fast Artificial Neural Network) сделает возможным применение искусственной нейронной сети для задачи распознавания образа. Моя мотивация состояла, прежде всего, ..
Пример использования пользовательских событий
Наверное много кто знает что в jQuery есть набор стандартных событий, таких как Click или MouseDown и прочие, на которые можно повесить обработчики или возбудить с помошью функций click() mousedown() и прочих. Чуть поменьше людей знают, что те-же самые действия можно сделать с помощью функций bind() и trigger():$(document).bind('click', function(){   alert('It works!'); }); $(document).trigger('click');* This source code was highlighted with Source Code Highlighter. И наверное мало кто знает..
Сверхплавное передвижение объектов
Иногда у веб-разработчиков возникает задача, которая требует плавного движения объекта по экрану. Это может быть строка загрузки, какой-то спрайт (например, машинки на клавогонках) или что-то ещё. Проблема возникает, когда сдвиг даже на одну точку кажется слишком резким и портит общее ощущение от происходящего. Как этого избежать? Использовать приёмы антиалиасинга. Мы сделали небольшой пример (а затем и ещё один с зацикленным фоном), в котором можно посмотреть, как выглядит плавный сдвиг с субп..
Установка nginx + php-fpm + memcache + eaccelerator на FreeBSD
Зачем всё это? — спросите вы. Да просто захотелось поделиться с общественностью некоторым опытом, полученным в процессе оптимизации vds под нужды одного общеизвестного блого-социального движка, который на обычном хостинге чувствует себя, мягко скажем, некомфортно. Началось всё с того, что я ушёл от firstvds, где уже ничто не спасёт от тормозов. Ушел на ганди.нет, взял одну шару (1 share), которую дали на месяц бесплатно. Кстати, акция эта (This summer, your server is free!) вроде еще не закончи..
валидный HTML-документ
А вы знаете, что по-настоящему валидному HTML-документу не требуются теги <HTML>, <BODY>, <HEAD>, которые многие считают обязательными атрибутами HTML-документа. И вот такой документ: <!DOCTYPE html> <title>Валидный HTML-документ</title> на ура пройдет валидацию. Хотя желательно добавить <meta http-equiv=«Content-Type» content=«text/html; charset=utf-8»>, чтоб было меньше warnings, но тоже необязательно. Так что, если вам лень набирать лишние буквы или вы экономите каждый байт, заботясь о пол..
Работаем с банковскими (рабочими) днями
Полгода назад при разработке системы финансового учета поднялся вопрос о идентификации банковский дней. Произошло это в следующем контексте — при выставлении счета отводится некий промежуток времени (в банковских днях) по истечению которого надо трубить тревогу, если счет еще не оплачен. Читать дальше →..
Как обойти каптчу в Яндекс.Диск
Итак, все мы знаем, что на яндексе можно хранить файлы до 5 гигабайт, но при загрузке он требует ввести каптчу или установить Яндекс.Бар. Так как Яндекс.Бар я не использую, то решил проверить, а собственно каким таким гениальным способом проверяет Яндекс этот самый пресловутый плагин? Для этого эксперимента все-таки пришлось его установить на Firefox и используя плагин FireBug начать тестирование… Читать дальше →..
8 полезных регэкспов с наглядным разбором
О мощи и гибкости регулярных выражений написано много, и их использование давно уже является стандартом для различного рода операций над текстом. Пожалуй, чаще всего регэкспы работают при валидации вводимых данных — здесь им практически нет альтернативы, если не считать громоздкий циклический разбор с кучей неочевидных проверок. Начнём с самого простого:1. Часть ЧПУ (человекопонятный URL) По сути, слово с дефисами. Паттерн: /^[a-z0-9-]+$/ Читать дальше →..
Работа с форматами сжатия RAR, LZF и BZ2 в PHP
Когда дело доходит до работы с разными форматами файлов, PHP сложно смутить. Документы XML, файлы PDF, изображения JPEG, медиа MP3… вы называете их, и есть все шансы, что у PHP найдутся расширения для работы с ними. И такая же ситуация с такими форматами для сжатия, как RAR, LZF и Bzip2, хотя эти форматы архивов не так распространены сегодня, как повсеместные TAR и ZIP, они все еще активно используются многими приложениями и проектами, и продолжают поддерживаться в PHP через PECL расширения. Во..
Как сделать свой сервис временной почты
Не так давно была у меня необходимость во многих уникальных почтовых ящиках. Регистрировать их вручную было слишком долго и я решил воспользоваться сервисами наподобие tempinbox.com/. Но почти сразу возникла проблема, ни один из них не одобрял автоматического использования. После этой попытки я понял что отвертеться мне не получиться и полез в раздел настройки почты своего кривенького VDS. Как оказалось все очень просто. Читать дальше →..
Создание слайдеров с анимированной прокруткой, используя Javascript
В этой статье я хотел бы поделиться своими практическими наработками в создании анимированных слайдеров, используя Javascript. Читать дальше →
Теория покупки из-за рубежа
Преамбула Примерно месяц назад решил наконец купить себе нетбук, через интернет. Почему именно через интернет? Да просто решил получить опыт покупки, на будущее, плюс немного сэкономить. Информацию о покупках из-за рубежа собирал в своем личном блоге (ссылку по понятным причинам не даю) как с Хабра, так и с других ресурсов. Преимущественно она касается покупки через eBay, но в целом верна для любого онлайн-магазина.Почему теория? Потому что несколько дней назад мне позвонила моя родная тетя из..
CSS Sticky Footer / Прилипающий футер
Как использовать прилипающий футерВведение В Гугле можно найти много реализаций прилипающего футера. Я перепробовал большинство из них, и обычно где-нибудь они да подводили. В основном из-за того, что предложенные методы были слишком старыми, и не срабатывали в новых браузерах. Но, поскольку страницы, предлагающие решения, довольно старые, на них давно ссылается много других сайтов, из-за чего они до сих пор находятся довольно высоко в поисковой выдаче Гугла. Вебмастеры находят их самыми первы..
Первоклассным специалистом может стать каждый!
Вы думаете лучшими специалистами в своем деле становятся талантливые и гениальные люди? Нет, быть лучшим — это возможность каждого нормального человека! И у тебя, Хаброжитель, эта возможность тоже есть! Читать дальше →
Меняем меню: расширения волнового клиента
Как известно, в Google Wave можно использовать два типа расширений (extensions) — гаджеты и роботы. Напомню: Гаджет — небольшая программка, которая выполняется на стороне клиента, принадлежит определенной волне и позволяет ее участникам взаимодействовать между собой, поскольку они все могут менять статус гаджета и одновременно видят эти изменения. Наглядный пример — гаджет голосования. Вы проголосовали «за» или «против», гаджет учел ваш голос и изменил таблицу результатов. Все участники волны, в..
Интересный способ защиты от ботов
Наткнулся тут недавно на одном сайте на способ защиты от ботов без использования каптчи и javascript. Все очень просто — достаточно добавить скрытое поле с символом кодированным в HTML сущность (например &copy; &#151; и т. д.). Дело в том что браузер найдя такой символ преобразует его перед отправкой в обычный, а робот использующий парсер форм так и отправить закодированным (причем у меня есть свой парсер форм и он сделал бы именно так). При проверки формы достаточно просто посмотреть длину стр..
Что нужно настроить в mySQL сразу после установки?
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL. Читать дальше →
innerHTML в таблицах
Известно, что в IE свойство innerHTML для таблиц является свойством только для чтения. support.microsoft.com/kb/239832 В итоге для изменения содержимого таблицы, нужно бегать по DOM. Что не всегда удобно, особенно если для каждой ячейки назначено какое-то событие. Я надеялся, что в jquery эта ситуация исправлениа. Но нет. Код$('#id_tr').html('<td><button onclick="my_f(new_id)">new action</button></td>'); тоже не работает должным образом. Читать дальше →..
HTML5 canvas experiment
правильный браузер required
Robot Grammar Nazi: Робот, говори правильно!
Даже когда люди общаются с автоматизированной системой, они делают множество выводов о том, что за «персонаж» с ними общается. Эти выводы складываются из многих характеристик, в том числе качества голоса, набора слов, способа их произнесения и т.п. Это явление представляет возможность компании создать конкретный образ и расширить свой бренд посредством грамотного проектирования персонажа, являющегося визитной карточкой системы. Некоторые дизайнеры думают, что нужно убедить пользователя в том, ..
Структуры данных: бинарные деревья. Часть 1
Интро Этой статьей я начинаю цикл статей об известных и не очень структурах данных а так же их применении на практике. В своих статьях я буду приводить примеры кода сразу на двух языках: на Java и на Haskell. Благодаря этому можно будет сравнить императивный и функциональный стили программирования и увидить плюсы и минусы того и другого. Начать я решил с бинарных деревьев поиска, так как это достаточно базовая, но в то же время интересная штука, у которой к тому же существует большое количест..
Возвращаем в Оперу то, за что мы её так любим (или ещё раз про ускоритель интернета ;)
Я — один из преданных пользователей браузера уже 10 лет. Несмотря на сильную закрытость Оперы (ладно уж расширения, но даже в буфер обмена она копирует не так, как остальные), её движок — настоящий наркотик, который удерживает меня в стане фанатов все эти годы. Однако в последнее время я замечаю довольно досадную вещь: страницы не показываются на лету, сразу же после начала загрузки, а отображаются с задержкой. Причину я выяснил в ходе одной из дискуссий на Хабре, когда мой оппонент ( egorinsk)..
Скрипт для быстрого обзора информации о жёстких дисках
Решил поделится с хабрасообществом небольшим PHP скриптом, который немного экономит моё время.Суть проблемы Дома имеется сервер, который подключён к небольшой локальной сети и по совместительству работает обменником. Всяческим хламом он забивается моментально и переодически нужно передвигать и выбрасывать «мебель».Описание скрипта Скрипт генерирует список всех жёстких дисков и их разделов. Для каждого раздела выделяется точка монтирования, свободное место на диске в процентах и общая ёмкость р..
PHPDoc+PHP IDE (Eclipse и NetBeans)
Данная статья посвящена описанию интеграции PHPDoc в среды разработки для PHP Eclipse PDT и NetBeans. В ней я хочу рассмотреть способ сделать автодополнение полей и методов классов PHP средством повышения удобства разработки. http://docs.google.com/View?id=dchkhbfc_34zpkg3gq
SketchFlow: прототипирование интерфейсов по-новому
Все хорошие разработчики и дизайнеры, с которыми я знаком, в той или иной мере занимаются прототипированием. Как мне кажется, прототипирование напоминает канал между заказчиком и разработчиком, по которому передаются идеи и отзывы заинтересованных сторон, что позволяет вносить изменения в проект еще на раннем этапе разработки. Как вы, наверное, замечали, прототипы могут быть представлены в разнообразных формах: от каких-то набросков на салфетке, до дизайна созданного в профессиональном пакете, ..
Галерея с асинхронной загрузкой средствами CSS3
Занимаясь вёрсткой галерей, я искал простое и оригинальное решение для просмотра фотографий. Экспериментируя, написал пример, которым хочу поделиться с сообществом Хабра.Разметка: XHTML 1.0 Strict [Valid]. Оформление и управление: CSS3 [Valid]. Поддержка устройствами группы: screen. Поддержка браузерами: Opera 9.6, 10; Firefox 3.0, 3.5; Chrome 1—4; Safari 3.2, 4.0. Асинхронная загрузка, счётчик изображений. Корректная ссылка вида #photobox-id. Вывод гипертекста с заголовком, описанием, сс..
Анимированные меню на jQuery [часть 2]
По мотивам этого перевода. На одном из текущих проектов мы хотели добавить эффект на иконки меню — приподнимание в момент наведения мышкой. Я поэкспериментировал, используя встроенный в jquery эффект animate, на иконках двух типов: с отражениями и с тенями.Смотрим демо Читаем далее.....
Официальные темы в Google Chrome
Удивлен, что через 10 часов после выхода статьи на крупном западном IT-ресурсе, Хабрасообщество все еще молчит об этой горячей новости. Хочу заполнить информационный вакуум в своем первом топике. Сильно не бейте! Читать дальше →
Золотые правила для тех, кто хочет начать свой стартап
Добрый день всем. Если вы думаете, что я хотел сказать «золотые правила для тех, кто хочет ничего не делать», то вам эта статья будет неинтересна. Я хочу поделиться опытом создания стартапа и теми выводами, к которым я пришел. Давайте рассмотрим, откуда вообще берутся стартапы и как с ними бороться. Читать дальше →..
Установить время выполнения консольной команды
Довелось однажды писать скрипт, который в процессе своей работы пробегал по списку видео файлов и для каждого запускал ffmpeg с ключом, позволяющим получить информацию о файле. Мне собственно требовалось время воспроизведения. Все бы хорошо, да вот на одном файле ffmpeg подвисал и не думал завершаться, а в момент завершения отваливался и php скрипт без видимых на то причин. После долгих поисков решения данной проблемы, был найден код, который после небольшой переделки я готов представить на ва..
Getters & Setters в Javascript
Много людей знают, что такое getter'ы и setter'ы во многих языках программирования. Есть эти чудесные штуки и в Javascript, хоть узнал я об этом совсем недавно (темень я необразованная). Речь пойдёт не только и не столько про методы getSomeProperty()/setSomeProperty(...), а про более интересную реализацию — псевдо-аттрибуты, при изменении которых будут вызываться функции-обработчики. Дальше.....
Создаем закруглённые уголки с помощью CSS 3
Одно из наиболее ожидаемых свойств CSS3, несомненно, свойство border-radius. С помощью свойства border-radius можно создавать, такие популярные в последнее время, прямоугольники с закругленными углами, исключительно средствами CSS, не используя никаких изображений. Читать дальше →..
Обзор современных методов оптимизации
Господа, прошу прощения, кто-то под мои аккаунтом написал эту статью, содержащую ссылки на другие, видимо раскручиваемые, ресурсы и опубликовал в блоге SEO. Удалить ее нельзя, поэтому я перенес ее в личный блог.
Партиционирование таблиц в mySQL
Начиная с версии 5.1 mySQL поддерживает горизонтальное партицирование таблиц. Что это такое? Партиционирование (partitioning) — это разбиение больших таблиц на логические части по выбранным критериям.. На нижнем уровне для myISAM таблиц, это физически разные файлы, по 3 на каждую партицию (описание таблицы, файл индексов, файл данных). Для innoDB таблиц в конфигурации по умолчанию – разные пространства таблиц в файлах innoDB (не забываем, что innoDB позволяет настраивать индивидуальные хранилищ..
TAG_ADD Plugin
Привет, %username% Как-то раз мне пришлось писать форму для добавления постов в блог. Помимо стандартных полей (название, дата, текст и.т.д.) необходимо было привинтить юзабельную форму добавления тегов. Т.к. я кодю в jQuery, то и выбор был однозначным. Вот необходимые задачи, которые я поставил перед собой:Легко в настройке Все теги храняться в одном файле (в кэше) Минимальная нагрузка на сервер и клиента Список тегов — подсказок открывается только для выбранного запроса на определенный т..
XSS глазами злоумышленника
Что такое XSS и как от него защитится все уже давно знают, поэтому буду краток. XSS это возможность злоумышленника определенным образом (ссылку на возможные варианты смотрите в конце статьи) интегрировать в страницу сайта-жертвы скрипт, который будет выполнен при ее посещении. Интересно, что в большинстве случаев, где описывается данная уязвимость, нас пугают следующим кодом:http://www.site.com/page.php?var=<script>alert('xss');</script> Как-то не очень страшно :) Чем же действительно может бы..
AvisoSMS
Здравствуйте, хабралюди! Позвольте представить вашему вниманию стартап AvisoSMS. Подключившись к этому сервису, вы сможете интегрировать в свои проекты отправку sms-сообщений, будь то интернет-магазин, биллинг, форум или что-то другое. Можно делать рассылку, импортировав CSV или просто отправить смску из личного кабинета. Читать дальше →..
Как правильно говорить с «трудным» клиентом
Многим из нас время от времени попадаются «привередливые», «неадекватные» и «трудные» заказчики, партнёры, начальники, подчинённые и т.д. В этом посте я расскажу:Как добиться своего в конфликтных ситуациях Как вести разговор, не вызывая негативной реакции собеседника Как держать конфликтную ситуацию под контролем Как не допустить развития конфликта и как его устранить Читать дальше →..
Если хотите стать программистом
Хочу опубликовать одну старую статью, которую я уже как то публиковал на одном из сайтов. Сразу скажу — авторство не мое, статья древняя, но актуальная. Благодаря этому уникальному упражнению, вы, совершенно не зная ни одного языка программирования, сможете почувствовать себя настоящим программистом-профессионалом! Поехали..
Теории мотиваций
На написание меня сподвигли пара топиков про теории мотивации X и Y.В качестве предисловия Проблема мотивирования труда является одной из самых острых проблем, стоящих перед современным российским предприятием. Как правило, отечественные руководители рассматривают систему мотивации как инструмент, базирующийся на персональных выплатах работнику. Согласно принятым системам мотивации на отечественных предприятиях работник получает: • Базовую заработную плату в зависимости от иерархического уро..
RentACoder vs oDesk
В последние дни вышла пара блогов о RentACoder. Хотелось бы сравнить эту систему с другой — oDesk — что бы начинающие фрилансеры знали с чего начинать Сразу оговорюсь — я не являюсь ни сотрудником RentACoder ни oDesk, и все нижеизложенное является исключительно моим мнением основанным на собственном опыте vs Читать дальше →..
Кешируем блоки HTML при помощи nginx
Не секрет, что пользователи любят, когда контент на сайте обновляется чаще, чем раз в год. Эту любовь пользователей к динамическим страничкам разделяют и поисковики. Google, например, умеет определять наличие обновляющихся блоков на страничке и добавляет ей немного кармы (читай, PR). Однако динамический контент довольно плохо сочетается с большими нагрузками. Для веб-сервера, отдача статической странички — намного более простая задача, чем запуск кода, который сгенерит эту страничку динамически..
Отличная идея: цветовая индикация ввода пароля
Разработчик Mattt Thompson предложил, на мой взгляд, очень оригинальную и интересную идею цветовой индикации ввода пароля в поля формы. Для введенного пароля считается хэш который представляется в виде трех цветных полосок рядом с полем ввода пароля. Таким образом, во-первых, производится валидация повторного ввода пароля. А во-вторых и это самое главное, зная свой цветовой код вы сможете сразу узнать ошиблись вы или нет при первом вводе пароля. Более подробно о идее в блоге автора. Попробовать..
Продвинутая фильтрация в Google Analytics
В Google Analytics добавлен продвинутый функционал фильтрации по критериям (events). Фильтровать аудиторию можно в пару нажатий мышки, и для отфильтрованной группы доступны все стандартные средства Google Analytics. Что интересно, выдумывать и создавать можно абсолютно любые события (например, фильтр по тем, кто смотрел на сайте видео, или по тем, кто щёлкал по рекламе). Технически это работает так. Как только вы создаёте новые уникальные критерии для фильтрации (event), генерируется новый код ..
Ускоряем запуск браузера FireFox
Ещё давно приметил, что мой любимый инструмент, запускается значительно шустрее после установки, чем после многомесячного, активного использования браузера. Заметил, но как распорядится этим знанием мыслей не было. И вот, только что наткнулся на полезную тему, где описано это узкое место, а также дан ещё один совет по ускорению запуска браузера. И так узкое место при запуске это загрузка .sqlite, базы данных вашего профиля. При интенсивной работе с Фоксом, базы разрастаются, в них появляются «п..
17 usability tips to make your CMS rock
К вашему вниманию перевод статьи Патрика Кеннеди о том, какой должна быть удобная система управления контентом. Более чем вероятно, что в вашей CMS будет множество проблем с юзабилити, если вы будете использовать ее в сыром виде. Участвуя в проектах, в которых на меня было возложено внедрение таких систем — систем управления веб-сайтами, интранет-порталами и вики, я заметил, что в их пользовательских интерфейсах есть ряд ключевых областей, требующих исправления с точки зрения удобства использов..
Нужны ли «приватные» свойства объектов в Javascript?
В последнее время во многих статьях (на Хабре и не только) я часто вижу примеры эмуляции приватных свойств объектов в JS через замыкания. Авторы обычно объясняют это своим желанием использовать такой механизм ООП, как инкапсуляция, и тем самым гарантировать работу с объектом исключительно посредством его методов, не затрагивая напрямую свойства. В этой статье я предлагаю объективно рассмотреть достоинства и недостатки такого подхода, чтобы каждый мог для себя решить, стоит ли его использовать и..
Чеклист запуска сайта
Этот чеклист будет полезен всем, кто запускает сайты или следит за этим увлекательным процессом. Ничего не пропустите! Читать дальше →
XML-шлюз своими руками
Если вам приходилось работать с платежными системами, сервисами регистрации и другими ресурсами, реализующими удаленное взаимодействие с центральным сервером, то наверняка сталкивались с понятием «шлюз». Это сервис, который предназначен для проведения операций на центральном сервере путем обмена электронными сообщениями между центральным сервером (сервером системы, имеющей шлюз) и программным обеспечением некого клиента. Пожалуй, идеальный шлюз должен уметь принимать и отдавать данные в формате..
Как написать слово в поле для пароля так, что бы его было видно?
Написать эту статью меня натолкнуло общение с администратором сайта одного из футбольных клубов российской Премьер-лиги. Надеюсь, что он ее прочитает и воцарит сие в жизнь. Сейчас стало очень модно делать формы, в которых заголовок поля для ввода написан в самом поле. Например так: Но как в таком случае быть с полем для ввода пароля? Ведь он заменяет дефолтное значение на звездочки. В этом посте я решил рассмотреть несколько вариантов, как сделать поле для пароля со звездочками, но что бы сло..
Сортировка миллиона 32-битных int\'ов в 2 мегабайтах памяти на Питоне
Мой перевод статьи Гвидо ван Россума: Меня тут в шутку спросили: смогу ли я отсортировать миллион 32-битных int'ов в 2 мегабайтах памяти на Питоне. Во время размышления, мне пришло в голову задействовать механизм ввода-вывода с использованием буферной памяти. Вообще, это именно шуточный вопрос — одни только данные займут 4 мегабайта, при условии бинарного представления! Правда, можно пойти на хитрость — взять файл, содержащий миллион 32-битных int'ов. Как же отсортировать их, используя минимал..
Парсим URL
Хочу поделиться одной полезной утилиткой, написанной на pure Javascript, — URL. По сути это небольшой парсер URL'ов, работающий почти как window.location, но не перезагружающий страницу браузера при манипуляциях. А заодно скажу пару слов про getters & setters в Javascript. UPD1: по просьбам трудящихся, вынесу сюда примеры:// Пусть текущий URL = 'http://my.site.com/somepath/'var u = new URL('relative/path/index.html') u.href // my.site.com/somepath/relative/path/index.html u.href = '/absolute/..
Модель в MVC
В документации Zend Framework уделено много внимания двум последним буквам аббревиатуры MVC — View'у и Controller'у, но Model сама по себе не упоминается — подразумевается, что она уникальна от проекта к проекту и тяжело поддается унификации. Данная презентация Matthew Weier O'Phinney (одного из ведущих архитекторов Zend Framework) позволяет взглянуть на его точку зрения относительно проектирования модели вашего приложения — Service Oriented Architecture. UPD. Вебкаст: http://bit.ly/17c9Hn..
Реализация паттерна декоратор на JS
Суть паттерна в том, что есть класс с фактической функциональностью (компонент) и опциональными классами-обертками, которые дополняют основной функционал (декораторы). А фишка в том, что декораторов может быть сколько угодно, совмещаться они могут в произвольном порядке и (поскольку требуют от компонента только интерфейса) — могут работать с разными компонентами. Безусловно, реализовать что-то похожее можно даже за счет только лишь того, что функции в JS являются объектами первого уровня, но мн..
Google Chrome получает экспериментальную поддержку жестов
Представлено экспериментальное расширение к браузеру Google Chrome под названием Chromegestures. Следует отметить, что по сравнению, например, с системой управления жестами в браузере Opera, технология Chromegestures выглядит не менее развитой и довольно зрелой, если учесть, что первая версия выпущена только 16 июля этого года. Для установки расширения Chromegestures необходима версия Chrome для разработчиков (dev). Кроме того, перед установкой расширения надо включить поддержку расширений, вкл..
Кто такой moneymaker
Несколько моих знакомых с гордым видом называют себя moneymaker-ы. Честно сказать меня они довольно сильно раздражают. Я проанализировал чем именно они меня раздражают и на основе этого посторался выделить общее в этих горе-бизнесменах.Как распознать moneymaker-а1. Moneymaker-ы очень любят учить людей. Бизнес на обучающих курсах и программах приносит им значительную часть дохода.2. При этом они порождают контент очень низкого качества. Это связано с тем, что они сами недавно узнали то, о чем соб..
Siege — утилита для нагрузочного тестирования веб-серверов
Надеюсь, что данный материал будет кому-нибудь полезен.Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества польз..
Вышел Expression Web 3 + SuperPreview
Наконец-то, после появления Blend 3 RC, стал доступен Expression Web 3 Trial. Все бы ничего, но вместе с Expression Web 3 идет инструмент SuperPreview, который меняет представление о тестировании разметки в браузерах. Ранее уже писалось об этом инструменте, но он был доступен только для браузеров Internet Explorer. Теперь же появилась полноценная поддержка Firefox (и последних версий тоже). На скриншоте вы видите работу инструмента: сайт habrahabr для примера. Сравнивается разметка, эталлоном в..
Организация среды веб-разработки
Продуктивность коллектива веб-студии напрямую зависит от удобства среды разработки. У нас сложилась стройная система организации работы с проектами, включающая в себя набор таких неотъемлемых компонентов, как IDE, SCM, PM-система, багтрекер и development-сервер. Этим постом я бы хотел начать цикл статей, посвященных настройке и использованию этих компонентов в нашей студии. В первой части я расскажу о самом основном — среде разработки (о том, как мы организовали совместный доступ к проектам).Ид..
О проблемах с логикой
Обыск у мужика — нарыли самогонный аппарат. — Так-с! — говорит участковый. — Чудненько! Ща мы тебя за самогоноварение и того… — Так я ж не гнал! — Но аппарат же есть! — Тогда и за изнасилование судите!!! — А ты что, кого-то изнасиловал?!? — Нет! Но аппарат же есть! По традициям Хабрахабра, в начале поста обязательно должна быть идиотская картинка из галереи клипарта, призванная привлечь внимание к статье. Вместо этого, я начну с боянного анекдота, который лучше всякой картинки поясн..
phpFastCGI: настоящий FastCGI для PHP
— Добрый день. Вы наверняка уже наслышаны о протоколе FastCGI, он связывает Веб-сервер и сервер приложений, его реализации есть во множестве языков. Однако, в PHP реализация FastCGI до недавних пор была представлена лишь патчем PHP-FPM, который фактически не давал прироста производительности перед mod_php, поскольку он, вопреки идеологии FastCGI, перезапускает скрипт каждый раз заново. Идеология FastCGI подразумевает единовременную инициализацию приложения при запуске (подгрузку нужных классов, ..
Краткий обзор движков таблиц MySQL
Цель этой статьи — дать краткий, очень сжатый обзор движков, для того, чтобы статьей можно было пользоваться при выборе движка на этапе проектирования \ создания \ оптимизации таблицы. Предполагается, что читатель знает суть вопроса по крайней мере поверхностно и способен сам отыскать всю дополнительную информацию (вопросы в комментах можно задавать всегда :) ) Читать дальше →..
Полноценные коллекции в PHP
Не так давно при разработке своего проекта возникла идея реализовать полноценные коллекции для хранения объектов одинакового типа, по удобству напоминающие List<Type> в C#. Идея состоит в том, чтобы коллекции, содержащие объекты различных типов сами по себе различались, а не имели, скажем, один унифицированный тип Collection. Другими словами, коллекция объектов типа User это не то же что коллекция объектов Book. Естественно, первой мыслью было создание различных классов для коллекций (UserColle..
tip: получение почти полных данных из реестра whois зоны name
Whois домена name известен своей как-бы приватностью, чтобы посмотреть expire (дата окончания делегирования) нам предлагалось совершенно официально покупать пароли для этого дела. Способ получения этих данных чуть далее Читать дальше →
Что сегодня авторы предлагают инвесторам? Разбор полетов
Давно уже собирался отписаться по результатам инвестиционного предложения, но не оформлялась мысль. Вот пришла, благодаря этому посту, про ошибки соискателей на инвестиции. С недавней инвестсессии «Полигон» получил в общей сложности порядка 80 проектов, может, чуть больше. В один мы вложились, но думаю, всем полезно будет оценить, что в общем предлагают и о чём думают сегодня начинающие «предприниматели». Читать дальше →..
Ищете инвестора? Не делайте ошибок!
Недавно я разместил на нескольких сайтах сообщения примерно такого плана: инвестирую от 1000$ до 10000$ в Интернет-проекты, с понятной схемой получения доходов. Проведу краткий анализ поступивших(порядка 30) предложений: Читать дальше →
Использование Spreadsheet Excel Writer на примерах
Разрабатывая программные комплексы на PHP, мы имеем в руках мощное средство для представления информации в различных форматах, основной из которых — это HTML. Иногда функциональности чистого HTML может не хватить для реализации идеи разработчика. В таких случаях, PHP может предоставить информацию в практически любых других популярных форматах: в виде изображений с помощью библиотеки GD, в форматах PDF, XML, и даже как сгенерированный по запросу ролик SWF Flash или же просто (и сердито) в виде ..
Копируем в буфер обмена в FireFox 3.5 и IE8
С приходом 10го флеша, ФФ3.5 и ИЕ8, на многих сайтах перестала работать волшебная кнопка «Скопировать в буфер». Перестала работать из соображений безопасности (что бы когда заходишь на какой либо сайт, у тебя в буфере не появилась левая ссылка, или рекламный текст, или злоумышленники не применили это фичу в других целях). Как же с этим бороться?..
Настройка IDE для автоматического запуска тестов
Источник Когда я программирую, то сначала пишу тесты. Частый ручной прогон тестов может превратиться в утомительное занятие. Опишу обычный сценарий разработки кода: Ваши тесты «зеленые» и вы приступили к рефакторингу, который на ваш взгляд простой и безопасный. После этого вы запустили тесты и увидели, что что-то сломалось. Но перед этим вы уже сделали десять маленьких изменений и не знаете какое из них поломало программу. Решение заключалось в более частом запуске тестов (после каждого изме..
Деньги из воздуха
Предыстория Чуть больше месяца назад мы открыли проект под названием ProfitBid.ru. Суть его очень проста — вы делаете покупки, а мы возвращаем за них деньги. Изначально проект был ориентирован на интернет-аукцион eBay, но со временем оказалось, что востребованы и другие интернет-магазины. Так что список партнеров сейчас понемногу увеличивается. Продолжение под катом..
Один шаблон формы для всего проекта
Часто в одном проекте встречаются различные по структуре формы, где-то label элемента и сам элемент формы находятся на одной строке, где-то друг под другом, в одном случае нужна форма занимающая всю предоставленную ей ширину (например написание/редактирование статьи), в другом лишь определенную, заданную ширину (например форма регистрации/авторизации), да и внешнее оформление бывает разным. Из за этого многие верстальщики начинают верстать каждую форму по отдельности, давая им и их элементам ра..
Подсчёт общего количества строк выборке в mySQL при использовании LIMIT
Один хороший человек хочет попасть на хабр. Для подтверждения своих благих намерений он написал статью, которую я привожу вам. Наверняка многие знают о существовании в mySQL функции FOUND_ROWS(). Её чаще всего используют для подсчета общего числа строк в таблице, удовлетворяющих заданным условиям. Используют её обычно совместно с директивой SQL_CALC_FOUND_ROWS следующим образом:Mysql> SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE column > 1 LIMIT 0, 50;Mysql> SELECT FOUND_ROWS(); Результатом в..
Прекрасные шрифты посредством @font-face
Хотя Firefox 3.0 улучшил отображение шрифтов, привнеся поддержку кернинга, лигатур, различных толщин, а также поддержку отображения сложных начертаний, всё же авторов ограничивало использование в своих дизайнах только общедоступных шрифтов. Firefox 3.5 снимает это ограничение, вводя поддержку CSS-правила@font-face — это способ прицеплять шрифты TrueType и OpenType точно так же, как нынче прицепляют код и иллюстрации. Браузер Safari поддерживал этот вид гиперсвязи со шрифтом, начиная от версии 3...
Электронное табло 2 или с пользой для общества
Последнее время на Хабре появляется не так много хороших статей о веб-разработке. Но сейчас не об этом. Иногда хабралюди делятся интересными идеями, но не раскрывают их сути. И может зря. Потому как в ходе написания статьи (описания) замечаешь то, чего не видел раньше, другие ходы и решения, а читающим проще понять идею и дать дельный совет. Так несколько дней назад на хабре появилась статья «Электронное табло», в которой автор поделился ссылкой на свою поделку, но из-за недостаточного описани..
Чиним «прыгающие блоки» в IE6 простейшим способом
Те, кто верстают под IE6, наверняка сталкивались с проблемой «прыгающих блоков», то есть с ситуацией, когда блоки с заданным float и шириной в процентах, при ресайзе браузера начинают то «сваливаться» друг под друга, то вставать на прежнее место. Классическая головная боль для тех, кто проектирует модульную сетку в процентах. Проблема достаточна хорошо освещена в интернете. Например, в Техногрете студии Лебедва ее решению посвящены целых две статьи и один скринкаст. Не знаю кому как, а мне эти..
Выравнивание полей формы с помощью CSS
Задача Добиться, чтобы поля ввода находились друг под другом, и при этом их положение определялось максимальной длиной заголовка поля слева. Решение не должно использовать таблиц и Javascript. Читать дальше →
Ломаем каптчу Яндекса
На прошлой неделе был топик «Ломаем капчу» — каптча там была довольно простая, но в комментариях предложили сломать каптчу Яндекса. Мне эта идея показалась интересной, и я решил попробовать. Читать дальше →
Поддержка HTML 5 Networking Events
Недавно я написал статью про технологию HTML 5  DOM Storage, поддержка которой появилась в  Internet Explorer 8. В этой статье я хотел бы рассмотреть еще одну часть HTML 5, поддержка которой появилась в IE8. Такой технологией является расширение событий браузера под общим названием Networking Events. В этой статье я постараюсь рассмотреть три таких события: onhashchange, ononline, onoffline. Читать дальше →..
Колонки одинаковой высоты, самый простой способ
Буржуи как обычно мудрят там, где можно сделать все намного проще. Способы создания колонок в указаном посте слишком сложны. Хочу рассказать про самый простой и логичный, на мой взгляд, способ сделать колонки одинаковой высоты. Кто придумал этот способ не знаю. Но судя по комментариям к этому посту знают о нем немногие, в результате пошло мнение что таблицы в данном случае логичнее и лучше. И так. Из html-кода:<div class="cols">   <div class="col1">Текст1</div>   <div class="col2">Текст2<..
Причины стремительного успеха PHP
8 июня 1995 года, 14 лет назад, вышел PHP/FI 2.0. Возникает вопрос: как же г-н Лердорф и компания сумели затмить величие Perl (имеющего к тому времени многолетнюю историю и множество поклонников) и вывести PHP/FI (а затем и PHP) на лидирующие позиции? Для этого они сделали три очень точных шага, а также выбрали оптимальное позиционирование продукта. Об этом — речь ниже. Читать статью: http://dklab.ru/chicken/nablas/55.html..
Новый социализм: Глобальное общество коллективистов идет в онлайн
Месяц назад наткнулся на понравившуюся мне статью, а на днях зарегистрировался на Хабре. Вот и решил первым своим постом сделать ее перевод. Сильно не судите, перевод довольно вольный, английский изучал только в школе (школу закончил 9 лет назад, высшее образование ни как не связанно с лингвистикой). Статья довольно объемная, но от этого не менее интересная. Билл Гейтс однажды смеялся над сторонниками открытых исходников, произнося наихудший эпитет, который капиталист может сказать. Эти люди, п..
4 способа как создать блоки одинаковой высоты
Раньше, когда все верстали с использованием таблиц, создать колонки одинаковой высоты было очень просто.  Достаточно создать таблицу, например, с 3мя колонками и все они автоматически будут иметь одинаковую высоту.  Но в блочной верстке не все так просто. В этой статье я расскажу вам о некоторых способах создания колонок равной высоты и о совместимости этих методов с браузерами (включая IE6). Все эти способы описывают создание 3х колоночного макета. Читать дальше →..
Скругление углов на чистом CSS с анти-алисингом
Вношу свои 5 копеек в проблему скругления уголков. Хочу предложить метод, который не революционный, а просто несколько усовершенствует другой. Многие знакомы с методом скругления уголков средствами CSS, который активно использует Гугл. Я лично познакомился с ним на сайте Шторкин.ру. Метод сделан на чистом CSS, без картинок, без JS, полностью кроссбраузерный. Он спокойно тянется в ширину и высоту. Единственный его недостаток: отсутствие сглаженности (алиасинг). В принципе, все вполне поправимо...
Ломаем капчу
Гуляя по просторам интернета, зашёл на один высокопосещаемый древний сайт рунета. Для того, чтобы скачать файлик с этого сайта, нужно угадать вот такую капчу: В очередной раз видя картинку с цифрами — решился. В голове уже давно проносились мысли, сломать какую-нибудь капчу :)Ставлю себе задачу: Написать скрипт, который будет расшифровывать показанную капчу и выплевывать драгоценные циферки.Название сайта специально не привожу — сами догадаетесь :) Итак, поехали! Читать дальше →..
Мозг на вынос
Есть игры красивые, есть игры любимые, есть игры умные, есть игры безумные. Вот о парочке последних я бы и хотел рассказать. Живет на свете замечательный парень по имени Kyle Gabler. Однажды он подарил миру свой маленький мир — World of Goo. Мир это послание воспринял крайне благосклонно и с тех пор Kyle в работе не нуждается. Но, существует несколько крышесносящих проектов, которые он со своей командой делал до World of Goo. Собственно, их достаточно сложно назвать играми с традиционной точки..
Шпаргалка => Cross Domain AJAX. Dynamic script Tag Hack
Так сложилось исторически (из-за соображений безопасности), что Javascript-обьект XMLHttpRequest, который лежит в основе AJAX, не может делать кросс-доменные вызовы. Это бесполезное ограничение: для злоумышленников не представляет особой проблемы, а для разработчиков создает некоторое неудобство. В следующих поколениях браузеров эту проблему обещали решить, но не раньше чем W3C хотя бы одобрит новые стандарты. Есть море хаков чтобы обойти это ограничение, но самый популярный это Dynamic script ..
prettyPrint
Те из вас кто следит за автором на Github могли заметить, что недавно он добавил новый проект под названием «prettyPrint». «prettyPrint» — браузерный дампер переменных для Javascript аналогичный cfdump для ColdFusion. Он позволяет выводить на экран объекты любого типа в виде таблиц для просмотра во время отладки.Посмотреть пример. Читать дальше →..
Делаем скриншоты сайтов
Бродя по просторам PHP документации случайно наткнулся на две функции: imagegrabwindow и imagegrabscreen. Они умеют делать скриншоты в Microsoft Windows. Заинтересовало. Кончилось дело тем, что был написан скриптик генерирующий полный скриншот любого сайта. Итак нам необходимы:Internet Explorer ActiveX component и документация к нему. PHP 5.2.2+ Читать дальше →..
Распознавание лиц, используя только GD
Как утверждает автор, самым распространенным способом распознать лицо на изображении — это использование в проекте OpenCV библиотеки, разработанной Intel. Но она требует отдельной установки на сервер. Почитав форумы, он написал свой класс для распознавания лиц и работает его творение достаточно хорошо...
Декодирование/нарезка/кодирование аудиофайлов
публикуется по просьбе замечательного юзернэйма catdogПредыстория: Вряд ли сейчас можно найти программера который не знает как наснимать скриншотов с помощью mencoder-а и использовать их в качестве превью для видео файла. Однако подобных решений для аудиофайлов я пока не видел, оно и понятно почему: здесь как правило можно или отдавать файл полностью или пережимать консольными конверторами в удобоваримый формат полностью. И все бы хорошо, но когда у тебя средняя длинна трэка 6 минут, то волей ..
У вас будет партнер? Предохраняйтесь!
Итак, вы решили, что не смотря на всю мудрость земли и предупреждения товарищей, вы начнете бизнес с партнером, который надежен, умен, трудолюбив и обладает прочими достоинствами не свойственными другим людям. Как показывает опыт такие «интимные» связи часто заканчиваются губительно для одного из партнеров. Поэтому хочу поделиться некоторыми наработками в плане предохранения от некачественного партнерства. Читать дальше →..
… и днем и ночью кот ученый; все ходит по цепи кругом…
Кабум! На самом деле рассказать вам хочу не о коте ученом, это было бы слишком для Хабрахабра. Хотя коты… Ладно не отвлекаемся. Рассказать вам хочу об ученом CSS. Забегая скажу не о таком ученом как SASS, но этот CSS такой CSS! Так о чем это я? :) А я вот о чем: я о проекте Алексиса Сельйера и Дмитрия Фадеева который носит соблюдающие все каноны именований языков связанных с вебом, имя LESS. LESS умеет немного, но для консерваторов и любителей классического CSS это будет ой как полезно: LESS..
Explay 3
Доброго времени суток, %username%! Сейчас расскажу тебе о своей CMS. На сей раз это CMS, которая не подойдет для корпоративного сайта, для нее нет модуля-магазина и она не умеет работать с 1С. Explay CMS — это бесплатная система управления социальными сетями. Базовые возможности позволяют организовать полноценную блого-социальную сеть или сообщество. Читать дальше →..
Несколько удобных инструментов для тестирования сайта
Представляю вашему вниманию обзор нескольких полезных инструментов для всестороннего тестирования сайтов. Читать дальше →
Расширенный сборник CSS-хаков
Статья является расширенным сборником CSS-хаков в сравнении с аналогичной статьей. Под хаком подразумевается метод, позволяющий воспринимать CSS только определенному браузеру. Хаки могут использоваться не только для исправления багов в верстке, но и в случае использования определенных особенностей браузера для ускорения рендеринга web-страницы в нём (к примеру CSS3-свойства) Подробности под катом..
Обратимое шифрование текста — метод «Двойной квадрат»
Здравствуйте! Однажды, мне понадобилось шифровать текст. Я знал что в PHP есть расширение mcrypt, но интуиция подсказывала, что не на всех хостингах это включено. Поэтому я начал подозревать что придется кодить решение самому. Что я собственно и сделал. Получилась функция обратимого шифрования, достаточно быстрая и надежная. Пример работы функции: <?php echo dsCrypt('habrahabr.ru'); //Выведет: 60634K7T0*0! echo dsCrypt('60634K7T0*0!',1); //Выведет: habrahabr.ru ?> Если вы все еще пол..
Экспортируем избранные закладки с хабрахабры в другие сервисы социальных закладок
Кажется, ни для кого не секрет, что хабр является прямо таки кладезем информации для русскоязычных ИТ-шников. И многие хабрапользователи используют закладки хабра, для ссылок на интересные материалы. Я написал скрипт на php, который умеет брать ваши закладки из избранного с хабрахабры и автоматически экспортировать их в другие сервисы. Читать далее..
Как стать Zend PHP 5 Certified Engineer
Свершилось, ура! Теперь я имею почетный статус ZCE :) Поэтому хотел бы поделиться своим опытом подготовки к сертификации, ну и заодно провести небольшой ликбез на тему сертификации по PHP. Читать дальше →
Cufón – используйте шрифты, какие душа пожелает
Если стоит задача использовать в проекте нестандартный шрифт, то есть возможность пойти несколькими путями:Ъ-метод – не использовать нестандартные шрифты, достаточно в CSS сказать body {font-family: sans-serif;} и не морочить себе голову. Быдло-метод – нарезать из ЖПЕГов, картинок с заголовками, ужать посильнее, что б появилась размытость и вставлять вместо текста картинки. Достаточно популярный на наших просторах метод. W3C-метод – используем @font-family и наслаждаемся красивыми шрифтами без..
Микропаттерны оптимизации в Javascript: декораторы функций debouncing и throttling
Декораторы функций позволяют добавить дополнительное поведение функции, не изменяя ее. Сигнатура оригинальной и декорированной функции полностью совпадают. Читать дальше
Deferred для Javascript (Prototype)
Продолжая тему Deferred для Javascript предлагаю еще одно переписывание Deferred, теперь в терминах Prototype. Подробнее о самом Deferred можно почитать в двух моих прошлых заметках: Асинхронное программирование: концепция Deferred и Deferred: все подробности. Если кратко, самое распространенное и полезное применение Deferred в Javascript — это работа с AJAX или другими RPC-over-HTTP вызовами, когда необходимо совершить цепочку логически связанных вызовов, корректно обрабатывать возникающие ошиб..
7 самых необычных и удивительных приложений для Nokia 5800
Я хочу познакомить вас с самыми необычными, на мой взгляд, приложениями для первого сенсорного смартфона Nokia 5800, которые удивили меня при первом знакомстве. Некоторые из них вам могут очень пригодиться в повседневной жизни, а другие покажутся просто забавными. Я не буду рассказывать о таких банальных программах как GPS-навигатор, диктофон или IP-телефон. Они действительно интересны и необходимы, но они доступны во многих других современных коммуникаторах и обсуждались уже много раз. Читать д..
Пуш ми, бум-бум, тач ми… Ajax Push Engine
Сегодня поговорим о Comet и о server push вообще. Обычные веб-приложения, как и сайты, работают по традиционной модели запрос-ответ-запрос, при этом, в силу особенностей HTTP-протокола и некоторых серверных реализаций обработчиков, приложение не хранит информацию между запросами, так что каждый вызов является независимым, а идентификация или сессионность обеспечиваются более высокоуровневыми средствами (например, всем известная реализация сессий в PHP). Кроме этого, запрос на новую информацию п..
Полнотекстовый поиск по сайту — бич современного интернета
Реализация хорошего поиска по сайту — часто сильно недооцененная по сложности задача. Поиск является слабым местом сайтов настолько часто, что когда я вижу строку поиска, у меня сразу же возникает предвзятое ощущение предстоящего фиаско. И чтобы лишний раз не расстраиваться, я сразу переадресую свой вопрос гуглу или яндексу и быстро нахожу то, что требовалось. Что же делать, чтобы как-то улучшить эту ситуацию? ответы..
Как сделать favicon в png
Знаете, фавикончики в ico это как-то прошлый век =) Давайте будем модными, современными и все такое. Короче, берем иконку в png (да-да, с прозрачностью и всеми делами), сохраняем в размере 16×16, на сайте (в блоке <head>, ага) подключаем так: <link rel="icon" type="image/png" href="favicon.png" /> Особенно под впечатлением владельцы айфонов и точей, т.к. для них мы делаем красивую иконюшку размером 57×57 (можно кстати и больше, но это стандартный размер иконки на ланч-скрине), подключая ее так..
Изучаем наличие layout
Примечание: ниже представлен официальный перевод статьи «On having Layout» на русский язык. Статья не является окончательной. Этот перевод отражает 9 версию от 23.10.2007.UPD текст статьи полностью убран в связи с его неконтролируемыми изменениями с момента публикации.
10 рекомендаций по html-верстке электронных писем
Рекомендация первая: забудьте про блочную верстку. Весь лэйаут должен быть на таблицах. При этом, без крайней необходимости — их тоже лучше не использовать. Также следует выкинуть из головы представления о семантике, сокращенных css-правилах, валидации, плавающих блоках — и прочее. Самый распространенный в РФ почтовый сервис на данный момент (mail.ru) вообще не понимает стили (css). Любые тэги/атрибуты style заменяются на xstyle и не работают. Вообще все. Так что, фактически, при вёрстке html д..
Online JSON Parser
Проверяет на валидность json код, строит разного вида древа элементов.Проект парсера
Fast Google!
Я начал изучать Google AJAX API и сделал то, о чем давно мечтал — сервис Fast Google!, который показывает результаты поиска в Гугле прямо во время их набора. Сервис находится, можно сказать, в пре-альфа-стадии, зато лично мне им уже очень удобно пользоваться. Все предложения по улучшению принимаются. UPD1: Сделал параллельно поиск по блогам и видео. UPD2: Заменил блоги на картинки. UPD3: Сделал ограничение по частоте запросов. UPD4: Теперь можно добавлять в поиск Firefox-а и IE! UPD5: Завт..
Совершенный код
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.Damian Conway, co-designer of Perl 6 Хороший программный код определяется как минимум тремя признаками: однозначность, эффективность и сопровождаемость. Однозначность – это в первую очередь стиль кодирования. Однозначность определяется тем, какие имена переменных и функций выбирает программист, как форматирует код, как обрабатывает ошибки и формирует структуру кода. Эффективный ко..
ECMAscript 5: Обьекты и Свойства
ECMAscript 5 идёт по своему пути. Воскреснув из пепла ECMAscript 4, который был ужат обратно к ECMAscript 3.1, который далее был вновь назван ECMAscript 5 (подробнее) — он приходит с новым слоем функциональности, построенным на базе нашего любимого ECMAscript 3. Анонсировано несколько новых API, включённых в спецификацию, но самая интересная функциональность заключена в коде обьектов и свойств. Этот новый код дает возможность существенно влиять на то, как пользователи смогут взаимодействовать с..
Ресурсы, которые помогут выучить английский язык
В статье «Как учить английские слова» возникло очень оживленное обсуждение, в котором читатели привели ряд ссылок на интересные ресурсы. Теперь все они собранны в одном месте. Читать дальше →
Как готовить презентации. Мини-курс для программиста
У меня, как и у многих других программистов, есть слабость: я очень люблю различные планерки, на которых обсуждаются новые проекты и идеи. Все презентации в моем представлении делятся на 3 вида: муторное чтение цифр успеваемости начальника транспортного цеха, демонстрации системы из рук и презентация идей и решений при помощи построителя презентаций. Если с демонстрацией системы из рук программисты знакомы по сдаче лабораторных в университетах, а монотонно читающие тексты «коты баюны», постепенн..
Загрузка по требованию и jQuery
Несмотря на то, что необходимо минимизировать количество http-запросов, иногда (или часто, в зависимости от задачи) бывает полезно загружать часть «тяжелого» функционала только тогда, когда он действительно понадобится на странице. У jQuery есть механизм, позволяющий осуществить это — $.getScript, однако, он обладает рядом недостатков:не запоминаются уже загруженные или загружаемые в данный момент скрипты, при повторном запросе опять идет их загрузка. нельзя указать сразу несколько скриптов в..
phpThread: нити в PHP? Запросто!
Если Вы хотите научиться писать многопоточные приложения на PHP или здорово упростить себе жизнь — статья для Вас. Читать дальше →
Слушаем вызовы функций в Javascript
Многие знают о механизме Event-Dispatcher-Listener'ов, реализованному во многих языках программирования. Я же создам подобный механизм не для Event'ов, а для любого метода объекта Javascript — Object. Я не претендую на оригинальность, нет. Основная цель статьи — рассмотреть интересные механизмы прототипирования в Javascript, создание декораторов и, собственно, постараться хоть немного раскрыть мощь и гибкость это чудесного языка, который так часто обижают и недооценивают.UPD1: краткое содержан..
Как выглядит Firefox
Только сейчас узнал, что Мастер Шифу из мультфильма "Кунг-Фу Панда" — это так называемая Red Panda, также известная как… Firefox. :) Вот так она выглядит на самом деле: Надо же!
7 мощных каруселей изображений для Web-дизайнеров
Эта статья является коллекцией некоторых мощных каруселей изображений и текстовых материалов, готовых к использованию в ваших Web-проектах. Она включает в себя Agile Carousel, YUI Carousel, JCarousel, iCarousel (jQuery + MooTools) и учебное пособие о том, как реализовать простую карусель наподобие карусели во Flickr, используя Prototype-UI. Читать дальше →..
Первые шаги на пути к покупкам на ebay, dealextreme, focalprice, kaidomain…
Не секрет, что на ebay, DX, KD и прочих онлайн-магазинах существует много гаджетов и товаров, которых в РФ не найти. Чтобы удовлетворить свои гиковские потребности, а также просто тратить с умом, рано или поздно приходится обращаться к интернет магазинам. Однако новички теряются во всех этих «палках, клеймах, лотах, диспутах, EMS, USPS и прочее», а также некоторые не владеют английским для того, чтобы элементарно зарегиться в paypal. Для этой цели админом форума ebay-forum.ru был создан подробн..
Палка о двух концах или ещё раз о хрупкости кода
Я пишу этот топик, как ответ на недавнюю статью «10 приемов, разрушающих хрупкую красоту кода», в которой разгорелось множество споров. Многое уже написано в комментариях, многое не написано. Я лишь хочу здесь показать реальные примеры, что есть множество ситуаций, где Автор не прав, где предлагаеммые им решения будут мешать. Автор во многом прав, но он слишком категоричен в убеждениях. Профессия программиста заключается в том, чтобы думать и описывать решение задачи оптимальным способом. Как ..
10 приемов, разрушающих хрупкую красоту кода
Статья приводится в сокращении из-за ограничения на объем материала. Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода. Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:Объявление всех переменных в начале программы; Возврат результата функции через ее параметр; Отсутствие локальных функций; Отсутствие else if; Использование параллельных массивов; ..
Доступны первые дополнения
Гугл, как и обещал, включает поддержку дополнений для своего браузера. Недавно была опубликована документация для разработчиков, а теперь и примеры дополнений. Всего их три Gmail Checker, Subscribe в Google Reader и BuildBot Monitor. Я попробовал Gmail Checker. Как установить? Читать дальше →
Вкусный CSS: Sass + Compass
Что такое Haml/Sass?Haml (xHTML Abstraction Markup Language) это язык разметки для упрощённой генерации xHTML. В свою очередь эквивалент Haml для css — это Sass (Syntactically Awesome StyleSheets). В данной статье я расскажу чем примечателен Sass. И с помощью чего sass-файл можно скомпилировать в css. Читать дальше →
Улучшаем формы или Веб-Восемь-Ноль-Сто-Три
Итак, мы выбрали браузер вместо отдельно стоящего толстого клиента. Пользователь очень хочет вводить данные. Однако, обычные формы плохие. Потому, что: Читать дальше →
Версия 0.4.5 — Release Candidate 2
Можно снова радоваться. Веб-приложение для автоматизации клиентской оптимизации дошло до версии 0.4.5 — RC 2. Значительно улучшено быстродействие, потребление памяти, добавлено много новых возможностей и поддерживаемых CMS.Подробное руководство по установке (устарело уже, правда)Загрузить последнюю версию или мини-установщикПомочь проекту материально Читать дальше →..
Processing.js
Данный язык уже был на хабре, однако пост был посвещен самому Processing, думаю многим будет интерессно почитать и про Processing.js. Processing.js — это открытый язык программирования для визуализации в вебе который представляет собой портированный Processing на Javascript. Processing.js использует Js для анимации и тег canvas для работы с изображением. Сразу же можно заметить некоторый минус данного подхода, он не особо дружен с IE, причем по заявлениям Microsoft поддерживать тег canvas они и..
Raphaël
Привет, Хабр В этом коротком очерке хотел бы рассказать о маленькой (по словам авторов) библиотеки на Javascript — Raphaël. Данная библиотека использует для работы SVG и VML и служит, как не сложно догадаться для облегчения работы с векторная графикой в вебе. Так же по утверждению создателей работает во всех актуальных на даных момент браузерах, а именно Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+. К сожалению обошли создатели внимание вторую лису, хотя сюда по данным лай..
Онлайн База Данных, сервис структур данных, динамическая объектно-реляционная проекция (Dynamic ORM)
В данной статье речь пойдет о создании рабочего прототипа онлайд БД. И рассмотрены некоторые сервисы аналоги от компаний Google и Yahoo. Последним временем более активно стали развиваться сервисы для работы с онлайн БД. Такого рода сервисов в себя включают такие платформы как GData (Google Data API) и Yahoo! Query Language (YQL). Указанные сервисы онлайн доступа к БД позволяют лучше контролировать и оперировать данными, получаемыми из разных сервисов платформ и самое главное это готовые серви..
Настройка хостинга heroku.com + custom domain name *для новичков
Итак, подобного материала я нигде не видел, так что считаю необходимым опубликовать данную информацию. Регистрируемся на Heroku.com письмо с линком приходит быстро, мне пришло уже через 30 секунд. Далее необходимо установить git, я работал на windows (как устанавливать в linux я думаю знают те кто его используют), вот версия для win, если использовать портативную версию, то необходимо в интерфейсе командной строки, перейти в директорию (куда распаковали) git, и запустить либо оболочку git-ba..
Маленький сервис сокращения ссылок с открытым API
Занимаюсь сейчас одним проектом, для коего и потребовались короткие ссылки, сначала хотел воспользоваться API одного из великого множества сервисов сокращения ссылок, но так как трафик у вышеупомянутого сервиса предположительно будет большой, то решил не ддосить сервисы хороших людей своими запросами, а быстренько поднять свой сервис с API, что собственно и сделал: http://microurl.ru.Возможности 1. Создание тегов. 2. Создание qr-кода сокращенной ссылки. 3. Кнопочка для постинга в твиттер. 4...
Как Google на самом деле хочет чтобы вы оптимизировали свой сайт
How Google Really Wants You to Optimize Your SiteЯк Google насправді хоче щоб ви оптимізували свій сайтКак Google на самом деле хочет чтобы вы оптимизировали свой сайт Заботится ли Google о SEO? Да, судя по руководству начинающим сеошникам и форуму поддержки вебмастеров от Google, поисковый механизм довольно прозрачен, когда дело касается оптимизации сайта для его включения. Мы обсудим структуру ссылок, TrustRank (уровень доверия к сайту) и вопросы дублирования контента. Для начала нужно поня..
Хозяйке на заметку: PE-режим Win 7
А знаете ли вы, что Windows 7 ставится из под PE-версии себя самой (minwin), и уже на этапе инсталляции может запускать почти любое ПО: Читать дальше →
Дебаг в Zend Framework с использованием FirePHP
Есть одно правило — не показывать заказчику debug информацию, для этой цели обычно существует две конфигурации, но если заказчик очень любопытен, либо Вам, из эстетических побуждений, хочется скрыть килобайты дебаг информации? В этих благих намерениях нам поможет FirePHP. Читать дальше →..
Релиз Zend Framework 1.8.0
Под давлением спиртного праздников, ХабраСообщество оставило незамеченным выход 30 апреля релиза самого известного PHP фреймворка — Zend Framework за версией 1.8.0. Про нововведения можно почитать в топике про Preview-релиз. Слово Rapid уже вполне применимо к ZF, надеемся что скоро и слово Agile будет применимо в полной мере не только к Rails, но и к ZF :-) Скачать последнюю версию и документацию всегда можно здесь Прямые ссылки на 1.8.0: full || minimal Документация(онлайн): RU || EN..
Исключения. Где я их использую
После прочтения «Как правильно использовать исключения» и комментариев к ней решил написать небольшую статью где я использую исключения, а не как «правильно», всё основано на опыте, кратко и лаконично. Читать дальше →
Windows 7 RC доступна для скачивания по подпискам MSDN, MSDNAA и TechNet
Начиная с сегодняшнего дня Windows 7 RC стала доступна для скачивания по подпискам MSDN и TechNet, а также, по подписке MSDN Academic Alliance!   Читать дальше →
Как правильно использовать исключения
Жаль, если ваше изучение концепции исключений закончится чтением соответствующего раздела официальной документации по вашему языку. Изучив синтаксис конструкции try{...}catch(Exception $e){...}, узнав о возможности создавать собственные классы исключений, наследуя их от класса Exception и поверхностно осознав мощь оказавшегося в ваших руках механизма, дальше вы можете пойти по одному из двух путей:Начать тут же использовать исключения. Скажем, прикручивать их к системе, в которой они никогда не..
On-line cервисы, создающие html, содержащий подсвеченный код, на основе оригинального кода
Это может быть полезно людям, занимающимся генерацией информационного наполнения ресурсов и тем, кто это информационное наполнение верстает или просто добавляет с помощью некого интерфейса ресурса. Иногда при наполнении проекта информационным наполнением нужно привести на странице листинг скрипта или программы. И, естественно, возникает желание, что бы он был соответственно форматирован, подсвечен в соответствии с синтаксисом языка, да еще и строки нумеровались. Далее я привожу несколько ресурс..
Технологии проведения распилочных тендеров
Как известно, бюджеты на государственные IT-проекты выделяются немалые. Взять тот же «школьный портал» за почти 15 миллионов. Результат и уровень работы при этом тоже известен. Взять тот же «школьный портал». И ведь все это проводится через «тендеры». Созываются тендерные комиссии, пишутся какие-то «требования», составляются «протоколы» по итогам «голосования». Участие в таком тендере будет стоить вам потраченного времени, нервов, сил, а то и разных других неприятностей (бабло-то немалое). Се..
8 Характеристик удачного пользовательского интерфейса
Существует много информации о различных методах проектирования пользовательского интерфейса, которую вы можете использовать, создавая веб-сайт или интерфейс программы. Я составил список из 8 характеристик, которые считаю залогом успешного пользовательского интерфейса. Читать дальше →..
Философская геометрия. Часть 4, Заключительная. Золотое сечение и корень из пяти
О, Боже, четвертая часть! Это выше моих сил! Спокойствие, у меня заканчиваются таблетки, поэтому это последняя статья, и в ней будут разоблачения. Под катом описание процесса подгонки, ушепритягивания, запутывания и манипуляций. В предыдущих (1, 2, 3) частях мы видели как разные пропорции использовались в геометрии, античном искусстве и современном промышленном дизайне. У нас осталась нераскрытой тема золотого сечения и еще одного корня — √5. Начнем же. Однажды, люди натолкнулись на идею пропо..
Последняя проверка перед запуском сайта
Запуск сайта ответственное мероприятие, надеюсь что этот список контрольных вопросов позволит ничего не упустить из виду. Читать дальше →
Пишем сервер на php
Собрался вчера и написал заново сервер на сокетах, чтобы, наконец, полностью отделить логику протокола от манипуляций с сокетами. В итоге получилась библиотека классов, которую благополучно выложил на гугле под LGPL. Читать дальше →
Internet Explorer Collection — автономные версии Internet Explorer от 1.0 до 8.0
Хилбранд Едскес (Hilbrand Edskes) выпустил обновленную версию своей программы Internet Explorer Collection, которая будет полезной для верстальщиков сайтов — это сборник всех версий Internet Explorer компании Microsoft. Читать дальше →
Нулевой символ внутри тега
Старый баг дороже новых двух? Сделал для себя интересное открытие, оказывается строчку<\0b>text</b> — где \0 — символ с кодом 0 IE интерпретирует как нормальный тег bold со всеми вытекающими, тоже самое касается тегов <script> <style> и прочих. Это в свою очередь значит, что удаление потенциально опасных элементов с помощью str_replace, preg_replace (PHP), s/<script/.../i (Perl, sed) и прочих replace() функций для других языков не даст желаемых результатов. Тоже самое касается и фильтрации п..
Как оформить своё дело (в Украине)
В этом посте я написал длинный текст о том как:оформиться в Украине стать физическим лицом-предпринимателем платить единый налог упростить себе жизнь при помощи интернет отчётности Я описываю свой личный опыт. Простите за возможные ошибки. Навеяно этим постом Исходные данные такие: Украина, удаленная работа с иностранным заказчиком, разработка сайтов. Читать дальше →..
Как сделать FF удобней — пишем свои кнопки
Преамбула Я перешел на FF с IE очень давно — мне нужен был браузер с удобными средствами разработки и отладки, позволяющий полностью настраиваться «под себя» так как это был мой основной рабочий инструмент — инструмент должен быть удобным. И FF полностью справился со своими обязанностями — возможно, я кому-то покажусь странным — но я потратил около 2-х месяцев на чтение сайта с дополнениями и нахождения для меня лучшего их набора, настройки и т.д. В результате я получил мощную хорошо настроен..
Рецепты хорошей типографики
Судя по результатам голосования, которое я проводил в своём блоге, большинство пользователей никак не типографируют тексты перед публикациями (НЛО не считается). Те, кто работают над текстами, в большинстве своём делают это вручную, поэтому я решил попробовать собрать воедино рецепты экранной типографики, дабы не забывать самому и напомнить другим. Не думаю, что статья будет чем‐то новым для опытных верстальщиков. Новички узнают, профи исправят :)СодержаниеДефисы, тире, минусы и другие палочки ..
Геометрическая философия дизайна
Разливающийся Нил каждый год затапливает свои берега, а потом обнажает их вновь, оставляя открытой плодороднейшую почву. Каждый год древние египтяне должны были заново измерять свои участки земли и определять их границы. Позже, древние греки описали этот процесс и назвали его геометрией — измерением земли. Геометрия представлялась принципом установления порядка и закона в мире. Бытовая процедура стала наукой. Древние геометры стремились найти универсальные принципы и законы, которые воплощаются..
Google AdSense — почему у некоторых приостановленны платежи на Рапиду
Многие люди в последнее время могли столкнуться с тем что при входе в свой аккаунт в Google AdSense им выводился информер с текстом:Ваши платежи в настоящее время приостановлены. Необходимо произвести действия, чтобы разрешить выплату. При этом в настройках аккаунта платежи были включены. Я попытался разобраться в чем же дело. Сразу скажу — данное описание проблемы касается только тех, кто в опциях получаения платежей выбрал платежную систему Рапида. В чем же было дело?..
Dklab_Cache: тэги в memcached, namespaces, статистика
Memcached community предприняло немало попыток написать «родные» патчи для кода memcached, добавляющие в него поддержку тэгов. Наиболее известный из таких патчей — проект memcached-tag. К сожалению, memcached-tag все еще очень далек от стабильной версии: нетрудно написать скрипт, приводящий к зависанию пропатченного memcached-сервера. Похоже, на момент написания данной статьи не существует ни одного надежного решения проблемы тэгирования на уровне самого memcached-сервера. Библиотека Dklab_Cache..
Кастомизация input type=”file” с помощью CSS
Есть несколько способов кастомизации (изменения внешнего вида) инпутов такого типа. Все они обладают своими плюсами и минусами, но, на мой взгляд, предложенный мною вариант, выигрывает даже со своими минусами, коих всего один. Читать дальше →
Исследование на тему замены стандартных кнопок
В процессе работы над интерфейсом одного продукта, появилась надобность в изготовлении собственного дизайна кнопок. За это время код, который заменяет стандартную кнопку на требуемую несколько раз переписывался и в данный момент тоже далёк от идеала. Учитывая все текущие проблемы кросс-браузерности, за это время выяснились и получилось нижеописанное. Допустим, что она должна выглядеть примерно так: Читать дальше →..
Определение размеров текста
Возможно, кто-нибудь из вас сталкивался с задачей в которой крайне необходимо было бы узнать размер текстового блока в пикселях. После небольшого исследования выяснилось, что не всегда данный размер возможно получить обычными способами. Будь то методы jQuery, prototype или обычное обращение к параметрам DOM. Хотелось бы поделится небольшой функцией, которая может сотворить чудо, и выяснить беспрекословно требуемые размеры с помощью клонирования. Читать дальше →..
Сравнение РHP frameworks: только цифры
Методика очень быстрая и простая. Собрал данные о том, сколько раз тот или иной фреймворк упоминается в поисковиках (даёт общее представление о популярности), HeadHunter (кол-во вакансий, насколько востребовано работодателями), МойКруг (кол-во профайлов, насколько интересно разработчикам), Free-Lance.ru (упоминаний на сайте, насколько интересно заказчикам), насколько большая цифра версии (насколько развит), дата первого релиза или открытия сайта (насколько старый, взято из en.wikipedia.org).CMF ..
Версия 0.3.5
Web Optimizer (Веб Оптимизатор) — приложение, автоматизирующее все действия по клиентской оптимизации для произвольного сайта. На данный момент оно существует в виде отдельного приложения (которое нужно самостоятельно установить на сайт). Приложение протестировано и установлено на таких CMS как Drupal 5 и 6, Joomla 1.0 и 1.5, Wordpress 2.7 и многих других.Подробное руководство по установке.Загрузить версию 0.3.5.Загрузить мини-установщик версии 0.3.5. Читать дальше →..
С днём вебмастера!
4 апреля — один из неофициальных праздников, о которых слышало большинство айтишников, и о котором почти не знают интернет пользователи. Да, именно в этот день принято отмечать день вебмастера. И в эту весеннюю субботу хочу искренне поздравить всех вебмастеров, программистов, стартапщиков и веб-разработчиков с праздником! С днём вебмастера!..
Введение в объектно-ориентированные базы данных
Объектно-ориентированные базы данных – базы данных, в которых информация представлена в виде объектов, как в объектно-ориентированных языках программирования. Применять или не применять объектно-ориентированные системы управления базами данных (ООСУБД) в реальных проектах сегодня? В каких случаях их применять, а в каких нет? Вот преимущества использования ООСУБД:Отсутствует проблема несоответствия модели данных в приложении и БД (impedance mismatch). Все данные сохраняются в БД в том же виде, ..
Юнит-тестирование в PHP
Язык PHP очень легок для изучения. Это, а так же обилие литературы «Освой _что_угодно_ за 24 часа» породило большое количество, мягко говоря, некачественного кода. Как следствие, рано или поздно любой программист, который выходит за рамки создания гостевой книги или сайта-визитки сталкивается с вопросом: «а если я здесь немножко добавлю, все остальное не ляжет?» Дать ответ на этот вопрос и на многие другие может юнит-тестирование. В самом начале хочется оговориться — здесь речь не будет идти о ..
Эта неделя в jQuery, том 3
Новая неделя, и новая коллекция ссылок на некоторые из самых интересных и захватывающих происшествий в сети. Читать дальше →
CSS Sprites 2.0
После публикации серии статей на тему использования, ненужности и даже автоматизации CSS Sprites, после многодневного анализа текущего положения вещей удалось собрать некоторый набор наиболее часто возникающих проблем при использовании CSS Sprites и методов их решения. Также далее рассматривается прикладной способ по автоматизации создания CSS Sprites для произвольного проекта.Обзор технологии CSS Sprites, на самом деле, — всего лишь расширенное использование технологии background, заложенной е..
Собираясь качать игры, не забудьте вынести мусор
Для затравки: Кто больше? :)
Книга How Do You Design. Справочник по 130 схемам процесса дизайна
Хью Дабберли и люди из студии Dubberly Design Office проделали огромную работу по поиску и обработке теоретических описаний процесса дизайна. Около 130 моделей составили содержание их книги How Do You Design. Книга написана для образовательных целей и свободно доступна на сайте авторов. Кто недавно читал про схему от AIGA и удивлялся сереньким цветам вместо красного — это как раз оттуда. На своем сайте я отдельно перевел и выложил пару наиболее любопытных схем («AIGA» в том числе). Под катом ..
Простое сравнение изображений с помощью php
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции. Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображ..
Range, TextRange и Selection
Многим Javascript-разработчикам приходилось сталкиваться с объектами, перечисленными в заголовке, например, при решении следующих задач: — создание визуальных редакторов (wysiwyg), — поиск в окне браузера, — выставление BB-кода, и т.д. В этой статье автором предпринята попытка собрать перевод документации об этих объектах в одном месте + написать небольшие сопроводительные примеры. Перевод вольный, не дословный, так что если встретите неточность или корявую формулировку — пишите в комме..
Сверхжадные квантификаторы
В статье Regexp — это «язык программирования». Основы была поставлена задача: написать регулярное выражение, находящее в цепочке символов текст в двойных кавычках, причем внутри кавычек "..." могут быть и сами символы ", если они экранированы обратным слэшем, например:one two "foo:=\"quux\"; print" three "four" Здесь наш регекс должен найти соответствие цепочке"foo:=\"quux\"; print" Автором (той статьи) было предложено такое решение:/ " ( \\" | [^"] )* " /x (здесь и далее синтаксис Perl; к..
PHP_Exceptionizer: преобразование E_NOTICE в исключения (Exception)
Очень простая, но полезная библиотека PHP_Exceptionizer позволяет преобразовывать нотисы (E_NOTICE), предупреждения (E_WARNING) и т. д. в исключения PHP. // Где-то в начальном коде инициализации скрипта. error_reporting(E_ALL); if (<is debug mode active>) { $exceptionizer = new PHP_Exceptionizer(E_ALL); // И оставьте эту переменную, чтобы она не удалялась до окончания // скрипта. Удаление переменной вызовет отключение PHP_Exceptionizer. } ... // Далее можно ловить нотисы как исключ..
Валидация email
В этой статье рассмотривается валидация email изпользуя регулярные выражения. Все регэкспы выполняются с модификатором i, т.е. делают регистронезависимую проверку. Читать дальше →
Шпаргалки
Недавно я делал обзор электронной книги Orsio b731. Внимательные читатели узрели на фотографиях папку шпаргалок и попросили поделиться. Что ж, держите! ;) Читать дальше →
Javascript от А и до…
Начал замечать что на Хабре появляются статьи по программированию, может на это натолкнули фразы типа «хабр уже не тот», но это не так важно, потому как мне это нравится, всегда хотелось узнать что-то новенькое … моя первая статья привела к огромному краху, поэтому почитав людей, я повторю свои усилия и начну цикл заметок о Javascript от самого начала и до тех пор, пока это будет востребовано =) поехали дальше..
Regexp — это «язык программирования». Основы
Несколько лет назад я думал, что regexp осуществляет линейный поиск по тексту, но какое моё удивление было, когда я понял, что это не так. Тогда я убедился на собственном опыте, что от простой смены местами а и b в схеме (...a...)|(...b...) поменялся полностью результат. Поэтому сейчас я расскажу, как на самом деле работает regexp. Поняв эти простые принципы и как оно работает, вы сможете писать любые запросы. Для примера, я разберу сложную при первом приближении, но на самом деле простейшую..
Продолжение идеи записи гитарных аккордов в HTML. Версия 3, оптимизированные варианты
Продолжаем разработку записи аккордов в HTML. В камментах предыдущего топика selenit предложил оптимизированный вариант(1,2), где кода еще меньше. Для ознакомления с темой подробно, почитайте предыдущий топик. Читать дальше →
CodeIgniter Debug Toolbar
Многие видели девелоперский тулбар для фреймворка Kohana (слизанный, в свою очередь, с Symfony), который недавно выкладывали на хабре. Мне он очень понравился — захотелось поиметь такой и для себя. Немножко поколдовав, получилось нечто похожее… Читать дальше →
Версия 0.3
Web Optimizer (Веб Оптимизатор) — приложение, автоматизирующее все действия по клиентской оптимизации для произвольного сайта. На данный момент оно существует в виде отдельного приложения (которое нужно самостоятельно установить на сайт). В качестве базы для Web Optimizer использовался PHP Speedy. Подробное руководство по установке.Загрузить версию 0.3. Читать дальше →..
Установка Web Optimizer
Web Optimizer (Веб Оптимизатор) — приложение, автоматизирующее все действия по клиентской оптимизации для произвольного сайта. На данный момент оно существует в виде отдельного приложения (которое нужно самостоятельно установить на сайт). В качестве базы для Web Optimizer использовался PHP Speedy (который также существует в виде дополнения для Wordpress, Joomla и Drupal). Давайте рассмотрим, каким образом можно установить Web Optimizer.Шаг 1: загрузка архива Читать дальше →..
Универсальный лексический анализатор на PHP
Для одного проекта понадобилось разобрать на кусочки mysql-дамп. Да не просто разобрать, а привести его к такой структуре, с которой было бы удобно работать на PHP. Для решения этой проблемы были рассмотрены три варианта:найти готовый парсер mysql-дампов на php; быстренько накидать парсер на regexp-ах; написать свой лексический анализатор; Пара запросов в гугл дала результаты, но жажда творить их поборола. Кроме того, необходимость в лексическом анализаторе возникала и раньше, поэтому было..
Lswitchp — типографический помощник
На просторах интернета был обнаружен маленький помощник, а именно программка, которая умеет быстро подставлять самые необходимые юникод–символы, кроме того, она может перключать раскладку, а счастливчики с клавишами F13 и F14 на клавиатуре смогут быстро разворачивать/сворачивать активные окна. Программа очень молчаливая, и показывает своё существование только в списке процессов. Именно оттуда, при желании её и надо закрывать. Если есть желание пользоваться ей постоянно, то имеет смысл поместит..
Expression Web SuperPreview
Новая программа от Microsoft позволит упростить кроссбраузерную web-разработку.Источник новости утверждает, что эта информация была под NDA, но уже нарушена самими разработчиками. Официальный анонс наверняка последует на MIX09. Скачать программу уже можно. UPD: по ссылке — превью-версия для сравнения только разных версий IE. Превью-версия бесплатна. Представленная картинка отражает интерфейс расширения для Expression Web 3, выход которого только ожидается. Expression Web 3 — это платное средств..
Zend Framework: подключаем OpenID
В своем проекте (Вопросы и ответы для программистов) на Zend Framework мне стало необходимо подключить OpenID и после часа работы я успешно подключил стандартный зендовский сервис. Думаю класс, как легко и удобно(как и все в зенде), но как оказалось этот сервис не работает с OpenId 2.0, да — он просто не дописан. Немного порывшись в исходниках я это подтвердил — Consumer.php * @todo OpenID 2.0 (7.3) XRI and Yadis discovery Потом посмотрел по багтрекеру и оказалось что это весит уже давно(оче..
50 монохромных образцов дизайна web-сайтов
Выбор цвета является ключевым элементом для успеха любого дизайна. Он определяет атмосферу и задает настроение. Один из способов отображения цвета, использование только оттенков, который называется монохроматической цветовой схемой. Из всех цветовых схем монохроматическая является одной из самых простых и удачных. Причина такой лёгкости заключается в том, что один оттенок цвета почти всегда работает с другим оттенком того же цвета. Одной из самых популярных монохроматических схем является голу..
Хабраящик: суббота-воскресенье-понедельник, 24-26 мая
Если кто-то вдруг все еще не в курсе: почти ежедневно о выпусках Хабраящика вещается в Twitter, ник: Shapelez.События: Коворкинг-центр New Level, Санкт-Петербург. День славянской письменности (не путать с типографикой). Facebook готовится к редизайну, Вконтакте уже ждет. Еж на Роторе.Дизайн и юзабилити:5 принципов эффективного веб-дизайна.40 лучших флеш-проектов Рунета. Читать дальше →..
Масштабируемая картинка на фоне сайта
Задача: Дизайнер нарисовал макет страницы, на заднем фоне которой была картинка. Я сначала было решил, что это фон который увеличивается по ширине в зависимости о разрешения монитора. Но не тут то было. Дизайнер настаивал на то, что это масштабируемая картинка, которая сужается / растягивается при изменение окна приложения и по ширине и по высоте. Заранее предупредив заказчика – что картинка будет грузиться 1 и в максимальном разрешении – его определили как 1600, приступил к работе. Смотрим..
Честный договор на SEO
Анализируя договоры, поступившие ко мне в рамках исследования, я пришел к выводу, что очень большая часть из них лишена самого главного: описания сути работы, критериев ее приемки, правил поведения сторон. По некоторым договорам исполнитель за деньги заказчика обязуется кое-что сделать, а потом на это кое-что предоставить акт и счет-фактуру. Естественно, это свойственно далеко не всем договорам, однако даже среди дельных встречаются однобокие, запутанные, юридически слабые. Неоднократно столкн..
Версия 0.1
Собрана стабильная установка с последними дополнениями к движку PHP Speedy: * возможность изменять .htaccess для сайта * автогенерация CSS Sprites Как устанавливать — описано в архиве: распаковываем в корень сайта, затем идем на /web-optimizer, потом вставляем в основной PHP-файл 3 строчки. Дожидаемся первой загрузки сайт — потом уже все закэшировано будет. P.S. уже есть более новые версии: http://code.google.com/p/web-optimizator/..
Топ-100 советов по производительности MySQL
Авторы: Jay Pipes, Sheeri Kritzer, Bill Karwin, Ronald Bradford, Farhan "Frank Mash" Mashraqi, Taso Du Val, Ron Hu, Klinton Lee, Rick James, Alan Kasindorf, Eric Bergen, Kaj Arno, Joel Seligstein, Amy Lee
Реализация интерфейса ElementTraversal
Достаточно много браузеров (Opera 9.6, Google Chrome 2, Safari 4, Firefox 3.5) обзавелись поддержкой весьма удобного интерфейса ElementTraversal, который позволяет перемещаться по DOM-дереву, игнорируя текстовые узлы. В этих браузерах для каждого элемента стал доступен следующий набор новых getter'ов:firstElementChild — первый дочерний элемент; lastElementChild — последний дочерний элемент; nextElementSibling — следующий соседний элемент; previousElementSibling — предыдущий соседний элемент; ..
8 отличных хитростей jQuery
Кому не нравится jQuery? Это быстрая и простая javascript-библиотека стала очень популярной в 2008 году. В этой статье я собрал список восьми очень полезных jQuery-техник, советов и хитростей. Читать дальше →
Используем любой шрифт с Javascript.
Все мы знаем прекрасные библиотеки sIFR3 и FLIR, которые на лету помогают использовать любой шрифт на веб-страницах. Правда, с моей точки зрения, их использование (а именно установку и настройку) нельзя считать легким трудом. Сегодня я расскажу о библиотеке Typeface.js, которая, как видно из названия, работает на чистом Javascript. Читать дальше →..
Какой выбрать алгоритм рейтинга для Фотохостинга?
Более чем полгода прошло с момента прочтения мной топика «О том, как гипербола помогла придумать новую систему рейтингов», но мысль проверить эту теорию до сих пор мучила. Сегодня в обед выдалось ~15 минут свободного времени, которое решил потратить на исследование: Какая система рейтинга фотографий оптимальна для фотохостинга. Объект исследования — маленький провинциальный фотохостинг г. Братска (Иркутская область). Пользователей ~3000, фотографий: ~24000. Цель: выявить лучший алгоритм рейт..
Архитектура CMS. Модель данных. Часть 2
Продолжаем тему объектной модели данных. В этой части речь пойдет о модуле Data, являющимся, по сути, ORM системой. Для наглядности работы модуля Data c его помощью будет создано содержимое простого сайта. Предыдущая статья: Архитектура CMS. Модель данных. Часть 1. Модуль Data состоит из классов Data, Object, Multy, Query и набора классов Cond*. Сам модуль – это статический класс Data, остальные классы используются для представления структур данных, с которыми он работает. Для представления сущ..
10 шагов создания идеального личного сайта
Если ты создаёшь сайт-портфолио, то у тебя несколько причин: ты фрилансер — и тебе нужно показать людям что ты умеешь и как это умеешь, или ты студент (или безработный) — и ты ищишь через сайт потенциальных работодателей, или ты работаешь в отделе крупной компании — и вы создаёте корпоративный блог о жизни компании и показываете что делает ваша компания — не важно кто ты, главное что через сайт-портфолио к тебе обратятся люди (за помощью или для того, чтобы дать тебе работу).1. Логотип Логотип ..
Архитектура CMS. Модель данных. Часть 1
Система управления содержимым (CMS) обязана предоставить гибкие всеохватывающие функциональные возможности для управления содержимым сайта, облегчить работу администратора-конфигуратора и способствовать созданию удобного в использовании сайта. Содержимым сайта можно назвать новости, размещенные на нём, а также статьи, комментарии, фотографии. Содержимым также являются целые структуры информации: новостные ленты, каталоги, форумы, блоги. Обобщенно: содержимое – это данные, размещенные на сайте. ..
Как установить Linux из сети
Буквально вчера хабраюзер Arceny поведал нам об установке дебиана с USB-flash. В статье он упомянул о возможности установки «С помощью загрузки по сети (PXE boot)», благодаря чему я решил наконец написать материал по созданию сервера pxe boot. понеслась
30 высококачественных комплектов иконок
Доброго времени суток, хабралюди! Сегодня я хочу представить вашему вниманию 30 комплектов иконок. Несмотря на то, что все иконки выполнены на очень высоком уровне, распространяются они абсолютно бесплатно. Превью для каждого пака внутри. Читать дальше →
Серия 50+ советов по оптимизации PHP кода. «За» и «против» такой оптимизации. Первые 10 советов.
Это перевод первых 10-ти советов статьи по оптимизации PHP кода. На хабре есть перевод более старой версии статьи — 40 советов по оптимизации вашего PHP-кода Я постарался не просто дополнить уже существующий перевод дополнительными советами, а внести пояснения, почему так будет быстрее, и добавил свои мысли по поводу смысла такой оптимизации, исходя их своего опыта разработки и работы в разных командах. Пишу по частям, иначе получится очень много материала сразу. Это моя первая статья на хаб..
Как установить Debian Linux с USB flash
В этой статье вы узнаете, как создать USB flash диск, с которого можно будет установить Debian Linux.Введение Здесь я расскажу, как подготовить загрузочную USB флешку с Debian Lenny и установить с неё Debian на любой накопитель (IDE/USB HDD). Заметьте, что в этой статье описывается не то, как установить Debian на USB диск/флешку, а то, как создать «Инсталляционный USB диск». То есть результатом станет то, что вы сможете установить Debian Lenny с USB накопителя, вместо традиционного CD-ROM. Сущ..
CSS Framework «Object Oriented CSS»
Оригинальный css фреймворк «Object Oriented CSS» от инженера Yahoo Nicole SULLIVAN-HAAS Очень молодой фреймворк (первый коммит — January 28, 2009), после беглого просмотра приятно удивила структура компонентов, а после просмотра презентации, захотелось немедлено скачать и опробовать его. Читать дальше →..
Следим за сервисами с помощью «Apps Status»
В последнее время у Google наблюдаются некоторые сложности с сервисами. Недавние проблемы с доступом к почте застали многие (не смотря на заявление о небольшом количестве недоступных аккаунтов). Дабы не травмировать пользователям психику, и держать их более или менее в курсе запустили Apps Status Dashboard. Показывает мониторинг по следующим службам: Google Mail, Calendar, Talk, Docs List, Documents, Spreadsheets, Presentations, Sites, Video, Admin control panel. Также планируется отдавать инфор..
7 простых способов протестировать кроссбраузерную совместимость
Эта статья предназначена для дизайнеров, верстальщиков, разработчиков и всех остальных людей, бьющихся с тестированием сайтов в нескольких браузерах. Всего лишь год назад, хороших средств для тестирования кроссбраузерной совместимости сайтов практически не было. Инструменты, как правило, обладали серьезными недостатками – высокой ценой, скромными возможностями или затрачиваемым временем. Однако, в последнее время, в мире тестирования браузеров появилось много новичков, и некоторые из них являют..
Использование usability guidelines для повышения качества веб-разработок
Данная статья была создана по мотивам презентации, сделанной на конференции SQA Days. Статья впервые опубликованна на GUI.ru и теперь хотелось бы обсудить usability guideline с хабралюдьми Удобство использования продукта, высокие пользовательские качества — важное конкурентное преимущество на рынке, где большинство производителей предлагают приблизительно одинаковую функциональность. В качестве наиболее актуального примера можно привести рынок мобильных телефонов, где сейчас наиболее востребова..
KML. Добавляем веб камеры.
Недавно на хабре было обсуждение веб камер habrahabr.ru/blogs/i_am_clever/52572/, при этом разговор несколько раз коснулся методов применения такому материалу. Вспомнил свои старые эксперименты с веб камерами и решил опубликовать этот материал здесь. Мое отношение — веб камеры с координатами были бы прекрасным сервисом, востребованным при решении многих задач, достойная поддержка для множества систем реального времени. Пример подборки — villagegis.com/Google.html — это создавалось в том числе ..
10+1 причина, по которым вы теряете клиентов
Ваш магазин приносит доход. Может ли он быть более прибыльным? Конечно, если вы соблюдете, как минимум, те десять пунктов, которые перечислены ниже. Пройдитесь внимательно по этому «чек листу» и у вас, наверняка, найдется пару замечаний к своему магазину. Порой даже большие и солидные интернет-магазины допускают такие детские ошибки. С момента написания этой статьи, столкнулся с ещё одной распространенной ошибкой. Поэтому, специально для хаброчитателей добавил бонусный, одиннадцатый случай, пом..
Выпуск: jQuery 1.3.2
20 февраля 2009 вышел jQuery 1.3.2. Вы можете увидеть полный список изменений и исправлений в баг трэкере. От переводчика: Этот выпуск не вполне совместим с прежними версиями, не ставьте на production без тестирования! Подробнее
ретроспектива
пуск Вначале ты болезненно реагируешь на критику твоей работы, сопротивляешься, доказываешь и оправдываешься. ↓ Ты любишь результат своей работы и понимаешь что совсем плохие части надо переделать. Реагируешь на критику мелочей (неужели это так важно?). ↓ Публикуя результат, добавляешь оговорки — мол первый продукт, сделал за день (хотя пыхтел 2 недели) и ищешь снисхождения. Ищешь бесполезную похвалу. Читать дальше →..
Первый проект на symfony, часть 2
Это вторая часть перевода (первая часть) статьи о том, как сделать простенький проект на Симфонии за 1 час. В ней мы наладим валидацию форм, изменим формат URL, сделаем админку и закроем в нее доступ. Читать дальше →
По поводу диакритических знаков
Перевод занятной статьи On diacritics (David Březina) из блога I love typography. Проблема диакритических знаков, используемых в центральной Европе, не очень то и актуальна для большинства из нас (со своими чёрточками и точечками над «Й» и «Ё» вроде бы нормально разобрались), но для дизайнеров, работающих с зарубежными клиентами, будет весьма познавательно. Да и вообще, как говорится, для общего развития… По поводу ошибок и прочего — ругайте переводчика (то бишь меня). Но не сильно. Пишу и пер..
Закрепляем jQuery — 25 отличных советов
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к Javascript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.Далее все напи..
jQuery tips: Невредные советы. I.
Введение Часто какие то вещи кажутся очевидными. Какие то донельзя очевидными. А какие то так и норовят спрятаться в недрах сознания создателя предмета внимания. А то и вовсе прятаться не собираются. Ибо создатель даже и не в курсе. О таких вещах мы и будет говорить с вами. Например сегодня о кешировании jQuery объекта.UPD: Маленький тест для сравнения. Два кода. Один с кешированием другой без.var start = new Date(); for(i = 0; i < 100000; i++) var q = $('.tvbox-form-row:first').text(); var..
Кто cказал флеш, или чудеса canvas в действии.
Примеры виртуозного приминения возможностей canvas. Возможно для когото это не будет откровением, но думаю многим будет полезно поссмотреть на подобные вещи в исполнении любимого JavaScript.
Zend Framework первой свежести, ч1: зендируем MVC
Меня тут разбанили по просьбе Дина, и я решил принести пользу обществу. Поскольку я дурак и ничего не умею, дай, думаю, напишу о ZF — офигенной штуке, которую все почему-то искренне ненавидят. Надо успеть, правда, пока по НТВ не стали показывать Пелевина (жаль, ненастоящего). Главная беда всевозможных QS в том, что они действительно quick и действительно start, но если делать все как там, получится не особенно «масштабируемое» приложение, с которым не очень понятно, что делать. По сравнению с о..
Клиентские Windows приложения на JavaScript
Хочу рассказать про один интересный способ создания приложений на Javascript с родным виндовым GUI. Вообще, существует куча разных вариантов написания виндовых приложений на Javascript: HTA и WSH — HTML Applications и Windows script Host — это, вероятно, самые известные технологии. HTA фактически представляет собой HTML страницу с расширенными правами в системе — возможностью лазить в сеть, гадить в реестр, файловую систему и подключать к этим делам ActiveX. С использованием HTA сделаны многие ..
Crossite DoS
Преамбула В наше время всемирная сеть растет не по дням, а по часам. И вместе с ней растет количесво веб-приложений, интегрирующих друг друга на основе протокола HTTP. Но так ли уж безопасна такая интеграция? В свете последних событий и в процессе поиска информации по DoS- и DDoS-атакам наткнулся на интересную возможность, а именно — межсайтовые атаки. Суть такой атаки проста — в сети есть бесчисленное количество сервисов, позволяющих обращаться к сторонним web-узлам. Это online-переводчики, i..
Bespin — редактор от Mozilla основанный на web-технологиях
Bespin — это эксперимент Mozilla Labs, который предлагает открытую, расширяемую, основанную на web рабочую среду для редактирования кода, которая нацелена на увеличение производительности разработчика, позволяя повышать его опыт и продвигать использование открытых стандартов. Читать дальше →..
Правило пирамиды
У вашего нового сайта современный актуальный дизайн. Пуленепробиваемая верстка. Хрустально чистый код, способный в легкую держать 50 000 уников. Осталось только написать ясные и четкие тексты. Это правило поможет вам. Не смотря на то, что оно простое, оно очень эффективно. Стив Круг и Якоб Нильсен учат нас: если пользователь быстро не понял, нужна ли ему информация – он уйдет. Текст будет прочитан очень бегло, буквально одно-два предложения. Как правильно составить текст для сайта? Что постав..
Оптимизации системы разделения прав доступа в веб-приложении
После написания прошлой статьи про реализацию системы разделения прав доступа в веб-приложении, появилось множество интересных комментариев. В них в основном велись споры о том, что можно сделать её ещё лучше. В действительности, система сейчас не является оптимизированной и не может использоваться на серверах с высокой посещаемостью (так как, прошлая статья писалась больше для ознакомления). Давайте попробуем это исправить. В этой статье я рассмотрю:   1. Битовые поля, оптимизация   2. S..
Самый быстрый способ вывода электронных денег
На днях завел себе карточку Альфабанка для покупок на ebay'е, и надо же такому совпадению случится — сегодня Яндекс и Альфабанк ввели в эксплуатацию новый сервис «Деньги от А до Я», благодаря которому можно моментально переводить свою электронную наличность на счет и обратно. Комиссии:Альфабанк → Яндекс.Деньги — 0% Яндекс.Деньги → Альфабанк — 2% Webmoney WMR → Яндекс.Деньги → Альфабанк — ~3,5% Вполне терпимо для моментального вывода.оригинал..
Сервис для создания CSS Layout
Пожалуй, представлю вам на суд недавно обнаруженный сервис, надеюсь, он успешно пройдёт тест на полезность и сразу же пригодится. Первым делом, перед версткой, веб-мастер, понятное дело, должен определиться со структурой макета – то ли это будет стандартный шаблон с боковой колонкой справа, то ли это будет совсем уж уникальный макет не похожий по своей структуре ни на что. В первом случае, обычно, у опытных верстальщиков уже есть свои заготовки, что б ускорить процесс и не придумывать велосипед..
Символ подчеркивания в именах сайтов и cookie
Столкнулся сегодня с интересной проблемой, которая нагло выжрала 1.5 часа драгоценного времени. Надеюсь поможет другим избежать той же участи. :-) Читать дальше →
Загрузка файлов и open_basedir: почему надо пользоваться стандартными функциями
Казалось бы вопрос загрузки файлов на сервер обсосан до косточек, но одно недавнее событие заставило меня в этом усомниться. Некоторое время назад в целях повышения безопасности на наших серверах была включена настройка PHP open_basedir. После этого многие PHP-приложения перестали загружать файлы на сервер. Читать дальше →..
Пуленепробиваемый HTML: 37 шагов к идеальной разметке
Примечание: это не полный перевод статьи. Я выбрал только самые интересные лично для себя пункты. Статья не претендует на свежесть, но возможно даже люди хорошо знакомые с версткой найдут для себя что-то интересное. Статья затрагивает некоторые аспекты семантики верстки с конкретными примерами.Под катом много букв! Чтоб не потеряться в их обилии все пункты выделены заголовками. Читать..
PSD — Трик с размером файла
Есть psd файл с N слоёв. Отключаем видимость всех слоёв: Сохраняем. Получаем файл на 20% меньше. То есть, если есть 3.4Gb этого, блин, файла, то весить он будет в итоге примерно 2.6Gb. Результат на лицо. Единственный очевидный минус — мы лишаемся превью. Это, конечно же, довольно старый приём, но он до сих пор работает (в CS3 и в CS4).UPD: Чуть поясню: трик не для хранения файлов (чтоб место не занимали), а для экстренных случаев неотложной помощи, когда не хватает мегабайта на флешке...
Убираем лишний отступ внизу изображения
Наверное, многие, при html-верстке, встречали «баг», когда, размещая в блоке подряд два изображения, между ними возникает промежуток, примерно в 3-5 пикселей. Этот эффект присутствует не только в горячо любимом IE6, но и в других браузерах. Большинство решали это с бубнами – подменой Doctype, убиранием лишних отступов в html-файле и так далее. Начав искать решение проблемы в интернете, в том числе и на хабре, я понял, что вопросов по этому поводу много, но правильного ответа большинство так и ..
Firebug: Part 4 — profiling
Как хороший код поможет избежать отладки в дебаггере, так он же поможет вам никогда не применять навыки, полученные в этой статье. Если на вашем сайте у вас «умирает» браузер от перегрузки javascript'ом, то вам просто необходимо это прочитать(и применить тоже). Весь цикл: Console, Commands, Debugging ,Profiling Читать дальше →..
Сделать из своего сайта OpenID
Не знаю как вам, а меня очень напрягает тот факт что сейчас чуть ли не на каждом ресурсе надо регистрироваться. На блогах, форумах, в социальных сетях и прочих ресурсах. Это сколько же надо помнить логинов/паролей! Хорошо что в некоторых обозревателях есть запоминатель паролей, но если этот компьютер не твой личный — тогда что делать? Использовать везде один и тот де логин и тем более пароль небезопасно получается: если взломают один ресурс то за ним сразу все остальные. Хорошо что добрые люди ..
30+ PSD файлов с различными элементами для дизайнеров
Более 30 полезнейших PSD шаблонов: элементы браузеров, IPhone, иконки, офисные принадлежности, шаблоны DVD дисков, кассет, визитные карточки и еще много разных полезностей для дизайна.
Firebug: Part 3 — debugging
Надеюсь, что написанное ниже никогда вам не понадобится. Но рано или поздно приходиться разбираться с кодом, чтобы понять, что же там происходит. В этом нам и поможет встроенный в Firebug отладчик(debugger). Весь цикл: Console, Commands, Debugging ,Profiling Читать дальше →
Особенность оптимизатора MySQL 5.1.30 порядок следования таблиц в UPDATE
Добрый день. Я расскажу об одной из забавных особенностей оптимизатора MySQL 5.1.30, которая заставляет перед обновлением внимательно проверить запросы. Для любопытных: «теперь SET-выражения выполняются не в порядке следования выражений слева направо, а в порядке следования обновляемых таблиц». Читать дальше →..
Ссылки в Windows, символьные и не только
Предыстория В своём топике "Впечатления от Яндекс.Субботника" хабрачеловек absolvo высказал удивление, что один из докладчиков не знал о том, что символьные ссылки есть и в Windows. Честно говоря, не знал этого и я, поэтому поинтересовался об этих ссылках в комментариях. Думаю, то, что удалось выяснить, может показаться кому-нибудь полезным. Читать дальше →..
Проверка файла на наличие / существование
Порой мы отображаем на сайтах контент с других ресурсов: картинки или фавиконы. Некоторе браузеры просто оставят пустое место (Firefox), другие же отобразят уродский прямоугольник, явно указывая, что чего-то не хватает (IE). Как же можно средствами PHP проверить существование файла. Есть функция file_exists(), но она хороша только для файлов в пределах нашей файловой системы, а с удаленным сервером не пройдет. Есть вариант открывать файл на чтение и в случие ошибки констатировать факт, что фай..
jQuery в Eclipse PDT, WTP/ Zend Studio for Eclipse
Захотелось мне тут для Javascript perspective в любимом Eclipse заиметь автодополнение функций для jQuery с наличием полной документации. Порыскав в сети, нашёл только jQueryWTP, который даже ставить не хотелось из-за негативных отзывов, и устаревшей версии. Потому пришлось сделать самостоятельно, и вот результат: Требования: Eclipse, Web Tools Platform / Zend Studio for Eclipse / Любой редактор с поддержкой JSDoc P.S. Конечно, есть и другие методы подключения jQuery, например использование N..
Полное отображение обратных ссылок в Google Analytics
В Google Analytics был один недостаток — обратные ссылки отображались не полностью, из-за этого не всегда можно было оперативно найти страницу со ссылкой на свой сайт. Оказывается, эту проблему очень просто решить:Заходим в настройки профиля сайта (Столбец «Действия» → «Изменить») Смотрим «Фильтры, применяемые в профиле» → «Добавить фильтр» Заполняем:«Имя фильтра» → произвольно «Тип фильтра» → «Пользовательский фильтр», выбираем пункт «Дополнительно» «Поле A -> Извлечь А» → «Реферал», рядом ..
Сравнение PHP-фреймворков: CakePHP, CodeIgniter и Yii
Не так давно на Хабре проскакивал пост о появлении нового PHP-фреймворка под названием Yii. После ознакомления, этот фреймворк показался мне интересным, перспективным и достойным внимания. Недавно Daniel Carrera выложил в своем блоге интересную статью «Comparison of PHP frameworks» о сравнении CakePHP, CodeIgniter и Yii. С целью популяризации Yii среди русскоговорящего (и плохо-по-английски-читающего) населения я решил сделать перевод. Читать дальше →..
Firebug: Part 2 — commands
Это продолжение серии статей про Firebug. Весь цикл: Console, Commands, Debugging ,Profiling Firebug имеет приятную особенность — собственные функции. Некоторые из них вам уже встречались, например в Prototype. И чтобы вы не сомневались в том, что все честно, то мы продолжим мучать домашнюю страничку Firebug, т.к. на ней нет подключенных js файлов. Читать дальше →..
Расширения для Firebug
Последнее время появляется все больше и больше различных дополнений для Firebug'a. Решил сделать краткое описание для этих плагинов.Здесь были описаны только 4 плагина. Постараюсь описать все известные плагины для Firebug'aСтатья на украинском языке Читать дальше →
Самый короткий способ определения браузера IE (влючая IE.8)
IE='\v'=='v' Это решение является победителем в соревновании на выявление самого короткого способа определения IE.
Памятка дизайнеру сайтов
Вторая версия статьи, расширенная и дополненая. Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.   К сожалению огромная армия даже опытных, «модных» и эффектных дизайнеров забывают, что результатом их творчества должен быть сайт, а не только «супер-скриншот» годный только для портфолио. Первоначально эта памятка писалась мною для внутреннего пользования но, обрастая материалами, выросла в самостоятельную статью. Америку я не откр..
CakePHP 1.2 Containable Behavior
Новый релиз замечательного фреймворка CakePHP принесет еще одну фичу, которая может сильно упростить жизнь разработчикам — Containable Behavior. Особенно эта фича будет полезна при работе с моделями с большим количеством ассоциаций. Подробнее
Firebug: Part 1 — console
Данной статей я хочу начать серию, посвященную всеми любимому Add-on к Firefox под названием Firebug. Весь цикл: Console, Commands, Debugging ,Profiling Я постараюсь раскрыть известные и не очень его возможности, которые могут пригодиться любому Web-разработчику(а могут и не пригодиться, но это врядли). Если у вас его еще нету, то можно скачать со страницы http://getfirebug.com. Читать дальше →..
Фармакология или мозг. Учись не работать.
Не являясь полноправным гражданином хабрасоциума, пишу в песочницу. Ну, вот меня и взяли на Хабр.Читатели порекомендовали представиться. Выпускник лечебного факультета мед университета. На сегодняшний день аспирант-фармаколог, научная работа связана с препаратами, действующими на центральную нервную систему. На днях прочитал посты на хабре, посвященные тому, как айтишники пытаются повышать производительность своего труда. Сложилось мнение, что некоторая часть из хабровчан готова на все, ради со..
подводные камни анимации png в IE
Все мы, здесь присутствующие, горячо любим IE6, чуть менее горячо — IE7 и искренне верим (правда, не все и не всегда признаёмся в этом) в IE8. Здесь писали про множество способов борьбы с особенностью шестого издания мелкомягкого браузера не понимать формат png. Но все эти обсуждения касались просто загрузки png-картинок. А передо мной возникла гораздо более интересная (и более сложная) задача — анимация этих картинок. И всё бы ничего, если бы нужна была анимация, в которой бы нужно было менять ..
Искусственный интеллект и Web: Часть 0
Привет Хабр. Почитав то, что на хабре пишут по нейронным сетям захотелось более простым и интересным языком рассказать о искусственном интеллекте. Идея такова, во-первых написать цикл статей об основах нейронных сетей, ну а во-вторых есть несколько идей для интересных проектов, совмещающих интерактивность присущую всему вебдванольному и обучаемость нейросетей, но это позже. Читать дальше →..
Prett Parsing — метод Вогана Пратта для разбора выражений
В тему компиляций и вычислений выражений. В далёком 1973 году Воган Прэтт (Vaughan Pratt) предложил простой и эффективный метод разбора выражений, не использующий ни автоматы, ни грамматику как таковую. Идея заключается в том, что каждый символ (token) наделяется свойствами: lbp = приоритет связывания символа слева, nud = функция, определяющая результат применения оператора в начале выражения, led = функция, определяющая результат применения в середине выражения. Основной разбор осуществ..
«Доменная» карта мира
Довольно интересная идея была реализована компанией bytelevel. Они воссоздали карту мира в виде… доменов верхнего уровня. Каждой стране на карте соответствует свой TLD (Top-level domain). Размер шрифта пропорционален населению. На карте представлены страны от .az до .za, что в сумме составляет 245 доменов. Приобрести такую карту размером в 60 на 90 сантиметров можно на сайте создателей за 30 долларов...
Методы защиты веб-формы без капчи
О чём речь? В последнее время на Хабре было предложено довольно много идей для капчи. Сложная, умная, смешная, капча остаётся одним из основных способов защиты формы от ботов. Однако, одновременно с этим, капча является проблемой юзабилити, поскольку заставляет пользователя выполнять лишнее действие. В этом обзорном посте я бы хотел рассмотреть незаметные для пользователя методы защиты от ботов.Методы защиты Читать дальше →..
Редактор для хабра
Хабра редактор.Предыстория Делал для своего блога online редактор контента. Причем я привык пользоваться обычным редактором типа notepad++. Я не сторонник WYSIWYG редакторов, поэтому сделал свой редактор на основе обычного textarea. Какие же преимущества у редактора? Удобная панель инструментов в стиле Office 2007 (на скока покажет практика) Поддержка горячих клавиш (почти на весь функционал) Tab ставит именно табуляцию, а не прыгает на следующий элемент (ставит 4 пробела) Shif+Tab удаляет т..
OCR и нейронная сеть на Javascript
Некий Shaun Friedle написал любопытный javascript который автоматизирует распознавание captcha на megaupload. Пара любопытных особенностей скрипта:используется HTML 5 функция javascript getImageData для работы с пикселями; используется искусственная нейронная сеть для распознавания и работает довольно точно. Пример работы: herecomethelizards.co.uk/mu_captcha/ Исходник: userscripts.org/scripts/review/38736..
ajax загрузка нескольких файлов с php формой
Как-то для личных целей мне понадобилось сделать ajax загрузку сразу нескольких файлов. Но хотелось сделать это красиво и удобно. Для этой задачи я выбрал горячо мной любимый jquery и несколько плагинов к нему. подробнее
Архитектура YASS. Часть 3: проблема выбора
Это третья статья из цикла, посвященного разбору практических методов, заложенных в основу YASS. Первая статья была про модульное построение, вторая — про логику выбора CSS-селектора и организацию циклов.Условное ветвление Начнем с наиболее очевидной составляющей любой логики: ветвления. В любом алгоритме встречается место, в котором нужно выбрать то или иное продолжение в зависимости от проверяемого условия. Давайте рассмотрим следующие примеры. В первом случае у нас три простых вложенных пров..
Google AJAX API Playground
AJAX API Playground, грубо говоря, это более 170 примеров использования API восьми сервисов от Google.
25 самых опасных ошибок в программировании
Всем привет. Под катом — перевод статьи Джеффа Атвуда, в которой он приводит список 25 наиболее опасных ошибок в программировании от Common Weakness Enumeration со своими комментариями. Сразу хочу сказать. Большинство ошибок, перечисленных там — общеизвестны и многим набили оскому. Несмотря на это, мы продолжаем вновь и вновь наступать на те же грабли. И я в том числе. Однако, поехали..
Проверка орфографии с помощью Google
Иногда в проекте требуется проверить данные на предмет орфографических ошибок, не полагаясь на познания пользователя по части языков. Тут нам сможет помочь компания Google, с таким их сервисом, как проверка орфографии, используемым в Google Toolbar. Но, к сожалению, Google не предоставляет открытого API для работы с ним. Итак, краткое описание: Для того, чтобы проверить текст нам нужно отослать его в POST на https://google.com/tbproxy/spell?lang=ru, где для смены языка следует заменить значени..
Отправка комментариев пользователей сайта вам на Jabbеr
Во время шумихи с аськой и предложениями перехода на jabber я решил разобраться: что же такое джаббер и как он мне может пригодиться кроме прямого общения. Применение нашлось само собой – хочется получать комментарии с сайта себе в мессенжер. Этот подход оказался очень удобным и простым в реализации. Поскольку я только начал разбираться с джаббером решил использовать готовую библиотеку для php (так как мой сайт работает на нем). Итак, на сайте протокола xmpp (jabber) xmpp.org/software/librari..
Тривиальные задачи по вёрстке (часть 1)
Начинаю вести серию статей про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости Читать дальше →
Корзина в современном интернет-магазине
Здравствуйте, хочу написать цикл статей про юзабилити веб-интерфейсов, и начну, как не странно, с корзины покупок. В этой статье я постараюсь рассмотреть как выглядит большинство корзин сейчас, разобрать их преимущества и недостатки, а так же попробую сотворить нечто более современное и удобное. Предупреждаю сразу — пишу я впервые, так что многое может быть изложено далеко не лучшим образом. Итак, начнем! Читать дальше →..
Настройка Jabber сервера на своем домене с помощью Google apps
Добрый день, хабрагоспода! После моего комментария достаточно много людей остались в неведении относительно того, как организовать jabber сервер на своем домене средствами Google Apps. Написавшим я ответил, но предполагаю, что остались люди, которых это еще интересует. Поэтому я решил написать пошаговое руководство по настройке своего jabber сервера. Интересно? Смотрим дальше...
Заметки о лучшем хостинге: часть первая
Так получилось, что до недавнего времени все мои web-проекты реализовывались на своих собственных серверах. И по этой причине мне ни разу не приходилось иметь дела с хостингом. Но всему приходит конец и в конце 2008 года я вдруг решил, что просто обязан купить себе хостинг и пару доменов. Мысль эта пришла не внезапно, но обсасывалась несколько месяцев. Я старался рассмотреть все возможные варианты, прикинуть оптимальный вариант. Кроме того, я пытался сформулировать для самого себя, зачем же все..
Выпущен релиз Microsoft Web Platform Installer
Microsoft Web Platform Installer (WPI) — это инструмент для быстрой установки компонентов веб-платформы Microsoft, которые включают веб-сервер Internet Information Services (IIS) 6.0 and 7.0, СУБД SQL Server 2008 Express, платформу .NET Framework 3.5 SP1, средство разработки Visual Web Developer 2008 Express SP1 и дополнительные компоненты платформы (модуль перезаписи путей для IIS и т.п.). WPI работает на Windows XP, Vista и Windows Server 2008. Компоненты веб-платформы и сам WPI бесплатны и по..
Как продлить триал Windows 7 до 120 дней
Думаю, что все уже и так в курсе, что для «семерки» уже есть отлично работающие кряки активации, использовав которые можно снять 30-дневное ограничение на ее работу. Но ведь есть же люди, которые испытывают буквально аллергию на все пиратское и крякнутое. Вот как раз для них и будет интересна информация, которую нарыли товарищи с сайта howtogeek.com. Для того, чтобы продлить срок работы на следующие 30 дней достаточно запустить командную строку и набрать команду slmgr -rearm Что в итоге, пос..
Начинающему программисту про стартапы и не только…
Сразу оговорюсь, это все мое личное мнение. Не навязываю, просто высказываю. Читать дальше →
Архитектура YASS. Часть 2: выборка по CSS-селектору
Статья о модульной загрузке была первой ласточкой в ряду заметок, в которых я собираюсь шаг за шагом рассказать, на каких принципах построена YASS, и каковы были результаты тестирования на максимальную производительность каждой части этой библиотеки. Но обо всем по порядку.Постановка задачи Насчет с самого простого: чего мы хотим добиться? Мы хотим, задав произвольную строку CSS-селектора, соответствующую спецификации, получить на выходе массив из всех элементов, соответствующих этой самой стро..
Огнелис в роли сервера разработки
Прочитал только что статью про пример использования telnet-сервера в firefox и наткнулся на комментарий пользователя merlin_rterm, который упомянул про расширение POW, или Plain Old Webserver. Данное расширение позволяет запускать серверные скрипты средствами огнелиса. Далее опишу как настроить огнелис для работы с PHP и SQLite под Ubuntu. Думаю, что под Mac и Windows инструкция не будет сильно отличаться. Читать дальше →..
Познаём Русский язык. Цистерна первая, полная.
10  INPUT string$ 20  LET from$ = "жы" 30  LET to$ = "жи" 40  GO SUB 1000 50  LET from$ = "шы" 60  LET to$ = "ши" 70  GO SUB 1000 80  LET from$ = "чя" 90  LET to$ = "ча" 100  GO SUB 1000 110  LET from$ = "щя" 120  LET to$ = "ща" 130  GO SUB 1000 140  LET from$ = "чю" 150  LET to$ = "чу" 160  GO SUB 1000 170  LET from$ = "щю" 180  LET to$ = "щу" 190  GO SUB 1000 200  PRINT string$ 300  STOP 1000  LET lenstr = LEN string$ 1010  LET lenfrm = LEN from$ 1020  FOR n = 0 TO lenst..
Как подготовиться к сертификации по Zend Framework?
Когда люди спрашивают меня как подготовиться к сертификации по Zend Framework(ZF), я обычно говорю следующее:Вы должны уже иметь реальный опыт работы с ZF, или хотя бы с некоторыми его компонентами. Это — даст вам представление о работе фрейворка в целом, и вы сможете изучать те части фрейворка с которыми вы ещё не знакомы.(Те из вас кто ещё не начал работать с ZF, почитайте «быстрый старт», или может быть стоит поити на курсы?) Скачайте руководство по сертификации. Это — небольшой обзор, по-эт..
CSS counters
Одной из редко используемых возможностей CSS2.1 являются счетчики. Описаны они в разделе спецификации, посвященной генерации контента. Что же это такое? Приведу пример из спецификации, эмулирующий обычный нумерованый список с помощью счетчика и свойства content: OL { counter-reset: item } LI { display: block } LI:before { content: counter(item) ". "; counter-increment: item } Первым правилом мы назначаем элементам OL счетчик с именем «item», затем для всех LI меняем значение свойства display ..
Иностранные магазины гаджетов с доставкой в Россию
После поста про ручку-шпион узнал об интересном магазине китайских гаджетов и прочего интересного барахла DealExtreme С оплатой через PayPal и доставкой через обычную почту (некоторые товары доставляются через EMS). А вопрос собственно такой — какие вы еще знаете проверенные магазины (из которых вы заказывали товары сами или ваши знакомые) всяческих таких электронных штук? Желательно чтобы доставка была либо бесплатной, либо по минимальной цене и оплата через PayPal. Что удалось собрать..
Формы для людей
Сейчас мы с вами поговорим о веб-формах. Я с высоты собственного невысокого полета успел накопить кое-какой опыт и жажду непременно им поделится. Все о чем пойдет речь ниже не является черепахой на которой стоят слоны. Речь пойдет о скотче на котором держится черепаха. Итак…Первое – Откуда ноги? Уважаемый друг, для начала, я бы посоветовал отложить средства для рисования и верстки форм. Начнем мы с белого листа. И первым, чем лучше всего руководствоваться, это ряд вопросов самому себе, менедже..
Стыкуем компоненты в JavaScript
После заметки Стыкуем асинхронные скрипты и предложенного решения от Steve Souders я подумал о модульной загрузке какого-то сложного Javascript-приложения. И понял, что предложенный подход в таком случае будет довольно громоздким: нам нужно будет в конец каждого модуля вставлять загрузчик следующих модулей. А если нам на разных страницах требуются различные наборы модулей и разная логика их загрузки? Тупик? Ан нет. Не зря Steve упоминает в самом начала своей заметки о событии onload / onreadyst..
Все «секреты» Windows 7
По многочисленным просьбам — перевод статьи «The Bumper List of Windows 7 Secrets».Здесь пропущено вступление о том как здорово, что Windows 7 вышла в свет, которое все равно все пропустят и будут читать сами «секреты».1. Управление окнами Вы, наверное, уже знаете, что Windows 7 делает работу с окнами во многом проще. Окно можно «прикрепить» к левой или правой половине экрана просто придвинув к соответствующему краю, а так же окно можно разворачивать/восcтанавливать по вертикали двойным щелчком..
jQuery 1.3
Приятная новость для всех поклонников данного фреймворка. В день рождения библиотеки (которой сегодня исполняется уже три года) команда разработчиков объявила о выходе новой версии — 1.3! Читать дальше →
Google и imagesize
Если кто не знает, то в гугле можно задавать искомый размер картинки в пикселях, например:imagesize:256x256 filetype:png firefox
UPD. Демон конвертации видео в FLV.
Это продолжение, а точнее развитие, статьи написанной ранее. В результате небольшого рефакторинга, получилось повысить производительность, и упростить код. Результатом стало изменение перечня используемого софта. Читать дальше →
Google Sitemap Generator
Новый открытый Google Sitemap Generator находит новые и модифицированные ссылки основываясь на данных трафика сайта, лог файлах или файлах, найденных на сервере. Данные Google Sitemap Generator можно экспортировать в: — XML Sitemaps — Mobile Sitemaps — Code Search Sitemaps
IE8: наиболее полное описание нововведений для программиста (и не только)
Ниже представлен оригинал моей статьи принятой для публикации в отличный компьютерный журнал C`t, который, к сожалению, не выжил на рынке и пока пребывает в весьма подвешенном статусе. Статья не была опубликована из-за того, что выпуски больше не выходят. Поэтому я решил опубликовать ее на Хабре, благо она отлично попадает в формат. Хотел бы сразу отметить, что статья достаточно объемная и часть информации уже была опубликована мной на Хабре. Цель данной статьи объединить максимальное количеств..
Защита флэшки от Autorun-вирусов.
     Доброго времени суток, уважаемый хабра–читатель. Я работаю в университете, в лаборатории вычислительной техники. Администрируем около сотни компьютеров. Перед нами встала проблема защиты от Autorun–вирусов на флэшках. Естественно у нас отключен автозапуск в Windows, однако нужно было защитить сами флэшки, чтобы работник дома, вставив рабочую флэшку, не заразил свой компьютер. Под катом решение проблемы. Итак, примемся за дело.....
Что PHP может узнать о браузере посетителя?
О чем это? Возможно ли узнать более детальную информацию о браузере посетителя кроме строки, содержащейся в $_SERVER[«HTTP_USER_AGENT»]: поддерживает ли яву, апплеты, таблицы стилей и фреймы? А может это вообще гуглобот зашел? Читать дальше →
Jquery API — оффлайновая версия — chm файл
Нашелся добрый человек, который сделал мануал по Jquery в оффлайновом виде. Последняя версия chm-файла от 11 декабря 2008 года.
Тонкости роутинга в Zend Framework
Задача — сделать профиль пользователя доступным через example.com/user/username и через пользовательский поддомен username.example.com. Задача простая и с помощью Zend Framework решается парой строк кода. Трудности начались тогда, когда я решил действия регистрации, подтверждения регистрации, востановления пароля и собственно входа/выхода поместить в тот же контроллер, который выводит профиль пользователя. Теперь возникла задача научить контроллер не воспринимать example.com/user/register как по..
Отправить POST через file_get_contents()
Чтобы получить содержимое веб-страницы все с удовольствием используют file_get_contents(), например file_get_contents('http://www.habrahabr.ru/'). Но я уже давно наблюдаю, что, как дело доходит до того, чтобы отправить POST, разработчики используют либо CURL, либо открывают сокеты. Я не считаю, что это плохо или что не надо так делать, просто для решения простых задач можно использовать простые решения. Я и сам так раньше делал, пока на наткнулся на понятие контекстов потоковых операций в PHP. ..
Windows 7 Beta Release Notes
Ниже представлен offhand-перевод (без шапки и заключения) документа «Release Notes: Important Issues in This Beta Release of Windows 7». Исключительно для беглого ознакомления, что с вами может произойти :)<br / > Надеюсь, что пригодится. При неясности прошу обращаться к оригиналу, при обнаружении неточностей (например, по сетевым вопросам) — смело тыкайте носом в правильный вариант.   Ознакомиться с переводом..
Как сделать 5.1 (трехмерный звук) из ЛЮБЫХ наушников с ЛЮБОЙ звуковой картой
Приветствую! Помните, я публиковал топик "Как сделать 5.1 (трехмерный звук) из ЛЮБЫХ наушников"? Там я описывал, как добиться в любых наушниках звука, который слышен спереди, сзади, сверху и снизу. К сожалению, решение было только для карт типа Creative X-fi, на других картах решение было или очень геморрным или не было вовсе. Но не стоит падать духом! Я наконец-то нашел решение, которое работет везде. Оно называется ffdshow. ffdhsow — это аудио и видеокодеки, способные проигрывать практическ..
PHP и его встроенные OOP мелочи
Почитал еще в «том году» статью о PHP и OOP под названием PHP и магия ООП, тамошний Девид Блейн описал в краце что есть таки OOP в PHP… Да, автор показал как «надо» использовать правильно функции, но в наше время, когда языки стали не обьектно ориентированными а обьектными, уже не удивишь простой поддержкой OOP. Многие гнобят PHP тем что он корявый, медленный… Ну подумаешь, медленный, подумаешь параметры функций принимаются в разном порядке =) его можно ускорить акселераторами, функции можно скр..
Dimension picker
Этот виджет позволяет выбирать размерность таблицы так, как мы привыкли делать в текстовых редакторах. Идею взял с sites.google.com (он же на картинке). Читать дальше →
Работа с объектами в JavaScript: теория и практика
В этой статье я хочу по возможности полно и последовательно рассказать о том, что такое объект в Javascript, каковы его возможности, какие взаимоотношения могут строиться между объектами и какие способы «родного» наследования из этого вытекают, как это все влияет на производительность и что вообще со всем этим делать :) В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки. Сложность материала будет нарастать от начала к кон..
Puzzle It! — проект на коленке.
Puzzle It! — онлайн-генератор пазлов с возможностью сборки этих самых пазлов прямо в окне браузера. Ниже я хотел бы рассказать историю создания этого, интересного для меня, инструмента. Как-то сидя вечером и просматривая Хабр наткнулся на заметку товарища ganzer о том, что человек ищет адекватный к его потребностям конструктор пазлов. Все бы ничего, но я сам, как любитель убить несколько часов за этим занятием, заметил, что в сети нет приятных и «правильных» инструментов для создания простого п..
Делаем Liquid Resize своими руками
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).(НЛО прилетело и растянуло этот рисунок здесь) Читать дальше →..
Тюнинг Firefox для любителей Оперы
Здравствуйте. Я являюсь пользователем Оперы уже около 5 лет, но при разрабoтке страниц я пользуюсь Firefox'ом т.к. он предлагает мне более удобные средства для отлова ошибок, валидации и т.п., к тому же это полезно, если каждодневный брaузер и рабочий инструмент различаются. Но дело в том, что в Файрфоксе при всех его преимуществах, настройки по умолчанию заставляют оперопользователя все время чувствовать себя как в гостях. Я не говорю здесь о интерфейсе, а именно о поведении браузера. Я попы..
Безразмерная разметка с помощью relative (без float)
Навеянно этой темой.Пример, как это работает.1. Введение Представим, мы имеем класс relative, внутри которого имеется текст, и не задаём ему width:#bar{ position:relative; border:5px solid #00FFFF; padding:10px; height:200px; }мы получим резиновый блок:<div id="bar"> text </div> При этом, блок обладает неизменными padding+border и резиновым width, таким, что width_px+padding_px+border_px = 100%. Для absolute блоков, такой трюк не прокатывает. Читать дальше →..
Как быстро начать и эффективно продолжить писать расширение для лисы
Обычно цикл разработки таков: 1) вносим изменение в исходники, 2) перепаковываем исходники в *.xpi (скриптами), 3) переключаемся на лису, 4) Ctrl+O, выбираем полученный выше *.xpi, 5) появляется диалог установки, ждём 4 секунды, 6) жмём «Install», 7) потом «Restart Firefox» и смотрим что изменилось.Стало страшно? Тогда… дальше про то как userChrome.js позволяет обойтись без перезагрузки и сократить количество шагов до двух..
Четыре кита на пути к прогрессу
В почту свалилось письмо:Как можно подтянуть своё мастерство в создании логотипов? Пока иного способа как следить за работами других творцов и анализировать их, не вижу. Смотреть на чужие работы можно сколь угодно долго, но чувствуется недостаток в теории. У нас очень мало всяческой литературы по данной теме, где же брать информацию? Книги по айдентике — это в основном сборники лучших логотипов. Вот к примеру расстояние между буквами в логотипе, где присутствует не только знак, но и надпись, ест..
Перенос сайта на новый домен
Склейка домена обычно происходит при необходимости переехать с одного домена на другой, например, при покупке нового более красивого адреса или попадания в бан одной из поисковых систем старого. Иногда же клеят в корыстных целях чтобы получить чужой тИЦ/PR, но сейчас о первом случае. Хотелось бы сразу оговориться, что склейка домена занятие не трудоёмкое само по себе, но довольно нервотрепательное и долгое. И, на мой взгляд, без особой надобности её не стоит делать, ибо будут потери посещаемост..
Управление потоком в CSS: создаём контекст форматирования
Управлять потоком можно не только свойствами clear или overflow. Возможно, вы найдёте полезным для себя использование display:inline-block или display:table-cell, способных полностью заменить вам упомянутый overflow, избавляя вас от опасности указания размеров элемента, а также предоставляя дополнительные возможности. Статья не содержит универсальных решений, но открывает вашему взору дополнительный инструментарий для управления потоком. Читать дальше →..
Clearing floats: clearfix vs overflow. Недостатки и достоинства обоих подходов.
В своей недавней статье arestov подробно описал принципиальные отличия очистки потока при помощи свойства clear (например, clearfix) от создания нового контекста форматирования при помощи свойства overflow. В свою очередь, я бы хотел остановиться подробнее на достоинствах и недостатках этих двух решений. Лично я в своей работе применяю и тот, и другой способ. Причиной тому простой факт: каждый из них имеет свои сильные и слабые стороны, которые приходится учитывать при верстке. Ибо на практике..
Анонс и история Explay CMS 3 (Core)
Немного истории Где-то в конце августа — начале сентября, постепенно понимая парадигмы объектно-ориентированного программирования и приходя в ужас от своего старого кода, я решил забыть Explay 2.1 как страшный сон и взялся писать все с чистого листа. Да, это, вероятно, было не самым лучшим шагом в сторону пользователей Эксплея, но вы уж извините мою глупую натуру. Читать дальше →..
CSS хитрости IE 7: -ms-interpolation-mode
Эта тема в сети не новая, но тут статью об этом не нашла. Оказывается, у IE, начиная с версии 7, есть поддержка интерполяции (режима масштабирования) изображений и управления им через CSS-свойство -ms-interpolation-mode, описанного в MSDN. Свойство имеет 2 значения: — nearest-neighbor (менее качественный режим) — по умолчанию — bicubic (более качественный бикубический метод) W3C рекомендует использовать это свойство с префиксом -ms. Пример использования..
Интернет-магазин. Начало работы
Привет, хабранарод! Писал я давно когда-то про osCommerce небольшую статейку, меня даже просили выложить свою сборку. Если кому она до сих пор нужна — у меня осталась, могу куда-нить положить. Но, наевшись с ОСК, решили написать свою систему. При помощи CakePHP. Об этом хорошо поведал товарищ neudor, с которым на пару мы это дело разрабатывали. В данный момент он несколько отошел от работы с магазином, поэтому я выхватываю у него эстафетную палочку вести цикл статей, посвещенный разработке ПО д..
Clear или overflow:hidden — очистка всего потока или создание контекста форматирования?
Свойство clear со значениями left, right, both действительно очищает поток в отличие от overflow со значеним hidden, которое создаёт отдельный контекст форматирования для выбранного элемента, тем самым локализуя действие свойства float внутри элемента к которому применён. Читать дальше →..
Nokia 5800 XM — Пользовательский обзор.
Эта статья полезна тем, кто:Думает о приобретении этого аппарата Хотел бы увидеть отзыв пользователя об аппарате Столкнулся с проблемами поиска софта Просто любопытный Итак, я один из них.
jQuery Alert Dialogs — замена стандартным функциям Alert(), Confirm() и Prompt()
Плагин jQuery Alert Dialogs призван заменить основную функциональность стандартных предупреждений Javascript, alert(), confirm(), и prompt() функций. Они полностью настраиваются с помощью CSS (это позволит выглядеть вашему сайту гораздо более привлекательно). И вы также можете настроить пользовательский заголовок для каждого диалогового окна. Эти методы моделируют обычные модальные диалоговые окна. Они автоматически изменяют свое положение при изменении окна браузера. Если включить jQuery UI Dr..
Абсолютный минимум для новой жизни
Психологи утверждают, что молодой, энергичный и амбициозный человек (а других вряд ли станут рассматривать на должность менеджера проекта) “выдерживает” на одном рабочем месте не более 5-6 лет. А для некоторых психологических типов этот срок составляет 2-3 года. Практический опыт чаще всего подтверждает эту позицию. Далее менеджеру проектов требуются новые перспективы, причем далеко не только финансовые. Переход менеджера на новую работу — серьезный поступок, требующий взвешенного решения и тща..
ВКонтакте: смотрим закрытые фотографии
Как известно социальная сеть ВКонтакте позволяет скрыть фотографии от просмотра не друзьями. Однако, на сайте есть ошибка (по крайней мере я так считаю), которая позволяет обойти это ограничение. Это новая функция ускоренного просмотра фотографий. Заходим на страницу с фотографией, которая защищена «настройками приватности» и видим внизу ссылку «Включить ускоренный режим просмотра фотографий »». Жмем на нее и вуаля — скрытое фото отображается.UPD: по последним данным на 2 января эта багофича отк..
Демон конвертации видео в FLV
Решил поделиться недавно написанным кодом демона для видеохостинга. Принцип демона прост. Демон смотрит в папку, куда загружаются видеофалы, и при появлении там новых, копирует в другую папку, запускает в фоне процесс конвертации, создает превьюшку, и копирует полученное видео в папку пользователя. Читать дальше →..
Marquee умер, да здравствует marquee
Тег <marquee> известен многим. Этот тег позволяет создавать на странице простейшую анимацию в виде плавного скроллинга текста. <marquee> появился в Internet Explorer и не является стандартным тегом, тем не менее, поддерживается большинством браузеров в целях совместимости. В наши дни W3C не рекомендует использовать <marquee>. Однако не многие знают, что marquee обретает жизнь в новом лице. Читать дальше →..
Простой способ создания цветовой схемы(палитры)
Добрый день, друзья, хочу поведать вам один секрет, который помогает мне быстро и правильно найти цветовую схему для сайта. Ранее я уже публиковал статью на своем блоге www.egoholic.ru, но решил опубликовать еще и на хабре, чтобы донести информацию, до как можно большего числа пользователей. Прошу строго не судить, возможно, некоторые из вас знают этот прием, но вот мой друг, не знал, а когда я поведал ему, как легко найти цвета для цветовой схемы сайта – он был поражен простотой решения. Я не п..
Пример доски объявлений на Kohana
Kohana — довольно молодой PHP фреймворк, форк CI, всецело завязанный на ООП. К достоинствам Kohana можно отнести использование всех возможностей PHP5 на 100%, высокую скорость работы, «легковесность» и простоту как использования, так и изучения. Из минусов отчетливо выделяется небольшое комьюнити, как следствие, не шибко качественная документация и небольшое количество модулей и библиотек. Не так давно своё знакомство с фреймворками я начинал именно с Kohana и, надо сказать, я был удивлен, наск..
Flexify плагин для выравнивания чего бы то ни было
Наверное каждый верстальщик, хотя бы раз в жизни сталкивался с версткой двух- или трех-колоночного макета. Хотя, сам макет сверстать несложно, если конечно колонки не различаются цветом фона, как например на хабре. А вот с разноцветными придется помучаться, потому что они имеют свойство тянуться по содержимому, а содержимое у соседних колонок, как правило, разной высоты. Мне известны два способа решения этой проблемы: — заключить обе колонки в контейнер, и поставить в фон двухцветную картинку..
Google 2008 в 12 картинках
Известный блог Google Operating System составил обзор главных событий года Google в картинках.Январь. iGoogle получает новый каталог тем, где пользователи сами могут загружать интересные темы. Позднее в этом году Google использует 3 коллекции тем iGoogle (темы художников и непредпринимательских организаций) для продвижения своей персонализированной страницы, а Gmail также получит темы. Читать дальше →..
CakePHP 1.2 final
Вчера, на католическое рождество, команда CakePHP представила финальный релиз ветки 1.2. С момента первого релиза для разработчиков прошло ровно два года. За это время фреймворк стали использовать действительно большие проекты (https://addons.mozilla.org/, http://www.livemocha.com/, http://www.zeadoo.com/). Появилось несколько компаний, специализирующихся на разработке с его помощью (http://cakedc.com, http://debuggable.com, http://sanisoft.com) Полный список изменений и доступных фич вот тут..
Лучшие стартапы декабря
2008 год для Рунета — это точно год стартапов. Год расцвета этой культуры в России. И пока пузырь ещё не лопнул публикую декабрьский рейтинг лучших стартапов месяца. Под Хабракатом 10 лучших стартапов Декабря с комментариями разработчиков и как бонус ещё семь стартапов, которые вышли в Декабре и заслуживают вашего внимания. Читать дальше →..
Оптимизация изображений, часть 5: AlphaImageLoader
Примечание: ниже перевод очередной заметки «Image Optimization, Part 5: AlphaImageLoader» из блога YUI. Stoyan Stefanov на этот раз рассказывает о тонкостях применения фильтра AlphaImageLoader для IE. Мои комментарии далее курсивом. Это пятая часть серии статей про оптимизацию изображений. С предыдущими частями можно ознакомиться по адресу:Image Optimization Part 1: The Importance of Images Image Optimization Part 2: Selecting the Right File Format 4 шага для уменьшения размера файлов Послед..
Десять способов ускорить разработку
    Сегодняшние слухи и громкие слова вроде «быстрая разработка приложений» (RAD), AJAX (мы теперь не можем ждать даже перезагрузки страницы) и методики «Agile» дают нам понимание, какие требования выдвигаются в мире, в котором мы с вами живем.     Однако, разработка быстрее не означает, что работать становится тяжелее — это лишь означает, что работать нужно разумнее. В этой статье вы найдете десять основных советов, которые помогут вам ускорить разработку ваших проектов. Читать дальше →..
Disk Write Copy: софт, способный сделать Windows вечным.
Сложилось так, что работаю я в компании CCS. Полностью Российской компании, которая на свет появилась в качестве стартапа, собравшись в крепкую команду. Хочу познакомить хаброжителей с программным обеспечением Disk Write Copy, которое эта компания выпускает. Это означает, что если поставить все диски на компьютере под защиту, то утилита потребует перезагрузки в процессе которой моментально создаст их теневые копии, а оригинал будет оставаться защищенным и никак изменяться не будет. В процессе..
альтернатива HTML5 прямо сейчас
Пока все обсуждают HTML5 я тут пошевелил извилинами и придумал, в общем-то, тривиальную, но полезную концепцию и решение всех ваших проблем с языками разметки. Оно работает уже сейчас в Mozilla, WebKit и Opera. Для начала, однако, я все же скажу пару слов об HTML5, чтобы было понятно, к чему я веду. На мой взгляд авторы этого языка решают только текущие проблемы, которые могут стать просто неактуальными к тому моменту, как язык таки реализуют в браузерах. HTML5 по определению не способен на лет..
Three Futamura Projections и не только
Привет, хабрачеловек. Сегодня я расскажу тебе про некоторые фундаментальные вещи в computer science: частичные вычисления, три проекции Футамуры и суперкомпиляцию.    1. Сразу к коду-- функция, которая возводит x в степень y (неотрицательную)power x y =     case y of         0 → 1         1 → x         _ → x * (power x (y - 1)) Читать дальше →..
DebugKit для CakePHP
На GitHub (а именно здесь) уже некоторое время лежит отличный плагин для CakePHP, который значительно облегчает разработку на тортике. Он добавляет на страницу в верхний правый угол вот такую панель:читать дальше в моем блоге
Google Search: учимся искать
Итак, рассмотрим основы синтаксиса поисковых запросов и некоторые хитрости поиска на google.com. Возможно, вы уже знаете многие из них, но тем не менее, что-то может оказаться очень полезным при ежедневном поиске.Для поиска цитат можно использовать как фразы, заключенные в ковычки, так и словосочетания соединенные знаком дефис: ["пример поиска цитат"] или [пример-поиска-цитат]. Гугл воспринимает как знаки, связывающие слова в единую фразу, не только кавычки, но и такие символы, как дефис, слэш (..
Релиз Kohana 2.3
Вышел релиз фреймворка Kohana 2.3. Внутри список изменений на русском. Читать дальше →
Необходимость (часть вторая)
[ I. Суть ] [ II. Необходимость (часть 1, → часть 2) ] [ III. Техника ] [ IV. Работа с методами] [ V. Организация данных] [ VI.? ] Продолжается мини-цикл несложных статей по рефакторингу.Еще немного о ситуациях     Сегодня мы продолжаем разговаривать о ситуациях, в которых можно и нужно применять те или иные рефакторинги. Так как таких ситуаций достаточно много, всех их невозможно рассмотреть не только в статье, но и в книге. Поэтому, здесь представляются основные ситуации с несложными объясне..
Иерархические структуры данных и производительность
Введение В своей предыдущей статье я дал краткий обзор основных моделей хранения иерархических структур в реляционных БД. Как и положено тому быть, у многих читателей стал вопрос ребром о производительности представленных алгоритмов. В данной статье я постараюсь приоткрыть завесу над этим животрепещущим вопросом, а в следующей обещаю коснуться вопросов оптимизации и поисков нестандартных решений. Читать дальше →..
Выбор флага страны по коду.
Прочитал топик и решил реализовать на js (yass) + css.Рабочий пример Код и скриншот
Лекция о пиве
Лекция кандидата по химии для студентов медиков. о механизмах влияния пива. p.s. Как так получилось, что представители IT ассоциируются с Пивом?
Плагин tagSphere
Думаю, многие из вас видели плагин для wordpress. Симпатичный шарик привлек мое внимание и мне захотелось его поковырять... Разочарованию не было предела ― он оказался на флэше(против флэша ничего не имею). Ладно, флэш так флэш нагуглил исходники, распаковал архивчик, а там… А там море файлов с кодом, файлы для настройки с парой десятков опций, несимпатичный фалик для вывода всего этого, для генерации xml'ки. С этим я мириться уже никак не хотел и решил написать тоже самое, но на javascript. ..
Класс Set — повелитель массивов
Сегодня кстати, вышел четвертый релиз-кандидат CakePHP 1.2. Более 300 изменений и все такое. Но сейчас речь не об этом. Оказывается в недрах CakePHP давно живет класс Set, который активно используется в ядре и редко используется конечными пользователями. А между прочим зря.О чем это ты?..
Firefox и «старые плагины»
Если честно, то изрядно поднадоели фразы из серии: я не буду переходить на Fx 3.1 (я лично уже на 3.2a1pre) потому, что он старые плагины не держит. Ведь есть же отличный русскоязычный форум, на котором можно найти ПРАКТИЧЕСКИ ВСЕ ответы. На этот вопрос (о совместимости со старыми расширениями) на нём же есть 3 ответа: 1) Nightly Tester Tools; 2) about:config -> добавляем boolean ключ «extensions.checkCompatibility» и выставляем его в false; 3) — скачиваем аддон (xpi) — спокойненько разарх..
Барахолка на Kohanaphp. Часть 1
Делаем то же самое что и здесь, только используя Kohanaphp: Отличия kohanaphp от codeigniter: * Использует PHP 5 ООП * Абстракция базы данных, используя SQL helpers * Разнообразные драйвера сессий (native, database и cookie) * Обработчик событий * Основан на базе CodeIgniter Получить kohana можна на сайте kohanaphp. много кода с комментариями под катом..
Самый простой способ скачать видео с YouTube
Скачать ролик с YouTube можно без особых проблем. Онлайн-сервисов для этого отнюдь не мало. А вот товарищи с lifehacker.com нашли еще один вариант. Гораздо более простой и удобный. Без дополнительного софта и без надобности использования специальных сайтов. Просто добавьте в URL того или иного ролика слово kick перед youtube (вот так: www.kickyoutube.com/******) и обновите страничку. После этого вверху страницы появится панель kick, в которой можно выбрать формат скачивания видео (от FLV до опт..
Вспомогательные классы
Лично мне, иногда, при верстке очередной страницы или изменении существующей, требуется (или просто хочется) добавить несколько простейших параметров стилей. Писать определение стиля в разметке не очень хочется, не только из-за того, что это набор достаточно длинной строки, но и потому, что это определение потом может остаться в разметке навсегда (как говориться: нет ничего постояннее временного). Кроме того, в каждом отдельном файле CSS-стилей порой валяются одни и те же классы стилей в одну ст..
Тестирование JavaScript: Fireunit Screencast
Вчера, после прочтения поста Джон Резига, решил записать по горячим следам первый в своей жизни (это я к тому, что сильно ругать не стоит, а конструктивная критика приветствуется :) скринкаст. Fireunit — это инструмент для тестирования javascript кода, созданный в виде дополнения к firebug'y Джоном Резигом в рамках его сотрудничества с командой firebug. На данный момент, он работает только под ff3+, firebug 1.2+. Зачем же нужен такой инструмент тестирования, если он работает только в firefox?..
Новые тайны «полноценного» fixed-а в IE6
Способ устранения дрожания фиксируемого объекта с помощью фоновой картинки при эмуляции position:fixed для IE6 через expression известен давно, хотя популярным у нас он стал после публикации в лебедевском «Техногрете» весной 2007-го. Недавно на Хабре коллега Nuty сделал открытие, что манипуляции с коллекцией filters тоже дают такой эффект. По неосторожности я оставил коммент к тому топику с нелепой записью body { _filter:true; } (и мини-демкой для Quirks mode на ее базе:), и эту запись, кажется,..
AJAX комменты
Специально для тех, кто не подписан на мой RSS, а также для тех, кто не читает новости drupal.[org|ru], спешу сообщить, что мои AJAX комменты таки выпущены в свободное плавание и теперь доступны для скачивания на drupal.org. Те, кто еще ни видел их в действии, кто хочет сказать спасибо, а также остальные — можете смело бросать свои комменты в этом топике. Всем спасибо, надеюсь модуль заработает сходу :)..
Drupal 6. Примитивная галерея CCK+ImageField+ImageCache+Lightbox2
Это небольшая статья (или мануал, если угодно) о создании примитивной галереи посредством дополнительных модулей. Сам взялся за изучение друпала трое суток назад. Должен сказать, что после WordPress’а это сложновато, но вникнуть и разобраться можно. Поехали. Читать дальше →..
Inline Code Finder — новое расширение под Firefox для web-разработчиков
Буквально недавно в свет вышло расширение под firefox для web-разработчиков под названием Inline Code Finder. Расширение позволяет просмотреть на открытой странице:Все встроенные в html код стили Все встроенные в html код события (например onclick) И прописанный в атрибут href тега a javascript код Облегчает работу по отлову css и javascript вставок в html коде. Особенно полезен на крупных проектах. Читать дальше →..
Оптимизация изображений, часть 3: 4 шага для уменьшения размера файлов
Примечание: ниже расположен перевод заметки Image Optimization, Part 3: Four Steps to File Size Reduction от Stoyan Stefanov. В ней рассматриваются наиболее популярные консольные утилиты для минимизации изображений. Мои комментарии далее курсивом.Об авторе: Stoyan Stefanov работает веб-разработчиком в команде Yahoo! по исключительной производительности и руководит разработкой инструмента для анализа производительности — YSlow. Он также внес значительный вклад в программы, разрабатываемые с откры..
Динамические стили: быстро и просто
Заметка Выносим CSS в пост-загрузку была посвящена исследованию наиболее быстрого способа добавить стилевые правила в исходный документ динамически, не затрагивая при этом стадию предзагрузки (когда у нас еще белый экран в браузере). В ней, однако, не был рассмотрен следующий вопрос: какой метод использовать для добавления массива CSS-правил в сам HTML. Естественно, что таких вариантов существует несколько, и дальше они все будут рассмотрены с точки зрения производительности в клиентском браузе..
Лучший файловый менеджер?!
Нет, ну а что если на самом деле так? :) Читать дальше →
Url в CSS
Недавно из-за своей невнимательности, наверное, обнаружил забавную вещь в css (поиском искал на Хабре — не нашел). При указании url фоновой картинки я забыл упомянуть расширение:.somediv { background-image: url('img/background'); } Но браузер (Firefox) спокойно вывел мой png-фон. Мне стало интересно и я решил проверить. Создал 3 разноформатных файла, с одним и тем же именем «background» и естественно поместил их в одну папку. Использовав вышеуказанную «очепятку» узнал: Из всех трёх файлов ..
В двух словах о самом разном.
Итак, напишу о том, как пофиксить дрожание в IE при эмуляции position:absolute; (без фоновой картинки), устроить склонение слов, решить проблемы с вопросиками в Mysql и про остальные неважные, но иногда полезные хитрости. Если Вы матёрый веб-технолог, можете не читать: ничего нового не найдёте. Читать дальше →..
Представления (VIEW) в MySQL
В комментариях Хабра упоминались вопросы по использованию представлений. Данный топик является обзором представлений, появившихся в MySQL версии 5.0. В нем рассмотрены вопросы создания, преимущества и ограничения представлений.Что такое представление? Представление (VIEW) — объект базы данных, являющийся результатом выполнения запроса к базе данных, определенного с помощью оператора SELECT, в момент обращения к представлению. Представления иногда называют «виртуальными таблицами». Такое назван..
Почему фриланс является чертовски трудным занятием
Несмотря на то, какой замечательно может быть работа на себя, есть во фрилансе и просто отстойные моменты. И не важно, какова ваша специализация — эти недостатки фриланса найдут, как проявить себя. О каких недостатках я говорю? Читать дальше →
CSS Sprites и data:URI, или Microsoft и весь остальной мир
Доклад на ClientSide'2008, который будет прочитан 16 декабря. Комментарии и дополнительные вопросы приветствуются.
Доработанный файловый менеджер для FCKeditor (визуальный редактор для HTML)
В визуальном редакторе FCKeditor (на сайте есть демо) файловый менеджер имеет ряд недостатков, которые мешают полноценно работать с этим замечательным (по моему мнению) редактором. Переделан только PHP-коннектор для файлового менеджера.Вид доработанного файлового менеджера Читать дальше →..
Мини проект «Vizitator» — дознаватель пользовательских предпочтений
На волне положительных отзывов к статье о сборе данных посредством CSS очень захотелось не откладывать идею в дальний угол, а быстро реализовать конечный продукт её использующий. В результате был создан мини-сервис Vizitator, о котором я и поведаю уважаемым хабрапользователям.Vizitator — это javascript API(хотя пока это громко сказано), позволяющее получить данные об интересах пользователя на основе его предпочтений по посещениям сайтов. Читать дальше →..
Цель — привлечение клиентов
За последние 3-4 года я не встречал ни одного задания на разработку сайта, в котором бы не было такой цели. Стоит отметить что наша специализация — разработка корпоративных сайтов. Каждая компания хочет чтобы их сайт стал инструментом привлечения клиентов, но ни одна компания до конца не верит в то что это возможно. Не верят, потому что не могут совместить эту цель с реальностью. Легко сказать: «Мы хотим привлекать клиентов через сайт». Но кто эти потенциальные клиенты? Где они? Что для них важ..
Ajax-машина
Знали ли разработчики Livescript из Netscape о том, какое влияние окажет их язык, позже переименованный в Javascript, на лицо интернета — веб-сайты, или, может быть, они твердо на это рассчитывали, но факт остается фактом — Javascript на сегодняшний день является одним из самых важных и распространенных языков в мире. В то время, как на стороне сервера трудится разношерстная компания языков в лице php, perl, python, ruby, .net, java и многих других, на стороне клиента Javascript существует букв..
Альтернативные потоки данных в NTFS или как спрятать блокнот
Введение Поддержка альтернативных потоков данных (AltDS) была добавлена в NTFS для совместимости с файловой системой HFS от Macintosh, которая использовала поток ресурсов для хранения иконок и другой информации о файле. Использование AltDS скрыто от пользователя и не доступно обычными средствами. Проводник и другие приложения работают со стандартным потоком и не могут читать данные из альтернативных. С помощью AltDS можно легко скрывать данные, которые не могут быть обнаружены стандартными пров..
Почему я не люблю Drupal
Сложен в изучении Высокая нагрузка на БД Безграмотная структура Отсутствие ООП Странный кэш Несовместимость модулей Трудоёмкая кастомизация В принципе дальше можно не читать, так как будет то же самое, но подробно. Читать дальше →
Плавающая контентная область сайта.
Приветствую Хабр. По мотивам cайта, сделанного сами знаете кем :) В свое время увидел, такой эффект – слева сайта находятся ссылки, при клике на которые контентная область сайта плавно перемещается к указанному идентификатору. Эффект запомнился — решил повторить. Для реализации плавного перемещения взял JQuery. Читать дальше →..
«God, Sex, Love and Secret» или статистика использования паролей в социальных сетях
Пользователи не любят напрягаться и многие разработчики смирились с этим. Вспомните последние 10 сайтов на которых Вы регистрировались, многие ли из них проверяли Ваш пароль на сложность? А ведь какие бы меры безопасности не придумывали создатели системы, они могут быть бессмысленны, если пользователь сам облегчит злоумышленнику работу. В этой статье приведён результат анализа ~100 000 паролей. Надеюсь этот анализ будет интересен и пригодится многим хабралюдям. Читать дальше →..
Поиск в массиве (множестве) в JavaScript
Недавно решал задачу, когда нужно было определить, попадает ли определённое (строковое) значение во множество допустимых значений. В Javascript 1.6 существует метод indexOf объекта Array для поиска в массиве, но этот метод не поддерживается в Internet Explorer. Для IE данный метод реализовывается с помощью перебора массива в цикле. Но так как порядок следования элементов был не важен и каждая миллисекунда была на счету, то я сравнил производительность перебора цикла в массиве с другими вариант..
Версия 0.2.4: больше, лучше, быстрее
Много нового и просто хорошего:Поддержка части CSS2/3. Ускорение в 2 раза: быстрее последних Sizzle и Peppy. Размер кода (min.gz): 1066 байтов. Google Code SVN: code.google.com/p/yeasss/ . Дизайн для yass.webo.in/ . Читать дальше →
Named Scope для CakePHP
В Ruby on Rails есть такая полезная вещь, как named scope, которая предоставляет элегантный и удобный способ поиска данных в модели. Для наглядности пример:class User < ActiveRecord::Base   named_scope :active, :conditions => {:active => true}   named_scope :inactive, :conditions => {:active => false} end # Использование User.active # то же самое, что и User.find(:all, :conditions => {:active => true}) User.inactive # то же самое, что и User.find(:all, :conditions => {:active => false})и п..
Вывод webmoney в Украине
В своей работе я использую несколько способов оплаты. Чаще всего это webmoney – просто, удобно, надежно. Я вижу бизнес левел заказчика, заказчик — мой. Есть много полезный функций и арбитраж – в котором никому ничего не докажешь, зато кошелек обидчика заблокировать можешь (был у меня и такой опыт). Но деньги на электронном кошельке, это не то же самое, что деньги в реальном кошельке. Этот пост посвящен способам вывода webmoney в Украине. Читать дальше →..
Системы оплаты в Украине
Примерно год назад мы с партнером открыли свой интернет магазин, занимающийся продажей преимущественно англоязычной литературы и учебников. Прожив год, мы набрались опыта, поняли, что нужно поменять и что доделать. Но основной проблемой любого интернет магазина является доставка и оплата. И если с доставкой ситуацию еще можно решить, то с оплатой есть небольшие проблемы. Системы оплаты в Украине глубоко порочны, закостенелы и пребывают в состоянии вялотекущей жизнедеятельности. Они совсем не о..
Что должно быть в техническом задании для программиста сайта
На мой взгляд, если рассматривать разработку корпоративного сайта, то среди документации, которую готовит менеджер проекта, должен присутствовать и такой документ, как техническое задание для программиста сайта. Точнее даже не задание, а небольшая техническая записка на 1-2 страницах. Суть её — переложение Концепции сайта, написанной специально для Заказчика, на тот язык, который более понятен программисту. Программист не будет внимательно читать объёмную Концепцию, ему надо потратить минимум ..
Деревья, двоичные деревья
5й выпуск медленно, но двигающегося вперед видеопроекта Computer Science Student. На этот раз — небольшая «лекция» о такой структуре данных, как деревья. Видео доступно в HD-качестве, но, как всегда, придется идти на vimeo.com. Читать дальше →
Иерархические структуры данных и Doctrine
Введение Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей. В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляцион..
Фоновый .png и IE 6 — принуждаем к миру.
Известен следующий баг «народного» браузера — картинки в формате .png, содержащие участки с альфа-прозрачностью отображаются неправильно. А именно — область этих участков заливается серым цветом (спасибо dreamhelg за лаконичное описание сути происходящего в данном случае). Сегодня в в своей RSS-ленте обнаружил ссылку на очередную статью о конфронтации .png и IE. Воспринял ее, пожалуй, как и бóльшая половина удививших заголовок выше — с предубеждением (мол, опять двадцать пять). Тем не менее, вы..
Yii Framework
Случайно встретился ещё один PHP-фреймворк. Обычно новые фреймворки я просматриваю мельком, но этот меня очень заинтересовал. Авторы (Qiang Xue, Xiang Wei Zhuo), возможно, известны вам по довольно гибкому, но и довольно тормознутому фреймворку Prado. Итак, что же в нём такого интересного? Читать дальше →..
Блокировки в MySQL
На хабре часто обсуждаются принципы работы MySQL. Данный хабратопик посвящен механизмам блокировок, используемым в MySQL. Топик поможет начинающим изучать MySQL и, в некоторой степени, опытным хабралюдям.Механизм блокирования в MySQL Одновременный доступ нескольких клиентов к хранилищу данных может приводить к ошибкам различного типа. Например, одновременное чтение одним клиентом и запись другим клиентом одной и той же строки таблицы с большой вероятностью приведет к сбою или чтению некорректны..
Cравнение инструментов сжатия JavaScript
Сервис позволяющий сравнить степерь сжатия скриптов при помощи JSMin, Dojo ShrinkSafe, YUI Compressor, Packer и gzip. На выходе помимо сжатого\упакованного кода таблица результатов выполнения всех паковщиков отсортированная по эффективности.
Веб-сервисы в теории и на практике для начинающих
Что такое веб-сервисы? Прежде всего, веб-сервисы (или веб-службы) — это технология. И как и любая другая технология, они имеют довольно четко очерченную среду применения. Если посмотреть на веб-сервисы в разрезе стека сетевых протококолов, мы увидим, что это, в классическом случае, не что иное, как еще одна надстройка поверх протокола HTTP. С другой стороны, если гипотетически разделить Интернет на несколько слоев, мы сможем выделить, как минимум, два концептуальных типа приложений — вычислит..
Оптимизация изображений, часть 4: последовательные JPEG — быть или не быть?
Примечание: ниже перевод заметки «Image Optimization, Part 4: Progressive JPEG…Hot or Not?» из блога YUI. В ней уже известный по прошлым статьям Stoyan Stefanov рассматривает использование последовательных (progressive) JPEG с точки зрения клиентской оптимизации. Мои комментарии далее курсивом. В своей предыдущей статье «Оптимизация изображений, часть 3: 4 шага для уменьшения размера файлов» последовательные JPEG-файлы были вскользь упомянуты как одна из возможностей для оптимизации JPEG. Эта с..
Издержки больших проектов или взгляд на программирование в команде изнутри
Ни для кого не секрет, что разработка больших программных продуктов требует не только эффективного руководства, но и эффективных процессов, которым следуют все разработчики. На примере своей компании я постараюсь описать жизненный цикл проекта и цену его разработки и поддержки. Те, кто работает в небольших командах из нескольких человек, смогут сравнить и представить, что их ждет при увеличении штата или же чего они избежали, если расширяться не планируют. А в комментариях можно покритиковать, у..
JsOOP
В статье речь пойдет об имитации классического ООП и строгой типизации в Javascript (< 2.0). Я расскажу про JsOOP – мини-фреймворк для написания Javascript-кода в объектно-ориентированном стиле. Читать дальше →
CSS Digital Clock
CSS Digital Clock
Мирный XSS
Эта статья о мирном атомеXSS. Заставим зло работать на добро!А зачем? Простейший пример всё объяснит: Вы разрабатываете веб-сервис, который поставляет данные другим сайтам (погода, данные по торгам в реальном времени, чат и т.п). Вам нужно организовать кроссайтовую передачу данных(данные погоды, торгов, текст чата) на стороне клиента.Методы организации XSSЧерез тэг iframe Через тэг script Через flash<->javascript Через window.name + iframe + form Через CSS хак Через canvas + img Через пр..
Быстрая перекраска вещей на сайте
Существуют моменты когда необходимо предоставить пользователям выбор цвета какой либо вещи. Есть несколько способов выхода из этой ситуации. Здесь я покажу очень простой и незамысловатый способ быстрой перекраски, на примере iPod Shuffle. Читать дальше →
Курсоры в Mysql.
По долгу службы мне пришлось сталкиваться с курсорами. Хотелось бы рассказать, что это такое и о некоторых особенностях работы с ними. Официальная документация тут — dev.mysql.com/doc/refman/5.1/en/cursors.html Википедия даёт такое определение курсору курсор: Читать дальше →
Версия 0.1.6
Спасибо всем. Честно, не ожидал настолько позитивного отклика (некоторые даже кинулись внедрять библиотеку в свои проекты и всячески пропагандировать :). Для большей ясности поясню основные идеи:Это мини-ядро. Чтобы выбирать элементы DOM-дерева. На его основе (или дополнительно к нему) можно разрабатывать остальные модули. Но конкретно этот функционал дальше CSS-селекторов расширяться вряд ли будет. Идея ни разу не новая. Это самое быстрое мини-ядро. Каждая строчка тестируется и будет тестиров..
Получи Gmail-наклеечки
Сегодня в официальном блоге о Gmail появилась заметка о том, что сотрудники, работающие над Gmail, с радостью поделятся со всеми желающими самодельными Gmail-наклейками. Читать дальше →
CSS Border Design
логотип одноименной Белорусской компании «нарисован» только с помощью HMTL+CSS Читать дальше →
Делаем полноценный JS-прелоадер для AJAX-приложения
Многие программисты оптимизируют Javascript и CSS-код, чтобы страница грузилась быстрее. Но не все они делают прелоадеры, которые дают пользователю эффект субъективно более быстрой загрузки. хочу продолжения
Advice Dog средствами CSS
После публикации bur про верстку острых углов, я загорелся желанием опробовать этот способ в действии. Реальной задачи не было, примитивные треугольнички-ромбики надоели быстро, хотелось чего-то масштабного. Мысль подкинул rossomachin своим комментом «Плюсуй! Убивай!». Конечно! Advice Dog с его позитивным полигональным фоном идеально подойдет для моих экспериментов! Красивая разноцветная подложка и высокоинтеллектуальные надписи сверстались быстро. Но как быть с кавайным песиком, — думал я — ..
Доставка видеоконтента пользователям
[ Часть I. Доставка видеоконтента ] [ Часть II. CDN своими руками ] Что такое «контент» для видеохостинга? Во-первых, контент видеохостинга – это просто видео, которое представляет собой набор файлов в различных форматах, в частности, в формате FLV для просмотра пользователем через Flash Player. Эти файлы статичны, видеохостинг при загрузке пользователем видеоролика осуществляет конвертацию во все требуемые форматы с необходимым битрейтом. Хранение такого контента — это хранение обычных файлов,..
Yet Another cSS selector = YASS
После заметки о Peppy я почти обрадовался — вот оно, счастье. Наконец появился движок CSS-селекторов, который делает тоже самое, что и jQuery, только быстрее. Сильно быстрее. Радоваться было недолго, как только я посмотрел в код, то немного ужаснулся: он не соответствовал моим представлениям об исключительной производительности. Совсем не соответствовал. Точнее, немного удовлетворял, но не до конца. Поэтому сразу встал вопрос: а если быстрее? Почему нельзя сделать быстрое мини-ядро для CSS-сел..
Загрузка MS Windows с USB-флэшки
Я не люблю M$Win'ские системы. На моих компьютерах установлен Linux (Fedora 9). Чем же вызвано появление постинга, рассказывающего об установке нелюбимой мною ОС на флэшку? В конце октября я оказалась в составе «команды Йота», получившей бесплатный безлимитный доступ к разворачиваемой по Москве и Санкт-Петербургу бепроводной сети WiMax (заявленная скорость — 10Мбит входящего трафика и 5Мбит исходящего, а как обстоят дела в настоящий момент, можно прочитать здесь). Вместе с бесплатной безлимиткой..
Тюнинг Zend Framework + Doctrine
Логические задачи и головоломкиСкрещиваем двух «зверей» В принципе, скрестить Zend Framework с Doctrine не так уж сложно. Но прежде поговорим о подготовительной работе. По мнению автора, предлагаемую по умолчанию структуру файлов проекта Zend Framework можно сделать чуть более оптимальной. Так выглядит структура файлов проекта Zend Framework по умолчанию:/ application/ default/ controllers/ layouts/ models/ views/ html/ library/ Читать дальше →..
Верстка скругленных границ и острых углов
Сложность элементов интерфейса увеличивается с каждым новым макетом, что доставляет немало хлопот верстальщикам. Развивающиеся технологии позволяют создавать в WEBе сложные приложения (Google не даст мне соврать), поэтому дизайнеры себя не сдерживают и рисуют всё более навороченные вещи. Как правило, это приводит к большому количеству графики на страницах. В этой статье приводится пара полезных на взгляд автора рецептов. Возможны вы уже с ними знакомы, а возможно вынесите для себя что-то новое,..
Хранение файлов в MySQL и их быстрая раздача
Думаю у многих возникала необходимость хранить файлы, связанные с записью в таблице. Это может быть картинка к новости, аватар, загруженный пользователем файл — да все, что угодно. Обычно в этому случае поступают просто — файл ложится в файловую систему, а ссылка на него — в запись БД. Но у такого классического похода множество недостатков:файлы не удаляются при удалении соответствующей записи БД проблемы при одновременной попытке обновления файла нарушение синхронизации между БД и файловой ..
Разметка. Transitional vs Strict
Речь в статье пойдет о такой, казалось бы изжеваной и изъезженой теме, как валидация веб-документа по одной из DTD-схем, которые в свою очередь определяются с помощью DOCTYPE. Тема эта нетривиальна; преимущества и недостатки того или иного способа валидации на первый взгляд не всегда являются явными. Поэтому я решил что упомянуть о них еще раз будет не лишним. В последнее время, многие редакторы и CMS'ки автоматически проставляют DOCTYPE для документа, что само по себе является прорывом, но к ..
widget своими руками
Привет. Наверное, многие из вас пользовались стандартными javascript-виджетами, написанными как безвестными разработчиками, так и крепкими профессионалами, так и гуру. Есть великолепные коллекции виджетов, поставляемых в качестве плагинов к известным фреймворкам (вроде jQuery, Prototype JS, YUI), так и целые фреймворки, акцентирующие свое внимание на создании виджетов, вроде Ext JS или qooXdoo. Но что, если вы не хотите использовать достаточно объемный фреймворк для создания простого диалогов..
Ускорение нарезки макета в Photoshop
При создании html-макета страницы иногда приходится иметь дело с множеством однотипных картинок. Например, выпало верстать фотоальбом. Нужно нарезать порядка двадцати «превьюшек», потом их всех поименовать и сохранить. Рутина. Для того, что бы быстрее разделать со всем этим — используем несколько хитростей. Читать дальше →..
Разворачивание широкой таблицы в столбец (EVA pattern)
Задача Есть сущность, которая характеризуется огромным и часто переменным числом параметров. Задача хранить эти сущности да еще и так чтоб поиск тоже можно было вести желательно еще и с построением индекса. Читать дальше →
PHP, PREG и UTF-8
В этом посте речь пойдет о работе РНР5 с multibyte строками посредством preg_*() функций. Заметил интересное положение дел, вобщем-то давным давно описанное в интернете, но актуальное и по сей день (вопрос всплыл всвязи с недавним постом про trim()). Читать дальше →
Необходимость (часть первая)
[ I. Суть ] [ II. Необходимость (→ часть 1, часть 2) ] [ III. Техника ] [ IV. Работа с методами] [ V. Организация данных] [ VI.? ]В каких ситуациях применять рефакторинги?     Что бы узнать ответ на этот вопрос (разумеется, если вы его не знаете), вам придется прочитать эту статью, хотя даже после прочтения вам понадобится какой-то определенный промежуток времени что бы «набить руку». Сегодня мы рассмотрим основные признаки необходимости рефакторинга, по ходу дела знакомясь с некоторыми его при..
SimpleModal — простые модальные окна
Обзор плагина SimpleModal, его глюков, избавление от глючности, позиционирование по центру экрана и прочие удобства. Вообще я публиковал статью в своем блоге:«SimpleModal — простые модальные окна», но подумал что и хабраюзерам может быть интересно про это узнать. А так же советую взглянуть на более новую статью «Модальные окна на jQuery blockUI». Не все же с лайтбоксами играться. Читать дальше →..
Мир лицензий: разбираемся с GNU GPL
Рано или поздно каждый разработчик сталкивается с вопросом лицензирования своих разработок. Более или менее понятно, когда разрабатывается коммерческий продукт с закрытым кодом. Но когда разработчик желает распространять программу, плагин или библиотеку классов бесплатно и с открытыми кодами, то могут возникнуть трудности, потому что в природе существует масса лицензий подобного рода. Эта статья призвана собрать, упорядочить данные по лицензиям и вычленить самое главное.UPD: опубликован перевод ..
GameBox — аркадная игрушка на JavaScript.
Привет. Решил я познакомится с технологией canvas и написал ардкадную игрушку. Использовал для старта руководство. Скриншот и небольшой описание
Забыть о target
Гениальный в своей простоте способ заставить ссылку открыться в новом табе/окне, не используя нежелательный по рекомендации W3C в XHTML, атрибут target: <a onclick="return !window.open(this.href)" hrеf="http://www.google.com"> Преимущества этого способа перед обычным open.window(url) в том, что если javascript отключен, то ссылка все равно сработает. Кроме того, ссылка будет проиндексирована поисковиками. Проверено в FF2, IE6/7, Opera 9.20, Safari/Win.<update>Поведение браузеров при нажатии C..
Борьба с ленью или проблема отсроченного поощрения.
Многие из Вас наверняка стакивались с ситуацией — есть дело важное, интересное, прибыльное (нужное подчеркнуть;), есть время этим делом заняться. А душа к нему не лежит. Стоит только сесть за работу, как как будто черт дергает послушать музыку, побродить по интернету, початиться с друзьями. Один — другой раз, не куда ни шло, но это происходит постоянно, и часто под самыми благовидными предлогами (например: дабы узнать новую информацию необходимую для проекта). Не иначе как происки нечистого. Чит..
Паттерны форм подписки, часть вторая
Это вторая часть перевода интересного исследования, которое проводили авторы популярного интернет сайта Smashing Magazine. Первую часть вы пожете прочитать здесь. В этот раз авторы затрагивают вопросы капчи, сообщения «Спасибо за регистрацию», кнопки «Отмена» на формах и некоторые другие интересные вопросы. 3. Функциональность форм В первой части нашего исследования мы рассмотрели как расположение ссылок на подписку и форм регистрации, так и их внешний вид. Те не менее, не имеет значения, как п..
Все то, о чем мы так долго мечтали — первый официальный релиз MySQL 5.1
Собственно сегодня наткнулся на ссылку http://lists.mysql.com/announce/565 и сразу спешу поделиться с хабро-сообществом. Здесь говорится, что сегодня вышел первый релиз MySQL Server 5.1.30 Generally Available (GA), который является первым релизом, рекомендованным для использования на продакшн серверах. Основные нововведения в версии 5.1. представлены по этой ссылке http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html А также описаны в статье tuta_larson — Что нового в MySQL 5.1 Также ..
Разработка макетов: а давайте в этот раз не будем спрашивать уборщицу?
Мало кому приходит в голову указывать программистам, как писать код (хотя некоторые умудряются указывать даже проектировщикам баз данных), но уж показать дизайнеру как нужно рисовать — прямо очередь выстраивается. Это происходит потому, что все «специалисты» знают: дизайн — это красивая картинка. Дизайн лишь на 20% искусство, на 80% — это точная наука. И вы будете удивлены, когда узнаете, из чего на самом деле состоит каждая картинка. Читать дальше →..
Мой первый робот
Зная о моей мечте о «Футураме» (светлое технологическое будущее здесь и сейчас) мне подарили конструктор Lego, чтобы я смогла собрать свою 0.0.0.1 версию Бендера. :) Читать дальше →
Cуть
Кросспост на моем сайте. [ I. → Суть ] [ II. Необходимость (часть 1, часть 2) ] [ III. Техника ] [ IV. Работа с методами] [ V. Организация данных] [ VI.? ]Что такое рефакторинг и зачем он нужен?     Собственно, рефакторинг — это процесс изменения кода с целью улучшения его внутренней структуры. При этом внешнее поведение системы не меняется, а возможность появления новых ошибок системы стремится к нулю. Читать дальше →..
Проблема длинного кода
длинный-длинный-длинный-длинный-длинный-длинный-длинный-длинный-длинный-длинный-длинный-длинный код в тэге <pre> заползает на правую колонку Чинится очень просто:pre {     white-space: pre-wrap; /* Последние Opera, Firefox, Safari, Chrome*/     white-space: -o-pre-wrap; /* Старая Opera (8?) */     word-wrap: break-word; /* IE 5.5+ */} А тем временем, баг с широкими картинками был исправлен в CSS самого Хабра. Теперь нет нужды в UserCSS.Обновлено: Баг исправлен. Рад видеть, что мои замечания..
Шаблоны проектирования → порождающие → Singleton
Достаточно часто бывают ситуации, при которых во всем приложении может быть создан только один экземпляр какого-либо класса. Это может быть класс для работы с базой данных, ну не знаю, класс глобального времени, главный класс самого приложения, в конце концов. Для подобных целей, в проектировании используется шаблон, который называется Singleton (одиночка). Мы рассмотрим реализацию класса той же работы с базами данных на языке PHP. Читать дальше →..
Давайте вспомним старые-добрые механические девайсы и попытаемся угадать их назначение.
В новом выпуске Популярной механики автор предлагает занятный конкурс. Вспомнить назначение старых добрых механических устройств, которые каких-то 20-40 лет назад были, для кого-то, нашим всем. Итак, поехали угадывать
jsForms
Добрый вечер, после написания предыдущего поста прошло уже, наверное, более трех недель, с тех пор мое направление немножко изменилось, да MVC хороший паттерн, но сейчас для js он еще слишком громоздкий. Мы стремимся выбрать более прозрачные и тонкие решения, которые бы позволяли видеть как все работает, вот почему мне нравится jQuery, он вводит тот самый минимум, который позволяет абстрагироваться от типа браузера, но при этом он не убирает ощущение того, что ты пишешь именно на js. Вот почему ..
PhpMathPublisher — математические формулы в HTML
В одном из проектов возникла необходимость использования сложных математических формул в тексте. Вариант использования редакторов формул наподобие Microsoft Equation с последующим сохранением в виде картинки не подходит, так как необходима возможность легкого редактирования существующих формул. Решение нашлось в виде PhpMathPublisher. Подробнее под катом..
ʇxǝʇ dılɟ
Наткнулся на забавный онлайн-сервис — в одном поле пишется текст, в другом автоматом появляется этот же текст но повёрнутый на 180 градусов, именно текст который при желании можно скопировать в буфер. Стала интересна реализация данной задумки и решил заглянуть в исходник. Даже и не думал, что это можно сделать, да с такой красивой реализацией на JS. Всё предельно просто: составляется хэш соответствия символов, например «n» перевёрнутая «u» и т.п., для символов у которых нет отражённых копий в а..
Нативный шаблонизатор
Я довольно давно уже использую нативные шаблоны, но, почему-то, у многих людей нативные шаблоны ассоциируются с конструкциями типа:$title = 'My title'; include('templates/index.html'); * This source code was highlighted with Source Code Highlighter.<html><head><title><?php echo $title ?></title></head> <!-- ... --> * This source code was highlighted with Source Code Highlighter. То есть, переменную определили и приинклюдили html-файл. Я считаю, что это в корне неверный подход. Почему? Во-п..
Посылаем SMS самому себе через Google Calendar
Наткнулся недавно на статейку SMS Уведомления + Логирование событий в Google Calendar на PHP И решил тоже сообразить данный велосипед Читать дальше →
Сброс стилей с помощью CSS Reset
Данная статья — первая из цикла на тему укрощения CSS. Сегодня мы рассмотрим технологию CSS Reset.Зачем это нужно? Каждый браузер устанавливает свои значения стилей по умолчанию для различных HTML-элементов. С помощью CSS Reset мы можем нивелировать эту разницу для обеспечения кроссбраузерности стилей. Например, вы используете элемент a в вашем документе. Большинство браузеров, как Internet Explorer и Firefox, добавляют ссылке синий цвет и подчёркивание. Однако представьте, что через пять лет ..
Паттерны дизайна веб-форм: формы подписки
Это перевод довольно новой статьи, которая вышла 4 июля 2008 года. Если вы уже читали ее, то навряд ли найдете что-то новое, но для тех, кто не знаком с оригиналом в статье найдется масса интересного. Сначала я хотел перевести и подписи к картинкам, но позже понял, что не стоит этого делать, так как статья ориентирована на грамотного читателя, который способен сам определить простейшие фразы. UPD: Опубликована вторая часть статьи habrahabr.ru/blogs/ui_design_and_usability/45680/ Когда вы хотит..
О формате PNG. Краткий тест-драйв
Что такое PNG? PNG vs GIF. PNG vs JPEG. Жизнь после Photoshop'а или сжимаем дальше. Adobe Fireworks или PNG-8 с альфа-каналом. Вердикт. Осторожно, много картинок! Все кликабельны. Читать дальше →
Глава 3. Оживляем страницу с jQuery
Очередная глава из книги «jQuery in Action» (авторы Bear Bibeault и Yehuda Katz). Прежде всего извиняюсь перед читателями за столь большой промежуток между публикациями глав. Но все-таки я это сделал, чему, конечно же, рад. Надеюсь, что и вы тоже не останетесь равнодушными. Итак, продалжаем. Читать дальше →..
Стилизация элементов формы — подборка решений
Не так давно zhendalfписал про стилизацию инпута выбора файла и, судя по комментариям, статья понравилась. Предлагаю подборку решений, с помощью которых можно стилизовать любой элемент формы — чекбокс, радиобаттон, простой инпут или селект. Читать дальше →
Кеширование обычными средствами
Сегодня решил сделать то, что собирался уже давно — поставить таки кеширование скриптов у себя на сайте. Все скрипты перед отдачей пользователю собираются в один файл и сжимаются GZIP'ом — все вроде по-уму, но есть проблемка… Браузер отчаянно не хотел кешировать этот выходной скрипт. Опытным путем было установлено, что PHP устанавливает хидеры запрета кеширования при использовании функции session_start(); Читать дальше →..
БесКликовость для всех
Прочитав недавний топик про сайты сделанные по бескликовой технологии подумал а почему бы не сделать скрипт для GreaseMonkey, чтобы по всем сайтам можно было так перемещаться. Читать дальше →
Безопасная загрузка изображений на сервер. Часть вторая.
Это вторая часть перевода. Начинать прочтение лучше с первой. Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg..
Безопасная загрузка изображений на сервер. Часть первая
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик. Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Бло..
Создаем простой tooltips с помощью CSS и jQuery
CSS tooltips очень популярны в современном веб дизайне, и вопреки широко распространенному мнению их довольно легко создать, особенно с помощью различных популярных javascript-framework-ов. Вы, конечно, можете использовать стандартный плагин, но чтобы сделать простой tooltips, Вам достаточно написать всего 10 строк кода jQuery и CSS. Итак, приступим. Прежде всего обратите внимание на структуру этого tooltips: это обыкновенная ссылка, которая будет выглядеть примерно так: Читать дальше →..
Вертикальный скрол c краткой информацией.
Когда то давно, не помню где я читал о том, что обычный скрол можно сделать более функциональным и предлагалось ряд решений. Мне эти идеи понравились и вот спустя много лет :)… Предлагаю свою реализацию на javascripte. Идея в том чтобы на фоне скрола показывать эскиз всего текста, а с помощью движка скрола видимую часть текста. При таком подходе сразу видно где находится картинка, заголовок, а где параграф. Читать дальше →..
Свершилось — Jevix 1.0
Jevix — система автоматического применения правил набора текстов (типографика) разработанная в ТМ™ для собственных проектов (Хабр, Кадабра, Дрибблер), с открытым исходным кодом, наделённая способностью унифицировать разметку HTML/XML документов, контролировать перечень допустимых тегов и атрибутов и предотвращать возможные XSS-атаки в коде документов. В связи с катастрофической нехваткой времени, не смотря на мои обещания, код версии 1.0 выложен только сегодня. Но зато он всё же вышел! Причём ..
Веб-формы «Светофор». Вариант реализации
Не так давно Gunger представил вариант раскрашивания элементов ввода текста на форме. Мне этот вариант, несмотря на критику некоторых юзеров, очень понравился и я решил что со временем сделаю свою реализацию. Время пришло и я рад представить свой вариант реализации написанный в виде JQuery-плагина. Я назвал плагин semaphore, по моему вполне удачное название. Плагин работает с регулярными выражениями для проверки валидности ввода. Плагин тестировался в Firefox 3.0.3, Internet Explorer 7 и 8b2, ..
Графические фильтры на основе матрицы скручивания
UPD: Заголовок изменен, что бы более соответствовать теме статьи В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие. Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно ..
14 бесплатных Web-приложений для совместной работы
«Люди не являются островами в открытом океане». Это высказывание успешно можно использовать особенно в том случае, если вы — дизайнер или разработчик. Несмотря на существование платных средств, как Basecamp и Zimbra, вы можете использовать ещё и бесплатные, которые, пожалуй, не уступают платным (а порой и обгоняют их). В этой статье мы рассмотрим 14 бесплатных Web-приложений для совместной работы в сети Интернет. Нужен вам простой редактор с самыми основными возможностями или полнофункционально..
Визуализируем данные на JavaScript
Развитие компьютерной графики подталкивает нас к изобретению всё новых способов графического представления данных. Разрабатывались различные прикладные программы для визуализации данных на локальных компьютерах. Однако всё изменилось с развитием интернета: в нём содержатся колоссальные объёмы информации, которые нам постоянно хочется представить как-то удобнее, дружелюбнее, понятнее. Что же мы имеем на сегодняшний день? Существует немалое число серверных библиотек и утилит, способных генерирова..
1000 замечательных иконок для веб страниц
Fugue Icons Отличный пак из 1000 иконок в размере 16x16 Эти иконки распространяются по лицензии Creative Commons Attribution 3.0 license.Ссылка на сайтСкачать пак | Посмотреть иконки (1199.25 КБ)
Пишем на картинках
В течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было. А вот надписей вроде еще не было. Значит будут. :-) Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами. Код и пример под катом..
Отладка скриптов в Zend Studio
Не так давно, я обратился к хабро-общественности за помощью в этом топике. Тогда мне не только не помогли, но еще и заминусовали карму. Посему разбираться пришлось самому… Читать дальше →
IE5+ и CSS3 — есть способ подружить!
Уверен, что найдутся на Хабре люди, которые уже знают о этом замечательном способе заставить «ненавистный» ИЕ понимать такие вещи, как min-width и ::after. Но лично я об этом способе не знал, и испытал настоящий восторг, когда наткнулся в сети на очень элегантное и эффективное на мой взгляд решение данной проблемы. Читать дальше →..
распараллеливаем выполнение задач с помощью stream_select()
Не так уж много кто знает о том, что некоторые задачи в PHP можно заставить выполняться параллельно — и для не этого не нужно прибегать к форкам. В PHP5 есть stream-functions, и среди них — stream_select(). Прочитав статью Cameron Laird (http://www.ibm.com/developerworks/opensource/library/os-php-multitask/index.html?S_TACT=105AGX44&S_CMP=EDU), каждый, кто еще этого не сделал, сможет научиться этой технике, я же в этом топике предлагаю вашему вниманию простой небольшой класс Parastreams, которы..
Основы основ: акции (часть два)
Итак, в предыдущем топике мы обсудили, что такое акции, зачем они нужны и откуда они берутся. Если вы не читали его и не ощущаете себя полностью знакомыми с этими вопросами — возможно, имеет смысл прочитать. А пока мы плавно переходим к тому, что с этими акциями происходит после IPO.Замечание автора: как и в предыдущих топиках, я не ставлю целью объять необъятное, и постараюсь лишь «на пальцах» объяснить некоторые базовые вещи. Если вы считаете, что информация не полна или не точна — я в высшей ..
Typeface.js — не текст, а картинка (JavaScript + SVG/VML).
Достаточно часто случается так, что для оформления той или иной страницы требуется использование нестандартного шрифта. Если текст не генерируется динамически мы можем просто заготовить картинку с надписью. В противном же случае на помощь придет PHP c функцией imagettftext. Для выполнения же такой манипуляции на стороне клиента пригодится скрипт описанный в этой заметке. Хочу знать как делаются такие делишки на стороне клиента...
Анимация в MooTools. Основы и не только.
В данном топике я собираюсь свести все свои знания об анимации в MooTools воедино и рассмотреть темы, более углубленные, чем просто примеры использования плагинов. Теоретическая информация справедлива не только для MooTools, но и для других фреймворков. Начинающим будет интересно ознакомиться с возможностями фреймворка, а продолжающим — понять, как все это работает :). В статье приведено много примеров, есть довольно оригинальные, вот некоторые из них: 1, 2, 3. Приятного вам чтения. Заглянуть во..
Основы основ: акции
На самом-то деле, это все, без исключения, каждое слово от первого до последнего — про акции. Акции, акции, акции — у человека, который прошел «веселые девяностые», МММы и прочие радости нашей с вами «тогдашней» жизни слово это вызывает не вполне положительную реакцию и понятное желание «никому больше никогда и ничего». А на самом-то деле ничего страшного в этом слове нет, и более того, в подавляющем большинстве случаев акции это то, что позволяет компании расти и развиваться. Именно акции и леж..
Подсветка текста в «TextArea»
Эта статья покажет, как в современных браузерах можно сделать подсветку текста в поле редактирования (WYSIWYG). Пример можно посмотреть, в google.docs или на некоторых продвинутых форумах. Уверен, многим это будет интересно :).Атрибут contentEditable и параметр designMode Именно contentEditable или designMode и делает для нас всю основную «грязную» работу. Если этот атрибут поставить в тег, то всё, что внутри тега, становится автоматически редактируемым. <html><head></head><body>   <div con..
Сборник хаков
В этом посте я постарался собрать все известные мне хаки для css. Многие могут усомниться в их надобности для нормальных современных браузеров, потому как большинство хаков всегда применялись только для IE, но этот пост скорее для любознательных :), в верстке хаки вообще лучше не использовать. Но так или иначе, раз они есть, грех о них не знать. В отличие от многих хаков для той же Opera, которые также будут обработаны и Safari, я немного изменил код и Opera 9.2, Opera 9.5 и Safari 3 увидят каж..
Первые, но нелегкие шаги во Flex
Не так давно я начал свое знакомство с Flex Builder 3. Поскольку с программированием я дружу давно и по-всякому, проблем с задачами типа «Hello, world», сортировка массива и «а как сделать, чтобы изображение по кнопке ползало» не было. Однако я встретился с задачами, которые при внешней своей простоте простых решений в среде Flex не имели. Именно о них и пойдет речь дальше...
Альтернатива firePHP
Пару недель решил взяться за изучение PHP и спустя какое-то количество времени отлаживать скрипты через echo стало неудобно. Вспомнил о существовании такой вещи как firePHP, почитал документацию, скачал, поставил, обрадовался. Ведь так классно отлаживать скрипты через консоль! Но увы, по непонятным мне причинам («X-Wf-» заголовки доходят, а все равно «no messages in Firebug Console»*), не заработал. Посмотрел в интернете — безуспешно, пришлось самому решать проблему. Читать дальше →..
JavaScript библиотека «Raphaël» — SVG расцветает, SVG и iPhone
Raphaël — это небольшая Javascript библиотека с простым синтаксисом для работы с векторными форматами: SVG и VML (для IE). Впрочем, как я успел заметить у разработчика возникают проблемы с VML (когда многие вещи в SVG делаются очень просто в VML не всегда есть простая альтернатива) Читать дальше →..
jQuery Timers
При проектировании интерфейсов пользователя когда-нибудь обязательно встанет задача использования таймеров, и в этой статье я хочу рассказать о замечательном плагине jQuery Timers, который значительно облегчит работу по созданию и применению таймеров в Ваших приложениях. jQuery Timers — это высокоуровневая абстракция методов setTimeout и setInterval. Используя jQuery Timers, Вы сможете «прикреплять» таймеры к элементам непосредственно в Вашем коде и использовать еще некоторые возможности. Как о..
120 dpi и шрифты в em
Шрифты в Em/% хороши всем — возможностью пользователей IE увеличивать кегль, заботой о пользователях, что предпочитают увеличивать размер шрифта браузера по-умолчанию, чтоб лучше видеть текст, да и просто являются нормой для профессиональных верстальщиков. Минусы: … их вроде как нет, но!А что если у пользователя разрешение экрана выставлено не в стандартное 96 dpi, а в 120? Сайт с увеличенными шрифтами смотрится уже не так красиво, как нарисовал дизайнер — ведь масштабируются только шрифты, а ..
Не понимаю, покажите мне как оно будет работать — тогда подпишу дизайн
Клиент капризный. Дизайн рисуется. Обсуждать навигацию приходится на бумаге. Клиент говорит: «Я не могу оценить как это будет работать. Сделайте демку!» Что же делать? Верстать долго, программировать «демку» вообще не хочется, учитывая что клиент может забраковать вариант. Взять в руки картинки, параметр usemap и склепать клиенту демо. У меня это заняло минут 20: пример демонстрации работы каталога. Красное кликабельно. Потом 10 минут поговорили с клиентом в аське и он согласился отказаться..
Список «битых» ссылок на ваш сайт
В наборе инструментов для веб-мастера Webmaster Tools появилось очень полезное дополнение. Теперь система не просто выдаёт статистику по количеству входящих ссылок в поисковом индексе, на которые с вашего сайта возвращается «ошибка 404», но и показывает, с каких сайтов идут эти ссылки. В табличке указана и дата, когда поисковый робот обнаружил битую ссылку. Обладая всей этой информацией, можно быстро исправить ошибку: поставить или редирект, или страницу с контентом по этому адресу. Фактически,..
Оптимизация MySQL запросов
В повседневной работе приходится сталкиваться с довольно однотипными ошибками при написании запросов. В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы. Читать дальше →
Лучшие графические редакторы, написанные на Flash
Лучшие графические редакторы, написанные на Flash Когда заходит речь о миграции с Windows на другие платформы или на веб-приложения, каждый раз возникает неоспоримый аргумент: но там же нет фотошопа! Этот легендарный графический пакет благодаря пиратам прижился, наверное, на подавляющем большинстве компьютеров в СНГ. И несомненно альтернативу столь сложной программе найти сложно. Но если откровенно, как в большинстве случаев используется вся мощь фотошопа? Изменить размеры, подкорректировать яр..
Как готовить презентацию проекта для инвесторов
За два месяца мы, проект Comindwork, провели 11 презентаций для инвесторов. Три из них — при личной встрече и на заседании украинского клуба бизнес-ангелов, UABAN, остальные 8 — в рамках ISDEF, форума независимых разработчиков программного обеспечения. Полезный опыт. Сначала презентация была в 10 слайдов. Теперь их 4. Как говорят англичане, «Less is more», то есть «меньше это больше». Не буду говорить, как я в действительности готовился. Скажу, как надо было :) Читать дальше →..
О fla-исходниках
По долгу службы мне часто приходится разгребать чужие исходники с анимациями. И иногда просто прихожу в дикий ужас от того, что происходит на временной шкале и в библиотеке. поэтому хочу поделиться с вами с некоторыми правилами форматирования кадров и организации символов, которые я вывела из своего опыта.1. Никогда не используйте ключевые кадры без крайней необходимости, особенно если это слой с фоном, который на протяжении всего ролика не меняется. Ну зачем, спрашивается, последний кадр делать..
Удобная оптимизация изображений на сайте
Сегодня наткнулся на очень удобный сервис: SmushIt.com, который занимается автоматической оптимизацией веб-графики на вашем сайте. Есть три варианта использования этого сервиса: — загрузка набора изображений на их сайт через браузер; — предоставление сервису списка url'ов изображений для оптимизации; — и наконец, вы можете установить плагин для Firefox и выбирать изображения для оптимизации прямо в браузере. Удачной оптимизации!..
Иногда они возвращаются… снова
Совсем недавно на хабре пользователем bur был опубликован пост про приятные ползунки TrackBar. Они мне понравились своей простотой и возможностью их использования в совокупности с jQuery. Чуть позже был так же пост про слайдер, который определял диапазон времени, но его порицали за большой вес и «тяжесть». Тогда у меня и родилась идея создать на основе TrackBar ползунков для выбора произвольного диапазона времени. Придумано – сделано. И сейчас я представляю свои наработки хабраобщественности. И..
Анимированный фон средствами jQuery или «Эй, а ведь круто! Как Flash!»
Занимательные поделки от Джонатана Снука. Данная статья будет интересна скорее новичкам, нежели более умудренным разработчикам, хотя мистер Снук достаточно авторитетен и его методики могут быть полезны всем. Любопытно... Что там у вас?!
10 jQuery скриптов для улучшения интерфейса
С рассветом WEB 2.0 получили развитие и javascript фрэймворки, позволяющие вебмастеру делать динамические элементы сайта гораздо быстрее и проще. Одним из таких фреймворков является jQuery, получивший огромную популярность за свою простоту и невероятно малый вес. Итак, представляю вашему вниманию 10 наиболее полезных скриптов jQuery для улучшения интерфейса вашего сайта. Читать дальше →..
Запрещаем менять настройки браузера
Вчера на работе мне понадобилось настроить браузеры Firefox на тонких клиентах нашего интернет-кабинета таким образом, чтобы пользователи не смогли изменить некоторые настройки в браузере и сидеть в интернете в обход прокси. Поиск в интернете и дальнейшая настройка сподвигли меня на написание данной статьи. Здесь я расскажу, как можно заблокировать некоторые параметры браузера от изменения шаловливыми ручками пользователей. Читать дальше →..
Ninja Editor
Здравствуйте. Вы будете смеяться, но я написал маленький текстовый редактор для сайтов. Он совсем маленький и совсем текстовый. Но он мне нравится. Встречайте, Ninja Editor Ну и картинка для привлечения внимания: Читать дальше →
MySQL Performance real life Tips and Tricks. Part 3-rd.
Решил продолжить цикл заметок по данной тематике. В данной статье особое место хотел уделить профайлингу MySQL запросов. Описать средства, которые предоставляются MySQL для профайлинга, и что нужно делать для определения узких мест запроса. Также, после опубликования первых двух статей я получил пару отзывов и вопросов, связанных с проектированием БД / расстановкой индексов / составлением запросов. На многие вопросы старался отвечать. С некоторыми из них поделюсь и в этой статье. Читать дальше..
Сделаем фотомодель по-быстрому!
Не знаю о чем Вы там подумали из названия, но знайте — я этого в виду не имел! :) Итак, продолжим становиться «Колумбами и открывать то, что до нас знали миллионы людей», кто вспомнит откуда эта почти-цитата (подсказка: про Интернет) тому 4 балла к гик-карме. Итак… Итак, в свободное время, когда я не создаю безумные проекты, не учу людей зарабатывать на стартапах, в это время я изучаю всяческие гик-технологии, в т.ч. одна из них прямо-таки у меня стала навязчивой идеей. А именно — взять свой ..
Что нового в MySQL 5.1
Осталось совсем немного времени до выхода MySQL 5.1. В статье будут рассмотрены изменения и новые возможности этой версии. Читать дальше →
Защита от DDos. Простой, но эффективный скрипт
Недавно озаботился поиском адекватного решения для защиты некоторых подконтрольных ресурсов от DDos атак. Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов. После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS-Deflate Читать дальше →..
jQuery для начинающих. Часть 2. JavaScript Меню.
В первой части были рассмотрены базовые принципы работы селекторов и приведены несколько примеров, в данной статье я постараюсь акцентировать внимание на реализации Javascript меню для Вашего сайта. Если Вам готовый код наглядней документации, то переходим от слов к делу, т.е. на страницу с примерами. Читать дальше →..
CSS верстка. Джедайские техники
CSS верстка. Джедайские техники
Пара хитростей ssh
Пара хитростей которые я использую при работе с ssh Читать дальше →
Иконки для блоггеров (RSS + сервисы)
Нашел в англоязычных блогах интересные иконки для блогов и решил поделиться с общественностью. Вроде по рунету они еще не «гуляли», поэтому скачиваем на здоровье. скачать и почитать об установке этих иконок
Интересные возможности языка PHP
В данной статье я хочу рассказать о интересных, но не очень распространенных базовых возможностях языка PHP. Все, что написано далее в том или ином виде присутствует в документации к PHP в разрозненном виде. Автор вполне отдает себе отчет в том, что большинство профессиональных разработчиков все это отлично знает, но новички могут узнать что-то новое. Содержание статьи имеет мало общего с моей прошлой статьей про использование выражений в PHP. Речь не идет об усложнении кода, скорее наоборот. Ч..
Коллекции иконок? Легко! Тысячи иконок в сетах.
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко. Читать дальше →
Использование выражений в PHP
В данном тексе я лишь обращаю внимание на некоторые возможности языка PHP. Я не предлагаю их использовать, так как это в некоторых случаях существенно усложняет читабельность кода и приводит к сложностям при отладке. Однако описанные мной подходы в ряде случаев существенно позволяют сократить код. Выражения — это краеугольный камень PHP. Почти все, что вы пишете в PHP, является выражением. Самое простое и точное определение выражения — «все что угодно, имеющее значение». (с сайта php.net)UPD: С..
Unobtrusive JavaScript
Цель статьи — показать, что из себя представляет «ненавязчивый Javascript», для чего он нужен, и чем он лучше «навязчивого» Javascript. В рунете я подобных статей не встречал (может они и есть, но мне на глаза не попадались и немного погуглив, я тоже ничего не нашел), а как показывает практика — очень многие не знают, что это такое и как этим пользоваться. Читать дальше →..
CakePHP. Разделение доступа без компонента ACL.
В данный момент я пишу систему на связке CakePHP и MS SQL. Сначала попробовал использовать стандартный компонент ACL, но выяснилось, что CakePHP не полностью поддерживает MS SQL (по крайней мере в этом компоненте). Поэтому пришлось придумать следующий метод разделения доступа. Читать дальше →..
60+ надстроек для Gmail
Обожающий списки Mashable опубликовал недавно 60 с лишним надстроек для Gmail. Я долго ждала, когда его переведут на русский, но, несмотря на всеобщую любовь к этому почтовому сервису, так почему-то и не дождалась. Эх, все приходится делать самостоятельно! :-) Читать дальше →
24 способа повысить эффективность поиска в Google
Листая lifehacker.com, я наткнулся на интересную статью о том, как можно более эффективно использовать поисковый сервис Google. В принципе я не ожидал встретить в ней чего-то принципиально нового для себя, тем не менее после прочтения результаты превысили мои ожидания. Думаю, эта статья может оказаться полезной для многих (ко мне чуть ли не каждый день обращаются люди с вопросами, которые можно решить элементарным поиском за две минуты). Читать дальше →..
MySQL Performance real life Tips and Tricks
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL. Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь. Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье. В последнее время приходится достаточно часто заниматься оптимизацией производительности сайтов. И как правило «бутылочным горлышком» в производительности работы этих сайтов является именно БД, ошибки как в архитектуре так и в ..
ТОП 10 самых раздражающих факторов для программиста
Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее раздражающих вещей для программиста. Поскольку он был на английском — решил перевести текст и несколько адаптировать к нашим реалиям…ТОП 10 самых раздражающих факторов для программиста Читать дальше →..
GenericObject
<?php/*** Пример реализации Generic-класса* * Возможности:* 1. Осуществляет доступ к параметрам класса через методы get* set* (accessors/mutators)*     Пример: $object->setName('Dima'); $object->getName();*     При изменении стандартного поведения метода (добавление дополнительной логики) *     можно просто определить его в классе при этом не изменяя интерфейс класса.* 2. Поддерживает встроенную валидацию данных с возможностью использовать или заранее *     определенные типы данных (numeric, str..
Советы для разработчиков CMS и фреймворков на PHP
Уже не раз сталкиваюсь с подобной проблемой, когда люди приходят и просят помочь в решении проблем распределения нагрузки при внезапном возрастании аудитории их сайтов. Ну и самое трудоемкое в данной проблеме — это самописные CMS-подобные системы, которые иногда приходиться переписывать полностью. Я не буду вдаваться в подробности распределения нагрузки, а отпишу лишь основные правила при соблюдении которых Ваша CMS будет легко масштабироваться. Читать дальше →..
Стили кодирования и рекомендации по написанию чистого кода
Прочитав пост, вспомнил, что когда-то сам для программистов нашей компании писал такой документ. Может быть, он будет полезен кому-то еще? Читать дальше →
Печатаем сайты — о незаслуженно игнорируемом правиле @media
Сегодня я попытаюсь рассказать о том, почему на современных сайтах не должно быть ссылки «версия для печати». Спецификация CSS 2.1 подразумевает, что наша страничка может выводится на следующие типы носителей:all — стили будут работать для любого типа устройства по мере его способностейbraille — для вывода на устройства, выводящие информацию азбукой Брайля для слепыхembossed — то же что и braille, но не для устройств, а для физических страницhandheld — говорит за себя — для устройств, ограничен..
Вращающееся облако тегов на javascripte
Недавно на хабре был топик, в котром было рассказано об облаке на флеше. Посмотрел, понравилось, решил повторить на javascript-e. Вот что получилось: demo зеркало архив. Создание облака происходит так:var cloud = new Cloud(    {         radius:200,       parent:document.body    });    cloud.addTag([              {href:«#», w:«2», text:«нло»},       {href:«#», w:«2», text:«общение»},       {href:«#», w:«1», text:«по»},       {href:«#», w:«1», text:«подкаст»}    ]    ); Не знаю, при..
jQuery для начинающих
jQuery — это замечательный Javascript Framework, который подкупает своей простотой в понимании и удобством в использовании. Но изучение надо с чего-то начинать, и лично моё мнение — лучше всего начинать с наглядных примеров, и они далее… Читать дальше →
Укрощаем колесо мыши и создаем полноценный scroll bar средствами JavaScript.
Cоздаем scroll bar, который можно не только двигать методом drag&drop, но и скроллить колесом мыши, обходя все подводные камни в различных браузерах.
wysiwyg своими руками
Существует куча платных\бесплатных визуальных редакторов на любой вкус и цвет. Но что, если они работают не во всех браузерах, Вас не устраивает дизайн или функциональность, или просто душа лежит к написанию своего собственного? Ответ на вопрос, как это сделать — Читать дальше →..
Как найти нужный шрифт, не зная его названия?
Я уверен, что у любого дизайнера был такой момент, когда он видел где-то какой-то шрифт, который так мог бы пригодится в проекте, но… что за шрифт?.. Ответ на этот вопрос затаился в глубине Вашего сознания, либо в глубине Вашего «незнания» (что разумеется простительно). В этой статье мы рассмотрим несколько ресурсов, которые могут помочь вам в идентификации понравившегося шрифта. Конечно, нельзя рассчитывать, что эти источники дадут вам 100 процентную уверенность в том что вы найдете нужный ш..
Важность факторов, влияющих на ранжирование сайта в Яндексе
Мною был организован опрос среди опытных SEOшников на тему сабжа. Надеюсь — оцените. Факторы с важностью по 10-и бальной шкале в картинках (чем больше — тем важнее): Остальные графики спрятал под кат. Читать дальше →
Польза кеширования данных. Пример из реальной практики.
С появлением и развитием memcached-подобных систем в архитектурах веб-приложений появилось еще одно звено, а именно кеш-серверы. Обычно это машины с большим объемом оперативной памяти, в которой хранятся заранее подготовленные данные. Это могут быть результаты сложных запросов к БД или же отрендеренные динамические части страниц сайта. На самом деле, кеш, как и любая другая система, может использоваться как угодно, чтобы удовлетворить нужды приложения. Суть кеширования проста...
Расширение файла средствами PHP
Получить расширение файла — не самая сложная задача. Но подходов к ее решению может быть несколько. Давайте попробуем рассмотреть несколько возможных вариантов и понять принципы их работы. Считаете, что вопрос пустяковый и все тут просто как 2 пальца? Может быть, только недавно мне встретилась занятная бредострочка с толстенным регулярным выражением и все для того, что бы просто получить несколько символов в конце строки после последней точки. Зачем? Итак, начнем с пяти наиболее распространенны..
Результаты \"Extend Firefox 3\"
Mozilla объявила о завершении конкурса «Extend Firefox 3». Напомню, что это уже второй конкурс среди разработчиков расширений (результаты прошлого этапа). На этот раз увеличилось количество номинаций — с одной до трех. Итак, победителями стали: Читать дальше →
Что такое полиморфизм на самом деле. В PHP он тоже существует.
Написать этот пост побудила недавняя статья о полиморфизме. Она вызвала много споров, но знающие люди понимают, что автор написал скорее о наследовании и о переопределении методов, чем о полиморфизме. Не буду говорить ни хорошее ни плохое о той статье, а просто расскажу, что такое полиморфизм на самом деле. Дабы начинающие php-программисты не остались в заблуждении. Читать дальше →..
Полиморфизм для начинающих
Полиморфизм — одна из трех основных парадигм ООП. Если говорить кратко, полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового. Для тех, кто не особо сведущ в ООП, это, наверно, звучит сложно. Поэтому рассмотрим применение полиморфизма на примере. Читать дальше →..
База классификаторов
Прочитав этот хабратопик я решился, наконец, рассказать хабраобщественности о своем некоммерческом стартапе и вообще открыть к нему доступ. Этот проект сделан программистами для программистов. Суть его проста – все классификаторы на одном сайте. Каждый классификатор может содержать несколько таблиц. Содержание любой таблицы можно посмотреть прямо на сайте или скачать классификатор целиком. Для скачивания доступны следующие форматы: XML, SQL-дамп или просто в формате Excel. В дальнейшем к профи..
Мысли о разрешении экрана. Год спустя
В последнее время при разработке сайтов все меньше и меньше учитывается разрешение 800х600, что само по себе не удивительно, если взглянуть на статистику. Соответственно либо сайты оптимизированы под 1024х768 и выше, либо они «резиновые», что встречается в реже. Ситуация закономерная и соответствует развитию рынка мониторов и стремлениям дизайнеров/разработчиков. Я уже размышлял над этим год назад. Так вот, год спустя, мои мысли приобрели немного другое направление. Читать дальше →..
Хватит изобретать велосипеды!
Здравствуйте, уважаемые хабрадевелоперы. С вашего позволения я немного пофилософствую на тему развития нас, как сообщества девелоперов, использующих замечательный язык PHP. Заранее скажу, что многие могут не поддержать мою точку зрения и я буду рад обсудить это в комментариях. Итак, приступим…Немного истории Так исторически сложилось, что PHP считается простым языком. Изначально он создавался для быстрого написания небольших динамических веб-приложений низкоквалифицированным (читай — неопытны..
Перевод туториалов Google Maps API
Левшин Олег (LevshinO ) в своем блоге поделился с нами переводами статей с официального сайта гугла, объясняющих принципы работы с Google Maps API. На данный момент выложены следующие переводы:Перевод №1: Создаем Вашу первую карту Перевод №2: Использование средств отладки Перевод №3: Использование связки из PHP и MySQL совместно с Google Maps Олег планирует перевод всех одиннадцати статей этого цикла...
Хитрости создания стартапа: что нужно помнить на ранней стадии
Статья Michael Cerda о том, чего не стоит забывать на этапе создания стартапа. Уровень подготовки читателя: низкий — средний. Вот список вещей, которые вы должны иметь в виду на ранних стадиях создания стартапа, составленный по мотивам набитых шишек. Продукт: ваш продукт должен быть обезболивающим, а не витаминами. Убедитесь, что он решает проблемы или удовлетворяет потребности. Он не должен быть чем-то, необходимость чего вам каждый раз приходится объяснять, ссылаясь на какие-нибудь основны..
Искусство тратить минуты, экономя часы
Перевод статьи «The Art of Spending Minutes to Save Hours». Радостные часы прошлой пятницы я провел, выслушивая признания своей коллеги по поводу ее абсолютной неприязни меню «Пуск» Windows Vista. «Система организована неверно. Нужные мне программы глубоко зарыты, а все удобные места занимают никогда мной не используемые. Я столько времени трачу, копаясь в меню,» — жаловалась она. «Но ты можешь просто переупорядочить их,» — ответил я. Она опустила глаза: «Знаю. Кто-то мне уже говорил это, но я ..
Полезные советы от инвесторов
Однажды одному венчурному капиталисту из крупного европейского фонда надоело каждый раз сталкиваться с одними и теми же ошибками и недочетами предпринимателей, которые они допускают в процессе общения с инвесторами. Задавшись целью сократить количество неловких моментов в процессе общения со стартапами, он описал короткими тезисами основные пункты, которые часто бывают непонятны стартаперу, особенно неопытному. В итоге получился своеобразный сборник полезных советов, перевод которого я представл..
Когда критическая ошибка приносит радость…
Прочитав недавно на пьяную голову «Обработка ошибок и исключений в PHP», решил применить полученные знания на практике. Честно, ещё 6 часов назад не знал, куда это меня приведёт, но в итоге теперь мои скрипты при ошибка зажигают вот такой симпотный экран: Хотите узнать, как я этого добился?..
Стилизация файл-инпутов
Привет. Сегодня я хочу вам рассказать о том, как можно изменить внешний вид файлового инпута. Дело в том, что изменение внешнего вида инпутов, как правило, не вызывает трудностей, но этот вид инпутов отличается от остальных. В первую очередь это связано с безопасностью, во вторую с тем, что каждый браузер по своему отображает этот элемент, и на это почти нельзя повлиять. Читать дальше →..
Как правильно работать с фрилансерами
Мой опыт показывает, что больше всего вопросов у людей возникает по поводу работы с фрилансерами без оглядки на то, что фрилансер пропадет или элементарно «кинет». Действительно, довольно актуальный вопрос для заказчиков. Никто не хочет терять свое время и связываться с недобросовестными фрилансерами. Иногда мне задают вопросы в духе «как вообще можно работать с командой фрилансеров? Ведь они же постоянно пропадают/срывают сроки и т.д.». На самом деле — работать с фрилансерами — не так сложно..
Пишем свой XML-парсер
ПредысторияРешив запустить небольшой сервис на подаренном мне хостинге, оказалось, что там нету ни одного xml-парсера: ни SimpleXML, ни DOMXML, а только libxml и xml-rpc. Недолго думая, я решил написать свой. Мне требовался разбор не сложных rss-лент, поэтому хватило достаточно просто класса xml => array.[1] Но для интересной статьи этого было явно не достаточно, поэтому сейчас мы напишем свою замену для SimpleXML. А заодно пробежимся по многим интересным возможностям PHP 5.Постановка задачи Д..
rdTree — DHTML-дерево на MooTools
Многим разработчикам рано или поздно приходилось иметь дело с древовидным списком, который нужно включить в проект и представить пользователю в удобном дизайне. Это может быть help, справочная информация, быстрая навигация по админ-панели, древовидное меню и т.д. Пользователю такая организация навигации понятна, так как она реализивана во всех операционных системах. Поиск хороших решений неприменно приводил к красиво оформленным и хорошо документированыи коммерческим библиотекам, например Zapa..
39-й способ скругления блока. Один тэг, одна картинка.
Пару дней назад наткнулся на статью про 38 способов скругления блоков. Очень понравилось. Однако там я не встретил способа, которым пользуюсь уже около года. Он не требует лишних тэгов и требует загрузки только одной картинки (спрайт). Работает во всех современных баузерах и IE6+ Читать дальше →..
pChart — строим графики и диаграммы на PHP
pChart — это PHP-библиотека для создания графиков, гистограмм и диаграмм. В отличие от большинства схожих библиотек, pChart бесплатна (распространяется под GPL лицензией). Из бесплатных главный соперник — Google Chart API. Помимо класса, который рендерит изображения, есть классы для подготовки данных для построения графиков, а так же встроенный механизм кэширования. Несколько примеров работы pChart..
Верстаем пиксел в пиксел: кроссбраузерный аналог PixelPerfect
Довольно часто некоторые заказчики, отдавая макет сайта на вёрстку, требуют попиксельно достоверной точности в разметке во всех браузерах. Проверить такое соответствие достаточно легко — нужно сделать скриншот сайта и совместить его с графическим макетом, например, в Photoshop'е. Но вот только в процессе вёрстки использовать такой приём не очень удобно. Что же делать трудяге-верстальщику?..
Подача ошибок. Часть 2. Речевой барьер
Читать дальше →
Удобная навигация по тэгам
Недавно надо было найти на своём ресурсе информацию по CSS, которую я постил довольно давно. Какой там был заголовок я уже не помню, какими словами писал — тоже. Днём ранее я выбирал вместе с Антоном Исайкиным Wiki при помощи wikimatrix.org, где реализована фасетная фильтрация и Wizard для выбора нужной системы по заданным критериям. Сама идея мне очень понравилась, а вот реализация — нет. Wizard был составлен вручную и естественно всех критериев не включал. Это навело меня на мысль, что навиг..
Лямбда вычисления и замыкание
В конце 2007 года был предложен патч, добавляющий лямбда функций (но без замыканий) для PHP. В ходе дискуссии в списке рассылки, было решено, что без поддержки замыканий, нет необходимости добавлять их в PHP. Тем не менее, интерес к этой теме привел к существенным изменением первоначального патча Кристиана Сайлера (Christian Seiler) и выпуску Дмитрием Стоговым (Dmitry Stogov) нового патча.В результате мы имеем замыкание и лямбда функции в PHP (5.3) Читать дальше →..
Графики, Plotr и MooTools
Пока для Javascript-фреймворка MooTools представлено мало качественных дополнений, а некоторые и вовсе не хотят работать с новой версией(1.2) последнего. Одним из таких дополнений является адаптация(ссылка 1, ссылка 2) библиотеки Plotr, позволяющей создавать линейные/круговые/столбчатые диаграммы. Читать дальше →..
Неблокирующая загрузка JavaScript
Примечание: ниже перевод статьи "Non-blocking JavaScript Downloads", в которой автор рассказывает о проблемах, связанных с подключением JavaScript-файлов, и возможной параллелизации их загрузок. Мои комментарии далее курсивом. Об авторе: Stoyan Stefanov является веб-разработчиком Yahoo! в группе Exceptional Performance и курирует разработку YSlow — инструмента по измерению производительности. Он также внес значительный вклад в разработку продуктов с открытым кодом, выступал на конференциях и ..
Забудьте про свой редактор! Используйте Vim!
Получайте удовольствие от процесса редактирования текста.Вступление Здравствуй, дорогой читатель! Данная статья не является ни руководством, ни учебником. В этой статье я лишь хочу рассказать Вам, что существует более эффективный инструмент для работы с текстовыми файлами. Этой статьёй я хочу вдохновить Вас на то, чтобы, поборов глубоко вросшие в Вас привычки, Вы попробовали совершенно другой, не похожий ни на что, метод работы с текстом. Читать дальше →..
Заключаем договор на создание технического задания
Кому интересен договор на сайт, смотрим тут: Договор навороченный, Договор простой (удален автором). Этот топик про более редкую ситуацию, когда перед собственно проектом нужно сделать ТЗ, а это большая и серьезная работа. На нее нужен договор и цена. Читать дальше →
JQuery: Пара сотен плагинов в одной заметке
Итак… Прошу в мир JQuery Читать дальше →
Как российскому стартапу преодолеть «Долину смерти»?
На конференции Office Developers в феврале Билл Гейтс 43 минуты презентовал продукт старт-апа Xobni (Inbox наоборот, плагин к Outlook). Сейчас Microsoft ведет переговоры о покупке компании за $20-30 млн., а незадолго до конференции Xobni стал выпускником YCombinator. Еще одной «историей успеха» этой программы. YCombinator – пожалуй, самая успешная и известная из предпринимательских программ. При инвестициях до $20тыс. в компанию за 5-10% собственности некоторые из ее выпускников показали фанта..
В поисках идеала
Раз пошла такая пьянка, то и я, в свою очередь, решил представить на суд общественности свой вариант макета, который, как мне кажется, находится очень близко к идеальному. И вот что у меня получилось в итоге?
Два в одном
Что будет если объединить две проблемы, связанные с версткой? Все мы в глубине души надеемся, что проблемы, возникающие при решении этих проблем сложатся. Однако, практика показывает, что они перемножаются. Если Вам интересно, как используя только дивы и валидные CSSки сделать страницу, которая «отбрасывает тень» (слева и справа) и при этом занимает не меньше экрана по высоте, добро пожаловать под кат! Читать дальше →..
9 статей на тему круглых кнопок
При создании дизайна постоянно сталкиваешься с необходимостью стилизованных под конкретный дизайн кнопок, а рисовать постоянно картинки не удобно, да и не практично. Здесь представлены 9 отличных статей на тему создания кнопок с изменяемой шириной
Ещё один способ разобраться с PNG в IE6
Существует несколько способов избавиться от глюка использования PNG картинок в Internet Explorer 6. Unit Interactive предложили свой вариант решения — Unit PNG Fix. Ключевые особенности:Малый вес, около 1 килобайтаРешает некоторые проблемы функциональность атрибута filterРаботает как с тегоми img, так и атрибутом background-imageАвтоматически запускаетсяПозволяет выставлять авто ширину и высотуПолностью бесплатен Скачать и посмотреть можно на странице Unit PNG Fix..
14 наборов качественных иконок для веб-дизайнеров
Ни один серьезный веб проект не может обойтись без качественных иконок. Некоторые дизайнеры рисуют их сами, некоторые ищут готовые. В этой статье мы представим 14 качественных наборов иконок длявеб-дизайна на любой вкус. В общей сложности более 1000 иконок в различных форматах..
Сумбур внутри, Эдисон и хреновые новости
Сегодня странный день, друзья. Сегодня я хочу поделиться с вами своими мыслями, которые вот уже некоторое время крутятся у меня в голове. Не нужно говорить что все это очевидно – для меня это откровения, черт возьми. Сказать и раньше я мог все, что угодно – сейчас я прочувствовал все это на своей собственной шкуре. Подтолкнул меня к этим мыслям тренинг, в котором я сейчас участвую – Самодисциплина от Андрея Парабеллума. Мысль первая. По-быстрому срубить миллион не выйдет. Никак. Никогда. И ни..
Обработка ошибок и исключений в PHP
Эта «небольшая» статейка является развитием темы затронутой в этой статье. Как известно, PHP зародился довольно давно и уже тогда возник вопрос, что делать с возникающими ошибками. Perl, который является несомненным прародителем PHP по умолчанию не имел какой-либо системы обработки ошибок. При возникновении любой ошибки сервер выбрасывал 500-ю ошибку и на этом все заканчивалось. Поэтому Warnings, Fatal Errors и Notices были настоящим прорывом в облегчении и без того нелегкого труда программиста..
JS-PHP MVC интерфейс — cобираем всё вместе
Для начала я хочу поблагодарить m007, который подал идею, как можно упростить Programmer-friendly интерфейс взаимодействия Клиент(JS)-Сервер(PHP), что и поспособствовало написанию этой статьи. Данная статья является заключительной, в которой я объединю JS-Шаблоны, PHP Model-controller, и добавлю Динамическое создание UI методов на JS (некоторые идеи которого были взяты из статьи m007). Тем самым мы получим на выходе неплохой и удобный фундамент для создания своих AJAX приложений. Читать дальше ..
css fix для различных браузеров
Представьте себе абстрактный разговор абстрактного заказчика с абстрактным верстальщиком :)— У тебя бага в менюшке, все наверх съехало, — говорит заказчик. — Посмотрел во всех браузерах, нету! Ты в каком смотришь? — говорит верстальщик. — В фаерфоксе. — Нормально все там, — говорит верстальщик, просмотрев сайт во всех версиях фаерфокса. — Осталось бага. Если это важно, то я с мака. Читать дальше →..
Консоль не так страшна. Руководство для новичков.
Тема консоли Linux очень обширна и охватить все сразу невозможно, поэтому сразу оговорюсь, задача данной статьи показать, а точнее дать направление начинающему пользователю Linux в сторону эффективной работы в консоли. Итак, поехали. Читать дальше →
Meteora
Уже имеется множество javascript фреймворков, инструментов, множество обсуждалось и тут, однако один очень интересный проект мы упустили из виду. Итак, встречайте Сам по себе это не самостоятельный фрэймворк, это набор виджетов (как их называют разработчики проекта). Сам пакет основан на MooTools. Однако имеет уже множество встроенных функций, таких как автокомплит, календари и т.п. Читать дальше →..
Улучшаем читабельность CSS-кода с помощью «стилевых гидов»
В W3Cast #3 Денис ( CurlyBrace) затронул тему использования styleguides, а у меня как раз уже была статья по этой теме. Поэтому я решил поделиться ей, чтобы показать наглядные примеры, демонстрирующих возможности «стилевых гидов». «Стилевые гиды» — это свод правил и соглашений, предоставляющих разработчикам информацию о структуре кода и принятых правилах оформления. Чаще всего используется группой разработчиков, при совместном участии в проекте или же для самодисциплины при разработке кода. Ес..
Разница между разметкой и представлением
Прочитав комментарии к заметке Firefox 3: * {display: block } bug, понял что заметная часть читателей Хабра, в том числе серьёзно занимающиеся веб-разработкой, не совсем верно представляют себе что-то же такое HTML, и почему теги отображаются так, а не иначе. Читать дальше →
WALL-E из бумаги своими руками
Думаю, многим понравился робот WALL-E, который только что вышел на экраны. Поэтому предлагаю на выходных сделать его модель из бумаги, которую можно скачать отсюда(PDF, 716KB).UPD: Ещё две версии модели! Читать дальше →
Шпаргалка по SEO
Собрал свои познания по SEO в сие нехитрое творение, думаю пригодится многим… Читать дальше →
Яндекс.Интернет, как верстали макет
Заглянув в код страницы internet.yandex.ru, увидел интересную штуку:< — NOTE: Не подключать в production --> <script type=«text/javascript» src="/js/common/columns.js"></script> Сам яваскрипт в файле оказался следующим Читать дальше →
Io programming language
По факту защиты мной диплома образовалось некоторое свободное время и я таки решил собраться и написать про эту чудесную штучку. Мы в последнее время видим всплеск интереса ко всяким языкам очень высокого уровня, с анонимными функциями, каррингом, мапом/фолдом, метапрограммированием и прочим блэкджэком. Слава богу, я считаю. Задачи усложняются и если люди применяют относительно низкоуровневые средства разработки зачастую наступает ситуация, когда набор абстракций оказывается мал в рамках реша..
12 приемов Карела Чапека или о «дискуссиях» в интернете
Я думаю, что ни один из читающих Хабр не избегал свидетельства или даже участия в дискуссиях, создаваемых тем или иным «авторитетом» Рунета. И, порой, не понимал, каким образом нормальные, вроде бы, люди с пеной у рта начинали участвовать в бесконечном сраче (извините). Так вот, великий чешский писатель Карел Чапек (придумавший, кстати, слово «робот») еще в первой половине прошлого века описал 12 правил, по которым ведутся подобные «дискуссии». Я думаю, многие из вас найдут, кого узнать по исп..
Проектирование баз данных. Паттерн Компоновщик (Composite)
Web 2.0 победоносно шагает по виртуальному миру. Социальные сети растут как грибы после дождя. Теперь в одном месте вы можете хранить свои фото, видеозаписи, писать блоги и слушать музыку. Все это можно комментировать, класть в избранное, копировать… Возможностей много, контент социальных сетей разнородный и разнообразный, и в этом их преимущество. А теперь представьте себе структуру БД какого нибудь «Вконтакте». Представили? И что вы видите? Множество таблиц с данными? А что еще? Множество та..
Быстрый-быстрый JavaScript
Примечание: ниже расположен перевод статьи "Serving JavaScript Fast", написанной года два назад, но нисколько не потерявшей своей актуальности. Автор предлагает достаточно большой комплекс мер для ускорения загрузки и работы CSS/JS-файлов. Ссылки и частичные переводы данной статьи достаточно широко цитируются в Рунете, однако, полностью она еще нигде не появлялась, а полезных советов в ней довольно много. Мои комментарии далее курсивом. Следующее поколение веб-приложений будет использовать ве..
Хороший AJAX
Большинство веб-разработчиков ограничивают себя в использовании аякса, потому что он, как известно, обладает некоторыми распространенными недостатками:Неиндексируемость динамически загружаемого содержимого поисковиками; Невозможность работать с URL (к примеру, добавлять в закладки динамически загруженный материал); Динамически создаваемые страницы не регистрируются в истории браузера, поэтому невозможно использовать клавиши «назад» и «вперед»; Но, на другой стороне весов имеются неопровержи..
Вышел релиз eZ Components 2008.1
Сегодня после обкатки релиз-кандидата вышел официальный релиз eZ Components 2008.1. Пересказывать changelog не буду, попробую сделать краткое введение в eZ Components. Итак, eZ Components — это высококачественный объектно-ориентированный web-фреймворк, написанный на PHP5, распространяемый по New BSD License. О нем уже писали на Хабре. Описываемая версия требует PHP >= 5.2.1 Читать дальше →..
Отладка PHP средствами Firebug
Отладка PHP-скриптов определенно недостаточно освещена в интернете. Потому многие, очень многие довольствуются print_r-ками. Очевидный недостаток такого способа — нельзя отладить AJAX, SOAP-сервисы, генераторы картинок и вообще скрипты, не отдающие непосредственно HTML-документов. Javascript-разработчики используют для отладки Firebug. Как я им всегда завидовал. Лепота — выделенная консоль, net-монитор, отладчик, и все это в любимом браузере. Так вот, нашел такое расширение Firebug — FirePHP. ..
Form Spam Bot Blocker: Защищаем Web-формы без CAPTCHA!
Вы так защитили свою форму что сами не всегда можете разобрать что нарисовала CAPTCHA? Вы установили хорошую CAPTCHA и все равно время от времени у себя в feedback-е читаете новости о удлинителях некоторых органов, дешёвой виагре и т.п.? Ну тогда предлагаю под другим углом взглянуть на проблему защиты Web-форм. Читать дальше →..
Применение Золотого сечения в Web
К сожалению, в наше время перенасыщенное рекламой, у многих сложился стереотип, что дизайн – это просто симпатичная и яркая картинка. Многие начинающие дизайнеры не задумываются, что прежде всего, дизайн должен быть эффективным, т.е. доносить до конечного пользователя конкретную цель. Сделав сногсшибательную картинку, иногда видишь, что все-таки в ней что-то не так. И это отражается на потребителе, когда продажи товара просто не идут. В отличие от конкурента, у которого совершенно пустая белая..
Краудсорсинг шрифтов
Краудсорсинг проникает в разные немыслимые области. Взять, к примеру, разработку шрифтов. Раньше этим занимались специализированные компании или вынужденно переквалифицированные дизайнеры, вроде сотрудников студии Лебедева. В результате мы получаем или закрытый продукт, недоступный для сообщества дизайнеров, или непомерно дорогой. Типичная стоимость коммерческого шрифта колеблется в районе $30-40. Слава богу, теперь всё меняется благодаря краудсорсингу. Разработка шрифтов оказалась отличным при..
Делаем красиво в AdobeAIR с ExtJS
Понятия не имею, почему до сих пор я не смотрел в сторону ExtJS. Обалдеть можно от того, как просто с этим фреймворком можно построить красивое приложение. Сегодня, мы создадим в AdobeAIR приложение с простым окном (Ext.Window): читаем дальше о том, как это сделать...
Кроссбраузерное использование data: URL
После статей картинки в теле страницы с помощью data:URL и data URL в IE мне написал один из читателей и предложил метод использования base64-кодирования в CSS-файлах под IE (как это сделать в HTML-файлах, описано в последней статье). После этого прошло пара месяцев, прежде, чем мне довелось взяться за рассмотрение этого метода более детально. Однако, после нескольких недель исследований удалось получить весьма обнадеживающую картину. О чем идет речь? IE (до версии 7 включительно) не поддержи..
Текстура для веб-дизайна
Последние время мне часто приходится искать разнообразные текстуры. Поэтому я решил опубликовать несколько сайтов с большим выбором текстур. Первым в этом списке я выбрал http://www.textureking.com/ — красивый и понятный дизайн сайта, а также хороший выбор текстур которые разделены на 14 категорий. Следущим будет http://www.cgtextures.com/ — огромное количество текстур и их категорий (вожможно он и получше textureking :), вам решать. Читать дальше →..
Алгоритм кубика Рубика сократили до 23 ходов
Максимальное количество ходов, которое требуется для сбора кубика Рубика, сокращено до двадцати трёх. Эту математическую задачу решил стенфордский выпускник Томаш Рокицки. Разработанная им стратегия была запущена на вычислительной станции, которая подтвердила правильность расчётов. Рокицки применил оригинальный подход. Вместо анализа отдельных ходов он взял в расчёт форму кубика и разбил её на набор его состояний. Всего получилось 2 млрд состояний (sets) с 20 млрд элементов в каждом. В этой кон..
Crop & Resize на страницах ваших сайтов
Пройдясь по хабра-поиску выяснил, что готового решения для кропа-ресайза изображений, на движке Javascript/HTML/CSS еще не предлагалось. Поэтому, позвольте представить вашему вниманию модуль для ваших сайтов, частично реализуюший функционал редактирования, распространенный на фото-хостингах.К делуВнешне задумка выглядит так: Читать дальше →..
Подгружаемые шрифты в HTML — мечта или реальность?
Многие согласятся, что стандартных Arial, Times, Verdana и т.д. зачастую не хватает. Тут на помощь вроде как должен прийти css правило @font-face, которое позволяет использовать свой шрифт. Но к сожалению нормальной поддержки браузерами нет. В качестве теста можно использовать http://www.alistapart.com/d/cssatten/stef.html. Реалии поддержки @font-face и возможные альтернативы..
Пользовательские поддомены
С появлением новых проектов в сети иногда кажется, что задача эффективной организации пользовательских поддоменов (bob.someblog.com) кому-то представляется непростой. На самом деле, этот вопрос решается за одну минуту.   Читать дальше →
5 советов IT-специалисту на примере вёрстки
Эпидемия советов по вёрстке добралась и до меня (спасибо Юре Артюху) — с удовольствием ими поделюсь. Данные советы довольно общие и в принципе применимы к многим IT-специальностям, — вёрстка здесь используется просто как пример. Читать дальше →
Рекомендации по созданию презентаций
Часто встречал ситуации, когда люди не понимают целей презентаций. Например, на научной конференции (!) девушка в научный доклад вставляла анимацию для того чтобы «доклад не скучно было смотреть». Для меня это было дико. Создавая презентации, или рецензируя чужие, я руководствовался собственными впечатлениями. Когда же наткнулся на документацию к LaTeX Beamer, был в восторге: там было не только подробное руководство по собственно латех-бимеру, но и общие рекомендации по созданию слайдов. Читая ..
15 примеров отличной типографики
Британский сайт I Love Typography, посвящённый типографике, опубликовал список с примерами отличной типографики. Этот список составлен по итогам II кв. 2008 года. Предыдущие «хит-парады» можно найти здесь и здесь. Каждый пример сопровождается кратким комментарием, а нажатие на скриншот ведёт на оригинальный сайт.Seed Conference Нет флэша, нет картинок, нет лишнего шума; просто хорошо стилизированный шрифт и хорошо написанный текст: реальное доказательство того, что с помощью только шрифта можн..
Вредная верстка
Как определить, что сайт сверстан качественно? Есть много статей о том, как делать хорошо, но совсем нет – о том, как делать не надо, ведь даже валидный и кроссбраузерный сайт может быть сверстан отвратительно.Из этой статьи вы узнаете:О плохих приемах современной верстки; О том, как даже не будучи профессионалом, за 5 минут определить плохо ли сверстан сайт или нет. Читать дальше →..
Видео об OpenID на русском
Давно хотел сделать подобный ролик, и вот, наконец дошли руки. За 3 минуты рассказывается о том, что такое OpenID и как начать им пользоваться. Рекомендуется для младшего и среднего интернет-возраста ;) Ютуб сж(ев)ал некоторые надписи, но разобрать можно.
Разгоняем CSS-селекторы: id против class, раунд второй
В первой статье цикла я уже рассматривал скорость работы движка, ответственного за создание и отображение HTML-страницы на экране. Однако, сейчас речь пойдет о несколько другом аспекте, нежели движок CSS-селекторов. Данная серия тестов была посвящена скорости создания отдельного HTML-документа. Методика Если в первых двух исследованиях ставилась под вопрос скорость распознавания браузером CSS-правил и их применение, то сейчас интересовал другой вопрос, а именно: как быстро браузер создает ..
Установка memcached под Windows за 5 минут (php5)
Многие разработчики используют Memcached, систему кэширования различных объектов в оперативной памяти. Устанавливается она очень просто Читать дальше →
Для «чайников»: Стандарт стопроцентно читабельных сайтов
Большинство веб-сайтов нашпиговано мелким текстом, читать который — сплошное мучение. Для чего? Нет никаких причин для того, чтобы ужимать так много информации на один экран. Это — просто дурацкое коллективное заблуждение, восходящее к временам, когда экраны были очень, очень маленькими. Поэтому…Не заставляйте нас изменять размер шрифта Мы не хотим постоянно менять настройки размера шрифта в браузере при посещении каждого нового сайта.Не доказывайте нам, что переполненные страницы лучше выглядя..
Подборка образовательных слайдов
Мне было интересно почитать, наверняка кому-то тоже пригодится.Как организованы кластеры Googlewww.slideshare.net/ultradvorka/google-cluster-innards Как строить дизайн системы с тэгами на Mysql, а также как проектировать базу MySQL с Master/Slave, чтобы распределять нагрузка на узлы веб-фермы (от майсиквелиста) — с примерами SQLwww.slideshare.net/jonathanbaij/building-a-tag-system-with-mysql Как оптимизировать вызовы Javascript/AJAX на сайтах (от гуглиста)www.slideshare.net/souders/web-20-ex..
10 лучших вебсайтов по обучению Photoshop
Вместо того, чтобы тратить впустую время, обыскивая сеть, в поисках хороших уроков по Photoshop, придерживайтесь этого списка.PS Hero — перейтиPSD tuts — перейтиTutorial 9 — перейти Читать дальше →
«Вредные» клиенты
Тем, кто занимается бизнесом, в частности веб-разработкой, не надо рассказывать о «вредных» клиентах. Мой комментарий на эту тему в одном из топиков вызвал положительные отклики, поэтому расскажу, что я думаю по этому поводу. А именно: как дифференцировать клиентов по «вредности»; как (и стоит ли) работать с «вредными клиентами». Читать дальше →..
Торжественная клятва
Я, гражданин Вселенной, почетный лентяй Денис перед всей Хабра-общественностью и своим шефом в частности торжественно клянусь: не посещать и не комментировать Хабарахабр в рабочее время (когда есть работа, конечно) с понедельника по пятницу с 10:00 до 18:00 по Москве. За нарушение данной мной клятвы пусть меня накажет НЛО! UPD: Исключением может быть поиск информации в рабочих целях с благословления шефа. Аминь...
Текст для сайта
Это правила, которые я держу в голове, когда пишу текст для сайта. Т.е. это не законы, не истина, это просто вещи, которые, как мне кажется, являются ключевыми для дальнейшего продвижения сайта. Они не абсолютно, я могу ошибаться и я, скорее всего, ошибаюсь. Это просто мое мнение. Итак, требования, предъявляемые мной для текста. Итак, пусть мы продаем компьютеры. Это я делаю, чтобы отойти от надоевшей цветочной темы. Мы не только продаем, но еще и собираем их, т.е. делаем на заказ. В соответств..
Делаем свой webfile
Отчего-то всегда хотел сделать свой сервис для загрузки файлов. Всевозможные slil/zalil не устраивали своей скоростью. ifolder — обилием рекламы. Пользовался не очень популярным (от этого он ни чуть хуже не становился) сервисом up.spbland.ru. Но это как-то не правильно. И тут я решил написать свой сервис. Не буду вдаваться в подробности и рутину, только концепция. Читать дальше →..
Yahoo: высокопроизводительные Веб-страницы. Часть 2
Примечание: ниже перевод свежей презентации от Yahoo! "High Performance Web Pages" с новыми советами по оптимизации. Yahoo известна своими статьями на тему оптимизации клиентской части и является мировым лидером в этой области. Однако, с уходом Julien Lecomte (ведущего специалиста отдела оптимизации, автора YUI Compressor) в Apple ситуация может измениться. Посмотрим. Мои комментарии далее курсивом. Я постарался, по возможности, расставить ссылки на упоминаемые в презентации инструменты и свя..
Фрагментарное кэширование в MVC веб-фреймворках
Наверняка большинство программистов, работающих с современными веб-фрейворками, реализующими схему MVC, сталкивалось с таким небольшим затруднением: кэширование фрагмента View. Хорошие фреймворки предлагают инструменты для полного кэширования страниц, фрагментарного, или кэширования экшенов. Недавно я посмотрел 90 выпуск подкаста Railscasts, посвященный именно фрагментарному кэшированию в Ruby on Rails и уважаемый автор решал проблему, как мне показалось, неоптимально. Опишу ситуацию. Мы в ша..
Способен ли Google остановить «утечку мозгов»?
Интернет-компании нового поколения, такие как Facebook, нарастили жирок и теперь составляют реальную конкуренцию Google. Эта конкуренция остро проявляется в борьбе за человеческие ресурсы. За последний год целый ряд ценных работников, в том числе ведущих программистов и топ-менеджеров, покинули Google. По мнению специалистов, компания на самом деле практически ничего не может сделать, чтобы остановить исход. Большинство опционов Google имели срок действия четыре или пять лет, так что теперь тал..
Маленькие плюсы интернет-магазинам
Очень часто я сталкиваюсь с вопросом, а как нам, таким красивым, что-то начать продавать, чтобы отвоевать свою долю рынка. Отвечаю: для начала надо понять, чем отличается или может отличаться ваша продукция от продукции конкурентов. Да, все так просто. После этого, возникает резонный вопрос, а если мы продаем электротехнику/цветы/подарки/книги/еду чем мы можем отличаться от всех остальных? Ведь у нас одинаковое абсолютно все? Это верно, просто на таком подходе далеко не уедешь. Читать дальше →..
Flowplayer — Open source Flash плеер
Flowplayer — Бесплатный видео-плеер для веба FlowPlayer — это Flash медиа плеер. Вы можете использовать его нв ваших HTML страницах чтобы воспроизводить видео файлы. «Это ваш персональный YouTube». Читать дальше →
GoogleTalk, part III (calls, VoIP & SIP)
Продолжаем экзекуцию нашего подопечного. Часть III. (см. также часть I и часть II) Сегодня мы поговорим о голосовых функциях GoogleTalk. Сразу после установки софтины и добавления контактов либо автоматически из гмэйловского ящика, либо вручную с помощью меню Add... мы имеем следующие возможности:посылать нашим контактом голосовые сообщения (голосовая почта) звонить таким же, как мы сами, пользователям GTalk отправлять им файлы отправлять им письма отправлять сообщения По умолчанию, пер..
GoogleTalk, part II (ICQ transports & some tips)
В предыдущей части я начал рассказывать про попытку миграции с одного IM-клиента на другой, а именно с Pidgin на GoogleTalk (написание происходило одновременно с изучением предмета). Что ж, принимаю поздравления, миграция успешно удалась! Если помните, оставались нерешёнными всего несколько проблем:ICQ/AIM интеграция, т.е. как научить GTalk общаться с ICQ-контактами создание «несколькострочных» сообщений, т.е. как выполнить возврат каретки не отправляя сообщение. раздельно изменять размеры ш..
GoogleTalk, part I (first steps, general setup)
Несколько лет подряд в качестве IM-клиента я использовал мультипротокольный и мультиплатформенный Pidgin и особо горя не знал. Софтина постоянно развивалась, исправлялись баги, добавлялись новые фичи, все меньше надо было плясать с бубном при настройке под себя. Но последние несколько релизов приносят сплошные разочарования, накапливаются мелкие глючки, не устраивают некоторые фичи и т.п. Я раздражаюсь. Тем не менее, для себя альтернативы до сих пор не видел (миранды и прочие qip'ы отметаются к..
Переключение режимов браузера с помощью Doctype
Чтобы работать как с современными страницами, написанными в соответствии с веб-стандартами, так и с тем, что осталось в наследство еще с конца 90-х, движки современных браузеров могут работать в разных режимах. Давайте еще раз посмотрим, что это за режимы и чем они переключаются. О чем эта статья Здесь описывается переключение режимов применительно к Firefox и другим браузерам на движке Gecko, Safari и другим браузерам на движке WebKit, Opera, Konqueror, Internet Explorer для Mac, Internet Exp..
Практический XSLT. Использование в качестве шаблонизатора
В сети доступно масса документации по языку XSL. Данный раздел не претендует на роль документации по языку, а лишь кратко, по шагам объясняет, как создать свой XSLT-шаблон. Описанная ниже схема успешно мною используется уже более 3 лет. По началу я к XSLT относился с большой опаской (особенно, когда разбирал чужие исходники), однако однажды поняв, что к чему, уже не представляю, как без него можно работать. Читать дальше →..
25 способов улучшить свой сайт
Эта небольшая статья поможет новичкам (и не только) оценить удобство собственного сайта и укажет основные недочёты, присущие многим сайтам. Ваши пользователи скажут вам спасибо =) Читать дальше →
Реабилитация XML/XSLT технологий
Здравствуй, Хабр. Некоторое время назад мы внедрили у себя в CMS наряду с уже имевшимся к тому моменту собственным шаблонизатором, еще и XSLT. Поскольку есть в XSLT большие и реальные преимущества и для разработчиков, и для хозяев студий, и даже для владельцев сайтов. Но реакция наших партнеров разделилась на противоположные мнения: одни давно ожидали этого и были рады появлению такой возможности, другие поставили под сомнение востребованность XSLT, приводя в качестве аргумента низкую производит..
Разгоняем CSS-селекторы. Часть 2: транзитивность
После статьи «Разгоняем CSS-селекторы: стоит ли?» было предложено рассмотреть несколько дополнительных случаев, учитывающих транзитивность селекторов (например, насколько быстрее a c, чем a b c, или наоборот). Данное исследование посвящено как раз разбору таких случаев. Методика Методика и уменьшение погрешности подробно рассматривались в первой статье, на них сильно много останавливаться не буду. Скажу лишь, что при наращивании количества классов и идентификаторов Opera стала значительно ..
Новые возможности HTML и CSS в Safari 3.1
Последняя версия web-браузера Safari включает в себя новейшие возможности HTML и CSS, имеющиеся в механизме Webkit.CSS Animation — трансформации и анимации на основе CSS (пример можно посмотреть — здесь).Поддержка HTML5 — новые тэги «video» и «audio», позволяющие с легкостью вставлять аудио или видео файлы в страницы. Пример можно посмотреть здесь. Читать дальше →..
Страны, регионы, города
Хочу поделиться базой стран, регионов и городов на русском языке. Возможно, кому-то пригодиться в своих проектах. В базе 106 стран, 922 региона и 10969 городов! Если кто не понял о чем речь, то вспомните, например, как на ВКонтакте указывается город: выбирается страна -> подгружается список регионов -> выбирается регион -> подгружается список городов Читать дальше →..
API ВКонтакте
Похоже, что ВКонтакте таки идет по пути Facebook. На сегодняшний день намечена презентация API. Группа посвященная API - http://vkontakte.ru/club1 Краткое описание API - http://vkontakte.ru/topic2817390 Очень интересно, что из этого выйдет. Насколько будут развиваться applications. Напомню, что в Facebook сейчас почти 19500 приложений - http://www.facebook.com/apps/upd: Уже готовые приложения можно посмотреть здесь: http://vkontakte.ru/apps.php?act=all PS: Так же ведется тестирование англ..
Сессии — всегда ли они нужны?
Хочу еще раз поднять тему использования сессий для аутентификации пользователей. Надеюсь услышать критику приведенного в статье метода с высоты вашего опыта. Читать дальше →
Сегодня выходит Apple Safari 3.1 для Mac OS и Windows.
«Самый быстрый барузер для двух платформ» опять обновился — до финальной версии, с русификацией. Ура, товарищи.
Миф о средней цене на сайт
Часто приходится слышать «вы знаете, нам контора „Пионерсайтострой“ предложила то же самое, но в три раза дешевле» или «мы тут провели маркетинговое исследование (ага, исследование, ни больше, ни меньше — прим. блоггера), ваша цена существенно выше средней». Читать дальше →..
Восемь НЕ отстойных приложений для Adobe AIR
Для Adobe AIR создано довольно много приложений любой тематики. Они пытаются принести на ваш десктоп больше интернета, и похоже у них получается. В этой статье мы рассмотрим несколько самых популярных AIR-приложений. Если вы не понимаете, что они представляеют из себя, то можете просто думать, что AIR — это среда для выполнения веб-сервисов на вашем рабочем столе. В большинстве случаев это приводит к созданию быстрых и привлекательных пользовательских интерфейсов. 1. Google AnalyticsGoogle Analy..
Как проверить пароль на предмет безопасности?
Как дать пользователю возможность проверить свой пароль на строгость и взломоустойчивость? Такой вопрос возникает в последнее время всё чаще, потому нарыл немного вариантов решения вопроса. Читать дальше →
CSS только для Mozilla (в том числе — FireFox)
У верстальщиков до сих пор возникает задача — подключить стили только для определённого браузера. Для IE проблема решаема — мало кто из верстальщиков не знает что такое conditional comments. Но исчезающе малое количество народу знает про per-site user stylesheet rules. Интересны они тем, что Mozilla FireFox поддерживет их через собственное правило — «@-moz-document». Вообще, это правило позволяет подключать стили в зависимости от домена, URL или его префикса. Для нас важно, что эти правила увид..
Tracing PHP Applications with xdebug
Добро пожаловать во вторую серию нашего повествования про xdebug. Установка xdebug и его базовые возможности были рассмотрены в первой серии. В данной статье мы рассмотрим трассировку программы. Предыдущая серия цикла Introducing xdebug Читать дальше →
Планирование деятельности интернет-магазина
Публикается мой месячный план, четырех с половиной летней давности. План измененный и сделанный с учетом того, что произошло в реальности. В реальности что-то получилось лучше, что-то хуже. Отражено. Относится к второму месяцу функционирования магазина. Товар изменен на цветы. Читать дальше →..
русские блоги о javascript
Я давно читаю много английских блогов по теме, но сейчас, в связи с появлением своего standalone блога, хочу влиться в русскоязычную блогосферу. К сожалению, пока что мне не удалось её найти. Обнаруженные блоги либо только мельком затрагивают javascript, либо вообще не ссылаются на коллег, либо производят несерьёзное впечатление. Поэтому обращаюсь к сообществу с вопросом: подскажите, какие русские блоги о javascript вы знаете или ведёте? А для затравки — список известных мне английских блого..
Интеграция Google Maps и WordPress 2.x
Эта статья является вольным писанием на тему плагина Google Maps for WordPress, находящейся по адресу http://avi.alkalay.net/2006/11/google-maps-plugin-for-wordpress.html. То, что посчитала нужным я добавила от себя, то, что не использовал — пропустила, так что это дело не является переводом в прямом смысле этого слова. Иногда становится очень полезно и приятно интегрировать Google Maps в раздел «контакты» того сайта, который ты делаешь. Я перепробовала несколько различных плагинов для WordPres..
Высокопроизводительные AJAX-приложения
Примечание: ниже перевод презентации "High Performance Ajax Applications", подготовленной ведущим специалистом из Yahoo (а теперь уже из Apple) Julien Lecomte. В ней автор освещает некоторые аспекты оптимизации как JavaScript-приложений, так и веб-сайтов вообще. В целом, советов много, и почти все, действительно, по делу. Однако, встречается и откровенная реклама Yahoo :) Мои комментарии далее курсивом. Часть 1. Разработка для высокой производительности Планируем и проектируем для высокой ..
Пишем AIR-приложение за 5 минут
Что-то технология Adobe AIR на хабре почти никак не представлена. На мой взгляд, напрасно, так как проект очень интересный. И не только тем, что позволяет создавать интернет-приложения для десктопов, но и тем, что технология мультиплатформенна. Недавно в своем блоге я написал статью о разработке приложений для AIR. Этой статьей мне хочется показать, что разработка для AIR — это просто. Мне стало интересно оценить трудоемкость разработки программного обеспечения для Air. На сайте Adobe доступен ..
Оцениваем проекты
Одной из основных моих активностей на работе является оценка проектов. И в данной статье я постараюсь поделиться своим опытом в данной области. Читать дальше →
Эластичные шаблоны
Большинство дизайнов ориентировано на использование фиксированных значений при верстке: ширина и высота блоков, размер шрифта. Это позволяет сверстанному шаблону «не разваливаться» при изменении масштабов просмотра и сохранять свойство кроссбраузерности. Однако в этом есть один большой минус – при большом разрешении экрана маленькие фиксированные блоки теряются на большой площади и остаются незамеченными. Тут даже не спасет «резиновая» верстка, т.к. сайт будет выглядеть еще более нечитабельным, ..
Текст в перспективе
Блуждая по сети, я не раз видела самые удивительные решения, основанные на применении CSS. И с каждым разом все больше верится, что возможности CSS безграничны :) Сегодня я увидела вот такую картинку: Правда интересный эффект? Давайте попробуем раскрыть секрет его реализации. Читать дальше →..
Profiling PHP Applications With xdebug
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-). В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, вр..
Generating PDF files with PHP and FPDF
Большинство web-сервисов экспортируют данные в разных форматах для дальнейшего использования. Данная статья о том, как экспортировать данные в pdf-формате. Хотя многие знают как это делать, я опишу кратко для тех кто не знает. Читать дальше →
Чёрточки: только ли тире, минус и дефис?
Однажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева. На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас. Читать дальше →..