Search
Write a publication
Pull to refresh
28
0.2
Михаил @Flammar

Java (+Javascript) fullstack developer

Send message

Перестаньте писать классы

Reading time9 min
Views187K
Фото Джэка Дидриха из профиля на G+ Признак того, что объект не должен быть классом — если в нём всего 2 метода, и один из них — инициализация, __init__. Каждый раз видя это, подумайте: «наверное, мне нужна просто одна функция».

Каждый раз когда из написанного класса вы создаёте всего один экземпляр, используете только раз и тут же выбрасываете, следует думать: «ой, надо бы это отрефакторить! Можно сделать проще, намного проще!»

Перевод доклада Джэка Дидриха, одного из ключевых разработчиков языка Питон. Доклад прозвучал 9 марта 2012 на конференции PyCon US.
Читать дальше →

SugarJS — Синтаксический сахар для JavaScript

Reading time4 min
Views22K


Что такое SugarJS?


SugarJS — это open source (лицензия — MIT) библиотека Javascript, который расширяет нативные объекты полезными методами. Она разработана, чтобы быть интуитивным, ненавязчивым инструментом, повышающим выразительность кода, который позволял бы делать больше с меньшим количеством кода и меньше задумываясь над рутиной.

На самом деле у них очень информативный и простой сайт — где все уже хорошо написано.
Я просто постараюсь обозначить основные моменты.

Кратко...

  • Расширяет нативные элементы Javascript полезными, интуитивными методами.
  • Прост для понимания и в использовании.
  • Метод SugarJS не используется при наличии метода в родной реализации браузера.
  • Имеет систему тестирования, имеющую огромный набор тестов.
  • Расширяет возможности работы с датой и временем, обеспечивает их форматирование на нескольких языках (русский есть).
  • Отлично ладит с другими фреймворками и сторонним кодом.
  • Модульность, вы можете включать только нужные пакеты.
  • Полностью совместимый ECMAScript.
  • Заявлена поддержка всех основных браузеров, включая мобильные.
  • Поддерживает Node.js.
  • Имеет хорошую и удобную документацию.


Заинтересовало? Добро пожаловать под кат.
Читать дальше →

Ectognathus, робот-хексапод на микро-сервах своими руками

Reading time7 min
Views50K
Добрый день, уважаемые хабровчане. Представляю вашему вниманию статью, в которой я описываю процесс проектирования и создания шестиногого робота полностью с нуля. Вы не найдете здесь надоевших всем ардуин и готовых наборов «хексапод за 5 минут». Из-за большого объема информации, статья будет состоять из нескольких частей, описывающих разные этапы проектирования и освещающих грабли, на которые я наступал в процессе оного.
Итак, встречайте – Ectognathus.
Читать дальше →

Жизнь без объектов

Reading time5 min
Views21K
(Перевод)

Последние несколько лет я провел в изучении и экспериментах со многими языками программирования. В частности, я начал использовать Scala как основной язык, стараюсь использовать функциональный стиль везде где это возможно. Меня также весьма заинтересовал Haskell (чистый функциональный язык) и Clojure (современный диалект Лиспа).

Таким образом, я постепенно отказываюсь от объектно-ориентированной парадигмы, несмотря на то, что использовал в основном её последние 17 лет моей профессиональной деятельности. У меня появляется чувство, что объекты это то, что мешает нам писать лапидарный, структурированный и повторно используемый код.
Читать дальше →

Как два программиста хлеб пекли

Reading time5 min
Views263K


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

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →

GTD. Мифы, ошибки, заблуждения

Reading time5 min
Views19K
GTD — заморское слово, чуждое русскому языку и мировоззрению. Нам сложно понять, зачем русской душе, привыкшей к широте и свободе, понадобилась эта заморская метода «для дрессировки офисного планктона». Почему нельзя просто делать дела без всех этих новомодных методик? Ведь очевидно, что время, которое мы будем тратить на приведение дел в порядок, организуя их в некую систему — это время потраченное зря. За то время, пока мы разбирали и раскладывали бумажки с надписями «сделать то-то к такому числу», можно было взять и сделать много чего. Надо просто взять себя в руки и начать делать дела, вместо разговоров о них!
Читать дальше →

Как не стать бедным IT-шником из-за ошибки перевода

Reading time3 min
Views205K
Голая баба. Шутка
Это пост написан по следам постов Что нужно делать смолоду или как стать богатым айтишником и Как стать богатым айтишником — продолжение от другого автора.
Не подумайте, что я собираюсь учить Вас тому, как стать богатым. Я просто расскажу одну историю, связанную с идеями, которые авторы высказали в этих постах, а выводы Вы сделаете сами. Кому лень читать, то может увидеть смысл всей моей истории на рисунке выше.
Читать дальше →

Док-станция для ноутбука из LEGO

Reading time2 min
Views87K
Мой первый ноутбук грел получше обогревателя, потому что пытался выдуть горячий воздух прямо в стол, до которого была от силы пара миллиметров. На специальные подставки денег было жалко, зато в шкафу пылился несправедливо заброшенный ящик с кучей деталек LEGO Technic, из которых на скорую руку была собрана рамка с четырьмя колесами вместо ножек по углам.

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

Потом у меня появился внешний жесткий диск для бэкапов, которому было мало питания от одного USB-порта, а четвертого свободного в ноутбуке не было. Эта проблема решилась USB-хабом с внешним питанием, но проводной ад на рабочем месте стал невыносим. Тогда я решил взяться за дело посерьезнее и достал ящик второй раз.

Конструкция получилось настолько удачной, что за пять лет с небольшими доработками объездила со мной уже четыре квартиры и носит на себе уже третий ноутбук. Фото и краткое описание под катом.
Читать дальше →

DIY цифровой тахометр на AVR ATtiny2313, КР514ИД2 и оптопаре

Reading time6 min
Views80K

DIY цифровой тахометр на AVR ATtiny2313, КР514ИД2 и оптопаре


Добрый день.
Выношу на Ваше рассмотрение схему простенького цифрового тахометра на AVR ATtiny2313, КР514ИД2, и оптопаре спроектированного мною.
Сразу оговорюсь: аналогичных схем в интернете много. У каждой реализации свои плюсы и минусы. Возможно, кому-то мой вариант подойдет больше.

Начну, пожалуй, с тех. задания.
Задача: нужно сделать цифровой тахометр для контроля оборотов электрического двигателя станка.
Вводные условия: Есть готовый реперный диск на 20 отверстий от лазерного принтера. В наличии много оптопар от сломанных принтеров. Средние (рабочие) обороты 4 000-5 000 оборотов/минуту. Погрешность отображаемых результатов не должна превышать ± 100 оборотов.
Читать дальше →

Что нужно делать смолоду или как стать богатым айтишником

Reading time7 min
Views631K

Статья написана после прочтения статьи Копи деньги смолоду или пара утверждений, легко проверяемых в Excel.

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

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

Какой Java поток нагружает мой процессор

Reading time3 min
Views28K
Что Вы делаете, когда Ваше Java приложение потребляет 100% ЦП? Оказывается Вы легко можете найти проблемные потоки, используя встроенные Unix и JDK утилиты. Никакие инструменты профилирования не потребуются.
С целью тестирования мы будем использовать простую программу:
Читать дальше →

Компактное складное рабочее место для ноутбука «своими руками»

Reading time4 min
Views215K
В этой статье-инструкции я хочу рассказать, об одном из вариантов создания рабочего места дома, когда удобное место хочется, а для стола свободного пространства нет (или не хочется его занимать).



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

Этот вариант в первую очередь будет инетресен людям, работающим дома (полностью или частично) и не имеющим нормального рабочего места или желающим увеличить свободное пространство в комнате заменив громоздкое старое рабочее место на такое компактное
Читать дальше →

Реальная оценка или почему наступают дедлайны?

Reading time3 min
Views64K
image

Как опытный менеджер проектов, я часто сталкивался с заявленными программистами сроками выполнения задачи, умножал их на Пи и брал следующий по счету порядок. Так 1 день превращался в 3.14 недель. Я познал на собственной шкуре, что программисты — никудышные оценщики.

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

Простой wifi бот для мониторинга помещений или «кухонное» роботостроение

Reading time7 min
Views264K

Вступление.


Сегодня у каждого из нас дома присутствует выделенная линия с весьма «толстым» каналом. Так же у большинства есть wifi роутер, и опять таки большинство из нас не заботится о его отключении когда уходим из дома. И действительно зачем? Протоколы защиты wifi весьма надежны, потребление роутера ничтожно. Следовательно ваш дом часто или всегда on-line. Но что это нам дает? Торентокачалки, личные разнообразные сервера и т.д.

Особо продвинутые из нас имеют умный дом с разнообразными «плюшками» и дистанционным мониторингом посредством интернета. Это правильное, но дорогое решение. Но все это есть смысл устанавливать только в своем жилье. В случае со съемным это абсурд.

Тем не менее обострения паранойи, гиперответственность или схожие факторы (вспомним классическую ситуацию – «А выключил ли я утюг?») создают нам определенный дискомфорт когда мы оставляем свое жилище. Особенно на длительный срок. Возникает вопрос – как так получается что квартира все время on-line, а я ничего не вижу и не контролирую. Странно.

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

How it's assembed — Роботизированный аппарат. Step one

Reading time4 min
Views37K
Собрать робота, заказав готовый конструктор на каком – нибудь сайте дело не хитрое. Соединил разъемы по инструкции, скрутил винты и гайки, минимум пайки, чудо устройство готово!
Image Hosted by ImageShack.us
Однако мы не ищем легких путей, и для того чтобы пройти все круги ада, поняв, как же работает вся электроника, взаимодействие модулей, движение механики; что еще коварнее – рассчитать все это средствами ТАУ, идентификации, термеха, это верх мастерства. Почему? Да потому что при очередной неисправности Вы не забросите своего питомца на верхнюю полку, а как минимум попытаетесь разобраться, а максимум – исправите эту неисправность. Но, что еще интересней Вы сможете сделать апгрейд вашего киборга до действительно стоящего аппарата.
Читать дальше →

«Умный дом» собственными руками v2

Reading time5 min
Views89K
Добрый день, уважаемый %habrausername%!

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

Нетипичная история «домового» провайдера

Reading time4 min
Views78K
История берет свое начало в далёком 2004 году, когда доступный доступ в интернет в городах с населением меньше миллиона был редкостью. В те времена были очень популярны «домовые» сети, в которых существовали «провайдеры» – обычно студенты, установившие спутниковую «тарелку» и настроившие сервер для раздачи трафика. Я тоже захотел в этом поучаствовать…

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

JavaScript — полезные материалы

Reading time2 min
Views79K
Хочу поделиться набором ссылок на нексолько полезных, интересных и, возможно, не самых известных материалов по JavaScript. Из них вы узнаете немного больше об истории появления языка, о его настоящем, тонкостях реализации в различных браузерах, и о будущем развития стандарта ECMAScript. О различных способах наследования в том числе об эмуляции «классического» ООП, множественном наследовании и миксинах. О функциональном стиле программирования в JavaScript: чистые функции, map, reduce, частичное применение и композиции функций. И, наконец, что если бы Хемингуэй писал на JavaScript?
Читать дальше →

Прошиваем AVR вручную

Reading time6 min
Views216K

Картинка для привлечения внимания — xkcd

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

Радуясь, что еще не забыли курс ассемблера, вы кое-как написали программу палочкой на песке. Среди уцелевших вещей каким-то чудом оказалась распечатка документации на контроллер (хорошо, что вы еще не успели пустить её на растопку!), и программу удалось перевести в машинные коды. Осталась самая ерунда — прошить её в контроллер. Но в радиусе 500 километров нет ни одного программатора, не говоря уже о компьютерах. У вас только источник питания (батарея из картошки кокосов) и пара кусков провода.

Как же прошить МК фактически голыми руками?
Читать дальше →

Information

Rating
4,812-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity