Search
Write a publication
Pull to refresh
26
0
Mikhail Kulincev @kulinich

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

Send message

GeeXboX полностью портирован на Raspberry Pi

Reading time1 min
Views28K
imageimage Очень странно, что эта новость обошла стороной Хабр.

GeeXboX — популярный бесплатный дистрибутив на основе XBMC 12.0 ‘Frodo’ и ядра Linux, представляющий собой легковесный медиа-центр — получил полную поддержку архитектуры Raspberry Pi. Доступно полное аппаратное ускорение OpenGL ES для XBMC, аппаратное декодирование видео вплоть до 1080p HD и управление с телевизионного пульта через HDMI-CEC.
image
Официального релиза пока не было, но тестовые сборки уже регулярно выкладываются на сайте разработчиков.
Стоит отметить, что сборки GeeXboX существуют и для других компактных компьютеров Pandaboard, Cubox, ux500 Snowball, nVidia Tegra2 Harmony.
Читать дальше →

Цикл зрелости технологии (Hype cycle) Gartner — при внедрении новой системы на предприятии

Reading time2 min
Views59K
image
В 1995 году исследовательская компания Gartner предложила hype cycle — кривую зрелости технологии, графически представляющую стадии, через которые проходит технологическое новшество в ходе своего становления.

Данный феномен наблюдается при появлении любой новой техники, будь то появление планшетов на рынке или внедрение новой CRM системы на предприятии.

Про то как эта кривая работает в части электроники, написано много статей.

А вот как она работает в ходе внедрение новой системы в организации?
Читать дальше →

Организация памяти в текстовом редакторе

Reading time6 min
Views36K
Каждый, кто пытался запрограммировать хотя бы простейший редактор текста на низком уровне, сталкивался с задачей организации памяти для хранения редактируемого текста. Структура данных для хранения текста должна удовлетворять следующим требованиям:
  1. иметь малые накладные расходы по памяти. Большая часть доступной памяти должна использоваться для хранения текста, а не служебной информации;
  2. допускать эффективную вставку и удаление в произвольном месте текста.

Удовлетворить эти требования одновременно непросто. Если рассмотреть широкоизвестные структуры данных, такие как массивы, списки, деревья, стеки, очереди, кольцевые буфера — то такой структуры, которая бы позволила эффективно выполнить оба требования, не встречается. В случае массива имеем незначительные накладные расходы по памяти, но операция вставки имеет сложность O(n), где n — размер редактируемого текста. В случае списка сложность вставки и удаления составляет O(1), однако накладные расходы по памяти в несколько раз превышают размер собственно текста. Деревья, кучи, кольцевые буфера, ассоциативные массивы и прочие структуры и вовсе неприменимы для хранения текста в редакторе.

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

Предлагаю вашему вниманию эффективную структуру данных для хранения редактируемого текста, которая проста в реализации, имеет константные накладные расходы по памяти и быструю вставку/удаление в произвольном месте. Также она позволяет эффективно редактировать файлы, которые целиком не умещаются в оперативную память.

Несмотря на то, что эта структура данных была открыта давно и использовалась в текстовых редакторах на старых ЭВМ в 8-битную эпоху, это тайное знание предков было в значительной мере утеряно и в современных редакторах встречается редко. Попробуйте открыть файл, состоящий из одной строки мегабайт на 10, в Notepad или Far. Вставка и удаление символов будет длиться секундами.
Читать дальше →

QtCreator: Qt кросс-компиляция из linux 64 в linux 32, win32, win64 и Mac OS X; upx, usb, dmg, etc

Reading time14 min
Views83K


Библиотека Qt позволяет делать действительно кроссплатформенные приложения. Единожды написанный код можно откомпилировать под многие операционные системы. Но проблема именно в слове «компилировать», т.к. подразумевается, что необходимо перезагрузиться под целевую систему, иметь в ней настроенную среду разработки, установленный и настроенный зоопарк библиотек. Спасает кросс-компиляция — компиляция, производящая исполняемый код для платформы, отличной от той, на которой исполняется.
Читать дальше →

Играем в RSS с PlayFramework 2.2 и Scala

Reading time12 min
Views9.4K


Доброго времени суток, уважаемые хабравчане.

Мы, погромпрограммисты, очень часто сталкиваемся с одной и той же проблемой при изучении нового языка X или фреймворка Y — что писать после вступительного туториала Yet Another Hello World? Что-нибудь, что сможет показать какие-то преимущества и недостатки X/Y, но при этом не заняло бы много времени.

Мы с товарищами часто задавались подобным вопросом. В итоге родилась простая мысль — напиши RSS читалку. Тут тебе и работа с сетью, и XML парсер, и БД можно подключить, поглядеть на шаблонизатор. Да мало ли.

Итак, здесь начинается увлекательное путешествие в стек Play Framework 2.2 + Scala + MongoDB на бэкэнде и AngularJS + CoffeeScript на фронтенде.

TL;DR
Весь проект вместился в ~250-300 строк на Scala с документацией и ~150 строк на CS. Ну и немного HTML.
Код доступен на Bitbucket

В путь

I2P: Прозрачный доступ из любого браузера

Reading time2 min
Views377K


В последнее время, количество новостей связанных с блокировками зашкаливает.

Но куда уходить людям?

Что бы был доступ к информации, свобода слова и соблюдались хотя бы те правила, которые есть в конституции?

Mesh сети не подходят, Tor — тоже не может обеспечить требуемого, остается I2P.

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

I2P — Проект Невидимый Интернет

Reading time2 min
Views274K
Всем доброго времени суток!

С недавних пор организации по защите авторских прав и «отделы К» многих стран начали вести весьма агрессивную политику против анонимности в сети и пиратства. Особо показательны истории с torrents.ru и ifolder.ru.

Подробнее об интернет-цензуре можно почитать в Википедии.

Чтобы оградить пользователя и хостера от «вредного» влияния государства и частных компаний была создана сеть I2P. Что же это такое и как подключиться к I2P — читаем под катом.

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

Разработка плагина IntelliJ IDEA. Часть 7

Reading time13 min
Views15K
В этой части: компоненты пользовательского интерфейса. Предыдущая часть тут.


IntelliJ IDEA включает в себя большое количество пользовательских Swing-компонентов. Использование этих компонентов в ваших плагинах гарантирует, что они будут выглядеть и работать согласовано с остальным пользовательским интерфейсом IDE и часто позволяет уменьшить размер кода, по сравнению с использованием стандартных Swing-компонентов.

Меню и панели инструментов


Меню и панели инструментов (тулбары) строятся с использованием системы действий (как уже было описано во второй части).
Читать дальше →

Десять причин не использовать статически типизированный функциональный язык программирования

Reading time8 min
Views44K
От переводчика
Это вольный перевод статьи о том, почему люди боятся функциональных языков, присутствует ирония и юмор, для тех кто может и любит читать на английском оригинал здесь.

Про автора

Я разработчик и архитектор британской не софтверной компании. Имею 20 летний опыт в различных областях от высоко-уровневых UX/HCI до низко-уровневых реализаций баз данных.
Несмотря на то что я использую C# в своей повседневной работе, я писал промышленный код на многих языках, мои любимые Smalltalk, Python и совсем недавно F# (поэтому я и создал этот сайт).


Разглагольствования по поводу того чего я не понимаю


Вам надоела вся эта шумиха вокруг функциональных языков? Мне тоже! Я выскажу по этому поводу несколько причин почему разумные люди, такие как мы с вами, должны держаться подальше от этого.

Немного поясню: когда я говорю «статически типизированный функциональный язык программирования», я подразумеваю языки, которые поддерживают вывод типов по-умолчанию и прочее. На практике это означает Haskell и семейство языков ML (включая OCaml и F#).
Читать дальше →

Пишем первый проект на Play Framework 2.0

Reading time6 min
Views39K
13 марта состоялся релиз второй версии scala/java-фреймворка Play. На хабре уже был обзор новых фич Play 2.0. В этой же статье я хочу восполнить пробел в отсутствии мануалов на русском языке по этому интересному фреймворку на примере создания простого приложения на Java, состоящего из списка категорий и привязанных к ним вакансий.

Статья рассчитана на тех, кто совсем не знаком с Play и хотел бы его «пощупать», не тратя много времени.
Читать дальше →

Need For Speed 3 + Cryengine 3 = Cry For Speed

Reading time3 min
Views119K
image
Что это?
Это ремейк классического Need For Speed 3 на движке Cryengine 3.
Для начала планируем перенести все трассы и авто из третьей части в этот движок. Если интерес будет и к нам присоединятся еще добровольцы — мы реализуем все первые четыре части NFS на этом заманчивом движке (кстати модное стерео 3D тут уже есть прямо из коробки).
Читать дальше →

Клиент Яндекс.Диска для Linux. Консольный

Reading time8 min
Views117K
Сегодня мы представляем долгожданный клиент Яндекс.Диска для Linux. Можно было бы даже сказать «специально для Хабрахабра», так как ни одно упоминание Диска здесь не обходилось без вопросов о клиенте для Линукса.

У него есть вся основная функциональность, которая есть у клиентов для OS X и Windows, и даже больше (симлинки!), и одна особенность — он консольный.

image

Ниже читайте о том, как он настраивается, что конкретно умеет, и о том, как именно он устроен и что в нём было непросто сделать.

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

Спасем крупнейшую медиатеку в рунете. Вся база rutracker у Вас на компьютере

Reading time10 min
Views195K
image

В контексте последних законов, событий и тенденций как никогда очевидна ценность рутрекера как базы данных различного контента, а не как конкретного ресурса. К сожалению все мои призывы к администрации рутрекера предоставить общедоступный, полный, удобный дамп их базы наткнулся на полное непонимание с их стороны. Выкладывать нечто, что они называют зашифрованной «базой» — я не считаю решением проблемы по причинам, изложенным в вышеприведенных ветках обсуждения и продублированным ниже.

К сожалению, решить проблему своими силами у меня не хватило ни времени, ни, будем откровенны, знаний. Но, к счастью, мои слова возымели действие на людей, которые и тем и другим обладают. В итоге эти люди организовались и сообща сделали то, о чём так долго говорили большевики о чем я писал, а именно с помощью скриптов обошли рутрекер, сдампили все описания раздач с хешами, распарсили их и скомпоновали в удобную для употребления базу. В дополнение к этому так же была написана «морда»: программа для удобной работы с базой конечных пользователей, не знающих с какого конца держат grep. К сожалению, аккаунта на хабре никто из этой команды не имеет (если не считать read-only), в песочнице статья могла бы потеряться, поэтому меня выбрали как рупор для данной площадки. Я, честно говоря, раздумывал совсем недолго и только над тем, как правильнее все сделать. Если будут какие-то вопросы — задавайте мне в комментах, я либо отвечу сам, либо переадресую разработчикам. Технические тексты от первого лица, но я имею к ним косвенное отношение, они оставлены в таком виде для простоты восприятия.

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

Техническая часть, ссылки и немного лирики

Обзор Google Chromecast: аналог Apple TV?

Reading time3 min
Views77K


Здравствуйте, жители Хабры. С момента анонса Chromecast, я не мог понять, почему устройство сравнивают с Apple TV? Чем функционал ТВ-приставки походит на Chromecast? В самом деле, это абсолютно разные вещи и каждая хороша по-своему, но в этом обзоре я хотел поделиться личными впечатлениями от «свистка» на уровне Apple TV и рассказать про основные его функции.
Читать дальше →

Медиацентр из MacMini и Rapsberry PI

Reading time6 min
Views142K
Или самый простой и удобный медиацентр, понятный всем домочадцам



картнка для привлечения внимания

Привет, Хабр! С каждым днем собрать дома медиацентр становится все проще. Вариантов много – от HTPC из старого железа до безымянных устройств размером с флэшку. На хабре было много обзоров самодельных бесшумных HTPC, android-боксов и нет-топов для реализации домашних медиасерверов. Я испытал много разных вариантов, прежде чем найти самый подходящий для себя и, самое главное, для домочадцев.

Задача-минимум:
1. Собрать и структурировать всю медиатеку воедино
2. Сделать ее максимально доступной к просмотру на двух телевизорах в разных комнатах
3. Иметь возможность просмотра или загрузки (для оффлайн просмотра) фильмов из медиатеки на мобильных устройствах
4. Удаленный запуск торрентов с мобильных устройств
5. Бесшумная работа устройств.

Путем проб и ошибок, я пришел к использованию XBMC на стареньком Mac-mini + Rapsberry Pi.
Пробы, ошибки, и удобная конфигурация под катом.
Читать дальше →

Пишем простой плагин для Sublime Text 2

Reading time3 min
Views33K
Введение

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

Перенос действующей корпоративной почты от хостера на Google

Reading time4 min
Views70K
По своей работе я часто имею дело с почтой, размещенной у разных хостинг-компаний. Несмотря на то, что за хостинг платятся вполне приличные деньги, качество услуг в разы проигрывает «бесплатным» почтовым серверам. Мало того, что под почту дают мало места, так и доступность её чаще всего хромает. Но когда мне довелось с почтой, размещенной у Хостинг-центра РБК, количество проблем достигло такого уровня, что было принято решение перейти на какой-либо альтернативный сервис.

Выбор был невелик – «Почта Для Домена» Яндекса или «Gmail для предприятий».
После недолгих размышлений было принято решение в пользу Google, т.к.:
  1. Это «Корпорация зла», а все бизнесмены – адепты зла :)
  2. Почта располагается за рубежом, что немного усложняет получения доступа к почте третьих лиц.
  3. Масса дополнительных сервисов, как стандартных (Docs, Calendar), так и дополнительных.
  4. Возможность подключения дополнительных возможностей за деньги (больше места, маршрутизация почты и пр.).
  5. Возможность создания нескольких администраторов для управления всем сервисом.
  6. Известная стабильность и качество сервиса.
  7. Всё таки, ПДД Яндекса – это клон Gmail для предприятий.

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

Хостинг на AWS (EC2, EBS, S3) для чайников

Reading time4 min
Views139K
На хабре уже проскакивали периодически заметки посвященные AWS (Amazon Web-Services) — так что тема не новая. Однако, если для меня лично (да и для многих моих знакомых как выяснилось) — этот термин был знаком — однако каких-либо деталей я не знал. Попробую на основании только-что полученного опыта рассказать немного подробней, а так же изложить основные шаги по организации хостинга сервера на AWS и его преимущества. Как и несколько ссылок, которые могут оказаться полезными.
image
Читать дальше →

Qt 5.1 и корректный deployment в Windows

Reading time4 min
Views86K
Добрый день!
Для меня он вышел не очень добрым, 10 часов из жизни потрачено в поисках решения на простой вопрос, но в конечном счете я его нашел, и сейчас поделюсь с вами.
Итак, краткая предыстория.
Один мой заказчик попросил разработать kiosk-mode приложение на Qt. И для начала, сделать версию для POS-терминала с ОС Windows XP.
Ok, за неделю я что-то сверстал по приложенным макетам и попробовал отдать версию заказчику. Приложив Qt5Core.dll, Qt5Gui.dll, ну и прочие .dll используемых модулей Qt.
«Failed to load platform plugin „windows“» сказала японскаяфинская бензопила.
Читать дальше

Настройка WinDbg

Reading time3 min
Views97K
WinDbg — позволяет отлаживать 32/64 битные приложения пользовательского уровня, драйвера, может быть использован для анализа аварийных дампов памяти, WinDbg поддерживает автоматическую загрузку отладочных символов, имеется встроенный скриптовый язык для автоматизации процесса отладки, скачать отладчик можно тут.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity