Pull to refresh
6
0
Найденов Юрий @EBCEu4

User

Send message

Дюжина логических задач с собеседований

Reading time2 min
Views314K
image

Не знаю, как у вас, но у меня любимая часть интервью — логические задачи.
Довелось пройти немало собеседований на вакансию разработчика, поэтому набралась небольшая коллекция.
Спешу поделиться с вами!

Некоторые задачи проще и широкоизвестные, другие заставляют хорошенько задуматься.
Ответы пока что публиковать не буду, надеюсь, вы сами сможете всё решить.
Предлагаю размять свой мозг…
Читать дальше →
Total votes 71: ↑55 and ↓16+39
Comments244

О синглтонах и статических конструкторах

Reading time8 min
Views29K
Изначально автор хотел назвать эту статью следующим образом: «О синглтонах, статических конструкторах и инициализаторах статических полей, о флаге beforeFieldInit и о его влиянии на deadlock-и статических конструкторов при старте сервисов релизных билдов в .Net Framework 3.5», однако в связи с тем, что многострочные названия по неведомой автору причине так и не прижились в современном компьютерном сообществе, он (автор) решил сократить это название, чудовищным образом исказив его исходный смысл.

-------------------------

Любая реализация паттерна Синглтон в общем случае преследует две цели: во-первых, реализация должна быть потокобезопасной, чтобы предотвратить создание более одного экземпляра в многопоточном мире .Net; а во-вторых, эта реализация должна быть «отложенной» (lazy), чтобы не создавать экземпляр (потенциально) дорого объекта раньше времени или в тех случаях, когда он вообще может не понадобиться. Но поскольку основное внимание при прочтении любой статьи про реализацию Синглтона отводится многопоточности, то на «ленивость» зачастую не хватает ни времени не желания.

Читать дальше →
Total votes 80: ↑65 and ↓15+50
Comments35

Как компьютеры складывают числа

Reading time1 min
Views42K
Мы в Хекслете любим разрабатывать не только прикладные курсы, но и более фундаментальные (например, про алгоритмы или операционные системы). Но мы пока не спускались ниже уровня ОС в иерархии абстракций. А там, внутри, столько всего интересного! Для многих людей, да даже для многих профессиональных программистов остаются загадкой процессы, происходящие внутри микропроцессора, на уровне отдельных транзисторов.

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


Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments25

AllJoyn и Windows 10 — делаем так, чтобы наши устройства говорили на одном языке

Reading time4 min
Views37K
Выражаем большое спасибо за подготовку статьи sgrebnov из компании Akvelon (Иваново), за помощь в написании данной статьи как непосредственному разработчику AllJoyn и эксперта по IoT/Windows. Остальные наши статьи по теме IoT можно найти по тегу iotweek.

Привет!

Не так давно мы уже затрагивали тему IoT или «Интернета Вещей» в рамках прошедшей конференции WinHEC (Hardware Engineering Conference) 2015.

Одна из главных проблем, волнующих многих, это вопрос обеспечения связности и обнаружения устройств, говорящих на разных языках, протоколах и др. Эту проблему призван решить фреймворк AllJoyn, в совокупности с протоколом Thread, к рабочей группе над которым Microsoft присоединился 1 июля. Об AllJoyn и пойдёт наша речь.



Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments2

Интересные заметки по C# и CLR

Reading time11 min
Views48K


Изучая язык программирования C#, я сталкивался с особенностями как самого языка, так и его средой исполнения, *некоторые из которых, с позволения сказать, «широко известны в узких кругах». Собирая таковые день за днем в своей копилке, что бы когда-нибудь повторить, чего честно сказать еще ни разу не делал до этого момента, пришла идея поделиться ими.

Эти заметки не сделают ваш код красивее, быстрее и надежнее, для этого есть Стив Макконнелл. Но они определенно внесут свой вклад в ваш образ мышления и понимание происходящего.
Читать дальше →
Total votes 41: ↑30 and ↓11+19
Comments62

Барьеры памяти и неблокирующая синхронизация в .NET

Reading time7 min
Views58K

Введение


В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments18

Дайджест новостей из мира разработки на Unity

Reading time2 min
Views22K
Лето – пора больших свершений. Потратьте время отпусков с пользой: читайте наш новый дайджест и создавайте потрясающие игры на Unity.


Читать все
Total votes 22: ↑19 and ↓3+16
Comments0

Основы многопоточности в .NET Framework

Reading time15 min
Views122K


Многопоточность — одна из самых сложных тем в программировании, с ней постоянно возникает масса проблем. Без четкого понимания внутренних механизмов будет очень трудно предсказать результат работы приложения, использующего несколько потоков. Мы не будем здесь дублировать массу теоретической информации, которой очень много в сети и умных книгах. Вместо этого сконцентрируемся на конкретных и наиболее важных проблемах, на которые нужно обращать особое внимание и обязательно помнить о них в процессе разработки.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments15

Пишем LR(0)-анализатор. Простыми словами о сложном

Reading time10 min
Views27K

Введение



Добрый день.
Не нашел простого и внятного описания данного алгоритма на русском языке. Решил восполнить сей пробел. Прежде всего что это такое? LR(0)-анализатор в первую очередь это синтаксический анализатор. Цель синтаксического анализатора обработать входной поток лексем(базовые элементы языка, которые производит лексический анализатор на основе входного потока символов, примеры лексем — число, запятая, символ) и сопоставить его с описанием языка заданного в определенном формате. Сопоставление заключается в построении определенной структуры данных, чаще всего — дерева. Дальше эта структура пойдет на следующий этап — семантический анализ, где уже компилятор пытается понять смысл, заключенный в дереве.

Существует 2 класса синтаксических анализаторов — восходящие анализаторы и нисходящие. Первые строят дерево начиная с листьев, которые являются входными лексемами, вторые соответственно наоборот начинают с корня дерева. Собственно LR и значит то, что анализатор будет читать поток слева направо (L — 'Left') и строить дерево снизу вверх (пусть не смущает буква R, которая значит Right, объяснения даны чуть ниже). Индекс 0 обозначает то что мы не предпросматриваем следующие лексемы, а работаем только с текущей. Какие же плюсы даёт нам выбор этого типа анализаторов?
  • Он быстр.
  • Покрывает множество языков. То есть если вы придумали язык и описали его, то с большой долей вероятности LR-анализатор его сможет обработать.
  • Синтаксические ошибки обнаруживаются так быстро как это возможно. Сразу же как встречается символ, который не соответствует предыдущему входному потоку, мы можем вывести ошибку об этом.

Есть и недостатки:
  • Относительная сложность построения.
  • Можно вогнать анализатор в ступор неоднозначностью описания языка.


Читать дальше →
Total votes 75: ↑71 and ↓4+67
Comments17

Режимы смешивания в Unity

Reading time9 min
Views48K
Многие наверняка слышали о режимах смешивания (blend modes), которые присутствуют в большинстве популярных программ для работы с изображениями и видео. Там это — важный инструмент создания контента, давно уже ставший неотъемлемой их частью.

А что же в играх?

Допустим, появилась необходимость использовать Color Dodge смешивание для системы частиц или UI-художник сделал красивую графику для игрового интерфейса, но некоторые его элементы используют какой-нибудь Soft Light. А может, вам понадобилось подвергнуть трёхмерный объект Divide-смешиванию, чтобы получить эффект прямиком из кинокартин Линча?



В данной статье мы рассмотрим принцип работы популярных режимов смешивания и постараемся максимально точно воссоздать их эффект на игровом движке Unity.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments11

Твой код никого не интересует

Reading time4 min
Views79K
Мой код никого не интересует. Я был повержен в шок, когда осознал это в процессе работы программистом. Я тратил много времени на оттачивание своего кода, пока не понял, что он никого не интересует, ведь в зачет идет не сам код, а продукт. Принятие программистом этого факта приведет к повышению продуктивности и ценности его работы.
Читать дальше →
Total votes 122: ↑87 and ↓35+52
Comments200

Как получить удобный доступ к XAML-ресурсам из Code-Behind

Reading time13 min
Views18K


Хочу рассказать, как максимально удобно работать с XAML-ресурсами из Code-Behind. В этой статье мы разберемся, как работают пространства имен XAML, узнаем о XmlnsDefinitionAttribute, используем Т4-шаблоны и сгенерируем статичный класс для доступа к XAML-ресурсам.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments12

MugenMvvmToolkit — кроссплатформенный MVVM фреймворк

Reading time18 min
Views28K

MugenMvvmToolkit


Введение


Паттерн MVVM хорошо известен, о нем написано много статей, наверное каждый NET-разработчик сталкивался или слышал об этом паттерне. Цель этой статьи – рассказать о собственной реализации этого паттерна.
MugenMvvmToolkit — является кроссплатформенной реализацией паттерна MVVM и на текущий момент поддерживает следующие платформы:
  • WinForms
  • WPF
  • Silverlight 5
  • Silverlight for WP7.1, WP8, WP8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Forms
  • WinRT XAML framework for Windows 8 Store apps

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

Котфускация исполняемого .net кода

Reading time6 min
Views65K
(пятница)

Обычно развернутое приложение в файловой системе выглядит как-то так:



Совершенно незащищенное от инструментов типа рефлектора или IlSpy, но что если оно станет таким:



По крайней мере легкий ступор хакеру-неофиту обеспечен. Приятно смотрится, и антивирусы не заинтересуются.
Порефлексировать
Total votes 148: ↑133 and ↓15+118
Comments42

Полезные ресурсы для гейм-дизайнера

Reading time2 min
Views70K


Доброго времени суток читателям. Предоставляю вашему вниманию список ресурсов и книг, которые могут быть полезны гейм-дизайнеру или любому, кто интересуется данной тематикой. Сразу скажу, что почти все ресурсы на английском языке, т.к. русских аналогов весьма мало, а полезных и того меньше.
Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments11

Async в C# и SynchronizationContext

Reading time5 min
Views44K
Продолжение: часть III.

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

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

image
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments3

Баланс в играх жанра Tower Defense (часть 1)

Reading time7 min
Views68K
В данной статье речь пойдет о принципах вычисления баланса в нашей игре жанра Tower Defense (TD), которую мы выпустили летом 2012г. для платформ iOS и Android. Мы расскажем, c какими сложностями и ограничениями пришлось столкнуться, каков был ход мыслей геймдизайнера при выборе того или иного решения, и как был получен конечный результат.

Достижения игры
1. побывала в топ6 и топ7 в категориях US Appstore;
2. занимала топ1 категорий и топ7 overall в RU Appstore;
3. «письмо счастья» от Apple;
4. 425 000 закачек;
5. 5 звезд (средняя оценка для всех магазинов);
6. множество положительных комментариев;
7. обзоры на ведущих мировых мобильных порталах.


Читать дальше →
Total votes 76: ↑64 and ↓12+52
Comments59

Биохакинг сна: подтверждённые наукой советы

Reading time11 min
Views288K


Сон до сих пор является одной из величайших загадок для науки, как гравитация и квантовое поле. Мы до сих пор не понимаем, для чего именно мы спим, хотя всё больше узнаём об этом. Ниже собраны советы для тех, кто долго не может уснуть, часто просыпается, не чувствует себя отдохнувшими наутро, или просто хочет улучшить качество своего сна.
Читать дальше →
Total votes 227: ↑173 and ↓54+119
Comments207

Как улучшить свой стиль программирования?

Reading time6 min
Views139K

Исповедь 1


Я — разработчик. От своих работодателей я постоянно слышу, что работаю медленно и часто всё усложняю без веской причины. И что мне пора бы что-то с этим сделать. Во избежание.

Весь мой опыт программирования складывается из университетских работ и пары лет пребывания в различных компаниях. Критикующие меня люди неоднократно говорили мне, что в целом я разбираюсь в теме, так что я далеко не клинический случай, как можно было подумать. Однако, очевидно, я выработал совсем не те программистские привычки (как минимум, на взгляд работодателя) и мне нужно срочно изменить их. Везде, где бы я ни работал, мои решения, использующие иерархии мелких классов с делегированием поведения, признавались плохими. Говорят, будто так и надо писать, но это не так. Потому что всё это «как надо» может стоить мне работы.
Читать дальше →
Total votes 235: ↑202 and ↓33+169
Comments248

Молнии

Reading time4 min
Views42K


Вы летите на своём корабле по пещере, уклоняясь от вражеского огня. Однако, довольно скоро вы осознаёте что врагов слишком много и похоже что это конец. В отчаянной попытке выжить вы жмёте на Кнопку. Да, на ту самую кнопку. На ту, что вы приготовили для особого случая. Ваш корабль заряжается и выпускает по врагам смертоносные молнии, одну за другой, уничтожая весь флот противника.

По крайней мере, таков план.

Но как же именно вам, как разработчику игры, отрендерить такой эффект?
Читать дальше →
Total votes 99: ↑97 and ↓2+95
Comments22
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity