Pull to refresh
34
0.2
Alex @eaa

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

Send message

Java 17 для тех, кто не следил. Часть 2: API

Reading time8 min
Views15K

image


Если обновляешься со старой Java на LTS-версию Java 17, как разобраться сразу во всех фичах за несколько лет? Чтобы помочь с этим, мы уже публиковали расшифровку доклада tagir_valeev с нашего IT-фестиваля TechTrain. Но доклад такой подробный, что разделили его на два текста: в предыдущем была основная часть про языковые изменения, а теперь представляем вам завершающую часть про API.


И напоминаем, что следующий TechTrain состоится уже 14 мая (онлайн, бесплатно), а в июне будет много Java-докладов на JPoint (онлайн + офлайн).


Далее повествование идёт от лица спикера.

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

Будьте другом своему пользователю, пишите осмысленные сообщения об ошибках

Reading time7 min
Views4.6K
Сообщения об ошибках — повседневная часть нашей онлайн-жизни. Каждый раз, когда лежит сервер, или у нас отключился Интернет, или мы забыли ввести в форму обязательную информацию, мы получаем сообщение об ошибке. Классика — это «Что-то пошло не так». Но что пошло не так? Что произошло? И самое важное: как мне это исправить?


Примерно год назад наша команда разработчиков Wix внезапно осознала, что мы слишком часто не даём пользователям ответы на эти вопросы. Когда мы это поняли, то начали действовать быстро и решать проблему не только с тем сообщением, которое заставило нас задуматься.

Так начался Errorgate 2021.

Всего за месяц мы изменили тысячи сообщений об ошибках в Wix.

Чтобы выполнить этот проект, нам сначала нужно было определиться с тем, что же считать плохим сообщением об ошибке, а что хорошим.
Читать дальше →

ETL и ELT: ключевые различия, о которых должен знать каждый

Reading time10 min
Views58K
image

ETL и ELT — самые широко используемые способы доставки данных из одного или нескольких источников в централизованную систему для удобства доступа и анализа. Обе этих методики состоят из этапов extract (извлечения), transform (преобразования) и load (загрузки). Разница заключается в последовательности действий. Хотя можно подумать, что небольшое изменение в порядке этапов никак не влияет, на самом деле для потока интеграции это меняет всё.

В этом посте мы подробно рассмотрим процессы ETL и ELT, а также сравним их по важным критериям, чтобы вы могли понять, какой лучше подходит для вашего конвейера данных.
Читать дальше →

Тестовый запуск системы видеонаблюдения Synology на 8 камер

Level of difficultyHard
Reading time4 min
Views20K

Речь пойдёт о системе записи с IP-камер Surveillance Station от Synology. Я сам уже много лет использую Synology, причём впервые познакомился с ней ещё до покупки оригинального железного сервера, установив через Xpenology фирменную операционную систему на обычный компьютер.

Xpenology является загрузчиком операционной системы от Synology, которая называется DSM (DiskStation Manager) и используется на  фирменных NAS Synology. DSM работает на пользовательской версии Linux, разработанной Synology.

Веб-приложение Surveillance Station - это система NVR (сетевой видеозаписи) для обеспечения безопасности с помощью мониторинга IP-камер. Это приложение кажется довольно удобной, хотя и проприетарной системой видеонаблюдения, которая работает прямо из коробки. По умолчанию возможно бесплатное подключение только двух камер.

Однако бразилец Фабио Белавенуто в июле 2022 выложил на гитхабе проект загрузчика Automated RedPill Loader (ARPL), который позволяет практически без использования командной строки создать загрузочную флешку и протестировать запуск Synology DSM 7.1 и Surveillance Station 9.0.1-7673 на 8 камер без какой либо дополнительной оплаты на обычном компьютере при эмуляции сетевого хранилища DVA1622.

Альтернативный загрузчик для Синолоджи?

Почему ваши ежедневные стендапы не работают и как это исправить

Reading time12 min
Views27K

Перевод статьи Лукаса Ф. Косты "Why your daily stand-ups don't work and how to fix them" с некоторыми размышлениями переводчика (выделены курсивом).

Ежедневные стендапы — классический пример выученной беспомощности. Мы все знаем, что они отстой. Тем не менее, мы ничего с этим не делаем. В наши дни мы проводим стендапы потому что нам так говорят, а не потому что они решают какие-то конкретные проблемы.

Читать далее

Глубокое погружение в Java Memory Model

Reading time53 min
Views198K


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

Разбираемся с терминами «проект» и «продукт»

Reading time7 min
Views24K

— Руководители проектов круче! 

— Нет, продакт оунеры круче! 

Мне, как руководителю проектного офиса, приходилось сталкиваться с тем, что продакт- и проджект-менеджеры:

путаются в базовых терминах, таких как «проект» и «продукт»,

не понимают, в чем отличия руководителя проектов и продакт оунера, 

не видят разницы в проектных и продуктовых практиках, жизненных циклах и т.п. 

Поэтому я решил разобрать всё по полочкам и собрать в одном месте всю необходимую информацию. Итак, начнём с простого: постараемся разобраться, что такое «проект», а что такое «продукт». Для этого обратимся к определениям, приведенных в фреймворках, стандартах и руководствах.

Разобраться с терминами

Как изучить SQL за ночь или шпаргалка для системного аналитика

Level of difficultyEasy
Reading time10 min
Views178K

Помните, как вы были студентами, и готовились к экзаменам по ночам?

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

Изучите теорию на примерах и закрепите на 13 практических задачах по SQL.

Читать далее

Интеграционное тестирование микросервисов Spring Boot в монорепозитории

Reading time5 min
Views8.2K

Привет, Хабр! С ростом количества микросервисов и их взаимосвязей может возникнуть потребность комплексной проверки работоспособности системы. Со временем API сервисов и их поведение может дорабатываться и изменяться, при этом хочется иметь уверенность, что система микросервисов в совокупности ведёт себя согласно ожиданиям. Мы разберём простой пример написания интеграционных тестов, которые в дальнейшем можно встроить в CI/CD-процесс для решения подобной проблемы.

Читать далее

Закон Кёрли: Делай что-то одно

Reading time3 min
Views17K

В статье "Пережить великую нехватку переменных" (Outliving the Great Variable Shortage) Тим Оттингер формулирует закон Кёрли:

«Переменная должна означать только что-то одно. Она не должна означать "что-то при таких-то условиях" и иметь разный смысл в разных обстоятельствах. Также она не должна иметь два смысла одновременно. "За двумя зайцами погонишься – ни одного не поймаешь". Переменная должна означать что-то одно все время своего существования»

Читать далее

Как правильно верстать в 2022 году. Часть 1

Reading time11 min
Views95K

Меня зовут Николай, я Frontend-разработчик IT-компании Relog. Хочу рассказать о самых распространённых ошибках в вёрстке современных проектов.

Дело в том, что лишь малая часть современных фронтендеров обращает внимание на работу с HTML и CSS, предпочитая готовые решения, вроде UI-библиотек и систем сеток. Но эти решения неидеальные и приходится дописывать обёртки вокруг них, видоизменять код, переписывать стили и совершать прочие действия для соответствия требованиям проекта. Тут-то и начинаются проблемы: вёрстка местами становится избыточной, стили переназначются через important и с каждым релизом проект всё сложней поддерживать. Я уже не говорю об удобстве использования и доступности. Об этом думают вообще в последнюю очередь.

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

Читать далее

По колено в JVM куче, или на пороге потери данных

Reading time6 min
Views5.9K

Смоделируем ситуацию: у вас есть приложение на JVM (без разница, будь то Kotlin, Java или Scala), а еще у вас есть уверенность в себе и немного не хватает ответственности.

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

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

Мне кажется, любой уважающий себя программист на +- хобби проекте захочет навернуть нереально крутое самописное решение, чем, собственно говоря, я и занялся.

Была ли это хорошая идея?

Потратить время сейчас, чтобы сэкономить потом: как мы выстраивали процессы разработки и планирования на игровом проекте

Reading time14 min
Views17K

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

Когда команда увеличилась вдвое, а работы кратно прибавилось, старые процессы перестали работать. Мы могли запросто утонуть в операционке, если бы вовремя не начали меняться.

Материал для тех, кто задумался о долгосрочном планировании или только начал выстраивать процессы у себя. Внутри я подробно рассказал про наш опыт: как мы целиком обновили воркфлоу разработки, внедрили Jira, систему оценки фичей ICE, методологию планирования GIST, а также целую пачку новых инструментов и гуглдоков. Теперь мы на несколько месяцев вперед точно знаем, что будет в проекте. 

Читать далее

Firebase чуть не погубила мой стартап

Reading time5 min
Views26K

Firebase от Google – отличное бессерверное решение для разработчиков и компаний. Вообще говоря, мой первый опыт в облаках связан именно с ней. Я тогда писал на Android и только что запустил свой стартап. У меня не было денег на то, чтобы нанять себе в помощь разработчиков, которые занимались бы бэкендом. По этой причине я (и двое моих друзей) искали максимально простое решение для бэкенда. Так я узнал про Firebase.

Firebase представлялся одним из наилучших вариантов в нише «бэкенд как сервис». Освоить ее было очень легко – мне хватило пары дней, чтобы разобраться и начать применять ее в проекте. Изначально мы ставили цель подготовить прототип, посмотреть, как его примут на рынке и собрать побольше отзывов от пользователей.

Однако мы приняли ошибочное решение и продолжили использовать Firebase и в коммерческой версии продукта. Ниже я расскажу, как это ударило по проекту.
Читать дальше →

2500 дней создания AI без использования нейронных сетей или покерный бот, который дороже $50к

Reading time12 min
Views28K

Давно хотел написать статью про своё хобби, которое стало нечто большим для меня. 

Я закончил математический факультет(ТвГУ) в 2012г.  В период учёбы я профессионально играл в покер, как вживую, так и онлайн(yura_$198802,основной аккаунт PS). Не могу сказать, что был супер успешен, но для студента вполне себе подработка. Уже с 2011 года я начал карьеру программиста и продолжаю её по сей день. Это мой основной источник заработка. Но где-то в 2014 я серьёзно решил заняться написание покерного бота, для онлайн площадок. На данный момент “я” превратился в команду энтузиастов, которая двигает этот проект вперёд! Еще в университете довольно таки плотно был знаком с Байесовским классификатором, а также имел  базовые представления по нейронным сетям. Сейчас стало "мейнстримом" считать, что если вы нашли релевантные данные и корректно обучили сетку с использованием (ML,CatBoost,TensorFlow и т.д.), то вы сделали что-то похожее на “искусственный интеллект”(далее AI). Я решил ,что если раскрою верхнеуровневую архитектуру своего проекта, это может кого-то удивить тем, что AI - это нечто большое.(только не профессионалов в этой области) И даже в такой игре как покер, где казалась бы не обойтись без нейронных сетей(на самом деле это действительно так), до момента органического встраивания их в продукт, лично у меня прошло примерно 2500 дней. Сразу хочу отметить, что  способ, когда ты знаешь всю информацию обо всех участниках и играешь с одними и теми же, где можно просто собрать модель и обучить её по лучшим и быть в их числе, не подходит для так называемого реального онлайн покера. Тут  нужно делать изначально экспертную систему, которую уже можно бесконечно долго улучшать и модифицировать.

Читать далее

Про запуск трехфазных двигателей, косинус φ и не только…

Reading time16 min
Views60K

Описание моего опыта подключения трехфазного оборудования к однофазной сети. Коррекция коэффициента мощности.

Читать далее

Почему tar.xz-файлы, созданные с Python tar, оказались в 15 раз меньше, чем у macOS tar

Reading time3 min
Views22K

Прим. перев.: это не совсем обычный перевод, потому что в его основе не отдельно взятая статья, а недавний случай со Stack Exchange, ставший главным хитом ресурса в этом месяце. Его автор задает вопрос, ответ на который можно отнести к базовым знаниям в области ИТ, но в то же время оказавшийся откровением для некоторых посетителей сайта.

Сжимая каталоги по ~1,3 ГБ, в каждом из которых по 1440 файлов JSON, я обнаружил 15-кратную разницу между размером архивов, сжатых с помощью tar на macOS или Raspbian 10 (Buster), и архивов, полученных при использовании библиотеки tarfile, встроенной в Python.

Читать далее

Отчет о сетевой безопасности и доступности в 2020 году

Reading time10 min
Views3.4K

К 2021 году сеть фильтрации Qrator Labs расширилась до 14 центров очистки трафика общей пропускной способностью в 3 Тбит/с с точкой присутствия в Сан-Паулу, Бразилия, вводящейся в эксплуатацию в начале 2021 г.

Новые сервисы, предоставляемые партнерами компании (SolidWall WAF и RuGeeks CDN) за 2020 год были полностью интегрированы в инфраструктуру Qrator Labs и личный кабинет.

Улучшенная логика фильтрации позволяет Qrator Labs удовлетворить потребности даже самых крупных заказчиков с глобально распределенной инфраструктурой, обеспечивая полное покрытие услуг кибербезопасности и нейтрализации DDoS-атак.

Qrator Labs активно использует новейшие процессоры AMD для задач, связанных с обработкой трафика.

За 2020 год количество DDoS-атак лишь увеличилось, самые опасные можно описать просто: короткие и обескураживающе интенсивные.

Тем не менее, инциденты BGP оставались той областью, в которой очевидна необходимость изменений, так как количество серьёзных инцидентов, таких как перехваты трафика и утечки маршрутов, оставалось высоким в течение всех последних лет — и 2020 не был исключением.

В 2020 году компания Qrator Labs начала предоставлять услуги в Сингапуре в рамках нового партнерства, а также запустила центр очистки трафика в Дубае, где находится укомплектованный профессионалами офис, готовый отвечать на любые запросы потребителей в регионе.

Читать далее

Киберцветок

Reading time2 min
Views16K

Вдохновлялся идеей о светящемся ГМО-растении. https://nplus1.ru/material/2020/04/27/shining

Началось с того, что купил "в нагрузку" зелёные smd 0603 светодиоды. Появилась идея внедрить их в небольшое зелёное растение, чтобы получился внутренний свет. В таком виде не удалось реализовать, но что-то получилось, об этом и пост к 8 марта.

Цветы - далее

Влияние Kotlin data-классов на вес приложения

Reading time7 min
Views12K


Kotlin имеет много классных особенностей: null safety, smart casts, интерполяция строк и другие. Но одной из самых любимых разработчиками, по моим наблюдениям, являются data-классы. Настолько любимой, что их часто используют даже там, где никакой функциональности data-класса не требуется.


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

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

Information

Rating
3,509-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Specialist
Lead
From 500,000 ₽