Что сложно дается ChatGPT?
От: Shmj Ниоткуда  
Дата: 22.01.23 11:48
Оценка: 3 (1)
Надеюсь, вы уже попробовали ChatGPT?

Вопрос такой. Заметили ли вы его слабые стороны?

Одна из очевидных — малый контекст. Т.е. в него нельзя загрузить весь свой проект — можно только 1 экран кода, грубо говоря, и уже по одному конкретному вопросу работать.

Второе что сложно дается, вот что заметил. Там где много нюансов.

Вот сконфигурировать Kuber — он может. А написать прогу под конкретный микроконтроллер с учетом его нюансов — уже не может, только в общем виде. Предлагает взять документацию мне самому и разбираться — я думал это твоя работа, железка несчастная.

Вопрос такой — почему ему сложно написать прогу под конкретный микроконтроллер? Даже простую прогу. Пытается как бы выйти из ситуации общими словами, но даже одну строчку кода сложно из него выдавить — хотя одну таки выдавил, но не более.
Re: Что сложно дается ChatGPT?
От: LuciferSaratov Россия  
Дата: 22.01.23 12:11
Оценка: 3 (2) +3
Здравствуйте, Shmj, Вы писали:

S>Вопрос такой. Заметили ли вы его слабые стороны?


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

S>Вот сконфигурировать Kuber — он может.[..]

S>Вопрос такой — почему ему сложно написать прогу под конкретный микроконтроллер?

потому что это модель для генерации текста, и что она "знает" или "не знает", зависит от того, что за тексты в процессе обучения скармливались этой модели.
поскольку текстов про Kuber в энторнэте навалом, вот она их и генерит хорошо.
а текстов про конкретный микроконтроллер мало, поэтому генерит плохо.
я просил её сгенерить текст программы для PlayStation 4 — начало нести убедительно выглядящую (для незнакомого с разработкой под PS4) чушь.
Re[2]: Что сложно дается ChatGPT?
От: Shmj Ниоткуда  
Дата: 22.01.23 12:18
Оценка: :)))
Здравствуйте, LuciferSaratov, Вы писали:

LS>а текстов про конкретный микроконтроллер мало, поэтому генерит плохо.


Зачем много? Для этого контроллера есть документация и примеры кода — неужели оно не может их взять и изучить? Оно же само меня отсылает к документации — но почему же не хочет читать?
Отредактировано 22.01.2023 12:19 Shmj . Предыдущая версия .
Re[3]: Что сложно дается ChatGPT?
От: pagid_ Россия  
Дата: 22.01.23 12:58
Оценка: +3
Здравствуйте, Shmj, Вы писали:

S>Зачем много? Для этого контроллера есть документация и примеры кода — неужели оно не может их взять и изучить? Оно же само меня отсылает к документации — но почему же не хочет читать?

А ты его ни с кем не путаешь?
Re[3]: Что сложно дается ChatGPT?
От: Baiker  
Дата: 22.01.23 13:02
Оценка: :))
Здравствуйте, Shmj, Вы писали:

LS>>а текстов про конкретный микроконтроллер мало, поэтому генерит плохо.


S>Оно же само меня отсылает к документации — но почему же не хочет читать?


Эх, лапоть! А КАМЕРУ ты к компу подключил? Нет! Вот он и не может читать.
Re: Что сложно дается ChatGPT?
От: Baiker  
Дата: 22.01.23 13:05
Оценка: 1 (1) +3 -1 :))
Здравствуйте, Shmj, Вы писали:

S>Надеюсь, вы уже попробовали ChatGPT?


Нет, конечно! Я что, дебил с железом разговаривать?? У меня для этого кот есть.

А касательно программ, твои потуги напоминают известный анек собрать миллион мартышек возле печатной машинки в надежде напечатать "Войну и Мир".
Re[4]: Что сложно дается ChatGPT?
От: Shmj Ниоткуда  
Дата: 22.01.23 13:15
Оценка:
Здравствуйте, Baiker, Вы писали:

B>Эх, лапоть! А КАМЕРУ ты к компу подключил? Нет! Вот он и не может читать.


У него есть в базе данные для этого контроллера.
Re: Что сложно дается ChatGPT?
От: rudzuk  
Дата: 22.01.23 13:47
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Надеюсь, вы уже попробовали ChatGPT?


Нет, он тилифон хочет.
avalon/3.0.2
Re[3]: Что сложно дается ChatGPT?
От: bnk СССР http://unmanagedvisio.com/
Дата: 22.01.23 14:02
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Зачем много? Для этого контроллера есть документация и примеры кода — неужели оно не может их взять и изучить? Оно же само меня отсылает к документации — но почему же не хочет читать?


Если (когда?) оно так научится делать, разработчики станут не нужны.
Re[2]: Что сложно дается ChatGPT?
От: bnk СССР http://unmanagedvisio.com/
Дата: 22.01.23 14:15
Оценка: +1
Здравствуйте, LuciferSaratov, Вы писали:

LS>я просил её сгенерить текст программы для PlayStation 4 — начало нести убедительно выглядящую (для незнакомого с разработкой под PS4) чушь.


+1.

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

Хорошо бы хотя бы "индикатор уверенности" в ответе какой-нибудь приделали в следующей версии что ли

Для доверия на сайтах типа stackoverflow или хабра для этого есть репутация, рейтинг. Если кто-то напишет полную чушь, его заминусуют.
А поскольку сейчас это ChatGPT в единственном экземпляре, вразумить его пока некому, так что чушь оно может нести безнаказанно.
Отредактировано 22.01.2023 14:25 bnk . Предыдущая версия .
Re[4]: Что сложно дается ChatGPT?
От: Shmj Ниоткуда  
Дата: 22.01.23 14:17
Оценка: 1 (1)
Здравствуйте, bnk, Вы писали:

bnk>Если (когда?) оно так научится делать, разработчики станут не нужны.


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

Вот вы сможете написать прямо сейчас чтобы на уровне кубер была поддержка SSL-сертификата от Let's Encrypt, лоад-балансер и 3 рабочие ноды на основе Docker? Не думаю что сможете — нужно читать достаточно много документации, готовое тоже не просто найти. А оно смогло.
Re: Что сложно дается ChatGPT?
От: vsb Казахстан  
Дата: 22.01.23 15:07
Оценка: 9 (4) +3
Здравствуйте, Shmj, Вы писали:

S>Надеюсь, вы уже попробовали ChatGPT?


S>Вопрос такой. Заметили ли вы его слабые стороны?


У него нет экспертных знаний.

Он натренирован на интернете. В интернете 99% знаний от нубов и для нубов, 1% знаний от экспертов. Инструмент по сути статистический, поэтому он выдаёт ответы, подходящие для нубов.

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

S>Одна из очевидных — малый контекст. Т.е. в него нельзя загрузить весь свой проект — можно только 1 экран кода, грубо говоря, и уже по одному конкретному вопросу работать.


Ну на таком уровне я вообще не пробовал. Думаю, что для реальной работы Чату нужна хорошая интеграция с IDE. А не через окошко в браузере с ним взаимодействовать.

S>Ну для Кубера оно смогло сделать конфигурации, их без чтения тоже не так просто сделать.


А вот скажи, ты эти конфигурации сам вообще проверял? Т.е. пробовал поставить кластер, следуя советам от Чата? Реальный кластер на реальном (или виртуальном) железе. С этим самым LetsEncrypt. Задеплоить туда статический <p>Hello world. Потом ещё было бы неплохо поддерживать этот кластер в течение некоторого времени, делать апгрейды нод. А то ведь дьявол-то в деталях.

S>Вот вы сможете написать прямо сейчас чтобы на уровне кубер была поддержка SSL-сертификата от Let's Encrypt, лоад-балансер и 3 рабочие ноды на основе Docker? Не думаю что сможете — нужно читать достаточно много документации, готовое тоже не просто найти. А оно смогло.


Так уж получилось, что я последний год с разной степенью интенсивности работаю с кубером. Я поднял кластер для своей текущей компании, полностью с нуля, в том числе и TLS там настраивал с относительно нетривиальной конфигурацией (часть хостов для внутренней сети, часть для внешней).

Сразу замечу. На основе Docker в 2023 году куб поднимать это полная глупость. Куб с докера переехал давно и современные версии на докере не работают. Сегодня куб надо понимать на containerd.io. Т.е. вот так походя тебе Чат рекомендует сетап, на который ты потом потратишь несколько недель, мигрируя боевой кластер на другой рантайм. Вот тебе пример, где нубство Чата выльется в реальные затраты, в то время как любой эксперт тебе это скажет. Ну а Чат просто начитался старых статей.

Если хочешь — можешь в этой теме скинуть то, что тебе Чат насоветовал. Могу попробовать что-то прокомментировать. Дело в том, что поднять кластер это тема действительно нетривиальная, если речь не о готовом решении в облаке. Я долго мудохался с вышеупомянутым лоад балансером, вплоть до чтения кода в гитхабе определенных компонентов, чтобы выяснить важные нюансы. И я уверен на 100%, что Чат мне тут не помог бы. Такие вещи постигаются только литрами выпитого кофе и часами экспериментов. При этом сразу замечу, что я далёк от экспертного знания куба, хотя и полным нубом уже, наверное, не являюсь.

Ещё могу привести пример, на котором Чат не смог написать правильный с моей точки зрения код.

Имеется такая задача — сгенерировать пароль из букв. Букв 26. На JS.

Первая попытка — он сгенерировал пароль через Math.random(). Ну это никуда не годится. Пароли должны генерироваться криптографическим ГСЧ.

Когда я ему на это указал — он сгенерировал их через SecureRandom. Но там есть такой нюанс: SecureRandom генерирует целиком байты. Он сгенерировал значение от 0 до 255 и потом привёл его к 0-25. Что-то вроде floor(n / 255 * 26).

И опять это плохой код. Почему он плохой? Потому, что число 256 не делится на 26. Поэтому какие-то буквы будут встречаться чаще, какие-то реже. Да, перекошенность будет очень маленькая. На практике таким кодом можно пользоваться. Но хороший программист пишет код, к которому таких претензий нет. Особенно когда речь идёт о безопасности и криптографии.

Поэтому правильный подход: сгенерировать число от 0 до 255, поделить его на 8, получить число от 0 до 31. И дальше, если оно меньше 26 — вернуть его. А если не меньше — то повторить всё сначала. В этом случае генерируется 100% равномерное распределение. Это — правильный код.

Ну с натяжкой можно принять другой подход: сгенерировать 6 байтов, преобразовать их в число от 0 до 2^48 — 1 и потом как в пункте с 1 байтом действовать. Тут уже перекошенностью точно можно пренебречь. Почему 6 байтов? Потому, что в JS целые числа представимы до 2^53.

Это те вещи, которые хороший программист должен учитывать. А нуб про них даже не думает. Как и Чат.

Возможно я бы смог довести Чат до нужного решения. Ну как я нуба смогу довести до нужного решения, если он будет терпелив, я буду терпелив и буду задавать ему наводящие вопросы. Хотя в случае с Чатом моё терпение кончилось первым.


По вышеописанным причинам я не считаю, что Чат сможет лишить меня работы здесь и сейчас. Я знаю объективно больше него и умею объективно больше него. Поэтому Чат, даже если станет лучше, максимум — заменит совсем слабых программистов. Да и то — из слабых программистов вырастают сильные, а из Чата никто не вырастает. Поэтому тут тоже вопрос спорный.

Но я вполне допускаю, что лет через 10 он станет на голову выше, т.к. 10 лет назад Чат представлялся всё же больше фантастикой, даже для его текущего уровня. И тогда вполне может заменить и меня. Ну поживём-увидим. Картошку с помидорами сажать и курей разводить, думаю, мне никто не помешает. Может даже придумают какого-нибудь андроида, который эту картошку копать будет за доступные деньги. Проживём как-нибудь.
Отредактировано 22.01.2023 15:29 vsb . Предыдущая версия . Еще …
Отредактировано 22.01.2023 15:27 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:24 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:23 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:22 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:21 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:12 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:12 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:11 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:11 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:10 vsb . Предыдущая версия .
Отредактировано 22.01.2023 15:09 vsb . Предыдущая версия .
Re: Что сложно дается ChatGPT?
От: ononim  
Дата: 22.01.23 15:32
Оценка: 3 (1)
S>Вопрос такой — почему ему сложно написать прогу под конкретный микроконтроллер? Даже простую прогу. Пытается как бы выйти из ситуации общими словами, но даже одну строчку кода сложно из него выдавить — хотя одну таки выдавил, но не более.
~Пастернака не читал но осуждаю~ Не юзал но судя по многочисленным восторгам — это гугл-поиск оптимизированный для программистов. То есть раньше надо было гуглить решение, тыкать в ссылку на стековерфлоу, читать что там написано, копипастить, переформатировать, чутка допиливать под названия своих переменных и тп. А теперь оно само за тебя все это делает.
А если ничего нагуглить ему не удалось — тады ой. Думай сам, кожаный мешок. И не забудь написать на стековерфлоу свое решение, чтоб оно его узнало и скопипастило другому кому понадобится.
Как много веселых ребят, и все делают велосипед...
Re[2]: Что сложно дается ChatGPT?
От: Shmj Ниоткуда  
Дата: 22.01.23 15:57
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Если хочешь — можешь в этой теме скинуть то, что тебе Чат насоветовал. Могу попробовать что-то прокомментировать.


Вот, кстати, да — оно не заработало толком. Что-то из старых версий.

Для установки cert-manager и nginx-ingress на DigitalOcean Kubernetes следующие шаги могут быть полезны:

Установите cert-manager с использованием Helm chart.

helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl create namespace cert-manager
helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v0.16.1


Создайте сертификат Let's Encrypt с использованием cert-manager. Ниже пример конфигурации для использования сертификата Let's Encrypt для домена example.com.

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: admin@example.com
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx


Настройте ingress-контроллер nginx-ingress для использования сертификата Let's Encrypt и направления трафика на нужный сервис на основе порта 443. Ниже пример конфигурации для направления трафика с домена example.com на сервис test1-service.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test1-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - example.com
    secretName: example-com-tls
  rules:
  - host

Отредактировано 22.01.2023 15:58 Shmj . Предыдущая версия .
Re[3]: Что сложно дается ChatGPT?
От: vsb Казахстан  
Дата: 22.01.23 16:32
Оценка: 4 (2)
Здравствуйте, Shmj, Вы писали:

S>Для установки cert-manager и nginx-ingress на DigitalOcean Kubernetes следующие шаги могут быть полезны:


S>Установите cert-manager с использованием Helm chart.


S>
S>helm repo add jetstack https://charts.jetstack.io
S>helm repo update
S>kubectl create namespace cert-manager
S>helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v0.16.1
S>


Ну первая серьёзная проблема — версия от середины 2020 года. 2.5 года прошло с тех пор. То бишь надо уже подключить голову и проверить свежую версию. И было бы неплохо, если бы Чат подсказал — какой командой, а не писал давно устаревшую версию.

S>Создайте сертификат Let's Encrypt с использованием cert-manager. Ниже пример конфигурации для использования сертификата Let's Encrypt для домена example.com.


S>
S>apiVersion: cert-manager.io/v1alpha2
S>kind: ClusterIssuer
S>metadata:
S>  name: letsencrypt-prod
S>spec:
S>  acme:
S>    server: https://acme-v02.api.letsencrypt.org/directory
S>    email: admin@example.com
S>    privateKeySecretRef:
S>      name: letsencrypt-prod
S>    solvers:
S>    - http01:
S>        ingress:
S>          class: nginx
S>


apiVersion устаревший. Возможно для той версии он был правильный, сейчас надо использовать apiVersion: cert-manager.io/v1.

`class: nginx` — писать совсем не факт, что правильно. В каждом кластере свои ингрессы. Лучше вообще не писать. Есть понятие ингресса по умолчанию, он должен сработать. А ещё лучше написать несколько абзацев про то, что такое ingress class, как можно узнать, какие ingress class установлены в твоём кластере и тд.

S>Настройте ingress-контроллер nginx-ingress для использования сертификата Let's Encrypt и направления трафика на нужный сервис на основе порта 443. Ниже пример конфигурации для направления трафика с домена example.com на сервис test1-service.


S>
S>apiVersion: networking.k8s.io/v1
S>kind: Ingress
S>metadata:
S>  name: test1-ingress
S>  annotations:
S>    kubernetes.io/ingress.class: nginx
S>    cert-manager.io/cluster-issuer: letsencrypt-prod
S>    nginx.ingress.kubernetes.io/rewrite-target: /
S>spec:
S>  tls:
S>  - hosts:
S>    - example.com
S>    secretName: example-com-tls
S>  rules:
S>  - host
S>

S>[/q]

nginx.ingress.kubernetes.io/rewrite-target: / какая-то левая лажа. Не нужно.

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

rules у тебя оборвалось. Там дальше ещё несколько строк идут.

В общем может оно и заработает, но может и не заработать. Придраться есть к чему.
Отредактировано 22.01.2023 16:35 vsb . Предыдущая версия . Еще …
Отредактировано 22.01.2023 16:35 vsb . Предыдущая версия .
Re[2]: Что сложно дается ChatGPT?
От: Shmj Ниоткуда  
Дата: 22.01.23 22:19
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Сразу замечу. На основе Docker в 2023 году куб поднимать это полная глупость. Куб с докера переехал давно и современные версии на докере не работают. Сегодня куб надо понимать на containerd.io.


А вот containerd описывается же Docker-совместимым форматом? Есть ли containerd -hub по аналогии с Docker-hub, или откуда оно берет образы?
Re[3]: Что сложно дается ChatGPT?
От: SkyDance Земля  
Дата: 23.01.23 01:13
Оценка: +1
bnk>Хорошо бы хотя бы "индикатор уверенности" в ответе какой-нибудь приделали в следующей версии что ли

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

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

Поэтому мне и страшновато смотреть на применение таких штуковин в медицинском обслуживании.
Re[3]: Что сложно дается ChatGPT?
От: vsb Казахстан  
Дата: 23.01.23 14:12
Оценка: 2 (2)
Здравствуйте, Shmj, Вы писали:

vsb>>Сразу замечу. На основе Docker в 2023 году куб поднимать это полная глупость. Куб с докера переехал давно и современные версии на докере не работают. Сегодня куб надо понимать на containerd.io.


S>А вот containerd описывается же Docker-совместимым форматом? Есть ли containerd -hub по аналогии с Docker-hub, или откуда оно берет образы?


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

LR

Есть понятие OCI-образа. По сути это то, что называют докер-образами. То бишь некий стандарт, в котором распространяются образы. И есть рантайм, который эти образы умеет запускать.

Изначально это всё вроде как придумал докер. Потом эту идею реализовали как минимум один раз в Red Hat в продукте podman. По сути это что-то вроде замены докера (докер это сильно коммерческий продукт, podman это более свободная альтернатива). Может ещё кто-то реализовывал. На самом деле там ничего особо сложного нет, вся суть в идее.

Со временем докер разделили архитектурно. Выделили containerd — это что-то вроде низкоуровневого компонента, который, собственно, и запускает контейнеры из образов и сам docker как обвязка вокруг containerd, предоставляющая знакомый интерфейс пользователям. Помимо containerd есть аналогичная реализация crio от Red Hat. Предполагаю, что это часть проекта podman но точно не знаю. Вроде есть и другие рантаймы.

Надо понимать, что "внизу" все эти контейнеры реализованы в ядре Linux через механизм namespaces, cgroups и тд. Т.е. всё, что делает этот рантайм — это запускает процесс в линуксе с определёнными параметрами. Ну я упрощаю, наверное, но суть такова.

Помимо запуска есть процесс скачивания образа. Тут есть тоже стандартный протокол Docker Registry, который все используют. Собственно docker hub по этому протоколу и работает.

Кубернетес изначально сделали, как слой поверх докера. Ну просто потому, что докер был первый. Со временем, когда появились альтернативы докеру и сам функционал докера стал избыточным, придумали концепцию CRI — Container Runtime Interface. Собственно Кубернетес сейчас и использует этот CRI, а с другой стороны используется реализация этого интерфейса в виде containerd (самый популярный с большим отрывом), crio и вроде ещё что-то есть.

То бишь если нужно скачать образ, запустить образ с определёнными параметрами, удалить контейнер и тд — кубернетес просто передаёт эти команды через CRI и получает какие-то результаты.

На самом деле, подозреваю, что можно попробовать установить на одном компьютере и кубернетес и докер и использовать общий containerd (докер его тоже устанавливает и использует). Для продакшна такое делать точно не стоит, но может быть для чего-то может быть полезно.
Отредактировано 23.01.2023 14:15 vsb . Предыдущая версия .
Re: Он туп как пробка
От: Wolverrum Ниоткуда  
Дата: 23.01.23 19:51
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Заметили ли вы его слабые стороны?

Да.

Есть и положительная его черта: как бредогенератор или графоманий — вполне себе.
Re[2]: Что сложно дается ChatGPT?
От: Baiker  
Дата: 24.01.23 11:18
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Он натренирован на интернете. В интернете 99% знаний от нубов и для нубов, 1% знаний от экспертов


ВОТ! Отлить в граните!! Ключевой момент, который почему-то все(включая Шмж) упускают. Как можно базировать серьёзные вещи на "улавливателе разговоров базарных бабок", грубо говоря?? Это же смешно — надеяться, что из 10 бабок 8 скажут верный ответ.
Ещё во время натравливания этого "умника" на гитхаб ржал — как можно дилетантский FOSS код вообще считать за пример?! Там же клоун на клоуне и энтузазистом погоняет! И как и положено дилетанту, он копипастит всякую ерунду в надежде, что код заработает. А то, что к одной "стыренной" строчке требуется 5 строк проверок — откуда дилетанту знать! Вот и получаем то дыры для вирусни, то баги 20-летней давности, на которые и смотреть-то стыдно.
И шмж предлагает ЭТО использовать в коммерческом коде.... ты шутишь что ли??? Маразм — маразмом, но тег "1 апреля" ставить не забывай!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.