All streams
Search
Write a publication
Pull to refresh
0
0
Alexander Mishurov @grafmishurov

User

Send message
Но это же есть в стандартном курсе по алгоритмам, использовать рандомизированные алгоритмы и оценивать их с помощью теории вероятности — это нормальная практика: QuickSort, Randomized selection algorithm, Karger's algorithm, для их анализа используется теория вероятности и объясняется, почему они удобные на практике несмотря на случайность событий, при чем для Karger's algorithm еще расчитывается количество дополнительных вызовов, чтобы увеличить значение вероятности. Коллизии в хэш-таблицах — один из частных случаев.
Я пишу преимущественно на Python и C++ в Linux, для Python использовал IDE от JetBrains, но в какой-то момент понял, что уже давно пользуюсь преимущественно консолью для всего: git, virtualenv, manage.py, make, g++, ssh, sftp, и что от IDE в текстовом редакторе мне нужно — только навигация по дереву файлов проекта, автокомплит и навигация по коду (переходы к определениям), все это можно допилить в редакторах. C++ проект прекрасно собирается с помощью make/cmake-файлов, в т.ч. и QT-проекты с метаобджект-компайлером, дебаггер — gdb и т.д, автоматизировать рутину можно шелл-скриптами. В итоге перешел на Vim.
Тех, кто незнаком с Vim, вообще к консоли нельзя допускать.
Как там на диване размышляется? В этих карточках большое количеством потоковых процессоров, она более чем удобна для параллельных операций с большим количеством матриц с вещественными числами (что вобщем-то во многом и используется для координат точек в евклидовом пространстве), несколько уровней памяти: локальная для потоков, общая, константная и прочее, у всех своя скорость доступа. По шине передавать можно только окончательные результаты вычислений на хост с видеокарты и обратно. Сейчас даже суперкомпьютеры используют GPU, т.к. плавающая точка быстро считается. А про драйвера, я думаю, там предусмотрены методы для отказоустойчивости и т.д, со здоровьем людей все же работают, а не домашнюю страничку коту делают.
Ну вообще-то в данном случае — это метод, конструктор класса set, который создает экземпляр класса структуры данных.

Не понравился перевод «dict comprehension» как «генератор словарей». Будет путаница с настоящими generators и generator expressions. Дословно «генератор словарей» будет примерно так выглядеть:

dict_generator = lambda n: [(yield {x: x*x}) for x in xrange(n)]

и чтобы получить словарь, как в тексте поста:

reduce(lambda x, y: dict(x, **y), dict_generator(10))

Я в этом особенного смысла не вижу. Если я с PyArg_ParseTuple() я могу конвертировать данные в нативные типы и дальше иметь полный контроль над байтиками памяти в стеке и куче, и все возможности сишных библиотек по обходу графов, и т.д., после макроса Py_BEGIN_ALLOW_THREADS считать матан в несколько потоков, и там же, если че, сгенерировать нужное исключение, и потом результат с помощью Py_BuildValue() передать обратно в Python. В Boost, мне показалось, приятней работа с кастомными типами (наследование структур и т.д.) и это все лучше, чем cython.
Вопрос от чайника. По собственным ощущениям чистый Python C API мне показался очень мозгодробильным с его Py_BuildValue(), рефкаунтингом, макросами для описания типов и т.д. Дело привычки, впрочем. Все это, кстати, и на C++ работает без экстернов. В Boost все выглядит намного наглядней и изящней. И у меня вопрос, накладывает ли Boost какие-либо ограничения? Исходники Blender'а (C++), например, используют чистый API без обвесок. (Мне это нужно для ускорения расчетов матана модулем, потому мне GIL как бы и удобнее, если OpenCL нет в системе).
Еще можно просто скопировать ссылку, открыть VLC — Media — Open Network Stream… и вставить ссылку (Ubuntu 12.04, VLC 2.0.1 установлен apt-get'ом).
Офигенно! Мечтаю работать в той сфере, где алгоритмы (с О-нотацией), Open GL ES, шейдеры, массивы вершин и много матана, а не только линейная алгебра с матрицами трансформаций и проекций. Игры для мобильный устройств и Петербург — это круто.
Я когда бегло просматривал в вакансиях Python-программистов эту компанию, думал какой-то стартап непонятный с дизайнерами и торгашами, а оказалось, что инженеры. Приятно удивлен. Желаю успехов разработчикам и инженерам!
Совсем не хочу обидеть автора, но честно говоря, я после пайтоновских re.compile, именованных групп и прочих perl-style фокусов ожидал увидеть нечто большее, чем просто [символьный класс]. Сейчас занимаюсь тоже номерами телефонов на Джанго и вот пример регулярки для валидации формы с телефонным номером ^(?:[78]-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$
>>> какими высокотехнологичными сущностями я оперирую которые не доступны обычному человеку

А ну-ка! :-)
А мне понравилось, сложно только читать формулы написанные обычными символами без двухэтажных дробей и прочего. Надо будет как-нибудь освоить раздел, пока с векторным анализом (точнее vector calculus, т.к. по англ. источникам) с набла операторами, полями и прочим разбираюсь для графики.
Я считаю, что человек это наивысшая ценность, и что человек гораздо важнее, чем набор микросхем и красивых иконок в красивом корпусе, и что человек и его здоровье важнее, чем красивый вид стеклянной двери на стеклянном фасаде. Я искренне переживаю за старушку и желаю ей скорейшего выздоровления и новый Макбук.

А что касется денег. Наверное жадный поступок, человек воспользовался возможностью нажиться на богатой компании. Да это не совсем красиво, но это не наживаться на откатах из ПФР, или на распилах из финансирования Чеченской войны. Более того, я не думаю, что поступки Apple всегда морально чисты и щедры.
Первый комментарий и пара других в ветке поражают своим цинизмом. Это насколько можно быть фанатом каких-то технологичных железяк, что с такой ненавистью и жестокостью отзываться о пожилом человеке, старушке, которая повредила свое здоровье в таком возрасте, и посмела подать иск на многомиллиардную корпорацию, которая может еще и у архитектурного бюро взыщет эти деньги. Мне страшно в этой стране оставаться до пенсионного возраста и страшно за старость своих родителей в этом обществе.
Objective-C

метод
— (type) funcname: (type) arg{};

клозура
type (^blockname)(type) = ^(type arg) {};

обычные функции там, понятное дело, сишные
Это не «как из вокселей», а «как из спрайтов», когда на каждую точку в пространстве назначается картинка (текстура) всегда повернутая к зрителю.
Играют ради впечатлений, а для впечатлений и настроения вещества необязательны, там и водочки с веселой компанией хватит. Другой вопрос, что игра стоит как несколько бутылок водки. И лучше, наверное, эти деньги платить игровой индустрии, а не алкогольной промышленности. Тем более с теперешними манипуляторами человек физическими управжнениями занимается и т.д.
Кто хочет ищет возможности, а кто не хочет — причины… Пойду, пожалуй, с Core Data поразбираюсь.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity