ПОСЛЕДНИЕ ЗАПИСИ В БЛОГЕ

Вышла версия My Notes 3.1.0 для iPhone с поддержкой календаря

После тщательного тестирования мы выпустили My Notes 3.1.0 с долгожданной поддержкой календаря. Теперь приложение обеспечивает полноценную работу с календарем: создание, редактирование или перенос событий, включая повторяемые, получение уведомлений и т.д. Также нами была добавлена функциональность 3D Touch, которая позволяет открыть меню из иконки, предпросмотр событий, заметок и писем. Еще более удобной стала работа с файлами: теперь пользователи смогут прикрепить файлы основных типов к новым записям и письмам непосредственно из других приложений.

iMoodJournal 3.0 - теперь с поддержкой Apple Watch!

Сегодня в Apple App Store появилась новая версия iMoodJournal 3.0 для iPhone с поддержкой Apple Watch. Эта интеграция, с нетерпением ожидаемая многими нашими пользователями, безусловно, станет очередной вехой в развитии продукта.

Вышел AweSync 6.2!

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

Новый Релиз iMoodJournal!

Сегодня обновленная версия приложения появилась в Apple App Store. В новой версии iMoodJournal были добавлены несколько давно ожидаемых возможностей - таких, как поддержка iOS 8, iPhone 6 и iPhone 6 Plus, а также возможность разблокировать приложение, используя Touch ID на iPhone 5S, 6 и 6 Plus. Для тех пользователей, которым приходится использовать приложение в общественных местах или на работе, мы добавили возможности изменить текст уведомления по умолчанию на свой собственный и выбрать более нейтральные звуки для уведомлений (были добавлены несколько новых, более нейтральных звуков).

Утилита резервного копирования файлов. Часть 1: Конфигурация WCF

Несмотря на большое количество уже созданных приложений для резервного копирования, проект по созданию backup tool может оказаться настолько интересным и нетривиальным, что появляется желание поделится наиболее удачными наработками. Именно об этом и будет моя статья. В ней я не буду описывать весь процесс разработки и выкладывать код полностью; цель статьи – рассказать о принципиальном решении и продемонстрировать наиболее интересные моменты проекта.

Программирование для чайников

Здравствуйте, мальчики и девочки! Сегодня я расскажу вам, как сделать первые шаги на поприще программирования. Я не буду рассказывать про выбор первого языка, с какой книги начать, как пройти собеседование. Это все не важно. Я помогу вам написать вашу первую программу.

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

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

Оптимизируй это. Часть 2

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

 Перед вами одна бинарная операция сложения, результат которой помещается в переменную k. Неужели тут тоже можно что-то ускорить?

int k = 0;
for (var i = 0; i < 1000000000; i++)
{
  k = i + 1;
}

Это было бы здорово. Такие операции встречаются сплошь и рядом не только в криптографических алгоритмах, но и в...

Оптимизируй это. Часть 1

  Недавно один из наших клиентов поставил перед нами необычную и очень интересную задачу. Нужно было снимать защиту на открытие старых файлов Microsoft Excel. Время, отведённое на снятие защиты, не должно превышать 10 минут, при условии работы на среднем по характеристикам компьютере.

  После исследования этой области было принято решение «вскрывать» Excel при помощи атаки со словарём. Со стороны заказчика был предоставлен человек, который проводил тестирование готового решения и принимал непосредственное участие в разработке. В качестве языка был выбран C# как основной в проектах заказчика.

  В первый день нами была написана программа, которая могла атаковать .xls файл двенадцатью тысячами паролей за одну минуту. Это давало нам возможность проверить 120 000 паролей за отпущенные 10 минут и позволяло открывать приблизительно 2% файлов из тестового набора. Никто и не рассчитывал на 100% за отпущенное время, но двухпроцентная вероятность открыть файл - это довольно скромный результат. Очевидно, что повысить вероятность успешной атаки можно было путем..

Несколько приемов оптимизации JavaScript кода

Мы в Inexika много работаем с заказчиками по всему миру, и поэтому знание английского языка для нас является обязательным. Этой весной я прошел курс «Речевые клише английского языка». Курс мне понравился, и, дабы закрепить пройденный материал, я поступил как настоящий программист и создал по его мотивам небольшой, но полезный веб-сервис (http://english.azurewebsites.net/). Заодно я попробовал на практике jQuery Mobile и Windows Azure.

Я поделился этим сервисом с коллегами, и они, конечно же, нашли к чему придраться. Например, наш CEO Сергей Темников пожаловался, что на его старом iPhone 4 сильно тормозит поиск. «Вызов принят», – подумал я и сел за код.

Как заставить TextBox.Text работать?

Если вы пишете приложение для магазина Windows, то, скорее всего, используете текстовые поля (TextBox) и привязки (Binding). Также вы используете паттерн MVVM (Model View ViewModel). Вы могли заметить, что привязка к свойству зависимости (Dependency Property) Text срабатывает только если текстовое поле потеряло фокус. Есть огромное количество сценариев, когда нас это не устраивает. Например, у нас нет кнопки «Ok», введённые значения используются немедленно (и это самый лучший подход), а наше текстовое поле последнее на странице. В этом случае привязка не сработает, пока пользователь не покинет страницу.