1. C# / Говнокод #26802

    +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
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    private void checkButton_Click(object sender, EventArgs e)
        {
          if (this.passportTextbox.Text.Trim() == "")
          {
            int num1 = (int) MessageBox.Show("Введите серию и номер паспорта");
          }
          else
          {
            string rawData = this.passportTextbox.Text.Trim().Replace(" ", string.Empty);
            if (rawData.Length < 10)
            {
              this.textResult.Text = "Неверный формат серии или номера паспорта";
            }
            else
            {
              string commandText = string.Format("select * from passports where num='{0}' limit 1;", (object) Form1.ComputeSha256Hash(rawData));
              string connectionString = string.Format("Data Source=" + Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\db.sqlite");
              try
              {
                SQLiteConnection connection = new SQLiteConnection(connectionString);
                connection.Open();
                SQLiteDataAdapter sqLiteDataAdapter = new SQLiteDataAdapter(new SQLiteCommand(commandText, connection));
                DataTable dataTable1 = new DataTable();
                DataTable dataTable2 = dataTable1;
                sqLiteDataAdapter.Fill(dataTable2);
                if (dataTable1.Rows.Count > 0)
                {
                  if (Convert.ToBoolean(dataTable1.Rows[0].ItemArray[1]))
                    this.textResult.Text = "По паспорту «" + this.passportTextbox.Text + "» доступ к бюллетеню на дистанционном электронном голосовании ПРЕДОСТАВЛЕН";
                  else
                    this.textResult.Text = "По паспорту «" + this.passportTextbox.Text + "» доступ к бюллетеню на дистанционном электронном голосовании НЕ ПРЕДОСТАВЛЯЛСЯ";
                }
                else
                  this.textResult.Text = "Паспорт «" + this.passportTextbox.Text + "» в списке участников дистанционного голосования НЕ НАЙДЕН";
                connection.Close();
              }
              catch (SQLiteException ex)
              {
                if (ex.ErrorCode != 1)
                  return;
                int num2 = (int) MessageBox.Show("Файл db.sqlite не найден. Положите файл в папку вместе с exe.");
              }
            }
          }
        }

    https://habr.com/post/510512/
    Медуза, паспорта и говнокод — почему номера паспортов всех участников интернет-голосования попали в Интернет

    Запостил: gost, 11 Июля 2020

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

    • Какое электронное голосование )))
      Ответить
      • Хм, а для чего использовалась эта прога? Я надеюсь они не раздавали каждому голосующему список паспортов всех остальных чтобы локально их проверить?
        Ответить
    • какая прелесть) во-первых винформа. Во-вторых скулайт. В третьих код прямо в обработчике кнопки. В-четвертых явное указание типов. В-пятых даже using нету.

      Кто-то слетал в 2007-й год, и попросил первокурсника написать программу?
      Ответить
      • >>>
        Сама программа degvoter написана на C# и представляет из себя написанное «на коленке»
        WinForms приложение, которое работает с sqlite базой данных. Файлы в архиве датированы 2020-06-30 22:17 (30 июня 2020 года). 
        Видно, что приложение писалось в кратчайшие сроки, ибо на Камчатке в этот момент уже было 1 июля 7:17, а тот факт, что
        участки открывались там в 8:00 говорит о том, что дедлайн был как никогда близок (хорошо что электронно голосовали только
        Москва и Нижний Новгород).


        «SQLite» — это, наверное, единственное хорошее, что есть в этом куске кода.
        Ответить
        • да, но работа с ней в этой программе ужасна.

          я не очень в дотнет, но даже я бы взял linqtosql -- орм с прокси классами.
          А если бы уж и писал вручную, но хотя бы с using и параметрами, а не string.format
          Ответить
          • В общем я решил позыркать, как правильно в 2020 дотнечикам работать с субд для тупых формочек.
            Во-первых конечно же есть всякие GridView, которые питушню выводят сами, причем их datasource может быть как субд (видимо любой ado.net провайдер) так и массив объектов.

            Во-вторых есть два ORM:
            Linq2SQL позволяет сгенерировать прокси-классы по СУБД, и писать запросы к ним через Linq.
            Это примитивный orm типа mybatis, который ничего не кеширует, но всё таки позволяет создавать и доставать объекты не трогая SQL руками.

            Entity Framework (бывает 5, 6, и Core) это мощный ORM типа Hibernate или sql alchemy. У него есть "каноническая модель" данных, которая мапится и в код и в базу. Можно делать code first, database first, или начать руками с канонической модели, из которой потом сгенерится и код на C# и база данных (напоминает яблочные Entiries). Он умеет кешировать, умеет внешние ключи, и все круто.

            Жопа в том, что из коробки и там, и там поддерживается только Access (через ODBC прослойку) и MS SQL: в ажуре, обычный, или Express (а это оверхед, так как отдельный процесс). SQL Compact (стенд элон файл) микрософт дропнул.
            Есть драйверы для SQLite, но только для запросов: генерить они ничего не умеют. Вроде как в EntityFramework Core уже есть sqlite, но надо ставить свежий .net и свежую студию, а мне лень.

            Но на месте питуха я бы конечно взял EF Core, WPF (вместо Winforms), GridView, и уже точно не писал бы хуиты рукамаи
            Ответить
            • >Entity Framework (бывает 5, 6, и Core) это мощный ORM типа Hibernate или sql alchemy

              Он охуенный, тем что меньше пердолинга и настроек чем с Hibernate, всё работает из коробки (для MS SQL).
              Но на больших базах вылазят проблемы всех ОРМ: хуёвые автогенерённые запросы.
              Ответить
              • На больших базах нужно писать запросы вручную, угу.
                Но мы тут вроде бы про SQLite:)

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

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

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

                  Они по ходу дела какой-то безумной хрени насочиняли типа partial classes.

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

                  Первый нельзя менять, т.к. его постоянно генерит ИДЕ, а второй пишет программер.
                  Ответить
                  • Угу. До .net 3.0 они не умели partial, и генерили один класс, а в нем было специальное место для писания своего кода) А потом они сделали partial.
                    Такое же вроде бы и для ASP.NET и для форм тоже есть: часть за тебя генерирует студия.

                    А про быстроту, так фишка в том, что большинство проектов (особенно вебсайтиков) и состоит на 80% из тупых формочек.
                    А когда у тебя будет 200000 пользователей или миллион записей в базе -- тогда уже можно и переписать по уму
                    Ответить
                    • >так фишка в том, что большинство проектов (особенно вебсайтиков) и состоит на 80% из тупых формочек
                      Потому и появились всякие питухи на колёсах рубисты на рельсах c генерециями таблиц из моделей и scaffolding.

                      >А когда у тебя будет 200000 пользователей или миллион записей в базе -- тогда уже можно и переписать по уму

                      Вот так и думали разрабы гитхабов, фейсбуков и вкшечек.
                      «Мы сейчас быстренько на скриптухе наговнячим, а когда взлетит перепишем "по уму"».
                      Ответить
                      • да, руби он рельсы, груви от грааль, питух он джанго, это все из той же области, что и EF.
                        У EF вон даже миграции есть!.

                        А твиттер вроде как переписали на скалу же, не?
                        Есть мнение, что если бы они сразу взяли Хороший и правильный язык, до как раз году к 2014-му и запустились бы
                        Ответить
                        • EF хорош таки тем что это доведённная до ума статически типизированная технология быстрого прототипирования однотипного говна.

                          В отличие от скриптухи вроде «питухов на джанге» и «руби на рельсах».
                          Ответить
                          • Жаба позорная.
                            Ответить
                          • угу. Ну тут в целом нужно признать, что скриптушня сосет у сишарпа.

                            Кстати, почему нет фулстек фреймворка для джавы с кокогенеарцией? или есть?
                            Ответить
                      • Чо за проблема с гитхабом
                        Ответить
                        • Когда у них split brain случился. И они потом вручную восстанавливали комменты и т.п.
                          Ответить
                        • Смутно помню, что в прошлом году у них между двумя ДЦ разорвалась связь, и в результате они оказались с двумя несовместимыми копиями БД. Какой багор )))
                          Ответить
                          • Именно поэтому я против копий БД.
                            Ответить
                          • Подробнее: https://github.blog/2018-10-30-oct21-post-incident-analysis/.
                            Вообще хорошая статья, захватывающая.
                            Ответить
                            • https://govnokod.ru/25070#comment439987
                              Ответить
                              • Какой багор )))
                                Ответить
                                • Хуй
                                  Ответить
                                • > 2018-11-10T04:22:55+00:00 проснулся Борманд и изменил статус на красный.

                                  > 2018-11-10T04:37:16+00:00 Борманд починил сток и изменил статус на зелёный.

                                  Лог явно демонстрирует что у однопоточного борманда, который проснулся по прерыванию, пирфоманс оказался на порядки выше, чем у стаи анскильных мускульных обезьян, и сотни питушков с окрестаторами, кластерами и репликами.
                                  Ответить
                                  • Именно поэтому я за «однопоточность».
                                    Ответить
                                    • Реально такой охуенный лог получился. Я кайфанул от прочтения.

                                      2018-11-10T01:36:34+00:00 поток «666_N33D135» обнаружил рассинхронизацию данных и послал сигнал бедствия потоку «борманд».

                                      2018-11-10T04:22:55+00:00 Поток «борманд» проснулся по сигналу и изменил флаг status на «красный».

                                      Остальные потоки перешли в состояние wait.

                                      2018-11-10T04:37:16+00:00 Поток «борманд» закончил работу, изменил флаг status на «зелёный» и отправил notify ожидающим обновления потокам.
                                      Ответить
                            • >2018-10-30-oct21-post-incident-analysis
                              >Microsoft completes GitHub acquisition - The Official ...
                              >[Search domain blogs.microsoft.com/blog/2018/10/26/microsoft-completes-github-acquisition/]

                              Магия дат.


                              MS за всё берётся смело.
                              Всё получается говно.
                              А если за Skype возьмётся,
                              То просто тратит меньше сил.
                              Ответить
                            • >Вообще хорошая статья, захватывающая.

                              Я когда её читал, то живо представлял войну нигеров с West Coast против черномазых с East Coast, которые не могут собрать кворум, прийти к консенсусу, решить кто главный и поэтому постоянно конфликтуют между собой.
                              Ответить
                          • > и в результате они оказались с двумя несовместимыми копиями БД

                            А джойнить бд запрещено законодательно.
                            Ответить
        • а вообще у .net есть компонент для вывода формы из базы
          А еще есть access: там такое вообще делается за 15 минут
          Ответить
    • Блин, и в статье пишут про несколько часов на перебор. Хотя может на проце так и есть.
      Ответить
      • Да видимо не парились особо раз просто числа.
        Ответить
      • Судя по статье он там вообще прогой на шарпе перебирал.

        Какой пирфоманс )))
        Ответить
    • нужно было делать хеш от серия-номер-отчество
      и все
      Ответить
      • Лол, как-будто это усложнит перебор.
        Ответить
        • Ну некоторые редкие отчества в словарь для перебора не попали бы
          Ответить
        • Вообще-то да, усложнит.
          Я могу перебрать все паспорта, а так мне придется каждый умножать на все известные отчества.
          Количество отчеств равно количеству имен умножить на два
          Ответить
          • А сколько всего имён? Ну и вообще тут утечка больше будет - там был только бесполезный номер, а тут ещё и отчество сольётся.
            Ответить
            • Сотня имён покроет 99.9%, мне кажется
              Ответить
            • Ладно, тогда вместе с отчеством можно добавить фамилию, точно будет пиздец
              Ответить
          • Нет. Женские имена не подходят.
            Ответить
            • Ну окей, сколько мужских имен?
              Ответить
              • http://analiz-imeni.ru/men/vse-muzhskie-imena.htm

                Там есть «Ясон» и «Боян» )))
                Ответить
                • А Гурбангулы Мяликгулыевич Бердымухамедов там есть?
                  Ответить
                  • У него и регистрации в Москве нет.
                    Ответить
                    • Верно. Но я это к тому, что в Москве дофига странных имён.

                      Вот, например, в том списке нет имени Бедрос. Значит, Филиппа Бедросовича мы не сможем деанонимизировать, если не включим такое странное имя в перебор.

                      Или вот ещё реальный пример: у бывшей главы нашей управы отчество Арториджевна. Она говорила, что её отца вообще-то звали Арториксом, но в паспортном столе по ошибке написали Арторидж, а потом решили не исправлять.
                      Ответить
                    • Ещё реальные примеры: у одного моего препода отчество Рамович, у другого — Гайкович.
                      Ответить
                      • > Гайкович

                        А Болтовича нету?
                        Ответить
                        • К сожалению, с отчеством Болтович у меня знакомых нет. И Шуруповичей тоже не знаю.

                          Кстати, Гайк — довольно распространённое армянское имя.
                          Ответить
                        • Кстати, про него анекдоты пишут:
                          https://live4fun.ru/joke/673691

                          Какой багор )))
                          Ответить
                      • Сейчас посмотрим какой ты вуз окончил...
                        Ответить
                  • <aster> "Прошу завести электронную почту для Мафусаилов Наиль Гафурович
                    <aster> Желаемый адрес электронной почты (если не занят): Мафусаилов Наиль Гафурович"
                    <aster> нет, бл@ть. Не занят. Не поверишь, бл@ть, но не занят.
                    Ответить
            • Какая дискриминация )))
              Ответить
              • Но не любые. Александра, Евгения подходят, например.
                Ответить
              • В Исландии можно взять матроним: если по какой-то причине тебе не известен твой отец, или ты не хочешь себя с ним ассоциировать, ты можешь взять матчество.
                Ответить
                • В РФии тоже можно. Единичные случаи имеются.
                  Ответить
    • >> SHA256 длиной в 256 бит, это 32 байта. Но мы старательно пихаем их в num varchar(10).
      Sqlite всё стерпит

      Какой багор )))
      Ответить
      • В sqlite все поля в виде строк хранятся. Длина для совместимости оставлена.
        Ответить
        • Не все. В integer primary key только числа суются.
          Ответить
      • > varchar(10)

        Ахаха. Они его плейнтекстом до этого хранили, только под конец в sha обмазали?

        Какой дедлайн )))
        Ответить
    • Ну так что, где можно скачать бесплатно без смс?
      Ответить
      • У меня только в sqlite. Да и до компа целый метр идти.
        Ответить
      • Ап
        Ответить
      • Я скачал только хэши нумеров. Пароль 2020og, сам файл был тута:
        https://web.archive.org/web/20200701074010/checkvoter.gosuslugi.ru/degvoter.zip

        По запросу российского правительства «Вебархив» его удалил.

        Расшифрованных хэшей у меня пока нет.
        Ответить
        • > пока нет

          А будут? Какие вообще данные оттуда можно получить?
          Ответить
          • Тебе ж, казали, номера паспортов голосовавших. Нахуй не надо
            Ответить
            • Если только номера, то действительно, нахуй они нужны? В статье на швабре что-то про номера телефона кукарекнули.
              Ответить
              • Учёный изнасиловал журналиста.
                Ответить
                • В общем понятно. Очередной хайп подняли, в итоге нихуя то и не было.
                  Ответить
                  • Ты тупой.
                    Ответить
                    • Ты давно вуз окончил?
                      Ответить
                      • Иди оффтопь в другое место, тут для другого тред
                        Ответить
                        • Ахахах. Представляю, как я всех уже тут заебал )
                          Ответить
                      • Я его не закончил
                        Ответить
                        • Пидарнули за не сданный экзамен по ма-те-ма-ти-ке?
                          Ответить
                          • Нет, пришёл, посидел два курса, поделал курсачи и дипломы кому-то по фану, пошёл работать.
                            Ответить
                            • Не жалеешь? У нас один джун работает (и очевидно скоро он перестанет быть джуном) - пидарнулся с первого курса, т.к. ему было не интересно, он и так всё знает. Мне кажется он пожалеет.
                              Ответить
                              • О чем?
                                Ответить
                                • Что вуз не окончил.
                                  Ответить
                                  • Так предметно-то о чем? Что чего-то не знаю? Что корки нет? О чем?

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

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

                                Скорее всего будет сосать в дискретке и матане, может быть в архитектуре компьютера, но если будет обычный рядовым программистом, то вероятнее всего он этого даже и не заметит.
                                Ответить
                                • Ты про меня или их джуна?
                                  Ответить
                                  • Про гипотетического джуна.
                                    Ответить
                                    • Ну матан я реально настолько не знаю, что даже плохо представляю, чем он прогеру полезен. Ну допустим графоний (64к демки делать), но это ж ниша. А по существу? Нук замотивируй.
                                      Ответить
                                      • Кажется что не только 64k, а вообще для работы со сложными двумерными объектами он уже может быть полезен (площадь там посчитать, то-се).

                                        В датасайнсе он есть
                                        https://towardsdatascience.com/calculus-in-data-science-and-its-uses-3f3e1b5e5b35

                                        Даже некоторые электронные компоненты имеют функции, которые без него не понять: может пригодиться для понимания того, как работает железная пишутня
                                        Ответить
                                    • в СНГ надо вообще половину вузов нахуй закрыть потому что по ощущениям в них ходят только чтоб от армии отсрочку получить
                                      а еще в четверть ходят чтобы мама радовалась
                                      Ответить
                                      • Бакалавриат выполняет роль просто какого-то говна, что-то вроде продолжения школы. Ну и чо? Это никому не мешает, а те кто реально по науке - те во первых и так понимают, что любое образование - это самообразование, и жаловаться просто глупо, во вторых они могут идти в магистратуру и аспирантуру, куда не пойдут косящие от армии.
                                        Ответить
                                        • Нам в универе сразу говорили, что ключевой скилл, которому обучают - умение учиться
                                          Ответить
                                          • Думаю что это пиздеж. Люди которые сами захотели чего-то выучить научатся гораздо лучше чем типичный посетитель вуза
                                            Да и нахуй нам много людей которые умеют учиться, раз на то пошло?
                                            Ответить
                                        • >> во вторых они могут идти в магистратуру и аспирантуру, куда не пойдут косящие от армии

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

                                              Там же нет практики и т.п. в отличие от матана.
                                              Ответить
                                              • Ну на куманитарных специальностях нечто получше бывает, но я не об этом говорил.

                                                Питуз сказал, что не видел, чтобы кто-то математику сам изучил.
                                                Я спросил наводчюящим вопросом, а видел ли он, чтобы кто-то философию сам изучил, намекая как раз на то, что всё в общем то и изучается самостоятельно.
                                                Ответить
                                              • Ыыыы а у философии есть практика?
                                                Ответить
                                                • Эм, ну у реальных философов она была. Да и сейчас есть. Спорить, доказывать, выдвигать новые идеи. Вот это всё.

                                                  А не просто цитировать чуваков из прошлого.
                                                  Ответить
                                          • В нашем вузе математика - это единственная специальность, где не было заочки.
                                            Ответить
                                          • Ну вот кстати у математики есть 2 стороны.

                                            Практическая - формулы и теоремы, которые тебе реально могут понадобиться в работе и отдыхе.

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

                                            Но вот максимум пользы от математики в вузе как раз от теоретической части, имхо. Практику то можно нагуглить без проблем. А вот научиться что-то доказывать без "мамой клянусь" очень сложно. И у многих людей, которые забили на вуз, с этим есть проблемы.
                                            Ответить
                                            • s/$_/математику уже по тому учить следует, что она ум в порядок приводит./
                                              Ответить
                                            • Гуглежка формул тоже не всегда помогает: слишком большое там дерево зависимостей. Чтобы что-понять, нужно понять все prerequisites.


                                              Что безвузному питуху скажет фраза:

                                              "Гамма-потоком называется стационарный поток без последействий, у которого интервалы между событиями представляют собой случайные величины, подчиненные гамма-распределению с параметрами [формула]" ?
                                              Ответить
                                              • Скажет загуглить этот текст, чтобы в целом понять, из какой это области знания. Затем уточнить термины "стационарность", "последствие", "распределение". Затем перечитать ещё раз, уже с каким-то бэкграундом. В зависимости от необходимости удовольствоваться таким поверхностный представлением, либо углубиться, либо забить.
                                                Ответить
                                              • А х.з., мне эта фраза тоже ничего не говорит. Я в душе не ебу что такое потоки и последействия. Я тут разве что общую концепцию случайных величин и распределений могу вспомнить. Это какая-то жёсткая матстатистика?
                                                Ответить
                                                • В данном случае гуглится точная фраза:
                                                  https://ru.wikipedia.org/wiki/Теория_массового_обслуживания

                                                  А вот если бы она была написана своими словами, то фиг бы я её нагуглил.
                                                  Ответить
                                                  • И много ты в математике своими словами рассказать собрался?
                                                    Ответить
                                                    • > И много ты в математике своими словами рассказать собрался?

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

                                                    Дельта-вариантной квантификацией называется квантификация, каждый комбинационный квант которой подчиняется дельта-распределению Маркова в соответствии с формулой:
                                                    Ответить
                                              • Подтверждаю. Ничего не скажет.
                                                Ответить
                                            • Чтобы уметь доказывать, нужна логика, а не математика. А по эту сторону стены логику, насколько я не знаю, отдельным предметом не преподают.
                                              Ответить
                                              • Ты имеешь ввиду какую стену?

                                                Логику преподают на матфаках, а чо нет.
                                                Ответить
                                                • Подтверждаю.
                                                  Ответить
                                                • Берлинскую
                                                  Ответить
                                                  • ты из гдр?

                                                    Вроде как без логики люди даже в и, или и не не смогут
                                                    Ответить
                                                    • Окологуманитарии считают, что математика — это только про числа, только чтобы посчитать, а логика — то другое.
                                                      Ответить
                                                      • Числа же это вообще только частный случай всякой алгебраической хуйни, не?
                                                        Ответить
                                      • Это правда. Дохуя знают питухов, которые зачем-то ходили в вуз, и нихуя оттуда не вынесли, и работают хуйней какой-то и лучше бы они пять тел бухали
                                        Ответить
                                • > не заметит

                                  Именно поэтому я за пхп.
                                  Ответить
                                  • Совершенно верно: за вордпрессы и сайты.
                                    А так же за энтерпрайз с базами данных и вебмордами, за клиенты этого энтерпрайза под мобильные устройства, и еще за кучу всего галерного, где вообще никакой математики нету
                                    Ответить
                    • А по делу есть что сказать?
                      Ответить
                      • Инь, убери пожалуйста нотис
                        Ответить
                      • Ну меня просто достал твой дискурс на тот момент, типа "а чо это такое? А что случилось? а объясните? А чо это значит? А сделайте все за меня? А расшифруйте? А чо это значит? А где скачать? Все ясно, хуйня, зря вонь подняли".

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

                          а ты видел сырцы другого госсофта? Имх0, он всегда парашный
                          Ответить
                        • Так а хуле. Слита и расшифрована некая база, но никто не может дать прямую ссылку, или хотя бы сказать схему данных. Я не хочу пердолиться за зря (syoma). Я то думал там passport_num <-> phone как минимум, но вы говорите только passport_num и интереса для меня не представляет.

                          Я не спорю, что софт хуевый, и что это позор.
                          Ответить
                          • Фу, как сема. Ну другие же поняли это все ещё из статьи, почему один ты переспрашивал? Лень внимательно читать? Нажуя тогда вообще все
                            Ответить
                          • Прямая ссылка это статья в данном случае вроде как
                            Ответить
              • Номера телефонов можно получить, только если сджойнишь её с другой базой, а именно с базой данных операторов связи.

                На «Швабре», кстати, заметили, что джойн разных баз явно запрещён на законодательном уровне.
                Ответить
                • По конституции?
                  Ответить
                • > джойн разных баз явно запрещён на законодательном уровне.
                  Ахуеть. Именно по этой причине я должен в каждую сраную госорназинацию нести одни и те же документы
                  Ответить
                  • И заебись
                    Ответить
                  • Так они минимизируют багры в случае недобросовестного использования базы или утечки. Если спиздят инфу о тебе, то хотя бы не всю сразу.
                    Ответить
                    • Предлагаю тогда ничего вообще не хранить, и заставлять меня каждый раз носить с собой полный пакет документов
                      Ответить
                    • Бинго.
                      Ответить
                    • А ещё любая вахтерша не может анально взять под контроль твою жизнь, если устроилась на вахту в паспортный стол полы мыть.
                      Ответить
                  • Ничего. Зато гугл всю собранную о юзерах инфу джойнит в бигдату.

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

                  Какая денормализация )))
                  Ответить
    • Интерсно а когда блокчейн с голосами утекет. Можно будет с паспортами сопоставить.
      Ответить
    • Зато не на "PHP"
      Ответить
      • К ПХП бы не было претензий: там весь код такой же хуевый. А тут все таки нормальный язык.
        Скорее всего взяли ПХП программиста, и велели ему написать десктопный софт
        Ответить
        • > Скорее всего взяли ПХП программиста

          Это с хуя ли? Из какого приёма в коде ты это понял?
          Ответить
          • string.Format("select * from passports where num='{0}' limit 1;"
            *https://visualstudiomagazine.com/articles/2017/07/01/parameterized-queries.aspx
            Ответить
            • Не показатель. Сначала убедить, что гуглится по запросу "си шарп база данных запрос" имеено параметризованный вариант. Хуй-то там, полагаю. На всей виндузне, кроме наверное F# по понятным причинам, есть своя критическая масса говнокниг (лицензед бай мелкософт) говнотуториалов, говнодоков, долбоебских ходов в самой организации свистоперделок в их инструментах разработки, что писать говнокод можно учиться сразу там, не заходя в ПХП. Даже круче получится, погромизд не поймёт, что вообще такое компилятор, что за xml-ки генерятся волшебные, когда ты разместил кнопочку на форме мышечкой, что такое файл с кодом (который в пхп более самоочевиден), для него всё будет волшебной картинкой с волшебными кнопочками, где надо писать в волшебное окошко волшебные слова, и иногда оттуда ругаются что что-то не так, а иногда всё нормально. Плюс к уёбищным именам (CommandButton1) виндузоИДЕ располагает значительно круче, чем похапешное файло, где хотя бы ненароком задуматься можно, как назвать.

              Ну сделал он говнозапрос без параметризации. Наверное так было в первом примере кода по запросу "сисярп эскулайт", сам проверяй. Лично для меня не факт что пхп тут причем-то.
              Ответить
              • Вбил в гугл. Первая ссылка

                https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ado-net-code-examples
                SqlCommand command = new SqlCommand(queryString, connection);
                command.Parameters.AddWithValue("@pricePoint", paramValue);


                Долбоебизм "писать код в обработчике кнопки" это вполне себе подход .net pre-junior программиста.
                А вот так запросы клеить -- это уже пыхапизм:)

                Но вообще там наверху вроде уже как распидалили, что нужно было брать Linq2SQL или EF. Писать запросы руками в таком тупом приложении не жнуо
                Ответить
                • Ну это ты конечно прихуел англоязычный источник-то открывать, ты б ещё загуглил сразу "parameterized", а потом сказал что гуглится всё заебись.

                  Но да, в основном даже васяны сразу показывают синтаксис с собачкой для параметров, хотя если загуглить просто СИШАРП БАЗА ДАННЫХ, то на первом месте у меня vscode.ru с инструкцией, как конкатенировать запросы из строк для MySql, сразу естественно с инъекциями.

                  Так что скажем честно, след похапе крайне косвенный.
                  Ответить
                  • У меня первая ссылка вообще без SQL запросов. У ADO.NET есть смешной API, когда ты вручную собираешь ряд (как такой моссив) а потом его пхаешь в таблицу. Вот там его используют

                    DataRow nRow = main.testDataSet.Tables[0].NewRow();
                                    int rc = main.dataGridView1.RowCount + 1;
                                    nRow[0] = rc;
                                    nRow[1] = tbName.Text;
                                    nRow[2] = tbPhone.Text;
                                    nRow[3] = tbMail.Text;
                                    nRow[4] = tbPhoto.Text;
                                    main.testDataSet.Tables[0].Rows.Add(nRow);


                    какой ADO.NET :)))

                    Кстати, не такой уж и плохой интерфейс имхо
                    Ответить
                    • лол
                      array_fetch
                      Ответить
                      • Что фетч?
                        Запихай мне новую запись в СУБД базонезависимым способом не пися ни строчки SQL.
                        Ответить
                        • Ну способ на вид говно, городить константы для названий столбцов придется, ебал я в рот все эти [3] [1] [6]
                          Ну а что касается запихать тебе базонезависимым способом — ну так такую прослойку и должны создавать орм'ы cо своими дсл'ями. Вся твоя базонезависимость строится на том, что реализация скрыта. Ну так и в орм она скрыта может быть, и будет значительно лучше какого-то обоссаного массива. Промапленные объекты, где ты прямо по бизнес-логике пишешь поля и делаешь update в тыщу раз пижже, и это уже давно мейнстрим где угодно. Хуйня твой массивчик.
                          Ответить
                          • >константы
                            ты не поверишь:
                            https://docs.microsoft.com/en-us/dotnet/api/system.data.datarow.item?view=netcore-3.1#System_Data_DataRow_Item_System_Stri ng_

                            ADO.NET это не ORM. Это интерфейс к базе данных, как JDBC.

                            Он позволяет работать с БД как с таблицами. Это позволяет делать код уровня работы с БД, не зависящий от конкретной СУБД.

                            Пример: GridView: контрол, который умеет нарисовать таблицу и вывести в нее данные красивым способом прямо из СУБД в один клик.
                            Другой пример это экспорт этого дела в csv.
                            Ты можешь написать код, не зависящий от конкретной СУБД, и при этом не написать ни строчки SQL вручную.

                            В пыхе ничего подобного нету даже близко.
                            Ответить
                            • Не понимаю боязни sql, но допустим.

                              Ну короче ты нахваливаешь конкретный data grid, то есть представление о таблице именно как о ТАБЛИЦЕ. Для самописного экселя прикльно, но это далеко не единственная форма данных. которую держат в базах.

                              Если я буду идти циклом по этой хуйне, и по какому-то условию менять строчку или не менять, то у меня на практике выполнится не цикл с пачкой update, а один хороший update с правильным where? squeryl например так умеет.
                              Ответить
                              • >Не понимаю боязни sql
                                Во-первых написание руками строковых литералов с запросами это всегда error prone. Это нужно делать, только если более высокие уровни абстракции не позволяют тебе этого НЕ делать (например, по причинам перформанса).

                                Во-вторых я же привел пример GiidView: Ты пишешь контрол, который должен вывести таблицу из базы.

                                В случае ручного SQL тебе придется знать специфичный для конкретной СУБД способ получения списка колонок, сортировки итд.

                                Но даже и без GridView работать через более высокоуровневый API однозначно приятнее.

                                >но это далеко не единственная форма данных. которую держат в базах.

                                Разумеется.

                                >то у меня на практике выполнится не цикл с пачкой update, а один хороший update с правильным where?

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

                                >цикл с пачкой update, а один хороший update с правильным where?

                                Скорее всего nfv
                                Ответить
                                • я извиняюсь, что такое nfv?
                                  Ответить
                                  • Это проверка того, что ты дочитал сообщение до конца.
                                    Всё будет плохо и не оптимально
                                    Ответить
                                  • Кстати, зацени
                                    https://buildnumbers.wordpress.com/sqlserver/

                                    19 это 15
                                    14 это 12
                                    12 это 11

                                    Правда же удобно?
                                    Ответить
                                  • Кстати, я малеха напиздел (что несколько снижает мой пафос конечно), давно не трогал ado.net
                                    Там есть понятие DataSet, его надо заполнить через Adapter.
                                    Adapterу все таки нужно скормить один запрос -- для Select, а остальные запросы заполнит Builder.
                                    Тогда можно заполнить датасет из адаптера, изменить его, и коммитнуть обратно.

                                    using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Db"].ConnectionString))
                                                {
                                                    conn.Open();
                                    
                                                    var adapter = new SqlDataAdapter("SELECT * from Users", conn);
                                                    new SqlCommandBuilder(adapter); //генерит остальные команды
                                                    var dataset = new DataSet();
                                                    adapter.Fill(dataset); //можно указать с какой строки по какую вычитать
                                                    var table = dataset.Tables[0];
                                                    foreach (DataColumn column in table.Columns)
                                                    {
                                                        Console.WriteLine(column.ColumnName); //Каллонки
                                                    }
                                    
                                                    foreach (DataRow row in table.Rows)
                                                    {
                                                        Console.WriteLine(row["Name"]); //ряды
                                                    }
                                    
                                                    var newRow = table.NewRow();
                                                    newRow["Id"] = 22;
                                                    newRow["Name"] = "foo";
                                                    table.Rows.Add(newRow); //Добавляем row
                                                    adapter.Update(dataset); //коммитим
                                                }

                                    Но всё равно это более высокоуровнево, чем голые запросы на insert
                                    Ответить
      • На любом языке можно писать как на PHP
        Ответить
        • Именно поэтому я за PHP.
          Ответить
        • да, если у тебя был опыт с ПХП
          Ответить
          • А обнулить опыт с ПХП как-то можно?
            Ответить
            • Можно, но трудно. Это как вирус герпеса: можно вылечить (ну или задавать симптомы), но лучше не болеть:)
              Ответить
            • Можно. Для этого нужен кирпич либо стена. Правда, срабатывает не со стороцентной ворентностью, и возможны побочные эффекты.
              Ответить
              • Ну вообще я видел излечившихся пыхеров. Нужен хороший язык, хороший фреймворк/проект, хороший код, и ревью хороших коллег
                Ответить
                • Излечившихся — это тех, для кого пых был первым языком что ли? Так-то с него дохуя кто слезает, ничего сложного.
                  Ответить
                  • К сожалению, не у всех эти получается.
                    У нас тут иногда постят цитаты с phpclub.ru. Там сидят сорокалетние ПХП программисты. Это очень печальное зрелище
                    Ответить
          • На любом языке можно писать как на любом другом, при достаточной степени ignorance_mode "on"
            Ответить
            • Не-а. Нельзя писать на шестой джаве как на хаскеле
              Ответить
              • Нельзя писать на «PHP» как на не «PHP».
                Ответить
                • Я видел человека, который пытался писать на пхп как на джаве: делал во круг всего ООПшные обертки. Получалось худшее из двух миров
                  Ответить
                  • Есть реальные примеры ЙАЖЫ как на ПХП?
                    Ответить
                    • >Есть реальные примеры ЙАЖЫ как на ПХП?
                      JSP
                      Ответить
                      • JSP это просто шаблонизатор, а JSPX не такой уж и плохой. Не обязательно писать в нем код
                        Ответить
                      • вот такое?
                        https://govnokod.xyz/_26802/#comment-543177
                        Ответить
                    • Нету п0д рукой, но он там интерфейс List выписал, занаследовал от него свой ArrayList, и всё это чуть ли не на четвертом пыхе в 2004-м году
                      Ответить
                    • а чо бы нет-то, вот из чего-нибудь такого экстраполируй дальше в остальные области:

                      https://www.javatpoint.com/java-awt-textfield
                      Ответить
                      • Это очень скучный код, но не самый пиздецовый.

                        А разгадка одна: строить UI лучше декларативно.
                        См XAML/WPF, Kotlin UI DSL, XML из Android Layout Editor итд.
                        Императивно писать

                        t2.setBounds(50,150, 200,30);
                        f.add(t1); f.add(t2);
                        f.setSize(400,400);

                        это очень уныло
                        Ответить
                        • да я не про это, UI это только пол беды, но вот тебе сразу набор важных похапешных навыков: неговорящие уебищные имена сущностей, код идёт простынёй, не бьётся на методы даже там, где это напрашивается, обработчик определяет, какую кнопку нажали, сравнивая источник события с объектом через ==, при всего двух ветках if-else вместо if-else или тернарника пишется избыточный if-else-if, и так далее. Так можно переписать любой джавовский код, будет тебе похапе-стайл.
                          Ответить
                          • Ну вот мне кажется, что это скорее какой-то бейсикстайл.
                            Чтобы добавить в код ПХПшности, я бы сделал так:
                            tf3.setBounds(50,150,150,20);  
                            String c = conn.createStatement().executeQuery("SELECT country FROM people where id=" + id).getString("c");
                            tf4.setBounds(50,150,150,c == "Armenia" ? 22 : 32);
                            Ответить
                    • извини, я жопой прочитал твой коментарий

                      Тогда пи прав
                      дивись, какое говно
                      <%@ page import="java.io.*,java.util.*" %> <!DOCTYPE html>
                      <html>
                      <head>
                      <title> Application Implicit Object</title>
                      </head>
                      <body>
                      <h1>JSP Tutorial</h1> <%
                      Integer counter= (Integer)application.getAttribute("visit");
                      if( counter ==null || counter == 0 ){
                      counter = 1;
                      }
                      else{
                      counter = counter+ 1;
                      }
                      application.setAttribute("visit", counter);
                      %>
                      <h3>Total number of view to this Page is: <%= counter%></h3>
                      <p>Copyright © 2017 By <a href="http://www.studentstutorial.com" target="_blank" style="text-decoration:none"><b style="color:green">studentstutorial.com</b></a>. All Rights Reserved.</p>
                      </body>
                      </html>
                      Ответить
              • А чо там, разве нельзя было возвращать Callable?
                Ответить
                • Анонимный класс? Можно. Примерно как писать префиксное дерево на .bat файле
                  Ответить
                  • ну бывает. Ты б ещё сказал, что на брейнфаке ООП тоже неудобно. Оно понятно. Но изначальный афоризм (чей? забыл), "любой, кто писал на СИ, может писать на любом языке, как на Си" — говорит не про технические возможности реализации делалей другого языка, а про стиль.

                    Стилистически, да, можно поднажать на хоть какие-то возможности функциональщины и в шестой джаве. Без лямбды хуёво конечно.

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

                      Изначальный афоризм был про Фортран.
                      Впрочем разница не так велика
                      Ответить

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