Как стать автором
Обновить
34
0
Андрей Рягузов @aeryaguzov

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

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

Как стать ведущим разработчиком. Часть 2

Время на прочтение8 мин
Количество просмотров40K
Продолжение перевода статьи Джона Оллспоу о личных качествах ведущих разработчиков.

Зрелые разработчики не жалуются просто так


Вместо этого они рассуждают, основываясь на наблюдениях, и предлагают варианты решения найденной ими проблемы. Один опытный менеджер сказал мне: «Никогда не приходи к своему начальнику с жалобами, если у тебя нет готового решения проблемы. И лучше, если решений будет несколько». Но даже если у вас не получилось найти ни одного решения — это уже лучше, чем жаловаться просто так.
Читать дальше →
Всего голосов 104: ↑98 и ↓6+92
Комментарии15

Перешагивать скамейку

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

Недавно моя полуторогодовалая дочь участвовала в соревнованиях по бегу. Несколько малышей выходили на дорожки (примерно 4 метра длиной) и, по сигналу судьи, бежали вперёд наперегонки.

Мы долго готовили дочку к таким серьёзным соревнованиям, рассказывали, что ей нужно будет очень быстро бежать, чтобы самой первой добежать до финиша, где её уже ждала мама. Дочка, вроде бы, поняла и даже, в перерывах между забегами, несколько раз пробежала дистанцию.
Читать дальше →
Всего голосов 381: ↑285 и ↓96+189
Комментарии81

Интерактивная обучалка ветвлению в Git

Время на прочтение1 мин
Количество просмотров80K
Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

Хотя сам автор утверждает, что приложение еще сырое, я советую всем, кто интересуется гитом, взглянуть на эту прикольную штуку.

image
Читать дальше →
Всего голосов 162: ↑156 и ↓6+150
Комментарии38

Job Safety Driven Development

Время на прочтение4 мин
Количество просмотров18K
В то время как сторонники современных гибких методологий разработки выдумывают все новые и новые практики, их оппоненты также не стоят на месте. На фоне разнообразных XDD (FDD — Feature Driven Development, TDD — Test Driven Development, BDD — Behavior Driven Development, ATDD — Acceptance Test Driven Development) они сформулировали свою методологию — JSDD (Job Safety Driven Development). Кому интересны детали, добро пожаловать под кат.

Читать дальше →
Всего голосов 51: ↑42 и ↓9+33
Комментарии73

На пути к созданию безопасного веб-ресурса. Часть 1 — серверное ПО

Время на прочтение7 мин
Количество просмотров99K
Я уже довольно долгое время хочу формализовать все свои мысли, опыт, ежедневно применяемый на практике, и многое другое в одном месте и предоставить их общественности. Уверен, многим этот материал будет полезен. Он посвящен различным моментам в конфигурации серверного ПО Linux и безопасным подходам к созданию сайтов/приложений на php (все же это до сих пор одна из самых популярных связок, хоть её успешно и подвигают другие технологии. Но советы так же легко применимы и к веб-ресурсам на других технологиях).

Т.е. речь идет о типичной ситуации. Проект (стартап), купили под него сервер и разворачиваем на нем сайт. Бизнесу не нужно тратить лишних денег на сервера (поэтому будут выбраны наиболее производительные связки ПО), а так же нужно, чтобы все было безопасно, при чем бесплатно :)
Много текста. По-другому никак
Всего голосов 170: ↑159 и ↓11+148
Комментарии47

Видео лекций всего курса первой Школы разработки интерфейсов Яндекса

Время на прочтение2 мин
Количество просмотров179K
Разработка интерфейсов — одно из важнейших направлений в Яндексе, сервисами которого пользуются миллионы людей. А ни один российский вуз, к сожалению, не готовит разработчиков интерфейсов. Все знания, которые необходимы современному верстальщику или фронтенд-программисту, приходится черпать из статей в интернете, книг, докладов на конференциях. Но зачастую этого бывает недостаточно. Почти каждого нового разработчика интерфейсов, которого мы принимали на работу, приходилось многому обучать.

За долгое время работы в Яндексе нам удалось систематизировать все наши знания и огромный опыт в создании фронтенда веб-сервисов. Результатом этого осмысления и длительной работы стала первая Школа разработки интерфейсов, занятие которой шли в московском офисе Яндекса. Вся практическая часть обучения проходила в реальных проектах Яндекса. Теоретическая же состояла из лекций, которые читали ведущие разработчики интерфейсов Яндекса: Сергей veged Бережной, Михаил mishanga Трошев, Алексей doochik Андросов, Михаил azproduction Давыдов и другие.

Выпускники первой Школы разработки интерфейсов Яндекса

Сегодня мы выкладываем видеозаписи каждой из них. Весь курс систематизирован и поделен на пять блоков: инструменты разработки, технологии в разработке интерфейсов, языки программирования, фреймворки, дизайн.

Читать дальше →
Всего голосов 164: ↑155 и ↓9+146
Комментарии64

CSS3-генераторы. Лучшее

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








Доброго времени суток! Сразу объяснюсь по поводу оформления поста: однажды, наткнувшись на статью о CSS-генераторах, меня не сильно порадовало безмерное количество информации и навигационных элементов в представленных генераторах, и еще больше — их пользовательский интерфейс! Возмутило то, что инструменты для работы со стилями — сами не выдержаны в рамках возможностей, которые они представляют… как так?!

Когда занимаешься творчеством, хочется иметь подручные средства и инструменты на освоение и работу с которыми тратишь минимум усилий и времени. В результате всего этого, пришла мысль: отобрать лучшие инструменты и организовать их для частого использования (а-ля навигационное меню, такой себе: Quick Launch).

Надеюсь, для многих ноу-хау станет хорошим помощником в процессе веб-разработки.
Читать дальше →
Всего голосов 114: ↑104 и ↓10+94
Комментарии26

Шаг за шагом, или Как мы строили свой поиск

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

До весны 2012 года у нас вместо такой базы существовали две базы данных разного уровня — со стороны спайдера, который имел свою собственную базу URL-ов, и со стороны индексатора. Это было крайне неудобно: допустим, если пользователь жаловался, что его сайт не индексируется, то для того, чтобы найти причину, при старой архитектуре пришлось бы анализировать массу данных. На это требовалось день-два, иногда даже неделя.

Задачи, которые обрабатывали данные, такие как антиспам или ссылочный граф, вынуждены были работать отдельно, создавая еще большую путаницу. Мы понимали, что нужно что-то менять.

Читать дальше →
Всего голосов 99: ↑88 и ↓11+77
Комментарии20

Внутреннее устройство Git: хранение данных и merge

Время на прочтение9 мин
Количество просмотров88K
В процессе перехода с SVN на Git мы столкнулись с необходимостью переписывания наших внутренних инструментов, связанных с развёртыванием кода, которые ориентировались на существование линейной истории правок (и разработку в trunk). На Хабре уже публиковались возможные решения этой проблемы через Git-SVN, но мы пошли другим путём. Нам нужна поддержка таких возможностей Git, как branching и merge, поэтому мы решили разобраться в основах, как же работает Git и каким способом должна осуществляться интеграция с ним.
Читать дальше →
Всего голосов 77: ↑77 и ↓0+77
Комментарии10

Как выбирать инвестора и презентовать ему проект: чеклист, грабли и заблуждения

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

Примерно так инвестор видит стартаперов перед презентацией. Презентация всё меняет… или нет.

Три главных вопроса инвестора:
  • Где в этом проекте деньги?
  • Зачем я здесь нужен?
  • Ок, а теперь зачем именно ты здесь нужен?

Больше инвестора ничего не интересует. Понятно, что каждый вопрос разделяется на десятки уточнений, проверок и так далее, но если вы можете чётко и понятно ответить на все три вопроса инвестору — проект будет запущен.

Очень важно понимать, что второй вопрос — причина отсева большей части проектов. Инвестор — это не кошелёк, а компания, имеющая свои конкретные цели, и поэтому выбор правильного инвестора не меньше влияет на проект, чем сама идея. Есть три типа инвесторов: бизнес-ангелы, стратегические инвесторы и венчурные фонды.

Кто такие бизнес-ангелы?


Это инвесторы, которые дают не очень большие инвестиции (до ста тысяч долларов), но дают быстро, и, что важнее — на той стадии, когда совершенно непонятно, что с проектом будет, то есть в условиях высокой неопределённости. Они смотрят на идею, оценивают команду (часто — полуинтуитивно), думают, насколько удачно может получиться. Нередко такие люди, благодаря своему деловому опыту, выступают менторами или консультантами проекта. Интересно, что инвестиции идут именно в слаженную команду: ведь ход мыслей на стадии «ещё нет даже прототипа» может развернуться на 180 градусов и привести к другой идее.
Читать дальше →
Всего голосов 49: ↑41 и ↓8+33
Комментарии11

Видеозаписи докладов с High Performance Conference

Время на прочтение3 мин
Количество просмотров13K
Дорогие хабрачитатели, мы готовы представить вам видеозаписи всех докладов с конференции по высоким нагрузкам HPC, которая состоялась 9 августа в Москве.



Прямо сегодня (или в любое удобное для вас время) в программе:
Сергей Аверин XEK, Badoo (участвовал в создании таких проектов как Хабр, dirty, leprosorium, autokadabra, dribbler, trendclub и др.);
Юрий Насретдинов, Badoo;
Андрей Сумин AndrewSumin, Mail.ru Group (ранее Яндекс, HeadHunter);
Константин Осипов, Mail.Ru Group ( ранее Oracle, Sun, MySQL, Ringrows, Spylog, Interpro);
Даниил Павлючков, ITmozg.ru.

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии3

Базовые стили и полезные CSS-сниппеты

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


В этой статье собраны полезные  и «правильные» стили и сниппеты, которые помогут ускорить процесс разработки сайта, а также оптимизировать верстку.
Читать дальше →
Всего голосов 163: ↑118 и ↓45+73
Комментарии54

Пишем плагин для jQuery

Время на прочтение8 мин
Количество просмотров247K
Эта статья призвана дать представление об основных правилах, подходах, дающих наилучшие результаты, и распространённых ошибках, на которые стоит обратить внимание при разработке плагинов для jQuery.
Читать дальше →
Всего голосов 171: ↑138 и ↓33+105
Комментарии67

Дайджест интересных новостей и материалов из мира PHP за последние две недели №4 (03.11.2012 — 16.11.2012)

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


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 84: ↑71 и ↓13+58
Комментарии15

Puppet под нагрузкой

Время на прочтение6 мин
Количество просмотров33K
Puppet — довольно удобный инструмент для управления конфигурациями. По сути, это система, которая позволяет автоматизировать настройку и управление большим парком машин и сервисов.

Базовой информации о самой системе много, в том числе и на Хабре: здесь, здесь и здесь. Мы же постарались собрать в одной статье несколько «рецептов» использования Puppet под действительно большими нагрузками — в «боевых условиях» Badoo.

О чём пойдет речь:

  • Puppet: ликбез;
  • кластеризация, масштабирование;
  • асинхронный Storeconfigs;
  • сбор отчётов;
  • анализ полученных данных.

Читать дальше →
Всего голосов 70: ↑66 и ↓4+62
Комментарии48

Надежный код при высоких нагрузках

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

При этом о надежности самого кода говорить как-то не принято, хотя в суровых условиях высоконагруженных проектов его качество приобретает особое значение. Вам нужен действительно «пуленепробиваемый» код, который будет работать корректно даже в случае большого количества одновременных запросов к одним и тем же данным. В этой статье представлен набор рекомендаций, которые могут помочь вам в написании такого кода.
Читать дальше →
Всего голосов 104: ↑91 и ↓13+78
Комментарии42

Уязвимость в skype, позволяющая угнать любой аккаунт

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


Месяца три назад я писал об этой критической уязвимости в skype support, но она до сих пор не исправлена (уже исправлена).

Сразу скажу, что саму уязвимость я целиком не знаю(уже известна), но в последнее время начались массовые угоны аккаунтов.

Для реализации атаки необходимо лишь знать логин скайпа и e-mail жертвы.
Читать дальше →
Всего голосов 398: ↑345 и ↓53+292
Комментарии400

Подборка инструментов для эффективной frontend разработки

Время на прочтение3 мин
Количество просмотров101K
В эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!

Form Builder

image

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
еще 24 ссылки
Всего голосов 204: ↑197 и ↓7+190
Комментарии46

Асинхронные запросы к MySQL

Время на прочтение3 мин
Количество просмотров36K
В mysqlnd появилась возможность выполнять запросы к MySQL асинхронно, то есть продолжить работу скрипта не дожидаясь выполнения запроса и формирования результата. Преимущество такого подхода очевидно, ведь можно выполнить массу полезной работы во время ожидания запроса, но для начала я приведу немного другой пример:

Допустим у Вас есть 3 запроса (q1, q2, q3), каждый запрос выполняется за определенное время (t1, t2, t3), например так:

SELECT 1 AS val, SLEEP(1) AS sleep
SELECT 2 AS val, SLEEP(2) AS sleep
SELECT 3 AS val, SLEEP(3) AS sleep


В случае синхронного выполнения запросов, Вы сможете получить результаты их выполнения через t1 + t2 + t3 (ex: 6 секунд), а в случае асинхронного выполнения запросов уже за max(t1, t2, t3) (ex: 3 секунды)

Примеры работы с асинхронными запросами, а также другие примеры работы с mysqlnd можно найти на github

Под катом reverse engineering, segfault и больше подробностей работы с асинхронными запросами
Всего голосов 40: ↑37 и ↓3+34
Комментарии16

Бесшовная миграция MySQL 5.0 -> Percona Server 5.5 с переразбивкой хранилища

Время на прочтение5 мин
Количество просмотров18K
Здравствуйте.

Хочу поделиться опытом миграции боевой базы данных с MySQL 5.0 на Percona Server 5.5 под нагрузкой почти без отрыва от производства.

Опишу вкратце эволюцию нашей базы до текущего состояния


База у нас древняя, пережила несколько апгрейдов MySQL. Начинали с MySQL 3.x. С ростом нагрузки, уже на MySQL 5.0, настроили репликацию и подключили еще один сервер для чтения. Тогда мы это делали стандартными средствами MySQL, без привлечения xtrabackup — полностью блокировали сервер на время создания мастер-дампа и вывешивали на сайтах заглушки.

Затем встала следующая проблема — на томе с данными стало заканчиваться место. Плюс InnoDB-хранилище исторически располагалось в одном файле. Было рассмотрено много вариантов решения. Начиная от размещения базы на iSCSI-томе и заканчивая перетыканием в рейд более емких дисков, расширением на них volume group / logical volume с последующим расширением файловой системы.

В качестве временного варианта решили подключить iSCSI-том из виртуалки под VMWare vCloud (не реклама, честно!). vCloud стоит у нас под боком.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии9

Информация

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