Как стать автором
Обновить
0
Владимир @Provolodread⁠-⁠only

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

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

[Перевод] Современный веб-разработчик, или 6 вещей, которые вы должны знать, чтобы выжить

Время на прочтение4 мин
Количество просмотров97K
Это статья об изменениях, которые произошли в мире веб-разработки. Я наблюдаю огромное количество веб-разработчиков, которые буквально застряли в устаревших технологиях, особенно в мире .NET. Если вы еще не начали совершенствовать свои навыки, и адаптироваться к изменяющимся трендам, вы должны начинать уже сегодня.
Читать дальше →

Пара полезных команд, которые могут пригодиться при DDoS и не только

Время на прочтение3 мин
Количество просмотров82K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →

Рентабельный код

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


Жили-были в двух соседних деревушках Вилларибо и Виллабаджо две команды разработчиков. И те и другие делали ревью кода, писали тесты, приводили рефакторинг, но через год разработки в Вилларибо уже выпустили релиз и вышли в продакшн, а в Виллабаджо все еще проводят рефакторинг и чинят баги. В чем же дело?

Разработка ПО – область, подверженная рискам. В нашей сфере при наступлении одного или нескольких рисков, срок поставки рабочей версии может сдвинуться не на привычные и комфортные 10-20%, а на все 150-300%. И надо признаться, что это далеко не предел.

Мы можем либо скрестить пальцы и надеяться, что удача будет сопутствовать проекту во всем, либо признать, что по статистике большая часть проектов по разработке ПО «проваливается» и предпринять дополнительные усилия по ослаблению возможных рисков.
Моя практика показывает, что клиенты крайне неохотно работают по схеме T&M и чаще предпочитают Fixed Price. В условиях зафиксированной стоимости наступление рискового случая означает автоматическое снижение рентабельности проекта: сотрудники получают зарплату ежемесячно, а не за сданные проекты.

До Agile и XP вся ответственность за работу с рисками ложилась на менеджеров. В гибких методологиях разработчики гораздо больше вовлечены в процесс и делят ответственность с менеджерами. Однако, принципы XP и Agile – больше методологические, чем технологические. Я думаю, что с рисками эффективнее работать комплексно на всех уровнях, в том числе на самом низком уровне, т.е. во время проектирования и написания кода.

Почему об этом следует думать разработчику, если есть менеджер?
  1. Не секрет, что если факап случится, менеджмент примет единственное «супер-умное» решение: «давайте поработаем сверхурочно и в выходные»
  2. Премии сотрудники получают тоже обычно за в срок сданные, а не за проваленные проекты
  3. Чувство сделанного дела, в конце концов. Гораздо приятнее сдать проект во время и видеть улыбку клиента, чем с опозданием в полгода отвязаться от «трудного ребенка»

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

Как найти девушку через общий топор — Майн объединяет владельцев вещей

Время на прочтение5 мин
Количество просмотров16K
Mine Things Social Network

Нет, мы не сайт знакомств ни разу.

Mine — это всемирный граф частной собственности
Mine — это вконтактик для ваших мимимишечек

Если серьёзно, то Майн — это сайт, на котором люди связываются через свои вещи. Наконец-то вы сможете:
  • Вступить в клуб владельцев перочинного ножа
  • Пощекотать ваше толстое материалистическое эго
  • Публично признаться в трогательной нежности к своему ноутбуку
  • Показать всем чего вы стоите (буквально)
  • Найти женщину-гика на белом Харлее и с приставкой денди
  • Подкараулить владельца нового Vertu ночью у подъезда! (чтобы поболтать)
  • Открыто ненавидеть обладателя 7-и айфонов! (и т.д.)

Почему мы считаем, что такая на первый взгляд лекгомысленная затея может стать крепким звеном мирового e-commerce рынка, зачем магазины должны вставать к нам в очередь и пара стратегических секретов — под катом.

Да мне всё равно, хочу тёлку с топором

Новое для веб-дизайнера за октябрь 2012

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

Сервисы и инструменты


Cut&Slice me — бесплатный плагин для фотошопа, который помогает быстро готовить элементы дизайна для различных типов устройств.

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

Фильтры для изображений с CSS Filter Effects

Время на прочтение1 мин
Количество просмотров153K
В графических редакторах очень легко менять яркость или контраст изображений, применять различные фильтры. С недавних пор это можно делать и средствами CSS прямо на веб-страницах с помощью CSS Filter Effects.



Демонстрация / Скачать исходники / Спецификация Filter Effects 1.0
Читать дальше →

Landing page, которая работает

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


Знания о том, как сделать хорошую landing page помогут увеличить количество желаемых действий, совершаемых пользователями на Вашем сайте. В статье приводится обзор элементов дизайна хорошей landing page.
Читать дальше →

Красивые чекбоксы и радиокнопки на CSS3 без JavaScript

Время на прочтение1 мин
Количество просмотров117K
Благодаря псевдоклассу :checked, появившемуся в CSS3, можно стилизовать формы с чекбоксами и радиокнопками как угодно. В этом топике рассмотрен один очень простой способ, причем без использования JavaScript.



Демонстрация Скачать исходники
Читать дальше →

Подборка полезного для любителей Twitter Bootstrap

Время на прочтение2 мин
Количество просмотров250K
В подборке сервисы, плагины, темы и другие полезности, облегчающие работу с Twitter Bootstrap.

Стилизация


BootSwatchr — быстрая стилизация Twitter Bootstrap.

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

Как ускорить загрузку своего сайта при помощи compress.php, который объединит и сожмёт JS + CSS в Gzip

Время на прочтение3 мин
Количество просмотров62K
Ускоряем сайт при помощи GoogleПодробные инструкции, которые даются на code.google позволят вам:

  • Сжать все многочисленные скрипты JS и стили CSS
  • Соединить все полученные файлы в один JS и в один CSS
  • Сжать полученные два файла в формат GZIP, который понимают почти все браузеры и умеют распаковывать на лету
  • Прописать такой .htaccess, который заставляет браузеры кэшировать данные два файла

Всё это будет происходить при запуске единственного скрипта compress.php

Для примера, результат сжатия скриптов моего сайта:
  • JS: сжато в gzip 26 698 B, сжато без gzip 95 796 B, было 120 147 B
  • CSS: сжато в gzip 46 049 B, сжато без gzip 160 001 B, было 281 870 B

Получается, что экономия трафика составляет 329 270 B. Но основной выигрыш для скорости загрузки в том, что теперь загружается не 14 файлов, а всего 2 (а это намного быстрее, так как браузер не тратит время на запросы). Причём делается это один раз, а не динамически силами самого сервера (тем более, что не все сервера поддерживают подобное конфигурирование сжатия для экономии ресурсов процессора).

В итоге, получится:
<link rel="stylesheet" type="text/css" href="min/styles_1349888114.cssgz" />
<script src="min/all_1349888114.jsgz" /></script>

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

В погоне за идеей

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


Приветствую тебя, Хабр. В этой статье я бы хотел уделить несколько абзацев текста такой, актуальной нынче, теме, как стартапы (думаю, уже не за горами то время, когда само это слово станет у нас синонимом чего-нибудь неприличного). Но даже это еще не все. Я осмелюсь покуситься на самое-самое святое для стартапера, на его начальную Идею. Попытаюсь понять, стоит ли она все-таки хоть что-то, и существует ли какой-нибудь метод, не очень зависящий от эмоций, чтобы была возможность как-то конструктивно работать с этими идеями.

Многое, о чем я буду говорить, будет похоже на откровения капитана, а какие-то высказывания, возможно, могут кому-то показаться окрашенными в назидательный тон (хотя я никоим образом этого не хотел). Заранее прошу у читателей отнестись к тексту снисходительно, т.к. всё, что вы прочтете ниже, лишь изложение мыслей автора вслух по теме, и ничего больше.
Читать дальше →

Релиз LiveStreet 1.0

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


Сегодня вышел новый релиз блого-социального движка LiveStreet 1.0.

Новые возможности:
— Новый дефолтный шаблон Synio (победитель конкурса, автор AlekseyPopov)
— Шаблон на HTML 5 и полный отказ от MooTools. Теперь поддерживается только jQuery
— Стена пользователя
— Переработанный профиль пользователя
— Ajax авторизация и регистрация в том числе в попапе
— Модуль гео-базы и на его основе выбор места проживания в профиле пользователя
— Поиск и сортировка среди пользователей
— Поиск и сортировка среди блогов
— Возможность для избранных топиков добавлять свои теги и поиск топиков по ним
— Счетчик избранного для топиков и комментариев
— Подписка на новые комментарии к топикам
Узнать больше возможностей

Упрощённая версия пользовательского соглашения (ToS)

Время на прочтение1 мин
Количество просмотров4.9K
На большинстве сайтов ToS представляет собой длиннющий текст мелким шрифтом, который обычные люди не читают, подписывают не глядя. Вчитывается только редкий профи в поисках конкретных важных пунктов.

Почему сайты размещают столь многословные ToS — понятно. Фактически, это юридический документ, который составляют юристы для юристов, а у тех в профессиональной среде принято использовать именно такой язык, нельзя упрощать формулировки.

Любопытный выход из положения предложил фотосайт 500px.com — их пользовательское соглашение составлено в двух вариантах. В левой колонке оригинальный текст, имеющий юридическую силу. А в правой колонке смысл каждого пункта изложен в двух словах. Кстати, таким же образом изложена и политика приватности 500px. Пожалуй, это хорошая идея.
Читать дальше →

Интеграция OAuth и Twitter API в фреймворк Kohana3

Время на прочтение5 мин
Количество просмотров2.2K
Закралась мне как-то в голову мысль, что пора бы заняться интеграцией блога и твиттера в единое целое. Для этого существуют две такие замечательные вещи, как OAuth, связывающий ваше приложение с функционалом стороннего API, и сам функционал, реализованный, в данном случае, в виде Twitter API.

Проштудировав несколько мануалов (например, у Дмитрия Котерова имеется очень хорошая статья по этой теме) и поняв основной принцип работы OAuth, я пришел к выводу, что писать свой велосипед — неэффективная задача на данный момент, и решил посмотреть, что уже есть готового в интернете.

Итак, что же мы видим, зайдя на http://dev.twitter.com/pages/libraries? Невообразимое количество готовых решений для нашей задачи. Я решил остановится на приглянувшейся мне библиотеке Twitter-async от Jaisen Mathai. Далее опишу, как интегрировать библиотеку в Kohana 3 и как ей пользоваться.
Читать дальше →

Авторизация по протоколу OAuth на примере Desktop Twitter-клиента

Время на прочтение6 мин
Количество просмотров26K
Потребовалось мне тут написать некий кроссплатформенный Twitter-клиент с закрытым исходным кодом, не спрашивайте зачем мне это надо, работа у меня такая, деньги я за это получаю. Что логично, языком разработки был выбран С++ с использованием Qt.
Сам API Twitter'a прост как кирзовый сапог. Но! Есть такая важная штука как авторизация, и тут есть два пути, старый — аутентификация посредством HTTP Headers и новый — использование протокола OAuth. Старый метод прост, также как и само API, но, к сожалению, он не безопасен, и самое главное команда Twitter'a предупреждает, что откажется от него в конце июня сего года. Поэтому остается второй метод OAuth. Надо сказать, что данный протокол используется не только в Twitter, но поскольку я писал Twitter-клиент, и рассматривать мы будем на примере Twitter'a.
и как же это сделать?

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность