Pull to refresh
1
0
Мурадов Мурад @muradovm

User

Send message

Как я участвовал в конкурсе Сбербанка про предсказание оттока клиентов

Reading time4 min
Views33K
В рамках ICBDA 2015 Сбербанк проводил конкурс про предсказание оттока своих клиентов. Я неслабо заморочился по этому поводу, ничего не выиграл и тем не менее хотел бы описать процесс решения.

Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments49

.NET/Mono в Java? Легко!

Reading time11 min
Views20K
Здравствуйте. Хочу представить свой проект – компилятор .NET/Mono в Java. Целью проекта является создание компилятора, и набора стандартных библиотек позволяющих переносить написанные приложения и библиотеки на платформу Java, версии 1.6 и выше. Из аналогичных проектов мне известен лишь проект dot42. Но он заточен под Android и имеет собственную стандартную библиотеку не совсем совместимую с .NET/Mono.

Пока есть только альфа версия, и поэтому для реального использования компилятор пока не годится, однако уже частично работоспособен, генерирует валидный код Java и поддерживает часть стандарта ECMA-335.

Исходные коды на github.com: https://github.com/zebraxxl/CIL2Java

Подробнее о том, что не поддерживается, что поддерживается и как это все работает.
Total votes 74: ↑71 and ↓3+68
Comments36

Быстрое создание нагрузочных тестов на JMeter для web-сайтов

Reading time5 min
Views150K
imageДля любого программного приложения, предназначенного для массового обслуживания пользователей, необходимо проводить нагрузочное тестирование на предмет его надежности и отказоустойчивости. А так как любой web-сайт — это по своей сути система массового обслуживания, то проверка его на отказоустойчивость всегда является неотъемлемой частью разработки. Существуют различные решения для проведения нагрузочного тестирования веб-приложений. Я не буду сейчас описывать их подробно, про некоторые из них есть упоминания здесь.

В этой статье я хочу поделиться своим опытом использования такого средства, как Apache JMeter. После того как мною были перепробовано с десяток различных подобных инструментом, в итоге я остановился именно на JMeter, так как его возможности с лихвой охватывали мои цели и задачи. И при этом данное программное средство весьма быстрое и легковесное.

Для тех кто ни разу не использовал JMeter, рекомендую для начала почитать базовые обзоры, например, Простой нагрузочный тест с Apache JMeter. Когда я первый раз запустил данную программу, первая мысль была разобраться во всем методом «тыка», но как выяснилось это вообще нереально, и метод «тыка» неприменим к JMeter. Поэтому если хотите его использовать, то сразу открывайте мануал, поверьте, вам придется заглядывать туда очень часто, пока полностью не разберетесь, что и как. Я же здесь сейчас опишу самое очевидное и важное, а именно: как собственно создавать нагрузочные тесты. Если бы я в свое время сразу нашел подобную статью, то сэкономил бы без малого день на изучении этой софтины.
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments35

Почти настоящий трансформер в масштабе 1:12

Reading time1 min
Views103K
Японская компания Brave Robotics, которая говорит о себе, что она не компания, а «hobby robot researcher» выпустила почти настоящий трансформер. Только маленький.



Робот умеет трансформироваться из машины в антропоморфного робота и обратно, стрелять из рук и передавать то, что он видит, на планшет.
Видео работы
Total votes 83: ↑77 and ↓6+71
Comments52

Будущее WinRT или Going Native 2.0

Reading time11 min
Views21K
Alexandre Mutel — создатель самой быстрой и самой полной .NET обертки для DirectX, единственной, поддерживающей Windows 8 Metro, работает R&D разработчиком игрового движка в SiliconStudio, участник французской демо-группы FRequency.

В последнее время мы слышим много шума о возвращении идеи «Going Native» после эры управляемых языков, таких как Java и .NET. В прошлом году, когда WinRT был только представлен, начали появляться недалекие комментарии, которые утверждали, что что .NET умер, а С++ возвращается во всей своей красе — истинный и единственно верный способ для разработки приложений, в то время, как JIT начинает все чаще появляться в мире скриптовых языков (JavaScript активнее всех использует преимущества JIT). Любой код так или иначе станет нативным перед выполнением — разница лишь в длине пути, по которому он пройдет, чтобы стать нативным, и насколько оптимизированным он будет. Значение слова «native» немного изменилось и стало неразрывно связано со словом «производительность». Даже будучи сильным пропагандистом управляемого языка [C#], его производительность на самом деле ниже хорошо написанного С++ приложения. Получается, мы должны просто принять этот факт и вернуться к C++, когда такие штуки как WinRT будут для нас основой межязыкового взаимодействия? По правде говоря, я бы хотел, чтобы .NET умер, и этот пост о том, почему и зачем.
Читать дальше →
Total votes 56: ↑44 and ↓12+32
Comments45

Трассировка пути на GPU, часть 2

Reading time3 min
Views15K
Первая часть обнаружена тут.

Чтож, рассмотрим:
Видеокарта: Nvidia GeForce GTX580 (надо учитывать, что не каждый захочет ради еще не развитой технологии GPU рендеринга покупать топовую видеокарту), Частота шейдеров 800 MHz, 512 ядер CUDA.
Тестовая сцена: хоровод стендфордских высокополигональных дракончиков, танцующих вокруг светящейся шестиугольной призмы, висящей в воздухе.

image
Вот эти ребята.

Чего хотим добиться: минимального шума при минимальных вычислительных затратах.
Сложности:
1. Большинство испытаных рендеров не поддерживают SSS.
2. Демоверсии Octane Render и Arion Render имеют ограничение по разрешению, а сцены типа «шар на поверхности при дневном свете» очищаются от шума быстро даже на CPU рендерах, тем более при столь небольшом разрешении.
3. Сложностью для всех видов рендеринга является рендеринг непрямого освещения, в частности интерьеров, а особенно каустика, на которой мы и остановимся.

Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments32

Трассировка пути на GPU, часть 1

Reading time2 min
Views15K
Железо и рендеринг
Наиболее популярные, на сегодняшний день, архитектуры процессоров — x86-64. Их относят к CISC. Они обладают огромным набором команд, что привело к большой площади ядра на кристалле. Это, в свою очередь, повлекло за собой сложность в реализации нескольких ядер на чипе. Процессоры x86 не идеальны для многопоточных вычислений, где требуются многократное выполнение небольшого набора команд (RISC).
В свою очередь, рендеринг — алгоритм, который отлично распараллеливается практически на неограниченное количество ядер.

Unbiased renders
В виду того, что производительность железа неуклонно растет — технические вопросы (например семплинг отражений материалов в V-Ray, количество биасов при антиалиасинге, размытии в движении, глубине резкости, мягких тенях) все больше переходят на плечи железа. Так, несколько лет назад появился первый коммерческий рендер «без допущений» (unbiased render) — Maxwell Render.
Основным его преимуществом было качество финальной картинки, минимум настроек, всевозможных «биасов». С течением времени качество картинки приближается к «идеальному». А недостатком было и есть — время рендеринга. Ждать, пока шум сойдет, приходилось очень долго, и многие люди после нескольких проб сразу от него отказались. Еще хуже обстояли дела с анимацией (по понятным причинам).

image
Читать дальше →
Total votes 27: ↑14 and ↓13+1
Comments19

Элиза

Reading time5 min
Views53K
Давным-давно, когда я был маленький, у меня не было друзей. Нет, правда, совсем-совсем не было. Я нуждался в общении, мечтал о ком-то близком, но понимания среди других людей найти не мог, и спасение находил лишь в книгах и компьютере. Вместе с первым CD-приводом появились мои первые компакт-диски с играми. Ты, наверное, помнишь такие: триста игр, пятьсот, семьсот… Кроме всяких аркад и шутеров, на одном из дисков была программа Диала — интерактивный собеседник.
Читать дальше →
Total votes 443: ↑386 and ↓57+329
Comments160

Расписание выхода статей на Хабре (на любую неделю)

Reading time2 min
Views22K
Понедельник
  • Новости: ученые изобрели машину времени, вышел новый ноутбук толщиной 80 нанометров, Google покупает Microsoft, Facebook увольняет 1000 программистов.
  • Вылез стартап. Попиарился, лёг под хабраэффектом, встал, собрал замечания, поблагодарил, пропал навсегда.
  • Вышла новая версия третьего слева линукса. Качать срочно.
  • Я негодую — счет за телефон оператор округлил до кратности числу Пи.

Вторник
  • Опровержение новостей: ученые изобрели всего-лишь более точные часы, 80 нанометров — это техпроцесс, а не толщина ноутбука, Google покупает какой-то стартап, который отказался купить Microsoft, Facebook набирает 5000 программистов.
  • Начало холивара, модного на этой неделе (чай vs кофе, бинокль vs подзорная труба, черное vs белое)
  • Очень важный технический ресурс (ЖЖ, порнолаб, Sony Network) взломан (заДДОСен, конфискован УБОПом). Паника и отчаяние.

Читать дальше →
Total votes 432: ↑418 and ↓14+404
Comments57

Вопросы с собеседования на должность «C# Developer»

Reading time2 min
Views5.8K
  1. Name ten c# keywords.
  2. What is a 'static' class?
  3. What is difference between overloading and overriding?
  4. Is multiple inheritance supported in .Net?
  5. Class inherits from two interfaces containing methods with the same signature. Is it possible to provide different implementations for these methods?
  6. What can be a root reference?
  7. How 'System.String' class differs from most of other classes?
  8. Will a 'finally' block be executed if there was no exception thrown?
  9. What is a satellite assembly?
  10. How 'protected' access modifier affects visibility?
  11. What does keyword 'mutable'?
  12. Can multiple catch blocks be executed?
  13. What does operator 'as' do?
  14. What does keyword 'final'?
  15. Can different access modifiers be applied on the getter and setter of a property?
  16. Can a class be prevented from being inherited?
  17. What is event?
  18. What is the difference between event and delegate?
  19. Are events synchronous or asynchronous?
  20. What does keyword 'safe'?
  21. Can interface members be private?
  22. What does keyword 'in'?
  23. What is the advantage of using 'System.Text.StringBuilder' class over 'System.String'?
  24. What is special about the declaration of relational operators?
  25. How 'public internal' access modifier affects visibility?
  26. Can a local variable get garbage collected before it becomes out-of-scope?
  27. What implementations of serialization are built in FCL? Where are they used?
  28. How 'protected internal' access modifier affects visibility?
  29. Can 'break' exit a finally block?
  30. How to apply attribute to method return value?
  31. What is the difference between C# class finalizer and C# class destructor?
  32. What is purpose of 'IDisposable' interface?
  33. Can an array be resized at runtime?
  34. Does the size of an array need to be defined at compile time?
  35. Can a destructor have access modifiers?
  36. What is smallest integer type to represent number not greater than 40 000?
  37. What do keywords 'sizeof' and 'typeof'?
  38. What is differece between 'sizeof' and 'Marshal.SizeOf'?
  39. What is array rank?
  40. What does keyword 'stackalloc'?
  41. What encoding uses 'System.String' class?
  42. What is boxing and unboxing?
  43. What is reflection?
  44. What is struct?
  45. What is multicast delegate?
  46. Does C# have “friendship”?
  47. What is the 'using' statement for?
  48. Can a struct have methods?
  49. Can a struct be inherited?
  50. Why do most event handlers use signature 'void(object, EventArgsDerivative)'?
Наблюдавшиеся результаты: от 12 до 30 правильных ответов.
Total votes 38: ↑23 and ↓15+8
Comments120

Ручное клонирование потока. Когда Assembler + C# = Love

Reading time3 min
Views20K
Перейду сразу к делу. Задача: в любой точке кода путем вызова спец. метода создать второй поток, который начнет выполнение с точки вызова этого метода в родительском потоке, сохранив возможность отладки и значения всех локальных переменных на всех уровнях вызовов методов.

Реализация не зависит от конечной платформы (.Net/Java), т.к. написана на C++/Asm, однако пользовательский код сделан на C#, т.к. на нем пишу я.

image

Теперь, когда я наконец стабилизировал пример для 32-разрядных систем, набравшись храбрости, готов показать его общественности как полностью готовый. И, да, повторюсь: при адаптации будет работать на любой платформе



Читать дальше →
Total votes 47: ↑38 and ↓9+29
Comments32

Изменение кода системных сборок или «утечка» .Net Framework 5.0

Reading time17 min
Views36K
Здесь я продемонстрирую возможность, которая по своей сути — самый настоящий хак. Вопрос, зачем это может понадобиться? На самом деле целей для этого может быть огромное множество. Итак наша задача — изменить код библиотеки mscorlib таким образом, чтобы все программы, которые ей пользуются, получили эти изменения. Не рантайм, конечно, а во время старта (для runtime необходимо проделать другие вещи, и тут надо оговориться что изменения эти не должны поломать текущие состояния библиотеки). Mscorlib я взял как пример, потому что она есть у всех на компьютере. Но можно хакать любую другую.

Все мы знаем, что для того, чтобы не было «ада dll», Microsoft помимо обычных версий и названия библиотек, дали возможность подписывать сборки ключом, public key которой гарантирует что конкретная сборка «пришла» от конкретного разработчика, а не от какого-то другого. Поэтому, если мы хотим по какой-то вполне добросовестной причине изменить код существующей библиотеки т.о., чтобы она загрузилась в чужой процесс и при этом ключик public key остался тем же, у нас этого не получится. Потому что мы не сможем ее подписать, у нас нет закрытого ключа.

Наша мини цель, чтобы программа вывела на консоль текст:



Читать дальше →
Total votes 67: ↑65 and ↓2+63
Comments15

Задачник.NET

Reading time3 min
Views119K
Этот пост предназначается всем любителям платформы .NET и языка C#. Думаю, многие встречали на просторах сети разнообразные задачки на понимание тех или иных особенностей платформы или языка. Я большой любитель подобных задачек и головоломок. Они помогают глубже понять определённые области и повысить собственные программистские навыки. Однажды я решил сделать подборку подобных задачек, чтобы можно было показывать другим людям и обсуждать нюансы работы с .NET/C#. Когда задачек накопилось достаточное количество, появилась новая мысль — оформить мою подборку в виде книжки. Вашему вниманию предоставляется текущий вариант этого сочинения под названием «Задачник.NET».

Cover
Читать online
Скачать PDF-версию
Исходные коды на GitHub
Читать дальше →
Total votes 55: ↑51 and ↓4+47
Comments23

Тема для ночного чтения Habrahabr

Reading time2 min
Views19K
Добрый день, хабражители!
Долгое время меня волновала проблема ночного чтения habrahabr: я мешал жене спать, да и глаза быстро устают в темноте читать белый сайт. Я сделал несколько попыток создать ночную темную тему для habrahabr и она выполняла свою функцию, но не была достаточно качественной для того, чтобы отдавать ее в общий доступ — все-таки верстка сайта была весьма консервативной и плохо поддавалась аккуратному рестайлингу.

С выходом новой версии дизайна habrahabr верстка сайта стала более прогрессивной и простой, и я решил, что это подходящий момент, чтобы осуществить давно задуманное.


Я тоже хочу такую!
Total votes 82: ↑79 and ↓3+76
Comments54

Noisli: онлайн-генератор фоновых шумов, помогающих сконцентрироваться

Reading time1 min
Views182K


Один из главных отвлекающих факторов, мешающих сосредоточиться — шум. Однако не любой шум мешает работать — очень многие гораздо легче погружаются в «поток» под музыку или в шумном кафе. Существуют даже научные исследования, подтверждающие положительное влияние умеренного шума на решение творческих и интеллектуальных задач.

Сайт Noisli содержит коллекцию фоновых шумов на любой вкус и возможность смешивать их в произвольной пропорции. Здесь есть и звуки природы — шум дождя, плеск воды, пение птиц, шуршание листьев, и звуки техногенного характера — стук колёс поезда, звук работающего вентилятора, и звуки многолюдного кафе. Есть и искусственные белый, розовый и коричневый шум. Коллекция звуков постоянно пополняется.
Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments64

Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома

Reading time1 min
Views84K
Боб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.
Читать дальше →
Total votes 95: ↑94 and ↓1+93
Comments30

Как организовать кружок робототехники

Reading time5 min
Views96K


UPD: Опубликовали новую версию руководства.

Как и обещали, делимся нашим опытом по организации занятий. Здесь мы опишем общие принципы: где их организовывать, что для этого нужно, как набирать детей, как с ними лучше управляться. Так же сделаем небольшой обзор доступных железок для робототехники.

Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments22

[Перевод] Расследование манипуляций с панелью управления. Часть 1

Reading time4 min
Views7.5K
Всем привет! Сегодня предлагаем вашему вниманию перевод статьи «Control Panel Forensics: Evidence of Time Manipulation and More…», автор Chad Tilbury трудился спецагентом в Офисе специальных расследовнаий ВВС США, а после этого стал заниматься проблемами пиратства в Американской Ассоциации Кинопрокатчиков. О расследованиях компьютерных преступлений этот парень знает не из учебников. Итак, начнем!

Панель управления — давно известный инструмент Windows, позволяющий изменять огромное количество настроек системы. Использование панели управления может быть ограничено с помощью Групповых политик, но в любом случае, некоторые элементы панели доступны для большинства учетных записей (для внесения некоторых изменений необходимы права администратора). В ходе расследования мы можем провести аудит использования панели управления для того, чтобы идентифицировать широкий спектр действий пользователей, таких как:

  • Изменения настроек Брандмауэра (firewall.cpl), необходимы для того, чтобы в дальнейшем использовать неавторизованное ПО;
  • Добавление/изменение учетных записей (nusrmgr.cpl);
  • Отключение функций «Восстановление системы» и службы Теневого резервного копирования (sysdm.cpl);
  • Изменение системного времени (timedate.cpl);
  • Взаимодействие с приложениями сторонних производителей, изменяющими настройки безопасности.

Процесс идентификации отдельных изменений в системе позволяет, как минимум, показать – какие апплеты из панели управления запускались пользователем и когда это произошло. Артефакты, т.е. следы, оставленные в системе могут дать дополнительную информацию для нашего расследования. Особенно важен контекст, последовательность действий. Представьте, что вы идентифицируете, как использовалась панель управления и видите следующую картину:



Доступ к центру поддержки (этот апплет в англ.версии называется Security Center) сам по себе не является особенно интересным. Но необходимо учитывать, что этот апплет был открыт сразу же после запуска известного инструмента для подбора паролей на роутерах. Как говорится, почувствуйте разницу!
Читать дальше →
Total votes 7: ↑4 and ↓3+1
Comments1

WCF + Cross Domain Ajax Calls (CORS) + Авторизация

Reading time8 min
Views30K
Добрый день!
Хотелось бы продемонстрировать один из возможных подходов к решению проблемы работы с WCF сервисами с различных доменов. Найденная мной информация по данной теме была или неполной, или содержала избыточное количество информации, затрудняющей понимание. Хочу рассказать о нескольких способах взаимодействия WCF и AJAX POST запросов, включающих в себя информацию о Cookies и авторизации.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments3

14 инструментов для веб-дизайна и веб-разработки на 2014 год

Reading time3 min
Views155K
Вместе с WEB движущимся семимильными шагами (адаптивным дизайном, CSS препроцессорами, постпроцессорами и другими вещами) может оказаться проблемой попытка не отставать от чего-то нового и полезного.
Ниже Вы найдете 14 инструментов, 7 для веб-дизайнеров и 7 для веб-разработчиков, которые помогут веб-сайту перерасти из концепции в действительность.
Читать дальше →
Total votes 42: ↑26 and ↓16+10
Comments15
1
23 ...

Information

Rating
Does not participate
Location
Копейск, Челябинская обл., Россия
Date of birth
Registered
Activity