Search
Write a publication
Pull to refresh
125
0
Дмитрий Андриянов @dima117

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

Send message

Понимание ООП в JavaScript [Часть 1]

Reading time16 min
Views339K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

Одна из таких особенностей — это реализация прототипного наследования. Этот простой концепт является гибким и мощным. Он позволяет сделать наследование и поведение сущностями первого класса, также как и функции являются объектами первого класса в функциональных языках (включая JavaScript).

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →

Четыре паттерна вызова функций в JavaScript

Reading time6 min
Views45K
Язык JavaScript был представлен как язык функционального программирования. Причина заключается в том, что функции в JS не просто разделяют логику на операционные блоки, функции являются объектами первого класса, способными создавать другие объекты. Подобная зависимость от функций одновременно является как сильной стороной, так и настоящим проклятием этого языка. Сильная сторона заключается в том, что язык, обладая подобными особенностями, становится легковесным и быстрым (каким JavaScript изначально и видели его создатели). Однако если вы не знаете что делаете — однозначно ждите беды.

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

Итак, существует четыре пути вызова функций:

  • Вызов метода — Method Invocation
  • Вызов функции — Function Invocation
  • Вызов конструктора — Constructor Invocation
  • Вызов apply и call — Apply And Call Invocation

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

Использование Arduino UNO в качестве программатора

Reading time3 min
Views239K
Появилась у меня идея сделать внешний интерфейс для счетчика воды, чтобы не лазать в подвал для снятия показаний. После некоторых размышлений я остановился на ATTiny2313A(стоит ~80р, а ставить для этого Arduino ценой в ~1000р. мне жаба не дает) + несколько резисторов, кнопок и 7-ми сегментный индикатор. Но остановился перед проблемой — в отличии от Arduino здесь нужен программатор. Поскольку я не сильно увлекаюсь МК, то программаторов у меня как-то не водится. Arduino теоретически можно использовать в этом качестве, но реально я этого никогда не делал.
Пришла пора заняться этим на практике...

Микроэлектроника – мотивации псто

Reading time8 min
Views50K
image

Дисклаймер


Мне нравится заниматься микроэлектроникой. Причем я даже не уверен, что я правильно использую слово «микроэлектроника» — может быть, я занимаюсь совсем не ей. Может быть я занимаюсь схемотехникой. Или программированием. Или программированием микроконтроллеров. Или сборкой электронных устройств. Или еще бог знает чем. Но для себя то, что я делаю, я называю микроэлектроникой – мне лень пойти почитать определение и сопоставить с тем, что я делаю — да простят меня сведущие и, возможно, обидевшиеся.
Несмотря на то, что я занимаюсь микроэлектроникой и уделяю этому занятию достаточно много времени на протяжении почти трех лет – я все еще начинающий с массой больших пробелов в знаниях. Но кое-что у меня получается и я стараюсь разобраться в вопросах, в которых все еще не разбираюсь.
Решил я написать этот пост потому, что вижу с одной стороны большой интерес к «ардуино-постам», трепет при виде мигающего светодиода, а с другой стороны какой-то непонятный мне страх самостоятельно взять и сделать что-то. Ребята, от страхов нам надо избавляться.
Читать дальше →

Сети ZigBee. Зачем и почему?

Reading time7 min
Views201K

Чего «репу» чешешь?
На золотую рыбку другая сеть нужна!


Собственно, я собирался продолжить серию топиков, посвященных работе RTLS – системы позиционирования в реальном времени. А именно, рассказать о беспроводной инфраструктуре системы, основанной на сетях ZigBee. Но вдруг с удивлением обнаружил, что на Хабрахабре нет публикаций, посвященных стандарту IEEE 802.15.4 и спецификации ZigBee. Есть лишь немногочисленные упоминания, связанные с тем или иным приложением. Попытаюсь по мерее сил заполнить этот пробел.

В последнее время все большее распространение и значение приобретают беспроводные сенсорные сети. Сети, которые по своему назначению, параметрам, спецификациям существенно отличаются от сетей связи – WiFi, GSM, LTE и т.п. Среди прочих, используемых в сенсорных сетях, выделяется спецификация ZigBee – наиболее продвинутая надстройка к стандарту IEEE 802.15.4
В этом году исполнилось 10 лет со времени основания ZigBee альянса, а в октябре исполняется 5 лет с момента утверждения действующей в настоящее время спецификации ZigBee Pro Feature Set 2006. Так что публикацию можно считать юбилейной.

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


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

Превращаем роутер в XBee-to-Ethernet Gateway

Reading time5 min
Views41K
Сразу скажу, чего вы в этой статье не найдете:
  • Подробного описания протокола Zigbee
  • Подробного описания трансиверов XBee
  • Теории и практических рекомендаций по построению mesh drop-in сетей
  • Инструкций по работе с Linux
  • Инструкций по перепрошивке роутеров и по работе с прошивками от Олега и Open-WRT

Ворнинг для дизайнеров: в посте есть картинка, лучше не смотрите на нее. От необходимости писать подобный ворнинг для программистов я себя избавил, избежав соблазна опубликовать Python-скрипты и thml-код страницы, показанной на картинке (шаблон генерился в Word).

Предполагается, что вы сами-с-усами, способны найти нужную информацию в интернете и обладаете нужными знаниями. Задача статьи – достаточно крупными штрихами описать способ интеграции XBee и Ethernet/Wi-Fi роутера, привести простенький пример работающей системы, указать направления дальнейшего развития.
Поехали.
Читать дальше →

Литьё по моделям напечатанным на 3D-принтере

Reading time3 min
Views266K

Jeshua Lacock пишет:
Эта страница описывает мою первую и успешную попытку отлить алюминиевые детали напрямую с моделей напечатанных PLA на 3D-принтере. Процесс практически идентичен литью с восковой модели, но вместо выжигания воска я выжигал пластик PLA (био-пластик)
Читать дальше →

Как из болота вытягивать ITшника или об общении в стрессовых ситуациях

Reading time21 min
Views275K

Неприятности случаются… Неожиданно плохой фидбек, проблемы с заказчиком или коллегами, не повысили зарплату, странные баги, внезапный овертайм или закрытие проекта — подобные события запускают цепочку реактивных реакций:

  • Нет, тут есть ошибка -> сами гады -> а может все не так и плохо -> ппц -> ладно, давай выкручиваться

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

  • Как узнать каждое состояние и предугадать следующее?
  • Как помочь выйти себе и собеседнику из цепочки?
  • Что не делать, чтобы не усугубить ситуацию?
Читать дальше →

ИК пульт для ПК и розеток. Часть 2

Reading time15 min
Views66K
Часть 1
Вчера я рассказал, как собрать USB-IRPC на основе Arduino. Зачем? Чтобы показать, как быстро собрать макет и сложности особой тут нет.
Сегодня сделаем все как положено. С самого начала — с принципиальной схемы, PCB, ЛУТ. Кусочек фольгированного стеклотекстолита превратим с помощью кучки деталек в готовое устройство. Разумеется с корпусом, мы же хотим аккуратно, правда?
Вот наша цель:
USB-IRPC Bare Front
«USB-IRPC Bare Front»
USB-IRPC Finished
«USB-IRPC Finished»
делаем USB-IRPC с нуля

Паять просто (комикс)

Reading time1 min
Views65K
Буквально неделю назад ребята из MightyOhm выпустили 8ми страничный комикс об азах пайки. Он понравился мне тем, что не смотря на свой формат и объём, в мелких деталях объясняет основные принципы этого процесса, которые совсем не очевидны для людей ни разу не державших в руках паяльник (как показывает практика, для многих державших тоже).

В общем, потратив сутки я всё там перевёл, постаравшись сохранить оригинальную верстку и стиль.

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

Альтернатива Wiring для Arduino — BASCOM-AVR

Reading time5 min
Views128K
Ну не нравится мне этот ваш Wiring. А еще он почему-то у меня очень ме-е-едленно компилирует, а потом долго думает перед прошивкой.
Я постараюсь рассказать об альтернативной среде для программирования AVR-контроллеров, которая совмещает в себе редактор кода, компилятор, и отладчик-симулятор. К тому же, в последих версиях среда без лишних телодвижений может использоваться с загрузчиком Arduino(т.е. без переделки платы, перепрошивки загрузчика и т.д.)

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

Оптический выключатель со звуковым эффектом на Arduino. Продолжение

Reading time2 min
Views27K
image
В первой статье я собрал и опробовал прототип выключателя на Arduino Nano V.7. Контроллер Arduino использовал как удобное устройство для отладки схемы и кода, но для готового устройства Arduino избыточен и дороговат. Поэтому привожу схему конечного устройства на контроллере Atmega328.
Читать дальше →

Визуальный язык программирования Google Blockly

Reading time1 min
Views56K
Blockly — визуальный язык программирования с веб-интерфейсом. Создание программы осуществляется путём соединения блоков.



Некоторые демки:
Maze — используйте Blockly, чтобы пройти лабиринт.
Code — экспорт программы Blockly в JavaScript, Dart, Python или XML.
Читать дальше →

Шаблонные сайты VS эксклюзивные сайты

Reading time5 min
Views62K


Говоря о шаблонных сайтах, мы нередко слышим, что такие проекты не живут дольше нескольких месяцев. Потенциальные клиенты, услышав слово «шаблонный», не хотят продолжать разговор и делают обиженные лица. Студии, которые делают «шаблонные» решения – часто лишены должного уважения в профессиональном сообществе. И, наконец, сайты, которые дешевле 20 000 руб часто называют, простите, «говносайтами». Вы тоже так думаете? Давайте разберемся насколько это действительно так и восстановим мировой баланс (если он существует).
Читать дальше →

Костыльный программист

Reading time5 min
Views50K
Автор: Джоэль Спольски. Оригинал.

Статья посвящена оверинженирингу и тем, кто предпочитает старые костыльные решения лишь потому, что они очень просты. Перевод под катом.
Читать дальше →

Корки

Reading time1 min
Views5.5K
В декабре прошлого (2011) года, перед Рождеством, словолитнею type|depot (что из Софии в Болгарии) была объявлена бесплатная раздача (на условиях лицензии CC BY-ND 3.0) нового семейства заголовочных шрифтов Corki, состоящего из четырёх начертаний: Corki, Corki Rounded, Corki Tuscan, Corki Rounded Tuscan.

Каждый из этих шрифтов содержит 134 символа: латинский алфавит, кириллицу, восемь символов руки с указующим перстом (четыре направления: вверх, вправо, вниз, влево — и два варианта руки: тыльною стороною или ладонью к читателю), цифры, различные символы (в том числе внутри кружков), различные стрéлки.
[набор символов]
Читать дальше →

Физика Robocode

Reading time5 min
Views14K
Данный материал изначально был подготовлен в качестве раздела статьи “Первые шаги в Robocode”, но я решил вынести его, т.к. он значительно увеличивал размер и без того большой первоначальной статьи и не является базовым и необходимым для осуществления первого шага. Если вы сразу заинтересовались вторым шагом или постепенно доросли до него, то прошу под кат.
Читать дальше →

Как распознать кракозябры?

Reading time1 min
Views433K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.

Moqups — новый сервис для создания макетов UI

Reading time1 min
Views90K
Как характеризуют сервис сами разработчики, Moqups — это «изящное HTML5-приложение для создания макетов, концептов пользовательского интерфейса, прототипов, в зависимости от того, как вы сами это называете».



Для Chrome есть отдельное приложение.

На данный момент доступно более 60 шаблонов элементов, экспорт в PDF и PNG, клавиатурные шорткаты, группировка объектов, привязка к сетке и проч.

Проект находится в стадии активной разработки и открыт для критики, помощи и предложений.

Information

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