Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.
Исходная информация - http://habrahabr.ru/. Данный дневник сформирован из открытого RSS-источника по адресу http://habrahabr.ru/rss/, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты. По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.[Обновить трансляцию]
Вот так раньше выглядела одна из визиток Игоря Михайлова, специалиста Лаборатории компьютерной криминалистики Group-IB. На ней — аппаратные ключи программ, которыми пользовался эксперт при проведении криминалистических экспертиз. Стоимость только этих программных продуктов превышает 2 миллиона рублей, а ведь есть еще бесплатное программное обеспечение и другие коммерческие продукты. Какой инструментарий выбрать для работы? Специально для читателей «Хабра» Игорь Михайлов решил рассказать о лучших программных и аппаратных средствах для компьютерной криминалистики. Читать дальше ->
В мобильных приложениях всё чаще используются deep links. Это ссылки, которые позволяют не просто перейти в приложение извне, а попасть на конкретный экран. Android-разработчик из Яндекс.Еды Владислав Кожушко объяснил, почему мы для реализации deep links внедрили навигацию из Jetpack, с какими проблемами столкнулись, как их решили и что получилось в итоге.
— Всем привет! Меня зовут Влад. Android-разработкой я интересуюсь с 2013 года, в Яндекс.Еде работаю с лета прошлого года. Я расскажу про наш путь внедрения библиотеки Navigation Components в боевое приложение.
С тех пор, как я начала работать с сообществом над переносом десктопных приложений с .NET Framework на .NET Core, я заметила, что существует «два лагеря»: представители одного хотят очень простой и короткий список инструкций для переноса своих приложений на .NET Core, в то время как представители другого предпочитают более принципиальный подход с большим количеством исходной информации. Вместо того, чтобы писать документ по типу «швейцарского армейского ножа», мы собираемся опубликовать два сообщения в блоге, по одному для каждого «лагеря»:
Данный пост — простой случай. Он ориентирован на простые инструкции и небольшие приложения и рассматривает самый простой способ переноса приложения на .NET Core.
Позднее мы опубликуем еще один пост для более сложных случаев. В нем основное внимание будет уделено нетривиальным приложениям, таким как WPF-приложение с зависимостями от WCF и сторонних UI-пакетов.
Если вы предпочитаете смотреть видео, а не читать, то вот видео, где я делаю все, что описано ниже.
Знаковая научная работа от 2012 года преобразовала область программного распознавания изображений
Сегодня я могу, допустим, открыть Google Photos, написать «пляж», и увидеть кучу своих фотографий с различных пляжей, которые я посетил за последнее десятилетие. И я никогда не подписывал свои фотографии – Google распознаёт на них пляжи на основе их содержания. Эта, казалось бы, скучная особенность основывается на технологии под названием «глубокая свёрточная нейросеть», позволяющая программам понимать изображения при помощи сложного способа, недоступного технологиям предыдущих поколений.
В последние годы исследователи обнаружили, что точность ПО становится лучше по мере того, как они создают всё более глубокие нейросети (НС) и обучают их на всё более крупных наборах данных. Это создало ненасытную потребность в вычислительных мощностях, и обогатило производителей GPU, таких, как Nvidia и AMD. В Google несколько лет назад разработали собственные специальные чипы для НС, а другие компании пытаются угнаться за ней. Читать дальше ->
Последовательные интерфейсы RS-232/422/485 до сих пор очень популярны в промышленности: по ним подключаются диагностические порты, датчики, сканеры штрих-кодов и RFID меток и т.д. Однако последовательные интерфейсы имеют свои ограничения. Иногда возникает необходимость получить доступ к такому интерфейсу по IP-сети, или, например, иметь доступ к одному устройству с RS-232 с нескольких удаленных компьютеров одновременно, или объединить несколько удаленных объектов в одну шину RS-485.
Сервер последовательных интерфейсов конвертирует последовательные физические протоколы в IP-пакеты, и позволяет программно управлять ими — подключать удаленный виртуальный COM-порт к компьютеру по сети так, будто он подключен физически, и прозрачно соединять несколько устройств в режиме P2P, без использования компьютеров.
В статье мы разберем сервер последовательных интерфейсов Advantech EKI-1524, имеющий четыре последовательный порта, каждый из которых поддерживает протоколы RS-232/422/485, и два LAN-порта.
Сервер последовательных интерфейсов EKI-1524 имеет четыре порта DB9 и два LAN-порта.
Виртуальный COM-порт — позволяет программно эмулировать виртуальный COM-порт удаленного устройства на системе Linux.
Одновременное подключение нескольких клиентов — в режиме сервера дает возможность использовать один последовательный порт для нескольких устройств одновременно.
Работа в режиме P2P — одновременная работа в режиме клиента и сервера позволяет объединить несколько EKI-1524 напрямую, без использования серверов и компьютеров.
Необходимо организовать VPN Tunnel между двумя устройствами, таких как Mikrotik и Juniper линейки SRX.
Что имеем
Из микротиков выбрали на сайте микротика вики, модель которая сможет поддерживать аппаратное шифрование IPSec, на наш взгляд она оказалась достаточно компактная и недорогая, а именно Mikrotik hEXS.
USB Modem был куплен в ближайшем сотовом операторе, модель была Huawei E3370. Никакие операции по отвязки от оператора мы не проводили. Все штатное и прошито самим оператором.
В ядре установлен центральный маршрутизатор Juniper SRX240H. Читать дальше →
Здравствуйте. Сегодня хотелось бы поговорить снова про статический анализ. И снова про C++. Только в отличие от PVS-Studio мы будем искать не какие-то ошибки в наших программах (хотя они ищут не только ошибки), а места, которые написаны недостаточно оптимально. И одним из таких мест является выбор контейнера для данных в программе. Если я вас заинтересовал, то добро пожаловать под кат! Читать дальше ->
После просмотра Keynote WWDC 2019 и знакомства с SwiftUI, предназначенного для декларативного описания UI в коде, хочется порассуждать о том, как можно декларативно наполнять таблички и коллекции. Например, вот так:
enum Builder {
static func widgets(objects: Objects) -> [Widget] {
let header = [
Spacing(height: 25).widget,
Header(string: "Выберите страну").widget,
Spacing(height: 10, separator: .bottom).widget
]
let body = objects
.flatMap({ (object: Object) -> [Widgets] in
return [
Title(object: object).widget,
Spacing(height: 1, separator: .bottom).widget
]
})
return header + body
}
}
let objects: [Object] = ...
Builder
.widgets(objects: objects)
.bind(to: collectionView)
Добрый день.
Я много лет использовал WPF. Паттерн MVVC наверное один из наиболее удобных архитектурных паттернов. Я предполагал что MVC почти то же самое. Когда я на новом месте работы я увидел использование MVC на практике, то был удивлен запутанностью и одновременно отсутствием элементарной Юзабилити. Больше всего раздражает то, что валидация происходит только при перегрузки формы. Нет красных рамок подсвечивающих поле в котором ошибка, а просто выводится Alert со списком ошибок. Если ошибок много, то приходится исправлять часть ошибок и жать сохранить, что бы повторить валидацию. Кнопка сохранить всегда активна. Связанные списки правда реализованы через js, но сложно и запутанно. Модель, представление и контроллер сильно связаны поэтому протестировать все это великолепие весьма сложно.
Как с этим бороться ?? Кому интересно прошу под кат.
Недавно задумался над созданием единой новостной ленты из всего, что я читаю. Видел варианты со сведением всего счастья в телеграмм, но мне больше приглянулся Pocket.
Почему? Этот парень выкачивает всё в удобочитаемом формате и отлично работает на всех девайсах, включая читалку.
Всем, кому интересно — добро пожаловать под кат. Читать дальше →
Некоторые пользователи беспроводных наушников отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все аудиоустройства. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.
Оказывается, низкое качество SBC обусловлено искусственными ограничениями Bluetooth-стеков и настроек наушников, и это ограничение можно обойти на любых существующих устройствах, путём программных изменений смартфона или компьютера. Читать дальше ->
Из-за массового выпуска смартфонов без аудиоразъема 3.5 мм, беспроводные Bluetooth-наушники для многих стали основным способом прослушивания музыки и общения в режиме гарнитуры.
Производители беспроводных устройств не всегда пишут подробные характеристики товара, а статьи о Bluetooth-аудио в интернете противоречивы, местами некорректны, не рассказывают о всех особенностях, и часто копируют одну и ту же не соответствующую действительности информацию.
Попробуем разобраться с протоколом, возможностями Bluetooth-стеков ОС, наушников и колонок, Bluetooth-кодеков для музыки и речи, выясним, что влияет на качество передаваемого звука и задержку, научимся собирать и декодировать информацию о поддерживаемых кодеках и других возможностях устройств.
TL;DR:
SBC — нормальный кодек
У наушников есть свой эквалайзер и пост-процессинг на каждый кодек отдельно
aptX не настолько хорош, как о нём говорят рекламные анонсы
LDAC — маркетинговое фуфло
Качество звука в режиме разговора всё ещё низкое
В браузер можно встроить аудиоэнкодеры на C, скомпилировав в WebAssembly через emscripten, и они не будут особо тормозить.
В новых версиях операционных систем часто нарушается обратная совместимость, а программистам нужно буквально переписывать свои программы каждые 3 года, иначе они не будут работать. Почему нельзя добавлять новые возможности без нарушения обратной совместимости?
Я думаю, что новая версия операционной системы каждые 5 лет была бы оптимальна с точки зрения разработчиков. А между релизами — выпуск сервиспаков, исправление ошибок, разработка и тестирование новых возможностей.
В последнее время появляется все больше дискуссий по поводу электромобилей и их влияния на нашу жизнь, на другие отрасли производства и на их влияние на потребление нефти. Часто утверждается, что мировое производство традиционных топливных автомобилей будет расти ещё несколько десятилетий. Однако недавно Bloomberg NEF опубликовали доклад, в котором констатировали, что производство традиционных автомобилей ( для простоты будем называть их нефтемобилями) уже достигло пика и в будущем расти не будет по причине роста продаж электромобилей. Особенную остроту этому вопросу придаёт пик потребления нефти автотранспортом неизбежно следующий за пиком продаж нефтемобилей. Подробнее с датами этих событий попробуем разобраться в статье Читать дальше ->
Доброго дня.
В прошлой своей статье я затронул тему настольно-ролевых конкурсов, которые, как и всевозможные инди-джемы для разработчиков софта, помогают концептам и наброскам развиться в нечто большее. В этот раз расскажу о истории другого своего конкурсного проекта.
Настольно-ролевые конкурсы мне попадались как наши отечественные (именуемые «Кашеварами»), так и международные (ежегодный Game Chef). На международном, как правило, требовалось придумать какую-то новую мини-систему правил, а на Кашевары подавались не только системы, но и модули-приключения для существующих систем. Ещё международный конкурс пытался задавать некие тренды и экспериментировать — в тот год очередной темой Game Chef стал поиск новых настольно-ролевых форматов: «отсутствие книги правил». Читать дальше ->
Теория игр — дисциплина, которая прочно зависла между математикой и социальными науками. Одним канатом к математике, другим канатом — к социальным наукам, прочно прикреплена.
В ней есть теоремы, достаточно серьёзные (теорема существования равновесия), про неё снят фильм «Игры разума», теория игр проявляется в множестве художественных произведений. Если смотреть вокруг, то и дело встречаешь игровую ситуацию. Я собрал несколько сюжетов.
Все мои презентации делает жена. Все презентации могут свободно распространяться, я буду крайне рад, если вы по ней будете читать лекции. Это полностью свободный материал.
Некоторые сюжеты спорные. Модели могут быть разные, можете не соглашаться с моей моделью.
Предлагаю вашему вниманию перевод доклада Александра Кузьменко (с апреля этого года он официально работает в качестве разработчика компилятора Haxe) об изменениях в языке Haxe, произошедших с релиза Haxe 3.4.
С момента выпуска Haxe 3.4 прошло более чем два с половиной года. За это время вышло 7 патч-релизов, 5 превью-релизов Haxe 4 и 2 релиз-кандидата Haxe 4. Это был долгий путь к новой версии и она почти готова (остается решить около 20 задач).