Pull to refresh
61
0

Разработчик

Send message

Как изучать языки программирования

Reading time11 min
Reach and readers288K


Я ни в коей мере не утверждаю, что указанный мной способ лучший из возможных. Более того, я вовсе не уверен в том, что он вообще правильный. Возможно, если бы моим первым языком был не Си, а какой-либо из функциональных языков или ассемблеров, моё мнение было бы иным, и жизнь моя сложилось бы совсем иначе. Так что весь нижеизложенный материал воспринимайте со здоровым скептицизмом.
Читать дальше →

Функторы (глава книги «Теория категорий для программистов»)

Reading time17 min
Reach and readers33K

Это седьмая статья из цикла «Теория категорий для программистов». Предыдущие статьи уже публиковались на Хабре:



Функторы


За понятием функтора стоит очень простая, но мощная идея (как бы заезжено это ни прозвучало). Просто теория категорий полна простых и мощных идей. Функтор есть отображение между категориями. Пусть даны две категории C и D, а функтор F отображает объекты из C в объекты из D — это функция над объектами. Если a — это объект из C, то будем обозначать его образ из D как F a (без скобок). Но ведь категория — это не только объекты, но еще и соединяющие их морфизмы. Функтор также отображает и морфизмы — это функция над морфизмами. Но морфизмы отображаются не как попало, а так, чтобы сохранять связи. А именно, если морфизм f из C связывает объект a с объектом b,


f :: a -> b

то образ f в D, F f, связывает образ a с образом b:


F f :: F a -> F b

(Надеемся, что такая смесь математических обозначений и синтаксиса Haskell понятна читателю. Мы не будем писать скобки, применяя функторы к объектам или морфизмам.)


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

Как я поменял основной домен в Google Apps

Reading time2 min
Reach and readers24K
Недавно мне понадобилось организовать почтовый сервис для небольшой фирмы. И я вспомнил про завалявшийся у меня бесплатный аккаунт в Google Apps. К сожалению, основной домен, к которому аккаунт был привязан давно почил в бозе и оказался занят на текущий момент. Благо, к аккаунту были привязаны несколько дополнительных бесплатных доменов, один из которых оказался свободным и я его снова зарегистрировал. И тут передо мной возник вопрос, который вынесен в заголовок. Знакомая ситуация? Если обратиться к справке уважаемого Google, то узнаем, что это сделать невозможно.
Читать дальше →

Получаем доменное имя, DNS и SSL сертификат нахаляву

Reading time3 min
Reach and readers32K
Привет, Хабр. Данный пост предназначен для любителей халявы и содержит готовый рецепт по получению доменного имени, услуг DNS-сервера и SSL-сертификата с затратами 0 рублей 0 копеек. Бесплатный сыр бывает только в мышеловке и это правда, так что рецепт скорее для тех кто хочет красивую ссылку на свой личный небольшой проект с поддержкой https а не для серьёзных проектов.

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

Об относительной яркости, или насколько живучим бывает легаси

Reading time6 min
Reach and readers43K
Я уверен, что многим программистам знакома формула:

Y = 0.299 R + 0.587 G + 0.114 B

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

Вычисляет она относительную яркость цвета (relative luminance или в некоторых контекстах luma; не путать с lightness и brightness) и широко применяется для преобразования цветного RGB-изображения в Grayscale и связанных с этим задач.

Формула растиражирована и процитирована в тысячах статей, форумных обсуждений и ответов на StackOverflow… Но дело в том, что единственно-правильное её место — на свалке истории. Использовать её нельзя. Однако же используют.

Но почему нельзя? И откуда же взялись именно такие коэффициенты?
Мини-экскурс в историю

D3.js. Визуализация графов

Reading time13 min
Reach and readers63K
D3.js — это библиотека JavaScript для управления документами, в основе которых лежат данные. D3 помогает претворить данные в жизнь, используя HTML, SVG и CSS. D3 позволяет привязывать произвольные данные к DOM, и затем применять результаты манипуляций с ними к документу.

Для понимания статьи пригодится знание основ D3, и в ней мы рассмотрим реализацию алгоритмов визуализации графа на основе сил (Force-directed graph drawing algorithms), которая в D3 (version 3) имеет название Force Layout. Это класс алгоритмов визуализации графов, которые вычисляют позицию каждого узла, моделируя силу притяжения между каждой парой связанных узлов, а также отталкивающую силу между узлами.

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

Реализация демонов на Node.js

Reading time12 min
Reach and readers18K

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


Постановка задачи:


  • Разработка должна быть на Node.js. Мы давно используем эту платформу для разработки всех наших проектов, так что здесь это оправданный выбор.
  • Все ноды в кластере должны быть равнозначными. Не должно быть специального управляющего звена или мастера. В противном случае остановка мастера может привести к останову всего кластера.
  • Задачи должны находиться в таблице MySQL. Это намного гибче и информативнее, чем использовать какой-нибудь MQ. Всегда можно получить доступ ко всем задачам, оценить очередь, переназначить их на другую ноду и т.д.
  • Каждый воркер должен уметь обрабатывать несколько задач одновременно.

Сразу привожу ссылку на GitHub того, что получилось: (https://github.com/pipll/node-daemons).

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

Давайте уже разберемся в DNS

Reading time8 min
Reach and readers466K

image
Внимательный читатель найдет на этой картинке IPv6


Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.


Что такое DNS


DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.


Вот и все. Правда. Вы или ваш браузер запрашивает значение для ключа www.example.com, и получает в ответ 1.2.3.4.

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

Первые 10 минут на сервере

Reading time8 min
Reach and readers66K

Азбука безопасности Ubuntu


«Мои первые 5 минут на сервере» Брайана Кеннеди — отличное введение, как быстро обезопасить сервер от большинства атак. У нас есть несколько исправлений для этой инструкции, чтобы дополнить ею наше полное руководство. Также хочется подробнее объяснить некоторые вещи для более юных инженеров.

Каждое утро я проверяю почтовые уведомления logwatch и получаю основательное удовольствие, наблюдая несколько сотен (иногда тысяч) безуспешных попыток получить доступ. (Многие довольно прозаичны — попытки авторизоваться как root с паролем 1234 снова и снова). Приведённая здесь общая методика подходит для серверов Debian/Ubuntu, которые лично мы предпочитаем всем остальным. Они обычно служат только хостами для контейнеров Docker, но принципы те же.

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

Примечание: Эта справка создана как базовая азбука. Её следует расширить и дополнить в соответствие с вашими потребностями.
Читать дальше →

О трехмерном Z-order замолвите слово

Reading time9 min
Reach and readers8.6K

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

Вы спросите: «Кому вообще интересны эти небесные объекты?» и даже: «Ну и при чём здесь 2ГИС?» и будете отчасти правы. Ведь методы пространственного индексирования являются универсальной ценностью.

Обычно, имея дело с геоданными, мы работаем с локальной проекцией на плоскость и тем самым отмахиваемся от искажений. В масштабах планеты это сделать труднее — начинают выпирать астрономические проблемы.
Что касается объёмов данных, уже сейчас в OSM более 4 млрд точек и 300 млн дорог. Это соизмеримо с масштабами, характерными для звёздных объектов. Да и помимо всего прочего, звёздные атласы — отличный стенд для разработки и отладки пространственных алгоритмов.

Обещанные тонкости и выводы под катом.
Читать дальше →

Микрофон и криптография: извлекаем 4096-битные ключи RSA с расстояния в 10 метров

Reading time4 min
Reach and readers23K
Защититься от «акустической криптоатаки» возможно, но очень сложно


Оборудование, используемое при проведении акустической криптоатаки

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

Ранее эксперт с командой коллег (в нее входит разработчик программного обеспечения Лев Пахманов) опубликовал работу с демонстрацией практической реализации своей идеи. Им удалось извлечь ключи RSA с расстояния 4 метров, используя обычный параболический микрофон, и с расстояния в 30 сантиметров, используя микрофон смартфона. Теперь эксперты улучшили результат, научившись извлекать ключи с расстояния в 10 метров.
Читать дальше →

DUMP-2016: видео всех докладов в одном посте. Бесплатно. Без СМС

Reading time9 min
Reach and readers23K
8 апреля в Екатеринбурге прошла конференция DUMP. Под катом — видео 60-и докладов про frontend, serverside, devops, mobile, дизайн, управление разработкой и тестирование, плюс все презентации и фотографии с прошедшей конференции. А вот короткий отчетный ролик про DUMP-2016.


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

Почему некоторые люди ощущают «эмоциональный озноб» от музыки

Reading time3 min
Reach and readers120K

Древний температурный триггер в человеческом мозге настроился на новые входные данные




Трепет, дрожь, гусиная кожа, мурашки, озноб, кожный оргазм, по-английски frission, cold chill — всё это названия одного и того же явления, для которого в языке нет устоявшегося термина. По-научному, это трансцендентные психофизиологические переживания, а проще говоря — волна удовольствия, которая иногда проходит по коже при прослушивании некоторых музыкальных произведений. В качестве триггера срабатывает не только музыка, но и физический контакт с человеком, эмоциональная сцена в художественном фильме и др. На Reddit даже есть сообщество /r/frission, члены которого делятся друг с другом триггерами «кожного оргазма».

Почему возникает такая психофизиологическая реакция на эмоциональные раздражители? Почему она наблюдается не у всех, а только у некоторых людей? Учёным пока не удалось до конца изучить этот феномен, но полвека исследований позволяют сделать некоторые предположения.
Читать дальше →

Завершено самое масштабное исследование влияния ГМО на здоровье человека

Reading time3 min
Reach and readers250K
Генетически модифицированные организмы (ГМО) — организмы, чей генотип искусственно изменён при помощи методов генной инженерии. Изменения внесены целенаправленно, например, в случае сельскохозяйственных культур — повышение урожайности, улучшение вкуса и питательных ценностей продуктов, устойчивости к вредителям и т.д.

В 2015 году генетически модифицированные культуры составили 99% собранного в США урожая сахарной свеклы, 94% соевых бобов, 94% хлопка и 92% кормовой кукурузы.

В мире 12% всех пахотных земель занято ГМ-культурами.

С 1970-х годов учёные изучают потенциальные риски, связанные с использованием ГМО. Чтобы прояснить этот вопрос, Американские академии наук, техники и медицины организовали самое масштабное на сегодняшний день исследование почти 900 научных статей, опубликованных за последние 30 лет, на тему влияния ГМ-культур на организм человека и окружающую среду. Анализ статей продолжался два года комитетом из 50 учёных, исследователей и специалистов от сельского хозяйства и биотехнологий. Документ рецензировали 26 независимых экспертов.
Читать дальше →

Двойной обман. Как ФБР использовало украинского хакера Максима Попова

Reading time20 min
Reach and readers113K


Холодным днём 18 января 2001 года Максим Игоревич Попов, 20-летний украинский парень, нервно толкнул двери американского посольства в Лондоне. Его можно было принять за участника программы по студенческому обмену, который пришёл получать визу, но на самом деле Максим был хакером, участником восточноевропейской хакерской группы, которая атаковала американские коммерческие компании, зарабатывая на вымогательстве и фроде. Прокатившаяся волна таких атак выглядела словно предвестник нового этапа Холодной войны между США и организованными хакерскими группировками в странах бывшего советского блока. Максим Попов с детским лицом, в очках и с короткой стрижкой, собирался стать первым перебежчиком в этой войне.
Читать дальше →

История одной интеграции, или как мы перестали беспокоиться и полюбили InterSystems Ensemble

Reading time4 min
Reach and readers9.9K
image

Предыстория: у нашей небольшой, но очень амбициозной компании «Black Mushroom Studio» появилась идея создания e-commerce проекта и реализации мобильного приложения для оплаты некоторых товаров/услуг через платежного агрегатора.

Что было на входе: каркас приложения на Android, которому, само собой, удобно общаться по HTTP и JSON, и платежная система, предоставившая свое API — web-сервисы с SOAP-содержимым.

Задача: подружить одно с другим.

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

Можно долго говорить о достоинствах и недостатках конкретных технологий конкретных вендоров и преимуществах open source, но везде есть свои минусы и плюсы. Проанализировав несколько продуктов (материал для отдельной статьи), мы пришли к выводу, что для решения наших задач, InterSystems Ensemble подходит больше других.
Читать дальше →

Релиз СУБД InterSystems Caché 2016.1

Reading time4 min
Reach and readers5.8K
Всем привет! Рады представить вам новую версию Caché 2016.1, релиз которой состоялся во второй половине марта. Важных и интересных изменений действительно много, поэтому предлагаю сразу перейти к ним.

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

Рекомендуемое обновление KB3133977 выводит из строя некоторые компьютеры Windows 7 x64

Reading time2 min
Reach and readers61K


Всем известно, какие усилия предпринимает Microsoft, чтобы перевести пользовательскую базу на новую операционную систему Windows 10. Но то, что она сделала сейчас, абсолютно необъяснимо.

Если вкратце: Microsoft внесла небольшое, но совершенно странное изменение в Windows Update на Windows 7, которое выводит из строя компьютеры с материнскими платами Asus. Затем компания Microsoft подтвердила, что с этим апдейтом компьютеры действительно не загружаются, и рекомендовала обновиться на Windows 10.
Читать дальше →

Создание атомной бомбы Гитлера и как мы сорвали этот проект

Reading time5 min
Reach and readers43K

На стороне нацистов был выдающийся физик Вернер Гейзенберг и крупнейший в мире завод по производству тяжёлой воды в Веморке



Подводные испытания атомной бомбы времён Холодной войны

В 1930-е годы, когда Европа стояла на краю Второй мировой войны, учёным во всём мире открылось множество секретов природы. Было обнаружено, что атомное ядро состоит из нескольких частей — протонов и нейтронов — с разной энергией связи. Некоторые атомы были радиоактивны сами по себе, то есть испускали ядра гелия (альфа-распад) или электроны (бета-распад), распадаясь до более стабильных элементов, а в других атомах можно было принудительно вызвать ядерные реакции, принудив их захватывать нейтроны извне.
Читать дальше →

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Registered
Activity