Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

Скругленные углы в 3 div-a

Reading time3 min
Views4.4K
Есть много способов делать в верстке скругленные углы. И пока все браузеры поголовно не начнут поддерживать свойство border-radius, надо будет каждый раз думать о том, какой метод использовать в том или ином проекте.

Есть множество разнообразных методов — от использования подложек блоков фиксированных размеров и до создания уголков с помощью vml или svg. В этом топике я не буду рассматривать известные методы, так как информации по данному поводу предостаточно. Я попробовал создать yet another метод.

Сразу оговорюсь — мой метод не панацея, и ему свойственны несколько минусов, которые я опишу подробнее.
Читать дальше →

Компонент Dependency Injection

Reading time1 min
Views6.6K
Новый компонент от Symfony касается крайне важного паттерна проектирования — Dependency Injection. Честно говоря, я много про него читал, но на практике не очень видел как применить, и теория была для меня довольно абстрактной. Симфонисты и здесь выдержали фирменный стиль. К компоненту приложена книжка, которая начинается с главы «что такое Dependency Injection»? И шаг за шагом некоторый учебный класс рефакторится в элегантное решение. Чтобы показать, что компонент может использоваться не только с Симфони, в качестве примеров используются и классы из Zend-фреймворка. Жалко только, что книжку нельзя скачать.

Вот еще один пример использования этого компонента с Zend-фреймворком.

Хостинг php 5.3

Reading time2 min
Views668
Отслеживая блоги про веб-разработку, я вдруг обнаружил, что все ждут выхода некоего php-5.3. Естественно, это не могло не заинтересовать меня как хостера. Я заглянул в список новых возможностей… Очень подкупила обратная несовместимость. Я вообще считаю, что не надо тащить всякую древнюю муть. На сайте анонсированы более 100 багфиксов, а это значит, что десятки новых багов не дадут мне соскучиться. И совершенно невозможно было пройти мимо долгожданного оператора goto. Я сначала посчитал это ошибкой. Мне показалось, что компании с названием «Дремучий Лес» остро необходимо иметь в своём активе язык с таким оператором.
image

Вы не поверите, но первый раз собирал php «руками». Раньше-то всё из портов FreeBSD ставил. Собирать новую разработку руками — это, естественно, мечта админа. Особенно в выходные.

Забавный эффект был, когда, провозившись полдня с экспериментальной поддержкой апача, который всё понимает и молчит, я плюнул на неё и собрал с обычной. Всё работает. Уже потирая руки, я вдруг вижу… нет, вы даже представить себе не можете… phpinfo() обрывается ровно на половине. За 7 лет такое первый раз. Вот хоть убей — половина и всё тут. Решение пришло ночью во сне. Как таблица Менделееву. Оказалось, что как-то криво поддерживается sqlite2. Утро убил на поиски как его оттуда вычленить, оставив поддержку sqlite3.

И вот — бинго! php-5.3 установлен на хостинге на радость страждущим нового.
Как и ко всему архиновому, к этому бы присовокупить сиськи, но к сожалению не нашёл. Вот так всегда, в урезанном варианте…

Итак, php 5.3 уже прямо сейчас. Вы можете опробовать новый драйвер MySQl Native Driver, функциональное программирование через замыкания (closures) и выход из них оператором goto в свой namespace

P.S. А кто-нибудь может мне подсказать, зачем нужен open_base_dir в варианте PHP_INI_ALL?..
P.P.S. Теперь всё зависит от сисек, только от них.

Средневзвешенная система голосования

Reading time3 min
Views3.5K
Вступление. Эту статью написал мой друг — Семён Шторкин, владелец нижегородского сайта-коммьюнити для фотографов (фотогорький). Пока его, к сожалению, нет на Хабре, но попробую этим топиком заработать для него инвайт :)

Добрый день. Хочу поделиться с уважаемым хабрасообществом весьма объективной системой оценок и рейтингов, основанной на средневзвешенной системе с оценками по пятибалльной шкале.
Читать дальше →

Шпаргалка => Cross Domain AJAX. Dynamic script Tag Hack

Reading time2 min
Views5.6K
Так сложилось исторически (из-за соображений безопасности), что Javascript-обьект XMLHttpRequest, который лежит в основе AJAX, не может делать кросс-доменные вызовы. Это бесполезное ограничение: для злоумышленников не представляет особой проблемы, а для разработчиков создает некоторое неудобство. В следующих поколениях браузеров эту проблему обещали решить, но не раньше чем W3C хотя бы одобрит новые стандарты.

Есть море хаков чтобы обойти это ограничение, но самый популярный это Dynamic Script Tag Hack. Именно через этот хак организован доступ к многим API современных веб-приложений.

Читать дальше →

Jabber-to-Evernote Gateway

Reading time1 min
Views959

Преамбула


Какое-то время назад я писал о способах публиковать Evernote-заметки через джаббер. Способов тогда нашлось два: крайне медленный и неудобный (jabber -> tweet.im -> twitter -> evernote) через твиттер и неработоспособный (поскольку публичных траспортов не нашлось) через smtp-транспорт.

После таких неутешительных выводов я собрался немного с мыслями и написал своего джаббер-бота для постинга заметок в Evernote — его и представляю сегодня общественности.

Использование


Бот живет по адресу xmpp:evernote@neko.im. Для того, чтобы получить справку по командам, достаточно отправить ему сообщение с произвольным текстом (и добавить в ростер, чтобы он светил он-лайн статус) или сообщение с текстом «help» после регистрации. Для авторизации бота используется OAuth (из соображений безопасности пришлось отказаться от регистрации по логину и паролю).

Добавлю только, что элементы синтаксиса можно комбинировать в произвольном порядке: "(( Заголовок )) [[ Блокнот ]] Текст заметки" или "[[ Блокнот ]] (( Заголовок )) Текст заметки" — кому как удобнее. Также бот позволяет отправлять и заметку без текста (при этом заголовок обязательно должен быть указан).

Баг-репорты, конечно же, очень приветствуются.

Приятного использования!

P.S. Если хабрасообществу интересно, позже могу рассказать про процесс разработки и выложить исходники на python в соответствующем блоге — тем, кто собирается работать с Evernote API (и особенно OAuth), может пригодиться, потому что я почти не нашел хороших примеров на эту тему.

Средства создания горячих BackUp`ов MySQL

Reading time3 min
Views33K
Доброго времени суток. Недавно я задался вопросом о том, как делать горячие BackUp`ы MySQL-серверов — ниже компиляция из прочитанного. Заранее хочу сказать, что данный пост является скорее большой заметкой, чем полноценной статьёй. Я намеренно уклоняюсь от описания синтаксиса — на эту тему уже немало написано — я же ставил перед собой другую цель — составить краткий обзор основных методов с характерными особенностями:
далее

ООО «Снежинка» — Часть 3. Федеральный Закон от 30 декабря 2008 г. N 312-ФЗ Перерегистрация, Новые формы документов для регистрации

Reading time3 min
Views1K
С 1 июля 2009 года общества с ограниченной ответственностью будут действовать на основании единственного учредительного документа – устава. Учредительные договоры обществ с 1 июля 2009 года утрачивают силу учредительных документов. Все ООО с момента регистрации обязаны вести список своих участников. В него войдет информация об учредителях, включая данные об их адресах, сведения о принадлежащих им долях и их оплате, данные о долях, перешедших к обществу.
Обществам с ограниченной ответственностью необходимо внести изменения в свой устав. Сделать это нужно не позднее 1 января 2010 года. Изменения в устав вступают в силу с момента регистрации. То есть в срок, установленный в законодательстве, нужно успеть не только внести изменения в устав, но и зарегистрировать их. Поскольку 1 января 2010 года – нерабочий день, окончание срока переносится на первый рабочий день года.

Изменения в законодательстве прежде всего коснулись содержащихся в уставе сведений:
  • об оценке не денежных вкладов в уставный капитал;
  • о порядке совершения обществом крупных сделок;
  • о порядке и последствиях выхода участника из общества;
  • о действительной стоимости доли выходящего участника;
  • о процедуре перехода прав на долю или часть доли в уставном капитале общества;
  • о вопросах, составляющих исключительную компетенцию совета директоров (наблюдательного совета) общества, и т. п.

Читать дальше →

Adjustable soft II

Reading time3 min
Views628
В предыдущей статье я поднял некоторые проблемы, касающиеся использования проприетарного ПО. Позвольте вам предложить продолжение.

Как же нам получить идеальный софт, или по крайней мере найти направление, в котором двигаться? Влиять на проприетарное ПО весьма непросто, да и стимула никакого — даже если укажешь на ошибки, вряд ли заплатят. Но выход есть — программное обеспечение с открытым исходным кодом.

Крупный Open Source проект в разработке
Крупный Open Source проект в разработке

Читать дальше →

Google издевается над веб-сервисами Microsoft

Reading time2 min
Views4.1K
Инженер из компании Google весьма критически отозвался о технологиях Microsoft в области распределённой вычислительной инфраструктуры для веб-приложений.

Маленький скандальчик случился на конференции Structure 09, которая посвящена облачным вычислениям. Всё началось с выступления Наджама Ахмада (Najam Ahmad), главного менеджера по глобальным сетевым сервисам Microsoft. Он подробно рассказал, как Microsoft пытается увеличить производительность множества своих сервисов. Мол, проблема в огромном их количестве, так что невозможно подобрать настройки так, чтобы все эти сервисы одинаково эффективно работали на одной платформе. Приходится фрагментировать инфраструктуру, ставить разные серверы с разными настройками для отдельных приложений, таких как Messenger или Virtual Earth, и оптимизировать их по отдельности. Он подробно рассказал, как тщательно они сейчас оптимизируют Virtual Earth.

Сразу после этого слово взял Виджай Гилл (Vijay Gill), старший инженер по архитектуре из Google, и, как говорится, пропесочил конкурента по полной программе.
Читать дальше →

Slow Lori атака на веб-сервер Apache

Reading time2 min
Views6.3K
Slow Lori — это животное, живущее в юговосточной Азии и известное своей медлительностью и размеренными движениями. По нему была названа новая DoS и DDoS атака на веб-сервер Apache.

image

Данный тип атаки был обнародован специалистом по безопасности RSnake 17 июня и подробно описан на странице http://ha.ckers.org/blog/20090617/slowloris-http-dos

Атака заключается в очень медленной посылке все новых и новых HTTP заголовков в рамках одного HTTP запроса, никогда его не завершая.

Поскольку Apache выделяет ресурсы для запроса очень рано, то на один такой запрос тратится «полноценное» кол-во ресурсов. Такое же, как и для обычного запроса.

Как известно, Apache использует для обработки запросов или процессы или смесь процессов с нитями. Использование нитей позволит отсрочить смерть, но так или иначе Apache упрется в ограничение по памяти или ограничение, заданное администратором.

Что самое неприятное, Slowlori атака не оставляет никаких следов, кроме огромного количества открытых cоединений со статусом ESTABLISHED. Не будет никаких записей даже в access_log-е.

Первоначально разработчики Apache не очень активно отреагировали на сообщение RSnake в список рассылки, ответив ему что данная атака давно известна и является минусом не самого веб-вервера, а скорее TCP-стека. Однако, в дальнейшем разработчики веб-сервера Apache зашевелились и начали активно обсуждать пути решения проблемы.

Веб-серверы основанные на state machine не подвержены данной атаке. Таким образом простейшим способом обезопасить себя от Slowlori атаки является использование двухуровневой архитектуры, когда первым на пути является веб\прокси сервер, основанный на state machine, такой как nginx.

Другими возможными решениями являются Access HTTP фильтры в FreeBSD, использование хитрых правил на файрволе, которые, в то же время, могут отсечь и легитимных медленных пользователей.

Кроме собственно изменения архитектуры, разработчики Apache согласны в необходимости внедрения более мелких, локальных таймаутов. На данный момент в Apache 2.2 реализован один обший таймаут, влияющий на практически все IO действия.

Более подробную информацию можно получить в списке рассылки httpd-dev и в пока не открытой для публичного доступа статье на LWN.

Вышел PDT 2.1

Reading time1 min
Views740
image
Обновился популярный среди PHP-разработчиков плагин для Eclipse — PHP Development Tools

Из основных нововведений:
  • Eclipse 3.5 (Galileo)
  • Поддержка PHP 5.3 (неймспейсы, лямбда-функции, замыкания)

Официальный анонс
Страница загрузки

P.S. Теперь только осталось дождаться релиза PHP 5.3

Делаем скриншоты сайтов

Reading time3 min
Views17K
Бродя по просторам PHP документации случайно наткнулся на две функции: imagegrabwindow и imagegrabscreen. Они умеют делать скриншоты в Microsoft Windows.
Заинтересовало. Кончилось дело тем, что был написан скриптик генерирующий полный скриншот любого сайта.
Итак нам необходимы:

Читать дальше →

Подводные камни оператора сравнения

Reading time1 min
Views11K
Оператор сравнения (==) в JavaScript не является транзитивным. Переводя с математического, это означает, что из того, что a==b и a==c не следует, что b==c.

Простой пример:

var a = "строка";
var b = new String(a);
var c = new String(a);

alert(a==b); // true
alert(a==c); // true
alert(b==c); // false


В чём же дело? А дело в том, что переменные b и c — это объекты (причём разные), а a — примитивное значение (строковой литерал). Две переменных-объекта считаются неравными, если они ссылаются на разные объекты. При сравнении же примитивного значения и объекта используются другие правила — всё приводится к строкам и затем сравнивается.

Чем это чревато? Чревато очень трудноуловимыми ошибками. С точки зрения программиста примитивное значение типа string и объект, созданный из строки конструктором String(), практически неотличимы, и даже во многих книгах этот момент упоминается мимоходом, без конкретных примеров.

Аналогичная ситуация и с другими примитивными типами и соответствующими объектами, например, Number.

Так что будьте осторожны при сравнивании двух переменных!

Стартап-план

Reading time3 min
Views15K
Проанализировав многие бизнес-планы я пришел к выводу, что нужно их оптимизировать под интернет-индустрию. Поэтому я создал свой шаблон для написания бизнес-планов, модернизированный под интернет-проекты и назвал его Стартап-план. Собрал я его, опираясь на многие экспертные источники и свой опыт работы со стартапами.
Предлагаю Вам его оценить.
Читать дальше →

Своя веб-студия: от идеи до реализации

Reading time4 min
Views13K
Последнее время на хабре стали появляться истории об организации собственного бизнеса. Решил написать аналогичную историю нашей студии создания сайтов «Web++».
Как мы начинали свою деятельность, являясь студентами, откуда брали первые заказы и деньги? К вашему вниманию: краткий рассказ о формировании собственной студии создания сайтов.
Читать дальше →

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity