Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как правильно сделать вкладочное приложение в angularjs?

Лучший ответ:
Насколько я понимаю, ui-router, sticky states, deep state redirect с таким не справятся
В полне даже справятся.
Я бы  не делал вкладок как просто вкладки. Я бы сделал псевдо вкладки. Тоесть внешний вид как вкладки но у каждой вкладки свой шаблон.
jsfiddle.net/ktc067x1
В этом примере ты увидешь как можно обработать каждую вкладку отдельным шаблоном. Закоментированый код templateUrl грузит файл шаблона а для примера я использую template.
Но наверно захочется с каждой вкладной свой кнотролер. Тогда можно такcontrollerProvider: function($stateParams) {
      var ctrlName = "Controller" + $stateParams.tab;
      return ctrlName;
}
Тогда можно для каждой вкладки свой контроллерapp
    .controller('Controller1', function(){})
    .controller('Controller2', function(){})
И все будет красиво и акуратно.

Худший ответ:
Рабочий код: plnkr.co/edit/lnijKg?p=info
Идея:
* Использовать ng-repeat для ренеринга вкладок
* Использовать ui-router чтобы привязать состояния ко вкладкам и директивам с их содержимым
* Игнорировать ui-view, и контроллеры с темплэйтами
* Перехватывать переходы состояния для переключения вкладок из сервиса.
* Контент вставлять с помощью хитрожопой перекомпилирующей прокси-директивы.
Вопрос: Можно ли определить, по каким ключевым фразам пришел на сайт посетитель?

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

Худший ответ:
Можно распарсить соответсвующие куки. Например, куки utmz, которые использует Google Analytics, содержит фразу, по которой человек пришел на сайт, в параметре "utmctr".
Да и сам рефферер часто содержит фразу, по которой пришел человек. Она в ссылке записана.
Вопрос: Полезность/вред отключения HDD системой питания в Windows 7?

Лучший ответ:
Теоретически — количество парковок ограничено, поэтому этого надо как бы избегать.
Практически — оно ограничено достаточно серьезным числом, и раз в 20 минут — это не число вообще (проблемы были с зелеными винтами, которые парковались раз в 3-5 секунд, как только замечали простой, так что даже при работе то парковались, то распарковывались, да и то эту «проблему» через годик замечали при активном использовании). Экономия энергии так же крошечная.
Так что практического смысла на стационаре экономить (утрируя) 2 ватта в месяц и продлять срок жизни с 20 лет до 50 нет смысла.

Худший ответ:
У меня SSD как основной, и для всего остального - WD Blue. WD Blue уходить спать через минут 20-30. Дело тут конечно не в экономии на электроэнергии, а в шуме. Когда жесткий диск уходит в сон - работа ПК не слышна, а когда он работает - слышен шум (даже в шумозащитном корпусе).
То что из-за периодического перехода в режим сна винт быстрее умрет - я думаю не совсем актуальная проблема, т.к. зачастую винты сами по себе быстрее сдыхают, чем хотелось бы. Т.е. с практической стороны, мне кажется нет смысла не разрешить системе отключать не активный жесткий диск: новые диски не так уж и дороги, и раз в пару лет можно купить.
Вопрос: У меня одного такое с гуглом?

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

Худший ответ:
Такое бывает когда провайдер дает внешний ip на n-колво пользователей или с вашего ip уже пол гугла перепарсили
Алексей Запустите парсер по выдачи гугла на какой-то запрос хоть на пол часа и у вас такое будет :-)
Вопрос: Удаленная БД, как лучше реализовать?

Лучший ответ:
Это называется репликация.

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

Лучший ответ:
Whois сервисы. Их очень много. В linux консольная утилита whois. whois cliLast login: Tue Jul 22 00:06:53 2014 from 192.168.0.51
whpgin@Server-Enginex:~$ whois 78.25.122.213
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '78.25.120.0 - 78.25.123.255'

% Abuse contact for '78.25.120.0 - 78.25.123.255' is 'abuse-mailbox@megafon.ru'

inetnum:        78.25.120.0 - 78.25.123.255
netname:        MF-NWGSM
descr:          North-West Branch of OJSC MegaFon Network
country:        RU
admin-c:        NMNW-RIPE
tech-c:         NMNW-RIPE
status:         ASSIGNED PA
mnt-by:         MNT-MF-NWGSM
mnt-by:         MEGAFON-RIPE-MNT
mnt-lower:      MNT-MF-NWGSM
mnt-domains:    MNT-MF-NWGSM
mnt-routes:     MNT-MF-NWGSM
geoloc:         59.91 30.491
source:         RIPE # Filtered

role:           North-West Branch of OJSC MegaFon Internet Center
address:        10, Karavannaya street
address:        Saint-Petersburg, Russia, 191011
admin-c:        MYK17-RIPE
admin-c:        GMV-RIPE
tech-c:         MYK17-RIPE
tech-c:         GMV-RIPE
nic-hdl:        NMNW-RIPE
mnt-by:         MNT-MF-NWGSM
source:         RIPE # Filtered

% Information related to '78.25.122.0/23AS31213'

route:          78.25.122.0/23
descr:          North-West Branch of OJSC MegaFon
descr:          Saint-Petersburg, Russia, 191011
origin:         AS31213
mnt-by:         MNT-MF-NWGSM
source:         RIPE # Filtered

% This query was served by the RIPE Database Query Service version 1.74.1 (DB-4)
Они все действую по одному принципу. Фактически местоположение конечного узла может быть где угодно. А диапазон ip адресов просто выкуплен провайдером, отделение которого расположено в подозреваемом вами городе. Тогда IP узла может определяться как город где расположен главный ДЦ провайдера или головной офис (к примеру). 
Я нахожусь в Благовещенске Амурской области. На разных провайдерах я определяюсь как Москва, и как Чита на другом.
Один из вариантов - попробовать выполнить трассировку до узла. Быть может промежуточные хопы подскажут где именно находится ваш дружок.

Худший ответ:
Никак. 
Есть публичные геобазы, есть whois. Они безбожно врут обычно. 
Провайдер получает адреса "прописывая" их в Москву (по адресу юр. лица). Дальше никто не запрещает ему использовать эти адреса во Владивостоке. 
Более того, трафик для этого адреса действительно может приниматься провайдером на бордере в Москве, а дальше по своим собственным каналам гнаться в Сибирь. 
Так что ответ вкратце: 
1) потрейсить адрес, возможно там будут намеки (ну там название роутера вида hq-bb-be10.msk.corbina.net в последнем хопе или удастся по другим косвенным признакам определить местоположение последнего хопа). 
2) узнать провайдера
3) спросить у провайдера (если вы полиция). 
Если не полиция/нет знакомых - то, в общем-то, никак. Только полагаться на врущую публичную геобазу.
Вопрос: Почему статическая переменная в классе имеет одинаковое значение во всех потоках?

Лучший ответ:
Статические переменные располагаются не на стеке, а в области данных. Там же, где и глобальные переменные. Для того, чтобы объявлять потокоспецифичные переменные C++11  ввели  спецификатор thread_local.

Худший ответ:
Теперь берем книжку C++ для чайников и читаем.
Ну и второе, использовать статическую переменную для остановки треда, это выстрел себе в ногу. При отимизиции и без вы словите разное поведение. Как минимум нужно пометить как volatile (при этом при использовании static переменная будет подвержена оптимизации, в итоге опять будет работать неправильно). А если использовать C++11, то уже лучше std::atomic_flag или std::atomic.
Вопрос: ID c хэшем (#)

Лучший ответ:
Спецсимволы следует экранировать с помощью символа \:

div#\#id {border: 1px solid red; }


Худший ответ:
[name=value] — тупой поиск по значению аттрибута. Туда хоть символ BEER MUG засунь, все равно должен найти.
А div##id это уже инвалидная конструкция языка css.
Вопрос: Продажа IT-продукта. Как все организовать?

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

Худший ответ:
Вы ни когда не задумывались о том что есть масса бесплатных программ, но разработчики этих программ на что-то живут?
Начните с того что создайте бесплатную версию вашего ПО. Если оно будет пользоваться спросом найдутся люди кому нужен более крутой функционал за который они готовы заплатить. Или какая-то фирма захочет в твоем ПО разместить рекламу или кто-то возьмет тебя на зарплату, например, Линус Торвальдс официальный сотрудник фирмы Transmeta, получает там зарплату, но при этом занимается исключительно разработкой ядра Linux
Вопрос: Как изменить php массив?

Лучший ответ:
В цикле. 
проходишь по исходному массиву и формируешь желаемый.
Но тебе это не надо.

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

Лучший ответ:
^([а-яА-ЯёЁ]+(\-[а-яА-ЯёЁ]+)*)$

Худший ответ:
Какую бы регулярку вы не придумали, рано или поздно найдётся имя, которое в неё не впишется.
Вопрос: Минусы использования AsyncTask?

Лучший ответ:
Почему нельзя? Можно! Но только не всегда :)
АсинкТаски - для коротких асинхронный операций. Типичный пример - обращение к БД. Ни в коем случае не использовать для работы с сетью.
Почему: 
1) АсинкТаски не привязаны к жизненному циклу активити. При пересоздании активити onPostExecute() выполнится, но активити будет не та (и она может утечь, что совсем не круто).
2) Следствие 1 - довольно хорошо заморочиться надо, чтобы написать правильный код с  АсинкТасками. Такой код становится негибким и неудобным. 
3) Без дополнительный усилий (executeOnExecutor) асинктаски ставятся в очередь и выполняются в отдельном потоке, но последовательно. Как следствие - тормоза UI там, где они используются правильно (например AsyncTaskLoader).

Худший ответ:
Минус в том, что если ты выполняешь в AsyncTask большой запрос, то в случае перехода на другой Activity, к примеру, GC может не уничтожить Activity, если таска не завершилась. Это приводит к утечкам памяти, и это плохо. Например, с сетью работая, лучше использовать EventBus (greenrobot), который начинает свою работу в отдельном потоке. Такие дела.
Вопрос: Чем отличается breackets от eage code?

Лучший ответ:
Edge Code идет сразу с некоторыми сервисами Adobe (типа Kuler). Других отличий, вроде бы, нет.Emmet для Brackets.

Худший ответ:
Наличием исходников 
https://github.com/adobe/brackets
Вопрос: Как называется слайдер, где отображаются по 4 элемента, прокручивается 4 элемента и он закольцован?

Лучший ответ:
Как уже отметили, таких множество. Я бы использовал slick

Худший ответ:
Попробуйте owlcarousel/. Работает на тач-устройствах, много настроек, с адаптивом проблем нет. И на главной странице есть демка  с тем, что вам надо.
Вопрос: Как обработать большой массив текста?

Лучший ответ:
Вот тут помогут

Худший ответ:
Пройтись по массиву в цикле и проверятьvar pattern = /^\d/
  
  cycle 
  if(str.match(pattern) != null) console.log('question');
  if(str.charAt("+")) console.log('right answer');
  endcycle
дальше сами )
Вопрос: Как в js найти div по class + display:block?

Лучший ответ:
Раз у вас бутстрап, значит, вероятно, и jQuery подключена, тогда можно сделать просто:$('.multiplier:visible').text()
На ванильном js получается многословнее, но итог такой же:var options = document.querySelectorAll('.multiplier'),
    multiplier;

[].forEach.call(options, function (option) {
    if (option.style.display == 'block')
    {
        multiplier = option.innerText;
    }
});

alert(multiplier);
P.S. Для получения числа из текста можно использовать parseFloat(), если есть такая необходимость.

Худший ответ:
var target = Array.prototype.filter.call(
   document.querySelectorAll(".label"), function(e){
      return e.style.display == "block";
   }
)[0];

alert( target ? target.textContent : "Нет таких" );
Вопрос: Laravel 5.2. Почему не работают сессии в кастомных классах?

Лучший ответ:
Так вы же запускаете скрипт из консоли, разумеется, что у вас недоступны не только сессии, но и куки, и переменные $_SERVER пользователя (IP, юзерагент и т.п.), и еще много чего, потому что пользователя вообще нет.

Худший ответ:
Зачем использовать кастомные классы? Это раз.
Проверьте неймспейсы. Это два.
Забудьте все конструкции инклудов. Автолоад - наше все. Это три.
Не забудьте подключить в классе наши сессии, или использовать класс сессии от корневого namespace (со слэшем в начале). Это четыре.
Вопрос: Есть аккумулятор на 16в как снизить до 12в?

Лучший ответ:
Подключить лампочки последовательно перед мотором)

Худший ответ:
гуглить понижающий преобразователь напряжения
Вопрос: Подходит ли IDEA для разработки под андроид или лучше поставить android studio?

Лучший ответ:
Принципиальной разницы нет. Но в Android Studio есть инструменты, заточенные под дизайн на Android.

Худший ответ:
Может этот 10-минутный ролик поможет взвесить все ЗА и ПРОТИВ?
Вопрос: Как посчитать трафик от IP A до IP B и обратно в Mikrotik?

Лучший ответ:
/ip firewall filter
add chain=forward src-address=10.10.10.10 dst-address=11.11.11.11 action=passthrough comment="upload to 11.11.11.11"
add chain=forward src-address=11.11.11.11 dst-address=10.10.10.10 action=passthrough comment="download from 11.11.11.11"
action=passthrough ничего не будет делать с пакетом. Просто его посчитает. Увидите и кол-во пакетов, и кол-во трафика.
Поднимите правила повыше и смотрите трафик на здоровье.

Худший ответ:
Читайте на тему netflow. Микротик экспортирует статистику, а там с ней уже можно делать что угодно.
Вопрос: Программирование микроконтроллеров — C или C++?

Лучший ответ:
Всё зависит от доступных ресурсов. Если важен каждый байт и каждый тик, то C/ASM. Если ресурсов с запасом, то хоть Python. В производстве реальных устройств экономят на всём, в том числе и на контроллерах. Соответственно, используется в основном C, что бы уместить весь код.

Худший ответ:
Мало памяти - только Си и никакого динамического выделения
Много памяти - С++ и STL. много - это мегабайты =)
И на Си и на Си++ можно написать программу одинаково.
Вопрос: Почему не срабатывает :first-child?

Лучший ответ:
jsfiddle.net/shtrih/9aLSp/1.action_block:first-of-type {
	border-top: 0;
	padding-top: 5px;
}
У тебя .action_block не является первым дочерним элеменом блока .action_wrapper, поэтому  :first-child не срабатывал.

Худший ответ:
Уберите h3 и все заработает! :)
Вопрос: Зеркало Subversion (svn) -&gt; Mercurial (hg)?

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

Худший ответ:
я когда-то делал тупой скрипт:
основная идея

в начале делает 

svn co code.google.com/ /home/user/google_code_repo

а потом в crontab запихиваете скрипт:

cd /home/user/google_code_repo
svn up 
hg addremove ./*
hg commit -m «auto commit from svn»
hg push ssh://hg@bitbucket.org/VolCh/если вам точное совпадение ревизий и их комментариев не нужно, то такой вариант вполне удобен
Вопрос: Какую программу выбрать для 3D моделирования?

Лучший ответ:
Начните с блендера.

Худший ответ:
В порядке востребования (то есть распространенности, в индустрии  а не качества, крутости и пр) - 
Maya
Blender
3DMax
ZBrush
Вопрос: Как запретить доступ к Apache из интернет?

Лучший ответ:
Например, listen 127.0.0.1:80
А вообще, в документации много способов разграничения доступа описано.

Худший ответ:
Епт, порт на роутере закрыть
Вопрос: Как установить несколько версий php на php5-fpm + nginx?

Лучший ответ:
- ставим все нужные версии PHP (то есть нужно установить несколько php-fpm)
 - форвардим запросы на нужный fpm.
www.sitepoint.com/run-multiple-versions-php-one-server

Худший ответ:
Для меня эту проблему разрешил docker.
Вопрос: Неверная временная зона в MySQL?

Лучший ответ:
Наверное делали это, но на всякий случай — перезапуск пробовали?
Что-то вроде /etc/init.d/mysql restart

Худший ответ:
Попробуйте взять более новый tzdata 2011n-1 (из testing).
Вопрос: Нужен ли туториал о съемке видео для использования в Blender?

Лучший ответ:
Почитаю с удовольствием, мб даже дополню… А вообще даже ради продвижения Open Source и, в частности, блендера стоит это сделать:)

Худший ответ:
Не до конца понятно, зачем это делать именно в Blender'е… Но почитать было бы интересно.
Вопрос: Как правильно писать php вставки в tpl файлах?

Лучший ответ:
Код выше вполне нормальный. Последние две строчки можно объединить, на работе скрипта это не скажется. Но тут есть один момент. Шаблон - это обычно html-текст, и php-инструкции в нём чужеродные (с точки зрения html), и даже расширения таких файлов обычно делают не .php, а .phtml - чтобы подчеркнуть, что это не php-скрипт с кодом. Поэтому в таких случаях используют специальный формат записи php-инструкций, причём обычно пытаются одну команду расположить в одну строчку, и не смешивать php и html в одной строчке. С этой точки зрения лучше не объединять эти две строчки в одну инструкцию php. 
Я обычно не пишу скобки, как в коде выше, я использую второй вариант открытия и закрытия блоков, без фигурных скобок:<div id="container">
<?php if ($count>0): ?>
    <?php foreach($items as $item): ?>
        <div class="item"><?=$item?></div>
    <?php endforeach ?>
<?php endif ?>
</div>
Но лучше поиграйтесь с этим вариантом и переходите на внешний шаблонизатор, например Twig. (вот есть урок по его встраиванию в сайт без фреймворка)

Худший ответ:
Короткую запись<?=$hornav?>
желательно заменить на:<?php echo $hornav; ?>?>
<?php
Можно объединить.
Вопрос: Как сверстать такую полоску элемент?

Лучший ответ:
Пример
jsfiddle.net/soledar10/sbqzvoj5

Худший ответ:
jsfiddle.net/13efy1on
Можно и резиновое сделать, но мне лень.UPD: Вдохновился идеями Дмитрий, сделал резиново, и убрал лишние элементы из разметки.
jsfiddle.net/Stalk/q5kve801
и работает с любым кол-вом элементов, начиная с двух.
Вопрос: Стоит ли изучать фреймворк PHP?

Лучший ответ:
Мой совет - продолжать "быдлокодить" еще хотя бы годик.
Немного своих размышлений на тему фреймворков. Правда нелепо быть свидетелем такого диалога?:
- А вы бегать умеете?
- Конечно. Я на костылях очень быстро передвигаюсь.
То же относится к фреймворкам. Как костыли вызывают атрофию мышц, фреймфорки вызывают атрофию креативного мышления. Фреймворк какой бы он ни был хорошим и удобным ставит вас в определенные рамки мышления и реализации кода. И чем меньше ваш кругозор в том или ином языке (чистом), тем более узким будет ваше видение ваших реализаций внутри фреймворка. И в конечном итоге в один прекрасный момент, столкнувшись с чем-то неординарным в работе, вы скорее всего будете судорожно искать в нете что-то готовое подходящее под ваши задачи, нежели делать это самому, т.к. нить связи с чистым языком у вас уже практически утрачена.
Я, например,  занимаюсь php уже более 10 лет. При мне он развивался и крепчал. Даже без фреймфорков могу написать практически любое приложение. И только в начале этого года я принялся за Laravel. И решение такое было вызвано огромной необходимостью, т.к. занимаюсь разработкой в одиночку (без команды), и в последнее время ко мне стали часто обращаться с достаточно крупными проектами, требующими особого подхода в реализации, и вариант с готовой CMS там не прокатит, а уж тем более с системой свёрстанной "на коленке".
Вообще, на мой взгляд, фреймворк - это больше зло чем добро. Очень много минусов в сторону производительности. Но есть два огромных плюса которые сильно компенсируют эти недостатки - это удобство коллективной разработки за счёт структуры приложения и стандартизации кода, и второй плюс - достаточно быстрый старт любого проекта, благодаря наличию в нем огромного количества готовых плюшек. Ваша задача при разработке лишь собрать ваш велосипед из уже готовых деталей и дописать лишь недостающие связующие элементы.
Фреймворк - последняя инстанция хорошего программера. Пока не научитесь бегать самостоятельно -не советую браться за костыли.

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

Лучший ответ:
sdelete за авторством Марка Руссиновича.

Худший ответ:
file shredder - указываете проге какой файл удалить, а в настройках - сколько раз перезаписать это место, где был файл.
CCleaner имеет функцию многократной перезаписи пустого места на диске.
sdelete - консольная.
Вопрос: Как получить JSON tree?

Лучший ответ:
Проблема не в json_encode, а в запросе к базе. В результате выполнения запрооса к базе ты получаешь плоский массив, который конечно же преобразуется в плоский json. Добейся сначала получения массива правильной структуры, а потом уже конвертируй.

Худший ответ:
В качестве опции json_encode надо передать константу JSON_PRETTY_PRINT, которая доступна с версии PHP 5.4 (пример)
br1.php.net/manual/ru/json.constants.php#constant....
Вопрос: Как часто разработчикам сайтов wordpress приходится писать свои модули?

Лучший ответ:
Добрый день! Есть очень много модулей для WP, больше чем для любой другой CMS, но приходится писать некоторые фишки самому - например узко специализированные средства интеграции с службами доставки (если у вас интернет магазин на WP) и есть знания php, javascript, html

Худший ответ:
1. Плагинов и решений для WP - масса. Родной репо, гитхаб, CodeCanyon, гугл в конце концов.
2. Но далеко не все эти плагины написаны хорошо и качественно, и уж тем более далеко не все из них легко модифицировать под свои задачи (в идеале - так, чтобы оригинал можно было обновлять спокойно, а кастомные надстройки не слетали при этом).
3. Исходя из п.2, писать свое приходится, достаточно часто. А если учесть, что многие плагины вроде как и делают что надо, но при этом написаны криво, наполнены рекламой Про-фишек и тд, то проще сразу свое написать и не париться.
Хинт: подавляющее число плагинов - GPL. Поэтому форкаете, берете оттуда нужный код, остальное випиливаете, дописываете / модифицируете под свои задачи. На то оно и Open Source.
Вопрос: Единый способ авторизации и аутентификации UNIX

Лучший ответ:
LDAP и OpenLDAP в частности.

Худший ответ:
LDAP — самое простое. Если хочется совсем красиво, то есть OpenAM. Наследник Sun Directory Server.
Вопрос: Какую библиотеку лучше взять для работы с AD?

Лучший ответ:
Я для авторизации пользователей использую python-ldap, лично для меня простой и стабильный клиент.
Нормально работает с ad.

Худший ответ:
pyad не стоит, не универсально получится. 
А python-ldap вроде работает и каши не просит. В случае чего - оно и с нормальными ldap'ами работать будет.
Вопрос: Магистратура, аспирантура, армия. На какой путь встать?

Лучший ответ:
магистратура-аспирантура-армия — всё одно потеря времени, если, конечно, не собираетесь потом «преподавать программирование» в школе. Если хотите работать — откупайтесь от армии и работайте.

Худший ответ:
Третий вариант рассматривать не рекомендую. Дело в том, что число отсрочек для получения высшки ограничено. И, если вам уже больше 20, то при переводе на другую специальность отсрочка может сгореть. Я могу ошибаться, так как с тех пор как я был бакалаврам и изучал вопросы отсрочек прошло уже пять лет. Но в любом случае, правовые вопросы у нас лучше изучать от и до. Поспрашивайте на форумах призывников.

Я рекомендую Аспирантуру. Способ надежный. Учиться там необязательно, достаточно числиться.