Я работаю в небольшом израильском стартапе, наш продукт — платформа для заказа еды из ресторанов, кафе и магазинов. В отличие от десятков подобных сервисов, мы монополисты на студенческом рынке в США. Мы обрабатываем на пике несколько сотен тысяч заказов в день и один из платежных шлюзов в продакшне построен на автоматизации GUI для Win32 приложения с помощью библиотеки pywinauto.
Читать полностью »
Рубрика «разработка под windows» - 56
Бот-кассир на pywinauto, или GUI automation для платежного шлюза
2016-08-09 в 9:21, admin, рубрики: automation, open source, python, pywinauto, win32 api, платежные системы, Программирование, разработка под windows, метки: pywinauto, win32 apiКак легко работать с OneDrive из приложений UWP
2016-08-08 в 14:50, admin, рубрики: .net, C#, onedrive, onedrive api, rest, SDK, uwp, Windows 10, XAML, разработка мобильных приложений, разработка под windows, разработка под windows phone
Продолжаю рассказывать об интересных/полезных вещах из мира XAML/C# приложений UWP. OneDrive API является частью Microsoft Graph. Для работы с OneDrive можно использовать OneDrive REST API, которое использует протокол HTTP и в частности его методы GET, POST, DELETE, PUT…
Кроме того, в соответствии с новыми принципами работы Microsoft, была создана библиотека обертка OneDrive SDK for CSharp, которая облегчает работу и использование сервиса из кода ваших приложений.
Читать полностью »
Проектирование идентичных форм в WPF с применением абстрактных классов
2016-08-08 в 5:43, admin, рубрики: .net, C#, wpf, абстрактные классы, разработка под windows, формы, метки: абстрактные классыНедавно столкнулся с весьма интересной задачей, которая довольно-таки часто может встречаться при проектировании пользовательских интерфейсов. Вопрос, конечно, сравнительно тривиальный, однако полноценной и развёрнутой информации по нему я не нашёл, потому решил поделиться собственным опытом. Статья может оказаться полезной для Junior-разработчиков, а также людей, только начинающих изучать ООП и не имеющих серьёзного практического опыта в программировании.
Читать полностью »
GetLazarus тот же Lazarus, но лучше и еще больше похож на Delphi
2016-08-08 в 5:27, admin, рубрики: Delphi, Free Pascal, GetLazarus, IDE, lazarus, open source, Программирование, разработка, Разработка под Linux, разработка под windowsДрузья, все мы знакомы с кроссплатформенным инструментом быстрой разработки Lazarus.
Сегодня мы поговорим об одной сборке GetLazarus, которая, на мой взгляд, заслуживает некоторого внимания.
Это не форк, это удачная сборка, которая сразу готова к работе с еще большим Delphi-подобным внешним видом.
Новые возможности x:Bind в UWP
2016-08-06 в 10:00, admin, рубрики: .net, anniversary, C#, Universal Windows Platform, uwp, XAML, разработка под windows
Кроме расширений и множества других вещей, в Anniversary Update сильно расширили возможности компилируемых привязок (x:Bind). Давайте посмотрим, что изменилось.
Выбираем длинный путь (или прощай MAX_PATH)
2016-08-05 в 12:33, admin, рубрики: .net, .net core, api, MAX_PATH, win api, windows, Windows 10, разработка под windows, счастье есть, метки: MAX_PATH
Многим пользователям ПК под управлением ОС Windows, не говоря о разработчиках, знакомы проблемы при работе с длинными (более 260 символов, MAX_PATH) путями файлов или каталогов.
В данной статье рассматриваются способы избавления от этого пережитка при разработке приложений на различных платформах (WinApi, .Net Framework, .Net Core) и активации нативной поддержки длинных путей в Windows 10 (Anniversary Update).
Читать полностью »
Как мы сделали конвертер и плеер для CinemaDNG на CUDA
2016-08-04 в 12:45, admin, рубрики: Adobe Premiere Pro 2015, Apple ProRes, Avid DNxHD, BlackMagic DaVinci Resolve 12, BlackMagic URSA camera, CinemaDNG player 4K, CinemaDNG workflow, CUDA, CUDA J2K codec, dng post production, DNG processing, DNG viewer, DNxHR, Fast CinemaDNG Processor, footage Culling and Reviewing, freeware, gpgpu, GPU color correction, GPU debayer DFPD, GPU denoiser, GPU JPEG2000, GPU resize, GPU USM, Image Processing SDK on CUDA, intermediate editing codec, NVIDIA GPU, высокая производительность, дебайер MG, демозаик, конвертер и плеер CinemaDNG 4K, обработка изображений, отбраковка и сортировка DNG, параллельное программирование, разработка под windows, ресайз, шумодавНа Хабре у меня уже было две статьи (1 и 2), обе они касались реализации быстрого сжатия изображений по алгоритму JPEG на CUDA. Теперь я бы хотел рассказать о другой, гораздо более масштабной задаче — как мы сделали конвертер и видео плеер для серий DNG изображений на CUDA. При этом мы получили очень высокую скорость работы, потому что вся обработка исходных данных в формате DNG теперь выполняется на видеокарте NVIDIA.
Исходное изображение в формате DNG взято с сайта blackmagicdesign.com
Несмотря на то, что в мире уже есть очень большое количество конвертеров RAW, которые работают с форматом DNG, мы решили сделать ещё один, но очень быстрый, который можно было бы использовать в том числе для отбраковки и сортировки. Видео плееры DNG тоже есть, но обычно они работают с уменьшенным разрешением, поэтому просмотреть только что отснятый в формате DNG материал на полном разрешении — это проблема. С помощью нашего конвертера мы сделали попытку обработать картинки настолько быстро, чтобы уметь просматривать серии DNG изображений в реальном времени и при полном разрешении. Естественно, что кроме скорости необходимо было получить приемлемое качество обработки и шумоподавления, и мне кажется, что нам это удалось.
Читать полностью »
Борьба с загадочными падениями MSBuild на XamlTaskFactory
2016-08-04 в 10:16, admin, рубрики: c++, Jenkins, msbuild, Visual Studio, Компиляторы, разработка под windowsНаша команда разрабатывает кроссплатформенное ядро приложений, которое должно собираться на Windows под Visual Studio 2015, Linux с gcc 4.9+, MacOS, iOS, Android и Windows Phone 8.1+. Для автоматической проверки кода на Jenkins настроены сборки под все требуемые конфигурации. Задача сборок отловить код, который не собирается на одной или нескольких из платформ или не проходит юнит-тесты и не дать ему попасть к командам конечных приложений до внесения соответствующих исправлений. Такой процесс CI позволяет разработчику локально использовать удобную ему операционную систему и среду разработки, будь то Visual Studio, XCode, QtCreator или вообще vim + ninja, при этом не бояться, что его изменения не соберутся или будут валить тесты в другом окружении.
В идеальном мире красная сборка на Jenkins (именно он у нас используется в роли билдсервера) говорит о проблеме в коде. Увидев красный свет на висящем в углу комнаты мониторе, «дежурный за сборку» должен пойти и поправить найденную проблему. В реальности же причины падения билда могут быть самыми разными, например, обрыв соединения с нодой, на которой проходила компиляция, закончившееся место на диске или прилёт инопланетян. Такие ложные срабатывания отнимают лишнее время у команды, притупляют внимание и в целом снижают доверие к CI в команде. Историю борьбы с одной из таких проблем я хочу рассказать.
Читать полностью »
Перехват функций .NET-CLR
2016-08-04 в 7:31, admin, рубрики: .net, C#, clr, Алгоритмы, перехват, разработка под windows, реверс-инжиниринг, сплайсинг, метки: ПерехватИногда при разработке программного обеспечения требуется встроить дополнительную функциональность в уже существующие приложения без модификации исходного текста приложений. Более того, зачастую сами приложения существуют только в скомпилированном бинарном виде без наличия исходного текста. Широко известным способом решения указанной задачи является т.н. “сплайсинг” – метод перехвата функций путем изменения кода целевой функции. Обычно при сплайсинге первые байты целевой функции перемещаются по другим адресам, а на их исходное место записывается команда безусловного перехода (jmp) на замещающую функцию. Поскольку сплайсинг требует низкоуровневых операций с памятью, то он осуществляется с использованием языка ассемблера и С/C++, что также накладывает определенные ограничения на реализацию замещающих функций – они обычно также реализованы на С/C++ (реже на ассемблере).
Метод сплайсинга для перехвата API-функций в Windows широко описан в Интернете и в различных литературных источниках. Простота указанного перехвата определяется следующими факторами:
- целевая функция является статической – она сразу присутствует в памяти загруженного модуля;
- адрес целевой функции легко определить (через таблицу экспорта модуля или функцию GetProcAddress).
Реализация замещающих функций на C/C++ при перехвате API-функций является оптимальным вариантом, поскольку Windows API реализовано, как известно, на языке C, и замещающие функции могут оперировать теми же понятиями, что и заменяемые.
Читать полностью »
Работа с Facebook API из приложений UWP
2016-08-03 в 14:11, admin, рубрики: C#, Facebook, Facebook API, uwp, Windows 10, XAML, разработка мобильных приложений, разработка под windows, разработка под windows phone, фейсбук
Люди, как правило, существа очень забывчивые. Для того чтобы не заставлять пользователей запоминать новый пароль при регистрации в вашем приложении UWP, можно использовать аккаунты сторонних платформ. При этом, можно не заставляя заполнять длиннющие анкеты получить доступ к какой-либо полезной информации и характеристикам пользователя. О том, что публикация контента в социальных сетях повышает конверсию даже и упоминать не буду, это и так понятно. Если хотите разобраться, как работать с самой пока что популярной сетью в мире из C#/XAML приложений UWP, не куря мануалы, то добро пожаловать под кат.
Читать полностью »