Это вы верно заметили. За давностью я уже подзабыл начальные условия. И про стулья в зале ожидания и про то что парикмахер только один. Заглянул в блог Сергуньки - там даже нет условия в каком порядке обслуживаются посетители, присевшие на стул.crypto5 wrote:А где задается сколько в парикмахерской стульев в зале ожидания?
Ведение блога в ИТ
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Ведение блога в ИТ
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Ведение блога в ИТ
Вечерком переделал - получилась банальщина. Одна рабочая нитка, она же рабочее место, она же парикмахер.
Совсем неинтересно. Наверное стоит усложнить задачу.
-добавить несколько рабочих стульев как в типичной парикмахерской. То есть парикмахер может обслуживать несколько клиентов единовременно
-ввести очерёдность обслуживания
Потом ещё немножко усложнить :
-добавить несколько парикмахеров. (редко мне попадалась парикмахерская с одним парикмахером)
-добавить запись к конкретному парикмахеру и очередность обслуживания в рамках нескольких очередей (при этом рабочие стулья и стулья для ожидания - общие)
Вот тогда возможно и появится уровень задачки для интервью
Code: Select all
io_service service;
std::atomic<int> available_chairs;
void serveclient(std::string client) {
++available_chairs;
std::cout << "serve client: " << client << ",available chairs: " << available_chairs << std::endl;
}
void visitclient(std::string client) {
if(available_chairs) {
--available_chairs;
service.post(bind(serveclient,client));
} else { std::cout << "no available chairs" << std::endl;}
}
int main() {
std::string clients[] = {"client1","client2","client3","client4","client5","client6"};
available_chairs=5;
boost::thread_group threads;
threads.create_thread([](){service.run();});
for(std::string client : clients) visitclient(client);
boost::this_thread::sleep(boost::posix_time::seconds(1));
threads.join_all();
return 0;
}
-добавить несколько рабочих стульев как в типичной парикмахерской. То есть парикмахер может обслуживать несколько клиентов единовременно
-ввести очерёдность обслуживания
Потом ещё немножко усложнить :
-добавить несколько парикмахеров. (редко мне попадалась парикмахерская с одним парикмахером)
-добавить запись к конкретному парикмахеру и очередность обслуживания в рамках нескольких очередей (при этом рабочие стулья и стулья для ожидания - общие)
Вот тогда возможно и появится уровень задачки для интервью
-
- Новичок
- Posts: 46
- Joined: 23 Apr 2011 18:43
- Location: WA
Re: Ведение блога в ИТ
Ну конечно не интересно, у вас клиенты того, строем ходят.Мальчик-Одуванчик wrote:Вечерком переделал - получилась банальщина. Одна рабочая нитка, она же рабочее место, она же парикмахер.Совсем неинтересно.Code: Select all
int main() { std::string clients[] = {"client1","client2","client3","client4","client5","client6"}; ... for(std::string client : clients) visitclient(client); ... }
Когда они будут из разных веток приходить, должно стать слегка повеселее.
// И, кстати, это не совсем канонично - всегда пускать клиентов через queue.
// В оригинальной (по крайней мере в википедиевской) формулировке, в wait room идут только когда парикмахер занят.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Ведение блога в ИТ
Об том что ходят строем я подумал но решил для простоты не вводить временных задержек.AxelA wrote:
Ну конечно не интересно, у вас клиенты того, строем ходят.
Когда они будут из разных веток приходить, должно стать слегка повеселее.
// И, кстати, это не совсем канонично - всегда пускать клиентов через queue.
// В оригинальной (по крайней мере в википедиевской) формулировке, в wait room идут только когда парикмахер занят.
Хотя согласен, что таймауты между приходами клиентов и ввседение времени обслуживания сделают пример поинтереснее. Что касается сведения к каноническому случаю, то можно считать что общее количество стульев это
один стул парикмахера и оставшиеся в комнате ожидания.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Ведение блога в ИТ
Всмысл не в "строем" и с задержкой, а в том что они приходят одновременно и в разных потоках. На данный момент ваша программа такое обрабатывает некоректно, например между if(available_chairs) и --available_chairs; в другом потоке кто-то может тоже уменьшит значение, и тогда у вас там окажется негативное значение, а клиентов в зале ожидания будет больше чем стульев.Мальчик-Одуванчик wrote: Об том что ходят строем я подумал но решил для простоты не вводить временных задержек.
In vino Veritas!
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Ведение блога в ИТ
Вообще-то пофиг как они приходят, поскольку неявно выстраиваются в очередь. Парикмахер то один.crypto5 wrote:Всмысл не в "строем" и с задержкой, а в том что они приходят одновременно и в разных потоках. На данный момент ваша программа такое обрабатывает некоректно, например между if(available_chairs) и --available_chairs; в другом потоке кто-то может тоже уменьшит значение, и тогда у вас там окажется негативное значение, а клиентов в зале ожидания будет больше чем стульев.Мальчик-Одуванчик wrote: Об том что ходят строем я подумал но решил для простоты не вводить временных задержек.
Да и потоки зачем тут нужны - как раз классическая очередь. Есть место - встал в очередь, нет - гуляй.
К примеру - парикмахерская будет что-то типа сервера, слушающего на двери. Зачем на клиентов городить свои потоки?
Клиены посылают запросы на обслуживание и эти запросы выстраиваются в подобие очереди. Запрос на обслуживание обрабатывается только в основном потоке, поэтому здесь в принципе не будет ошибки с подсчетом стульев. Другое дело, что в этом решении выбор следующего клиента из очереди не определен.
У меня поток только на рабочее место парикмахера, да и то то - исключительно из расчета на их дальнейшее увеличение.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Ведение блога в ИТ
Потоки нужны потому что клиенты - это могут быть люди или программы, живущие в других местах/серверах, друг о друге ничего не знающие, и как выстраиваться в очередь тоже не знают, а посылают запросы себе одновременно и независимо.
In vino Veritas!
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Ведение блога в ИТ
Ну и ради бога. Главное что на принимающей стороне эти запросы упорядочиваются.crypto5 wrote:Потоки нужны потому что клиенты - это могут быть люди или программы, живущие в других местах/серверах, друг о друге ничего не знающие, и как выстраиваться в очередь тоже не знают, а посылают запросы себе одновременно и независимо.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Ведение блога в ИТ
Ну да, в этом и задача фактически - упорядочить запросы. Ваше же решение выглядит как "предположим запросы упорядочены"
In vino Veritas!
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Ведение блога в ИТ
Не так - они упорядочиваются через их обработку. Все-таки действительно стоит воткнуть таймеры для большей наглядности.crypto5 wrote:Ну да, в этом и задача фактически - упорядочить запросы. Ваше же решение выглядит как "предположим запросы упорядочены"
-
- Новичок
- Posts: 46
- Joined: 23 Apr 2011 18:43
- Location: WA
Re: Ведение блога в ИТ
Сорри, опечатался, под "ветками", конечно, треды имелись в виду.AxelA wrote:Ну конечно не интересно, у вас клиенты того, строем ходят.
Когда они будут из разных веток приходить, должно стать слегка повеселее.
Как crypto5 уже упомянул, таймеры не при чем. Сделайте что бы клиенты приходили из разных тредов. В этом случае visitclient() (в ее текущем виде) будет работать некорректно.Мальчик-Одуванчик wrote:Не так - они упорядочиваются через их обработку. Все-таки действительно стоит воткнуть таймеры для большей наглядности.crypto5 wrote:Ну да, в этом и задача фактически - упорядочить запросы. Ваше же решение выглядит как "предположим запросы упорядочены"
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Ведение блога в ИТ
Вот такой вопрос к бывалым. Я тут тоже сподобился на ведение блога, решил интересную чисто теоретическую математическую задачку, проверил решение и написал библиотечку небольшую. Ну и вообще думаю эту тему развивать дальше в своем блоге и на гитхабе, привлекая слушателей и потенциальных заказачиков. Все хорошо, кроме одного пункта в моем контракте, который стандартный, про владение интеллектуальной пропердью. Он есть у всех вас: фултаймеров, контракторов W2 и 1099, неважно. В принципе, тема моей задачки вообше не пересекается с тем, чем я занимаюсь на работе, т.е. формально это не создано в ходе работы на клиента и не относиться к сервису, оказанному клиенту. Клиенту скорее всего это все пофиг, он жирный, ленивый и богатый, поэтому хочется иметь потенциальную возможность его и в дальнейшем доить с перерывами на обед, и не давать повода к конфликтам любого масштаба. С другой стороны, хочется более интересного занятия чем же-ту-и-и, ну и халтурок там и всего такого.
Посему вопрос: имеет ли смысл подождать до окончания контракта, или опубликоваться сейчас, ибо всем все пофиг? Сейчас опубликоваться было бы лучше, так как пока протечет до поисковиков, потом до народа, проходит пару месяцев. А я хочу что бы следующий гиг был поинтеллектуальнее, чем та копи-паста, которой я занимаюсь сейчас.
Спасибо.
Посему вопрос: имеет ли смысл подождать до окончания контракта, или опубликоваться сейчас, ибо всем все пофиг? Сейчас опубликоваться было бы лучше, так как пока протечет до поисковиков, потом до народа, проходит пару месяцев. А я хочу что бы следующий гиг был поинтеллектуальнее, чем та копи-паста, которой я занимаюсь сейчас.
Спасибо.
-
- Уже с Приветом
- Posts: 256
- Joined: 14 Jul 2011 09:07
- Location: SaintP -> NYC
Re: Ведение блога в ИТ
Я бы опубликовал.
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Ведение блога в ИТ
если данный вопрос/ответ часто ищется на stackoverflow к примеру, то посетители начнут приходить почти сразу, как только на форуме опубликуешь ссылку на своё решение.Kolbasoff wrote:Сейчас опубликоваться было бы лучше, так как пока протечет до поисковиков, потом до народа, проходит пару месяцев.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Ведение блога в ИТ
Публикуйте. А если чего-то стесняетесь из-за работодателя, ну так имя свое не вставляйте туда пока, только никнейм. Ну или вставьте имя и фамилию, но немного не в той транскрипции, под которой вы известны у работодателя.
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Ведение блога в ИТ
Да, пожалуй опубликую под никнэймом. А стоит ли давать ссылку на блог из линкедина? Я так думаю, что нет, так как заинтересованные товарисчи, if any, придут из блога, а не из линкдина/резюме. А рекрутерам все равно чем там чувак мается, лишь бы продать.Интеррапт wrote:Публикуйте. А если чего-то стесняетесь из-за работодателя, ну так имя свое не вставляйте туда пока, только никнейм. Ну или вставьте имя и фамилию, но немного не в той транскрипции, под которой вы известны у работодателя.
-
- Уже с Приветом
- Posts: 5542
- Joined: 30 Aug 2007 17:39
- Location: USA
Re: Ведение блога в ИТ
Какой штат? В Кали например, есть аппендикс в согласии с законом №таким-то, работодатель не может претендовать на то, что не пересекается с работой. Думаете как народ работает параллельно в стартапах?Kolbasoff wrote:В принципе, тема моей задачки вообше не пересекается с тем, чем я занимаюсь на работе, т.е. формально это не создано в ходе работы на клиента и не относиться к сервису, оказанному клиенту.
Да, опубликуйте ссылку на linkedin. В блоги ходят в массе другие господа-товарищи по другим ключевым словам, им нужна инфа, а не работники. Еще можно приклеить резюме к блогу, тогда будут еще ходить по слову "резюме".Kolbasoff wrote: А стоит ли давать ссылку на блог из линкедина? Я так думаю, что нет, так как заинтересованные товарисчи, if any, придут из блога, а не из линкдина/резюме.
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Ведение блога в ИТ
Штат Вирджиния, но дело не в законах даже, а в самом факте ведения технического блога с интересными задачками. Никто не будет наезжать за ведение блога, но как тут заметил Коммисар, в био-фарма-мед индустрии (а я как раз к медицине присосался, и нет, это не обамакера.гов) всякие блоги не приветствуются, особенно если это не переворот строки способом #101, а эксерсизы с притензией на научность или псевдо-научность. Посмотрят, подумают "ага, еще один писатель, кто знает, сам он это придумал или скоммуниздил с работы. в любом случае, нам писатели не нужны, а нужны копатели" И резюме фтопку.IContentProvider wrote:Какой штат? В Кали например, есть аппендикс в согласии с законом №таким-то, работодатель не может претендовать на то, что не пересекается с работой. Думаете как народ работает параллельно в стартапах?
Так что шифроваться через всякие никнэймc бессмысленно, даже странно. Ну посмотрим, однако, где-нибудь поближе к завершению контракта опубликую все равно, сейчас я зафрахтован до конца Июля. Заодно еще пару задачек решу, что бы потом публиковать потихоньку.IContentProvider wrote:Да, опубликуйте ссылку на linkedin. В блоги ходят в массе другие господа-товарищи по другим ключевым словам, им нужна инфа, а не работники. Еще можно приклеить резюме к блогу, тогда будут еще ходить по слову "резюме".
А где нынче хорошие тематические форумы по ИТ располагаются? Ну, кроме Привета, конечно?
-
- Уже с Приветом
- Posts: 5542
- Joined: 30 Aug 2007 17:39
- Location: USA
Re: Ведение блога в ИТ
Тогда надо смотреть по контактом на Linkedin, есть ли опасные. Если будет вход с Linkedin, то с ником в блоге не будет обратного - входа с блога на Linkedin. Можно еще сделать второй профиль на Linkedin с ником и залинковать оттуда, не указывая имени текущего работодателя.Kolbasoff wrote: Так что шифроваться через всякие никнэймc бессмысленно, даже странно.
...
А где нынче хорошие тематические форумы по ИТ располагаются? Ну, кроме Привета, конечно?
По какой именно тематике форум? На Привете он очень общий.
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Ведение блога в ИТ
Тут за всеми не усмотришь. Да и странно, когда клиент шифруется, значит, чё-то опасается.IContentProvider wrote:Тогда надо смотреть по контактом на Linkedin, есть ли опасные. Если будет вход с Linkedin, то с ником в блоге не будет обратного - входа с блога на Linkedin. Можно еще сделать второй профиль на Linkedin с ником и залинковать оттуда, не указывая имени текущего работодателя.
Ну я тоже двинулся в след за Сабиной по направлению к Зоркусу Т.е. в сторону дата-копания, хадупа, статистики и пр. Ибо гонять туда-сюда ХМЛ-ы как-тo поднадоело. В бигдате побольше инжиниринга, однозначно. Т.е. форумы где как раз бигдата обсуждается и сопутствующие ей товары. И еще такой вопрос: на wordpress можно вставлять математические формулы? Т.е. могу ли я вставить кусок в MathML и он будет рендириться как формула, а не как текст?IContentProvider wrote:По какой именно тематике форум? На Привете он очень общий.
-
- Уже с Приветом
- Posts: 5542
- Joined: 30 Aug 2007 17:39
- Location: USA
Re: Ведение блога в ИТ
Это я не спец, но тоже бы почитала если кто-то знает форумы.Kolbasoff wrote:Т.е. в сторону дата-копания, хадупа, статистики и пр. Ибо гонять туда-сюда ХМЛ-ы как-тo поднадоело. В бигдате побольше инжиниринга, однозначно. Т.е. форумы где как раз бигдата обсуждается и сопутствующие ей товары. И еще такой вопрос: на wordpress можно вставлять математические формулы? Т.е. могу ли я вставить кусок в MathML и он будет рендириться как формула, а не как текст?
Имеется ввиду wordpress.com или wordpress.org? Тупо погуглив wordpress и MathML, пишут что имеются плагины для wordpress.org:
http://wordpress.org/plugins/wpmathpub/
http://wordpress.org/plugins/mathjax-latex/
.com кажется ничего такого не дает, говорят что вручную надо.
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Ведение блога в ИТ
.com вроде LaTeX понимает, а LiveWriter его не понимает, короче бардак. Буду шлепать в виде картинок, как Вики делает.IContentProvider wrote:.com кажется ничего такого не дает, говорят что вручную надо.
А вот такая просьба к коллегам: накидайте мне плиз алгоритмических задачек которые не уменьшают размер изначального объекта, т.е. такие например как сортировка массивов, балансировка деревьев и пр. А какие задачки еще вы знаете?
-
- Уже с Приветом
- Posts: 4205
- Joined: 10 Jan 2004 01:22
- Location: n-sk -> MD -> VA
Re: Ведение блога в ИТ
стартапы пытающиеся выпендриться обязательно в дополнение к поискам подстрок спрашивают про графы. поиски разного рода особенностей типа циклов.Kolbasoff wrote:.com вроде LaTeX понимает, а LiveWriter его не понимает, короче бардак. Буду шлепать в виде картинок, как Вики делает.IContentProvider wrote:.com кажется ничего такого не дает, говорят что вручную надо.
А вот такая просьба к коллегам: накидайте мне плиз алгоритмических задачек которые не уменьшают размер изначального объекта, т.е. такие например как сортировка массивов, балансировка деревьев и пр. А какие задачки еще вы знаете?
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Ведение блога в ИТ
Хотелось бы, что бы решение задачки имело какой-нибудь практический интерес. Т.е. пост в блоге начинается не с "на одном интервью меня спросили решить задачку АБЦ...", а "решение задачи АБЦ имеет практическое применение в...".fruit6 wrote:стартапы пытающиеся выпендриться обязательно в дополнение к поискам подстрок спрашивают про графы. поиски разного рода особенностей типа циклов.
-
- Новичок
- Posts: 46
- Joined: 23 Apr 2011 18:43
- Location: WA
Re: Ведение блога в ИТ
Максим Мозговой "C++ мастер-класс: 85 нетривиальных проектов, решений и задач" - тут широкий спектр классических алгоритмов с практическими применениями - графы, деревья.Kolbasoff wrote: Хотелось бы, что бы решение задачки имело какой-нибудь практический интерес.