Re[24]: О желании жить в Северной Америке
От: binnom  
Дата: 13.09.15 09:18
Оценка: +1 -1
Здравствуйте, mik1, Вы писали:

S>>у меня была задачка

S>>есть файл скажем G что бы небыло соблазна использовать рекурсию
S>>проверить что все скобки парные и правильно вложенн
S>>([]()) это разрещенно
S>>[(]) это нет

M>Ну и стоит помнить, что если глубина стека превышает длину файла пополам, то можно смело останавливаться.

Ну а начать процесс надо с определения четности длины массива, т.к. при нечетной длине явно будет несовпадение скобок.
Re[25]: О желании жить в Северной Америке
От: Aртёмка Австралия жж
Дата: 13.09.15 09:22
Оценка: :)
Здравствуйте, binnom, Вы писали:

B>Ну а начать процесс надо с определения четности длины массива, т.к. при нечетной длине явно будет несовпадение скобок.


Я бы тебя на работу не взял
Re[26]: О желании жить в Северной Америке
От: binnom  
Дата: 13.09.15 09:27
Оценка:
Здравствуйте, Aртёмка, Вы писали:

Aё>Здравствуйте, binnom, Вы писали:

B>>Ну а начать процесс надо с определения четности длины массива, т.к. при нечетной длине явно будет несовпадение скобок.
Aё>Я бы тебя на работу не взял
Ты знаешь, я бы лучше к индусам работать пошел бы

Кстати, что там насчет ограниченности стэка?
Re[27]: О желании жить в Северной Америке
От: Aртёмка Австралия жж
Дата: 13.09.15 10:22
Оценка:
Здравствуйте, binnom, Вы писали:

B>Ты знаешь, я бы лучше к индусам работать пошел бы

В Бангалор?

B>Кстати, что там насчет ограниченности стэка?

Каждый thread при создании наделяется фиксированным стеком вызовов. Величины можешь погуглить, но обычно что-то вроде 1-8mb. При этом в функциональные языки stackless by design, т.е. их стек- это не стек thread-а, а управляемая средой исполнения структура в памяти. При том с GC- устаревшие куски стека возвращаются в кучу, стек "бесконечный".
Re[28]: О желании жить в Северной Америке
От: binnom  
Дата: 13.09.15 11:26
Оценка:
Здравствуйте, Aртёмка, Вы писали:

Aё>Здравствуйте, binnom, Вы писали:


B>>Ты знаешь, я бы лучше к индусам работать пошел бы

Aё>В Бангалор?
Я сейчас с индусами работаю, вот они примерно так же раздувают щеки, про архитектуру рассуждать могут часами, а по факту хранят текущий язык пользователя веб-приложения в статической переменной, и говорят что "на моем компе работает!" (с)

B>>Кстати, что там насчет ограниченности стэка?

Aё>Каждый thread при создании наделяется фиксированным стеком вызовов. Величины можешь погуглить, но обычно что-то вроде 1-8mb. При этом в функциональные языки stackless by design, т.е. их стек- это не стек thread-а, а управляемая средой исполнения структура в памяти. При том с GC- устаревшие куски стека возвращаются в кучу, стек "бесконечный".
Хорошо, допустим про GC ты что-то слышал, хотя GC тут вообще никаким боком не участвует. Давай теперь разберемся по трем вопросам:

1) что именно пишется в стэк трэда,
2) почему ты решил использовать именно стэк трэда для определения парности скобок (хинт: recursive approach vs non-recursive)

и критикал хит:

3) можно ли создать свой класс стэка или обязательно использовать именно стэк трэда?
Отредактировано 13.09.2015 11:45 binnom . Предыдущая версия .
Re: О желании жить в Северной Америке
От: sergey2b ЮАР  
Дата: 13.09.15 17:35
Оценка: 1 (1) +1
Здравствуйте, Aртёмка, Вы писали:

Aё>Почему люди стремятся так жить?

так как топик скатился к обсуждению велосипедов и алгоритмов я наверное наброшу

я работал в 3 амер копаниях и все три когда приходило время делатть GC меня увольняли, последняя врала в течении N месяццев что они делают GC, но при уволнении адвокат подвердил что они не начинали процесса

можно считать что я дурак, лентяй и невезучий но

у меня был коллега который за этоже время поменял 6 компаний тк сделал себе лимит — если компания не начала GC в течении 2-3 месяцев с оговоренного срока он менял работу. парень индус и без вазелина пролезет туда куда ему надо, социальные навыки у него лучше чем у 90% людей на rsdn те уже трудно списать что человек такой

те статистика небольшая но 9 компании в числе который как миниму 2 лидера индустрии

мой вопрос что надо делать что бы такое не присхоодило
мой текущейй ответ прогибаться но проходить собеседования и работать только для MS Amazon or Bloomberg так как есть много подверждений что с GC ррем не обманывают
Re[2]: О желании жить в Северной Америке
От: binnom  
Дата: 13.09.15 18:31
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>я работал в 3 амер копаниях и все три когда приходило время делатть GC меня увольняли, последняя врала в течении N месяццев что они делают GC, но при уволнении адвокат подвердил что они не начинали процесса

Я понимаю, что процессинг GC полностью зависит от работодателя, но наверное можно же потребовать с них каких-то бумаг в подтверждение?

S>у меня был коллега который за этоже время поменял 6 компаний тк сделал себе лимит — если компания не начала GC в течении 2-3 месяцев с оговоренного срока он менял работу. парень индус и без вазелина пролезет туда куда ему надо, социальные навыки у него лучше чем у 90% людей на rsdn те уже трудно списать что человек такой

Ну и? Сделал индус GC-то себе? У них гринка процессится столько, что успевают женить детей.

S>мой вопрос что надо делать что бы такое не присхоодило

S>мой текущейй ответ прогибаться но проходить собеседования и работать только для MS Amazon or Bloomberg так как есть много подверждений что с GC ррем не обманывают
Если не выйдет остаться, то можно в принципе начать искать работу в ЕС: Британия, Ирландия, Германия, Нидерланды и далее по списку. А может и в Европе понравится, там с иммиграцией сейчас вообще проблем практически нет. Ну по крайней мере в той форме, что в Штатах.
Re[23]: О желании жить в Северной Америке
От: MozgC США http://nightcoder.livejournal.com
Дата: 13.09.15 18:37
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>если не секрет это однофвмилиц ? https://cracklab.ru/faq/MozgC

S>у Блумберга есть отдел который пишет секюрети софт

Нет, это не однофамилец, но я уже лет 10 этим не занимался, хотя ностальгия накатывает
Re[3]: О желании жить в Северной Америке
От: sergey2b ЮАР  
Дата: 13.09.15 18:57
Оценка:
Здравствуйте, binnom, Вы писали:

S>>у меня был коллега который за этоже время поменял 6 компаний тк сделал себе лимит — если компания не начала GC в течении 2-3 месяцев с оговоренного срока он менял работу. парень индус и без вазелина пролезет туда куда ему надо, социальные навыки у него лучше чем у 90% людей на rsdn те уже трудно списать что человек такой

B>Ну и? Сделал индус GC-то себе? У них гринка процессится столько, что успевают женить детей.
он работает в компании которая точно делает, так что у него все будет нормально я думаю

Bloomberg так как есть много подверждений что с GC ррем не обманывают
B>Если не выйдет остаться, то можно в принципе начать искать работу в ЕС: Британия, Ирландия, Германия, Нидерланды и далее по списку. А может и в Европе понравится, там с иммиграцией сейчас вообще проблем практически нет. Ну по крайней мере в той форме, что в Штатах.
я пожил в SA 8 лет в США 4 еще одну эмиграцию я не осилю и благосостояние моих коллег кто остался сейчас выше чем у меня
Re[28]: О желании жить в Северной Америке
От: CreatorCray  
Дата: 13.09.15 19:40
Оценка:
Здравствуйте, Aртёмка, Вы писали:

B>>Кстати, что там насчет ограниченности стэка?

Aё>Каждый thread при создании наделяется фиксированным стеком вызовов.

Который в большинстве систем ты можешь задать при создании потока, если уж тебе так припёрло использовать именно писать рекурсию.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[29]: О желании жить в Северной Америке
От: Aртёмка Австралия жж
Дата: 13.09.15 22:17
Оценка:
Здравствуйте, binnom, Вы писали:

B>1) что именно пишется в стэк трэда,

Кадр. Любая функция имеет состояние, даже если не заводит переменных на стеке- точку возврата никто не отменял. Впрочем, оптимизирующий компилятор может и развернуть рекурсию.

B>2) почему ты решил использовать именно стэк трэда для определения парности скобок (хинт: recursive approach vs non-recursive)

Я лишь указал, что оба варианта- хранение скобок в стеке потока исполнения и хранение в динамической памяти в структуре "stack"- тупые. Во втором варианте методом лома, т.е. расхода памяти, можно отложить переполнение.

B>и критикал хит:


B>3) можно ли создать свой класс стэка или обязательно использовать именно стэк трэда?

Зачем создавать свой класс? Лучше озаботиться оптимальным алгоритмом подсчёта скобок. Кстати, здесь в топике кроме раздувания щёк никто так и не предложил вменяемый алгоритм. Михаил предложил решение с выгрузкой на диск- не самое оптимальное, но решающее задачу.

UPD:
1) Нарезать блоки фиксированного размера, например 8Mb.
2) Скажем у нас 4 вида скобок. На каждую открывающую скобку записываем 2 бита в текущий блок- смещение в байтах и битах легко вычислить по счётчику. В случае 3 битов чуть сложней формула, но смысл понятен.
3) При заполнении блока, он отдаётся в хранилище блоков. Хранилище блоков все кроме верхнего блока упаковывает deflate-м- так боремся с "паттернами" вроде "({([({([", не изобретаем велосипеды с RLE. Можно с отдельным потоком и блоком синхронизации
4) Хранилище блоков при суммарном размере сжатых блоков больше установленного размера, скажем 128m, сливает сжатые блоки порциями в зависимоси от требований к латентности, или разом в временный файл. При необходимости подгружает поблочно и распаковывает.
Отредактировано 13.09.2015 23:15 Артём . Предыдущая версия .
Re[4]: О желании жить в Северной Америке
От: Antidote  
Дата: 13.09.15 22:40
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>я пожил в SA 8 лет в США 4 еще одну эмиграцию я не осилю и благосостояние моих коллег кто остался сейчас выше чем у меня


То есть ты планируешь жить в SA? У меня есть знакомые, которые оттуда уехали, и все в один голос говорят — что там только временно можно жить, и им не приходило в голову там остаться.
Чему бы грабли ни учили, а сердце верит в чудеса.
Re[5]: О желании жить в Северной Америке
От: sergey2b ЮАР  
Дата: 13.09.15 23:05
Оценка:
Здравствуйте, Antidote, Вы писали:

A>То есть ты планируешь жить в SA? У меня есть знакомые, которые оттуда уехали, и все в один голос говорят — что там только временно можно жить, и им не приходило в голову там остаться.


у меня есть квартира в подмосковьи минут 20 от метро
Re[30]: О желании жить в Северной Америке
От: binnom  
Дата: 14.09.15 00:09
Оценка:
Здравствуйте, Aртёмка, Вы писали:

B>>3) можно ли создать свой класс стэка или обязательно использовать именно стэк трэда?

Aё>Зачем создавать свой класс? Лучше озаботиться оптимальным алгоритмом подсчёта скобок. Кстати, здесь в топике кроме раздувания щёк никто так и не предложил вменяемый алгоритм. Михаил предложил решение с выгрузкой на диск- не самое оптимальное, но решающее задачу.
Не самое оптимальное, но гораздо более правдоподобное и жизнеспособное, нежели непонятная конструкция с компрессией.

Aё>UPD:

Aё>1) Нарезать блоки фиксированного размера, например 8Mb.
Aё>2) Скажем у нас 4 вида скобок. На каждую открывающую скобку записываем 2 бита в текущий блок- смещение в байтах и битах легко вычислить по счётчику. В случае 3 битов чуть сложней формула, но смысл понятен.
Aё>3) При заполнении блока, он отдаётся в хранилище блоков. Хранилище блоков все кроме верхнего блока упаковывает deflate-м- так боремся с "паттернами" вроде "({([({([", не изобретаем велосипеды с RLE. Можно с отдельным потоком и блоком синхронизации
Aё>4) Хранилище блоков при суммарном размере сжатых блоков больше установленного размера, скажем 128m, сливает сжатые блоки порциями в зависимоси от требований к латентности, или разом в временный файл. При необходимости подгружает поблочно и распаковывает.
Это все прекрасно, но твой подход не решает задачу, совсем не решает. Ты просто нагородил конструкцию, которая запаковывает входящие данные.
Re[31]: О желании жить в Северной Америке
От: SkyDance Земля  
Дата: 14.09.15 00:29
Оценка: +1
B>Не самое оптимальное, но гораздо более правдоподобное и жизнеспособное, нежели непонятная конструкция с компрессией.

Да на собеседованиях обычно нужн лишь продемонстрировать способность к мышлению. Где/как хранить — дело десятое. И вообще следующий вопрос по логике был бы "а как этот алгоритм распараллелить".
Re[31]: О желании жить в Северной Америке
От: Aртёмка Австралия жж
Дата: 14.09.15 00:42
Оценка:
Здравствуйте, binnom, Вы писали:

B>Это все прекрасно, но твой подход не решает задачу, совсем не решает. Ты просто нагородил конструкцию, которая запаковывает входящие данные.



Входящие скобки, да, упаковывает. И совсем решает, да решает. Запихивать неупакованные данные в динамически изменяющую размер структуру в памяти без понятия о возможном размере входного файла — индия-стайл.
Re[32]: О желании жить в Северной Америке
От: Aртёмка Австралия жж
Дата: 14.09.15 00:46
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD>Да на собеседованиях обычно нужн лишь продемонстрировать способность к мышлению. Где/как хранить — дело десятое. И вообще следующий вопрос по логике был бы "а как этот алгоритм распараллелить".


Одну половину файла читать прямо, вторую половину файла читать в реверсе — т.е. в 2 потока исполнения, и в конце проверить сходимость скобок?
Re[32]: О желании жить в Северной Америке
От: SkyDance Земля  
Дата: 14.09.15 00:56
Оценка:
Aё>Входящие скобки, да, упаковывает. И совсем решает, да решает. Запихивать неупакованные данные в динамически изменяющую размер структуру в памяти без понятия о возможном размере входного файла — индия-стайл.

Справедливости ради, упаковка занимает циклы CPU (которых у нас и так мало, если получится распараллелить задачу на все ядра). А выгрузка на диск "бесплатна" с точки зрения CPU. Причем prefetch организовать очень просто.
Re[5]: О желании жить в Северной Америке
От: ned Австралия  
Дата: 14.09.15 01:03
Оценка: :)
Здравствуйте, Antidote, Вы писали:

A>То есть ты планируешь жить в SA? У меня есть знакомые, которые оттуда уехали, и все в один голос говорят — что там только временно можно жить, и им не приходило в голову там остаться.


South Australia? Там разве есть жизнь? Ну кроме Примуса, конечно.
Re[33]: О желании жить в Северной Америке
От: Aртёмка Австралия жж
Дата: 14.09.15 01:04
Оценка:
Здравствуйте, SkyDance, Вы писали:

Aё>>Входящие скобки, да, упаковывает. И совсем решает, да решает. Запихивать неупакованные данные в динамически изменяющую размер структуру в памяти без понятия о возможном размере входного файла — индия-стайл.


SD>Справедливости ради, упаковка занимает циклы CPU (которых у нас и так мало, если получится распараллелить задачу на все ядра). А выгрузка на диск "бесплатна" с точки зрения CPU. Причем prefetch организовать очень просто.


Циклов CPU у нас много, дисковая операция всегда дороже циклов, учитывая необходимость перехода в режим ядра и синхронизаций- даже с ssd. Упаковку можно выбрать наиболее быструю, а не только deflate.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.