Pull to refresh
-3
0

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

Send message

MVVM: полное понимание (+WPF) Часть 1

Reading time8 min
Views282K
В настоящей статье задействован мой опыт доведения некоторого числа студентов до полного и окончательного понимания паттерна MVVM и реализации его в WPF. Паттерн описывается на примерах возрастающей сложности. Сначала теоретическая часть, которая может использоваться безотносительно конкретного языка, затем практическая часть, в которой показано несколько вариантов реализации коммуникации между слоями с использованием WPF и, немножко, Prism.

Зачем вообще нужно использовать паттерн MVVM? Это ведь лишний код! Написать тоже самое можно гораздо понятнее и прямолинейнее.

Отвечаю: в маленьких проектах прямолинейный подход срабатывает. Но стоит ему стать чуть больше — и логика программы размазывается в интерфейсе так, что потом весь проект превращается в монолитный клубок, который проще переписать заново, чем пытаться распутать. Для наглядности можно посмотреть на две картинки:
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments53

Надеть наушники и стать эффективнее: Как музыка влияет на продуктивность

Reading time6 min
Views19K
Не у всех нас есть отдельный кабинет, поэтому иной раз приходится работать в шумных опенспейсах и коворкингах. Коллеги переговариваются между собой и по телефонам, «жужжит» техника — в таких условиях сложно сосредоточиться на своей задаче. Quartz провели исследование и установили, что в опенспейсах продуктивность работников ниже на 5–15%.

Выходом из ситуации могут быть наушники [наша вчерашняя подборка с обзорами наушников до 10 тысяч рублей] и замена «звукового фона». О том, как наушники и музыкальный ряд помогают остаться наедине со своей работой, поговорим далее.


Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments34

Хаос устраняет потребность в Мультивселенной

Reading time15 min
Views30K
image

Учёные исследуют Вселенную и видят удивительную структуру. В ней встречаются фантастически сложные объекты и процессы. Каждое событие во Вселенной следует точным законам природы, идеально выражаемым на языке математики. Эти законы кажутся нам точно подстроенными для того, чтобы смогла появиться жизнь, и, в частности, – разумная жизнь. Каковы эти законы природы и как нам их найти?

Вселенная так хорошо структурирована и упорядочена, что мы сравниваем её с самыми сложными и точными изобретениями своего времени. В XVIII и XIX веках Вселенную сравнивали с идеально работающими часами. Философы тогда обсуждали Часовщика. В XX и XXI веке самый сложный объект – компьютер. Вселенную сравнивают с идеально работающим суперкомпьютером. Исследователи задаются вопросом: как этот компьютер запрограммировали?

Как можно объяснить всю эту структуру? Почему законы кажутся идеально настроенными на появление жизни, и почему они выражаются таким точным математическим языком? На самом ли деле Вселенная так структурирована, как кажется?
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments70

Что такое пространство?

Reading time16 min
Views73K

Не то, что вы думаете


image

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

Является ли пространство просто бесконечной пустотой, лежащей в основе всего? Или же это пустота между объектами? Что, если пространство – это ни то, ни другое, а вовсе даже и физическая сущность, способная плескаться, будто ванна с водой?

Оказывается, что природа пространства – одна из величайших и самых странных загадок Вселенной. Так что приготовьтесь к… пространным рассуждениям.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments145

Xamarin.Forms для WPF и UWP разработчиков

Reading time15 min
Views32K


Постараюсь коротко, но понятно, рассказать самое интересное о Xamarin. Самые основные концепты, которые необходимо знать UWP и WPF разработчикам, чтобы с места в карьер начать работать с Xamarin.Forms.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments6

Вопросы и ответы по поводу частицы Хиггса

Reading time16 min
Views30K
Что такое частица Хиггса?

Знаете ли вы, что такое частица? Поле? Если нет, давайте разбираться.

Поле – это нечто,

1. что присутствует повсеместно в пространстве и времени,
2. способно принимать нулевое или ненулевое значение,
3. что способно порождать в себе волны.
4. А если это квантовое поле, тогда эти волны состоят из частиц.

К примеру: электрическое поле – это часть природы, и его можно найти повсюду. В любой заданной точке пространства в любой момент времени его можно измерить. Если в каком-то районе пространства в среднем оно ненулевое, оно может оказывать физическое влияние – поднимать ваши волосы или приводить к появлению искр. Электрическое поле может порождать волны, в которых величина поля периодически становится больше и меньше – к примеру, такой волной является видимый свет, рентгеновские лучи, радиоволны, и всё остальное, что мы в целом зовём «электромагнитными волнами».

Так что такое частица?

Интенсивность волн квантового поля не может быть любой. Они не могут быть произвольно «слабыми» или «тихими». Волна наименьшей интенсивности, которую способно распространять поле, называется «квантом» или «частицей». Часто они ведут себя примерно так, как вы интуитивно представляете себе частицы – двигаются по прямым линиям и отскакивают от разных вещей, поэтому мы и назвали их частицами.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments20

Запутанная квантовая физика

Reading time13 min
Views35K
image

Феномен квантовой запутанности (entanglement), когда разделенные в пространстве частицы мистическим образом взаимодействуют друг с другом, нахально нарушая запрет на передачу взаимодействий со сверхсветовой скоростью, давно считается частью науки и у научного сообщества не вызывает никаких сомнений. Вполне серьезно изучаются перспективы создания на этой основе квантовых компьютеров. Считается, что их элементы данных — кубиты будут изменять и передавать свое информационное состояние посредством механизма квантовой запутанности. Такая прагматичная организация, как DARPA щедро финансирует эту чудесную науку. А между тем имеет серьезные основания точка зрения, согласно которой квантовая запутанность в смысле парадокса ЭПР — это миф, который прижился в поверхностном слое понимания квантовой механики.
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments110

Проприоцепция для неспециалистов. Часть 2: Ровная спина сидя за 2 минуты

Reading time2 min
Views52K
В прошлой статье вы узнали о том, как найти своё ощущение ровной спины стоя без внешних ориентиров, только ориентируясь на проприоцептивные сигналы.

Сейчас пришло время найти свое ровное положение на стуле. Осанка человека не является чем-то статическим, требующим жёсткого соблюдения. Урок в конце данной статьи позволит вам приобрести один из навыков динамического сидения на стуле.

Очень часто ко мне на приём приходят практически идеально ровные люди. Первоначальная реакция на них: «Что при такой осанке может болеть? Пришёл не по адресу – иди к другому доктору».

На поверку оказывается, что ровная спина – единственное положение тела, в котором боли позволяют передвигаться этому человеку. Ровное положение достигается таким большим напряжением мышц, что невозможно нормально наклониться, повернуться, легко сесть и встать.

В то же время, десятки кривых спин на профосмотрах совершенно не приносят беспокойства их владельцам. Страшные изменения в позвоночнике не дают болей вне обострения.
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments25

Проприоцепция для неспециалистов. Часть 1: Ровная спина стоя за 10 секунд

Reading time2 min
Views81K
Совсем недавно мою статью о чувствах человека сильно штормило – оценка пользователей колебалась от +5 до -4. В комментариях отмечались такие забавные моменты, как:

Но да, я почитал про проприоцептивную чувствительность. Не занимательно — вычурные слова для того, чтобы показать превосходство профессионалов данной сферы
И при чем здесь количество чувств? По логике вашей статьи, вы не можете пользоваться кишечником, пока не осознаете как он работает.
Собственно, расписывание на более подробные «чувства» является лишь бесполезным уточнением. Автор же просто вводит удобные ему «чувства», ведь он «Врач-невролог, сертифицированный преподаватель соматики» и учит людей «двигаться легко и без боли» (с).

Урок из данной статьи займёт 10-15 секунд и он позволит вам найти то внутреннее ощущение, которое позволит удобно держать ровную спину стоя длительное время. Вы на собственном опыте сможете убедиться в том, стоит ли выделять отдельно проприоцепцию (суставно-мышечное чувство).
Total votes 35: ↑30 and ↓5+25
Comments65

Диски, контроллеры, ОС и Advanced Format

Reading time12 min
Views91K
imageКазалось бы, что про диски Advanced Format за последние 4 года успели узнать все. Публикаций действительно много, но настало время рассмотреть все технические подробности и подводные камни в одной большой статье. Речь пойдёт об использовании AF-дисков в серверах, и я заметил, что для большинства администраторов даже в крупных компаниях знание предмета в большинстве случаев сводится к «это как-то связано с современными дисками, но у меня всё работает».
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments20

Ещё раз про китайские лампочки: всё очень плохо

Reading time2 min
Views99K
Я уже несколько раз писал о том, что по неизвестным причинам в китайских интернет-магазинах нет хороших светодиодных лампочек. Совсем нет.

При этом почти все приличные светодиодные лампы, которые можно купить в России, производятся в том же самом Китае.

Однажды в комментариях к моей статье о плохих китайских лампочках-свечках один из комментаторов написал: «Я отцу взял эти 5w. В люстре у него 15 штук. Доволен выше крыши и ещё попросил 15 штук.»

Я не пожалел кровных пяти долларов и решил проверить, заказав две лампочки.



Читать дальше →
Total votes 140: ↑137 and ↓3+134
Comments379

«Хакеры и художники», «On Lisp» и эссе на русском. Учим(ся) писать как Пол Грэм

Reading time16 min
Views73K
To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
«Лучший способ писать — это переписывать» Пол Грэм, «The Age of the Essay»



Преред курсом Сергея Абдульманова ( milfgard) я взял для себя квест — структурировать все статьи Грэма. Пол не только крутой программист и инвестор — он мастер лаконичного письма. Если milfgard назвал свой курс для контент-менеджеров "Буквы, которые стреляют в голову", то Пол Грэм стреляет из «по глазам» (кто играл в Fallout 2 тот поймет).

А еще мне захотелось освоить Lisp. Чисто так, чтобы мозг поразвивать, потому что крутые люди — Грэм, Кей и Рэймонд, Моррис — говорят хором: «Учите Lisp».

На данный момент Пол Грэм написал (по крайней мере, я нашел) 167 эссе. Из них на русский переведены 69.74(+10). Если читать по 1 статье в день (что очень хороший результат, потому что я после одной статьи хожу задумчивый неделю — голова кипит как после отличного мастер-класса, а иногда и как после двухдневного интенсива), то процесс займет полгода.

Под катом — список всех статей со ссылками на оригинал и с переводом (если он есть). Подборка живая (так что, как обычно, добавляйте в избранное, потом прочитаете) и будет дополняться по мере обнаружения свежака. Еще вы найдете переведенную на 8/15 книгу «Хакеры и художники» и 4/25 перевода книги «On Lisp». Так же я приведу свою подборку топ-5 статей Пола Грэма, с которых я бы рекомендовал начать знакомство с этим автором.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments3

Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

Reading time12 min
Views161K

Вступление


Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

Надеюсь что эта статья будет полезна:
1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
2. Профессионалам, которые хотят закрыть «дыры» и пробелы
3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Total votes 86: ↑81 and ↓5+76
Comments64

Категории, большие и малые

Reading time8 min
Views35K
Это четвертая статья в цикле «Теория категорий для программистов».

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

Без объектов


Самая простая категория — без объектов и, как следствие, без морфизмов.
Читать дальше
Total votes 36: ↑33 and ↓3+30
Comments29

Языки программирования. Композиционный взгляд

Reading time5 min
Views9.2K
Здравствуй, Хабр! Сегодня хотел бы поднять вопрос об использовании композиций и их роли в программировании. Те, кто сталкивался с функциональными языками, скорее всего слышали о них, а те, кто не сталкивался, возможно, узнают что-нибудь новое. Надеюсь на интересную дискуссию в конце статьи об их применении. Эшер для привлечения внимания.


Поехали
Total votes 22: ↑12 and ↓10+2
Comments19

Типы и функции

Reading time13 min
Views57K
Это третья статья в цикле «Теория категорий для программистов».

Категория типов и функций играет важную роль в программировании, так что давайте поговорим о том, что такое типы, и зачем они нам нужны.

Кому нужны типы?


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

image


Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments102

Категория: суть композиции

Reading time7 min
Views61K
Это вторая статья в цикле «Теория категорий для программистов».

Категория — очень простая концепция.

Категория состоит из объектов и стрелок, которые направлены между ними. Поэтому, категории так легко представить графически. Объект можно нарисовать в виде круга или точки, а стрелки — просто стрелки между ними. (Просто для разнообразия, я буду время от времени рисовать объекты, как поросят а стрелки, как фейерверки.) Но суть категории — композиция. Или, если вам больше нравится, суть композиции — категория. Стрелки компонуются так, что если у вас есть стрелка от объекта А к объекту B, и еще одна стрелка из объекта B в C, то должна быть стрелка, — их композиция, — от А до С.

image
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments128

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

Как работают ленивые вычисления

Reading time10 min
Views43K
Маленькая Лямбда решила, что уборку в комнате можно отложить и на потом.

Ленивые вычисления — часто используемая методика при исполнении компьютером программ на Haskell. Они делают наш код проще и модульнее, но могут вызвать и замешательство, особенно когда речь заходит об использовании памяти, становясь для новичков распространённой ловушкой. Например, безобидно выглядящее выражение
foldl (+) 0 [1..10^8]
потребует для своего вычисления гигабайты памяти.

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

Тема ленивых вычислений рассматривалась во многих учебниках (например, в книге Саймона Томпсона «Haskell — The Craft of Functional Programming»), но информацию о них, кажется, всё ещё проблематично найти в сети. Надеюсь, моё руководство посодействует решению этой проблемы.

Ленивые вычисления — это компромисс. С одной стороны, они помогают нам сделать код более модульным. С другой стороны, бывает невозможно до конца разобраться, как происходит вычисление в конкретной программе — всегда существуют небольшие отличия между реальностью и тем, что вы о ней думаете. В конце статьи я дам рекомендации, как поступать в ситуациях такого рода. Итак, приступим!

Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments6

Интервальное повторение иностранных слов: Anki, LinguaLeo, Memrise

Reading time4 min
Views110K


Хочу провести сравнение сервисов, позволяющих использовать метод интервального повторения.

Статья родилась из небольшого исследования, которое я провел, чтобы подтвердить свои интуитивные предположения. Поскольку я принимал участие в разработке интервального повторения на LinguaLeo, мне хотелось быть уверенным, что это повторение будет не хуже реализации Anki и Memrise.

Статья состоит из нескольких пунктов:


Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments51
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity