Search
Write a publication
Pull to refresh
121
0
Сергій Олендаренко @GooRoo

User

Send message

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

Reading time6 min
Views27K
В PyQt4 есть два вида диалогов: предопределенные и пользовательские.

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


QInputDialog

QInputDialog представляет простой диалог для получения единственного значения от пользователя. Значение может быть строкой, числом или пунктом из списка.
Читать дальше →

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

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

Самое интересное, что основателями одного из таких стартапов стали двое бывших сотрудников Microsoft. Речь идёт о маленькой калифорнийской компании DocVerse, первое упоминание о которой просочилась в прессу.
Читать дальше →

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

Reading time11 min
Views43K
В мире ПО существует огромное количество программ, забытых своими разработчиками. Хорошо, когда уже есть хорошая альтернатива. А если ее нет? В программе может катастрофически не хватать каких-то мелочей, некоторые досадные ошибки могут годами доставлять массу неудобств пользователям, а на новых версиях ОС программа и вовсе может отказаться работать. Далеко не всегда имеются исходные коды, чтобы привести программу в порядок. Если программа простая — не составит труда за короткий срок создать альтернативу. Но если программа большая и сложная, что же делать в таком случае? Не всегда рационально тратить время и деньги на разработку полного аналога, ведь расширить в разумных рамках функциональность и исправить большинство ошибок можно уже в готовом исполняемом файле.
В этой статье будут продемонстрированы методики модификации исполняемых файлов на примере расширения функциональности легендарной игры Age of Empires II (стратегия реального времени).
Читать дальше →

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

Reading time2 min
Views3.3K
На Хабре полно статей, с примерами на разных языках, о том, как правильно обрабатывать числительные и склонять при этом существительные, к ним относящиеся. Посмотрим, как эта задача
решается в Qt

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

Reading time10 min
Views129K
Здравствуйте дорогие читатели. В данной статье мы рассмотрим различные потоковые модели, которые реализованы в современных ОС (preemptive, cooperative threads). Также кратко рассмотрим как потоки и средства синхронизации реализованы в Win32 API и Posix Threads. Хотя на Хабре больше популярны скриптовые языки, однако основы — должны знать все ;)
Далее

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

Reading time6 min
Views64K
Вы написали программу на Qt и хотите перевести ее на другие языки, что бы сделать ее полезной для людей в других странах. Сделать это не просто, а очень просто. Для этого нам потребуется сделать всего три простых шага.
Читать дальше →

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

Reading time2 min
Views1.2K
image Еще с момента поступления в университет я был постоянно в раздумьях о том, что дел-то как-то много стало, и в голове держать их все вместе сложно, поэтому пора уж заняться планированием. Было перепробовано множество способов, начиная с ежедневника и аутлука, заканчивая всевозможными сайтами. И чаще всего, тот или иной инструмент не устраивал по ряду причин.
Читать дальше →

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

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

Предыдущие статьи:
Типы данных, паттернг матчинг и функции
Основы
Читать дальше →

CommentsFx

Reading time2 min
Views566


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

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

Подробности

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

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

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

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

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

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

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

Reading time3 min
Views30K
Эта статья задумывалась как наглядное сравнение двух схожих библиотек для создания парсеров: Boost Spirit для C++ и Parsec для Haskell. Потом я решил, что лучше разбить статью на 3 части. В первой части я расскажу как написать контекстно-свободную грамматику для описания содержимого ini-файла.
Читать дальше →

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

Reading time5 min
Views9.9K
Сегодня, как обещал, вкратце расскажу про пользовательские типы данных, определения функций и сопоставления с образцом.

Предыдущие статьи:
Основы
Последующие статьи:
Классы типов, монады
Читать дальше →

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

Reading time1 min
Views2K
То, чего мы так долго ждали, свершилось. Beta версия web MDC готова к проверке на вшивость. Web MDC это ориентированный на web мультипротокольный IM клиент с поддержкой хранения истории общения на сервере.


Читать дальше

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

Reading time2 min
Views7.1K
Судя по количеству плюсов к посту про использование google apps в качестве сервера jabber эта тема волнует хабрапользователей. Поэтому я решил внести свои пять копеек.

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

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

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


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

Вступление

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

Основы
Типы данных, паттерн матчинг и функции
Классы типов, монады

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

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

NB: Статья — краткое введение, покрыть все ньюансы программирования под CUDA в одной статье вряд ли возможно :-)
Читаем дальше CUDA crash course

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

Reading time2 min
Views3.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 обещает ещё много интересного. Но это уже совсем другая история.

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

Reading time1 min
Views2.8K
image
Мы запустили небольшой сервис. Смысл которого можно объяснить как вишлист и онлайн-копилка в одном флаконе. Например, создал список своих желаний, разослал друзьям и тут же накопил на них и вывел деньги. Проект совсем новый, могут быть некоторые баги, о которых я был бы рад услышать прямо в этом топике. Спасибо!

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

UPD. У каждого зарегистрированного есть свои 5 инвайтов!

Сравнение средств проектирования

Reading time3 min
Views92K

Учёба в универе и работа наложили свой отпечаток, оказалось, что нужно не только «кодить», но и уметь проектировать те или иные «задачи». Знакомство моё с UML началось с State Machine(конечный автомат, если по русски и приближённо).
Читать дальше →
12 ...
10

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity