Здравствуйте, Privalov, Вы писали: P>Как я не раз отмечал, код, выдаваемый чатгпт, не работает.
Вы обратили внимание на то что он исправил заголовок — убрал Barrer? Или пробуете первую версию. Вот этот код:
Скрытый текст
static async Task UploadAsync(string url, string filePath)
{
using (var httpClient = new HttpClient())
{
try
{
// Установка заголовка авторизации без схемы 'Bearer'
httpClient.DefaultRequestHeaders.Add("Authorization", "testkey");
using (var content = new MultipartFormDataContent("8dcf3906305b7f8")) // Устанавливаем границу вручную
{
var fileContent = new ByteArrayContent(File.ReadAllBytes(filePath));
fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
content.Add(fileContent, "file", Path.GetFileName(filePath));
// Отключаем заголовок 'Expect: 100-continue'var request = new HttpRequestMessage(HttpMethod.Post, url)
{
Content = content
};
request.Headers.ExpectContinue = false;
var response = await httpClient.SendAsync(request);
response.EnsureSuccessStatusCode();
}
}
catch (HttpRequestException httpEx)
{
// Обработка исключения
}
}
}
P>Если что, свои первые GET и POST я сделал где-то в 2003-2004 году. Всё руками. И про заголовки кое-что слышал. Часто там имеет значение каждый пробел и каждая кавычка.
Открываете Fiddler — тупо копируете заголовки запроса который работает и того, который не работает. Если не все заголовки скопировались — еще раз даете ему на доработку.
Здравствуйте, Shmj, Вы писали:
S>Вы обратили внимание на то что он исправил заголовок — убрал Barrer? Или пробуете первую версию. Вот этот код:
А вы обратили внимание, что выше по ветке я уже писал: у меня всё работает. А вы с упорством, достойным лучшего применения, демонстрируете неработающий код, причём один и тот же. Меня тут больше интересует ваше умение общаться с чатгпт.
S>Открываете Fiddler — тупо копируете заголовки запроса который работает и того, который не работает. Если не все заголовки скопировались — еще раз даете ему на доработку.
Вы действительно думете, что я читать не умею? Или не знаю, что такое Fiddler? Зачем одно и то же повторяете? меня не это интересует.
Здравствуйте, Privalov, Вы писали:
P>А вы обратили внимание, что выше по ветке я уже писал: у меня всё работает.
Что именно работает?
P>А вы с упорством, достойным лучшего применения, демонстрируете неработающий код, причём один и тот же.
Код можете проверить только вы, т.к. у нас нет доступа к вашему серверу. Почему ваш сервер не принимает код — можете знать только вы. Давайте ошибку — рассмотрим. Вы ключ то подставили или так и оставли testkey?
S>>Открываете Fiddler — тупо копируете заголовки запроса который работает и того, который не работает. Если не все заголовки скопировались — еще раз даете ему на доработку. P>Вы действительно думете, что я читать не умею? Или не знаю, что такое Fiddler? Зачем одно и то же повторяете? меня не это интересует.
Здравствуйте, novitk, Вы писали:
N>Если очень все жестко с безопасностью, то почему не организовать полностью изолированный виртуальный десктоп с "вашими" инструментами и т.д.?
Движемся в этом направлении.
N>>Хочется узнать, как кандидат может писать код с чистого листа, а не только разбираться в чужом — это можно спросить и на интервью. N>Не понимаю ценности этого "с чистого листа". Оно как-то по другому потом пахнет?
Да, конечно.
N>У меня обратное впечатление и желания. Люди совершенно не умеет готовить с AI. Если copilot не вывалил готовый код сам, они не знают, что собственно делать. N>IMHO умение использовать АИ >>> code monkey с hackerrank.
Считай, что у меня такой старчееский бзик, что программист должен уметь писать код и без ИИ.
Здравствуйте, Shmj, Вы писали:
S>Что именно работает?
Что, чатгопота и этого не сумел объяснить?
PDF отправляется, код возврата 201. Но это не тот код, который вы с упорством, достойным лучшего применения, здесь показываете.
S>Так в чем вопрос?
Что, чатгопота этого не знает?
Нет у меня к вам никаких вопросов по разработке. Но тут КСВ, как пройти мимо? Оказывается, ктму-то, чтобы попасть в зависимость от робота, даже зов не нужен. Как это показывали в хорошем детском фильме "Отроки во Вселенной".
Здравствуйте, Privalov, Вы писали:
P>Что, чатгопота и этого не сумел объяснить? P>PDF отправляется, код возврата 201. Но это не тот код, который вы с упорством, достойным лучшего применения, здесь показываете.
Не предметный разговор — вы занимаетесь самоуспокоением, не хотите видеть реальное положение дел.
Здравствуйте, Nuzhny, Вы писали: N>Считай, что у меня такой старчееский бзик, что программист должен уметь писать код и без ИИ.
А что насчет вспомогательных задач и незнакомых языков? Bash, Python, JS?
Вот свежий пример из жизни.
Недавно наш товарищ по кывту жаловался, что в популярной библиотеке очень неэффективная реализация функции разбиения строки.
Я спросил ЧатГПТ сделать такую
функцию
std::vector<std::string_view> splitPath(std::string_view path) {
std::vector<std::string_view> result;
std::size_t start = 0;
while (start < path.size()) {
std::size_t end = path.find('/', start);
if (end == std::string_view::npos) {
end = path.size();
}
// Skip empty segments (e.g., in "//")if (end != start) {
result.emplace_back(path.substr(start, end - start));
}
start = end + 1;
}
return result;
}
ИМХО, интерфейс от GPT (возвращение std::string_view) даже лучше. Если возвращать std::string, то результат GPT не хуже, чем реализация за 20 минут от профессионального разработчика на С++.
Количество задач, о которых человек может реально думать сильно ограниченно, и если что-то можно автоматизировать, стоит это автоматизировать.
Здравствуйте, Skorodum, Вы писали:
N>>Считай, что у меня такой старчееский бзик, что программист должен уметь писать код и без ИИ. S>А что насчет вспомогательных задач и незнакомых языков? Bash, Python, JS?
Я только за, сам тоже пользуюсь локальной версией ИИ помощника. Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат.
Здравствуйте, Nuzhny, Вы писали:
N>Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат.
А как его использовать во время собеседования? Только если собеседование не в живую, да и то заметно будет
Здравствуйте, Skorodum, Вы писали:
N>>Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат. S>А как его использовать во время собеседования? Только если собеседование не в живую, да и то заметно будет
Вот тут товарищи говорят, что они не против — главное, чтобы задание было сделано. И как-то на самом собеседовании, и при выполнении домашнего ТЗ.
Здравствуйте, Skorodum, Вы писали:
S>ИМХО, интерфейс от GPT (возвращение std::string_view) даже лучше.
Это сильно зависит от того, что мы имеем на входе и как долго собираемся использовать результат дробления на части.
Может быть так, что у нас есть кусок данных в памяти, который был прочитан из сокета, в этих данных есть значение path, его нужно разобрать. Чтобы не создавать лишних копий path в split передается string_view. А вот результат split-а может пережить исходный кусок данных, в этом случае вектор из string_view -- это прямой путь к повисшим ссылкам и use-after-free.
Здравствуйте, so5team, Вы писали:
S>Это сильно зависит от того, что мы имеем на входе и как долго собираемся использовать результат дробления на части.
Но согласись, что в этом случае ИИ дал вполне хороший ответ, особенно если правильно понимать время жизни
Для истории: запрос был "split string in C++17" и "Use this approach to implement "split_path" with "/" as delimiter."
Здравствуйте, Nuzhny, Вы писали:
N>Я только за, сам тоже пользуюсь локальной версией ИИ помощника. Я против использования его во время собеседования, потому что не ясно, что умеет сам кандидат.
ИМХО человек, который может сравнить реализации splitPath по количеству копирований, memleaks и т.д., вполне может показать свое "умение".
И кстати да, для меня тоже важен уровень "языка в пальцаx". Вырожденный пример, это чел говорит, что работает с Питоном каждый день, a потом начинает писать "a.len()". Однако это очень легко выяснить на собеседовании.
Здравствуйте, Nuzhny, Вы писали:
N>Неправ в чём? В том, что беря человека на алгоритмы надо спрашивать алгоритмы?
В том, что гребешь все алгоритмы под одну гребенку. Если нужен человек дизайнить алгоритмы, то нужно такого и искать, причем именно в этой области. Если человек занимался топологией в ГИСах, он может быть крут, но в матмоделировании от него будет столько же пользы, сколько от толкового джуна.
N>Да, проекты на 6-12 месяцев обычно. Так оно и работает. Но есть и поменьше, например, когда текущий наивный очевидный был хорош, но увеличилась нагрузка, узкое место у всех на виду, но задача пока не сильно важная. И специалисты примерно знают, что надо сделать, но руки не доходят. Вот на такие задачи лучше всего сажать людей, чтобы вкатились.
На такие задачи лучше всего сажать студентов. И я, кстати, вполне серьезно, сажать "взрослого" алгоритмиста на такие задачи это из пушки по воробьям.
N>Это классическая и хорошая научная работа, все стадии, теория, практика, всё норм.
Вот я о чем и говорю: перенести алгоритм из матлаба на GPU это серьезная работа.
N>А теперь можно просто взять базовый алгоритм этого исследователя, взять туеву хучу затуманенных снимков с со своих камер, сгенерировать ими датасет и обучиться. Стало намного легче, оптимизация доступная каждому практически даже без знания предметной области.
Так это черрипикинг: взять чужой подход, чужую модель и чужой алгоритм и допилить для своих данных. Даже этого можно даже программировать не уметь, достаточно уметь компилировать и запускать.
Здравствуйте, Miroff, Вы писали:
M>В том, что гребешь все алгоритмы под одну гребенку. Если нужен человек дизайнить алгоритмы, то нужно такого и искать, причем именно в этой области. Если человек занимался топологией в ГИСах, он может быть крут, но в матмоделировании от него будет столько же пользы, сколько от толкового джуна.
Мы так и делаем.
M>На такие задачи лучше всего сажать студентов. И я, кстати, вполне серьезно, сажать "взрослого" алгоритмиста на такие задачи это из пушки по воробьям.
На какие задачи-то? Новые алгоритмы в нашей области выносят на свет обычно либо PhD из того же Eth, либо небольшие лаборатории. Одному студенту можно справиться с реализацией алгоритма по статье, но не со всеми этапами от R, D до продакшена.
M>Вот я о чем и говорю: перенести алгоритм из матлаба на GPU это серьезная работа.
Так никто и не спорит.
M>Так это черрипикинг: взять чужой подход, чужую модель и чужой алгоритм и допилить для своих данных. Даже этого можно даже программировать не уметь, достаточно уметь компилировать и запускать.
Вот студенты-практиканты, студенты-стадеры этим и занимаются. Отличная штука, чтобы въезать в тему, узнать и базу, и современный подход.
Здравствуйте, serg_joker, Вы писали:
_>Учитывая это: С>>C++ на таком уровне я не знаю ( = delete — это что такое? move-конструктор?).
_>Вот это — правда: С>>Но нюанс здесь, по-моему, заключается в том, что на С++ писать нельзя.
_>Но нюанс здесь, по моему, заключается в том, что на С++ писать нельзя Вам.
Я его не трогал этак 21 год. Разумеется, я его не знаю. Только я много каких языков не знаю, а понять написанное как-то смогу. А вот с С++ — не могу. Потому что ребус, глядь.
Здравствуйте, so5team, Вы писали:
S>Может быть так, что у нас есть кусок данных в памяти, который был прочитан из сокета, в этих данных есть значение path, его нужно разобрать. Чтобы не создавать лишних копий path в split передается string_view. А вот результат split-а может пережить исходный кусок данных, в этом случае вектор из string_view -- это прямой путь к повисшим ссылкам и use-after-free.
И для борьбы с этим придумали Rust с его borrow. Но упорные ёжики---
Здравствуйте, Слава, Вы писали:
S>>Может быть так, что у нас есть кусок данных в памяти, который был прочитан из сокета, в этих данных есть значение path, его нужно разобрать. Чтобы не создавать лишних копий path в split передается string_view. А вот результат split-а может пережить исходный кусок данных, в этом случае вектор из string_view -- это прямой путь к повисшим ссылкам и use-after-free.
С>И для борьбы с этим придумали Rust с его borrow. Но упорные ёжики---
А у вас реально есть рецепт как в одночасье заменить мегатонны Си-шного и C++ного кода на Rust?