Добрый день, уважаемые хабровчане. Так как в последнее время в DIY-проектах стал набирать популярность китайский роутер фирмы TP-Link TL-MR3020 (или его аппаратный аналог для китайского рынка TL-WR703N), я решил написать статью по вариантам его допиливания и конфигурирования для своих проектов, тем более что по работе я развлекался с ним последние несколько месяцев. В статье я постараюсь рассмотреть аспекты, которые не охватывают в большинстве статей для начинающих – а именно – практические примеры по пересборке его прошивки и конфигурировании для себя удобного инструментария разработчика.
Сергей Сильнов @kumekay
Пользователь
Велосипеды на Javascript и jQuery
4 min
76KTutorial
В очередной раз открыв код коллег и ужаснувшись, я решил написать эту статью. Надеюсь для кого-нибудь это будет полезным, заодно и мне будет проще новичкам объяснять что у них в коде не так, просто кинув ссылку на эту статью.
Безусловно количество таких вещей очень и очень велико, поэтому в статье ограничусь лишь некоторыми.
Безусловно количество таких вещей очень и очень велико, поэтому в статье ограничусь лишь некоторыми.
+234
Манифест Мастера / The Fixer’s Manifesto
2 min
186KTranslation
От переводчика: недавно я купил часы с лазерным проектором и прочёл в инструкции привычную фразу: «Запрещено ремонтировать самостоятельно». Раньше в инструкциях писали, что при самостоятельном ремонте производитель отказывается от гарантийных обязательств. Это наглость, но можно понять. Сейчас они прямо запрещают разбирать устройство, даже не объясняя почему. То есть просто выкинь и купи новое. Полный беспредел потребительской культуры.
Ремонт вещей — самая распространённая, незаметная и прекрасная форма креативности. Нужно с гордостью верить в это. Нужно замечать и праздновать эти маленькие повседневные успехи, и помогать другим ценить их. Мы составили этот манифест, чтобы инициировать обсуждение о важности культуры починки вещей.
+151
Приемы написания скриптов в Bash
7 min
173KАдминистраторам Linux писать скрипты на Bash приходится регулярно. Ниже я привожу советы, как можно ускорить эту работу, а также повысить надежность скриптов.
Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
Например, в свете совета 2 можно написать такую функцию:
Совет 1
Не пишите скриптов, которые выполняют действия ничего не спрашивая. Такие скрипты нужны довольно редко. А вот всевозможного «добра» для копирования, синхронизации, запуска чего-либо, хоть отбавляй. И если в любимом Midnight Commander Вы вдруг нажали не на тот скрипт, то с системой может произойти все что угодно. Это как правила дорожного движения — «написано кровью».Совет 2
Отталкиваясь от предыдущего, в начало каждого скрипта неплохо помещать что-то вроде:read -n 1 -p "Ты уверен, что хочешь запустить это (y/[a]): " AMSURE
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2
Команда echo, кстати, здесь нужна потому, что после нажатия кнопки <y> у вас не будет перевода строки, следовательно, следующий любой вывод пойдет в эту же строку.Совет 3
Это ключевой совет из всех. Для того, чтобы не писать каждый раз одно и то же — пользуйтесь библиотеками функций. Прочитав много статей по Bash, я вынужден констатировать, что этой теме уделяется мало внимания. Возможно в силу очевидности. Однако я считаю необходимым напомнить об этом. Итак.Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
Например, в свете совета 2 можно написать такую функцию:
+45
CSS анимации на реальном проекте
9 min
92KВсё чаще среди веб-разработчиков поднимается тема возможностей CSS анимаций (transition/animation), практически на каждой конференции по клиентской разработке можно услышать о потрясающих преимуществах новой технологии.
Производительность и гибкость CSS анимаций позволяет творить удивительные вещи, но можно ли уже использовать эти новые возможности в силу их нестабильности и незрелости на реальных больших проектах?
В этом посте мы расскажем, почему так важно начинать использовать новые технологии клиентской разработки уже сегодня и о трудностях, которые могут ждать вас на пути.
+79
USB TV-тюнеры на rtl2832 — или как услышать в радиоэфире все за 600 рублей
5 min
503KДавно я собирался купить какой-нибуть универсальный радиоприемник/радиосканер, чтобы полазить по эфиру, послушать о чем говорят ночью матёрые и бородатые радиолюбители…
До недавнего времени, это удовольствие обходилось от 300$ и до бесконечности. Ну а с переходом гос.органов (и России и за бугром) на цифровую (но пока еще не зашифрованную) связь APCO P25 стоимость удовлетворения нездорового любопытства стала ещё выше.
Год назад все изменилось — умельцы выяснили, что многие из продающихся у нас китайских USB TV-тюнеров за 600 рублей — фактически являются универсальным радиоприёмником, на который без каких-либо доработок можно послушать практически все-что угодно в диапазоне 50-900Мгц (если повезет — до 2200Мгц, но там голосом особо ничего не передают): переговоры самолётов с диспетчерами, строителей, такси, жучки в вашей квартире и многое другое.
Под катом я расскажу что и где покупать, как подключить и настраивать, ну и наконец — что можно послушать.
До недавнего времени, это удовольствие обходилось от 300$ и до бесконечности. Ну а с переходом гос.органов (и России и за бугром) на цифровую (но пока еще не зашифрованную) связь APCO P25 стоимость удовлетворения нездорового любопытства стала ещё выше.
Год назад все изменилось — умельцы выяснили, что многие из продающихся у нас китайских USB TV-тюнеров за 600 рублей — фактически являются универсальным радиоприёмником, на который без каких-либо доработок можно послушать практически все-что угодно в диапазоне 50-900Мгц (если повезет — до 2200Мгц, но там голосом особо ничего не передают): переговоры самолётов с диспетчерами, строителей, такси, жучки в вашей квартире и многое другое.
Под катом я расскажу что и где покупать, как подключить и настраивать, ну и наконец — что можно послушать.
+130
Распознаём изображение с токена при помощи камеры
3 min
33KВ организации, где я тружусь в свободное от отдыха время, очень высокие требования к безопасности. Везде, где только можно, для аутентификации пользователей используются токены. Мне выдали вот такую вот штуку:
и сказали: жмёшь кнопку, смотришь цифры, вводишь пароль и радуешься. «Безопасность, конечно, превыше всего, но и о комфорте забывать не следует» — примерно так подумал я и провёл ревизию имеющегося у меня электронного хлама.
и сказали: жмёшь кнопку, смотришь цифры, вводишь пароль и радуешься. «Безопасность, конечно, превыше всего, но и о комфорте забывать не следует» — примерно так подумал я и провёл ревизию имеющегося у меня электронного хлама.
+166
Go Language. Небольшое клиент-серверное приложение
7 min
30KЭтот код написан с целью самообучения. Чтоб закрепить материал я решил немного прокомментировать проделанную работу.
Сразу скажу: на компилируемых языках не писал.
[к] — клиент
[c] — сервер
1. По установленному TCP соединению, [к] передает публичный ключ rsa.
2. При помощи принятого публичного ключа, [c] шифрует и отправляет сообщения [к]
3. [к] расшифровывает и выводит сообщения.
Вот как это выглядит в консоли:
Сразу скажу: на компилируемых языках не писал.
Что делает приложение
[к] — клиент
[c] — сервер
1. По установленному TCP соединению, [к] передает публичный ключ rsa.
2. При помощи принятого публичного ключа, [c] шифрует и отправляет сообщения [к]
3. [к] расшифровывает и выводит сообщения.
Вот как это выглядит в консоли:
+19
Сравниваем микроконтроллеры до 50 рублей: ARM жаждет крови
3 min
126KГода так 2 назад на одном из форумов по радиоэлектронике я попросил посоветовать, какой микроконтроллер изучать — и больше всего голосов было в поддержку AVR — популярных, 8-и битных МК, под которые легко писать, программатор можно сделать одной рукой (из проводов и резисторов)… Будущее было ясным и безоблачным, пока в 2009-м году не пошли новости про новые микроконтроллеры на ядре ARM Cortex-M0, которые должны были стоить меньше 1$ (во что в принципе никто не верил) и перекрыть кислород 8-и битным микроконтроллерам.
Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены — из terraelectronica.ru).
Сейчас на дворе середина 2011 года и пришла пора посмотреть, что и по какой цене у нас можно купить, и какая получается расстановка сил (цены — из terraelectronica.ru).
+100
Подробное руководство по установке Android-x86
3 min
250KЭмулятор который идет в комплекте с Android SDK, не очень шустрый.
Основная идея использовать VirtualBox + Android X86, для преодоления проблем с производительностью.
Что нам необходимо:
Среда разработки Eclipse + Android SDK тут,
а также VirtualBox.
Под катом много картинок, и процесс установки, а также некоторые полезные советы.
Основная идея использовать VirtualBox + Android X86, для преодоления проблем с производительностью.
Что нам необходимо:
Среда разработки Eclipse + Android SDK тут,
а также VirtualBox.
Под катом много картинок, и процесс установки, а также некоторые полезные советы.
+101
Компьютер-флэшка за $25
1 min
28KНа фото к компьютеру подключен 12-мегапиксельный камера-модуль
Конечно, в последнее время компьютеры сильно подешевели, но английский разработчик игр Дэвид Брабен* опустил планку до рекордного уровня. Созданный им сверхминиатюрный компьютер Raspberry Pi будет продаваться по цене всего лишь $25.
Это полноценный компьютер общего назначения под Ubuntu 9, с процессором ARM11 на 700 МГц, 128 МБ SDRAM, поддержкой OpenGL ES 2.0 и USB 2.0, композитным и HDMI видеовыходами, а также I/O портом общего назначения, куда можно подключить, например, видеокамеру.
+225
Пишем первое приложение для Android
8 min
554KВ любом деле самое сложное — это начало. Часто бывает тяжело войти в контекст, с чем столкнулся и я, решив разработать свое первое Android-приложение. Настоящая статья для тех, кто хочет начать, но не знает с чего.
Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).
Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.
Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).
Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.
+143
Команда dd и все, что с ней связано
4 min
614KВ UNIX системах есть одна очень древняя команда, которая называется dd. Она предназначена для того, чтобы что-то куда-то копировать побайтово. На первый взгляд — ничего выдающегося, но если рассмотреть все возможности этого универсального инструмента, то можно выполнять довольно сложные операции без привлечения дополнительного ПО, например: выполнять резервную копию MBR, создавать дампы данных с различных накопителей, зеркалировать носители информации, восстанавливать из резервной копии данные на носители и многое другое, а, при совмещении возможностей dd и поддержке криптографических алгоритмов ядра Linux, можно даже создавать зашифрованные файлы, содержащие в себе целую файловую систему.
Опять же, в заметке я опишу самые часто используемые примеры использования команды, которые очень облегчают работу в UNIX системах.
+307
Как быстро проверить Linux сервер на предмет взлома
4 min
127KПримерно два года назад я арендовал у одного немецкого хостера не очень мощный сервер на базе Centos 5.2. На нём живут несколько вебпроектов, приносящих некоторую прибыль, и поэтому, я стараюсь присматривать за ним по мере возможности.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:
В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:
--------------------- yum Begin ------------------------ Packages Installed: lzo2 - 2.02-3.el5.rf.i386 dnstracer - 1.8-1.2.el5.rf.i386 openvpn - 2.0.9-1.el5.rf.i386 ---------------------- yum End -------------------------
В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.
+154
Amazon анонсирует сервис для отправки электронной почты (Amazon SES)
2 min
5.8KВчера получил письмо примерно следующего содержания:
Мы рады анонсировать бета-релиз Amazon Simple Email Service (Amazon SES) — хорошо масштабируемого и дешевого сервиса для отправки электронной почты для бизнеса и разработчиков. Amazon SES избавляет от необходимости построения собственного дорогостоящего и сложного решения или лицензирования, установки и обслуживания готового решения. Новый сервис интегрируется с другими сервисами Amazon (AWS), упрощая отправку писем из приложений, работающих на таких платформах как Amazon EC2. С Amazon SES не нужно заключать долгосрочные договора и проводить согласования — просто наслаждайтесь низкими тарифами за количество отправленных писем + траффик.
+30
Выбираем сервис массовых почтовых рассылок
4 min
71KПривет, Хабр!
В этом топике я бы хотел рассмотреть три сервиса, чтобы читатель мог определиться, какой из них более подойдет для его бизнеса. Несмотря на то, что двое из испытуемых являются комплексными системами ведения маркетинга, я заострю внимание лишь на возможности проведения массовых почтовых рассылок. В роли кандидатов выступают следующие сервисы:
Изображения кликабельны.
В этом топике я бы хотел рассмотреть три сервиса, чтобы читатель мог определиться, какой из них более подойдет для его бизнеса. Несмотря на то, что двое из испытуемых являются комплексными системами ведения маркетинга, я заострю внимание лишь на возможности проведения массовых почтовых рассылок. В роли кандидатов выступают следующие сервисы:
Изображения кликабельны.
+11
Unity — бесплатный кроссплатформенный 3D движок (и браузерный тоже)
7 min
95KПреамбула
Итак, сегодня я хотел бы рассказать вам о Unity (тем, кто ещё не знаком с ним, по крайней мере). Безусловно, на Хабре есть люди, которые знают, что это такое, но поиск выдаёт катастрофически малое количество топиков с упоминанием сабжа — два из них просто сообщают о новых версиях, один кратко презентует и ещё один посвящен всё-таки его использованию. «Непростительно, надо это исправить!», — подумал я, и решил написать краткий презентейшн с целью популяризации технологии. Если вы уже в теме — дальше можете не читать.
Честно говоря, когда я читал на википедии о бесплатном (по крайней мере, с вполне нормальной по функционалу фришной лицензией) 3d движке с нормальным IDE, встроенной нормальной физикой, аудио-движком и прямой реализацией сетевого мультиплеера на котором можно делать приложения для всего, кроме, пожалуй, nix'ов (поддерживаются и нормально работают Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3, XBox 360), я уже чуял подвох.
+80
Suggest.io. Понимать с первой буквы. Часть вторая
5 min
835С месяц назад мы уже писали о сервисе контекстных подсказок Suggest.io (http://habrahabr.ru/blogs/startup/110509/). Первая волна бета тестирования прошла успешно, мы решили расширить возможности сервиса.
+22
Учёт интернет-трафика арендаторов (netflow)
4 min
23KПо вопросу статистики в общем, и netflow в частности, есть довольно много довольно обширных статей (изучение которых требует приличного времени). Здесь я приведу свои скрипты as-is для не очень сложного ТЗ по сбору и отправке месячной статистики арендаторам.
Несколько арендаторов получают интернет через NAT (сам NAT завязан через policy-routing на двух провайдеров). У каждого арендатора свой вилан. Вилан «разворачивается» в сеть арендатора через управляемый коммутатор. Каждому арендатору выдаётся свой сегмент локальной сети с запретом ходить в соседние сегменты.
Задача: сказать каждому арендатору и управляющему зданием в конце месяца сколько он съел интернетов и ткнуть на тех пользователей, кто перепользовал слишком много трафика. Т.е. нам нужны: суммарная статистика по сегменту, потребление интернета каждым адресом (destination) в учитываемой сети.
Инструменты: используется netflow на циске, flow-tools на линуксе, MTA, cron.
Вводная
Несколько арендаторов получают интернет через NAT (сам NAT завязан через policy-routing на двух провайдеров). У каждого арендатора свой вилан. Вилан «разворачивается» в сеть арендатора через управляемый коммутатор. Каждому арендатору выдаётся свой сегмент локальной сети с запретом ходить в соседние сегменты.
Задача: сказать каждому арендатору и управляющему зданием в конце месяца сколько он съел интернетов и ткнуть на тех пользователей, кто перепользовал слишком много трафика. Т.е. нам нужны: суммарная статистика по сегменту, потребление интернета каждым адресом (destination) в учитываемой сети.
Инструменты: используется netflow на циске, flow-tools на линуксе, MTA, cron.
+5
Как тратить меньше времени на просмотр видео и прослушивание аудиокниг
3 min
58KНесколько лет назад я заметил, что некоторые фильмы смотреть просто не могу. И не из-за страшных сцен или унылого сюжета, а из-за ощущения сильной затянутости действия. Оно, может и не замедленное, а вполне себе происходит в реальном времени… Но я могу воспринимать эту информацию куда быстрее.
И вот, однажды, нажал я волшебную кнопку в VLC.
Это была кнопка ускорения. Оказалось, что при ускорении в 1.5, а то и в два раза фильм смотреть вполне возможно. И это несмотря на то, что в той, старой, версии VLC, кнопка увеличивала именно скорость, то есть заодно увеличивалась и высота всех звуков. В новых версиях VLC увеличивается темп, а не скорость, то есть искажение высоты звука не чувствуется: просто видео становится короче.
Кино с важным наполнением так смотреть трудно. В некоторых случаях (например, фильм Космическая одиссея 2001 года) просто кощунственно включать ускорение.
А вот большинство мыльных пузырей с большим удовольствием надуваются и лопаются в полтора-два раза быстрее. Преградами могут послужить лишь некачественная озвучка (закадровый перевод) и производительность вашего компьютера.
Остаётся нажать кнопку "+" на клавиатуре, когда VLC откроет файл, и почувствовать на своих ушах, что я описываю. Экспериментируйте! Какое ускорение выдержит ваш мозг? +)
UPD: В VLC можно изменять скорость более плавно, с шагом 0.1x. Для этого используйте клавиши "[" и "]".
Если книга состоит из нескольких mp3 файлов и вы собираетесь слушать её на компьютере, то можно пользоваться тем же VLC.
Но мне чаще доводилось встречать аудиокниги из десятка-другого, а то и сотни mp3 файлов. И слушать всё это хочется на плеере, который изменять темп не умеет.
И вот, однажды, нажал я волшебную кнопку в VLC.
Фильмы, сериалы, лекции
Это была кнопка ускорения. Оказалось, что при ускорении в 1.5, а то и в два раза фильм смотреть вполне возможно. И это несмотря на то, что в той, старой, версии VLC, кнопка увеличивала именно скорость, то есть заодно увеличивалась и высота всех звуков. В новых версиях VLC увеличивается темп, а не скорость, то есть искажение высоты звука не чувствуется: просто видео становится короче.
Кино с важным наполнением так смотреть трудно. В некоторых случаях (например, фильм Космическая одиссея 2001 года) просто кощунственно включать ускорение.
А вот большинство мыльных пузырей с большим удовольствием надуваются и лопаются в полтора-два раза быстрее. Преградами могут послужить лишь некачественная озвучка (закадровый перевод) и производительность вашего компьютера.
Остаётся нажать кнопку "+" на клавиатуре, когда VLC откроет файл, и почувствовать на своих ушах, что я описываю. Экспериментируйте! Какое ускорение выдержит ваш мозг? +)
UPD: В VLC можно изменять скорость более плавно, с шагом 0.1x. Для этого используйте клавиши "[" и "]".
Радиопостановки, аудиокниги, подкасты
Если книга состоит из нескольких mp3 файлов и вы собираетесь слушать её на компьютере, то можно пользоваться тем же VLC.
Но мне чаще доводилось встречать аудиокниги из десятка-другого, а то и сотни mp3 файлов. И слушать всё это хочется на плеере, который изменять темп не умеет.
+50
Information
- Rating
- Does not participate
- Location
- Brno, Jihomoravsky Kraj, Чехия
- Date of birth
- Registered
- Activity