Как стать автором
Обновить
8
0
Александр @askeet

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

Отправить сообщение

Consulo — IDE где Java и C# живут вместе

Время на прочтение3 мин
Количество просмотров53K
Здравствуйте. Прошло много времени после моих постов на хабре (тык, тык) на тему Consulo. Ниже расскажу, что изменилось за это время.

Для тех, кто пропустил мои посты:
Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET(C# на текущий момент), Java, Javascript(NodeJS), и многое другое. Проект собрал множество открытых плагинов в себе. При этом код остался открытым.



Читать дальше →
Всего голосов 127: ↑124 и ↓3+121
Комментарии51

Откровенные фото Дженнифер Лоуренс и еще десятков знаменитостей утекли через iCloud

Время на прочтение2 мин
Количество просмотров928K
Личные фото некоторых знаменитостей, включая Дженнифер Лоуренс, Кейт Аптон и Ариана Гранде были опубликованы анонимным хакером на сайте 4Chan. Судя по всему, утечки стали возможными благодаря взлому аккаунтов от облачного хранилища Apple iCloud, в которое автоматически копируется информация со всех устройств Apple, о чем большинство пользователей даже не задумываются.

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

Пресс-секретарь Дженнифер Лоуренс сделал заявление, подтверждающее, что фотографии являются подлинными:


Читать дальше →
Всего голосов 206: ↑183 и ↓23+160
Комментарии328

[Перевод] Не стоит бояться функционального программирования

Время на прочтение15 мин
Количество просмотров38K
Представляю вашему вниманию перевод проскользнувшей недавно в ссылках дайджеста статьи Джонатана Моргана о функциональном программировании на примере JavaScript. Материал рассчитан на начинающих, но тем не менее он достаточно интересен.

Буду признателен за конструктивные замечания и предложения по опечаткам, переводу и/или оформлению. Приятного чтения!
Читать перевод
Всего голосов 42: ↑39 и ↓3+36
Комментарии20

GUI в игре World of Tanks. Часть первая: эволюция интерфейсов игры

Время на прочтение9 мин
Количество просмотров71K
image

Сегодня мы проведем экскурс в историю развития Graphical User Interface (GUI) в игре World of Tanks.

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

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

Читать дальше →
Всего голосов 98: ↑86 и ↓12+74
Комментарии98

Противоречие последних лет или киберспорт как новое явление в индустрии развлечений

Время на прочтение8 мин
Количество просмотров46K
Для многих активных пользователей сети не является новостью то, что в последние 10-15 лет мощнейшее развитие получило такое явление как киберспорт. Многие связывают начало эры с выходом Quake, но уже более осмысленный вид киберспорт получил в нулевых годах, когда под эгидой организации WCG (World Cyber Games) были организованы отборочные туры по наиболее популярным тогда кибер-дисциплинам во многих странах мира с проведением финалов и выдачей денежных призов. WarCraft 3 TFT, Starcraft: Brood War, CS 1.6, Quake III Arena, FIFA; перечисленные ранее игры являлись основными соревновательными дисциплинами, присутствовавшими в программе WCG наибольшую долю времени. Начиная с 2000 года проект WCG спонсировался Samsung, уже тогда дальновидно ставший вкладывать деньги в это направление. После к данному процессу подключились и Microsoft. На данный момент наиболее крупными спонсорами киберспорта являются Asus, Intel, HyperX, Monster Energy и другие, но обо всем по порядку.
Читать дальше →
Всего голосов 76: ↑60 и ↓16+44
Комментарии66

Наследование грамматик в Sprache (или еще один настраиваемый калькулятор выражений для .NET)

Время на прочтение13 мин
Количество просмотров13K
Статья демонстрирует технику создания парсеров с использованием наследования грамматик. Наследование позволяет описывать новые грамматики на основе уже существующих путем добавления новых правил или переопределения унаследованных, что существенно упрощает реализацию новых парсеров. Изменения в базовой грамматике автоматически становятся доступными во всех порожденных грамматиках. Основная область применения такой техники — поддержка нескольких диалектов или версий языков.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии2

Зачем нам нужен Rust?

Время на прочтение3 мин
Количество просмотров70K
Rust — системный язык программирования, который исполняется чертовски быстро, предотвращает почти все падения, а также устраняет неопределённости совместного доступа к данным. Он разрабатывается Mozilla как инструмент для создания обозревателя нового поколения — Servo.

Пункты соприкосновения

Данное определение языка кажется сказкой, ибо доступные нам прежде инструменты всегда балансировали между скоростью и надёжностью.
А что же наяву?
Всего голосов 122: ↑86 и ↓36+50
Комментарии187

Будущее скриптов в Unity 3D

Время на прочтение8 мин
Количество просмотров31K
Недавно мы написали статью про поддержку WebGL в Unity. В ней мы кратко рассказали о том, как будут работать скрипты в WebGL с использованием новой технологии IL2CPP. Однако IL2CPP — это нечто гораздо более масштабное, нежели просто новое решение для скриптов в WebGL, это наша собственная, высокопроизводительная реализация .Net Runtime, которая будет выпущена на многих платформах.

Но перед погружением в будущее стоит поговорить о настоящем.

Скрипты в Unity сегодня


Мы используем MonoWinRT для приложений Windows Store и Windows Phone) чтобы привнести в Unity простоту использования C#, доступ к сторонним библиотекам и практически двоичное быстродействие. Но есть несколько сложностей:

— быстродействие среды исполнения C# все еще уступает C/C++
— последние и лучшие возможности языков и среды исполнения .Net не поддерживаются версией Mono, используемой сейчас в Unity
— с примерно 23 платформами и вариантами архитектуры требуется очень много усилий на перенос кода и поддержку его качества на одинаковом уровне
— сборка мусора может вызвать задержки при выполнении


Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии13

Как подружить Android, Visual Studio и Parallels Desktop

Время на прочтение5 мин
Количество просмотров20K

Введение


Несколько месяцев назад, прочитав на Хабре статьи про кросплатформенную разработку с помощью Mono и Xamarin, вдохновился написанием собственных приложений на платформы Android, iOS и Windows Phone. Через некоторое время, найдя работу в компании, которая как раз и занимается разработкой приложений с помощью Xamarin, стал гордым обладателем iMac и понял, что хорошо бы кроме девайса с Android’ом на борту (да, у меня прекрасно уживается продукция Apple и Google, хотя предпочтение я отдаю первым) иметь на iMac эмулятор Android (так как держать весь зоопарк устройств для своих проектов не представляется возможным).
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии5

Бесплатная копия Battlefield 3

Время на прочтение1 мин
Количество просмотров59K


Как говорил Сунь Цзы, «если долго сидеть на берегу реки, то можно увидеть, как по ней проплывёт труп твоего врага».

Тем, кто хотел получить игру Battlefield 3 бесплатно, пришлось подождать лишь три года — и вот, в преддверии летних отпусков/каникул Electronic Arts раздает Battlefield 3 бесплатно.

Скачать бесплатно Battlefield 3 можно до 3 июня в сервисе цифровой доставки Origin.

P.S. Там же бесплатно раздаётся и Plants vs. Zombies (до 16 июня).
Всего голосов 56: ↑40 и ↓16+24
Комментарии51

Пишем модульное приложение на .Net Framework

Время на прочтение8 мин
Количество просмотров19K
Современные тенденции в разработке информационных систем требуют от проектировщиков закладывать в архитектуру систем возможность динамического расширения их функционала. И не смотря на существование огромного количества наработок в этом направлении, единого решения структуры модульного приложения нет. Использование же готового решения не всегда возможно в силу специфики языка программирования или разрабатываемой системы. Так же, готовые решения модульных систем не всегда доступны для изучения, а иногда излишне сложны.

Модули в разных системах, зачастую, имеют разные границы функциональности. В системе могут быть выделены некоторые, строго определенные точки расширения – некоторый функционал, дополняемый сторонними разработчиками. Или система может представлять собой лишь механизм управления модулями, а весь ее функционал реализуется отдельными модулями.
Читать дальше →
Всего голосов 47: ↑38 и ↓9+29
Комментарии43

String.Intern делает строки ещё интереснее

Время на прочтение10 мин
Количество просмотров70K
Предисловие от переводчика:

Проходя/проводя собеседования, приходится сталкиваться с вопросами, которые раскрывают общее понимание работы .NET. По моему мнению, наибольшей любовью среди таких вопросов пользуются вопросы о работе “сборщика мусора”, но однажды мне был задан вопрос о интернировании строк. И он, честно говоря, поставил меня в тупик. Поиск в рунете выдал несколько статей, но они не давали ответы на те вопросы, которые я искал. Надеюсь мой перевод статьи Эндрю Стеллмана (автора книги “Head First C#”) заполнит этот пробел. Думаю, этот материал будет полезен для начинающих .NET разработчиков и тем кому стало интересно, что же такое интернирование строк в .NET.

String.Intern делает строки ещё интереснее


Одна из первых вещей, с которой сталкивается каждый начинающий C# разработчик — это работа со строками. Я показываю основу работы со строками в начале «Head First C#», как поступают практически в любой другой книге по C#. Так что не следует удивляться, что C# разработчики уровня джуниор и мидл уровня чувствуют, что они получили довольно хорошую базу по строкам. Но строки интереснее, чем кажутся. Одним из самых интересных аспектов строк в C# и .NET является метод String.Intern. Понимание работы этого метода может улучшить ваши навыки в C# разработке. В этом посте, я сделаю краткий туториал для метода String.Intern, чтобы показать вам как он работает.

Примечание: В конце этого поста я собираюсь показать кое-что «под капотом», используя ILDasm. Если вы никогда не работали с ILDasm раньше, это будет хорошей возможностью что-бы познакомиться с очень полезным инструментом .NET.
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии16

Продлеваем получение обновлений безопасности для Windows XP еще на 5 лет

Время на прочтение2 мин
Количество просмотров215K
8 апреля 2014 года в мире высоких технологий случилось страшное — Microsoft наконец официально прекратила поддержку своей самой популярной операционной системы Windows XP. Операционная система осталась без заплаток для угроз нулевого дня, миллионы пользователей оказались в опасности заражения вирусами. Тем не менее, далеко не все спешат переходить на новые версии как этого желает софтверный гигант — кому-то жалко денег, кто-то привык к до боли знакомому интерфейсу и нескучной обоине с зелеными холмами. Намного серьезнее все обстоит в корпоративной среде, где на Windows XP работают тысячи машин, обновление которых выльется в миллионные траты и непредвиденные проблемы с годами отточенным корпоративным софтом.

Но оказывается, что есть простой хак, который позволяет продлить получение обновлений для системы безопасности Windows XP на ближайшие пять лет, т.е. до апреля 2019 года!
Читать дальше →
Всего голосов 155: ↑131 и ↓24+107
Комментарии221

Вызов функции, соответствующей заданной строке

Время на прочтение14 мин
Количество просмотров15K
Привет!
Не знал, как поточнее назвать статью, но хотелось бы разобрать одну маленькую задачку, которая звучит следующим образом:
На вход подаётся отформатированная некоторым образом строка, в которой указаны имя функции, её аргументы и типы аргументов. Нужно иметь возможность вызвать соответствующий обработчик функции, корректно передав все аргументы.

Например, так ActionScript пытается вызвать функцию test с тремя аргументами str, false, 1.0(соответственно типы аргументов: String, Boolean, Number):
<invoke name="test" returntype="xml"><arguments><string>str</string><false/><number>1.0</number></arguments></invoke>

Хотелось бы, чтобы со стороны C++ была вызвана соответствующая функция:
void test_handler(const std::wstring& str, bool flag, double n);


Под катом — реализация с использованием нового стандарта и, для сравнения, реализация с использованием старого стандарта(и капельки boost-а).
Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии12

О правомерности работы физического лица с магазином App Store в РФ

Время на прочтение3 мин
Количество просмотров69K
Эта статья предназначена в первую очередь для программистов-одиночек, желающих попробовать свои силы на рынке платных мобильных приложений. Статья не претендует на истину первой инстанции, поэтому любые ваши замечания крайне приветствуются.

Итак, суть статьи заключается в том, чтобы понять: можно ли в РФ физическому лицу законно получать прибыль от продаж программ в App Store? Просмотр тематических форумов с подобными вопросами привел к выводу: мнения людей на этот счет расходятся. Одни считают, что можно, другие — что такая деятельность будет квалифицироваться как незаконная предпринимательская деятельность, т.к. договор от Apple — это агентский договор и в нем нет ни слова про авторские вознаграждения, и, как следствие, нужно регистрироваться в качестве индивидуального предпринимателя (ИП).
Читать дальше →
Всего голосов 114: ↑110 и ↓4+106
Комментарии51

Роботизированная змея в помощь людям

Время на прочтение3 мин
Количество просмотров17K
image


В прошлом месяце, Medrobotics, корпорация, которая связана с Carnegie Mellon University, объявила, что начнет продавать роботов змей хирургов в Европе. Эти «змеи», попадая в тело пациента через горло, могут помочь врачам попасть в трудно доступные места человеческого тела без разрезов, что приведёт к сокращению времени восстановления пациента после операции.

Но это далеко не единственное использование роботизированных змей, которые умеют плавать, скользить, ползать и подниматься как настоящие. За последние несколько лет, исследователи в лабораториях по всему миру придумывали новые инновационные способы применения этих крутых, и в тоже время страшных роботов.
Читать дальше →
Всего голосов 27: ↑20 и ↓7+13
Комментарии14

Кто возьмёт билетов пачку… или о монетизации игровых приложений

Время на прочтение7 мин
Количество просмотров23K
image

В данном посте речь пойдёт о казуальных играх в соц. сетях.
Прежде чем читать нижеприведённый текст, я попрошу всех отринуть от себя всё человечное, что в вас есть. Далее речь пойдёт только о деньгах и о том, как эффективнее их заработать.
Читать дальше →
Всего голосов 75: ↑57 и ↓18+39
Комментарии64

Транзакционная память: история и развитие

Время на прочтение14 мин
Количество просмотров47K

Определение


Параллельное программирование сложно. При использовании систем с общей памятью не обойтись без синхронизации доступа параллельных процессов/потоков к общему ресурсу (памяти). Для этого используются:
  • блокировки (mutex);
  • алгоритмы без блокировки (lockless, lock-free);
  • транзакционная память.


Транзакционная память — технология синхронизации конкурентных потоков. Она упрощает параллельное программирование, выделяя группы инструкций в атомарные транзакции. Конкурентные потоки работают параллельно1, пока не начинают модифицировать один и тот же участок памяти. К примеру, операции добавления узлов в красно-чёрное дерево (анимация в заголовке) способны работать параллельно в нескольких потоках.
Скрытый текст
/* Move item from one list to another */
int move(list *from, list *to) {
    __transaction_atomic {
        node *n = pop(from);
        push(to, n);
    }
}

Читать дальше →
Всего голосов 79: ↑78 и ↓1+77
Комментарии34

Так ли прост строковый оператор +

Время на прочтение6 мин
Количество просмотров24K

Введение


Строковый тип данных является одним из фундаментальных типов, наряду с числовыми (int, long, double) и логическим (bool). Тяжело себе представить хоть, сколько либо полезную программу, не использующую данный тип.

На платформе .NET строковый тип представлен в виде неизменяемого класса String. Кроме того, он является сильно интегрированным в общеязыковую среду CLR, а так же имеет поддержку со стороны компилятора языка C#.

В этой статье я бы хотел поговорить о конкатенации, операции, которая выполняется над строками так же часто, как операция сложения над числами. Казалось бы, о чем тут можно говорить, ведь все мы знаем о строковом операторе +, но как оказалось, есть у него свои тонкости.
Читать дальше →
Всего голосов 56: ↑48 и ↓8+40
Комментарии10

Информация

В рейтинге
Не участвует
Откуда
Новочеркасск, Ростовская обл., Россия
Дата рождения
Зарегистрирован
Активность