Задать вопрос
  • Какой подход в MVC дизайне более эффективный и как они правильно называются?

    uDenX
    @uDenX
    PHP Developer
    Для этого хватит одного контроллера с парой методов.

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

    Помимо MVC есть другие подходы - Тык
    Ответ написан
    Комментировать
  • Как найти похожие ПО ЦВЕТУ товары по изображению?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    https://github.com/jenssegers/imagehash
    https://github.com/xwiz/phash

    Ищите минимальное расстояние Хэмминга и после - уже на них ищите отношения цветов пикселей (RED25%/TOTAL, RED50%/TOTAL, ..., GREEN25%/TOTAL, GREEN50%/TOTAL,....): каждого цветового сегмента одного канала к общему количеству пикселей.
    Цветовой сегмент - это процент по цветовому каналу.
    Самые близкие дроби нужного Вам цвета - это и будет то, что Вам нужно: похожие с конкретным цветом.

    И нужно чтобы степень схожести цветов можно было задавать.
    Ширина диапазонов канала и модульное расстояние между конкретными отношениями цветов (дробями). Т.е. собираете превалирующие цвета в кластер и сравниваете не один цвет внутри диапазона, а сразу несколько (из кластера).

    Уменьшить кол-во цветов: здесь и см. 1-й коммент!
    PS: пока - можно без НС всё сделать.
    Ответ написан
    2 комментария
  • Какой из способов организации хранения адресов и данных паспорта выбрать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Павел Чесноков дело говорит, а по сути:
    - User hasOne Passport / Passport belongsTo User (связь OneToOne)
    С адресами чуток сложнее, тут я бы сами адреса хранил отдельно через связь OneToMany, с дополнительным свойством type. А вот isAddressSimilar и isAddressPlaceOfStay - либо флагами в User, либо вообще динамическим свойством - например если записи адреса с типом place_of_stay не существует, то юзаем дефолтный (registration) или просто возвращаем false. Ибо хранить записи где все колонки кроме PK null это не ок.
    Ответ написан
    4 комментария
  • Какой из способов организации хранения адресов и данных паспорта выбрать?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    Вероятнее всего, что вид хранения полностью зависит от нескольких факторов:
    • Количество и структура информации влияет на выбор типа базы данных (реляционной или нереляционной). В вашем случае (json массив и миллион паспортов) = надо смотреть в сторону NoSQL и хранить всё одним блоком (коллекцией) ради мифической скорости. Но ведь больше не будет ветвиться структура и не появятся новые зависимости, количество полей известно и очень легко и красиво делиться на таблички.
    • Паспортные данные = личная информация = надо её защищать, любить и лелеять. GDPR дойдёт и до вас, не сомневайтесь. И тогда: разборки, анальные досмотры, суды, штрафы и т.д. И когда вашу базу кто-то стащит он не должен получить всю информацию в явном виде, т.е. такие данные должны храниться частями в разных местах: имена отдельно, адреса отдельно, мухи отдельно. Снова смотрим в сторону табличек, параллельно раскладывая данные разных таблиц на разных серверах и в разных ЦОД'ах.
    • Кто заказчик? Вы делаете это для себя? Для турагентства? Для ФСБ? Для себя - вообще неважно, что, как и где хранить, главное чтоб вам было интересно код писать. Для турагентства - скоро им запретят хранить такую информацию и вам дадут заказ всё переделать по новым законам/правилам/СНиП'ам. А вот ФСБ сами скажут (или ночью подправят ваш код) какая структура данных должна быть и как её хранить по ГОСТ'у.

    По моему мнению, с учётом вышеизложенного, информацию такого типа надо дробить на мелкие кусочки и складывать в отдельные таблички. И пускай меня засмеют проповедники обречённости реляционных моделей - я упёртый консерватор.
    Ответ написан
    2 комментария
  • Сколько стоит час веб-разработчика-фрилансера?

    @deliro
    Ты веcь такой кругом молодец, то знаешь, это знаешь. А теперь представь себе среднестатистический проект, который должен приносить бизнесу деньги. За две недели работы ты едва напишешь хлипкий CRUD для данных, неправильно смаппив бизнес-сущности в объекты ORM, ещё через месяц натянешь какой-то слайдер на jQ, попутно захватив 2мб JS кривых библиотек, а через два заказчик поставит тебе плохую оценку, потому что твой ценник он оплатил не за то, что ему нужно, а потому что ты знаешь монады, которые ему даром не сдались.

    А теперь давай представим простого программиста. Из алгоритмов он с трудом вспоминает сортировку пузырьком, а двусвязный список — предел его знаний о структурах данных, и даже этим списком он пользовался два раза в жизни. Хаскель он никогда не видел в глаза, C++ учил только в школе, вместо этого пишет неэффективный код на PHP. И у него есть опыт. За день он распишет сущности, за второй сделает универсальный CRUD, на третий день поднимет фронт на React'е с SSR. Да, внутренности проекта будут "медленными". Вместо O(logN) что-то будет выполняться за O(N) или даже O(N^2), но всем похер. Пока всё работает на приемлемом уровне — бизнес радуется.

    Кстати, к чему эта поучительная лапша? Я хотел сказать, что всеми этими модными словами можно пугать друзей и преподавателей, но в реальной жизни все алгоритмы уже реализованы, все типы данных уже подобраны оптимально. Знать их полезно для себя (чтобы мозг не атрофировался), но не для работы. Для работы тебе нужны такие навыки как:

    * Оптимальный баланс между говнокодом и идеальным кодом
    * Оптимальный баланс между скоростью разработки и оптимизацией кода
    * Оптимальный баланс между поддерживаемым кодом и костылями
    * Умение использовать те инструменты, с которыми ты работаешь. Опять же, для того, чтобы писать быстро, при этом имея минимальное количество говнокода и обеспечивая максимальную поддерживаемость (в пределах сроков). Например, можешь выкинуть в помойку свой Vim, как бы круто ты себя не чувствовал, разрабатывая в консольном редакторе, если продукты от JetBrains позволят за это же время сделать что-то лучше или чего-то больше
    * Чувство "знаю больше менеджеров". Это то чувство, когда тебе кажется, что "вот эта фича скоро изменится" и надо сделать архитектуру заранее более гибкой. Или "вот эту фичу мы через месяц выпилим" и не надо тратить на неё силы — напиши костыль и через месяц с чистой совестью удали его
    * Знания, как сделать ту или иную фичу. Потому что фичи повторяются (немного видоизменяясь) от проекта к проекту. И если ты сделал что-то за два дня, в следующий раз ты похожее сделаешь за три часа

    Что касается инструментов, выбери любой полноценный фреймворк, который умеет решать 90%+ потребностей "из коробки": Symfony, Django, Laravel

    Всякие "минималистичные" поделия вроде Falcon, Flask (в PHP не знаю, я на питоне пишу) оставь хипстерам. Пусть они говорят: "Мой фалкон такой быстрый, он написан на Cython". Тебя это не должно волновать, потому что бизнес с твоей скоростью разработки уже заработал достаточно денег, чтобы купить ещё десять серверов, пока фалконисты неделю гуглили, как прикрутить миграциии и запустить юнит-тесты на VPSке за пять баксов.
    Ответ написан
    5 комментариев
  • Выгоднее ли быть разработчиком в СПБ, чем в Москве?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Ну это всё от критериев выгодности зависит.

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

    С любом случае, каждый их этих городов покажется вам раем после какого-нибудь Усть-Прямокишкинска... И разонравится, после того, как вы начнёте смотреть по сторонам и анализировать. Ну или не разонравится, если не начнёте.

    Что в Мск, что в СПб, на зарплату ~120к вас ожидает "квартира" в панельном гетто на окраине с ипотекой на 20+ лет и переплатой в два-три раза. Ну, единственное отличие, что в СПб вы возможно будете тратить меньше времени на дорогу (или нет).

    Мой вас совет: учите английский и уезжайте. СПб и Мск можно как трамплин использовать, не более того.
    Ответ написан
  • В Postgresql схема: зачем нужна и как я её могу использовать в своих проектах?

    Melkij
    @Melkij
    PostgreSQL DBA
    В оракле схем разве нет?..

    schema - дополнительный уровень структуризации объектов. Как namespace в программировании. И, к слову, входит в стандарт SQL.

    Вы можете сделать таблицы:
    user_subscriptions
    user_orders
    user_favorites
    Вы можете сделать
    user.subscriptions
    user.orders
    user.favorites
    И в этом нет никакой разницы для СУБД. Но может быть удобно разработчику оперировать не с сотней таблиц одним списком, десятки из которых с одинаковыми префиксами (т.к. относятся к своим сущностям), а отдельные схемы по сущностях.

    Пилить же одну таблицу на несколько смысла при этом не так много, зато добавляется хлопот.
    Если вы хотите давать прямой доступ пользователю к базе - то зачем? Не надо так делать в разделяемой среде. Любую СУБД можно положить каким-нибудь интересным запросом. А в то что люди временами будут писать интересные и сильно творческие запросы - по опыту DBA вам гарантирую. Иногда такого наворотят... 0,5тб временный файлов одним запросом, например. Или сожрать 30гб RAM и увести базу в аварийный рестарт от OOM.
    Ответ написан
    1 комментарий
  • Почему при объявлении переменной, в любом языке программирования, резервируется весь размер памяти отведённый под тип данных?

    @DDwrt100
    Могу ошибаться, но все это выливается из архитектуры работы компьютера.
    Память имеет физическую размерность, процессор работает с строго определенными блоками данных.
    Для того чтобы сделать плавающую по объему переменную необходимо потратить ресурсы на её контроль.
    При миллионах переменных, будет тратиться очень очень много ресурсов на контроль таких изменений.
    Ответ написан
    24 комментария
  • Почему при объявлении переменной, в любом языке программирования, резервируется весь размер памяти отведённый под тип данных?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если я просто объявил переменную типа short, то сколько памяти надо под неё выделить? А если записал в неё ноль? А если после этого записал в неё 65535? А где хранить количество выделенной для переменной памяти? И как перевыделять память, если она выделяется в стеке?

    P.S. А как вы представляете себе массив с доступом по индексу, если каждый элемент массива имеет свой размер?
    Ответ написан
    4 комментария
  • Как синхронизировать одну папку с файлами с множество папок более 1000?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Ответ написан
    Комментировать
  • Есть ли алгоритм для разделения информации на несколько частей, с возможностью восстановить исходную информацию обладая только двумя частями?

    longclaps
    @longclaps
    Показываю на пальцах, для четверых:
    пароль: 'ABCD'
    на руки раздаёшь:
    1: '*BCD'
    2: 'A*CD'
    3: 'AB*D'
    4: 'ABC*'
    Ответ написан
    Комментировать
  • Как лучше, Кнопка "бургер меню" в html или генерировать через js?

    NooBiToo
    @NooBiToo
    Однозначно лучше и проще сделать на css, используя media
    Ответ написан
    Комментировать
  • Как лучше, Кнопка "бургер меню" в html или генерировать через js?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    У верстальщиков есть негласное правило - то, что можно сделать CSS'ом (т.е. обойтись без JS) - стоит делать именно CSS'ом. Главное, не гиперболизировать это правило и не возводить его в степень абсолюта. Оно работает в тех случаях, когда трудозатраты на оба варианта (JS/CSS) соизмеримы и вариант с CSS'ом не влечёт за собой замусоривание кода (например, слайдеры можно делать в т.ч. и на "чистом CSS", но такой подход вряд ли можно будет считать хорошим решением в большинстве случаев).
    Ответ написан
    Комментировать
  • Размазанная картинка iframe, но почему?

    @tyzberd
    там есть ytp-cued-thumbnail-overlay-image и картинки
    первое видео https://i.ytimg.com/vi/lfWDnyxt4bo/maxresdefault.jpg
    второе https://i.ytimg.com/vi/lfWDnyxt4bo/default.jpg
    Ответ написан
    Комментировать
  • Размазанная картинка iframe, но почему?

    rockfeeler
    @rockfeeler
    Фронтендер, дизайнер, верстальщик-перфекционист
    Короче. Проблема в том, что труба воспринимает display: none как нулевые высоту и ширину, поэтому дает постеру самое плохое качество (пиксели эти самые). В сети нашлись варианты как сделать кастомный постер хорошего качества через youtube api. Но я нашел способ проще. Вместо того, чтобы долго рассказывать, просто покажу:



    Единственный минус: в контент табов больше ничего кроме видео не впихнешь, так как страницы размечены под 16 на 9.

    UPD: Тут подумал, а что если при загрузке страницы вкладки будут обе активные (т.е. видны и видео загрузится), и только по docready ты будешь ненужные прятать скриптом? Это должно сработать.

    UPD2: Проверил, работает.
    Ответ написан
    Комментировать
  • В чем преимущество localStorage перед cookie?

    SagePtr
    @SagePtr
    Еда - это святое
    Содержимое localStorage не передаётся на сервер. Из этого вытекает как минимум два плюса:
    1. Невозможно спровоцировать его передачу при помощи CSRF.
    2. В нём можно хранить гораздо больше информации и не переживать, что эта информация будет передаваться с каждым запросом и жрать исходящий трафик.
    Ответ написан
    Комментировать
  • В чем преимущество localStorage перед cookie?

    Думаю, сложно говорить, хуже, лучше, так же...
    Все зависит от конкретной задачи\проекта\ да и вообще потребностей.

    5d306aa4354a6462085788.png
    Ответ написан
    Комментировать