В совсем раннем превью MS SQL мне вежливо отказали. И вот, наконец вышел публичный evaluation релиз! Давайте посмотрим, как MS SQL отнесется к самому неприятному - values with irregular selectivity. У меня про это даже была статья:
Новости
Фарм мерча от Positive Technologies на PHD11
с 18 по 19 мая 2022 года проходил всем известный международный форум по практической безопасности Positive Hack Days.На мероприятии как всегда были представлены различные вендоры из сферы IT, каждый из которых раздавал свои именные товары. Самыми интересными на мой взгляд были Positive Technologies. Как было организовано испытание для получения мерча под катом.
Эволюция Server-Driven UI: динамические поля, хэндлеры и многошаг
Server-Driven UI (SDUI) — это подход для динамичного и гибкого пользовательского интерфейса, когда сервер посредством API сообщает приложению, какие компоненты и с каким контентом отображать. Он довольно популярен, и мы его тоже используем на многих экранах — помогает быстро выпускать фичи в продакшн.
В статье покажу, на каких экранах мы его применяем, и расскажу, как развивались у нас подходы гибкого UI, какие плюсы и минусы мы вывели из его использования. Сначала рассмотрим формы на динамических полях, контракты и тонкие моменты создания новых полей. Потом поговорим про динамические флоу, как за ноль калорий на стороне фронта добавлять новых провайдеров для проведения оплаты и закончим зависимыми полями. Всё это с примерами экранов мобильного приложения.
Краткий перевод статьи DraftRec: Personalized Draft Recommendation for Winning in Multi-Player Online Battle Arena Games
Multiplayer Online Battle Arena (MOBA) — жанр компьютерных игр, сочетающий в себе элементы стратегий в реальном времени и компьютерных ролевых игр. Самыми известными играми в этом жанре являются League of Legends и Dota 2. Каждая игра состоит из стадии выбора (draft stage), в которой игроки по очереди выбирают одного из игровых персонажей (в LoL их называют чемпионами), и самой игры. От выбранных чемпионов очень сильно зависит исход всей партии, поэтому важно подобрать их так, чтобы они синергировали между собой и хорошо себя показывали против чемпионов противника. Но самое важное то, насколько игрок хорошо играет на своем чемпионе. DraftRec предназначен для того, чтобы помочь новичкам и не только выбрать оптимального героя для игры в текущем матче.
Java — 27! Как язык программирования, предназначенный для бытовой техники, стал одним из самых популярных в мире
23 мая 1995 года — дата официального выпуска Java. Язык Java и сегодня остается одним из самых востребованных языков программирования в IT. По данным индекса TIOBE, ранжирующего языки программирования на основе поисковых запросов о них, Java стабильно занимает третье место по популярности в мире с момента запуска рейтинга.
Сегодня с помощью языка решаются тысячи задач — от написания мобильных игр и приложений до разработки в финтехе и работы с big data. Вместе с Даниилом Пилипенко, программным директором факультета backend-разработки направления «Программирование» Skillbox, директором центра подбора IT-специалистов SymbioWay рассказываем, зачем был создан Java, как он повлиял на развитие IT-отрасли и насколько востребовано владеть Java сегодня. Для затравки –– фрагмент кода, который выведет возраст языка в консоли :)
Написание Paper/Bukkit плагина LiteSMT #1 — Основа понятий и окружение
Это моя первая публикация по созданию Bukkit/Paper плагина. Возможно данная статья поможет кому-то начать писать хоть какие-то плагины. Однако пока-что данный плагин не даёт неких интересных возможностей.
Добавляйте единицы измерения в имена
Есть одна ловушка читаемости кода, которой легко избежать, если вы о ней знаете; тем не менее она встречается постоянно: это отсутствующие единицы измерения. Рассмотрим три фрагмента кода на Python, Java и Haskell:
time.sleep(300)
Thread.sleep(300)
threadDelay 300
Сколько «спят» эти программы? Программа на Python выполняет задержку на пять минут, программа на Java — на 0,3 секунды, а программа на Haskell — на 0,3 миллисекунды.
Как это можно понять из кода? А никак. Вам просто нужно знать, что аргументом
time.sleep
являются секунды, а threadDelay
— микросекунды. Если вы часто ищете эту информацию, то рано или поздно её запомните, но как сохранить читаемость кода для людей, никогда не встречавшихся с time.sleep
?Азбука вкуса, Nuxt и наш тернистый путь к микрофронтам
Уже больше года мы в Азбуке вкуса мигрируем с jQuery на Nuxt. По мере роста, делали свою реализацию микрофронтов, чтобы хорошо организовать работу и решить ряд проблем.
В процессе наступили на пару граблей, долго думали и наконец сделали.
Приглашаем узнать о проделанной нами работе, о сложностях, с которыми мы столкнулись, и оценить итоговую реализацию.
Порезать, чтобы выпустить реальный MVP
На проектах с большими объемами и сжатыми сроками всегда актуален вопрос приоритетов.
Обычно вопрос "Что же конкретно включено в MVP?" становится всё горячее с приближением сроков релиза.
В теории (разных книгах, статьях) предполагается проведение приоритизации при планировании скоупа работ.
А что же происходит в жизни реального проекта на примере заказной разработки?
Заказчик представлен продактом. С той стороны заявляется некий набор функционала, необходимый к выпуску в рамках MVP. Обычно, на начальной стадии проекта формулировки отдельного функционала довольно поверхностные.
Почему RISC-V? — лекция Станислава Полонского
Здравствуйте! Меня зовут Станислав Полонский. Я представляю Samsung Advanced Institute of Technology (SAIT) - научно-исследовательский центр, специализирующийся на передовых технологиях будущего.
Сегодня мы поговорим о том, что такое архитектура RISC-V (читается, как «РИСК-Пять»). Я расскажу вам о прошлом и будущем этих процессоров, о том, почему эта архитектура так подходит для Интернета вещей, а в конце скажу, как можно продолжить своё образование в этом направлении.
Парольная политика безопасности в Carbonio
Надежные и постоянно меняющиеся пароли - основа защиты учетных записей от взлома. Именно поэтому надежная парольная политика безопасности - это первое, что необходимо настроить администратору почтового сервера Carbonio, чтобы повысить уровень защиты учетных записей на сервере. Второе необходимое действие - это обеспечение неукоснительного соблюдения требований парольной политики всеми пользователями. В данной статье мы расскажем о том, как настроить парольную политику безопасности в Carbonio и как добиться ее выполнения пользователями.
Делаем плату, или Как мы создавали гаджет, чтобы увидеть воздух, которым дышим. Фэйл и пара советов
Простой наглядный кейс - как мы решили собрать свое первое серийное электронное устройство.
Итак, мы усердно работали целый год и собрали наш первый компактный датчик определения качества воздуха. Но я решил все радикально переделать. В процессе эксплуатации датчика мне пришла в голову идея сделать из датчика «для нас» гаджет «для всех».
Требования к такому продукту иные:
Распределенные Workflow на PHP. Часть 2
В первой, теоретической, части статьи мы разобрали зачем нужны Workflow, где они применяются и какие способы их реализации существуют. Наша компания занимается разработкой энтерпрайз-софта — для нас это больная тема. Поэтому мы давно искали инструмент, который позволит легко вписывать новые шаги в любую схему, не ломая существующую бизнес-логику. Нашли и на его основе сделали свою новую разработку. Теперь давайте перейдём к более практической части и разберем, на что способен Temporal PHP SDK.
Меня зовут Антон Титов. Я более 15 лет занимаюсь коммерческой разработкой. Являюсь соавтором Spiral Framework, RoadRunner и Cycle ORM. Основной стек: PHP и Golang.
Руководство по Java 8 Optional
В этом учебном пособии мы рассмотрим класс Optional
, который был представлен в Java 8.
Цель класса — предоставить решение на уровне типа для представления опциональных значений вместо null
(нулевых) ссылок.
Для более глубокого понимания того, почему мы должны обратить внимание на класс Optional
, ознакомьтесь с официальной статьей Oracle.
Книга «Spring Boot по-быстрому»
Система распознавания шрифта Брайля. Читаем написанное белым по белому
В 2018 году мы взяли из детдома в семью слепую девочку Анжелу. Тогда я думал, что это чисто семейное обстоятельство, никак не связанное с моей профессией разработчика систем компьютерного зрения. Но благодаря дочери через два года появилась программа и интернет-сервис для распознавания текстов, написанных шрифтом Брайля - Angelina Braille Reader.
Сейчас этот сервис используют сотни людей и в России, и за ее пределами. Тема оказалась хайповой, сюжет о программе даже показали в федеральных новостях на ТВ. Но что важнее - за свою многолетнюю карьеру в ИТ ни в одном проекте я не получал столько искренних благодарностей от пользователей.
Ниже расскажу о том, как делалась эта разработка и с какими трудностями пришлось столкнуться. Более развернутое описание приведено в публикациях [1,2].
Возможно, кто-то захочет внести в проект свой вклад.
Экспортируем модули из Go-сервиса: сотворение директории pkg
Чтобы поделиться кодом, нужно создать библиотеку и разместить её в самостоятельном репозитории. Но иногда возникает необходимость хранить библиотеку вместе с сервисом, который её использует, — это может быть полезно при разработке в open source, в процессе дробления монолита на микросервисы и при шеринге своим API. Среди Go-разработчиков существует мнение, что экспортируемые библиотеки стоит хранить в директории pkg.
Как оказалось, при экспорте библиотеки из сервиса может возникнуть множество нюансов. В этой статье мы разберём, как сделать внешнюю библиотеку максимально удобной как для сервиса, который её экспортирует, так и для импортёров.
Как определить подходящую меру центральной тенденции?
Но сам по себе термин “центр” может подразумевать немного разные значения в зависимости от конкретной ситуации. Вы можете считать “центром” среднее арифметическое. Вы также можете назвать “центром” данные, которые просто находятся в середине вашей выборки. А еще вы можете рассматривать в качестве “центра” данные, которые повторяются чаще всего. Все эти центры по-своему характеризуют ваши данные.
PHD11 – ВЗГЛЯД ИЗНУТРИ, ОПЫТ КОМАНДЫ GIS CYBERTEAM
С 16 по 19 мая команда сотрудников «Газинформсервис» принимала участие в кибербитве The Standoff, на стороне защиты. О том, как это было, рассказал участник проекта, Никита Платов инженер-проектировщик группы защиты АРМ и серверов «Газинформсервис».
Полигон
Киберполигон The Standoff – это виртуальная копия города, имитирующая его инфраструктуру – в нем есть банковская система, энергетический сектор, заводы, вокзалы, аэропорты и многое другое. Информационные системы города развернуты на серверах, виртуальных машинах и ПЛК, состояние инфраструктуры в реальном времени отражается на рабочем макете города, расположенном на площадке киберполигона в Москве. На нем можно увидеть некоторые последствия от действий хакеров, например, пожар на макете электростанции.
Снять с ручного тормоза: как новый сайт меняет бизнес-процесс
Привет! Я Алексей Василенко, руководитель направления PHP в AGIMA. Четыре года назад работал с компанией, которая занималась b2b-продажами. В основном продавали товары для активного отдыха. Палатки, лодки, моторы, спальные мешки — всё, что пригодится туристу в походе. Ребята позвали меня поработать над их сайтом. Он казался им неудобным и малоэффективным. Но в итоге оказалось, что неудобным и малоэффективным был весь бизнес-процесс в компании. За 3 года мы не просто переделали сайт. Мы полностью поменяли подход к работе, увеличили количество заказов в 2 раза, а эффективность бизнеса — в 3. И всё это силами IT-отдела. Текст о том, как технологические решения влияют на доходы и клиентский сервиc.