Pull to refresh
@0xf0a00read⁠-⁠only

Программист

Send message

Главной угрозой для общества стали компании, которые «защищают безопасность»

Reading time7 min
Views73K
Получив новый телефон, я всегда его разбираю. Не из любопытства и не по политическим причинам, а просто для безопасности. Первый шаг — удаление двух или трёх крошечных микрофонов на плате. Это лишь начало сложного процесса. Но даже после нескольких дней работы с паяльником смартфон всё равно остаётся самым опасным предметом в моей квартире.


Микрофоны на материнской плате смартфона перед удалением

До публикации проекта Pegasus — разоблачения фатальных последствий деятельности NSO Group, ещё одной коммерческой фирмы, которая вышла из-под контроля индустрии безопасности — большинство производителей смартфонов и большая часть мировой прессы дружно закатывали глаза, когда я публично называл новенький iPhone потенциальной угрозой для жизни.

Теперь все поняли, о чём речь.
Читать дальше →
Total votes 117: ↑95 and ↓22+73
Comments198

Семь «абсолютных истин» джуниора, от которых пришлось отучиваться

Reading time10 min
Views65K


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

Размышляя об этом первом десятилетии регулярного получения денег за ввод странных символов в терминал, хотелось бы поделиться некоторыми наблюдениями, как изменилось моё мышление за годы работы.
Читать дальше →
Total votes 87: ↑77 and ↓10+67
Comments167

Климатическая система в квартире своими руками — часть 2

Reading time5 min
Views29K
В июне 2016 года я опубликовал статью «Климатическая система в квартире своими руками», вызвавшую положительную реакцию сообщества. Тогда я только что собрал климатическую систему, не успел её протестировать, и вообще был немножко в эйфории от своей победы над оборудованием и материалами.

Сейчас, два года спустя, я решил написать об опыте использования системы. Вкратце, всё работает, но потребовало некоторого доведения до ума, а именно:
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments76

Как проходить техническое собеседование?

Reading time5 min
Views22K

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

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments8

6 способов выполнения метода при старте Spring Boot приложения

Reading time8 min
Views42K

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

Рассмотрим различные способы выполнения метода после запускаSpring Boot.

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments7

Apache Kafka для чайников

Reading time11 min
Views237K
Данная статья будет полезной тем, кто только начал знакомиться с микросервисной архитектурой и с сервисом Apache Kafka. Материал не претендует на подробный туториал, но поможет быстро начать работу с данной технологией. Я расскажу о том, как установить и настроить Kafka на Windows 10. Также мы создадим проект, используя Intellij IDEA и Spring Boot.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments14

Разработка стековой виртуальной машины и компилятора под неё (итог)

Reading time16 min
Views10K

Для завершения реализации компилятора потребовалось около месяца времени (вечерами), чтобы на практике познакомиться с такими темами как BNF (Backus Naur Form), Abstract Syntax Tree (AST), Symbol Table, способами генерации кода, разработки самого компилятора (front-end, back-end), а также модификации виртуальной машины CVM. Ранее с этими темами был не знаком, но благодаря комментаторам погрузился. Хоть затрагиваемых тем много, постараюсь рассказать очень лаконично. Но обо всём по порядку.

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments9

Spring boot: маленькое приложение для самых маленьких

Reading time13 min
Views27K

Всем привет! Меня зовут Варвара и я Java Developer в компании “Цифровые привычки”. Я прошла их курс по Java-разработке и по окончании получила  оффер от компании. Сейчас я хочу поделиться материалом с одного из воркшопов, который нам проводил один из лекторов - Алексей Романов, Software Architect и преподаватель Бауманки.

В этой статье мы научимся создавать простые REST приложения. Напишем свое приложение с использованием SpringBoot, создадим свои контроллеры, воспользуемся JPA, подключим PostgreSQL.

Мы будем разрабатывать приложение в 3 этапа.

Читать далее
Total votes 9: ↑5 and ↓4+1
Comments6

Как увеличить ресурсы в десять раз

Reading time6 min
Views5.2K

Прошу прощения за заголовок, похожий на желтые СМИ, и странный эпиграф, который я объясню ниже. Речь пойдет не о том, как увеличить скорость процессора или емкость диска на порядок, а всего лишь о разновидности данных, которые могут быть включены в исполняемый модуль формата EXE. Эти данные, на мой взгляд, не совсем удачно названы (или же зря буквально переведены) как «ресурсы».

Для тех, кто не интересовался подобными деталями, поясню, что формат, под привычной сейчас всем аббревиатурой EXE, в отличие от самого примитивного COM-формата (т.е. просто готового образа выполняемых команд), имеет внутри себя различные таблицы настроек. Главным образом, это было сделано для того, чтобы такой EXE-модуль можно было загружать в произвольное место памяти. Затем с помощью этих таблиц можно до собственно запуска программы настроить адреса команд и данных на нужные значения, если где-то применена абсолютная, а не относительная адресация.

В эпоху Windows EXE-формат еще усложнился, и закономерно появилась возможность хранить в нем как неотъемлемую часть не только команды и простые данные, но и, например, картинки или элементы интерактивного диалога. В самом деле, если Ваша программа рисует красивый курсор в виде какой-нибудь стрелочки «выточенной из стали», неудобно же таскать вместе с программой еще и отдельный файл с изображением этой стрелки. Гораздо удобнее поместить изображение прямо внутрь EXE-файла, указав, что это не просто картинка, а именно курсор. Кстати, при создании ярлыка программы, Windows ищет в ресурсах EXE-файла элемент типа «иконка» и высвечивает его как значок ярлыка по умолчанию.

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments7

10 топовых плагинов для IntelliJ IDEA, которые ты не должен пропустить

Reading time4 min
Views25K

Хотя IntelliJ IDEA является полноценной IDE (Интегрированная среда разработки), вы наверняка захотите ее персонализировать. В JetBrains Marketplace есть множество плагинов с полезными функциями, которые могут удовлетворить ваши личные или деловые потребности.

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

Напоминаем, что все плагины можно установить через Настройки/Параметры | Плагины или на вкладке Плагины на экране приветствия.

Погнали!
Total votes 23: ↑18 and ↓5+13
Comments5

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

Reading time6 min
Views4.5K
image
На рисунке — прототип продукта для Сбербанк Онлайн.

Есть разные методики для исследования и улучшения клиентского опыта (Customer experience, CX). Сегодня расскажем про одну из них — дизайн-мышление, и поможет в этом Ирина Баженова — эксперт по исследованию клиентского опыта в Сбере.

До CX Ирина работала в розничном отделении ещё того самого Сбербанка, когда в ходу были сберкнижки, без которых не мог существовать вклад. Бумажную книжку клиент мог случайно испортить — намочить, например, тогда её нужно было менять. Она могла просто закончиться, и тогда, если вдруг кто-то помнит, ставился штампик, и владельцу нужно было от руки писать прописью сумму, на которой закончилась его книжка, чтобы перенести всё до копеечки на новую. Конечно, кто-то ошибался, пенсионерам так вообще было очень сложно писать от руки. Главный вопрос, который возник тогда у Ирины: зачем я как специалист прошу сделать это нашего клиента? Ведь ему это сложно делать. И какая от этого практическая польза? Подобных ситуаций было довольно много. Но тогда и банк был другой, и законодательство.

В 2016 году в Сбере началась Agile-трансформация. Тогда же стали активно внедрять методологию дизайн-мышления для проектирования клиентского опыта. Первые годы почти все проекты были направлены не на исследование новых продуктов, а на исправление каких-то особенностей старых. Ну, знаете, типа той, что «где карту открывали, в то отделение и идите».
Так что проверено на практике: чем раньше провести исследование и поговорить с клиентом, тем меньше затрат будет дальше на стадии разработки и запуска продукта. И, собственно, именно поэтому есть смысл встраивать процессы по изучению клиентского опыта в саму разработку. Если же задуматься о клиенте, только когда уже есть прототип, то это уже неэффективно потраченные ресурсы.
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments10

Новые функции языка, начиная с Java 8 до 16

Reading time22 min
Views12K

Улучшения языка Java, которые вам следует знать

Последнее обновление 30.03.2021, чтобы включать изменения до JDK 16.

Когда в Java 8 были представлены Streams и Lambdas, это было большим изменением, позволившим использовать функциональный стиль программирования с гораздо меньшим количеством шаблонного кода.

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

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments9

SARS нерукотворный? Генеалогия уханьского коронавируса

Reading time73 min
Views291K

Не, ну какая рукотворность? Что за бред? Думал я, когда впервые услышал гипотезу о том, что Ковид-19 вызван то ли лабораторной утечкой, то ли вообще целенаправленной биоатакой. И каждый раз просто отмахивался от этих домыслов, когда они в очередной раз доплывали до меня в бурном потоке коронавирусного инфошума. Ну подумаешь, есть в Ухане институт вирусологии, мало ли.

В какой-то момент отмахиваться уже пришлось аргументированно, потому что сторонники рукотворности начали обосновывать свои тезисы о возможной искусственной природе вируса доводами из молекулярной биологии, и тут уже хотелось в пух и прах разбить их конспирологию холодными научными фактами. Уж если не как авторы статьи в Nature (казалось мне), то хотя бы как уважаемый мной Панчин.

И вот тут, в погоне за доводами против рукотворности вируса, меня и заразил вирус сомнений. В чём, собственно, причина сомнений? В том, что чем глубже погружаешься в деятельность коронавирусологов за последние 15–20 лет, тем лучше понимаешь, что создание ровно таких химер как CoV2 у них было обыденным делом. А CoV2 — это очевидная химера, основанная на летучемышином штамме RaTG13, у которого в шиповидном белке место связывания с рецептором (RBM) заменено с летучемышиного на панголиний, и вдобавок врезан особый участок из 4-х аминокислот, создавший furin cleavage site, который, как ранее выяснили вирусологи, значительно расширяет «репертуар» вируса в плане того, в чьи клетки он может проникать. Скорее всего, именно благодаря этому новому фуриновому сайту, новый мутант и сумел перескочить с исходных носителей на людей.

С учётом тех высот, которых сегодня достигла генная инженерия, синтетически собрать CoV2 по вышеописанной методике не составило бы труда даже начинающему специалисту. Ведь вирусологи, включая руководителя коронавирусного направления в Уханьском институте вирусологии Ши Чжэнли, такими вещами уже неоднократно занимались — как заменой RBM у одного вида вируса на RBM из другого
Total votes 421: ↑381 and ↓40+341
Comments720

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

Reading time9 min
Views181K

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

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

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

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

Как переехать в Польшу в условиях локдауна/карантина

Reading time7 min
Views10K
Update:
По рекомендации читателей небольшой апдейт. Эта статья может быть полезна жителям Республики Беларусь и тем, кто задумывается о переезде в Польшу в ближайшее время. Кому это не интересно, просто не тратьте свое время. Это очень специфический кейс, но для тех кому это важно это действительно больной вопрос.

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

Как свалить самому?


От 13 марта 2020 г. действуют новые правила пресечения внешней границы с Польшей. В первых пунктах этих правил указаны следующие лица, которым разрешено пересекать внешнюю Польскую границу: граждане Польши; иностранцы, которые являются супругами или детьми граждан Польши или находятся под их постоянной опекой; иностранцы с Картой поляка; главы дипломатических миссии; Скорее всего если вы читаете эту статью, то не один из пунктов вам не подходит. Если у вас нет карты Поляка, супруга или супруги в Польше. Но если почитать дальше, то есть пару интересных пунктов, которые вам должны подойти.
Total votes 19: ↑6 and ↓13-7
Comments10

Регистрация и авторизация с помощью Spring Security на примере простого приложения

Reading time21 min
Views291K
Добрый день!

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

Что будет представлять из себя приложение


Сайт со следующими страницам:

  • страницы доступные всем пользователям: главная, регистрации и логина;
  • страница доступная для зарегистрированных пользователей: новости;
  • страница доступная для администратора.

Что будем использовать


  • JDK 8+;
  • Intellij Idea;
  • Spring (Spring Boot, Spring MVC, Spring Security);
  • Hibernate;
  • JSP;
  • PostgreSQL.
Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments10

Практическая стеганография. Скрытие информации в изображениях PNG

Reading time5 min
Views42K


На хакерских конкурсах и играх CTF (Capture The Flag) иногда попадаются задачки на стеганографию: вам дают картинку, в которой нужно найти скрытое сообщение. Наверное, самый простой способ спрятать текст в картинке PNG — прописать его в одном из цветовых каналов или в альфа-канале (канал прозрачности). Для выявления подобных «закладок» есть специальные инструменты, такие как stegsolve, pngcheck и stegdetect, иногда конкурсантам приходится вручную повозиться с фильтрами в GIMP или Photoshop.

Однако прогресс не стоит на месте — и в последнее время всё чаще используются другие способы скрытия данных, например, PNG-наполнение. Посмотрим, как это делается.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments4

Как сделать работу с Microsoft Remote Desktop лучше

Reading time7 min
Views152K
Хочу поделиться несколькими советами по настройке удаленного подключения к рабочим местам по RDP. Расскажу как проапгрейдить древний RPC-HTTP до UDP, похвалю и поругаю Windows 10 и AVC, разберу решение нескольких типичных проблем.

Считаем, что для подключения используется Remote Desktop Gateway (RDGW), а в качестве серверов выступают рабочие станции. Использовать RDGW очень удобно, потому что шлюз становится общей точкой входа для всех клиентов. Это дает возможность лучше контролировать доступ, вести учет подключений и их продолжительность. Даже если VPN позволяет подключиться к рабочим машинам напрямую — это не лучший вариант.

RDGW настраивается быстро, просто, а Let's Encrypt и win-acme легко решают проблему с доверенным сертификатом.

Есть три транспортных протокола по которым клиент может подключиться с серверу:

RPC-HTTP (плохо)
HTTP (лучше)
HTTP+UDP (отлично)

Под сервером будем понимать рабочую машину, под клиентом — домашнюю.
Первое, с чего стоит начать, это «плохо» превратить в «отлично».
Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments68

Обзор: Варшава и мать её Польша

Reading time17 min
Views48K




Привет, меня зовут Паша и я разработчик ПО!


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

Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments81

Как официально оплатить услуги фрилансера за границей, заплатить 0% налогов и не кормить платёжные системы

Reading time5 min
Views23K
Такая возможность есть и вполне легальна. Не всё ещё наше государство и банки обложили налогами и комиссиями, чтобы любовницы больших государственных шишек летали частными самолётами на свои 62-метровые яхты. Пользуйтесь пока не прикрыли.

Из статьи вы узнаете с какими проблемами сталкивается бизнес при оплате работ фрилансеров, как отнести данные затраты к расходам, как заплатить с расчётного счёта организации, какие документы и как составить, а так же будут приведены образцы документов.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments29

Information

Rating
Does not participate
Location
Минская обл., Беларусь
Date of birth
Registered
Activity