Pull to refresh
13
0
Евгений @rusevgen

User

Send message

Ваш сайт тоже позволяет заливать всё подряд?

Reading time4 min
Views52K
Один французский «исследователь безопасности» этим летом опубликовал невиданно много найденных им уязвимостей типа arbitrary file upload в разных «написанных на коленке», но популярных CMS и плагинах к ним. Удивительно, как беспечны бывают создатели и администраторы небольших форумов, блогов и интернет-магазинчиков. Как правило, в каталоге, куда загружаются аватары, резюме, смайлики и прочие ресурсы, которые пользователь может загружать на сайт — разрешено выполнение кода PHP; а значит, загрузка PHP-скрипта под видом картинки позволит злоумышленнику выполнять на сервере произвольный код.

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

Как ему это удастся?
Total votes 121: ↑102 and ↓19+83
Comments120

9gag получил почти $3 млн инвестиций

Reading time2 min
Views8.7K
image

Быстрорастущий гонконгский проект 9gag, посвященный интернет-мемам, комиксам и другим видам сетевого юмора, поднял $2,8 млн инвестиций. Об этом сообщает AllThingsD.

Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments35

Принцип цикады на чистом CSS

Reading time2 min
Views13K
Принцип цикады позволяет строить очень длинные неповторяющиеся фоны веб-страниц из нескольких простых изображений. Он был впервые описан Алексом Уокером в апреле 2011 года и быстро завоевал популярность. На сайте designfestival.com появилась целая галерея фонов, сделанных по этому принципу.

Во многих случаях можно сэкономить ещё больше, используя градиенты. Даже с учётом того, что пока практически все браузеры поддерживают свойство linear-gradient только с префиксами, суммарный объем кода CSS, необходимый для создания фона, в несколько раз меньше размера нескольких PNG с фрагментами, и, что ещё важнее — вообще не требует лишних запросов к серверу. Так, Эрик Мейер недавно привёл пример реализации первых двух фонов из оригинальной статьи Уокера на чистом CSS. Для простых цветных полосок (вверху) понадобилось 2.66 Кб кода CSS (с префиксами, без минификации и компрессии). В будущем, когда все популярные браузеры избавятся от префиксов, будет достаточно 0.59 Кб кода. В оригинальном примере изображения весили около 6 Кб + 3 запроса к серверу. Второй пример с занавесом (внизу) впечатляет ещё больше. Даже с префиксами получается примерно десятикратный выигрыш.
Читать дальше →
Total votes 102: ↑80 and ↓22+58
Comments26

Фоткер — комфортный просмотр Яндекс.Фоток

Reading time2 min
Views11K
Я — фотолюбитель и я очень люблю Яндекс.Фотки. Они служат мне одновременно и витриной моих снимков, и памятью о поездках, и одним из бэкапов. Но в случае, когда я хочу дать ссылку на просмотр какого-то альбома, мне становится бесконечно стыдно.
Почему же тебе стыдно, дорогой Хабраюзер?
Total votes 88: ↑80 and ↓8+72
Comments79

Квадрокоптер-R2. Апгрейд

Reading time4 min
Views100K
Весной я писал как построить дешевый и простой коптер за 1 день и $120
Основной его недостаток — довольно примитивный по возможностям контроллер KKmultiсopter — он даже горизонт сам держать не умеет. Что-ж, исправим этот недостаток!
Тех, кто уже построил по предыдущему рецепту, спешу успокоить — бюджет апгрейда всего $40-55. Для тех, кто строить будет с нуля, есть возможность улучшить конструкцию.
Я построил второй коптер, т.к. комплектующие для него были куплены давно.
image
Апгрейдим до R2
Total votes 87: ↑82 and ↓5+77
Comments118

Клавиатурные сокращения с Javascript

Reading time1 min
Views1.9K
Mousetrap — маленькая библиотека (1.4 KB) для обработки клавиатурных нажатий.

// single keys
Mousetrap.bind('4', function() { highlight(2); });
Mousetrap.bind("$", function() { highlight(3); }, 'keydown');
Mousetrap.bind('x', function() { highlight(4); }, 'keyup');

// combinations
Mousetrap.bind('command+shift+K', function() { highlight(7); });
Mousetrap.bind(['command+k', 'ctrl+k'], function() { highlight(8); });

// gmail style sequences
Mousetrap.bind('g i', function() { highlight(11); });
Mousetrap.bind('* a', function() { highlight(12)});

// konami code!
Mousetrap.bind('up up down down left right left right b a enter', function() {
    highlight([15, 16, 17]);
});

Как видно, поддерживаются как одиночные нажатия, так и сочетания и клавиатурные комбо.

Работает в Internet Explorer 6+, Safari, Firefox, Chrome (с включенным Vimium не работает).

Пробуйте — craig.is/killing/mice
Total votes 58: ↑55 and ↓3+52
Comments28

Твиттер-боты создают события в международном масштабе

Reading time2 min
Views4.9K

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

@Trackgirl отслеживала поток твитов с популярными в данный момент хештэгами, и публиковала их от своего имени. Три раза в день она фолловила 5 человек. Получалось, что она связана с правильными людьми, и другие люди стали фолловить ее, считая, что ее копипасты о беге на длинные дистанции исходили от живого человека. Однажды она твитнула о том, что повредила колено… Тысячи людей интересовались самочувствием скрипта и искренне сопереживали боту.
Читать дальше →
Total votes 94: ↑80 and ↓14+66
Comments60

Codecademy запустил русскую версию

Reading time1 min
Views223K


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

Это стало возможным благодаря получению 10 млн долларов венчурного финансирования от Kleiner Perkins, Index Ventures, Union Square Ventures, Юрия Мильнера и Ричарда Брэнсона, сообщает TechCrunch.

Сервис помогает научиться программировать всем тем, кто хочет основать собственные технологические компании, не имея необходимых технических навыков. Новые пользователи, работая над наборами уроков от других пользователей, учатся писать простые функции и создавать более сложные задачи и решения.
Total votes 82: ↑73 and ↓9+64
Comments62

Рисуем тайлы с данными для GoogleMap на PHP

Reading time9 min
Views4.2K
Преамбула

В настоящее время очень популярно заниматься визуализацией каких-либо данных на картах. Да прочем и не только визуализацией, применений множество: игры, гео-сервисы, визуализация, статистика и многое-многое другое. С одной стороны, применение canvas это хорошо и современно, с другой же — количество объектов может превышать все мыслимые и немыслимые пределы, что ведет к уменьшению скорости работы пользователя с такими сервисами, тысячи полигонов на canvas «тормозят клиента», браузеры «жрут» память в огромных количествах и т.п. Это не говоря уже о том, что хоть и редко, но необходима поддержка «старых» браузеров, не поддерживающих canvas/html5.

Простой пример


Представьте что-то подобное этой картинке, уменьшите масштаб и увеличьте тем самым количество полигонов в «кадре» до 5 000. Офисный компьютер двух- или трех-летней давности может и умереть на отрисовке такой карты. Бороться с этим можно просто добавив оверлей слой на карту со своими тайлами.

Подробности и готовый код
Total votes 11: ↑8 and ↓3+5
Comments6

Некоторые тонкости установки на сайт кнопок «Поделиться» (share) социальных сетей

Reading time5 min
Views205K
Сегодня, в эпоху социальных медиа, принято давать посетителям сайта возможность поделиться с друзьями. Мы делали промо-страницу к Дню Рождения интернет-магазина Allsoft и нам нужно было установить кнопки «Поделиться» от Facebook, Twitter, Одноклассников, Вконтакте и Мой мир.

С первого взгляда показалось — что может быть тут особенного — поставил готовый html/js код и готово? Но тонкости оказались в деталях: что если для одной соц. сети нужно передавать один текст, а для другой — другой? Как правильно передать картинку и описание во все сети? А если несколько разных вариантов текста и картинок на одной странице? Как почистить уже закешированную информацию о ссылке в соц.сети? На все эти вопросы нам пришлось найти ответы, которые и вы сможете узнать из этой статьи.
Читать дальше →
Total votes 74: ↑59 and ↓15+44
Comments44

Строим карту популярности дней рождения с помощью Processing и VK API

Reading time18 min
Views17K

Вступление


Несколько дней назад в блоге The Daily Viz была опубликована запись, которая привлекла внимание широкой общественности как пример простой и эффективной визуализации данных.



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



Через какое-то время автор визуализации опубликовал в том же блоге второй пост, извинившись за то, что ввел сообщество в заблуждение, не прокомментировав должным образом исходные данные, использованные в работе над изображением. Проблема была в том, что исходный сет данных не содержал информации о реальном числе родившихся в тот или иной день людей. Информация была дана в другом виде — на каком месте (rank) находится тот или иной день в «рейтинге» популярности дней рождения.



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



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

Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments22

Использование API Яндекс.Карт для работы с произвольными подложками

Reading time4 min
Views26K


Что общего у трех картинок сверху? На левой — часть Санкт-Петербурга из OpenStreetMap. На центральной — карта из Lineage 2. На правой — автомобильные пробки Москвы на подложке от Google. А объединяет эти изображения новое API Яндекс.Карт, вышедшее совсем недавно.

Одной из особенностей API 2.0 является очень простая в использовании поддержка произвольных подложек. Вам не обязательно использовать карты Яндекса для своего ресурса. Никто не мешает скрестить подложку от OpenStreetMap и мощное API от Яндекса для реализации функционала карты.

Хотите показать на OpenStreetMap область доставки вашей пиццерии? Расположить на карте монстров очередной MMORPG? Отобразить Яндекс.Пробки на карте от Google? Нет ничего проще!

Заинтересовало?
Total votes 21: ↑21 and ↓0+21
Comments14

Bomberman Online — HTML5 мультиплеер онлайн игра от хабраюзеров. Тестируем нагрузку!

Reading time2 min
Views18K
Bombermine Online — результат последних двух недель тестирования и подготовки движка для большого кол-ва игроков онлайн.

Движок написан на Java + Jetty (бекэнд). Фронтэнд — HAProxy + Nginx + Node.js. Клиентсайд — GWT, который транслируется в HTML5/canvas + javascript + websockets. Хостится всё в облаке.

На данный момент рекорд — 50 игроков онлайн. Настроен весь необходимый софт для мониторинга нагрузки. После хабраэффекта обещаем выложить отчёт. Ждём гостей.

Ну а под катом: видео геймплея и немного предыстории создания движка
Total votes 208: ↑195 and ↓13+182
Comments179

JavaScript API Яндекс.Карт — версия 2.0

Reading time3 min
Views31K
Всем привет! Меня зовут Сергей Константинов, и я руководитель группы разработки алгоритмов API Яндекс.Карт.

Сегодня мы запустили новую версию JavaScript API — 2.0. Вообще, в этом месте должна быть перепечатка поста из блога Яндекса, но мы решили в этот раз отступить от традиции :).

Вместо сухого официального сообщения, я попробую в тёплой ламповой обстановке рассказать вам, как и зачем мы делали JavaScript API 2.0.

Читать дальше →
Total votes 66: ↑66 and ↓0+66
Comments158

Простой parallax эффект для промо-сайта

Reading time1 min
Views26K
В последнем проекте который состоял всего из одной странички, потребовалось реализовать простой эффект, суть которого лучше понять на примере #1 и #2.

Поскольку времени для реализации было достаточно, и долгое время таится желание написать хоть что-то, что может помочь другим разработчикам. Оформил все это дело в совсем малюсенький и простой plugin для jquery. Надеюсь, теперь этот код могут прочесть не только я и мой кот Борис, если же это и вовсе кому-то поможет в работе то я совсем не против использования его в ваших проектах, изменения копирования редактирования и т.д.
Читать дальше →
Total votes 122: ↑102 and ↓20+82
Comments55

Радикальное кеширование в Joomla 1.5

Reading time7 min
Views7.9K
image

Бесплатная CMS это всегда компромисс, компромисс между целым рядом очевидных факторов, перечислять которые в рамках данного ресурса смысла пожалуй нет, т.к. они всем давно известны. Безусловно, среди всего разнообразия бесплатных СМS можно выделить некоторые, которые будут лучше или хуже в каких-то отдельных номинациях, вроде скорости работы, простоты освоения новичком и т.п. Но в данной статье речь не об этом. Я просто хочу поделиться опытом успешного решения проблемы скорости генерации страниц в Joomla с помощью кеширования. Причём кеширования очень радикального, на «уровне» index.php.

Хочу сразу отметить, что сие повествование не является каким-то принципиальным новшеством, и я не претендую на какие-либо лавры. Надеюсь, моё решение поможет хотя бы кому-то продлить «малой кровью» жизнь старого проекта на Joomla.
Читать дальше →
Total votes 16: ↑8 and ↓80
Comments13

Резервное копирование данных в MySQL

Reading time5 min
Views151K
Резервное копирование базы данных — это такая штука, которую вечно приходится настраивать для уже работающих проектов прямо на «живых» production-серверах.
Подобная ситуация легко объяснима. В самом начале любой проект еще пуст и там просто нечего копировать. В фазе бурного развития головы немногочисленных разработчиков заняты исключительно прикручиванием фишек и рюшек, а также фиксом критических багов с дедлайном «позавчера». И только когда проект «взлетит», приходит осознание, что главная ценность системы — это накопленная база данных, и её сбой станет катастрофой.
Эта обзорная статья — для тех, чьи проекты уже достигли этой точки, но жареный петух ещё не клюнул.
Читать дальше →
Total votes 88: ↑84 and ↓4+80
Comments52

Почему программисты работают по ночам

Reading time3 min
Views107K
Мозг шимпанзе в лондонском музее наукиСогласно поговорке, программисты — это устройства, преобразующие кофеин в код.

Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.

Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.

Читать дальше →
Total votes 300: ↑270 and ↓30+240
Comments287

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity