Pull to refresh
-5

Программист

Send message

Трюк с XOR для собеседований и не только

Reading time8 min
Reach and readers171K


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

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

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →

JIT-компилятор Python в 300 строк

Reading time11 min
Reach and readers34K

Может ли студент второго курса написать JIT - компилятор Питона, конкурирующий по производительности с промышленным решением? С учётом того, что он это сделает за две недели за зачёт по программированию.

Как оказалось, может, но с нюансами.

Читать далее

20 игр, чтобы видеть детали, чувствовать нюансы и уловить смысл дизайна

Reading time7 min
Reach and readers54K


Я собрала 20 игр, чтобы поиграть в дизайнера. Точнее игры, в которые играешь и прокачиваешь какой-то навык, полезный для дизайна: цветовым кругом пользоваться, пером работать, шрифты не вырвиглазные подбирать, UI по-человечески рисовать. Во все игры можно играть в браузере и бесплатно. Впервые от «поиграйте со шрифтами» можно получить удовольствие.

Еще я веду канал в Telegram GameDEVils и блог на Substack , делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).

1. Can’t Unsee


Update: используйте прокси, к примеру croxyproxy, или просто закройте попап, чтобы попасть на сайт игры.



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

Опусы про Его Величество Клей. Часть вторая — Viva, цианоакрилат! Viva, суперклей

Reading time19 min
Reach and readers129K

Как я и обещал в пилотной "клейкой" статье — рассматривать клеи будем постепенно. Чтобы не откладывать дело в долгий ящик, я решил вдогонку представить вашему вниманию некоторые факты связанные с любимым, не побоюсь этого слова, народным клеем — с цианоакрилатным "суперклеем". Кроме того, в меру своих сил я попытался в рамках темы статьи осветить все вопросы, которые читатели задали в предыдущей части. Так что, если вы активный пользователь суперклея — не пропустите. Самая актуальная информация про "сода+суперклей", про то почему суперклей нужно хранить в холодильнике и можно ли зажечь вату суперклеем, чем смывать?, что клеит? — все под катом!


Приклеиться к полному тексту статьи!

Теперь хороших разрабов меряют по просмотрам и подписчикам — и это плохо

Reading time6 min
Reach and readers84K


С недавних пор меня просто заваливают приглашениями на собесы. Я прихожу, мы болтаем за жизнь, а потом мне делают оффер, как будто техническое интервью уже позади, и я подтвердил свои скиллы заочно. Но у меня нет супер-страницы на гитхабе, мое резюме такое серое, как будто меня заставляли его составлять. Единственное доказательство, что я чего-то стою — это моя способность отвечать на технические вопросы. Но теперь мне их почти не задают.

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

Вот только почти все статьи не про разработку — в них нытье про мою депрессию. Я-то рад, что мне больше не надо никому ничего доказывать. Но вы что, с ума сошли котировать разрабов за такую чушь? Я думаю, сошли, и вижу тревожные симптомы этого везде.
Читать дальше →

Почему, ну почему, эти #?@! придурки используют vi?

Reading time12 min
Reach and readers123K

Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

Читать дальше →

После логаута пользователя VK можно получить управление его страницей

Reading time2 min
Reach and readers77K
Решил попробовать себя в работе с API Вконтакте и наткнулся на интересную особенность.

Один из способов авторизации в API — это OAuth. Вкратце всё происходит так: создаёте приложение ВК, получаете его ID, а затем отправляете браузер пользователя на адрес:

				https://oauth.vk.com/authorize"
					+ "?client_id=123"    // ID вашего приложения
					+ "&display=page"
					+ "&redirect_uri=https://oauth.vk.com/blank.html"    // URL, на который попадёт пользователь после успешной авторизации. ВК требует указания этого сайта в настройках приложения и только для приложения типа Сайт. Для остальных работает только указанный УРЛ, в целях безопасности
					+ "&scope= права доступа"
					+ "&response_type=token"
					+ "&v=5.52"
					+ "&state=123456"

Это авторизация методом Implicit flow.

Если пользователь залогинен, ему будет сразу предложено установить приложение, если нет — вначале залогиниться, а уже потом устанавливать. Если приложение уже установлено, то идёт сразу переход на страницу, в хэше которой будет токен. Дальше идёт работа с API.
Читать дальше →

10 ошибок, приводящих к оверинжинирингу ПО

Reading time9 min
Reach and readers55K
Несколько вещей гарантированно будут увеличиваться со временем: расстояния между звёздами, энтропия вселенной и бизнес-требования к ПО. Многие статьи пишут «Не усложняйте!», но не пишут почему или как это сделать. Вот вам 10 ясных примеров.

1. Инженерам виднее

Мы, инженеры, считаем себя умнейшими людьми. Ну, поскольку мы создаём разные штуки. И эта ошибка часто приводит к оверинжинирингу. Если вы спланировали и построили 100 модулей — Бизнес всегда попросит у вас 101-ый, о котором вы никогда не задумывались. Если вы соберётесь с силами и решите 1000 проблем — они придут к вам и выложат на стол 10 000 новых. Вы считаете, что у вас всё под контролем, а на самом деле вы даже не представляете, в каком направлении вас завтра поведёт дорога.

image

За мои 15 лет работы программистом я ещё ни разу не видел, чтобы Бизнес выдал законченные и стабильные раз и навсегда требования к ПО. Они всегда меняются, расширяются. И это природа бизнеса, а не ошибки людей, управляющих им.

Мораль: Казино (бизнес) всегда побеждает.
Читать дальше →

Датчики и микроконтроллеры. Часть 1. Матчасть

Reading time19 min
Reach and readers223K
В эпоху готовых отладочных плат и тысяч готовых модулей к ним, где достаточно взять пару блоков, соединить их вместе, и получить нужный результат, далеко не каждый понимает основы схемотехники, почему и как это работает, а главное — что надо делать, если это работает не так.
Как раз открылся хаб Схемотехника, так что, как говорил Бьюфорд Бешеный Пёс Таннен
Здание суда уже строят, значит, пора кого-то вешать.

В этом цикле я расскажу о датчиках — как о немаловажном элементе системы управления неким объектом или тех. процессом.

Все свое повествование я буду вести касаемо практических вопросов реализации цифровых систем управления на базе микроконтроллеров.

Руководство не претендует на всеобщий обхват вопроса.
Хотя после того, как мой конспект перелез за 20 страниц текста, я решил разбить статью на следующие части:
  • Часть 1. Мат. часть. В ней мы рассмотрим датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассмотрим передаточные функции и динамические характеристики датчика, разберемся с его возможными подключениями.
  • Часть 2. Датчики климат-контроля. В ней я рассмотрю особенности работы с датчиками температуры, влажности, давления и газового состава
  • Часть 3. Датчики электрических величин. В ней я коснусь измерения тока и напряжения

Читать дальше →

Программируемая Wi-Fi лампочка-ночник на ESP8266

Reading time3 min
Reach and readers61K
image

Нет ничего необычного в управлении светодиодами с помощью микроконтроллера. Даже такого странного, как ESP8266. Однако мне хотелось сделать законченный продукт. Что-то, что не было бы похоже на паука из проводов и радиодеталей.

Отмечу, что я — начинающий радиолюбитель, так что наверняка что-то сделал не слишком хорошо. Буду рад, если кто-то подскажет, что не так и почему надо делать иначе.

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

Разработка источника питания для энергоемкого портативного устройства

Reading time5 min
Reach and readers26K
Доброго времени суток всем хабражителям.

Этот пост относится к разделу «Сделай сам» и описывает простой (на мой взгляд) способ решения задачи контроля питания.

На досуге ковыряю паяльником здоровенный бумбокс в корпусе древнего советского магнитофона "Электроника 211 Стерео", задача — собрать портативный агрегат с полным фаршем, достаточной выходной звуковой мощностью и продолжительностью работы для выезда на природу, занятий в тренажерном зале и для озвучки гаража. Вот требования, которые я выдвигал при разработке устройства к его питанию:

— стабильное питание для встроенных мною цифровых 5-вольтовых устройств со средним током не менее 1А — устаревшего КПК, плеера, а также внешних устройств — флешек USB и SD, жесткого диска;
— питание усилителя мощности напряжением от 11 до 18В;
— автономное питание, достаточное для продолжительного функционирования устройства на максимальной громкости с постоянной производительностью;
— внешнее питание от сети 220 вольт;
— внешнее питание от бортовой сети автомобиля;
— электронное управление питанием;
— нулевое потребление энергии аккумуляторов в ждущем режиме;
— контроль разрядки батареи Li-Ion аккумуляторов с предупреждением о разряде и автоотключением;
— подбор деталей по возможности из бросовых элементов (места в корпусе бумбокса с большим избытком).

По моему мнению, все пункты разработки оказались успешно реализованы, частично кроме последнего — пришлось все же потратить $6.2 на покупку модуля эффективного DC-DC преобразователя, еще $13.2 соответственно аккумуляторы 4 шт. и $2.8 батарейный бокс на 4 штуки. Остальные детали были спаяны с горелых материнских плат и древнего советского железа в ассортименте.
Читать дальше →

Reverse Engineering ESP8266 — часть 2

Reading time5 min
Reach and readers48K
Продолжаем исследование модуля ESP8266. В этот раз рассмотрим процесс загрузки прошивки для дизассемблирования.

Первая часть статьи здесь.


Содержание


  1. Введение
  2. Архитектура ESP8266
    • Карта памяти (адресного пространства)
    • Формат прошивки
    • Процесс запуска
  3. Инструменты
  4. Загрузка прошивки для исследования
  5. Ассемблер Xtensa
    • Регистры
    • Базовые операторы
    • Функции
    • Условные переходы
  6. Заключение
  7. Ссылки

Читать дальше →

Работа с ESP8266: Собираем компилятор и пишем первую прошивку

Reading time15 min
Reach and readers192K
В прошлой статье мы рассмотрели первоначальную настройку и работу модуля ESP-01 с базовой AT-прошивкой. Возможности данной прошивки достаточно ограничены и использовать её для каких-то повседневных задач достаточно сложно. Как я писал в первой статье, для ESP8266 можно написать свою прошивку с нужным функционалом и тем самым сделать плату ESP-01 самодостаточным устройством. Всем кому это интересно, прошу под хабракат.
Подробности

15 советов и хитростей инструментов разработчика Chrome, которые вы обязаны знать

Reading time5 min
Reach and readers211K
Сегодня Google Chrome является самым популярным браузером среди веб разработчиков. С быстрым, шести недельным, циклом релизов и мощным набором постоянно расширяющихся инструментов разработчика, превратившим браузер в инструмент, который вы обязаны иметь. Большинство из вас, вероятно, знакомы со многими его функциями, такими как «живое» редактирование CSS, используя консоль и отладчик. В этой статье мы с вами рассмотрим 15 захватывающих советов и хитростей, которые позволят улучшить вашу производительность еще больше.
Читать дальше →

Прототип. От идеи до опытной партии. Литье в силикон

Reading time2 min
Reach and readers183K
В прошлой статье я описал мой путь по созданию опытной партии изделия, в ней я литье в силикон отдал на аутсорс. Пока я ждал выполнения моего заказа, потихоньку сам начал осваивать это ремесло. Статья будет полезна тем, у кого допустим есть плата какого-нибудь девайса, но нету красивого корпуса, 3д-печать не подходит по характеристикам, а делать сразу промышленную пресс-форму очень дорого.


Читать дальше →

Wi-Fi термометр на ESP8266 + DS18B20 всего за 4$

Reading time3 min
Reach and readers321K


В последнее время всё большую популярность набирают Wi-Fi модули на основе ESP8266. Я тоже решил приобщиться к прекрасному, задумав реализовать термометр, отдающий данные по HTTP. Итак, поехали.
Читать дальше →

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Reach and readers786K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


Читать дальше →

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

Reading time12 min
Reach and readers168K

Вступление


Давно хотел написать статью про образование в 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, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →

Приём радиофаксов и прочих цифровых передач с помощью обычного приёмника и компьютера

Reading time3 min
Reach and readers73K

Один из неудачных радиофаксов

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

Умный будильник для умного дома

Reading time6 min
Reach and readers81K
Что не собирай на avr, а в итоге все равно получаются часы
с радиолюбительских форумов

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

На хабре довольно часто упоминаются различные дистанционно управляемые розетки и лампочки с управлением по Wi-Fi, в этом проекте похожая задача решается посредством ИК-управления.
Читать дальше →

Information

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