1. JavaScript / Говнокод #27606

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    type a = 1;
    type i = a & a;
    type j = a | a;
    
    function main() {
        let v1: i;
        let v2: j;
        assert(sizeof(i) != sizeof(j));
        print("done.");
    }

    ну все я понял вам скучно... как насчет такого примера?

    Запостил: ASD_77, 23 Августа 2021

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

    • показать все, что скрытодампик - https://pastebin.com/9rwUkPRm
      Ответить
    • показать все, что скрытоИ че? Ну всмысле, нахер это сюда регулярно кидать?

      Я в этих регулярных тупоскриптовых говнокодах вижу не больше смысла, чем в херне, которой сюда через ботов срет какой-то уебок.
      Ответить
    • показать все, что скрытоtype -- это универсальный тип, который содержит всё что угодно?
      Ответить
      • показать все, что скрытоА я почему-то подумал, что это аналог typeof, только его можно использовать в левой части.
        Ответить
        • показать все, что скрытоХм, ты прав, судя по доке это скорее даже typedef. В примерах пишут что-то в духе type foo = number | string.

          А typeof он и есть typeof. Так что тут какое-то странное расширение языка походу.
          Ответить
      • показать все, что скрытону типа typedef. это что бы не так сильно много буков писать
        Ответить
      • показать все, что скрытоtype a = 1, это как в С: typedef typeof(1) a;
        Ответить
        • показать все, что скрытоМда, придётся учить TS, чтобы понимать, что за питушню Вы заставляете компилироваться.

          А я думал, единица - это нульарный конструктор, чтобы можно было написать что-то вида
          type digit = 0 | 1;
          type number = [digit];
          Ответить
          • показать все, что скрытоа у меня не точная копия TS. я шаманю как могу. главная задача это выеб..ать С и С++ :)
            Ответить
            • показать все, что скрытоВот это вряд ли. Rust вот пытается кого-то там выебать, но что-то пока нихуя не получается.
              Ответить
              • показать все, что скрытоМозги он всем успешно выебал.
                Ответить
              • показать все, что скрыто> Rust вот пытается кого-то там выебать, но что-то пока нихуя не получается.
                Есть один тест где они попыталий это сделать.

                https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/revcomp.html

                Во всех остальных они сливают Сишке и Крестам

                Так вот, чтобы уделать С++ пuтух в каждом примере конечно использует unsafe-код, иначе никак.

                Также там включен AssParallel, работая 4 потока.
                × 	source 	secs 	mem		gz	busy	cpu load 
                1.0 	Rust	0.45 	498,880 	3040 	0.76 	61% 23% 60% 24%
                1.2 	g++ #7	0.52 	  1,788 	1853 	0.52 	0% 98% 0% 2%
                1.4 	g++ #2	0.63 	499,688 	2093 	0.65 	0% 2% 2% 100%
                1.7 	Rust #2	0.77 	995,072 	1330 	1.43 	47% 30% 49% 59%
                1.7 	Rust #3	0.77 	994,996 	1097 	1.48 	51% 61% 29% 52%


                Но этого оказалось недостаточно, пuтушатня продолжала сливать g++.
                Ответить
                • показать все, что скрыто> Но этого оказалось недостаточно, пuтушатня продолжала сливать g++.

                  Тогда дrustня пошла на хитрость и просто написала ssse3 intinsic вставку (чего другие примеры не делают).

                  https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/revcomp-rust-1.html

                  #[cfg(target_feature = "ssse3")]
                  mod ssse3 {
                      #[cfg(target_arch = "x86")]
                      use std::arch::x86::*;
                      #[cfg(target_arch = "x86_64")]
                      use std::arch::x86_64::*;
                  
                      use super::KNUCLEOTIDE_MAPPING;
                  
                      /// reverse bytes and complement each byte
                      #[rustfmt::skip]
                      unsafe fn reverse_chunks_simd(mut v: __m128i) -> __m128i {
                          v = _mm_shuffle_epi8(
                              v,
                              _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15),
                          );
                          v = _mm_and_si128(v, _mm_set1_epi8(0x1f));
                  
                          let lt16_els = _mm_add_epi8(v, _mm_set1_epi8(0x70));
                  ...


                  Но даже с ассемблером они обосрались, т.к. busy cpu time всё-равно вышел хуже.
                  Rust+ssse3= 0.76
                  g++ = 0.52
                  Ответить
            • показать все, что скрытоСишку тайпскриптом ты не выебешь, как впрочем и наоборот. Ниши совсем разные.
              Ответить
              • показать все, что скрытоdefine "выебать"
                Ответить
              • показать все, что скрытоВот именно. Пусть бы еще попробовал какой-нибудь Verilog своим тайпскриптом выебать )))
                Ответить
              • показать все, что скрытокак вы не понимаете что С и С++ и TS и тд это всего лишь абстракты.... в конечном итоге это машинный код. а он один и тотже. это говорит что без разници на чем пишешь - главное это возможности и время разработки. т.к. если компилятор берет на себя задачу решить стандартные задачи для программиста - то он только радоваться должен что ему не надо вечно придумывать велосипед
                Ответить
                • показать все, что скрыто> без разници на чем пишешь

                  Предлагаю тебе ответить на вопрос: можно ли написать прошивку для GPU на языке sh?
                  Ответить
                  • показать все, что скрытоДавайте в жопу ебаться
                    Ответить
                  • показать все, что скрытоВысрал COM-файл для «DOS» программой на языке «sh», проверь:
                    #!/bin/sh
                    
                    printf "\xC3" > nothing.com
                    Ответить
                  • показать все, что скрытоМожно конечно. Макроассемблер-как-DSL из любого языка можно слепить.
                    Ответить
                    • показать все, что скрытоЯ тебя трахну в анус
                      Ответить
                    • показать все, что скрытоТы предлагаешь шелл использовать как макросы?
                      Ответить
                      • показать все, что скрытоОтличный макроязык, кстати. На порядок лучше, чем mustache или jinja.
                        Ответить
                        • показать все, что скрытоПочти как m4
                          Ответить
                          • показать все, что скрытоЛучше. m4 — это специализированный макроязык, и следовательно язык общего назначения всегда его уделает.
                            Теорема Снаута: shallow embedded DSL на языке общего назначения всегда отняшит специальный недоязык.
                            Ответить
                            • показать все, что скрытоА как отличить язык спец назначения от общего назначения?
                              PHP -- он какой?
                              Ответить
                              • показать все, что скрытоКак говорит википедия: In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose.
                                Как поклонница Лема, я им аплодирую.
                                Ответить
                              • показать все, что скрытоРНР общего всё-таки, с лёгкой примесью шаблонизатора.
                                Ответить
                                • показать все, что скрытоРНР был шаблонизатором, но на нём стали писать всякое говно, и он -- вжжжжжух --- стал языком общего назначения.
                                  Ответить
                                  • показать все, что скрытоМежду «PHP/FI» Расмуса Лердорфа и «PHP3» Гутманса и Сураски огромная про́пасть — это вообще разные языки, их объединяет только название.

                                    «PHP/FI» действительно был шаблонизатором. На нём нельзя было писать программы как на языке общего назначения.
                                    Ответить
                                    • показать все, что скрытоWhat is PHP?
                                      PHP 3.0 is a server-side HTML embedded scripting language and it is a complete rewrite of the popular PHP/FI 2.0 language.

                                      PHP: Hypertext Preprocessor was chosen as the official meaning of the PHP acronym with 53% of the votes. You can see the votes as well as some ideas to plenty of other unofficial meanings here.
                                      Ответить
                                      • показать все, что скрытоА «йАЖАСЦРИПТ» is client-side HTML embedded scripting language, однако, его сейчас даже в контроллеры пихают.
                                        Ответить
                                        • Физкульт-минет
                                          Ответить
                                        • показать все, что скрытоЭто очень грустно.

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

                                            потому что могли блять
                                            Ответить
                                            • показать все, что скрытоА это и не автор языка

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

                                              А он сделал Nodejs, и тем самым растащил испачканные в говне палочки по всей экосистеме

                                              Если бы не было nodejs, то на JS никто всерьез бы ничего и не писал
                                              Ответить
                                              • показать все, что скрытоа при чём тут нода, если в браузере принципиально нет другой скриптушни? на чём бы ты всерьёз писал великий и ужасный spa, на жабе с апплетами?
                                                Ответить
                                                • показать все, что скрытоЕсли бы не было ноды, то не было бы всей экосистемы: npm, webpack, итд.

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

                                                  Скорее всего это был бы Dart, или какие-то херни типа GWT (когда пишешь на Java, а оно компилирвается в JS).

                                                  Но благодаря NodeJS язык стал самодостаточным, и это придало ему сил чтобы идти в бекенд, контоллеры, чтобы делать электрон итд
                                                  Ответить
                                                  • показать все, что скрытоЯ, кстати, писал SPA на GWT (Java6) в 2008/2009 гг.
                                                    Не то, чтобы это был мой выбор: оно мне просто досталось.

                                                    Но в ту пору джава (шестая) казалась меньшим злом, чем JS
                                                    Ответить
                                                    • показать все, что скрыто> Я, кстати, писал [...] Java6
                                                      > в ту пору джава (шестая) казалась меньшим злом, чем JS

                                                      Теперь понятно откуда такая любовь к ES6.

                                                      Ведь он превращает мерзкий лисперский черезчур простой функциональный JavaScript в старую-добрую скучную жабу.

                                                      Туда завезли прекрасные extends, super, constructor, можно писать геттеры, сеттеры, dao.
                                                      Ответить
                                                      • показать все, что скрытоJavaScript совсем не лисперский, это же не руби

                                                        JavaScript это
                                                        https://github.com/denysdovhan/wtfjs
                                                        Ответить
                                                        • показать все, что скрыто> JavaScript совсем не лисперский
                                                          Тебе виднее.

                                                          Правда Айк и Крокфорд так не думали.
                                                          Ответить
                                                          • показать все, что скрытоА как сделать map на классическом JS?
                                                            А ленивый можно?
                                                            Ответить
                                                            • показать все, что скрытоНет, впрочем нынешний ES6 действительно совсем не лисперский.

                                                              Лиспер не будет писать public static class constructor super(pituz).
                                                              Ответить
                                                              • показать все, что скрытоВ Es6 можно тоже этого не писать.

                                                                Зато можно писать
                                                                [1, 2, 3, 4].filter(t=> t%2 == 0).map(n=> n*n)

                                                                А как это в старом JS?
                                                                Ответить
                                                                • показать все, что скрытоЭто пример синтаксического сахара, который никак не меняет семантику языка и его возможности.

                                                                  > А как это в старом JS?
                                                                  Так же, но нужно написать слово function и пару скобок.

                                                                  И это обработка списка не Йажевская, а именно что Лисповская.

                                                                  А вот так обрабатывали списка в Йажа в 90х и 00х

                                                                  int[4] arr={1,2,3,4}; //это не Йажа, всё-таки Сишка
                                                                  List<Integer> list= new ArrayList<>();
                                                                  list.add(1); 
                                                                  list.add(2);
                                                                  List<Integer> out= new ArrayList<>();
                                                                  for (Integer i: list){
                                                                      if ( 0==i%2 ){
                                                                            out.add(i*i);
                                                                      }
                                                                  }
                                                                  Ответить
                                                                  • показать все, что скрытоfilter появился в ES6 же, не?

                                                                    Я и спрашиваю, как это сделать в старом JS
                                                                    Ответить
                                                                    • показать все, что скрыто> filter появился в ES6 же, не?

                                                                      Говорю же: что тут спорить? Тебе виднее.

                                                                      https://262.ecma-international.org/5.1/#sec-15.4.4.20
                                                                      https://262.ecma-international.org/5.1/#sec-15.4.4.19
                                                                      Ответить
                                                                      • показать все, что скрытоИ так, он появился в 5.1, в 2011-м году.

                                                                        Следует ли из этого, что с1996-го года по 2011-й JS не был лисперским?
                                                                        Ответить
                                                                        • показать все, что скрыто> И так, он появился в 5.1, в 2011-м году.

                                                                          Какая логика )))

                                                                          Сразу видно что человек с опытом.
                                                                          Ответить
                                                                          • показать все, что скрытоEdition
                                                                            5.1
                                                                            June 2011

                                                                            Internet Explorer: support 9.0
                                                                            Chrome Android: support 18.0

                                                                            Вот тут, к примеру, нет никакого `filter`

                                                                            https://www.ecma-international.org/wp-content/uploads/ECMA-262_3rd_edition_december_1999.pdf

                                                                            Что не так-то?

                                                                            Ты утверждаешь, что JS изначально был "лиспообразный"
                                                                            Я и спрашиваю как он мог быть лиспообразным, если в нём даже `map` изначально не было?

                                                                            Или ты про какой-то отрезок когда ``filter`` и ``map`` уже были, а ``class`` не было?
                                                                            Ответить
                                                                            • показать все, что скрыто> Или ты про какой-то отрезок когда ``filter`` и ``map`` уже были, а ``class`` не было?

                                                                              filter и map уже были в FF 1.5 и Chrome 1.

                                                                              В доajaxовую эпоху большинство JS не понимало и относились к нему как детской игрушке.
                                                                              Так Delphi в ту пору считался более серьёзным языком.

                                                                              > JS изначально был "лиспообразный"

                                                                              Функция всегда была first-class object. И она умела захватывать пельменные.

                                                                              Сейчас это кажется привычным, но тогда это был эксклюзив JS.

                                                                              ЕМНИП второй популярный промышленный язык в котором это появилось был C# c его делегатами. Это произошло только в 2005 году.
                                                                              Ответить
                                                                              • показать все, что скрыто>filter и map уже были в FF 1.5 и Chrome 1.


                                                                                Но в языке их не было, о чем можно узнать посмотрев на спеку версии 3.

                                                                                > Функция всегда была first-class object. И она умела захватывать пельменные.


                                                                                То есть язык без map и filter по твоему был похож на лисп?

                                                                                >Сейчас это кажется привычным, но тогда это был эксклюзив JS.


                                                                                В Ruby это было изначально, в perl некоторые функции получали блок, способный захватывать переменные.

                                                                                > был C# c его делегатами. Это произошло только в 2005 году.

                                                                                Делегаты были и в C# 1.0, а вот лямбд не было
                                                                                Ответить
                                                                                • показать все, что скрыто> В Ruby это было изначально

                                                                                  Я говорил: промышленные языки, а не хипстерские поделки для кегданов.

                                                                                  И скажи честно, ты в 90х знал о существовании Яибу? Ну вот что существует такой язык, там есть «лямбды».

                                                                                  > Но в языке их не было
                                                                                  Да, трудно сделать нужный polyfill.
                                                                                  Ответить
                                                                                  • показать все, что скрыто>Я говорил: промышленные языки, а не хипстерские поделки для кегданов.
                                                                                    >И скажи честно, ты в 90х з

                                                                                    В 90-х JS не был промышленным языком

                                                                                    >Да, трудно сделать нужный polyfill.
                                                                                    "Полифил" можно было и в С++03 сделать, на бусте
                                                                                    Это же не значит, что С++ у нас лиспообразен

                                                                                    Или значит?
                                                                                    Ответить
                                                                  • показать все, что скрыто>А вот так обрабатывали списка в Йажа в 90х и 00х

                                                                    Так яжу никто лиспообразной и не называл.
                                                                    Я про руби говорил
                                                                    Ответить
                                                          • показать все, что скрытоа что такое лисперский?

                                                            list processing?
                                                            Ответить
                                                            • показать все, что скрытоФункциональный язык с замыканиями. Списки тоже есть.
                                                              Объявлять их очень просто, как в лиспе: [a, b, c]

                                                              В 90х это был первый успешный промышленный опытов скрещивания ФП с императивщиной.

                                                              Предоставим слово классикам:
                                                              Lisp in C's Clothing
                                                              
                                                              JavaScript's C-like syntax, including curly braces and the clunky for statement, makes it appear to be an ordinary procedural language. 
                                                              
                                                              This is misleading because JavaScript has more in common with functional languages like Lisp or Scheme than with C or Java. 
                                                              
                                                              It has arrays instead of lists and objects instead of property lists. Functions are first class. It has closures. 
                                                              
                                                              You get lambdas without having to balance all those parens.
                                                              Ответить
                                                  • показать все, что скрытосовершенно не верно

                                                    нода и всяческий вебпак стали ответом на запрос со стороны пердолей, которые начали пилить на js космические корабли

                                                    а больше им пилить было не на чем. ну какой нафиг Dart? который тем более вроде транспилился в js, как сегодня ts

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

                                                      Сделали бы дарт, компилирующися в JS для браузера и интерпретаор его для CI

                                                      Был бы NodeDart
                                                      Ответить
                                                      • показать все, что скрытомы говорим о людях, которые каждый день добровольно пишут на js, какие юнит-тесты?
                                                        Ответить
                                                        • показать все, что скрытоНу у них сейчас есть юнит тесты

                                                          Моча вот есть
                                                          Жасмин есть
                                                          Ответить
                                                          • показать все, что скрытону и что

                                                            я повторюсь:
                                                            1) люди писали на js, потому что альтернативы вымерли раньше мамонтов
                                                            2) люди привыкли к js и начали строить инфраструктуру

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


                                                              Альтернативы еще были живы, когда появился node (2009 г).
                                                              Он их подтолкнул.

                                                              > си и кресты это удачный выбор для gui-тулкитов
                                                              Когда я смотрю на скорость Intellij (Java) и на память VSCode (JS же?), я думаю, что может и у крестов есть ниша ))
                                                              Ответить
                                                              • показать все, что скрытоnode подтолкнул флеш к гибели? я сомневаюсь.

                                                                > может и у крестов есть ниша
                                                                – под низом там могут быть и кресты, но сверху должна быть хотя бы какая-то сраная vala
                                                                Ответить
                                                                • показать все, что скрытоВ RIA было четыре участника
                                                                  * Флеш
                                                                  * Сильверлайт
                                                                  * ДжаваФКС
                                                                  * JS

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

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

                                                                  Это можно
                                                                  Или wxLua
                                                                  https://sourceforge.net/p/wxlua/svn/HEAD/tree/trunk/wxLua/samples/minimal.wx.lua
                                                                  Ответить
                                                                  • показать все, что скрыто> Флеш
                                                                    – проприетарная дырявая технология, требующая отдельной инсталляции

                                                                    > Сильверлайт
                                                                    – проприетарная технология, требующая отдельной инсталляции. уверен, что тоже дырявая

                                                                    > ДжаваФКС
                                                                    – проприетарная технология, требующая отдельной инсталляции

                                                                    > JS
                                                                    – есть из коробки

                                                                    при этом, например,

                                                                    > инфрасктруктуры для запуска тесто

                                                                    https://smartbear.com/learn/automated-testing/unit-testing-of-flash-applications/

                                                                    > прочего менеджмента
                                                                    https://github.com/robinrodricks/awesome-actionscript3
                                                                    Ответить
                                                                    • показать все, что скрыто> JS
                                                                      - дырявая технология, которую пропиарили предварительно установив её в браузер. Причём тот браузер уже давно мёртв.

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

                                                                        потом можно и за жс браться
                                                                        Ответить
                                                                      • показать все, что скрыто> выпилить нативный JS из браузеров
                                                                        > чтобы заставить петушков пердолиться с его установкой
                                                                        > ради «способствованию конкуренции»

                                                                        Неплохая идея.
                                                                        Написал сайтец на VBS, изволь попердолься, установи его интерпретатор
                                                                        <script language="VBScript" >
                                                                        ..
                                                                        </script>

                                                                        Всё придумано до нас.

                                                                        PS> если кому надо быстро раскрыть спойлеры
                                                                        jQuery(".ajax").click() //проявляет сокрытое
                                                                        Ответить
                                                                        • показать все, что скрыто«VBScript» в «IE» был по умолчанию. Точнее, он был не в самом браузере, а установлен в системе и предоставлял интерфейс через «ActiveX», как и интерпретатор «JScript» (он, кстати, клал на стандарты «ECMAScript», поэтому его в наказание называют не «JavaScript», а «JScript»). Через «ActiveX» можно было устанавливать интерпретаторы других ЯП. А вот выпиливать «JScript» и «VBScript» было нежелательно, потому что что-нибудь микрософтовское сломается.

                                                                          Да, были сайты с «VBScript», которые можно было посмотреть только в «IE», потому что для других браузеров плагинов с интерпретатором «VBScript» не было.
                                                                          Ответить
                      • показать все, что скрытоЯ предлагаю твой анус ебать
                        Ответить
                  • показать все, что скрытоsh это не язык. это рас.
                    Ответить
                • показать все, что скрытоДавайте в жопу ебаться
                  Ответить
                • показать все, что скрытоНа нишу няшной пока смогли покуситься разве что кресты...

                  И то потому что они наполовину ей являются, а вторую половину можно отключить и не юзать.
                  Ответить
                  • показать все, что скрытоА на твой анус покушаюсь я
                    Ответить
                  • показать все, что скрытоС подачи «Борланда» в эту нишу пытался влезть «Object Pascal». Но не получилось, видимо из-за того, что к тому моменту уже много кода было написано на няшной.
                    Ответить
                    • показать все, что скрытоК моменту популяризации высокоуровневых ЯП на микрокомпах (PC и иже с ним) то есть в ранние 90-е, няшная еще не была там дефакто, и потому воевала там с паскалем, но броланд всё просрал.
                      Ответить
                      • показать все, что скрытоМне кажется, «Дельфи» было ошибкой. Они пытались популяризовать язык, прилепив формошлёпку, а в итоге стимулировали выпуск некачественных программ.

                        Кстати, такое же говно получилось с «Visual Basic», но «Микрософту» как-то после такого кошмара удалось остаться на плаву. И даже после выпуска «.Net».
                        Ответить
                        • показать все, что скрытоФормошлёпка отражала RAD тренд тех времен. Дельфи формошлёпствовал по той же причине, по какой у J2EE везде был XML: время было такое:)

                          У .NET тоже было формошлёпство (WinForms) и лишь в WPF его заменили хотя-бы на декларативку.

                          А у всего со словом "Basic" реноме уже было испорчено, так что увы:)
                          Ответить
                          • показать все, что скрытоBasic - это ужос не потому что бейсик - а потому что надо было писать много буков для простой задачи
                            Ответить
                          • показать все, что скрытопо-моему, на декстопе никакой проблемы в формошлёпстве нет
                            Ответить
                            • показать все, что скрытоВ дельфи, если отойти от возюканья объектов по форме мышкой, а ручками прописать их свойства, можно неплохо делать статичные окна. Да и динамически добавлять на форму элементы никто не запрещал.

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

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

                                В андроид студио ты хотя бы можешь писать XML.
                                Ответить
                                • показать все, что скрытоа что с резолюшеном? или ты про dpi scale? ну так эта херота не так уж давно появилась массово, расцвет дельфи её не застал)
                                  Ответить
                                  • показать все, что скрытоhttps://stackoverflow.com/questions/6569854/delphi-application-resolution-problem

                                    > Buttons generally have a fixed height and width.
                                    Хорошо будут выглядеть расстояния между кнопками в 30 px 1024x768 и 4K?

                                    А локализация кстати как будет?
                                    Ответить
                                    • показать все, что скрытово времена расцвета дульфей не было никакого 4K. проблемы соответственно не было тоже

                                      но вообще кое-что из поста на so должно намекать, например, generally,

                                      aligning to both [Top and Bottom] or both [Left and Right] should be reserved for controls that can be stretched,

                                      it is very common to assign both left and right anchor of edits - so that when the form is made wider (by user) then the fields are getting wider too и

                                      you could set a Minimum height
                                      Ответить
                        • показать все, что скрыто> а в итоге стимулировали выпуск некачественных программ

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

                    D тоже вполне может, если вырубить всякое говно.
                    Ответить
                    • показать все, что скрытоА у него с сишкой интероп из коробки бесплатный? не надо там никаково говна генерить?

                      А если ненужное отключить, то будет ли ди совсем бесплатным?
                      Ответить
                      • показать все, что скрытоБесплатным и унылым. Получится (хороший) макропроцессор для няшной.

                        Кресты с растом хоть какую-то альтернативу ручному управлению ресурсами предлагают.
                        Ответить
                        • показать все, что скрытоТогда зачем "D"?
                          Ответить
                          • показать все, что скрытоМакропроцессор хороший: считай все фишки Д в компайлтайме, плюс файлы читать можно.
                            Ответить
                          • показать все, что скрытоРежим без «gc» называют «better C». Значит, чем-то он лучше.

                            Будем смотреть, чем:
                            https://dlang.org/spec/betterc.html

                            Retained Features

                            Nearly the full language remains available. Highlights include:

                            • Unrestricted use of compile-time features
                            • Full metaprogramming facilities
                            • Nested functions, nested structs, delegates and lambdas
                            • Member functions, constructors, destructors, operating overloading, etc.
                            • The full module system
                            • Array slicing, and array bounds checking
                            • RAII (yes, it can work without exceptions)
                            • scope(exit)
                            • Memory safety protections
                            • Interfacing with C++
                            • COM classes and C++ classes
                            • assert failures are directed to the C runtime library
                            • switch with strings
                            • final switch
                            • unittest
                            • printf format validation

                            Вот затем.
                            Ответить
                            • показать все, что скрытоО, они таки RAII и scope завезли.
                              Ответить
                            • показать все, что скрыто>• Full metaprogramming facilities
                              Годно. Что, и AST можно троать?

                              > • Nested functions, nested structs,
                              ну такое

                              > delegates and lambdas
                              Ну кресты там кое-что могут тоже

                              >• Member functions, constructors, destructors, operating overloading, etc.
                              кресты

                              >• The full module system

                              Это годно и хорошо!!!

                              > array bounds checking
                              Если в комплайлтайме,то наверное можно сломать (вспомни паскаль). Если в рантайме, то это уже не си, Бо не бесплатно.

                              Потом мне лениво писать, но вижу, что есть какие-то симпатичности, но __почти__ все они есть в С++ (кроме модулей например)
                              Ответить
                              • показать все, что скрытоТам метапрограмминг через строки. В общем-то норм, этакий compile-time eval.
                                Ответить
                              • показать все, что скрыто>> array bounds checking
                                > Если в комплайлтайме,то наверное можно сломать (вспомни паскаль). Если в рантайме, то это уже не си, Бо не бесплатно.

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

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

                                  Чтобы проверить динамушню в компайлтайме, компилятору нужна скилльная доказушная махина вроде Coq на стероидах.
                                  Ответить
                            • показать все, что скрытоА чем «Nim» лучше «D»?
                              Ответить
                            • показать все, что скрыто> The full module system

                              – и в чём она full? в том, что просто есть модули в наличии?
                              Ответить
                            • показать все, что скрытоэто лучшее что они могли придумать "printf format validation"
                              Ответить
                        • показать все, что скрыто> Кресты с растом хоть какую-то альтернативу ручному управлению ресурсами предлагают.

                          У раста никаких прорывных идей по управлению ресурсами нет. Всё что там есть: калька с плюсов.

                          В Сишке есть __attribute__((cleanup)). И предвижу аргумент о том, что это гццизм.

                          Поцтеринг повсеместно использует его в systemd.

                          И ничего, никто не жалуется, все продолжают пихать это к себе в дистры.
                          Ответить
                          • показать все, что скрытоКогда MS пилит какую-то проприетарную хуйню типа SEH, то сразу это говно и не нужно.

                            А когда поцтеринг в своей ненужной хуйне использует какую-то гнусню, то это сразу заебис :)
                            Ответить
                            • показать все, что скрыто> поцтеринг в своей ненужной хуйне

                              Ты же сейчас сидишь на Дермиане? Попробуй отключить «ненужную хуйню»

                              Так вот в ней полмиллиона строк Сишки с гццизмами.

                              #define _cleanup_(f) __attribute__((cleanup(f)))
                              
                              https://github.com/systemd/systemd/search?q=_cleanup_
                              Ответить
                              • показать все, что скрыто#else
                                #define _cleanup_(f) // и так сойдет
                                Ответить
                              • показать все, что скрытоМне совсем не нравится поцтеринг, просто я не люблю писать против ветра: во всех менйстримных линуксах сейчас systemd, бороться с этим довольно бессмыслено

                                Можно конечно сидеть на слаке или девуане, ну так можно и на OpenBSD сидеть, но работать на нём будет сложнее
                                Ответить
                        • показать все, что скрыто> Кресты с растом хоть какую-то альтернативу ручному управлению ресурсами предлагают.

                          Вообще-то RAII в "better-C" вполне поддерживаются. Херню с рефкаунтингом в D наверняка можно намакроебить (намиксиноебить) как-нибудь, но я особо не вникал.

                          https://wiki.dlang.org/Memory_Management#Reference_Counting
                          > D does not provide automated support for reference counting.

                          > RefCounted provides limited support for reference counting; not for class types. Unlike C++ shared_ptr, it does not support multi-threading, weak pointers, or destructors. (See this forum thread.)

                          > Win32 COM programming uses the members AddRef() and Release() to maintain the reference counts.
                          Ответить
                      • показать все, что скрыто> А у него с сишкой интероп из коробки бесплатный? не надо там никаково говна генерить?

                        Надо хедеры переконвертировать или переписать. Или https://github.com/atilaneves/dpp взять.

                        А в плане вызова функций из сишки - вполне бесплатный. Если в рамках одного компилятора, можно статически линковать сишку с D и даже LTO врубить, и оно там что-то заоптимизирует.
                        Ответить
                        • показать все, что скрыто> Надо хедеры переконвертировать или переписать. Или https://github.com/atilaneves/dpp взять.

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

                          Причём и с сишной совместимостью, и с RAII и возможностью повышать уровень абстракций.
                          Ответить
                          • показать все, что скрытоА ты крестопарашные темплейтные либы с добавлением препроцессора где-то кроме крестоговна (или основанной на крестоговне срани с полной обратной совместимостью, типа Objective-C++) сможешь использовать? Вряд ли.
                            Ответить
                            • показать все, что скрыто> крестопарашные темплейтные либы с добавлением препроцессора где-то кроме крестоговна

                              Да. Всё что угодно можно обернуть в extern "C"

                              Главное чтобы API модуля было сишным (не бросало исключений, итд)
                              Ответить
                              • показать все, что скрыто> Да. Всё что угодно можно обернуть в extern "C"

                                И как ты будешь инстанцировать шаблоны не в крестах?
                                Ответить
                                • показать все, что скрытоШаблоны будут в кишках реализации.

                                  Сам хедерный интерфейс либы делают без шаблонов, исключений, итп.
                                  Ответить
                                  • показать все, что скрыто> Шаблоны будут в кишках реализации.

                                    Как ты себе это представляешь? В кишках реализации кого или чего? Тебе придется кресты в этот вот "другой" язык встроить, чтобы твой "другой" язык мог это говно понимать и как-то разворачивать, и система типов там должна быть крестосовместимой. И говнопрепроцессор родом из Си надо тоже встроить. А нахуя это тогда надо, если можно высрать новый стандарт крестоговна? Или там какой-нибудь "SuperObjective-C++"
                                    Ответить
                          • показать все, что скрытоВ последний раз на эту тему емнип он высказывался в духе «нахуя кресты, если есть жаба и шарп»
                            Ответить
                        • показать все, что скрыто>Надо хедеры переконвертировать или переписать

                          Ну так это же сразу нахуй, не? Кто мне будет с каждой новой версией ядра, с каждой версией SDK и библиотеки перекомпилировать все хедеры?

                          > https://github.com/atilaneves/dpp

                          Воот, это уже интереснее.
                          Ответить
                          • показать все, что скрытоМожно на основе шланга сделать конвертер. В конце-концов у няшной не такие уж и сложные типы данных.
                            Ответить
                            • показать все, что скрытоМожно, но тогда это нужно включить в поставку языка, чтобы работало из коробки
                              Ответить
                            • показать все, что скрытоРазработчики «Фрипаскаля» для поддержки «iOS» конвертер хедеров из «Objective-C» в «Object Pascal» написали на... «PHP»:
                              https://govnokod.ru/25226#comment447183

                              Там хедеры оказались предсказуемыми.

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

                            Такая питушня с любым ЯП, кроме сишки. А на некоторых платформах со всеми ЯП, кроме «Objective-C». А есть ещё платформы, на которых такое со всеми ЯП, кроме «Java» и совместимых с ним.

                            Но ведь не все программы ограничиваются этими языками. Кто-то эту питушню для других ЯП поддерживает.
                            Ответить
                            • показать все, что скрыто> поддерживает

                              Бинарная совместимость рулит. Один раз написал и юзай годами. А новые фишки могут подождать, тем более они не всегда нужны.
                              Ответить
                            • показать все, что скрыто>Такая питушня с любым ЯП, кроме сишки.
                              С++ понимает сишные хедеры

                              >А на некоторых платформах со всеми ЯП, кроме «Objective-C».
                              На ObjC в 99.999991% случаев пишу под Apple, а уж они как-нить сделают мне API на свифте.


                              >. А есть ещё платформы, на которых такое со всеми ЯП, кроме «Java» и совместимых с ним.

                              Java компилируется в код под JVM, а он доступен из Kotlin, Groovy и пр. Такой проблемы нет.
                              Ответить
                          • показать все, что скрыто> Ну так это же сразу нахуй, не?

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

                                В D прямолинейной замены сишному препроцессору нет, и не всякие грязные трюки можно конвертнуть из сишного препроцессора, учитывая еще что препроцессор оперирует кусками кода, а сшитый кусок кода через препроцессор уже не всегда будет корректным кодом на D.
                                Ответить
                                • показать все, что скрытоЯ чисто прикладной питуз

                                  У меня какой-то код на сишечке под win32api, под /usr/include/, под что угодно.

                                  Я хочу переписать его на "D".

                                  А мне написано в твоем dpp:

                                  >Known project headers whose translations produce D code that compiles:

                                  [реально список хедеров тут]

                                  > Compilation however doesn't guarantee they work as expected and YMMV. Please consult the examples.

                                  Я и думаю: "а зачем мне что-то такое непонятное что еще может и не заработать?"
                                  Ответить
                                  • показать все, что скрыто> Я и думаю: "а зачем мне что-то такое непонятное что еще может и не заработать?"

                                    Ну тогда можешь всегда сидеть на борланд цепепе, зачем тебе обновлять компилятор, если на новом что-то может не заработать
                                    Ответить
                                    • показать все, что скрытоКомпиляторы обычно обратно совместимы.
                                      Я могу последним gcc собрать код под c99
                                      Ответить
                                      • показать все, что скрыто> Компиляторы обычно обратно совместимы.

                                        В борланд C++ наверняка есть свои говнорасширения, которых в других компиляторах нет. Так что лучше сиди в борланд C++ и не рыпайся
                                        Ответить
                                        • показать все, что скрытоСмена компилятора -- штука опасная, но всё таки бОльшая часть сишного кода от компиялтора не зависит.

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


                                          > Not currently able to translate Linux kernel headers.
                                          > Not currently able to translate Linux kernel headers.
                                          > Not currently able to translate Linux kernel headers.

                                          Oops
                                          Ответить
                                          • показать все, что скрыто>> Not currently able to translate Linux kernel headers.

                                            А тебе часто надо "Linux kernel headers" импортировать, да?

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

                                              Утверждение не является истинным.
                                              В «C++» например это возможно. Именно поэтому я за «C++».
                                              Ответить
                                              • показать все, что скрыто> В «C++» например можно. Именно поэтому я за «C++».

                                                Нет. Напиши например декларацию функции "void test(char a[restrict 10]);" и попробуй ее импортировать в крестах
                                                Ответить
                                                • показать все, что скрыто#define restrict

                                                  С точки зрения вызывающего кода* сёмантика одинаковая.

                                                  * на вызывающей стороне restrict разве что подсказывает программисту, что буфера нежелательно с чем-то пересекать.
                                                  Ответить
                                                • показать все, что скрыто> попробуй ее импортировать в крестах
                                                  #define restrict __restrict__
                                                  Скоро завезут в Стандарт.

                                                  На два порядка меньше пердолинга чем в «D», где хедеры надо коконевертировать говнотулзой с шитхаба.
                                                  Ответить
                                                  • показать все, что скрытоА если у меня там массив char a[sizeof('1')]; объявлен?
                                                    Ответить
                                                  • показать все, что скрыто"__restrict__" - это экстеншен. В стандарте нет. К тому же хуйня типа "void test(char a[__restrict__ 10]);" в крестах не заработает.
                                                    Ответить
                                                    • показать все, что скрыто> это экстеншен.

                                                      Ахаха. Это говорит человек, который постоянно топит за всякие нестандартные гццизмы.
                                                      https://gcode.space/#!/search?q=__attribute__&user=j123123

                                                      А __restrict есть даже у мелкомягких.

                                                      > В стандарте нет
                                                      Скоро завезут.
                                                      Ответить
                                                      • показать все, что скрытоА как в стандарт завести одинаковость с сишкой для "char a[sizeof('1')]" ?
                                                        Ответить
                                                        • показать все, что скрыто> одинаковость с сишкой для "char a[sizeof('1')]"

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

                                                          Реально пока что я вижу только демагогию, призванную отвлечь от уёбищности «D» и чудовищный пердолинг для интеропа с «Си».
                                                          Ответить
                                                          • показать все, что скрыто> Приведи реальный пример хедеров использующих такое говно.

                                                            Я могу реальный хедер такой написать, чтобы детектировать факт использования крестопомойного говна, и глючить при этом. Чтобы у программистов на крестоговне срака пригорала )))
                                                            Ответить
                                                            • показать все, что скрытоА я могу написать -ansi или -std=c89 чтобы детектировать факт использования ньюскульной параши.

                                                              Многие Сишные компиляторы (допустим TCC) не поддерживают некоторых вещей из C99.

                                                              Так можно доебываться до крестов, и выяснить что Сишка несовместима даже сама с собой.
                                                              Ответить
                                                          • показать все, что скрытоВ хедер можно еще поназапихивать каких-нибудь inline функций, а в inline функциях можно сделать например VLA, которого в крестоговне нет.
                                                            Ответить
                                                      • показать все, что скрытоА «int pituh[static 3]» в крестах бывает?
                                                        Ответить
                                                  • показать все, что скрыто> , где хедеры надо коконевертировать говнотулзой с шитхаба.


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

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

                                                      Берите лучше говнотулзу с шитхаба и конвертируйте ею.

                                                      Она нихуя не гарантирует, но это лучше чем нормальный импорт хедеров из -std=c89.
                                                      Ответить
                                                • показать все, что скрыто> restrict
                                                  а зачмне мне в хедере рестрикт?
                                                  Ответить
                                                  • показать все, что скрыто> а зачмне мне в хедере рестрикт?

                                                    Тебе компилятор варнинг написать может, если ты в такую функцию указатель на слишком короткий "массив" передавать будешь
                                                    Ответить
                                              • показать все, что скрытоКстати, в сишном препроцессоре есть т.н. implementation-defined behavior.
                                                https://gcc.gnu.org/onlinedocs/cpp/Implementation-defined-behavior.html
                                                И поэтому даже нет строгих гарантий, что сишный хедер корректно прочитается другой версией компилятора (препроцессора)
                                                Ответить
                                            • показать все, что скрыто>А тебе часто надо "Linux kernel headers" импортировать, да?

                                              Всё не нужно, что сломалось
                                              Всё не нужно, чего нет

                                              > не всякую хуйню из Си хедера в принципе можно автоматически импортировать в другой язык?

                                              В С++ можно
                                              Ответить
                                              • показать все, что скрыто> В С++ можно

                                                По второму кругу уже пошло обсуждение? :)
                                                Ответить
                                              • показать все, что скрыто> В С++ можно

                                                Выше мы обсудили уже это. Нельзя.

                                                Даже между двумя Си-компиляторами не всегда можно т.к. в препроцессоре есть "implementation-defined behavior"
                                                Ответить
                                                • показать все, что скрытоhttps://govnokod.ru/27606#comment659315
                                                  Ответить
                                                • показать все, что скрыто> Нельзя.

                                                  И тем не менее на практике все успешно это делают.

                                                  Возможно просто не в курсе что j123123 запретил.
                                                  Ответить
                                                  • показать все, что скрыто> И тем не менее на практике все успешно это делают.

                                                    На практике много кто много чего делает, но не всегда это работает. В крестах и в Си например есть разница в правилах type punning, и макрос, использующий этот type punning через юнионы будет некорректен в крестовом коде т.к. там это UB в отличии от сишки. НО и в сишке это когда-то тоже было UB-ом в какой-то версии стандарта, емнип.
                                                    Ответить
                                                    • показать все, что скрыто> там это UB в отличии от сишки. НО и в сишке это когда-то тоже было UB-ом в какой-то версии стандарта, емнип

                                                      Ну то есть описывается какой-то частный случай, когда даже нет совместимости между разными стандартами самой Сишки!

                                                      И на этом основании делается что Кресты вот говно.

                                                      Ответить
                • показать все, что скрыто> всего лишь абстракты

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

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

                    Есть такая херня - V-USB, так вот, написана она на ассемблере, работает только с определенными частотами кварца (и с RC осцилятором на 12.8 MHz), притом CRC поддерживается лишь на 18 MHz

                    https://github.com/obdev/v-usb/blob/7a28fdc685952412dad2b8842429127bc1cf9fa7/usbdrv/usbdrvasm.S#L365
                    
                    #if USB_CFG_CHECK_CRC   /* separate dispatcher for CRC type modules */
                    #   if USB_CFG_CLOCK_KHZ == 18000
                    #       include "usbdrvasm18-crc.inc"
                    #   else
                    #       error "USB_CFG_CLOCK_KHZ is not one of the supported rates for USB_CFG_CHECK_CRC!"
                    #   endif
                    #else   /* USB_CFG_CHECK_CRC */
                    #   if USB_CFG_CLOCK_KHZ == 12000
                    #       include "usbdrvasm12.inc"
                    #   elif USB_CFG_CLOCK_KHZ == 12800
                    #       include "usbdrvasm128.inc"
                    #   elif USB_CFG_CLOCK_KHZ == 15000
                    #       include "usbdrvasm15.inc"
                    #   elif USB_CFG_CLOCK_KHZ == 16000
                    #       include "usbdrvasm16.inc"
                    #   elif USB_CFG_CLOCK_KHZ == 16500
                    #       include "usbdrvasm165.inc"
                    #   elif USB_CFG_CLOCK_KHZ == 18000
                    #       include "usbdrvasm18.inc"
                    #   elif USB_CFG_CLOCK_KHZ == 20000
                    #       include "usbdrvasm20.inc"
                    #   else
                    #       error "USB_CFG_CLOCK_KHZ is not one of the supported rates!"
                    #   endif

                    Так даже на сишке не сделать.
                    Ответить
                    • показать все, что скрытоУ асемблеров традиционно сильный препроцессор, местами сильнее сишного
                      Ответить
                    • показать все, что скрыто> на сишке не сделать

                      Ну всё ещё можно откатиться на массив в секции кода, заполненный макросами/шаблонами.

                      К слову о том, что сишка с крестами даже в этой ситуации не теряют контроль. Хотя уже и не так удобно как на асме.
                      Ответить
                      • показать все, что скрыто> Ну всё ещё можно откатиться на массив в секции кода, заполненный макросами/шаблонами.

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

                  Только вот в FPGA никакого "машинного кода" в привычном смысле вообще нет, там есть конфигурируемые связи между хренями, и сами хрени могут быть конфигурируемыми, есть разные архитектуры FPGA, для общего представления можешь почитать про это тут https://marsohod.org/11-blog/265-fpga

                  А еще есть всякие dataflow-архитектуры, где тоже нет никакого "машинного кода" в привычном смысле.
                  Ответить
                  • показать все, что скрытоНу зачем сразу с козырей зашёл?

                    Тут ведь даже про классические процы есть что обсудить.
                    Ответить
                    • показать все, что скрыто> классические процы

                      Замена сишке должна:
                      * Иметь бесплатный интероп с сишными API
                      * Давать тот же уровень контроля над расположением данных в памяти и их жизненным циклом
                      * Позволять отключать какие-то проверки в рантайме

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

                        «Тот же» не нужен. Нужно больше контроля.

                        Например массивы поудобнее.
                        Или мудификатор, который позволит использовать memcmp на struct.
                        Ответить
                      • показать все, что скрыто> бесплатный интероп с сишными API
                        > Позволять отключать какие-то проверки в рантайме
                        Не связано именно с языком, это особенности компиляции.

                        > тот же уровень контроля над расположением
                        А вот это уже может проявляться в коде, да.

                        Можно под один и тот же язык или диалекты написать разные компиляторы. Например, на JS можно писать веб-интерфейс, сервер (с доступом к ФС, коду на крестах и т.п.), на JScript писать админские скрипты, а на JScript.NET - десктопные приложения. И даже микроко-ко-контроллеры!
                        Ответить
                        • показать все, что скрыто>Не связано именно с языком, это особенности компиляции.
                          Я про возможность подключить .h файл

                          А про второе не понял. Как это не связано?
                          Отключи мне проверку размера массивов в джаве
                          Ответить
                          • показать все, что скрыто> Я про возможность подключить .h файл
                            А я думал, что бинарник.
                            Хотя, почему бы не прикрутить к компилятору компилятор сишки. Всё лучше, чем одни и те же библиотеки переписывать на каждый новый язык.

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

                            > Отключи мне проверку размера массивов в джаве
                            Не могу. Джава не даёт возможности её ни включить, ни выключить.
                            Чтобы джава так смогла, надо, скажем, добавить туда фигурные скобки для индексации непроверяемых массивов.
                            Ответить
                  • показать все, что скрытоПод FPGA можно написать библиотеку node-fpga и писать устройство в терминах этой библиотеки.
                    Ответить
                    • показать все, что скрытоДа... но экмаскрипт там будет, по сути, препроцессором для описания какой-то декларативной штуки, которая потом и пойдёт на конпеляцию.

                      От самого экмаскрипта там мало что пригодится. Даже понятия "циклов" и "условий" очень плохо ложатся на FPGA, что уж говорить про "объекты" и "функции". Их можно сэмулировать, но чтобы получился хороший код придётся о них забыть и думать другими понятиями.

                      З.Ы. Кстати, та же самая проблема начинается у программистов, которые начали что-то ваять на кобенаторах в факторио.
                      Ответить
                      • показать все, что скрытоБиблиотека сразу может высирать бинарник, хотя аналог препроцессора просто останется внутри.

                        Объекты и функции будут использоваться в реализации библиотеки. Можно напердолить отложенную питушню вроде boost::lambda или boost::phoenix или монадических конструкций, когда h(f(x), g(y)) больше похоже на AST, чем на результат выражения.

                        Вообще, объектами могут быть блоки, которые задаёт пользователь. Дальше пины могут быть полями или даже методами. Соединение пинов - вызов метода: block1.clock(gen.out).

                        А циклы - они и в ЯП для программируемой логики есть. Хотя, можно навинтить аналог слайсов в python или numpy.
                        Скажем, bus['pin*'](objects['*'].clock) или что-то в этом роде.
                        Ответить
                        • показать все, что скрыто> Библиотека сразу может высирать бинарник

                          Вот с этим сейчас огромные проблемы...

                          Во-первых библиотеки с описаниями чипов проприетарные, во-вторых сам синтезатор не особо уютно себя чуствует даже на 12 ядрах (да, там брутфорс, вореции и кнопка "мне повезёт" для смены сида). Пилить это всё на жс -- это прям какая-то утопия.

                          А JS -> VHDL/Verilog запилить вполне возможно, я думаю.
                          Ответить
                          • показать все, что скрыто> Во-первых библиотеки с описаниями чипов проприетарные, во-вторых сам синтезатор не особо уютно себя чуствует даже на 12 ядрах

                            ПЛИСатор Синтезатор.
                            Ответить
                          • показать все, что скрыто> Пилить это всё на жс
                            Можно запилить на C++ и вызывать под Node.js. А на JS только генерировать питушню для крестов.
                            Пользователь делает pitux install node-fpga и пишет на JS.

                            Ну а для вебтушни можно только высирать JSON, эквивалентный коду на VHDL/Verilog. Желающие могут компилировать на сервере или портировать крестокод, чтобы считать на клиенте. Это только Я-с д-н тормозит без толку, а тут будет тормозить с пользой.
                            Ответить
                            • Я стал ласкать их. У них, был свой вкус. Не такой, как у Наташкиных, и не такой, как у других женщин, а особый, только ей принадлежащий, волшебный вкус.
                              Ответить
                • показать все, что скрытоДа! Поддерживаю.
                  Ответить
      • показать все, что скрыто`type` это определение нового типа.
        type Newstring = string; //алиас
        type Language = 'JS' | 'Python'; //енум литерал тайпов
        type IDE = 'WebStorm' | 'VIM';
        type Editor = 'Notepad' | 'VIM';
        type IDEWithEditorCaps = IDE & Editor; //пересечение
        
        function foo(ide: IDEWithEditorCaps) {
            // ide может быть только VIM
        }



        Это одна из мощных фишек TS
        Ответить
    • показать все, что скрытокогда допилю юнионы и интерсекшини - тогда вы узрите круть
      Ответить
    • показать все, что скрытоя верно понимаю, что осетинская смегма сломала регалку Престижитатора Сауронера?
      Ответить
      • показать все, что скрытоЛет 8-10 назад. Айдишники питухов - 5xxx.
        Ответить
      • показать все, что скрытоНе регалку. Вот вскрытие покровов:
        https://govnokod.ru/22180#comment371932
        Ответить
        • Но настало время второго пришествия Бога Гомосексуализма, я воззываю всех покаяться и принять организованный гомосексуализм!
          Ответить
      • показать все, что скрытоВот накидал питушню для очищения от смегмы:
        // ==UserScript==
        // @name         GK-settings
        // @namespace    http://tampermonkey.net/
        // @version      0.1
        // @description  no smegma
        // @author       1024--
        // @match        *://govnokod.ru/*
        // @match        *://www.govnokod.ru/*
        // @icon         https://www.google.com/s2/favicons?domain=govnokod.ru
        // @grant        none
        // ==/UserScript==
        
        (function() {
            'use strict';
        
            if (location.pathname == '/comments') return;
        
            $.gk('comments:gkhidden>show');
        
            $.gk('comments').each(function () {
                if (/^(Pilot|Luna|Denya|Mixa|Nemo|Fedka|Natashka|fed|Semen)\d+$/.test($(this).gk('@name')))
                    $(this).remove();
            });
        })();


        Перед установкой этого скрипта надо установить скрипт https://github.com/1024--/govnokod.ru-userscripts/blob/master/gquery.user.js.
        Ответить
        • У меня ещё аккаунты есть, успокойся
          Ответить
        • показать все, что скрытоКак ты умудряешься писать на таком допотомпом JSе?
          Почему jQuery вместо обычого API к дому? Почему (function() вместо стрелочки? Почему равняется два, а не три?
          Ответить
          • показать все, что скрыто1. Потому, что gQuery, а он идёт как надстройка над jQuery
            2. Привык. Ну и $(this)
            3. Привык. Да и всё равно типы одинаковые в этом случае.
            Ответить
            • Как тебе такое?
              Ответить
              • показать все, что скрытоПоследний раз отвечаю уёбку: просто добавлю ещё уёбков в игнор.
                Потом добавлю нормализацию и скрипт Пи, который выпиливает говна без знания учётки :)

                // ==UserScript==
                // @name         GK-settings
                // @namespace    http://tampermonkey.net/
                // @version      0.1
                // @description  no smegma
                // @author       1024--
                // @match        *://govnokod.ru/*
                // @match        *://www.govnokod.ru/*
                // @icon         https://www.google.com/s2/favicons?domain=govnokod.ru
                // @grant        none
                // ==/UserScript==
                
                (function() {
                    'use strict';
                
                    if (location.pathname == '/comments') return;
                
                    $.gk('comments:gkhidden>show');
                
                    const pituxes = [
                        'REDNES', '1234', 'cdf_easy', 'lexa', 'Cyanide', 'pyshpysh', 'an0', 'kit', 'avamana', 'bloby',
                        'Maakut', 'shureg', 'gg_', 'breathe', 'newmindcore', 'smac', 'deniamnet', 'GoenokoderJr', 'begmst'
                    ];
                    var pituxes_ = {};
                    pituxes.forEach(p => {pituxes_[p] = true; });
                
                    $.gk('comments').each(function () {
                        const name = $(this).gk('@name');
                        if (/^(Pilot|Luna|Denya|Mixa|Nemo|Fedka|Natashka|fed|Semen)\d+$/.test(name) || name in pituxes_)
                            $(this).remove();
                    });
                })();


                Ня, пока!
                Ответить
                • Нашёл чем пугать
                  Ответить
                • показать все, что скрытоспасибо хоть const и forEach со стрелкой)

                  Блин, я реально не могу читать pre-ES6 джаваскрипт. Это наверное как госту дать pre-11 кресты
                  Ответить
                  • показать все, что скрытоЭто тред уняка. Не стоит продолжать здесь отвечать.
                    Ответить
                  • показать все, что скрыто> Блин, я реально не могу читать pre-ES6 джаваскрипт

                    То ли дело ES6нутый йажа-код с синаксическим сахаром, классами, extends, super и прочей оопушнёй.
                    class ClassWithPrivateField {
                      #privateField;
                    
                      constructor() {
                        this.#privateField = 42;
                      }
                    }
                    
                    class SubClass extends ClassWithPrivateField {
                      #subPrivateField;
                    
                      constructor() {
                        super();
                        this.#subPrivateField = 23;
                      }
                    }
                    Ответить
                • показать все, что скрытоМожно на NGK позабанивать, а потом из local storage извлечь хуйню. У меня вот:
                  ignoredUsers:"{"51":"cecilie","287":"bugotrep","397":"grimskin","462":"vladimir.loshchin","614":"Acid Beast","617":"begmst","926":"comfly","1027":"GovnocoderJr","1060":"deniamnet","1130":"smac","1146":"newmindcore","1205":"breathe","1273":"gg_","1331":"shureg","1412":"MaaKut","1566":"bloby","1697":"avamana","1703":"kit","1711":"an0","1717":"pyshpysh","1742":"Cyanide","1762":"lexa","1785":"cdf_easy","1788":"1234","1849":"REDNES","3336":"Kayfolom","5487":"Mixa830","5488":"Denya795","5489":"Denya19","5490":"Pilot418","5491":"Luna250","5493":"Denya570","5494":"fed190","5495":"Mixa977","5496":"Natashka615","5497":"Natashka83","5498":"Denya962","5499":"Semen569","5500":"Nemo781","5501":"Denya254","5502":"Pilot239","5503":"Nemo407","5504":"Semen477","5505":"Pilot367","5506":"Denya902","5507":"Fedka75","5508":"fed655","5509":"Fedka776","5510":"Nemo788","5511":"Nemo553","5512":"Luna629","5513":"Natashka769","5514":"Denya459","9581":"Chupacabramiamor","10247":"ajtkulov","12930":"Sandwich","67781":"guest3","67823":"CBuHOKYP"}"
                  Ответить
    • показать все, что скрытоГологуб, это ты?
      Ответить
    • показать все, что скрытоГде смегма? Ни одного уёбка не вижу!
      Заодно и все ответившие им скрываются :)

      // ==UserScript==
      // @name         GK-settings
      // @namespace    http://tampermonkey.net/
      // @version      0.1
      // @description  no smegma
      // @author       1024--
      // @match        *://govnokod.ru/*
      // @match        *://www.govnokod.ru/*
      // @icon         https://www.google.com/s2/favicons?domain=govnokod.ru
      // @grant        none
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          if (location.pathname === '/comments') return;
      
          $.gk('comments:gkhidden>show');
      
          const pituxes = [
              'REDNES', '1234', 'cdf_easy', 'lexa', 'Cyanide', 'pyshpysh', 'an0', 'kit', 'avamana', 'bloby',
              'MaaKut', 'shureg', 'gg_', 'breathe', 'newmindcore', 'smac', 'deniamnet', 'GoenokoderJr', 'begmst',
              'grimskin', 'Sandwich', 'ajtkulov'
          ];
          var pituxes_ = {};
          pituxes.forEach(p => {pituxes_[p] = true; });
      
          $.gk('comments').each(function () {
              const name = $(this).gk('@name');
              if (name === 'fed05') return;
              if (/^(Pilot|Luna|Denya|Mixa|Nemo|Fedka|Natashka|fed|Semen)\d+$/.test(name) || name in pituxes_)
                  $(this).remove();
          });
      })();
      Ответить
    • показать все, что скрытоСпасибо j123123 за набор смегмяков. Спасибо смегмякам, исправил баг в gQuery и могу удалять только их комментарий, но не комментарии тех, кто отвечает смегмякам.

      // ==UserScript==
      // @name         GK-settings
      // @namespace    http://tampermonkey.net/
      // @version      0.2
      // @description  no smegma
      // @author       1024--
      // @match        *://govnokod.ru/*
      // @match        *://www.govnokod.ru/*
      // @icon         https://www.google.com/s2/favicons?domain=govnokod.ru
      // @grant        none
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          if (location.pathname === '/comments') return;
      
          $.gk('comments:gkhidden>show');
      
          const pituxes = [
              'REDNES', '1234', 'cdf_easy', 'lexa', 'Cyanide', 'pyshpysh', 'an0', 'kit', 'avamana', 'bloby',
              'MaaKut', 'shureg', 'gg_', 'breathe', 'newmindcore', 'smac', 'deniamnet', 'GoenokoderJr', 'begmst',
              'grimskin', 'Sandwich', 'ajtkulov', 'cecilie', 'bugotrep', 'vladimir.loshchin', 'Acid Beast',
              'comfly', 'GovnocoderJr', 'Kayfolom', 'Chupacabramiamor', 'guest3', 'CBuHOKYP'
          ];
          var pituxes_ = {};
          pituxes.forEach(p => {pituxes_[p] = true; });
      
          $.gk('comments').each(function () {
              const name = $(this).gk('@name');
              if (name === 'fed05') return;
              if (/^(Pilot|Luna|Denya|Mixa|Nemo|Fedka|Natashka|fed|Semen)\d+$/.test(name) || name in pituxes_)
                  $(this).gk('container').remove();
          });
      })();
      Ответить
      • показать все, что скрытоА фед ноль пять чем особенный?
        Ответить
      • показать все, что скрытоОбновление списка
        ignoredUsers:"{"51":"cecilie","287":"bugotrep","397":"grimskin","462":"vladimir.loshchin","581":"anycolor","614":"Acid Beast","617":"begmst","926":"comfly","1027":"GovnocoderJr","1054":"Novi4oK","1060":"deniamnet","1130":"smac","1146":"newmindcore","1205":"breathe","1273":"gg_","1331":"shureg","1412":"MaaKut","1566":"bloby","1577":"kir_rik","1697":"avamana","1699":"Aligan","1703":"kit","1711":"an0","1717":"pyshpysh","1742":"Cyanide","1762":"lexa","1785":"cdf_easy","1788":"1234","1849":"REDNES","1887":"firefred","2083":"utinger","2535":"jo0o00nyy","3062":"andrewiv","3087":"ganzzz","3336":"Kayfolom","5487":"Mixa830","5488":"Denya795","5489":"Denya19","5490":"Pilot418","5491":"Luna250","5493":"Denya570","5494":"fed190","5495":"Mixa977","5496":"Natashka615","5497":"Natashka83","5498":"Denya962","5499":"Semen569","5500":"Nemo781","5501":"Denya254","5502":"Pilot239","5503":"Nemo407","5504":"Semen477","5505":"Pilot367","5506":"Denya902","5507":"Fedka75","5508":"fed655","5509":"Fedka776","5510":"Nemo788","5511":"Nemo553","5512":"Luna629","5513":"Natashka769","5514":"Denya459","6334":"borius","7044":"Pifagor","8243":"potapuff","9581":"Chupacabramiamor","10247":"ajtkulov","12930":"Sandwich","67781":"guest3","67823":"CBuHOKYP"}"
        Ответить
        • показать все, что скрытоВообще можно выпилить ненужные "регулярки", оставив только список имен
          // ==UserScript==
          // @name         GK-settings
          // @namespace    http://tampermonkey.net/
          // @version      0.2
          // @description  no smegma
          // @author       1024--, j123123
          // @match        *://govnokod.ru/*
          // @match        *://www.govnokod.ru/*
          // @icon         https://www.google.com/s2/favicons?domain=govnokod.ru
          // @grant        none
          // ==/UserScript==
          
          (function() {
              'use strict';
          
              if (location.pathname === '/comments') return;
          
              $.gk('comments:gkhidden>show');
          
              const pituxes = [
          'cecilie',
          'bugotrep',
          'grimskin',
          'vladimir.loshchin',
          'anycolor',
          'Acid Beast',
          'begmst',
          'comfly',
          'GovnocoderJr',
          'Novi4oK',
          'deniamnet',
          'smac',
          'newmindcore',
          'breathe',
          'gg_',
          'shureg',
          'MaaKut',
          'bloby',
          'kir_rik',
          'avamana',
          'Aligan',
          'kit',
          'an0',
          'pyshpysh',
          'Cyanide',
          'lexa',
          'cdf_easy',
          '1234',
          'REDNES',
          'firefred',
          'utinger',
          'jo0o00nyy',
          'andrewiv',
          'ganzzz',
          'Kayfolom',
          'Mixa830',
          'Denya795',
          'Denya19',
          'Pilot418',
          'Luna250',
          'Denya570',
          'fed190',
          'Mixa977',
          'Natashka615',
          'Natashka83',
          'Denya962',
          'Semen569',
          'Nemo781',
          'Denya254',
          'Pilot239',
          'Nemo407',
          'Semen477',
          'Pilot367',
          'Denya902',
          'Fedka75',
          'fed655',
          'Fedka776',
          'Nemo788',
          'Nemo553',
          'Luna629',
          'Natashka769',
          'Denya459',
          'borius',
          'Pifagor',
          'potapuff',
          'Chupacabramiamor',
          'ajtkulov',
          'Sandwich',
          'guest3',
          'CBuHOKYP'
              ];
              var pituxes_ = {};
              pituxes.forEach(p => {pituxes_[p] = true; });
          
              $.gk('comments').each(function () {
                  const name = $(this).gk('@name');
                  if (name in pituxes_)
                      $(this).gk('container').remove();
              });
          })();
          Ответить
          • показать все, что скрытоИнтересно, почему у него обострения с такой периодичностью? В отпуске заняться нечем?
            Ответить
          • показать все, что скрытоСпасибо, установил!
            Ответить
            • показать все, что скрытоВот еще вореант с вайтлистом, на всякий случай
              // ==UserScript==
              // @name         GK-settings_whitelist
              // @namespace    http://tampermonkey.net/
              // @version      0.1
              // @description  no smegma
              // @author       1024--, j123123
              // @match        *://govnokod.ru/*
              // @match        *://www.govnokod.ru/*
              // @icon         https://www.google.com/s2/favicons?domain=govnokod.ru
              // @grant        none
              // ==/UserScript==
              
              (function() {
                  'use strict';
              
                  if (location.pathname === '/comments') return;
              
                  $.gk('comments:gkhidden>show');
              
                  const not_pituxes = [
              '1024--',
              '3.14159265',
              'ABryCTOBCKuu_nemyx',
              'ASD_77',
              'bormand',
              'CHayT',
              'defecate-plusplus',
              'defecatinho',
              'Desktop',
              'gost',
              'guest6',
              'HACTEHbKA',
              'inkanus-gray',
              'inkanusinho',
              'j123123',
              'JaneBurt',
              'JloJle4Ka',
              'MOPCKOu_nemyx',
              'nepeKamHblu_nemyx',
              'PE4HOu_nemyx',
              'PolinaAksenova',
              'roman-kashitsyn',
              'rotoeb', // ???
              'ru66oH4uk',
              '[email protected]'
                  ];
                  var not_pituxes_ = {};
                  not_pituxes.forEach(p => {not_pituxes_[p] = true; });
              
                  $.gk('comments').each(function () {
                      const name = $(this).gk('@name');
                      if (!(name in not_pituxes_))
                          $(this).gk('container').remove();
                  });
              })();

              можно дополнять.
              Ответить
              • показать все, что скрытоЗабавно, что в списке нет Страйкера.
                Ответить
              • показать все, что скрытоАХАХАХАХА
                Ответить
              • показать все, что скрытоМне кажется, вот эти вот три вопросительных знака в коде не совсем уместны. Флудом я не занимаюсь уже года три-четыре, а когда агитирую за ненавидимый вами PHP, всегда привожу аргументы.
                Ответить
              • показать все, что скрытоВот пока малость расширил список
                '1024--',
                '3.14159265',
                '3_dar',
                '3EHuTHblu_nemyx',
                '3oJIoTou_xyu',
                'ABryCTOBCKuu_nemyx',
                'Antervis',
                'ASD_77',
                'bormand',
                'CHayT',
                'defecate-plusplus',
                'defecatinho',
                'Desktop',
                'DypHuu_niBEHb,
                'Fike',
                'gologub',
                'gost',
                'gostinho',
                'guest6',
                'HACTEHbKA',
                'inkanus-gray',
                'inkanusinho',
                'j123123',
                'JaneBurt',
                'JloJle4Ka',
                'MOPCKOu_nemyx',
                'nepeKamHblu_nemyx',
                'PE4HOu_nemyx',
                'PolinaAksenova',
                'roman-kashitsyn',
                'rotoeb',
                'ru66oH4uk',
                '[email protected]',
                'Staatssicherheit',
                'Tallybahn',
                'vistefan',
                'striker',
                'admin'
                Ответить
                • показать все, что скрытоГлавное не перепутать списки местами...
                  Ответить
                • Еще обновление белого списка
                  '1024--',
                  '3.14159265',
                  '3_dar',
                  '3EHuTHblu_nemyx',
                  '3oJIoTou_xyu',
                  'ABryCTOBCKuu_nemyx',
                  'admin',
                  'Antervis',
                  'ASD_77',
                  'bormand',
                  'CHayT',
                  'cKpuna4',
                  'COPOKA',
                  'defecate-plusplus',
                  'defecatinho',
                  'Desktop',
                  'Dummy00001',
                  'DypHuu_niBEHb',
                  'Fike',
                  'gologub',
                  'gost',
                  'gostinho',
                  'guest6',
                  'HACTEHbKA',
                  'inkanus-gray',
                  'inkanusinho',
                  'j123123',
                  'JaneBurt',
                  'JloJle4Ka',
                  'kegdan',
                  'MOPCKOu_nemyx',
                  'nepeKamHblu_nemyx',
                  'npopa6',
                  'PE4HOu_nemyx',
                  'PolinaAksenova',
                  'roman-kashitsyn',
                  'rotoeb',
                  'ru66oH4uk',
                  '[email protected]',
                  'Staatssicherheit',
                  'striker',
                  'Tallybahn',
                  'vistefan',
                  'wvxvw',


                  много всяких фаек еще можно подобавлять, типа каких-то там GoGovno, LinuxGovno, KotlinGovno, всяких там питухов и прочей такой хуйни, но мне малость лень. Тем более что там вполне может быть пароль 123
                  Ответить
                  • Пора уже нагитхаб.
                    Ответить
                    • Можешь разместить у себя в гитхабе вместе со всякими там говнокодовыми скриптами, лицензию на этот белый список предлагаю выбрать WTFPL
                      Ответить
                  • что это за белый список с rotoeb'ом?
                    Ответить
                  • и где Тарас?
                    Ответить
                  • > roman-kashitsyn

                    Можешь удалить и сэкономить пару тактов процессора.
                    Ответить
                    • Роман написал что-то в тред «Вышел релиз OpenZFS 2.0, реализация ZFS для Linux и (теперь) для FreeBSD»:
                      Ответить
                      • Ещё бы сделали наконец поддержку клонирования отдельных файлов (reflinks) и было совсем хорошо. Это единственное, что мешает нам использовать ZFS в production. Тикету 9 лет исполнилось уже, в третий класс пошёл.

                        https://github.com/openzfs/zfs/issues/405
                        Ответить
                        • взял бы и поправил, опенсурс же
                          Ответить
                        • ZFS есть только в солярке
                          В опенсурсе это наколенное говно и не нужен
                          Ответить
                      • Это прям было бы в топе https://govnokod.ru/23875
                        Ответить
                      • Роман сейчас работает в каком-то говноблокчейн-стартапе "DFINITY", пишет в основном на "Rust".
                        Ответить
                        • https://venturebeat.com/2018/02/07/dfinity-raises-61-million-for-blockchain-based-cloud/

                          > The Dfinity network … produces a single ‘Internet Computer’ with unbounded capacity. You do not need to manage … individual computer instances yourself, nor need to worry about copying data into a database in case one of your computer instances gets restarted or crashes. Instead you let the Internet Computer take care of everything for you … [It] is unstoppable and also helps with requirements like data privacy. Because business systems co-host on the same enormous virtual computer, interoperation, where desirable, is much easier.

                          Какой маркетинговый буллщит )))
                          Ответить
                        • https://dfinity.org/faq/what-is-the-internet-computer/

                          > The Internet Computer is formed by an advanced decentralized protocol called ICP (Internet Computer Protocol) that independent data centers around the world run to combine the power of individual computers into an unstoppable seamless universe where internet native software is hosted and run with the same security guarantees as smart contracts. It is integrated with Internet standards such as DNS, and can server user experiences directly to Web browsers and smartphones.

                          Децентрализованные облачные вычисления? Серьезно? А как предлагаете проверять, что никто не мухлюет с вычислениями? Например, кто-то попросил посчитать какую-то сложную ма-те-ма-тическую функцию в таком децентрализованном блохчейн-облаке, а в ответ ему выдали /dev/random? Проверять на нескольких независимых вычислителях? А если они все принадлежат одному уебку и выдают одинаковый неправильный ответ?
                          Ответить
                          • > мухлюет

                            Можно юзать интеловский SGX и гонять код с удалённой аттестацией. Жаль, что это говно интел позиционирует для DRM'щиков, простым смертным не дают поюзать.
                            Ответить
                            • > интеловский SGX

                              Только его вполне могут поломать (уже поломали: https://www.wired.com/story/plundervolt-intel-chips-sgx-hack/ )
                              Ответить
                              • Винду и линукс тоже уже поломали, как теперь жить?

                                Смешно, конечно, что не поставили BoD как на контроллерах. Или они тупо не знают порог стабильной работы? Да знают, наверное, раз на материнках профиль авто-разгона есть.
                                Ответить
                  • ru66oH4uk RIP

                    > Тем более что там вполне может быть пароль 123

                    Можно тестить перед добавлением в вайтлист.
                    Ответить
                    • > ru66oH4uk RIP

                      https://github.com/1024--/govnokod.ru-userscripts/pull/1/files - я уже отправил PR

                      > Можно тестить перед добавлением в вайтлист.

                      Слишком сложно
                      Ответить
                      • > слишком сложно

                        Можно прям из CI на пулл-реквесте.
                        Ответить
    • показать все, что скрыто
      const pituxes = [
      'cecilie',
      'bugotrep',
      'grimskin',
      'vladimir.loshchin',
      'anycolor',
      'Acid Beast',
      'begmst',
      'comfly',
      'GovnocoderJr',
      'Novi4oK',
      'deniamnet',
      'smac',
      'newmindcore',
      'breathe',
      'gg_',
      'shureg',
      'MaaKut',
      'bloby',
      'kir_rik',
      'avamana',
      'Aligan',
      'kit',
      'an0',
      'pyshpysh',
      'Cyanide',
      'lexa',
      'cdf_easy',
      '1234',
      'REDNES',
      'firefred',
      'utinger',
      'jo0o00nyy',
      'andrewiv',
      'ganzzz',
      'Kayfolom',
      'Mixa830',
      'Denya795',
      'Denya19',
      'Pilot418',
      'Luna250',
      'Denya570',
      'fed190',
      'Mixa977',
      'Natashka615',
      'Natashka83',
      'Denya962',
      'Semen569',
      'Nemo781',
      'Denya254',
      'Pilot239',
      'Nemo407',
      'Semen477',
      'Pilot367',
      'Denya902',
      'Fedka75',
      'fed655',
      'Fedka776',
      'Nemo788',
      'Nemo553',
      'Luna629',
      'Natashka769',
      'Denya459',
      'borius',
      'Pifagor',
      'potapuff',
      'Chupacabramiamor',
      'ajtkulov',
      'Sandwich',
      'guest3',
      'CBuHOKYP',
      'MAPTbIwKA',
      'MAKAKA',
      '3oJloTou_nemyx',
      '312312',
      '111111',
      '3oJloTou_xyeLL',
          ];
      Ответить
    • показать все, что скрыто
      'cecilie',
      'bugotrep',
      'grimskin',
      'vladimir.loshchin',
      'anycolor',
      'Acid Beast',
      'begmst',
      'comfly',
      'GovnocoderJr',
      'Novi4oK',
      'deniamnet',
      'smac',
      'newmindcore',
      'breathe',
      'gg_',
      'shureg',
      'MaaKut',
      'bloby',
      'kir_rik',
      'avamana',
      'Aligan',
      'kit',
      'an0',
      'pyshpysh',
      'Cyanide',
      'lexa',
      'cdf_easy',
      '1234',
      'REDNES',
      'firefred',
      'utinger',
      'jo0o00nyy',
      'andrewiv',
      'ganzzz',
      'Kayfolom',
      'Mixa830',
      'Denya795',
      'Denya19',
      'Pilot418',
      'Luna250',
      'Denya570',
      'fed190',
      'Mixa977',
      'Natashka615',
      'Natashka83',
      'Denya962',
      'Semen569',
      'Nemo781',
      'Denya254',
      'Pilot239',
      'Nemo407',
      'Semen477',
      'Pilot367',
      'Denya902',
      'Fedka75',
      'fed655',
      'Fedka776',
      'Nemo788',
      'Nemo553',
      'Luna629',
      'Natashka769',
      'Denya459',
      'borius',
      'Pifagor',
      'potapuff',
      'Chupacabramiamor',
      'ajtkulov',
      'Sandwich',
      'guest3',
      'CBuHOKYP',
      'MAPTbIwKA',
      'MAKAKA',
      '312312',
      '111111',
      '3oJloTou_xyeLL',
      '3oJloToy_xyeLL',
      '454',


      Джва золотых этому Буратино!
      Ответить
    • Добавил аналитический фильтр на >3 единиц форматирования и >90% отформатированных слов.
      // ==UserScript==
      // @name         GK-settings
      // @namespace    http://tampermonkey.net/
      // @version      0.4
      // @description  no smegma
      // @author       1024--, j123123
      // @match        *://govnokod.ru/*
      // @match        *://www.govnokod.ru/*
      // @icon         https://www.google.com/s2/favicons?domain=govnokod.ru
      // @grant        none
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          if (location.pathname === '/comments') return;
      
          $.gk('comments:gkhidden>show');
      
          const pituxes = [
      // те же +
      'adrnin',
          ];
          var pituxes_ = {};
          pituxes.forEach(p => {pituxes_[p] = true; });
      
          $.gk('comments').each(function () {
              const name = $(this).gk('@name');
              if (name in pituxes_) {
                  $(this).gk('container').remove();
                  return;
              }
      
              const text = $(this).gk('text');
              const nfmt = text.find('span,b,i').length;
              if (nfmt > 3 && nfmt > 0.9 * text.text().split(/\s+/).length)
                  $(this).gk('container').remove();
          });
      })();
      Ответить
      • Кстати, а почему фавиконка через сервер большого братишки прокинута?
        Ответить
        • Настройки Tampermonkey такие...

          P.S. Последний раз ответил уняку форматному из стока. На странице ГК скрипт его вырезал.
          Ответить
          • Хм, так 8 форматов на 9 слов вроде ниже порога?
            Ответить
            • Хрен знает. Может, скрипт обрёл сознание.
              Ответить
            • Потому, что gQuery как 'text' достаёт div.entry-comment, а не span.comment-text
              В итоге span.comment-text стал девятым, а .text() остался тем же. 9/9, скрипт забанил.
              Ответить
          • мне кажется, надо просить Полигоста, чтобы они всё-таки уже добавили какой-то блеклист на нгк и просто не парсили комментарии зашкваренных профилей
            Ответить
            • > не парсили

              Да нафиг надо? Ещё регресс какой-нибудь получится. Работает -- не трогай.
              Ответить
              • какой там может получиться регресс?

                и вы там что, тесты не писали?
                Ответить
                • > какой там может получиться регресс

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

                    правда, тогда придётся решать проблему ответов уёбку. с другой стороны, если parent comment id в базе нет, то и подветку добавлять не нужно, problem solved
                    Ответить
                    • А если кого-то по-ошибке в уёбки записали, потом всю базу перестраивать?

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

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

                            а-а, там блеклист с запросом отправляется?
                            Ответить
                            • Да, список юзеров и постов на сервер запросом уходит. Более тонкая фильтрация уже на жс.
                              Ответить
                • > тесты

                  Я не писала, но в принципе там всегда можно было натравить парсер на архивы страничек и сравнить со старым.

                  Возможно Полина что-то добавила. Но что-то мне нямекает, что парсер с тех пор особо и не менялся.
                  Ответить
                  • >> тесты
                    >Я не писала
                    :((((((((((((((((((((
                    Ответить
                    • думаешь, он щас в розовых трусиках с сердечками?
                      Ответить
                      • Подписывайся на онлифанс, узнаешь.

                        Думаю, он просто разочаровался в моей компетентности, раз я тесты не писала.
                        Ответить
                        • > онлифанс

                          – у тебя там раскрытие пятиуровневых крестовых шаблонов с happy compilation ending?
                          Ответить
                      • Розовые трусики это оправдание для того, что бы тесты не писать?
                        Ответить
                        • конечно

                          панцушот – и от тебя ничего уже не хотят по работе
                          Ответить
                          • Спасибо, но я мальчиков не люблю. Я не анимешник
                            Ответить
                            • а девочек?
                              Ответить
                              • Он же написал, что он не анимешник. Значит, тоже не любит. Только пони.
                                Ответить
                              • котодевочек?
                                тоже нет
                                Ответить
                                • У меня аккаунт "MAKAKA" забанен, если что.

                                  https://gcode.space/#!/search?user=MAKAKA

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

                                          Ты из принципа не признаёшь пароли сложнее "123"?
                                          Ответить
                                          • А какой поставить?
                                            Ответить
                                            • > А какой поставить?

                                              `openssl rand -base64 12`

                                              Вот такой пожалуй сойдёт.
                                              Ответить
                                              • Подсказка: эту команду нужно копипастить в терминал, а не в поле пароль.

                                                P.S. Чому не pwgen?
                                                Ответить
                                                • > Чому не pwgen

                                                  Фиг знает, там думать надо... А тут я точно знаю, сколько энтропии в этом пароле. Жаль, конечно, что этот пароль испортят захешировав его через md5, можно 12 на 8 смело менять.
                                                  Ответить
                                                  • Кстати да, что-то мутные фичи у pwgen. Как надо было эту тулу писать: генерить заданное количество батов энтропии, и потом мапить их какой-то хитровыебанной инъективной функцией в нужный диапозон Аски. Они этого не делают, судя по всему.

                                                    -v, --no-vowels
                                                                  Generate  random passwords
                                                                  that do not contain vowels
                                                                  or  numbers  that might be
                                                                  mistaken for  vowels.   It
                                                                  provides less secure pass‐
                                                                  words to allow system  ad‐
                                                                  ministrators  to  not have
                                                                  to worry with random pass‐
                                                                  words accidentally contain
                                                                  offensive substrings.


                                                    Ну да, няхуй секьюрность и то, что пароль можно просто зарероллить.
                                                    Ответить
                                                    • > offensive substrings

                                                      Какая политкорректность )))

                                                      Но потом всё равно выпадет какой-нибудь "fckn nggrs".
                                                      Ответить
                                                    • > в нужный диапозон Аски

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

                                                      Нет никакого смысла разбавлять пароль закорючками, если он достаточно длинный и случайный. Пароль из 40 цифр вполне криптостоек (128 бит), никто его не забрутит.
                                                      Ответить
                                                      • Безусловно, нетривиальный маппинг нужен для удобства запоминания.
                                                        Ответить
                                                    • > зарероллить

                                                      Кстати, можно наоборот составить словарь из f-слов и генерить пароль в виде матерных частушек. Запоминаться будет идеально и записывать на бумажку около монитора никто не будет.
                                                      Ответить
                                                      • Можно линк-грамматикой генерить четырёхэтажные маты в духе chyrosran22. Емнип, её можно раскручивать итеративно, пока не наберётся достаточно энтропии.
                                                        Ответить
                                                        • PoC за 5 минут с грамматикой chyrosran'а в виде shallow embedded DSL. Довольно забавные генереции выдаёт. Сегодня допилю парсер грамматик и алгоритм, чтобы нужное количество энтропии высирал.
                                                          https://pastebin.com/Qk910pun
                                                          Ответить
                                                          • Что-то получилось, но довольно непрактично. Чтобы получить 128 батов энтропии, нужен многоэтажный мат длиной в где-то в 70 слов. Конечно, если добавить больше вореантов слов и предложений, это удастся немного сократить, но зависимость там логарифмическая.
                                                            https://a.uguu.se/EZwvykKJ.tar.gz
                                                            Ответить
                                                            • ...Линк-грамматика задаётся в таком формате примерно:
                                                              top : {intro} "=," (msg_a | msg_b).
                                                              
                                                              msg_a : "foo" [ "bar" ] | {baz} "blah".

                                                              И т.д. [] — повторение, {} — maybe.
                                                              Ответить
                                                            • Дошло, что API генератора психозы надо было по-другому пилить: он должен сам выбирать вореант из списка вореций с весами. Тогда и энтропия будет более аккуратно подсчитана. Но фиксить уже не буду.
                                                              Ответить
                                              • Вот такой получился
                                                `t9CDpiGWq41QloBx`

                                                Подойдет?
                                                Ответить
                                        • И правда, как я об этом не подумала?
                                          Ответить
                                          • Он -- цифровой коммунист, отвергающий частную собственность в интернете.

                                            З.Ы. Просто какой-то непоследовательный.
                                            Ответить
                                            • > Он -- цифровой коммунист, отвергающий частную собственность в интернете.

                                              И опять получился неправильный коммунизм.
                                              Ответить
                                  • Ничего он не восстановил.
                                    Ответить
    • Скрипт уже 2000+ символов, поэтому переезжаю на гитхаб.
      Хотя, аналитический фильтр работает, буду добавлять логины уняков для того, чтобы потом Страйкеру было потом проще их банить.
      https://github.com/1024--/govnokod.ru-userscripts/blob/master/nosmegma.user.js
      Ответить
      • Пыхер Стажёр может проснуться только в том случае, если ему опять РКН письмо счастья пришлёт
        Ответить
        • Всему своё время. Учётки для забанивания пока ещё не все собраны.
          Ответить
          • ты всегда будешь на полпути к цели

            потому что количество учёток для забанивания стремится к бесконечности
            Ответить
            • Для этого надо, чтобы доктор Смегма осилил автоматическое разгадывание капч для регистрации новых, а старые будут быстро кончаться.
              Ответить
              • Кстати, а почему он пошёл старых юзеров ломать? Неужели новых зарегать настолько сложно стало?
                Ответить
                • а может он новых никогда и не регал
                  Ответить
                  • Тоже так начал думать, когда написал про Настеньку. Большинство из 53 ботов слишком аккуратно зарегистрированы и не выпячивают график id(time).
                    Ответить
                    • там же куча древних акков, старше твоего

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

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

                          Ресурс мог уже 10 раз умереть. По меркам интернета 12 лет — вечность.
                          Ответить
                          • > фантастический долбоёб и ноулайфер

                            > десять страниц гей-порно

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

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

                        А потом выжидал ради момента славы двенадцать лет. За которые ресурс мог кучу раз гигикнуться.
                        Ответить
                        • Это просто предположение.

                          А у кого из ботов есть аккаунты на хабре? И они там полноценные? Для read only инвайт давным давно не нужен
                          Ответить
                          • Вот же «инканус» писал
                            https://govnokod.ru/27549#comment658414
                            У этого юзера тоже не временный ящик. У него во всех сервисах один никнейм:

                            https://habr.com/ru/users/grimskin/
                            Registered: 4 December 2006
                            Ответить
                            • Один юзер?

                              Ну и я не таких имел в виду, а всяких номерных наток и федов
                              Ответить
                            • Интересно, у этого чела на хабре тоже какой-то «сложный» пароль?
                              Ответить
              • ну если gost осилил, то чего какой-то из косплееров осетина не сможет?

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

                  Х.з., в исповеди ботовода было сказано, что довольно долго пришлось запинывать нейронку.
                  Ответить
                  • а ты ему взял и поверил?
                    Ответить
                    • Я не шарю в этой теме, так что придётся поверить эксперту...
                      Ответить
                  • Я думаю осетинский ослоёб с этим легко справится. Ему не нужна точность 95%.
                    Ответить
                • Доктор Смегма не может в нейронку, он же не Траполина
                  Ответить
                  • > Доктор Смегма не может в нейронку

                    Вариант, что Смегме помогали на каком-то форуме отметается?

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

                        Общаясь с уёбком ты его приманиваешь, и он к тебе привязывается, и потом тут срёт
                        Ответить
                        • > и потом тут срёт

                          Да и хуй с ним, пусть срёт.
                          Ответить
                        • З.Ы. Подгорай у себя в бложике.

                          Подгорая на глазах уёбка ты его приманиваешь, и он к тебе привязывается, и потом тут срёт.
                          Ответить
                          • Я не подгораю совершенно, я просто констатировал факт
                            Ответить
                      • >Знания должны быть доступны всем

                        дед, проснись, Web 2.0 был 20 лет назад и все апи уже закрутили, всю инфу скрыли и ни к чему критичному без идентификации личности или пейволла тебя не подпустят
                        Ответить
                        • У няс в мире девочек-волшебниц это к счастью ня так.
                          Ответить
                          • У вас там небось пейперы с математической питушней, которую питухи всё равно не понимают, так что и закрываться не от кого
                            Ответить
                            • даже scihub пытаются закрыть
                              Ответить
                            • своего у них нет
                              а здесь они проездом
                              что не мешает кидать понты, разумеется
                              Ответить
            • integer конечен. Да и место на диске.
              Ответить
              • а что будет после overflow? начнёт затирать старые профили?))
                Ответить
                • Я думаю просто начнут фейлиться инсерты? Всё-таки это не сишка...

                  Хотя это мускуль, хер знает как у него max + 1 работает.
                  Ответить
                  • When MySQL stores a value in a numeric column that is outside the permissible range of the column data type, the result depends on the SQL mode in effect at the time:

                    * If strict SQL mode is enabled, MySQL rejects the out-of-range value with an error, and the insert fails, in accordance with the SQL standard.

                    * If no restrictive modes are enabled, MySQL clips the value to the appropriate endpoint of the column data type range and stores the resulting value instead.
                    Ответить
                    • > clips

                      Лол, ну всё равно сфейлится, запись то уже есть.
                      Ответить
                      • то есть в какой-то момент регистрация перестанет работать?
                        это сколько надо петухов ещё примерно зарегать?
                        Ответить
                        • Ещё пару миллиардов. Диск быстрее кончится.
                          Ответить
                      • clisp
                        i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
                        I I I I I I I      8     8   8           8     8     o  8    8
                        I  \ `+' /  I      8         8           8     8        8    8
                         \  `-+-'  /       8         8           8      ooooo   8oooo
                          `-__|__-'        8         8           8           8  8
                              |            8     o   8           8     o     8  8
                        ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8
                        
                        Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
                        
                        Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
                        Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
                        Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
                        Copyright (c) Bruno Haible, Sam Steingold 1999-2000
                        Copyright (c) Sam Steingold, Bruno Haible 2001-2010
                        
                        Type :h and hit Enter for context help.

                        ГОМОИКОНЫ!
                        Ответить
        • Похоже, прислали. https://govnokod.ru/27613 уже всё.
          Ответить