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

Около полугода назад исполнительный вице-президент Microsoft признался перед журналистами, что его компания ощущает нехватку высококвалифицированных специалистов до такой степени, что готова лоббировать интересы иммигрантов перед правительством США и самостоятельно обеспечить финансирования грин-карт для потенциальных сотрудников своей компании.

Теперь же это заведомо неспешное дело приняло новый и более солидный оборот — под письмом Бараку Обаме и Палате представителей, которое просит власти США ускорить принятие и реализацию иммиграционной реформы, подписалось более сотни руководителей крупнейших IT-компаний. Как минимум, такие имена как Эрик Шмидт, Пол Оттелини, Марк Цукерберг и Марисса Мейер подчеркивают уровень компаний, готовых лоббировать непростое политическое решение.
Читать полностью »

Порой администраторы вконтакта удивляют своей однобокостью, и невозможностью сотрудничества с пользователем. В прошлый раз я бодался с ними, пытаясь выяснить что именно нарушает перенос фотографий пользователей внутри контакта, давших собственное согласие. Админы не смогли ничего вразумительно ответить + прочитав пост на хабре, начали писать вконтакт гневные мессаги уже с личных аккаунтов (Юпитер ты сердишься?...).

Итак, ознакомившись с существующими аналогами, я разработал развлекательное приложение для вконтакта, с не особо сложным клиентским интерфейсом (основные расчёты производятся на сервере). Суть следующая, выбирается пользователь из списка друзей, и на основе этой информации выводится некая информация о личности (как гороскоп). Встала необходимость разместить это приложение в каталоге, ведь не для себя же я его делал? а заниматься спам продвижением желания небыло…

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

И чувствуя себя героем информационной революции талантливым программистом написавшим простое казуальное приложение, я отправил админам запрос… и когда я получил ответ, началось самое интересное (back to USSR):

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

Занимаюсь сейчас разработкой проигрывателя видео под Windows. И «завис» на некоторое время над задачей — после перехода на Qt, видео в проигрывателе начинает моргать и исчезать (см. видео).

Попытки переопределить QWidget::paintEvent невозможны из-за того, что Qt выполняет заливку на (https://qt-project.org/doc/qt-4.8/qwidget.html#autoFillBackground-prop) перед QWidget::paintEvent.
Попытка переопределить WM_PAINT и WM_ERASEBACKGOUND в QWidget::winEvent тоже не удалась, т.к. paintEvent может вызываться не только из WM_PAINT, но и другими сервисами по неизвестному мне алгоритму.
Поэтому ниже приведу решение как выходил из этой ситуации.
Читать полностью »

Занимаюсь сейчас разработкой проигрывателя видео под Windows. И «завис» на некоторое время над задачей — после перехода на Qt, видео в проигрывателе начинает моргать и исчезать (см. видео).

Попытки переопределить QWidget::paintEvent невозможны из-за того, что Qt выполняет заливку на (https://qt-project.org/doc/qt-4.8/qwidget.html#autoFillBackground-prop) перед QWidget::paintEvent.
Попытка переопределить WM_PAINT и WM_ERASEBACKGOUND в QWidget::winEvent тоже не удалась, т.к. paintEvent может вызываться не только из WM_PAINT, но и другими сервисами по неизвестному мне алгоритму.
Поэтому ниже приведу решение как выходил из этой ситуации.
Читать полностью »

Весёлые (сосисочные) рефакторинги

Привет, %habrausername%. Я хочу сыграть с тобой в игру.

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

От предыдущего разработчика осталась кучка кода и домашние тапочки. Ты осторожно кладёшь тапочки в мусорную корзину и начинаешь рефакторинг.

Этот код ужасен. Во-первых, нет никого, кто мог бы сказать, зачем этот код писался. Во-вторых, нет никакой документации. Нет даже комментариев, не говоря уже о юнит-тестах. В-третьих, код не структурирован, а имена классов и методов ни о чём не говорят. И, наконец, работать это должно начать не сегодня, и даже не вчера, а внезапно.
Ну как, %habrausername%, пробежал холодок по спине?Читать полностью »

Java. Новое поколение разработки. Техники Java 7 и многоязычное программирование

Название оригинала: The Well-Grounded Java Developer: Vital techniques of Java 7 and polyglot programming
Автор: Б. Эванс, М. Вербург
Перевод книги: Сивченко Олег
Дата выхода: осень 2013г.

Осенью у нас выходит новая переводная книга по Java. У книги очень хорошие отзывы и высокий рейтинг на сайте www.amazon.com.

Книги о Java — пожалуй, самая распространенная литература по отдельно взятому языку программирования. Но тем не менее большинство книг по Java относится к одной из двух категорий: это либо вводные пособия для начинающих, либо высокоспециализированные книги.
Читать полностью »

12 марта стала доступна новая версия PhpStorm 6.0
image
Читать полностью »

Intel System Studio — набор разработчика ПО для встраиваемых и мобильных систем
В конце февраля компания Intel официально объявила о выходе Intel System Studio – нового набора инструментов, адресованного разработчикам ПО для встраиваемых (embedded) систем и специализированных устройств: коммуникаторов, систем на чипе, автомобильных компьютеров, промышленных и медицинских устройств на базе х86.
Intel System Studio призвана помочь разработчикам в решении самых насущных их задач: обеспечения надежности ПО, его энергоэффективности и производительности.
Intel System Studio — это, фактически, знакомая всем серьезным разработчикам «настольных» приложений Intel Parallel Studio, но ориентированная именно на встраиваемые системы c Linux на борту.
Читать полностью »

Доброго времени суток! В этой статье я расскажу про такой компонент из QML как Loader.

Он позволяет создать контейнер, в который затем можно вложить необходимый qml-элемент, использовать разные элементы в зависимости от состояния программы, а также сделать редко используемые части загружаемыми по требованию и сэкономить ресурсы. Loader является контейнером для QML-компонента и сам по себе не отображается.

Я рассматриваю компонент из QtQuick 2.0 которая входит в Qt пятой версии. В более ранней версии этот компонент также есть, но функционал немного меньше.

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

Долго думал над заголовком, в итоге в него попали пара интересных вопросов из докладов прошедшей недавно, уже восьмой по счету, конференции «Свободное программное обеспечение в высшей школе».

Мероприятие это традиционно проводится зимой в уютном здании Университета города Переславля-Залесского Ярославской области, в несколько как бы семейной обстановке, а потому совсем широкой общественности не известное. А меж тем, каждый год бывают весьма любопытные доклады, и еще более интересные докладчики. Четыре из них хотелось бы выделить в этом топике, хотя внимания заслуживают все. По традиции тематика докладов (особенно в первый день) выходит за рамки тематики конференции, и тем интереснее их слушать.

1) «СПО. Кризис среднего возраста?» (Хотел вынести в заголовок топика один из слайдов доклада — «Куда уехал цирк?», но воздержался)
В преддверии 30-летнего юбилея движения GNU, известный аналитик Антолий Якушин, человек широчайших познаний в области программного обеспечения, подводит некоторые итоги и, в частности, рассказывает: куда направлен отток разработчиков свободных проектов, так ли это страшно, почему в MIT сейчас так мало свободных проектов, почему Столлман не является социалистом и прочие животрепещущие вопросы

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


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