Как стать автором
Обновить
-2
0
Дэн @iit

php backed + js frontend

Отправить сообщение
Извиняюсь, что именно позволяет делать старый D-Link? Если что, у меня был D-Link T500 (с родной и кастомной прошивками), но не могу догадаться как он поможет мне хостить сайты.


У большиснтва роутеров серии D-link есть вкладва DDNS — которая позволяет автоматом привязать домен к роутеру, что и делает в ручную автор статьи. Точную модель роутера я не скажу, так как я отдал его уже года 2 назад.

ADSL да, Ethernet (или оптоволокно) нет.


Хорошо — тут вы меня уделали, у меня до сих про ADSL

Если можно, чуть больше конкретики. Вот мол, такой-то сервис, заходим туда-та, получаем то-то.


Берем AWS micro инстанс — он будет стоить первый год почти ничего
Мелкомягкие тоже дают облако попробовать https://azure.microsoft.com/en-us/free/?b=16.43
OpenShift дает машины пока у них preview https://www.openshift.com/devpreview/register.html

Стоит ввести free vds в гугл — увидим кучу ресурсов, которые их предоставляют.
Какой смысл делать все это вручную, если даже старый D-Link может автоматом все это настроить прямо из веб-панели? потом просто пробросить порт на 80 порт своего устройства.
Когда-то я так создал свою файлопомойку. Но теперь я разочаровался в этом подходе.

Первое — это то что канал связи узкий, динамический белый IP тоже надо поискать, домашние постоянно будут норовить вырубить из сети устройство на котором висит сайт, DDOS сложит такой сайт даже не парясь — просто забьют ваш и так ограниченный канал для которого 1,5 пользователя уже DDOS, со светом бывают перебои.

Раньше, когда хостинг был проблемой — то да такой подход имел место, я так диплом сдавал лет шесть назад.

Но блин теперь когда интернет пестрит возможностями для того чтобы разместить свой проект где угодно.
Куча хостеров дают лимитированные бесплатные или почти бесплатные VDS, даже тот же самый Amazone, для типовых проектов есть шаред хостинги, для OpenSource тоже есть варианты.

Так что у меня закономерный вопрос — зачем это сейчас?

Даже такой нищеброд как я может позволить себе аренду сервачка виртуализации у того же hetzner чтобы держать там несколько сайтиков, owncloud, gitlab, vpn и еще пару полезных вещей.
Добавляю еще один источник — mail.ru так как там указано моё ненастоящее отчество которое радостно высветилось в журнальчике.
Эффективный код можно написать на чем угодно, вообще эффективность довольно абстрактное понятие, без контекста задачи бессмысленно писать эффективный код в вакууме.

Только разные языки и разные платформы дают разные средства для оптимизации. В с/с++ множество подобных средств, думаю в C# тоже парочка найдется. Но вот в тех-же Ruby/Python/Ruby таких средств маловато в php способы писать эффективный код вообще на грани лайвхаков.
Если разрабатывать на c или c++ то да можно эффективно управлять памятью и разбор этих файлах на НКА будет действительно занимать пару минут и эффективно расходовать память и время но вот на написание, отладку и деплой всей этой радости на с++ времени не было. Так что работал с тем что было и что знаю.

Хотя в итоге все оказалось как обычно — не нужно. Партнеры которые отдавали эти суровые xml теперь открыли публичное json api, написали модуль для популярной cms и даже запилили об этом статью на хабре. В итоге пол года отработавший код заменили на cms+модуль.
Посмотрел в сторону xml_parser_create — классная вещь однако, думаю когда вернусь к этому проекту — перепишу парсер.
В сторону xml_parser_create и прочего пока не смотрел.

Само создание и обход xml древа выполняется достаточно быстро. Но вот dom и simpleXML как результат разбора возвращают объект. И вот обработка коллекции из более миллиона объектов средствами php вызывает просто дикие тормоза и нагрузку на память и процессор, если при разборе сразу перевести объекты в массивы и построить коллекцию уже из массивов — тогда обработка идет уже намного быстрее.
Отличный перевод статьи!

Списки реализовывали еще в колледже на старом добром pascal, к сожалению про деревья рассказывали что они просто есть и ни одного сами не реализовывали.

Понимание принципов работы структур данных сильно упрощает жизнь разработчику. Вот по деревьям упоролся на совсем странной ситуации: делал сторонний проект суть которого — разбор xml файлов размером ~3гб.

Язык php (можете кинуть в меня камень, но не я такой — специфика заказчика).
Изначально работая с dom обработка файла с сохранением в базу занимала около 3 часов. Если посмотреть в сторону более легковесного simpleXML то уже 2.5 часа, сам объект simpleXmlElement компактнее серии объектов из dom.

Далее если изначально перегнать все данные из XML объектов в дерево на массивах то разбор обработка уже сократится до 20 минут (массивы куда более производительны чем объекты). Отказавшись от старого доброго mysql в пользу postgres с переносом некоторых операций разбора на саму базу время уже сократилось до 20-30 секунд.

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

Ну вряд ли кто-то вручную подключает все файлы.
А стоит ли использовать тяжеловесные фреймворки? :)

У него legacy проект где нет composer и из за кучей инклюдов в разных файлах он долго пытался понять где и что подключается.

Разве GLOBALS страшны закончившейся озушкой. Я такого не слышал :)


В том проекте храниться в них все, начиная от результатов выборки бд на более 1ккк строк, заканчивая данными из сессий пользователей.

Хм, а как вывести список по другому? :)


Тут мы постоянно спорим IRL — автор сразу создает DOM объект и рендерит уже чистый html добавляя в него данные списка. Я же юзаю laravel и использую конструкции for в blade

Когда существует только один инстанс/нету привязки у метода к инстансу, то часто так и делаю :)

В этом случае все ок, но когда все начиная от моделей и заканчивая шаблонами и бизнес-логикой сделано статикой, это превращается в ад.

Храните всю информацию о пользователях в одной таблице — данные для авторизации, анкетные данные, домашние адреса и телефоны, места работы, да вообще любую информацию храните в одной таблице и не забывайте про serialize

В проекте автора есть три таблицы на +100 полей причем в них есть 3-5 поля с php serialize на еще +50 полей. Причем некоторые serialize были поправлены без десериализации чьими-то кривыми ручками в базе и окончательно испорчены.
2014 год, на hackday в Алматы один из участников показал рабочий прототип такого куба из четырех экранов. Но вот аудитория не поняла…
Это конечно так, но от этого отнюдь не легче их использовать и настраивать, и глючность это нисколько не уменьшает.
Про порог вхождения согласен. В свое время успел поднять OpenStack OpenNebula и CloudStack когда выбирал систему виртуализации.

Управлять ими было очень сложно.
В OpenStack постоянно глючил Horizon и Cinder.
В OpenNebula глючил nfs шара, которая нужна для виртуальных машин.
CloudStack не хотел подниматься если самому не сделать патч.

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

В итоге, поскольку хост у меня один — поставил ProxMox. Достаточно простой и надежный софт, трудности были только в выпиливании openVZ и настройке KVM. А так уже больше года полет нормальный.
Это точно, такое ощущение что что вот вот на тебя прыгнет хэдкраб или еще что похуже.
У меня были следующие проблемы:
1) мой wifi-adapter TL-WN725N — постоянно глючит, пробовал вручную собирать драйвера с сайтов tp-link пробовал эмуляцию через драйвера windows в общем не помогло, в итоге использую мобильник с android на борту в режиме usb модема

2) Так как видеокарта поддерживает только DVI и HDMI а оба монитора только vga ось не правильно определяет разрешения экрана второго монитора. В итоге через xrandr и nvidia controls удалось достичь приемлемого результата. Хотя второй монитор на прочь отказывался принимать кастомные значения из xrandr.

3) Так как по привычке как DE использую gnome3 есть проблема начиная с 14.10 в виде переключения клавиатуры через ctrl+shift

4) SSD диск периодически отваливается в readonly из за чего стоит сразу переписать конфиги монтирования и grub советую также отрубить экран загрузки так как лог загрузки важнее и можно на глаз заметить что отвалилось в случае чего.

Хотя есть и множество плюсов

Игры из steam вроде той же dota2 или arc survival работают более производительнее чем на win7 и win10.

Для веб-разработчика разработка на линухе просто рай.

Куча открытого софта на все случаи жизни.

Вместо обычного LAMP рекомендую следующую связку:

Локальный dns bind который позволит более удобно тестить проекты используя домен. Плюс dns кэш ускорит загрузку всех внешних сайтов и спасет от глюков dns провайдера если резервным dns назначить те же dns гугла,
вместо apache лучше поставить nginx что позволит использовать не только php через php-fpm но и HHVM, ROR, python и java проекты.

Еще можно поднять виртуальные машины, самый удобный вариант virtualbox и более сложные — XEN, KVM и docker. Это позволит работать в том же photoshop и других программах аналогов которых на Linux нет или прогонять проекты на других средах.
Данная софтина сканит весь диск как физическое устройство или только разделы, если по разделам то сканит ext2 и ext4?
Восстановление данных сложнее и по этому и дороже, на счет внезапной смерти сам мучаюсь этим вопросом.

На всякий случай храню копии проектов на HDD и в облаке
Спасибо за коммент, думаю когда будут лишние деньги собрать себе два RAID — первый из ssd а второй из старых HDD как холодное хранилище. жаль только что ssd 1TB и выше стоят сейчас как половина нового десктопа или как бюджетный ноутбук.

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

Мне интересен другой момент — срок службы.

Пол года назад купил в гонконге ssd kingstone так как местные вендоры в то время ломили просто дикие цены за ssd. Windows 10 и ubuntu gnome 16.04 работают просто шикарно, но иногда корень ubuntu на ssd впадает в read only. SMART и fsck говорят что с диском все отлично, но это немного напрягает. в итоге изменил конфиг grub без ro и повесил trim на cron.

Интересно сколько еще протянет если возникают ошибки чтения
1) На свой урл да
2) Все ссылки имеют свой хэш и по этому хэшу происходит редирект, ссылками управляют контентщики они головой отвечают что все ссылки валидны. У нас агрегатор, то каждая ссылка очень жирно проплачена и договор не нее есть, так что на этом не заворачиваемся.
На сайте компании где работаю от target="_blank" мы отказались вообще, у нас есть url через который происходят редиректы на все сторонние ресурсы.

Информация

В рейтинге
Не участвует
Откуда
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Дата рождения
Зарегистрирован
Активность