Pull to refresh
6
0
Дмитрий @hudson

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

Send message

Использование bit.ly для анализа переходов из email рассылок

Reading time2 min
Views28K
При размещении входящих ссылок на внешних источниках или исходящих ссылок на собственном сайте, возникает проблема получения статистики переходов по этим ссылкам. В частном случае, когда внешняя ссылка ведет на ваш сайт, вы можете получить эту статистику используя веб-аналитику вроде Яндекс.Метрики или Google Analytics анализируя источники трафика (если речь о входящем трафике), либо навешиваете метки на ссылки, если речь о трафике исходящем.



Но есть случаи, когда либо у вас либо закрыт доступ к статистике, либо ссылка размещена не на ваш ресурс (например участие в реферальной программе), либо вы используется CMS, где вставка какого-либо js кода запрещена (и соответственно метки вы проставить не можете), либо используете email рассылку, содержащую ссылки на сайты партнеров (кросс-маркетинг).

В этом случае можно использовать дополнительные возможности, предоставляемые сервисами сокращения URL (в моем случае это bit.ly). Сразу скажу что данный способ не подходит, если вы публикуете внешние ссылки с целью SEO-оптимизации, так как ваша оригинальная ссылка заменяется на сокращенную и поисковики ее «не засчитают».

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

Security и микросервисы

Reading time4 min
Views15K


В сентябре этого года группа наших разработчиков посетила Java-конференцию SpringOne2GX, проходившую в Вашингтоне. Это одна из крупнейших подобных конференций, и мы не могли пройти мимо. Предлагаем вашему вниманию рассказ о том, что полезного и интересного мы вынесли для себя по результатам этой конференции.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments0

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views121K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3+88
Comments44

Десктопные приложения на JavaScript. Часть 1

Reading time6 min
Views155K
Ни для кого не секрет, что в наше время JavaScript стал одним из самых популярных языков программирования. В далекие 90е годы, в момент зарождения языка, когда он был создан с единственной целью добавить интерактивность веб страницам и улучшить процесс взаимодействия с пользователем, кто бы мог подумать, что он достигнет столь небывалых высот. Ведь сейчас на нем можно делать практически все что угодно. Хотите написать сайт: и бэкэнд и фронтэнд на JavaScript? пожалуйста! Хотите написать мобильное приложение на JavaScript? нет проблем. Программируете микроконтроллер – и тут вам на помощь придет JavaScript.

Есть конечно небольшие минусы в подходе использования JavaScript везде, но если поразмыслить, то сколько времени и сил можно сэкономить, изучив всего лишь одни язык, особенно, если то же самое приложение должно работать на разных платформах. Разных платформах говорите? Хм… Точно – разных платформах – теперь JS может позволить себе десктопные приложения для Windows, Linux, Mac, как спросите вы? Ответ прост: встречайте – NW.js.

По первым буквам можно прочитать – Node.js + Webkit, если данные понятия вам пока не знакомы, то скоро вы поймете о чем идет речь.

Node.js – программная платформа, основанная на движке V8, который транслирует наш скрипт в машинный код. Данная платформа была создана в 2009 году преимущественно для работы с бэкэндом сайтов.

WebKit — свободный движок, разработанный компанией Apple. Впервые был анонсирован в составе Safari в 2003 году
Итак, коду, написанному на JS для данной технологии, будут доступны как Node.js модули, так и стандартный браузерный API (соответственно WebKit)
Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments24

Светодиодные лампы из магазина Ашан

Reading time4 min
Views67K
Большинство светодиодных ламп, которые я тестирую и о которых пишу, можно купить только в специализированных интернет-магазинах, однако обычные покупатели как правило покупают лампы в гипермаркетах. Я съездил в магазины Ашан и Леруа Мерлен, купил там 48 моделей светодиодных ламп и протестировал их. Лампы вернул обратно в магазины, так как там есть возможность возврата. О лампах из Леруа Мерлен расскажу в следующий раз, сегодня — 22 лампы из Ашана.


Читать дальше →
Total votes 107: ↑105 and ↓2+103
Comments82

Пользовательские плагины в JavaScript играх

Reading time6 min
Views12K
Wargaming сейчас разрабатывает тактическую карточную игру WoT: Generals. Веб-версия написана на JS, используются LibCanvas и AtomJS. Я принимал непосредственное участие в разработке и хочу рассказать про функционал, который мне кажется интересным и может быть полезным во всех веб-играх. А именно — о системе плагинов игры, которая вдохновлялась пакетными менеджерами в Linux и имеет следующие возможности:

— История изменений плагинов
— Автоматическое обновление плагина при обновлении версии игры
— Разработка плагинов на localhost
— Неограниченное количество веток, например, для нестабильных версий
— Зависимости (плагин А автоматически подключает плагин Б)
— Встроенная возможность делать паки (следствие предыдущего пункта)
— Легкое изменение любой части клиента игры
— Полный административный контроль авторов игры над всеми плагинами
— Поиск по базе плагинов
— При этом простая установка юзером и удобная работа для плагинописцев.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments20

Нейросеть в 11 строчек на Python

Reading time8 min
Views534K

О чём статья


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

Дайте код!


X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)


Слишком сжато? Давайте разобьём его на более простые части.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments17

Лекции Технопарка: мастер-класс Алексея Рыбака «Про то, что я бы хотел, чтобы мне рассказали, пока я учился»

Reading time25 min
Views47K
Сегодня мы начинаем серию публикаций новых мастер-классов Технопарка. И первая из них — мастер-класс Алексея Рыбака на свободную тему, в котором он поделился со студентами соображениями о том, чем работа в реальной жизни отличается от учебы. Видео смотрите на нашем сайте, а адаптированную расшифровку — ниже.

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

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


Читать дальше →
Total votes 66: ↑61 and ↓5+56
Comments15

Эволюция домашнего NAS. Итог шести лет

Reading time6 min
Views37K
Все началось тогда, когда в моем доме появился второй компьютер. А файлами захотелось пользоваться сразу с нескольких устройств. Самым простым оказалось расшаривание общей папки, но необходимость оставлять компьютер включенным несколько напрягала. Тогда начались поиски решения, которые вылились в многочисленные эксперименты, и как итог, в написание этого материала.


Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments125

Моментальная загрузка десктопных и мобильных сайтов: часть 1

Reading time6 min
Views16K
Web optimization

Привет, Хабровчане! Сегодня поговорим об оптимизации скорости загрузки сайта. Это первое на что обращает внимание пользователь особенно при входе с мобильных устройств. Какие проблемы ведет за собой низкая скорость сайта:
— снижение конверсии (исследование Walmart);
— уменьшение охвата аудитории;
— увеличение показателя отказов;
— снижение доступности сайта;
— снижение скорости индексации поисковыми роботами.
Читать дальше →
Total votes 23: ↑13 and ↓10+3
Comments28

Персонажи сказок Старой Руси

Reading time15 min
Views189K


Если вы регулярно читаете наш блог, то наверняка помните пост про создание собаченьки, персонажа мобильной игры «Эволюция». Нарисовал её (и написал пост) ведущий художник проекта Роман Amokrus Папсуев. Однако, как и все талантливые люди, Роман творит не только на работе, но и в свободное время — для души. Однажды ему пришла в голову идея перерисовать всем известных персонажей русских сказок и былин в современном игровом фэнтези-стиле. В результате получилась целая серия замечательных карандашных рисунков, выполненных с большим вниманием к деталям. Роман не руководствовался персонажами какой-то конкретной игры, образы получились собирательными. Впрочем, лучше сто раз увидеть, чем один раз прочитать.

Добро пожаловать под кат, его рассказ ждет вас там (также смотрите вторую часть). Много картинок внутри!
Читать дальше →
Total votes 149: ↑134 and ↓15+119
Comments126

Node.js в бою (создание кластера)

Reading time9 min
Views71K
Когда вы используете приложения на node.js в продакшене, вам приходится задумываться о стабильности, производительности, безопасности и удобстве поддержки. Данная статья описывает мои мысли о лучших практиках использования node.js в бою.

К окончанию данного руководства вы получите систему из 3 серверов: балансировщик (lb) и 2 сервера приложений (app1 и app2). Балансировщик будет следить за доступностью серверов и распределять между ними траффик. Серверы приложений будут использовать комбинацию systemd и кластеризации node.js для балансировки траффика между несколькими процессами ноды на сервере. Вы сможете выкатывать код с помощью одной команды со своей машины, и при этом не будет перерывов в обслуживании или необработанных запросов.
Все это можно представить в виде схемы:


Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments17

Symfony2 двухфакторная авторизация с помощью сертификата

Reading time3 min
Views8K
Речь пойдет о Symfony2-CertAuthBundle — бандле для популярного фрейморка Symfony2, который позволяет легко внедрить двухфакторную аутентификацию на основе x509 сертификатов клиентов.

Иногда стандартной аутентификации в виде формы логина недостаточно чтобы надежно защитить проект.

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

Для тех, кто считает, что его проекту нужен более надежный метод защиты добро пожаловать под кат.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments3

97% людей не добиваются поставленных целей

Reading time4 min
Views30K
Навык планирования является одним из ключевых для достижения поставленных задач. При этом подавляющее число людей этим не занимается. Если верить статистике, то в нашем современном мире менее 3% людей достигают большего, чем остальные 97% вместе взятые.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments14

$29 за инструкцию по постройке стола-трансформера

Reading time1 min
Views24K

Демонстрационное видео о работе стола и о его сборке

Инженер из Мичигана Скотт Рамшлаг [Scott Rumschlag] обнаружил, что ему очень тяжело проводить в сидячем положении весь рабочий день. Ещё недавно он был студентом, и хотя участь студента также в основном сидячая, её получалось разбавлять прогулками пешком и на велосипеде.

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

Несколько месяцев разработки и планирования – и стол готов. Управление столом выглядит довольно простым делом. А для всех тех, кто так же, как он, хочет разнообразить свои рабочие позы, Скотт предлагает приобрести у него чертежи стола всего за $29. На 26 страницах найдутся как изображения всех необходимых деталей с размерами, так и инструкция по сборке. Инструкцию можно скачать в виде PDF сразу после оплаты.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments9

Подводные камни Entity Framework и производительность

Reading time15 min
Views67K
При работе с Entity Framework, как и с любым другими ORM, часто возникают вопросы, связанные с его производительностью. Многие разработчики из-за незнания нюансов делают ошибки, приводящие к плохим результатам. Затем, во время анализа проблем и поиска решений, недостаточно разобравшись в вопросе, приходят к выводу, что улучшить ситуацию можно только переходом на другой ORM или отказом от него вообще. Хоть в некоторых ситуациях такое решение может оказаться разумным, зачастую не все так плохо — просто нужно знать нюансы. В этой статье я попытался собрать те подводные камни, с которыми мне чаще всего приходилось сталкиваться на практике.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments21

Мегаобзор микрофонов для записи подкастов

Reading time13 min
Views55K


Мы очень внимательно следим за тем, что происходит в сфере подкастинга и принимаем регулярное участие в записи одного из наиболее востребованных подкастов в Рунете – передаче «Звук».

Создание передачи – это отдельная история с множеством разнообразных нюансов. Сегодня мы поговорим об одном из них и посмотрим, какие микрофоны для записи подкастов рекомендуют эксперты вроде Марко Армента.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments29

На что обратить внимание ИТ-руководителю

Reading time2 min
Views23K
Сегодня мы решили заглянуть в один из тредов на Hacker News и проанализировать тематическое обсуждение проблемы, связанной с переходом к управленческой работе ИТ-специалистов.

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments15

Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса

Reading time29 min
Views107K
На прошлой неделе BBC рассказала, что для новой версии главной страницы использовала методологию БЭМ, созданную в Яндексе. По такому случаю мы решили поднять материалы мастер-класса «Разрабатываем сайт с нуля на полном стеке БЭМ-технологий» и рассказать вам, как начать использовать полный стек БЭМ-технологий в своих проектах.

БЭМ упрощает разработку сайтов, которые нужно быстро создавать и долго поддерживать. Эту технологию используют во фронтенде почти всех сервисов Яндекса, и она уже успела обрасти множеством библиотек и инструментов, которыми мы хотим с вами поделиться.



В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.

На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Читать дальше →
Total votes 96: ↑79 and ↓17+62
Comments37

50 лучших дизайнов рассылок (и как самому делать так же круто) (Часть 2)

Reading time3 min
Views10K
Продолжаем публиковать перевод статьи о лучших дизайнах рассылок. Изучайте опыт зарубежных специалистов, обсуждайте горячие темы email-маркетинга на конференциях и делитесь вашими наблюдениями в комментариях!

11. Направляйте внимание


Прекрасный пример фокусировки внимания на главном представлен в письме Corbis. Эмоциональные фотографии на строгом чёрном фоне очень сильно привлекают внимание и производят мощное впечатление. Большие поля по краям позволяют избежать перегруженности макета. Выбранный дизайн отлично работает для такого материала: использование цитат из истории в качестве заголовков побуждает читателя прочесть всё.


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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity