• Как кастомизировать ошибки валидации laravel 7 через Requests для API?

    Alex_Wells
    @Alex_Wells
    nikilex, причем тут strtolower? Я спросил, почему "так задумано" и почему это они вдруг "должны"
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    kocherman,
    Друг, я не знаю как тебе объяснить, что выполняет программу реальный компьютер, а не виртуальная Java-машина. И этот реальный компьютер ничего про Java не знает.

    .... виртуальная Java-машина конвертирует байт-код джавы в понятный для компьютера. Сам по себе компьютер понятия не имеет, как использовать байт-код джавы, потому что это НЕ ОДНО И ТОЖЕ. В этом суть.

    Мне то как раз никакие дизассемблеры не нужны.
    Мне хватает hex-режима в mcview/mcedit.

    И.е. разобрать ты это не сможешь, потому что там будет слишком много бесполезных конструкций, служащих только одной целе - усложнить деобфускацию, дебаг, реверс-инжениринг. Даже проект на 10 строчек, обфусцированный хорошим обфускатором, ты хер поймешь, пытаясь прочесть hex, а про реальные проекты на сотни тысяч строк я молчу - ты их даже без обфускации не восстановишь за годы работы.
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    1) https://ru.wikipedia.org/wiki/Java
    2) https://ru.wikipedia.org/wiki/Java_Virtual_Machine
    3) https://ru.wikipedia.org/wiki/JIT-%D0%BA%D0%BE%D0%...
    4) https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D...

    https://en.wikipedia.org/wiki/Java_class_file

    Ок, ты прав, это байт код, но никакого отношения к ассемблеру он все равно не имеет, потому что там черным по белому написано, цитирую:
    A Java class file is a file (with the .class filename extension) containing Java bytecode

    https://en.wikipedia.org/wiki/Java_bytecode

    Процессор понятия не имеет, что такое джавовский байт код и как его выполнять. Этим занимается JVM.

    Друг. Этот вопрос, я еще задавал лет 10 назад, еще до появления tostera как отдельного сайта. В те года вопросы на хабре были вперемешку со статьями. И кто тебе сказал что это я сделал решение статику отдавать php? Я то как раз в те года писал на плюсах и perl, а php чтобы ты понимал, особо и не знал, и сейчас не знаю. Он мне не был нужен никогда. Я просто решал проблему с резко увеличившейся посещалкой сайта.

    Этот вопрос ты задал три-четыре года назад: Возможно ли оптимизировать отдачу web-сервером статики используя PHP?

    Друг, идой я не пользовальзовался лет 15. И что сейчас она выдаёт С++ код?

    Нерабочий, есстественно, но это всяко читабельней чем ассемблер, особенно если цель - разобрать проект больше чем на 5 строк.


    А то, на что ты скинул ссылку - в заголовке большими буквами написано It didn't work.

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

    Во всяком случае, это сильно проще чем пытатся понять байт-код класс файлов джавы. Благо, переименовывать идеешки умеют очень быстро - остается только пораздавать имена, если мы говорим о простой обфускации. А теперь представь, что обфусцировали хорошим обфускатором, который раскидал код по куче рандомных, несвязанных классов, и намеренно усложнил конструкции в коде? Как будешь это разгребать, читая байт-код?
  • Нужен ли ID в базе mysql?

    Alex_Wells
    @Alex_Wells
    Лентюй, есстественного - это какого? Вот в реальном примере, чем будет первичный ключ для обычной таблицы юзеров? Емейл штоле?
  • Нужен ли ID в базе mysql?

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

    Конечно не должны. Но в реалиях 99% проектов - связи будут, а данные будут менятся, посему если не уверен, что ты ТОЧНО не хочешь id - добавляй id.
  • Как организовать и хранить конфиг по каждому пользователю, чтобы что-то делать один или несколько раз?

    Alex_Wells
    @Alex_Wells
    twobomb, ... у нас в проекте так таблица сеттингов была органзована. В итоге отказались нахуй и перешли на JSON. Никаких проблем на довольно большом проекте.
  • Как организовать и хранить конфиг по каждому пользователю, чтобы что-то делать один или несколько раз?

    Alex_Wells
    @Alex_Wells
    twobomb, в смысле только нужное? Зачем так запариватся? В чем, блять, смысл?

    И да, достать одну (или несколько булевых) из другой таблицы - занимает СИЛЬНО больше времени и ресурсов, чем JSON поле. Конечно же, все в сравнении, но это же ты тут на спичках экономишь.
  • Как организовать и хранить конфиг по каждому пользователю, чтобы что-то делать один или несколько раз?

    Alex_Wells
    @Alex_Wells
    twobomb, ... вытягиваем.. гребаную строку размером в 100 байт. О да, большая проблема! Как только это можно делать! Конечно же, это сильно хуже, чем каждый раз вытягивать данные ОТДЕЛЬНЫМ ЗАПРОСОМ В ДРУГУЮ ТАБЛИЦУ, особенно учитывая, что нам нужна не "одна булевая", а ВСЕ булевые за раз, потому что этим занимается ФРОНТЭНД, а не мы.

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

    Зато не прийдется декодить жсон (операция, которая происходит за миллисекунду в данном случае), ага.
  • Как организовать и хранить конфиг по каждому пользователю, чтобы что-то делать один или несколько раз?

    Alex_Wells
    @Alex_Wells
    twobomb, ничем не лучше, не быстрее и не надежней. Плодить стопятсот строк в этой таблице и для КАЖДОГО посещения страницы их дергать (или дергать кэш) - это полный идиотизм. Это не сущность, джоинить по ней не нужно, выборки делать тоже.
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    kocherman,


    Какой бизнес? Что есть бизнес?

    В смысле какой? Любой коммерческий проект - бизнес. Весь гугл, фейсбук и твиттер - бизнесы. Хабр тоже бизнес.

    Да будет вам известно, компьютеры, контроллеры и прочие вычислительные станции умеют выполнять только байт-код, код самого низкого уровня. Ассемблер и байт-код транслируются друг-в-друга самым простым способом. По-сути, компьютер не умеет выполнять вообще ничего кроме байт-кода. И ему пополам на каком языке писалась программа.

    И... что? Java хранится в скомпилированных файлах, но никак не в байт-коде, потому что для его выполнения нужна, блять, java.

    Такие люди как вы - не учат. А нормальные ученики учат.

    Я учил дискретку в универе. Возможно в России и учат дискретку в профильных классах, в Украине - нет.

    С чего вы это вообще взяли? Я начинал программировать на JS в 1997, это было еще до появления CSS. О чем вы говорите? В nginx есть и мой код лично, пусть всего несколько строк, но я писал тот патч больше 10 лет назад.

    Ага, и именно поэтому ты статику раздавал php? Если бы ты РЕАЛЬНО знал как использовать nginx, то тебе бы никогда даже в голову не пришло так делать, из чего я и сделал вывод, что с nginx'ом ты не был знаком. Даже если ты знал, что это, то не имел никакого представления о том, как его юзать в реальных проектах.

    Вы так и не прочитали статьи по тем ссылкам на википедию.
    У вас свои понятия "побочного эффекта" и "чистой функции".
    От того вы фантазёр.

    Ты скинул статью на википедию, где описаны несколько пунктов, и ни под одну из них указанные математические функции не подпадали. Когда я попросил тебя как-то аргументировать свою позицию, ты слился, тупо ссылаясь на википедию, вместо того, что бы сказать что-то конкретное. Вот и я ссылаюсь на википедию - прочти еще раз свое же определение.

    про rust, хотя не написали на нём никогда.

    ... интересно, где ж я про него трепался? Я его упомянул раз или два и на этом все.

    А так же вы не знаете ни ся, ни плюсы.

    Знаю. Я, конечно, не использую это говно на практике, но я их знаю - приходилось писать курсач же.

    Это два разных языка программирования, у них абсолютно разные назначения. Разные как самосвал и автобус. Употреблять их в форме

    Нет аргументов - докопайся до моих познаний в C/C++, вместо того, что бы указать, где конкретно я проебался! Но ты же весь мой комментарий раскопал, а конкретной цитаты, где я что-то сказал не так про C/C++ в контексте разговора - так и нет. Видимо, ты нихуя не нашел.

    Друг, а ради чего ты живешь на этом свете? Что тебе надо? К чему ты стремишься? К бизнесу? А нужен ли он тебе будет в 50 лет?

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

    Где ты там работаешь?

    В бекенде.

    Что ты разрабатываешь?

    Фичи.

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

    Дальше что? Ну, допустим сидел бы там ты, и умел бы писать движки шахмат на 1кб. mysql насколько хорошо знаешь? Умеешь оптимизировать запросы? Знаешь новые фишки mysql 8? Пробовал аврору? Кластерил базу? Повседневная задача любого бэкендера.

    А может с elastic'ом дружишь? Прилетел таск сделать ахуенный поиск по проекту, или матчить между собой людей по схожим параметрам - что будешь делать?

    Может ты еще и стэк библиотек/фреймворков знаешь? Знаешь, что использовать для какого проекта? Какие либы хорошо расширяются и хорошо покрыты тестами, а какие нет?

    Может ты сможешь решить, использовать ли монолитную, модульно-монолитную или микросервисную архитектуру? А к DDD как относишься? Чистая архитектура?

    Тесты писать умеешь? Интеграционные? Юнит? А знаешь, как писать код так, что бы не дублировать тесты?

    Подозреваю, что на половину этих вопросов твоим ответом будет "нет". А все это - реалии разработки проектов для бизнеса. Их нужно писать быстро и так, что бы в будущем люди, которые будут поддерживать твой код, тратитили на это минимальное кол-во времени.

    Им нахуй не сдался человек, умеющий сократить движок шахмат на JS до 1кб - такую задачу ты НИКОГДА не получишь и этот навык не ценится НИКАК.

    Дайте ссылочку хоть на одну.

    https://www.hex-rays.com/products/ida/

    Тоже поделитесь ссылочкой. Деобфускация... Звучит как что-то для PHP.
    Вы уверены, что это про Java?

    Ты б хоть не позорился..
    https://www.techopedia.com/definition/24827/deobfuscate
    https://github.com/java-deobfuscator/deobfuscator
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    а у меня много денег, мне не важен бизнес.

    Поздравляю. Как это относится к теме? Задачи в программировании в 99% ставятся именно бизнесом, а не любителем пооптимизировать массивы в JS.

    А понимание ассемблерного кода необходимо хотя бы для реверс-инжениринга любого софта

    Нет, не любого, только софта, написанного на C/C++. И даже тот намного проще реверсить утилитами, генерирующими подобие реального C/C++ кода и читая именно его.

    А другие языки, в т.ч. и java, реверсятся обычной деобфускацией.

    2) Незнание правил игры в шахматы.

    ахахах, какой же ты маразматик)

    3) Незнание школьного курса дискретной математики.

    В школе не учат дискретную математику, к слову.

    4) Постановка своих фантазий выше того, чтобы прочитать статью в википедии.

    Про свои фантазии про реальность программирования не забудь только...

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

    Дак ты может процитируешь, или продолжишь трепаться?)

    Прикрутите кнопку отмены последних трех ходов к тому алгоритму.

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

    У меня на это потребовалось не больше 7 минут и я сократил код еще на 60 байт.

    С нормальным кодом на это уйдет две минуты, а на количество байт не похрен тебе одному в этом мире.

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

    Что мне доказывать то? Сейчас работаю над крупным проектом, каждый месяц выкатываем по 5-6 фич и это командой всего в 12 девов, включая фронт. Есть и мидлы и синиоры. Если бы тут каждый разбирал подобный твоему говнокод каждый день, пытаясь чето поменять, то мы бы выкатывали не по 5-6 фич в месяц, а одну в пол года.

    Но ты можешь продолжать жить в своем мирке, где у тебя много денег, бизнес не важен, а задачи по программированию ты ставишь себе сам :)

    Впрочем, чего я ожидаю от человека, который еще три года назад не знал, что такое nginx и как им пользоваться. Сомневаюсь, что с тех пор ты побывал хоть на одном реальном коммерческом проекте. Только календари и шахматы пилил на JS.
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    kocherman,

    и вообще причем тут бизнес?

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

    Интересно, а как вы ассемблерный код писать будете?

    Никак. Писать ассемблерный код не имеет никакого смысла. Уже как более 30 лет существует язык C, а над ним - C++ и компиляторы к ним, если нужна супер-производительность.

    В ином случае существуют языки, подходящие под задачи: typescript, c#, python, kotlin, rust и другие.
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells

    >> - такая же математическая операция как +, ~, /, %, & или | или даже **.

    Аргументируй... покажи в реальной математике операцию побитового сдвига вправо. Жду ссылку.

    А до этого спрашивал почему [,,,,,,,] а не new Array(7).

    Я не предлагал делать Array(7), а говорил написать комментарий к этому бреду. Мог оставить просто [], разницы никакой. Только не заливай мне про оптимизацию, этим ты сэкономишь настолько мало, что в реальном мире это будет незаметно.

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

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

    Это не "формула", а вполне себе реальная функция в коде. Хватит приплетать везде математику. Даже если бы это была формула на две строчки - будь добр, обьясни что там творится, дабы другим не пришлось разгребать это дольше секунды.


    Зачем это вообще поддерживать, если это и так работает?
    Хочешь исправить - напиши по своему.

    ....
    Ясно, в коммерческих проектах ты не был ни разу.


    Прочитайте страницу википедии еще раз. И в частности про чистоту функции и побочные эффекты.
    Использование Math.trunc, Math.pow - это и есть побочные эффекты.

    С какого хера это побочные эффекты? Ты не меняешь ничье состояние, вызывая эти функции. Это все еще pure функция. Но вопрос был не в этом, а в том, какое это вообще имеет отношение к теме разговора?


    А у вас реально проблемы с разбором чужого кода.
    Интересно сколько бы ушло времени на разбор, например, вот такого. Поиграйте на этой страничке, и расслабьтесь, там нет отмены хода.

    Не собираюсь я на это тратить и секунды, потому что это бесполезная трата времени. Бизнес не любит тратить время (а, следовательно, и деньги) впустую, так что в реальном, коммерческом программировании об этом можешь забыть. Если ты пишешь и разбираешь такое говно ради себя - да пожалуйста, мне тоже бывает интересно, но с бизнес задачами это не связано никак.
  • Как правильно делать SPA приложение на Laravel и Vue Router?

    Alex_Wells
    @Alex_Wells
    Sha644, зачем вариант без JS? Это что, для тор браузера что ли? Если сайт не для даркнета, то смысла делать что-либо без JS нет.

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

    Alex_Wells
    @Alex_Wells
    kocherman, о боже.. горе оптимизатор вошел в чат.

    Во-первых:
    1) почему trunc, pow не импортом вверху файла?
    2) почему new Array()? = []; - не?
    3) зачем пробелы после названий функций и перед аргументами? Зачем пробелы в if'ах и индексах массивов? Зачем после скобок for?
    4) где пробелы перед for, после if, перед return?

    решение стало на 100% не читаемым.

    В каком месте оно нечитаемое? Теперь ясно, что там происходит. В разработке важна легкая поддержка и быстрая вникаемость, а это говно поддерживать НЕВОЗМОЖНО. Любой уважающий себя разработчик не стал бы тратить силы на разбор этого гавна, а выбросил бы его и написал нормально. Сорри, если ты считаешь что это читабельно - то это только потому, что ты либо это написал, либо потратил 10 минут на разбор, а такое должно читатся и пониматся за долю секунды.

    Представьте, если бы математики вместо x и i использовали бы counter и incrementor

    Программирование это НЕ МАТЕМАТИКА. В программировании вообще очень мало математики за исключением специфических областей, связанных с физикой или экономикой. За пределами этих областей математика вообще почти не используется и программирование не имеет к ней никакого отношения.

    Да, поверь, если бы вместо h в математике писали height - студентам было бы в сто раз проще запомнить что это и в разы проще понимать формулы сходу, не тратя время на обучение и разбор. Конечно, профессорам, которые пишут эти формулы, проще бы не стало - но в программировании ты каждый день видишь сотни строк чужого кода и его нужно понимать и разбирать максимально быстро, не тратя на это и секунды. Это не математика и не физика, где есть набор из нескольких сотен/тысяч формул, хорошо разобраных в литературе, на которые уходят годы обучения.

    Видите ли, мой код написан с точки зрения ФП приблизительно идеально

    Причем.. тут... ФП? К чему ты это вообще сказал?

    Я честн попробовал оптимизировать код тремя инструментами: WebPack, Babel, Google Closure Compiler

    Не знаю как на счет последнего, но ни webpack, ни babel не создан для оптимизации кода. Они это, безусловно, могут, с кучей то плагинов, которые существуют, но их главная задача - собрать все в максимально понятный для старых браузеров JS код и минимизируя его сколько можно. НЕ оптимизация. Вебпак легко нахерачит тебе переменные типа "t", "x" и сожмет все в одну строку - если ты его попросишь.

    Мой же код будет работать также быстро, как будто я его написал на чистом си.

    Да-да, никакого оверхеда от V8 не будет. Угу :)

    Похоже, действительно, боженька не всех одарил математикой

    Математика вообще была единственным предметом в школе, который я любил, и я знал ее отлично. Только вот проблема: >> - это ПОБИТОВЫЙ СДВИГ ВПРАВО, каким хером это относится к математике? Никаким, это вообще не имеет ничего общего с математикой, так как в математике вообще нет понятия битов.

    Большинство программистов никогда даже не использовали эти операторы, а в новых языках, типа kotlin'а, от них вообще отказались. Их НЕТ в языке в привычной всем форме, только в форме функций. Это сделали потому что они используются настолько редко, что для них нет смысла вводить символьные операторы.

    А раз этим никто не пользуется, то это и не поймет большинство. Хорошо это или плохо - решай сам, но факт в том, что ты пишешь код в первую очередь ДЛЯ ДРУГИХ ибо именно они в конечном итоге будут в нем разбираться и его поддерживать.

    Вечером опубликую сравнительные тесты производительности, параметры оптимизаций WebPack, Babel и GCC. Будет занятно детально проанализировать огромную разницу в производительности.

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

    Кроме того, в РЕАЛЬНЫХ проектах найдется кучу намного менее оптимизированных мест, как, например, запросы в базу и кэш. Оптимизация любого из таких запросов сэкономит больше, чем тысяча оптимизаций, подобных твоей. Она обходится бизнесу в большие суммы, а в конечном итоге бизнес получает от этого минимальный профит.

    Сорри, но если ты хочешь писать супер-оптимизированные алгоритмы, так еще и оптимизируя их вручную вместо компайлера - пиши на C что-нибудь, но это всегда будет далеко от бизнеса.
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    kocherman, не понимаю. Вот ты вроде и не джун, судя по вопросам и ответам, но неужели синиоры, которые ревьювят твой код, пропускали всю эту хуету? Или ты фрилансишь и такую хуйню пишешь?
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    kocherman, нет, не читабельно. Нормально переменные называй, пробелы, строку с let c разбей, строку с const e разбей, напиши комент к `r[w] = [,,,,,,,];` и опиши вообще алгоритм, потому сейчас не ясно нихуя.

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

    Лучший код тот, который читабелен и поддерживаемый. Твой - ни то, ни другое.

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

    Это не математические операции, а БИТОВЫЕ. Нет НИКАКОГО смысла использовать битовые операторы за исключением очень и очень редких кейсов - в угоду читабельности и поддержке.
  • Как лучше сделать 'календарик'?

    Alex_Wells
    @Alex_Wells
    kocherman, использовал бы готовый JS/фреймворкный календарь.

    Ну а если религия не позволяет, то отформатировал бы гребаный код, нормально назвав переменные, проставив отступы, добавив комментарии и убрав хрень типа ~~v и >>m&2&3.

    Так спрашиваешь, будто я о чем-то заоблачном говорю. Это обычные вещи.