Search
Write a publication
Pull to refresh
1
0
Антон @piupiu

User

Send message

Raspberry Pi, сигнализация и умный дом

Reading time7 min
Views117K

Началось все года 4 назад когда во время рабочего дня у меня обчистили квартиру. Попасть домой через дверь после этого уже не удалось из-за поврежденного замка. Неприятное событие заставило задуматься о безопасности жилища. И это лишь одна из причин для мониторинга и автоматизации квартиры. Как часто прийдя на работу (а то и уезжая или улетая куда-либо) вы сомневались выключили ли перед уходом утюг, закрыли ли газ, воду ;-) Подбавим масла в огонь админам — спокойны ли вы что ваш старый БП в работающем системнике дома не чадит и не пылает!?) И что удаленно делать с девайсом, который «наглухо завис».

В этом посте я рассмотрю некоторые существующие на рынке решения, розничную стоимость доступного аппаратного обеспечения и способ как создать сигнализацию квартиры и некоторые из функций «умного дома» используя одноплатный компьютер Raspberry Pi
Читать дальше →

Simpliste: засучим рукава

Reading time3 min
Views5.5K

После моего поста в прошлый четверг не осталось сомнений в том, что простой и бесплатный шаблон (кто-то даже называет фреймворк) с адаптивной версткой на HTML5 вызывает интерес у потенциальных пользователей. Пост даже собрал достаточно голосов, чтобы НЛО разрешило мне пригласить кого-нибудь на Хабрахабр.

Нужно напомнить, что Simpliste — именно такой шаблон. И теперь работа по его развитию пойдет полным ходом.

Одним из преимуществ Simpliste я считаю наличие готовых тем оформления. Сразу, в момент запуска существовало 3 темы. Постепенно я создал еще несколько.
Читать дальше →

Перемещения и трансформации в CSS3

Reading time6 min
Views372K

Здравствуй, дорогой хабрадруг! В интернете можно найти множество примеров отличного применения трансформаций и переходов в CSS3. В этой статье мы обратимся к основам основ CSS3 и научимся создавать что-то вроде этого. Данный туториал будет полезен тем, кто только начал знакомиться с CSS3. Давай-те же начнем!
Читать дальше →

Что такое этот новый jQuery.Callbacks Object

Reading time10 min
Views16K
В не столь давно вышедшей версии jQuery 1.7 появился новый объект Callbacks, о котором сегодня и пойдёт речь.
В официальной документации jQuery.Callbacks описан, как многоцелевой объект, представляющий собой список функций обратного вызова (callbacks — далее просто колбэков) и мощные инструменты по управлению этим списком.

Я просматривал возможности этого объекта, когда он был ещё только в разработке, и надо сказать, что возможностей у него изначально было немного больше, чем осталось в релизной версии. Например, сейчас отсутствует возможность создания очереди (queue) колбэков, которые вызываются по одному на каждый вызов fire(). Видимо, команда jQuery, решила немного подсократить код, убрав «ненужные/редкоиспользуемые» возможности, чтобы сэкономить в весе библиотеки. Это маленький экскурс в историю Callbacks, но далее я буду описывать только доступные сейчас функции и в конце напишу небольшое возможное улучшение этого объекта.
Кому интересно, прошу под кат

Простая минималистская реализация сложных JavaScript приложений

Reading time12 min
Views8.8K
Я хочу описать простой минималистский подход к разработке сложных JavaScript приложений. Из внешних библиотек будут использоваться только jQuery и мой js-шаблонизатор, причём из jQuery используются только $.ready(), $.ajax() и $.proxy() — т.е. суть не в библиотеках (их тривиально заменить на предпочитаемые вами), а в самом подходе.

В основе подхода лежат две идеи:
  1. JavaScript виджеты — небольшие модули, каждый из которых «владеет» определённой частью веб-странички (т.е. всё управление этой частью странички происходит исключительно через методы этого модуля, а не через прямую модификацию DOM — инкапсуляция). Виджет отвечает исключительно за функциональность, но не за внешний вид; поэтому прямая модификация части DOM, которым «владеет» виджет, снаружи виджета допускается — но только для чисто дизайнерских задач (для архитектуры и общей сложности приложения нет принципиальной разницы между коррекцией внешнего вида через CSS или jQuery).
  2. Глобальный диспетчер событий. Взаимодействие между виджетами осуществляется путём посылки сообщений глобальному диспетчеру (слабая связанность, паттерн Mediator/Посредник), а уже он принимает решение что с этим сообщением делать — создать/удалить виджеты, дёрнуть методы других виджетов, выполнить дизайнерский код, etc. В отличие от динамического подхода к обработке событий (когда обработчики конкретного события добавляются/удаляются в процессе работы) статический диспетчер сильно упрощает понимание и отладку кода. Безусловно, есть задачи, для которых нужны именно динамические обработчики событий, но в большинстве случаев это избыточное усложнение, поэтому всё, что можно, делается статическими обработчиками.

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

Свежие бесплатные шрифты с кириллицею: PT Mono, ROSA Arion, ROSA Verde, Oxygen

Reading time3 min
Views9.3K
Девятое января 2012 года — последний день январских праздников в России. Позади не только западная, но и русская православная дата Рождества Христова, а также и Новый год между ними. (Впереди остаётся только возможность отметить Новый год по старому стилю — реликт павшей Империи, бережно сохраняемый православной церковью и народной традицией со дня его отмены в 1918 году.) Декада праздников стремительно уступает место суровым будням, и ужé сегодня многие из нас лягут спать с учётом завтрашней необходимости раннего бодрствования. И с каким же радостным, увесистым грузом бесплатных подарков мы вступаем в начинающуюся середину января? Насчёт шрифтов своими ответами на этот вопрос всех нас стремились порадовать сразу три словолитни.



PT Mono


Производитель «ПараТайп» 30 декабря 2011 года объявил в LiveJournal о выходе в свет PT Mono моноширинного шрифта, естественным образом дополняющего шрифтовую систему ПТ Проект, состоящую из семейств PT Sans и PT Serif, появившихся в 2009 и в 2010 году соответственно. Новый шрифт, что небезынтересно, разработан при финансовом участии компании Google и, вероятно, займёт вскорости своё место в её коллекции Google Web Fonts. Как и прежние работы ПТ Проект, новый шрифт включает буквы не только русской кириллицы, но и кириллических систем письменности десятков других народов современной России и ряда соседствующих народов и стран. Он также может считаться свободным, потому что одна из его версий распространяется по лицензии OFL (SIL Open Font License). И вот опубликованная на сайте у «ПараТайп» картинка внешнего вида шрифта:

[PT Mono]
Нетрудно видеть, что у новинки почти нет недостатков, кроме, быть может, строчной буквы «г», нижняя засечка у которой неимоверно длинна, да и верхняя также увесиста настолько, что отличие от «т» становится, мне кажется, менее значительным, чем могло бы быть.

Этот шрифт доступен в единственном (прямом нежирном) начертании.



ROSA Arion и ROSA Verde


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

Размер Java объектов

Reading time5 min
Views195K
Знаете сколько в памяти занимает строка? Каких только я не слышал ответов на этот вопрос, начиная от «не знаю» до «2 байта * количество символов в строке». А сколько тогда занимает пустая строка? А знаете сколько занимает объект класса Integer? А сколько будет занимать Ваш собственный объект класса с тремя Integer полями? Забавно, но ни один мой знакомый Java программист не смог ответить на эти вопросы… Да, большинству из нас это вообще не нужно и никто в реальных java проектах не будет об этом думать. Но это, ведь, как не знать объем двигателя машины на которой Вы ездите. Вы можете быть прекрасным водителем и даже не подозревать о том, что значат цифры 2.4 или 1.6 на вашей машине. Но я уверен, что найдется мало людей, которые не знакомы со значением этих цифр. Так почему же java программисты так мало знают об этой части своего инструмента?

Integer vs int

Все мы знаем, что в java — everything is an object. Кроме, пожалуй, примитивов и ссылок на сами объекты. Давайте рассмотрим две типичных ситуации:
//первый случай
int a = 300;
//второй случай
Integer b = 301;

В этих простых строках разница просто огромна, как для JVM так и для ООП. В первом случае, все что у нас есть — это 4-х байтная переменная, которая содержит значение из стека. Во втором случае у нас есть ссылочная переменная и сам объект, на который эта переменная ссылается. Следовательно, если в первом случае мы определено знаем, что занимаемый размер равен:
sizeOf(int)

то во втором:
sizeOf(reference) + sizeOf(Integer)

Забегая вперед скажу — во втором случае количество потребляемой памяти приблизительно в 5 раз больше и зависит от JVM. А теперь давайте разберемся, почему разница настолько огромна.

Из чего же состоит объект?

Прежде чем определять объем потребляемой памяти, следует разобраться, что же JVM хранит для каждого объекта:
  • Заголовок объекта;
  • Память для примитивных типов;
  • Память для ссылочных типов;
  • Смещение/выравнивание — по сути, это несколько неиспользуемых байт, что размещаются после данных самого объекта. Это сделано для того, чтобы адрес в памяти всегда был кратным машинному слову, для ускорения чтения из памяти + уменьшения количества бит для указателя на объект + предположительно для уменьшения фрагментации памяти. Стоит также отметить, что в java размер любого объекта кратен 8 байтам!

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

Lifemeter.ru — люди против лени

Reading time2 min
Views939

Вы когда-нибудь задумывались о том, что самая большая эпидемия, которая угрожает человечеству, это не СПИД, ожирение или наркомания? Эта болезнь не передается от человека к человеку, но в разной степени ей страдают почти все люди на Земле. Она развивается сама по себе, постепенно парализуя волю человека и лишая его каких-либо стремлений. Она отнимает у человека самое дорогое — его мечты. Болезнь эта называется лень! Сколько талантов она погубила, сколько идей и планов так и оставила нереализованными…

Lifemeter.ru — это лекарство против лени.

Подробности

Рендеринг замедленной съёмки на основе отдельных кадров

Reading time2 min
Views11K
Теперь нам не нужна высокоскоростная камера, чтобы делать замедленную съёмку. Швейцарский программист и дизайнер Саймон Югстер (Simon A. Eugster) выпустил замечательный видеоредактор slowmoVideo для рендеринга замедленной съёмки (slow motion) на основе отдельных кадров. Можно использовать slow motion как художественный эффект — чтобы подчеркнуть какой-то момент на видео. Или можно генерировать целые видеоролики на основе ограниченного количества кадров. Например, вы даёте на входе 24 кадра, а программа генерирует 240.



репозиторий git

Инструкция по установке необходимых библиотек и компиляции здесь. К сожалению, программа работает только на картах nVidia из-за использования библиотеки V3D (GPU-KLT+FLOW).

UI, скринкаст и образцы проектов

Синтез фракталов: IFS и L-системы

Reading time9 min
Views21K

Введение

[1]
Фракталом (лат.«fractus» – дроблёный, сломанный, разбитый) называют сложную геометрическую фигуру, обладающую свойством самоподобия, т.е. составленной из нескольких частей, каждая из которых подобна целой фигуре. В более широком смысле под фракталами понимают множества точек в евклидовом пространстве, имеющие промежуточную (дробную) метрическую размерность (размерность Хаусдорфа).
Размерность Хаусдорфа – естественный способ определить размерность множества в метрическом пространстве. Размерность Хаусдорфа согласуется с нашими обычными представлениями о размерности в тех случаях, когда эти обычные представления есть. Например, в трёхмерном евклидовом пространстве хаусдорфова размерность конечного множества равна нулю, размерность гладкой кривой – единице, размерность гладкой поверхности – двум и размерность множества ненулевого объёма – трём.
Читать дальше →

ResumUP — представьте себя

Reading time1 min
Views3.4K
«Сталкиваясь с информационными перегрузками, мы не имеем другой альтернативы кроме восприятия по образцам (стереотипам)» Маршалл Маклюэн

Привет всем! Многие уже наверное слышали, а некоторые уже пробовали сервис ResumUp.com. Вы могли слышать о нас по результатам конкурсов WebReady и TechCrunch Moscow. Мнение российских и международных экспертов, конечно, ценно, но живая обратная связь пользователей для нас куда важнее. Также, в связи с локализацией сервиса для российского рынка, мы хотим еще раз пробежаться по основной идее и функционалу сервиса.
Суть проекта — визуализация ваших профессиональных достижений и, как следствие, вашего резюме. Поэтому я постараюсь обойтись минимумом слов и представить сервис визуально.


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

3D-сканер за $30

Reading time9 min
Views210K
Профессиональный 3D-сканер, с помощью которого можно оцифровать реальный объект, получив его компьютерную модель, стоит десятки тысяч долларов. Мы же сможем провернуть то же самое с помощью специальной программы, лазерной указки и веб-камеры. Всего долларов за тридцать.


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

Битовые операции в PHP на примерах

Reading time3 min
Views90K
Навеяно статьей об обработке критических ошибок в PHP. Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения.

Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
или
if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
Читать дальше →

Полупроводниковая электроника

Reading time30 min
Views385K


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



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





Иллюстраций: 34, символов: 51 609.



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

19 первых шагов для оффлайнового магазина в сети

Reading time5 min
Views26K

Чеклист того, что нужно сделать сразу после открытия магазина в реальном мире для его полноценного «обживания» в сети. Просто напоминалка, которую я нарыл во внутренних документах. Возможно, эта штука кому-то будет полезна. И, возможно, кто-то вспомнит ещё пару пунктов.

Внутри — сам чеклист и примеры из нашей практики.

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

Первый язык программирования высокого уровня — Планкалкюль

Reading time4 min
Views42K
Планкалкюль (Plankalkül) — первый в мире язык программирования высокого уровня, разработанный немецким инженером Конрадом Цузе между
1942 и 1946 годами для его компьютера «Z4» (компьютер на снимке ниже, фото взято из «Википедии»).

Z4

Шла Вторая Мировая Война, Цузе работал в отрыве от учёных других стран, совершенно самостоятельно. За это время он создал не только язык программирования,
но и написал на нём 49 страниц программ для оценки шахматных позиций. Полностью его работа была опубликована много позже, в 1972.

Рискну рассказать об этом языке программирования, в качестве археологического изыскания. Тем более, что на русском языке об этом языке сказано очень мало.
Читать дальше →

Десяток ресурсов, которые помогают быть дизайнером

Reading time2 min
Views37K
Работать дизайнером очень интересно. Это творческая работа. И как любому творческому человеку, дизайнеру нужна муза или вдохновение.

Я уверен, что у каждого дизайнера есть набор сайтов, на которые они периодически заходят для того что бы черпать это самое вдохновение. У меня так же есть такой список. И я хочу им с вами поделиться.

Естественно, если вы расскажите о своих ресурсах, я буду благодарен.

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

Проектирование и дизайн сайтов Би-Би-Си

Reading time8 min
Views12K
Представляю вашему вниманию перевод статьи под названием "User Experience and the design of news at BBC World Service" от Tammy Gur. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением компании BBC и издания Johny Holland Magazine.




Проектирование окружающей среды для стремительного потока информации, проходящего через новостной веб-сайт в режиме нон-стоп — это вызов, не похожий ни на что другое. Команда дизайнеров и специалистов в области UX в BBC World Service создает новостные сайты для десктопных и мобильных браузеров на 27 языках, удовлетворяя различные аудитории по всему миру. В этой статье мы поделимся этим опытом с вами.
Читать дальше →

Коралина. Мир наоборот

Reading time3 min
Views9.4K
Коралина
Друзья, с некоторой периодичностью я делюсь с вами шедеврами современной мультипликации. Сегодня я расскажу вам о фильме, который скрасит ваш пятничный вечер и капнет бальзам на эстетические раны. «Коралина» долгие месяцы лежала на ближайшей полке, именованной: «Смотреть обязательно и срочно». Я боялся не прочувствовать его до конца, не насладиться каждым кадром, упустить настроение.
Но вот земля налетела на небесную ось и я посмотрел. Это поучительная история одной семьи, центральный персонаж которой — Коралина (Coraline). Фильм снят по повести Нила Геймана (чувак, кстати, крайне разносторонен). Если отбросить сюжет, картинку и условности, то суть сводится к фразе: «какими бы не были твои родители, они всё равно твои родители». Но мы не будем их отбрасывать(:
Coraline
Итак, в детали.
Графика фильма очень своеобразная, такую вы не встретите практически нигде: ни в 3д фильмах пиксара, ни в кукольных мультиках СССР. Пейзажи, интерьеры, герои уникальны и неподражаемы по своей красоте. Это очень оправданный шаг со стороны Лайки, и вы, пожалуй очень удивитесь, узнав, что в этом фильме практически, нету 3д и компьютерной анимации. Он чуть более, чем полностью кукольный. Создатели в количестве полутысячи человек провернули гигантскую работу по моделированию и анимации. И результат, надо признать, потрясающий — получился самодостаточный, очень красивый мультфильм.
Coraline
И, разумеется, речь не только о графической составляющей, но и о сценах, невероятной фантазии режиссёра, своеобразном юморе (мальчика — друга Коралины — зовут Вайборн = WhyBorn) и индивидуальности каждого персонажа. Вообще, кстати, местами мультфильм напоминает антиутопии Жёне.
Как это бывает в такого масштаба проектах, музыкальное сопровождение доставляет. Мелодия льётся от начала до конца, почти не прерываясь — она органичная нить повествования, задаёт настроение сцене и зрителю.
Стоит ли говорить, что я крайне рекомендую смотреть, фильм в оригинале?
Пора бы, составить, пожалуй список таких душевных фильмов?
Кстати, у Коралины есть свой интерактивный вебсайт. Живой, приятный. Не сказать, что потрясающий или уникальный, он такой, каким он должен быть: coraline.com
Под катом я чуть-чуть расскажу о сюжете

С чего начинается БЭМ?

Reading time1 min
Views52K
БЭМ расшифровывается как «Блок Элемент Модификатор». Это подход к web-разработке, позволяющий быстро создавать сайты с гибкой архитектурой. Он знаком многим, кто занимается HTML/CSS вёрсткой.

Изобретённый в Яндексе, БЭМ постепенно проникает и в разработку других компаний.
В данный момент основные мейнтейнеры работают над выводом в Open Source фреймворка, построенного по методологии БЭМ, инструментов и многих полезных утилит.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity