Pull to refresh
-1
Karma
0
Rating
Никита @braindrain

User

Глубокое обучение в гараже — Братство данных

Reading time 10 min
Views 25K
Python *Programming *Data Mining *GPGPU *Big Data *
Пример работы системы
Вы тоже находите смайлы презабавнейшим феноменом?
В доисторические времена, когда я еще был школьником и только начинал постигать прелести интернета, с первых же добавленных в ICQ контактов смайлы ежедневно меня веселили: ну действительно, представьте, что ваш собеседник корчит рожу, которую шлет вам смайлом!

С тех пор утекло много воды, а я так и не повзрослел: все продолжаю иногда улыбаться присланным мне смайлам, представляя отправителя с глазами разного размера или дурацкой улыбкой на все лицо. Но не все так плохо, ведь с другой стороны я стал разработчиком и специалистом в анализе данных и машинном обучении! И вот, в прошлом году, мое внимание привлекла относительно новая, но интересная и будоражащая воображение технология глубокого обучения. Сотни умнейших ученых и крутейших инженеров планеты годами работали над его проблемами, и вот, наконец, обучать глубокие нейронные сети стало не сложнее "классических" методов, вроде обычных регрессий и деревянных ансамблей. И тут я вспомнил про смайлы!

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

Глубокое обучение в гараже — Братство данных
Глубокое обучение в гараже — Две сети
Глубокое обучение в гараже — Возвращение смайлов
Хочу картинок!
Total votes 40: ↑32 and ↓8 +24
Comments 12

Семь принципов создания современных веб-приложений

Reading time 19 min
Views 185K
Ajax *Website development *
Tutorial
Translation
Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

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

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

  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
  • Нужно ли использовать техники вроде PJAX или TurboLinks?
  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
Читать дальше →
Total votes 108: ↑99 and ↓9 +90
Comments 33

Как использовать API сайта, у которого нет API?

Reading time 4 min
Views 78K
Website development *PHP *
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →
Total votes 115: ↑105 and ↓10 +95
Comments 40

Айтишник на отдыхе: добавим немного астрономии?

Reading time 6 min
Views 125K
Astronautics Astronomy

Стремительно приближается лето и сопутствующие ему выезды на природу. Посиделки затягиваются заполночь, и над головой появляются звезды. Но, как правило, зведное небо таинственно и непонятно — астрономию в школах не преподают толком, наверное, уже с конца 80-х, да и кто помнит, чему его учили в школе, если это не использовалось в жизни постоянно? А в небе хватает интересного, особенно если потратить чуть-чуть времени на астрономическое обеспечение выезда на природу.
Читать дальше →
Total votes 107: ↑104 and ↓3 +101
Comments 80

BOOTSTRA.386: тема для Bootstrap в духе 1980-х

Reading time 1 min
Views 108K
Design History of IT
Оказывается, некоторые темы для Bootstrap — это маленькие произведения искусства. В рамках надвигающейся пятницы хотелось бы рассказать об одной из таких тем.

Крис МакКензи — явно один из тех, кто скучает по старым добрым временам DOS, EGA/VGA и Turbo Vision, иначе он вряд ли бы решился сделать что-то подобное. Так что если вы успели устать от засилья плоского дизайна, то добро пожаловать в мир BOOTSTRA.386!

Осторожно: будьте готовы к острому приступу ностальгии. Единственное, чего не хватает для полного погружения — так это навигации с клавиатуры, ну и курсора в виде прямоугольного блока.

image

Читать дальше →
Total votes 201: ↑192 and ↓9 +183
Comments 45

Уязвимость ShellShock эксплуатируется in-the-wild

Reading time 3 min
Views 22K
ESET NOD32 corporate blog
Уязвимость Shellshock (CVE-2014-6271) по масштабности и последствиям для всемирной сети и подключенных к ней устройств можно сравнить только с печально известной Heartbleed, которая была обнаружена весной этого года. Такое название получила уязвимость в командном интерпретаторе Bash, который используется во всевозможных модификациях и дистрибутивах Linux, Unix, Apple OS X (включая новейшую версию OS X Mavericks), а также Android. Уязвимости присвоен наивысший — 10-й уровень опасности, при этом уязвимыми являются все версии интерпретатора, включая новейшую 4.3.



Основную опасность Shellshock представляет по той причине, что он позволяет удаленно выполнить код на уязвимой ОС (исполнять необходимые атакующим команды интерпретатором). При этом с точки зрения эксплуатации уязвимости, это сделать довольно просто. Сам Bash привлекается к использованию в CGI-скриптах (что и позволяет осуществлять удаленную эксплуатацию), которые работают на веб-серверах и не только, например, с использованием компонента cgi_module. Одна из вредоносных программ, которая доставляется атакующими на скомпрометированный сервер обнаруживается AV-продуктами ESET как Linux/DDoS.M.

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

Нужно ли программисту профильное образование? Что думают в Яндексе

Reading time 9 min
Views 98K
Яндекс corporate blog
Сегодня начинается новый учебный год. Сотни человек, которые в будущем станут программистами, стали первокурсниками или продолжат учиться дальше. Но не факт, что у них у все в дипломе будет написано «программист». Важно ли это для них вообще? На этот раз мы решили спросить сотрудников Яндекса, нужно ли программисту профильное образование.



Кстати, мы часто говорим, что Яндекс — компания, созданная программистами. Но, как меня как-то поправил сооснователь Яндекса Аркадий Волож, ни у кого из создателей Яндекса «программист» в дипломе написано не было. То, что рассказали другие наши коллеги, вы, как всегда, можете прочитать под катом.
Читать дальше →
Total votes 69: ↑64 and ↓5 +59
Comments 52

Книги о кибербезопасности: 5+ рекомендаций наших экспертов

Reading time 5 min
Views 93K
«Лаборатория Касперского» corporate blog Information Security *
Недавно у меня состоялся показательный разговор с Алексеем Малановым, сотрудником «Лаборатории» и опытным исследователем вредоносных программ, о том, может ли, например, сотрудник отдела по связям с общественностью (=не технарь) стать вирусным аналитиком? Ответ был простой и сложный одновременно: основы программирования, архитектура процессоров, особенности операционных систем, сетевые протоколы… В общем, «купи книжку по Ассемблеру и приходи лет через пять».

А что, если подняться на уровень выше? От анализа конкретных экземпляров вредоносных программ (что само по себе непросто) перейти к комплексному исследованию компьютерных инцидентов? Этим у нас занимается подразделение Global Research and Analysis Team (GReaT). К ним я недавно обратился с похожим вопросом: какие книги они могут порекомендовать другим специалистам по компьютерной безопасности (имея в виду, что азы программирования и прочие базовые вещи уже освоены)? В результате получился список из пяти книг — а на самом деле из десяти :-), — с которым можно ознакомиться под катом.
Читать дальше →
Total votes 52: ↑48 and ↓4 +44
Comments 14

Руководство по установке и настройке OpenVPN

Reading time 34 min
Views 1.2M
Information Security *
Sandbox



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



По соображениям безопасности доступ к этим ресурсам ограничен при помощи межсетевого экрана (файервола) по портам и адресам IP. Ежедневную перенастройку доступа при изменении динамических IP сотрудников едва ли можно назвать разумным решением.



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


Читать дальше →
Total votes 128: ↑115 and ↓13 +102
Comments 98

Интегрируем Git в Sublime Text

Reading time 3 min
Views 105K
Website development *
Translation


Ускорение рабочего процесса и повышение производительности очень важны для разработчиков. Когда мы работаем — каждая секунда на счету, и время, которое мы проводим за решением повседневных задач (таких, как работа с git) в идеале можно было бы сэкономить и потратить более продуктивно. В этой статье мы рассмотрим способ ускорения работы с Git путем его интегрирования прямо в Sublime Text.
Читать дальше →
Total votes 73: ↑56 and ↓17 +39
Comments 42

10 самых распространённых ошибок при программировании на JavaScript

Reading time 10 min
Views 155K
VK corporate blog Website development *JavaScript *
Translation


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

На первый взгляд, этот язык может показаться довольно простым. Встраивание в веб-страницу базового функционала JavaScript — это не проблема для любого опытного разработчика, даже если он ранее не сталкивался с этим языком. Однако это обманчивое впечатление, поскольку JavaScript гораздо сложнее, мощнее и чувствительнее к нюансам, чем кажется поначалу. Немало тонкостей в этом языке приводит к большому количеству распространённых ошибок. Сегодня мы рассмотрим некоторые из них. На эти ошибки нужно обратить особое внимание, если вы хотите отлично программировать на JavaScript.
Читать дальше →
Total votes 205: ↑176 and ↓29 +147
Comments 127

Как стать системным администратором — пособие для начинающих (часть 1)

Reading time 10 min
Views 780K
System administration *
Так получилось, что эту весну я провёл в поисках/собеседованиях людей аж на четыре вакансии, связанные с системным администрированием. Я пообщался с несколькими десятками людей и заметил характерные ошибки и проблемы, с которыми они сталкиваются. Излагаю то, что заметил, а так же свои мысли, как эти проблемы решить.

scope: начинающие системные администраторы, помощники системных администраторов и т.д. Опытным администраторам, а так же тем, кто имеет вполне конкретную специализацию будет если и интересно, то бесполезно.

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

Какие бывают системные администраторы?

Читать дальше →
Total votes 243: ↑226 and ↓17 +209
Comments 142

«Делай что должен» или «Кем я точно не хочу быть в 50 лет»

Reading time 9 min
Views 157K
GTD *


Многих из вас, возможно, посещала крамольная мысль «а тем ли я занимаюсь, чем должен?». На правильном ли вы пути? Действительно ли расходуете отведенное вам на планете время на нужные и значимые дела? Стоит ли вообще заниматься тем, чем вы занимаетесь? Как найти свое предназначение и не пожалеть о потраченных впустую годах? Позволим же себе предаться философии чтобы в очередной раз осмыслить свое предназначение.
Читать дальше →
Total votes 56: ↑41 and ↓15 +26
Comments 79

Ежедневная работа с Git

Reading time 40 min
Views 841K
Git *Version control systems *
Tutorial
Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
  • будет ли менеджер и заказчик удовлетворён этим процессом?
  • будет ли легко работать разработчикам?
  • смогут ли новички быстро включиться в процесс?
  • можно ли процесс относительно легко и быстро изменить?


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

Далее очень много букв случайным образом превратились в пост.
Total votes 200: ↑194 and ↓6 +188
Comments 44

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Reading time 20 min
Views 306K
Website development *CSS *Perfect code *HTML *IT Standards *
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

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

Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
Total votes 335: ↑318 and ↓17 +301
Comments 244

Советы front-end разработчику

Reading time 7 min
Views 190K
Website development *CSS *HTML *
Sandbox


Привет, читатель хабра.

Наверное, ты сразу спросишь меня: «Да кто ты такой, чтобы давать мне советы?». Итак, немного обо мне.

Первое мое общение с HTML и CSS было 10 лет назад, еще в школе, когда у меня только появился интернет, и я понял что тоже хочу делать странички, которые сможет увидеть весь мир. С тех пор у меня есть как минимум 5 полных лет опыта разработки сайтов по-взрослому. Сейчас я могу без лишней скромности сказать, что сверстал я уже пару сотен сайтов, большинство из которых, как ни странно, совершенно не совпадают с моими текущими требованиями к верстке.

Я не хочу рассказывать как надо делать, эта статья результат моего опыта и попытка написать рекомендации тем, кто только начинает, хотя и для матерых верстальщиков (слово режущие слух) здесь могут найтись интересные идеи.
Если ты заинтересовался прошу под кат…
Читать дальше →
Total votes 129: ↑109 and ↓20 +89
Comments 139

Голые пятницы #1

Reading time 3 min
Views 38K
Lesta Studio corporate blog CSS *HTML *
Tutorial
голые пятницы

Всем доброго времени суток. Сегодня мы поговорим о том, как красиво оформить выделенный текст, совладать с отступами в кнопках, прокачать скролл в мобильных браузерах, скрестить цвет текста с цветом границ, а также рассмотрим интересные новые единицы измерения.
Поехали!
Total votes 72: ↑68 and ↓4 +64
Comments 22

Заметки о дизайне для разработчиков

Reading time 6 min
Views 50K
Web design *Interfaces *
Translation
Я разработчик. Я не дизайнер. У меня нет опыта работы дизайнером. Я никогда не читал книг о дизайне. И, тем не менее, годами я учился созданию веб-приложений и сайтов, которые бы выглядели профессионально.

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

DISCLAIMER: Оригинальная статья написана программистом, так что дизайнеры могут посчитать часть ниже написанного полной ересью, и это их право. ЦА статьи — разработчики, которым нужно заниматься дизайном.

Читать дальше →
Total votes 96: ↑88 and ↓8 +80
Comments 31

Популяризация информационной безопасности через мультики

Reading time 2 min
Views 14K
Information Security *
Информационная безопасность, пожалуй, остаётся одной из самых неблагодарных отраслей IT: специалистов по ней то подозревают в безделии, пока всё в порядке, то обвиняют в халатности, когда что-то случилось. Вся же работа по обеспечению information security часто сопровождается раздражённым отношением других сотрудников, которые воспринимают все мероприятия и требования безопасников как желание помешать всем остальным спокойно делать их работу.

Руководство постоянно терзается дилеммой «у нас всё в порядке из-за хорошо поставленной информационной безопасности, или потому что угрозы преувеличены?» и, часто склоняясь ко второму объяснению, постоянно норовит урезать бюджеты или требует вечных обоснований экономической отдачи от затрат на ИБ, причём по инвестиционным моделям, явно к ИБ не подходящим.

В итоге, специалисты по информационной безопасности часто остаются непонятыми и испытывают серьёзные трудности с тем, чтобы в лёгкой и доступной форме донести базовые вещи до всех тех, кто их окружает: руководства, разработчиков, офисного планктона персонала и др. Именно эту проблему и призваны решить нижеследующие мультики. Возможно их просмотр окажется более эффективным чем стандартный инструктаж и позволит сделать деятельность специалистов по информационной безопасности хотя бы чуточку легче, ну или в крайнем случае, просто убьёт ещё пару часов рабочего времени самих безопасников.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 8

Собеседование на должность JavaScript разработчика

Reading time 4 min
Views 285K
JavaScript *Programming *


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →
Total votes 126: ↑115 and ↓11 +104
Comments 313
1

Information

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