Программирование

Потоки в C++11

В новой версии C++ 2011 уже довольно много вкусностей и первая с которой я предлагаю ознакомиться - потоки (threads).
Это уже не техника будущего, данные возможности уже имеются на вашем компьютере (скорее всего). По крайней мере в моей ubuntu c GCC 4.8 этот код компилируется и работает без проблем.

Макросы в Си

Давайте попробуем разобраться с макросами. Что же такое макросы и с чем из едят?
Когда мне преподавали программирование в институте (это были времена когда я мало понимал в программировании и думал, что программисты - это крутые хакеры, которые сидят в непонятных подвалах с горой крутого оборудования), мне сказали что макросы это такие функции, которые начинаются со знака подчеркивания.
Толи я был настолько дурак в этом деле, то ли преподаватель решил не слишком изощряться в объяснениях... Увы ответ был таков.

Бесплатный аналог Matlab - GNU Octave

Конечно Matlab отличная программа, но позволить себе её купить рядовой гражданин стран СНГ врядли сможет.

Поэтому видимо и появился аналог - GNU Octave.

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

Это отлично учитывая последнии тенденции антипиратских законов.

Ну и напоследок мини-обзор

Добавить иконку окна в Qt

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

Какая никакая, но это в любом случае лучше, чем отсутствие как таковое.

Тем более что в Qt это делается проще простого. У любого окна есть свойство windowIcon и метод setWindowIcon()

А задать вообще просто. Вот например в конструкторе главного окна:

Работа с COM портом на C++ в Windows

Последовательные порты полюбились разработчикам за их простоту в обслуживании и использовании.

И конечно же писать в консоль терминальной программы это всё хорошо, но хочеться своё приложение, которое по нажатии клавиши на экране выполняет нужные вам действия ;)

В этой статье опишу как работать с com портом на языке Си++.

Решение простое, но почемуто рабочий пример найден был не сразу. За сим сохраняю его тут.

Используем стандартные системные иконки в Qt4/5

При написании любого GUI приложения вам понадобиться некий набор иконок. И если у вас есть где их взять и вкус чтобы выбрать нужные, то всё хорошо! Но к сожалению мой меня часто подводит. А вот к стандартным системным иконкам не придерёшься, да и пользователям привычнее видеть такиеже иконки как и в стандартных приложениях.

Слава богу Qt позволяет использовать стандартный набор системных иконок.

Для этого инклудим класс QStyle:

Пишем первый скрипт greasemonkey

greasemonkey - очень мощный инструмент для пользователей, желающих изменить\добавить свой скрипт на сайт.

Всё довольно просто. Ставим дополнение для вашего браузера (надеюсь с этим проблем не возникнет) и создаём новый скрипт.
Кликаем по стрелочке рядом с иконкой обезьяны:

Выбираем пункт меню "Создать скрипт".
В появившемся окне Название скрипта, описание и страници для которых он будет работать и пространство имён (namespase).

Запретить скролл при помощи JavaScript

Недавно понадобилось сделать, чтобы при нажатии кнопок вниз\вверх сайт не прокручивался (они теперь выполняют другую функцию).

Сделать это довольно просто. Нужно просто ограничить набор кнопок на которые вообще както реагирует браузер..

Сделал так. Добавил обработчик нажатия кнопок и если это вних\вверх, то возвращаю false.

Вот при помощи jquery:

$(document).keydown(function (e) {
    if (e.keyCode == 40 || e.keyCode == 38) // запретить скролл
       return false
});

Выбираем случайную запись из базы данных django

Часто нужно получать случайную статьи или фото или пресрелиз из базы данных на сайе джанго.

К счастью разработчики позаботились и предоставили такую возможность программисту.

Делается это так.

Импортим модель. Например так:

from models import  Film

После этого можно выбирать записи. В представлении данного урла пишем нечто вроде этого:

random_film = Film.objects.order_by('?')[:4]

Этим мы выберем 4 случайных объекта типа Film.

Две строки и всё готово..

"Hello world" на Java! Начинаем писать в Eclipse

Для начала откроем Eclipse. Вы увидите примерно такое окно:

Для создания нового проекта Java кликните File - New - Java Project или же по иконке прямо под меню "Файл".
В открывшемся окне введите название проекта (Project Name) и кликните "Финиш" (Finish).