Просмотр видео на Android по сети напрямую из папки Windows через NFS

Есть Android и куча видео в папке на компьютере с Windows. Как смотреть видео не перекачивая фильмы на SD-карту? Можно подключить папку напрямую. Но в ядре нет поддержки smbfs/cifs, зато есть поддержка nfs. Установим на Windows nfs сервер и подключим в Android папку с фильмами.

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

Netgear WNR3500L: Опыт установки DD-WRT+Samba+Transmission

История покупки роутера Netgear WNR3500L похожа на поговорку автолюбителей: тюнинг автомобиля начинается после дтп. Так и в моем случае. Старенький и глючный D-Link DIR300 умер смертью храбрых (скорее всего перегрев от нагрузки). Так как работал он, мягко говоря, неудовлетворительно, было решено купить железку помощнее и посовременнее.

Среди претендентов оказались 3 модели: Asus N16, Linksys WRT160NL и Netgear WNR3500L. Все они удовлетворяли нескольким критериям: быстрый процессор, много оперативки, USB для подключения жесткого диска (организации подобия NAS). Несмотря на большую любовь к марке Linksys, выбор пал в сторону Netgear. Причина проста: линксисов попросту нигде не было в наличии, асус купили прямо у меня перед носом, а роутер был очень нужен. В качестве накопителя был выбран 3.5” WD Elements на 1.5ТБ.

WNR3500L позиционируется компанией Netgear как open source роутер. Самые популярные прошивки для него – это Tomato, OpenWRT и DD-WRT. Я остановился на DD-WRT. Она удовлетворяла меня как по скорости, так и по функционалу, который расширяется установкой пакетов Optware. В этом топике я постараюсь как можно полнее раскрыть вопрос установки и начальной настройки данного роутера с прошивкой DD-WRT.


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

Перестановка символьных значений местами без использования промежуточной переменной в PHP

PHP

Вводная


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

Есть несколько вариантов такой перестановки: «Перестановка через XOR», «Перестановка через арифметические вычитание и сложение», не буду приводить их здесь полностью, любопытные могут воспользоваться ссылкой в конце текста.

Собственно созерцание этих алгоритмов навело меня на мысль о возможности перестановки строковых (символьных) значений.

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

Chrome to phone — передача ссылок, номеров телефонов, текста на Android телефон из Google Chrome

У меня часто возникала потребность передать какую-нибудь небольшую, но сложную для ручного написания, информацию на телефон. Скажем с номерами телефонов проблем особо не возникало, в этом нет ничего сложного — набрать номер телефона, но скажем, необходимость перейти по ссылке, найденной на большом компьютере, вызывала небольшое количество проблем: приходилось либо повторять немного сокращенный путь поиска, либо вбивать ссылку вручную. Безусловно для этого могут быть и другие способы, но я бы скорей назвал их «граблями»

Недавно, я, после долгих сомнений, внезапно приобрел телефон, а точнее коммуникатор с установленной на ней ОС Android. И столь же внезапно была решена проблема передачи ссылок, текста, номеров и т. д. на телефон. Тут ещё стоит отметить, что я пользуюсь и являюсь большим поклонником браузера Google Chrome.

Случайно, то ли в новостях, то ли в Android Market, я наткнулся на приложение «Chrome to Phone», о нем и поведаю.

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

Добавление поля регистрации пользователя в Magento

Здравствуйте, уважаемые!
В этой статье я постараюсь дать описание процесса добавления нового поля в форму регистрации нового пользователя в Magento.
Существует платное решение, но если нужно всего лишь добавить одно поле, например компанию, или мобильный телефон, то покупать его несколько странно… Так что кому интересно — прошу под кат.
Читать дальше →

Установка и настройка Apache, MySQL, PHP, Exim, Dovecot, Ruby on Rails и Redmine на CentOS 5.4

Установка и настройка Apache, MySQL, PHP, Exim, Dovecot, Ruby on Rails и Redmine на CentOS 5.4
Задача
Установка по ssh, иногда прибегая к помощи WinSCP as FAR Plugin следующего ПО на VDS:
  • CentOS 5.4 32bit (если у Вас x86_64, незабывайте делать поправку на архитектуру при установке rmp, в частности)
  • Apache 2.2.3
  • MySQL 5.1.53
  • PHP 5.3.3
  • Exim 4.72
  • Dovecot 1.0.7
  • Ruby 1.8.7
  • Rails 2.3.5
  • Redmine 1.0.4
Руководство получилось весьма обширным, в основном благодаря тому, что я старался осветить поставленные вопросы наиболее подробно. К тому же, не редко приводил тезисно (или в качестве ссылок) альтернативные варианты решения, которые не были выбраны мной в силу тех или иных причин, указанных по возможности. Описание пестрит ссылками/источниками, поскольку я старался максимально позволить читателю «владеть ситуацией», при необходимости обращаясь к этим источникам где могла быть предоставлена информация более полно и подробно.

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

Автоматический перевод слова в нужный падеж

Введение
Тебе приходилось, %username%, видеть на многих проектах надписи:
  • «Подружиться с Дмитрий»
  • «Опубликован Артем» (подразумевалось кем-то)
  • Etc.
Или как, например, сделал ВКонтакте:
  • «Подружиться с Андреем»
  • «Отправить Ярославу подарок»
Сегодня я расскажу, как сделать такую штуку, как «автоматический перевод слова в нужный падеж».
Читать дальше →

Простой рецепт устойчивой работы 3G под Linux

Используя 3G модем Huawei E160 (lsub пишет E620) под Linux столкнулся с проблемой неустойчивого подъема соединения после перезагрузки системы. В сообщениях wvdial проблема выглядела так:
--> Sending: ATDT*99#
--> Waiting for carrier.
--> Timed out while dialing.  Trying again.
С настройками wvdial по умолчанию — сообщения шли бесконечно. По всем симптомам — модем «зависал». Проблема решалась просто — ручным кратковременным вытаскиванием модема из USB разъема.
Но мне требовалось более надежное решение, независящее от моего присутствия. Сам рецепт подсказывал мне — надо научиться программно перезапускать модем.

Самый надежный и универсальный способ — управление питанием по шине USB. Выключить и включить питание модема и все — проблема будет решена.
К сожалению, USB-хабы, поддерживающие управление питанием весьма редки. А исследование устройства с точки зрения Linux указывало на отсутствие такой функции на шине USB модема. Поэтому, такой вариант пришлось исключить.

Второй вариант — попробовать AT командой поуправлять модемом. Хотя бы заставить переподключить к GSM/3G сети.
Пришлось заняться поиском документации по AT коммандам.
И они нашлись от первоисточника:
http://www.3gpp.org/ftp/Specs/html-info/27007.htm
Команда, решающая мою проблему выглядит так:
AT+CFUN=1,1
Команда заставляет модем перегрузиться и снова перейти в рабочий режим.
Модем действительно перегрузился, даже находясь в режиме передачи данных — команда была послана через ttyUSB2.
В консоли команда отправляется так:
echo -e "AT+CFUN=1,1\r\n" >/dev/ttyUSB0
Проблема теоретически решена. Осталось автоматизировать процесс.

В /etc/wvdial.conf добавил ограничение на количество попыток соединения:
Dial Attempts = 5
После пяти не успешных попыток дозвониться, wvdial завершит работу.

Теперь обертываю вызов wvdial в скрипт:
rm -f /var/log/3g.log
while true;
do
        echo "wvdial" >>/var/log/3g.log
        wvdial >&/var/log/wvdial.log
        echo "sleep 10" >>/var/log/3g.log
        sleep 10
        echo "reboot modem" >>/var/log/3g.log
        echo -e "AT+CFUN=1,1\r\n" >/dev/ttyUSB0
        echo "sleep 30" >>/var/log/3g.log
        sleep 30
done
Вызов скрипта добавляю в скрипт загрузки системы.
/var/log/wvdial.log — будут писаться события wvdial
/var/log/3g.log — события скрипта
30 секунд оказалось вполне достаточно для перезагрузки модема.

Желаю устойчивого connect'a!

ТРИЗ для дизайнера

Многим дизайнерам не совсем понятно, каким образом ТРИЗ (теория решения изобретательских задач) Генриха Альтшуллера можно применять в работе. Альтшуллер написал книгу «Найти идею: Введение в ТРИЗ». Но книга сложная, техническая и для дизайнера не адаптированная.

Я постарался адаптировать приёмы, законы и саму теорию именно для дизайнеров. Вы увидите как на основе законов развития технических системе можно прогнозировать развитие или проектировать интерфейсы. Почему интерфейсов? Всё просто, дизайнерская задача — это сути создание интерфейса, интерфейса системы.

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

Альтшуллер проанализировал свыше 40 000 патентов и пришёл к выводу, что все технические системы (ТС) развиваются закономерно. Все ТС развиваются на основе законов, которые базируются все основные механизмы решения изобретательских задач.


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

Различие между «SYSDBA», «SYSOPER» и «DBA» в базе данных Oracle

Начинающий разработчики часто путают SYSDBA и DBA между собой. Поэтому столь необходимо осветить различие между ними. Вкратце, SYSDBA – это системная привилегия, а DBA – это роль.

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