Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как сделать высоту iframe по содержанию, полученному с другого домена?

Лучший ответ:
Для решения задачи «в лоб» можно использовать общение между окнами.Исходный документvar iframe = document.createElement('iframe');

window.addEventListener('message', function (e) {
	iframe.height = e.data;
});
iframe.src = '...';
iframe.scrolling = 'no';
iframe.width = 300;
iframe.height = 300;
document.body.appendChild(iframe);Загружаемый документwindow.addEventListener('load', function () {
	parent.postMessage(document.documentElement.scrollHeight, '*');
});
Во втором аргументе postMessage можно указать домен исходного документа.Пример

Худший ответ:
Подозреваю, что никак. Получить доступ к документу вы не сможете, соответственно посчитать высоту внутри вы тоже никак не сможете. Либо подгонять на глазок, либо забить.
Вопрос: Kакую виртуализацию выбрать?

Лучший ответ:
Особых нареканий к работе VMware у меня не было, особенно в режиме stand-alone хоста. А крутились там и винды, и фряхи, и линуксы различные. Да и под критерий бесплатности ESXi прекрасно подходит. Так что мой совет: пока архитектура позволяет, пользуйтесь VMware.

Худший ответ:
Бесплатный VMware ESXi 5 не подойдет, потому что там ограничение в 1 физический процессор (или у вас один 24-ядерный процессор?).

Странно, что XenServer медленно работает… я бы продолжил с ним ковыряться…
Вопрос: Можете подобрать хорошую книжку по локальным сетям?

Лучший ответ:
Есть хороший цикл статей на habrahabr "Сети для самых маленьких".

Худший ответ:
Как вариант на intuit.ru  пройти курс, локальные сети и интернет.
Вот тебе короткий курс с тестированием.
Просто и доступно
Вопрос: Почему в Яндекс-Директе не отображается фавикон сайта?

Лучший ответ:
Сталкивались с такой проблемой. Обычно возникает для новых сайтов, лендингов, подсайтов.
Менеджеры Яндекс.Директ ничем не могут с этим помочь.
Поэтому можно посоветовать только некоторые ссылки:
http://favicon.yandex.net/favicon/www.домен.ru (вместо www.домен.ru подставляем свой домен), где можно проверить как Яндекс видит фавикон.
https://yandex.ru/support/webmaster/search-results... , чтобы проверить корректность установки.
https://yandex.ru/support/direct/troubleshooting/s... , если всё уже не помогло, где описывается эта проблема именно в отношении рекламных объявлений и есть возможность отправить запрос в поддержку.
Но чаще всего проблема только в долгой индексации иконки и спустя какое-то время она всё-таки начинает показываться в выдаче.

Худший ответ:
Да, придется наверное подождать. Но на всякий случай написал в поддержку. Может там чего подскажут
Вопрос: Слив рейтинга Андроид приложения. Что делать? Как защититься?

Лучший ответ:
Это не слив. В тот момент вышла новая версия приложения Google Play. Новый интерфейс активнее побуждает ставить оценки. В итоге, количество оценок значительно возросло (где-то в 3-4 раза), но средний рейтинг снизился. У меня аналогичная картина для всех приложений. Ниже скриншот для одного из них. Перегиб произошел 13 декабря (В ПЯТНИЦУ!). Кстати буквально вчера-позавчера интерфейс Google Play опять поменялся. 

Худший ответ:
Сравните с чейнджлогом. Может вы что-то добавили или изменили? Люди в отзывах жаловались на рекламу, вполне вероятно, что некоторых людей наличие рекламы раздражает и они занизили рейтинг, но это только в том случае, если реклама была добавлена совсем недавно перед сливом.
Вообще есть универсальный совет, если хотите решить проблему, надо понять причину ее появления.
Вопрос: Получение конкретного блока через ajax?

Лучший ответ:
Через решетку id блока нужно указать. Могу ошибаться, но метод load нужен.
$( "#result" ).load( "ajax/test.html #container" );

Худший ответ:
$('#users_wrap').html(result); замените на - console.log($('main').html());
буду телепатом..
Вопрос: Оптимизация скрипта или переход на другой язык?

Лучший ответ:
Чем, по вашему мнению, вам поможет переход на другой язык, если примерно 99% времени вы находитесь в ожидании сетевой операции?
В простом случае используйте curl_multi.

Худший ответ:
Чем, по вашему мнению, вам поможет переход на другой язык, если примерно 99% времени вы находитесь в ожидании сетевой операции?
В простом случае используйте curl_multi.
Вопрос: Что за спам...?

Лучший ответ:
Ваш кактус подан, приятного аппетита

Худший ответ:
да но тут пишут практически все с контакт листа, подумал опять девочки там… смс, еще интересно с чего это icq приняло мой аккаунт как долго неиспользующийся, я им каждый день пользуюсь=)
Вопрос: Учитывается ли движок сайта поисковыми системами при ранжировании?

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

Худший ответ:
В основном как правильно заметили разница в адаптированности CMS под восприятие поисковиками. В первую очередь это URL, проблема с генерацией дублей, джумла страшный кошмар в этом плане. Но я лично полтора года продвигал сайт на самописе, который не был заточен под SEO и хлебнул с ним горя. Так что если самопис тестировали в плане seo, то все хорошо, можно его использовать. А так Битрикс на мой взгляд очень хороший вариант, большое кол-во сео модулей под разные нужды, несложны в настройке. Разве что цена кусается по сравнению  с другими CMS
Вопрос: Как программно нажать checkbox внутри SysListView32 в чужом приложении?

Лучший ответ:
Варианта два:

1. Либо эмулировать нажатия клавиш\мыши, что есть плохо.

2. Либо с помощью хуков загружаться в адресное пространство процесса и юзать LVM_SETITEMSTATE, что есть хорошо, но сложно.

Худший ответ:
Думаю это то, что вы ищите:
Вопрос: Как научиться решать задачи?

Лучший ответ:
Для того чтобы решить любую задачу - нужно понимать ее изнутри. В твоем случае произошло такое:
Ты быстренько просмотрел шаблон, как решить подобную задачу и шпигуешь их с проекта в проект. Но ты не успел этим заинтересоваться, узнать х2 больше чем хотел. Делай это более углубленно.
Лично я всегда берусь за проекты в которых не знаю 25% как сделать. Есть только понимание, а дальше ускоренно изучаю, чтобы его сделать быстро, т.к. дедлайн. Смотри всякие новые технологии в интернете, практикуй эти фишки в каждом своем проекте.

Худший ответ:
Постановка слишком общая. 
Какие задачи кстати? По физике? По математике? По жизни?
" совсем плохо ... ориентируюсь в новых, ранее незнакомых задачах".
Ну так это у всех так.
На мой взгляд - надо развиваться ВШИРЬ. С эрудицией приходит возможность связывать задачи из разных областей и находить аналогии.
В качестве рецепта могу порекомендовать бессистемное чтение журнала "Квант".
Вопрос: Что можно поднять на сервере?

Лучший ответ:
Интересует все варианты
openssh
ftpd
postfix
bind
apache
nginx
lighttpd
mysql
postgresql
mongodb
couchdb
redis
memcached
mogilefs
logstash
influxdb
rabbitmq
beanstalkd
gearman
svn
git
mercurail
owncloud
gitlab
gitlab-ci
redmine
jira
youtrack
git stash
bamboo
Web site
....
мне продолжать?)))

Худший ответ:
Всьо что угодно,  хоть собственно написанную программу
Вопрос: Не подскажете, что за шрифт?

Лучший ответ:
Внизу справа дважды повторяется слово «превращаются». Наложим их друг на друга и:

намек ясен? (скорее всего это рукописный урывок)

Худший ответ:
Да тут все буквы разные, одинаковых и нет. 
Кстати, такой же почерк был у моей классной руководительницы по английскому языку. =)
Вопрос: Как правильно использовать transform(translateX):hover?

Лучший ответ:
У вас прыжки происходят по причине того, что вы картинка выпадает из нормального потока и её размеры контейнер не учитывает. Из этого следует вывод, что как только курсор уходит из области картинки, у контейнера div.music-image исчезает псевдокласс :hover.
Короче, вот примерно  так jsfiddle.net/petroveg/L77JW/.

Худший ответ:
Или.music-image:hover > img {
     transform: translateX(-100px);
}
Или приведите код кодом.
Вопрос: Как расшифровать зашифрованный php-файл?

Лучший ответ:
Коды символов записаны в шестнадцатеричной форме, если обратно преобразовать их при помощи онлайн сервиса www.string-functions.com/hex-string.aspx
То получим следующий текст, позволяющий сказать об использовании zend encoder.<?php @Zend;
412?3;
/* ñ!This i?s not a text fil?e!Þí  */
print ?<<

Худший ответ:
zend encoder зашифрован он им скорее всего, а обратное действе делает не cms а модуль установленный на сервер
Вопрос: Взлом шифра Вернама(одноразовый блокнот). Как сделать?

Лучший ответ:
Я знаю только один метод вскрытия таких систем...Ссылка 1 | Ссылка 2

Худший ответ:
Правильно закодированное шифром Вернама (длина гаммы не меньше длины сообщения; гамма получена случайным, а не псевдослучайным образом; гамма используется только один раз) сообщение не декодируется в принципе, доказано математически. Этот шифр считается самым безопасным в криптографии.
Подумайте сами, из одного исходного сообщения "АААААААААААААААА" применением разных гамм можно получить и "Добро пожаловать!" и "Вход воспрещён!!!".
Вопрос: У кого недавно полетела активация на Win7? с отключённым KB971033

Лучший ответ:
Эмм, может стоит использовать лицензионное ПО? Сразу же прошу меня извинить если так и есть, просто вы этого не указали в топике.

Худший ответ:
Насколько я понимаю, слетит/не слетит зависит от материнской платы. В Вашем случае бесперспективняк — либо переустановить систему, либо лицензию покупать.
Вопрос: Почему нельзя объявлять стековые объекты внешних классов для внутренних классов?

Лучший ответ:
Класс считается complete когда при его парсинге достинается закрывающая скобка. При объявлении вложенного класса внутри внешнего, он ещё не полон и объявить член его типа нельзя. Указатель на неполный тип создавать можно, поэтому первый вариант компилируется.
Поправить можно так:struct Outer 
{
  struct Inner;
};

struct Outer::Inner 
{
    Outer _outer;
    Inner() : _outer() { }
};

Худший ответ:
В самом начале сделайте объвление:class Outer;

class Outer {
private:
  class Inner {
    Outer _outer;
...
Может быть поможет.
Вопрос: Помогите с оптимизацией MySQL

Лучший ответ:
Даже не знаю как вам намекнуть, чтобы вы не обиделись. В вашем вопросе нет ничего такого, что не стало бы очевидным, прочти вы хотя бы минимальный объем мануалов по администрированию MySQL. Более того, в тексте, который вы привели содержатся указания на необходимые изменения. Причем, так указаны как переменные, так и рекомендуемые значения. Любой совет тут будет «капитанским», например «посмотрите какие запросы у вас идут мимо индексов (log-slow-queries = /var/log/mysqld-slow-query.log) и проставьте индексы по нужным полям (Adjust your join queries to always utilize indexes).

Худший ответ:
Тюнер просит:

Сменить ОС на 64 битную
Оптимизировать 105 таблиц
В настройках поставить:

query_cache_size = 256M
sort_buffer_size = 2M
read_rnd_buffer_size = 8M
join_buffer_size = 8M


Еще просит найти запросы, где используете JOIN, а в конструкции ON нет индексов на соотвт. полях.
Вопрос: IntelliJ IDEA, как удобно локализовать приложение?

Лучший ответ:
Идея 11.1.x уже сама предлагает извлечь строки в переменные:

выбираем в какие локали вставить новую переменную:


Худший ответ:
Я не видел — сам выравниваю по номерам строк.
Вопрос: Смена страны привязки в Google Play

Лучший ответ:
Инструкция от саппорта гугла для возвращению русского маркета:

1) Войдите в свой ​​аккаунт Google Wallet для управления способами оплаты ( wallet.google.com/manage/paymentMethods )
2) Добавить новую карту или изменить настройки по умолчанию платежного инструмента на один с платежный адрес находится внутри желаемую страну
3) Откройте Play магазин и перейдите к любому элементу доступна для загрузки
4) Нажмите, чтобы начать загрузку, пока не достигнете «Принять и купить» экран (нет необходимости для завершения покупки)
5) Закройте магазин Play и ясные данные для магазина Google Play приложений (настройки> приложения> Google Play магазин> Удалить данные) или очистить кэш браузера
6) Re-Play открыть магазин. Теперь вы должны увидеть Play магазина, который соответствует вашей стране биллинга оплаты по умолчанию инструмента.

Худший ответ:
После возврата в Россию есть вероятность, что в следующий раз купить Nexus уже не получится, т.к. Google будет отменять транзакции.
Вопрос: Как правильно использовать getElementById?

Лучший ответ:
getElementById (обратите внимание на регистр)

Худший ответ:
1. Регистр
2. У вас скрипт скорее всего отрабатывает до того как DOM был построен.
Вопрос: Как связаться с пользователем geektimes?

Лучший ответ:
Всем внимание: Илья Галкин (под ником R4ABI) есть мошенник!
Не проплачивайте больших сумм - ибо никогда не увидите ваших компонентов!
Лично меня киданул на 150Евро, ни трубку не берет ни на майл не отвечает!
Копию переписки (и платежа ему на пейпал) могу выложить!
Сергей.

Худший ответ:
Не связывайтесь с этим человеком. это мошенник.
Вопрос: Как можно качественно повернуть сайт на 90 градусов?

Лучший ответ:
Если принять во внимание то, что ширина у веб-страницы величина конечная, а высота - нет, то можно сказать, что нельзя, кроме как способом, описанным вами.

Худший ответ:
А повернуть сам экран не устраивает? Я имею в виду, что настройки большинства видях позволяют это сделать.
Вопрос: Почему content у псевдоэлемента в IE не там стоит?

Лучший ответ:
Я думаю проблема в ремах 
IE 9 & IE 10 do not support rem units when used in the font shorthand property (the entire declaration is ignored) or when used on pseudo elements.
IE 9, 10 and 11 do not support rem units when used in the "line-height" property when used on :before and :after pseudo elements (https://connect.microsoft.com/IE/feedback/details/...).

Худший ответ:
а у .question position задан?
Вопрос: Как правильно вырезать кусок текста (php)?

Лучший ответ:
Вы шутите?
Почитайте, что делает var_dump.....

Худший ответ:
На сколько я помню, в $product->post->post_excerpt; изначально нет тегов, поэтому у вас и выводится без них.
Вопрос: Как добавить (создать) псевдоэлемент:after с помощью jQuery?

Лучший ответ:
Никак. Только вставив стили в тег style. У вас нет доступа из JS к псевдоэлементам. Потому они так и называются.

Худший ответ:
зачем это делать с помощью Jq? Все что возможно сделать средствами верстки надо делать ими, а не скриптами!
Вопрос: Правильно ли составлена блок-схема программы, и что нужно изменить, чтобы она стала идеальной?

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

Худший ответ:
Не идеальна, потому что сначала должна быть составлена блок-схема, а потом по ней код. У вас наоборот.
Вопрос: Аппаратный райд vs Программный?

Лучший ответ:
Лучше программный, либо отдельно поставить аппаратный контроллер. Доверять рейдам на материнке не стоит.

Худший ответ:
Встроенный в материнку рейд в нетоповых моделях обычно представляет из себя софтварное убожество. Ну как правило, я не знаю чего там на вашем асусе.

По опыту работы я скажу что программный рейд gmirror во фре немногим уступает некоторым аппаратным. Разве что у него батарейки нет и отдельного процессора и памяти. 

Однако вот в этих рейдах что идут на борту, зачастую тоже нет ни батарейки (по любому), ни проца своего ни памяти.

И тут возникает вопрос. А правильно ли схватят его драйвера FreeBSD? И если да, можно ли будет увидеть отдельные диски за этим рейдом? Как мониторить статус аппаратного рейда?

Вот этих вот всех вопросов не возникает при использовании gmirror.

Я за gmirror.
Вопрос: Как найти самое актуальное/обсуждаемое в интернете?

Лучший ответ:
В Google Reader-е появился пункт «Рекомендованные записи», там записи, кот. понравились большинству пользователей ридера (и вроде на основе ваших предпочтений)

Худший ответ:
t30p.ru/
анализ идет по блогам, там же есть видео и картинки
Вопрос: Что не так в коде Javascript?

Лучший ответ:
Потому, что запрос асинхронный, и первые два console.log вызываются до того, как получен ответ с сервера.

Худший ответ:
Да потому что js не будет ждать когда у вас пройдет запрос и вернутся данные, а продолжит свое выполнение, а это значит, что пока запрос не обработан result будет false. Тут вам надо использовать либо Promise, либо callback функцию.
Вопрос: Почему Яндекс предлагает на странице результатов искать в других поисковиках, а Google нет?

Лучший ответ:
Потому что в Яндексе решили так, а в Гугле по другому. Или какой ответ вы расчитывали получить?

Худший ответ:
Яндекс чаще выкатывает всякие новые фичи и алгоритмы, чтобы их оценить, нужно получать больше фидбека от пользователей.

Панель, предлагающая поискать в других поисковиках, нужна как одно из средств, оценивающих качество поиска.
Вопрос: Конвертация NTFS в EXT4?

Лучший ответ:
Не хотите просрать все данные — ищите второй диск.

Худший ответ:
Сохраните ваши ценнейшие данные на DVD-болванки. Шпидель с сотней штук стоит в районе 1К. Это 470 Гб. По времени не сильно быстрее замутов с постепенным форматированием, но таки как-то поудобнее, имхо.
Вопрос: Адекватная цена за вёрстку шаблона Wordpress?

Лучший ответ:
Каждая работа стоит ровно столько за сколько вы можете ее продать.
В среднем, данная работа, у толкового спеца, при верстке на  твиттер бутстрапе, при наличии оперативной связи с клиентом, при предоставленных макетах и четком тз,  с правками и подстройкой займет 2 рабочих смены.
Отсюда считайте во сколько вы оцениваете свое время. 
Я бы меньше 400 бакинских не взял

Худший ответ:
На Wordpress и так полно хороших бесплатных шаблонов, которые можно под себя доделать. 
Так что цена МАКСИМУМ  3000р
Вопрос: Как сменить переключение клавиатуры в Windows на клавиши Shift по отдельности?

Лучший ответ:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  ThreadId, InputLocaleId: THandle;
const
  English = $4090409;
  Russian = $4190419;
begin
  ThreadId := GetWindowThreadProcessId(GetForegroundWindow());
  InputLocaleId := GetKeyboardLayout(ThreadId);

  if Odd(GetAsyncKeyState(VK_LSHIFT)) then begin
    if InputLocaleId <> English then
      PostMessage(GetForegroundWindow(), WM_INPUTLANGCHANGEREQUEST, English, 0);
  end else if Odd(GetAsyncKeyState(VK_RSHIFT)) then begin
    if InputLocaleId <> Russian then
      PostMessage(GetForegroundWindow(), WM_INPUTLANGCHANGEREQUEST, Russian, 0);
  end;
end;


Потестил, работает и со стандартными окнами и с консолью.
Могу добавить «в трей» и откомпилить.

P.S. Можно глобальными хуками через DLL, но это явно не 40 минут.

Худший ответ:
Первое что пришло на ум — написать, не должно занять больше чем 40 минут.
Вопрос: как  можно  сделать return с заменой

Лучший ответ:
Вы заключили регулярку в кавычки, и она стала строкой.pp.replace(/div/gi, 'нечто');

Худший ответ:
return pp.replace(/div/gi, 'нечто');
Вопрос: Cobain Backup не делает бекап с сети

Лучший ответ:
служба Cobain Backup от какого имени запускается?
установите в настройках запускать задание от своего имени.

Худший ответ:
Скажите, а у пользователя есть права на просмотр сетевой папки?
От имени какого пользователя создаются резервные копии приложением?

Возможно проблема в запрете доступа, а не в прописывании адреса…
Вопрос: Как написать поддерживаемый HTML и CSS код?

Лучший ответ:
Используйте LESS! Ну или там SASS/SCSS по желанию. + Сборщик проекта Grunt.
Это позволит вам разбить CSS код на неограниченное количество файлов и папок. А дальше Grunt все это обработает, собрав все это хозяйство в один файл, скажем style.css.
Чем удобен такой подход? У вас в директории проекта будет папочка ксс, внутри неё будут другие папочки или файлы, например defaults, header, footer, news и т.п. до бесконечности. В каждом из этих файлов будет только тот кусок кода, который отвечает за нужный вам блок. Проект в таком виде очень(!) удобно поддерживать и вносить правки. Кроме того удобно в этих же папочках рядом с нужным файлом стиля держать еще и нужные картинки. Скажем в папке header, лежат файлы: header.less, bg.png, logo.png и т.д. Очень удобно.
Далее, как это все работает:
LESS: www.lesscss.ru
Grunt: gruntjs.com + туториал: nano.sapegin.ru/all/grunt-0-4
Пользуйтесь!

Худший ответ:
Нужно гибко подходить к каждому проекту и исходить из его специфики. Если не пользоваться готовыми методологиями, то я обычно просматриваю прототипы и дизайн проекта и делю на смысловые блоки, они становятся фундаментом для систематизации CSS, это решает проблемы "пересечения свойств" и дает возможность разбить css используя определенную логику.
Вопрос: Маршрутизатор с 4-ю портами для 3G модемов или sim карт?

Лучший ответ:
Подскажите цель такого мероприятия, чтобы было яснее, что советовать.
Ради хохмы, можно конечно в любой агрегат на OpenWRT USB-хаб подключить (разумеется, активный [спасибо, Александр, за уточнение]), а в него натолкать модемов.

Худший ответ:
Теоретически можно в Mikrotik хаб воткнуть.
Вопрос: Как ускорить загрузку картинок в браузере?

Лучший ответ:
Можно картинки отдавать с другого домена img.domain.ru

Худший ответ:
Можно еще если современный проект то в html5 есть предварительная загрузка страниц, подгружать страницы (и картинки с них) в фоне.
Вопрос: Реализация транспорта данных по сети на C#

Лучший ответ:
Если я правильно вас понял, то WCF c BasicHttpBinding.

Худший ответ:
Извините, а зачем нужен HTTP? Как-раз он и будет тратить трафик. Может использовать TCP? Туториал вот здесь www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server. Использование Base64 нецелесообразно, т.к. TCP может передавать бинарные данные.
Вопрос: Как бы такое лучше сверстать?

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

Худший ответ:
Если это svg - смело вставляй. Если нет - я не завидую) В принципе можно разделить на блоки Иконка-заголовок-текст с линией внутри svg-шкой. Только придется о-о-очень тщательно проверять под всеми браузерами и разрешениями.
Короче - требуй у дизайнера свг.
P.S.Ну или если заказчик туп как пробка, а готовую работу в портфолио вставлять не будешь - сделай, как в комменте выше - вставь картинку :)
P.P.S. А иконка в центре меняется при наведении на блоки? Если да, то забудь первый пост-скриптум. Юзай свг или псевдоэлементы для линий, текст - текстом. И надейся, что заказчик этот текст менять не будет никогда)
Вопрос: Выбор домашнего WiFi роутера

Лучший ответ:
Из совсем новых и перспективных:  ASUS RT-AC66U, но он чуть дороже максимальной суммы, есть более старая модель ASUS RT-N56U которая вполне вкладывается в бюджет. Как уже упоминался Zyxel Keenetic Giga II, но он работает на частоте 2.4 ГГц (5 ГГц должна поддерживать модель Ultra).

Худший ответ:
полчаса назад взял себе TP-Link 1043ND Dual Band. Значительно дешевле Вашей заявленной предельной суммы, но для домашнего интернета вполне достоен.
Вопрос: Программируемые роботы\конструкторы?

Лучший ответ:
Правильно делаете, что смотрите в сторону Arduino. Эта штука позволяет очень легко понять что такое микроконтроллеры и осознать тот офигеннейший спектр возможностей, которые они открывают. При это без отпугивающих слов типа «программатор», «ассэмблер» и т.п.
Язык там крайне простой. Да, оно сделано на основе Си, но команды там достаточно очевидные и на примерах он осваивается в одночасье. При этом не теряя возможности к масштабированию.
В своем время сам интересовался подобным вопросом, инашел такую клевую штуку как IE-POPBOT (ссылка на магазин: www.terraelectronica.ru/catalog.php?ID=1171&ClearParam=1 ссылка на pdf с описанием: www.terraelectronica.ru/pdf/INNOEXP/IE-POPBOT.pdf). Это готовый робот на базе арудины с комплектом сенсоров, позволяющий реализовать программы автономного катания по квартире с учетом различных препятствий (чувствительность к стенам, обрывам, контрасту цвета на поверхности и т.п.). Далее, научившись делать стандартные вещи по инструкции, Вам не составит труда придумать и что-нибудь свое. В общем простор чтобы поиграться весьма велик, и, наверняка, побудит на более углубленное изучение отдельных аспектов и созадние чего-нибудь совсем своего и очень крутого :)

Худший ответ:
Детские игрушки + Чип и Дип + AVR. Такие вещи можно собирать