Как стать автором
Обновить
121
0
Сергій Олендаренко @GooRoo

Пользователь

Отправить сообщение

Работа с базами данных в Qt в многопоточном окружении

Время на прочтение9 мин
Количество просмотров20K
Все кто разрабатывают приложения на Qt, рано или поздно сталкиваются с работой с БД в многопоточном окружении. И если невнимательно читать Ассистант, то можно натолкнуться на одни очень интересные грабли.
А в чем грабли?
Всего голосов 29: ↑27 и ↓2+25
Комментарии23

PyQt4 — Диалоговые окна

Время на прочтение6 мин
Количество просмотров27K
В PyQt4 есть два вида диалогов: предопределенные и пользовательские.

Предопределенные диалоги


QInputDialog

QInputDialog представляет простой диалог для получения единственного значения от пользователя. Значение может быть строкой, числом или пунктом из списка.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии4

Бывшие сотрудники Microsoft «гуглифицировали» MS Office

Время на прочтение1 мин
Количество просмотров640
Более десяти лет назад Microsoft выиграл войну офисных пакетов у WordPerfect, и с тех пор в программе Microsoft Office не было практически никаких улучшений функциональности. То же самое на рынке браузеров: IE остановился в развитии на многие годы, пока не появился достойный конкурент в лице Mozilla. Поэтому мы можем только приветствовать появление стартапов, которые пытаются создать офисный пакет следующего поколения на костях Microsoft Office.

Самое интересное, что основателями одного из таких стартапов стали двое бывших сотрудников Microsoft. Речь идёт о маленькой калифорнийской компании DocVerse, первое упоминание о которой просочилась в прессу.
Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии10

Расширение функциональности готовых программ

Время на прочтение11 мин
Количество просмотров42K
В мире ПО существует огромное количество программ, забытых своими разработчиками. Хорошо, когда уже есть хорошая альтернатива. А если ее нет? В программе может катастрофически не хватать каких-то мелочей, некоторые досадные ошибки могут годами доставлять массу неудобств пользователям, а на новых версиях ОС программа и вовсе может отказаться работать. Далеко не всегда имеются исходные коды, чтобы привести программу в порядок. Если программа простая — не составит труда за короткий срок создать альтернативу. Но если программа большая и сложная, что же делать в таком случае? Не всегда рационально тратить время и деньги на разработку полного аналога, ведь расширить в разумных рамках функциональность и исправить большинство ошибок можно уже в готовом исполняемом файле.
В этой статье будут продемонстрированы методики модификации исполняемых файлов на примере расширения функциональности легендарной игры Age of Empires II (стратегия реального времени).
Читать дальше →
Всего голосов 204: ↑203 и ↓1+202
Комментарии121

Локализация и числительные

Время на прочтение2 мин
Количество просмотров3.2K
На Хабре полно статей, с примерами на разных языках, о том, как правильно обрабатывать числительные и склонять при этом существительные, к ним относящиеся. Посмотрим, как эта задача
решается в Qt
Всего голосов 29: ↑25 и ↓4+21
Комментарии22

Процессы и потоки in-depth. Обзор различных потоковых моделей

Время на прочтение10 мин
Количество просмотров121K
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее
Всего голосов 64: ↑62 и ↓2+60
Комментарии45

Qt — трудности перевода

Время на прочтение6 мин
Количество просмотров62K
Вы написали программу на Qt и хотите перевести ее на другие языки, что бы сделать ее полезной для людей в других странах. Сделать это не просто, а очень просто. Для этого нам потребуется сделать всего три простых шага.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии6

Планарий. Легкое управление делами

Время на прочтение2 мин
Количество просмотров1.2K
image Еще с момента поступления в университет я был постоянно в раздумьях о том, что дел-то как-то много стало, и в голове держать их все вместе сложно, поэтому пора уж заняться планированием. Было перепробовано множество способов, начиная с ежедневника и аутлука, заканчивая всевозможными сайтами. И чаще всего, тот или иной инструмент не устраивал по ряду причин.
Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии194

Классы типов, монады

Время на прочтение15 мин
Количество просмотров13K
Темой сегодняшней статьи будут классы типов, некоторые стандартные из них, синтаксический сахар с их использованием и класс монад.
Классы привносят динамический полиморфизм, как и интерфейсы в традиционных императивных языках, а также могут быть использованы как замены отсутствующей в Хаскеле перегрузки функций.
Я расскажу, как определить класс типов, его экземпляры (instance) и как это всё устроено внутри.

Предыдущие статьи:
Типы данных, паттернг матчинг и функции
Основы
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии24

CommentsFx

Время на прочтение2 мин
Количество просмотров551


Приветствую всех читателей Хабрахабра.

Сегодня я приготовил вам скрипт, с помощью которого вы можете обеспечить себе удобную навигацию по комментариям. Кликните по картинке, чтобы скачать скрипт для Greasemonkey (если не хотите кликать на картинку — нажмите на эту ссылку), а я вам пока расскажу подробности об этой штуковине.

Подробности
Всего голосов 53: ↑48 и ↓5+43
Комментарии26

Создаём парсер для ini-файлов на C++

Время на прочтение7 мин
Количество просмотров39K
В данной статье я расскажу как написать свой парсер ini-файлов на C++. За основу возьмём контекстно-свободную грамматику, построенную в моей предыдущей статье. Для построения парсера будет использоваться библиотека Boost Spirit, которая позволяет строить свои собственные парсеры комбинируя готовые примитивные парсеры при помощи парсерных комбинаторов.

Важно: в данной статье предполагается, что читатель знаком с основами C++ (в том числе будет активно использоваться STL). Если вы не очень в себе уверены, то я советую сначала прочитать пару статей для новичков по С++ и по STL.
Читать дальше →
Всего голосов 68: ↑58 и ↓10+48
Комментарии43

Создаём парсер для ini-файлов на Haskell

Время на прочтение8 мин
Количество просмотров8.9K
В данной статье я расскажу как написать свой парсер ini-файлов на Haskell. За основу возьму контекстно-свободную грамматику, построенную в моей предыдущей статье. Для построения парсера будет использоваться библиотека Parsec, которая позволяет строить свои собственные парсеры комбинируя готовые примитивные парсеры при помощи парсерных комбинаторов.

Важно: в данной статье предполагается, что читатель знаком с основами Haskell. Если это не так, то я советую сначала прочитать пару статей для новичков (их можно найти в том числе и на Хабре).
Читать дальше →
Всего голосов 39: ↑30 и ↓9+21
Комментарии15

Создаём парсер для ini-файлов. Теория

Время на прочтение3 мин
Количество просмотров30K
Эта статья задумывалась как наглядное сравнение двух схожих библиотек для создания парсеров: Boost Spirit для C++ и Parsec для Haskell. Потом я решил, что лучше разбить статью на 3 части. В первой части я расскажу как написать контекстно-свободную грамматику для описания содержимого ini-файла.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии25

Типы данных, паттернг матчинг и функции

Время на прочтение5 мин
Количество просмотров9.9K
Сегодня, как обещал, вкратце расскажу про пользовательские типы данных, определения функций и сопоставления с образцом.

Предыдущие статьи:
Основы
Последующие статьи:
Классы типов, монады
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии9

MDC теперь доступен и через web.

Время на прочтение1 мин
Количество просмотров2K
То, чего мы так долго ждали, свершилось. Beta версия web MDC готова к проверке на вшивость. Web MDC это ориентированный на web мультипротокольный IM клиент с поддержкой хранения истории общения на сервере.


Читать дальше
Всего голосов 37: ↑31 и ↓6+25
Комментарии83

Избавляемся от дополнительных настроек jabber-клиента в Google apps

Время на прочтение2 мин
Количество просмотров7K
Судя по количеству плюсов к посту про использование google apps в качестве сервера jabber эта тема волнует хабрапользователей. Поэтому я решил внести свои пять копеек.

В документации гугла сказано, что при настройке кастомного клиента нужно вводить в свойствах соединения сервер talk.google.com и порт. Это очень не удобно, так как надо всё время помнить эти настройки, да и затрудняет настройку клиента вашими родственниками/знакомыми, которых пугает только одно слово порт :) Почему-то в документации к google apps этого не сказано, но прописать адрес и порт, которые должны быть использовать при подключении, можно в srv записях dns, да именно там, где вы указаывали адреса для федеративных сетей.

Добавляем запись типа:

_xmpp-client._tcp.yourdomain.com. IN SRV 5 0 5222 talk.google.com.


И вауля, клиент коннектится безо всяких танцев и дополнительных настроек.
некоторые технические замечания под катом
Всего голосов 51: ↑49 и ↓2+47
Комментарии67

Вступление

Время на прочтение1 мин
Количество просмотров3.8K
Haskell достаточно необычный язык. Но, несмотря на немалое количество статей по нему, нередко можно столкнуться с мнением, что всё это помогает лишь в синтетических примерах. И действительно, на простых примерах всё выглядит просто, но куда сложнее представить себе хотя бы небольшую программу в таком стиле, а статьи зачастую рассматривают особенности языка. Поэтому я захотел написать серию статей, в течение которых мы изучим возможности языка и попробуем написать простой чат. Почему именно чат? Потому что там есть место и многопоточности, и GUI клиента, и БД сервера. Хотя я с удовольствием послушал бы и ваши предложения, так как мне самому интересно, насколько этот язык удобен для решения более сложных задач.
Так что, если вас это заинтересует, то я рискну.

Основы
Типы данных, паттерн матчинг и функции
Классы типов, монады
Всего голосов 68: ↑63 и ↓5+58
Комментарии54

CUDA: с места в карьер

Время на прочтение5 мин
Количество просмотров29K
Многие видели моё введение в современные технологии высокопроизводительных вычислений и оценки производительности, теперь я продолжу тему более подробным рассказом о технологии CUDA.
Для тех кто не смотрел предыдущие серии: CUDA позволяет писать и запускать на видеокартах nVidia(8xxx и выше) программы написанные на С++ со специальными расширениями. На правильных задачах достигается значительное превосходство по производительности на $ по сравнению с обычными CPU.
Достижимая производительность — 1 трлн и выше операций в секунду на GTX295.

NB: Статья — краткое введение, покрыть все ньюансы программирования под CUDA в одной статье вряд ли возможно :-)
Читаем дальше CUDA crash course
Всего голосов 39: ↑37 и ↓2+35
Комментарии26

Второе рождение Chat.Ru

Время на прочтение2 мин
Количество просмотров3K
Chat.Ru
В 1990-х Chat.Ru был одним из самых популярных и посещаемых сайтов в рунете. Но в какой-то момент он прекратил развиваться, и в последние годы почти не посещался.

Спустя почти десять лет забвения всё неожиданно изменилось. От предыдущего сайта осталась только ссылка на главной странице. Chat.Ru сделал первый шаг к возвращению статуса самого популярного сервиса для общения в Рунете.

Да, это всё так же чат, но чат нового поколения. Жизнь не стоит на месте, и за десять лет технологии ушли далеко вперёд. Нынешний Chat.Ru основывается на XMPP (он же Jabber), о котором все наверняка слышали.

Не нравится веб-чат? Используйте любой XMPP-клиент: Pidgin, Miranda, QIP Infinum… Зарегистрировавшись на Chat.Ru, вы получите соответствующий Jabber-идентификатор и сможете не только участвовать в обсуждениях на самом Chat.Ru, но и переписываться со своими знакомыми, которые используют Google Talk, LJ Talk или другой аналогичный сервис. С другой стороны, вы можете беседовать на Chat.Ru, используя уже существующий идентификатор — например, в том же LiveJournal.

Изменилась сама концепция чата. Если раньше чат был отдельной страницей отдельного сайта, то теперь вы можете обсудить любую страницу, не покидая её. Например, давайте обсудим эту страницу! Конечно, вы скажете, что здесь и так есть комментарии, — но ведь комментарии совсем не то же самое, что живое, real time общение. К тому же далеко не на всех сайтах возможность оставлять отзывы сделана действительно удобно. А что, если вам захочется обсудить какую-то страницу, на которой вообще не предусмотрено комментирование? Тогда и приходит на помощь новый Chat.Ru.

Чтобы обсудить любую страницу в сети, достаточно набрать «chat.ru/» перед её адресом, — и на странице появится чат, в котором будут находиться все, кто пожелал принять участие в беседе. Вы сможете общаться с людьми, которые посещают те же сайты, что и вы, а возможно, даже и с администраторами или владельцами этих сайтов. Кроме того, отправьте ссылку знакомому или, например, опубликуйте её в своём блоге для привлечения новых людей к обсуждению!

Это только начало. Chat.Ru обещает ещё много интересного. Но это уже совсем другая история.
Всего голосов 130: ↑115 и ↓15+100
Комментарии197

Mydreamis — сервис исполнения желаний

Время на прочтение1 мин
Количество просмотров2.1K
image
Мы запустили небольшой сервис. Смысл которого можно объяснить как вишлист и онлайн-копилка в одном флаконе. Например, создал список своих желаний, разослал друзьям и тут же накопил на них и вывел деньги. Проект совсем новый, могут быть некоторые баги, о которых я был бы рад услышать прямо в этом топике. Спасибо!

В комментариях можете указывать свои e-mail и я разошлю инвайты.

UPD. У каждого зарегистрированного есть свои 5 инвайтов!
Всего голосов 79: ↑48 и ↓31+17
Комментарии370

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Дата рождения
Зарегистрирован
Активность