All streams
Search
Write a publication
Pull to refresh
214
0
gribozavr @gribozavr

Пользователь

Send message
Почему же? Это fold с комбинирующей функцией or (логическое или).
Это всего-навсего функции высшего порядка. Они ещё в lisp были. См. [1]
Это называется функции высшего порядка. map, filter, fold — самые известные из них. Тут нет fold (также известной как свёртка). some является частным случаем fold с жёстко заданной комбинирующей функцией.
В Ubuntu при загрузке в single-user mode пускает вообще без паролей и сразу запускает рутовый шелл.
Это обходится снятием скриншотов с экрана.
Не нужно становиться дизайнером только потому, что это популярно. Если душа у вас к этому не лежит, ничего хорошего не выйдет.

SEO и т. д. в ВУЗе не научат.

Делаем вывод: нужен ВУЗ, где научат правильно программировать, дадут фундаментальные знания по предмету (не просто "как сделать так, чтоб работало", а глубокое понимание принципов работы машины).
1. Извините, не заметил.
2.
> Но с другой стороны, адресация полей объекта через индексы - это обычная практика.
Только при наличии проверок корректности входных параметров и enum'а допустимых значений. Ведь статья-то на новичков ориентирована — они возьмут и один-в-один точно так же сделают.
Оба решения содержат один дефект — метод сортировки массива должен быть статическим. Иначе придётся делать как-то так:

Person arr[] = new Person[10];
...
arr[0].sort(arr);


Это раз. Во-вторых, решение с getName() неудачное даже не из-за лишнего уровня вызова функций. getName() не обрабатывает некорректные значения параметров (по всей логике, допустимы только 0 и 1, а на самом деле — нет). Да и ещё решение в таком виде провоцирует программиста рассыпать магические числа в местах вызова всех этих функций.
Это некорректная проверка. Например, она не разрешает использовать символ "плюс" в "локальной части" (имени пользователя). Например, адрес foo+bar@example.org вполне разрешён RFC. А плюс используется, например в gmail, для того, чтобы сообщения на ящик foo+label@gmail.com попадали в ящик foo@gmail.com и помечались меткой label. Довольно удобно было бы, если бы вот такие регулярные выражения не были разбросаны по всему интернету.
> Хотелось бы услышать Ваше мнение по этому вопросу)
Я не считаю, что Windows дружественна к пользователю. Поставьте на неё десяток программ, попользуйтесь пару месяцев. У большинства тех, кого я знаю, переустановка Windows раз в пол-года — нормальное рутинное действие. Для выполнения таких действий пользователь уже должен обладать немаленькими знаниями (иначе во время переустановки один неверный ответ на вопрос о форматировании — и данные потеряны). Более продвинутый пользователь постоянно "чистит реестр" и "твикает систему", чтобы "работало лучше". Да, возможно он переустанавливает систему реже, но шаманские "твиканья" и "чистки" — "налицо". (Я не верю, чтобы не то что пользователь, а даже средний разработчик более-менее глубоко знал, за что отвечает большинство ключей реестра, как регистрируются OLE серверы, и что такое этот магический CLSID). Да, если придёт знакомый админ, поставит все нужные программы, установит антивирус и фаервол и пользователь больше не будет ничего устанавливать и вообще лазить в систему (и желательно работать под юзером), тогда да, Windows будет нормально жить годами (да, у меня есть и такие знакомые). Но полностью аналогичная ситуация в любой другой операционной системе, настроенной для пользователя так, чтобы тот ничего не трогал.

> В Вас гибнет революционер=) Я говорю о качестве ПО, а Вы про свободу, равенство и братство.
Поставьте себя на место разработчика. Вы используете технологию, пишете новые программы под их платформу (фактически, косвенно популяризируя её), а MS обещает за это не подать на вас в суд. Круто?

> Мои аргументы для Вас не состоятельны потому, что Вы убеждены в своей абсолютной правоте
Нет, просто потому, что они действительно субъективны. Вы не проводили исследований "юзабилити", опросов пользователей, кому что удобнее, исследований за какое время пользователь впервые увидев OpenOffice и MS Office сделает аналогичные действия. Поэтому ваши аргументы отражают только ваше мнение. Я ведь не заявляю, что интерфейс командной строки — самый лучший интерфейс в мире, хотя большую часть времени провожу в консоли и считаю, что моя продуктивность при работе в консоли выше, чем при работе в GUI. А лично ваше и лично моё мнение о том, что "юзабельнее" в масштабах опыта всех пользователей просто не имеет значения.
> Есть два симейства дружественных к пользователю операционных систем
Это ваше субъективное мнение. Мне это неочевидно.

> Линкус по прежнему не очень удобен и сложен
Аналогично.

> Если сравнивать OpenOffice с MS Office, то тут тоже все налицо.
Что же налицо?

Итак, у вас есть три субъективных утверждения, приправленных главным аргументом — "налицо". Извините, но у вас нет аргументов.

> Ну я думаю, это несколько преувеличино.
Отнюдь. Хотя бы погуглите на тему Microsoft Open Specification Promise, прежде чем возражать.

> Не знаю, как Вам, а мне от этого не плохо. Я очень доволен ПО и очень многие довольны.
В СССР тоже все были довольны. Вам приятно, когда врут в лицо, а вы им за это ещё и платите, да поёте хвалебные песни?
> И все-таки, я не вижу, как пользователи проигрывают от ведения МС такой политики.

Пользователи проигрывают, потому что MS играет нечестно. Они говорят "мы открытые!", а на самом деле открытости нет. Это вы понимаете? MS сейчас хочет выехать на популярности opensource, показать свою причастность к этому движению. Однако конкретных действий нет, всё что есть — это маркетинг и обман пользователей.

Во-вторых, вы путаете "открытое, свободное" и "бесплатное".

> Среди бесплатного ПО никто сопоставимую функциональность предложить не может, так что кртиика в сторону ценовой политики неуместна.

Аргументируйте.
Стандарт программного интерфейса ОС называется POSIX. И где сейчас поддержка POSIX в той же Windows XP и Vista? Подсистему POSIX внедрили в Windows NT только потому, что в США по закону ОС для использования в государственных и оборонных структурах должна была соответствовать POSIX. А где сейчас эта поддержка? Да, уехала во внешний пакет дополнений под названием SFU. А это значит, что пользователь, который захотел запустить программу, написанную с расчётом на POSIX, должен установить пакет дополнений размером 350 Mb. Более того, они как обычно не называют вещи своими именами — в той же Vista это называется "Subsystem for UNIX-based applications", как будто MS изобрели что-то новое для совместимости с программами под какой-то абстрактный UNIX. (см тут)

Насчёт открытия кодов: вы вообще читали лицензии по которыми оно "открывается"? Там заявления приблизительно такие: "мы обещаем не подавать в суд на тех, кто использует наши патентованые технологии [...]" Разве это открытость?

Со стороны opensource в сторону МС идут осуждения потому, что любой здравомыслящий человек, посмотрев на лицензии и общие тенденции, понимает, что всё это "открывание" — не более, чем маркетинговый ход, попытка "выехать" на новом и модном "тренде" открытости. Настоящей открытостью там и не пахнет, это просто прикрытый vendor lock-in.
Для максимальной совместимости и интеграции есть стандарты. А ещё должны быть нормально написанные программы, которые следуют этим стандартам, а не лишь бы как (см. Internet Explorer). Сами стандарты тоже должны приниматься через кооперацию, а не тупое пропихивание (см. OOXML).

А для максимальной переносимости ПО просто обязано быть открытым!
Мой ответ был не столько вам, сколько остальным участникам дискуссии.

А вам респект за *nix и нежелание ставить windows ;)
Так почему бы не рассказать о работе с терминалом в *nix вместо conio.h? По сути, объём работы преподавателя тот же. А зато знания получаются актуальные.
Всё равно нужна инструкция условного перехода. А если мы бьёмся за количество инструкций, то в результате получим фактически nand-and-branch-if-...
> какой минимальный нужен набор инструкций для процессора (тьюринг-полного)
Одна. http://en.wikipedia.org/wiki/OISC
>в регистре B образуется код -1 * A = -A = A в обратном коде
Ошибка. В дополнительном конечно.
Можно обнулить регистр B, и потом использовать регистр A как счётчик тактов и добавлять в регистр B в каждом такте минус единицу в дополнительном коде — то есть код 11111111. Тогда после A тактов в регистре B образуется код -1 * A = -A = A в обратном коде. Но обычно операция выдачи обратного кода уже есть у регистра (странное ограничение задал автор поста, или просто забыл про эту операцию).

Information

Rating
Does not participate
Location
Украина
Registered
Activity