Комментарии 55
Как выполнить тестовое задание если у меня мак?
Даже так, как выполнить задание, если нет возможности проверить в VS 2013? У меня на всех доступных компах — Linux :-)
Можно использовать язык в рамках стандарта, те. C++ и ещё STL.
в рамках какого стандарта?
Более того, ещё пару дней назад требований о визуалстудии и недопустимости использования сторонних библиотек в условии тестовой задачи не было, как и о том, что решение должно быть оформлено в виде единственного CPP-файла и проходить автоматическую проверку.
Было весьма неприятно узнать об этом, имея на руках готовое решение, сделанное с расчётом на оценивание человеком: с Boost.Coroutine и Boost.Range, разбиением функциональности на кучу классов, комментариями и coverletter на английском. Написал им на мыло — код смотреть даже не стали.
Зачем VS2013, почему не к стандарту языка привязаться? Пользовался пару раз этой средой, винды нету, про особенности реализации и поддержки стандартов не в курсе.
Все задания автоматически проверяются первично на компилируемость в двух средах: Windows / VS 2013 и Linux / GCC 5.4.0. Если задание удастся скомпилировать хотя бы на одной из указанных конфигураций, его уже дальше оцениваем на предмет корректности и производительности.
Какие ограничения по времени, памяти, входным данным? От этого же здорово зависит, каким будет решение.
Чем быстрее — тем лучше. Памяти желательно не больше 8 ГБ потреблять. Пример входных данных приведен, но проверять будем на более объемных файлах.
На видео показаны лекции? Кроме них какие-то материалы выдаются?
На видео — фрагмент лекций, да. Помимо них, курсантам рассылаются e-mail с конспектами и заданиями.
Важный UPD:
Было много комментариев про приём заданий под Linux, так что мы скорректировали требования к сдаче тестов. Теперь программу для входного теста можно компилировать и под Windows MSVC 2013, и под Linux gcc 5.4.0.
И даже больше — мы теперь сделаем это за вас. При приёме ваш код пройдёт автопроверку на компилируемость, и мы пришлём вам отчёт, чтобы вы были уверены, что программа собралась на нашей стороне. Если всё хорошо, код будет проверяться уже вручную Шоданом. Если нет — то у вас есть неограниченное количество попыток исправиться.
Еще раз просим прощения у всех, кто пострадал от калибровки приёма заданий. Сейчас всё окончательно починили, можно пользоваться.
Вы обещались написать про SSRTGI, когда будет пост?
Скорее всего, после SIGGRAPH. Мы туда едем на Real-Time Live в конце июля, как раз показывать и рассказывать про SSRTGI.
1. Нужны ли, могут ли быть потоки?
2. Если -n не задано, считать N=0 и не выводить статистику? Или нужно вывести всю статистику?
3. Можно ли считать, что все пути\домены влазят в оперативную память? Т.е. можно ли работать чисто в памяти, или же нужно заморачиваться с работой в рамках выходного файла?
4. Могут ли встречаться «некорректные url», и как их рассматривать в этом случае. Например «http://google.com:88/search?q=free+software». Считать ли в этом случае что разбор адреса должен быть закончен с любого символа не входящего явно в перечисление допустимых для домена и отличающегося от "/" или нужно какое-то иное поведение?
Мне кажется что вчера в задании было явное описание «общей статистики», кроме примера, но могу ошибаться…
Отвечает Шодан. :)
- Потоки в смысле threads или C++ streams? Threads нет, streams да.
- Нет, выбрать разумное N на ваше усмотрение и выводить.
- Да, можно.
- Да, могут, рассматривать как специфицировано: прекращать на первом непонятном символе.
Ещё в задании написано «URL-ом считается подстрока». В такой формулировке «blablahttp://ya.ru» будет верным URL с доменом «ya.ru» и путём "/". Может, всё-таки, с разделителя начинать поиск?
После заполнения формы и отправки задания на проверку пропадает ссылка на текст задания. Осталась только в истории браузера.
Если я правильно разгадала вашу почту, у вас задание сдано со второй попытки, судя по отчетам роботов.
Формулировка про URL
А на страницу с заданием можно вернуться по ссылке «Нет, не готов! Верните задание!».
Точно так же, как со значением N без указания поведения по умолчанию.
Это тест на умение додумывать за автора, или на написание программ на C++?
Почему не сформулировать задание максимально полно и корректно?
Это значит, что сформулировано преднамерянно и в задачке специально оставлен небольшой подводный камень, чтобы посмотерть, а как люди думают и как его обойдут.
Хотя в здании изначальном действительно были неточности, и спасибо тем, кто на них указал. Но сейчас там ровно так, как всё должно быть. :)
Так вот, могу ли я переделать код с учетом вышесказанного в комментах и отправить на ревью повторно?
Да, до конца дня понедельника можно перезалить задание заново, если есть желание.
Я конечно прошу прошения, но тут парни решили поучить народ на собственном энтузиазме. А ты придираешься к словам. Если что-то непонятно то спроси. Авторы между прочим отвечают. Так что это показывает не их уровень а твой.
Обратите внимание, путь "/" в составе 4 разных URL из 4 разных доменов это 4 разных упоминания.
- Тут есть некий подвох и нужно сообразить самому?
- Это нужно понимать буквально (только для пути "/" и/или 4 раза)?
- Или это пример для всех путей и в любых количествах? Т.е. любой путь считается отличным от другого если они одинаковы, но разные домены?
В выходном файле нужно вывести общее количество:
1) total urls — количество URL, общее число ссылок на страницы в документе.
2) domains — количество уникальных доменов
3) paths — количество уникальных URL (domain+path), количество упомяеутых страниц.
Так правильно?
Если под path подразумевается только путь (то что идет после домена), и в статистике нужно привести их общее количество, то оно будет равно total urls.
Прошу уточнить!
Два HR-менеджера смотрят на стопку резюме.
Молодой менеджер:
— да… изучать это надолго…
Опытный берет половину и кидает в шредер.
Молодой:
— ?????
Опытный:
— А зачем нам нужны неудачники?!
Уточнения получены, рассказываю:
В выходном файле нужно вывести общее количество:
1) total urls — количество URL, общее число ссылок на страницы в документе.
2) domains — количество уникальных доменов
Да. Причем неуникальных.
3) paths — количество уникальных URL (domain+path), количество упомяеутых
страниц.
Нет. Количество уникальных просто paths, без учета домена. Иначе да,
это называлось бы уникальным URL, но по условиям интересуют не они.
Если под path подразумевается только путь (то что идет после домена), и в
статистике нужно привести их общее количество, то оно будет равно total
urls.
Нет, не будет. count(distinct url) != count(distinct path) !=
count(url). Это три разных числа. Нужны последние два.
Это к тому, что любой путь (один и тот же) должен засчитаться в таком случае именно 4 раза, а не 1 раз.
Что каждое такое вхождение пути считается отдельным ("разным") новым упоминанием, а не как-то еще, не схлопывается почему-то.
Эту часть в задании, кстати, поправили почти сразу.
Подскажите пожалуйста как будет выглядеть вызов программы с флагов/ кол-вом топов и без указания данных параметров.
Вопрос не очень понятен.
Например, как test.exe -n 12345
myinputfile.txt myoutputfile.txt и соответственно test.exe -n
myinputfile.txt myoutputfile.txt
Дорасшифруйте, что имеется ввиду.
да, это я видел. Я про то, как будет выглядеть запуск программы:
Mytest.exe -n 10 in.txt out.txt
Или же
Mytest.exe [-n 10] in.txt out.txt
А если не указывать кол-во то:
Mytest.exe in.txt out.txt
- Домены — нерегистрозависимы
- Paths — регистрозависимы
Еще в тексте задания вроде нигде явно не сказано, что домен должен быть невырожденным и содержать как минимум хотя бы один символ. Вроде очевидно, что да, но хочется пруфа.
Если есть возможно получить информацию о том, на что обратить в след раз внимание — было бы здорово.
Если же нет, то мы постарались собрать в письме типичные ошибки, но, к сожалению, без персонализации.
Вы планируете выложить все видео одним скопом только после окончания курса?
Хотим выложить все видео после курса, да.
Не рассматривали ли вариант еженедельной выкладки (в идеале с текстом домашек ;)?
Скорее всего, в каком-то виде домашние задания будут присутствовать, но пока мы еще не придумали до конца как это будет выглядеть.Ближе к концу курса будет ясно :)
UNIGINE С++ School: бесплатный онлайн-курс для продвинутых