Как стать автором
Обновить
29
0
babai @babai

Пользователь

Отправить сообщение

Шаблонизация на стороне клиента — уже реальность

Время на прочтение2 мин
Количество просмотров27K

Предыстория


Я занимаюсь разработкой IFrame приложений для социальной сети ВКонтакте. Самый удобный способ навигации по приложению — это динамическая подгрузка данных, без перезагрузки всей страницы. Раньше я генерил html код который нужно отобразить на сервере, пока не встретил EJS — JavaScript Templates…

EJS — Embedded JavaScript


EJS оказался одним из самых удобных и подходящих мне шаблонизаторов. Он работает, как с одиночными переменными, так и с массивами (читай объектами), присутствует логика (if...else...).
Читать дальше →
Всего голосов 84: ↑76 и ↓8+68
Комментарии183

Обзор свежих материалов, октябрь 2010

Время на прочтение5 мин
Количество просмотров833
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрельмай-июньиюльавгуст, сентябрь.


Читать дальше →
Всего голосов 97: ↑92 и ↓5+87
Комментарии22

Уязвимость в стандартной функции glob() как угроза для FTP-серверов

Время на прочтение2 мин
Количество просмотров3K
Сайт SecurityReason сообщает об обнаружении опасной ошибки в реализации библиотечной функции glob() из стандартной библиотеки языка C (libc) на множестве платформ.

Эта функция предназначена для получения списка файлов, чьи имена удовлетворяют заданному шаблону. Ошибка заключается в том, что ограничение на выдачу функции, задаваемое переменной GLOB_LIMIT, не действует в случае задания некорректных путей в шаблоне. Такими некорректными значениями могут быть, например, «*/../*/../*foo» или «{..,..,..}/*/{..,..,..}/*bar». При этом вызов функции glob() может исчерпать всю доступную память процесса.

Особенную опасность данная ошибка представляет для (S)FTP-серверов, особенно с разрешенным анонимным доступом. Очевидно, запрос на листинг файлов с вышеприведенной маской приводит к скорому отказу в обслуживании FTP-сервера.

Уязвимости подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7, NetBSD 5.0.2, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC. Уязвимость пока что устранена только в NetBSD; компании и сообщества, занимающиеся разработкой вышеперечисленных (за исключением NetBSD) операционных систем, пока не дают никакой информации; именно поэтому уязвимость классифицируется как «0-day». Сообщается также, что vsftpd не подвержен уязвимости.

Желающим попробовать уязвимость в действии могу предложить набрать в bash консоли команду наподобие
ls ../../*/../*/*/../../*/*/*/*

Можно эксплуатировать, например, из PHP:
php -r 'print glob("../../*/../*/*/../../*/*/*/*");'

или Python
python -c 'import glob; glob.glob("../../*/../*/*/../../*/*/*/*")'
и из любого другого языка, обращающегося к этой функции.

Оригинальный отчет об уязвимости тут: securityreason.com/securityalert/7822
Всего голосов 87: ↑81 и ↓6+75
Комментарии50

Шпаргалка: кеширование картинок, CSS и JS в NGINX

Время на прочтение1 мин
Количество просмотров78K
Заметка для тех, кто не специалист в NGINX, а проблему нужно решить быстро.

Допустим, у вас на сервере стоит NGINX и вы хотите, чтобы вся статика кешировалась у клиента. В конфиге хоста NGINX пропишите это:

server {
listen 80;
server_name mysite.com;
...
# Задаем правила обработки статического контента (типов файлов можно поставить и больше)
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /path/to/document/root/; # Путь к корню вашего сайта
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}

Проверить можно в FireBug во вкладке NET: обновите страницу 2 раза и посмотрите код ответа. Если 200 ОК, то не работает. Если 304 Not Modified, то работает.

Неплохо ускоряет работу сайта.
Всего голосов 87: ↑52 и ↓35+17
Комментарии30

Динамические поддомены с использованием nginx+apache

Время на прочтение3 мин
Количество просмотров28K
Этот топик — очередной топик про реализацию динамических поддоменов на сайте, коих много в интернете и даже есть пара топиков на хабре.

Проблема в том, что этот вопрос везде освещается только с точки зрения перенаправления с поддомена в папку и вся динамичность поддомена заключается в том, что ты создал папку — поддомен у тебя заработал.

Иногда же требуется решение другой проблемы — например вынос на поддомен профиля пользователя и всего функционала, который с ним связан.

Например, у нас есть готовый сайт, на котором работают профили по такому url: www.example.com/users/username, и есть всякие дополнительные возможности (например www.example.com/users/username/contact и другие страницы, связанные с этим юзером).

И мы теперь хотим вынести все, что связано с юзером, на поддомен, например username.example.com, username.example.com/contact и т.д.)

Решения, которые были найдены в интернете, меня не удовлетворили по 2 причинам:
  • Не нашел решения как заставить ее работать, сохранив работоспособность домена www.example.com
  • Все найденные решения подходят только для перенаправления в папку и не работают если дальше должны работать какие то правила


На нашем сайте стоит nginx над апачем (как и на многих других), поэтому пришлось изобретать велосипед самому, используя эту связку (nginx+ apache, благо сейчас почти на всех крупных сайтах стоит проксирующий nginx над апачем)

Читать дальше →
Всего голосов 68: ↑58 и ↓10+48
Комментарии50

Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1

Время на прочтение4 мин
Количество просмотров135K
Итак, все чаще в кругах, работающих с документами все чаще звучат слова «электронный документ» и, связанное с ним почти неразрывно «электронная цифровая подпись», иначе — ЭЦП.

Данный цикл статей предназначен для того, чтобы раскрыть «тайное знание» о том, что это такое, когда и как это можно и нужно использовать, какие есть плюсы и минусы.

Естественно, статьи пишутся не для специалистов по криптографии, а для тех, кто эту самую криптографию будет использовать, или же только начинает ее изучение, желая стать специалистом, поэтому я старался максимально упростить понимание всего процесса, приводя аналогии и рассматривая примеры.

Читать дальше →
Всего голосов 105: ↑85 и ↓20+65
Комментарии108

VirtualBox 3.2: теперь можно запускать MacOS X в виртуальной машине. Под windows и linux

Время на прочтение2 мин
Количество просмотров73K
logoНеожиданно тихо прошел релиз новой версии virtualbox, в котором впервые появилась возможность запускать в виртуальной машине MacOS X. Официально. С оригинального диска. Не хакинтош.

Почитать что получилось а что нет
Всего голосов 184: ↑176 и ↓8+168
Комментарии290

Автоматизация создания виртуального хоста для web-разработки на базе Apache+Nginx

Время на прочтение5 мин
Количество просмотров10K

Как быстро создать виртуальнй хост и структуру папок одной строкой в терминале


Так уж сложилось, что для web-разработки я использую отдельный сервер на базе Debian. В первую очередь это обусловлено тем, что я часто работаю вне дома, а так-же это позволяет совместно работать над проектом с коллегами.
Раньше мне приходилось вручную создавать директории для сайта, копировать и править конфиги. Я тратил на это кучу времени и иногда ошибался, а потом судорожно искал где и что я упуслил.

Не так давно я задумался над автоматизацией процесса создания виртуальных хостов. Порыв немного в интернетах, и заодно вспомнив bash, родился скрипт, который избавил меня от рутины и ошибок одновременно.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии34

Размещение сервера за 2 000 рублей в месяц

Время на прочтение1 мин
Количество просмотров615
Доброго времени суток, Хабролюди!

Не буду копипастить прессрелиз, просто поделюсь новостью. С сегодняшнего дня мы начали размещать клиентское оборудование в новом модуле нашего ДЦ. В нем мы решили пойти нестандартным путем: пользователю дается розетка, запитанная от 2 независимых вводов, но без бесперебойника. Если у клиента есть свой ИБП (без разницы в каком форм-факторе), мы бесплатно дадим место для его размещения. Второе отличие: в этом модуле кондеи настроены на более высокие температуры (если в «дорогих» холодных рядах у нас температура не поднимается выше 15 градусов, то здесь нормой считается до 22 градусов).

Таким образом, мы экономим на электроэнергии и разовых вложениях, а клиенту предлагаем бесплатную установку и низкую абонентку.

Подробности у нас на сайте: http://fiord.ru/datacenter/list-econom.html

Если у кого-то есть конструктивная критика и/или предложения, с удовольствием обсужу в личке, или комментах.
Всего голосов 27: ↑15 и ↓12+3
Комментарии20

WebSocket: будущее уже здесь!

Время на прочтение3 мин
Количество просмотров14K
Сегодня я вкратце расскажу о технологии WebSocket, о предпосылках к её появлению, о текущих проблемах и об их решениях.
Читать дальше →
Всего голосов 80: ↑67 и ↓13+54
Комментарии122

Методичка по работе с клиентами. Для начинающих менеджеров веб-студий

Время на прочтение6 мин
Количество просмотров25K
(2008 год, письмо старшего менеджера веб-студии — младшему)
( профи вряд ли найдут что-то новое, молодым будет интересно)
Привет. Вот краткая инструкция, основанная на личном опыте. Так сказать, курс молодого бойца.
наша задача — заработать как можно больше денег, при минимальных телодвижениях.

Итак, получили письмо от клиента


обычно есть следующие варианты
  1. клиент явно перспективный и обратился «выборочно» именно к нам — есть большая вероятность, что переговоры будут удачными — тогда лучше сразу набивать стрелку и устанавливать личный контакт и все выяснять на месте. Хотя, границы бюджета лучше выяснить в любом случае.
  2. клиент интересный, но многое неясно из его письма ( нет ТЗ, нет бюджета, он написал в несколько студий, сайт потенциально сложный, сайт неинтересный и тд. ). Тут важно прислать ему БРИФ на заполнение, выяснить сроки и бюджет. Согласовать бюджет сроки — уже потом встречаться в случае, если все устраивает.
  3. Письмо подозрительно короткое и не «пахнет интересом». Например, «нужен обувной интернет-магазин, сколько стоит? Как быстро сделаете? Виталий» — тут вряд-ли чтото выгорит + вероятно это пробивон по ценам от конкурентов.
    В этом случае — цену говорим в полтора раза дето дороже, интересуемся «укладываемся ли мы в их бюджет» в положительном случае — можно встречаться. Иначе — скорее всего трата времени.

Читать дальше →
Всего голосов 133: ↑120 и ↓13+107
Комментарии129

Методичка по работе с клиентами. Для начинающих менеджеров веб-студий. Часть 2. ТЗ и смета

Время на прочтение4 мин
Количество просмотров12K
(2009 год, второе письмо старшего менеджера веб-студии — младшему)
Итак, первоначальные переговоры c клиентом проведены. Смотрим первую часть методички здесь http://habrahabr.ru/blogs/studiobusiness/45543/.
Теперь надо сориентировать клиента по цене. Если он с ней принципиально согласен — переходим к обсуждению Технического задания (ТЗ).
Делаем смету
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии41

Договор на абонентское обслуживание сайта

Время на прочтение6 мин
Количество просмотров47K
Несколько месяцев назад я уже выкладывал типовой договор на техническое обслуживание и поддержку сайта. В том топике, я получил много замечаний и комментариев. Мы постарались учесть все комментарии и замечания при составлении нового договора, им я и спешу поделиться.

image

Читать дальше →
Всего голосов 147: ↑141 и ↓6+135
Комментарии20

Кеширование блоков с помощью nginx

Время на прочтение6 мин
Количество просмотров15K
nginx + SSIМногим разработчикам знакома ситуация когда кешировать страницы сайта, скажем, на 5-10 минут нельзя всего из-за одного небольшого блочка, актуальность которого нужно поддерживать если не в реальном времени, то с временем «старения» не больше 5-10 секунд. При этом посещаемость сайта продолжает расти, растет время генерации страниц и c этим надо что-то делать…
  • Вариант решения 1: Подкрутить то, до чего не доходили руки последнее полгода. Все Вас поймут и передвинут сроки на другие задачи. Вы будете в роли «Супермена» один спасать сайт от непомерной нагрузки, решая проблему «бесплатно» (без доп. вливаний в оборудование). Вам может пригодиться статья «Тюнинг nginx».
     
  • Вариант решения 2: Улучшить техническую базу (докупить мозгов на сервер, улучшить дисковую систему, поставить под БД отдельный сервер). В принципе проблема не решена, а скорее отложена. Теперь у Вас есть время «окопаться» и подготовиться ко второй волне наплыва нагрузки, она будет больше и накроет сильнее.
     
  • Вариант решения 3: Ваш вариант, о котором я, вероятно, узнаю из комментариев.
     
Позвольте предложить и мне проверенное и относительно простое решение на базе одной из старейших технологий в Web-разработке.
Читать дальше →
Всего голосов 116: ↑107 и ↓9+98
Комментарии63

Генератор миниатюрок из Nginx-а

Время на прочтение3 мин
Количество просмотров27K
Итак, сегодня мы соберём генератор миниатюрок на базе любимого народом веб-сервера — nginx-а. Что примечательно, сделаем мы это без единого гвоздя, т.е. без единой строчки кода, не считая конфигурации.
Что ж приступим...
Всего голосов 81: ↑76 и ↓5+71
Комментарии42

Миллиард цветов на LCD — теперь не только для DreamWorks

Время на прочтение1 мин
Количество просмотров15K
HP ZR30wВчера HP выпустила в свет очередное пополнение линейки мониторов DreamColor, предназначенной для профессионалов полиграфии, 3D-анимации, промышленного дизайна и всех тех, кому действительно важна точность цветопередачи. 30-дюймовый HP ZR30w благодаря 30-битной матрице S-IPS способен отображать более 1 миллиарда оттенков, в 64 раза больше подавляющего большинства современных, 24-битных, ЖК-мониторов.

ZR30w отображает всю палитру sRGB и на 99% — Adobe RGB. Для обычного пользователя это будет значить, что все цвета будут больше похожи сами на себя, а объекты на экране будут казаться глубже, ярче и четче, чем на том мониторе, на котором вы сейчас читаете этот текст.

Вместе с выдающимися параметрами цветового охвата ZR30w отличается разрешением 2560x1600 пикселей и динамической контрастностью 3000:1. Традиционное отставание матриц S-IPS по контрастности, таким образом, практически удалось преодолеть.

Но самый важный, по-моему, параметр нового DreamColor — это его цена, в США начинающаяся от $1 299. Дорого?
Читать дальше →
Всего голосов 36: ↑30 и ↓6+24
Комментарии102

Скриншоты сайтов своими руками

Время на прочтение2 мин
Количество просмотров13K
Проблема создания скриншотов web-страниц прямо на сервере встает достаточно редко, но, как говорится, метко. Хватишься иной раз, так гугль дает ссылки на какой-нибудь парсер уже существующего сервиса. Но, господа, это же не наш метод!

Покопавшись, можно найти что-нибудь типа связки xvfb (виртуальный фреймбуффер) с каким-нибудь браузером, например xvfb+opera, или khtml2png, который тянет за собой фигову тучу kde'шных либ. А ведь так хочется какого-нибудь легкого standalone скриптика...

Решив посвятить немного времени изучению вопроса, обстоятельно исследовал имеющийся инструментарий.

Читать дальше →
Всего голосов 106: ↑95 и ↓11+84
Комментарии34

Составляем договор дизайн-студии, часть 2: договор и приложения

Время на прочтение2 мин
Количество просмотров5.2K
Проектируя договор студии, помните, что решения могут приниматься разными людьми и в разное время. Кроме того, не всех договоренностей удастся достичь сразу, а некоторые бумаги, быть может, придется переподписывать.

Если за формальности отвечает юрист и главный бухгалтер, то сроки и стоимость будет оценивать кто-то из директоров, а техническое задание — рабочая группа, состоящая из представителей компании-заказчика, заинтересованных в будущем сайте. Например, менеджер по маркетингу, пиар-менеджер, менеджер по продажам и т.п.
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии24

Визы для стартапщиков

Время на прочтение1 мин
Количество просмотров881
Сенаторы Джон Керри и Ричард Лугар официально представили в Вашингтоне The Startup Visa Act. Это проект изменений в иммиграционное законодательство Америки, который позволит любому предпринимателю, который открыл новый стартап, легко получить визу EB-5 и без особых проволочек иммигрировать в США. Как известно, именно иммигранты основали многие успешные американские стартапы, в том числе Google, Intel, Yahoo и eBay.



Единственное условие получения визы — наличие инвестора, готового вложить в стартап не менее $250 000.

Полный текст законопроекта здесь. В его поддержку уже выступили более 100 венчурных фондов и частных инвесторов.
Всего голосов 70: ↑62 и ↓8+54
Комментарии70

Интернет-магазин внутри баннера

Время на прочтение4 мин
Количество просмотров1.1K
Все мы давно привыкли к рекламным баннерам на любимых нами сайтах. Некоторые из них скромно помигивают в углу страницы, другие же навязчиво предлагают нажать на них, внезапно появляясь в центре экрана и надоедая (да, именно надоедая) анимацией. Прошло время, когда красивые эффекты могли ввести пользователя в ступор и заставить кликнуть по рекламному объявлению, эффективность сисек и прочих сомнительных маркетинговых ходов тоже резко снизилась, ведь пользователи эволюционировали. Сейчас они кликают на баннере только если им действительно интересно то, что он продаёт.

В распоряжении веб-разработчиков находится масса технологий, с помощью которых были сделаны gmail, facebook и множество других замечательных сервисов, но почему до сих пор баннеры — это всего лишь электронная вывеска-замануха, и не более? Мы решили сделать баннер, который не просто завлекает на сайт, но сам продаёт.
Читать дальше →
Всего голосов 153: ↑147 и ↓6+141
Комментарии97

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность