Много времени прошло с момента появления AngularJs (в масштабах веб-технологий конечно). Сейчас в интернетах есть огромное количество постов восхваляющих этот фреймворк до небес, что это манна небесная не иначе, а критики не так уж и много как он того заслуживает. Но такие статьи уже потихоньку начинают появляться, и меня это радует, надеюсь индустрия переболеет ангуляром так же, как переболела MooTools, Prototype, %какой-нибудь новый язык под JVM%, %другая-супер-революционная-технология%. Не знаю почему, но в IT-области такие революционные технологии, которые поднимают шум, а потом пропадают, появляются довольно часто. Хороший разработчик должен уметь отличать очередную модную технологию, от работающего инструмента. И для этого очень важно критически смотреть на вещи. Моя статья — это компиляция самых весомых выводов из других статей, и моих личных умозаключений. Ангуляр создает хороший вау-эффект, когда видишь его впервые: «ух ты, я написал ng-repeat, и реализовал эту логику одними тегами и все само обновляется!», но как только приходится реализовывать реальные приложения, а не очередной TODO-лист, то все становиться очень печально. Сразу хочу сказать, что фреймворк я знаю хорошо, даже больше чем мне хотелось бы его знать, я программировал на нем в течении 2 лет. И для следующего проекта я его точно не выберу, и это хорошо, все мы учимся на ошибках. Так что же не так с ангуляром? Тут нет однозначного ответа, слишком много разных недостатков, которые создают такой облик фреймворку. Если одним словом – непродуманная архитектура. Под катом я привожу конкретику, так что устраивайтесь поудобнее. ДА НАЧНЕТСЯ ХОЛЛИ ВАР!
Пользователь
Jump Start в PowerShell (часть I)
5 мин
250KТуториал
Только автоматизация. Только PowerShell.
В качестве хобби и при наличии времени преподаю студентам в УКИТ (бывший Московский государственный колледж информационных технологий). На данный момент у меня мало времени, чтобы уделить его группе студентов, зато вполне достаточно, чтобы подготовить пост здесь, на Хабре.
Я работаю системным администратором в крупной не ИТ-компании с большой завязкой на ИТ ресурсы. По роду деятельности представляется решать большое количество однотипных задач по обслуживанию пользователей.
С языком PowerShell познакомился около двух лет назад, но вплотную занялся им лишь спустя год, не осознав поначалу его огромных возможностей. В статье, прежде всего, я буду ориентироваться на тех, кто хочет начать работать с PowerShell, но пока не доверяет ему или не знает, с какой стороны подступиться к этому чуду.
Внимание: PowerShell вызывает привыкание.
Предисловие
В качестве хобби и при наличии времени преподаю студентам в УКИТ (бывший Московский государственный колледж информационных технологий). На данный момент у меня мало времени, чтобы уделить его группе студентов, зато вполне достаточно, чтобы подготовить пост здесь, на Хабре.
Я работаю системным администратором в крупной не ИТ-компании с большой завязкой на ИТ ресурсы. По роду деятельности представляется решать большое количество однотипных задач по обслуживанию пользователей.
С языком PowerShell познакомился около двух лет назад, но вплотную занялся им лишь спустя год, не осознав поначалу его огромных возможностей. В статье, прежде всего, я буду ориентироваться на тех, кто хочет начать работать с PowerShell, но пока не доверяет ему или не знает, с какой стороны подступиться к этому чуду.
Внимание: PowerShell вызывает привыкание.
+28
Несколько интересностей и полезностей для веб-разработчика #19
4 мин
54KДоброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.
Библиотека позволяет создавать великолепные многоуровневые/масштабируемые кроссплатформенные графики и диаграммы с моментальным перерендерингом при пользовательском взаимодействии. За процесс визуализации отвечает знаменитая d3.js, а за анализ многомерных наборов данных crossfilter.js. Кстати кроссфильтр — проект небезызвестной компании Square.
DC.js
Библиотека позволяет создавать великолепные многоуровневые/масштабируемые кроссплатформенные графики и диаграммы с моментальным перерендерингом при пользовательском взаимодействии. За процесс визуализации отвечает знаменитая d3.js, а за анализ многомерных наборов данных crossfilter.js. Кстати кроссфильтр — проект небезызвестной компании Square.
chart.renderlet(function(chart){
// smooth the rendering through event throttling
dc.events.trigger(function(){
// focus some other chart to the range selected by user on this chart
someOtherChart.focus(chart.filter());
});
})
+195
Защита подъезда методом организации разумного видеонаблюдения без консьержа
13 мин
259K Так получилось, что какой бы ни был аккуратный микрорайон, он всегда с чем-нибудь соседствует, плюс всегда есть праздношатающиеся, непраздношатающиеся и «этождети». Это если забыть про наркоманов, целенаправленных воров и разбойников. Твой дом — твоя крепость. Подъезд твоего дома — тоже твой дом. (Да, этот пункт многие не понимают, но учиться никогда не поздно). Классические методы защиты подъезда — установка укреплённых дверей; установка домофона; инсталляция консьержки; организация видеонаблюдения над входами.
Вот только двери легко открываются при малейшей ошибке их производства, многие домофоны подвержены ключам-«вездеходам», консьержки часто спят и ничего не делают, а видеонаблюдение за которым никто не наблюдает превращается в бесполезную трату денег. В результате, почти все попытки улучшить общественную ситуацию зарезаются соседями методом слонёнка: «а нафига они нам нужны».
Однако, если включить мозги и подумать, на самом деле можно весьма небольшими вложениями получить очень эффективный результат.
Вот только двери легко открываются при малейшей ошибке их производства, многие домофоны подвержены ключам-«вездеходам», консьержки часто спят и ничего не делают, а видеонаблюдение за которым никто не наблюдает превращается в бесполезную трату денег. В результате, почти все попытки улучшить общественную ситуацию зарезаются соседями методом слонёнка: «а нафига они нам нужны».
Однако, если включить мозги и подумать, на самом деле можно весьма небольшими вложениями получить очень эффективный результат.
+290
Классы и фабрики. Как разобрать и собрать объект с наследованием на прототипах
6 мин
20KПривет, Хабра!
При разработке игр на JavaScript часто возникает необходимость создавать множество объектов. О том, как правильно это сделать и не утонуть в коде, я рассказывал, примерно — месяц назад на Frontend Dev Conf в Минске. Возможно, доклад будет интересен тем, кто не был на конференции и сталкивался с проблемой создания множества объектов, либо является разработчиком HTML5 игр.
Под катом текст с картинками.
При разработке игр на JavaScript часто возникает необходимость создавать множество объектов. О том, как правильно это сделать и не утонуть в коде, я рассказывал, примерно — месяц назад на Frontend Dev Conf в Минске. Возможно, доклад будет интересен тем, кто не был на конференции и сталкивался с проблемой создания множества объектов, либо является разработчиком HTML5 игр.
Под катом текст с картинками.
+29
Полезные и странные: 8 удивительных идей из мира интернета вещей (+1)
4 мин
25KВсе мы любим клевые и необычные гаджеты. Но порой в своем стремлении придумать что-нибудь особенное их изобретатели заходят уж слишком далеко. На создателей интернет-стартапов уже давно сыплются обвинения в том, что они нередко придумывают нечто нелепое и совершенно людям не нужное. Рынок интернета вещей — на пороге бума, и, похоже, его участников ждет та же судьба.
Как вам, например, идея получать током за пропущенную тренировку или читать книги, имитирующие ощущения героя? Хотя, конечно, не все идеи, которые поначалу кажутся странными, не имеют права на существование. Кто знает, чем это все закончится?
Мы решили собрать в одном посте самые необычные, смелые и зачастую откровенно странные разработки из мира интернета вещей. Если есть что добавить — добро пожаловать в комментарии.
Есть множество способов мотивировать человека. И если большинство фитнес-браслетов используют приятные стимулы, то Pavlok Habit Forming Device фокусируется не на прянике, а на кнуте. Серьезно, девайс будет бить владельца небольшим разрядом тока, если тот начнет отлынивать от поставленных перед собой спорт-задач.
Как вам, например, идея получать током за пропущенную тренировку или читать книги, имитирующие ощущения героя? Хотя, конечно, не все идеи, которые поначалу кажутся странными, не имеют права на существование. Кто знает, чем это все закончится?
Мы решили собрать в одном посте самые необычные, смелые и зачастую откровенно странные разработки из мира интернета вещей. Если есть что добавить — добро пожаловать в комментарии.
1. БРАСЛЕТ ДЛЯ МАЗОХИСТОВ
Есть множество способов мотивировать человека. И если большинство фитнес-браслетов используют приятные стимулы, то Pavlok Habit Forming Device фокусируется не на прянике, а на кнуте. Серьезно, девайс будет бить владельца небольшим разрядом тока, если тот начнет отлынивать от поставленных перед собой спорт-задач.
+2
Геймификация или игрофикация
4 мин
16KГеймификация: вовлечение пользователей и сотрудников или как повысить лояльность
Добавление игровых элементов в Вашем приложении или на Вашем сайте – иначе известное как ГЕЙМИФИКАЦИЯ или ИГРОФИКАЦИЯ – поможет не только сделать продвигаемый ресурс более привлекательным, но и увеличить количество посещений и количество пользователей.
Геймификация за последние несколько лет стала неотъемлемой частью веб-дизайна.
-1
Поиграем в эволюцию? Генетические алгоритмы в скринсейвере
10 мин
43KПоследний месяц в армии. Постепенно освобождается время для разных интересных проектов. Остается только определиться, чем именно занять мозги. Закончил читать «Эгоистичный ген» Ричарда Докинза и идея была сформулирована – хочу сделать визуализацию, использующую принципы эволюции.
Рисунок 1. Популяция бактерий перестраивает среду под свои нужды.
Итак, вперед!
Рисунок 1. Популяция бактерий перестраивает среду под свои нужды.
Итак, вперед!
+77
Создание аудиоплагинов, часть 1
9 мин
87KТуториал
Все посты серии:
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг
Этот пост — первый из серии переводов руководства Мартина Финке о написании собственных аудиоплагинов.
Отличительной особенностью этого материала является отсутствие зависимости от формата плагина и платформы его использования. Внимание сфокусировано на общей структуре аудиоплагина. Затем алгоритмы оборачиваются в слой абстракции для сборки в форматы VST, VST3, AU, RTAS, AAX или в отдельное приложение.
Сам Мартин больше работает на Маке, но руководство содержит и все необходимые шаги для разработки на Windows.
Часть 1. Введение и настройка
Часть 2. Изучение кода
Часть 3. VST и AU
Часть 4. Цифровой дисторшн
Часть 5. Пресеты и GUI
Часть 6. Синтез сигналов
Часть 7. Получение MIDI сообщений
Часть 8. Виртуальная клавиатура
Часть 9. Огибающие
Часть 10. Доработка GUI
Часть 11. Фильтр
Часть 12. Низкочастотный осциллятор
Часть 13. Редизайн
Часть 14. Полифония 1
Часть 15. Полифония 2
Часть 16. Антиалиасинг
Этот пост — первый из серии переводов руководства Мартина Финке о написании собственных аудиоплагинов.
Отличительной особенностью этого материала является отсутствие зависимости от формата плагина и платформы его использования. Внимание сфокусировано на общей структуре аудиоплагина. Затем алгоритмы оборачиваются в слой абстракции для сборки в форматы VST, VST3, AU, RTAS, AAX или в отдельное приложение.
Сам Мартин больше работает на Маке, но руководство содержит и все необходимые шаги для разработки на Windows.
+23
Зд-принтер: Взгляд со стороны головы
15 мин
90KОбщий взгляд — как их использовать, родные аналогии. Скромная реальность. Только FDM, только домашний, живьём — зато изнутри и подробно. Хотэнд? В разрезе, с зонами и графиком температур. Достоинства и недостатки, свойства различных решений при конструировании печатающих головок. Особенности печати триммерной леской, и опыты по получению таблиц оптимальных настроек скоростной печати капроном(нейлоном). Выводы из них. Об организации хорошей подачи капронового прутка в экструдере. Всё очень захватывающе и драматично.
Про 3Д-принтеры сейчас пишут много, пишут с восторгом, описывается множество моделей и технологий, а так же множество их умений. И вот, стою я перед Вами, простой русский мужик из Литвы (С), с 3Д-принтером. Конечно, собрал его сам. Не из набора — полтора года назад наборов было мало, и они были дороги. Всё планировал и выбирал сам, ориентируясь исключительно на Интернет. Но я не об этом хочу рассказать, я хочу рассказать о том, что было потом — после его постройки, и думается вопросы — Зачем это? — Что он может делать? — Почему его покупают? — задают себе многие люди увлечённые техникой.
Давайте по-порядку: сначала я его строил. Это было очень интересно, в том плане, что приходилось постоянно решать множество технических вопросов, находить причины нештатной работы — путём вычисления, зачастую по косвенным признакам. Этакая игра в технические загадки. Заработало. Налаживал. Увидел порядочно возможных усовершенствований. Сделал несколько — с большим удовольствием. Потом разработал реально удобный узел концевого датчика для принтера. Его я даже один раз продал. Ну, комплект датчиков — на этом не разбогатеешь, но зато, какое удовольствие я получил от искренней благодарности покупателя. Повозившись с печатающей головкой — убедился, что она, несмотря на хорошее качество изготовления ( брэндовая MK IV) имеет и ряд недостатков. Да и была она только одна — а покупать ещё, дорого. Разработал свою — будете смеяться, с первого раза что-то получилось, хоть и не идеально. Правда, я ведь не так слепил, а внимательно изучил, что имелось, почитал, что пишут, и только тогда сделал. Потом стал разбираться. Ставить опыты. Был долгий перерыв — разочарование и депрессия, но это не связано с принтерами, так, соломинка подломившая спину слону. Сейчас у меня 4 головки, разных диаметров и принтер печатает в три раза быстрее, чем считается нормальным и печатает слоем 150 микрон. Причём печатает не дорогим импортным филаментом, а дешёвой леской для триммеров. Получается очень-очень прочно, хотя и не без хитростей.
Про 3Д-принтеры сейчас пишут много, пишут с восторгом, описывается множество моделей и технологий, а так же множество их умений. И вот, стою я перед Вами, простой русский мужик из Литвы (С), с 3Д-принтером. Конечно, собрал его сам. Не из набора — полтора года назад наборов было мало, и они были дороги. Всё планировал и выбирал сам, ориентируясь исключительно на Интернет. Но я не об этом хочу рассказать, я хочу рассказать о том, что было потом — после его постройки, и думается вопросы — Зачем это? — Что он может делать? — Почему его покупают? — задают себе многие люди увлечённые техникой.
Давайте по-порядку: сначала я его строил. Это было очень интересно, в том плане, что приходилось постоянно решать множество технических вопросов, находить причины нештатной работы — путём вычисления, зачастую по косвенным признакам. Этакая игра в технические загадки. Заработало. Налаживал. Увидел порядочно возможных усовершенствований. Сделал несколько — с большим удовольствием. Потом разработал реально удобный узел концевого датчика для принтера. Его я даже один раз продал. Ну, комплект датчиков — на этом не разбогатеешь, но зато, какое удовольствие я получил от искренней благодарности покупателя. Повозившись с печатающей головкой — убедился, что она, несмотря на хорошее качество изготовления ( брэндовая MK IV) имеет и ряд недостатков. Да и была она только одна — а покупать ещё, дорого. Разработал свою — будете смеяться, с первого раза что-то получилось, хоть и не идеально. Правда, я ведь не так слепил, а внимательно изучил, что имелось, почитал, что пишут, и только тогда сделал. Потом стал разбираться. Ставить опыты. Был долгий перерыв — разочарование и депрессия, но это не связано с принтерами, так, соломинка подломившая спину слону. Сейчас у меня 4 головки, разных диаметров и принтер печатает в три раза быстрее, чем считается нормальным и печатает слоем 150 микрон. Причём печатает не дорогим импортным филаментом, а дешёвой леской для триммеров. Получается очень-очень прочно, хотя и не без хитростей.
+81
Управление программными проектами — наизнанку
7 мин
22KСпросите у водителя рейсового междугороднего автобуса: «сколько часов добираться в пункт назначения?». В большинстве случаев — услышите тишину, а если не повезет — получите испепеляющий взгляд и привкус бензина будет преследовать вас пару дней как минимум: потому что неизвестно никому, что случится за поворотом :-) То же самое происходит ежедневно в программных проектах — и в ответ на «когда» нужно либо промолчать, либо что-то красиво и уверенно соврать.
Разработка софта (полет на Марс, строительство небоскреба новой спиралевидной формы в Дубае) — это, положив руку на сердце, настолько сложный и полный рисков процесс, что, не имея формально четкого технического задания (в стиле строгого доказательства формулы корней квадратного уравнения через вывод из бинома Ньютона) — можно лишь задекларировать религиозные постулаты (фичи) и сроки (пророчества) и заставить себя и других поверить в них (во веки веков аминь). Поэтому вы обречены каждый раз шагать в туман с молитвенником и компасом — каждый раз надеясь на удачу и… надежных людей в команде.
Разработка софта (полет на Марс, строительство небоскреба новой спиралевидной формы в Дубае) — это, положив руку на сердце, настолько сложный и полный рисков процесс, что, не имея формально четкого технического задания (в стиле строгого доказательства формулы корней квадратного уравнения через вывод из бинома Ньютона) — можно лишь задекларировать религиозные постулаты (фичи) и сроки (пророчества) и заставить себя и других поверить в них (во веки веков аминь). Поэтому вы обречены каждый раз шагать в туман с молитвенником и компасом — каждый раз надеясь на удачу и… надежных людей в команде.
+15
Разработка коммерческого электронного устройства с нуля
6 мин
84KПриветствую!
Хочу поделиться собственным опытом разработки электронного устройства. Сначала расскажу небольшую предысторию, чтобы было понятно, зачем это, собственно, нужно было мне.
Изначально мы занимались разработкой программного обеспечения для чип-тюнинга. Одна из основных задач которого — считать прошивку из ЭБУ (электронный блок управления двигателем) и записать ее обратно. Понятное дело, что для этих целей нужно каким-то образом связать компьютер и ЭБУ при помощи адаптера. Когда раньше подавляющее количество ЭБУ использовало простейший способ приема-передачи данных, достаточно было использовать простейший адаптер на транзисторах или специализированной микросхеме. Однако на сегодняшний день большинство автомобилей для «общения» своих компонентов со внешней средой используют CAN шину. Адаптер для CAN шины на транзисторах уже не соберешь, и тут однозначно нужен процессор, который будет управлять всем по определенной программе.
Так возникла первая проблема — как побороть CAN шину. Для того, чтобы не изобретать велосипед выбор сделан на использовании готового адаптера, который работает по стандарту J2534. Для тех, кто не в курсе, стандарт J2534 это стандарт, описывающий аппаратную и программную части устройства, с помощью которого можно произвести подключение к ЭБУ посредством компьютера. Разработали его американцы. Основной причиной его разработки стало законодательное закрепление возможности обновление прошивки ЭБУ не специализированным дилерским сервисом, а любым желающим. Собственно, если каждый желающий может обновить прошивку на своем телефоне, то почему он не может это сделать со своим автомобилем.
Самый доступный импортный аналог стоит в районе 200 долл. США. Как впоследствии оказалось, два одинаковых устройства, удовлетворяющие стандарту J2534, могут работать по-разному с одним и тем же программным обеспечением. Поэтому изначально пришлось привязаться к конкретному производителю и его устройству.
Хочу поделиться собственным опытом разработки электронного устройства. Сначала расскажу небольшую предысторию, чтобы было понятно, зачем это, собственно, нужно было мне.
С чего все начиналось
Изначально мы занимались разработкой программного обеспечения для чип-тюнинга. Одна из основных задач которого — считать прошивку из ЭБУ (электронный блок управления двигателем) и записать ее обратно. Понятное дело, что для этих целей нужно каким-то образом связать компьютер и ЭБУ при помощи адаптера. Когда раньше подавляющее количество ЭБУ использовало простейший способ приема-передачи данных, достаточно было использовать простейший адаптер на транзисторах или специализированной микросхеме. Однако на сегодняшний день большинство автомобилей для «общения» своих компонентов со внешней средой используют CAN шину. Адаптер для CAN шины на транзисторах уже не соберешь, и тут однозначно нужен процессор, который будет управлять всем по определенной программе.
Так возникла первая проблема — как побороть CAN шину. Для того, чтобы не изобретать велосипед выбор сделан на использовании готового адаптера, который работает по стандарту J2534. Для тех, кто не в курсе, стандарт J2534 это стандарт, описывающий аппаратную и программную части устройства, с помощью которого можно произвести подключение к ЭБУ посредством компьютера. Разработали его американцы. Основной причиной его разработки стало законодательное закрепление возможности обновление прошивки ЭБУ не специализированным дилерским сервисом, а любым желающим. Собственно, если каждый желающий может обновить прошивку на своем телефоне, то почему он не может это сделать со своим автомобилем.
Самый доступный импортный аналог стоит в районе 200 долл. США. Как впоследствии оказалось, два одинаковых устройства, удовлетворяющие стандарту J2534, могут работать по-разному с одним и тем же программным обеспечением. Поэтому изначально пришлось привязаться к конкретному производителю и его устройству.
+53
STM32 и LCD через I2C
4 мин
133KДля использования в дальнейшем понадобилось связать, используя I2C микроконтроллер STM32 с экраном 2004. Не найдя аналогичного решения в сети, публикую здесь. Данный рецепт подойдёт также для экранов 1602. Далее под катом. (Осторожно, картинки).
+25
Метеостанция: от идеи до реализации
9 мин
71KПрочитал множество статей, посвященных разработке своего устройства, и захотел рассказать о своем опыте. Происходило это несколько лет назад, на 4-м курсе универа. Сейчас я многое сделал бы уже по-другому, а в то время я только начинал осваивать электронику, это — мое первое устройство, так что не судите строго.
Мне всегда хотелось чего-то большего, чем обычный градусник за окном или ЖК-экран метеостанции с температурой на улице и в комнате. Поэтому, когда я задумался, «что же такое сделать» для того, чтобы начать знакомство с миром микроконтроллеров, ответ нашелся сам собой — свою метеостанцию. Естественно, с отображением градусов на улице и внутри помещения, влажности и давления. И с подсветкой — мне всегда нравилась реализация прогноза погоды на Яндексе — одного взгляда на фон достаточно, чтобы понять, будет тепло или холодно, и насколько.
+53
Фанерный монитор из старого ноутбука
5 мин
139KНаверное, многие хабражители сталкиваются с тем, что дома копится компьютерное железо. Что-то держится про запас, что-то для будущих экспериментов, что-то на детали. Так у меня в течении 4х лет хранился разобранный ноут от НР, погибший в неравной борьбе с температурой и нерадивыми ремонтниками.
Но рано или поздно к антресоли, где хранится бесполезное железо, приходит уборка. Большая часть устаревшего, сломанного и просто бесполезного железа отправляется в еще одну коробку, на которой значится гордое «НА УТИЛИЗАЦИЮ». Однако сохраненная матрица ноутбука заставила меня вспомнить давнюю идею — превратить её в полностью рабочий монитор.
Но рано или поздно к антресоли, где хранится бесполезное железо, приходит уборка. Большая часть устаревшего, сломанного и просто бесполезного железа отправляется в еще одну коробку, на которой значится гордое «НА УТИЛИЗАЦИЮ». Однако сохраненная матрица ноутбука заставила меня вспомнить давнюю идею — превратить её в полностью рабочий монитор.
+61
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность