Как стать автором
Обновить
225
0
Александр Швец @neochief

Программист, Технический писатель

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

Преждевременная оптимизация — зло!

Время на прочтение1 мин
Количество просмотров26K
image

Предлагаю вашему вниманию первую часть перевода книги «Mature optimization» Карлоса Буэно о принципах оптимизации высоконагруженных проектов.

Автор книги совсем недавно работал в Facebook и, будучи членом команды по повышению производительности, сохранил для компании кучи денег, применяя свои навыки тщательного измерения и продуманной оптимизации. Весь этот опыт автор воплотил в своей книге, а мы донесли ее до вас бесплатно, на русском языке и с иллюстрациями.

Книгу стоит прочесть, если вы:

1. Хотите повысить производительность своего проекта, но не знаете с чего начать.
2. Хотите повысить производительность своего проекта, но боитесь все сломать.
3. Не знаете о подводных камнях оптимизации производительности.
4. Давно хотели настроить мониторинг проекта, но не уверены что именно стоит мониторить.
5. У вас есть система мониторинга, но она не сообщает о проблемах заранее.

Читать дальше →
Всего голосов 58: ↑43 и ↓15+28
Комментарии21

Всё, что вы хотели узнать о рефакторинге, но боялись спросить

Время на прочтение1 мин
Количество просмотров21K
Господа, рад представить вам свой новый проект — Refactoring.guru.

Сайт представляет собой каталог запахов грязного кода и, собственно, самих приёмов рефакторинга. В двух словах — это как книга Мартина Фаулера, но лучше. А именно:

  • Весь контент доступен на русском языке. Я старался делать описания как можно более живыми, чтобы избавиться от чувства унылости и скуки, которое возникает при чтении любой переводной книги о рефакторинге.
  • Все примеры подаются на Java и PHP. Другие языки обязательно будут добавляться со временем, но я пока затрудняюсь решить, каким будет следующий, можете предлагать в комментах.
  • Всё везде перелинковано. Рефакторинги сгруппированы по предназначениям и связям.


Супер-мега-фишка, которой я очень горжусь — интерактивные примеры с объяснениями (внизу страницы). Такими примерами пока что покрыты первые две главы, но я работаю над тем, чтобы добавить их и в остальные главы.

Как видите, есть еще громадное поле для работы, как говорится, «если вам не стыдно за первую версию продукта — вы отрелизились слишком поздно». Тем не менее, я надеюсь, что кому-то сайт будет интересен уже сейчас.

Буду рад всем отзывам и пожеланиям! (а также лайкам и твитам)

Читать дальше →
Всего голосов 115: ↑107 и ↓8+99
Комментарии57

GitHowTo — тур обучения гиту на русском

Время на прочтение1 мин
Количество просмотров15K
image

Спешу поделиться радостной новостью о запуске проекта GitHowTo — интерактивного тура-обучалки основам Git.

За основу были взяты идеи gitimmersion.com, но переведены на русский язык и немного изменены под реалии не-ruby разработки, поэтому спешите любить и жаловать — githowto.com!

Буду чрезвычайно рад любым замечаниям и пожеланиям к проекту.
Всего голосов 179: ↑178 и ↓1+177
Комментарии68

2016 год: будущее интернета

Время на прочтение2 мин
Количество просмотров2.5K
Как говорили классики киберпанка, будущее уже здесь, только оно еще недостаточно распространилось. Примерно так же считает Майкл Пинто (Michael Pinto), основатель и директор компании Very Memorable Design, издатель сайта Anime.com и член совета директоров Нью-йоркской софтверной ассоциации. Именно он является автором статьи, в которой речь идет о будущем интернета и ближайших перспективах человечества.

Изменения в нашем мире происходят уже сейчас, по мере того, как телефонная связь и телевидение интегрируются в Сеть. Эта интеграция начинает постепенно затрагивать и другие устройства: от домашнего будильника до книжки, которую вы читаете перед сном. Интернет в будущем станет неотъемлемой частью всех этих объектов. Фактически, Всемирная сеть перестанет быть местом, куда мы «входим»; Cеть станет местом, где мы находимся постоянно — важным элементом, без которого мир просто развалится. На смену понятию «выйти в онлайн» приходит понятие «быть в онлайне».

Одновременно со сменой мировоззрения будет идти и естественная смена поколений. К 2016 г. не останется ни одного человека в возрасте до сорока лет, кто бы помнил жизнь без компьютеров (разумеется, речь идет о цивилизованных странах и городах). Средний двадцатилетний юноша будет считать невероятными истории старших людей о прежних временах, когда не существовало ни электронной почты, ни веб-сайтов.

Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии4

Кто виноват в том, что сайт не выполняет своих функций?

Время на прочтение6 мин
Количество просмотров1.2K
Знакомьтесь — Джон, владелец достаточно крупного сайта, маркетолог, считает себя умным, профессиональным, и к тому же уверен, что умеет четко излагать свои мысли. При всем этом, Джон не так уж много знает о веб-дизайне и разработке, поэтому ему нужна ваша помощь. Джон обращается к вам с целым набором четких маркетинговых целей и просит вас назвать цену своей работы.

Всегда объясняйте клиенту, зачем вы спрашиваете о бюджете



Перед тем, как назвать цену вы расспрашиваете Джона о его проекте. После пары минут разговора вы задаете вопрос о бюджете. По-вашему, это справедливый вопрос. Ведь подходов к решению задачи может быть так много. Не зная бюджета нельзя определить, с чего начинать работу. Вы считаете, что создание сайта – это как строительство дома – не зная бюджета, вы не сможете узнать, сколько комнат хочет клиент и какие материалы надо использовать.

Джон, в свою очередь, с подозрением относится к вашему вопросу. Зачем вам знать о его бюджете? Единственная убедительная причина, которая приходит ему в голову – вы не хотите случайно назвать цену меньше той, которую он готов заплатить. Кроме того, он и сам не знает, какой у него бюджет. Откуда ему знать, сколько стоит сайт?


Клиент не должен думать, что вы выманиваете у него деньги.

Джон уходит. Он решительно настроен найти честного веб-разработчика, который не собирается его обманывать. К счастью для вас, все остальные разработчики тоже не объясняют, зачем им знать о бюджете Джона, и, в конце концов, вы даже можете заполучить Джона обратно.

Читать дальше →
Всего голосов 100: ↑77 и ↓23+54
Комментарии56

ModX и Drupal: разные истории

Время на прочтение5 мин
Количество просмотров12K
До знакомства с CMS ModX планировалась статья сравнения этих двух систем, особенно после появления темы «Сравнение Drupal, MODx (и других систем) в рабочем проекте» на drupal.ru где предлагалось соревнования что выяснить какая система лучше.
После небольшого знакомства с МодХ все вопросы отпадают сами собой и ни о каком сравнении не может быть и речи.

Начнем с того что эти две CMS используются для различных целей и они не взаимозаменяемы. Друпал предназначен для сайтов мини-портал и выше, в то время как МодХ я классифицирую как хороший конструктор сайтов визиток. Область применения МодХ заканчивается на сайтах имеющих статьи и новости одновременно. И заводить спор о том что из МодХ можно создать сайты крупнее и даже крупный портал, тоже верно, но и с сопоставимыми временными затратами можно создать этот крупный портал с нуля.

Зато МодХ отлично делает сайты визитки, имеет свой менеджер загрузки файлов, имеет встроенный редактор TinyMCE, многоязычный интерфейс администратора, понятный мастер установки и много чего другого. И в тоже время делать сайты визитки на Друпале немного неправильно, сам факт выделения 64Мб оперативной памяти для сайта визитки на 20 страниц и хостинг для этого «проекта» может вызвать истерический смех у многих веб-разработчиков.

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

Читать дальше →
Всего голосов 66: ↑44 и ↓22+22
Комментарии82

Темизация на основе Zen

Время на прочтение1 мин
Количество просмотров4K
Cледующее видео доклада c DrupalCamp Kyiv 2009, подготовленное Александром Митасовым и нашим видео-партнером «Николаевским курьером» — «Темизация на основе Zen».

Всего голосов 5: ↑4 и ↓1+3
Комментарии6

Видео доклада «Продвинутый мультисайтинг»

Время на прочтение1 мин
Количество просмотров1.5K
Новое видео доклада с DrupalCamp Kyiv, в этот раз от Влада Савицкого о мультисайтинге в Друпале.



И снова спасибо нашему видео-партнеру «Николаевскому курьеру» и Александру Митасову лично.
Всего голосов 22: ↑14 и ↓8+6
Комментарии3

Реальный опыт разработки интернет-магазина

Время на прочтение1 мин
Количество просмотров3.8K
Встречайте новое видео доклада c DrupalCampKyiv 2009 Юрия Глушкова о принципах разработки интернет-магазина на Ubercart.



P.S. Спасибо нашему видео-партнеру «Николаевскому курьеру» и Александру Митасову лично.
Всего голосов 26: ↑15 и ↓11+4
Комментарии7

Чеклист запуска сайта

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

Этот чеклист будет полезен всем, кто запускает сайты или следит за этим увлекательным процессом. Ничего не пропустите!
Читать дальше →
Всего голосов 168: ↑140 и ↓28+112
Комментарии70

Drupal — победитель Webware 100 Awards

Время на прочтение1 мин
Количество просмотров701
image
Drupal уже третий год подряд получает награду Webware 100. В этом году Drupal участвовал в категории Social & Publishing, вместе с известными сервисами: MySpace, Facebook, Twitter, и Wordpress.com. Drupal — один из 10 лидеров в этой категории.

Цитата из CNET:
Награда Webware 100 присуждается лучшим Web 2.0 сайтам, сервисам и продуктам, известным в Интернете на сегодняшний день. После просмотра более 6 000 кандидатов, были отобраны 300 финалистов. Пользователи совершили финальный выбор, отдав более 600 000 голосов за 100 самых лучших продуктов — по 10 в 10-ти категориях.

Ура, товарищи!
Всего голосов 53: ↑40 и ↓13+27
Комментарии52

SMTP relay или что делать если ваш сервер попал в email-блеклист

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


Если вдруг невинные письма с вашего сайта начали повально попадать в spam-боксы почтовиков, это может означать, что IP вашего сервера попал в email-блеклист. Вероятность этого возрастает, если у вас не свой собственный сервер. Примерный сценарий попадения в блеклист таков:
  • Юрий Иванович, директор небольшой студии танцев, имеет сайт «по соседству» с вами (читай, на том же сервере). В один прекрасный момент, Юрий Иванович узнает о чудесных перспективах email-маркетинга и рассылает пачку из двадцати тысяч писем с однотипной рекламой своей студии.
  • Или же, Вася Попов, не пользующийся антивирусом, но любящий старые версии Total Comander, апдейтит свою домашнюю страничку по FTP. В один прекрасный момент, спящий ранее троян, похищает пароли к Васиному FTP (которые лежат незащищенные в папке Total Comander). На следующий день, Васина домашня страничка уже отсылает десятитысячное предложение о покупке виагры.
  • Или же, Петя Твердохлебов, который имеет рядом сайт на Друпале версии 5.0 и думает что обновления это «от лукавого», в очередной солнечный день ловит XSS уязвимость и начинает, сам не зная того, отсылать рекламу потенциальным покупателям penis-enlargment pills.


Что делать и как быть?
Всего голосов 50: ↑43 и ↓7+36
Комментарии38

Безопасный код: Работа с пользовательским вводом

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

(ч2. Подделка межсайтовых запросов; ч2. Работа с базой данных)

Наверняка, XSS атаки остаются самыми популярными наравне с SQL инъекциями. Их принцип прост до безобразия, а последствия разнятся от невинного коверканья вывода страниц до получения злоумышленником полного контроля над сайтом.

Некоторые сценарии XSS атак



Устойчивая атака


  • Вова создает частицу контента на сайте Пети.
  • Когда Маша просматривает этот контент, Вовин XSS ворует Машины куки.
  • Теперь Вова может пробраться на сайт, используя Машину сессию.
  • Чем более людей увидит этот контент, тем более успешной можно считать атаку. Максимум достигается путем создания противоречивых холиварных тем на сайте и т.д.
Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии26

Drupal как MVC Framework

Время на прочтение3 мин
Количество просмотров6.2K
«Архитектура программного обеспечения» — эти слова обычно пугают большинство веб-разработчиков фрилансеров. 3-Tier, MVC, Singleton, Factory… «Стойте! прекратите! зачем всё усложнять?» — сказали бы вам в ответ, — «Вот есть же, например, Drupal — темку сверстали, модули докрутили-настроили и в принципе сайт готов.» Действительно, CMS Drupal предоставляет отличную платформу для быстрой разработки, требуя при этом минимальное количество вложенных усилий.

Многие наверняка слышали о таком понятии, как «идеология Drupal» — это как раз то, благодаря чему данная CMS стала такой удобной и эффективной платформой. Но возможно немногие догадываются, что в основе упомянутой идеологии лежит широко известный паттерн MVC, или Model-View-Controller.

Читать дальше →
Всего голосов 63: ↑43 и ↓20+23
Комментарии33

Безопасный код в Друпале: Работа с базой данных

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


(ч1. Подделка межсайтовых запросов; ч3. Работа с пользовательским вводом)

Друпал предоставляет свои собственные средства для доступа к базе данных.

Во-первых, это позволяет не зависеть от используемого типа СУБД. К слову, на сегодняшний момент, полностью функционирует прослойка для MySQL и PostgreeSQL. В седьмом Друпале этот список будет расширен Ораклом и SQLite.

Во-вторых же, прослойка БД позволяет защититься от SQL инъекций.
Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии19

Безопасный код в Друпале: Подделка межсайтовых запросов

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


(ч2. Работа с базой данных; ч3. Работа с пользовательским вводом)

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

Итак, подделка межсайтовых запросов (анг. Сross Site Request Forgery, или, сокращенно, CSRF): что это такое и с чем его едят.

CSRF — это вид атак на посетителей веб-сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника). Для осуществления данной атаки, жертва должна быть авторизована на том сервере, на который отправляется запрос, и этот запрос не должен требовать какого-либо подтверждения со стороны пользователя.

Данный тип атак, вопреки распространённому заблуждению, появился достаточно давно: первые теоретические рассуждения появились в 1988 году, а первые уязвимости были обнаружены в 2000 году.

Одно из применений СSRF — эксплуатация пассивных XSS, обнаруженных на другом сервере. Так же возможны отправка спама от лица жертвы и изменение каких-либо настроек учётных записей на других сайтах(например, секретного вопроса для восстановления пароля).
Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии37

10 шагов к постижению форм в Друпале

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

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

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

И прежде чем начать, я расскажу вам как все-таки заставить любой из этих кусков кода работать. Предположим, вы уже имеете установленный тестовый сайт на Друпал 6. Вам прийдется проделать следующие действия:
  1. Создать новую директорию в sites/all/modules, например my_module
  2. Создать файл my_module.info в директории my_module, содержащий это:
  3. Создать файл my_module.module. Полностью скопировать отсюда первый пример и вставить в my_module.module.
  4. Включить модуль «My module» на странице модулей (admin/build/modules).
  5. Перейти на страницу my_module/form для запуска кода.
  6. Далее вам предстоит провести для каждого примера, полную замену содержимого my_module.module на код последующего примера. Не забывайте после этого переходить на страницу my_module/form для того, чтобы увидеть результаты своей работы.

А дальше огромная куча кода »
Всего голосов 52: ↑45 и ↓7+38
Комментарии26

Отечественный флэш плеер

Время на прочтение2 мин
Количество просмотров900
imageУже давно использовал плеер производства http://flv-mp3.com/, который отличался простотой и элегантностью, но давеча получил письмо с новостью о выходе новой версии их замечательного плеера. Мое описание возможно покажется слишком эмоциональным, но это только потому, что плеер — Это бомба!

Прежде всего, демо-сайт — http://uppod.info/. После часа разборок с настройками, я могу заверить, что все фишки демосайта реализуются плеером на ура.


Читать дальше →
Всего голосов 108: ↑90 и ↓18+72
Комментарии97

AJAX комменты

Время на прочтение1 мин
Количество просмотров649
Специально для тех, кто не подписан на мой RSS, а также для тех, кто не читает новости drupal.[org|ru], спешу сообщить, что мои AJAX комменты таки выпущены в свободное плавание и теперь доступны для скачивания на drupal.org.

Те, кто еще ни видел их в действии, кто хочет сказать спасибо, а также остальные — можете смело бросать свои комменты в этом топике.

Всем спасибо, надеюсь модуль заработает сходу :)
Всего голосов 54: ↑44 и ↓10+34
Комментарии33
1

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Зарегистрирован
Активность