Pull to refresh
0
0
Александр Егоров @kagor

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

Send message

Расстановка точек над onmousewheel и немного о луковом супе

Reading time10 min
Views16K
Я уже писал о своих экспериментах со скроллбарами на сайтах и в веб-приложениях, но эти опыты удались не вполне. Поэтому я пока оставил идею кастомизации скроллбаров, но решил досканально разобраться с событиями, вызываемыми прокруткой колеса мыши.

Итак, задача: реализовать реакцию на события прокрутки мышиного колеса над определённым блоком, то есть не трогая «родной» скролл окна браузера. Реализация должна быть кроссбраузерной и не использовать какие-либо фреймворки.

Забегая вперёд, скажу, что этот экперимент удался вполне, а итоговый результат работает во всех десктопных браузерах, начиная с IE7 (по идее, должно работать и в шестом, но сейчас нет возможности это проверить). Также, хочу выразить благодарность поисковой системе Гугл. Без неё жизнь была бы соткана из уныния и отчаяния.
Читать дальше →
Total votes 102: ↑95 and ↓7+88
Comments40

31 метод эффективного программирования под Android

Reading time5 min
Views24K
Данная статья является переводом очень хорошего топика с форума Stack Overflow. Так как английский язык не является для меня родным, то какие-либо непонятные мне места я просто пропускал, что бы не разгневать тех, кто его действительно знает. Статья содержит список советов и рекомендаций для начинающих разработчиков под Android.

Читать дальше →
Total votes 145: ↑130 and ↓15+115
Comments65

Agile в заказной веб-разработке

Reading time7 min
Views19K
Если мы (веб-студия или частный разработчик) делаем веб-проект для себя, мы сами вольны выбирать метод разработки: гибкий (Agile) или каскадный («водопад»). Как правило, чем сложнее проект, тем меньше шансов у водопада. Но когда мы делаем сайт для заказчика, метод всегда один: каскадный. Эта статья о том, как (и зачем) убедить заказчика попробовать гибкую модель для сложных веб-проектов.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments23

C++ Variadic templates. Каррирование и частичное применение

Reading time7 min
Views6.7K
Доброго времени суток, уважаемое Хабрасообщество.
Недавно приходилось наблюдать дискуссию о каррировании и частичном применении. Суть этой полемики состояла в том, что лучше, для практических целей, иметь в языке программирования: встроенное частичное применение (например, как в Nemerle) или встроенное каррирование (как, например, в Haskell).
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments62

Microsoft выпускает собственный «конструктор», конкурент Arduino

Reading time2 min
Views6.5K


Видимо, подобные комплекты стали очень популярны среди разработчиков, поскольку сейчас появляются новые и новые «конструкторы для взрослых». Например, вчера на Хабре был описан ProtoSnap, а теперь и Microsoft выпускает нечто подобное, только комплект от софтверного гиганта более совершенен, чем ProtoSnap. Устройство получило название Microsoft .NET Gadgeteer. Его описание, фотки и видео — в продолжении.

Читать дальше →
Total votes 71: ↑61 and ↓10+51
Comments111

Отладочная плата FEZ Hydra на базе Open-source проекта .NET Gadgeteer

Reading time2 min
Views4.8K
На Хабре уже упоминалась предыдущая разработка компании FEZ Spider Kit. Компания GHI Electronics продолжила развитие в направление разработки устройств .NET Gadgeteer. И 8 ноября представила новое дополнение к конструктору плату FEZ Hydra. FEZ Hydra использует процессор ARM9 с тактовой частотой 240Mhz. С 16 Мб SDRAM ОЗУ, и 4 Мб постоянной памяти типа FLASH. Как указывает разработчик, на устройстве возможно запустить ОС Linux, т.к. система является полностью 100% открытой.

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments15

Настройка Eclipse для работы с Arduino Uno

Reading time5 min
Views54K

Преамбула


У меня дома стоит масляное отопление. Для измерения уровня масла в баке используется допотопный датчик со стрелкой и поплавком на веревке. Принцип работы датчика поражает свой неточностью. Но так как мы с вами живем в далеком будущем, по отношению к моему детству, то мне захотелось сделать датчик, который выполняет следующие условия:
  • Датчик должен быть цифровым.
  • Его показания должны сохранятся для последующей обработки.
  • Данные должны быть доступны для меня всегда и везде.
  • Все устройство должно быть дешевле 200€.
Вот с такой спецификацией я и начал поиск подходящих компонентов. Выбор довольно быстро упал на платформу Arduino. Само железо устраивало меня полностью, но вот среда разработки была просто ужасна. Поэтому было принято решение перейти на Eclipse.

Можно было, конечно, перейти на горячо любимую Visual Studio, но в данный момент я открываю заново для себя линукс, поэтому виндоуса нет в наличии.

Сегодня, я хочу поделиться с вами о том, как настроить Eclipse для работы с Arduino Uno под Ubuntu 10.10.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments30

Секреты JDK

Reading time4 min
Views25K

Про Unsafe в Java не слышал только ленивый, однако это не единственный магический класс в Sun/Oracle JDK, стирающий границы Java платформы и открывающий тропинки, не нанесенные на карту публичного API. Я расскажу про некоторые из них, принесшие пользу в реальных проектах. Но помните: недокументированные возможности лишают ваше приложение переносимости на другие Java платформы и, кроме того, являются потенциальным источником нетривиальных ошибок. Я даже зря написал слово «приложение». Лучше сказать, что описанные ниже классы вовсе не годятся для приложений! Скорее, они представляют интерес лишь для системного ПО и для любознательных программистов, т.е. для вас :)
Читать дальше →
Total votes 129: ↑127 and ↓2+125
Comments30

Доступны для загрузки руководства к лабораторным работам TechEd Russia 2011

Reading time3 min
Views9.2K


Я отвечал на конфереции TechEd Russia 2011 за лабораторные работы. Понятно, что их в трансляции не увидишь и не исполнишь. Но было бы здорово чтобы те, кто не смог попасть на конференцию смогли ознакомиться хотя бы с руководствами для лабораторных работ. В некоторых случаях создать окружение для лабораторной достаточно просто, в некоторых — сложно. Но в любом случае — иметь под рукой подготовленные руководства к лабораторным работам — неплохо.

Здесь я выкладываю список лабораторных работ со сслыками на руководства, чтобы вам было удобнее их скачивать:
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments12

Практика работы «в белую» с иностранными заказчиками

Reading time4 min
Views108K
Итак, тут уже была серия статей про то как открыть ИП, как вести бизнес с иностранцами и так далее.
Я хочу всё систематизировать и поделиться реальной практикой.

Для начала введём определения и ограничения:
1. вы уже должны быть зарегистрированы как ИП и вы ознакомились со статьями: habrahabr.ru/blogs/freelance/132232, habrahabr.ru/blogs/freelance/132360, habrahabr.ru/blogs/Dura_Lex/114069
2. мы хотим вести бизнес честно, платить с этого налог и делаем это в России;
3. всё что написано ниже в статье применимо только к ИП, возможно что-то применимо и к ООО, но я ИП и рассказываю про ИП;
4. ИП рассматривается на упрощённой системе налогообложения (УСН) со схемой уплаты налогов в 6% от дохода и без наёмных работников – то есть вы сами по себе;
5. вы предоставляете услуги в области ИТ (программинг, дизайн, консультации и т. п.).

Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments145

Начальная настройка ИБП APC в Linux с точки зрения чайника

Reading time3 min
Views55K
Купив источник бесперебойного питания от APC (а именно — APC Back-UPS ES 550VA ), я с удивленьем обнаружил, что «из коробки» он не может похвастаться тесной дружбою с Linux. Конечно, XFCE Power Manager, входящий в состав XFCE 4.6, подхватил и разпознал UPS, но всё, на что он оказался способен — отображение в трее уровня заряда. Какие-либо настройки отсутствовали начисто, нельзя было даже задать выключение ПК при достижении определённого уровня заряда.

Обратившись за консультацией в гугл, я узнал о существовании замечательного демона apcupsd, чья роль заключается в — никогда не поверите — управлении ИБП от APC. Но, как оказалось, практически все руководства по его начальной настройке были откровенно устаревшими — включая, как ни странно, официальный мануал. Споткнуться приходилось уже в самом начале о «cat /proc/bus/usb/devices». Поговорив с гуглом серьёзным и доверительным тоном, я добился от него ссылки на действующий мануал, художественным переводом коего с дополнениями из иных источников сия статья и является.
Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments29

Почему ИТшнику стоит стать ИПшником и почему не стоит регистрировать ООО

Reading time7 min
Views86K
В этой статье даются ответы на нижеследующие вопросы, основываясь на личном опыте и опыте коллег.

1. Почему стоит начать работать «в белую»
2. Почему на начальном этапе ИП лучше ООО
3. Что делать, если партнёров несколько

Если вы – начинающий или уже опытный фрилансер и подумываете о работе «в белую», но ещё точно не определились с вопросами «Стоит ли оно того?» и «ИП или ООО?», вэлком
под кат
Total votes 371: ↑361 and ↓10+351
Comments183

Отладка PHP приложений на удаленном хосте при помощи XDebug и vim в Linux

Reading time5 min
Views14K

Введение


В PHP приложениях отладка при помощи var_dump, debug_backtrace и прочих полезных функций не всегда удобна, и возникает потребность в полноценном отладчике. Эта статья — для тех, кто по каким-либо причинам не хочет использовать IDE, поддерживающие отладку PHP приложений из коробки, вроде NetBeans или PhpStorm, а хочет использовать для этих целей vim, и при этом отладка происходит на удаленном хосте.
Читать дальше →
Total votes 39: ↑33 and ↓6+27
Comments31

Алгоритмы используемые при сжатии данных

Reading time4 min
Views46K
Вступление

Одна из самых главных проблем при работе с данными — это их размер. Нам всегда хочется, что бы уместилось как можно больше. Но иногда этого не сделать. Поэтому нам на помощь приходят различные архиваторы. Но как они сжимают данные? Я не буду писать о принципе их работы, лишь расскажу о нескольких алгоритмах сжатия, которые они используют.
Читать дальше →
Total votes 70: ↑46 and ↓24+22
Comments8

Cmake — собираем переносимые приложения для Mac Os X и Windows

Reading time4 min
Views17K
image
Рано или поздно наступает тот момент, когда приложения из наших лабораторий, полных чудес, вкусных библиотек и красивых фреймворков начинают проситься в большой мир, на компьютеры простых людей, не искушённых в магии. На их компьютерах не то, что не стоят наши новомодные фреймворки и средства разработки, там даже простого компилятора днём с огнем не сыщешь. Не может наше приложение жить без библиотек, которые так редко встречаются в дикой природе, зачахнет оно без них, никогда не видать ему белого света…
Но не всё так печально.
За подробностями под хабракат
Total votes 32: ↑31 and ↓1+30
Comments15

Список ресурсов для изучения Ассемблера

Reading time4 min
Views439K
Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

… но оказалось, что найти материал по интересующей теме не так просто, как хотелось бы. Посему решено было создать на хабре пополняющийся пост-индекс статей/книг/мануалов/etc. об этом, несомненно, великом языке.
Под катом находится, собственно, список с краткими комментариями, разбитый по категориям.

UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Читать дальше →
Total votes 135: ↑130 and ↓5+125
Comments46

std::stringstream и форматирование строк

Reading time3 min
Views241K
Ввод и вывод информации — критически важная задача, без выполнения которой любая программа становится бесполезной. В C++ для решения данной задачи традиционно применяются потоки ввода-вывода, которые реализованы в стандартной библиотеке IOStream.

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

В библиотеке IOStream есть также класс stringstream, который позволяет связать поток ввода-вывода со строкой в памяти. Всё, что выводится в такой поток, добавляется в конец строки; всё, что считыватся из потока — извлекается из начала строки.

Он позволяет делать весьма забавные вещи, например, осуществлять преобразование типов:

Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments32

Линейная алгебра для разработчиков игр

Reading time19 min
Views782K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18+278
Comments61

Пишем свой сервис авто-обновлений

Reading time7 min
Views22K
Большинство разработчиков stand-alone приложение рано или поздно сталкиваются с проблемой доставки обновлений для своего приложения. В этой статье я постараюсь решить эту проблему наилучшим, на мой взгляд, способом — написать свой собственный универсальный сервис авто-обновлений, который будет висеть в процессах в единственном экземпляре и доставлять обновления для всех подписавшихся приложений.

Существует несколько готовых решений для .NET, но самое актуальное — это ClickOnce. Эту технологию уже нельзя назвать новой, однако серьёзное развитие, на мой взгляд, она получила не так давно, и не обладает исчерпывающим функционалом.
Если вы не хотите изобретать велосипед, то советую вам пристально изучить возможности ClickOnce, и если вам будет достаточно предлагаемого функционала, то это определенно ваш выбор. Однако ClickOnce не панацея и далеко не всегда ею можно обойтись.

Сейчас же я хочу рассказать о своём видении механизма авто-обновлений. Я не претендую на истинность в последней инстанции, так что конструктивная критика и предложения в комментариях приветствуются.

UPD: Суть реализации заключается в том, чтобы уменьшить количество процессов и служб, которые занимаются обновлением. Если у вас несколько приложений, то все они смогут «получать» обновления от одного единственного Windows-сервиса. Не надо будет для каждого приложения запускать лаунчер, держать соединение с сервером обновлений. Теоретически в системе всеми обновлениями может заниматься один процесс, и возможно этим процессом скоро станет ClickOnce, если разработчики перестанут делать свои «велосипеды». А разработчики перестанут делать свои велосипеды тогда, когда им будет достаточно функционала ClickOnce. Сейчас, к сожалению, это не всегда так.

Итак задача


Пусть у нас есть несколько разных приложений, установленных на компьютере пользователя. Мне бы хотелось написать универсальный сервис авто-обновлений, чтобы потом я мог использовать его и в других приложениях. И все приложения обновлялись используя только одну службу, что сэкономило бы ресурсы при большом количестве софта. Так же желательно, чтобы в существующих приложениях мне потребовалось внести минимальные изменения для подключения и настройки авто-обновлений. Процесс обновления должен быть настраиваемый для каждого приложения.
далее
Total votes 36: ↑33 and ↓3+30
Comments26

Создаем оригинальные hover-эффекты при помощи CSS3

Reading time10 min
Views108K


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

Пожалуйста, обратите внимание, что эти примеры будут корректно работать только в современных браузерах, которые поддерживают свойства CSS3.
Читать дальше →
Total votes 198: ↑186 and ↓12+174
Comments47

Information

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