Индусские программисты и индусский код

User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

agrippina wrote:
Dweller wrote:в железках тоже софт есть, причем непростой
Неужели тоже хадуп?
хадуп дело хлебное, так что возможно и в железку засунут :mrgreen:
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Индусские программисты и индусский код

Post by Мальчик-Одуванчик »

Dweller wrote:
SVK wrote:
8K wrote:и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.
Да, тогда интересная должна быть разница между процессорами, где байты целого обновляются от старших к младшим, и где - наоборот! :mrgreen: :great:
Добавил к условию задачи: атомарность операций присвоения и сравнения гарантирована
Чтобы немного сузить область "тыков в небо" :)
Ну тогда и изначальное условие о сравнении с процессорами тоже сильно видоизменяется. Ведь именно эти операции могут в зависимости от процессора как быть атомарными так и нет.
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

Мальчик-Одуванчик wrote:
Dweller wrote:
SVK wrote:
8K wrote:и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.
Да, тогда интересная должна быть разница между процессорами, где байты целого обновляются от старших к младшим, и где - наоборот! :mrgreen: :great:
Добавил к условию задачи: атомарность операций присвоения и сравнения гарантирована
Чтобы немного сузить область "тыков в небо" :)
Ну тогда и изначальное условие о сравнении с процессорами тоже сильно видоизменяется. Ведь именно эти операции могут в зависимости от процессора как быть атомарными так и нет.
называть конкретные модели и марки процессоров не надо, главное понимать принципиальные различие в порядке выполнения наборов примитивных операций
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

Dweller wrote:
SVK wrote:
8K wrote:и затем печатал не фиксированное сообщение, а то, что лежит в X и Y, я бы ожидал увидеть (в том числе и) промежуточные значения, где часть байтов целого еще не успела обновиться.
Да, тогда интересная должна быть разница между процессорами, где байты целого обновляются от старших к младшим, и где - наоборот! :mrgreen: :great:
Добавил к условию задачи: атомарность операций присвоения и сравнения гарантирована
Чтобы немного сузить область "тыков в небо" :)
Я бы слегка удивился, если бы интервьер мне "гарантировал атомарность операций присвоения и сравнения". Это без указания даже типов переменных. Волшебник что-ли?
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

Dweller wrote: называть конкретные модели и марки процессоров не надо, главное понимать принципиальные различие в порядке выполнения наборов примитивных операций
Так вы полностью и нормально задачу то можете сформулировать? :mrgreen: А то не мудрено, что люди такое интервью не пройдут. У меня, кстати, были такие интервью, когда приходилось интервьюеру помогать сформулировать задачу, а то он сам иной раз не особо понимал, чего же спрашивает делать. Вместе задачу формулировали :)
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

Интеррапт wrote:Я бы слегка удивился, если бы интервьер мне "гарантировал атомарность операций присвоения и сравнения". Это без указания даже типов переменных. Волшебник что-ли?
Понятно...
Опять пошел поиск подвохов и усложнение задачи. Пусть тип переменной будет обычный byte из синтаксиса первого кернигановского С v1.0, и остальной код оттуда же.
Разница между процессорами может быть в порядке исполнения инструкций. Вот теперь осталось только нарисовать весь возможный output и объяснить как он образовался.
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

Интеррапт wrote:
Dweller wrote: называть конкретные модели и марки процессоров не надо, главное понимать принципиальные различие в порядке выполнения наборов примитивных операций
Так вы полностью и нормально задачу то можете сформулировать? :mrgreen: А то не мудрено, что люди такое интервью не пройдут. У меня, кстати, были такие интервью, когда приходилось интервьюеру помогать сформулировать задачу, а то он сам иной раз не особо понимал, чего же спрашивает делать. Вместе задачу формулировали :)
Это тоже очень важный скилл :gen1:
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Интеррапт wrote: Почему это? У этой функции есть четко определенные значения, что она должна возвращать. Вот, что говорит C99:
C99, 7.21.4 wrote: The sign of a nonzero value returned by the comparison functions memcmp, strcmp, and strncmp is determined by the sign of the difference between the values of the first pair of characters (both interpreted as unsigned char) that differ in the objects being compared.
Об чем спор, если есть четкое определение в стандарте? :)
Ну и что? В том же стандарте напейсано, что любое ненулевое значение будет интерпретировано, как true буде такое понадобится, а не только 1
Мат на форуме запрещен, блдж!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

АццкоМото wrote:
Интеррапт wrote: Почему это? У этой функции есть четко определенные значения, что она должна возвращать. Вот, что говорит C99:
C99, 7.21.4 wrote: The sign of a nonzero value returned by the comparison functions memcmp, strcmp, and strncmp is determined by the sign of the difference between the values of the first pair of characters (both interpreted as unsigned char) that differ in the objects being compared.
Об чем спор, если есть четкое определение в стандарте? :)
Ну и что? В том же стандарте напейсано, что любое ненулевое значение будет интерпретировано, как true буде такое понадобится, а не только 1
Ну вот и попробуй со своим этим любым ненулевым значением сделать if (то_самое_любое_ненулевое_значение == true) {}
Не уж, мне удобней в Си (и для меня это правильней), чтобы метод, от которого ожидается булевое значение - возвращал 0 или 1. В своем коде я придерживаюсь этого правило и меня совсем не напрягает написать
return B != 0;
вместо
return B;
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Dweller wrote: Опять же, все дело в контексте. А он у нас связан с простейшим decision tree.
Если бы я хотел многопоточника, я бы спросил что нибудь типа:
You are missing my point. Дело не в многопоточности, а в том, что если А и Бэ - произвольные выражения, то такую перестановку, как вы привели, делать нельзя. Ибо вычисление А может влиять на результат вычисления Бэ и наоборот. Именно поэтому и возникает вопрос обо всех допущениях
Мат на форуме запрещен, блдж!
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

АццкоМото wrote:
Dweller wrote: Опять же, все дело в контексте. А он у нас связан с простейшим decision tree.
Если бы я хотел многопоточника, я бы спросил что нибудь типа:
You are missing my point. Дело не в многопоточности, а в том, что если А и Бэ - произвольные выражения, то такую перестановку, как вы привели, делать нельзя. Ибо вычисление А может влиять на результат вычисления Бэ и наоборот. Именно поэтому и возникает вопрос обо всех допущениях
Все же ключевое слово decision tree, там А, В, и С это просто переменные, скорее всего из массивов. Т.к. dataset редко когда делается на лету то это просто числа которые откуда то из файла загружаются.
Tarasik
Уже с Приветом
Posts: 762
Joined: 20 Jan 2005 00:27
Location: La Jolla, California

Re: Индусские программисты и индусский код

Post by Tarasik »

Интеррапт wrote:
Dweller wrote: называть конкретные модели и марки процессоров не надо, главное понимать принципиальные различие в порядке выполнения наборов примитивных операций
Так вы полностью и нормально задачу то можете сформулировать? :mrgreen: А то не мудрено, что люди такое интервью не пройдут. У меня, кстати, были такие интервью, когда приходилось интервьюеру помогать сформулировать задачу, а то он сам иной раз не особо понимал, чего же спрашивает делать. Вместе задачу формулировали :)
И потом он (интервьюирующий) просил вас сделать ему офер ? :love:
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

Tarasik wrote: И потом он (интервьюирующий) просил вас сделать ему офер ? :love:
Нет, но иной раз можно составить представление о команде, в которой возможно придется работать. И сделать выводы.
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Индусские программисты и индусский код

Post by Ljolja »

не Dweller, я вам точно не подхожу, такой код я бы не написала. Да и я все же предпочитаю конторы, где есть конкретика в задачах. Если в обшем описании профиля что-то типа построения генеологоческих деревьев, на интерьвю спаршивают о том, как протестировать процессор и какие они бывают, смогу ли я установит хадооп на кластер (с переменным количеством nodes) и очень интересуются моим опытом в cross-platform development on C# and Windows, this company is too good for me. На самом деле основная задача там наверняка будет - to make your boss happy, а с подобными задачами я обычно справляюсь плохо :cry:
вобшем берите индуса с creative resume writing skills
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

Ljolja wrote:а с подобными задачами я обычно справляюсь плохо :cry:
Над этим нужно работать :umnik1: :D
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Индусские программисты и индусский код

Post by Ljolja »

Интеррапт wrote:
Ljolja wrote:а с подобными задачами я обычно справляюсь плохо :cry:
Над этим нужно работать :umnik1: :D
да я работаю (не покладая рук), уже не стучу начальство файсом об табле, учу правильные формулировки :kofe:
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

Ljolja wrote:да я работаю (не покладая рук), уже не стучу начальство файсом об табле, учу правильные формулировки :kofe:
Умница :love:
User avatar
Ljolja
Уже с Приветом
Posts: 2924
Joined: 01 Apr 2004 04:22

Re: Индусские программисты и индусский код

Post by Ljolja »

Интеррапт wrote:
Ljolja wrote:да я работаю (не покладая рук), уже не стучу начальство файсом об табле, учу правильные формулировки :kofe:
Умница :love:
осталось написать себе резюме покрасивее и научиться давать правильные ответы на нестандартные ??
Я боюсь, что наступит день, когда технологии превзойдут простое человеческое обшение. И мир получит поколение идиотов (c)
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Интеррапт wrote: Ну вот и попробуй со своим этим любым ненулевым значением сделать if (то_самое_любое_ненулевое_значение == true) {}
А зачем вообще в условии может понадобиться совершенно лишнее == true? Чтобы оправдать столь же лишнее !=0?
Мат на форуме запрещен, блдж!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

АццкоМото wrote: А зачем вообще в условии может понадобиться совершенно лишнее == true?
А почему бы и нет? Чем конструкция == true или != true невалидная? Почему бы и не подстраховаться от вероятности того, что тот, кто будет использовать твой код использует != true?
В более ранних версиях С даже идиому "!!" использовали, чтобы конвертировать значение в 0/1 (без != 0). Типа такого:

Code: Select all

int result() {
	int result = 12;
	return !!result;
}
на выходе будет 1.

Ес-но с C99 стандартом достаточно просто bool использовать, который преобразует сам в 0 и 1.

Code: Select all

#include <stdio.h>
#include <stdbool.h>

bool result() {
	return 12;
}

int main(void) {
	printf("%d\n", (int)result());
	return 0;
}
напечатает 1.

Как видишь, даже в стандарт добавили преобразование из любого ненулевого числа в 1 для bool. И только ты упрямишься :)
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Индусские программисты и индусский код

Post by Сабина »

Albert_al wrote:
agrippina wrote:Джимми-джимми. Ача-ача.
:lol: :ROFL: :Yahoo!:
Там три раза было на самом деле :)
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Dweller
Уже с Приветом
Posts: 12257
Joined: 20 Dec 2000 10:01
Location: Bellevue, WA

Re: Индусские программисты и индусский код

Post by Dweller »

Ljolja wrote:Если в обшем описании профиля что-то типа построения генеологоческих деревьев, на интерьвю спаршивают о том, как протестировать процессор и какие они бывают, смогу ли я установит хадооп на кластер (с переменным количеством nodes) и очень интересуются моим опытом в cross-platform development on C# and Windows, this company is too good for me.
Про процессоры я не спрашиваю на эту позицию :) Просто привел пример по поводу многопоточности.
Упомянуть построение генеалогических деревьев - обычная обязаловка от HR. C# - good to have, от них же
Last edited by Dweller on 30 Jan 2013 19:47, edited 1 time in total.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Интеррапт wrote: А почему бы и нет? Чем конструкция == true или != true невалидная? Почему бы и не подстраховаться от вероятности того, что тот, кто будет использовать твой код использует != true?
Конструкция А == true не то, чтобы невалидна, она просто эквивалентна А. А!=true эквивалентна !А. Причем эквивалентна именно если считать true равным любой ненулевой величине, а если считать 1, то как раз вылазят нюансы. Так зачем усложнять?
Мы же не пишем (i++)-=2; для декремента, верно? хотя в целом кострукция более чем валидная.
Конечно, против моей религии тоже можно придумать, что типа if (A==B) где нам надо чтобы либо и то и другое истина, либо оба ложны - то мне придется писать if ((A&&B)!!(!A&&!B))
Но это и не так уж плохо, на самом-то деле.

Ну а самое главное - не все разделяют религию возвращать в точности 1 вместо true. соответственно, есть риск пропереться с чужим кодом. Риск пропереться с олдскульным подходом - минимален.
Интеррапт wrote:Как видишь, даже в стандарт добавили преобразование из любого ненулевого числа в 1 для bool. И только ты упрямишься :)
Не, это совсем другое. Использовать bool - кошерно, а хранить бул в интах используя только 0 и 1 - очень спорно, имхо. Особенно, когда нет возможности сказать "да будет так по всему проекту, включая все используемые либы"
Иными словами - хочется, чтобы true==1 - надо использовать bool. Используешь int для булевых по сути значений - не предполагай, что true==1
Так говорил Заратустра
Мат на форуме запрещен, блдж!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Индусские программисты и индусский код

Post by Интеррапт »

АццкоМото wrote: Конструкция А == true не то, чтобы невалидна, она просто эквивалентна А.
В твоем случае нет, если мы все еще предполагаем, что true == 1.
АццкоМото wrote: Не, это совсем другое. Использовать bool - кошерно, а хранить бул в интах используя только 0 и 1 - очень спорно, имхо. Особенно, когда нет возможности сказать "да будет так по всему проекту, включая все используемые либы"
Иными словами - хочется, чтобы true==1 - надо использовать bool. Используешь int для булевых по сути значений - не предполагай, что true==1
Так говорил Заратустра
Ну кто бы спорил, что языковой bool использовать самое правильное :) Но уж если мы имеем дело с pre-C99 кодом, в котором bool реализовано на интах, то я считаю правильней компилятору решать, как именно должен выглядеть true для данной системы/архитектуры. И самое правильное будет return result != 0 или там return !!result; По крайней мере в своем коде я всегда так делал. Ну или на enum.

Впрочем, с появлением C99 - это спор не имеет особого смысла.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Индусские программисты и индусский код

Post by АццкоМото »

Интеррапт wrote: В твоем случае нет, если мы все еще предполагаем, что true == 1.
Ну я ж сделал на этот счет оговорку. С другой стороны, в pre-C99 и слова-то такого true кагбэ и нет. вечно задефайнено в 100500 местах проекта, причем по-разному. где-то 1, где-то 0xFFFF, где-то как -1, а где-то как какой-нибудь MAX_STUPID_COMPANY_UINT32
так что в любом случае сравнение с true в pre-C99 - сомнительное мероприятие
Интеррапт wrote:Ну кто бы спорил, что языковой bool использовать самое правильное :) Но уж если мы имеем дело с pre-C99 кодом, в котором bool реализовано на интах, то я считаю правильней компилятору решать, как именно должен выглядеть true для данной системы/архитектуры. И самое правильное будет return result != 0 или там return !!result; По крайней мере в своем коде я всегда так делал. Ну или на enum.
Ну, дело вкуса. Но я бы компилятору не доверял, он такой выдумщик. Да и система с архитектурой тут не при чем
Интеррапт wrote:Впрочем, с появлением C99 - это спор не имеет особого смысла.
А вот это - точно. Так, языки почесать
Мат на форуме запрещен, блдж!

Return to “Работа и Карьера в IT”