1. Куча / Говнокод #26896

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    Хрюкни #4
                 ._     __,
                  |\,../'\
                ,'. .     `.
               .--         '`.
              ( `' ,          ;
              ,`--' _,       ,'\
             ,`.____            `.
            /              `,    |
           '                \,   '
           |                /   /`,
           `,  .           ,` ./  |
           ' `.  ,'        |;,'   ,@
     ______|     |      _________,_____jv______
            `.   `.   ,'
             ,'_,','_,
             `'   `'

    #1: https://govnokod.ru/26863 https://govnokod.xyz/_26863
    #2: https://govnokod.ru/26868 https://govnokod.xyz/_26868
    #3: https://govnokod.ru/26881 https://govnokod.xyz/_26881

    Запостил: nepeKamHblu_nemyx, 28 Августа 2020

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

    • Добрый вечер.

      Этот оффтоп сгенерирован автоматически.

      Индекс оффтопов: https://index.gcode.space/.
      Зеркала Говнокода и полезные ресурсы:
      * https://govnokod.xyz/ (альтернативный Говнокод)
      * https://gcode.space/ (read-only зеркало Говнокода)
      * @GovnokodBot в «Telegram»
      * https://vorec.space/ (глоссарий Говнокода)
      Ответить
      • Хрю!
        Ответить
      • Питух, ты начинаешь напоминать мне робота из эхи. Те постили правила в эху так же, как ты постишь ссылки на зеркала
        Ответить
        • Подтверждаю.
          Ответить
          • гост, видал тайпдеф в питухоне, причем различающйся для стат анализа?
            https://docs.python.org/3/library/typing.html#typing.NewType

            <typing.cast(typ, val)¶
            >Cast a value to a typ

            питухи реально завозят параллельный мир в питухон
            Ответить
            • Ага.

              > в питухон
              Питухон медленно превращается в «coq». Ко-о-ок!
              Ответить
              • попытка склеивания хлебных мякишей синей изолентой с целью получения шестерёнок продолжается
                Ответить
                • Подтверждаю.

                  Кстати, компайл-тайм эрзац-тайпчекинг-тайм вычисления уже подвезли:
                  import typing
                  
                  
                  if typing.TYPE_CHECKING:
                      # Тайп-чекинг-тайм!

                  А ещё там есть много смешных декораторов (примеры из доки):
                  @overload
                  def process(response: None) -> None:
                      ...
                  @overload
                  def process(response: int) -> Tuple[int, str]:
                      ...
                  @overload
                  def process(response: bytes) -> str:
                      ...
                  def process(response):
                      <actual implementation>
                  class Base:
                      @final
                      def done(self) -> None:
                          ...
                  class Sub(Base):
                      def done(self) -> None:  # Error reported by type checker
                            ...
                  @runtime_checkable
                  class Closable(Protocol):
                      def close(self): ...
                  
                  assert isinstance(open('/some/file'), Closable)
                  # Warning: this will check only the presence of the required methods, not their type signatures!
                  Ответить
                  • половина типушни проверяется в рантайме, половина в мупу.. вы все еще за питун?
                    Ответить
                    • > вы все еще за питун?
                      Подтверждаю. Для быстрого прототипирования, написания простых повседневных скриптов и несложных веб-приложений он подходит прекрасно. С ролью интерактивного калькулятора с мощными возможностями по взаимодействию с окружающим миром он тоже справляется замечательно (уже года полтора как прописал в автозапуск «ConEmu» с шестью вкладками, в том числе с открытым «Питоном», чувствую себя замечательно).
                      Ответить
                      • а стат тупизация во всем этом зачем?
                        Ответить
                        • В качестве дополнительного средства по повышению надёжности и уменьшению вероятности возникновения тупых ошибок.
                          Ответить
                          • в каком сценарии ты их используешь?
                            >быстрого прототипирования,
                            >, написания простых повседневных скриптов
                            > несложных веб-приложений
                            >интерактивного калькулятора
                            ?
                            Ответить
                            • > быстрого прототипирования
                              > написания простых повседневных скриптов
                              > несложных веб-приложений
                              Ответить
                              • и тебе не влом использовать не очень-то стабильную систему типов, которая меняется в каждой следующей версиии для быстрого прототипирования?

                                Почему бы не взять язык, где стат типизация была изначально?
                                Ответить
                                • > которая меняется в каждой следующей версиии
                                  Приведи реальный пример изменений в статотипизации «Питона», которые бы сломали обратную совместимость с предыдущими версиями; внутреннее устройство не предлагать. Бонусные очки за реальный пример с простыми и наиболее используемыми коньструкциями («def f() -> int», «x: float = 42.1»).

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

                                    Це мерзость!

                                    К примеру, ты такой писнул
                                    Vector = List[float]
                                    https://docs.python.org/3/library/typing.html

                                    А потом приземлился PEP 613:
                                    https://www.python.org/dev/peps/pep-0613/

                                    x: TypeAlias = int # type alias

                                    или даже так

                                    x: TypeAlias = “MyClass” # type alias

                                    Explicit aliases provide an alternative way to declare type aliases, but all pre-existing code and old alias declarations will work as before.

                                    Требуется больше alternative way.

                                    ------
                                    >Например?

                                    Я бы предложил koko, но ты же против "JVM" небось.
                                    Или Swift, если у тебя ябло.

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

                                      > koko
                                      Компилируемый, сразу на выход.

                                      Ещё одна весьма полезная для указанных мной целей фича «Питона» — необязательность типизации. Так, например, вычисляя на нём факториалы в консоли, я могу вообще полностью игнорировать типизацию, и это заебись.
                                      Ответить
                                      • > В крестах вон
                                        кресты всё таки стартовали с более выгодных позиций: в питоне изначально стат типизации не было вообще, потом ее завезли в некоторые места иногда и убогую, потом начали развивать. Так что каша выходит хуже крестовой: в крестах у тебя вместо auto будет явный тип и ли древнее говно, а в питоне типа не будет вовсе.

                                        >Компилируемый, сразу на выход.
                                        Питон тоже компилируется. Видал .pyc файлики?

                                        Так вот ты не поверишь, то котлин умеет тоже самое: скомпилировать, поюзать, и выкинуть.
                                        Смотри:

                                        C:\>type C:\temp\untitled\foo.kts
                                        for(i in (0..20)) {
                                            println("I got $i")
                                        }
                                        
                                        C:\>kotlinc -script C:\temp\untitled\foo.kts
                                        I got 0
                                        I got 1
                                        I got 2
                                        I got 3
                                        ....

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

                                        > необязательность типизации.
                                        Это плюс для калькулятора, но для языка это минус.
                                        Если типизация не обязательна, значит половина библиотек будет не типизирована. Именно так и есть в питоне, нет?

                                        Может быть для прототипирования и веб параши было бы логично иметь один язык, а для калькулятора bc -- другой?
                                        Ответить
                                        • > Так что каша выходит хуже крестовой: в крестах у тебя вместо auto будет явный тип и ли древнее говно, а в питоне типа не будет вовсе.
                                          А я вовсе не про типизацию крестовую, я про весь язык. Вот, например, надо тебе проитерироваться по элементам вектора. В C++98 и раньше ты делаешь вот так (не скажу за точность, ну да ладно, похуй):
                                          const size_t vec_size = vec.size();  // Седая древность, компиляторы тупые
                                          for (size_t i = 0; i < vec_size; i++) {
                                              std::cout << vec[i] << std::endl;
                                          }

                                          В «C++11» так делать стало не модно, итераторы — наше всё:
                                          for (auto iter = vec.begin(); iter != vec.end(); ++iter) {
                                              // Попрошу не путать iter++ и ++iter, а то могут и напутать!
                                              std::cout << vec[i] << std::endl;
                                          }

                                          В «C++14» решили, что писать портянку с iter на каждый чих — говно, и ввели крутые range-for (без шуток крутые):
                                          for (auto && x : vec) {
                                              // Попрошу не путать iter++ и ++iter, а то могут и напутать!
                                              std::cout << x << std::endl;
                                          }

                                          А ещё в каких-то стандартах сделали std::for_each, std::transform и прочую функциушню.

                                          Ну и как тут можно жить, если в старой половине проекта такой простой коньструкт, как цикл по элементам коллекции, на итераторах, а в новой — на совершенно другом синтаксисе?!

                                          > но для языка это минус.
                                          Языков без минусов не бывает.

                                          > а для калькулятора bc -- другой?
                                          >>> с мощными возможностями по взаимодействию с окружающим миром

                                          Вот смотри, есть у меня какой-то сайт, я хочу скачать и сохранить с него все картинки (реальный пример). Я беру свой «Notepad++», пишу в нём:
                                          import re
                                          import requests
                                          
                                          
                                          links = re.findall('(https?\://[a-zA-Z0-9\-/\.]+\.(?:jpe?g|png|gif))', requests.get('https://govnokod.ru').text)
                                          for link in links:
                                              content = requests.get(link).content
                                              with open(link.split('/')[-1], 'wb') as f:
                                                  f.write(content)

                                          Потом копирую этот код, вставляю в открытую консоль с «Питоном» — и вуаля, готово.
                                          Ответить
                                          • >А я вовсе не про типизацию крестовую, я про весь язык.
                                            А я именно про типизацию)
                                            Мне в джаве тоже противно смотреть на старый код, где вместо функциональщины куча императивщины ненужной, но я точно знаю, что возвращаемое значение мне известно (кроме пары кейсов из джавы 4)

                                            >Языков без минусов не бывает.
                                            Это правда. Но вот ситуация со стат типизацией это довольно жирный минус кмк

                                            >вставляю в открытую консоль
                                            и всё падает, потому что нужно ставить requests:)
                                            Какого типа link в links?

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

                                              > Но вот ситуация со стат типизацией это довольно жирный минус кмк
                                              Ну вот именно поэтому она в «Питоне» и опциональная. Если так сильно не нравится — просто полностью игнорируешь её и пишешь на динамически типизированном языке. Все бы минусы так исправлялись…

                                              > и всё падает, потому что нужно ставить requests:)
                                              И это ещё один жирный плюс «Питона»: пакеты (по крайней мере, большинство) ставятся ровно одной простой командой, после чего их можно сразу же использовать. Даже оболочку «Питона» перезапускать не надо.
                                              Как, например, мне установить и подключить стороннюю библиотеку в «Котлине»?

                                              > Какого типа link в links?
                                              Да вообще похуй, мне какая разница? (Спойлер: str).

                                              > В том же коко ты мог бы сделать тоже самое (там и REPL есть), разве что тебе пришлось бы писать val.
                                              Очень сильно сомневаюсь. Что, даже не пришлось бы ебаться с кодировками?

                                              > Кстати, как с выводом типов у mypy и его друзей?
                                              Да нормально всё, большинство простых случаев успешно выводится. «Mypy», кстати, весьма впечатляюще обрабатывает «Optional»:
                                              def append_bad(x: int, a_list: Optional[List[int]] = None) -> List[int]:
                                                  a_list.append(x)  # Item "None" of "Optional[List[int]]" has no attribute "append" mypy(error)
                                                  return a_list  # Incompatible return value type (got "Optional[List[int]]", expected "List[int]") mypy(error)
                                              
                                              def append_good(x: int, a_list: Optional[List[int]] = None) -> List[int]:
                                                  if a_list is None:
                                                      a_list = []
                                                  a_list.append(x)  # ОК
                                                  return a_list  # ОК

                                              Для динамушни очень продвинуто и полезно.
                                              Ответить
                                        • А ещё «REPL» «Питона» очень помогает писать ту самую мелкушню. Вот забыл я, например, порядок аргументов в re.findall() — не беда, разворачиваю консоль и проверяю:
                                          >>> import re
                                          >>> help(re.findall)
                                          Help on function findall in module re:
                                          
                                          findall(pattern, string, flags=0)
                                              Return a list of all non-overlapping matches in the string.
                                          
                                              If one or more capturing groups are present in the pattern, return
                                              a list of groups; this will be a list of tuples if the pattern
                                              has more than one group.
                                          
                                              Empty matches are included in the result.

                                          Такой себе мини-ман. Для меня, питуха с куриной памятью, это очень полезно.
                                          Ответить
                                        • Или вот, например, пару дней назад я крутил-вертел в консольке кусочек данных, нужно было его визуализировать. Не беда:
                                          from PIL import Image
                                          import numpy as np
                                          # …загрузка данных…
                                          Image.fromarray(np.array(data, dtype='uint8').reshape((SIZE[1], SIZE[0])), mode='L').resize((SIZE[0]*8, SIZE[1]*8), Image.NEAREST).show()

                                          — Вуаля, мне показывается нужная мне картинка. Это очень круто и очень удобно.
                                          Ответить
                                          • и ты конечно помнишь наизусть, что в параметр надо передавать Image.NEAREST, а похуй, что нет статической типизации, чтобы это подсказать< правда?
                                            Ответить
                                            • Э-э-э, а как мне статическая типизация подскажет, что там куда передавать надо? Это только документация может подсказать.
                                              Ответить
                                              • В Java/Koko, к примеру, енум это класс, а все значения его -- одиночки.

                                                Соответственно, я просто жму ctrl+space в идее, и вижу список всех возможных значений в выпавшем меню.
                                                Ответить
                                                • > в идее
                                                  А причём тут «Идея»? Если уж мы пошли меряться IDE — мне в «VS Code» не только все возможные значения показываются, мне вся дока сразу видна: https://i.imgur.com/XGZ4Ald.png. И никаких тебе «одиночек» не нужно (хотя енумы, кстати, в путухе есть).
                                                  Ответить
                                                  • доку вижу, а где комплишен енума-то?
                                                    https://i.postimg.cc/Mp5kG5Th/enum.png

                                                    enum вроде недавно завезли, да
                                                    Ответить
                                                    • Э, какой комплишен? Какого енума?

                                                      >>> и ты конечно помнишь наизусть, что в параметр надо передавать Image.NEAREST, а похуй, что нет статической типизации, чтобы это подсказать< правда?
                                                      Ну вот мне всё подсказали и разжевали, причём гораздо подробнее, чем в «Идее» + «Котлине».
                                                      Ответить
                                                      • >Э, какой комплишен? Какого енума?
                                                        ты посмотрел мою картинку?

                                                        В питоне ты вызываешь resize, и там есть один из параметров "resample".

                                                        Как ты можешь узнать какие значения туда можно передать?
                                                        Только почитав документацию.


                                                        Что будет, если написать так? Можно ли это отловить статически?
                                                        Image.new("A", (10, 10)).resize(resample=12)

                                                        Нет, только в рантайме

                                                        Скорее всего даже вот такое не отловить (поправь, если я ошибаюсь)
                                                        Image.new("A", (10, 10)).resize(resample="A")



                                                        В Java/Kotlin enum это класс с несколькими инстансами-синглтонами.
                                                        Так как оба языка изначально статически типизированы, то:
                                                        * IDE может показать список значений для enum
                                                        * IDE и компилятор проверяют корректность переданного туда значения

                                                        >Ну вот мне всё подсказали и разжевали, причём гораздо подробнее, чем в «Идее» + «Котлине».

                                                        В Idea и kotlin есть тоже самое:
                                                        https://i.postimg.cc/4xdBTRKH/doc.png

                                                        Все IDE умеют показывать документацию из кода: и VSCode, и PyCharm, и Idea
                                                        Ответить
                                                        • > Как ты можешь узнать какие значения туда можно передать?
                                                          Чувак, эти значения у меня на картинке выделены жирным моноширинным шрифтом. Твоя доёбка не работает.

                                                          > Что будет, если написать так? Можно ли это отловить статически?
                                                          Если бы авторы библиотеки оформили правильный енум — можно было бы. Как ты понимаешь, если в «Котлине» сделать перечисление через «val NEAREST = 1; val BICUBIC = 2;» и принимать инт, ты точно так же статически неверный параметр не отловишь.

                                                          Разумеется, если в «Питоне» ты сделаешь нормальный енум, а не просто кучку целочисленных констант, то статотипизация тебе всё дополнит и отловит: https://i.imgur.com/4SF2IHY.png, https://i.imgur.com/L6w3xWy.png.
                                                          Ответить
                                                          • >выделены жирным моноширинным шрифтом.
                                                            ну то есть всё таки нужно прочитать документацию, и аккуратно скопировать оттуда допустимое значение.

                                                            >Если бы авторы библиотеки оформили правильный енум — можно было бы.

                                                            И если бы они указали его с помощью тайпхинтов, верно?

                                                            Но они этого не сдеалли, верно?
                                                            А почему знаешь?

                                                            >Разумеется, если в «Питоне» ты сделаешь нормальный енум

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


                                                            Я, кстати, не утверждаю, что статическая типизация всегда хорошо.

                                                            Просто ты с одной стороны утверждаешь, что это хорошо (и что ты статически типизируешь вообще все скрипты) а с другой представляешь отсутствтие ее примерно во всех библиотеках питона как плюс, и тут же доказываешь, что она не нужна, потому что всё указано в документации:P)
                                                            Ответить
                                                            • > и аккуратно скопировать оттуда допустимое значение.
                                                              Зачем? Автокомплит констант прекрасно работает, вводишь «Image.NE» и нажимаешь «Enter».

                                                              > А в 99.9% библиотек этого не сделано. Потому остается читать документацию, и копировать оттуда правильные слова
                                                              В 99.9% библиотек прекрасно работает автокомплит, ничего копировать не надо.

                                                              Ну ладно, окей, уговорил, «Питон» — говно. Теперь моя очередь.
                                                              Берём код:
                                                              const val NEAREST = 1  // Я так и не понял, как затянуть константы в неймспейс класса,
                                                              const val BICUBIC = 2  // на «SO» предлагают какое-то несусветное говно с «companion object»
                                                              class Image {
                                                                  fun resize(resample: Int) {
                                                                      when(resample) {
                                                                          NEAREST -> println("Nearest!")
                                                                          BICUBIC -> println("Bicubic!")
                                                                          else -> println("WTF?")
                                                                      }
                                                                  }
                                                              }
                                                              
                                                              fun main(args: Array<String>) {
                                                                  val img = Image()
                                                                  img.resize(NEAREST)
                                                                  img.resize(42)
                                                              }

                                                              Компилируем… Успешно, ошибка в компайлтайме не отловлена. Вывод — «Котлин» тоже говно.
                                                              Ответить
                                                              • > Автокомплит констант прекрасно работает, вводишь «Image.NE»
                                                                Откуда ты знаешь, что нужно вводить Image? Из документации опять?

                                                                Что будет, если ты введешь Image._filters_support? Это тоже филды того класса.

                                                                >В 99.9% библиотек прекрасно работает автокомплит
                                                                Только сначала тебе надо узнать имя класса с этими константами.

                                                                >Берём код:
                                                                Так, разумеется, никто не делает: все используют enum.
                                                                В питоне я тоже могу взять enum, но:

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


                                                                Ответь на вопрос: хорошо ли иметь везде статическую типизацию?
                                                                Ответить
                                                                • > Откуда ты знаешь, что нужно вводить Image?
                                                                  Из окошка, которое появляется, когда я ввожу «.resize(». Из точно такого же окошка, которое показывает тебе «Идея».

                                                                  > Что будет, если ты введешь Image._filters_support?
                                                                  А что будет, если я буду срать, не снимая свитер?

                                                                  > Так, разумеется, никто не делает: все используют enum.
                                                                  Ну как никто? Я только что сделал.

                                                                  > скорее всего его там не будет, потому что его завезли-то пару лет назад
                                                                  Для промышленного, «тяжёлого» энтерпрайзного программирования ни «Python», ни «Kotlin», разумеется, не подходят. А для той ниши, которую я указал в начале ветки, использование bleeding edge технологий — скорее правило. Или ты хочешь сказать, что для прототипирования/скриптинга/пет-проджектов ты используешь исключительно «Кобол» 1985-го года выпуска?

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

                                                                  > Ответь на вопрос: хорошо ли иметь везде статическую типизацию?
                                                                  В той нише, которую (по крайней мере у меня) занимает «Питон» — нет.

                                                                  Кстати, можно в «Котлине» защититься от null-ов в ссылках без бойлерплейта?
                                                                  >>>
                                                                  def append_bad(x: int, a_list: Optional[List[int]] = None) -> List[int]:
                                                                      a_list.append(x)  # Item "None" of "Optional[List[int]]" has no attribute "append" mypy(error)
                                                                      return a_list  # Incompatible return value type (got "Optional[List[int]]", expected "List[int]") mypy(error)
                                                                  
                                                                  def append_good(x: int, a_list: Optional[List[int]] = None) -> List[int]:
                                                                      if a_list is None:
                                                                          a_list = []
                                                                      a_list.append(x)  # ОК
                                                                      return a_list  # ОК
                                                                  Ответить
                                                                  • > Для промышленного, «тяжёлого» энтерпрайзного программирования ни «Python», ни «Kotlin», разумеется, не подходят.
                                                                    - не знаю, что там с питухом, но почему не подходит Котлин?

                                                                    Просто более лучшая жаба
                                                                    Ответить
                                                                    • > но почему не подходит Котлин?
                                                                      Потому что где ты видел тяжёлый энтерпрайз, в котором используется ЯП четырёхлетней давности? Вот хотя б десяток лет «Коко» отстоится, стартаперы-хипстеры-смузихлёбы, его использующие, подрастут и станут уважаемыми тимлидами — тогда да, станет и он энтерпрайз-рэди. Если, конечно, к тому времени не помрёт.
                                                                      Ответить
                                                                      • А Лажа стала тяжёлым энтерпрайзом только через четыре года после выхода? Или там сисярп.

                                                                        Котлин просто нишевый, его продвигают для ведра.
                                                                        Ответить
                                                                        • Лажа да, где-то года через три.

                                                                          Котлин совместим с жабой (примерно как свифт с Objc), его где только ни продвигают. Ничто не мешает написать один класс на яже, а другой на котлине
                                                                          Ответить
                                                                          • А что на ней писали первые три года?

                                                                            > Котлин совместим с жабой (примерно как свифт с Objc)
                                                                            - интересно ты сравнил, два языка, у которых просто есть интероп, и два языка, работающих поверх одной VM
                                                                            Ответить
                                                                            • >А что на ней писали первые три года?
                                                                              Думаю, что ничего серьезного)

                                                                              Энтерпрайз начался с "J2EE 1.2 (December 12, 1999)" примерно.


                                                                              >интересно ты сравнил
                                                                              ))Ну ObjC и Swift тоже работают поверх "llvm", просто она их компилирует в нативный код, тогда они работают поверх "arm" или "x86"

                                                                              Kotlin и Java тоже самое, просто там jvm.
                                                                              Ответить
                                                                              • Это вообще ни разу ни одно и то же.

                                                                                Чистый Свифт ничего не знает про рантайм, у них с ОбжСи местами разные интерфейсы и поведение (я тут писал: uint/Int в длине коллекций, копирование/некопирование ключей в словарях).

                                                                                У Котлина и Жабы тоже есть такие heart-breaking различия?
                                                                                Ответить
                                                                                • Пажжи, но cocoa то у них общая? NSDictionary всякие?

                                                                                  У котлина есть свой ратнайм и своя библиотека поверх того, что предоставляет JVM (хотя есть доступ и к JVM напрямую).
                                                                                  Ответить
                                                                                  • NSDictionary и Swift Dictionary так-то разные типы.

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

                                                                                Странная компания. Язык смогли придумать, а зачем он нужен - не совсем.
                                                                                Ответить
                                                                                • аплеты писали, да. Причем там была java 1.1, и awt вместо swing;)

                                                                                  Sun -- компания мечтатель.

                                                                                  "The network is the computer", "создать универсальный язык" и прочая маниловщина.

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

                                                                                    Тут даже Сан были ближе к реальности в своих мечтаниях
                                                                                    Ответить
                                                                                    • Ну так чсто бывает: фантазёры фантазируют, пытаются создать Идеальную Систему, которая Решит Все Проблемы, а в это время студенты на коленке пишут какое-то говно, и зарабатывают денег.


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

                                                                                        У Сан был период расцвета, а потом всё просрали, ничто не ново, рано или поздно пейсбук ждёт та же участь
                                                                                        Ответить
                                                                                        • Ну вот просрали, потому что ударились в мечты. Рынок хотел одного, а они делали другое.

                                                                                          Microsoft вон старше Сана, и ничего: на плаву
                                                                                          Ответить
                                                                  • > Из точно такого же окошка, которое показывает тебе «Идея».
                                                                    В языках с обязательной стат типизацией мне и окошко не нужно: я нажимаю ctrl+Space, и вижу все значения енумов.

                                                                    >А что будет, если я буду срать, не снимая свитер?
                                                                    Это охуенный аргумент.

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

                                                                    >Ну как никто? Я только что сделал.

                                                                    1. В каком количестве библиотек в питоне используется enum?
                                                                    2. В каком количестве библиотек есть тайпхинты?


                                                                    >Для промышленного, «тяжёлого» энтерпрайзного программирования ни «Python», ни «Kotlin», разумеется, не подходят

                                                                    Хм. Что такое "энтерпрайзное"?
                                                                    Вот эта хуйня достаточно энтерпрайзна?
                                                                    https://www.jetbrains.com/space/

                                                                    А Java подходит?
                                                                    WebSphere достаточно эентерпрайзен?

                                                                    >Не знаю насчёт большинства, у меня таких данных нет.
                                                                    Ну ты же пишешь на питоне, верно?
                                                                    Какой процент из использованных тобою библиотек имели type hinting?


                                                                    >>> Ответь на вопрос: хорошо ли иметь везде статическую типизацию?
                                                                    >В той нише, которую (по крайней мере у меня) занимает «Питон» — нет.
                                                                    В таком случае зачем ты статически типизируешь весь свой код на питоне, если иметь статическую типизацию это плохо?


                                                                    >защититься от null
                                                                    угу.
                                                                    fun appendGood(x: Int, aList: MutableList<Int>? = null): List<Int> {
                                                                        if (aList != null) {
                                                                            aList.add(x)
                                                                            return aList
                                                                        } else {
                                                                            //return aList // Эта строчка не скомпилировалась бы
                                                                            return emptyList()
                                                                        }
                                                                    }
                                                                    Ответить
                                                                    • > мне и окошко не нужно
                                                                      > и вижу все значения енумов
                                                                      И видишь ты их не в окошке, а сразу у себя в голове?

                                                                      > Статическая типизация предлагает тебе автоматизировать то, что ты делаешь вручную.
                                                                      Вручную ты нажимаешь «Ctrl+Space», мне всё показывается автоматически, сразу после ввода «.resize(».

                                                                      > Что такое "энтерпрайзное"?
                                                                      Это умом не понять, это чуять надо!

                                                                      > Вот эта хуйня достаточно энтерпрайзна?
                                                                      Нет, это, очевидно, какая-то хипстерская питушня.

                                                                      > А Java подходит?
                                                                      Вот это да, это заебись, это надёжно.

                                                                      > WebSphere достаточно эентерпрайзен?
                                                                      Ага.

                                                                      > Какой процент из использованных тобою библиотек имели type hinting?
                                                                      Не знаю, не замерял. Доки есть везде, автокомплит (с хинтинга или автовывода) практически везде.

                                                                      > угу.
                                                                      Убери «else», бойлерплейт ненужный же.

                                                                      Кстати, как в «Kotlin» обстоят дела с установкой сторонних библиотек? Для указанной мной в начале ветки ниши это очень важно.
                                                                      Реальный пример: хочу я подключиться к «Redis»-базе и что-нибудь оттуда взять. В «Питоне» я в командной строке пишу:
                                                                      pip install redis

                                                                      После чего могу в REPL сделать «import redis» и потечь. Более никаких действий предпринимать не нужно. Как этого же добиться в «Kotlin»?
                                                                      Ответить
                                                                      • >И видишь ты их не в окошке, а сразу у себя в голове?
                                                                        я нажимаю ctrl+space, и вижу список, из которого могу выбрать клавиатурой

                                                                        >мне всё показывается автоматически
                                                                        мне тоже, но кроме того, я могу нажать ctrl+space, и выбрать.



                                                                        >Это умом не понять, это чуять надо!
                                                                        >Нет, это, очевидно, какая-то хипстерская питушня.
                                                                        Дискуссия с тобой выходит на новый уровень..

                                                                        >Вот это да, это заебись, это надёжно.
                                                                        Kotlin это Java с перделками. Не очень понятно, почему одно подходит, а другое -- нет.

                                                                        >, автокомплит (с хинтинга или автовывода) практически везде.
                                                                        Ну продемонстируй мне комплит для resample

                                                                        >Убери «else», бойлерплейт ненужный же.
                                                                        пожалуйста
                                                                        fun appendGood(x: Int, aList: MutableList<Int>? = null): List<Int> =
                                                                            aList?.apply {
                                                                                add(x)
                                                                            } ?: emptyList()


                                                                        >Кстати, как в «Kotlin» обстоят дела с установкой сторонних библиотек?

                                                                        Kotlin под JVM обычно использует гредл.
                                                                        Там ты можешь прописать нужную тебе зависимость, и сделать gradle install (или IDE само это сделает), после чего ты откроешь kotlin repl, и сможешь там писать.

                                                                        ---
                                                                        Гост, мне кажется, или ты уже начал флудить и троллить?

                                                                        Я не пытаюсь доказать, что котлин лучше python. Речь вообще не о том.


                                                                        Есть языки с обязательной статической типизацией (C#, Kotlin, Java).

                                                                        Есть без (Ruby, Python).

                                                                        У каждого подхода есть плюсы и минусы.
                                                                        По какой-то причине Python взял гибридный подход: стат типизация как-бы есть, но на самом деле нигде почти нету.

                                                                        Из того, что ты пишешь, я сделал вывод, что стат типизация тебе нравится, и ты ею пользуешься.

                                                                        Я спросил: почему не взять язык, где она уже есть из коробки везде и всегда, и привел в пример Котлин.
                                                                        Я мог бы привести Java, но Java очень вербозен по сравнению с питоном, а Kotlin менее вербозен.
                                                                        Ответить
                                                                        • > Я спросил: почему не взять язык, где она уже есть из коробки везде и всегда, и привел в пример Котлин.
                                                                          Я ответил: потому что для той ниши, в которой я использую «Питон», «Котлин» подходит плохо. Когда нужно написать и один раз (!) запустить скрипт на двадцать строчек, ебаться с «типизацией» не хочется. Для меня возможность вместо
                                                                          def append_good(x: int, a_list: Optional[List[int]] = None) -> List[int]:
                                                                              if a_list is None:
                                                                                  a_list = []
                                                                              a_list.append(x)  # ОК
                                                                              return a_list  # ОК

                                                                          Написать просто
                                                                          def append_good(x, a_list=None):
                                                                              if a_list is None:
                                                                                  a_list = []
                                                                              a_list.append(x)
                                                                              return a_list
                                                                          — это преимущество.
                                                                          Также как и возможность заткнуть тайпчекер в случае какой-то хардкорной динамушни, которая на статотипизацию в принципе плохо ложится.

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

                                                                          > Из того, что ты пишешь, я сделал вывод, что стат типизация тебе нравится, и ты ею пользуешься.
                                                                          Да, я вообще-то себя определяю как небинарного крестовика. В «Питоне» я ей пользуюсь в основном потому, что мне нравится экспериментировать с новыми концепциями и технологиями.
                                                                          Ответить
                                                                          • Гост:

                                                                            >Когда нужно написать и один раз (!) запустить скрипт на двадцать строчек, ебаться с «типизацией» не хочется.

                                                                            Тоже гост *(отвечая на вопрос "в каких случаях ты используешь стат типизацию в питоне?")
                                                                            > быстрого прототипирования

                                                                            Малость поехавший, не?

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

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

                                                                                    В языках типа Java c C# таких проблем нет в принципе
                                                                                    Ответить
                                                                                    • >typescript типизирован целиком
                                                                                      any
                                                                                      >сделан он именно ради попытки завести статическую типизацию в ужасный JavaScript
                                                                                      Попыток было много но успешным оказался именно typescript
                                                                                      >В языках типа Java c C# таких проблем нет в принципе
                                                                                      У меня вот проблема что я не могу уследить за типами в ввереной мне части проекта. Мне теперь весь проект на с# переписать? Или может только интересующие меня файлы типизировать?
                                                                                      Ответить
                                                                                      • >any
                                                                                        в java ты тоже можешь object, а в C# вообще dynamic, но без надобности никто так не делает


                                                                                        >Мне теперь весь проект на с# переписать?

                                                                                        Можно сразу взять язык где сразу из коробки статическая типизация.

                                                                                        Если тебе хочется чтобы код был статически типизирован, то можно взять такой язык.
                                                                                        Ответить
                                                                                        • >Можно сразу взять язык где сразу из коробки статическая типизация.
                                                                                          Блять, спасибо
                                                                                          Вместе со статическими языками случайно машину времени не выдают?
                                                                                          Ответить
                                                                                          • Чувак, почитай тредик с начала.

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

                                                                                            Я лишь говорю, что подход "давайте мы сделаем язык без стат типов, а через 20 лет чуть чуть добавим туда типов" -- плохой.

                                                                                            Было бы лучше, если бы в питоне или вовсе не было стат типизации, или она была бы везде и всегда изначально.

                                                                                            А мне все объясняют, что оказывается заебись, когда у тебя одна функция возвращает str, а другая непонятно что.

                                                                                            Если у тебя уже есть куча кода, то ты живешь с ним, это ок.

                                                                                            Но если ты начинаешь с ноля, то почему бы сразу не взять язык со стат типизацией (если она тебе нравится)?

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

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

                                                                                                  Мож, потому что он знает пистон, а котлин нет.

                                                                                                  Ну и связка питон+пип+вскоде+фласк как-то попроще выглядит, чем котлин+градл/мавен+ИДЕЯ+спринг(?)
                                                                                                  Ответить
                                                                                                  • >почему гост берёт для пет-проектов пистон, а не там котлин.

                                                                                                    Почему гост берет питон, и обмазывает его статической типизацией, при этом рассказывая, что языки со статической типизацией не нужны:)

                                                                                                    > как-то попроще выглядит
                                                                                                    Это зависит от того, что ты уже знаешь
                                                                                                    Ответить
                                                                                            • > Я лишь говорю, что подход "давайте мы сделаем язык без стат типов, а через 20 лет чуть чуть добавим туда типов" -- плохой.
                                                                                              Плохой для чего? Какой именно вред он приносит?

                                                                                              > Но если ты начинаешь с ноля, то почему бы сразу не взять язык со стат типизацией (если она тебе нравится)?
                                                                                              Потому что фичи (в том числе субъективные) языка с опциональной статической типизацией перевешивают фичи языков с обязательной.

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


                                                                                                * каждый раз мне не понятно: надо писать типы, или нет
                                                                                                * валидация кода майпаем ничего не говорит о корректности кода с точки зрения типов, потому что половина кода может быть ими не покрыта

                                                                                                > фичи (в том числе субъективные) языка с опциональной статической типизацией перевешивают фичи языков с обязательной.

                                                                                                Какие именно фичи?
                                                                                                Возможность не писать тип?
                                                                                                В современных языках типы и так выводятся, и писать их не надо.

                                                                                                // ko
                                                                                                fun foo() = "abc"
                                                                                                Ответить
                                                                                                • > Возможность не писать тип?
                                                                                                  Такое ощущение, что для тебя самым важным фактором выбора языка является типизация. Ты правда не понимаешь, что, например, богатая стандартная библиотека, простота установки и интеграции сторонних либ, упрощение написания кода «на коротких дистанциях» (то есть маленьких размеров), большая популярность (и, как следствие, наличие большого количества туториалов/ответов на «SO») в той нише, в которой я использую «Питон», гораздо важнее типа типизации?

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

                                                                                                    Ну она довольно важна.

                                                                                                    > богатая стандартная библиотека, простота установки и интеграции сторонних либ

                                                                                                    Это совершенно другой вопрос.

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

                                                                                                    >то почему ты предлагаешь «Котлин», а не «C++»
                                                                                                    Потому что в котлине больше новомодных свистелок и пирделок, делающих его чуть более похожим на питон.

                                                                                                    Впрочем, ГЦ -- говно, так что можно подумать и про С++
                                                                                                    Ответить
                                                                                                    • > Если бы ты сказал, что выбираешь питон по этим причинам, то я бы наверное даже не стал спорить, потому что стандартная либа там действительно мощная.

                                                                                                      Так, изначально я сказал (выделение новое):
                                                                                                      >>> Подтверждаю. Для быстрого прототипирования, написания простых повседневных скриптов и несложных веб-приложений он подходит прекрасно. С ролью интерактивного калькулятора с мощными возможностями по взаимодействию с окружающим миром он тоже справляется замечательно (уже года полтора как прописал в автозапуск «ConEmu» с шестью вкладками, в том числе с открытым «Питоном», чувствую себя замечательно).

                                                                                                      Про статическую типизацию добавил:
                                                                                                      >>> В качестве дополнительного средства по повышению надёжности и уменьшению вероятности возникновения тупых ошибок.

                                                                                                      Статическая типизация в «Питоне» для меня является дополнительной приятной плюшкой, не более того.
                                                                                                      Ответить
                                                                                • > Плохо, когда некоторые части когда вдруг почему-то иногда малость покрыты статическими типами. А другие не покрыты.
                                                                                  Почему это плохо? У некоторой части кода повышается надёжность, у другой она остаётся такой же. Что плохого в том, что хотя бы часть кода становится надёжнее?

                                                                                  > Я за или полное отсутствие стат типизации (как в руби например) или за ее полное везде наличие
                                                                                  Какой-то нездоровый максимализм, ей-говну. Может, ты ещё и против «auto»/«var»? Я видел фанатиков, которые введение автовывода называли чуть ли не крахом всей статической типизации. Мол, надо или писать всегда и везде все типы явно, или пиздовать на «JavaScript».
                                                                                  Ответить
                                                                                  • Но ведь из-за auto/var усложняется код ревью
                                                                                    Ответить
                                                                                  • > У некоторой части кода повышается надёжность, у другой она остаётся такой же.

                                                                                    - подтверждаю. Всегда уважал за это ракетку. Если нужно, пишешь контракты или вообще берёшь typed/racket, если нет, то нет.
                                                                                    Ответить
                                                                                  • >Почему это плохо?
                                                                                    Потому что
                                                                                    * каждый раз мне не понятно: надо писать типы, или нет
                                                                                    * валидация кода майпаем ничего не говорит о корректности кода с точки зрения типов, потому что половина кода может быть ими не покрыта

                                                                                    >Может, ты ещё и против «auto»/«var»?

                                                                                    auto/var не имеют никакого отношения к нашей дискуссии: статическая типизация от вывода типов не становится менее статической
                                                                                    Ответить
                                                                                    • > каждый раз мне не понятно: надо писать типы, или нет
                                                                                      Так это чисто твой выбор. Хочешь — пиши, не хочешь — не пиши. С тем же успехом ты можешь жаловаться на то, что не понятно, какой в крестах использовать отступ: в четыре или в восемь пробелов.

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

                                                                                      > auto/var не имеют никакого отношения к нашей дискуссии: статическая типизация от вывода типов не становится менее статической
                                                                                      На самом деле становится, потому что из-за автовывода ты теряешь контроль над типами. Тем не менее, я всё же за «автовывод», а пример с «auto»/«var» привёл как демонстрацию такого же фанатичного подхода.
                                                                                      Ответить
                                                                                      • >Хочешь — пиши, не хочешь — не пиши.
                                                                                        Я пишу, коллега не пишет, в сторонней либе тоже не написаны, везде зоопарк.

                                                                                        > С тем же успехом ты можешь жаловаться
                                                                                        Языки с жетским кодстайлом мне нравятся больше

                                                                                        >Валидация кода майпаем говорит о корректности покрытого типизацией куска кода

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

                                                                                        >код внезапно станет лучше.
                                                                                        Ситуация станет консистентнее.

                                                                                        >потому что из-за автовывода ты теряешь контроль над типами

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

                                                                                          > Языки с жетским кодстайлом мне нравятся больше
                                                                                          Ничего не поделаешь, языков без минусов не бывает. Кстати, если уж на то пошло, то в «Питоне» довольно жёсткий кодстайл, «PEP8» называется. В отличие от тех же крестов, кстати.

                                                                                          > Ситуация станет консистентнее.
                                                                                          Но как это повлияет на функциональность кода?

                                                                                          > И каким образом это отменяет стат типизацию?
                                                                                          Элементарно: поскольку ты не контролируешь тип переменной, ты теряешь надёжность при изменении API внешних либ. Изменяется тип возвращаемого значения — и ты об этом ничего не узнаешь, пока не словишь каких-нибудь багров.
                                                                                          Ответить
                                                                                        • А вообще, я за «автовывод», и достоверно изображать фанатичных противников «var» в «ЙАЖЕ» не смогу. Лучше почитай оригинал: https://twitter.com/java/status/967463386609954816, там в комментариев их полно.
                                                                                          Ответить
                                                                                • https://thenewstack.io/ruby-creator-yukihiro-matsumoto-on-the-challenges-of-updating-a-programming-language/
                                                                                  >And the third goal of a more-correct Ruby will come from checking errors earlier, courtesy of a type profiler which will generate Ruby signatures (likened by Matsumoto to the type-describing d.ts files in TypeScript). Ruby 3 will ship with type signatures for its core libraries, available both for type checking as well as for enhancing future IDEs.
                                                                                  Ответить
                                                                                  • # sig/merchant.rbs
                                                                                    
                                                                                    class Merchant
                                                                                      attr_reader token: String
                                                                                      attr_reader name: String
                                                                                      attr_reader employees: Array[Employee]
                                                                                    
                                                                                      def initialize: (token: String, name: String) -> void
                                                                                    
                                                                                      def each_employee: () { (Employee) -> void } -> void
                                                                                                       | () -> Enumerator[Employee, void]
                                                                                    end

                                                                                    Кажется, кто-то собезьянничил.
                                                                                    Непонятно, правда, нахуя это говно с «() ->» вместо адекватного «Callable[[arg1, arg2, ...], retType]».
                                                                                    Ответить
                                                                                  • да ёб твою мать, весь мир ебанулся, идите все нахуй, уйду в монастырь
                                                                                    Ответить
                                                                                    • Ну чо поделаешь, весь мир начинает понимать, что статическая питушня почти всегда лучше динамической питушни. Удел динамушни — скриптинг и хоумпаги.
                                                                                      Ответить
                                                                                      • Думаю что скорее системы типов стали достаточно выразительными чтобы ими было пользоваться удобно
                                                                                        Ответить
                                                                                        • Просвети, что нового изобрели после 70х, что системы типов вдруг стали выразительными?
                                                                                          Ответить
                                                                                          • В душе не ебу что изобрели, но почему-то раншье был с++98 и старая джава а сейчас дженерики, нормальные сигнатуры функций, композитные типы, еще и все выводится прямо в ide
                                                                                            Ответить
                                                                            • > Малость поехавший, не?
                                                                              Ты же понимаешь, что «прототипирование» и «write-only скриптинг» — это две разные вещи? И эти люди запрещают нам ковырять в носу флудить и троллить!

                                                                              > приведи три библиотеки с тайпхинтами
                                                                              «NumPy» (недавно заадоптили стабы), «Django» (ещё не заадоптили стабы: https://github.com/typeddjango/django-stubs), «SQLAlchemy» (тоже ещё не заадоптили стабы: https://github.com/dropbox/sqlalchemy-stubs).
                                                                              Ответить
                                                                              • >прототипирование» и «write-only скриптинг» — это две разные вещи?

                                                                                не, не понимаю. Объясни.

                                                                                Я правда не понимаю, когда стат типизация в питоне нужна, а когда нет.

                                                                                >NumPy» (недавно заадоптили стабы),

                                                                                принято

                                                                                >«Django»
                                                                                джанговские стабы покрывают от силы процентов десять джанги, содержат кучу ошибок и фолс позитивов, и скорее вредят, чем приносят пользу. См баги
                                                                                https://github.com/typeddjango/django-stubs/issues

                                                                                Вообще как тебе мысль разрабатывать тайпхинты отдельно от проекта?

                                                                                Это как если бы ты .c файлы писал, а я к ним .h файлы
                                                                                Ответить
                                                                                • > не, не понимаю. Объясни.
                                                                                  «Write-only скриптинг» — это когда тебе надо написать скрипт для решения одной конкретной задачи прямо сейчас. Выше я реальный пример приводил: зайти на сайте, скачать оттуда все картиночки, сохранить их в отдельную папку. ПРЫЩЕПЕРДОЛИКИ такое обычно скриптят на «Баше», однако, на мой взгляд, «Питон» для этого подходит лучше.
                                                                                  Такие скрипты на 10-20 строчек я обычно пишу в «Notepad++», копирую их, вставляю в «REPL» и жду выполнения. Не приходится их даже сохранять. Разумеется, в этом случае типизацию я не использую.
                                                                                  «Прототипирование» — это когда тебе, очевидно, нужно сделать прототип какого-то приложения. «MVP», «демо-версия», как это ещё называется.

                                                                                  > Я правда не понимаю, когда стат типизация в питоне нужна, а когда нет.
                                                                                  В этом вся прелесть: когда хочешь — тогда и нужна. Не нравится опциональная типизация — забудь про её существование и пиши на чисто динамическом языке. Нравится — можешь даже в «REPL» типы прописывать, никто не запрещает.
                                                                                  В общем и целом, конечно, хорошим тоном будет типизировать любой публичный проект, ориентированный на «3.5+» (или когда там типизацию завезли, не помню), но ты всегда можешь сказать, что пользователи с «3.3» тебе важны.

                                                                                  > Вообще как тебе мысль разрабатывать тайпхинты отдельно от проекта?
                                                                                  Вообще, конечно, это не очень хорошая практика (в первую очередь — потому что надо отдельно ебаться с установкой этих стабов), но прямо-таки криминального в этом я ничего не вижу. В конце-концов, в любой бульмень сложной программе разные куски будут разрабатываться разными людьми.
                                                                                  Ответить
            • Это ты так хрюкнул?
              Ответить
    • http://www.enlight.ru/post/11266/
      Ответить
    • _
               <`--'\>______
               /. .  `'     \
              (`')  ,        @
               `-._,        /
                  )-)_/--( >  jv
                 ''''  ''''
      Ответить
    • Сёма
      
      
      
               ___
               ',_`""\        .---,
                  \   :-""``/`    |
                   `;'     //`\   /
                   /   __     |   ('.
                  |_ ./O)\     \  `) \
                 _/-.    `      `"`  |`-.
             .-=; `                  /   `-.
            /o o \   ,_,           .        '.
            L._._;_.-'           .            `'-.
              `'-.`             '                 `'-.
                  `.         '                        `-._
                    '-._. -'                              '.
                       \                                    `\
                        |                                     \
                        |    |                                 ;   _.
                        \    |           |                     |-.((
                         ;.  \           /    /                |-.`\)
                         | '. ;         /    |                 |(_) )
                         |   \ \       /`    |                 ;'--'
                          \   '.\    /`      |                /
                           |   /`|  ;        \               /
                           |  |  |  |-._      '.           .'
                           /  |  |  |__.`'---"_;'-.     .-'
                          //__/  /  |    .-'``     _.-'`
                        jgs     //__/   //___.--''`
      Ответить
      • [4344/4803] Building CXX object tools/clang/lib/Sema/CMakeFiles/obj.clangSema.dir/SemaTemplate.cpp.o


        Как раз новый Шланг собираю.
        Ответить
        • Сёмафор?
          Ответить
          • пидарашки приведите реальный пример, когда вам нужны были примитивы синхронизации
            Ответить
            • семафор это разве не с железной дороги?
              Ответить
            • Так где тебе примитивы синхронизации нужны в работе?
              Ответить
            • Ура! Сёма вернулся.Я даже на секунду поверил, настолько аутентично.
              Ответить
            • Кстати, у виндоядра есть такой примитив -- Мутант!
              Ответить
          • Сёмантический анализ.

            //===------- SemaTemplate.cpp - Semantic Analysis for C++ Templates -------===//
            
            ls ../clang/lib/Sema/Sema*
            
            SemaAccess.cpp                   SemaCoroutine.cpp                SemaExceptionSpec.cpp            SemaLookup.cpp                   SemaStmt.cpp
            SemaAttr.cpp                     Sema.cpp                         SemaExpr.cpp                     SemaModule.cpp                   SemaSYCL.cpp
            SemaAvailability.cpp             SemaCUDA.cpp                     SemaExprCXX.cpp                  SemaObjCProperty.cpp             SemaTemplate.cpp
            SemaCast.cpp                     SemaCXXScopeSpec.cpp             SemaExprMember.cpp               SemaOpenMP.cpp                   SemaTemplateDeduction.cpp
            SemaChecking.cpp                 SemaDeclAttr.cpp                 SemaExprObjC.cpp                 SemaOverload.cpp                 SemaTemplateInstantiate.cpp
            SemaCodeComplete.cpp             SemaDecl.cpp                     SemaFixItUtils.cpp               SemaPseudoObject.cpp             SemaTemplateInstantiateDecl.cpp
            SemaConcept.cpp                  SemaDeclCXX.cpp                  SemaInit.cpp                     SemaStmtAsm.cpp                  SemaTemplateVariadic.cpp
            SemaConsumer.cpp                 SemaDeclObjC.cpp                 SemaLambda.cpp                   SemaStmtAttr.cpp                 SemaType.cpp
            Ответить
    • https://sun9-75.userapi.com/GOtmumoWctdkR8nlNnZiOQKoA2FfP_GktT_iNA/YZgbKFZDpJQ.jpg
      Ответить
    • Туки-туки-туки-ту,
      Хрюки-хрюки-хрюки-хрю!
      Ответить
    • (1x$a)!~/^1?$|^(11+?)\1+$/


      Эта программа проверяет число на простоту.
      Как вообще такие непонятные программы на Perl'е называются и где почитать чтобы научиться писать такие?
      Ответить
      • > где почитать чтобы научиться писать такие?

        govnokod.ru
        Ответить
      • Для начала, переведи на «PHP».
        Ответить
      • мы уже разбирали ее. Используется факт недетерменированности конечного автомата регулярок в перле.

        Чтобы постичь регулярки, советую начать с книжки с совами: mastering regular expressions
        Ответить
        • > Используется факт недетерменированности конечного автомата регулярок в перле.
          Нет, там же всё вполне детерминированно. Берём символ, повторяем его N раз, потом проверяем, что, повторив («\1+») группу из k (джвух или более) этих символов («(11+)») M раз мы можем полностью покрыть нужную строку. Если можем — автоматически получаем факторизацию: N = k*M. Очень простое и элегантное решение.
          Ответить
          • стоп

            в ДКА из каждого состояния есть только ОДИН возможный переход.
            То есть мы или завершились, или перешли в следующее состояние

            А в НКА возможно более одного перехода, и потому мы можем вернуться, и попробовать другой вариант.

            С ДКА бы такая штука как тут не сработала
            Ответить
            • Так это детали реализации, к задаче не имеющие никакого отношения, и для «Перла» не специфичные. Backreferences есть в любом уважающем себя рагулярном движке.
              Ответить
              • Скорее backtracks, не?

                Вроде бы их нету в некоторых комманд лайт утилитах позикосовых, и там ДКА
                ДКА безопасен, и никогда не бывает дольше O(N) по идее, но с ним много не сделаешь
                Ответить
                • Не, именно backreference (обратная ссылка или как её там), вроде «(a[0-9]b) \1». Эта рагулярка сначала заматчит a[0-9]b в группу 1 (a0b, a1b, ..., a9b), а потом дальше попытается заматчить содержимое заматченной группы 1 — вот это вот и есть backreference.

                  > но с ним много не сделаешь
                  Без бэктрекинга (backtracking), ЕМНИП, даже простой «+» не сделаешь в общем случае.
                  Ответить
                  • бэктрекинг это возможность вернуться назад в автомате, и попробовать снова, не?

                    Типа

                    Например написано: "взять 1 или более единиц"
                    И есть строка "1111".

                    Я -- нежаждная звездочка (*?), беру первую единицу, и иду дальше. Дальше написано "тут строка кончается"
                    Я тогда возвращаюсь, и пробую взять две единицы.
                    Итд.

                    Без этого наверное и backreference нормально не реализовать.

                    >простой «+» не сделаешь в общем случае.
                    Ну он получится possessive (или как там), когда он ухватил сначала что-то, и уже не отдает.

                    Можно реализовать "a+b"
                    А вот "a+aa" уже не получится.
                    Ответить
                    • > бэктрекинг это возможность вернуться назад в автомате, и попробовать снова, не?
                      Да, именно она.
                      Ответить
      • Тут обсуждали (и даже проводили массированные тесты и срачи): https://govnokod.ru/26800#comment559246.

        > Как вообще такие непонятные программы на Perl'е называются
        «Perl golf». И вообще «code golf» — более общее понятие (у любых языков) для попыток впихнуть програму в как можно меньшее число символов.
        Ответить
    • не "насосала", а наградили!

      Владимир Путин наградил дизайнера Артемия Лебедева медалью ордена «За заслуги перед Отечеством» II степени

      Указ опубликован на официальном портале правовой информации. В документе уточняется, что Лебедева наградили за заслуги в становлении и развитии российского сегмента Интернета. Это первая государственная награда дизайнера.Помимо Лебедева аналогичную медаль получила, в частности, руководитель компании InfoWatch Наталья Касперская.
      Ответить
    • Чо питухи, как дела? Как работа?


      На этой неделе собственный капитал основателя Amazon Джефа Безоса превысил показатель в $200 млрд, в течение года его состояние увеличилось на $84,9 млрд. По оценкам Bloomberg, состояние основателя Tesla Илона Маска перевалило за $100 млрд, увеличившись с начала года на $76,1 млрд. В результате Маск стал четвертым в списке обладателей 12-значных состояний, наряду с основателем Facebook Марком Цукербергом и основателем Microsoft Биллом Гейтсом. В сумме состояние этой четверки превышает $540 млрд.
      Ответить
      • Заебись.
        Ответить
        • почему состояние одного говнокодера на пхп перевалило за $200 млрд, а состояние друогого -- нет? Моё вот не перевалило, хотя на пхп и не пишу
          Ответить
          • Разве Безос был говнокодером на пхп?
            Ответить
            • я скорее про Марка

              Первый амазон был вроде на перле написан, не?
              Ответить
              • Не знаю. А какая в общем-то разница? Я не думаю, что Безос его сам написал.

                На Вики пишут, что он взял у родителей 300 тысяч баксов, чтобы открыть Амазон.

                А ещё пишут, что он хотел назвать Амазон Кадаброй, но пришлось поменять название, because a lawyer misheard its original name as "cadaver".

                У них в Америке туго со слухом? То google вместе googol, то кадавр вместо кадабры
                Ответить
                • Вполне мог и сам написать, но вот раскрутить без трех сотен тыщ может быть и не получилось бы
                  Ответить
                  • Он до этого несколько лет работал VP в каком-то финтехе

                    А потом вот взял и написал сайт на перле

                    Охотно верю
                    Ответить
                    • У него PhD в какой-то компьютерной хуйне, так что вполне мог и сам начать писать
                      Ответить
      • Пыня всё равно богаче.
        Ответить
    • На ворце теперь можно оставлять ссылки на примеры для определений.

      Make вореции great again
      Ответить
    • https://playboyrussia.com/prikoly/top-10-lajfhakov-iz-1990-h-kotorye-absolyutno-bespolezny-v-2020-godu-133051/
      Ответить
    • Жизнь была хороша, свободная разбойничья душа!
      А теперь, точно в ряд, валяются бандиты, будто спят,
      Гарри нам удружил - в еду, мерзавец, яду подложил,
      Не успел убежать, и пули в лоб ему не избежать!
      
      Припев:
      А ну-ка, выбей, брат,
      Ему последний зуб!!!
      Мы все покойники,
      Он тоже будет труп!!!
      
      Всем гореть нам в аду! Стервятники почуяли еду!
      Каждый, кто умирал, зуб Гарри, подползая, выбивал,
      Он хорош был в бою, а после изнасиловал свинью,
      Ржали все, как один, за это он и отомстил, кретин!
      
      Припев:
      А ну-ка, выбей, брат,
      Ему последний зуб!!!
      Мы все покойники,
      Он тоже будет труп!!!

      Уи-и-и-и! Хрю-хрю-хрю!!!
      Ответить
      • Доброе утро, гост.
        Ответить
      • >> после изнасиловал свинью

        Мерзавец! Найду Гарри и сожру целиком.

        https://i.ytimg.com/vi/yDjxAkyf7TI/maxresdefault.jpg
        Ответить
        • Откуда такая уверенность, что свинья была изнасилована? Быть может, у них всё было по обоюдному согласию...
          Ответить
        • Тело весом в 200 фунтов свиньи изнасилуют примерно минут за восемь
          Ответить
      • Хрю...
        Ответить
    • Хрюк!

      https://ru.wikipedia.org/wiki/Категория:Вымышленные_свиньи
      Ответить
      • Хильдисвини (др.-сканд. Hildisvíni, боевой вепрь) — в скандинавской мифологии вепрь,
        на котором ездит богиня Фрейя, когда не использует свою колесницу, запряженную кошками.
        
        Согласно «Песни о Хрюндле», под вепря Хильдисвини Фрейя замаскировала своего поклонника Оттара.
        Ответить
        • Богиня Фрейя встречает вёльву Хрюндлу, она будит Хрюндлу и вместе они едут в Вальхаллу. Фрейя едет на своем пожилом борове Хильдисвини, а Хрюндла — на волке.
          Ответить
      • Рассказы о свинорылых женщинах — жанр западноевропейского фольклора, возникший в Нидерландах, Англии и Франции в конце 1630-х годов: легенды о богатой даме, наделённой обычным человеческим телом и рылом (или головой) свиньи.

        Со временем вера в свинорылых женщин ослабела. Последняя значительная печатная работа, объявлявшая их существование подлинным, была опубликована в 1924 году
        Ответить
    • https://img-9gag-fun.9cache.com/photo/aAe4vGp_460svvp9.webm
      Уи-и-и-и! Хрю.
      Ответить
    • нашел на помойке lenovo s110.
      На сайте вендора написано, что там N455
      А на самом деле там n2800.

      Как так может быть?
      Ответить
      • > нашел на помойке

        такое бывает с неопытными бомжами
        Ответить
      • у леновы дохуищи инструментов:
        1) поиск по s/n чтобы посмотреть детально ВСЕ компоненты конкретно твоего устройства, которые засунули на заводе
        2) psref чтобы посмотреть какие бывали опции в данной модели для разных рынков (чтобы получить уникальные парт-номера)
        Ответить
        • просто странно, как такк: s110 с n2800 дофига
          https://market.yandex.ru/product--noutbuk-lenovo-ideapad-s110-intel-atom-n2800-1867-mhz-10-1-1024x600-2gb-320gb-hdd-dvd-net-intel-gma-3600-wi-fi-win-7-starter/7963035


          а на сайте нет

          как так
          Ответить
      • у них только на официальной странице три вореции с разными процессорами, а поиском такая кобенация находится вообще много где

        https://support.lenovo.com/ru/en/solutions/pd023081
        Ответить
      • Срослись ветка сакуры и сидящая на ней птица.
        Я отказываюсь верить своим глазам:
        Между ними должен быть промежуток.
        Ответить
        • ваншид
          Ответить
        • У моста через реку Синано
          Святилище осквернили
          Предали плотским утехам монаха
          Священный колокол стоит нечист
          Ответить
          • Цветом красным опять
            Иде мне кричит.
            Собачку поставлю
            Ответить
            • Это одна из тех причин,
              По которым я прочим языкам программирования
              Предпочёл «PHP».
              Ответить
              • Хорошо писать код
                Даймё не к лицу.
                Предпочту «PHP»
                Ответить
    • Немного «русского рока» в ленту:
      https://www.youtube.com/embed/KVYuJ-y-01Y

      Хрю!
      Ответить
    • «Хрюкни №1» и «Хрюкни №2» удалены военной цензурой.
      Ответить
    • https://i.imgur.com/EMulMhS.jpg
      Хрю.
      Ответить
      • Кто из них минипиг?
        Ответить
        • Не знаю. Слева направо: свин, собака. Ну и ещё на заднем фоне какая-то лысая обезьяна.
          Ответить
      • Хахаха

        https://d.radikal.ru/d01/2009/88/80dcd8a1dfc7.jpg

        О сколько нам ковидов чудных
        Ответить
    • https://pbs.twimg.com/media/Eg1UxN-X0AYP2oV?format=png&name=900x900
      Ответить
    • чувак десять лет думал, почему код говно
      а потом понял: надо просто писать нормальный код
      https://habr.com/ru/post/517404/
      Ответить
      • Как бороться с багами? Надо просто писать код без багов!
        Ответить
        • Жизнеспособность в долгосрочной перспективе
          Минимум кода, максимум логики
          Чёткая организация
          Строгая типизация
          Удобная абстракция от внешних систем
          Хорошее лучше плохого
          Ответить
          • Какие лозунги )))
            Ответить
            • это не лозунги
              это реальные подзаголовки из той статьи
              Ответить
              • это всё для анскильных
                Ответить
                • а что для скильных?
                  Ответить
                  • - «PHP»
                    - «Notepad++»
                    - Писать без отступов, чтобы мозг не расслаблялся
                    - Не строгая питушиная типизация
                    - Быстрое лучше долгого
                    - Процедурный стиль, отсутствие абстракции (кода, который ничего не делает)
                    Ответить
                    • > абстракции (кода, который ничего не делает)

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

                            https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html

                            https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html
                            Ответить
                    • - FTP+TotalCommander-based deployment еще
                      Ответить
                    • > «Notepad++»
                      что за хуйня
                      Total Commander умеет прямо на фтп-сервере править код же!
                      Ответить
      • Почему это в «Хрюкни»?
        Ответить
      • > Задолбало думать куда положить очередной сервис, в какую сборку поместить интерфейс, в какой неймспейс кинуть DTO-шку.

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

        > Вбивать руками тестовые данные, которые уже, блин, лежат в базе — тоже не хочу. Разве умная машина не может сделать это сама?

        Вообще от разработчика заднего конца с более чем десятью годами опыта ожидаешь меньшую концентрацию лютой дичи
        Ответить
    • https://youtu.be/IBrOycQb3ek
      Ответить
    • На правах рекламы:

      заходите на vorec.space, логиньтесь с аккаунтом на гк и развивайте глоссарий!

      Теперь можно просматривать все редакции для конкретного определения с датой и авторством, указывать причину добавления редакции и добавлять примеры использования в виде ссылок на посты или комментарии на гк
      Ответить
    • ЕБАТЬ КОСТЫЛЬ


      Given this, you may wonder how Netty can support NIO (АСИНХРОННАЯ ПИТУШНЯ) with the same API used for
      asynchronous transports. The answer is that Netty makes use of the SO_TIMEOUT Socket
      flag, which specifies the maximum number of milliseconds to wait for an I/O operation to complete. If the operation fails to complete within the specified interval, a
      SocketTimeoutException is thrown. Netty catches this exception and continues the
      processing loop. On the next EventLoop run, it will try again. This is the only way an
      asynchronous framework like Netty can support OIO (СИНХРОННАЯ ПИШУТНЯ).
      Ответить
    • Я хуй знает что это, но, кажется, весьма соответствует настоящему левому поветрию

      https://www.animefeminist.com/
      Ответить
      • Vrai is a genderqueer, autistic author and pop culture blogger; they’ve fully embraced their lifetime role as a lover of trash. You can read more essays and find out about their fiction at Fashionable Tinfoil Accessories, listen to them podcasting on Soundcloud, support their work via Patreon, or check out their Twitter for freelance articles and Yu-Gi-Oh feels.
        Ответить
      • не могу прочитать длинное слово

        антифеминист? анимефетишист?
        Ответить
        • Анимефашист.

          Ein 2D. Ein kawaii. Ein katzenmädchen. Nya!
          Ответить
          • Да хватит уже, всем известно, что ты гомо.
            Ответить
            • Гомоиконность?
              Ответить
              • дружище, не отвечай уёбку, пожалуйста
                Ответить
                • А может кто-то сделает непрерывно обновляющийся список уебков, чтобы я знал, кому не надо отвечать?
                  Ответить
                  • хорошая мысль, я подумаю в выходные. Спасибо. правда, в этом случа понятно и по комменту
                    Ответить
                    • много лет назад уже обсуждалось
                      сделать хорошо несложно
                      но для этого надо будет регистрироваться где-то ещё кроме говнокода
                      Ответить
                      • вот так можно
                        https://govnokod.xyz/_26896/#comment-556755
                        Ответить
                      • Пачиму

                        Это в теории может сделать gost на нгк. Собирать статистику по тому, сколько каждого пользователя добавили в игнор. Если больше там пяти раз или десяти, то это однозначно рак и можно его шедоубанить.

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

                        Хотя, если я сижу с трёх устройств, то уже три раза рака заигнорю, а потому, как считать количество игноров, всё же загадка
                        Ответить
                        • > Собирать статистику по тому, сколько каждого пользователя добавили в игнор. Если больше там пяти раз или десяти, то это однозначно рак и можно его шедоубанить.
                          на что рак создает 1000 аккаунтов и банит ими 5 адекватных юзеров нгк
                          вин
                          Ответить
                          • да не, добавлять в список могут доверенные перцы
                            Просто опубликуйте тут свои публичные ключи например, а автор банлиста даст вам по ним пермишен добавлять уёбков
                            Ответить
                            • Что делать в спорных случаях? Когда вроде и уёбок, а вроде и нет.
                              Ответить
                              • ну каких спорных?))
                                Ты типа сомневаешься, что высер про "гомо" уёбок написал?

                                Уёбкодетектор делается элементарно
                                Даже дети видят тут рак:
                                http://govnokod.ru/user/26216/codes
                                Ответить
                                • Тем не менее, в его первых тредах весь ГК отметился.
                                  Ответить
                                  • Рак прогрессирует.
                                    Пять лет назад оно чего-то там хрюкало про дельфи и даже про вин32апи, а гомопедофилия была там на периферии сознания.

                                    Теперь оно пизданулось окончательно, и больше не нужно.

                                    Забавно кстати, что оно часто атакует именно тебя: по какой-то причине у него на тебе пунктик)
                                    Ответить
                                    • Ну Борманд раньше первородного рака много консультировал по вопросам погромирования

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

                                      Борманд наверное просто запомнился лучше всех
                                      Ответить
                                      • борманд не гнушался отвечать уебку дольше всех, даже когда уебок был в острой стадии
                                        Ответить
                                        • Да и я и сейчас бы ему ответил. Если бы видел дольше одного коммента, лол.
                                          Ответить
                                      • Да, может привязался, или там у него гомоэротический интерес какой-то проснулся, не знаю) Рак даже его аккаунт подделать пытался, аватарку пиздил.

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

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

                                            Хотя может быть и конардо: он тоже ебанутый
                                            Ответить
                                            • А может это я
                                              А может это ты
                                              А может это д++

                                              Я бы советовал не реагировал на ответы уёбку коронной фразой, а игнорировать. Не так много говна щас на гк, чтобы заводиться.

                                              Ну, или если это про просто попиздеть, то чому б ни
                                              Ответить
                                              • Угу. Когда ты пишешь "не отвечай уёбку", ты даешь этому самому уёбку смысл жизни.

                                                Это даже хуже прямого ответа уёбку. В прямом ответе обычно стеб какой-нибудь, а тут видно, что у тебя от подгорает. И уёбку это нравится.
                                                Ответить
                                                • vanished
                                                  Ответить
                                                • Смотри: мы уже знаем, что отвечать уёбку не надо

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

                                                  Полный игнор уебана спас бы ситуацию
                                                  Ответить
                                                  • > Полный игнор уебана спас бы ситуацию

                                                    Нужно прийти и физически отпиздить уебана - вот это спасло бы ситуацию.
                                                    Ответить
                                                    • ох) ну сделай
                                                      я тебе пива куплю, если сделаешь
                                                      Ответить
                                                  • Хороший вопрос, зачем отвечать на "проглоти мою скверну", кто бы это не написал
                                                    Ответить
                                                • Зато раньше все отвечали уёбку, и было похуй. А после того, как я начал форсить не отвечать, уёбка почти не стало.
                                                  Ответить
                                                  • Ну это опять спор как про вчерашний закон. Уебка почти не стало с тех пор как на зеркалах крестик появился.
                                                    Ответить
                                              • >А может это я
                                                нет
                                                >А может это ты
                                                нет
                                                >А может это д++
                                                нет
                                                Ответить
                                                • Откуда ты знаешь?

                                                  Нет, серьёзно.

                                                  То есть, говоря о ресурсе, где в своё время ЛиспГовно пиздел с другими своими файками для поддержания дискуссии, где многие люди сидят под несколькими аккаунтами, а некоторые каждую неделю заводят новый, где под guest8 вообще может прилететь даже небо даже аллах, ты категорически утверждаешь, что знаешь, кто флудер и спаммер, а кто нет?
                                                  Ответить
                                                  • Оттуда, что я много общался с вами, и с вероятностью 90% могу сказать, что вы не будете повторять тупую шутку уровня пятого класса про госомосека. Даже если бы вы решили флудить, то делали бы это не так
                                                    Ответить
                                                    • Именно поэтому я за «PHP».
                                                      Ответить
                                                    • Эм, а может быть мы специально, чтобы ты на нас не подумал?
                                                      Ответить
                                                    • Многие маньяки успешно избегали подозрений как раз потому, что были на хорошем счету у коллег и друзей.

                                                      И потом ты сам оставил 10% вероятности на то, что мы всё-таки будем.

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

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

                                                      А так инканус после того, как рак подосрал ему с псевдоакком, почему-то плодит аккаунты со страшной силой, хотя называть его уёбком это как минимум несправедливо
                                                      Ответить
                                  • ГК не против отметиться в любом флудотреде, даже если его уёбок начал, тут ничего удивительного
                                    Ответить
                            • я бы лучше выбрал неуебков из вайтлиста, чьи блеклисты хотел бы мёржить в свой
                              ну и если есть неоднозначность, то по весам - лишь бы -50% пробивало в рейтинге
                              Ответить
                              • Да можно и 100%.

                                Другое дело, что тогда надо отделить "уёбок" (публичный список) и "мне не нравится" (приватный список). И в публичный список вносить только полных, стопроцентных уёбков.

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

                                                кстати, ban for 4 hours, как в телеге есть mute — охуенная бы тема
                                                Ответить
                                • норм

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

                                    тогда уже не самоподписанный, а подписанный сервером нгк, и 2-way ssl авторизацию, что всё больше соответствует "регаться на втором ресурсе", и как следствие "я доверяю серверу и всем данным, которые он мне сообщил, что это блеклист борманда"
                                    Ответить
                                    • Ну прецедент с привязкой учёток у Десктопа уже есть. Можно по той же схеме, в принципе.
                                      Ответить
                              • Нажать крестик в профиле — дело 5 секунд. Есть клон твиттера под названием mastodon (опустим технические детали про то, что это лишь одна из имплементаций протокола), где свой инстанс админит может каждый 10й. В итоге 80% обсуждений сводится к тому, кого сегодня добавить в блок-листы, и уже несколько лет как читать это дело стало невозможно. Дай группе людей (хоть на гк) доступ к минимальной власти над кем-то, и они превратятся в старушек на скамейке, а все обсуждения сведутся к тому, кто наркоман, а кто проститутка.
                                Ответить
                                • а зачем давать статистику, чьи блеклисты я замержил? это моё личное дело, и уж точно никакая не власть
                                  также, как и твое личное дело отвечать уебку, видеть как кто-то отвечает уебку или скрыть уебка (или скрыть обоих!)
                                  Ответить
                                  • Мой главный поинт не про власть, а про деградацию дискурса. Я, лично, не люблю обсуждать людей и читать такие обсуждения, а к этому всё неминуемо сведётся, если каждого (пусть и потенциально) сделать модератором. ГК не под гигабитным ддосом баграми, слава богу, чтобы какими-то техническими средствами за пределами блока в бесконечном стоке это решать.
                                    Ответить
                                    • ну я тут тоже твою точку зрения понимаю, и текущая ситуация с антираком вполне устраивает
                                      но хотелось бы синхронизации на 3 девайса, например

                                      а так просто вместо обсуждения технической стороны вопроса снова всё скатилось в галдёж
                                      Ответить
                                      • > синхронизации на 3 девайса

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

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

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

                                              Предварительный вореант:
                                              1. Юзер заходит в настройки и нажимает кнопку «синхронизировать»;
                                              2. Юзеру выдаётся трёх-четырёхзначный кот, действующий в течение N минут/часов;
                                              3. На другом девайсе юзер заходит в настройки, вводит код синхронизации и получает свой список уёбков/постов/кастомный фильтр.

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

                                          в локалсторадж - пожалуйста, оппишись

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

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

                                    Лол, уйдут на соседнее зеркало или свое форкнут. Тоже мне власть. Тут каждый первый может сервак поднять, просто ленится.
                                    Ответить
                        • > сколько каждого пользователя добавили в игнор

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

                            На практике не уверен. Щас-то с раковых аккаунтов какой-то шалопай срёт, а не профессиональный флудер
                            Ответить
                            • Ну порефрешить страницу из тора много ума не надо.
                              Ответить
                        • Глобальный скор / глобальная карма уязвимы и ублюдочны, ибо превращают любой сайт в швабр. Просто блочь уёбков на своей стороне, расслабься и получай удовольствие, а за других не беспокойся.
                          Ответить
                        • > Собирать статистику по тому, сколько каждого пользователя добавили в игнор.
                          В текущей парадигме не могу: на НГК не логгируется событие «юзер добавлен в список уёбков» (оно вообще чисто клиентское).
                          В теории, конечно, можно из access.log погрепать список тех, кого игнорили, но это будет просто список запросов без какой-либо вменяемой статистики.

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

                          P. S. Сезонная итерация обсуждения блоклиста на ГК. Какое постоянство )))
                          Ответить
                          • Да.

                            В этом сезоне мы уже заново прошли исключения.
                            Теперь вот игнор раков.
                            Что там следующее по программе? Кавычки и даты в пхп?
                            Ответить
                          • > Сезонная итерация обсуждения блоклиста на ГК.

                            Опять сентябрь. Опять школа. Опять уебки на ГК.
                            Ответить
                  • > единый реестр уёбков

                    Ты будешь обязан читать его не реже 2 раз в день. А если выгрузка помечена флагом "срочная" - то ты обязан применить её не позднее, чем через час. Ну и твои запросы должны быть подписаны электронной подписью.
                    Ответить
                    • И всё это будет обходиться добавлением пробела к заголовку Host или точки к домену.
                      Ответить
                    • Хуз и сток будут его синкать раз в сутки и удалять говно, а на ру сделаем скриптлет
                      Ответить
                    • >А если выгрузка помечена флагом "срочная" -

                      Надо просто держать ZMH с 12 до 13 по Москве. В этот час ты должен быть готов получить срочное сообщение
                      Ответить
              • не отвечай уебку ™
                Ответить
              • Гомо сапиенс же.
                Ответить
              • Нахуй ты отвечаешь уёбку?
                Ответить
          • > Анимефашист.

            Да это ж среднестатистический юзер pleroma. Из-за них Goolag даже приложения для доступа в fediverse выпилил.
            Ответить
        • any mefe minist

          Что-то про Мефистофеля или про министра.
          Ответить
          • Мессир, не могли бы Вы хрюкнуть пару раз? Это ведь совсем несложно.
            Пожалуйста, мессир!..
            Ответить
    • Хрю. Ну вроде пережили этот тайфун майсак диг. Так чуть чуть подул легкий ветерочек.
      https://youtu.be/Dh6tu-VwL8g
      Ответить
    • https://i.imgur.com/YbzfR3R.jpg
      Хрю-Хрю.
      Ответить
    • Захотелось купить
      https://a.aliexpress.com/_ePb7Cb
      Ответить
    • А старорусский по произношению такой же, как русский? Есть разница, или только в письменном?
      Ответить
      • Вспомним артефакты древнерусского.

        В древнерусском не было мягких «г», «к», «х» (вместо них употреблялись «зь», «ч», «сь»; до сих пор можно встретить артефакты этого чередования, особенно в украинском и в белорусском).

        Буквы «ъ» и «ь» обозначали редуцированные гласные. В болгарском буква «ъ» сохранилась в первоначальном значении. В русском редуцированные гласные остались только в безударном положении (сейчас они могут обозначаться буквами «о», «а», «е», «и»), ударные исчезли.

        Были «юсы», обозначающие носовые гласные. Сейчас носовые остались только в польском (не чисто носовые, как во французском, а сочетание обычной гласной с кратким носовым звуком). В русском артефакт носовых гласных — это чередование «пламя — пламени». Так вот вместо «я» и «ен» в этом реальном примере было «е носовое».

        Буква «ять» обозначала специальный звук. Вероятно, это был восходящий дифтонг «иэ» с кратким «и» и долгим «э». Такой дифтонг сохранился только в литовском и в латышском. В современном русском «ѣ» заменили на «е», в украинском — на «і», в болгарском — на «я», т. е. специальное значение полностью исчезло.

        • Мягкие «г», «к», «х» появились уже к началу старорусского периода.
        • «Ять» точно путали с «е» в XVIII веке, т. е. к концу старорусского периода. Когда впервые возникла путаница, нужно копать.
        • Носовых к концу старорусского периода точно уже не было. Опять нужно копать, когда они исчезли.
        Ответить
        • А не уебку ли ты часом ответил, чувачок?
          Ответить
        • >до сих пор можно встретить артефакты этого чередования,
          Совершенно верно: Дарога, но па дарозе. Но в русском тоже бывают чередования. Друг -- дружба. Бог -- боже.

          >Такой дифтонг сохранился только в литовском и в латышском
          А "ia" в польском не от него? Белый -- biały.

          >Носовых к концу старорусского периода точно уже не было
          Они чуть ли не первыми отвалились. Удивительно, как поляки их сохранили
          Ответить
          • В польском просто другая орфография. Там буква «i» обозначает не только гласную, но ещё иногда просто обозначает мягкость предыдущей согласной (как наш современный мягкий знак, но только не добавляет «йот» к звучанию).

            То есть biały — это просто «b мягкое», за которым следует «ały».

            Причём в польском нет единого обозначения мягкости. Для некоторых согласных она обозначается штрихом наверху, типа знака ударения: «koń» = «конь». НЕКОНСИСТЕНТНОСТЬ!

            В румынском и в молдавском после перехода на латиницу «і» тоже иногда стал обозначать мягкость. А чтобы обозначить мягкую согласную, за которой идёт «и», приходится «і» удваивать. А чтобы обозначить «ий» после мягкой согласной, приходится писать три «і» подряд.

            А вот в румынском есть странные дифтонги, например, восходящий дифтонг «ea» с кратким «e» и долгим «a», который при транслитерации на русский обозначают буквой «я».
            Ответить
            • Хотя исторически biały — это же бѣлый. Возможно, поляки, как и болгары, поменяли «ѣ» на «я».
              Ответить
              • >Хотя исторически biały — это же бѣлый.
                и я о том же;)

                >поляки, как и болгары, поменяли «ѣ» на «я».
                Угу. Например у болгар есть пясцы -- пески. Кстати, так можно угадывать, какое слово имело е, а какое ять. Находишь это слово у украинцев или болгар, и если там "i" и "я", то вот оно.
                И кстати: piasek

                А вот у беларусов часть ять видимо стала "е", а часть "я". Пясок, но белы.
                Ответить
                • У белорусов то другое: у них безударное «е» стало «я». Везде: сяло, бяроза.
                  Ответить
                  • так ять сначала стало е, а потом безударное стало я?

                    >сяло
                    я думал, у них вёска. Это от нас намело им, наверное
                    Ответить
                    • Да. Белорусы сожгли все мосты, отказавшись от орфографии в пользу фонетики. Это очень смелый эксперимент: читать слова стало легче, а восстанавливать этимологию — труднее.
                      Ответить
                      • Ага. Як слышыцца, так i пiшацца. Украинцы примерно так же сделали, только у них не слышыцца, а чується :)
                        Ответить
                        • Блядь, как всё несложно. Именно поэтому я за «английский»*.

                          * Здравствуйте, меня зовут Sean.
                          Ответить
                          • У французов еще больший пиздец, как грят. Renault -- рено. Это же ебануца.

                            Но зато чуть меньше исключений.

                            >Sean
                            Привет, Шон. Do like sea?
                            Ответить
                • >Пясок, но белы.
                  Я почитал.

                  Е и Ё превращаются в Я в безударном слоге, за которым следует удараный.
                  Пясок , но белы

                  Это же распостраняется и на предлоги не и без

                  ня буду не хочу

                  Довольно естественно, если попробовать так говорить.

                  https://knihi.com/storage/padrucnik/vymaulennie_ru.htm
                  Ответить
          • >> Дарога, но па дарозе.

            Мягкие «г» и «к», как оказалось, многим народам даются с трудом.

            У сербов есть две странные закорючки, которые читаются как «джь» и «чь» (да, у них ещё есть «дж твёрдое» и «ч твёрдое», попрошу не путать). Вот эти «джь» и «чь» употребляются вместо наших «гь» и «кь». Македонцы не стали рисовать закорючки, а выбрали буквы «ѓ» и «ќ».

            У мадьяров есть «gy», который читается ближе к нашему «дь». Ещё есть «ty». Пусть лингвисты подскажут, к чему оно ближе: к «чь», к «ть» или к «ць».

            У латышей есть «ģ» и «ķ», которые читаются близко к нашим «дь» и «ть» (по крайней мере латыши эти буквы используют для транслитерации наших «дь» и «ть», например, в матерном ругательстве «bļeģ», да, тут «е» открытая).

            У кого, кроме русских, есть чистые «гь» и «кь»? У поляков точно есть. А ещё у кого?
            Ответить
            • >Мягкие «г» и «к», как оказалось, многим народам даются с трудом.

              Ну то есть гэ фрикативное, как хэ, и сделать его мягким трудно, потому оно заменяется на з? Друг -- друзі.

              >У кого, кроме русских, есть чистые «гь»
              AFAIK, украинцы завезли себе мягкую гэ в 90-е (гэ с такой шапочкой -- Ґ), оно может быть мягкое, наверное, не?
              Ответить
              • «Гэ с шапочкой» взрывное, как русское. А чтобы понять, бывает ли оно мягким, нужно найти реальный пример.
                Ответить
        • Ебать ты олд.
          Ответить
        • Тут одна обезяна книжку советовала, думаю может правда почитать )))
          Ответить
          • на древнерусском?
            Ответить
            • Да.
              Ответить
              • филологиню чтоль натиндирил себе?
                Ответить
                • Нет.
                  Ответить
                  • Ну вот тогда тебе, читай
                    https://russian7.ru/wp-content/uploads/2013/01/01a.jpg

                    Яга Баба с крокодилом(?) едет на свинье, лол
                    Ответить
                    • А это не современный лубок? А то современные художники шутят:

                      https://i.pinimg.com/736x/dd/2b/01/dd2b01270752ce64d2a94112f1a111e5.jpg
                      Ответить
                • - Филфак?
                  - Йес, ай фил
                  Ответить
                  • Кто о чём, а дефекате о хуях.
                    Ответить
                    • Вечерняя молитва за здравие ЖМЖ
                      Ответить
                      • Хорошо, больше не буду поднимать запретные темы
                        Ответить
                      • Если выбирать между тем, о чем пишет стертор, и жмж, то я за второе. Но нужно очень крепкое здоровье иметь
                        Ответить
                        • Скорее очень крепкие нервы.
                          Ответить
                          • В смысле они будут ебсти тебе мозги одновременно?
                            Ответить
                            • Именно поэтому я за МММ.
                              Ответить
                              • сколько уровней в этой иронии?
                                Ответить
                              • фу-фу-фу, никогда не думал о фразе "у МММ нет проблем" в этом, так сказать, контексте.

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

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

                                Это ЖЖЖ неспроста
                                Ответить
                              • Не поэтому ли персонажа рекламы МММ звали Лёня Голубков?
                                Ответить
                        • Зачем? Зачем ты читаешь то, о чём пишет стертор?
                          Ответить
                          • Ну так рак меняет ники (обычно он пытается подделать чужок ник -- это типа такой остроумный йумор) и я вижу его понос некоторое время, прежде чем успеваю добавить уёбка в игнор
                            Ответить
                            • То есть тебя он должен косплеить под ником КАКАХА?
                              Ответить
                              • это для рака слишком тонко.
                                Обычно он пишет там hormand или inkanus_grey
                                ну и аватарку такую же ставит

                                ебаное днище же
                                Ответить
                                • Я знаю, как он пишет.

                                  Большинство этих аккаунтов у меня в игноре уже давно.

                                  А ты как будто из криокамеры
                                  Ответить
                            • > некоторое время

                              1 коммент?
                              Ответить
    • https://www.newsvl.ru/vlad/2020/09/06/192847/
      Кому морских хуев подогнать?
      Ответить
    • Хрю.
      Ответить
    • Хрю!
      Ответить
    • А у меня Хайшен, звучит как очередной очередной тайфун с японского моря
      Яркий солнечный день: https://i.imgur.com/010d920.jpg
      Ответить
      • Ахуеть у вас там деревьев.
        Ответить
        • Да почему то многие говорят так. Когда кидаю фотки части города. Некоторые говорят напоминает апокалипсис, где люди покинули дома а зелень захватила город.
          Не ушто у тебя в Новосибе плохо с деревками?
          Ответить
          • Х.з., я у себя из окна вижу больше домов, чем деревьев. А тут прям лес сплошной. Может у вас просто дома ниже, поэтому такой эффект?
            Ответить
            • Ну у нас весь город на сопках на ходиться, и иногда очень большая гродация высот выходит + да у нас запрещено огромные высотки строить из-за зоны сейсмической активности. + Фотка сделана в сторону сопки холодильника - там домов нет практически, только частные. Сопка принадлежит воякам.
              Ответить
              • > у нас весь город на сопках на ходиться
                как-же я вам за видую
                Ответить
                • > за видую

                  Ага, заебись по сопкам скакать на работу, наверное.
                  Ответить
    • Перекат!

      https://govnokod.ru/26928
      https://govnokod.xyz/_26928/
      Ответить
    • http://www.leningrad.su/museum
      Ответить
    • АДМИН СМОТРИТ ДОМ-2
      Ответить
    • АДМИН СМОТРИТ ДОМ-2
      Ответить
    • Уиии!
      Ответить

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