• Объясняем современный JavaScript динозавру

    • Перевод


    Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


    Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


    Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


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

    Читать дальше →
  • Как подступиться к fullstack-разработке сегодня, если ты проспал десять лет



    Привет, Хабр! Несколько месяцев назад у меня остро встал вопрос смены профиля деятельности и я обнаружил, что для претендента на вакансию web-разработчика сейчас недостаточно навыков десятилетней давности (какая неожиданность!). Пришлось срочно актуализировать свои знания. Заодно я решил составить шпаргалку с описанием большинства современных технологий, чтобы в случае чего кидать жаждущим новых знаний линк на эту статью, да и самому не забывать.
    Читать дальше →
  • НЕ Arduino за 55 центов



      Эксперимент с прикручиванию к дешевым микроконтроллерам ATTiny загрузчика и среды разработки Arduino был достаточно удачным. Конечно, с AVR неплохо живется и без Arduino. Но хорошо, когда есть возможность выбора. А потом я вляпался в STM32 и заковырялся в библиотеках и громоздких конструкциях инициализации портов. Спасением ARM-«чайника» стал проект ARM mbed. Лично мне он позволил просто взять и начать работать с STM32.

      Но мигать светодиодом на плате Nucleo надоело очень быстро. Отложил я ее, ибо слишком много ножек и наворотов, и взялся за Maple Mini (STM32F103CBT6 с минимальной обвязкой). Тоже все довольно легко и просто — сервоприводы крутятся, датчики работают, экранчики показывают — все популярные библиотеки, знакомые ардуинщикам, в mbed имеются.

      А третий заход отчасти повторял «Arduino за 1$». О нем я и расскажу подробно. Идея такая: хочу ARM за копейки. Открываю Aliexpress и нахожу STM32F030F4P6 за 55 центов за штучку при покупке пучка (10 чипов).
      Читать дальше →
    • Часы на белой доске



        Whiteboard Clock — устройство, которое пишет текущее время маркером на белой доске. Каждые Х (по умолчанию — 5) минут оно стирает предыдущее время и пишет новое.

        Создатель гаджета описывает его конструкцию и публикует исходный код для управления моторами.
        Читать дальше →
        • +14
        • 18,9k
        • 9
      • Эти часы пишут время…

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



          Итак!
          Читать дальше →
        • Радиомодем за 7 долларов

          • Tutorial
          Доброе время суток!
          Расскажу я как можно собрать себе радиомодем мощностью 100мВт на 433МГц, по стоимости выходящий примерно на 6-7 долларов. Мощный радиомодем за 200 рублей — заманчиво? Тогда начнём.
          Внешний вид
          Требуются скиллы пайки немного выше среднего и опыт заказа в интернет-магазинах.
          Читать дальше →
        • Захват аналогового видеосигнала при помощи STM32F4-DISCOVERY

            image
            В этой статье я расскажу о том, как можно захватывать аналоговый черно-белый видеосигнал с помощью платы STM32F4-DISCOVERY, и об особенностях передачи его на компьютер при помощи USB.
            Читать дальше →
            • +68
            • 57,5k
            • 8
          • Используем MSP430-Launchpad в качестве программатора

            Здравствуйте! Я хочу поделиться с хабрасообществом одним необычным применением отладочной платы MSP430-Launchpad.

            Руководство предназначено тем, кто уже имеет MSP430-Launchpad, освоил микроконтроллеры MSP430-ValueLine и задумывается о том, чтобы перейти на более продвинутые МК MSP430, но пока не решился на то, чтобы приобрести профессиональный программатор MSP430-JTAG или MSP430-UIF. Но это не страшно. В качестве программатора можно пока будет использовать Launchpad. Под катом я расскажу как это сделать.
            Читать дальше →
          • Микро БД для конфигурации на микроконтроллере

            Многие разработчики программ для микроконтроллеров сталкивались с проблемой хранения конфигурационных данных. Это могут быть калибровочные коэффициенты измерительного алгоритма или просто последний выбранный пользователем пункт меню. Для микроконтроллера, имеющего возможность записывать в собственную flash-память, решение кажется простым — стираем сегмент и пишем туда все, что нужно. Однако, если необходимо еще и обеспечить отказоустойчивость по отношению к выключению питания в произвольный момент, задача становится нетривиальной, — по сути необходимо реализовать маленькую базу данных с механизмом обеспечения атомарности операций записи и восстановлением после сбоев. Решение этой задачи для микроконтроллеров семейства MSP430 — под катом. По количеству используемых ресурсов оно подходит даже для самых младших членов этого семейства — с размером RAM от 256 байт и falsh-памяти от 8Kb. В качестве бонуса — интерфейс командной строки (через UART) для чтения и записи конфигурации.
            Читать дальше →
            • +24
            • 18,1k
            • 3
          • ObjectManager в API Яндекс.Карт. Как быстро отрисовать 10 000 меток на карте и не затормозить всё вокруг

              Перед разработчикам, которые используют API Яндекс.Карт, довольно часто встаёт задача отобразить много объектов на карте. Действительно много — порядка 10 000. Причем эта задача актуальна и для нас самих — попробуйте поискать аптеки на Яндексе. На первый взгляд кажется: «А в чем собственно проблема? Бери да показывай». Но пока не начнешь этим заниматься, не поймешь, что проблем на самом деле целый вагон.



              Вопросы по большому количеству меток с завидной регулярностью поступают в наш клуб и техподдержку. Кто все эти люди? Кому может быть интересно показать на карте больше 10 меток? В этом посте я подробно рассмотрю весь вагон проблем и расскажу, как в API появились инструменты, помогающие разработчикам оптимально показать большое количество объектов на карте.
              Читать дальше →
            • Time-lapse камера на STM32L

              image

              Согласно википедии Time-lapse или замедленная киносъёмка — это киносъёмка с частотой, меньшей стандартной частоты съемки и проекции в 24 кадра в секунду.
              Гифка time-lapse
              image

              Начав изучать микроконтроллеры STM32 и написав «HellowWorld» с миганием светодиодом, я понял, что для лучшего понимания работы STM32 мне необходимо реализовать что-то более сложное с использованием большего количества периферии микроконтроллера. Так возникла идея создания Time-lapse камеры.
              Читать дальше →
            • STM32 Nucleo. Подключаем TFT LCD на базе чипа ILI9341

              image
              На Хабре уже есть две публикации о платформе STM32 Nucleo и разработке в среде mbed.org. Это «обзор платформы» и «быстрый старт». Я же в данной публикации расскажу, как быстро подключить недорогой модуль TFT LCD на базе чипа ILI9341. Статья будет полезна и любителям Arduino, желающих перейти на более современные и мощные микроконтроллеры, используя уже накопленные знания.
              Читать дальше →
            • Миниатюрный трикоптер с HD 1080 камерой на Kickstarter насобирал почти 1 млн долларов вместо 35 тысяч



                На Хабре один раз упомянули Pocket Drone. Это — миниатюрный (размер меньше 7 дюймов) трикоптер с HD 1080 камерой на борту. Устройство также оснащено модулем беспроводной связи для трансляции получаемого изображения на смартфон оператора. Проект этого трикоптера был выставлен на Kickstarter, с целью получить 35 тысяч долларов США для запуска массового производства этих летательных аппаратов.

                Но получилось немного не так, как планировали разработчики. Проект собрал рекордные 925 тысяч долларов США вместо планируемых 35 тысяч. При этом стоимость трикоптера немаленькая — 500 долларов США.

                Читать дальше →
              • «Умный дом» собственными руками. Часть 4. Организуем веб-интерфейс

                  В прошлой статье мы смогли научить нашу систему «умный дом» распознавать сказанное нами и синтезировать голосовые ответы при помощи Google.
                  Сегодня я хочу рассказать, как организовать доступ к нашей системе через веб-интерфейс.
                  Читать дальше →
                • Брутфорсим EFI с Arduino

                  Приветствую Хабравчан!

                  Думаю, данной темой не многих удивишь — достаточно набрать в поисковике фразу arduino bruteforce и сразу станет понятно, насколько распространен перебор паролей при помощи платформы Arduino. Я же хочу рассказать о том, как это быстро организовать с наименьшим наборов компонентов, без разводки/травления плат и пайки. Сразу оговорюсь, что описанные мною действия носят ознакомительный характер и никому не причинили вреда, ни морального, ни физического… разве что мошенникам.


                  Читать дальше →
                • Подключаем Arduino к счетчику электроэнергии

                    Нет, эта статья не об очередном способе обмануть этот злосчастный прибор. Здесь пойдет речь о том, как с помощью Arduino и среды LabView превратить свой счетчик электроэнергии в средство мониторинга потребляемой мощности или даже в амперметр!


                    Читать дальше →
                  • Немцы изобрели способ печатать гибкие сенсорные дисплеи на обычном принтере

                      Не спешите выбрасывать свои старые струйные принтеры: в 3D на них, конечно, не попечатаешь, но зато можно поэкспериментировать с технологией печати гибких сенсорных дисплеев, представленной на прошедшем в Гонолулу (Гавайи, США) технологическом симпозиуме.



                      Изобретатели из Саарского университета и Института информатики общества Макса Планка (Германия) показали, как можно печатать гибкие тонкие одно- или двухсторонние цветные сенсорные дисплеи практически на любом материале: дерево, мрамор, кожа, металл и, собственно, бумага. В отличие от обычного производства гибких/сенсорных дисплеев, не требуется сложное оборудование: их можно печатать практически в любых условиях, включая домашние, и с помощью самого простого оборудования вроде струйного принтера и стандартных визуальных редакторов.
                      Читать дальше →
                    • Что будет если смешать орехи, Arduino, OpenCV и Delphi. Часть 2

                        В первой части я пытался отбирать орехи без OpenCV, и был не прав.
                        Программируя на Делфи еще с института, начиная с версии 2, хоть и будучи довольно близко знакомым с другими ЯП, я все же начал искать заголовки именно для Делфи. И нашел.
                        Скомпилировав пример EdgeDetect, и увидев результаты, я осознал, что OpenCV инструмент действительно мощный, простой и быстрый. Спасибо хорошим людям за паскалевые заголовочные файлы к C интерфейсу этой замечательной библиотеки, ведь они дали мне возможность писать в среде привычного для меня RAD. Определившись с ЯП, я начал разрабатывать ПО с нуля, в данной статье описаны мои победы и злоключения, и прошу, не судите больно, это только вторая моя статья на хабре.
                        Читать дальше →
                      • Что будет если смешать орехи, Arduino, OpenCV и Delphi. Часть 1

                          Привет, хабровчанин.

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

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

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

                          — К тебе пришли.

                          Я вышел из склепа и познакомился с парнем немного старше меня по имени Андрей. На ладони у него были половинки ядер грецкого ореха, одно темно-коричневое, почти черное, другое — светлое, практически бежевое. Андрей предложил работу, нужно было программно отделять первые от вторых. Это была первая ошибка. Нет, не подумайте плохо, ошибка не в том, что он связался со мной, а в том что принес мне настолько разные примеры. Мне была дана полная свобода в плане платформ и реализаций. Хоть и было предложено использовать камеры, я их отбросил, ввиду, как мне тогда показалось, сложности реализации и ресурсоемкости такого подхода. В качестве сенсора был выбран датчик tcs3200 — преобразователь цвет->частота, такие часто используют в DIY проектах по сортировке чего-нибудь цветного. По даташиту датчик имел хорошие характеристики: имел по 16 фотодиодов каждого цвета(R/G/B) плюс отдельно 16 фотодиодов для белого цвета. Глубина чувствительности каждого канала была заметно выше 8 бит на канал, которые предлагает бытовая вебкамера. Первая версия устройства представляла собой картонную трубу от пищевой фольги с вырезанным окошком для датчика и подсветки. Данные с максимально-возможной скоростью передавались в виндовое приложение. Получалось около 600 замеров в секунду.
                          Читать дальше →
                          • +10
                          • 17,2k
                          • 9
                        • Алгоритмы поиска путей на JavaScript



                            Поиск оптимального маршрута юнита к цели на неизвестной карте — одна из самых сложных задач при разработке игры. К счастью, существует некоторое количество алгоритмов, которые решают эту задачу. Есть и отличная библиотека PathFinding.js с поддержкой 11 таких алгоритмов.
                            Читать дальше →