Pull to refresh
0
@Srdread⁠-⁠only

User

Send message

God mode ВКонтакте

Reading time3 min
Reach and readers126K
В ночь с 20 на 21 марта из-за ошибки в коде все пользователи ВКонтакте на четыре минуты получили служебные права. Мы закончили оценивать потери и отвечаем на злободневные вопросы.

Что случилось?


Случился фатально невнимательный merge ветки, в которой переделывали один из внутренних интерфейсов. В результате любой пользователь стал считаться сотрудником. В некоторых случаях — сотрудником со всеми существующими правами.
Читать дальше →

История создания простой мобильной игры

Reading time11 min
Reach and readers27K
Привет! Мы — небольшая команда из двух человек, которая пытается делать игры в свободное время. Совсем недавно мы наконец-то зарелизили свое первое скромное творение и решили поделиться опытом его создания с хабрасообществом.


“У всех есть свои раннеры, а чем мы хуже? Мы тоже сможем запилить за месяц крайне простую игру для телефонов”, — подумали мы немногим больше года назад, и все завертелось.

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

Осторожно, под катом довольно много картинок!
Читать дальше →

Грузовики и рефрижераторы в облаке

Reading time7 min
Reach and readers4.6K
В этой статье хотим поделиться с вами историей создания базового прототипа шлюза и его переноса на облачную платформу Microsoft Azure с использованием модели Software as a Service (SaaS).


Читать дальше →

Ещё немного про телефоны Xiaomi и борьбу с ними. Updated

Reading time11 min
Reach and readers365K
image

Честно признаться, у меня не было планов писать и публиковать эту статью, но, после того, как за два месяца увидел в ближнем кругу коллег 5 штук свежеприобретённых телефонов от Xiaomi, и недавнюю статью на Geektimes, рекламирующую управление умным домом от Xiaomi, ко мне пришла совесть и, сцуко, потребовала поделиться знанием с остальными.
Читать дальше →

Сравнение нескольких популярных российских облачных/обычных Windows VPS провайдеров

Reading time5 min
Reach and readers14K
На днях понадобилось мне выбрать виртуальную машинку для собственного проекта. Т.к. я пишу на Windows/.Net/Mssql, то, очевидно, и хостинг нужен соответствующий. Я выбирал только из российских провайдеров по причине необходимости хороших пингов и простоты расчетов, т.к. работать надо будет с юр. лицом. После не очень успешного Вопроса в Q&A я сам протестировал несколько провайдеров.
Updated Добавлен еще провайдер, дополнено финальное сравнение
Читать дальше →

Когда использовать Parallel.ForEach, а когда PLINQ

Reading time13 min
Reach and readers81K

Введение


Обычно, при оптимизации программы для многоядерных компьютеров первым шагом является выяснение возможности разделения алгоритма на части, выполняющиеся параллельно. Если для решения задачи необходимо параллельно обрабатывать отдельные элементы из большого набора данных, то первыми кандидатами станут новые возможности параллельности в .NET Framework 4: Parallel.ForEach и Parallel LINQ (PLINQ)

Parallel.ForEach


Класс Parallel содержит метод ForEach, представляющий собой многопоточную версию обычного цикла foreach в C#. Подобно обычному foreach, Parallel.ForEach выполняет итерации над перечислимыми данными (enumerable), но с использованием множества потоков. Одна из более часто используемых перегрузок Parallel.ForEach выглядит следующим образом:

public static ParallelLoopResult ForEach<TSource>(
			 IEnumerable<TSource> source,
			 Action<TSource> body)

Ienumerable указывает на последовательность, по которой нужно выполнить итерации, а Action body задает делегат, вызываемый для каждого элемента. Полный список перегрузок Parallel.ForEach можно найти здесь.

PLINQ


Родственный с Parallel.ForEach PLINQ представляет собой модель программирования для паралелльных операций над данными. Пользователь определяет операцию из стандартного набора операторов, включающих в себя проекции, фильтры, агрегирование и т.д. Подобно Parallel.ForEach PLINQ достигает параллельности, разбивая входную последовательность на части и обрабатывая элементы в разных потоках.
В статье выделяются различия между этими двумя подходами к параллельности. Разбираются сценарии использования, в которых лучше всего использовать Parallel.ForEach вместо PLINQ и наоборот.

Выполнение независимых операций


Читать дальше →

Information

Rating
Does not participate
Registered
Activity