Как стать автором
Обновить
0
0

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

Отправить сообщение

Опыт блокировки интернет-рекламы в локальной сети компании

Время на прочтение 8 мин
Количество просмотров 49K
Здравствуйте, хабровчане! Получив от руководства задачу заблокировать сотрудникам рекламу на интернет-сайтах, я решил подойти к процессу творчески: разобраться, как технически транслируется та или иная реклама, какие способы блокировки существуют, их плюсы и минусы. Также привожу в качестве примера реализацию блокировки у нас на уровне шлюза, с использованием Traffic Inspector Next Generation, а также использование для этих целей на локальном уровне опции блокировки рекламы в Kaspersky Internet Security (далее — KIS) и браузерными приложениями AdBlock и Adblock Plus. Статья будет интересна сисадминам и другим спецам, работающим с локальными сетями.


Читать дальше →
Всего голосов 14: ↑9 и ↓5 +4
Комментарии 25

Практическое руководство по анонимности в онлайне

Время на прочтение 9 мин
Количество просмотров 181K

Направленная антенна для удалённого доступа к публичному Wi-Fi

Обеспечить собственную безопасность (анонимность) в онлайне — тяжкий труд, требующий массивного объёма знаний. Даже лучшие профессионалы не всегда справляются.

Но это возможно.

Предупреждение. Для усвоения информации в полном объёме требуется несколько недель.
Читать дальше →
Всего голосов 115: ↑106 и ↓9 +97
Комментарии 125

Чему равно выражение -3/3u*3 на С++? Не угадаете. Ответ: -4. Приглашаю на небольшое расследование

Время на прочтение 8 мин
Количество просмотров 30K

Не уверен, что это будет исправлено.

Небольшое расследование под катом.
Всего голосов 115: ↑101 и ↓14 +87
Комментарии 199

JAVA преступно недооценена

Время на прочтение 5 мин
Количество просмотров 16K
Точка зрения невежественного студента информатики

image


Вероятно, вы прочитали заголовок этого поста и подумали: «Что этот парень курит? Java повсюду!» Вы правы, Java по-прежнему доминирует в отрасли и c ее помощью запускаются одни из крупнейших в мире критически важных приложений. Но распространение Java — это не то, о чем я говорю, я говорю о шумихе вокруг нее. Я провожу много времени с неопытными программистами. А что любят делать неопытные программисты? Быть взволнованным и самоуверенным в отношении таких инструментов, как языки программирования. Ни один из студентов CS, с которыми я встречаюсь, не восхищается Java, и я думаю, что так не должно быть.

Молодые/наивные разработчики (включая меня) часто попадают в ловушку фетишизации новых языков и инструментов в ущерб производительности и здравомыслию. До работы в Halp (теперь принадлежащей $TEAM) у меня были почти романтические отношения с серверным TypeScript. Я думал, что экосистема node.js была самой крутой вещью: мне понравилась идея транспилированного кода, отладки в реальном времени, огромной библиотеки пакетов и даже странных и фрагментированных систем сборки. Когда я действительно использовал его в разработке и поговорил с более опытными инженерами, магия быстро исчезла.
Читать дальше →
Всего голосов 45: ↑24 и ↓21 +3
Комментарии 97

Диаграммы по управлению памятью в Java процессе

Время на прочтение 2 мин
Количество просмотров 4.2K

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

Читать далее
Всего голосов 13: ↑6 и ↓7 -1
Комментарии 8

Как самый недооценённый контрибьютор спасал язык Rust от смерти

Время на прочтение 6 мин
Количество просмотров 24K

Дэйв Херман, самый недооценённый контрибьютор Rust

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

Я считаю, что язык Rust сейчас явно на подъёме. Вспоминаю, как много нужно было сделать правильно, чтобы достичь успеха. Команда неоднократно принимала судьбоносные решения, в которых не была полностью уверена. Каждое неверное решение могло привести проект к провалу. Иногда мы просто не знали правильный ответ. Но в каждой такой ситуации как будто происходило маленькое чудо, и проект двигался дальше. Конечно же, эти «чудеса» происходили не на пустом месте: нас выручала интуиция нескольких очень опытных профессионалов, которые горели проектом и действительно хотели создать что-то крутое.

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

Mozilla Research


К 2009 году Mozilla получила крупную сумму денег от прибыльной сделки с Google (он стал поисковиком по умолчанию в браузере Firefox). И, насколько я понял, именно в этот момент руководство Mozilla решило вложить деньги в новые проекты.
Читать дальше →
Всего голосов 87: ↑77 и ↓10 +67
Комментарии 2

Документируй это

Время на прочтение 7 мин
Количество просмотров 4.6K

Всем привет! В данной статье хотел бы рассмотреть инструменты документирования в принципиально разных подходах в разработке API, а именно для CodeFirst - инструменты Spring Rest Docs (а также его надстройки Spring Auto Rest Docs) и для ApiFirst - инструменты экосистемы Swagger(Open-Api).

Дисклеймер: В подробности холивара на тему что же лучше CodeFirst или ApiFirst я вдаваться не будут, всего лишь продемонстрирую возможную практику документации в обоих вариантах.

Итак, начнем
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Размышления о Java 8 и Java 11 в ожидании Java 17

Время на прочтение 5 мин
Количество просмотров 13K
Этот материал посвящён некоторым особенностям Java 8 и Java 11. Его можно рассматривать как отправную точку для подготовки к освоению очередного LTS-релиза платформы — Java 17.



В мире Java есть одна приятная особенность, которая связана с жизненным циклом версий платформы. А именно, новый релиз Java выходит каждые 6 месяцев, а каждые 3 года появляется новый LTS-релиз — версия с долгосрочной поддержкой. В настоящий момент LTS-версия платформы представлена Java 11. Поэтому многие компании переходят на неё. Это — заметное движение, так как среди его последствий можно отметить тот факт, что, с выходом в сентябре 2021 года Java 17, новые фреймворки не будут поддерживать Java 8, а в качестве минимальной версии платформы будут рассматривать Java 11.

Цель этой статьи заключается в том, чтобы рассмотреть некоторые общие базовые API Java 8 и Java 11.
Читать дальше →
Всего голосов 53: ↑32 и ↓21 +11
Комментарии 19

Понимаем красно-черное дерево. Часть 2. Балансировка и вставка

Время на прочтение 6 мин
Количество просмотров 27K

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

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

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 2

Профилирование с точностью до ассемблерных инструкций

Время на прочтение 12 мин
Количество просмотров 3.2K

Работая над темой низкоуровневого профилирования, я обнаружил отсутствие подробного руководства по настройке окружения и сбору материала. Всё пришлось делать самому путём проб и ошибок. Итогом стала эта статья, в которой я по шагам описал профилирование кода, горячее место в котором не в силах обнаружить не только какой-нибудь VisualVM, но и титаны вроде async-profiler-а. В качестве примера использован код из ранее упоминавшейся статьи The volatile read surprise.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 2

Управление памятью Java

Время на прочтение 11 мин
Количество просмотров 101K

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

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 10

Доказательное программирование

Время на прочтение 16 мин
Количество просмотров 18K

Внимание!


  • Содержание данной статьи никак не связано с докладом академика А. П. Ершова "Научные основы доказательного программирования" 1984г.
  • Статья содержит утверждения, способные вызвать вспышки гнева и неконтролируемой агрессии. За последствия автор статьи ответственности не несет!
  • В тексте упоминаются следующие языки программирования: Java, Swift, Kotlin, Scala, Go, Haskell и др.
  • Эта статья — антитезис. Автор ставит вопросы, но не считает своим долгом на все из них дать ответы.

В момент своего появления в Европе доказательная медицина казалась скандальной, неприятной и отвергаемой почти всем медицинским сообществом идеей. Даже в США, которые сейчас являются оплотом доказательной медицины, долгое время не хотели ее принимать. Основная мысль — докажи, что то, что ты собираешься сделать, реально поможет. Сейчас большинство назначений доктора делают исходя из приобретенных знаний и опыта. Но что если для некоторых ситуаций можно создать такой протокол лечения, следуя которому с болезнью сможет справиться даже неспециалист, и будет доказано, что этот протокол работает? Можно ли покрыть такими протоколами все известные недуги? Все, конечно же, нет, но какие-то — определенно, да.


И вот тут невольно возникает вопрос: не обошла ли медицина другую, казалось бы, не менее прогрессивную индустрию разработки программного обеспечения?

Читать дальше →
Всего голосов 94: ↑62 и ↓32 +30
Комментарии 158

«Microsoft Coffee»: первоапрельский ответ на Java

Время на прочтение 4 мин
Количество просмотров 22K

На днях в интернете появился любопытный пост. Там утверждается, что в 1996 году несколько сотрудников Microsoft втайне от руководства устроили первоапрельский розыгрыш. Они распространили по магазинам Сиэтла коробки с несуществующим продуктом «Microsoft Coffee», намекающим на Java. Возник резонанс, на местном телеканале вышли новости, но PR-отдел и Билл Гейтс шутку не оценили. Поэтому компания пыталась вычислить организаторов, а публично всё отрицала и замяла историю, так что все эти 25 лет о ней никто не вспоминал.

История забавная, но есть нюанс. Опубликована она 1 апреля 2021 года. И возникает вопрос, как же всё на самом деле: действительно ли в 1996 году происходили описанные события, или подобного не было, а сам этот новый пост и есть первоапрельская шутка?

Если и шутка, то удивительно проработанная. Я собрал тут все подробности: и что сказано в посте, и какие есть аргументы за/против его подлинности.

Читать далее
Всего голосов 51: ↑49 и ↓2 +47
Комментарии 59

Как построить четкие модели классов и получить реальные преимущества от UML. Часть 4

Время на прочтение 9 мин
Количество просмотров 4K

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

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 4

PVS-Studio вступает в битву с захардкоженными паролями

Время на прочтение 6 мин
Количество просмотров 4.6K

PVS-Studio – статический анализатор, позволяющий обнаружить множество проблем, скрытых в исходном коде. Среди них также присутствуют ошибки, связанные с безопасностью приложений. К примеру, недавно анализатор научился определять наличие в коде конфиденциальных данных, таких как пароли. Данная потенциальная уязвимость находится в списке OWASP Top Ten и является куда более опасной, чем может показаться на первый взгляд. В чём же эта опасность состоит и как статический анализатор может от неё уберечь? Что ж, об этом (и не только) и написана данная заметка!

Читать далее
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 11

Научно-исследовательские инициативы JetBrains

Время на прочтение 14 мин
Количество просмотров 6.4K
«Develop with pleasure», «The drive to develop» — об этом вы наверняка от нас слышали. Но наши интересы далеко не ограничиваются разработкой и созданием мощных инструментов для повышения продуктивности. Мы верим, что можем многое изменить и сделать мир лучше. Один из верных способов — проведение исследований в области передовых технологий и образования. Совместно с ведущими научными учреждениями мира мы занимается прикладными исследованиями, способными влиять на жизни людей и двигать нас всех вперед.

Наши научные исследования объединены в рамках направления JetBrains Research.

Ниже мы представим исследовательские группы JetBrains Research и расскажем, чем они занимаются.

Наука сегодня для технологий будущего



JetBrains Research объединяет более 150 исследователей, участвующих в проектах более 19 лабораторий и групп. Лаборатории и группы ведут работу в самых разных направлениях — от физики элементарных частиц до разработки ПО.

Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 6

Продвинутые функции гита, о которых вы, возможно, не знали

Время на прочтение 9 мин
Количество просмотров 18K

Git – очень мощный инструмент, который практически каждый разработчик должен использовать ежедневно, но для большинства из нас git сводится к нескольким командам: pull commit push. Однако, чтобы быть эффективным, продуктивным и обладать всей мощью git, необходимо знать ещё несколько команд и трюков. Итак, в этой статье мы исследуем функции git, которые просто запомнить, применять и настроить, но которые могут сделать ваше время с git гораздо более приятным.

Кладите этот пост в закладки, если хотите быстро научить новичка (или просто неосведомлённого человека) умело пользоваться git.

Приятного чтения!
Всего голосов 20: ↑15 и ↓5 +10
Комментарии 22

11 вопросов на собеседовании по Spring Boot, которые заставляют задуматься

Время на прочтение 7 мин
Количество просмотров 50K

Большинство списков вопросов интервью по Spring Boot заставляют вас запоминать случайные детали из документации Spring Boot. Но запоминание — плохая замена истинному пониманию и уверенности в знании Spring Boot.

Поэтому сегодня мы собираемся применить другой подход. Вместо того, чтобы перечислять 50 вопросов по мелочам Spring Boot, мы сосредоточимся на 11, которые заставят вас задуматься и, таким образом, многому научиться на этом пути.
Вот они, в произвольном порядке.

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

Читать далее
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 10

Микросервисы: от CRUD до Native Image. Часть первая

Время на прочтение 5 мин
Количество просмотров 8.6K

Слово «микросервисы» на слуху последние несколько лет. Технология активно развивается, на онлайн-конференциях о ней говорят, да и сами мы пишем их каждый день. Когда-то новый подход уже стал рутиной. Но мне как Java-архитектору интересно то, каким код был раньше, как он менялся, какие способы исполнения популярны сейчас и будут использоваться в 2021 году: асинхронность, контейнеры, FaaS. 

Так родился этот пост в двух частях, который я подготовил для Хабра на основе своих статей в блоге компании BellSoft и круглого стола Joker 2020, где мы обсуждали будущее джавы. Актуальное сегодня улучшение экосистемы для бэкендов не может существовать без понимания того, как создавать микросервисы: писать с нуля или вырезать скальпелем из монолитов? Предлагаю в первой части поговорить об их сущности, а во второй — разложить микросервисный контейнер на слои и посмотреть на вклад каждого слоя.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 7

Java Core для самых маленьких. Часть 2. Типы данных

Время на прочтение 3 мин
Количество просмотров 21K

Java - строго-типизированный язык программирование, что это такое?
В Java есть примитивные типы данных, а это что такое?
Каждый примитив обладает своим размером и диапазоном значений.

Обо всем этом вы узнаете в этой статье про типы данных в Java!

Читать далее
Всего голосов 14: ↑6 и ↓8 -2
Комментарии 10

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность