Как стать автором
Обновить
125
0
Дмитрий Андриянов @dima117

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

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

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

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

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

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

Замыкания в JavaScript

Время на прочтение5 мин
Количество просмотров272K
Если вы используете JavaScript, но при этом так до конца и не разобрались, что же это за чудная штука такая — замыкания, и зачем она нужна — эта статья для вас.

Читать дальше →
Всего голосов 141: ↑130 и ↓11+119
Комментарии86

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

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

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

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

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

Читать дальше →
Всего голосов 63: ↑43 и ↓20+23
Комментарии51

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

Время на прочтение3 мин
Количество просмотров237K
Появилась у меня идея сделать внешний интерфейс для счетчика воды, чтобы не лазать в подвал для снятия показаний. После некоторых размышлений я остановился на ATTiny2313A(стоит ~80р, а ставить для этого Arduino ценой в ~1000р. мне жаба не дает) + несколько резисторов, кнопок и 7-ми сегментный индикатор. Но остановился перед проблемой — в отличии от Arduino здесь нужен программатор. Поскольку я не сильно увлекаюсь МК, то программаторов у меня как-то не водится. Arduino теоретически можно использовать в этом качестве, но реально я этого никогда не делал.
Пришла пора заняться этим на практике...
Всего голосов 36: ↑30 и ↓6+24
Комментарии15

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

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

Дисклаймер


Мне нравится заниматься микроэлектроникой. Причем я даже не уверен, что я правильно использую слово «микроэлектроника» — может быть, я занимаюсь совсем не ей. Может быть я занимаюсь схемотехникой. Или программированием. Или программированием микроконтроллеров. Или сборкой электронных устройств. Или еще бог знает чем. Но для себя то, что я делаю, я называю микроэлектроникой – мне лень пойти почитать определение и сопоставить с тем, что я делаю — да простят меня сведущие и, возможно, обидевшиеся.
Несмотря на то, что я занимаюсь микроэлектроникой и уделяю этому занятию достаточно много времени на протяжении почти трех лет – я все еще начинающий с массой больших пробелов в знаниях. Но кое-что у меня получается и я стараюсь разобраться в вопросах, в которых все еще не разбираюсь.
Решил я написать этот пост потому, что вижу с одной стороны большой интерес к «ардуино-постам», трепет при виде мигающего светодиода, а с другой стороны какой-то непонятный мне страх самостоятельно взять и сделать что-то. Ребята, от страхов нам надо избавляться.
Читать дальше →
Всего голосов 208: ↑192 и ↓16+176
Комментарии92

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

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

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


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

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

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


Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии32

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

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

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

Предполагается, что вы сами-с-усами, способны найти нужную информацию в интернете и обладаете нужными знаниями. Задача статьи – достаточно крупными штрихами описать способ интеграции XBee и Ethernet/Wi-Fi роутера, привести простенький пример работающей системы, указать направления дальнейшего развития.
Поехали.
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии15

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

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

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

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

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

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

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

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

  • Как узнать каждое состояние и предугадать следующее?
  • Как помочь выйти себе и собеседнику из цепочки?
  • Что не делать, чтобы не усугубить ситуацию?
Читать дальше →
Всего голосов 199: ↑186 и ↓13+173
Комментарии88

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

Время на прочтение15 мин
Количество просмотров66K
Часть 1
Вчера я рассказал, как собрать USB-IRPC на основе Arduino. Зачем? Чтобы показать, как быстро собрать макет и сложности особой тут нет.
Сегодня сделаем все как положено. С самого начала — с принципиальной схемы, PCB, ЛУТ. Кусочек фольгированного стеклотекстолита превратим с помощью кучки деталек в готовое устройство. Разумеется с корпусом, мы же хотим аккуратно, правда?
Вот наша цель:
USB-IRPC Bare Front
«USB-IRPC Bare Front»
USB-IRPC Finished
«USB-IRPC Finished»
делаем USB-IRPC с нуля
Всего голосов 46: ↑45 и ↓1+44
Комментарии5

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

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

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

Если вы давно хотели научиться паять сами, или планируете научить этому своих детей, то все необходимые ссылки под катом.
Читать дальше →
Всего голосов 230: ↑223 и ↓7+216
Комментарии91

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

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

Читать дальше →
Всего голосов 35: ↑28 и ↓7+21
Комментарии75

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

Время на прочтение2 мин
Количество просмотров27K
image
В первой статье я собрал и опробовал прототип выключателя на Arduino Nano V.7. Контроллер Arduino использовал как удобное устройство для отладки схемы и кода, но для готового устройства Arduino избыточен и дороговат. Поэтому привожу схему конечного устройства на контроллере Atmega328.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии37

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

Время на прочтение1 мин
Количество просмотров54K
Blockly — визуальный язык программирования с веб-интерфейсом. Создание программы осуществляется путём соединения блоков.



Некоторые демки:
Maze — используйте Blockly, чтобы пройти лабиринт.
Code — экспорт программы Blockly в JavaScript, Dart, Python или XML.
Читать дальше →
Всего голосов 132: ↑116 и ↓16+100
Комментарии152

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

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


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

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

Время на прочтение5 мин
Количество просмотров50K
Автор: Джоэль Спольски. Оригинал.

Статья посвящена оверинженирингу и тем, кто предпочитает старые костыльные решения лишь потому, что они очень просты. Перевод под катом.
Читать дальше →
Всего голосов 154: ↑139 и ↓15+124
Комментарии198

Корки

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

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

Физика Robocode

Время на прочтение5 мин
Количество просмотров14K
Данный материал изначально был подготовлен в качестве раздела статьи “Первые шаги в Robocode”, но я решил вынести его, т.к. он значительно увеличивал размер и без того большой первоначальной статьи и не является базовым и необходимым для осуществления первого шага. Если вы сразу заинтересовались вторым шагом или постепенно доросли до него, то прошу под кат.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии2

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

Время на прочтение1 мин
Количество просмотров427K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


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

Как всегда — кликабельно. Исходник в .docx: здесь.
Всего голосов 429: ↑418 и ↓11+407
Комментарии64

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

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



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

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

Проект находится в стадии активной разработки и открыт для критики, помощи и предложений.
Всего голосов 137: ↑130 и ↓7+123
Комментарии95

Информация

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