Pull to refresh
0
0
Send message

Миссия выполнима: как мы создали приложение для Apple Vision Pro за 8 дней

Level of difficultyMedium
Reading time7 min
Views8.2K

Всем привет! На связи Саша Сырков из 2ГИС, и это рассказ, как чуть больше недели мы разрабатывали приложение на Vision OS, разбирались в особенностях Reality Composer Pro, ловили всевозможные текстурные баги, а в итоге всё же получили заветный апрув от Apple за 17 часов до официального открытия продаж VR-гарнитуры.

Под катом хронология событий от идеи до рабочего продукта и технические подробности создания нашего первого VisionOS-приложения — краткого справочника с 3D-моделями достопримечательностей.

P.S. для самых пытливых в конце вопрос: кто первый отгадает ответ, тому подарим нашего гуся.

Читать далее
Total votes 32: ↑30 and ↓2+28
Comments33

Лучшие практики модульного тестирования

Reading time7 min
Views3.3K

В этой статье мы рассмотрим лучшие практики модульного тестирования. Сначала я объясню, что такое модульное тестирование и почему мы должны использовать его в наших проектах. Затем мы рассмотрим лучшие практики модульного тестирования. Я приведу пример кода с использованием фреймворка xUnit для написания модульных тестов в проектах на .Net.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments1

Соединяем Flutter, Firebase и ESP32 в единую систему

Level of difficultyHard
Reading time15 min
Views6.5K

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

Сегодня расскажу, как использовать микроконтроллер ESP32 в связке с Flutter-приложением. В качестве примера покажу, как снимать показания температуры и влажности с помощью датчика DHT11 и передавать эти данные через Firebase Realtime Database в приложение.

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments6

Игра змейка на ардуино

Level of difficultyEasy
Reading time3 min
Views5.3K

Игра змейка на ардуино нано.

Логика игры проста, поедая яблоки змейка вырастает на один светодиод, если змейка натыкается на саму себя то вся матрица загорается красными светодиодами обозначая проигрыш. После этого игра начинается сначала.

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments4

Умный дом в панельной хрущёвке

Level of difficultyEasy
Reading time9 min
Views43K

Сразу признаюсь, что слово «хрущёвка» в этом тексте – скорее хук в заголовке. Правильнее было бы сказать, что я просто описываю свой опыт создания умного дома в обычной среднестатистической квартире городского жителя РФ, который я проживаю прямо сейчас.

Статья будет состоять из двух частей: первая – постановка задачи, ресерч, планы, выбор; вторая – реализация, опыт использования, ошибки и корректировки.

Читать далее
Total votes 87: ↑82 and ↓5+77
Comments252

Первое приложение на SolidJS

Level of difficultyEasy
Reading time11 min
Views5.1K

В этой статье познакомимся с SolidJS − JavaScript-библиотекой для создания пользовательских интерфейсов без виртуального DOM. Мы создадим легкий список задач с использованием TypeScript и разберем некоторые особенности библиотеки.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments14

Кодер умеет в пыху. Какие словечки бесят айтишников

Level of difficultyEasy
Reading time8 min
Views24K

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

Читать далее
Total votes 86: ↑78 and ↓8+70
Comments460

Шаровары: тогда и сейчас

Level of difficultyEasy
Reading time7 min
Views8K
Wolfenstein 3D, одна из самых популярных шароварных игр начала 90-х

В 90-е годы популярной моделью продажи программ была shareware (как их тогда называли, «шаровары»). Особенной популярностью она пользовалась у независимых разработчиков. Благодаря интернету они могли распространять свои программы без дополнительных затрат и накладных расходов. Всё работало очень просто. Написал полезную утилиту (например, архиватор или плеер) — и её могут купить тысячи людей. Если программа очень хорошая, станешь миллионером за несколько месяцев, как 18-летний Джастин Франкель с плеером Winamp.

В принципе, эта модель работает и сейчас.
Читать дальше →
Total votes 60: ↑58 and ↓2+56
Comments17

Установка Home Assistant на PC

Level of difficultyMedium
Reading time8 min
Views18K

Несмотря на огромное количество текстов по установке Home Assistant, решил написать свой.

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

Home Assistant развивается, часть мануалов устарела, часть содержит ошибки, часть написана Очень Умными Парнями, живущими в Линуксе и которые пишут что-то вроде: "сделай три раздела, два для систем и один для хомяка, и при установке систем подключай раздел с хомяком к каждой, только не форматируй его постояннo" (с). Это подлинная цитата, причём одна из самых понятных.

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

Это обобщенный мануал об установке HASSOS в виртуальной машине в среде Debian на старый, никому не нужный ноутбук.

Читать далее
Total votes 12: ↑7 and ↓5+2
Comments31

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Level of difficultyMedium
Reading time33 min
Views101K

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Total votes 216: ↑214 and ↓2+212
Comments77

Как найти поверхность атаки незнакомых приложений с помощью Natch

Level of difficultyMedium
Reading time10 min
Views1.7K

Поиск ошибок в программах дело творческое и интересное. Чаще всего мы ищем ошибки в своём коде, чтобы его починить. Кто-то может искать ошибки в чужом коде, чтобы его сломать или поучастовать в баунти-программе.

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

Как хоть немного автоматизировать процесс?
Total votes 8: ↑7 and ↓1+6
Comments0

Вороной, Манхэттен, рандом

Level of difficultyEasy
Reading time34 min
Views16K

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

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

Осторожно, очень много картинок!

Читать далее
Total votes 160: ↑160 and ↓0+160
Comments53

Секреты Ватикана: деньги

Reading time9 min
Views10K
image
Источник

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

Чтобы разобраться в тонкостях, необходимо понимать различия между Ватиканом и Святым престолом. Ватикан — это территория, где находится Святой престол. Святой престол — руководящий орган страны и Католической церкви. Он получает деньги за счёт пожертвований, а затем инвестирует часть этих денег в акции, облигации, частные компании и недвижимость.

Ватикан получает доход за счёт входных билетов в музеи и продажи монет и марок.

Хотя Папа Франциск (а до него Папа Бенедикт XVI) приложил усилия, чтобы сделать экономику более прозрачной, она до сих пор остаётся загадкой. Большинство цифр, касающихся доходов и расходов, являются лишь предположениями и расчётами, основанными на моделях и исторических данных.
Читать дальше →
Total votes 45: ↑37 and ↓8+29
Comments23

Побеждаем рутину в Data Science: как перестать быть недопрограммистами и недоисследователями

Level of difficultyMedium
Reading time22 min
Views17K

Профессия Data Scientist сейчас стала особенно привлекательна, вовлекая еще больше энтузиастов и даже евангелистов, благодаря последним достижениям в области генерации текстов и изображений. Внешний фон наводит на мысли, что будни дата сайентиста заполнены исключительно творческой самореализацией, и рутина в процессы его работы никогда не сможет просочиться. Увы, но большую часть DS команд рутина уже поглотила.

Читать далее
Total votes 28: ↑25 and ↓3+22
Comments0

Древнее, чем Стоунхендж: на дне Балтийского моря обнаружили 11-тысячелетнее мегалитическое сооружение. Что это такое?

Reading time3 min
Views58K

Чудес света, созданных руками человека, становится больше. Дело в том, что на глубине примерно 21 метра в Балтийском море учёные обнаружили остатки каменной гряды, которая построена руками людей. Археологи предполагают, что её создали для охоты на животных — длина сооружения составляет около километра. Обнаружение настолько крупного мегалитического объекта поднимает ряд научных вопросов и позволяет немного прояснить некоторые нюансы жизни наших предков. Подробности — под катом.

Читать далее
Total votes 67: ↑46 and ↓21+25
Comments105

1989: Марс атакует или символы-фантомы оранжевой плазмы лэптопа Toshiba T3100E

Level of difficultyEasy
Reading time8 min
Views6.5K
image

Здравствуйте, уважаемые ценители старого компьютерного железа!

Бывает такое, что попадаются экземпляры ретро-техники, мимо которых нельзя равнодушно пройти мимо. На мой взгляд, описываемый далее лэптоп Toshiba T3100e относится к данной категории.

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

Из аппаратных «вкусностей», описываемый лэптоп оснащен внешней полноценной 8-ми битной ISA — шиной, которую я использовал, загрузившись с ее помощью и проприетарным слотом для подключения модема.

Ради эксперимента были загружены следующие операционные системы: MS-DOS, оболочка Windows 3.0 и крошечный Linux ELKS v0.7.0, а также MS-DOS игры.

Под катом ряд фотографий, отражающих процедуру профилактики, видеоработы, «видеовзгляд» через тепловизор. Фото кликабельны.

Надеюсь, будет интересно!
Читать дальше →
Total votes 56: ↑56 and ↓0+56
Comments28

Восстановление старых компьютеров: кому это надо

Level of difficultyEasy
Reading time6 min
Views21K

Лаборатория по восстановлению старых компьютеров PCOfficina, фото из презентации волонтёрской организации

Детские дома, сельские школы и другие учреждения образования и социальной защиты не всегда могут позволить себе купить современную технику. В то же время ПК довольно старой конфигурации отлично тянут десктопный Linux, так что дети могут осваивать свободную ОС и учиться программировать. По серии статей «Выдающиеся программисты 21 века» можно убедиться: 90% героев рубрики начинали компьютерную жизнь в Линуксе и до сих пор работают в нём, потому что для разработчика нет ничего удобнее.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments108

Во что обойдется линеаризуемость в распределенной системе

Level of difficultyMedium
Reading time12 min
Views6.1K


Всем привет, меня зовут Сергей Петренко, я программист в Tarantool. Сегодня мы посмотрим, с какими трудностями сталкивается клиент, когда вместо того чтобы общаться с системой, расположенной на одном инстансе, начинает общаться с распределенной системой. И разумеется, поговорим о том, как эти трудности преодолеть. Я расскажу, что такое линеаризуемость, как мы ее реализуем в Tarantool и как это делают другие СУБД. В завершение мы поговорим о накладных расходах от линеаризуемости.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments3

Поломанные VPN, 2038 год и сертификаты с истёкшим сто лет назад сроком

Reading time7 min
Views18K

В конце 2010 года Зимми (псевдоним) работал в ИТ-поддержке компании, разрабатывавшей VPN-устройства и операционную систему для них. В понедельник ему позвонил клиент (розничный продавец продукции из США), рассказавший, что в выходные его VPN-оборудование перестало работать.

После изучения отчёта Зимми решил, что проблема возникла в результате сбоя валидации сертификата, о чём он и написал в недавнем посте в Mastodon.

«VPN-устройства моего работодателя управлялись через центральный сервер. На этом сервере работал собственный центр сертификации (CA), который использовался для подписывания сертификатов всех устройств. Конечные точки VPN использовали их для аутентификации на сервере управления (например, при отправке логов) и друг между другом (в основном для VPN). CA — это фундаментальная часть ПО управления».

Зимми сообщил, что предпочёл бы оставить анонимным себя, компанию и клиента.

Валидация оказывалась ошибочной, потому что система не могла проверить certificate revocation list (CRL) — список цифровых сертификатов, отозванных выпустившим их центром.

«Эти устройства аутентифицировали друг друга при помощи сертификатов, похожих на те, которые применяются для HTTPS, но подписанные частным центром сертификации. У каждого клиента был для этого свой CA. В процессе валидации сертификатов CA проверял, не отозван ли сертификат. Валидацию не удавалось выполнить, потому что VPN-устройство не могло скачать certificate revocation list (CRL), чтобы убедиться, что сертификата другого устройства нет в списке. Почему оно не могло скачать CRL?»
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments10

Information

Rating
Does not participate
Registered
Activity