Сборщик RSS-лент

Как общаться с руководителем

Habr.com - ср, 11/20/2024 - 19:08
Напишу несколько простых и избитых правил общения между руководителем и подчинёнными. Вы могли их видеть так или иначе много раз, но иногда, в моменты грусти по поводу собственного коллектива (такие моменты бывают у абсолютно всех руководителей!) хочется порефлексировать, конкретизировать и положить на бумагу мысли по этому поводу.

Ниже представленные правила, наверное, должны немного корректироваться вместе с рангом: я пишу из позиции линейного руководителя (тимлида), который управляет непосредственно исполнителями (разработчиками и тестировщиками). Скорее всего, на уровне топ-менеджмента есть свои важные нюансы. Однако в общем и целом идеи останутся теми же.


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

Вернер Бухгольц. Байт на Stretсh

Habr.com - ср, 11/20/2024 - 19:05

В феврале 1977 года, во втором выпуске журнала с говорящим названием «Байт» было опубликовано письмо некоего Вернера Бухгольца, который приоткрыл тайну появления этого термина. Почему? Потому что именно он стоял у его основ и вспомнил, что первое применение термина было в далёком 1955 году, в первые дни разработки IBM 7030 Stretch. Через год из многих вариантов «стандартным» стал восьмибитный байт, но эта информация содержалась во внутренних документах для IBM 7030 Stretch и в статье «система связей», которая предназначалась для внутреннего пользования. Именно Вернер решил использовать написание byte, чтобы не допустить случайной путаницы с bit. Лишь в июне 1959 года, в статье «Обработка данных по частям», термин официально «родился» во всем привычном значении и «ввёл» Вернера Бухгольца в историю информационных технологий. Ключевую роль в этом сыграл успех и провал суперкомпьютера Stretсh.

Читать далее

Размер имеет значение: как исторические данные помогают на этапе дизайна A/B-теста

Habr.com - ср, 11/20/2024 - 18:51

Метод CUPED уже давно завоевал популярность в анализе A/B-тестов, предоставляя возможность выявлять эффекты меньших размеров. В этой статье мы подробно рассмотрим применение данного подхода на этапе дизайна эксперимента. Мы исследуем, как можно сократить размеры выборок, не теряя при этом в статистической мощности теста.

Читать далее

Что делать, если WAF не позволяет создать кастомное правило для JSON: готовое решение

Habr.com - ср, 11/20/2024 - 18:40

Сегодня расскажем вам о нестандартном подходе к защите веб-приложений
с помощью PTAF PRO. Мы с коллегами столкнулись с интересной задачей:
как защитить уязвимое приложение от вредоносных JSON-запросов, если WAF официально не поддерживает их обработку в пользовательских правилах?

В этой статье пройдем путь от постановки проблемы до ее решения, используя регулярные выражения и нестандартные настройки PTAF PRO. Руслан Ануфренка, инженер в группе технической поддержки информационной безопасности
в К2 Кибербезопасность
расскажет, как:

1. Настроить систему для работы с внешним агентом PT AF PRO;
2. Закрыть уязвимость Zero Stars в Juice Shop;
3. Создать и применить пользовательское правило с помощью регулярных выражений;
4. Оценить эффективность и ограничения такого решения.

Статья будет полезна специалистам по информационной безопасности, разработчикам и всем, кто интересуется тонкостями настройки WAF и защиты веб-приложений.

Читать далее

Как мы измерили качество сервисов передачи данных беспроводного интернета на M8 «Холмогоры»

Habr.com - ср, 11/20/2024 - 18:28

В начале лета 2024 года мы получили предложение от правительства Ярославской области проверить качество сервисов передачи данных, предоставляемых сотовыми операторами, на автотрассе М8 «Холмогоры». Выражаясь на профессиональном сленге – провести драйв-тест в границах области.

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

Стандартно подобный измерительный комплекс состоит из следующих компонентов:

специализированного программного обеспечения, позволяющего собирать, синхронизировать и сохранять измерения;

измерительного приемника – сканера, при помощи которого оценивают покрытие сотовой сети;

измерительных терминалов, которые позволяют оценить предоставляемые сервисы – качество голосовой связи, скорость передачи данных и прочее;

GPS-приемника, осуществляющего геопривязку измерений.

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

Читать далее

Версионирование эндпоинтов — это просто

Habr.com - ср, 11/20/2024 - 18:19

Команда Spring АйО перевела и адаптировала доклад "Endpoint versioning made simple" Бауке Найхаус (Bouke Nijhuis) с последнего Devoxx Belgium. 

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

Читать далее

Честный взгляд на Spring Data JPA

Habr.com - ср, 11/20/2024 - 18:16

Spring Data JPA считается швейцарским ножом для работы с БД в Java. Однако Spring Data JPA не заслуживает своего триумфа и вот почему...

Читать далее

[Перевод] Учёные нашли на трёхмерной карте Млечного пути «туннель для побега» из местного пузыря

Habr.com - ср, 11/20/2024 - 18:12

Используя данные всепланетного обзора eROSITA, астрономы создали 3D-карту низкоплотного пузыря рентгеновского излучения, состоящего из горячего газа с температурой в миллион градусов, который окружает Солнечную систему.

Исследование выявило крупномасштабный температурный градиент внутри этого т.н. местного горячего пузыря (МГП) — то есть в нём есть как горячие, так и холодные области. Команда подозревает, что этот температурный градиент мог быть вызван превращением массивных звёзд в сверхновые, что привело к повторному нагреву пузыря. Такое нагревание должно было привести к расширению кармана с газом низкой плотности.

Читать далее

Ransomware: not-a-virus, или Почему антивирус — не панацея при атаке шифровальщиков

Habr.com - ср, 11/20/2024 - 18:02

Разбирая очередной инцидент, связанный с атакой шифровальщика, и услышав в очередной раз вопрос «как же так, ведь у нас есть антивирус!?», мы решили поделиться с комьюнити информацией о возобновившейся активности группировки DсHelp.

В этой статье расскажем про участившиеся атаки DсHelp, рассмотрим тактики и техники данной группы, а также отметим, почему антивирус — не панацея и как легитимное ПО может быть использовано против вас.

Читать далее

[Перевод] Реверс-инжиниринг новой функции iOS Inactivity Reboot

Habr.com - ср, 11/20/2024 - 18:01

В iOS 18 появилась новая функция безопасности: перезагрузка бездействия (inactivity reboot). От чего она защищает и как работает? В этом посте мы рассмотрим все подробности вплоть до расширения ядра и Secure Enclave Processor.

Безопасность до и после первой разблокировки
А вы знали, что первый ввод пароля после включения телефона сильно отличается от его дальнейшего ввода для разблокировки телефона?

При первом вводе пароля разблокируется хранилище ключей в Secure Enclave Processor (SEP), шифрующем пользовательские данные на iPhone.

Состояние до первого ввода пароля называется Before First Unlock (BFU). Из-за шифрования пользовательских данных iPhone ведёт себя немного иначе при последующих разблокировках. Вы увидите, что Face ID и Touch ID не работают, и требуется ввод пароля. Но можно заметить и более тонкие отличия: поскольку пароли Wi-Fi зашифрованы, iPhone не будет подключаться к сетям Wi-Fi. Если SIM не защищена PIN-кодом, то iPhone сможет подключаться к сотовым сетям. Это означает, что вы сможете получать телефонные вызовы. Однако при получении вызова, даже если номер есть в контактах, имя контакта не будет отображаться, потому что контакты ещё не дешифрованы. Аналогично, при получении уведомлений о новых сообщениях вы увидите, что получили сообщения, но их предпросмотр будет недоступен. Можете попробовать сами! Читать дальше →

Huawei уходит от Android. Придётся ли бизнесу делать приложения для HarmonyOS Next

Habr.com - ср, 11/20/2024 - 18:00

В 2023 году Huawei заявили об окончательном уходе от Android и переходе на собственную HarmonyOS Next. Для разработчиков это значит, что не получится создавать нативные приложения силами одной команды. Бизнес ждут новые расходы или снижение охвата аудитории.

Меня зовут Сергей, я техлид Android-разработки в Surf. В статье расскажем, чего ожидать владельцам приложений в России, стоит ли готовиться к очередной разработке на новой ОС и как это сделать.

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

Паттерны проектирования на языке Kotlin (часть 2)

Habr.com - ср, 11/20/2024 - 17:57

Паттерны проектирования на языке Kotlin

Это вторая часть статьи. Первая её часть здесь.

Поведенческие паттерны

13. Chain of Responsibility (Цепочка обязанностей)

Описание: Позволяет передавать запросы последовательно по цепочке обработчиков.

Когда использовать: Когда есть более одного объекта, который может обработать запрос.

Пример кода:

abstract class Handler(private val next: Handler?) { open fun handle(request: String) { next?.handle(request) } } class AuthenticationHandler(next: Handler?) : Handler(next) { override fun handle(request: String) { if (request.contains("auth")) { println("Аутентификация прошла") super.handle(request) } else { println("Аутентификация не удалась") } } } class LoggingHandler(next: Handler?) : Handler(next) { override fun handle(request: String) { println("Логирование запроса: $request") super.handle(request) } } fun main() { val handler = AuthenticationHandler(LoggingHandler(null)) handler.handle("auth: запрос к ресурсу") }

14. Command (Команда)

Описание: Инкапсулирует запрос как объект, позволяя параметризовать клиентов с разными запросами.

Когда использовать: Когда нужно параметризовать объекты выполняемым действием.

Пример кода:

interface Command { fun execute() } class Light { fun turnOn() = println("Свет включен") fun turnOff() = println("Свет выключен") } class TurnOnCommand(private val light: Light) : Command { override fun execute() = light.turnOn() } class TurnOffCommand(private val light: Light) : Command { override fun execute() = light.turnOff() } class RemoteControl { private val commands = mutableListOf<Command>() fun addCommand(command: Command) = commands.add(command) fun executeCommands() = commands.forEach { it.execute() } } fun main() { val light = Light() val turnOn = TurnOnCommand(light) val turnOff = TurnOffCommand(light) val remote = RemoteControl() remote.addCommand(turnOn) remote.addCommand(turnOff) remote.executeCommands() }

15. Iterator (Итератор)

Описание: Предоставляет способ последовательного доступа к элементам агрегатного объекта без раскрытия его внутреннего представления.

Когда использовать: Когда нужно предоставить единый интерфейс для обхода различных коллекций.

Пример кода:

class Notification(val message: String) class NotificationCollection { private val notifications = mutableListOf<Notification>() fun addNotification(notification: Notification) = notifications.add(notification) fun iterator(): Iterator<Notification> = notifications.iterator() } fun main() { val collection = NotificationCollection() collection.addNotification(Notification("Уведомление 1")) collection.addNotification(Notification("Уведомление 2")) collection.addNotification(Notification("Уведомление 3")) val iterator = collection.iterator() while (iterator.hasNext()) { val notification = iterator.next() println(notification.message) } }

16. Mediator (Посредник)

Читать далее

Задача о банкомате

Habr.com - ср, 11/20/2024 - 17:38

Рассмотрим одну задачу, которая на leetcode маркирована как "medium", хотя на самом деле это невероятно сложная задача. Примечательна она тем, что допускает в разной степени оптимальные решения, самые упрощённые из которых действительно весьма просты, а самые оптимальные ещё не найдены современной наукой. В этой задаче ценно то, что на её примере можно изучать целый ряд техник программирования.

Читать далее

[Перевод] Как я получил грин-карту EB-1A по программе талантов

Habr.com - ср, 11/20/2024 - 17:30

Всё, что я делал после одобрения петиции по программе талантов EB-1A и до въезда в США в статусе резидента. Все формы, которые я заполнял. Каждый полученный ответ и каждый скриншот на пути.

Читать далее

Удачный дизайн в советских товарных знаках

Habr.com - ср, 11/20/2024 - 17:30

Настоящий рассвет в дизайне советских товарных знаков наступил после принятия одноименного Постановления Совета Министров СССР в 1962 году.

Читать далее

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

Habr.com - ср, 11/20/2024 - 17:17

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

И вот мне пришла мысль создать приложения для изучения слов где слова можно выбирать самому из списка. А что бы не учить всякий шлак я нагуглил в интернете список самых частых 1000 английских слов. Три месяца ушло на изучение явы и написания приложения. Хотел выложить в плей маркет, но началась война и плей маркет был закрыт.

Получилось вот так https://www.rustore.ru/catalog/app/com.example.word_1000_eng

Вот так выглядит мой список популярных слов

Читать далее

Обучающий маркетинг сложных продуктов — как тратить на привлечение клиентов меньше в 3-5 раз. Инструкция по применению

Habr.com - ср, 11/20/2024 - 17:16

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

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

Читать далее

Считаем размер выборки для AB-теста на основе нормального распределения (готовимся к собеседованию на Аналитика)

Habr.com - ср, 11/20/2024 - 17:01

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

Читать далее

Нагреть в микроволновке или засыпать рисом: 5 безотказных способов ушатать свой девайс

Habr.com - ср, 11/20/2024 - 17:00

Привет, Хабр. Меня зовут Дима Фролов. Я автор команды спецпроектов МТС Диджитал, а еще около 10 лет ремонтирую технику: от мобильных телефонов до фотокамер и телевизоров. Сегодня хочу поделиться самыми нелепыми случаями поломки техники, с которыми сталкивался. Все они произошли из-за некорректных действий пользователя, и у всех один результат: техника ушатана. Самое обидное, что если бы человек среагировал правильно, его девайс можно было бы починить быстро и с минимальными вложениями. Вместо этого или ремонтировать было уже нечего, или ремонт стоил как крыло самолета. Подробности — дальше.

Читать далее

[Перевод] Удовлетворяя потребность в вычислениях

Habr.com - ср, 11/20/2024 - 16:33

В 1965 году Патрик Хаггерти, президент компании Texas Instruments (TI), захотел сделать новую ставку на будущее электроники. Он считал, что в этом будущем, как он часто говорил, использование электроники станет «повсеместным». За десять лет до этого он добился разработки карманного радио на транзисторах, чтобы продемонстрировать потенциал твердотельной электроники (основанной на маленьких кусочках полупроводникового материала, вырезанных из пластины, вместо пухлых электронных ламп). На очереди была новая форма электронных компонентов: интегральные схемы, в которых на одном полупроводниковом чипе размещались десятки и даже сотни компонентов. Вместе с Джеком Килби, пионером интегральных схем, а ныне одним из ведущих научных руководителей TI, Хаггерти задумал новый потребительский продукт, достойный этой новой эпохи: калькулятор, который «мог бы поместиться в кармане пальто и продаваться менее чем за 100 долларов». В то время типичный калькулятор по размеру, форме и весу напоминал печатную машинку и стоил более 1000 долларов (более 10 000 долларов в долларах 2024 года)[1].

Читать далее

Сейчас на сайте

Сейчас на сайте 0 пользователей и 0 гостей.
Ленты новостей