1. PHP / Говнокод #24451

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    if (isset($_GET['org'])) {
    $org=htmlspecialchars($_GET["org"]);
    }
    else $org=1;
    if ($num_resultsdop) {
    $sql = "SELECT * FROM `baza`, `sankomerc`, `sandop` WHERE baza.id='$org' and sankomerc.id='$org' and sandop.id='$org'";
    }
    else {
        $sql = "SELECT * FROM `baza`, `sankomerc` WHERE baza.id='$org' and sankomerc.id='$org'";
    }
    $row = mysql_fetch_array($result);
        $chotz=$row['chotz'];
        $nazvanie=$row['nazvanie'];
        $nazvaniech=$row['nazvanie'];
    
        //типографим название
        $typograph->set_text($nazvanie);
        $nazvanie = $typograph->apply();
        $nazvanienotags = strip_tags($nazvanie);

    SEO: #nazvanienotags

    SemaReal, помнишь, я тебе говорил, что летом скорее всего перейду на другую работу или восстановлюсь в универе?
    Тогда моя претензия была в том, что используют устаревающий Yii2, что нет CI, нет тестов…
    После импровизированного отпуска я пришёл, и получил проект, пример реального кода из которого ты видишь.

    Запостил: vistefan, 06 Июля 2018

    Комментарии (286) RSS

    • SEO: #nazvanienotags
      Ответить
      • Nazisfacismo
        Ответить
      • СУКАБЛЯДЬМУДИЛА из-за того что я с начало скопировал редкую вещь с сайта которого больше никогда не найду, а ты тут со своим Нази, пиздец я сразу же ушел гуглить назифашизмо, скопировал и его, а тот сайт я уже давно закрыл.
        ВИСТЕФАН! ВЕРНИ БУФЕР!
        Ответить
        • Воспользуйся "history" в "Google Chrome"
          Ответить
          • Этот совет настолько неуниверсален, что заранее предполагает использование Chrome и английского языка.
            Ответить
            • vistefan вернулся из отпуска, и начал умничать
              Ответить
              • Я интеллигент.
                Ответить
                • И поэтому ты берёшь только в рот, а попку бережёшь для будущего милёночка?
                  Ответить
        • У тебя что, браузер историю не пишет?

          А теперь Nazi:

          Сука, блять, мудило! Из-за того, что я сначала скопировал редкую вещь с сайта, которого больше никогда не найду, а ты тут со своим Nazi, пиздец…, — я сразу же ушёл гуглить «Nazisfacismo», скопировал его, а тот сайт я уже давно закрыл.
          vistefan! Верни буфер!

          Теперь обсудим речевые ошибки.
          «скопировал редкую вещь» — очень сомнительный оборот. Есть ли что редкое в Интернете…
          «а тот сайт я уже давно закрыл» — этот придаток возникает в конце стилистически неоправданно. Оно, конечно, может быть частью авторского стиля, призванного показать сумбур и смятение, возникшие в сознании рассказчика в связи с обисываемимы обстоятельствами, но определённо лучше бы ему было возникнуть в тексте раньше, не вызывая затрудняющей чтение инверсии.
          В целом, «я» (мест. личн. 1-е л.) возникает слишком часто, и этот лексический повтор некрасив.
          Ответить
          • А вдруг я посещал хентай и юзал инкагнита????))))))))))))))))))))))))))) )))))))0)))) И взял отуда что-то редкое?
            Ответить
            • Вы так говорите, будто настоящий анимешник станет использует инкогнито… Он лучше избавится от людей, которые могут увидеть его историю и будет жить один, чем попадать в такие ситуации.
              Ответить
              • А я онимешник? Я просто ананист.
                Ответить
                • Все онанисты давно открыли для себя Ctrl+Shift+Del, и тоже не юзают инкогнито. Инкогнито юзают только маменькины сынки, или при стесненных обстоятельствах (на чужой машине).
                  Ответить
                  • На работе
                    Ответить
                    • Если работа такая, что на ней можно смотреть хентай и дрочить — нафига тогда инкогнито…
                      Ответить
                      • Блядь, нужно хоть как то отвлекаться от обоссаной1с
                        Ответить
                        • Это всё объясняет.
                          Ответить
                          • Конечно, во всех нормальных язык есть паттерн сисек, а в 1с, ну э... хентай?
                            string.gsub("hello world", "(.)(.)","%1")
                            Ответить
                            • Хотя я хз, может это волшебные символы составляют сиси
                              Ответить
                            • Забавно что в Perl есть оператор Goatse. Вероятно потому что в Бразилии живут любители сисек, а среди старых юниксоидов много геев, и даже автор книги "Perl для системного администратора" (Лемончелли) -- Би

                              И не оператор сиси, это всего-лишь лунные недорегулярки (ака паттерны). Ты закепчурил два символа, и заменил их на первую.
                              =string.gsub("I am cool", "(c..l)", "(was: %1, now: loh)")


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

                              Можно заменять по таблице, например

                              words_to_replace = {["petuh"] = "loh"}
                              
                              function smart_replace(source)
                              	subst = words_to_replace[source]
                              	if subst then  
                              		return subst
                              	else
                              		return source
                              	end
                              end
                              
                              print((string.gsub("Stertor is petuh", "%a+", smart_replace)))
                              Ответить
                  • Боюсь тебя шокировать, но ещё инкогнито юзают те, кому нужно посмотреть сайт с чистыми куками и кешем.
                    Ответить
                    • Там сейчас всякие анти-трекинги прикрутили, может что-нибудь поломаться. Так что для отладки тоже не особо удобная фича.
                      Ответить
            • > инкогнито
              Бесполезная хуйня, имхо. Проще держать по виртуалке на каждое окружение. Никогда не будет ни проёбов истории ни случайно отправленных не в то окно сообщений.
              Ответить
              • Да, кстати, два окна одного браузера, открытые в режиме инкогнито, работают в общем пространстве, что может вызывать утечку информации. Лучше бы они «обычный режим» и «режим инкогнито» назвали «рабочее пространство № 1» и «рабочее пространство №2» (и вообще бы не ограничивали количество пространств двойкой), чтобы не вводить в заблуждение.

                Лучше поставить несколько браузеров. Можно, например, с http://portableapps.com/ скачать портативные сборки браузеров и разместить их копии в директориях с разными именами.
                Ответить
                • Несколько браузеров не решают проблему с одним клипбордом на всех.
                  Ответить
                  • Да! Почему на машинах с многогигабайтной оперативкой один единственный клипборд? Почему в ОС не придумали именованные клипборды? Или всё-таки где-то они есть?
                    Ответить
                    • > Или всё-таки где-то они есть

                      В некоторых андроидах есть стек скопированных текстов
                      Для винды есть фича punto switcher'a
                      Ответить
                      • > punto switcher'а
                        Это тот самый добровольный кейлоггер, который заодно раскладки переключает?
                        Ответить
                        • > который заодно раскладки переключает

                          пока ты вводишь пароль
                          Ответить
                          • Или код, что тоже охуенно удобно.
                            Ответить
                            • ахах
                              Ответить
                            • Некоторые используют punto switcher с выключенным автопереключателем. Нафига он тогда нужен? В виндах, вышедших после XP, индикатор раскладки странным образом может исчезать, тогда приходится вручную запускать ctfmon (особенно приятно его запускать, когда ярлыка нет, а текущая раскладка не содержит латиницы). И вот некоторые думают, что punto switcher им как-то поможет.

                              Да, ещё в стандартной виндусовской переключалке нет режима глобальной раскладки: она для каждого приложения запоминает свою раскладку. Это жутко неудобно: приходится помнить, в каком приложении у тебя кириллица, в каком латиница, а в каком какая-нибудь ещё раскладка (если есть). Вот народ и ставит сторонние переключалки.
                              Ответить
                              • Пиздец, пусть купят себе мак, это гамно до сих пор не умеет запоминать раскладки для каждого приложения. И, наверное, не научится до второго пришествия Св. Жобса
                                Ответить
                                • или поставят линуксы любые никсы с иксами: xkb пофиг на приложения
                                  Ответить
                          • А ещё "punto switcher" добавляет задание на скачивание всякой фигни в службу "BITS". Приходится чистить задания "BITS", ибо дико надоедает, что он постоянно что-то качает.
                            Ответить
                          • А ещё "punto switcher" добавляет задание на скачивание всякой фигни в службу "BITS". Приходится чистить задания "BITS", ибо дико надоедает, что он постоянно что-то качает.
                            Ответить
                      • Кстати, а чем они шифруют "дневник"?
                        Ответить
                  • В некоторых браузерах есть профили, в Firefox они куда-то далеко засунуты, а в браузерах типа Midori их достаточно удобно переключать, и у них разграничена область истории, кукисов. Насчет localStorage и кеша не знаю.
                    Ответить
                    • > достаточно удобно переключать
                      И настолько же легко спутать профили, воткнуть что-то не то из клипборда или залить не тот файл. Человеческий фактор никто не отменял. За примером далеко ходить не надо, Стертор тут недавно про это рассказывал.

                      Короче фича для хомячков, настоящие параноики не оценят.
                      Ответить
                      • Короче, лучше иметь несколько физических девайсов: флудить и троллить с одной машины, писать что-то серьёзное — с другой.
                        Ответить
                        • Ну это уже перебор. Тогда надо и 2 комнаты чтобы точно не спутать на какой машине что делать.
                          Ответить
                          • Надо просто второго человека
                            Ответить
                            • Или завести котёнка. Выпускаешь его на клавиатуру, чтобы он пофлудил за тебя.
                              Ответить
                              • Перестанешь выпускать, когда он нафлудит тебе в пиво, или чашку чая.
                                Ответить
                      • Пока мы тут пиздели, в Firefox появилась фича Container tab, теперь в пределах одного окна можно логиниться несколько вконтактиков.
                        The following data is separated by containers:
                        
                            Cookies
                            localStorage
                            indexedDB
                            HTTP data cache
                            Image Cache
                            Any other areas supported by originAttributes
                        Ответить
                        • Не нужно
                          Ответить
                        • Ух нихуя себе. Правда, и раньше был приватный режим и несколько профилей.
                          Ответить
                        • Я и раньше мог: Ctrl+Shift+P
                          Но фича годная.
                          Ответить
                          • > Я и раньше мог

                            >> в пределах одного окна

                            > Ctrl+Shift+P

                            >> несколько вконтактиков

                            В приватном режиме без профилей ты в несколько не залогинишься, получится один аккаунт в обычных окнах, и один на все приватные.
                            Ответить
              • Кстати, об утечках: возможна утечка информации из одного браузера в другой через плагины Flash и Silverlight.

                google: evercookie
                Ответить
                • плагины Flash и Silverlight не нужны
                  Ответить
                  • Silverlight — пожалуй, да. А на флеше до сих пор много всякого дерьма, которое авторам лень портировать.
                    Ответить
                    • > на флеше до сих пор много всякого дерьма
                      ещё пишется. Библиотеки ActionScript продолжают развиваться, Adobe всё ещё лепит всякие flash редакторы (вот даже в этом году какая-то новая версия какой-то хуйни вышла, название забыл, "adobe чтототам", но она, вроде, не только swf собирала).
                      Вобщем, живучий гад попался!
                      Ответить
                      • вспомнил: animate
                        Ответить
                        • >> Adobe Animate (ранее Adobe Flash Professional, Macromedia Flash и FutureSplash Animator)

                          >> Animate в составе Adobe Creative Cloud всего за 1288,00руб./месяц без НДС

                          А почему в месяц? Купить насовсем уже нельзя?
                          Ответить
                        • >> Stable release: CC 2018 (18.0.1.115) / December 12, 2017; 6 months ago

                          Действительно, живучий!
                          Ответить
                    • >>всякого дерьма,
                      и не работает на ios
                      Ответить
                      • Кого это остановит? На ios много чего не работает.
                        Ответить
                        • Остановит многих пользователей iPhone
                          Ответить
                          • Ну не всё же делают с Айфонов. Ещё зачем-то компьютеры покупают...
                            Ответить
                    • Где ты видел flash в последний раз?

                      P.S. Кроме newgrounds и иже с ним
                      Ответить
                      • В рекламных баннерах. Или они уже на хтмл5?
                        Ответить
                        • > видеть рекламные баннеры
                          Ответить
                          • Вай нот? На сайты со всплывающими окнами я не хожу, а баннеры по бокам мне не мешают, мозг тупо не видит их.
                            Ответить
                      • vk. Но это не точно.
                        Помню пару лет назад хотел видео посмотреть, это г-но требовало флеш.
                        Ответить
                        • Сейчас это г-но на HTML5-<video>. И вроде бы оно даже требует media source extensions.
                          Ответить
                  • Я на сервелате видел всего один сайт. Само собой, через пару лет они на эту хуйню забили и переписали всё на html/flash.

                    Если бы он изкоробки с вендой шёл -- может быть и взлетело бы... А так -- очередная мертворожденная технология от майков.
                    Ответить
                    • >> и переписали всё на html/flash.
                      и переписали всё на html5/js

                      let me fix it for you
                      Ответить
    • > baza
      > nazvanie
      > nazvanienotags
      Вспомнилась школа, паскаль, крики информатички...
      Ответить
    • Не хватает "mysql_real_escape_string". Я прав?
      Ответить
      • Верно.
        Ответить
      • Не хватает параметризованных запросов, а все эти mysql_really_real_escape_string_no_reall y_i_swear — это полумеры.
        Ответить
        • Чего не хватает?...
          Ответить
          • Про PREPARE в SQL слышал?
            Ответить
            • Смотри, я вбил в гугл "PHP mysql tutorial".
              Вот первая ссылка
              https://www.tutorialrepublic.com/php-tutorial/php-mysql-insert-query.php
              // Escape user inputs for security
              $first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']);
              $last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']);
              $email = mysqli_real_escape_string($link, $_REQUEST['email']);
               
              // attempt insert query execution
              $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')";
              if(mysqli_query($link, $sql)){
              Ответить
              • А я вбил в Яндекс и получил первой ссылкой http://www.mysqltutorial.org/php-mysql/ , откуда перешёл на страницу с кодом:
                <?php
                 
                require_once 'dbconfig.php';
                 
                try {
                    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
                 
                    $sql = 'SELECT lastname,
                                    firstname,
                                    jobtitle
                               FROM employees
                              WHERE lastname LIKE ?';
                 
                    $q = $pdo->prepare($sql);
                    $q->execute(['%son']);
                    $q->setFetchMode(PDO::FETCH_ASSOC);
                 
                    while ($r = $q->fetch()) {
                        echo sprintf('%s <br/>', $r['lastname']);
                    }
                } catch (PDOException $pe) {
                    die("Could not connect to the database $dbname :" . $pe->getMessage());
                }
                Ответить
                • Отсюда вывод: пользуйтесь яндексом при разработке на PHP и будете более лучшим программистом.

                  Впрочем, вьюшка у них так себе
                  echo sprintf('%s <br/>', $r['lastname']);
                  Ответить
              • А я вбил в Яндекс и получил первой ссылкой http://www.mysqltutorial.org/php-mysql/ , откуда перешёл на страницу с кодом:
                <?php
                 
                require_once 'dbconfig.php';
                 
                try {
                    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
                 
                    $sql = 'SELECT lastname,
                                    firstname,
                                    jobtitle
                               FROM employees
                              WHERE lastname LIKE ?';
                 
                    $q = $pdo->prepare($sql);
                    $q->execute(['%son']);
                    $q->setFetchMode(PDO::FETCH_ASSOC);
                 
                    while ($r = $q->fetch()) {
                        echo sprintf('%s <br/>', $r['lastname']);
                    }
                } catch (PDOException $pe) {
                    die("Could not connect to the database $dbname :" . $pe->getMessage());
                }
                Ответить
              • А я вбил в Яндекс и получил первой ссылкой http://www.mysqltutorial.org/php-mysql/ , откуда перешёл на страницу с кодом:
                <?php
                 
                require_once 'dbconfig.php';
                 
                try {
                    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
                 
                    $sql = 'SELECT lastname,
                                    firstname,
                                    jobtitle
                               FROM employees
                              WHERE lastname LIKE ?';
                 
                    $q = $pdo->prepare($sql);
                    $q->execute(['%son']);
                    $q->setFetchMode(PDO::FETCH_ASSOC);
                 
                    while ($r = $q->fetch()) {
                        echo sprintf('%s <br/>', $r['lastname']);
                    }
                } catch (PDOException $pe) {
                    die("Could not connect to the database $dbname :" . $pe->getMessage());
                }
                Ответить
                • А я вбил в Яндекс, а он мне показал хуй
                  Ответить
                  • Может быть, проблема в тебе?
                    Ответить
                    • Яндекс за мной следить? Он видит хуя и показывает хуев для меня?
                      Ответить
                      • Мосоны за всеми следят.

                        Стоп! Может быть, они узнали, что я знаю про prepared statements, потому и показали пример кода с подготовленными выражениями, а тем, кто о них не слышал, показывают код с mysql_real_escape_string, чтобы не травмировать их психику?
                        Ответить
                        • Наверное когда тебе делали привику манту, яндекс вживил тебе чип,. По этому и говорили не чесать и не мыться, а у некоторых и во все само вздувалось, так как тело не хотела инородный объект
                          Ответить
                          • Я узнал о подготовленных выражениях не от Яндекса, а на Говнокоде. Вообще много интересного узнал на Говнокоде, так что даже вбивать в поиск не приходилось. И про гоатсе тоже узнал на Говнокоде.
                            Ответить
                            • >>Я узнал о подготовленных выражениях не от Яндекса, а на Говнокоде.

                              О, времена. Я о них узнал почти сразу, когда впервые столкнулся с API СУБД. Это был Perl DBI.

                              Я к тому что pituh_real_escape_string я не видел нигде: ни в питоновском pep 249, ни в JDBC ни в ADO ни ADO.NET ни в руби.

                              Быть может в нативных API на сях есть такие хрени
                              Ответить
                              • > pituh_real_escape_string

                                Правильно, потому что сначала был pituh_escape_string, потом появился pituh_real_escape_string
                                Ответить
                                • И всё равно, всё равно у них будет с одной стороны SQL инъекция, а с другой

                                  "Шакил О\'нил" в базе или в результатах поиска. Причем чем больше ты будешь искать тем больше у Шакила будет палочек
                                  Ответить
                                  • А что с О'нилом может быть сложного? Разве mysql_real_escape_string правильно не сделает?
                                    Ответить
                                    • Сделает, но нужно помнить что, где и когда ты заэскейпил. Как мы помним по статье Спольски "Making Wrong Code Look Wrong" в этом вполне можно запутаться и случайно экскейпинуть два раза. Или ноль раз.

                                      Кроме того до сих пор встречается magic_quotes
                                      Ответить
                                      • Делать эскейп только непосредственно перед передачей в "MySQL" - чем тебе не правило?
                                        Ответить
                                        • Хорошее правило. Я не знаю почему так не делают
                                          Ответить
                                        • Великолепно.

                                          Предлагаю вместо строк во всех функциях использовать объект, у которого есть свойство, которое указывает, была ли строка заэскейпена, и если была, то как именно (addslashes/addcslashes, htmlspecialchars/htmlentities, urlencode/rawurlencode).
                                          Ответить
                                        • Великолепно.

                                          Предлагаю вместо строк во всех функциях использовать объект, у которого есть свойство, которое указывает, была ли строка заэскейпена, и если была, то как именно (addslashes/addcslashes, htmlspecialchars/htmlentities, urlencode/rawurlencode).
                                          Ответить
                                        • Великолепно.

                                          Предлагаю вместо строк во всех функциях использовать объект, у которого есть свойство, которое указывает, была ли строка заэскейпена, и если была, то как именно (addslashes/addcslashes, htmlspecialchars/htmlentities, urlencode/rawurlencode).
                                          Ответить
                                          • Какой багор )))
                                            Ответить
                                          • ..и вместо echo() использовать метод который кидал бы exception при попытке вывести объект с html_escape == false.

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

                                            В коде и в базе должны быть не эскейпнутые данные, перед выводом в HTML (лучше в шаблоне) надо делать html escape.

                                            Перед вставкой в базу (прямо в функции сохранения) mysql escape.

                                            Но по какой-то причине не все так могут.
                                            Я время от времени вижу, например, "&amp;amp;".
                                            Причем не только в PHP проектах...)
                                            Ответить
                                        • Великолепно.

                                          Предлагаю вместо строк во всех функциях использовать объект, у которого есть свойство, которое указывает, была ли строка заэскейпена, и если была, то как именно (addslashes/addcslashes, htmlspecialchars/htmlentities, urlencode/rawurlencode).
                                          Ответить
                                        • Великолепно.

                                          Предлагаю вместо строк во всех функциях использовать объект, у которого есть свойство, которое указывает, была ли строка заэскейпена, и если была, то как именно (addslashes/addcslashes, htmlspecialchars/htmlentities, urlencode/rawurlencode).
                                          Ответить
                                          • Прости, я не понял, что ты предлагаешь?
                                            Не мог бы ты повторить?
                                            Ответить
                                      • > Making Wrong Code Look Wrong

                                        В целом, я бы хотел сказать, что слегка побаиваюсь фич языка, которые что-то скрывают. Когда вы видите код
                                        i = j * 5;

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

                                        Но про такой же кусок кода в C++ вы не знаете вообще ничего. Абсолютно. Единственный способ узнать, что на самом деле происходит в C++ — это посмотреть, каковы типы i и j, которые могут быть объявлены где-то совсем в другом месте. Потому что j может такого типа, который перегружает operator* и делает что-то ужасно оригинальное, когда вы пытаетесь его умножить. А i может перегружать operator=, и типы вообще могут быть несовместимы, поэтому управление может быть передано функции автоматического приведения типов. Так что нужно не только проверить типы переменных, но и объявления этих типов, и Бог вам в помощь, если где-то там есть наследование, потому что тогда вам придётся подняться по всей иерархии классов вручную, пытаясь понять, какой код используется на самом деле, и, наконец, если где-то используется полиморфизм, тогда у вас настоящие проблемы, потому что недостаточно знать с какими типами i и j объявлены, нужно знать также, какого типа они прямо сейчас, что может выражаться в проверке произвольно большого количества кода, и всё равно никогда нельзя быть уверенным полностью, что вы чего-то не упустили, спасибо проблеме останова (фуф!).
                                        Ответить
                                        • сим-сим, салапим, шуны-буны, асалам-вассалам!
                                          Стань вистефан, блохой на собаке!
                                          Ответить
                                        • > Но про такой же кусок кода в C++ вы не знаете вообще ничего. Абсолютно.

                                          Эта проблема сильно преувеличена.

                                          > побаиваюсь фич языка, которые что-то скрывают.

                                          Насколько ты боишься функций?
                                          function getAge(user) {
                                            writeToDb(user);
                                            this.accessCount++;
                                            console.log(user);
                                            // FIXME
                                            user.name = user.firstName + user.secondName;
                                            return user.balance;
                                          }
                                          Глядя на вызов функции, ты понятия не имеешь, что происходит. Единственный способ узнать — найти и прочитать определение функции.
                                          Ответить
                                          • > Насколько ты боишься функций?

                                            Роман, это кусок текста из упомянутой роскомговном статьи «Making Wrong Code Look Wrong». Я просто его перевёл и привёл.
                                            Ответить
                                            • > Я просто его перевёл и привёл

                                              А, ОК.
                                              Ушёл писать «Making All Code Look Wrong»
                                              Ответить
                              • Сука, блядь, ты такой умный, я так тебя уважаю. Ты столько всего повидал - и "Perl DBI", и "PEP 249", и "JDBC", и "ADO", и "ADO.NET", и "Ruby", в то время, как я за рамки "MySQL" ни разу и не выходил, если не считать снятия проб с "PostgreSQL", которое было свёрнуто после того, как я выяснил, что поиск у этой недоразвитой СУБД регистрозависим. Ты охуенен, а я ничтожен.
                                Ответить
                                • >> поиск у этой недоразвитой СУБД регистрозависим

                                  Вместо LIKE можно использовать ключевое слово ILIKE, чтобы поиск был регистр-независимым с учётом текущей языковой среды. Этот оператор не описан в стандарте SQL; это расширение PostgreSQL.
                                  Ответить
                                  • А если мне требуется не "LIKE", а "="?
                                    Ответить
                                    • То придётся писать WHERE UPPER(name) = "ПИТУХ", потому что "=" предполагает точный поиск. Но при использовании функций (типа UPPER) мы потеряем индекс и будем сканировать всю таблицу.

                                      Поэтому лучше использовать ILIKE, если искомое выражение не содержит знаков процента.
                                      Ответить
                                      • >>мы потеряем индекс и будем сканировать всю таблицу.

                                        чойто

                                        CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));

                                        https://www.postgresql.org/docs/9.1/static/indexes-expressional.html

                                        Кстати, в mysql так можно?
                                        Ответить
                                        • В MySQL так нельзя:
                                          CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
                                              [index_type]
                                              ON tbl_name (index_col_name,...)
                                              [index_option]
                                              [algorithm_option | lock_option] ...
                                          
                                          index_col_name:
                                              col_name [(length)] [ASC | DESC]
                                          
                                          index_option:
                                              KEY_BLOCK_SIZE [=] value
                                            | index_type
                                            | WITH PARSER parser_name
                                            | COMMENT 'string'
                                          
                                          index_type:
                                              USING {BTREE | HASH}
                                          
                                          algorithm_option:
                                              ALGORITHM [=] {DEFAULT|INPLACE|COPY}
                                          
                                          lock_option:
                                              LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}


                                          https://dev.mysql.com/doc/refman/5.7/en/create-index.html
                                          Ответить
                                          • >>В MySQL так нельзя
                                            ахахаха
                                            Ответить
                                            • Ну можно, конечно написать что-то типа
                                              CREATE VIEW `pitushki` AS SELECT `id`, LOWER(`username`) FROM `pituhi`.


                                              Тоже нельзя.

                                              View processing is not optimized:
                                              • It is not possible to create an index on a view.


                                              https://dev.mysql.com/doc/refman/5.7/en/view-restrictions.html

                                              * Зловещий смех мускулофоба. *
                                              Ответить
                                              • А можно же сделать вычисляемую колонку и ее проиндексировать!
                                                Ах, я забыл, MySQL не умеет вычисляемых колонок.

                                                А можно сделать кешируемый (materialized) view по запросу?
                                                Ах, я забыл, MySQL не умеет materialized views.
                                                Ответить
                                                • > Ах, я забыл, MySQL не умеет materialized views.

                                                  Может он поэтому так быстро ставится
                                                  Ответить
                                                  • А как в Постгресе с materialized views и с вычисляемыми колонками?
                                                    Ответить
                                                    • > А как в Постгресе с materialized views[1] и с вычисляемыми колонками[2]?

                                                      [1] — https://www.postgresql.org/docs/9.3/static/sql-creatematerializedview.html
                                                      [2] — PostgreSQL does not support "Computed Columns" per se up to at least Postgres 11. See f90t's comment about the feature being in development, But it doesn't seem like it's going to be in Postgres 11, yet. You can implement similar functionality with a view. Or you can use functions that work and look just like computed columns. (https://stackoverflow.com/questions/8250389/computed-calculated-columns-in-postgresql)
                                                      Ответить
                                                      • триггером еще можно.

                                                        а ms-sql умеет и oracle умеет кажется тоже.

                                                        в ms-sql я видел и cached views и вычисляемые каллонки еще в 2005
                                                        Ответить
                                                      • Materialized views в Постгресе есть, индексы с вычислениями есть, но при этом его устанавливать не так противно, как MS-SQL.

                                                        Выходит, что геморрой с MS-SQL — это плата за вычисляемые колонки?
                                                        Ответить
                                                        • вычисляемые колонки есть в постгресе, написали же, пишешь функцию, которая принимает на вход yourtable (в постгресе rowtype таблицы одноименное с таблицей) и возвращает то, что ты хочешь, либо можно обмазаться говнополиморфизмом, и принять anyelement

                                                          только вчера делал их

                                                          только это сахарок, тому же ОРМ нахуй не сдавшийся

                                                          а матвьюхи в постгресе говно, не чета оракловым
                                                          Ответить
                                                          • >>только это сахарок, тому же ОРМ нахуй не сдавшийся
                                                            кешируемая вычисляемая колонка оч даже полезная
                                                            Ответить
                                                            • значит эту денормализацию можно закатать руками, т.к. кешируемая вычисляемая колонка в этом случае - обычная колонка, которая должна быть отрефрешена триггером => всё равно сахарок

                                                              т.к. в постгресе есть триггеры on update of column1, column2, то есть поле для оптимизаций

                                                              другое дело, когда тебе надо пиздецовую легаси БД "ускорить", тогда в том же оракле можно въебать говнеца, сделать fast refresh мат вью с джойнами такими, которые зело тормозят, и потом умный оптимизатор в старых запросах, обращающихся к исходным таблицам с этими джойнами, вместо таблиц будет ходить сразу в матвью сам - вот это уже сахарками не обмажешь
                                                              Ответить
                                                              • >> которая должна быть отрефрешена триггером
                                                                если мне не изменяет память то в ms-sql можно было сделать колонку обычной функцией и умная БД сама понимала от кого функция зависит и когда ее нужно обновлять.

                                                                Вручную (через триггер) это чуть более мерзкое решение, но и оно имеет право на существование

                                                                А вот я видал как mysqlщики тупо копировали данные в такую колонку "чтобы был кеш" порождая инконсистенс, и когда я говорил "зачем??" они говорили "ну чтобы быстрее работало.". Типа: "а как же еще? Разве есть еще какие-то способы"?

                                                                MySQL causes brain damage короче.
                                                                Ответить
                                                        • в MS-SQL дохуя чего есть, чего нету даже в постгресе

                                                          визуальный план исполнения, профилятор умный, поддержка миграций в visual studio (ты правишь субд и он сам генерит тебе код для миграции), плюс всякие analysis services, кубы, репорты из коробоки, data mining итд
                                                          Ответить
                                                • Это всё не нужно, потому что в MySQL регистронезависимый поиск из коробки.
                                                  Ответить
                                        • Просканировал твой анус, обнаружил на нём микротрещины и спермии.
                                          Ответить
                                          • Спермиями называются гаметы растений, лишённые жгутиков. Зачем ты натолкал пыльцы в чей-то анус?
                                            Ответить
                                    • Есть ещё вариант:

                                      Модуль citext предоставляет тип данных для строк, нечувствительных к регистру, citext. По сути он сравнивает значения, вызывая внутри себя функцию lower. В остальном он почти не отличается от типа text.
                                      Ответить
                                      • Кисонька, нормальна ли, по-твоему, СУБД, требующая устанавливать какие-то левые модули для обеспечения самого банальнейшего функционала? Нет.

                                        P.S.: Поэтому я и теку от "PHP" и "MySQL" - всё включено по умолчанию и не требует ебли с репозиториями, пакетиками и прочей хуетой.
                                        Ответить
                                        • какой дополнительный модуль?

                                          CITEXT бандлица с постгрей

                                          CREATE TABLE petuhis (
                                          name CITEXT PRIMARY KEY,
                                          );
                                          Ответить
                                          • https://stackoverflow.com/questions/15981197/postgresql-error-type-citext-does-not-exist

                                            Такой.
                                            Ответить
                                            • пиздец
                                              Ответить
                                            • А вообще, всеобщая течка по "PostgreSQL" мне непонятна совершенно. Какие-то школьники захотели поиграть в "создателей новой технологии", спиздили исходный код "MySQL", зачем-то исковеркали язык запросов (вероятно, затем, чтобы поделка не выглядела откровенным плагиатом), проставили везде "postgresql" вместо "mysql" и выдали спизженное за своё.

                                              Невольно вспоминается нашумевшая в своё время история с "BolgenOS".
                                              Ответить
                                              • Ты вот думаешь что ты троллишь, а ведь есть правда дураки, которые не понимают чем Postgres лучше MySQL.

                                                Они даже не догадываются что база данных может гораздо больше, чем тупой CRUD. Что бывают CTE, Window functions, ranges, полноценные constraints и нормальный оптимизатор запросов.

                                                Если таким людям показать MS-SQL или Oracle то у них и вовсе кондрашка случица
                                                Ответить
                                                • Я этот MS-SQL полдня скачивал, потом полдня устанавливал.

                                                  Да, у меня была кондрашка. Postgres или MySQL поставить проще.
                                                  Ответить
                                                  • >>Я этот MS-SQL полдня скачивал, потом полдня устанавливал.
                                                    Скорость скачивания дистрибутива СУБД пользователем guest8 это очень важный фактор выбора СУБД.

                                                    Скажите, где я могу увидеть следующую таблицу:
                                                    |СУБД|Время скачивания guest8 | Время установки guest8|
                                                    Ответить
                                                    • > Скажите, где я могу увидеть следующую таблицу:

                                                      http://lmgtfy.com/?q=guest8+database+benchmark
                                                      Ответить
                                                • >>>"CTE, Window functions, ranges, полноценные constraints"

                                                  Кисунь, всё это я вижу впервые и ничего не понимаю. Я догадываюсь, что в каждой СУБД используются свои хитрости для достижения определённых скоростей во вставке и поиске данных, но, в целом, меня, как конечного потребителя данных продуктов (в данном случае - "MySQL"), это не должно ебать совершенно.

                                                  А "Oracle", полагаю, просто хорошо распиарен. Разве не способна, к примеру, "MySQL" выдержать миллиарды банковских транзакций? "Facebook" как-то выдерживает конские нагрузки, не снившиеся даже "ВКонтакте". Однако "Oracle", как я понимаю, платит отчисления главам ответственных за техническое обеспечение отделений финансовых структур за то, чтобы они навязывали начальству их "элитное" и дорогое решение. А потом псевдобогема говносайта "Хабрахабр" кукарекает, что "Oracle" - лучшее решение для "Highload"-систем, нуждающихся в устойчивости.
                                                  Ответить
                                                  • >>полагаю
                                                    ты ничего не знаешь ни про СУБД Oracle ни про какую либо другую СУБД. Остается только "полагать"


                                                    >>скоростей во вставке
                                                    Ты правда думаешь что СУБД отличаются скоростью вставки? Ты правда так думаешь?
                                                    Ответить
                                                    • Вообще, логично предположить, что скорость вставки и поиска является основным конкурентным фактором. Или я чего-то недопонимаю?
                                                      Ответить
                                                    • Кстати, насчет СУБД, чем ты смотришь таблицы в каком-нибудь postgres? Стандартная тулза psql по-уебански выводит таблицы, которые шире терминала и нету аналога PAGER в mysql, который позволил бы например выводить аутпут в какой-нибудь more или less.
                                                      Ответить
                                                      • У Intellij есть плагин клиент СУБД. Он встроен в Idea, PyCharm prof, и во всех prof продукты, и есть отдельный (DataGrip)

                                                        https://www.youtube.com/watch?v=uax6P2CCZuc
                                                        Ответить
                                                        • плюсую идею

                                                          но не все готовы покупать лицензии/искать кряки

                                                          из бесплатных же мне недавно советовали https://dbeaver.io/
                                                          Ответить
                                                          • Кстати, а какого-нибудь pythonpgadmin'а в природе не существует?
                                                            Ответить
                                                            • Славянского шкафа нет, но могу предложить никелированную кровать:
                                                              https://github.com/ChipaKraken/pythonMyAdmin
                                                              Ответить
                                                            • зачем нужен SQL клиент с веб интерфейсом?
                                                              Ответить
                                                            • вам писать 1000 строк в день или 1 запрос в месяц выполнять?
                                                              как можно ide с комплишенами, инсайтом, подсветкой ошибок до исполнения употребить в одном предложении с какой-то поебенью и еще и "кстати" написать...
                                                              Ответить
                                                            • Найдётся всё:

                                                              https://www.pgadmin.org/

                                                              Даже есть колёса для pip:
                                                              https://www.pgadmin.org/download/pgadmin-4-python-wheel/
                                                              Ответить
                                                          • > но не все готовы покупать лицензии/и

                                                            ахаха
                                                            Ответить
                                                      • ps:
                                                        \x [on|off|auto]       toggle expanded output
                                                        Ответить
                                                      • Да понимает оно пейджер. У меня вот изкоробки в бубунте less юзает (и переменная PAGER тоже работает). Только от широких запросов это не спасает. Можешь выполнить \pset pager always чтобы всегда юзал.

                                                        Попробуй \x выполнить, широкие запросы станут чуть менее уебанскими (но всё равно уебанскими из-за уебанской шапки записей).
                                                        Ответить
                                                        • > Только от широких запросов это не спасает
                                                          PAGER = 'less -S'
                                                          должен дать горизонтальный скролл и каждая запись будет гарантированно занимать одну строку.
                                                          Ответить
                                                      • phpmyadmin
                                                        Ответить
                                                      • > Чем ты смотришь таблицы в каком-нибудь postgres?

                                                        Меня никто не спрашивал, но всё же: Emacs
                                                        https://truongtx.me/2014/08/23/setup-emacs-as-an-sql-database-client
                                                        Ответить
                                                        • Чем "Adminer" или "phpPgAdmin" хуже?
                                                          Ответить
                                                          • Отвечу за роскомговна:
                                                            потому что во втором есть общая подстрока с "PHP", а в первом - с "phpmyadmin", у которого, в свою очередь, с "PHP". А "PHP" у нас, видите ли, - "говно".
                                                            Ответить
                                                            • не надо за меня отвечать.

                                                              Веб клиент к СУБД нужен только для того, чтобы запустить запрос на продакшене и случайно забыть указать WHERE в DELETE и ёбнуть всю базу.

                                                              Больше он ни для чего не нужен.
                                                              Ответить
                                                              • >>>"запустить запрос на продакшене"

                                                                И предположить не мог, что твои кулинарные блоги на "WordPress" тоже могут делиться на "development" и "production"...

                                                                >>>"случайно забыть указать WHERE в DELETE и ёбнуть всю базу"

                                                                Не все такие тупые, как ты.
                                                                Ответить
                                                                • >> делиться на "development" и "production"...
                                                                  а зачем в development через веб?
                                                                  дай-ка угадаю: твой development на том же самом шаред хостинге, что и продакшен?

                                                                  >>Не все такие тупые, как ты.
                                                                  Ну ты у нас очень аккуратный программист, ты всегда дважды проверяешь каждый запрос который выполняешь на продакшене через phpMyAdmin, это я уже понял)
                                                                  Ответить
                                                                  • >>>"твой development"

                                                                    Его нет.

                                                                    >>>"через phpMyAdmin"

                                                                    Через "Adminer". "phpMyAdmin" - устаревшее говно, перегруженное иконками, фреймами, стилями.
                                                                    Ответить
                                                              • "COMMIT" и "ROLLBACK" разве не для этого?
                                                                Ответить
                                                                • Нет, commit придумали чтобы сделать транзакции атомарными: выполнил N запросов и их результат виден целиком или не виден вовсе (на самом деле всё сложнее и зависит от уровня изоляции транзакции, но мы упростим).

                                                                  Результат твоих действий на сайте ты не увидишь пока не сделаешь COMMIT (опять таки если у тебя не read uncommited aka chaos, но такого в OLTP не бывает) а если сделаешь то будет уже поздно.

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

                                                                  В идеальном мире такие скрипты еще должны быть откатываемыми.

                                                                  Ковыряться в базе можно только в локальной, а для этого phpmyadmin не нужен.
                                                                  Ответить
                                                                  • А миграции на чём пишут? Речь про ORM или шоугодно, в чём можно написать select?
                                                                    Ответить
                                                        • Есть-ли какой-нибудь вопрос, ответ на который у тебя не "emacs"?;)
                                                          Ответить
                                                          • "emacs" не нужен
                                                            Ответить
                                                          • "emacs" не нужен
                                                            Ответить
                                                            • а что нужно?
                                                              Ответить
                                                              • "Adminer". Работает и с "MySQL", и с "PostgreSQL", и с "MongoDB", и с "ElasticSearch", и с "Oracle", и с "MS SQL".
                                                                Ответить
                                                                • >> Database management in a single PHP file
                                                                  >>ботает и с "MySQL", и с "PostgreSQL", и с "MongoDB", и с "ElasticSearch", и с "Oracle", и с "MS SQL".

                                                                  ого, мой кумир
                                                                  Ответить
                                                          • 6% населения Земли считают, что ответ на любой вопрос — электрод, а 1% населения Земли считает, что ответ на любой вопрос — Фейербах.

                                                            https://youtu.be/3CKbj0nmHtU
                                                            Ответить
                                                            • >> Feuerbach
                                                              >>Фейербах
                                                              Разве он не должен быть Фойербах?
                                                              Ответить
                                                              • Немец детектед.

                                                                Должен быть, но транслитерацию изобретали полуграмотные люди.

                                                                Великого немецкого поэта звали Хайнрихь Хайне, а не Генрих Гейне, но попробуйте об этом сказать литературоведам...
                                                                Ответить
                                                                • > Хайнрихь Хайне

                                                                  Вроде ещё с Германом Гессе несправедливо поступили.
                                                                  Ответить
                                                                • А еще герр читается как херр
                                                                  Ответить
                                                                • Собсно, с чтением русских имен/названий у немцев не лучше.
                                                                  Ответить
                                                              • Немец детектед.

                                                                Должен быть, но транслитерацию изобретали полуграмотные люди.

                                                                Великого немецкого поэта звали Хайнрихь Хайне, а не Генрих Гейне, но попробуйте об этом сказать литературоведам...
                                                                Ответить
                                                                • А еще были Фаренхайт и Айнштайн:)

                                                                  И да: город называется Хайдельберг а не Гейдельберг.

                                                                  Вероятно и правда дело в том, что транскрипцию тогда не умели
                                                                  Ответить
                                                                  • Голландцам повезло ещё меньше.

                                                                    Гюйгенса на самом деле звали Хёйгенс, хотя латиницей эта фамилия пишется как Huygens (гусары, молчать). Не повезло им с орфографией: „oe“ читается как немецкое „u“, „u“ читается как немецкое „ü“, а „uy“ читается как немецкое „öj“. Попробуй запомни.
                                                                    Ответить
                                                                    • Я только знаю что у голландцев Г читается как Х.

                                                                      Так что Брюхе а не Брюгге.

                                                                      И конечно же Хвидо Ван Россум
                                                                      Ответить
                                                                      • У голландцев Г читается как украинское (как звонкое Х, в отличие от ch, которое глухое). Ну то есть будет примерно Гхвидо.
                                                                        Ответить
                                                                    • > Голландцам повезло ещё меньше.

                                                                      Вы, братцы, знали бы, что во всём мире делается с ирландскими фамилиями…
                                                                      Ответить
                                                                      • С исландскими фамилиями ещё хуже: их нет. У исландцев отчества вместо фамилий.
                                                                        Ответить
                                                                    • Немцы читают его как Хойгенс
                                                                      Ответить
                                                        • emacs нужен
                                                          Ответить
                                                    • >> Ты правда думаешь что СУБД отличаются скоростью вставки?

                                                      Если мы используем ORM (а куча CMS и фреймворков его используют), то оценить всю мощь языка запросов конкретной СУБД мы не сможем. Поэтому остаётся только измерять скорость вставки.

                                                      Есть, конечно, маленькие проекты, которые отказались от ORM, в которых пишут запросы руками, поэтому можно использовать все особенности СУБД. Но мы же не про такие проекты говорим?
                                                      Ответить
                                                      • А мне кажется что наоброт.

                                                        Мелкие проекты могут позволить себе ВСЕ запросы делать через ORM, а в крупных системах у тебя будет или shared database (и тогда консистентность надо гарантировать на уровне СУБД) или тяжелые запросы, которые невозможно выразить в ORM или вообще БД как отдельный уровень системы с API на хранимках: и тогда тебе внезапно станет важно что умеет СУБД.

                                                        В конце концов тебя могут попросить сделать быстрый отчет,а поскольку mysql не умеет window functions, то никаких нормальных отчетов там сделать нельзя.
                                                        Ответить
    • https://github.com/samdark/Typograph/blob/master/typographus.php
      # Âíèìàíèå! Äàííûé ôàéë äîëæåí îñòàâàòüñÿ â êîäèðîâêå WINDOWS-1251! #
      setlocale(LC_ALL, 'ru_RU.CP1251');


      Nuff said.
      Ответить
      • Во "ВКонтакте" спокойно используют
        <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
        и ничего.
        Ответить
        • всё правильно, сыкономили половину трафика
          Ответить
          • Ничего зеленого, кстати.
            Если у тебя 90% контента на русском и при этом этого контента петабайты то наверное тебе хочется его в два раза уменьшить
            Ответить
            • Как тебе хочется в два раза уменьшить диаметр камерунских членов, исследующих твою шоколадную пещеру?
              Ответить
            • А это разве так работает? А если у меня в сообщении будет символ ☭, он что, в другой кодировке будет храниться, или что?
              Ответить
              • то у тебя будет utf-8 видимо
                Ответить
                • А в базе можно хранить одно и то же поле в разных кодировках по случаю? Или там месиво raw, а при выводе определяется, в какую кодировку выводить?
                  Ответить
                  • откуда я знаю.? я не работаю в ВК и даже им не пользуюсь)

                    Но если бы я был ВК, я бы определял кодировку и старался хранить отдельно 8 битные данные и utf-8
                    Ответить
              • Через амперсанд въебут. В entity вроде всегда юникод.
                Ответить
                • А, то есть всё можно хранить в 1251, а всё что не лезет заменять на ентитис? Да, это сработает и это в духе олимпиадников.
                  Ответить
                  • Лучшими программистами они считаются именно потому, что не идут стандартными путями. Полагаю, ты не будешь отрицать, что они имеют пол-русскоязычного Интернета во все дыры.
                    Ответить
                    • > лучшими программистами они считаются

                      Лол, где? Сходи в соседний тред, посмотри, какие шедевры они рождают. Я бы спать не мог, если бы у меня в проде такая вермишель крутилась.

                      > не идут стандартными путями

                      Похапешники такие лалки, когда считают, что если ВК что-то там делает, то им это тоже нужно.
                      Ответить
                  • Именно так и сделали в ВК.

                    Мобильная же версия (m.vk.com) отдаёт utf-8, потому что многие мобильные браузеры ожидают валидного xhtml, в котором самой распространённой кодировкой является utf-8.
                    Ответить
                    • xhtml то тут причем?

                      html5 уже давно везде и таки да -- он утф8
                      Ответить
                      • >> html5 уже давно везде и таки да -- он утф8

                        1. html5 действительно уже лет десять как поддерживается многими браузерами (не целиком, его вводили постепенно, по элементам, но парсер, совместимый с рекомендацией W3C, появился давно).

                        2. На сайтах же до сих пор не везде валидный html, а если вдруг где-то валидный, то он может оказаться любой версии (не только html5).

                        3. Пример vk.com показывает, что utf-8 сейчас не везде. Вконтакте — это наверное такой сайт, написанный школьником, с посещаемостью полтора человека в год?

                        >> xhtml то тут причем?

                        Хотел написать про XHTML Mobile Profile, но не дописал. В мобильных браузерах не такое большое разнообразие кодировок, как в „настольных“.
                        Ответить
                        • >>На сайтах же до сих пор не везде валидный html,
                          до введения html5 валидных сайтов не было практически, а в html5 можно всё, что угодно. Теперь сделать невалидный сайт практически нереально, но некоторые умудряются

                          >>Пример vk.com показывает, что utf-8 сейчас не везде.
                          как было сказано выше -- вк может быть важно что переписка школьниц на русском занимает 1 петабайт а не 2 (как было бы в случае utf-8)

                          >> Вконтакте — это наверное такой сайт, написанный школьником
                          к сожалению, да

                          >>с посещаемостью полтора человека в год?
                          к сожалению, нет
                          Ответить
                          • Вообще да, HTML5 (если он поверх HTML, а не поверх XHTML) прощает всё. Он прощает кучу незакрытых тегов. Например, браузер сам закроет тег <p>, когда захочет, а не когда встретит </p>.
                            Ответить
                            • И это очень плохо.

                              Увлечение XMLем в 2000м году -- это была попытка сделать веб чуть меньшим говном. Но говноеды восстали, и потребовали оставить веб таким же говном, как есть.

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

                              Теперь у нас сплошное <div class="label _red"> и незакрытые таги
                              Ответить
            • Content-Encoding: gzip или Content-Encoding: deflate никак не помогают экономить трафик?
              Ответить
              • Помогают экономить траффик, но не помогают экономить место в базе. К тому же, одно другому не мешает.
                Ответить
              • Content-Encoding: defecate
                Content-Encoding: deflorate
                Ответить
                • > Content-Encoding: defecate

                  ахахах , поржал, спасибо
                  Ответить
      • github.com/samdurak/
        Ответить
    • А я тебе давно говорил: вали с PHP. Там 90% контор такие. Может быть в Badoo не так, или в ВК, не знаю. Но обычная конторка так и выглядит. Уходи в питон для начала или в руби, там посмотришь
      Ответить
      • Пизданул так, как будто "уйти в питон для начала или в руби" легко, как твоё лицо обхаркать. На "PHP" девяносто девять процентов Интернета сидит именно потому, что его базовые основы учатся за неделю, а дальше любую хуйню вроде "в каком порядке располагаются аргументы в "str_replace" можно спокойно найти в Интернете. Это - главный аргумент в его пользу, возносящий его на вершину IT-Олимпа и оставляющий твоих фаворитов вместе с подобными тебе "учителями" в глубокой, давно не мытой чуркестанской заднице, поросшей чёрными волосами с засохшим на них говном.
        Ответить
        • >>легко
          очень легко

          >> девяносто девять процентов Интернета
          нет
          Ответить
        • > Пизданул так, как будто "уйти в питон для начала или в руби" легко

          Лол, я и так знаю питон и руби.
          Ответить
          • Если так, то зачем ты работаешь с чуваками типа tuberkulez?
            Ответить
            • SemaReal, я же тебе уже рассказывал. Хотел поднабраться опыта, посмотреть как люди работают, чо такое команда, каковы реальные юзкейсы гита и разных субд. Рынок не знал. Диплома нет и работал неофициально без армии, а в другое место при таких исходных и не возьмут. Щас собираюсь свалить и доучиться в универе.
              Ответить
              • А типа без ВО и 10 лет опыта в руби и питоне не берут?
                Ответить
                • А типа я не знаю, я по знакомству пошёл, чтобы вообще никак не оформляться. Я ж не могу в резюме написать «без трудовой пожалуйста и налоги не платите за меня». ХЗ как это делается. Ну и + поправку на город сделай, тут в провинции и выбор небольшой.
                  Ответить
                  • В моем детстве наоборот все хотели чтобы ты работал без трудовой, и получал свои у.е. в конвертике чтобы не платить налогов.

                    Ну, ВУЗ тоже наверное хорошее решение
                    Ответить
                  • А в чём проблема с трудовой ?
                    В крайнем случае, её, по итогу работы, можно просто выкинуть..
                    Ответить
                    • > А в чём проблема с трудовой ?

                      В том, что если ты трудоустроен официально, к тебе по месту работы придёт военкомат.
                      Ответить
                      • Делай ИП.
                        1) Военкомату некуда приходить, кроме как к тебе домой.
                        2) Работодателя это устроит, т.к. его не будет ебать ничего.
                        3) Твоя задница прикрыта, т.к. ты платишь налог. (в случае крупных покупок, например)
                        4) Военкомату прежде всего интересны безработные, или те, кто платит налоги гос-ву? Мне кажется, первое.
                        Ответить
                        • 2) его будет ебать налоговая, т.к. лавочку с тем, чтобы на постоянной основе "трудоустраивать" ИПшников серией договоров на услуги/подряд вместо трудовых договоров, уже активно прикрывают - это схема ухода от налогов

                          проблема военкомата и работодателя сильно притянута за уши

                          чтобы военкомат пришёл на работу, он должен сначала узнать о том, что уклонист работает в ООО Рога и копыта, а он об этом не узнает, т.к. никто сведения никуда не носит и межведа там нет, пфр в военкоматы данные не сливает

                          другое дело если менты ищут человека и им не лень

                          вообще призыв последние годы не сильно страдает от недобора, никто не лютует

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

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

                                Я не знаю, как в РФ, в Украине очень большая разница между налоговой ставкой ФЛП-упрощенца (5% + социальный взнос) и наёмного работника (30% или даже больше за всю малину). Если начнут давить, то народ просто свалит обратно "на конверты", потому что ни получать на четверть меньше, ни платить на четверть больше никто очевидно не собирается.
                                Ответить
                                • контор, где применяют схему с ИП, наверное, в районе 1% или меньше, и это всё мелкий бизнес
                                  я лично только _слышал_ об одной конторе от знакомой, которая так работала, и то эта контора сейчас уже закрылась (не по причине ИП, а владелец развалил дело)

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

                                  конверты - пережиток в целом, очень дорого обналичивать, высокие риски, мало кто может этим продолжать заниматься - ещё есть динозавры, но их крайне мало

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

                                  введено уже куча ИС, которые отслеживают товар от производителя/импортёра до прилавка - бухло, медикаменты, меховые изделия уже запущены, сейчас ещё обувь и одежда будет (планировалась с 2018, но не знаю, вроде отсрочили)

                                  внедрены уже фискальные регистраторы, которые КАЖДЫЙ чек пробивают в ФНС онлайн, и насколько я помню, уже до мелких лавочников должно было докатиться

                                  так что тут не до серых конвертов
                                  Ответить
                                  • А правда, что ты пассивный?
                                    Ответить
                                  • Да вроде как с июля 2018 (т. е. прямо сейчас) все сапожные и портные должны обзавестись кассовыми аппаратами с фискальным накопителем. Для мелких торговцев эту меру ввели ещё раньше.

                                    Уже видел в магазинах шаговой доступности ККМ с жопорез-модемом.
                                    Ответить
                                  • > так что тут не до серых конвертов
                                    > КАЖДЫЙ чек пробивают в ФНС онлайн

                                    Интересный у тебя, defecate++, взгляд на вещи. Тем временем я получаю зарплату налом без трудовой и даже без конверта (они действительно канули в лету, всем похуй), и покупаю сигареты в ларьке, где нет терминала для карт, и продавец просит через сбербанк онлайн кинуть просто на карту деньги.
                                    Ответить
                                    • > зарплату налом
                                      когда-то давно обнал стоил 5% комиссии
                                      сейчас таких расценок хер найдешь, уже ближе к уровню 15-20%, что уже не так прельстиво
                                      спроси у своего работодателя его мнение на этот счет

                                      20% начинает быть сопоставимым с зарплатными отчислениями обычного ООО (которых upto 60%, но в экономику надо заложить и НДС обычно), а если ООО - айти контора и пошевелится, чтобы соответствовать требованиям, то оно может нехило сэкономить на том же ПФР (10% вместо 22% от гросс зарплаты), а особо хитрожопые могут поселиться в технопарке типа сколково и пытаться сэкономить на НДС

                                      у меня есть знакомая контора, которая всё ещё платит в серую, в экономику заложено 25% накладных расходов на то, чтобы платить налом

                                      далее
                                      одно дело 100к в месяц найти нала, другое - несколько миллионов, на больших суммах процент комиссии меньше, но рисков больше

                                      одно дело, если у тебя уже налажены теневые связи, другое дело, если твоей конторе год-два, как моей

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

                                      до лавочников только в этом году волна с онлайн-кассами докатилась
                                      Ответить
                                  • Серьёзно, 99% IT-контор в России предлагают официальное устройство по трудовой?
                                    Ответить
                                    • Разумеется, ведь Россия - тоталитарное государство, в отличие от свободной европейской Украины.
                                      Ответить
                                    • Разумеется, ведь Россия - тоталитарное государство, в отличие от свободной европейской Украины.
                                      Ответить
                                      • Иньо, у тебя дубль комента с говнокода подтягивается.
                                        Ответить
                                      • Ну ладно, хрюндель, а у вас зарплату в конверте уже не платят?
                                        Ответить
                                    • Не знаю про 99%, но в целом гайки в этом направлении закрутили: если в 90е большинству было пофигу на официальный договор, то теперь уже не пофигу.

                                      Правда мелкие конторки выкручиваются дедовым методом: официальная зарплата там сильно меньше настоящей, а остаток дают в виде премии.
                                      С него, вероятно, тоже платят какой-то налог, но зато его можно и не дать.:)
                                      Ответить
                                      • > но зато его можно и не дать
                                        что потом оспаривается в суде, суд признает эту премию частью зарплаты, т.к. работник приводит доводы, что он эту премию получал до этого каждый месяц, и в месяце, где его обидели, он сделал никак не меньше, чем в предыдущие, после чего работодателя обязывают возместить работнику недоплаченное и ставят его на карандаш

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

                                        > вероятно, тоже платят какой-то налог
                                        тот же самый
                                        Ответить
                                    • на айти рынке сейчас спрос существенно превышает предложение
                                      это не менеджеры по продажам и не юристы, это дорогие рабы

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

                                        но бывают исключения
                                        Ответить
                          • > лавочку с тем, чтобы на постоянной основе "трудоустраивать" ИПшников серией договоров на услуги/подряд вместо трудовых договоров, уже активно прикрывают

                            У меня может быть ИП, но я сижу дома нихуя не делаю, у меня 0 договоров, но я всё равно плачу налог?
                            Ответить
                            • ИП раз в год должен сделать взнос в пенсионный фонд и на соцнужды. Бывают ещё налоговые патенты: купил налоговый патент, но ничего не заработал — никто тебе стоимость патента не вернёт.

                              А ещё есть такое понятие как лжепредпринимательство. К счастью для лжепредпринимателей, статья 173 УК РФ утратила силу в 2010 году. Но это неточно.
                              Ответить
                          • Ну этого я не знал, поэтому подстраховался.

                            В любом случае, у меня уже есть военный билет.
                            Ответить
                            • И что написано в военном? Какая буква?

                              Если у тебя нет отмазки то лучше конечно пойти в ВУЗ, там или военная кафедра будет, или у тебя будет бумажка что ты умеешь компьютеры и тогда есть шанс что ты не будешь убирать территорию отсюда и до обеда
                              Ответить
                              • > есть шанс что ты не будешь убирать территорию отсюда и до обеда

                                Я чего-то не понимаю? Если уже есть военный билет, то территорию уже не надо убирать. Или ты на случай военных действий говоришь? )

                                В военнике написано, что я отслужил три недели и комиссован по каким-то обстоятельствам.
                                Ответить
                                • > В военнике написано
                                  Тогда какие вообще могут быть проблемы с военкоматом и трудоустройством?
                                  Ответить
                                  • > Тогда какие вообще могут быть проблемы с военкоматом и трудоустройством?

                                    Теперь их нет, но получил я военник неделю назад.
                                    Ответить
                                • если ты комиссован то чего тебе бояться?
                                  Ответить
                                  • > чего тебе бояться?

                                    Уже больше ничего, но комиссован я неделю назад. Поэтому и думаю сваливать и восстанавливаться.

                                    Вообще моя история и была про то, что всё было стремновато, а теперь стало нормально.
                                    Ответить
                                  • Всадил толстый член тебе между булок и выебал, проверь.
                                    Ответить
                      • А у меня категория «В».
                        Ахахахахахаха!
                        :P :P :P :P :P :P :P :P :P :P :P :P
                        Ответить
                        • B1, B2, B3, B4? Нужна С, чтобы гарантированно не взяли. B4 - тоже 99.9% не возьмут
                          Ответить
                          • Эммм... Что? У нас категории русскими буквами обозначались. Я точно не помню какая, а в военном билете написано просто «В».
                            Ответить
                          • Белый билет — это категория «Д». Её дают, если не хватает руки или ноги. Если все органы на месте, получить её нереально.

                            Категория «Г» — временно негоден. Её дают на время, если есть какая-нибудь уважительная причина, потом отбирают.

                            Категория «В» — ограниченно годен (негоден в мирное время). Теоретически с «В» могут взять, если официально введут военное положение.

                            Категория «Б» — годен с незначительными ограничениями (годен к нестроевой и т. п.). С «Б» возьмут, но не в любые войска.
                            Ответить
                  • а ты что, скрываешься от уголовного преследования?

                    работодатель, конечно, должен вести воинский учет на предприятии, но если он это делает не очень (а так бывает в 100% коммерческих контор, если это не оборонный завод и/или не требуется форма допуска, конечно), то там пара штрафов до 1000 рублей и проверки не каждый год

                    что существенно дешевле, чем, например, нарушать трудовое законодательство

                    далее
                    трудовая книжка - тупо пережиток
                    она нигде не регистрируется, но при трудоустройстве на _основное_ место работы, ты её должен отдать работодателю, чтобы он там запись сделал и она лежала там у него

                    скоро электронные введут (скоро - застанем на нашем веку, пожалуй)

                    никто не расстроится, если ты принесешь чистую
                    и к резюме это никакого отношения
                    более того, при собеседованиях никто никакие трудовые не смотрит, это бред, в неё заглянет только кадровик, когда будет оформлять на работу

                    ПФР сейчас достаточно знает о твоих "накоплениях" из начислений, которые ежемесячно работодатель платит + работодатель электронно подает раз в год в пфр немного списков

                    как и налоговая о доходах - к середине года вообще владеет электронной справкой НДФЛ-2 за предыдущий год (на случай если тебе на вычет надо будет подавать за прошлые года - налоговая сама всё знает, выбираешь из списка свои ндфл и вперде).
                    Ответить
              • Енто штож получаиса, што у чуваков с бумашкой, которые никогда не видели пхп и мускуль больше шансов устроиться на работу чем у фистефана с N лет опыта погружения в говно?
                Ответить
                • Не знал, что 666_N33D135 ещё и безграмотный.
                  Ответить
                  • А ищщо у миня восимь уух.
                    Ответить
                    • Только ух или ещё чего-нибудь тоже восемь?
                      Ответить
                    • Отгадайте скандинавскую загадку: три глаза, две руки и десять ног. Кто это?
                      Ответить
                      • Тарас Березняк?
                        https://im0-tub-ru.yandex.net/i?id=7be4be9b2cb62f6f4a62d0b4bd81fada-sr&n=13
                        Ответить
                        • Нет. Это одноглазый Один верхом на восьминогом коне Слейпнире.

                          А почему ты сразу подумал про Тараса Березняка?
                          Ответить
                          • Первое, что пришло в голову... Говорят, у нестандартных личностей и мозг сразу выдаёт правильный результат.
                            Ответить
      • Правильно говорить "на питон" или "напитон", неуч.
        Ответить
    • Прыщеблядь выгнали из вуза?
      Ответить
      • syoma, ты?
        Ответить
      • Вроде как наоборот.
        Ответить
        • >>наоборот
          Прыщеблядь вогнали в вуз?
          Спермача выгнали из вуза?
          Вуз выгнали из прещебляди?
          Ответить
          • Наоборот — это:
            Виндобога приняли на завод.
            Восстановиться просто собрался, а уходил сам, вроде уже рассказывал, да вряд ли это кому-то интересно.
            Ответить

    Добавить комментарий