Как стать автором
Обновить
0
0
koskokos @kkk777kkk

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

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

Yet another factory

Время на прочтение3 мин
Количество просмотров2.9K
В текущем проекте стала часто возникать необходимость конструирования множеств разнообразных объектов по каким-то идентификаторам. Была написана одна фабрика для какого-то множества, другая. Потом пришло понимание, что мы делаем одно и то же и нужно какое-то повторяемое решение.
Проект базируется на Qt, который, как известно, имеет развитые механизмы работы с метаданными. Тем не менее конструирование объектов через QMetaObject нас не удовлетворяло по двум причинам: во-первых конструируемые объекты должны быть QObject'ами, а во-вторых при конструировании мы получаем указатель на QObject, который так или иначе придется преобразовывать, что чисто эстетически некрасиво.

Проанализировав круг задач пришли к выводу, что мы хотим иметь статическую фабрику в базовых классах некоторых множеств наследников. Т.е. писать что-то в таком духе:

BaseClass * instance = BaseClass::factory()->build("derived_name");


При этом, мы не хотим писать каждый раз много однообразного служебного кода. Да, мы ленивые.
И конечно же мы не хотим чтобы фабрика или базовый класс знали о всех наследниках.
Как нам это удалось...
Всего голосов 23: ↑20 и ↓3+17
Комментарии27

Как определить язык по виду иероглифов/закорючек?

Время на прочтение1 мин
Количество просмотров191K
Вот, задался таким вопросом… С помощью гугл транслейта и такой-то матери, родилась такая блок-схемка:



картинка кликабельна

Кому нужен сорец (в .docx): тут
Всего голосов 341: ↑329 и ↓12+317
Комментарии185

Как распознать кракозябры?

Время на прочтение1 мин
Количество просмотров429K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.
Всего голосов 429: ↑418 и ↓11+407
Комментарии64

Экспорт избранного Хабра в FB2

Время на прочтение2 мин
Количество просмотров9.5K
Ненавижу длинные вступления
И поэтому не буду писать их даже под спойлером.

  • Зачем?
    • Для оффлайнового просмотра на читалках.
  • Моя читалка не поддерживает FB2!
  • Хочу!
    1. Обзаводимся Python 2.7+. Тестировалось на Python 2.7.3.
    2. Ставим библиотеку BeautifulSoup 4. Вкратце варианты:
      • apt-get install python-beautifulsoup4
      • easy_install beautifulsoup4
      • pip install beautifulsoup4
      • Исходники и python setup.py install
    3. Качаем код из репозитория (прямая ссылка на последнюю версию).
    4. Открываем файл habrafav.py и в строке username = ... прописываем свой логин.
    5. python habrafav.py (или просто habrafav.py под Windows)
    6. Ждём. У меня с кэшированными данными экспорт ~150 статей занимает около 6 минут и 600 Мб оперативной памяти.
    7. Забираем habrahabr_favorites.fb2. Мой занимает примерно 62 Мб.

Читать дальше →
Всего голосов 88: ↑81 и ↓7+74
Комментарии50

Сравнительная таблица 39 одноплатных компьютеров

Время на прочтение1 мин
Количество просмотров58K
ongFiRE сделал сравнительную таблицу 39 одноплатных компьютеров в PDF!

В таблице присутствуют:
Raspberry Pi Model B, MK802, Mele A1000, Rhombus-Tech A10 EOMA-68, Gooseberry board, A13-OLinuXino, VIA APC, ,IA ARTiGO A1200, VIA ARTiGO A1150, BeagleBoard Rev. C4, BeagleBoard-xM, BeagleBone, PandaBoard, PandaBoard ES, Cotton Candy, CuBox, Hawkboard, IGEP v2, IGEP COM Proton, IGEP COM Module, Gumstix Overo series, Origen Board, ,Nimbus, Stratus, SheevaPlug dev kit (Basic), GuruPlug Standard, GuruPlug Display, DreamPlug, D2Plug, Trim-Slice series, Snowball, i.MX53 Quick Start Board, Pineriver H24/MiniX, Smallart UHOST, Genesi Efika MX Smarttop, Embest DevKit8600, Embest SBC8018, Embest SBC8530, Embest DevKit8500D
Читать дальше →
Всего голосов 73: ↑58 и ↓15+43
Комментарии30

Некоторые “подводные камни” разработки под Android

Время на прочтение9 мин
Количество просмотров69K
Недавно наша команда завершила разработку приложения под Android. В процессе разработки и затем поддержки мы столкнулись с некоторыми проблемами технического характера. Часть из них — это наши баги, которых мы могли бы избежать, другая часть — это совсем неочевидные особенности Android, которые либо плохо описаны в документации, либо не описаны вообще.

В этой статье я бы хотел рассмотреть несколько реальных багов, которые возникли у наших пользователей и рассказать о путях их решения.

Статья не претендует на подробный анализ потенциальных проблем, это просто рассказ из жизни одно реального Android приложения.

Читать дальше →
Всего голосов 57: ↑44 и ↓13+31
Комментарии46

Юнит-тестирование в Qt

Время на прочтение6 мин
Количество просмотров82K

gollum подметил что в тексте картинки есть ошибка

Салют, хабр! Как дела?

Хотел немного подучится чему-то. Искал на хабре в хабе «Qt Software» хоть какой-то пост про юнит-тестирование в Qt. Не нашел. Тут я расскажу базовые вещи про юнит-тестирование на Qt (не ожидайте могучего шаманства). На самом деле, юнит-тестить в Qt довольно просто. Что бы узнать как это делать, приглашаю читать дальше.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии21

Домашний медиа-сервер на основе Ubuntu Server 12.04 LTS

Время на прочтение8 мин
Количество просмотров356K
Привет, Хабр! В ходе обсуждения одной статьи про «идеальную» домашнюю сеть, возник спор, что лучше, аппаратный NAS или мини-компьютер с Linux дистрибутивом. Автор предлагал использовать аппаратный NAS, т. к. якобы он проще в администрировании, не требует знаний Linux, да и вообще NAS тихий. Но при этом, для просмотра на DLNA-телевизоре видео, который он не поддерживает, предлагал включать ноутбук с транскодирующим DLNA. Меня это, мягко говоря, удивило, т. к. в идеальной сети такого быть не должно. Поэтому хочу представить своё видение одного из ключевых компонентов домашней сети — централизованного хранилища данных, и основано оно будет на мини-ПК с ОС Ubuntu Server.
Читать дальше →
Всего голосов 112: ↑99 и ↓13+86
Комментарии76

Получение бесплатных ключей ЭЦП в Украине

Время на прочтение2 мин
Количество просмотров27K
Разумная идея по выдаче бесплатных ключей ЭЦП для сдачи электронных отчетов добралась и до Украины. Налоговая инспекция, как орган наиболее заинтересованный в сокращении бумажного документооборота, выступила с инициативой по выдаче ключей ЭЦП на бесплатной основе. Для этого по всей стране были открыты специальные центры сертификации ключей. 30-го мая первые такие центры заработали в Киеве, несколькими днями позже бесплатные ключи стали давать в регионах. Я прошел процедуру получения новенькой ЭЦП одним из первых. Представляю украинским предпринимателям-хабровчанам инструкцию к действиям. Сразу успокою тех, кто имеет патологический страх перед посещением налоговой: центр сертификации ключей хоть и приписан к налоговой инспекции, но находится с ней в разных зданиях, иногда даже в разных частях города.

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

Yet another cool story about bash prompt

Время на прочтение10 мин
Количество просмотров37K
Я программист. По крайней мере так написано в трудовой книжке. Почти всё своё рабочее время я провожу в консоли и текстовом редакторе. Мне очень нравится bash. Почти год я жил в zsh, прислушавшись к советам своих многочисленных коллег и знакомых, но в итоге я вернулся в bash и ни капельки об этом не жалею.



Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.

Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)

Я не напишу ничего оригинального и универсального решения я не приведу, но мне всегда нравилось читать конфиги и описания других людей, а если к ним были приложены интересные картинки, так я вообще перечитывал эти статьи несколько раз. Надеюсь, вам тоже будет интересно.
Читать дальше →
Всего голосов 175: ↑166 и ↓9+157
Комментарии143

DroidParts — библиотека для Android 8-in-1

Время на прочтение3 мин
Количество просмотров5.1K
Этой статьёй я открываю цикл, посвящённый разработке Android-приложений. Но не типичных для Google Play, написанных, очевидно, задней левой mНогой, а приложений корректных и элегантных. В этом деле нам поможет DroidParts — швейцарский нож Android-библиотек с 8 лезвиями:

  1. Dependency Injection: инициализация системных и собственных зависимостей;
  2. Object-Relational Mapping для SQLite: CRUD-операции «из коробки»;
  3. Поддержка Fragments, ActionBarSherlock;
  4. Простая (де-)сериализация JSON;
  5. AsyncTasks, IntentService с обработкой Exсeptions;
  6. RESTful HTTP client с поддержкой JSON;
  7. L.og без указания тега, конфигурируемый через AndroidManifest;
  8. Утилиты типа асинхронного http-загрузчика с кешированием, View- и Intent-помощников.


Буквально час назад* увидела свет первая версия библиотеки, но сначала…
Читать дальше →
Всего голосов 56: ↑47 и ↓9+38
Комментарии45

Домашняя беспроводная сеть для просмотра HD-видео: мечта или реальность?

Время на прочтение8 мин
Количество просмотров152K
Недавно я делал ремонт в квартире и решил проверить, есть ли шанс при текущем уровне развития беспроводного оборудования организовать в квартире полноценную скоростную беспроводную сеть. Изначально задача казалась нецелесообразной (в домашних условия вполне успешно можно использовать Ethernet, зачем заморачиваться с WiFi?), но убедив себя, что беспроводные технологии не стоят на месте, я решил устроить себе небольшое испытание. Одним из основных критериев успеха была возможность просмотра на плазменной панели HD-видео рипов объемом от 10 до 30 ГБ в условиях, когда между хранилищем файлов и проигрывающим устройством отсутствует проводная сеть. Кому любопытно, удалось ли это осуществить и каким образом, прошу под кат! ;)

Читать дальше →
Всего голосов 96: ↑84 и ↓12+72
Комментарии262

Ремонтируем монитор содой!

Время на прочтение2 мин
Количество просмотров151K
В последнее время, как мне кажется, пластиковые рудники на грани истощения. Чем больше и тяжелее монитор, тем меньше и тоньше подставка. Так 23'' монитор Samsung постигла участь одуванчика. Случайно наткнулся, в одной из местных news групп, на способ восстановления пластика при помощи пищевой соды. Под катом ремонт стойки монитора.
Далее...
Всего голосов 195: ↑192 и ↓3+189
Комментарии104

Использование радио модулей RF-2400 от Inhaos

Время на прочтение2 мин
Количество просмотров53K
На хабре недавно была опубликована статья про радио модули, на мой взгляд, в ней незаслужено обделены вниманием 2.4 GHz устройства с SPI интерфейсом. Привлекают они ценой в два-три бакса за штуку, и готовым протоколом общения, включающим адресацию, CRC, отсылку подтверждения и прочие удобства.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии31

Краткое описание библиотеки CImg

Время на прочтение4 мин
Количество просмотров19K
Доброго времени суток!

Все время очень сильно привлекала внимание обработка изображений (алгоритмы сжатия, фильтры и т.д.). Увы, сложилось так, что работа практически не связана ни с обработкой изображений, ни с программированием вообще. Тем не менее, интерес к любимому делу не уменьшился и поэтому хочу представить Вашему вниманию недавно открытую для себя библиотеку CImg.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии9

Интеграция Python и C++

Время на прочтение3 мин
Количество просмотров56K
Всем доброго времени суток!

Недавно при прототипировании одной из частей разрабатываемого нами продукта возникла одна интересная задача: нужно было проверить склейку Python и C++. Связано это было с тем, что основной код был написан на плюсах, и необходимо было подключить внешнюю библиотеку Websockets, написанную на Python (на тот момент не было соответствующей библиотеки на C++). Схема взаимодействия при такой задаче достаточно простая. Из C++ вызывается функция подключения к серверу (на python), в качестве параметра передается его адрес. Соответственно, при получении сообщния Python передавает его обратно в метод C++.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии13

Шпаргалки для тех, кто делает первые шаги

Время на прочтение1 мин
Количество просмотров31K


На картинке фрагмент отличной шпаргалки, где собраны основные электронные компоненты — их внешний вид и обозначения на принципиальных схемах.

Шпаргалка по электронным компонентам (PDF, 168Kb)
Шпаргалка по контроллерам AVR (ч.1) (PDF, 61Kb)
Шпаргалка по контроллерам AVR (ч.2) (PDF, 61Kb)

PS: Там же, на сайте, имеется любопытный блог с описанием эффектных электронных поделок. Культура исполнения на высоте, приведены ссылки на open source прошивки.
Всего голосов 135: ↑130 и ↓5+125
Комментарии42

Samsung AllShare и Linux

Время на прочтение4 мин
Количество просмотров45K
Купили телевизор Samsung и обнаружили на нём AllShare, но совершенно не хочется ставить ради использования этой функции Windows? Тогда читаем ниже.
Читать дальше →
Всего голосов 22: ↑14 и ↓8+6
Комментарии34

Кроссплатформенность — это круто

Время на прочтение8 мин
Количество просмотров30K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Ни для кого не секрет, что сегодня мобильные игры очень популярны. Возможность написать одну из таких игр есть у каждого разработчика, даже начинающего. Часто возникает вопрос с выбором платформы. Конечно, хочется, чтобы игра была сразу везде: на iOS и Android, на WP7 и MeeGo, на десктопе и в браузере. И чтобы все это можно было лекго реализовать с помощью бесплатных инструментов.



В этой статье я расскажу вам, как сделать основную часть кода платформонезависимой, а для остального использовать удобные средства разработки для каждой конкретной платформы.
Читать дальше →
Всего голосов 179: ↑168 и ↓11+157
Комментарии69

Информация

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