Рубрика «разработка под windows» - 38

Как ни странно, но только 1% пользователей браузера используют специализированные расширения для хранения паролей (LastPass, KeePass, 1Password, ...). Безопасность паролей всех остальных пользователей зависит от браузера. Cегодня мы расскажем читателям Хабрахабра, почему наша команда отказалась от архитектуры защиты паролей из проекта Chromium и как разработала собственный менеджер паролей, который уже тестируется в бете. Вы также узнаете, как мы решили проблему сброса мастер-пароля без расшифровки самих паролей.

Как мы создавали менеджер паролей со стойкой криптографией и мастер-паролем. Опыт команды Яндекс.Браузера - 1

С точки зрения безопасности, на каждом сайта рекомендуется использовать свой уникальный пароль. Если злоумышленники украдут один пароль, то только к одному сайту они и получат доступ. Проблема в том, что запомнить десятки надёжных паролей очень сложно. Кто-то честно придумывает новые пароли и записывает их руками в блокнот (а потом теряет вместе с ним же), другие – используют один и тот же пароль на всех сайтах. Трудно сказать, какой из этих вариантов хуже. Решением проблемы для миллионов обычных пользователей может быть встроенный в браузер менеджер паролей, но его эффективность зависит от того, насколько он прост и надёжен. И в этих вопросах у предыдущего решения были пробелы, о которых мы и расскажем ниже.

Читать полностью »

Продвижение ПО на Запад: ожидание vs.реальность на примере одного видеоредактора - 1

Статьи о продвижении IT-продуктов, как правило, можно разделить на две категории.

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

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

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

В качестве примера мы будем опираться на результаты продвижения видеоредактора VSDC на западный рынок, которым занимались последний год, и расскажем, какие методы сработали, а какие — нет.
Читать полностью »

image
Я пишу программы уже больше 15-ти лет, из них 11 — профессионально. Т.е. получаю за это деньги. Через меня прошло десятки коммерческих проектов разной величины. Вспоминая себя того, совсем юного девелопера, я понимаю насколько разнится мышление у матерого разраба и юнца. Насколько развита интиуция и понимание после десяти лет разработки разноплановых проектов и только вышедшего из универа парня. Который, в то время, и курсовую левой рукой напишет, и дипломную, и даже авторегистратор для сайта знакомств.

В те годы, 10 лет назад, я думал скорее о хорошем тоне программирования, комментариях, наследовании и паттернах. О заученных постулатах Страуструпа и Кнута. К слову последний, до сих пор загорается яркой лампой в голове, со своей оптимизацией программ. Это «O(N^2) или O(NlogN)» невольно думается, когда выводишь 7 записей по дням недели.

А стоило прочитать серию для экспертов С++, того же Александреску или Скотта Мейрса, так мозги вскипали как бабушкин чайник. Вот и приходилось мне тогда, приступая к реальной задаче, создавать абстракции над абстракциями, оптимизировать неоптимизируемуемое, объявлять константы и константые геттеры-сеттеры. Обязательно создавать конструкторы и деструкторы, в общем и целом 90% времени заниматься оформлением кода, чтобы все было как у в учебнике.
При этом программа выводила ничего. А заказчик то ждал…

Оглядываясь на то время, и наблюдая как дела обстоят сейчас, я решил собрать небольшой шорт лист из костылей, хаков, обходных путей (workarrounds) и прочих нетривиальных ходов, о которых начинающий разработчик может не задумываться. Да впрочем не только он.
Читать полностью »

Мы в ivi давно собирались обновить наше приложение под Windows 10 (которое для ПК и планшетов). Мы хотели сделать его эдаким «уютным» уголком для отдыха. И поэтому анонсированная недавно Microsoft-ом концепция fluent design пришлась нам очень кстати.

Но я не буду здесь рассказывать про стандартные компоненты, предлагаем Microsoft-ом для fluent design-а (Acrylic, Reveal, Connected-анимации и др.), хотя мы их, конечно, используем тоже. С ними всё просто и понятно — бери документацию и пользуйся. 

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

image

Идея в том, что мы используем depth и motion из fluent design system. Центральный элемент как бы слегка приподнимается надо всеми остальными. Это достигается за счёт анимации его размера и тени во время скролла. 
Читать полностью »

Приветствую Вас, читатели!

7 декабря 2017 года вышел очередной релиз операционной системы ReactOS под номером 0.4.7, первый после перезда проекта на GitHub. В процессе подготовки релиза было закрыто более 450 отчетов об ошибках, в том числе исправлено около 15 регрессий. Сегодня я расскажу о самых интересных изменениях, вошедших в этот выпуск!

Безусловно, одна из главных новостей то, что теперь Павел Дуров ведет здоровый образ жизни и в ReactOS. Так что этот скриншот из энциклопедии мемом «Луркоморье» станет частью истории:

image
Читать полностью »

Решение задачи оптимизации многоступенчатых ракет - 1

Введение

Методы нелинейной оптимизации широко применяются при проектировании машин и механизмов. Указанные методы применяются и в ракетостроении, например, для оптимизации многоступенчатых ракет [1].

Многоступенчатая ракета — это аппарат, в котором части конструкции отделяются во время полета, придавая оставшейся части ракеты дополнительную скорость. Трёхступенчатая ракета схематически показана на рисунке.

Решение задачи оптимизации многоступенчатых ракет - 2

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

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

Характеристики многоступенчатой ракеты можно описать двумя уравнениями. Первое уравнение для коэффициента полезной нагрузки ракеты:

Решение задачи оптимизации многоступенчатых ракет - 4

где: W1– полезный вес ракеты ;WN –начальный вес ракеты до отделения ступеней.
Читать полностью »

Picture 5

Сегодня мы отойдём от классического клише второсортных детективов и расскажем вам о случае из нашей практики, когда дворецкий сам выступил в роли жертвы, а поиски настоящего преступника привели нас к неожиданному результату. Но не стоит пугаться. Речь, конечно же, пойдет не о настоящих людях, а о программах. И о том, что нам не страшно признавать собственные ошибки: мы-то знаем, что от них не застрахован ни один коллектив разработчиков.
Читать полностью »

Всем привет! В этой статье я расскажу об API BIM-системы Renga. О самой системе можно почитать тут, здесь же можно запросить версию для некоммерческого использования. Если вкратце, то Renga это трехмерная система автоматизированного проектирования в архитектуре и строительстве. В ней проектировщик/архитектор/конструктор работает с информационной моделью здания, получает ассоциативные чертежи, спецификации, в общем, создает проект.

Зачем нужно API CAD-системы

Сначала, как водится, немного водички.

Разработка расширений для CAD систем довольно распространена, поскольку в любом проектировании существуют различные направления, разделы и стандарты оформления проектной документации, которые требуют разной узкоспециализированной функциональности. Кроме того существуют задачи интеграции с программами расчета, визуализации, документооборота и многими другими. Выход — создание подключаемых модулей, расширяющих функциональность системы.
Читать полностью »

Недавно мы рассказывали о том, как можно логировать действия пользователей в WinForms приложениях: Оно само упало, или следствие ведут колобки. Но что делать, если у вас WPF? Да нет проблем, и в WPF есть жизнь!

Собираем пользовательскую активность в WPF - 1

В WPF не надо будет вешать никаких хуков и трогать страшный винапи, собственно за пределы WPF мы и не выйдем. Для начала вспомним, что у нас есть routed events, и на них можно подписываться. В принципе, это все, что нам надо знать, чтобы реализовать поставленную задачу :)
Читать полностью »

Здравствуйте!

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

В википедии автоколебания объясняют так [2]:

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js