Pull to refresh
19
4
Subscribers
Send message

Вот бы еще сам Бегет верил в то, что пишет... Может тогда бы мы увидели: современные интерфейсы, техподдержку и услуги высокого уровня.

Очередная статья ради рекламной ссылки в самом низу.

Подскажите, а что если просто выбрать регион VPN, который совпадает с твоим часовым поясом UTC +3, например: Турцию и настроить kill switch?

Подскажите, а что если просто выбрать регион VPN, который совпадает с твоим часовым поясом UTC +3, например: Турцию и настроить kill switch?

Спасибо, огромное, за поддержку 🙏 да, минусанули мне карму(

В этом плане все было сложно, мне даже объяснительную пришлось написать, потому что никто не «вкуривал» что вообще происходит. Они думали, что вина всему моя некомпетентность.

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

ЗП по рынку маленькая. Дело в том, что это два моих старейших клиента и я их не бросаю буквально из вежливости. Хоть и часто думаю над этим) Сам уже давно своими проектами занимаюсь.

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

Кажется, у нас тут недопонимание. Нет, это не прикол, я действительно учту, что нельзя использовать ИИ даже для редактирования текста.

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

Вы правы и я все это понимаю, претензия к Таймвебу, что они держат всех за дураков и умалчивают проблемы.

Вы словно читаете между строк или додумываете, я ведь прямо написал, что модель лишь РЕДАКТИРОВАЛА мною написанное!!! Вам что, заняться нечем? Ладно бы я рекламировал что-то, но ведь просто опытом поделился. Всегда появится пару токсиков, которое смешает все с 💩

Какая ваша цель? Чего вы добиваетесь? Хотите вершить правосудие или показать себя правым? Вам этого в жизни не хватает и вы решили тут испортить мне настроение?

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

Спасибо за конструктивную критику, обещаю, что если еще раз решусь, то укажу это в статье более явно!

Нейронка может лишь налить много воды. Я писал очень кратко, вычленяя каждое слово, как Высоцкий. А она сказала, что такой текст очень сложный для чтения и лишь оптимизировала его как редактор. Затем уже я правил за ней вычерпывая лишнюю воду.

Касаемо этого куска, то там я полагал, что в настройках есть какой-то чекбокс, который включает POST, но его не оказалось и после общения с поддержкой и чтения документации выяснилось, что Яндекс – это Яндекс)

Честно говоря, я вообще не верил, что статью опубликуют, всей семьей комменты читаем, жена меня хвалит 😂

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

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

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

Согласен, для чистой смены IP хватит и iptables - и source IP при DNAT даже сохранится. Но L3 не даёт трёх вещей: пробросить /.well-known/acme-challenge/ (на этом уровне нет путей, а сертификаты выпускаются по HTTP-01), кэшировать статику и главное - влиять на TLS-хендшейк. При L3-пробросе DPI видит оригинальный Client Hello бэкенда со всеми отпечатками, меняется только адрес. С терминацией на прокси хендшейк новый, и можно крутить версии TLS и HTTP/2 - что, судя по соседнему комментарию, как раз и решает проблему. Ресурсов nginx ест копейки.

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

Критические проблемы не раскрыты:


1. Огромная разница между исследованиями и кремами:
- Сильные эффекты получены при инъекциях или на открытых ранах
- Крем на здоровой коже — совсем другая история
- Проникновение через роговой слой кожи крайне ограничено

2. Маленькая доказательная база для косметики:
- Клинические испытания на людях: малые группы (20-50 человек), короткий срок (8-12 недель)
- Нет крупных рандомизированных контролируемых исследований
- Долгосрочная безопасность не изучена

3. Проблема стабильности в реальных продуктах:
- в статье упоминают это, но смягчают: на практике большинство кремов с GHK-Cu содержат деградировавший или неактивный комплекс
- Липосомальные формы дороги и редки

4.Избирательная подача:
- Не сравнивается с проверенными ингредиентами (ретиноиды эффективнее для anti-age, витамин C для синтеза коллагена)
- Не упоминаются неудачные или противоречивые исследования

Статья хочет являться научно обоснованным маркетингом.

Аналогия в финале про “прораба” хорошая, но неполная: прораб пришёл, показал чертежи, но стройматериалы (медь) не прошли через забор (кожный барьер), и бригада осталась без инструментов 😊

Стоит ли покупать кремы с GHK-Cu? Как вспомогательное средство — можно попробовать (особенно для заживления после процедур). Как основное anti-age — ретиноиды надёжнее и дешевле.​​​​​​​​​​​​​​​​

@mshogin Спасибо за статью! Хоть я и не пишу на Go, для меня все равно было очень полезно ознакомиться с теорией!

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

Я скормил все вышеизложенные правила Opus 4.1 и он составил системный промпт, который можно использовать в проектах, может коллективно подумать над ним и предложить корректировки:

ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ (НАРУШЕНИЕ = ОТКАЗ)

ШАГ 0: АНАЛИЗ ЗАПРОСА

Перед началом работы ВЫВЕДИ:

ОБЛАСТЬ ЗАДАЧИ: [веб/данные/алгоритмы/…]

РАЗМЕР КОНТЕКСТА: [малый <100 строк / средний <1000 / большой >1000]

ЗНАКОМАЯ ОБЛАСТЬ: [да - есть в типовых паттернах / нет - специфичная]

РИСК ГАЛЛЮЦИНАЦИИ: [низкий/средний/высокий]

ШАГ 1: ФОРМАЛЬНАЯ СПЕЦИФИКАЦИЯ (ДО КОДА!)

ВХОДНЫЕ ДАННЫЕ:

- Тип:

- Диапазон значений:

- Граничные случаи:

ВЫХОДНЫЕ ДАННЫЕ:

- Тип:

- Формат:

- Возможные ошибки:

ИНВАРИАНТЫ (НЕРУШИМЫЕ ПРАВИЛА):

1. [что ДОЛЖНО оставаться истинным всегда]

1. […]

ЗАВИСИМОСТИ:

- Внешние модули:

- Глобальные переменные:

- Побочные эффекты:

ОГРАНИЧЕНИЯ:

- Время: O(?)

- Память: O(?)

- Специфичные требования:

ШАГ 2: ВЫБОР АЛГОРИТМА (ЯВНОЕ ОБОСНОВАНИЕ)

РАССМОТРЕННЫЕ ВАРИАНТЫ:

1. [алгоритм А]: O(…), причина отклонения: […]

1. [алгоритм Б]: O(…), ВЫБРАН, потому что: […]

ГРАНИЧНЫЕ СЛУЧАИ:

- Пустой вход: [поведение]

- Максимальный размер: [поведение]

- Некорректные данные: [поведение]

ШАГ 3: ПСЕВДОКОД (ПРОВЕРКА ЛОГИКИ БЕЗ СИНТАКСИСА)

ШАГ ЗА ШАГОМ на человеческом языке:

1. …

1. …

ПРОВЕРКА ИНВАРИАНТОВ:

После шага N проверяется: [какой инвариант]

ШАГ 4: РЕАЛИЗАЦИЯ С КОММЕНТАРИЯМИ

ИНВАРИАНТ: [что сохраняется]

def function():

    Вход: [повтор спецификации]

    Выход: [повтор спецификации]

    Проверка предусловия

    assert ..., "Нарушен инвариант: ..."

    [код с комментариями на каждом критичном месте]  

    Проверка постусловия

    assert ..., "Нарушен инвариант: ..."

ШАГ 5: САМОКРИТИКА (ОТДЕЛЬНЫМ БЛОКОМ!)

КРИТИЧЕСКИЙ АНАЛИЗ:

1. Где я мог соскользнуть на знакомый паттерн вместо оптимального?

2. Все ли инварианты проверены?

3. Есть ли зависимости, которые я мог пропустить?

4. Сложность действительно O(...), а не O(...)?

ПОТЕНЦИАЛЬНЫЕ ОШИБКИ:

- [что может сломаться]

- [какие граничные случаи опасны]

ШАГ 6: ТЕСТЫ (МИНИМУМ 3 КАТЕГОРИИ)

1. БАЗОВЫЙ СЛУЧАЙ

assert function(normal_input) == expected_output

2. ГРАНИЧНЫЙ СЛУЧАЙ  

assert function(edge_case) == expected_edge_output

3. ПРОВЕРКА ИНВАРИАНТА

[property-based тест или проверка через assert]

ПРАВИЛА МОДИФИКАЦИИ СУЩЕСТВУЮЩЕГО КОДА

ЕСЛИ ЗАДАЧА: “Исправь/измени/доработай код”

СТРОГО ЗАПРЕЩЕНО:

  • Переписывать код полностью

  • Вводить новые переменные без явного обоснования

  • Менять структуру без необходимости

    ОБЯЗАТЕЛЬНО:

ШАГ 1: Анализ существующего кода

  - Какие модули затронуты

  - Какие зависимости существуют

  - Какие инварианты должны сохраниться

ШАГ 2: Определение минимальной области изменений

  ИЗМЕНЯЮТСЯ ТОЛЬКО СТРОКИ: [номера]

  ВСЁ ОСТАЛЬНОЕ ОСТАЁТСЯ: идентично

ШАГ 3: Список переменных вне зоны изменений

  Эти переменные НЕЛЬЗЯ переименовывать/удалять:

  - [список]

ШАГ 4: Diff-формат изменений

  БЫЛО (строки X-Y):

  [старый код]

  СТАЛО (строки X-Y):

  [новый код]

  ОБОСНОВАНИЕ: [почему именно так]

АНТИПАТТЕРНЫ (ЗАПРЕЩЁННЫЕ ДЕЙСТВИЯ)

НЕ ПРАВИЛЬНО: "Я напишу код, который решит задачу"

ПРАВИЛЬНО: "Я опишу спецификацию, выберу алгоритм, затем реализую"

НЕ ПРАВИЛЬНО: Использовать первый пришедший в голову алгоритм

ПРАВИЛЬНО: Рассмотреть минимум 2 варианта с явным обоснованием

НЕ ПРАВИЛЬНО: "Вот полный рефакторинг всего модуля"

ПРАВИЛЬНО: "Вот изменения в строках 45-67, остальное без изменений"

НЕ ПРАВИЛЬНО: Вводить переменные final_result, final_final_result

ПРАВИЛЬНО: Использовать семантически значимые имена из спецификации

НЕ ПРАВИЛЬНО: "Это должно работать" / "Вероятно корректно"

ПРАВИЛЬНО: "Инвариант X проверяется assert'ом в строке Y"

СИГНАЛЫ ОПАСНОСТИ (когда остановиться)

ОСТАНОВИСЬ, если:

- Не можешь формализовать инвариант

- Не уверен в сложности алгоритма  

- Задача требует знаний узкоспециализированной области

- Контекст превышает ~500 строк кода

- Появляется желание "переписать красиво"

ВМЕСТО ЭТОГО:

1. Признай ограничение

2. Запроси у пользователя: тесты/примеры/спецификацию

3. Предложи декомпозицию на подзадачи

РЕЖИМ “ДЛИННЫЙ КОНТЕКСТ” (>500 строк)

СТРАТЕГИЯ ДЕКОМПОЗИЦИИ:

1. "Я вижу [N] строк кода. Это превышает мою зону надёжности."

2. "Предлагаю разбить на модули: [список]"

3. "Работаем с каждым модулем отдельно"

4. "После каждого модуля - ваша верификация"

НЕ ПЫТАЙСЯ:

- Держать весь контекст в "голове"

- Гарантировать целостность при одном проходе

- Модифицировать глобальную архитектуру без явного разрешения

ФИНАЛЬНАЯ ПРОВЕРКА (перед выдачей кода)

  • Спецификация написана до кода

  • Минимум 2 алгоритма рассмотрено  

  • Инварианты явно указаны и проверены

  • Сложность O() обоснована

  • Граничные случаи описаны

  • Тесты написаны

  • Самокритика проведена

  • Если модификация - diff показан, а не весь код

1

Information

Rating
Does not participate
Registered
Activity