С недавнего времени у меня появилась настойчивая мысль, что профессиональное развитие сильно замедлилось и это хочется как-то исправить. Да, читаю книги, слушаю курсы, но в то же время приходит и понимание того, что возможно пришло время сменить работу, здесь вроде как все изучено, плавно уходим в рутину. Данная мысль сподвигла меня на рассылку своего резюме в несколько компаний — лидеров рынка. После прохождения собеседования в 3 из них, я решил, как водится внести свои 5 копеек в освещение обширной темы собеседования, а именно технических вопросов по Java коллекциям, с которыми приходится сталкиваться. Да, знаю, читатель скажет: «коллекции — избитая тема, сколько можно», но часть из приведенных ниже вопросов, я задавал своим знакомым разработчикам, которые занимают именно позиции разработчиков («крепких середнячков», по меркам недалекой от Москвы глубинки, которые уверенно справляются со своей работой на практике, а вот в теории скажем так есть пробелы, потому, что работа не требует решения каких-то нетривиальных задач, да и потому что не всем это интересно — изучать как внутри работает структура данных), вызывало растерянность. Думаю, что рассмотренный материал будет не очень интересен разработчикам выше уровня Junior (я попрошу их комментировать, дополнять и критиковать изложенный здесь материал), а вот Junior`ы уверен, найдут в этой статье интересное для себя.
Николай @Tutufa
Пользователь
Практика использования цифровых фильтров
3 мин
28KДелаю тут проект и возникла вот какая проблема. Получаю данные с АЦП (дельта-сигма) микросхемы в которую встроен контроллер и фильтр, но этот фильтр имеет довольно убогую АЧХ, в итоге идёт завал по ВЧ от 60Гц и далее. Выглядит это примерно так:
Т.е. такая неравномерность АЧХ нас явно не устраивает (не проходит по техническим требованиям), правда есть возможность повысить частоту дискретизации с 250Гц до 500Гц, чтобы выровнять АЧХ, однако тогда увеличивается объём данных который ещё нужно будет усреднять, что скажется на производительности (проект на STM32F103VE) системы в целом и на общем потреблении энергии (батарейное питание). Но есть и другой путь.
Т.е. такая неравномерность АЧХ нас явно не устраивает (не проходит по техническим требованиям), правда есть возможность повысить частоту дискретизации с 250Гц до 500Гц, чтобы выровнять АЧХ, однако тогда увеличивается объём данных который ещё нужно будет усреднять, что скажется на производительности (проект на STM32F103VE) системы в целом и на общем потреблении энергии (батарейное питание). Но есть и другой путь.
+25
Использование сети CAN и стека CANopen
6 мин
42KОднажды передо мной встала задача разработать встраиваемую систему, в которой бы данные могли передаваться между узлами c максимальной надежностью. Тогда то я впервые и узнал о CAN.
В этой статье я хотел бы рассказать вкратце рассказать о том, что такое CAN и о своем опыте работы с ним. Возможно люди, которые занимаются разработкой встраиваемых систем, прочитав мою статью, заинтересуются этим стандартом, если он еще не попадал в их поле зрения. Тем более, что контроллеры CAN в настоящее время присутствуют на многих микроконтроллерах.
CAN (Controller Area Network) — это стандарт, созданный компанией Bosсh для сетей, используемых в автоматизации и промышленности. Стандарт нашел широкое применение в промышленном производстве, технологиях «умного дома», а так же в автомобилестроении. Очень хорошо подходит для связывания различных датчиков и управляющих устройств в единую сеть.
Как правило, CAN-сеть это сеть типа «шина», в которой все узлы могут передавать и принимать данные.
Она обладает небольшой скоростью, но высокой надежностью.
Далее я хочу поверхностно описать стандарт и рассказать об использовании такой сети на практике.
В этой статье я хотел бы рассказать вкратце рассказать о том, что такое CAN и о своем опыте работы с ним. Возможно люди, которые занимаются разработкой встраиваемых систем, прочитав мою статью, заинтересуются этим стандартом, если он еще не попадал в их поле зрения. Тем более, что контроллеры CAN в настоящее время присутствуют на многих микроконтроллерах.
CAN (Controller Area Network) — это стандарт, созданный компанией Bosсh для сетей, используемых в автоматизации и промышленности. Стандарт нашел широкое применение в промышленном производстве, технологиях «умного дома», а так же в автомобилестроении. Очень хорошо подходит для связывания различных датчиков и управляющих устройств в единую сеть.
Как правило, CAN-сеть это сеть типа «шина», в которой все узлы могут передавать и принимать данные.
Она обладает небольшой скоростью, но высокой надежностью.
Далее я хочу поверхностно описать стандарт и рассказать об использовании такой сети на практике.
+22
Функциональное программирование для всех
33 мин
351KПеревод
Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.
Мнение переводчика может иногда не совпадать с мнением автора, но переводить статью было крайне занимательно.
UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
+174
Android. Обзор боевых приложений
2 мин
318KДоброго времени суток!
Наряду со статьей "iPhone: MiTM атака из кармана", родилась почти аналогичная статья про Android.
Мы уже знаем, на что способен iPhone. Уступает ли ему Android?
Было рассмотрено около 25 боевых приложений. Хочу предоставить вам результат маленького исследования. Многие приложения даже не запустились, некоторые подвесили телефон намертво, но некоторые даже работали!
Весь софт тестировался на телефоне LG Optimus, с версией Android 2.3.
Итак, краткий обзор боевого софта на Android:
Наряду со статьей "iPhone: MiTM атака из кармана", родилась почти аналогичная статья про Android.
Мы уже знаем, на что способен iPhone. Уступает ли ему Android?
Было рассмотрено около 25 боевых приложений. Хочу предоставить вам результат маленького исследования. Многие приложения даже не запустились, некоторые подвесили телефон намертво, но некоторые даже работали!
Весь софт тестировался на телефоне LG Optimus, с версией Android 2.3.
Итак, краткий обзор боевого софта на Android:
+221
Фильтр Калмана — Введение
5 мин
260KФильтр Калмана — это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в GPS-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д.
Про фильтр Калмана в интернете есть очень много статей и книг (в основном на английском), но у этих статей довольно большой порог вхождения, остается много туманных мест, хотя на самом деле это очень ясный и прозрачный алгоритм. Я попробую рассказать о нем простым языком, с постепенным нарастанием сложности.
Про фильтр Калмана в интернете есть очень много статей и книг (в основном на английском), но у этих статей довольно большой порог вхождения, остается много туманных мест, хотя на самом деле это очень ясный и прозрачный алгоритм. Я попробую рассказать о нем простым языком, с постепенным нарастанием сложности.
+145
Наработки к планированию процессов в ОСРВ
3 мин
2.1KЗакончив изучение Таненбаума и ковыряние ядра Linux решил, что надо заняться чем-то дельным. По личным мотивам решил переделать ядро minix3 под планирование в жёстком реальном времени. Множество существующих алгоритмов планирования ввели меня в уныние, тем более, что хочется сделать ОС максимально универсальной и гибкой. Зацикленность на клиент-серверной модели привели к идеи о вынесении из ядра ОС механизмов планирования и разделение процессов на группы, управляемые: каждая своим планировщиком (в режиме ядра оставить только обработку deadline).
Основная проблема, которая стала очевидной сразу же — это выбор математической модели для построения алгоритма планирования. Очевидно, что подход разделения общего ресурса можно рассмотреть в аналогии с сетевыми протоколами разделения общего физического пространства.
Основная проблема, которая стала очевидной сразу же — это выбор математической модели для построения алгоритма планирования. Очевидно, что подход разделения общего ресурса можно рассмотреть в аналогии с сетевыми протоколами разделения общего физического пространства.
+21
Программирование ПЛК Siemens на Simatic Step7
4 мин
443KДобрый день, хабровчане! Полазив по Хабру, мною было обнаружено всего несколько топиков, в котором упоминалось бы словосочетание «Simatic Step 7». Хочу поделиться с Вами небольшой частью информации, накопленной мною за все время работы с программируемыми логическими контроллерами, и показать, что из себя представляют ПЛК, оболочка и что мне приходилось на них строить.
Данный пост содержит общую ознакомительную информацию о программировании ПЛК Siemens.
Данный пост содержит общую ознакомительную информацию о программировании ПЛК Siemens.
+17
Regexp и Python: извлечение токенов из текста
9 мин
83KТуториал
Разбор логов и конфигурационных файлов — задача часто возникающая и многократно описанная. В этой статье я расскажу как на языке python реализовать ее классическое решение: с помощью регулярных выражений и именованных групп. По возможности постараюсь рассказать причины, по которым применяется то или иное решение, а также обрисовать подводные камни и методы их обхода.
+29
13 бесплатных курсов Стэнфордского университета
2 мин
72KНедавно анонсированный бесплатный онлайн-курс Стэнфорда по основам искусственного интеллекта вызвал настоящий ажиотаж у публики. Заявки на регистрацию подали уже 81 966 человек. Оно и понятно: курс ведут Питер Норвиг и Себастьян Тран — настоящие звёзды. Первый раньше работал в НАСА и написал учебник по ИИ, а второй разрабатывает лучшие в мире роботизированные автомобили (для Google).
Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
+98
Новые бесплатные онлайн курсы от Stanford
1 мин
24KВ начале текущего учебного года Stanford организовал 3 бесплатных онлайн курса (основаные на трёх стационарных курсах Стэнфорда): Machine learning, Artificial intelligence и Introduction to Database. Все курсы идут с видео лекциями и домашними заданиями. Для курсов Artificial intelligence и Introduction to Database предусмотрены ещё и экзамены. После успешного окончания любого из курсов будет выслан сертификат (digital-signed pdf) от преподавателя.
И вот, были анонсированы ещё несколько онлайн курсов, которые будут стартовать в январе/феврале 2012 года.
У нас есть замечательный шанс послушать некоторые знаменитые Стэнфордские курсы, записывайтесь!
Update Спасибо recky, который заметил, что добавились ещё несколько курсов. Один из CS секции — по криптографии, и два из Entrepreneurship секции:
UUpdate продолжают радовать, новый доступный курс:
И вот, были анонсированы ещё несколько онлайн курсов, которые будут стартовать в январе/феврале 2012 года.
- Computer Science by Nick Parlante
- Natural Language Processing by Dan Jurafsky and Chris Manning
- Software Engineering for SAAS by Armando Fox and David Patterson
- Human-Computer Interfaces by Scott Klemmer
- Game Theory by Matthew Jackson and Yoav Shoham
- Probabilistic Graphical Models byDaphne Koller
- Machine Learning by Andrew Ng (тот же класс, что идёт сейчас)
У нас есть замечательный шанс послушать некоторые знаменитые Стэнфордские курсы, записывайтесь!
Update Спасибо recky, который заметил, что добавились ещё несколько курсов. Один из CS секции — по криптографии, и два из Entrepreneurship секции:
- Cryptography by Dan Boneh
- The Lean Launchpad by Steve Blank
- Technology Entrepreneurship by Chuck Eesley
UUpdate продолжают радовать, новый доступный курс:
- Design and Analysis of Algorithms I by Tim Roughgarden
+124
Анализ данных. Приближенные множества
2 мин
9.2KРешил создать серию постов об анализе данных. Несколько лет работаю в этой (и как оказалось, весьма интересной) области информатики. Предлагаю Вашему вниманию анализ данных с точки зрения Теории приближенных множеств.
+26
Уроки Python от компании Google
1 мин
120KОтличный способ освоить Python — учебный класс Python в Google Code University. Уроки для этого класса написал Ник Парланте из Стэнфорда, и прошедшие курс люди отмечают не просто высокое, а фантастически высокое качество уроков.
Курс включает в себя шесть видеолекций на Youtube, где Ник проводит обучение новичков-гуглеров и подробно рассказывает о разных хитростях и фичах Python. Некоторые видеолекции длиной до 50 минут.
Есть ещё скачиваемые задачки. Они довольно простые и созданы специально для начинающих. Курс идеально подходит для изучения Python программистами, имеющими опыт работы с другими языками программирования.
Курс включает в себя шесть видеолекций на Youtube, где Ник проводит обучение новичков-гуглеров и подробно рассказывает о разных хитростях и фичах Python. Некоторые видеолекции длиной до 50 минут.
Есть ещё скачиваемые задачки. Они довольно простые и созданы специально для начинающих. Курс идеально подходит для изучения Python программистами, имеющими опыт работы с другими языками программирования.
+137
Есть ли польза от кастомных ядер
4 мин
43KМногие слышали о различных оптимизированных и улучшенных ядрах, это — Zen Kernel и pf-kernel из известных мне. Кроме того, что они добавляют новые возможности (TuxOnIce, поддержка aufs), они могут улучшить производительность, благодаря улучшенному менеджеру задач (BFS) и планировщику (BFQ). В этом топике я хочу сравнить производительность pf-kernel со стандартными ядрами в Ubuntu и Arch Linux, а также описать процесс сборки и установки pf-kernel для Ubuntu. Тестировать Zen Kernel я не вижу особого смысла, т.к. во-первых, проект выглядит заброшенным, а во-вторых, набор патчей и там и там очень похожий.
+65
Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install
5 мин
170KК написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install. |
Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и об
+293
FreeRTOS: межпроцессное взаимодействие
8 мин
79KЗдравствуйте. В данной статье я постараюсь описать метод межпроцессного обмена данными и синхронизацию с эвентами.
Ссылки на остальные части:
FreeRTOS: введение.
FreeRTOS: мьютексы и критические секции.
+25
FreeRTOS: введение
5 мин
199KЗдравствуйте. В короткой серии постов я постараюсь описать возможности, и подходы работы с одной из наиболее популярной и развивающейся РТОС для микроконтроллеров – FreeRTOS. Я предпологаю базовое знакомство читателя с теорией многозадачности, о которой можно почитать в одном из соседних постов на Хабре или ещё где-то.
Ссылки на остальные части:
FreeRTOS: межпроцессное взаимодействие.
FreeRTOS: мьютексы и критические секции.
+53
Организация памяти
7 мин
236KЗа последнюю неделю дважды объяснял людям как организована работа с памятью в х86, с целью чтобы не объяснять в третий раз написал эту статью.
И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. Я по ходу попробую объяснить и это на пальцах, но очень кратко потому что это не тема для этой статьи. Итак начнем.
И так, чтобы понять организацию памяти от вас потребуется знания некоторых базовых понятий, таких как регистры, стек и тд. Я по ходу попробую объяснить и это на пальцах, но очень кратко потому что это не тема для этой статьи. Итак начнем.
+112
Получаем изображение с оптического сенсора комьютерной мыши с помощью Arduino
3 мин
233KДля решения одной из задач мне потребовалось программно получать и обрабатывать изображения небольшого участка поверхности бумаги с очень близкого расстояния. Не получив достойного качества при использовании обычной USB камеры и уже на пол пути в магазин за электронным микроскопом, я вспомнил одну из лекций, на которой нам рассказывали как устроены различные девайсы, в том числе и компьютерная мышка.
+375
Генетический алгоритм. Просто о сложном. Рассказ Марка Андреева
7 мин
304KВ последнее время все больше «ходят» разговоры про новомодные алгоритмы, такие как нейронные сети и генетический алгоритм. Сегодня я расскажу про генетические алгоритмы, но давайте на этот раз постараемся обойтись без заумных определений и сложных терминах.
Как сказал один из великих ученных: «Если вы не можете объяснить свою теорию своей жене, ваша теория ничего не стоит!» Так давайте попытаемся во всем разобраться по порядку.
+36
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность