Search
Write a publication
Pull to refresh
15
0
Дмитрий Т. @tyzhnenko

User

Send message

PHP: фрактал плохого дизайна

Reading time32 min
Views207K

Предисловие


Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

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

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать дальше →

Разработчики «Мамбы» на конференции HighLoad++2012

Reading time1 min
Views3.3K
Сегодня стартовала самая значимая конференция для разработчиков HighLoad++2012
Наши прекрасные разработчики расскажут много интересного и полезного о высоконагруженной системе знакомств с аудиторией в 17 000 000 пользователей.

Спикеры «Мамбы»:
Глеб Арестов
Использование Comet для создания интерактивных интерфейсов

Михаил Буйлов
Цикл разработки, визуальный деплой, автоматизация и интернационализация

Дмитрий Ананьев
Практические вопросы использования NOSQL в высоконагруженном проекте (NoSQL-экзотика: TokyoTyrant -> KyotoTycoon -> Google LevelDB)

Илья Шаповалов
Производительный специализированный поиск: архитектура, область применимости

Алгоритмы сортировки в виде пошаговой анимации

Reading time1 min
Views66K
Сортировка последовательности данных — один из столпов компьютерной науки. Проблема в том, как делать сортировку наиболее эффективным образом, и эта задача стоит перед исследователями чуть ли не с первого дня после изобретения компьютера. На сайте sorting.at различные алгоритмы сортировки проиллюстрированы в виде пошаговой анимации, для лучшего понимания принципов их работы.


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

Интересные приемы программирования на Bash

Reading time6 min
Views133K
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
Читать дальше →

Образовательные и обучающие ресурсы для веб-разработчиков и веб-дизайнеров

Reading time15 min
Views144K
Данным постом мы открываем рубрику «Переводы» в нашем блоге. Почему мы решили открыть такую рубрику? Дело в том, что сотни специалистов, работающих в Mail.Ru Group, для решения стоящих перед ними задач ежедневно прочитывают множество интересных статей и постов на форумах. Некоторые из них кажутся нам интересными, и мы считаем своим долгом перевести их на русский и поделиться этими ценными знаниями с Хабражителями.

Пользуясь случаем, хотим сообщить новость: сегодня состоялось открытие Технопарка — нашего образовательного проекта, о котором мы уже не раз писали на Хабре (например, тут, тут и тут). Теперь у технопарковцев есть свое собственное помещение. Изначально Технопарк задуман как место, где талантливые студенты МГТУ им. Баумана могут получить дополнительное образование в сфере веб-разработки, дизайна и программирования, а также окунуться в работу над реальными проектами высокой сложности. В общем, у Технопарка сегодня знаменательный день, и поэтому первый выпуск в рубрике «Переводы» мы решили посвятить образовательным ресурсам для веб-разработчиков и веб-дизайнеров. Ведь пока такие Технопарки не распространились по всей стране, разработчикам зачастую приходится заниматься исключительно самообразованием.

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

Всплывающие метки в формах на чистом CSS

Reading time3 min
Views42K
Возможно, вам уже попадался на глаза этот приём. Это поле ввода, которое выглядит так, как будто в нем есть текстовая подсказка (placeholder), но при начале набора текста она не исчезает, а отодвигается в сторону. Мне нравится эта идея. Брэд Фрост написал очень хорошую статью об этом приёме, подробно рассмотрев все «за» и «против».

Большинство примеров использования этой техники полагаются на JavaScript. В один прекрасный день я зашёл на nest.com, увидел там этот приём и задумался: а нельзя ли реализовать то же самое без JavaScript? И вот что из этого вышло.

Вот так выглядит форма на nest.com:

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

Бан по континентам

Reading time3 min
Views81K


В одно прекрасное утро я просматривал логи и задал себе ряд вопросов:

  1. А жду ли я письма из Юго-Восточной Азии? (когда смотрел логи почты)
  2. И с какого перепугу ко мне стучатся ssh брутфорсеры из Штатов?
  3. Мне надо терпеть сетевые сканеры из Австралии?
  4. Кто мне звонит из Африки? (когда разглядывал логи asterisk)
  5. С какой стати к моему POP-серверу обращаются из Латинской Америки?


Почему бы не забанить по континентам? Оставив только нужный континент(ы)?


Под катом bash скрипт, который этим занимается

Port knocking или как обезопасить себя от брута по ssh

Reading time3 min
Views100K
Речь пойдет о борьбе с надоедливыми брутфорсами и сканерами портов, которые всячески норовят получить доступ к серверу. В статье будет рассказано о технологии Port Knocking, позволяющей обезопасить доступ на сервер посредством скрытия портов.

Хочу узнать больше!

Форс-мажоры, или как люди теряли свои данные

Reading time5 min
Views39K
Бородатая присказка гласит: админы делятся на тех, кто не делает бэкапы, и тех, кто уже делает. У большинства осознание необходимости делать резервные копии приходит после крупной личной потери данных. И, несмотря на обилие душещипательных историй о том, как люди теряли всё, до сих пор многие продолжают надеяться на то, что бэкапы кто-то сделает за них. В качестве напоминания о неверности такого подхода, я хочу привести несколько примеров того, как люди совершенно неожиданным образом лишались своих данных или были на грани этого.

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

Несколько интересностей и полезностей для веб-разработчика #12

Reading time2 min
Views39K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

BrowserSync



Я считаю это лучшим Live Reload инструментом. BrowserSync — это: конечно же перезагрузка страницы после изменения исходных файлов в том числе и серверных (PHP, ASP, Rails и др); синхронизация с десктопами, планшетами и смартфонами; синхронизирует между браузерами скроллинг, данные в формах и множество других действий; существует как Grunt и Gulp плагин; доступен на Windows, Linux, MacOS.

npm install -g browser-sync


// Using a an IP based host
browser-sync --proxy "192.167.3.2:8001" --files "app/css/*.css"


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

Новый Userland-RootKit Azazel

Reading time3 min
Views11K
Возможно вы слышали про руткиты Jynx и Jynx2. Это так называемые userland-руткиты, они используют возможность переменной LD_PRELOAD, которая позволяет подгружать любые библиотеки до того, как будет запущена программа. Они уже относительно старые, но все еще хорошо работают.
2 дня назад, Github-пользователь Chokepoint выложил rootkit Azazel. Он основан на исходном коде Jynx и имеет много новых фич:

  • Антиотладочные механизмы
  • Скрытие от unhide, lsof, ps, ldd
  • Скрытие файлов и директорий
  • Скрытие удаленных подключений
  • Скрытие процессов
  • Скрытие логинов
  • Скрытие от локального сниффинга трафика через PCAP
  • 2 бекдора с полноценными шеллами (с PTY):
  • — Crypthook accept()-бекдор
  • — Обычный accept()-бекдор
  • PAM-бекдор для аутентификации под любым пользователем
  • Очистка логов utmp/wtmp для PTY
  • Обфускация строк скомпилированной библиотеки через xor.

Давайте рассмотрим их подробно.
Читать дальше →

CMS будущего

Reading time14 min
Views76K

Покончим с устаревшим подходом к контенту


На протяжении всей истории интернета мы работали с контентом двумя способами:
  1. Создавали «один шаблон на все случаи жизни»
  2. Создавали для каждого случая свой уникальный шаблон

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

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

Создание своего банка, или Как обеспечить себе безбедную старость

Reading time15 min
Views354K
Наблюдая за своими родителями-пенсионерами, а точнее за размерами их пенсий, я крепко задумываюсь о том, как обеспечить себе нечто оное в достойном меня размере. На государство в составе СНГ рассчитывать, похоже, не приходится. Значит, надо что-то делать самому! И начинать надо сейчас, пока мне 32 года, есть какой-никакой заработок и силы крутиться. Раньше были мысли, что я буду вечно молодым, вечно здоровым и все время что-то делать. Постепенно начинаю осознавать, что лет 20… 30 — и силы будут таять (или распыляться). Поэтому пару лет назад я начал понемногу что-то делать в этом направлении. Получил некоторый опыт, который может быть интересен уважаемому сообществу. Даже если для читателя вопрос пенсии сейчас звучит безумно абстрактно, то все равно рекомендую хотя бы пробежаться. Если бы я 5 лет назад почитал такой материал — я был бы уже существенно богаче!..
UPD: в статье добавил про смысл диверсификации, а то в комментариях много вопросов было…
В общем, рекомендую!

Какие «хлебные крошки» нужны интернет-магазинам (68% сайтов допускают ошибки)?

Reading time4 min
Views68K


От переводчика

Юзабилити интернет-магазина — это конструктор, состоящий из множества разных деталей. Одна из шестерёнок этого конструктора — это «хлебные крошки». О них и пойдёт речь в статье. Это мой перевод статьи: http://baymard.com/blog/ecommerce-breadcrumbs. Неточности или ошибки перевода (если Вы такие найдёте) прошу отправлять в личные сообщения — я оперативно внесу необходимые правки. Если статья будет интересна — обязательно переведу и другие материалы подобной тематики.

Введение


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

Сопоставляя различные показатели 40 крупнейших сайтов e-commerce, исследователи обнаружили, что 68% интернет-магазинов испытывают трудности с внедрением этого компонента: 45% сайтов располагают лишь одним вариантом «крошек», а у 23% сайтов «хлебные крошки» вообще отсутствуют.
Читать дальше →

Как я взломал Гитхаб еще раз

Reading time3 min
Views88K
Это история о том, как я соединил 5 Low-severity багов в один большой баг, с помощью которого можно было читать/писать в приватные репы на Гитхабе (опять).

Несколько дней назад гитхаб запустил баунти программу. За 4 часа я смастерил такой URL после посещения которого я получал доступ к вашему гитхаб аккаунту и репозиториям. Хотите узнать как?
Читать дальше →

Делаем Twitter Cards с галереями и котиками

Reading time6 min
Views34K

Речь сегодня пойдет о встраивании расширенного контента в твиты, содержащие ссылку на ваш сайт. Многие наверняка встречались с подобным в Facebook'е или ВК: вы расшариваете в соцсеть некую ссылку, а помимо нее туда автоматически подгружается, например, заголовок, описание и изображение. Вот только поддержка технологии для VK и FB сейчас не является редкостью, а Twitter Cards встречаются не так часто, особенно в рунете.
Читать дальше →

Анализ источников трафика для повышения конверсии

Reading time9 min
Views36K
Google Analytics - мощный инструмент для анализа трафика В этой статье речь пойдет о том, как правильно анализировать источники трафика, например, с помощью инструментов Google Analytics или Yandex Metrica. Отключив источники с низкой либо нулевой конверсией, можно существенно поднять общую конверсию, снизить стоимость заказа и улучшить рентабельность интернет-рекламы.

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

Постинг в популярные соц сети с помощью джема social_poster

Reading time2 min
Views6.1K
SocialPoster — это джем, который позволяет с легкостью постить в популярные социальные сети из вашего руби приложения. В данный момент есть поддержка таких сетей:
  • Facebook
  • Twitter
  • Livejournal
  • Vkontakte
Читать дальше →

Тренды e-commerce: Что важнее всего для интернет-магазина? Часть 1

Reading time3 min
Views17K
Электронная коммерция является высокотехнологичной отраслью, а круг задач, с которыми сталкиваются владельцы интернет-магазинов, довольно широк. Тем не менее, есть моменты, на которые стоит обращать внимание в первую очередь. Недавно мне на глаза попался интересный пост о том, как eBay использует дата-майнинг, для увеличения эффективности работы по основным направлениям. Сегодня мы хотим поговорить об этих самых критически важных вещах для любого интернет-магазина.

Товарные рекомендации


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

image

Разработка собственной рекомендательной системы – довольно сложная инженерная задача, ведь при генерации рекомендации необходимо учитывать различные свойства продуктов, их категории, ценовые диапазоны и шаблоны поведения пользователей. Поэтому логично использовать готовые решения – в России это, например, Crossss и Retail Rocket. Готовые системы товарных рекомендаций устанавливают многие крупные российские интернет-магазины, так что это, определенно, стоящий вариант.
Читать дальше →

Запускаем мобильное направление в компании: к чему готовиться и как жить

Reading time11 min
Views14K


Один из самых заметных трендов рунета — стремительный рост мобильной аудитории. По данным на конец 2013 года, каждый четвертый хит сети совершается из мобильного браузера. Ежемесячная мобильная аудитория рунета составляет уже свыше 130 миллионов человек, а ежедневно в сеть со смартфонов и планшетов выходят 20-25 миллионов пользователей.

В связи с этим множество e-commerce-компаний и подразделений задумываются над тем, нужно ли сражаться за мобильную аудиторию. Ответ «да» порождает целый вал вопросов. Какие проблемы предстоит решить перед созданием своего первого приложения? Какие риски учесть? Как появление приложения повлияет на бизнес компании и на отдел разработки? К чему готовиться и как жить дальше?

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

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity