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

Все потоки

Сначала показывать
Порог рейтинга

Система типов — лучший друг программиста

Информационная безопасность *Программирование *Совершенный код *
Перевод

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

Значение в string — не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого [email protected] значения gmail.com и [email protected]. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 556
Комментарии 0

Новости

Найти и уничтожить: как Clickhouse удаляет собственный код из памяти и переключается на использование Huge Pages

Ненормальное программирование *Open source *C++ **nix *Разработка под Linux *

В Clickhouse есть интересный код: при вызове одной функции происходит перевод области памяти исполняемого кода программы на использование Huge Pages. В процессе весь код программы копируется на новое место, память, использовавшаяся изначально для кода программы возвращается ОС, а потом запрашивается снова. Эта статья основана на соответствующей части доклада с Я.Субботника.

Сначала мы посмотрим, что такое виртуальная память и TLB, потом перейдём собственно к Clickhouse, посмотрим, почему там пришла идея делать такие махинации с бинарником в памяти, а в конце посмотрим, как это всё реализовано.

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

Оптимальный процесс разработки онлайн игр

JavaScript *Разработка мобильных приложений *Разработка игр *TypeScript *Haxe *

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

Одна из самых больших статей расходов в IT-компаниях — это программисты. К тому же самая сложно управляемая и контролируемая статья. Административные меры тут работают плохо, и чтобы эффективно воздействовать на программистов, нужно самому, минимум, быть программистом. Поэтому опишем чисто программистские меры и способы по снижению затрат и увеличению производительности.

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

Эффективная защита RDP «на минималках» ч.2

Информационная безопасность *Системное администрирование *Серверное администрирование *

В поисках самого простого и бесплатного (или максимально дешевого) способа защиты RDP предлагаю добавить известный многим IPBAN от Jeff Johnson: https://github.com/jjxtra. Единственный замеченный минус - у меня, почему-то, не зависимо от того указываю я 3 попытки для блокировки или 5 - всё равно начинает блокировать где-то с пятой попытки (а может это проблема используемой мной версии - 1.8.0), хотя потом я решил, может это и к лучшему - если предположить что у нас до блокировки учетной записи даётся 3 попытки, то оставшиеся две вполне сгодятся для звонка системному администратору с просьбой сбросить пароль. В общем, для начала нужно скачать саму программу в соответствии с используемой у вас ОС:

https://github.com/DigitalRuby/IPBan/releases

Пока скачивается архив надо настроить локальную политику безопасности: щелкаем на значок поиска в панели задач так и вводим "локаль..." или "secpol.msc" (если нет значка поиска жмем WIN+R,вводим secpol.msc и жмем Enter), затем переходим во вкладку Локальная политика и Политика аудита. В локальных политиках включаем аудит входа в систему и аудит СОБЫТИЙ входа в систему, ставим галки как на скрине - Успех и Отказ для обеих политик и нажимаем ОК:

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

Почему набор инструкций AVX 512 полезен для RPCS3?

Высокая производительность *Программирование *Процессоры
Перевод

Часто приходится слышать, что важность отличий между наборами инструкций на современных компьютерах преувеличена и, в самом деле, сложно не согласиться с таким наблюдением. Поскольку стандартная программа на 90 % состоит из простейших инструкций для АЛУ, загрузки и сохранения, а также инструкций ветвления, а также с учётом, что на таком базовом уровне разбежки между различными наборами команд очень невелики, такой вывод просто напрашивается.

Но PS3, эмулятор RPCS3 – не просто обычная программа. Даже если вам не доводилось работать с самим эмулятором, вам наверняка приводили RPCS3 в пример как образец
потребительского ПО, в котором используются сильные стороны AVX-512. В этой
статье я расскажу, почему именно новые инструкции и возможности, введённые в семействе
AVX-512, так полезны для эмуляции PS3. В некоторых ситуациях использование 512-разрядных инструкций может положительно сказываться на RPCS3, но в этом посте будет рассказано, почему новые инструкции полезны и для 128-разрядных, и для 256-разрядных конфигураций.

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

Собираем систему потоковой аналитики из логов приложений

IT-инфраструктура *ERP-системы *Распределённые системы *
Из песочницы

Приветствую, коллеги.

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

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

Итак, представим, что у нас имеется некоторое количество приложений, которые изначально “не обучены” отдавать аналитику в режиме реального времени. Задача заключается в том, чтобы построить систему мониторинга бизнес-показателей с минимальным вмешательством в эти системы.

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

Итак, рассмотрим подробно, как устроена предлагаемая система:

В основе системы лежат события, которые генерируют приложения. События сохраняются в лог (stdout, файл,..). Обработчик (сборщик) логов (в режиме реального времени) распознает в логах события приложений и отправляет их в хранилище (БД).

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

Notion глазами эксперта. Особенности профессиональной системы управления проектами в Notion

CMS *CRM-системы *Управление проектами *Управление продуктом *

Данная статья демонстрирует особенности профессиональной системы управления в Notion, написанная экспертом, создавшем более 100 систем управления проектами в Notion за несколько лет.

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

Недельный геймдев: #94 — 6 ноября, 2022

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

Из новостей: погиб Андрей «KranK» Кузьмин, известный по Вангерам, вышла технодемка Enemies на Unity и обновлён пакет Digital human, на Github сейчас проходит ежегодный геймджем.

Из интересностей: более 1500 бесплатных стилизованных средневековых моделек, отличная документалочка про The Callisto Protocol, Николай Дыбовский об играх и не только, Анимированный мир Ratchet and Clank: Rift Apart.

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

Туда и обратно: как мы пытались отследить актуальное время в Android

Блог компании Газпром-Медиа Холдинг Разработка мобильных приложений *Разработка под Android *

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

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

Импортозамещение без глянца. Том 3 — Эксплуатация

Чулан

Продолжу серию: Импортозамещение и параллельный импорт без глянца и одновременно - Есть ли абсолютный ноль, который невозможно достичь?

Сначала разберу одну типа техническую (ТМ) статью, потом пройдусь по некоторым особенностям, упущенным в моей первой статье про импортозамещение, но которые никак нельзя пропускать. И нет, это не про связку FreeBSD + ZFS + bhyve = импортозамещение.

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

Написать архитектуру продукта — это не сложно

Анализ и проектирование систем *Agile *Управление продуктом *DevOps *Микросервисы *
Tutorial

С Вами снова Владимир и меня все еще зовут девопс.

Немного контекста: я живу в Санкт-Петербурге и работаю в большой компании с крайне бюрократической структурой управления, в которой девопс – это драйвер, лидер и на-все-руки-мастер.

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

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1.8K
Комментарии 6

Дайджест недели от Apple Pro Weekly News (31.10 – 06.11.22)

Гаджеты Компьютерное железо Смартфоны IT-компании

Грядёт дефицит iPhone 14, в магазинах Apple стартовал праздничный сезон, Евросоюз заставит допустить на iOS сторонние магазины приложений, ряд моделей компьютеров Mac устарели и как получить подписку на киносервис от Apple бесплатно. Это новый выпуск дайджеста Apple Pro Weekly News, погнали к новостям!

Перейти к новостям
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 647
Комментарии 0

Wi-Fi через прокси без шума и пыли (почти)

Системное администрирование *Сетевые технологии *

Если раздать Wi-Fi через VPN задача простая и решаемая, вот даже статья "WiFi-портал в Россию" недавно вышла, то с прокси дело обстоит чуть сложнее, нужно немного костылей и напильников, а так же замечательное ПО под названием tun2socks.

В отличие от VPN прокси дешевле, и если нужно тестировать мобильные устройства с разных геолокаций - то прокси будет неплохим выходом. Конечно, существуют готовые решения, такие как SSH Manager и "малинки от Марса", но мы, как водится, пойдём своим путём.

Disclaimer. Статья пишется больше для себя, как заметки на полях, поэтому подробного мануала тут не будет. Тем не менее, материал может быть полезен и неограниченному кругу лиц. Понадобятся небольшие знания по сетям и линуксам.

провалиться под кат
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 1.6K
Комментарии 8

Братство кольца в командировке: как мы обновляли систему для организации деловых поездок в НМГ

Блог компании Национальная Медиа Группа Управление персоналом *Транспорт IT-компании Удалённая работа

Организация деловых поездок (командировок) – сложный процесс, требующий наличия в команде сотрудников со специальными навыками. Как во всем многообразии агрегаторов билетов найти самый оптимальный вариант перелета, доступный с оплатой по безналу? Где наиболее полный перечень гостиниц? В чем разница между тарифами V и K? Сколько держится бронь? Как заселить в одну гостиницу либо разом всех участников командировки, либо никого? Какой лучший сервис такси в городе N?

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

Истории

Где скачать научную статью легко и доступно?

Конференции Облачные сервисы *Научно-популярное
Tutorial

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

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

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

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

Старый код в новой обёртке — как наша команда избавлялась от legacy

PHP *Проектирование и рефакторинг *API *

В этой статье я — Станислав Решетнев, Teamlead команды разработки Link Building в компании Sape — хочу рассказать об опыте нашей компании по избавлению от legacy. Многие компании сталкиваются с проблемой legacy-монолита, когда технический долг накапливается на протяжении долгих лет и разрыв по технологическому стеку становится всё больше похожим на пропасть. Нам удалось найти решение, позволившее провести полное обновление, и заодно выполнить другие бизнес-задачи.

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

Kotlin Extensions для Android проекта

Разработка под Android *Kotlin *
Из песочницы

Всем привет! Меня зовут Николай Попов. Сегодня я поделюсь с вами опытом использования одной из самых классных фишек языка Kotlin, а именно — функции расширения или Kotlin Extensions. Эти функции позволяют расширять базовый класс без необходимости наследования или использования шаблонов проектирования, таких как декоратор. Использование функций расширения позволяет избавиться от написания однотипного кода, также сделать его простым и лаконичным.

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

Сертификаты Apple. Понимание. Что это и зачем вообще нужны?

Информационная безопасность *Разработка веб-сайтов *Разработка под iOS *Разработка мобильных приложений *Swift *

Сертификаты, ключи, доступы, безопасность - всё очень запутанно. Многие из нас просто знают, как решать большинство ошибок, связанных с этим, либо могут это быстро нагуглить. Сегодня хотелось бы постараться углубиться в данную тему в рамках Apple и понять, почему все так работает. Меня зовут Макс Нечаев, я Senior iOS-developer в крупном фуд-тех стартапе в Катаре - Snoonu. Очень надеюсь, что статья поможет вам немного лучше понять данную область разработки.

Сегодня поговорим о сертификатах и профилях подготовки в Swift.

Читать далее
Всего голосов 6: ↑2 и ↓4 -2
Просмотры 1.2K
Комментарии 5

Нетворкинг для интровертов — гайд для стеснительных

Читальный зал Лайфхаки для гиков

На днях я как обычно вечером сел просматривать отчеты за день от коллег. Среди них была статья нашего маркетолога проекта MyQRcards (электронные визитки для бизнеса) о том, как интровертам и прочим робким людям преуспевать в нетворкинге. Так как я сам не особо люблю людей общаться с незнакомыми, да и большинство ИТ-шников такие же антропофобы, как и я — делюсь!

Читать далее
Всего голосов 25: ↑14 и ↓11 +3
Просмотры 1.9K
Комментарии 9

От открытия мазера до изобретения лазера: краткая история создания одной из главных инноваций XX века. Часть II

Блог компании Онлайн Патент Читальный зал Патентование *Научно-популярное Лазеры

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

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