Обычно, беспроводные сети являются прерогативой открытых пространств (склады, цеха, площади) или небольших помещений (квартиры и малые офисы). Построение сети Wi-Fi крупного офисного/учрежденческого здания/гостиницы/больницы/школы — серьезная головная боль и немалые деньги. Но рецепты есть и здесь, и очень интересные. О них и поговорим.
digger @digger
Могу копать
Реализация пошаговой работы PHP-скрипта с помощью AJAX
5 min
48KИскал более-менее простое и универсальное средство для организации пошаговой работы скрипта, но так ничего и не нашел. Даже вопрос в QA задал, везде только общие фразы. Поэтому решил сам сделать такой инструмент.
Бывает необходимо обработать скриптом какой-то очень уж большой файл, например, для импорта. Естественно, время работы скрипта увеличивается пропорционально размеру файла или количеству строк в нем.
Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.

Принцип реализации давно известен — обмен данными между сервером и клиентом:
Клиент запускает скрипт, тот выполняет несколько итераций и возвращает клиенту номер строки, на которой он остановился. После этого клиент делает новый запрос, в котором передает скрипту этот номер и скрипт продолжает работу дальше.
Для чего это вообще нужно?
Бывает необходимо обработать скриптом какой-то очень уж большой файл, например, для импорта. Естественно, время работы скрипта увеличивается пропорционально размеру файла или количеству строк в нем.
Хотелось бы разбить обработку файла на несколько частей и запускать скрипт в работу уже по частям.

Принцип реализации давно известен — обмен данными между сервером и клиентом:
Клиент запускает скрипт, тот выполняет несколько итераций и возвращает клиенту номер строки, на которой он остановился. После этого клиент делает новый запрос, в котором передает скрипту этот номер и скрипт продолжает работу дальше.
+2
Pictonic — необычный иконочный шрифт
1 min
30K
В последнее время появилось множество иконочных шрифтов для нужд веб-дизайнеров, но такой как Pictonic я вижу впервые. Это «логотипный» иконочный шрифт, где собрано более 220 логотипов известных сервисов, браузеров, операционных систем, языков программирования и т.д. Среди символов конечно нет русскоязычных сервисов.
+76
Включение чего угодно по HTTP без заморочек c OpenWRT
15 min
307KTutorial

В комментариях к статье об опыте изготовления «интернет розетки» мое внимание привлекли два комментария. Один, в котором утверждалось, что такая штука, по сути, бесполезна, показался мне несправедливым — хорошо помню, как мне однажды понадобилось, например, дистанционно «ресетить» одну хитрую штучку и думаю, что я не одинок. А вот идея о том, что можно решить подобный вопрос проще и дешевле, использовав, например, TP-LINK TL-MR3020 + OpenWRT показалась мне дельной. Я решил к тому же обойтись без разборки устройства, программирования и микроконтроллеров — короче, сделать решение как можно доступнее. И у меня это почти получилось!
+80
Как стать богатым айтишником — еще одна мысль
7 min
52KПочитал я статьи уважаемых авторов, и решил написать кое-что от себя. Что меня сподвигло на это? Не знаю, скорее желание поделиться своим опытом и какими-то конкретными примерами из жизни.
Так что еще, кроме активов, пассивов и всего уже описанного?
Да, все то, что пишет автор первой статьи правильно. Сразу становится понятно, что автор ассоциирует себя с Петей, и старается быть на него похожим, описывает фактически себя в идеале. Но, чего не хватает в этой чудесной истории?
Так что еще, кроме активов, пассивов и всего уже описанного?
Да, все то, что пишет автор первой статьи правильно. Сразу становится понятно, что автор ассоциирует себя с Петей, и старается быть на него похожим, описывает фактически себя в идеале. Но, чего не хватает в этой чудесной истории?
+33
Как продавать свою программу
4 min
130KЕсли воспользоваться поиском, то окажется, что статей с таким заголовком много. Многие из них посвящены заработку в интернет, что естественно. Но писали их, во многих случаях, люди далекие от разработки ПО. Поэтому, там не раскрыты некоторые интересные детали процесса «Идея → Разработка → Продажа».

Начнём с самого начала…

Начнём с самого начала…
+8
Простой wifi бот для мониторинга помещений или «кухонное» роботостроение
7 min
264KTutorial
Вступление.
Сегодня у каждого из нас дома присутствует выделенная линия с весьма «толстым» каналом. Так же у большинства есть wifi роутер, и опять таки большинство из нас не заботится о его отключении когда уходим из дома. И действительно зачем? Протоколы защиты wifi весьма надежны, потребление роутера ничтожно. Следовательно ваш дом часто или всегда on-line. Но что это нам дает? Торентокачалки, личные разнообразные сервера и т.д.
Особо продвинутые из нас имеют умный дом с разнообразными «плюшками» и дистанционным мониторингом посредством интернета. Это правильное, но дорогое решение. Но все это есть смысл устанавливать только в своем жилье. В случае со съемным это абсурд.
Тем не менее обострения паранойи, гиперответственность или схожие факторы (вспомним классическую ситуацию – «А выключил ли я утюг?») создают нам определенный дискомфорт когда мы оставляем свое жилище. Особенно на длительный срок. Возникает вопрос – как так получается что квартира все время on-line, а я ничего не вижу и не контролирую. Странно.

+88
Почему иногда надо бить себя по рукам?
8 min
28K
Одна из главных проблем большинства стартаперов состоит в том, что они так и не становятся стартаперами: они просто не в состоянии закончить свой первый проект. Схожие трудности испытывают некоторые фрилансеры — у них не всегда выходит закончить проект в срок.
У этих проблем есть общее достаточно тривиальное решение. Но никто не решается отказаться от идеальности своего кода и вместо того, чтобы получить завершённый проект, обычно делают проект мечты.
Месяц назад наша команда, состоящая из полутора дизайнеров и полутора кодеров взяла первое место на региональном чемпионате по скоростной разработке игр. На разработку давалось всего 48 часов. Двое суток, целиком состоящих из кофе и нервов дали итогом самый завершённый из проектов конкурса. Я расскажу вам, что мне пришлось сделать с собой и своим желанием написать идеальный код, который не страшно будет показать людям.
+32
Что нужно делать смолоду или как стать богатым айтишником
7 min
631KTutorial

Статья написана после прочтения статьи Копи деньги смолоду или пара утверждений, легко проверяемых в Excel.
По моим наблюдениям, очень небольшой процент айтишников (как в прочем и других людей), знают главный принцип личного богатства (в хорошем смысле этого слова), а еще меньше его используют.
Нужно заметить, что три года назад, я и сам не знал этого принципа, и мне даже пришлось продать свою машину, чтобы выплатить долги. Но я не расстроился – я уже знал этот принцип и был уверен, что у меня получится стать богатым. Ведь если ты действуешь исходя из этого принципа, то настоящее богатство – лишь вопрос времени. И я не ошибся.
Не важно, кто ты – дизайнер или программист, но я уверен, если ты тоже последуешь ему, то станешь богатым.
+217
Определение части речи слова на PHP одной функцией
3 min
40KПрочитав пост http://toster.ru/2410/, я написал функцию, которая определяет из строки слов их части речи. Определение, конечно не 100%, но можно легко дорабатывать.
Функция возвращает массив значений групп:
Пример вызова функции:
Результат работы функции (массив):
Функция возвращает массив значений групп:
- 1. прилагательное
- 2. причастие
- 3. глагол
- 4. существительное
- 5. наречие
- 6. числительное
- 7. союз
- 8. предлог
Пример вызова функции:
print_r(chastrechiRUS('В небе летит красивый сверкающий самолёт'));
Результат работы функции (массив):
Array ( [0] => 8 [1] => 4 [2] => 3 [3] => 1 [4] => 2 [5] => 4 )
+45
«Умный дом» собственными руками v2
5 min
89KДобрый день, уважаемый %habrausername%!
Судя по предыдущим постам, многие из вас интересуются hand-made автоматизацей своего жилища. Я долго собирался с мыслями и идеями по итогам построения первого «умного дома» и теперь хочу поделиться своими наработками с вами.
Судя по предыдущим постам, многие из вас интересуются hand-made автоматизацей своего жилища. Я долго собирался с мыслями и идеями по итогам построения первого «умного дома» и теперь хочу поделиться своими наработками с вами.
+50
oDesk для начинающих
6 min
502KЗачем?
Вообще, идея этого поста пришла мне в голову в тот самый момент, когда я, не имея до этого за плечами полноценного опыта фриланса, решил всерьез освоить oDesk. Да, если кто не знает, oDesk — это одна из крупнейших в мире фриланс-бирж. Итак, дело было в июле этого года. Официальной работы к тому времени у меня уже полгода как не было, все подработки закончились, новых серьезных заказов не предвиделось, и oDesk представлялся мне весьма перспективным вариантом. Аккаунт, как водится, был зарегистрирован «про запас» еще за год до того, но висел все это время без дела, поэтому начинать нужно было с нуля. При этом я был почти уверен, что руководство, хотя бы самое краткое, на тему, как и с чего начинать, я где-нибудь (уж на Хабре-то точно!) да найду.Возможно, я плохо искал. Однако все, что мне попалось по теме, сводилось только к тому, что не нужно сразу загибать цены, лучше начинать с небольших. Примерная цитата: «начинайте с $10 в час, со временем, дорастете и до $15». Дорастать до $15, да еще и со временем, мне категорически не хотелось, я был уверен, что можно зарабатывать значительно больше. Да и кроме того, меня волновало огромное количество вопросов. Как заполнять профиль? На какие проекты откликаться? Как составлять cover letter? Как, черт побери, получить этот первый заказ, когда все тебе отказывают?
В тот момент я решил, что если все у меня получится, обязательно напишу то самое руководство для новичков, которого я не нашел.
+158
Подключение АТС Panasonic серии KX-TDE/TDA к E1tele.com
5 min
47KНа прошлой неделе в нашу компанию обратился клиент, который хотел подключить АТС Panasonic серии KX-TDE/TDA к нашему сервису. О том, какая у нас была задача, и как мы её решили и будет этот топик.
Наша задача: создать внутренним абонентам доступ к E1tele.com путем выхода на соответствующую транковую группу, используя номера быстрого набора. При этом входящие вызовы, проходящие через SIP плату на АТС, должны поступать на заранее определенный внутренний номер телефона или конкретному абоненту.
Наша задача: создать внутренним абонентам доступ к E1tele.com путем выхода на соответствующую транковую группу, используя номера быстрого набора. При этом входящие вызовы, проходящие через SIP плату на АТС, должны поступать на заранее определенный внутренний номер телефона или конкретному абоненту.
+3
Аппаратный блок сигнализации и умного дома с wifi/ethernet и 2 x usb host
2 min
34KПродолжая свой пост habrahabr.ru/post/136811 хочу представит сообществу проект аппаратной части для сигнализации, получения данных с датчиков, удаленного управления нагрузкой, подключения HD веб камеры для видео наблюдения и аудио колонок для воспроизведения сетевого радио или аудиофайлов с flash. Ethernet/wifi интерфейс, openwrt linux, 2 доступных host USB входа для подключения вебкамеры/колонок с интегрированным usb audio и т.п.

С учетом реальной цены в России на Raspberry Pi, выбор сделан в пользу MIPS платформы.
Возможность разрабатывать ПО на java, C/C++, lua, python, perl, php, ruby, shell скриптах — языках поддерживаемых openwrt. Разработка для платы ввода/вывода используя arduino подобную среду разработки maple или eclipse
Похоже есть раздолье, для разработчиков и порог вхождения невысокий — не требуется знание ассемблера и RTOS для быстрого старта.

С учетом реальной цены в России на Raspberry Pi, выбор сделан в пользу MIPS платформы.
Возможность разрабатывать ПО на java, C/C++, lua, python, perl, php, ruby, shell скриптах — языках поддерживаемых openwrt. Разработка для платы ввода/вывода используя arduino подобную среду разработки maple или eclipse
Похоже есть раздолье, для разработчиков и порог вхождения невысокий — не требуется знание ассемблера и RTOS для быстрого старта.
+6
Графовая база данных Neo4j в PHP
5 min
58KВ последнее время я все чаще слышу о NoSQL и о графовых базах данных в частности. Но воспользовавшись хабропоиском с удивлением обнаружил, что статей на эту тему не так и много, а по запросу «Neo4j», так вообще 4 результата, где косвенно упоминается это название в тексте статей.

Neo4j — это высокопроизводительная, NoSQL база данных основанная на принципе графов. В ней нет такого понятия как таблицы со строго заданными полями, она оперирует гибкой структурой в виде нод и связей между ними.
Уже более года я не использовал в своих проектах SQL, с того времени, как попробовал документо-ориентированную СУБД "MongoDB". После MySQL моей радости не было предела, как все просто и удобно можно делать в MongoDB. За год, в нашей студии создания сайтов, переписали тройку CMS, использующих основные фишки Mongo c её документами, и с десяток сайтов работающих на их основе. Всё было хорошо, и я уже начал забывать, что такое писать запросы в полсотни строк на каждое действие с БД и все бы ничего пока на мою голову не свалился проект с кучей отношений, которые ну никак не укладывались в документы. Возвращаться к SQL очень не хотелось, и пару дней я потратил чисто на поиск NoSQL решения, позволяющего делать гибкие связи — на графовые СУБД. И по ряду причин мой выбор остановился на Neo4j, одна из главных причин — это то, что мой движок был написан на PHP, а для неё был написан хороший драйвер "Neo4jPHP", который охватывает почти 100% REST-интерфейса, предоставляющегося сервером Noe4j.
Что такое Neo4j?

Neo4j — это высокопроизводительная, NoSQL база данных основанная на принципе графов. В ней нет такого понятия как таблицы со строго заданными полями, она оперирует гибкой структурой в виде нод и связей между ними.
Как я докатился до этого?
Уже более года я не использовал в своих проектах SQL, с того времени, как попробовал документо-ориентированную СУБД "MongoDB". После MySQL моей радости не было предела, как все просто и удобно можно делать в MongoDB. За год, в нашей студии создания сайтов, переписали тройку CMS, использующих основные фишки Mongo c её документами, и с десяток сайтов работающих на их основе. Всё было хорошо, и я уже начал забывать, что такое писать запросы в полсотни строк на каждое действие с БД и все бы ничего пока на мою голову не свалился проект с кучей отношений, которые ну никак не укладывались в документы. Возвращаться к SQL очень не хотелось, и пару дней я потратил чисто на поиск NoSQL решения, позволяющего делать гибкие связи — на графовые СУБД. И по ряду причин мой выбор остановился на Neo4j, одна из главных причин — это то, что мой движок был написан на PHP, а для неё был написан хороший драйвер "Neo4jPHP", который охватывает почти 100% REST-интерфейса, предоставляющегося сервером Noe4j.
+62
Быстрое развертывание небольших web-приложений на сервере посредством git push
2 min
23KКонтекст
Предположим мы поддерживаем небольшой web-проект. У нас есть песочница для разработки с git'ом, отладчиками и прочими полезными вещами. Сайт уже запущен, и код скопирован из песочницы на удаленный сервер. Код приходится иногда (а возможно и частенько) обновлять и дорабатывать. Любые изменения естественно обкатать в песочнице. И тут возникает вопрос: как максимально просто и удобно обновить код на сервере?
Первым же решением, пришедшим в голову, оказывается простая команда git push: мы пушаем в удаленный репозиторий и получаем обновленную версию кода на сервере. Но не все так просто.
+6
Mikrotik + IPSec + Cisco = Мир, Дружба, Жвачка
5 min
137KТехническая задача: организовать ipip-тоннель между офисами, с шифрованием ipsec, при помощи Mikrotik RB450G и Cisco 2821.
Ньюансы
- последняя версия софта на микроте (5.20)
- тип тоннеля на циске IPIP
- тип трансформы «transport», вместо «tunnel»
Исходные данные
- Cisco 2821 (OS v12.4)
- 2. Mikrotik RB450G
- 3. Реальные внешние IP на обоих устройствах
- 4. Адрес циски: 77.77.77.226. Подсеть со стороны циски: 10.192.0.0/22
- 5. Адрес микротика: 88.88.88.2. Подсеть со стороны микротика: 192.168.88.0/24
Предыстория
Столкнулся по работе с необходимостью замены серверов в наших филиалах, на что-нибудь более надёжное, аппаратное.
Связь у нас с центральным офисом осуществляется через тонели с шифрованием ipsec. В центральном офисе у нас, собственно всё на кошкообразных построено, а в большинстве филиалов стоят обычные сервера под FreeBSD, которые цепляются тонелями, с помощью racoon.
Встала задача, в связи с устареванием, выходом из строя самих серверов, начать устанавливать простые, недорогие аппаратные решения.
Братья по-разуму, коллеги и форумы натолкнули меня на изделия Mikrotik, и сразу же я направил к ним письмо следующего содержания:
+28
Терабайты файлов веб-проекта — храним и раздаем
5 min
23KВсем привет!
В последнее время наметился интересный тренд — быстрое «распухание» веб-проектов до бесконечности. Объем данных многих популярных сайтов растет все быстрее и быстрее, их нужно куда-то девать, при этом эффективно бэкапить (весело будет, если файлы на 500Т потеряются :-) ), и конечно супербыстро раздавать клиентам, чтобы все их могли качать, качать, качать… на высокой скорости.
Для системного администратора задача даже редкого, ежедневного резервного копирования такого объема файлов навевает мысли о суициде, а менеджер веб-проекта просыпается в холодном поту от мысли о предстоящей профилактике датацентра на 6 часов (чтобы файлы перевести из одного датацентра в другой нужно пару раз загрузить багажник автомобиля винчестерами :-) ).
Коллеги с умным видом советуют приобрести одно из решений от NetApp, но, жаль, что бюджет у проекта в 1000 раз меньше, это вообще стартап… что делать будем?
В статье хочу разобрать частые кейсы дешевого и дорогого решения данной задачи — от простого к сложному. В конце статьи расскажу как задача решена в нашем флагманском продукте — всегда полезно сравнивать opensource-решения с коммерческими, мозгам нужна гимнастика.
В последнее время наметился интересный тренд — быстрое «распухание» веб-проектов до бесконечности. Объем данных многих популярных сайтов растет все быстрее и быстрее, их нужно куда-то девать, при этом эффективно бэкапить (весело будет, если файлы на 500Т потеряются :-) ), и конечно супербыстро раздавать клиентам, чтобы все их могли качать, качать, качать… на высокой скорости.
Для системного администратора задача даже редкого, ежедневного резервного копирования такого объема файлов навевает мысли о суициде, а менеджер веб-проекта просыпается в холодном поту от мысли о предстоящей профилактике датацентра на 6 часов (чтобы файлы перевести из одного датацентра в другой нужно пару раз загрузить багажник автомобиля винчестерами :-) ).
Коллеги с умным видом советуют приобрести одно из решений от NetApp, но, жаль, что бюджет у проекта в 1000 раз меньше, это вообще стартап… что делать будем?
В статье хочу разобрать частые кейсы дешевого и дорогого решения данной задачи — от простого к сложному. В конце статьи расскажу как задача решена в нашем флагманском продукте — всегда полезно сравнивать opensource-решения с коммерческими, мозгам нужна гимнастика.
+15
Отдаем файлы эффективно с помощью PHP
3 min
286KЕсли Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
+84
Практическое применение MSP430 для web-разработчика
8 min
56KНа хабре предостаточно статей для начинающих о том, какой волшебный и замечательный этот MSP430 LaunchPad от Texas Instruments. Однако дальше стандартной мигалки светодиодом обычно никто не заходит. Пора исправлять эту ситуацию.
Работая в команде, мы пользуемся старым добрым SVN для контроля версий. Казалось бы, причём тут микроконтроллеры?
Как раз для сигнализации очередного коммита в репозиторий я и приспособил эту дивную штуковину.

Работая в команде, мы пользуемся старым добрым SVN для контроля версий. Казалось бы, причём тут микроконтроллеры?
Как раз для сигнализации очередного коммита в репозиторий я и приспособил эту дивную штуковину.

+21
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity