Pull to refresh
38
0

Dev UWP/Mobile, Data Scientist, EduTech

Send message

Разбираем bluetooth протокол RGB лампы

Level of difficulty Easy
Reading time 8 min
Views 7.8K

В данной статье рассмотрим опыт реверс-инжиниринга bluetooth протокола, при помощи которого android приложение управляет цветами и эффектами работы закатной лампы. В результате будет написан небольшой генератор шфированных AES'ом сообщений на C#.

Читать далее
Total votes 62: ↑62 and ↓0 +62
Comments 8

20 уроков, которые я вынес из 20 лет работы программистом

Level of difficulty Easy
Reading time 9 min
Views 116K
Вы приступаете к чтению статьи с высокой концентрацией советов. Учиться у предшественников – хороший способ добиться успеха, но здесь мы часто забываем о важной оговорке. Практически любой совет работает только в определенном контексте, но дается обычно без каких-либо указаний на него.

«Да просто повысьте цены!» — говорит компания, которая уже двадцать лет на рынке и первые годы продавала продукт за копейки, чтобы привлечь клиентов и прийти к успеху. «Нужно всё реализовать в микросервисах», — говорит компания, которая по-быстрому сколотила монолит, набрала несколько тысяч пользователей и метнулась к микросервисам, когда начались проблемы с масштабированием.

Без понимания контекста советы теряют смысл или, хуже того, приносят вред. Если бы люди из примеров выше последовали своим собственным советам в начале пути, то, вероятно, пожалели бы этом. Этой ловушки сложно избежать. Мы представляем собой кульминацию своего опыта, но при этом смотрим на него через призму настоящего.
Читать дальше →
Total votes 166: ↑159 and ↓7 +152
Comments 115

Как я создавал эргономичное рабочее место для себя и теперь предлагаю другим. Часть 1

Reading time 12 min
Views 86K

Привет, Хабр! Меня зовут Денис Захаров. Я занимаюсь разработкой веб приложений на протяжении уже 14 лет, но история будет не об этом. Расскажу о том, как и почему я создавал эргономичное рабочее место, которое в последствии превратилось в проект Easyworkstation. Эта штука уже несколько лет полностью заменяет мне и еще нескольким десяткам пользователей привычное компьютерное кресло и рабочий стол.

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

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

А теперь ретроспектива
Total votes 300: ↑300 and ↓0 +300
Comments 206

15 игр, которые прокачивают логику, алгоритмы, ассемблер и силу земли

Reading time 8 min
Views 101K


Есть «Super Mario», признанная классика видео игр. Есть «Doom», который запускают на чайниках и тестах на беременность. Есть супер-популярные по статистике twitch.tv игры («League of Legends», «GTA V», «Fortnite», «Apex Legends») которые стримят пятая часть всех стриммеров.

А есть игры, на которые очень мало обзоров, но они супер крутые — игры про алгоритмы. Игры, в которых можно кодить на ретро-компьютере; игры, которые надо взламывать; игры, где можно программировать контроллеры или поведение персонажей; игры, где можно создавать свою игру внутри игры.

Под катом подборка классных игр про алгоритмы за последние 10 лет. Если что-то упустила — буду рада дополнениям.

Еще я создала канал в Telegram: GameDEVils, буду делиться там клевыми материалами (про геймдизайн, разработку и историю игр).
Читать дальше →
Total votes 98: ↑93 and ↓5 +88
Comments 98

Основы современного искусственного интеллекта: как он работает, и уничтожит ли наше общество уже в этом году?

Reading time 18 min
Views 24K

Сегодняшний ИИ технически «слабый» – однако он сложный и может значительно повлиять на общество



Не нужно быть Киром Дулли, чтобы знать, насколько пугающим может стать хорошо соображающий искусственный интеллект [американский актёр, исполнявший роль астронавта Дэйва Боумена в фильме «Космическая одиссея 2001 года» / прим. перев.]

ИИ, или искусственный интеллект, сейчас одна из самых важных областей знания. Решаются «нерешаемые» задачи, инвестируются миллиарды долларов, а Microsoft даже нанимает Коммона, чтобы он рассказал нам поэтическим штилем, какая это замечательная штука – ИИ. Вот ведь.
Total votes 24: ↑20 and ↓4 +16
Comments 76

Введение в машинное обучение

Reading time 11 min
Views 235K

1.1 Введение


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

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

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

Благодаря машинному обучению компьютеры учатся распознавать на фотографиях и рисунках не только лица, но и пейзажи, предметы, текст и цифры. Что касается текста, то и здесь не обойтись без машинного обучения: функция проверки грамматики сейчас присутствует в любом текстовом редакторе и даже в телефонах. Причем учитывается не только написание слов, но и контекст, оттенки смысла и другие тонкие лингвистические аспекты. Более того, уже существует программное обеспечение, способное без участия человека писать новостные статьи (на тему экономики и, к примеру, спорта).
Читать дальше →
Total votes 38: ↑34 and ↓4 +30
Comments 6

Домашняя приточная вентиляция малыми средствами

Reading time 14 min
Views 57K

Последнюю пару лет я живу с приточной вентиляцией в городской квартире — и очень рад этому факту.

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

Коротко о главном:
• наружное расположение компонентов ради минимального уровня шума;
• минимум ручного труда в изготовлении и монтаже;
• общий ценник существенно ниже 50 тысяч рублей (ниже 30 тысяч — на момент изготовления два года назад).

И важное. Если вы — адепт систем рекуперации, долгих инженерных расчётов и полугода проектирования, эта статья не для вас. Я — адепт золотой середины между «я сделяль» и «я задолбался».

Читать далее
Total votes 152: ↑150 and ↓2 +148
Comments 157

Алгоритмы сортировки и их производительность

Reading time 17 min
Views 43K

Здравствуйте, давно читаю Хабр и все хотел написать кому-нибудь статью, но не знал с чего начать и о чем писать. Но решил что тянуть кота за причинное место. Надо просто взять и написать обзор о чем то что я знаю и что будет просто для начало. Поэтому решил описать алгоритмы сортировки в размере 37 штук. Я понимаю, что на Хабре есть подобные статьи, одна постараюсь их добавить количеством алгоритмов и приведением небольшого числа графиков.

Читать далее
Total votes 79: ↑77 and ↓2 +75
Comments 29

Со Stable Diffusion вы можете больше никогда не поверить увиденному в онлайне

Reading time 9 min
Views 56K

Генерация изображений с помощью AI пришла по-настоящему. Опенсорсная модель для синтеза изображений Stable Diffusion позволяет любому обладателю компьютера с хорошей видеокартой творить практически любую визуальную реальность, какую сможет выдумать. Она может имитировать практически любой визуальный стиль, и если задать ей фразу-описание, результаты возникают на экране словно магия.

Одни художники восхищаются открывшимися возможностями, другие недовольны, а общество в целом пока вроде бы не курсе той стремительно развивающейся технологической революции, которая происходит в сообществах на Twitter, Discord и GitHub. Возможно, синтез изображений приносит настолько же большие возможности, как изобретение камеры — или даже создание самого визуального искусства. Даже наше восприятие истории под вопросом, в зависимости от того, как всё утрясётся. В любом случае Stable Diffusion возглавляет новую волну творческих инструментов, основанных на глубоком обучении, которые намерены революционизировать создание визуального медиаконтента.

Читать далее
Total votes 82: ↑80 and ↓2 +78
Comments 85

Почему айтишники не могут пройти собеседование с эйчаром

Reading time 7 min
Views 84K

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

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

Читать далее
Total votes 293: ↑158 and ↓135 +23
Comments 378

В Data Science не нужна математика (Почти)

Reading time 6 min
Views 86K

Привет, чемпион!

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат.

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

Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется. Важно прочитать до конца!
Читать дальше →
Total votes 143: ↑136 and ↓7 +129
Comments 87

Data Science и математика: самые важные разделы науки в освоении профессии

Reading time 5 min
Views 10K

Data Science — быстро развивающееся направление, без которого сейчас невозможно обойтись ни в одной отрасли бизнеса или науки. Сырые и неструктурированные данные — кладезь информации. Но для того чтобы ее получить в нужном виде, требуется приложить немало усилий. А объемы таких сырых данных зашкаливают — каждый день, по статистике, человечество генерирует около 2,5 квинтиллиона байт.

Для обработки всего этого необходимы специалисты — чем больше, тем лучше. Основной инструмент в их руках — математика. Сегодня обсудим, какие разделы науки наиболее востребованы в профессии. Об этом мы поговорили с Кириллом Шмидтом, Product analyst Team Lead в корпорации Citrix (США) и автором профессии Data Analyst в Skillbox. Сразу стоит сказать, что статья рассчитана на новичков. Что же, приступим. 

Читать далее
Total votes 11: ↑8 and ↓3 +5
Comments 3

Научитесь создавать приложения на F#

Reading time 2 min
Views 8.4K

Вы можете быть новичком в .NET или опытным разработчиком C#/VB.NET, который хочет расширить свои горизонты. В любом случае, F# -- отличный язык для изучения.

F# позволяет легко писать сжатый, надежный и производительный код. Он имеет легкий синтаксис, который требует очень мало кода для создания ПО. Он поддерживается мощной системой типов, удобной библиотекой и средой выполнения .NET, которой вы можете доверять создание правильных, быстрых и надежных программ.

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

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 7

Мы сделали наш публичный синтез речи еще лучше

Reading time 11 min
Views 18K

6cc6e0011d4d26aeded6f052080b1890


Обновление — забыл ссылку на репозиторий и на колаб с примерами.


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


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


Если коротко:


  • Мы сделали наш вокодер в 4 раза быстрее;
  • Мы сделали пакетирование моделей более удобным;
  • Мы сделали мультиспикерную / мультязычную модель и "заставили" спикеров говорить на "чужих" языках;
  • Мы добавили в наши русские модели возможность автопростановки ударений и буквы ё с некоторыми ограничениями;
  • Теперь мы можем сделать голос с нормальным качеством на 15 минутах — 1 часе (с теплого старта в принципе заводилось даже на 3-7 минутах) или на 5 часах аудио (с холодного старта). Но тут все очень сильно зависит от качества самого аудио и ряда деталей;
  • Мы привлекли коммьюнити к работе, и нам помогли сделать удобный интерфейс для записи. Мы начали работу над голосами на языках народностей СНГ (украинский, татарский, башкирский, узбекский, таджикский). Если вы хотите увидеть свой язык в числе спикеров — пишите нам;
  • Мы продолжаем собирать обратную связь по применимости нашей системы для экранных интерфейсов чтения, и пока кажется, что нужно где-то еще всё ускорить в 5-10 раз, чтобы наши модели закрывали и этот кейс;
Total votes 63: ↑63 and ↓0 +63
Comments 37

Открываем доступ к Platform V для рынка

Reading time 3 min
Views 22K
image

У нас примерно три тысячи команд разработки, поэтому, очевидно, нам нужна была платформа, которая позволит быстро выпускать новые приложения, делать изменения в существующих, а так же обеспечивать надежное и безопасное исполнение созданных приложений. Спустя несколько поколений эволюции мы собрали вообще всё, что было разработано в банке, в единую систему. Можно, условно, постучать по API для доступа к любому нужному сервису — и получить кусочек конструктора. Сейчас мы даём доступ для разработки на этой Платформе.

Platform V в первую очередь полезна для разработки энтерпрайз-хайлоада, но это не значит, что ей не могут воспользоваться независимые разработчики. Это проект национального уровня, поэтому мы рассчитываем, что поможем компаниям, которым нужно автоматизировать бизнес-процессы с нуля либо перевести свою текущую автоматизацию на современный технологический стек. Первое, с чего мы начали, — это стали вести все новые разработки с использованием новых инструментов Платформы и инициировали проекты по переводу Legacy-приложений.

image

Платформа собрана на базе готовых опенсорсных решений. Мы берём какой-то наиболее зрелый опенсорс, коммитим свои изменения или создаём собственный plugin, не забывая отдавать ключевые фиксы в комьюнити. Цель — максимально переиспользовать поддерживаемый код. Большинство доработок и форков касаются поддержки для энтерпрайз-задач — средств обеспечения надёжности, мониторинга, кибербезопасности и самое главное нагрузки.

То есть у нас есть максимально открытый комбайн, который можно использовать для разработки и который будет поддерживаться далеко не только нами.
Читать дальше →
Total votes 28: ↑16 and ↓12 +4
Comments 6

Проектируем мульти-парадигменный язык программирования. Часть 1 — Для чего он нужен?

Reading time 13 min
Views 4K
Хабр это замечательное место, где можно смело делиться своими идеями (даже если они и выглядят безумно). Хабр видел много самодельных языков программирования, расскажу и я о своих экспериментах в этой области. Но мой рассказ будет отличаться от остальных. Во-первых, это будет не просто язык программирования, а гибридный язык, сочетающий в себе несколько парадигм программирования. Во-вторых, одна из парадигм будет довольно необычной — она будет предназначена для декларативного описания модели предметной области. А в-третьих, сочетание в одном языке декларативных средств моделирования и традиционных объектно-ориентированного или функционального подходов способно породить новый оригинальный стиль программирования — онтологически-ориентированное программирование. Я планирую раскрыть в первую очередь теоретические проблемы и вопросы, с которыми я столкнулся, и рассказать не только о результате, но и о процессе создания дизайна такого языка. Будет много обзоров технологий и научных подходов, а также философских рассуждений. Материала очень много, придется разбить его на целую серию статей. Если вас заинтересовала такая масштабная и сложная задача, приготовьтесь к долгому чтению и погружению в мир компьютерной логики и гибридных языков программирования.
Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Comments 34

MarkedText — маркдаун здорового человека

Reading time 10 min
Views 38K

Здравствуйте, меня зовут Дмитрий Карловский и все свои статьи (и презентации) пишу я в MarkDown разметке. И знаете что? Она уже порядочно меня подзаелозила! Тексты я пишу на русском, но большая часть спецсимволов есть только в английской раскладке клавиатуры. А редактирование таблиц - это вечная пизанская башня из вертикальных линий. Короче, есть у него проблемы как с удобством редактирования, так и с наглядностью представления. Так что давайте попробуем спроектировать его с нуля, не таща за собой килотонны головоломных конструкций.

Поехали..
Total votes 91: ↑72 and ↓19 +53
Comments 155

Что такое логическое программирование и зачем оно нам нужно

Reading time 17 min
Views 43K

У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал)

Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас.


Можно по-разному разделить языки программирования на группы (часто их называют парадигмами программирования), например, вот так:


  • структурное: программа разбивается на блоки — подпрограммы (изолированные друг от друга), а основными элементами управления являются последовательность команд, ветвление и цикл.
  • объектно-ориентированное: задача моделируется в виде объектов, которые отправляют друг другу сообщения. Объекты обладают свойствами и методами. Абстракция. Инкапсуляция. Полиморфизм. Ну в общем, все в курсе.
  • функциональное: базовым элементом является функция и сама задача моделируется в виде функции, а, точнее, чаще всего в виде их композиции, если f(.) и g(.) — это функции, то f(g(.)) — это их композиция.
  • логическое: вот тут, как правило, начинается феерия — если про первые три написаны сотни статей, книг, обзоров, презентаций и учебников, то здесь мы в лучшем случае видим что-то про Prolog и разработки времён Pink Floyd и Procol Harum (ну хоть с музыкой им тогда повезло) и на этом история заканчивается.

Вот эту оплошность я и собираюсь сегодня исправить.


Важнейший тезис этой статьи:


Логическое программирование != Prolog.

И вообще последний вам скорее всего не нужен. А вот первое вполне может быть.


Структура статьи:


  • Что такое Пролог и почему он вам скорее всего не нужен
  • Зачем оно надо, или краткое введение в Answer Set Programming
  • Решаем задачи на ASP
  • Комбинаторная оптимизация
  • Вероятностное ЛП: ProbLog
  • ЛП на классической логике FO(.) и IDP
  • Sketched Answer Set Programming
  • Экспериментальный анализ
  • Тестирование и корректность программ
  • Заключение
Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Comments 22

Эксперименты с тиграми и другие способы преподавать программирование студентам, которым скучно

Reading time 16 min
Views 14K
image

Привет, Хабр! Я Маша, старший инженер-разработчик iOS в КРОК и аспирант на кафедре Прикладной математики и Искусственного интеллекта в московском вузе. А еще я уже четыре года преподаю. Два года назад мы с коллегами с кафедры, преимущественно аспирантами, основали кружок спортивного программирования, который вырос в большое IT-коммьюнити в стенах универа, где мы делимся разного рода знаниями со студентами.

В рамках этой затеи мы решили улучшить процессы обучения дисциплинам Computer Science (до чего дотянулись). К нему у всех уже было много вопросов.

Первый ужас я испытала на первом же занятии со студентами. Одна группа не могла привести ДНФ в КНФ, другая — не смогла даже общим усилием воли вспомнить таблицу истинности для конъюнкции и дизъюнкции. Третья — не понимала как программно устроены списки (это у нас проходят годом ранее). А потом я вспомнила себя — про мой курс преподы говорили то же самое. И про курсы до нас, и про курсы после меня. И школьную учительницу Ольгу Николаевну вспомнила: «В этом году класс еще слабее, чем в прошлом — если так пойдет и дальше, вернемся к жизни на деревьях!». В школе мне казалось, что это такой изощренный педагогический прием, который должен подхлестнуть нас учиться усерднее чтобы «доказать, что мы лучше чем кажется». Ошибалась.

Решили мы с коллегами порефлексировать — а почему так происходит? Результаты, наши грабли и опасные эксперименты с тигром под катом!
Читать дальше →
Total votes 77: ↑71 and ↓6 +65
Comments 126

Information

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