Pull to refresh
28
0
Шамов Андрей @lomaster

Веб-разработчик

Send message

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

Reading time2 min
Views23K
Для многих начинающих провайдеров достаточно сложно задачей становится подбор необходимого оборудования для легальной деятельности. Сразу предупреждаю пинать на тему выбора оборудования не надо, я ориентировался исключительно на свой опыт и наличие сертификатов для беспроблемного проектирования, последующей экспертизы проекта и сдачи в РосСвязьКомНадзор. Вот минимальный набор который я мог бы посоветовать:
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments36

Пост счастья — Jabber на своём сервере за 10 минут

Reading time2 min
Views11K
Публикую в персональный блог — потому что тут не будет подробного описания, инструкций и прочего.

Это просто пост счастья человека, открывшего для себя Jabber с другой стороны.

Суть в том, что мне понадобился свой Jabber-сервер на Debian с https-соединением для параноидального общения из офиса по ICQ.

С прошлых экспериментов помнил, что Jabber-сервер — штука сложная, хитрая и не всегда податливая без чтения мануалов.

Но в этот раз я решил начать не с eJabberd и прочего, а с imageOpenFire.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments10

AMD Brook+: с места в карьер

Reading time3 min
Views2.8K
Про nVidia CUDA хабровчане уже наслышаны, теперь настал черед и AMD Brook+. Brook+ позволяет вам писать программы на С и запускать их на видеокартах AMD (ну и как опция — автоматически можно сгенерировать CPU версию со средним качеством кода). Достижимая производительность — порядка 600млрд операций на AMD 4870.

NB: Статья — краткое введение, не стоит ожидать освещения тут всех аспектов программирования на Brook+ :-)
Читать дальше
Total votes 32: ↑29 and ↓3+26
Comments14

Разгон Firefox при помощи TmpFS

Reading time4 min
Views12K
Firefox использует SQLite для хранения большинства служебной информации, что делает его работу заметно медленнее. Во время доступа к своей SQLite-базе, Firefox «замирает», когда другие процессы в системе активно используют IO-операции с диском.
Однако, есть решение по переносу профиля Firefox в раздел RAM, используя TmpFS.
Далее - для любителей экспериментов.
Total votes 28: ↑28 and ↓0+28
Comments82

Пульт ДУ для ПК

Reading time1 min
Views5.3K
Однажды мне надоело каждый раз вставать с дивана, чтобы поставить на паузу фильм или трек. И озадачился я выбором пульта ДУ для ПК. Поиск по гуглу показал, что есть множество готовых решений (например такое: http://irlink.ru) но, как мне показалось, везде используется свой проприетарный софт, работающй только под Win. Такое положение дел меня не устраивает, т.к. я использую Ubuntu.
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments98

Еще десять маленьких программ, с которыми уютно

Reading time4 min
Views13K
Всем привет.
В этом посте я опишу несколько маленьких и удобных windows-программ, к тому же абсолютно бесплатных. Предыдущий пост вызвал бурную дискуссию, в результате которой, как водится, родилась истина :)
Итак, этот пост — дань благодарному хабрасообществу — в комментариях по крупицам собрались полезные программки, о которых, возможно, мы бы никогда и не услышали. Заранее извинюсь перед людьми, которые предлагали свои программы, не вошедшие в этот обзор — в каментах было много утилит, так или иначе дублирующих функции друг друга, и опробовать их все, сравнить и разложить по полочкам — задача для википедии. :)
Ну что ж, от слов к делу.

01) Сворачиваем окно в заголовок и не только — куча возможностей в обмен на 90 килобайт
02) Сворачиваем окно в трей правым кликом по «крестику»
03) Создаем виртуальные рабочие столы — теперь с помощью бесплатной программы
04) Двигаем кнопки окон на панели задач как табы в браузере
05) Клейкие листочки на рабочем столе — когда не хочется заносить в ToDo
06) Мини-консоль для быстрого запуска программ по алиасам
07) Мгновенный поиск по компьютеру — программа-индексатор жесткого диска
08) Копируем текст откуда угодно, даже из рисунков
09) создаем хранилище заметок с вложениями посредством быстрой и бесплатной программы
10) управляем буфером обмена — теперь можно запомнить больше!

Поподробней...
Total votes 132: ↑117 and ↓15+102
Comments122

Раздача инвайтов на Camspace — системы управления компьютером с помощью веб-камеры.

Reading time1 min
Views710

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

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

Поэтому, вы скачиваете программу, она выдает вам уникальный идентификатор оборудования, сообщаете в комментариях и я говорю ваш регистрационный код. Сколько получится раздать кодов не знаю, но думаю тут есть и другие, кого уже пригласили на бета-тестирование и они присоединятся.
Update: На сегодня закончились, ищутся другие зарегистрированные пользователи.
Update 2: Отдельное спасибо и множественные плюсы в карму kurokikaze.
Total votes 24: ↑19 and ↓5+14
Comments54

Ресурсы по программированию панели задач для Windows 7

Reading time1 min
Views2.2K
В течении последнего месяца я публиковал статьи о том, каким образом мы можем программировать панель задач в Windows 7. В этом месте я бы хотел собрать ссылки на все ресурсы.
Читать дальше →
Total votes 78: ↑55 and ↓23+32
Comments22

Оформление кода, оптимизация процесса проверки качества кода

Reading time5 min
Views36K

JavaScript, the winning style



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

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

В отличие от Питона у которого есть единый свод правил «Style Guide for Python Code», у языка JavaScript такого нет. Однако на выбор есть целых 6 популярных гайдов:



Помимо гайдов, не стоит так же забывать об автоматических анализаторах кода, таких, например, как JSLint и JSHint. И в них уже заложены свои настройки. Вопрос в том, какой же все-таки максимально правильный способ писать код на JavaScript, который был бы актуален и максимально соответствовал бы большинству рекомендаций? Давайте попробуем объединить большинство рекомендаций в этой статье и подумаем как можно оптимизировать процесс проверки качества кода.
Читать дальше →
Total votes 59: ↑54 and ↓5+49
Comments61

Восстановление расфокусированных и смазанных изображений. Практика

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

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

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →
Total votes 459: ↑456 and ↓3+453
Comments141

HTML5 History API уже сегодня и без ограничений

Reading time6 min
Views63K

Библиотека для работы HTML5 History API


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

На сегодняшний день библиотеку я могу смело назвать, на мой взгляд, полноценно законченной. Конечно же, ошибкам в работе библиотеки думаю, место будет, тестировалась библиотека мною в разных условиях и браузерах, но как вы понимаете, все не уловишь, да что-то упустишь. И так давайте приступим к описанию возможностей и тонкостей библиотеки.
Читать дальше →
Total votes 85: ↑84 and ↓1+83
Comments49

Mele A1000 — интересный конкурент Raspberry Pi

Reading time1 min
Views26K


Если вы помните, мини-компьютер Raspberry Pi продается в двух версиях, за 25 и 35 долларов США. Вероятно, это самый дешевый миниатюрный ПК в мире. Тем не менее, успех Raspberry Pi побудил и других производителей создавать подобные компьютеры. Компания Mele представила собственную версию мини-ПК, который может стать конкурентом Raspberry Pi.

Читать дальше →
Total votes 66: ↑61 and ↓5+56
Comments85

Пусть утро станет добрым или Sleep as Android

Reading time4 min
Views158K
Доброго времени суток!
Как известно, утро добрым не бывает, но аудитория хабрахабра знает, что сон можно обхитрить, и проснуться полным сил для нового дня. Выделю три группы высыпающихся людей, кто-то просто много спит, другие правильно готовятся ко сну, третьи пользуются хитрыми будильниками. С недавних пор, я переехал из разряда не высыпающихся в группы пользователей будильников с фазами сна. На переезд было затрачено минимум усилий, потребовалась лишь бесплатная программа для моего android смартфона.

Upd. Владельцы iOS и Windows Phone 7.5 не остались забытыми.
Читать дальше →
Total votes 81: ↑71 and ↓10+61
Comments151

Библиотека для регистрации и отлова нажатий 'горячих' комбинация клавиш

Reading time3 min
Views6.2K
Под комбинацией клавиш понимается любое количество одновременно нажатых клавиш, нажатых в любом порядке, которое может позволить ваша клавиатура. Для конечного пользователя, однако, не стоит превышать количество более пяти в одной комбинации, т.к. игровые клавиатуры есть не у всех.

Пример использования

HotKeysManager manager = new HotKeysManager();
manager.AddHotKey(new HotKeyCombination(() => { MessageBox.Show("Привет, Хабр!"); }) { Keys.LControlKey, Keys.H });

Другой вариант добавления, где в качестве комбинации берутся текущие нажатые клавиши, удобно в случае когда пользователь назначает комбинацию сам. В демке есть пример подобной записи комбинаций.
manager.AddHotKey(new HotKeyCombination(HookManager.CurrentDownedKeys.ToArray(), () => { MessageBox.Show("Привет, Хабр!"); }));


Теперь при нажатии комбинации LeftCtrl+H (или H+LeftControl), мы увидим приветственное сообщение.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments7

Равномерное выравнивание блоков по ширине

Reading time4 min
Views18K
Продолжая свои «css-раскопки» возникла новая идея, разобрать по косточкам ещё одну актуальную тему, которая касается равномерного выравнивания блоков по ширине. В принципе мои доскональные исследования я уже запостил у себя в блоге, но так как прошлая моя работа очень понравились Хабра-сообществу, то я решил сделать здесь небольшой краткий обзорчик этой статьи, чтобы ни одна хабра-душа не пропустили её наверняка. Так что, как говорил Гагарин: «Поехали».

В общем в задачах вёрстки периодически возникают моменты, когда появляется необходимость выровнять какой-нибудь список по ширине экрана. При этом пункты этого списка должны выравниваться равномерно, прижимаясь своими крайними элементами к границам контейнера, а расстояние между ними должно быть одинаковым.
image
Читать дальше →
Total votes 172: ↑163 and ↓9+154
Comments87

Simplify.js — JavaScript-библиотека для упрощения ломаных линий

Reading time2 min
Views10K
Рад представить вашему вниманию еще одну крохотную, но полезную open-source-утилиту своего авторства — Simplify.js.



Simplify.js — очень быстрая реализация упрощения ломаных линий на JavaScript. Изначально написав ее для Leaflet (библиотеки для интерактивных карт), после небольшого эксперимента по оптимизации захотелось выпустить ее в качестве отдельной библиотеки без зависимостей, которую можно использовать как в браузере, так и на серверных платформах, таких, как Node.js, и применять и для 2D, и для 3D-точек.

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

Читать дальше →
Total votes 134: ↑129 and ↓5+124
Comments57

JavaScript. Оптимизация: опыт, проверенный временем

Reading time10 min
Views41K

Предисловие


Давно хотел написать. Мысли есть, желание есть, времени нету… Но вот нашлось, так что привет, Хабра.
Здесь я собрал все идеи, которые помогали и помогают в разработке веб-приложений. Для удобства я разбил их на группы:
  1. Память
  2. Оптимизация операций
  3. Выделение критических участков
  4. Циклы и объектные свойства
  5. Немножко о DOM
  6. DocumentFragment как промежуточный буфер
  7. О преобразованиях в объекты
  8. Разбитие кода
  9. События перетаскивания
  10. Другие советы

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

Память

Хоть это и не должно волновать клиентского программиста, но не забываем, что память всё-таки не бесконечна и когда-нибудь может закончиться, например, когда запущено несколько массивных программ: офис, графический редактор, компиляция большой программы и др. Несмотря на то, что приведенный пример тривиален, у меня действительно такое случилось, хоть и не из-за браузера, но он тоже сыграл свою роль: 1,3 Гб оперативы (отладчик, около 30 вкладок), начались тормоза по перегрузке страниц ОП в файл подкачки.
Чтобы уменьшить расход памяти, я предлагаю несколько способов:
Читать дальше →
Total votes 113: ↑92 and ↓21+71
Comments99

О разработке специальной версии сайта Госдумы для людей с нарушениями зрения

Reading time8 min
Views2K
Из серии статей о новинках на сайте Государственной Думы. Предыдущие: первая, вторая и третья.

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

Адрес спецверсии: spec.duma.gov.ru

Всю разработку специальной версии можно логически разделить на 4 этапа:
  1. Анализ действующих стандартов и ГОСТ-ов;
  2. Анализ существующих решений;
  3. Обобщение проанализированных данных;
  4. Разработка сайта.
Но вначале, приведем некоторые цифры по проблеме зрения в России и мире.
Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments33

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

Reading time30 min
Views371K


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



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





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



Читать дальше →
Total votes 488: ↑479 and ↓9+470
Comments152

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity