Pull to refresh
198
0
Сергей Новоградцев @snipsnap

Java разработчик

Send message

Книга «Теоретический минимум по Big Data. Всё что нужно знать о больших данных»

Reading time5 min
Views14K
imageCегодня Big Data — это большой бизнес. Нашей жизнью управляет информация, и извлечение выгоды из нее становится центральным моментом в работе современных организаций. Неважно, кто вы — деловой человек, работающий с аналитикой, начинающий программист или разработчик, «Теоретический минимум по Big Data» позволит не утонуть в бушующем океане современных технологий и разобраться в основах новой и стремительно развивающейся отрасли обработки больших данных.

Хотите узнать о больших данных и механизмах работы с ними? Каждому алгоритму посвящена отдельная глава, в которой не только объясняются основные принципы работы, но и даются примеры использования в реальных задачах. Большое количество иллюстраций и простые комментарии позволят легко разобраться в самых сложных аспектах Big Data.

Предлагаем ознакомиться с отрывком «Главные компоненты»
Читать дальше →

Спуфинг немецких ID при онлайн-аутентификации и финансирование беженцев в Германии

Reading time4 min
Views7.3K

Немецкий ID

Специалист по безопасности Вольфганг Эттлингер из SEC Consult Vulnerability Lab описал технику подделки данных (в том числе имени и адреса) при онлайновой проверке государственных немецких ID.

Немецкие ID-карты выпускаются с 1 ноября 2010 года. Каждая карта содержит чип RFID, в котором хранится информация о владельце, в том числе имя, дату рождения и биометрическая фотография. Если владелец захочет, то может записать скан отпечатков пальцев.
Читать дальше →

Научные способы улучшить внимание: ноотропы, нейроинтерфейсы и электростимуляция

Reading time28 min
Views104K
Как усилить концентрацию внимания? Для этого существует много бытовых советов, например, использовать наушники с шумоподавлением, выработать привычку работать под музыку одного стиля, блокировать сайты, на которые чаще всего отвлекаешься, ложиться по будильнику, заниматься спортом и класть все важные вещи в нужные места.

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

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


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

Микросервисы. Паттерны разработки и рефакторинга с примерами на языке Java

Reading time7 min
Views21K
Привет, Хабр!

Мы приступаем к переводу книги Криса Ричардсона "Microservices Patterns. With examples in Java". До премьеры на русском языке еще с полгода, но мы хотели бы предложить вам своеобразный трейлер — немного сокращенный обзор этой книги от Бена Нейдела (Ben Nadel), прочитавшего MEAP-версию. В обзоре активно цитируется текст Kindle-версии Ричардсона.



Добро пожаловать под кат!
Читать дальше →

Chain replication: построение эффективного KV-хранилища (часть 1/2)

Reading time8 min
Views6.7K

В данной статье рассмотрим архитектуры простых и эффективных KV-хранилищ с использованием цепной репликации (chain replication), которая активно исследуется и успешно применяется в различных системах.
Читать дальше →

Concurrency паттерны в Rust из Java

Reading time11 min
Views13K

Под катом находятся заметки, в которых расписано, как реализовать в Rust хитрые concurrency паттерны, которые я с легкостью пишу в Java, и в чем различие в подходах к concurrency у этих языков. Статья будет полезна и тем, кто переходит на Rust из C#, ведь у него аналогичная модель памяти.

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

Регистратор доменных имён Google Registry и новые gTLD

Reading time5 min
Views8.5K
В старом посте на Хабре «Самый краткий линк от Гугл» (июль 2011 года) рассказывалось о том, что Google купила домен g.co для запуска сервиса сокращения ссылок. В комментариях остроумно шутили, что пора Гуглу уже купить свой TLD, купив какое-нибудь государство. В итоге, Google купила для себя домен, а также создала регистратора.

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

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 28 — 29

Reading time3 min
Views7.2K

предыдущие главы


Кривые обучения


28 Диагностирование смещения и разброса: Кривые обучения


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


image

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

Прага как место, достойное переезда из Питера — 3 года спустя

Reading time24 min
Views21K

"… Не может чуждой славянину
Быть чехов доблестных земля.
"
П.А. Вяземский


Небольшое предисловие


Нашего коллегу Андрея Дмитриева, как-то рассказавшего Хабру свою историю развития от бездомного до Senior Developer'a, недавно позвал поучаствовать в подкасте linkmeup наш другой коллега Loxmatiymamont. В рамках проекта "По'уехавшие" он общается с IT специалистами, которых объединяет одна деталь: когда-то они уехали работать из России в другую страну. Но, дабы не повторять миллион и тысячу подобных проектов, в этом подкасте нет разговоров про мотивацию, рассуждений "зачем и почему", а также поиска высших смыслов. Нет, здесь упор делается на бытовую часть вопроса жизни обычного человека в совершенно новом для него месте, без скучных сравнений а-ля "где огурцы дороже".


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



— Всем привет!
Нас
[linkmeup] раньше любили обвинять в какой-то предвзятости и то, что наш проект периодически продается [выпуски с представителями вендоров — ред]. И вот сегодня у вас будет новый повод это сделать, потому что в гости я позвал своего коллегу – это Андрей Дмитриев, он сейчас работает в Праге. Привет, Андрей!


— Привет!

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

Таиланд без стереотипов

Reading time5 min
Views44K


Я уже больше полутора лет (21 месяц, если быть точным) живу в Бангкоке, спасибо моим коллегам за точный расчёт, а так же идею и вступление к этому рассказу :) А рассказ будет о том как поменялась моя жизнь и что я о нового узнала о Таиланде.
Читать дальше →

Курс MIT «Безопасность компьютерных систем». Лекция 16: «Атаки через побочный канал», часть 3

Reading time14 min
Views3K

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3

96-ядерный суперкомпьютер на одноплатниках NanoPi Fire3

Reading time14 min
Views67K
Создание высокопроизводительного кластера с 12 узлами NanoPi-Fire3 менее чем за £100 (£550, включая двенадцать Fire3)

Мой прошлый кластер на Raspberry Pi 3 в прошлом году немало заинтересовал публику, так что я попробовать сделать аналогичные проекты на других отличных одноплатных компьютерах, которые есть на рынке. FriendlyARM из Китая очень щедро отправила мне 12 своих последних 64-битных ARM плат NanoPi-Fire3, на каждой из которых восьмиядерный ARM A53 SoC, работающий на частоте 1,4 ГГц, с гигабитным Ethernet.


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

Патчинг Java кода на продакшене без анестезии

Reading time6 min
Views12K
image

Здесь я расскажу об устройстве одного из многих инструментов, которые помогают в разработке различных сервисов для проекта Одноклассники. Внутри компании мы называем его «Hot Code Replace» (HCR), и предназначен данный инструмент для исправления критических и несложных багов в работающих продакшн сервисах без их остановки. Это чрезвычайно важная особенность, так как позволяет избежать достаточно занудного и трудоёмкого процесса выкладывания новой – исправленной версии барахлящего сервиса, избежать сопутствующей этому достаточно продолжительной паузы в доступности каждого хоста, избежать сброса кешей.

В общем, экономит массу времени и уменьшает интервал от момента обнаружения ошибки до исправления с часов до минут. Чаще всего, как и было задумано, исправляют мелкие ошибки в коде, например, программист забыл проверить на null и у некоторых пользователей определённые действия на сайте приводят к ошибке. То есть когда исправление осуществляется изменением нескольких строчек внутри метода. И ради таких мелких изменений больше не нужно отвлекать коллег и ждать часами выкладки на продакшн.
Читать дальше →

Конвергенция с Kubernetes

Reading time10 min
Views5.1K

Тотальная стандартизация


Я готовил этот материал для выступления на конференции и спросил у нашего технического директора, в чем главная фишка Kubernetes для нашей организации. Он ответил:


Разработчики сами не понимают, сколько лишней работы делали.

Видимо, его вдохновила недавно прочитанная книга «Factfulness» — сложно заметить незначительные и непрерывные изменения к лучшему, и мы постоянно упускаем из виду свой прогресс.


Но переход на Kubernetes точно нельзя назвать незначительным.


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

Multi-release JARs — Плохо или хорошо?

Reading time10 min
Views4.7K

От переводчика: мы активно работаем над переводом платформы на рельсы Java 11 и думаем над тем, как эффективно разрабатывать Java библиотеки (такие как YARG) с учётом особенностей Java 8 / 11 так, чтобы не пришлось делать отдельные ветки и релизы. Одно из возможных решений — multi-release JAR, но и тут не всё гладко.


Java 9 включает новую опцию Java-рантайма под названием multi-release JARs. Это, возможно, одно из самых противоречивых нововведений в платформе. TL;DR: мы считаем это кривым решением серьезной проблемы. В этом посте мы объясним, почему мы так думаем, а также расскажем, как вам собрать такой JAR, если вам сильно хочется.


Multi-release JARs, или MR JARs, — это новая функция платформы Java, появившаяся в JDK 9. Здесь мы подробно расскажем о значительных рисках, связанных с использованием этой технологии, и о том, как можно создавать multi-release JARs с помощью Gradle, если вы ещё хотите.


По сути, multi-release JAR — это Java-архив, включающий несколько вариантов одного класса для работы с разными версиями среды исполнения. Например, если вы работаете в JDK 8, среда Java будет использовать версию класса для JDK 8, а если в Java 9, используется версия для Java 9. Аналогично, если версия создана для будущего выпуска Java 10, рантайм использует эту версию вместо версии для Java 9 или версии по умолчанию (Java 8).


Под катом разбираемся в устройстве нового формата JAR и выясняем нужно ли это всё.

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

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

Reading time9 min
Views18K
Привет, Хабр! В данной статье я хочу поделиться опытом разворачивания тестового сервера для команды разработчиков. Вкратце суть проблемы — есть команда разработки и несколько проектов на php. Пока нас было мало и проект был по сути один, то использовался 1 тестовый сервер и чтобы показать задачу заказчику — разработчик «столбил» сервер на определенное время. Если «окон» по времени не было, то приходилось ждать. Со временем рос коллектив и сложность задач, соответственно увеличивалось время проверки и занятость тестового сервера, что негативно влияло на сроки выполнения и премию. Поэтому пришлось искать решение и оно под катом.
Читать дальше →

Краткий обзор алгоритма машинного обучения Метод Опорных Векторов (SVM)

Reading time6 min
Views84K

Предисловие




В данной статье мы изучим несколько аспектов SVM:

  • теоретическую составляющую SVM;
  • как алгоритм работает на выборках, которые невозможно разбить на классылинейно;
  • пример использования на Python и имплементация алгоритма в библиотеке SciKit Learn.
Читать дальше →

Как наконец-то начать писать тесты и не пожалеть об этом

Reading time19 min
Views40K


Приходя на новый проект, я регулярно сталкиваюсь с одной из следующих ситуаций:

  1. Тестов нет совсем.
  2. Тестов мало, их редко пишут и не запускают на постоянной основе.
  3. Тесты присутствуют и включены в CI (Continuous Integration), но приносят больше вреда, чем пользы.

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

Что можно сделать, чтобы изменить сложившуюся ситуацию? Идея использования тестов не нова. При этом большинство туториалов напоминают знаменитую картинку про то, как нарисовать сову: подключаем JUnit, пишем первый тест, используем первый мок — и вперед! Такие статьи не отвечают на вопросы о том, какие тесты нужно писать, на что стоит обращать внимание и как со всем этим жить. Отсюда и родилась идея данной статьи. Я постарался кратко обобщить свой опыт внедрения тестов в разных проектах, чтобы облегчить этот путь для всех желающих.
Читать дальше →

Знакомство с виртуализацией, контейнерами и Kubernetes: 18 материалов о работе в облаке

Reading time5 min
Views16K


В этой подборке команда Kubernetes aaS от Mail.ru объединила статьи и руководства для тех, кто хочет познакомиться с виртуализацией. В материалах под катом — как появилась виртуальная инфраструктура, что такое контейнеризация и чем занимается Cloud DevOps Engineer.
Читать дальше →

Генерация произвольных реалистичных лиц с помощью ИИ

Reading time10 min
Views53K
Контролируемый синтез и редактирование изображений с использованием новой модели TL-GAN


Пример контролируемого синтеза в моей модели TL-GAN (transparent latent-space GAN, генеративно-состязательная сеть с прозрачным скрытым пространством)

Весь код и онлайн-демо доступны на странице проекта.
Читать дальше →

Information

Rating
Does not participate
Location
Kassel, Hessen, Германия
Registered
Activity