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

Разработка

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Готовим Helm с GitLab, KinD и Chart-Testing

Системное администрирование*DevOps*Kubernetes*
Из песочницы

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

Очень кстати, в недавно вышедшем релизе Gitlab 14.1, появился долгожданный функционал хранения Helm-чартов во встроенном Package Registry. Отлично, заодно и разберемся, как его использовать.

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

Новости

Показать еще

Подчищаем за собой: учимся удалять данные с HDD и SSD

Блог компании Western DigitalИнформационная безопасность*Хранение данных*Хранилища данных*Накопители

Благодаря научно-техническому прогрессу контролировать данные с каждым годом становится все сложнее. И дело отнюдь не только в развитии сетевых технологий. Если раньше чтобы быть уверенным в собственной безопасности достаточно было сжечь несколько писем пикантного содержания, то сегодня удаляя компрометирующие вас документы с жесткого диска или SSD вы не можете быть на 100% уверены, что их не удастся восстановить. О том, почему так происходит и какие существуют способы гарантированного уничтожения информации, мы и поговорим в сегодняшнем материале.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Просмотры6K
Комментарии 21

Проектирование классов на Swift

Разработка под iOS*Разработка мобильных приложений*Проектирование и рефакторинг*Swift*Разработка под MacOS*
Tutorial

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

Читать далее
Рейтинг0
Просмотры565
Комментарии 5

Использование OpenCPN для автоматизации производства

Геоинформационные сервисы*ПланшетыТранспортБудущее здесь
Tutorial

В предыдущей статье я остановился на общем устройстве электронной системы яхты IT техническая сторона яхтинга / Хабр (habr.com) . В этой статье мы остановимся на развитие программы для "мозгов" яхты - OpenCPN. Текст и фото содержат информацию по изготовлению простого корпуса для прибора из профиля.

В каком то смысле это прототип окна будущего, где каждая точка поверхности "чувствует" прикосновение. Естественно эти возможности на производстве будут использоваться для управления и автоматического распечатывания стикеров с QR кодами.

Читать далее
Рейтинг0
Просмотры552
Комментарии 1

Spring @Transactional — ошибки, которые совершали все

Блог компании OTUSПрограммирование*Java*

Вероятно, одной из наиболее часто используемых аннотаций Spring является @Transactional. Несмотря на ее популярность, иногда она используется неправильно, в результате чего получается не совсем то, что задумал инженер-программист.

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

1. Вызовы в пределах одного класса

@Transactional редко подвергается достаточному количеству тестов, и это приводит к тому, что какие-то проблемы не видны на первый взгляд. В результате вы можете столкнуться со следующим кодом:

Аннотация не работает в методе registerAccount:

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

Недельный геймдев: #32 — 22 августа, 2021

Разработка игр*

Из новостей на этой неделе: инструменты для самостоятельной публикации в Epic Games Store вышли бету, FluidNinja теперь бесплатен для студентов, вышел Unreal Engine 4.27, Epic Online Services выпустили плагины для Unity и Unreal Engine, вышел Godot 3.3.3 с кучей фиксов, AMD USD Hydra плагин для Blender перешёл в статус беты.

Из интересностей: разбор ролика «By Three They Come» по Diablo IV, 5 способов создание эффекта outline, 100 художников создают бесшовную трёхмерную конструкцию всего по одной подсказке — динамические машины.

Читать далее
Рейтинг0
Просмотры747
Комментарии 0

Star7: с чего начиналась Java

Блог компании TimewebJava*История ITIT-компании

В начале 90-х годов в Sun Microsystems, в 2010 году поглощенной Oracle, проводился ряд реформ, связанных с переопределением приоритетов компании. В результате преобразований появился так называемый Project Green, с которым связано создание языка Java. Java — это косвенный результат деятельности «Зеленого проекта»; изначально о разработке нового языка никто и не думал. Основной целью являлось создание универсального устройства, управляющего бытовыми приборами, — эдакого предка умного дома. Получившийся прототип гаджета назвали Star7, но широкой популярности он не сыскал. В статье пойдет речь об истории создания Star7, о том, почему идея такого устройства «не выстрелила», и как вспомогательный инструмент Java стал самодостаточным продуктом.

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

На что стоит обратить внимание новичкам при работе с ReactJS

Блог компании Orion InnovationРазработка веб-сайтов*JavaScript*ReactJS*Карьера в IT-индустрии

Всем привет, меня зовут Иван, я – разработчик ПО в Orion Innovation. Сейчас много публикаций по фронтенд-разработке, в которых начинающему специалисту легко потеряться и упустить неочевидные вещи.

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Просмотры2.7K
Комментарии 6

XSS: атака и защита с точки зрения C# программирования

Блог компании PVS-StudioИнформационная безопасность*Программирование*.NET*C#*

XSS, или межсайтовый скриптинг, является одной из самых часто встречающихся уязвимостей в веб-приложениях. Она уже долгое время входит в OWASP Top 10 – список самых критичных угроз безопасности веб-приложений. Давайте вместе разберемся, как в вашем браузере может выполниться скрипт, полученный со стороннего сайта, и к чему это может привести (спойлер: например, к краже cookie). Заодно поговорим о том, что необходимо предпринять, чтобы обезопаситься от XSS.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Просмотры1.9K
Комментарии 2

Имплементация простых фьючерсов с помощью корутин

Блог компании OTUSПрограммирование*C++*
Перевод

Вместо return в корутине используется co_return, возвращающий результат. В этой заметке я хочу реализовать простую корутину с использованием co_return.

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

Разбор алгоритмов генерации псевдослучайных чисел

Блог компании Mail.ru GroupПрограммирование*Алгоритмы*Математика*

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Просмотры1.7K
Комментарии 4

Как управлять Kubernetes кластерами с помощью Flux, Helm Operator и Git submodules

Системное администрирование*Git*DevOps*Kubernetes*
Из песочницы

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Просмотры937
Комментарии 3

Новые API в .NET 6

Блог компании MicrosoftПрограммирование*.NET*API*C#*

.NET 6 в процессе разработки, и я хотел поделиться некоторыми из моих любимых новых API в .NET и ASP.NET Core, которые вам обязательно понравятся. Почему они понравятся? Потому что они разработаны при прямом участии нашего фантастического сообщества разработчиков .NET. Подробнее в статье.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Просмотры3.8K
Комментарии 19

PostgreSQL Antipatterns: «где-то я тебя уже видел...»

Блог компании ТензорВысокая производительность*PostgreSQL*SQL*Администрирование баз данных*

Иногда при анализе производительности запроса на предмет "куда ушло все время" возникает стойкое ощущение deja vu, что вот ровно этот же кусок плана ты уже где-то раньше видел...

Пролистываешь выше - и таки-да, вот он рядом - но почему он там оказался, и как выйти из Матрицы самому и помочь коллегам?

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Просмотры2K
Комментарии 12

React Router Hooks: Изучение принципов их работы

Блог компании OTUSReactJS*
Перевод

React Router — это не то же самое, что маршрутизатор, направляющий сетевые данные — к счастью! Однако между сетевым маршрутизатором и React Router есть много общего. React Router помогает нам направлять пользователей к нужному компоненту. Например, мы можем использовать маршрутизацию на стороне клиента для создания одностраничного приложения (SPA), которое позволяет перемещаться между различными страницами без обновления браузера.

Другими словами, React Router поддерживает синхронизацию пользовательского интерфейса с URL. Он имеет простой API с такими мощными функциями, как ленивая загрузка кода, динамическое сопоставление маршрутов и обработка перехода между локациями.

Но есть еще много интересного. В этой статье мы рассмотрим хуки React Router. Они позволяют разработчикам писать гораздо более чистый код, так как не нужно писать всю его шаблонную часть, как в компонентах класса. Из коробки мы можем получить доступ к нескольким хукам, таким как useHistory, useLocation, useParams и useRouteMatch. Например, хук useHistory дает нам доступ к объекту history для обработки изменений маршрута.

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

Уравнения математической физики в действии

Веб-дизайн*Математика*WebGL*Физика
Из песочницы

Доброе утро!

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

По шкале сложности для чистой математики эта дисциплина на мой субъективный взгляд получает 7/10. Но это не значит что эти формулы легки для зазубривания и запоминания. Тем более говорить о том, что я могу сделать открытие в данной области которое попадет в учебники, например объясняя физику какого - либо нового процесса или уточняя уже существующий. Если подумать, то например выбирая какой-либо параграф учебника по данному предмету, то он исписан формулами которые если провести аналогию похож на модуль по программированию. Скажу сразу мне преподавали данный предмет очень плохо, не объясняя что данные формулы значат, точнее заглавие было например: "Уравнение волны" или "Колебание мембраны", а дальше переписывали все формулы в параграфе с короткими комментариями что откуда, весьма скудными в полной тишине. Препод перелистывал страницы презентации и ходил туда-обратно пока мы переписывали. Видно что не ему, ни мне это было не нужно, как бы для общего развития. Скорее всего надо было читать дополнительную литературу чтобы понять, но там уровень для подкованного студента, предметов было много и где-то были пробелы и особо не было времени на все распылиться. Ну это так к слову. К слову чем больше людей надо учить в промежутке времени, тем меньше времени уделяется каждому студенту и тем хуже уровень знаний у каждого студента, ну это в пределе.

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

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

Жизнь до Unicode

Open source*HTML*IT-стандарты*БраузерыИстория IT
Перевод

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

Для справки, я начал работать с компьютерами в начале 2000-х годов в России. Русский язык использует алфавит на основе кириллицы. И что касается языков, отличных от ASCII, все относительно просто: 33 буквы, у каждой есть варианты в верхнем и нижнем регистре, и преобразование верхнего/нижнего регистра обратимо. Так как букв всего 33, вы можете уместить их в 8-битной кодировке. Кроме того, есть еще место для псевдографики.

Загвоздка в том, что какое-то время в русском языке использовались три почти одинаково распространенных кодировки.

Одна из причин - сложная история Советского Союза и вычислительной техники - он был ​​изолирован от остального мира, и все организации, производящие компьютерное оборудование и программное обеспечение, принадлежали государству, поэтому оно могло навязать им стандарты. После распада СССР рынок был быстро захвачен западным оборудованием и программным обеспечением потому что советскую технику уже никто не производил. Частные софтверные компании тоже сразу начали выпускать ПО для импортных ОС - сначала это был DOS.

Старые советские системы в основном использовали кодировку KOI8-R. KOI расшифровывается как «Код Обмена Информацией», 8 означает 8-битный, а R означает русский (есть еще украинская версия под названием KOI8-U, украинский алфавит отличается от русского). Эта кодировка, мягко говоря, безумна: она была спроектирована так, что удаление 8-го бита оставляет вам несколько читабельную ASCII-транслитерацию русского алфавита, поэтому русские буквы не идут в обычном порядке.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Просмотры2.9K
Комментарии 18

Как создать неприступный Arduino IoT девайс?

Разработка для интернета вещей*Интернет вещей
Из песочницы
Перевод

В наше время существует огромное количество проектов, связанных с Интернетом Вещей. Но многие девайсы подвержены атакам из сети, например DDOS. Соответственно, многие эксперты предупреждают о возможных проблемах в безопасности IoT. (Пример такой статьи)

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

Читать далее
Рейтинг0
Просмотры1.9K
Комментарии 1

Защита данных пользователя: как добавить поддержку правил CCPA и GDPR в мобильное приложение

Блог компании FUNCORPИнформационная безопасность*IT-стандарты*Хранение данных*Законодательство в IT

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

Поэтому приватность и безопасность данных сейчас сложно переоценить. В большинстве IT-компаний это понимают и работают над собственными инструментами защиты (Apple, например, на каждой презентации делает особый акцент). Страны, в свою очередь, регулируют всё это специальными законами.

Основными из них являются Европейский General Data Protection Regulation (GDPR) и, принятый в Калифорнии, California Consumer Privacy Act (CCPA). Сегодня подробно разберёмся, что это за законы, чего требуют и как внедрить их поддержку в свой сервис, сайт или мобильное приложение.

Это первая статья из цикла про приватность на iOS, где поговорим не только про законы, но и про изменения в политике App Store, AppTracking Transparency и IDFA.

Читать далее
Всего голосов 30: ↑29 и ↓1+28
Просмотры820
Комментарии 2

Настраиваем сильносвязанные шины контроллера на плате Teensy 4.1

Системное программирование*Программирование микроконтроллеров*Компьютерное железо
В прошлой статье мы увидели, как может возрасти скорость работы с портом, если обращаться к нему не через обычную, а через сильносвязанную шину. Причины кроются в латентности шины. В целом, у меня есть целая статья про DMA, где я рассматриваю влияние латентности на скорость работы. Там показано, что латентность – зло! Ну, а сильносвязанные шины работают без неё.



Контроллер MIMXRT1062, установленный на плате Teensy 4.1, имеет целых две сильносвязанные шины: для выборки инструкций и для работы с данными. Это позволяет работать с памятью, подключённой через них на максимальной скорости без использования кэша. Какие это даёт преимущества, я уже описывал ранее . Кроме того, мы уже ощутили эффект от работы с такими шинами в синтезируемом процессоре в этой статье.

В конце последней из указанных статей я сокрушался, что для решения проблем с латентностью нам приходится использовать синтезированную систему. А разработчики от NXP предоставили нам возможность поработать в таком же режиме и на обычном микроконтроллере. Давайте посмотрим, что нам это даст. Возни предстоит много, поэтому сегодня мы только всё настроим. Итак, начинаем…
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Просмотры380
Комментарии 0