Как стать автором
Обновить
1
0
Дмитрий Митин @Hesser

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

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

О жизни, свободе и стремлении к счастью пользователя API

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

Мы постоянно сталкиваемся с системами, созданными другими людьми. Будь то UI приложений в смартфоне или облачные инфраструктуры современного Интернета — именно процесс взаимодействия определяет наши ощущения, впечатления, и в конечном счёте — отношение к технологии. Мы можем быть в роли инженеров, разработчиков или простых пользователей — user experience важен везде. Вокруг систем с хорошим UX образуется общество счастливых, довольных и продуктивных людей; плохой UX приводит только к боли и страданиям.


Даже если специально не отдаешь себе отчёт, то создавая новый софт, обязательно создаешь user experience. Когда код уже написан, с ним начинают взаимодействовать люди. Может быть, это разработчики из твоей команды. Может, это мобильные разработчики, пытающиеся использовать твой API, или сисадмины, на ночном держурстве пытающиеся разобраться, почему всё сломалось. Сами примеры могут быть совершенно различными по сути, но к ним применимы общие принципы. В этом хабропосте мы поговорим об идеях по поводу UX, дизайна API, психологии обучения, и других связанных областей. Рассмотрим применение хороших практик на самых разных уровнях разработки приложений. Что бы ты ни делал — писал базы данных, библиотеки, hypermedia API или мобильные приложения — рано или поздно кто-то прикоснется к твоему коду — и пусть уж он получит от этого удовольствие, верно?


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

Экспресс-оценка сложности алгоритма (+разбор задачи c Joker 2017 и DotNext 2017 Moscow)

Время на прочтение5 мин
Количество просмотров18K
Для любого практического применения log(n) можно считать константой. Просто в некоторых компаниях эта константа больше, чем у вас. © народная мудрость

Половину жизни я учу программировать. В том числе учу разработчиков делать быструю оценку вычислительной сложности алгоритма. Зачем?!


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


Сначала разберёмся, как делать оценку сложности, на примере короткой, но нетривиальной задачи. Потом я расскажу, как научится делать экспресс-оценку, и покажу статистику о том, как решали задачу-пример участники конференций Joker и DotNext.


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

Как я ускорил работу отдела продаж более чем в 20 раз

Время на прочтение7 мин
Количество просмотров71K
Если вам знакома ситуация, когда нужно обработать заявку от клиента размером 150 или больше позиций, подобрав для каждой самую лучшую по цене из 20 прайс-листов по 10 000 + позиций в каждом, но вы не готовы тратить на это больше 30 минут, то добро пожаловать под кат.
Читать дальше →
Всего голосов 123: ↑112 и ↓11+101
Комментарии149

Я не могу написать бинарный поиск

Время на прочтение11 мин
Количество просмотров207K
Недавно (буквально два года назад) тут пробегала статья Только 10% программистов способны написать двоичный поиск. Двоичный поиск — это классический алгоритм поиска. Мало того, это еще чрезвычайно простой алгоритм, который можно очень легко описать: берем отсортированный массив, смотрим в середину, если не нашли там число, в зависимости от того, что в середине — ищем это число этим же методом либо в левой части, либо в правой, откидывая средний элемент. Для функций также, просто берем не массив, а функцию. Все очень и очень просто, алгоритм описан почти везде, все баги словлены и описаны.

Так вот, я не могу реализовать двоичный поиск. Для меня он ни капельки не тривиален. Наверное, я ненастоящий программист. А ведь так и есть, я всего-лишь студент, но ведь это не оправдание? Если точнее, я не могу реализовать хороший корректный красивый двоичный поиск. Все время у меня вылезает проблема либо с корректностью, либо с красивостью, либо и с тем, и с другим. Так что, да, заголовок немного желтоват.
Прежде чем читать этот топик, напишите свою версию бинарного поиска — для отсортированного массива. Причем, в зависимости от параметра, поиск должен выдавать или первый элемент, или любой из дублирующих. Еще для сравнения, напишите бинарный поиск для функций

А в чем, собственно, проблема?
Всего голосов 165: ↑107 и ↓58+49
Комментарии156

7 шагов на пути к карьере разработчика Xamarin

Время на прочтение4 мин
Количество просмотров17K
Вы подумываете сменить основную профессию и однажды стать разработчиком Xamarin? И вы нуждаетесь в практических советах, которые в будущем помогут вам найти работу, связанную с Xamarin? В этой статье хочу поделиться советами лидера российского Xamarin-сообщества, Саши Алексеева, о начале карьеры разработчика Xamarin.

Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии11

Анализируем локальные функции в C# 7

Время на прочтение9 мин
Количество просмотров31K
Добавление локальных функций в языке C# первоначально для меня было излишним. Прочитав статью в блоге SergeyT, я понял, что эта фича действительна нужна. Итак, кто сомневается в надобности локальных функций и кто еще не знает что это, вперед за знаниями!

Локальные функции — это новая возможность в C# 7, которая позволяет определять функцию внутри другой функции.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии19

Объединение .NET-сообществ

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


Вот уже несколько лет в России развивается движение открытых .NET-сообществ. Первопроходцем стало питерское сообщество SpbDotNet, стартовавшем в 2015 году. Последователем питерского сообщества стало московское сообщество MskDotNet, проводящее встречи с 2016 года. Разумеется, оба сообщества очень хорошо дружат и оказывают посильную взаимопомощь. С начала создания сообществ были проведены десятки встреч, рассказаны более сотни докладов. Отлично! Давайте немного поговорим о настоящем и будущем .NET движений.

День сегодняшний


За время существования наших замечательных коммьюнити были проведены десятки встреч, обсуждены тысячи вопросов, как в форме докладов, так и в форме живого общения в кулуарах. Многие познакомились с новыми коллегами, обзавелись полезными связями, нашли ответы на интересующие их вопросы, получили море позитива, а кто-то даже нашёл новых друзей. Те, кто по каким-либо причинам не посещают, или не могут посетить наши встречи вживую — смотрят наши видео на youtube. Кстати, на данный момент наш YouTube-канал пополняется записями и с MskDotNet и c SpbDotNet. На нём выложены уже более 70 видео с докладами. Звучит просто отлично!
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии23

Пару слов о распознавании образов

Время на прочтение13 мин
Количество просмотров311K
Давно хотел написать общую статью, содержащую в себе самые основы Image Recognition, некий гайд по базовым методам, рассказывающий, когда их применять, какие задачи они решают, что возможно сделать вечером на коленке, а о чём лучше и не думать, не имея команды человек в 20.
image

Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.
Распознать
Всего голосов 130: ↑129 и ↓1+128
Комментарии52

Путь верстальщика: с нуля до сеньора

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

Здравствуйте, меня зовут Александр Зеленин, и я веб-разработчик.
Многократно я слышал мнение, что верстка — удел начинающих frontend’еров. Хотя фактически это важнейшая часть любого (почти) веб-проекта. Это то, что пользователи видят в первую очередь. На текущий момент качественная вёрстка (особенно проектирование блоков) в крупном проекте требует большого количества различных навыков.


В данной статье представляю схему развития верстальщика


image
[большая по клику]
Само собой, это не всеобъемлющая и единственно верная схема. Есть ещё целая гора связанных навыков, релевантных технологий и так далее. Градация является субъективной.

Описание пути код катом
Всего голосов 47: ↑34 и ↓13+21
Комментарии173

«Теперь он и тебя сосчитал» или Наука о данных с нуля (Data Science from Scratch)

Время на прочтение8 мин
Количество просмотров34K
Не так давно я рассказывал о том, как случайно познакомился с понятием Data Science, благодаря курсам от Cognitive Class. Кратко резюмируя ту статью скажу, что по результатам курса я толком ничему не научился, но мне стало любопытно, поэтому спустя какое-то время я побежал в магазин и купил книгу, которой и посвящён данный материал.

Не знаю на сколько уместно на Хабре описывать возможность обучения по печатному самоучителю, но в конце концов этот хаб же про учебный процесс в IT и поэтому если вам интересно, чему может научить эта книга полного новичка в области Data Science и стоит ли тратить на этот этап время и деньги, то милости прошу под кат.


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

Ловись Data большая и маленькая! (Краткий обзор курсов по Data Science от Cognitive Class)

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

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


Итак, Cognitive Class, он же Big Data University от IBM (иногда сокращенно BDU) – портал с бесплатными курсами по тематике близкой к BIG Data и соответственно Data Science.


Хотите узнать, чему он может или не может вас научить, тогда милости прошу под кат.



Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

«Письмо турецкому султану» или линейная регрессия на C# с помощью Accord.NET для анализа открытых данных Москвы

Время на прочтение13 мин
Количество просмотров12K
Когда речь идет об освоении самых основ машинного обучения, чаще всего предлагается изучить соответствующие инструменты на Python или R. Мы не будем обсуждать их плюсы и минусы, а просто зададимся вопросом, что делать если вы знакомы только с экосистемой .NET, но при этом вам очень любопытно окунутся в мир науки о данных? Ответ прост, не отчаиваться и посмотреть в сторону F#, а если вы также, как и я из .NET знаете только азы C#, то попробовать изучить Accord.NET Framework.

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

Несмотря на то, что в заголовке статьи указан C#, мы попробуем собрать код и на VB.NET.

Мне осталось только пригласить вас под кат!


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

Ошибки новичка Unity, испытанные на собственной шкуре

Время на прочтение13 мин
Количество просмотров159K
Привет, Хабр. Это снова я, Илья Кудинов, QA-инженер из компании Badoo. Но сегодня я расскажу не о тестировании (этим я уже занимался в понедельник), а о геймдеве. Нет, этим мы в Badoo не занимаемся, разрабатывать компьютерные игры — моё хобби.

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

Я мечтал разрабатывать игрушки с детства. Наверное, уже в далёком 1994 году, когда мне подарили мою первую Dendy, я думал: “Как была бы здолава, если бы вот в этай иглушке было бы ещё всякое классное...” В средней школе я начал учиться программировать и вместе с товарищем делал свои первые играбельные поделки (ох, как мы их любили!). В институте мы с друзьями строили наполеоновские планы о кардинальном изменении индустрии с помощью нашей совершенно новой темы…

А в 2014 году я начал изучать Unity и наконец-то НА САМОМ ДЕЛЕ начал делать игры. Однако вот беда: я никогда не работал программистом. У меня не было опыта настоящей корпоративной разработки (до этого я всё делал “на коленке”, и, кроме меня, в моём коде никто бы не разобрался). Я умел программировать, но я не умел делать это хорошо. Все мои знания Unity и C# ограничивались скудными ещё на тот момент официальными туториалами. А мой любимый способ познавать мир — делать ошибки и учиться на них. И я наделал их предостаточно.

Сегодня я расскажу о некоторых из них и покажу, как их избежать (ах, если бы я знал всё это три года назад!)

Для того чтобы понять все используемые в материале термины, достаточно предварительно пройти один-два официальных туториала Unity. Ну, и иметь хоть какое-то представление о программировании.
Читать дальше →
Всего голосов 67: ↑64 и ↓3+61
Комментарии36

ТАУ для самых маленьких: пример реализации ПИД-регулятора в Unity3D

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

Вместо введения


Системы автоматического управления (САУ) предназначены для автоматического изменения одного или нескольких параметров объекта управления с целью установления требуемого режима его работы. САУ обеспечивает поддержание постоянства заданных значений регулируемых параметров или их изменение по заданному закону либо оптимизирует определенные критерии качества управления.

Всего голосов 23: ↑23 и ↓0+23
Комментарии42

Делегаты и Лямбда выражения в C# .Net — Шпаргалка или коротко о главном

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

Привет, Дорогой читатель!


Почти все кто мало-мальски работал в .Net знает что такое Делегаты (Delegates). А те кто не знает о них, почти наверняка хотя бы в курсе о Лямбда-выражениях (Lambda expressions). Но лично я постоянно то забываю о синтаксисе их объявления, то возвращаюсь к многостраничным объяснениям умных людей о том, как компилятор реагирует на подобные конструкции. Если у Вас случается такая проблема, то милости прошу!
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии15

Информация

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