Search
Write a publication
Pull to refresh
0
0
Send message

Flightradar24 — как это работает?

Reading time4 min
Views131K
Наверное каждый, кто хоть раз встречал или провожал родственников или друзей на самолет, пользовался бесплатным сервисом Flightradar24. Это весьма удобный способ отслеживания положения самолета в реальном времени.



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

Восполним этот пробел. О том, как это работает продолжим под катом.
Читать дальше →

Проблемы безопасности Docker

Reading time15 min
Views28K


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


В Docker уже встроено несколько замечательных средств обеспечения безопасности:


  • Docker-контейнеры минимальны: один или несколько работающих процессов, только необходимое программное обеспечение. Это снижает вероятность пострадать от уязвимостей в ПО.


  • Docker-контейнеры выполняют специфическую задачу. Заранее известно, что должно выполняться в контейнере, определены пути к директориям, открытые порты, конфигурации демонов, точки монтирования и т. д. В таких условиях проще обнаружить какие-либо связанные с безопасностью аномалии. Этот принцип организации систем идет рука об руку с микросервисной архитектурой, позволяя значительно уменьшить поверхность атаки.


  • Docker-контейнеры изолированы как от хоста, так и от других контейнеров. Этого удается добиться благодаря способности ядра Linux изолировать ресурсы с помощью cgroups и namespaces. Но есть серьезная проблема — ядро приходится делить между хостом и контейнерами (мы еще вернемся к этой теме чуть позже).


  • Docker-контейнеры воспроизводимы. Благодаря их декларативной системе сборки любой администратор может легко выяснить, из чего и как был сделан контейнер. Крайне маловероятно, что у вас в итоге окажется неизвестно кем настроенная legacy-система, которую никому не хочется конфигурировать заново. Знакомо, не правда ли? ;)

Однако в основанных на Docker системах есть и слабые места. В этой статье мы как раз о них и поговорим, рассмотрев 7 проблем безопасности Docker.

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

Загар — реакция организма на повреждение ДНК

Reading time6 min
Views92K
Бытует миф, что загорать полезно. Однако, мало кто знает, что загар — это ничто иное как защитная реакция организма в ответ на повреждения ДНК от ультрафиолета. Именно в ответ на появление специфичных обломков ДНК, являющихся “визитной карточкой” ультрафиолетовых повреждений, меланоциты (те самые клетки, из которых может развиться меланома) начинают вырабатывать больше меланина. Что такое меланин, думаю, многие знают — это тот пигмент, от концентрации которого зависит оттенок кожи и волос. В коже он выполняет роль тонировки, буквально принимая огонь на себя дабы уберечь от высокочастотных фотонов нашу ДНК.

Ученые подразделяют спектр УФ (UV) на 3 категории: A, B и C. Самый высокочастотный UVC до нас не доходит (спасибо озону), а вот остальные два типа очень даже:


Что же происходит, когда фотон УФ попадает по нашей ДНК? Происходит формирование т.н. пиримидиновых димеров — это когда одна из “букв ДНК”, вдохновившись приливом сил от фотона, решает упрочнить отношения с соседом-близнецом и вступает с ним в ковалентную связь. Такая связь может возникнуть между двумя тиминами или двумя цитозинами в ДНК или двумя урацилами в РНК:
Читать дальше →

Искусственный интеллект помогает ученикам обманывать учителя

Reading time7 min
Views36K
image

Дэниз Гарсия [Denise Garcia] знает, что иногда её ученики обманывают её, но вскрытая ею в феврале ситуация оказалась совершенно необычной. Гарсия, учительница математики в Вест-Хартфорде, Коннектикут, случайно включила нетипично сложное уравнение в набор задач для своего класса, изучающего математику по институтской программе. Однако каким-то образом несколько человек из класса, где занимаются 15 учеников, сумели правильно решить его. Эти ученики продемонстрировали свои работы с решением уравнения, опровергнув обычную схему разоблачения списывания.

Гарсия была сбита с толку, но затем она вспомнила один разговор, происходивший за несколько лет до того. Некоторые из бывших учеников рассказали ей про онлайн-инструмент Wolfram|Alpha, способный за несколько секунд расправляться со сложными уравнениями. Он даёт как ответы, так и последовательные шаги для достижения ответов, поэтому обманщиков никак нельзя было отловить на копировании результата в домашнюю работу.
Читать дальше →

Атака на модели машинного обучения сбивает робоавтомобили

Reading time3 min
Views26K

Набор экспериментальных изображений с художественными стикерами на разных расстояниях и под разными углами: (а) 5 футов, 0 градусов; (b) 5' 15°; (с) 10' 0°; (d) 10' 30°; (e) 40' 0°. Обман работает на любом расстоянии и под любым углом: вместо знака «Стоп» система машинного обучения видит знак «Ограничение скорости 45 миль»

В то время как одни учёные совершенствуют системы машинного обучения, другие учёные совершенствуют методы обмана этих систем.

Как известно, небольшие целенаправленные изменения в картинке способны «сломать» систему машинного обучения, так что она распознает совершенно другое изображение. Такие «троянские» картинки называются «состязательными примерами» (adversarial examples) и представляют собой одно из известных ограничений глубинного обучения.
Читать дальше →

Разбираемся в физике частиц: 6) поля

Reading time9 min
Views15K
1. Шар на пружине, ньютоновская версия
2. Квантовый шар на пружине
3. Волны, классический вид
4. Волны, классическое уравнение движения
5. Квантовые волны
6. Поля
7. Частицы – это кванты
8. Как частицы взаимодействуют с полями

На самом деле мы уже некоторое время назад зашли на территорию полей, просто я вас об этом не предупредил – я хотел сконцентрироваться на волнах, возникающих на этих полях. Описывая то, как ведут себя волны, мы выражали их форму и зависимость от времени при помощи функции Z(x,t). Ну так вот, Z(x,t) – это поле. Это функция пространства и времени с уравнением движения, определяющим её поведение. Подходящей функцией движения была бы такая, что если Z увеличивается или уменьшается в определённой точке, то Z будет уменьшаться или увеличиваться в соседних точках чуть попозже. Эта особенность позволяет волнам оказываться в числе решений уравнения.

В этой статье мы посмотрим на несколько примеров полей Z(x,t), чьи уравнения движения разрешают наличие волн. Физическая интерпретация у этих полей будет самой разной. Они описывают разные свойства разных материалов. Но уравнения, которым они удовлетворяют, и волны, которые они демонстрируют, будут удовлетворять очень похожей математике, и вести они себя тоже будут похоже, несмотря на различное физическое происхождение. Это в будущем станет очень важным моментом.
Читать дальше →

Из инженеров в руководители: сохранение технических навыков

Reading time7 min
Views20K


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


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

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

Советы для инженеров от менеджера Google

Reading time8 min
Views40K
Всем привет!

Меня зовут Лариса. Я работаю в Google и веду блог на larrr.com, где я изначально и опубликовала эту статью.

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

На всякий случай – это не официальный Google документ, и Google не несет ответственности за его содержание. Он субъективный, и написан сотрудником для сотрудников.

Советы для инженеров

15 апреля 2013
Отредактировано 21 мая 2014
Переведено 31 августа 2015
Gretta Bartels, Software Engineering Manager at Google


Уважаемый читатель,

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

Один из моих более опытных коллег научил меня тому, что для менеджера очень важно быть предельно предсказуемым. У менеджера должен быть какой-то набор простых правил, о которых знают все его подчиненные, и которым они могут следовать даже когда менеджера рядом нет. Поэтому моя цель – чтобы программисты в моей команде могли задать сами себе вопрос “Что бы на это сказала мой менеджер?”, и сами себе на него правильно ответить. Тогда команда сможет работать практически самостоятельно, без моего руководства. А я буду сидеть дома и кушать пирожные :).

Вот список моих основных правил:
Читать дальше →

Свой веб-сервер на NodeJS, и ни единого фреймворка. Часть 1

Reading time7 min
Views128K
Для многих людей JavaScript ассоциативно связан с обилием разнообразных фреймворков и библиотек. Разумеется, инструменты, которые помогают нам каждый день — это хорошо, но, мне кажется, нужно искать некий баланс между использованием инструментов и прокрастинацией, а также знать, как работают вещи, которыми ты пользуешься. Поэтому, когда я только сел разбираться с NodeJS, мне было особенно интересно написать полноценный веб-сервер, которым я мог бы пользоваться сам.
Читать дальше →

Python: вещи, которых вы могли не знать

Reading time8 min
Views314K
Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
Читать далее

День шифровальщика: подборка книг по теме

Reading time5 min
Views47K

Родина слышит, Вася Ложкин


Сегодня в России отмечается день шифровальщика. Давно в прошлом те времена, когда шифрование было уделом только военных и шпионов. Теперь оно повсеместно используется в IT. Поэтому в честь праздника мы сделали для вас подборку книг по вопросам, связанным с шифрованием.

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

Атомы: строительные блоки молекул

Reading time6 min
Views27K
Если молекулы – основные структуры, задействованные в химии – это слова, из которых состоят все окружающие нас материалы, тогда атомы – это буквы, строительные блоки молекул. Слова бывают разной длины, и типичная молекула тоже может содержать несколько атомов, или несколько сотен, или даже сто тысяч атомов. Молекула столовой соли NaCl состоит из двух атомов, натрия Na и хлора Cl. Молекула воды H2O содержит два атома водорода и один кислорода. Молекула столового сахара C12H22O11 содержит 12 атомов углерода, 11 кислорода и 22 водорода, организованных определённым образом.

Откуда нам известно о существовании атомов? Иногда их можно «видеть», так же, как мы видим молекулы, которые они могут формировать. Не глазами, но более продвинутыми устройствами. Один из методов использует сканирующий туннельный микроскоп, способный показывать атомы в кристалле или даже передвигать их по одному. Другой метод использует нашу возможность захвата ионов (немного изменённых атомов – подробности ниже).
Читать дальше →

All-In-One: Proxmox + OpenMediaVault или ещё одна идея для домашнего NAS

Reading time11 min
Views97K


Астрологи объявили месяц статей о домашних NAS на Хабре, так что поделюсь и своей историей успеха...


Не так давно я попробовал новый FreeNAS Coral. Понравилось мне в нем если не все, то очень многое: это и новый гипервизор bhyve, и повсеместное использование 9P для проброса файловой системы на гостя, а так же идея с docker и многое другое.


Кроме того я ещё больше влюбился в ZFS со всеми её плюшками, такими как дедупликация и сжатие на лету.


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


В статье так же будет немного рассказано про Docker и автоматический прокси с автоматическим получением сертификатов Letsencrypt.

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

Делаем GraphQL API на PHP и MySQL. Часть 1: Установка, схема и запросы

Reading time9 min
Views49K
image

В последнее время я все чаще и чаще слышу про GraphQL. И в интернете уже можно найти немало статей о том как сделать свой GraphQL сервер. Но почти во всех этих статьях в качестве бэкенда используется Node.js.

Я ничего не имею против Node.js и сам с удовольствием использую его, но все-таки большую часть проектов я делаю на PHP. К тому же хостинг с PHP и MySQL гораздо дешевле и доступнее чем хостинг с Node.js. Поэтому мне кажется не справедливым тот факт, что об использовании GraphQL на PHP в интернете практически нет ни слова.

В данной статье я хочу рассказать о том, как сделать свой GraphQL сервер на PHP с помощью библиотеки graphql-php и как с его помощью реализовать простое API для получения данных из MySQL.
Читать дальше →

VIM + screen. Организация удаленной среды web-разработки

Reading time6 min
Views21K
Миллион статей написано об организации рабочего процесса, редакторах кода, удобстве и стабильности работы. Я, не претендуя на «самый расчудесный способ», хочу рассказать, как организована среда web-разработки у нескольких человек из нашей команды. Сразу оговорюсь, если вы используете только локальные GUI-шные редакторы кода, Notepad++, Eclipse и т.п., то эта статья не для вас. Мы очень много работаем в консоли, и поэтому, в результате многолетнего естественного отбора, многие пришли к VIM, а консоль является практически отдельным табом в среде разработки, т.к. в процессе работы надо смотреть логи, писать запросы к базе, перезапускать сервисы и т.п. Поэтому, я хочу поделиться конкретным практическим рецептом организации среды web-разработки для программиста или админа, который много времени работает в стандартной удаленной консоли.
Читать дальше →

Шесть парадигм программирования, которые изменят ваш взгляд на код

Reading time9 min
Views54K
Периодически я натыкаюсь на языки программирования, которые настолько самобытны, что меняют моё представление о коде в целом. В этой статье я хотел бы поделиться некоторыми из самых любимых моих находок.

Здесь вы не найдёте устаревшего посыла «функциональное программирование спасёт мир!»; мой список состоит из куда менее популярных наименований. Готов поспорить, многие из читателей вообще не слышали о большинстве языков и парадигм, о которых пойдёт речь, так что надеюсь, вам будет так же интересно с ними разбираться, как и мне.

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


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

Разработка симулятора эволюции одноклеточных организмов «The strongest survives»

Reading time7 min
Views24K

В данном посте я расскажу о своем опыте написания игры-симулятора эволюции одноклеточных организмов на прямоугольной плоскости. Кроме разработки алгоритмов симулятора, речь пойдет о проблемах с которыми я столкнулся при разработке данного проекта на C#, а также о его портировании для работы в браузере. В конце статьи будет ссылка на готовую к игре версию и на все исходники. Если я вас заинтересовал — прошу под кат.

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

Книга «ECMAScript 6 для разработчиков»

Reading time7 min
Views17K
image Познакомьтесь с радикальными изменениями в языке JavaScript, которые произошли благодаря новому стандарту ECMAScript 6. Николас Закас — автор бестселлеров и эксперт-разработчик — создал самое полное руководство по новым типам объектов, синтаксису и интересным функциям. Каждая глава содержит примеры программ, которые будут работать в любой среде JavaScript и познакомят вас с новыми возможностями языка. Прочитав эту книгу, вы узнаете о том, чем полезны итераторы и генераторы, чем ссылочные функции отличаются от обычных, какие дополнительные опции позволяют работать с данными, о наследовании типов, об асинхронном программировании, о том, как модули меняют способ организации кода, и многом другом.

Более того, Николас Закас заглядывает в изменения, которые появились в ECMAScript 7. Неважно, являетесь вы веб-разработчиком или работаете с node.js, в этой книге вы найдете самую необходимую информацию, позволяющую эффективно использовать все возможности ECMAScript 6.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity