Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Drupal 7! Как создать динамические url?

Лучший ответ:
Просто не надо так делать. Один ресурс = один URL. Можно разве что через GET-параметр передавать tid, если на целевой странице в зависимости от него что-то меняется. А это легко делается в шаблоне ноды, так как у тебя есть доступ к параметрам через функцию args и доступ ко всем полям ноды через $content['field_name']['#items']. Если используешь views, то просто выводи unformatted list, renered entity.

Худший ответ:
Модуль Views решает такие задачи.
Вопрос: Подобрать систему формирования отчетов под NET?

Лучший ответ:
У многих вендоров есть готовые решения для формирования и печати отчетов:
www.infragistics.com/products/reporting/
www.devexpress.com/Products/NET/Reporting/

На www.componentsource.com наверное можно еще найти варианты и отзывы по ним. У меня пока есть хороший опыт работы с девками, да и по функционалу должно подойти.

Худший ответ:
Совсем не бесплатно — www.devexpress.com, но использовал их именно для унификации отчетов в asp.net и winapp.
Вопрос: Заливка файла на сайт из DLL

Лучший ответ:
Как вариант, собрать DLL, использующую библиблиотеку cURL, ну или же непосредсвенно использовать cURL (тут подробнее).

Худший ответ:
Вопрос в том, как делать http запросы из C++, или в том, как вообще делать dll? Для первого есть curlpp, работа с файлами гуглится; второе тоже несложно.
Вопрос: Что это за вызов функций в переменной?

Лучший ответ:
// Допустим у вас есть объект:
var a = {};

// Вы можете сохранить функцию в одно из полей этого объекта
a.foo = function () {
    console.log(123);
};

// Теперь вы можете вызвать эту функцию используя точечную нотацию:
a.foo();

// Или используя нотацию в квадратных скобках:
a["foo"]();

// Теперь допустим вы хотите сохранить название функции в переменной:
var bar = "foo";

// Как теперь снова вызвать foo, зная только bar? Вот так:
a[bar]();

Худший ответ:
QuickSum[QuickSum.currentFunction] - массив функций судя по всему. Из него получают функцию и вызывают ее. Как-то так.
Вопрос: Не заплатили за фриланс, как лучше поступить?(есть доступ к google play console)

Лучший ответ:
Добавьте рекламу на свой аккаунт и зарабатывайте.

Худший ответ:
Грустно слышать, тем не менее отрицательный опыт, тоже опыт, не менее ценный чем положительный : )
Как я понимаю не каких бумажек не подписывалось?
Молодой человек если есть какая то возможность, документально или как то еще доказать ваше авторство,
будет превосходно, с этим можно бомбить во всех направлениях, и обвинять во всех смертных грехах посредника, естественно с уведомлением напрямую заказчика, и google play support, и обвинение строить не на том что не заплатили, а пытаются украсть. 
На данный момент от вас мало инфы, что бы как то пытаться манипулировать ситуацией, а именно (доказать ваше авторство). В противном случае вас могут самого обвинить, со всеми вытекающими.
Вопрос: Полезный набор рецептов или хороший учебник разработчика в Linux?

Лучший ответ:
Из тех, что мне попадались, могу порекомендовать:

Линукс не для идиотов — несмотря на провокационное название, неплохо описаны основные моменты работы в линуксе. Рассмотрены многие типичные проблемы, причины возникновения и пути решения.

Bash Guide for Beginners (русский перевод) — руководство пользователя bash для начинающих. Хорошо рассмотрена одна из наиоблее популрярных командных оболочек, кратко описаны ее возможности в том числе и в написании простых скриптов для облегчения повседневной жизни.

На хабре, естесственно, тоже можно найти хорошие топики :)

Ну и есть смысл посмотреть мануал к используему дистрибутиву — там будет куча вещей, специфических именно для вашей системы (например, для debian, для gentoo).

Худший ответ:
Также помимо изучения bash, обязательно посмотрите в сторону sed и awk — весьма сложны для понимания и запоминания в некоторых моментах, но позволяют творить чудеса, реализуя недостижимые другими путями вещи. 

Еще хотя бы базово пощупайте make — тоже пригодится, ant порой бывает лишний

Собственно все
Вопрос: Что штудировать сначала — learn.javascript.ru или Д. Флэнаган?

Лучший ответ:
Конечно Фленаган.   learn.javascript.ru советую даже не открывать.

Худший ответ:
Вопрос задавали тут много раз: Как правильно учить Javascript?
Вопрос: Как определить число уникальных читателей серии топиков?

Лучший ответ:
В топик нельзя встроить js и администрация хабра, скорее всего, не будет делиться статистикой.

Тем не менее можно с некоторым допущением посчитать количество читателей.
Встроить картинку 1x1 пиксель и отдавать её скриптом.
Картинка до хабраката — количество увидевших статью.
Картинка под хабракатом — количество заинтересовавшихся и, вероятно, прочитавших её.
Картинка скачивается впервые — условно уникальный читатель.
Картинка запрашивается с одним из заголовков кэширования — повторное прочтение статьи.
По заголовкам можно узнать откуда пришел читатель.

Незадолго до вступления новых тарифов App Engine в силу я задался целью сделать интерактивный график с посетителями для статьи о ProdEagle средствами AppEngine и ProdEagle. Прототип работал, считал посещения/прочтения и строил график =) Но статью я так и не опубликовал.

Худший ответ:
Большое спасибо всем!
Попробую воспользоваться.
Вопрос: Какой способ организации сайта без перезагрузки лучше?

Лучший ответ:
Что лучше, ложка, вилка, или нож?)) Каждый способ оптимален под свои задачи.

Худший ответ:
Одностраничное приложение
Вопрос: Изменяется яркость монитора?

Лучший ответ:
Проверьте не включена ли случайно «экономия электроэнергии» (SUPER ENERGY SAVING), у меня нименно она вызывает подобный «эффект» (модель правда другая).

Худший ответ:
Эта фигня называется Dynamic Contrast [Ratio] или просто DCR. Обычно должна отключаться. У меня на другом мониторе, когда она включена заблокирована и вовсе заблокировано управление яркостью.
Smooth Color Change — это, похоже, просто отсылка к тому, что монитора на матрице IPS, прямого отношения не имеет.
Вопрос: Где брать заказы на сайты?

Лучший ответ:
Все сайты для фриланса перечислили выше, но есть и другие варианты:
1. Обзвонить или написать письма в разные фирмы у которых плохого качества сайты. И предложить сделать им новые сайты по низким ценам или совсем бесплатно. Только не занимайтесь глобальным спамом, а отнеситесь к каждому клиенту индивидуально - это чувствуется когда читаешь письма. Что вы получите взамен:
- увеличится количество работ в портфолио,
- люди которые будут заходить на эти сайты будут видеть логотип\ссылку на автора этих работ и могут к вам через них зайти и сделать заказ (так сказать создадите рекламные площадки),
- сарафанное радио - через тех кому вы сделали сайты,
- через какое-то время владельцы этих сайтов к вам вернутся чтобы вы что-то добавили\заменили на сайте тем самым у вас будут постоянные заказы.
2. Сделать свой личный или профессиональный блог с баннером на портфолио. Этим вы повысите лояльность к себе и читающие вас люди будут заказывать у вас работы.

Худший ответ:
elance.com пожалуй, самый серьезный из фрилансерских сайтов, но там нужно хороший рейтинг и отзывы, чтобы получать нормальные заказы. Так что придется сделать штук 5 проектов в основном за отзывы (можно и мелких).
Я работаю на elance в общей сложности уже 12 лет. Сейчас не занимаюсь поиском заказов, а отвечаю только на проекты, в которые меня приглашают. И то, есть 3 постоянных клиента, на которых я работаю.
Вопрос: Какая есть альтернатива нативному array_intersect в PHP?

Лучший ответ:
У Вас есть какое-то ограничение в функции, которое даёт выйгрыш. Это нормальное явление.
Я, например, использую свою самописную функцию json_encode с ограничением на мерность массивов. За счёт этого (исключается лишняя проверка is_array) моя самописная функция примерно в 3 раза быстрее нативной.

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

Лучший ответ:
Чтобы картинки копировались в public при компиляции ассетов в config/application.rb добавьте:config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)

Худший ответ:
assets precompile меняет названия картинок, image_tag знает че по чем а jquery нужно указывать новое название картинки!
Вопрос: Upwork + Сбербанк — кого-нибудь коснулись санкции США (OFAC)?

Лучший ответ:
Апворк отказал в переводе, что там сбербанк будет рассказывать уже неважно

Худший ответ:
Я вводил реквизиты Тинькофф. Пока нет проблем.
Вопрос: 16 процессоров лежат и пылятся под Android! Как их задействовать для распределённого рендера?

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

Худший ответ:
Ну и в теории получите вы с этих девайсов суммарную производительность как у одного процессора intel core i7. А на практике ничего не получите, потому что ядро cycles не собиралось и вряд ли когда будет собираться под процессоры, которые стоят в планшетах и мобильных телефонах, потому что это бессмысленно. А без ядра cycles на ваших девайсах вы посчитать ничего не сможете.
Вопрос: Контроль версий базы данных (сайта)

Лучший ответ:
проксирование запросов?

Худший ответ:
Ну если у Вас сайт не очень большого объема, то можно просто поставить крон, который делает своего рода бэкапы с определенной периодичностью и просто хранить файлы включая файлы баз данных. А вот если же сайт большого объема (типа файл шеринга), тут уже посложнее. В этом случае можно будет просто написать такую программку которая сохраняет в новый архив только новые и обновленные файлы (например путем исключения по дате изменения файла относительно последней версии бэкапа)
Вопрос: Какой шаблонизатор для JS выбрать?

Лучший ответ:
Вот 2 лучших шаблонизатора:
- Handlebars.js
- Dust.js
Выбирайте любой. Лично я за Handlebars.

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

Лучший ответ:
Нет таких способов.
Это если говорить о каком то вменяемом заработке, который хотя бы окупал расходы и неудобства.
Майнинг был редким исключением, лишь подтверждающим правило, да и недолго он продержался.
Основная суть в том что простаивающее железо потребляем минимум электроэнергии, а как только даешь нагрузку - потребление подскакивает в разы. И начинается - огромные счета за электроэнергию,  повышенное тепловыделение, шум.
В промышленных масштабах это гораздо легче оптимизировать, поэтому промышленные ресурсы будут всегда дешевле домашних.  Как бы вы не снижали себестоимость в домашнем производстве, китайскую фабрику вам не одолеть.
С компьютерными ресурсами точно так же.

Худший ответ:
согласен, но есть одно но. 
Рассматривая краткосрочную личную перспективу -  ты не заработаешь.
А если задумаешься о том, что время ЦПУ можно бы вложить в мощный вычислительный пул для поиска решения насущных научных задач. Которые, возможно, изменят жизнь наших потомков к лучшему.. В общем иди и напиши такую систему, которая не будет жечь Ватты в пустую, или присоединяйся к seti@home или какой другой подобной штуке.
Вопрос: Как вы делаете конспекты?

Лучший ответ:
Emacs + Dropbox + Org-Mode + bitbucket. Это касается не только конспектов, 
а вообще всей деятельности, которая происходит: напоминания на письма, на которые следует ответить; 
встречи, дедлайны по проектам, ссылки на книги(на компьютере) и статьи(в интернете), и пр.
Ну а bitbucket — если все навернется, и все мои компы уничтожит НЛО, 
то можно будет оттуда стянуть все — и продолжить работу.
Ну и Emacs годен в качестве IDE, 
так-что проверять конспекты можно будет не отходя от кассы.

Худший ответ:
Как вариант — ГуглоДоки. Там тебе и схемочки-таблички рисовать и доступ быстрый, и навигация )
Вопрос: Тонкие места в сети

Лучший ответ:
ИМХО, надо смотреть на:
1. Рабочие станции: автозагрузка, службы, актуальность обновлений, наличие антивируса и обновлений его баз.
2. Сервера: общие папки, расшаренные принтеры. Раз нет домена, то настройки рабочих групп на компьютерах юзеров.
3. Сетевая инфраструктура: свитчи, топология, роутер, настройки firewall, dmz если нужно, каналы в интернет, правила маршрутизации.
4. Бухгалтерия :-) Отдельным пунктом, т.к. нужно проверить: банк-клиенты, 1С (часто бывает расшарена на несколько бухов), всякие системы подачи отчетности и их ключи и сертификаты.
5. Документация. Карта топологии сети, функциональная схема.
Вроде бы всё, что пришло на ум…

Худший ответ:
для того чтобы знать слабые места, нужно знать нормальное состояние работы всего 

систему мониторинга (zabbix) поставьте/проверьте с уведомлениями на электропочту:
 — оборудование, 
 — сервера, 
 — температуру, 
 — сеть, 
 — почта/спам,
 — упсы и т.д.

накопите данные на пару дней, нарисуйте топологию, предложите оптимизации
PROFIT!
Вопрос: Примеры классов в программировании?

Лучший ответ:
Ассемблер - классная штука. Но жизнь коротка.

Худший ответ:
Сторонники "процедурного подхода" странные, да не отрицаю что все можно и без ООП сделать, но про "читаемость кода" все забыли походу, в "процедурном подходе" очень часто возникает дикий говнокод с которым без вискаря не разобраться что и откуда берется(если проект большой), ООП не нужен для малых проектов, там он явно будет не зачем(если не нужно будет развивать этот проект).
Вопрос: Что делать, если после переустановки Windows 7 пропала часть объема HDD?

Лучший ответ:
Зайти в Панель управления\Все элементы панели управления\Администрирование
Выбрать "Управление компьютером" там управление диском, и создать раздел

Худший ответ:
Зайти в Панель управления\Все элементы панели управления\Администрирование
Выбрать "Управление компьютером" там управление диском, и создать раздел
Вопрос: Удаление файлов из репозитория Git?

Лучший ответ:
Это смотрели? git-scm.com/book/ru/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2...
lezhnevs.ru/git/udalenie-papki-iz-repozitariya

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

Лучший ответ:
Я правильно понял, зачем такое может понадобится - это связка MANY-MANY?
Если да - выбросьте двойную связку и желательно так не делайте. Вместо нее используйте дополнительную таблицу для связки. Например: есть 2 таблицы users[id, name] И groups[id, name]. Для них создайте еще одну groupsHasUsers[groupId, userId].

Худший ответ:
Что-то не так у вас с архитектурой базы данных.... опишите задачу менее абстрактно. Кто с кем связан и как так вышло что у вас такая кривая структура базы?
Вопрос: Поиск в MySQL через match() against()?

Лучший ответ:
Используйте Sphinx. Полнотекствоый поиск в MySQL — та еще кака

Худший ответ:
LIKE дает неймоверную нагрузку на СУБД.
Все зависит от кого какой engine таблицы вы испольуете. Для полнотекстовго поиска с учетом мофологии лучше всего использвать sphinx.
Если делать через match это лучше всего MyISAM.
SELECT word FROM table WHERE 
MATCH (word) AGAINST ('cat*' IN BOOLEAN MODE)
а вообще www.mysql.ru/docs/man/Fulltext_Search.html
Вопрос: Вопросы яндекса на career day санкт-петербург?

Лучший ответ:
первая задача решается элементарно :)
1. выбираем одного ведущего (не обязательно среди студентов)
2. Ведущий загадывает случайное число в уме (достаточно большое, сравнимое со обычным средним баллом * N) и говорит его первому студенту 'на ушко'
3. Каждый последующий студент прибавляет к этому числу свой балл и сообщает результат другому
…
4. по окончании последний студент так же шопотом говорит свою сумму ведущему
5. ведущий вычитает свое число из результата и делит его на N

т.е. никто не видит всей картины, а значит никаких вычислений провести не сможет (даже если кто то услышит случайно чью-то сумму, это ничего не даст).

Худший ответ:
По второй — правильных вариантов очереди будет столько же, сколько правильных скобочных последовательностей, а именно fib(50) (где fib(1) = 1, fib(2) = 2, fib(i) = fib(i-1) + fib(i-2)).
Доказывается по индукции.

Всего вариантов очереди — число сочетаний, 100! / (50!)^2.

Ответ — fib(50) / 100! * (50!)^2
В числах получается что-то очень маленькое, типа 2e-19
Вопрос: Как рассчитать ёмкость конденсатора?

Лучший ответ:
Это будет несколько Фарад, и совсем не дешевле аккумулятора/батарейки. 
Формулы можно посмотреть например здесь: tel-spb.ru/tau.html

Худший ответ:
3 * ток * время / напряжение = емкость
Вопрос: Можно ли на гитхабе узнать количество проссмотров, загрузок?

Лучший ответ:
Заходите в свой проект, справа жмёте «Graphs» и там есть вкладка «Traffic», где вы можете смотреть сколько посещали, откуда приходили, сколько раз клонировали и т.д.

Худший ответ:
Насколько я знаю, такого параметра, как "число просмотров", на гитхабе нет. Есть, как вы сами, наверное, видели, число наблюдателей, форков и добавивших в избранное.
Вопрос: div «прилипший» к scroll'у

Лучший ответ:
var elm = document.createElement('div');
elm.style.position = 'fixed';
elm.style.padding = '5px';
elm.style.right = '0';
elm.style.zIndex = '11110';
elm.style.background = '#fff';
elm.style.boxShadow = ' 0 0 1px rgba(0, 0, 0, 0.4)';
elm.style.borderRadius = '5px 0 0 5px';
elm.innerHTML = 20;

document.body.appendChild(elm);

window.onscroll = function () {
              elm.style.top = (document.documentElement.clientHeight - 36) * window.document.body.scrollTop / window.document.body.scrollHeight + 18 + 'px';
}


Например так

Худший ответ:
А если усложнить: где-то на странице есть div со скроллом. Внутри лежит див, который перемещается вместе со скроллом. Несколько решений уже написали выше. А что если мне надо:

1. Заменить скроллбары на свой дизайн
2. Див, который прилипает к бегунку, вынести вправо. Т.е. за контейнер
3. Чтобы работало IE8+

?
Вопрос: Какие книги почитать по управлению временем(таймменедженту), саморазвитию?

Лучший ответ:
На мой взгляд нужно поступать так: читайте до позеленения все подряд. Даже если вода! Впоследствии наступит момент, когда мозг откажется читать еще что-либо и скажет просто "Хорошь читать. Делай давай!". Вот! С этого момента у Вас и начнется компилироваться вся прочитанная, услышанная информация в  некую систему по которой лично Вам удобно и Вашему ритму жизни.
Нет ни одной удобной системы для всех. Но везде сводят к одной правильной и верной мысли "Выдели свои жизненные потребности. Затем поставь цели позволяющие их достичь. Ставя очередную задачу старайся выполнять меньше, но в полном объеме приближающую к целям!".
Не надо искать супер-гуру. Надо искать себя. А это возможно только при пробовании, эксперементировании

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

Лучший ответ:
Запустите торрент на 10 тысяч потоков и загнется ваш роутер.

Худший ответ:
елси прошивка дефолтная — то в чем заключается ваш моддинг? В том что вы кастомизировали корпус? Тогда какие задачи у стресс-теста?
Вопрос: Что случилось с windows?

Лучший ответ:
Что случилось с windows?Вы ее сломали.Собственно, а где же моя родная windows8.1? И как на нее переключится, если это возможно? Загружаетесь с установочного диска win8.1, выбираете восстановление системы и восстанавливаете.А в windows boot manager почему то теперь только одна система : hyper-vТак и должно быть.  Hyper-v  это гипервизор. Он не устанавливается в windows, он работает на голом железе.
А windows работает поверх него.

Худший ответ:
Что случилось с windows?Вы ее сломали.Собственно, а где же моя родная windows8.1? И как на нее переключится, если это возможно? Загружаетесь с установочного диска win8.1, выбираете восстановление системы и восстанавливаете.А в windows boot manager почему то теперь только одна система : hyper-vТак и должно быть.  Hyper-v  это гипервизор. Он не устанавливается в windows, он работает на голом железе.
А windows работает поверх него.
Вопрос: Как рассчитать скорость Интернета в офис?

Лучший ответ:
Порезать торренты, видеохостинги и соц сети.

Худший ответ:
Скорее всего кто-то стримит видео, аудио, торренты. Можете не блокировать соцсети и ютуб. Просто периодически смотрите кто много жрет траффика и лично разбирайтесь. Вполне возможно, что это 10-12 человек просто забивают канал и всё.
Вопрос: Есть ли смысл осваивать визуальные редакторы HTML?

Лучший ответ:
Не стоит.
Визуальные редакторы - зло. В итоге вы получите код, в котором ни один нормальный веб-девелопер не сможет разобраться.
Про натягивания всей этой кучи непонятных и ненужных тегов с нулевой структурой на какой-то движок (даже на самопис) - вы испытаете невероятное "наслаждение".

Худший ответ:
только если вы дизайнер и верстка это не то чем вы будете заниматься.
Вопрос: API КЛАДР есть?

Лучший ответ:
Насколько я помню у КЛАДР небыло API. Вместо него сейчас это

Худший ответ:
В принципе для КЛАДРа API особо и не нужен, текущая база ФИАС более-менее лучше, чем был КЛАДР.
Вопрос: Чем заменить Ubuntu?

Лучший ответ:
попробуй mint

Худший ответ:
почему бы не перейти на xubuntu или lubuntu, ну или просто заменить DE на xfce/lxde? если во всем остальном именно Ubuntu устраивает.
Вопрос: Проект в одиночку. Как?

Лучший ответ:
Я бы посоветовал вам выкинуть из головы всю мишуру вроде юнит-тестов, кошерной архитектуры и абстрактных фабрик. Главное — не тесты, не документация и не мана небесная, снизошедшая на вас после написания богоугодного кода. Главное — сам код, который выполняет поставленную задачу. Вот и пишите код, руководствуясь здравым смыслом. Если потом почувствуете, что вам нужны тесты — напишете тесты. А нет, так нет.

Худший ответ:
Для меня ещё важный момент — измеряемость результата.
Если просто сесть городить код, то можно сдуться где-то в процессе, чисто из-за потери «энтузазизьма». И тогда либо проект бросается на полдороги, либо пургу начинаю гнать.
С этих позиций те же тесты немного помогают — видно более-менее, какую часть тестов я уже успел засатисфачить.

А ещё мне очень помогает планирование мелких задач в часах, идею у Джоэла Спольски почерпнул: russian.joelonsoftware.com/Articles/PainlessSoftwareSchedules.html
Вопрос: Особенности сравнение дат в php?

Лучший ответ:
string date ( string $format [, int $timestamp = time() ] )
Поскольку вы неправильно используете функцию date(), сравниваются просто строки. Строки сравниваются посимвольно. Ноль меньше, чем два, поэтому сравнение немедленно возвращает true.
Правильно сравнивать даты так:$first = DateTime::createFromFormat('d.m.Y', '01.01.2016');
$second = DateTime::createFromFormat('d.m.Y', '25.12.2015');
var_dump($first < $second);
Или так:var_dump(strtotime('01.01.2016') < strtotime('25.12.2015'));

Худший ответ:
первый параметр - это формат даты.
все, что не входит в известные модификаторы - интерпретируется как число.
при строковом сравнении второе больше первого...
попробуй strtotime и формат даты - YYYY-MM-DD
Вопрос: Как еще можно разделить страницу на блоки используя проценты?

Лучший ответ:
jsfiddle.net/Leg5mvsh
По пунктам:Не стоит использовать position: fixed без прямой необходимости. Как уже написали выше не лишним будет указать min-width/min-height.Два левых блока имеют одинаковую ширину, верно будет их обернуть в общий div. В дальнейшем это упростит расширение шаблона, если, например, под меню понадобится ещё один блок.Не стоит сильно увлекаться id. Они имеют свои плюсы в javascript'е и могут использоваться как якори, но в целом, даже для одиночных блоков, лучше использовать class.Со стилизацией меню проще работать, если добавить ссылкам display: block и все стили, включая :hover/:active, использовать на них.Ну и по мелочам: есть лишние свойства, такие как display: block у элементов с position: absolute/fixed и width: 100% у блочных элементов. Эти вещи по-умолчанию устанавливаются браузером.

Худший ответ:
Способы есть и разные (можно было и с float), сделали вы правильно, только min-width укажите (а то меню при уменьшении расширения съезжает).