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

User

Send message

Изготовление Wi-Fi антенны

Reading time2 min
Views207K
Несколько месяцев назад передо мной и моими коллегами по работе встала задача, связать точку доступа из отдалённого дома и тачку на работе сеткой, да чтобы хорошо работало и пакеты не терялись. Последовав старой поговорке «На фиг медь!», было решено соединяться воздухом. Для чего была в складчину приобретена довольна дешёвая WiFi карточка. Но вот незадача, дом стоит не впритык, хоть и не километр, но всё равно не рядом, но в прямой видимости, где-то метров 150. Связь конечно была, но всё равно процент был маленький. Полезли в инет на сайт местного магазина, посмотрели цены на антенны… тут пришла жаба :) Со словами, «Да ну на фиг, я и сам так могу» я положил начало доооолгой, но занимательной и увлекательной работе :)
подробности

Обзор e-Learning трекеров или Век живи — век учись!

Reading time3 min
Views30K
Все чаще можно услышать про универсальных трекеров-монстров типа ThePirateBay.org, torrents.ru или упоминания трекеров музыкальной либо игровой тематики. Но помимо них давно существуют торрент-трекеры обучающей направленности, о которых мало что известно рядовому пользователю. В основном, это закрытые сообщества образованных людей с регистрацией по приглашениям, которые обмениваются обучающими материалами, будь-то электронные книги, обучающее видео, CBT (computer based trainings), аудио-книги, презентации с конференций или софт для обучения. Преобладающая часть материалов связана с ИТ-технологиями и поэтому будет особенно полезна ИТ-специалистам, от студента, изучающего Linux, PHP или C# и до гуру, который готовится к сдаче CCIE. Также присутствует материал, посвященный изучению иностранных языков, психологии, саморазвитию, соблазнению, развитию бизнес-навыков. Если ты подумываешь сдать на CCNA, MCSE, RHCE, CISSP, Network+, PMP, IELTS/TOEFL и так далее — то здесь можно найти все необходимое и даже больше. Под катом находится обзор англоязычных ресурсов обучающей направленности.
Поехали!

Приватные слоты в паттерне Pimpl от Qt

Reading time10 min
Views7.8K

Вступление.


Недавно я писал по поводу реализации паттерна Pimpl в библиотеке Qt и призывал людей следовать такому подходу при разработке их собственных бибиотек. Теперь я хочу поговорить о таком понятии, как приватные слоты и тем самым продолжить эту тему. Заключительной статьей на эту тему будет реализация механизма Implicit Sharing и shared d-pointer.

Что это и зачем это нужно.


Приватные слоты — это механизм дополняющий функционал d-указателей. Он позволяет реализовать слоты для приватного класса, даже если он не является наследником от QObject (обычно он им и не является), но для этого публичный класс должен быть наследником от QObject. Тоесть по факту создается некий приватный слот в публичном классе и он непосредственно дергает нужный метод приватного класса.
Зачем это нужно? Ну рассмотрим на примере. Есть класс QAbstractScrollArea. Он просто отображает некий виджет (viewport) и обеспечивает прокрутку. Прокрутка обеспечивается с помощью двух экземпляров класса QScrollBar. Сами эти скролбары он хранит в приватном классе. Теперь проблемма: как подключить сигнал от скроллбара об изменение его позиции с классом QAbstractScrollAreaPrivate, ведь он не является QObject'ом? Сделать его наследником от QObject — лучше не делайте это :-). Можно сделать слот в публичном классе и повесить на него, то в таком случае это не очень красиво — так как наружу выходят слоты от внутренней реализации. Вот ту Qt-шниками был придуман достаточно разумный и элегантный подход — приватные слоты.

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

Что такое Pimpl по версии Qt, и с чем его едят!

Reading time12 min
Views40K

Вступление.



Часто в документации от Qt встречается термин Pimpl. Кроме того, те кто хоть немного копался в исходном коде Qt часто видел такие макросы как: Q_DECLARE_PRIVATE, Q_D. А также встречал так называемые приватные заголовочные файлы, название которых заканчивается на "_p.h".
В этой статье я попробую приоткрыть ширму за всей это структурой.

Pimpl, что это?


Pimpl — Pointer to private implementation. Это одно из названий паттерна программирования. Еще его называют чеширским котом — «Cheshire Cat» (это название мне больше нравится). В чем суть этого паттерна? Основная идея этого паттерна — это вынести все приватные члены класса и, в не которых случаях, функционала в приватный класс.
Отсюда название «чеширский кот» — видно только улыбку, а все остальное остается невидимым, но оно несомненно есть :-) Кто не помнит этого замечательного кота, может обратится к первоисточнику, к книге Льюиса Кэрролла «Алиса в стране чудес». Очень интересная книга, особенно если читать в оригинале.
Что это дает?
Читать дальше →

Десять смертных грехов в оценке трудоёмкости разработки программного обеспечения

Reading time6 min
Views53K

Введение


В этом топике я хочу представить вам, дорогие читатели, пересказ вебинара от человека, чьё имя не нуждается в представлении. Для того, чтобы изложить часовой вебинар в виде небольшого топика, мне пришлось значительно ужать комментарии автора, поэтому я сознательно не помечаю топик как «перевод». В этот раз Стив МакКоннелл решил поделиться с нами своим опытом в виде коротких тезисов, в которых он отражает самые страшные ошибки при оценке трудоёмкости разработки программного обеспечения. В 1998 году читатели журнала Software Development назвали Стива одним из самых влиятельных людей в индустрии разработки программного обеспечения на равне с Биллом Гейтсом и Линусом Торвальдсом. Стив — автор книги «Software Estimation. Demystifying The Black Art» — одной из самых популярных книг в области оценки трудоёмкости разработки ПО. Надо признаться, что вебинар был проведён относительно давно (июнь 2009 года), но информация, представленная там, совсем не устарела. Сам топик будет построен следующим образом. Заголовки будут достаточно точно переведены из презентации, которую показывал Стив, а в остальном я постараюсь отразить только основные мысли, чтобы не перегружать топик. Если кто-то посчитает, что ту или иную мысль я излагаю неправильно — милости прошу в комментарии, можно будет меня поправить.

Итак, поехали...

Хабра-редактор комментариев ноль.один

Reading time4 min
Views813
Прочитал вот это и пришла идея сделать нечто подобное для оперы. Оно, конечно, не блистает теми же возможностями, не так удобен, но и делалось для себя, сам попользовался, предлагаю на всеобщее обозрение, может, кому и пригодится, может, кто доведет до ума…
дальше обьяснение и код

Отключаем Supernode в Skype

Reading time1 min
Views47K
Как известно, Skype использует p2p сеть для обмена данными. Если у Вас достаточно мощный компьютер, то Skype может решить сделать Вас Супернодом и, как следствие, скайп-трафик других участников сети будет идти через Вас.
Начиная с версии 3.0 программы, появилась возможность отключить такую «фичу», что бы чужой трафик скайпа не шёл через Вас.
Для этого необходимо залезть в реестр и создать там ветку:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Skype\Phone]
"DisableSupernode"=dword:00000001

После перезагрузки системы новая настройка вступит в силу.
Для удобства можете использовать .reg-файл, который сам добавит необходимые параметры в реестр.

Дополнительная информация:
1. Guide for Network Administrator’s (.pdf) — подробное описание этой и некоторых других настроек реестра для скайпа.
2. Шаблон групповой политики (.adm), который позволяет более гибко настраивать параметры скайпа.
3. Отключение Supernode в MacOS-версии

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

Reading time5 min
Views37K
Этот топик является продолжением статьи о средствах проектирования.
В данной части я постараюсь рассмотреть не менее достойных представителей данной «отрасли».
Итак следующая тройка выходит на старт!
Читать дальше →

Создание смазывания фона под окном в Windows

Reading time2 min
Views4K
Буквально вчера в блогах разработчиков Qt был опубликован топик, в котором описывалось как можно создать эффект размытия фона под окном приложения в Windows Vista и Windows 7.

Под катом его перевод

Хабраштуки, Inc

Reading time2 min
Views723
Наш небольшой китайский заводик по производству спичечных коробков, расположенный в провинции Анхуэй, решил захватить еще и перспективный рынок Хабрахабра. Так как отдельного бюджета на лабараторные исследования и создание прототипов в нашей компании никогда не было и не ожидается, мы решили использовать уже готовый продукт (не работающий на текущей версии Хабрахабра), чуть-чуть его припудрить и выдать за свой. Тем более, что в отличие от выделения авторских и собственных комментариев, автодополнения тегов и подобных вещей, разработчики забыли сделать или не захотели сделать легкую вставку тегов в комментарии, а некогда автор прошлых таких штук, va1en0k в настоящее время впал в незаслуженную немилость хабралюда, что привело к не поддающемуся логическому объяснению его исчезновению.

Рис 2. Как работает Супер Увеличитель

Именно поэтому наш маленький, но очень амбициозный заводик после спарывания ярлыков и наклеек оригинального производителя, а также решения одной серьезной проблемы (в связи с этим благодарим dinamyte, который отказался даже от оплаты рисом своей неоценимой помощи), начал выпускать новый продукт.

Описание и ссылки на изделие №4 под хабракатом ↓
Читать дальше →

Я использую Brain Fuck Scheduler!

Reading time1 min
Views5.4K


pic related

Кон Коливаc (автор знаменитых когда-то ck ядер) выпустил свой шедулер для десктопных систем под управлением linux. При этом он руководствовался не супер-честностью и мифической расширяемостью, а производительностью своего рабочего компьютера.

Обыгранная на картинке ситуация — беда многих опенсорсных программистов — они пишут фреймворки и общие-системы-всего и не желают исправлять очевидные недостатки, просто потому, что наличие этих недостатков объясняется стройностью их системы. Линус — не исключение.

Надеюсь, когда-нибудь BFS включат в ядро и его можно будет включить просто из menuconfig'a.

PS А полноэкранное видео на youtube действительно больше не тормозит! Посмотрел для теста несколько HQ трейлеров.

ck.kolivas.org/patches/bfs/bfs-faq.txt
ck.kolivas.org/patches/bfs

Создание инсталлятора с помощью WiX

Reading time9 min
Views104K
Для начала — что такое WiX? Технология WiX (Windows Installer XML) представляет собой набор инструментов и спецификаций упрощающих процесс создания дистрибутивов на базе MSI (Microsoft Installer). Если объяснять проще то это обертка вокруг MSI с человеческим лицом.

На мой взгляд изучать проще всего на простых примерах. В данной статье я приведу пример простейшего инсталлятора.
Читать дальше →

Как я учил английский

Reading time3 min
Views39K
Добрый день!

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

Онлайн чат для сайта через джаббер (GTalk)

Reading time2 min
Views41K
image
Великолепная веб-программа позволяющая разместить на вашем сайте панель с чатом для ваших клиентов сообщения которого будут прилетать в ваш джаббер клиент.
Другими словами это способ организовать общения с посетителями сайта.

Написать подробную инструкцию меня сподвигнула обзорная заметка на сайте dikiy.com
Под катом так-сказать пошаговая инструкция как запустить онлайн чат на своем сайте
Читать дальше →

Коммунити-сборки Mandriva Linux

Reading time2 min
Views1.6K
Официально Mandriva Linux представлена для свободного скачивания только в редакциях Free, One KDE4 и One Gnome. Но существует также ряд сборок, которые относятся к «неофициальным» и выполнены различными сообществами Mandriva Linux. Давайте рассмотрим, какие сборки любители дистрибутива могут еще попробовать. Сразу скажу, что неофициальные сборки могут иметь больше ошибок, чем официальные, но это нивелируется получаемыми возможностями.
Читать дальше →

Самые глупые вещи, которые я сделал будучи программистом

Reading time2 min
Views8.7K
Оригинальное название статьи: «The * stupidest things I’ve done in my programming job», поэтому перевод названия статьи не очень точен, однако то, что автор имел ввиду под "*" мы опустим — мы ведь не знаем наверняка :)

Я больше не стыжусь своих грешков, так что — вперед:

1. ORM


Глупость

Создал собственную ORM (Object Relational Mapping) библиотеку

Следствие

Неразбериха в проекте после двух лет поддержки, в следствие хаков-обходов моей ORM библиотеки для запуска прямых SQL запросов

Что я должен был сделать

Использовать Hibernate, iBATIS, Cayenne или нечто подобное.

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

Установка Linux из iso-образа под Windows

Reading time2 min
Views161K
Эта статья поможет Вам установить любой дистрибутив Linux из под Windows машины прямо из iso-образа на жестком диске. Статья может помочь владельцам нетбуков, а также тем, кто по каким-либо причинам не может воспользоваться обычным установочным диском.
Читать дальше →

Алгоритмы на графах — Часть 1: Поиск в глубину и проблема взаимоблокировок

Reading time6 min
Views67K
Недавно на Хабре была статья, посвященная алгоритмам на графах. С позволения автора, мой первый хабратопик продолжит цикл.

Хотелось бы осветить вопросы применения некоторых алгоритмов, для решения задач программирования.
Достаточно жизненный пример, с которым сталкивался не один разработчик — это deadlock. По сути deadlock – это взаимоблокировка, в результате которой система, или какие-то отдельные процессы начинают конкурировать за один ресурс.
В жизни такие ситуации встречаются, например, когда два человека желают пропустить друг друга на входе, предположим, в аудиторию. Однако после 3-4 фраз «только после вас!», кто-нибудь всё же пройдет первым.
На уровне программного обеспечения всё сложнее, пока программы не способны думать, машинный аналог фразы «только после вас!» будет повторяться вплоть до перезагрузки.
Как исполняющая система может повлиять на этот процесс? Вот тут нам на помощь и приходят алгоритмы на графах.
Для начала определимся, что же будет элементами нашего графа, и как его составить.
Читать дальше →

Алгоритмы на графах — Часть 0: Базовые понятия

Reading time5 min
Views264K

Вступление


Как оказалось тема алгоритмов интересна Хабра-сообществу. Поэтому я как и обещал, начну серию обзоров «классических» алгоритмов на графах.
Так как публика на Хабре разная, а тема интересна многим, я должен начать с нулевой части. В этой части я расскажу что такое граф, как он представлен в компьютере и зачем он используется. Заранее прошу прощения у тех кто это все уже прекрасно знает, но для того чтобы объяснять алгоритмы на графах, нужно сначала объяснить что такое граф. Без этого никак.

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

Ribbon? Это просто! или Работаем с каскадными таблицами стилей (CSS) в Qt

Reading time6 min
Views24K
Некоторое время назад в одном из обсуждений я упомянул о том, что контрол «a-la ribbon» (который был использован в MS Office 2007 для организации меню) легко и непринуждённо реализуется средствами Qt.

Я не хочу спорить о том, удобен ribbon или нет (сам я больше склоняюсь ко второму мнению). Но на его примере можно отлично раскрыть возможности каскадных таблиц стилей для Qt (которые были представлены в Qt 4.2), чем я и займусь. Сразу прошу прощения: я не дизайнер, поэтому с точки зрения эстетики мой QRibbon скорее всего не дотянет до своего собрата от МС, но дизайнеры в МС, полагаю, в своей области превосходят меня на 2 головы, да и человеко-часов, думаю, там было затрачено в слегка побольше. Я же всего лишь демонстрирую общий принцип и базовые возможности.

Так как я сейчас изучаю язык Python, то для демонстрации был выбран именно он, но для C++ всё делается абсолютно так же. Заранее прошу прощения: Python я только-только изучаю, поэтому код может быть полон корявостей, так что прошу больно не пинать :)

Итак, начнём!
Читать дальше →

Information

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