• Что выбрать Python(Django) или PHP(Laravel/Yii)?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Что выбрать Python(Django) или PHP(Laravel/Yii)?

    Когда люди спрашивали "какой линукс лучше?", один умный человек сказал - лучше тот линукс, который знает Ваш знакомый сисадмин.

    Тут ситуация - совершенно аналогичная, учить (для начала) лучше то, что готов Вам преподавать Ваш ментор (на счёт наставника в институте - я лично сомневаюсь, но знать как оно там у Вас лично - не могу).

    Второй момент - смотря для чего учить? Что Вы хотите делать в итоге? Блоги? Для этого однозначно Django/Python лучше подойдут. Хотите работать? В какой стране? Например, в США будет по определению популярен C# во всех его формах и проявлениях, т.к. вендор .NET-платформы - сам находится в той же стране, со всеми вытекающими... Как только определяетесь со страной, с/в которой хотите работать, идёте на местный фриланс и смотрите кол-во работы. Понятное дело, что и исполнителей будет больше, и т.д., и что в среднем +/- на одну каждую единицу технологий будет приблизительно равное кол-во исполнителей, но популярность технологии N привлекает не только исполнителей, а ещё спонсоров и тех кто в итоге продвигает проект пополняя сообщество конечных разработчиков.

    Единственное, с чего бы я начинать не советовал - это с Yii, так как вектор его развития непонятен, он уже больше 3-х лет висит в версии 2.0 и когда будет 2.1 или 3.0 (и будет ли вообще) - не ясно пока. Лично я от него в своё время ушел и рад тому вполне. Но, это личный опыт и сейчас найдётся миллион человек, которые будут с полной уверенность доказывать, что я не прав.

    Я лично рекомендовал бы изучать сразу либо Laravel, либо Symfony (а лучше и то и другое, и в целом эти фреймворки имеют много общего по части внутренностей), если соберетесь в "клуб PHP-шников".

    Как уже озвучил предыдущий оратор - у PHP есть одно преимущество и недостаток в одном флаконе. Он с самых первых версий разрабатывался для создания веб-проектов (аки "сайтов"), в то время - для сайтов которые были актуальны тогда, в наше время - для сайтов (серверной части веб-проектов) которые актуальны сейчас. И это его направление очень ярко проявляется на практике... на PHP, за историю его существования вышло просто неимоверное кол-во веб-фреймворков, "плохие" умирали, те что "получше" живут до сих пор и т.д. Наверное, кол-во PHP-фреймворков (веб-направления) можно сравнить с кол-вом программ в которые Python встроен как скриптовый язык...

    Python в этом плане изначально разрабатывался как язык общего назначения и делают на нем далеко не только веб/сайты, он часто используется буквально "везде", для примера - на нем написана часть 3D-редактора "Blender3d", он не редко выступает скриптовым языком в больших и сложных программах, на нем не редко пишут прототипы больших программ и так далее. Соответственно, универсальность языка - та же "палка о двух концах", что и с PHP, только "в другую сторону".
    Ответ написан
    1 комментарий
  • Как автоматизировать размещение контента на 2 сайтах?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли способ связать базу товаров для сайтов?
    В целом, способов довольно много, но я не думаю, что существует готовое решение уровня "Модуль Modx, "поставил и забыл".

    Выглядят они все примерно следующим образом:
    1. Пишите какой-то триггер на уровне самой CMS, либо на уровне БД, либо по CRON'у запускаете скрипт, который мониторит базу А
    2. По наступлению события (когда товар на сайте А добавился), либо когда CRON-скрипт заметил изменения - аналогичная операция вставки производится на сайте Б.

    Почему мне кажется, что готового модуля для этих целей Вы вряд ли найдете: Modx довольно гибкая система в плане управления контентом, но в то же время довольно кривая во многих других планах, в т.ч. в области работы с БД там целая "упаковка" не самых лучших решений. И, в виду своей гибкости и решения уровня "не лучшие" - написать готовый модуль для подобных задач - довольно спецефическая процедура. Гораздо проще написать модуль бекапа всей системы, чем нормально работающий модуль переноса одного товара (ну это просто как пример).
    Ответ написан
    Комментировать
  • Как рисовать ER-диаграмму?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Если это то, про что я думаю - Вы можете:
    1. Скачать и установить MySQL Workbench (официальную программу от разработчиков MySQL)
    2. Прямо в ней посмотреть/создать/что-то-ещё диаграмму, как на картинке по первой ссылке

    Насколько я помню, Вам даже рисовать ничего не придётся, программа сама отрисует все фактические таблицы, их связи и т.д.
    Ответ написан
    Комментировать
  • Как в 2017 году принято делать счетчик показов?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Какие есть еще варианты? Какой выбрать?
    Ещё есть варианты, типа Redis/Memcached, таблицы в памяти, вариант отключить синхронизацию с файловой системой в БД, использовать MongoDb или другую базу подобного плана и т.д., есть специальный тип таблиц, например, ARCHIVE в MySQL оптимизированные специально на запись... Масса вариантов, в общей сложности.

    Шлем запрос на api, который ничего не делает. Потом грепаем логи по крону.
    Не уверен, что это быстрее чем база данных.

    Шлем запрос на api, там скрипт делает INSERT в базу - инсерт в базу скорее всего будет медленный, нафиг.
    Если Вам нужен счётчик, это будет не "INSERT" а скорее "UPSERT" ("INSERT or UPDATE"), а ещё лучше сразу UPDATE (т.е. заводить запись с текущей циферкой счётчика до того, как будет пытаться её UPDATE'ить).

    Шлем запрос на api, там простой скрипт делает append в файл. По крону считаем что там записалось - выглядит уже лучше.
    А как на счёт конкурентного доступа к файлу?
    Ответ написан
    Комментировать
  • Изучать только git?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли смысл в 2017 году изучать другие системы контроля версий такие как Mercurial или Subversion?
    Есть, но в процентном соотношений этот "смысл" будет довольно скромным. Кстати, помимо Git, Mercurial и Subversion, есть ещё и другие системы...

    Вероятность применения Hg или SVN в каком-то реальном проекте - довольно не велика и скорее всего, это будет проект который либо тянется долгие годы, и его разработчики до такой степени привыкли к какой-то системе и настолько консервативны, что особо чего-то менять не собираются.

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

    Отвечая на Ваш вопрос, в общей сложности - скорее нет (другие системы аналогичного назначения, особого внимания не заслуживают). С вероятностью ~99% Вы будете встречать Git. Ведь даже такие Microsoft не брезгует пользоваться GitHub'ом, и встроила поддержку Git'а в VisualStudio.
    Ответ написан
    Комментировать
  • Почему многие современные сайты верстают на флексах?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    очень часто вижу такое мнение что построение сеток на основе "float" или "inline-block" лучше, потому что флексы поддерживаются не всеми браузерами. Так ли это и почему в таком случае они так популярны?
    Это действительно так. Но я Вам больше скажу, даже CSS как таковой (или HTML-5), поддерживается не всеми браузерами (IE-1 насколько я помню, CSS не поддерживал). Но я не думаю, что это повод отказаться от CSS или HTML5. И вообще, само по себе выражение "не всеми браузерами" - довольно размытое, что-то из области "не все продукты одинаково полезны".

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

    P.S. А ещё по тому, что FLOAT'ы были придуманы изначально не для того, для чего их в последствии приспособили, впрочем как и некоторые другие параметры/свойства/атрибуты...
    Ответ написан
  • Как понять какие вещи в программе налдо универсализировать?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Это я привел всего лишь пример, вопрос не про него, а про ситуацию вообще
    Как понять какие части кода надо делать универсальные а какие жеско прописывать?
    Если это не социальная сеть, где трафик исчисляется петабайтами, а нагрузка на базу - тысячами запросов в секунду, то наиболее рациональное решение в подобных вопросах, на мой взгляд, давно было найдено и называется оно ООП, в т.ч. для обработки данных, во многих системах (например, фреймворках) присутствует такая сущность как объект (или "модель" если угодно), в которую Вы без особого труда можете добавить новое свойство, рассчитываемое динамически. Это отлично работает в большинстве случаев.

    Другой пример решения подобных "проблем" - на уровне БД (я подозреваю, что речь про хранение данных в текстовых файлах не идёт?), например, в той же MySQL (всем до боли знакомой) есть механизм "виртуальных колонок", который решает проблему и с валютами (при должном желании) и с ценой за кв.м. и так далее. Ещё более простой вариант, который существует, наверное, во всех РСУБД - использовать VIEWS, дополняя его новыми значенями по мере необходимости, ещё вариант - создать триггер на INSERT/UPDATE и добавить новую колонку, значение которой будет вычисляться автоматически.

    Ну и т.д., примеров масса, но, как верно подметил предыдущий оратор - всё зависит от конкретного случая и универсального инструмента ни для решения подобных задач, ни для проведения строительных работ (как пример) - пока не придумали. Какие-то задачи лучше решаются "молотком", какие-то "дрелью"...
    Ответ написан
    Комментировать
  • И как такое сверстать?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Интересует сайдбар, и контентная часть ..
    Что именно Вас интересует?
    • Как повернуть элемент на угол N? Написано, например тут
    • Как сделать рамку? Скорее всего, это элемент подложка, подозреваю, что в его роли выступает какой-нибудь ::before, с рамкой в 1px и смещением.


    Плюс к тому, Вы же это откуда-то скопировали? Наверняка там есть исходники и HTML и CSS, которые можно расковырять и выяснить интересующие моменты.
    Ответ написан
  • Как вставлять внешнее видео чтобы можно было им управлять программно?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Есть готовые решения или библиотеки?
    Есть готовые API и примеры.
    Ответ написан
    Комментировать
  • Если есть index.php будет ли проиндексирован index.html?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    интересно может ли робот проиндексировать html, ведь по ссылкам попасть туда он не может
    Если Вы где-то не прописывали ссылку на этот файл, например, в sitemap.xml, вряд ли какой-то поисковик будет тратить свои ресурсы, в поисках файлов, которых теоретически на сервере нет. По этому, с вероятностью 99% можно сказать, что проиндексирован он не будет (даже если поисковик, каким-то чудесным образом узнал бы о том, что есть такой файл как "index.html", вряд ли бы он стал его индексировать исходя из тех соображений, что пользователь по ссылкам всё равно не сможет туда попасть).

    Соотв., если Вы хотите, что бы он проиндексировался - нужно добавить на него ссылку (где-нибудь), а если хотите максимально быть уверенным в том, что файл не попадёт в индекс - можете заблокировать доступ к нему в файле robots.txt
    Ответ написан
    Комментировать
  • Как встроить gitlab в phpstorm?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как встроить gitlab в phpstorm?
    В каком смысле "встроить"? Вы можете на GitLab'e создать проект/репозиторий, получить его ссылку и делать pull/push/etc Вашего местного (локального) git-репозитория с проектом в удаленный репозиторий, лежащий на GitLab'е.

    Делается это примерно в следующем порядке:
    0. Создаёте/открываете Ваш проект в ПХПШторме
    1. Меню -> VCS -> Enable version control integration, и там выбираете Git
    2. Нажимаете правой кнопкой на папке проекта в Шторме, и далее по меню:
    59d3cb3182f3c558793291.png
    3. Откроется окно управления удаленными репозиториями, где Вы можете добавить ссылку на удаленный репозиторий полученную ранее на GitLab'е.

    Собственно и всё почти. При попытке Push/Pull - у Вас запросят логин/пароль от GitLab'а.
    Ответ написан
    3 комментария
  • Почему не работает GROUP BY в Laravel 5?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Файл /config/database.php, строка 53: 'strict' => true, (в "разделе" 'mysql'), значение поменять на false.

    Подробности:
    59d3c7f6588c1557458510.png
    Ответ написан
    2 комментария
  • Как пересобрать массив?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Так: $array = array_values($array); ?
    Ответ написан
    Комментировать
  • Как создать файл ключа OpenSSH?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    По моему, вот тут подробно написано как создать пару ключей и чего с ними делать дальше.
    Ответ написан
    Комментировать
  • Как можно реализовать такой функционал с формой?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Вариант А:
    1. В каждый таб воткнуть свою (отдельную) форму, что бы передавалась именно она, и как следствие, свой отдельный сабмит
    2. Передавать данные AJAX'ом, что бы страница не обновлялась
    3. После отправки, - сбрасывать отправленную форму (по необходимости)

    Вариант Б:
    1. Создать одну большую общую форму
    2. Добавить в нее скрытое поле, в котором будет сохранятся значение активного таба
    3. Каким-то образом связать поля с активным табом, например с помощью префикса имени поля или имен полей в формате tab1[field1]
    4. В скрипте принимающем и/или генерирующим форму, выставлять соотв. значения, полученные из формы ранее
    Ответ написан
  • Хранить ли изображения в Git?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Так как быть?
    Определиться с тем, являются ли картинки часть исходного кода или всё же частью внешних/временных данных? Если частью исходного кода (например, логотип из макета сайта) - сохранять, если просто какие-то временные данные - выдавайте их отдельно всем желающим.

    *Обычно так, но решает на самом деле, каждый сам для себя. GIT никоим образом Вас в этом не ограничивает. Единственное, чего однозначно не стоит забывать - много временных (меняющихся) данных, попадающих в репозиторий - обладают не только "проблемой скачивания оных", но и свойством "раздувать репозиторий в размерах", что в целом может быть не очень приятно, в ряде случаев.
    Ответ написан
    Комментировать
  • Как возможно определить что трафик раздается по wi-fi?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Допустим использование симки в модеме и трафик с торентов можно отследить. Как можно отследить раздачу трафика по wi-fi провайдеру?
    Самый просто способ (проверку TTL) уже описал предыдущий оратор, не буду повторяться :)

    Далее следует целый набор "хитрых механизмов" уровня "защита от особо умных". Туда входит комплекс "фильтров", отслеживающих поведение вашего устройства. Самый банальный пример, если у Вас Android-смартфон, который внезапно пошел скачивать обновления Windows-10... А так же торренты и целая куча других вариантов сетевой активности, которые никак не свойственны Вашему устройству. Всё целиком и полностью зависит от провайдера и подробности, они разумеется не раскрывают.
    Ответ написан
    4 комментария
  • Как вывести значение?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    как вывести значение joxi.ru/eAO7G6NUxo7q0A?
    Например так:

    <?php
    
    $json = '{"p":{"o":{"uh":1}},"c":[{"p":""},{"p":""},{"p":""}],"h":[{"c":"Тариф"},{"c":"Скорость"},{"c":"Стоимость"}],"b":[[{"c":"Link 1"},{"c":"1 Мбит/сек"},{"c":"390 руб/мес"}],[{"c":"Link 4"},{"c":"4 Мбит/сек"},{"c":"590 руб/мес"}],[{"c":"Link 8"},{"c":"8 Мбит/сек"},{"c":"690 руб/мес"}],[{"c":"Link 20"},{"c":"20 Мбит/сек"},{"c":"790 руб/мес"}],[{"c":"Link MAX"},{"c":"До 120 Мбит/сек"},{"c":"1000 руб/мес"}]]}';
    $data = json_decode($json);
    var_dump($data->h[0]->c);
    Ответ написан
    2 комментария
  • Как правильно организовать вывод поля, если оно находится в другой таблице?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Либо есть какие-либо другие правильные варианты?
    LEFT JOIN?
    Ответ написан
    Комментировать
  • База данных для хранения больших данных?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Какую базу данных выбрать ? Подойдет ли MySQL для этих задач?
    При наличии должного опыта работы с ней, навыков правильного проектирования БД и полного понимания, зачем делать "именно так" и "почему не иначе?", думаю вполне подойдёт. А вообще, обычно базы оценивают не количеством записей в 1-ой (одной) таблице, а общим объёмом данных (в гига/пета- байтах) и некоторыми другими параметрами.

    - поиск - есть ли запись в базе данных с указанным названием, если есть то обновляем данные там. Т.е. перед тем как добавить запись (а их напомню - вначале будет 5-40 млн и будут постоянно возрастать) будет проверять есть она в базе данных и добавлять/обновлять данные.
    Для этого есть индексы, во всех известных мне базах. Предположительно - стандартный B-tree индекс, работает он во всех базах примерно одинаково.

    На базу данных будут примерно такие нагрузки:
    Нагрузки у Вас будут на железо а не на базу, если оно выдержит - то с точки зрения БД - логических проблем для хранения 40млн. записей - я не вижу.

    Хочу узнать какими способами можно организовать структуру хранения большой информации ?
    "Большой инфомрации" или больших объёмов данных? 40млн. записей - это совершенно не обязательно большой объём. Например индекс по числовому (INT) полю для 40млн. записей будет занимать всего несколько мегабайт. Для хранения именно "большой информации" - можете взять, например, PostgreSQL, там есть готовый механизм, TOAST, предназначенный специально для этого, или спроектировать базу MySQL таким образом, что бы нужные данные лежали отдельно от всякого "информационного мусора" ("хвостов"), это позволит сократить размер отдельной таблицы на диске и как следствие - повысить скорость работы с ней.
    Ответ написан