Pull to refresh
65
0
Михаил @Clouded

User

Send message

Как я, в итоге, написал новую RTOS, протестированную и стабильную

Reading time40 min
Views83K
Я работаю со встраиваемыми системами в течение нескольких лет: наша компания разрабатывает и производит бортовые компьютеры для автомобилей, зарядные устройства, и т.д.

image


Процессоры, используемые в наших продуктах — это, в основном, 16- и 32-битные микроконтроллеры Microchip, имеющие RAM от 8 до 32 кБ, и ROM от 128 до 512 кБ, без MMU. Иногда, для самых простых устройств, используются еще более скромные 8-битные чипы.

Очевидно, что у нас нет (разумных) шансов использовать ядро Linux. Так что нам нужна какая-нибудь RTOS (Real-Time Operating System). Находятся даже люди, которые не используют никаких ОС в микроконтроллерах, но я не считаю это хорошей практикой: если железо позволяет мне использовать ОС, я ее использую.

Несколько лет назад, когда мы переходили с 8-битников на более мощные 16-битные микроконтроллеры, мои коллеги, которые были гораздо более опытными, чем я, рекомендовали вытесняющюю RTOS TNKernel. Так что это — та ОС, которую я использовал в разных проектах в течение пары лет.

Не то, чтобы я был очень доволен ею: например, в ней нет таймеров. И она не позволяет потоку ждать сообщения сразу из нескольких очередей. И в ней нет программного контроля переполнения стека (это действительно напрягало). Но она работала, так что я продолжал ее использовать.
Читать дальше →
Total votes 162: ↑161 and ↓1+160
Comments61

Прогулка по Стенфордскому университету

Reading time2 min
Views8.4K
Знаю, что Хабра — это не тревел-блог. Но тема кремниевой долины постоянно мусолится на хабре. Так же часто упоминается Стенфордский университет.
Я поискал поиском — но не нашел ни одного полноценного фото-отчета с кампуса Стенфода.

Надеюсь, эта информация будет полезна хабровчанам, которые планируют поездку в Калифорнию.



К сожалению, найти студента, который бы рассказал нам об университете «изнутри» мы не смогли. Поэтому мой рассказ исключительно о «внешней» оболочке…

P.S. Добавил в блог «офисы ИТ компаний» — так как Стенфорд был офисом многих IT стартапов.

Читать дальше →
Total votes 112: ↑105 and ↓7+98
Comments106

Устраиваемся программистом за рубежом

Reading time16 min
Views62K
Как часто вас посещала мысль о трудоустройстве за границей, будь то просто временная работа или переезд на постоянное место жительство? Какую страну выбрать? Возможно ли пройти собеседования за тысячи километров по телефону и получить джоб-офер? Как будет выглядеть переезд и жизнь в другой стране? В данной статье я бы хотел поделиться личным опытом и опытом многих моих друзей работающих за рубежом.
Читать дальше →
Total votes 208: ↑188 and ↓20+168
Comments160

Как я поехал работать в Данию

Reading time6 min
Views58K
Две недели назад я начал работу в датской компании "Secunia", и хочу — как и многие хабровчане, уехавшие работать за рубеж — поделиться своим опытом. Не уверен, к какому хабу это должно относиться, но вроде бы предыдущие подобные рассказы были в «Офисах IT-компаний».

Поиск работы


Всё началось с того, что Google AdWords показал мне ссылку на вакансию "Senior Reverse Engineer and Vulnerability Researcher". Как раз в это время я искал новую работу, и гугл, видимо, тонко проанализировал мою историю поиска и содержимое последних писем; а может быть, просто подфартило. Эта вакансия до сих пор открыта; и если кто-нибудь из вас на неё устроится, упомянув меня в качестве порекомендовавшего, то мне будет положен какой-то приятный бонус. Так что не стесняйтесь.

В начале ноября я отправил на рассмотрение своё резюме, и получил по очереди два тестовых задания. Оба были похожи: дан кусок дизассемблированного кода x86 (одно задание было на Си, другое на С++). Нужно восстановить исходник и найти в нём возможные уязвимости и другие проблемы. От момента получения кода, до отправки заключения по нему — даётся час. Длина кода — около сотни команд. Фактически, у меня уходило минут двадцать на его разбор, и минут двадцать на написание соответствующего кода на Си/С++. Ничего сложного для любого, кто когда-нибудь пытался ковыряться в чужих программах.

В конце ноября у меня — удачно совпало — уже была запланирована поездка по Скандинавии; и в тот единственный день, когда я был в Копенгагене, я решил заскочить в Secunia, почти без предупреждения. Новая удача: именно в этот день им какие-то строители экскаватором перерубили интернет, и все сотрудники сидели без дела. Поэтому CTO оказался свободен, чтоб меня прособеседовать. Он произвёл на меня весьма серьёзное впечатление, но больше я его с тех пор не видел; а с моим нынешним начальником мы тогда обменялись разве что парой слов. Они сказали, что пришлют мне последнее, самое сложное и важное задание, и после этого окончательно решат по поводу моей кандидатуры.

Это последнее задание мне прислали в начале декабря. Нужно было найти конкретную версию Adobe Reader, взять готовый PDF-файл, который её валит — и написать подробный отчёт, почему это происходит. На задание давался день, с комментарием «не торопись, сделай качественно, сможешь за четыре часа — отлично, за шесть — приемлемо». У меня ушло где-то часов восемь с перерывами на кофе. Я отправил результат, и принялся ждать.
Читать дальше →
Total votes 149: ↑145 and ↓4+141
Comments136

Стартап? Завязывайте

Reading time5 min
Views1.8K
На Хабре много статей, посвященных стартапам, инвесторам, искуственным и естественным мотиваторам и прочему-прочему, ни разу не АЙТИшному смысловому маркетингу. Цель их одна — «добиться успеха». Ибо успех и процесс его достижения — это есть одна из главных составляющих счастья. А его нам всем хочется.

Стоит отметить, что статья на все 100% субъективна, не претендует на истину в какой-либо инстанции, старается не поучать и не наставлять. Тот минимум, на который я рассчитываю — это поделиться своим мнением, показать, что бывает и так. Может быть кто-то разделит мою позицию, кто-то задумается, кто-то пройдет мимо, остальным же Хабр дает великолепную возможность минусовать.

Такова жизнь, информация доступна — наше право решать — получать ли ее; если да, то как; и если получил, то что с ней делать. Собственно говоря, об этой возможности речь и пойдет.

Друзья-коллеги-читатели, попрошу еще минутку внимания, вкратце о себе. Я НЕ являюсь — преподавателем, коучем, тренером, наставником, философом, псих\ологом\иатром\отерапевтом, ах да, мастером эпистолярного жанра и русского языка, к сожалению, тоже. Кем я в действительности являюсь — не важно. Т.к. что бы я не сказал, каждый из Вас придумает решит это сам. Я могу лишь очертить сектор в котором стоит смотреть и это я сделал, прислушайтесь. Вообще, если сейчас у Вас между бровей полным-полно скепсиса, то лучше сразу перейти к «минусу», дабы не тратить время — это действительная ценность — ее не стоит тратить на то, что кажется Вам не достойным. Если же на данный момент у Вас есть интерес, то до какого-то момента Вы будете со мной, т.к. интерес уже разгорелся и раздувать вы его будете самостоятельно. Моя задача — постараться все не испортить.
Читать дальше →
Total votes 207: ↑161 and ↓46+115
Comments110

Google Schemer

Reading time1 min
Views12K
Google запустил очередной сервис. На этот раз это сервис для совместного достижения и управления своими целями/желаниями. Сам Google называет этот сервис аналогом 43 Things. Пока доступ туда только по инвайтам и предназначен он для жителей США. Хотя последнее ограничение чисто формальное.

image

На сайте есть так называемые «schemes». Scheme — это любая штука, которую вы хотите сделать: съездить в другой город, сделать кому-то подарок, купить что-то, научиться что-то делать. В общем, абсолютно любое действие.

image

Вы можете добавлять в свой профиль существующие «Затеи» (мне кажется это наиболее адекватный перевод scheme на русский), добавлять абсолютно новые, помечать существующие как выполненые. Можно подбадривать пользователей, которые запланировали какую-то затею.

Самой собой есть теги, привязка к городам/местам. Ну и полнейшая интеграция с Google+. Google рассматривает этот сервис как один из способов популяризации Google+.

Ниже рекламный ролик нового сервиса.


Более подробно можно почитать на английском.

Инвайты без проблем можно нагуглить по запросу schemer.com/invite :) Каждому новому пользователю дается по 20 инвайтов.

Ну и конечно мои 20 инвайтов для вас.
Total votes 85: ↑76 and ↓9+67
Comments406

Фильмы IT-тематики

Reading time2 min
Views15K
imageВ свое время, в 1995-ом году, на меня произвел впечатление фильм «Хакеры». Можно
сказать, он стал мотиватором моей дальнейшей ИТ-карьеры. Далеко не эталон киноискусства, однако
стремление стать похожим на героев фильма, продолжилось в самообразовании. Далее первый выклянченный компьютер, первые строчки кода, начало проб и ошибок. Когда уже были написаны эти самые «хэлоу-ворды», «калькуляторы», затем испробованы несколько *nix'ов — на руки попалась болванка с «Antitrust». В одноголосном переводе и гиблом качестве. К слову, это не помешало, пересмотреть фильм пару десятков раз. Что послужило более зрелому стремлению, чем быть всемогущим кул-хакером. Под катом, перечислю увиденные мной фильмы IT-тематики, с кратким описанием. В основном из двухтысячных. Неувиденное или забытое, будем добавлять.

Читать дальше →
Total votes 227: ↑191 and ↓36+155
Comments210

Обзор инфраструктуры Кремниевой долины

Reading time11 min
Views8.1K

Введение


Последние четыре года я живу и работаю программистом в США, в Кремниевой долине. За это время у меня скопились некоторые наблюдения, которыми я бы хотел поделиться. Я сосредоточусь на вопросах инфраструктуры: как там с транспортом, интернетом, дорогами, преступностью, водой, развлечениями и т. п. Я буду рассказывать лишь о том, с чем встретился сам. Надеюсь, этот пост будет интересен специалистам, думающим о работе в долине.

Читать дальше →
Total votes 340: ↑336 and ↓4+332
Comments361

Различные типы контента в p2p сетях

Reading time9 min
Views8.6K
Пользуясь случаем, хочу поделится кое- какими соображениями о наболевшем.

А именно обратить ваше внимание на некоторые особенности той информации, которая распространяется с помощью p2p систем.

Читать дальше...
Total votes 112: ↑101 and ↓11+90
Comments88

Опыт составления резюме

Reading time5 min
Views33K

Проблема


Не так давно мне потребовалось обновить своё резюме. Последний раз я это делал несколько лет назад, так что решил написать резюме с нуля.

В этом посте я бы хотел рассказать о своём опыте создания резюме: о предполагаемой целевой аудитории и деталях оформления. Оговорюсь, что я программист, в отделе кадров никогда не работал, так что к соображениям следует относиться со скептицизмом.

Читать дальше →
Total votes 131: ↑107 and ↓24+83
Comments215

Маленький сетевой одноплатный компьютер за 20 USD

Reading time2 min
Views41K
Ну вот, наконец-то, у меня в руках первый полноценно работающий экземпляр нашего одноплатного компьютера.

Полгода разработки, два месяца ожидания (пока изготовят первых 20 экземпляров и доставят в Москву), неделя непрерывного секса (чтобы запустить)… И вот оно — наше маленькое чудо!

image

Это не «самый маленький в мире компьютер». И не самый дешевый. И уж конечно не самый мощный. Но он достаточно маленький, довольно дешевый и не такой уж медленный. Чип Qualcom Atheros AR9331, 64 Мб DDR2, 16 Мб NOR flash. WiFi, один гигабитный Ethernet и до пяти 100мбитных, USB, UART, SPI, I2S, 20+ GPIO, OpenWrt на борту — что еще нужно для счастья? Зажечь в первый раз светодиод по команде со смартфона — ни к этому ли мы все стремимся?

Ну а в качестве приятного бонуса — возможность сделать свою собственную плату с лото и курсистками, т.к. всю документацию мы откроем, а в изготовлении прототипов и тиража — поможем.

Первые подробности — под катом.
Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments174

Move semantics в C++11 и STL-контейнеры

Reading time2 min
Views77K
Эта небольшая заметка о том, как с приходом нового стандарта C++11 изменились требования стандартных контейнеров к своим элементам. В C++98 от элемента контейнера требовалось, по сути, наличие «разумных» конструктора копирования и оператора присваивания. Если, например, объект вашего класса владеет каким-либо ресурсом, копирование обычно становится невозможным (по крайней мере, без «глубокого» копирования ресурса). В качестве примера давайте рассмотрим следующий класс-обертку вокруг FILE*, написанную на C++98:

class File
{
    FILE* handle;
public:
    File(const char* filename) {
        if ( !(handle = fopen(filename, "r")) )
            throw std::runtime_error("blah blah blah");
    }
    ~File() { if (handle) fclose(handle); }
    // ...
private:
    File(const File&); //запретить копирование
    void operator=(const File&); //запретить присваивание
};

Читать дальше →
Total votes 74: ↑69 and ↓5+64
Comments30

Собираем wi-fi устройство управления электроприборами с веб-сервером и JS-фронтэндом

Reading time12 min
Views254K
Добрый день, уважаемые хабровчане. В этой статье я несколько отойду от своего традиционного подхода к DIY – нашей основной целью станет быстрое и эффективное получение результата, а не изобретение велосипедов с целью самообучения, поэтому даже люди, впервые держащие паяльник, смогут все это повторить и получить готовое устройство за ~1000 рублей и один день.
Читать дальше →
Total votes 92: ↑90 and ↓2+88
Comments37

Теория цвета

Reading time2 min
Views297K
Первое впечатление — это все. Пословица «По одежке встречают, по уму провожают» актуальна не только в жизни, но и в дизайне. Впечатление от дизайна состоит из множества факторов, и один из важнейших — это цвет.

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

Основные цвета (Primary Colors)




Основные цвета палитры — красный, желтый и синий. Если говорить об основных цветах на экранах различных устройств — это RGB, красный, зеленый и синий.
Читать дальше →
Total votes 186: ↑160 and ↓26+134
Comments84

Необычный способ изучения иностранного языка

Reading time1 min
Views98K
На Хабре уже много раз обсуждались способы изучения английского языка, в этом топике представлен еще один. Некий словацкий веб-разработчик Vojtech Rinik предлагает запоминать новые слова книги (или главы) до ее прочтения. При этом способе не придется прерывать чтение поиском перевода для неизвестных слов, а значит можно в полной мере насладиться книгой в оригинале.



Также Войцех утверждает, что так слова учить намного проще, ведь сначала их нужно запомнить, а потом «распознать» в тексте.
Читать дальше →
Total votes 52: ↑43 and ↓9+34
Comments20

Собираем и заставляем бегать бюджетного гексапода

Reading time11 min
Views270K
Много чего предстоит сделать, прежде чем мы дойдем до вот этой картинки:



Опуская росказни о том, как именно я пришел к мысли построить гексапода (это были тонны видео на ютубе), перейду сразу к процессу выбора деталек. Это был январь 2012-го. Я сразу знал, чего я хочу от своего робота, а чего — нет. Я хотел:

— каждая нога должна иметь 3 степени свободы — 3dof (3 dimensions of freedom). Потому что более простой вариант 2dof — не дает такого ощущения насекомого, а 4dof — излишне, 3dof и так позволяет свободно перемещать кончик ноги в 3д пространстве;
— 6 ног; снова-таки, это уже не 4 (тогда робот неуклюже скачет), но и еще и не 8, как у пауков и уже чрезмерно;
— небольшой;
— дешевый;
— минимум плат и соединений;

Пост большой.
Читать дальше →
Total votes 224: ↑222 and ↓2+220
Comments60

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

Reading time21 min
Views274K

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

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

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

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

USB TV-тюнеры на rtl2832 — или как услышать в радиоэфире все за 600 рублей

Reading time5 min
Views501K
Давно я собирался купить какой-нибуть универсальный радиоприемник/радиосканер, чтобы полазить по эфиру, послушать о чем говорят ночью матёрые и бородатые радиолюбители…

До недавнего времени, это удовольствие обходилось от 300$ и до бесконечности. Ну а с переходом гос.органов (и России и за бугром) на цифровую (но пока еще не зашифрованную) связь APCO P25 стоимость удовлетворения нездорового любопытства стала ещё выше.

Год назад все изменилось — умельцы выяснили, что многие из продающихся у нас китайских USB TV-тюнеров за 600 рублей — фактически являются универсальным радиоприёмником, на который без каких-либо доработок можно послушать практически все-что угодно в диапазоне 50-900Мгц (если повезет — до 2200Мгц, но там голосом особо ничего не передают): переговоры самолётов с диспетчерами, строителей, такси, жучки в вашей квартире и многое другое.

Под катом я расскажу что и где покупать, как подключить и настраивать, ну и наконец — что можно послушать.
Читать дальше →
Total votes 144: ↑137 and ↓7+130
Comments147

Ridual — новый файловый менеджер для Ubuntu

Reading time4 min
Views23K


Когда я только переходил на Linux, я пытался найти для себя удобный двухпанельный файловый менеджер. Оказалось, что для Linux полнофункциональных двухпанельников довольно мало, и все они по каким-то причинам меня не устроили. В итоге я расстался с этой идеей и стал пользоваться Nautilus и командной строкой.

Однако недавно Canonical объявила конкурс по разработке приложений для Ubuntu, и я решил попробовать сделать лучший файловый менеджер для Ubuntu.

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

Подробное описание
Total votes 113: ↑91 and ↓22+69
Comments111

Публичные выступления. Что? Как? Зачем?

Reading time5 min
Views60K
Доброго времени суток, хабролюди!

Ценность умения публично выступать сложно переоценить, но многие обходят сторонной вопросы ораторского искусства. А потом удивляются, почему их не слушают, а если и слушают, то не заинтересовываются темой. Если вам хочется научиться общаться с аудиторией, если вы хотите узнать немного больше об ораторском искусстве, то добро пожаловать под кат.
Читать дальше →
Total votes 53: ↑41 and ↓12+29
Comments13

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity