Как стать автором
Обновить
15
0

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

Отправить сообщение
Ну, на сортировку байтов так много времени не нужно, можно просто взять массив long[256] и просто посчитать, сколько каждого байта нам повстречалось. А потом записать — если нужно. Можно распараллелить — будет быстро. :-)

P.S. Сорри за невольный педантизм.
Отсюда можно вычислить энергетическую ценность такой сортировки, если принять потребляемую мощность каждого компа за 600 Вт — это скромно для 12 дисков на машину.

6 часов * 4000 компов * 600 Вт = 14,4 МВт*час = 51,84 ГДж.

А если еще посчитать затраты на охлаждение… Хорошая игрушка.
Благодарю за совет (надеюсь, это был совет, просто выраженный несколько неудачно с моей точки зрения)! Посмотрю книгу, хотя она лежит очень далеко от моей основной деятельности.

К сожалению, Ваша аналогия с кольцом не выдерживает критики, т.к. в журнале не используется содержимое книги, а изображение ее обложки. Вот кабы Вы сфотографировали кольцо и потом хвастались, что это Вы его сделали, тогда мы бы Вас пожурили. Но ежели Вы честно говорите, что это кольцо работы К. Фаберже, то честь Вам и хвала.

Насчет же закона — законы в разных странах разные, и в США и ряде стран с аналогичным законодательством в области авторского права Вам никто не может запретить сфотографировать чужую работу, будь то картина или фотография, и использовать данное изображение в своей деятельности. Запрещено только выдавать изображенную работу как свою. Кстати, отсюда и запрет на фотографирование в некоторых выставочных салонах, поскольку это единственный законный способ предотвратить тиражирование изображений. Возможно, в Вашей стране иное законодательство, но насколько мне известно, практически все страны унифицировали законы об авторском праве согласно Женевского Договора 1996 года.
Почему «нехорошо»? Вроде, в журнале указали, что это обложка рудеровской книги — не украли.
Не знаю, может, это блажь, но возможно ли для отрывков кода использовать моноширинный шрифт? Конечно, сейчас выглядит он довольно-таки мило, но все же для инженерного текста (а программирование все же инженерная дисциплина, вроде строительства мостов) есть общепринятые правила, которых хотелось бы придерживаться.
В 60-70-х годах на тогдашних ЭВМ ставили подобные эксперименты. Даже обучали понятию рифмы — и ЭВМки писали стихи. Конечно, получалась полная белиберда, но они опередили Сорокина с его «Салом» годков эдак на 30. :-)
Подобная трансляция уже была осуществлена за 2 месяца до CNN в Австралии и Новой Зеландии:

Поглядеть можно тут

По-видимому, там было и проецирование 3-хмерного персонажа на сцену, а не монтаж изображения поверх красной точки, как это происходило в CNN.

Картинки с капчей генерируются, значит, можно и флэш сгенерировать.

А насчет видео - тоже вариант. :-) Показывать отрывки из старых советских фильмов, если возраст > 30, а тем, кому меньше, то - из голливуда. Пусть отгадывают. Можно видео зашумлять - гонять с видаков и пятой-шестой копии.
А кто говорил, что будет легко? :-)

К тому же, "непробиваемую" капчу сделать нельзя - если что-то видит честный пользователь, то видит и злоумышленник. If you see it, you can grab it. Т.е., даже если генерировать ActiveX каждый раз, то и его можно декомпилировать и поглядеть, что у него внутри. И это можно автоматизировать.
Насчет пункта 1 действительно ничего сделать нельзя.

А вот со вторым довольно легко, если использовать какой-нибудь random seed, например, количество тиков CPU на сервере после старта. Довольно-таки случайная величина, недоступная извне.
А ведь вариант! Капча на флэше - надо проследить, где шарик под наперстком. :-) Токмо наперстков надо побольше, чтобы вероятность случайного попадания ботом уменьшить.
Под экспертами тут явно подразумеваются консультаты из консалтинговых компаний. Вообще, IT-консалтинг - огромный бизнес, и крупные компании готовы платить им десятки и сотни тысяч долларов в год, чтобы эти эксперты управляли закупками ПО и политикой апгрейдов. Это очень большая статья расходов. К примеру, от некоторых решений могут отказаться, если они требуют сервера БД с 8 CPU и 16 GB RAM. И не из-за стоимости оборудования, а из-за стоимости SQL Server Enterprise Edition, который может стоить 50K за лицензию.
"Извините" - повелительная форма глагола, означает (или, как Вы выражаетесь, "переводится") "а ну-ка, все собрались и приняли мои извинения". :-)

Мой добрый незнакомец, спасибо за напоминание о важности знания русского языка, но все же мне кажется, что это был непрошенный совет, и уж тем более - не по существу дела.

Приятного Вам дня!
Уточнение по тексту: фраза "Microsoft хочет заставить вас купить так много, как ей надо" по-русски, видимо, должна звучать как "Microsoft заставляет вас покупать столько, сколько ей".

Выражение "as much as it wants" - сравнительное, и не переводится "один-в-один".

Извиняюсь за занудство. :-)
Не, не получится. Уже запатентовали:
http://pericles.ipaustralia.gov.au/ols/searching/patsearch/search_section.jsp?sectionCode=DTL&keyNo=2001100012&type=I
Насчёт Турции - не совсем корректное сравнение. Надпись гласит, что доступ к сайту закрыт по решению суда. Такое бывает даже в Германии, когда блокируют доступ к сайтам нацистской направленности.
Не совсем понял связи между предложениями первого абзаца. Или Вы считаете, что статические методы не наследуются? Или я что-то упускаю?

А второе Ваше возражение явно адресовано не мне, т.к. я ничего не утверждал о 2-х и более extension methods. Я имел в виду класс-наследник, у которого есть нестатический метод с названием, подобным названию метода-расширителя. Т.к. extension methods (даже будучи статическими) вызываются как метод экземпляра, то возможна некоторая путаница.

Вот, например, что делает данный код?


public class MyClass
{
public static void Main(string[] args)
{
new MyClass().RunMe();
new MyNewClass().RunMe();
new MyAnotherNewClass().RunMe();

MyClass x = new MyClass();
x.RunMe();

x = new MyAnotherNewClass();
x.RunMe();
}
}

public class MyNewClass : MyClass
{

}

public class MyAnotherNewClass : MyNewClass
{
public void RunMe()
{
Console.WriteLine("MyAnotherNewClass.RunMe()");
}
}

public static class Utils
{
public static void RunMe(this MyClass item)
{
Console.WriteLine("MyClass.RunMe()");
}
}

Ну, тогда уж вместо for надо использовать foreach, т.к. не каждый IList реализован в виде массива - например, тот же StringBuilder внутри себя держит LinkedList, и поиск в нем занимает не O(1), а O(n).


public static string ListToString(this IList list)
{
StringBuilder result = new StringBuilder();

foreach (var item in list)
if (result.Length == 0)
result.Append(item.ToString());
else
result.AppendFormat(", {0}", item.ToString());

return result.ToString();
}
Тут некоторая неточность. Методы расширения требуют поддержки со стороны .NET (подумайте, что может быть, например, с extension method при наследовании классов и определении методов с такой же сигнатурой в наследуемом классе). Т.е. этот пример будет компилироваться и работать только с .NET 3.5 (т.к. System.Core.dll существует только начиная с этой версии).
Спасибо за дельный совет. Пошел учить PHP с нативной реализацией объектов. Кстати, PHP компилируется в машинный код или все еще интерпретируемый язык?
12 ...
11

Информация

В рейтинге
Не участвует
Откуда
Sydney, New South Wales, Австралия
Дата рождения
Зарегистрирован
Активность