Рубрика «Программирование» - 1005

Facebook — одно из самых функциональных приложений, доступных на Android. С такими функциями, как push-нотификации, новостная лента и встроенная версия Facebook Messenger (фактически, являющаяся полноценным приложением), которые работают одновременно в реальном времени, сложность и объём кода порождает ряд технических сложностей, с которыми сталкиваются в том числе и другие Android разработчики — особенно на старых версиях платформы. (Наши последние приложения поддерживают старую версию Android 2.2 — Froyo, которой уже почти 3 года).

Одна из таких проблем связана с тем, как виртуальная машина Android — Dalvik, обращается с Java методами. В конце прошлого года мы закончили переработку нашего Android приложения, которая включала в себя перевод большого объёма JavaScript кода в Java, а так же использование новых абстракций, которые породили большое число небольших методов (в большинстве случаев, это считается хорошей практикой программирования). К сожалению, это привело к резкому увеличению числа методов в нашем приложении.

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

Сегодня вышел релиз с версией 7.3 замечательного редактора NetBeans. Давайте посмотрим, что ждёт нас под капотом этой IDE. NetBeans IDE 7.3 дает возможность web разработчикам создавать и отлаживать приложения, использующие HTML5, JavaScript и CSS3 стандарты. Так же разработчики увидят обновленный интерфейс инспектора страницы и редактора CSS стилей, а так же полностью переработанный JavaScript редактор. Так же была улучшена поддержка IDE для Groovy, PHP, JavaFX и C/C++

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

Ускорение криптоопераций или опыт портирования под AndroidВ состав платформы Android входит фреймворк Bouncycastle, предназначенный для выполнения криптоопераций, например, шифрования или проверки цифровой подписи. Отличительной чертой данного фреймворка является то, что он целиком написан на Java, без применения нативного кода. Это увеличивает его переносимость, однако значительно уменьшает быстродействие. В первом приближении реализация криптофункций с помощью нативного кода может дать значительный прирост производительности. Это может существенно увеличить быстродействие приложения, использующего криптографию. Посмотрим, подтвердится ли это предположение.
Данным постом я хочу начать серию статей о создании модуля, выполняющего криптооперации на примере шифрования/расшифровки симметричным алгоритмом AES. Для начала необходимо понять, какой прирост производительности может дать применение нативного кода по сравнению со встроенной в ОС реализацией.
Читать полностью »

Привязка свойств и декларативный синтаксис в C++ QtQuick и QML образуют по-настоящему хороший язык для разработки пользовательских интерфейсов. Привязки QML очень производительны и удобны. Декларативный синтаксис действительно приятен в работе. Возможно ли сделать то же самое на C++? В этом посте я покажу рабочую реализацию привязки свойств на чистом C++.

Внимание: это было сделано для забавы, а не для использования в реальном проекте.
Читать полностью »

Правильная модель в QtЗа последний год пришлось довольно много работать с Model/View фреймворком Qt. Приходилось как писать собственные модели, так и переделывать существующие. И вот, после созерцания очередного творения, решил представить общественности некоторые наработки.

Начнем с очевидного:

Не используйте виджеты

Все эти QTableWidget, QListWidget и QTreeWidget — не для вас.

Использование MVC фреймворка не составляет проблемы. В простейшем случае, можно использовать готовые модели, которые предоставляет Qt. Количество кода и его сложность при этом не растет, зато удается избежать всевозможных проблем роста. Разделение модели и отображения с самого начала позволяет с легкостью добавлять такие вещи как сортировка или фильтрация, не переписывая при этом половину кода.

Одни плюсы, а минусов, при этом, не замечено.Читать полностью »

О том как отправлять данные из QML в C++ и после манипуляций с ними возвращать их (данные) обратно, было уже неоднократно рассказано. В большинстве статей приводятся одни и те же примеры или, в лучшем случае, слегка измененные авторами статей.

Давайте рассмотрим пару самых явных способов передавать данные из QML в C++ и обратно. Также оценим их эффективность.Читать полностью »

Если Вы программируете на Си и Вам не хватает типизированных контейнеров, которые есть в языках высокого уровня, добро пожаловать под кат:
Читать полностью »

К хорошим постам habrahabr.ru/post/135340/ и habrahabr.ru/post/171261/

  • Почему большинство программистов не любят «читать чужой код»?
  • Почему рефакторинг и внесение изменений становятся серьезной проблемой?
  • Почему так часто случается, что легче переписать с нуля?
  • Почему одни программисты называют других хорошими или плохими словами?

Конечно, многие из вас обнаружат, что предлагаемые ниже ответы на эти вопросы весьма знакомы, но возьмите эту статью на заметку, так как кидать линк зачастую все же существенно комфортнее, чем распинаться в объяснениях и доказательствах очевидного.
Читать полностью »

image

Доброго времени суток уважаемые читатели. Язык программирования Java является ключевым языком программирования в банковской и инвестиционной сфере. Создание школы — это внутренняя программа Российского Центра Разработки Deutsche Bank, нацеленная на обучение программированию с последующим трудоустройством в компании. В рамках этой программы Вы получите уникальную возможность приобрести как теоретические, так и практические знания Java, узнать о сложных технических задачах, стоящих перед разработчиками программных продуктов для крупных инвестиционных банков, и способах их решения.

Помимо возможности качественного трудоустройства, очень заманчивым фактом является то, что сумма стипендии при обучении составляет 500 евро. К сожалению в официальных требованиях требованиях к кандидатам есть пункт о высшем образовании, что на мой взгляд ограничивает возможности «бывалых» самоучек. Кандидат – должен быть студентом старших курсов или выпускником специальностей: “информационные и компьютерные технологии”, “прикладная математика”, “физика”.

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

Идея данной заметки — как гипотезы — появилась уже довольно давно, и все как-то не получалось… Но вот «на днях» (к моменту публикации — уже неделях) увидел подтверждение своего предположения что называется «из первых рук» (см. Kent Beck's answer to Unit Testing: Did the notion of using setup() and teardown() methods in test fixtures originate from JUnit?) и решил-таки воплотить эту задумку.

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


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