• Можно ли использовать такую структуру таблиц?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Здравствуйте.
    В проекте есть таблица posts - это таблица с постами из разных социальных сетей.


    Здравствуйте. С учётом того, что в тегах Вы указали MySQL, подозреваю, что используете Вы именно эту БД... А у этой БД (как и у многих других) есть её характерные особенности. В частности, MySQL довольно быстро обрабатывает таблицы с большим количеством записей (вертикально) и начинает прилично так проседать, когда кол-во столбцов (или того хуже, объём данных в этих столбцах) растёт (горизонтально). Это из личного опыта, и на возведение в статус аксиомы - не претендует

    А так же по той причине, на основании следующего:
    1. Насколько я понимаю, данные у Вас из разных соц. сетей - по определению разные (в смысле, какая-то их часть), но их фактическое количество (кол-во соц. сетей или источников данных) - фиксированное
    1.1 Даже частично одинаковые данные из разных соц. сетей могут иметь разный формат, например пост из твиттера не может быть длинее N символов (не помню сколько... 140?), а пост в ФейсБуке - может быть куда больше... и т.д.
    2. При добавлении новой соц. сети - у Вас добавляет не просто какое-то "радомное свойство к товару", типа: "была газовая плита, у нее была ширина и длина, сегодня померили - нужно теперь высоту добавить", с введением новой соц. сети в код приложения добавляется какой-то довольно "толстый" модуль, для обработки конкретно этой соц. сети

    С учётом выше сказанного, я бы делал для каждой соц. сети, отдельную таблицу, так как:
    1. Кол-во параметров для каждой соц. сети не меняется (или меняется крайне редко)
    2. Таким образом одна таблица будет меньше занимать на диске, т.е. в некотором смысле - это будет сегментирование (хоть и в несколько упрощенной и "вынужденной", а не осознанной форме), что в общей сложности повышает производительность
    3. Кол-во "дыр" в данных у Вас будет гораздо меньше, а с учётом того, что постов там у Вас тысячи, а соц. сете не 2 и не 3, а уже 14 и это не предел...

    P.S.
    Как такой инсёрт сделать в две таблицы вместо одной?
    Сделать два инсёрта. Если для Вас очень принципиально время вставки и оно гораздо важнее времени получения данных из таблицы (и два инсёрта - гораздо медленнее одного) - используйте соотв. тип табиц, кажется он называется "ARCHIVE" в MySQL.

    Как такой инсёрт сделать в две таблицы вместо одной?
    Второй вариант - заменить MySQL на PostgreSQL и хорошенько его изучить. Там есть "наследование" таблиц и другие механизмы, которые позволяет Вам делать инсерт в одну таблицу, а движок сам будет распихивать "кого куда", при этом проблема которую Вы описываете изначально, при правильном подходе - будет решена (сама собой) раньше, чем успеет начаться.
    Ответ написан
    Комментировать
  • Сервер на Intel Core i7-2600, будет ли работать встроенная графика?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    смогу ли я установить на нем обычный десктопный windows 10
    Это лучше уточнить у поддержки непосредственно...

    а например через тимвьювер или любую другую программу
    Если Вам позволят установить туда "обычный Windows 10" (или поставят его за Вас) - проблем с тем, чем туда подключаться - не вижу никаких.

    будет ли на нем работать софт требующий наличия видеокарты
    На нем будет работать ровно тот же софт, что работал бы на компьютере который стоит у Вас дома, с таким же процессором, видеокартой, жестким диском и т.д. Иными словами, разницы между комьютером "там" и таким же компьютером "тут" - как таковой нет, не считая того, что Вы работаете с "тем" компьютером - "по сети".
    Ответ написан
    Комментировать
  • Стоит ли делать упор в php или лучше python?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    (не будем рассматривать корявость и прочие "фичи" языка)
    Корявость есть в практически любом языке, и PHP тут исключением не стал, вопрос в умении правильно языком пользоваться и не сваливать кривизну собственно кода на какой-то язык :)

    Но можно ли получить те же функции от Пайтона? Или это уже совсем другое направление?
    Не то, что бы "совсем"... Заниматься веб-разработкой можно на любом языке, даже Си и/или Ассемблере, при этом функционал при этом можно получить даже больший, чем от PHP и Python'а вместе взятых. Для кого-то - это отличный повод изучать именно (и/или исключительно) их.

    Из плюсов php слышал (!) то, что есть работа во фрилансе и для подработки язык вполне себе актуальный. А как дела с более-менее простыми проектами в Пайтоне.
    Подработки во фрилансе и простых проектов, с "простой оплатой" - на любом языке хватает. На PHP - конкуренция выше и проектов больше (со всеми вытекающими).

    Студент, хотелось бы получить не просто навык разработки, но и навык при решении практических задач, а не некоторых абстрактных.
    Выбирайте, что Вам лично в меньшей степени "против шерсти" идёт и изучайте это в первую очередь. Язык - это инструмент, и в лучшем случае - это 10% крупного/серьёзного проекта. Иными словами язык - это область взаимодействия между собой и с машиной, а не решение задачи N. Практику можно получить при любом раскладе. Python - более лаконичен, PHP - более "си-подобен", и у того и другого хватает и своих достоинств и недостатков. Изучать стоит оба, порядок - зависит от Ваших личных предпочтений. Ещё бы в список на изучение - я бы обязательно добавил Си (это не сарказм), но... к этому обычно приходят "потом", после готов работы...
    Ответ написан
    4 комментария
  • Как передать в компонент Vue JS данные из PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как это делается на Vue JS? Заранее спасибо
    Не могу обозначить своё мнение, как хоть сколь нибудь экспертное, но в целом, в JS'е (любом, клиентском, связка с серверной частью) обычно это делается одним из двух вариантов:
    1. Отправляете запрос на сервер (AJAX например) - получаете данные
    2. Рендерите данные прямо в странице, в <script>'e, например, что-то вроде: var a = 100; //Генерируется в PHP

    Я обычно использую и тот и другой, от случая к случаю. Второй вариант, не так красив как первый, за то на 99.999% исключены "задержки", прогрузки дополнительные, -1 запрос к серверу и т.д.

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

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

    P.S. Если ещё точнее - в один из банков - точно можно. За все банки мира - сказать затрудняюсь.
    Ответ написан
    Комментировать
  • Нужен или возможен 100% pixel perfect?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    1- Возможен ли 100% пиксель пёрфект? как бы я не старался сдвигать всё по милипиксилям, всё равно идёт малейшее несоответствие с макетом, а особенно со шрифтами.
    Шрифты - подогнать можно, если дизайнер их предварительно правильно обработал. Но, подогнать под 1 конкретный браузер, т.к. разные браузеры по разному рендерят шрифты. Выводы - сделаете самостоятельно :)

    2- Нужно ли так очень ответственно подходить к работе?
    Эти вопросы обычно обсуждаю с заказчиком и/или дизайнером или тем, кто принимает макет по факту. А так же опираясь на то, из какого места у дизайнера рисовавшего макет - растут руки, иной раз, делать "в точности как нарисовано" - означат "угробить проект", т.к. мама не хотела, папа не старался он дизайнер, он так видит.

    Через меня прошло пару заказов и вдруг начали жаловаться, что идёт сильное не соответствие с макетом.
    Очень странно, что они начали жаловаться после того как приняли макет...
    Ответ написан
    Комментировать
  • Улучшит ли display: none работу сайта?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Думаю, наиболее простое решение, Вашего вопроса:
    0. Обновить гугл хром до последней версии
    1. Нажать F12
    2. Открыть вкладку "Preformance"
    3. Посмотреть эффект "до" и "после" и оценить происходящее :)
    Ответ написан
    Комментировать
  • Remote assistance для Ubuntu?

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

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

    Второй вариант, более сложный - проксировать данные при их обновлении либо на уровне самой БД (не все БД такое умеют к сожалению, синхронизировать отдельные таблицы в режиме "мульти-мастер"), либо с помощью программы работающей в фоновом режиме, которая будет каждый N-секунд/минут/часов/etc проверять данные в обоих БД и синхронизировать их.

    Правильно ли использовать одну таблицу для всех?
    А в чем Вы видите потенциальную проблему такого подхода?

    Но мне кажется такая система немного запутанной и сложной для дальнейшего усовершенствования.
    Лично мне, сложной она не кажется и особо запутанной тоже. Другой вопрос в том, что в Laravel есть уже готовая система и авторизации, и аутентификации и т.д., в т.ч. различные механизмы схожие с теми, что Вы обозначили как "права доступа".
    Ответ написан
  • Как и куда сохранять индекс выбранной вкладки для компонента nav-tabs?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Как и куда сохранять индекс выбранной вкладки для комопнента nav-tabs и как потом загружать?
    Если Вы хотите, что бы открывалась вкладка с тем же номером, что была открыта до обновления страницы (а об этом ничего не сказано, т.к. методы store и update контроллера - никакого отношения к обновлению страницы не имеют, как и все остальные методы контроллеров :), лично я их через JavaScript сохраняю в LocalStorage, ещё их можно сохранить в куках, сессии, БД, текстовом файле, хранилище в оперативной (redis. memcached) или где-нибудь ещё. Всё зависит от Ваших потребностей и задач.
    Ответ написан
    Комментировать
  • Как сделать выборку?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Помогите пожалуйста
    Вы не пробовали обернуть значение в кавычки? Как-то так например:
    $sql_select = "SELECT * FROM `visits` WHERE login='{$_SESSION['login']}'";


    P.S. А вообще, если запрос не работает - довольно верное средство - взять и запустить его в в базе "напрямую". В вашем случае, это будет выглядеть примерно так: echo $sql_select; exit; - получаете запрос, запускаете его и формулируете вопрос более конкретно, на тему того, "что именно не работает" (в данном случае, запрос или его генерация) и прикладываете номер соотв. ошибки.
    Ответ написан
    4 комментария
  • Как с помощью Jquery нажать элемент при нажатии элемента?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Попробовал вот это:
    .click в JQuery - это обработчик одноименного события, а не его генерация, если Вам нужно сэмулировать клик по элементу, выглядит это примерно так: $('#element').trigger('click'); А вообще, правильно это релизуется - отслеживанием "хеша" (т.е. того, что после '#' в адресной строке) и соотв. реакцией на его изменение. В принципе примерно это же Вам сказал предыдущий оратор :)

    P.S. Подробности про эмуляцию клика.
    Ответ написан
    Комментировать
  • Как в Yii2 обработать одновременные запросы на вставку одинаковых значений в БД?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    В таблице ставок нет уникального индекса на item_id+price.
    Почему?

    С виду кажется, что нужно просто прописать уникальный валидатор в модель ставки для валидации пары значений item_id + price
    Лично мне - так не кажется.

    Есть ли возможность в Yii2 предотвратить вставку одинаковых значений
    Эта возможность должна быть в БД, а не в Yii2, чисто логически.

    при одновременной посылке одинаковых запросов, обе проходят валидацию
    А как Вы одновременно генерируете одинаковые запросы? (просто интересно)

    Варианты?
    1. Добавить UNIQ-индекс и не изголяться
    2. Блокировки
    Ответ написан
    Комментировать
  • Как в Laravel сформировать такой SQL запрос?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
  • (Yii2) Как сравнить строку текущего пользователя?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    То if не работает, просто выводится первое echoне пойму почему, может подскажет кто ?
    IF - как раз таки работает, т.к. = - это оператор присвоения. == - это оператор сравнения, === - оператор строго сравнения. Настоятельно рекомендую ознакомиться с этим и этим.

    P.S. Так же, хочу обратить Ваше внимание, что это штатные, базовые операторы (такие же, как +|-|*|/ и т.д.), и подобным поведением они обладают во многих языках, не только в PHP и с Yii никак не связаны напрямую.

    не пойму почему, может подскажет кто ?
    конкретно "почему?", думаю, по тому, что в конечном счёте, т.к. у Вас там стоит оператор присваивания, if выглядит так:

    if('not@admin.com') {
      //do
    }

    Т.е. if проверяет значение, приводя его к bool, а строка 'not@admin.com' логически == true.
    Ответ написан
  • Влияет ли большой js код на нагрузку на сайт и его скорость?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Будет ли из-за этого сервер выдавать ошибки если на сайт зашло много людей и вообще сильно ли влияет код такого размера на сайт?
    JS код не выполняется на сервере (обычно), по этому на сервер напрямую он никак (обычно) не влияет. Влияет он обычно на скорость работы кленитского устройства.

    но код вышел очень большой(около 3000-3500строк)
    Объём кода обычно оценивается не по кол-ву строк, а по физическому размеру файла. Думаю, 3-4тыс. строк - это не очень много. К тому же, файл(ы) JS (и CSS) можно минифицировать. Если код написан хорошо - то будет нормально работать даже на слабых клиентских устройствах, например на телефонах. (P.S. Сколько Ваш JS-файл занимает Кб? Он минифицирован? И да, не стоит забывать, что на сервере не редко так же включено сжатие GZip или Brotli, по этому более корректно оценивать размер файла в сжатом виде, а не в исходном).

    P.S. Вы можете сами оценить нагрузку на клиентское устройство, скорость загрузки сайт и пр. его параметры в инструментах для разработчика браузера (включаются обычно по нажатия F12).
    Ответ написан
    2 комментария
  • Как работает 1170 сетка бутстрап?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Если честно не совсем понимаю, что за 15 пикселей с каждой стороны сетки от 1170.
    Не могу сказать на 100%, но по моему, это обычные "отступы колонки", с каждой стороны. Т.е. расстояние между колонками соотв. должно быть 15+15px, т.е. 30px.

    Для чего эти паддинги по бокам?
    Это почти риторический вопрос... Но, авторы сетки определенно видели в этом какой-то смысл. Как один из вариантов - что бы контент не "прилипал" к краям дисплея на устройствах с маленьким разрешением, напримр на мобильных.

    Дело в том, что я уже много лет в фотошопе и скетче рисую по сетке 1170 без учета этих паддингов.
    Тут два основных варианта для конечного исполнителя:
    1. Собрать страп-сетку под свои/Ваши нужды, страп-сетка легко кастомизируется, включая примерно все её параметры, от разрешения и ширины колонок до...
    1.1 Убрать эти padding'и с помощью CSS'а, заменив пару соотв. свойств
    2. Не использовать страп-сетку или использовать какую-то другую сетку :)
    Ответ написан
    3 комментария
  • Не скачивается нормальный файл с интернета. Как исправить?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Что еще посоветуете попробовать?

    1. Установить VirtualBox, установить туда Linux (например, Ubuntu), попробовать скачать там (установка не сложнее установки винды и занимает ~15 минут на довольно "средних" компьютерах)
    2. Убедиться в том, что скачивает точно не то, что должно
    3. Если п.1 и п.2 не помогли - переустановить винду
    4. Если п.3 не помог - повторить его + сменить провайдера
    Ответ написан
    Комментировать
  • Какие идеальные взаимоотношения между заказчиком и исполнителем?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Какие идеальные взаимоотношения между заказчиком и исполнителем могли бы быть построены. И по какой схеме работать?
    По контексту Вами сказанного:
    1. Исполнитель взял заказ и договорился о цене,
    - с этим пунктом всё нормально, на мой взгляд

    2. Заказ оказался сложнее (появились подводные камни)
    - проблемы исключительно исполнителя, заказчик не должен страдать никоим образом, от некомпетентности исполнителя. К этому пункту ещё можно было бы добавить:
    2.1 У заказчика возникли какие-то личные психические проблемы и он вдруг подумал, что заказ должен стоить в 3 раза дешевле, чем изначально договорились

    3. Исполнителю пришлось делать двойную(или тройную) работу, но цена уже обговорена в 1пункте
    3.1 Заказчику пришлось платить в два(или три) раза больше за работу, но цена уже обговорена в 1пункте, хотя в пункте 2.1 он уже для себя решил, что заказ должен стоить в два(или три) раза дешевле.

    4. Исполнитель получил только заранее обговоренную цену, но работы сделал в 3 раза больше.
    Исполнитель сделал то, что указано в договоре и получил за это то, что указано в договоре.

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

    Фриланс - ничем не отличается от любого другого рынка/магазина. Одни предлагают что-то, другие решают, хотят они это приобрести за указанную цену или нет. Или, обратный вариант - одни предлагают работу, другие предлагают варианты её решения за сумму, которую считают достойной (аки "тендер").
    Ответ написан
    7 комментариев
  • C# 5.0 и 7.0 большая ли разница?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Стоит ли учиться по по версии c# 5.0, в то время когда уже вышла 7.0?
    Учиться - стоит. Повышать квалификацию - вряд ли...

    P.S. Те C#, с которыми пришлось поработать мне, сохраняют почти полную обратную совместимость. К тому же, в учебных курсах (начального уровня), очень редко затрагиваются вопросы которые были бы крайне специфичны для какой-то конкретной версии языка (я говорю про C# в данном случае). А потом, когда поймете все самые главные принципы языка - переехать на новый "синтаксический сахар", обычно труда не составляет.
    Ответ написан
    4 комментария