Как стать автором
Обновить
15
0
Василий @elDraco

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

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

Галерея на CSS3

Время на прочтение4 мин
Количество просмотров25K
Здравствуйте, хабровчане!
Совсем недавно я озадачился попробовать css3-плюшки в действии. Посмотреть на что они годны в реальности. Мой взор пал на знакомые всем галереи fancybox и т.д. Другими словами — решил сделать подобие js-галереи, но только на чистом html+css.
Читать дальше →
Всего голосов 68: ↑61 и ↓7+54
Комментарии21

Создание простейшего сервера с помощью Apache MINA

Время на прочтение4 мин
Количество просмотров10K
Apache MINAApache MINA — библиотека с открытым исходным кодом для написания клиент-серверных приложений на Java. Последняя на текущий момент версия — 2.0.4 — вышла 14 июня 2011 г.

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

Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии17

Universal Binary JSON — ещё один бинарный JSON

Время на прочтение4 мин
Количество просмотров27K
Статья является вольным переводом информации предоставленной на официальном сайте.

Введение


JSON является широко распространённым и популярным форматом для обмена данными. Его изящность, простота обработки и относительно богатая система типов стали естественным выбором для многих разработчиков, которым необходимо быстро и просто сохранять или случайным образом передавать данные между системами.

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

Для достижения лучших результатов в таких случаях становится полезным использование двоичного формата JSON.
Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии49

NoScript фотоальбом

Время на прочтение4 мин
Количество просмотров6.3K
Сейчас уже многие сайты не обходятся без JavaScript, и частенько приходится выключать NoScript для того чтобы, увидеть что же нам хотели показать. И вот я задался мыслью сделать легкий компактный фотоальбом на одной странице без JavaScript. Был использован лишь HTML и CSS.

Задача:
1 Большое изображение полностью занимает доступное пространство.
2 Миниатюры также максимально заполняют его.
3 Никаких кликов мышью (но можно и так) и прокручивания для просмотра следующего изображения (ну разве что если миниатюр больше чем на экран).
4 Просмотр с помощью клавиатуры и мыши.
5 Без скриптов.
6 С сохранением обратной совместимости.

Читать дальше →
Всего голосов 54: ↑34 и ↓20+14
Комментарии47

Перестройка окна браузера

Время на прочтение11 мин
Количество просмотров20K
Два месяца назад Хенрик Энерот, дизайнер из шведской веб-студии Antrop, написал замечательный пост — Redesigning the browser window — о том, как должен выглядеть современный браузер.



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

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии39

консоль в микроконтроллере с micro readline

Время на прочтение9 мин
Количество просмотров33K
Представляю вашему вниманию библиотеку microrl (on github), предназначенную для организации консольного интерфейса в разного рода встраиваемых железках на микроконтроллерах.

Зачем нам консоль в МК?


Текстовый консольный интерфейс обладает рядом преимуществ для встраиваемых систем, при всей своей мощи и простоте (ведь текст, в отличие от светодиода, говорит сам за себя!):
  • Требует относительно мало ресурсов МК, и минимум аппаратных затрат — последовательный интерфейс типа UART или любой другой имеющийся в МК, это может быть встроенный USB или внешний USB-Com адаптер или даже TCP если ваше микроконтроллер достаточно серьезный.
  • Удобно подключаться — достаточно терминала поддерживающего Com-port (putty для Windows или minicom для linux).
  • Удобно использовать — цветной вывод в терминал, поддержка авто-дополнений, горячих клавиш и истории ввода.
Читать дальше →
Всего голосов 89: ↑89 и ↓0+89
Комментарии31

Оформление изображений на CSS3

Время на прочтение8 мин
Количество просмотров70K
При использовании свойств box-shadow или border-radius непосредственно на изображении, браузеры могут некорректно отображать заданные нами CSS стили, из-за чего внешний вид блока будет существенно отличаться от задуманного. Однако если использовать изображение в качестве фона, то этой проблемы можно запросто избежать. Из статьи вы узнаете, как с помощью jQuery сделать идеально закругленные углы у изображений, а так же какие еще способы оформления возможны с помощью таких свойств как box-shadow, border-radius и transition.
Читать дальше →
Всего голосов 253: ↑245 и ↓8+237
Комментарии51

Марковские сети (MRF) на примере «умной» сегментации

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

Введение


        Коллега Bo_bda рассказывает о фундаментальных проблемах обработки и анализа изображений. Что же, не могу остаться стороне и не поделиться своими опытом. Сегодня я вам расскажу о такой занимательной штуке, как марковские сети (markov random fields в зарубежной литературе). Данная математическая модель используется при решении практически всех задач обработки графики (тут вам и сегментация, и восстановление изображений, построение стереоизображений, различные вопросы в 3D и много чего еще).
        Внимание! Под катом тонны картинок (в блоге о графике-то, к чему бы это).
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии13

FreeRTOS: введение

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

Здравствуйте. В короткой серии постов я постараюсь описать возможности, и подходы работы с одной из наиболее популярной и развивающейся РТОС для микроконтроллеров – FreeRTOS. Я предпологаю базовое знакомство читателя с теорией многозадачности, о которой можно почитать в одном из соседних постов на Хабре или ещё где-то.
Ссылки на остальные части:
FreeRTOS: межпроцессное взаимодействие.
FreeRTOS: мьютексы и критические секции.
Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии36

Создаём свой Look and Feel — Часть I

Время на прочтение25 мин
Количество просмотров21K
Добрый день, Хабражитель!

Уже достаточно много было рассказано о Swing и графике, также немного было упомянуто о различных незаурядных возможностях, предоставляемых сторонними библиотеками.

Сегодня же я представлю на Ваш суд «последний рубеж» погружения во все те возможности, которые предлагает нам Swing – создание своего Look and Feel класса, а также всего того, что потребуется по ходу дела.

Сразу скажу — если Вы хотите взяться за написание своего примера, а не просто «подсмотреть» пару интересных моментов — будьте готовы угробить потратить на это дело много времени, если Вы конечно собираетесь выпустить что-то более-менее живое и юзабельное в любых приложениях в качестве «обёртки», а также собираетесь в дальнейшем поддерживать созданный вами LaF.

Но даже если Вы не собираетесь делать свой LaF – советую всё же ознакомиться с содержанием. Уверен Вы найдёте много нового и интересного. И даже, возможно, поймёте в чём был корень той или иной интерфейсной проблемы, которая, вероятно, мучала Вас долгие месяцы и годы.

Tip: Если Вы не ещё не знакомы с графикой и Swing в Java более-менее тесно — советую сперва перечитать несколько статей на тему (к примеру оффициальный туториал, статью по Swing от Skipy или же мои предыдущие вводные статьи).

Итак, подробнее под катом...
Всего голосов 61: ↑58 и ↓3+55
Комментарии40

Алкотестер от facebook

Время на прочтение16 мин
Количество просмотров1.9K
Картинка для привлечения внимания
Все знают социальную сеть facebook. Многие слышали о неких программистских задачках, опубликованных администрацией этой сети с целью поиска программистов в свою контору (хотя, судя по комментариям на форуме, эта практика давно приостановлена). Некоторые пытались эти задачки решать. Кое-кто даже добился в этом успеха. Но лишь единицы поделились своим опытом в этом. А опыт, надо сказать, весьма и весьма полезный. Собравшись с мыслями, я решил слегка исправить это упущение.

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

Итак, алкотестер. Он же breathalyzer. Это задачка snack-сложности по классификации facebook, т.е. по их меркам она совсем не сложная. Что не помешало мне потратить на её решение добрых пару недель(отчасти из-за принципиального желания решить её на Ruby). Эту задачу я делал второй по-очереди, и именно она натолкнула меня на основную идею, побудившую меня прикладывать кучу усилий для поиска решения. А идея была в следующем — я не умею программировать…
Читать дальше →
Всего голосов 126: ↑120 и ↓6+114
Комментарии62

Использование Spring в OSGi-контейнере

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

Вряд ли найдётся Java разработчик, который не знает что такое Spring Framework. Одними из базовых технологий данного фреймворка являются IoC контейнер и поддержка AOP. Эти технологии позволяют успешно разбивать архитектуру приложения на обособленные слои, как на уровне классов, так и на уровне компоновки объектов во время выполнения. Казалось бы, что приложение отлично структурировано на элементы/слои, но по своей сути оно остаётся монолитным. Монолитным во время выполнения (runtime)! Только в рамках данного фреймворка не существует универсальных решений этой проблемы. Чуть меньшее количество Java разработчиков слышало об OSGi. Это спецификация модульных систем для Java платформы. Использование конкретной реализации данной спецификации в качестве основы приложения позволяет сделать его модульным, как во время выполнения, так и на физическом уровне (уровне файлов). О синергии этих технологий и пойдёт речь в этой статье.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии16

ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery

Время на прочтение5 мин
Количество просмотров395K
При изучении image любого незнакомого дела, особенно когда речь идет о микроконтроллерах, возникает вопрос — «С чего начать». Ведутся поиски статей по ключевым словам «Getting Started», неизбежно появляется дилема выбора среды разработки и программатора-отладчика. Чтобы помочь вам определиться с ответами на возникшие вопросы, я поделюсь своим опытом в освоении 32-битных контроллеров семейства STM32F от ST Microelectronics.

Выбор контроллера


Вариантов по сути дела было два — STM32F или NXP (LPC1xxx). На микроконтроллеры STM32F мой выбор пал по нескольким причинам.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии64

10 примеров меню для web страниц

Время на прочтение1 мин
Количество просмотров18K
image Эти способы не являются ноу-хау или чем-то в этом духе. Тем не менее, они могут помочь начинающим дизайнерам и web технологам в реализации задуманных ими идей. Каждый из предложенных вариантов можно обыграть по-своему.

Проверял лично и убедился в том, что исправно работает под следующими браузерами:

IE7+, Opera 10.5+, FF 3.6+, Chrome 12+ (linux), Chrome 13+ (windows), Safari 5+(win) исходя из личного опыта, предполагаю о том, что работать исправно будет во всех свежих версиях Safari, FireFox, Opera и Chrome.

С помощью CSS можно построить вот такие вот симпатичные варианты:


Читать дальше →
Всего голосов 163: ↑132 и ↓31+101
Комментарии28

Как разместить картинку внутри QR-кода

Время на прочтение2 мин
Количество просмотров139K
Автор блога Hack A Day Брайан Бенчофф (Brian Benchoff) разобрался в алгоритме генерации QR-кодов (стандарт ISO 18004) и составил инструкцию, как можно внедрить в QR-код произвольное изображение. Например, логотип фирмы.

Для работы использовались генератор QR-кодов и Microsoft Paint для попиксельного редактирования.

Шестая версия QR-кодов представляет собой квадрат со стороной 41 пиксел.



На картинке показан шаблон QR. На нём чёрные пикселы всегда обязаны быть чёрными, а белые обязаны быть белыми. Серая зона свободна для творчества.
Читать дальше →
Всего голосов 162: ↑143 и ↓19+124
Комментарии61

Бесплатные книги

Время на прочтение3 мин
Количество просмотров60K
Несколько книг по разным темам, которые находятся в открытом доступе.

Основы программирования
Читать дальше →
Всего голосов 243: ↑239 и ↓4+235
Комментарии32

Все о Лазерах

Время на прочтение7 мин
Количество просмотров293K
Вы все любите лазеры. Я то знаю, я от них тащусь больше вашего. А если кто не любит – то он просто не видел танец сверкающих пылинок или как ослепи- тельный крошечный огонек прогрызает фанеру

А началось все со статьи из Юного техника за 91-й год о создании лазера на красителях – тогда повторить конструкцию для простого школьника было просто нереально… Сейчас к счастью с лазерами ситуация проще – их можно доставать из сломанной техники, их можно покупать готовые, их можно собирать из деталей… О наиболее приближенных к реальности лазерах и пойдет сегодня речь, а также о способах их применения. Но в первую очередь о безопасности и опасности.
Читать дальше →
Всего голосов 266: ↑254 и ↓12+242
Комментарии236

HowTo cook custom Firefox msi for enterprise deployment

Время на прочтение5 мин
Количество просмотров18K
Официальная позиция mozilla по поводу msi дистрибутивов выражена в статье. Рекомендуется делать обертки FirefoxSetup.exe в msi, а так же запрещено любое распространение не оригинальных дистрибутивов. Но при использовании оберток теряются все плюсы msi — автогенерация отката вносимых изменений, self-repair, сложнее управлять обновлением, удалением и патчами. В багтрекере мозиллы багу #231062 Provide Firefox MSI package уже 7 лет! При этом у Chrome поддержка msi и GPO встроенная. Немудрено, что и для ФФ появилась сторонняя сборка от компании FrontMotion Firefox Community Edition, которая имеет свои особенности:
[+] Применяет политики, установленные через FirefoxAdm, без помощи доп. расширений
[+] Имеет свои adm/admx расширения для консоли GPP
[+] Предустановлены плагины Flash, IETab
[-] Браузер перекомпилирован, и не факт, что при этом в него не добавили новых возможностей кроме GPO)
[-] Используется нестандартное название ярлыков (Frontmotion Firefox) на столе и в меню Пуск. (что еще можно обойти, через transforms для msi)
[-] Используется другая иконка (от nightly ветки) — черная, что критично для юзеров, которые ищут рыжую лису.
[-] Не применяются автоматические обновления, т.к. сборка своя. Канал обновлений выставлен на default (спец. канал, где нет обновлений)

Если минусы вас не устраивают — предлагается воспользоваться платной службой для сборки пакетов. Я же опишу как собрать пакет самому и избавиться от вышеперечисленных минусов.
Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии15

HTML и SVG: создаём интерактивную карту

Время на прочтение8 мин
Количество просмотров236K
Давайте создадим интерактивную карту. Чего-нибудь. Что значит интерактивную? Ну, она должна взаимодействовать с пользователем и с данными на веб-странице, на которой она расположена. Думаю, этого достаточно, чтобы считать её интерактивной.

Что же, и возьмём мы SVG. Почему? Да потому что с ним легко работать человеку, знакомому с HTML. SVG — это векторный формат, основанный на XML. То есть у SVG-рисунка есть своя DOM, к различным элементам можно применять CSS-правила и управлять старым добрым JavaScript'ом.

Что же, начнём?
Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии19

Дерево ван Эмде Боаса

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

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

Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?

Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.

Что же там еще есть такого вкусного?
Всего голосов 193: ↑191 и ↓2+189
Комментарии39

Информация

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