Category: it

Category was added automatically. Read all entries about "it".

Android x86 на Acer Aspire 725

крутотень. Есть у меня старенький нетбук acer aspire 725, давно еще покупал, что я туда не ставил, тормозной он все таки. Официально ставится Windows 7 home edition. Но блин, запустишь там что нибудь тяжелее блокнота, приходится ждать. Да, понятно что можно например поставить Линукс :) есть варианты, но блин, там же ничего нет, и если что-то начинаешь ставить, все равно начинает тормозить. Так вот, сегодня что-то взбрендило мне в голову, а не поставить ли мне на него Android ??? Сказано сделано. скачал дистрибутив, поставил, и при создании диска, хрень какая то вылазит, я все пытался методом тыка, и в общем у меня в конце концов после установки, выходило сообщение:

No bootable device -- insert boot disk and press any key

мучался мучался, у всех на скриншотах cfdisk программа для партицирования диска, а у меня cgdisk что за хрень, и нет там кнопки сделать диск загрузочным, так и промучался, пока читать не начал что мне эта хрень говорит, когда я пытаюсь без GPT запустить редактирование диска. А он вон что пишет:

Warning!! Unsupported GPT (GUID Partition Table) detected. Use GNU Parted

а потом вообще вот это:

FATAL ERROR: Bad primary partition 0: Partition ends in the final partial cylinder

когда начинаешь читать и вчитываться, становится понятно что все таки делать ) просто нужно было, нажать тут же Alt + F2 идем в другой терминал, там жмем:

cfdisk -z /dev/sda

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

Что собираюсь делать на нем, подключить хочу к телевизору во первых, поставить приложения для просмотра фильмов HD VideoBox, можно смотреть YouTube, игры думаю какие хочешь потянет, 500гб на борту. всякие ForkPlayer, торренты, плееры, типа Yandex радио, Алису обязательно поставить надо :)
1xBet - для ставок. EbookReader - книжки читать, обязательная вещь вообще. контакт, телеграм, Слова для изучение английских слов, Twitch - стримчики по CS:GO , так же обязательно Coursera, Stepik для изучения всяких нужных дисциплин, ну и еще по мелочи что нибудь. В общем нетбук обретет новую жизнь.

Почему программист "бесдельничает" ...

Клиенты и начальники хотят сразу видеть, что программист начал работать. Точнее, что он сел перед экраном и начал писать код, уверен всемирно известный эксперт в области ИТ Дэвид Штром (David Strom). Он составил список 10 вещей, которые непрограммисты любят говорить программистам, где в седьмом пункте объясняет, что такие люди не понимают важности предварительной работы.

Написание кода — вообще последний этап работы, подготовительная часть до этого состоит из совсем других вещей, которые посторонним могут казаться бездельем, объясняет Маклауд Сойер в 4 пункте своей статьи. Чтобы продумать выполнение определенных задач и требований, иногда нужно расслабиться, посмотреть в окно, послоняться вокруг, поспать или даже поиграть в Halo — никогда не знаешь, в какой именно момент придет решение.

Харлан Миллс (Harlan Mills), основатель Software Engineering Technology однажды сказал: «Программирование напоминает игру в гольф. Цель не загнать шарик в лунку, а сделать это за наименьшее количество ударов». Чтобы достичь цели быстрее, необходимо как можно лучше продумать все шаги и «удары». Осталось только объяснить это менеджеру.

Полная статья вот здесь.

Из интересно еще под заголовком: "Скажи точно, когда закончишь"!!!
С чем можно сравнить программирование вообще? Я очень люблю аналогии, вот вам одна из них. Мне кажется программирование можно сравнить с научной деятельностью, когда ученый открывает что-то новое, ранее не изученное. Создавая новый продукт, ты ступаешь в область, где мало чья нога ступала, иначе ты просто берешь чужой продукт и пользуешься им. Нет, бывают конечно случаи, когда есть продукт, но он например платный, а тебе нужно относительно бесплатно. И ты его делаешь сам, но для тебя то, это будет чем то новым, ранее неизученным, ты для себя в этой области первооткрыватель. Нет понятно, что есть алгоритмы, есть какие то наработки, ты пользуешься Фреймворками, библиотеками. Но это только инструменты для достижения цели. Ученые тоже пользуются компьютерами для вычислений, инструментами, например пусть это будет тот же микроскоп. Не все же ученые для себя делают сначала микроскопы, а потом только начинают изучать клетки организмов например. Так же и в программировании, ты например скачиваешь подходящую под твои задачи библиотеку, включаешь ее в свой проект и начинаешь использовать, чтобы получить НОВЫЙ результат. Пусть даже для тебя он будет новый.

заметка: Ubuntu vs CentOS for Captive Portal

Пишу для себя, на будущее, так как когда нибудь придется опять переделывать сервак для WiFi точки доступа, это возможно сэкономит мне немного времени.
Сначала пользовался Ubuntu, дистрибутив нормальный, пока не поломался репозиторий apt-get, который ставит программы, в итоге плясок с бубном, удалил какую то важную директорию, без бекапа. все, линукс можно сносить.
Саша администратор посоветовал посмотреть на CentOS 6-ой версии, 7-ая чот не ставилась, скачал 6.7 LiveCD, дистр реально супер.
Но!!! есть одно но, перемудренно там с безопасностью. Действительно получается очень безопасный дистрибутив, т.е. на каждый чих, нужно какое то правило разрешать. встроенные правила для iptables тоже намекают на это. Какой то дополнительный встроенный selinux, который вообще всем управляет.
В общем делаю Captive Portal, это такая штука, которая через себя пропускает пользователей, которые подключаются через Free-WiFi, который требует у них паспортные данные номер телефона, шлет им СМС с паролем, если телефон свой указал, приходит пароль, вводишь в поле и ты в Интернете. Есть конечно какие то решения в Интернете по этому поводу, я сначала смотрел на них, но без полного понимания, как и что работает мне страшно такие штуки ставить. Да и вопрос сколько я с ними провожусь разбираясь. Даже что-то хотел вроде поставить, но там сорцы, а из сорцов что-то поставить тот еще геммор в настоящее время, нет, в CentOS мне как то это показалось более приятным чем в Ubuntu, так что + к CentOS'у. Так, ладно.
В первую очередь отключаем selinux
vi /etc/selinux/config
SELINUX=disabled  <--------- на это меняем в файле.
reboot
Про selinux можно почитать тут http://centos.name/?page/tipsandtricks/SelinuxBooleans

дальше вводим команду visudo
нам нужно, чтобы PHP мог выполнять команды arp, iptables и rmtrack
Перво наперво, комментируем строчку:
#Defaults    requiretty
эта строчка запрещает пользовать рутовыми командами, кому бы то ни было, кто не подключился к компьютеру через терминал RequireTTY

дальше в конце дописываем
www ALL=NOPASSWD: /sbin/arp
www ALL=NOPASSWD: /sbin/iptables
www ALL=NOPASSWD: /usr/bin/rmtrack

www - тут имя пользователя под которым запущен PHP.
Да, тут надо сказать, что все работает на nginx + fpm-php + mysql

узнать под каким пользователем запущен PHP, можно двумя способами,
1) echo get_current_user() в каком нибудь методе контроллера.
2) echo shell_exec("whoami"); причем пользователи могут быть разные, лучше сделать одинаковым и не париться.

если с iptables и arp понятно,
с помощью $mac = shell_exec("arp -an ".$_SERVER["REMOTE_ADDR"]); мы получаем МАК адрес пользователя, его нужно через регулярку еще распарсить.
Потом мы посылаем команду для iptables с IP и МАК адресом для того чтобы тот не заворачивал нас на внутренний ВЕБ-сервер.
rmtrack - это скрипт описанный вот здесь http://www.andybev.com/index.php/Using_iptables_and_PHP_to_create_a_captive_portal
он сбрасывает соединения, чтобы мы еще минуту при вводе того же адреса на который изначально направлялись не перенаправлялись на наш внутренний сервер.

Настройки iptables
у меня eth0 скажем 192.168.1.42 временный конечно же.
внутренний eth1 192.168.0.254

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.42 -j ACCEPT
эта команда, нужна для того, чтобы Linux стал роутером, все остальное можно найти по ссылке http://redhat-club.org/2011/настройка-nat-в-rhel-centos-fedora
дальше:
iptables -t nat -A PREROUTING -p tcp --j DNAT --to-destination 192.168.0.254 -j ACCEPT
таким образом, кто подключится к нам, получит по DHCP IP адрес и настройки, шлюзом будет все тот же 192.168.0.254 будет перенаправлен на наш сервер.

Да, vsftpd в версии CentOS 2.2.2 вроде какой то, лучше сразу выкинуть, или подключить какой нибудь поновее репозиторий, чтобы установилась версия 3.х с которой проблем нет, как с версией 2

есть еще кое что рассказать про шайпинг скорости, будет что рассказать про СМС-гейт, но это в следующий раз.

Веб-морда конечно страшная, и ей обязательно нужно будет заняться в ближайшее время.
Первоначально пользователь вводит телефон и название устройства, так как устройств может быть много, а телефон один. Ну например, пришел я с планшетом и ноутбуком, телефон один, я могу выйти с ноутбука, указать номер телефона, название устройства например Ноутбук. Мне на телефон придет код для ноутбука, тоже самое с планшета, с планшета своего ребенка, жены и т.п. устройств много, телефон один. Коды как то нужно будет различать в последствии, код действует постоянно. Правда каждые полчаса нужно его повторно вбивать.


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