среда, 6 февраля 2019 г.

Небольшой обзор SIMD в .NET

Вашему вниманию предлагается небольшой обзор возможностей векторизации алгоритмов в .NET Framework и .NETCORE. Цель статьи познакомить с этими приёмами тех, кто их вообще не знал и показать, что .NET не сильно отстаёт от “настоящих, компилируемых” языков для нативной
разработки.

Как Microsoft Excel работает с высотами рядов

Свежая версия статьи находится здесь: https://habr.com/ru/post/435426/
Иногда мне бывает скучно и я, вооружившись отладчиком, начинаю копаться в разных программах. В этот раз мой выбор пал на Excel и было желание разобраться как он оперирует высотами рядов, в чём хранит, как считает высоту диапазона ячеек и т.д. Разбирал я Excel 2010 (excel.exe, 32bit, version 14.0.4756.1000, SHA1 a805cf60a5542f21001b0ea5d142d1cd0ee00b28).

четверг, 13 декабря 2018 г.

Стоит ли отдельно сохранять длину массива в .NET

Свежая версия этой статьи находится здесь: https://habr.com/ru/post/434060/
Очень часто замечаю, что люди пишут вот так:
var length = array.Length;
for (int i = 0; i < length; i++) {
    //do smth
}
Пишут они это в надежде ускорить цикл, думая что создавая локальную переменную избавляют CLR от необходимости вызывать каждый раз геттер для Array.Length. В моём главном рабочем проекте подобный код встречается более 150 раз. Я решил раз и навсегда для себя понять стоит так делать или можно сэкономить своё время и написать без временной переменной.

воскресенье, 20 мая 2018 г.

OutOfMemory + GdiPlus иногда совсем не OutOfMemory

При выполнении последнего проекта на работе, мы с коллегой столкнулись с тем, что некоторые методы и конструкторы в System.Drawing падают с OutOfMemory в совершенно обычных местах, и когда памяти свободной ещё очень и очень много.

воскресенье, 12 марта 2017 г.

Мои быстрые 1500

В пятницу вечером после работы мне было скучно, и я решил скоротать время за просмотром заказов на fl.ru. Как обычно я искал что-нибудь простое на один вечер. Среди кучи однотипных заказов был один с ТЗ на 56 строк, с подробнейшим описанием того что надо сделать, как будет проходить проверка работы, какими долями и когда будут переводится деньги и т.д. Основное задание же звучало так: "Изменить файл программы exe", и короткое описание: "Изменить файл Viewer.exe таким образом, чтобы окно ввода пароля вообще не появлялось, а зашифрованный файл (.mp3) запускался из зашифрованного контейнера сразу при открытии двойным щелчком."

пятница, 9 мая 2014 г.

Ночь удалась и программист полиглот

Практически одновременно я смог запустить хард сестры, с которым возился неделю и найти плавающий баг по работе, который искать начал две недели назад. Прямо, счастливые полчетвёртого утра!
Теперь об интересном. Замечательным у меня выдались конец апреля и начало мая: больше пятисот строк на VBA, 353 строки на C++, 1500 строк на Java, на C# посчитать не получится + выиграл очередную футболку. На этот раз от 1С :-)

воскресенье, 9 февраля 2014 г.

Тру программист

Пытаюсь заработать все достижения в StarCraft II Wings of Liberty. Застрял на достижениях, связанных с игрой Lost Viking - отсылка к популярной когда-то игре про трёх викингов, каждый со своими способностями и они должны были выбраться из той хрени в которую попали. Брату она очень нравилась раньше.
В общем, а в SC II, в Lost Viking нужно управлять как бы самолётом и стрелять во всё что движется, зарабатывая очки. Суть в том, что надо часто жать на пробел - производить выстрел. Это неудобно по нескольким причинам: во-первых, пробел на моей Microsoft 4000 громкий, а во-вторых, я не умею нажимать с такой скоростью, какую надо иметь чтобы пройти эту игру. В итоге в голове за 10 минут родилось такое прекрасное решение:

var
    wnd:HWND;
    Key:NativeUInt;
begin
    key:=VK_SPACE;
    while (true) do
    begin
        wnd:=GetForegroundWindow;
        sleep(10);
        if not PostMessage(WND, WM_KeyDown, KEY, 0) then break;
        if not PostMessage(WND, WM_KeyUp, KEY, 0) then break;
    end;
end.

Теперь клики по пробелу происходят каждые 10 мск.

суббота, 16 ноября 2013 г.

Пока разогревал еду невольно смотрел первый канал, какую-то очередную говно передачу про Малахова. Итак, что я услышал за эти 5 минут что был у телевизора.
Тётка из Нью-Йорка сказала что перестала сниматься в кино и стала заниматься экстрасенсорикой, т.к. ей стало стыдно быть актрисой. Снималась она в фильмах с Гафтом и Евстигнеевым. Видимо, дурить людей, занимаясь экстасенсорикой - не стыдно.
Дальше, она сказала что когда ей предлагали роли она всегда оказывалась случайно беременна. Это в принципе просто шутка юмора. Но потом был какой-то официант, который сказал что к ним приезжают много жителей из стран бывшего СНГ.
Я в принципе вообще не понимаю на какого дебила рассчитаны эти передачи. Может кто подскажет. Хотя всё равно никто не читает этот блог =)

Небольшой обзор SIMD в .NET

Вашему вниманию предлагается небольшой обзор возможностей векторизации алгоритмов в .NET Framework и .NETCORE. Цель статьи познакомить с эт...