Как стать автором
Обновить
42
0

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

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

Обзор роутера NETGEAR WNDR3800

Время на прочтение10 мин
Количество просмотров53K
Давно хотел поменять свой заросший мхом noname-роутер на что-то более породистое, технологичное и просто современное. Каких-то извращенных требований к будущему устройству у меня не было, то есть мне наверняка подошли бы 8 роутеров из 10. Сегодня речь пойдет только про 1 из тех 8, на котором я остановил свои поиски — NETGEAR WNDR3800, про который на Хабре еще вроде бы никто не рассказывал.



Выбор решений для дома сейчас очень велик, но…
Читать дальше →

Используем Resque в Rails

Время на прочтение4 мин
Количество просмотров27K
Resque — ruby-библиотека для создания фоновых задач, составления очередей таких задач и их последующего выполнения. Задачи могут быть любым ruby-классом или модулем, содержащим метод perform. В ruby-сообществе Resque пришел на смену Delayed Job (не знаю, кстати, почему проект перестал развиваться, весьма удобная была вещь на мой взгляд) и обладает большим количеством различных преимуществ, таких как разделение задач по разным машинам, приоритеты задач, устойчивость к разным утечкам памяти и еще, и еще, и еще. На этом вступление для тех, кто не может самостоятельно перевести первый абзац из README прошу считать законченным.

В данной статье будет показано как использовать resque и resque-scheduler в rails-приложении.
Читать дальше →

Что нужно знать про арифметику с плавающей запятой

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


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

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →

Понимаем декораторы в Python'e, шаг за шагом. Шаг 1

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

На Хабре множество раз обсуждалась тема декораторов, однако, на мой взгляд, данная статья (выросшая из одного вопроса на stackoverflow) описывает данную тему наиболее понятно и, что немаловажно, является «пошаговым руководством» по использованию декораторов, позволяющим новичку овладеть этой техникой сразу на достойном уровне.

Итак, что же такое «декоратор»?


Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped
 
def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped
 
@makebold
@makeitalic
def hello():
    return "hello habr"
 
print hello() ## выведет <b><i>hello habr</i></b>

Те же из вас, кто готов потратить немного времени, приглашаются прочесть длиииинный пост

Бертран Мейер. Объектно-ориентированное конструирование программных систем

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

DISCLAIMER: более навороченной книги по ООП в природе нет и в ближайшее время, скорее всего, не будет; эта книга заслуженно считается классической книгой по объектной технологии и не зря является первой в списке рекомендуемых книг по этой теме (причем она первая не только в моем списке).

Основная сложность при изучении объектно-ориентированного программирования (или любой другой парадигмы программирования) заключается в том, что весьма сложно подобрать формальные критерии, которые бы сказали: «ок, теперь я знаю ООП и стану писать более клевые (читай модульные, реюзабельные и легкие в сопровождении) программы». Например, при изучении языков программирования мы относительно быстро замечаем, опа, level-up, я, кажись, перешел на новый уровень понимания идиом и конструкций языка программирования и могу использовать его более интересным образом, да еще и другим рассказывать, где они не правы.

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

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

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


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

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

PS: Там же, на сайте, имеется любопытный блог с описанием эффектных электронных поделок. Культура исполнения на высоте, приведены ссылки на open source прошивки.

Автомобильная спутниковая сигнализация на STM32F1

Время на прочтение33 мин
Количество просмотров121K
Теория создания самодельной автомобильной спутниковой сигнализации с web-интерфейсом и поддержкой eCall / ЭРА-ГЛОНАСС на базе микроконтроллеров STM32 как основа концепции «Умный автомобиль», и её использование в системах «Умный дом». Реализация аналога технологии Volvo On Call и автомобильной социальной сети Toyota Friends.
Читать дальше →

Еще 5 гемов на все случаи жизни

Время на прочтение3 мин
Количество просмотров3.2K
В продолжении топика о разных и полезных гемах, хочу рассказать еще о нескольких, которые делают мою (а потом, надеюсь, что и вашу) работу с RoR еще более приятной и удобной.
Читать дальше →

HyperDex — новое опенсорсное NoSQL key-value хранилище, заточенное на очень быстрый поиск

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

Авторы позиционируют HyperDex как распределённое, отказоустойчивое, легко-маштабируемое, заточенное на очень быстрый поиск NoSQL key-value хранилище.

Главная фича — новый принцип хранения объектов в многомерном эвклидовом пространстве (рис. слева), используя гиперпространственное хэширование (hyperspace hashing) (на который, кстати, авторы сейчас получают патент), которое позволяет выполнять большинство типичных задач от 2 до 13 раз быстрее, чем в MongoDB, Redis, Cassandra.

О проекте и бенчмарки под катом

Вышел в свет бесплатный свободный шрифт Prosto

Время на прочтение1 мин
Количество просмотров13K
Иван Гладких и Павел Емельянов сегодня (20 февраля 2012 года) начали свободно (по лицензии OFL 1.1) раздавать шрифт под названием Prosto, разрабатывавшийся в течение последних шести месяцев:

[презентационная иллюстрация]

Шрифт раздаётся в архиве (45 Kb RAR, включая лицензию OFL) и предназначен для логотипов, заголовков и презентаций. Начертание единственное (без жирных, тонких и наклонных вариантов).

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

Вот обильная презентационная инфографика (≈½ мегабайта), дающая достаточное представление о форме и возможностях нового шрифта:

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

5 гемов на все случаи жизни

Время на прочтение3 мин
Количество просмотров9.4K
В блоге про Django я периодически вижу посты с обзорами интересных расширений для этого фреймворка. Идея мне понравилась, и я решил, что было бы неплохо сделать похожий цикл заметок и о Ruby on Rails.

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

Приемы сборки-разборки ноутбуков для ремонта на примере Toshiba Portege M800

Время на прочтение9 мин
Количество просмотров51K
В этом топике я бы хотел поделиться своими соображениями о ремонтной сборке-разборке ноутбуков, благо накопился небольшой и скромный опыт. Речь пойдет о запечатленном и откомментированном процессе сборки ноутбука Toshiba Portege M800. Мысль о запечатлении в фотках пришла опосля после того, как ноут был разобран, поэтому картинками представлена именно сборка. Кроме того, я надеюсь, статья окажется полезной ремонтирующим данный девайс. Основные важные моменты, встречающиеся в топике, собраны вместе в конце.
Осторожно, трафик (24 фото).
Читать дальше →

Модуль профайлинга «ProfilerToolbar»

Время на прочтение3 мин
Количество просмотров3.6K
Если вы используете Kohana, то скорее всего уже видели модуль DebugToolbar. Испробовав его на нескольких проектах, стало понятно, что его возможностей явно не хватает. А при использовании Ajax запросов данный модуль становиться вообще бесполезным.

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

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

DNS сервер BIND (теория)

Время на прочтение21 мин
Количество просмотров509K
Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.

Основные понятия Domain Name System


Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:
Читать дальше →

«Загадочные отступы» между инлайн-элементами

Время на прочтение15 мин
Количество просмотров32K
Каждому, даже самому «молодому» верстальщику известны неприятности (проблемы) с интервалом между элементами, пробелами, которые вставляются между словами. Эти пробелы часто мешают нам при вёрстке того или иного блока. Избавиться от них бывает не так-то просто, а зачастую эти межсловные расстояния и вовсе ставят нас перед выбором, выбором способа решения данной проблемы.

В этой статье мы попытаемся понять, что же из себя представляют эти загадочные "Отступы", что это за звери и с чем их едят. Так же рассмотрим, что такое inline-block, и почему после себя он ставит эти непонятные интервалы. Ну, и, самое главное, мы увидим несколько универсальных решений данного вопроса и, конечно же, обсудим все их стороны.
Читать дальше →

Bootstrap 2.0 – HTML+CSS+JS UI фреймворк

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

Вышла новая версия офигительного UI фреймворка от Twitter — Bootstrap 2.0 Для тех кто не в курсе что это, настоятельно рекомендую ознакомиться. Этот набор позволяет создавать отличные шаблоны сайтов за считанные часы (проверено на собственном опыте) на основе готовых элементов и экономить килотонны нервов на адаптации кода под разные браузеры.

Особенности Bootstrap:
  • Полный набор компонентов в виде стилей и анимаций поведения для элементов интерфейса
  • Поддержка возможностей HTML5, CSS3 (но при этом работает и в IE7!)
  • Поддержка идеологии 940-пиксельной сетки
  • Поддержка идеологии fluid-grid
  • Кросплатформенность — наборы стилей для десктопных и мобильных браузеров
  • Возможность кастомизации и добавления собственных стилей
  • Возможность добавлять jQuery плагины

Мастхэв для верстальщиков и проектировщиков интерфейсов!

Парсер PSD файлов на CoffeeScript

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

Автор скрипта psd.js — Райан Лефевр. Скрипт, как вы уже догадались, умеет открывать photoshop документы, как в браузере, так и на стороне Node.js.

Демонстрация возможностей (ранняя beta, не удивляйтесь, что некоторые файлы не откроются. На github странице проекта многие жалуются на это).

Пример вывода информации на Node.js:
{PSD} = require 'psd.js'
 
psd = PSD.fromFile './path/to/file.psd'
psd.parse()
 
for layer in psd.layerMask.layers
console.log "Layer: #{layer.name}"
console.log "Size: width=#{layer.cols}, height=#{layer.rows}"
console.log "Position: top=#{layer.top}, left=#{layer.left}"

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

Организация хранения пространственных данных в PostGIS/PostgeSQL

Время на прочтение3 мин
Количество просмотров24K
imageПо приходу в одну контору, которая занимается разработкой карт, схем и планов, меня очень удивила одна вещь: не было централизованного хранилища всех материалов. Пользователи работали каждый со своими наработками. И если возникала потребность что-то взять из другого проекта – приходилось или бежать с «флэшечкой», или копировать файлы по сети. Что создавало неимоверное количество «мусора» в виде дубликатов разной свежести на множестве рабочих станций.

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

Что такое «git push problem: non fast forward»

Время на прочтение4 мин
Количество просмотров88K
Данная мини-заметка в первую очередь является ответом на вопрос. Так как мой аккаунт read-only, то вот такой вот способ ответа. «А жизнь-то налаживается!» ©

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

Итак, что же происходит?

HTML KickStart — еще один способ быстро создать интерфейс своего веб-приложения

Время на прочтение1 мин
Количество просмотров27K
Не один раз в комментариях замечал что народ негодует по поводу того, что веб-разработчики стали злоупотреблять использованием Bootstrap от Twitter. Признаюсь, я и сам успел закончить несколько небольших веб-приложений с использованием этого набора скриптов и стилей. Я не против использования Bootstrap от Twitter, я против злоупотребления этим когда есть столько хороших альтернатив. Я почти каждый день натыкаюсь на интерфейсы, построенные на Twitter Bootstrap, и это начинает напрягать. Последней каплей для поиска альтернативы стало изменение интерфейса биллинг панели моего хостера на шаблон Bootstrap. В этой записи я хотел бы немного рассказать про одну из альтернатив — HTML KickStart.
Читать дальше →

Информация

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