pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Интерфейсы и устройства ввода-вывода тормозят развитие технологий?

Лучший ответ: Записывайтесь в клуб Элана Маска. Он в каком-то интервью уже упоминал проблему ввода/вывода информации в мозг человека. Мол "медленно". Причем вывод информации (то как мы печатаем свои мысли) - не такая большая проблема как ввод (то как мы информацию воспринимаем).Допустим, что появились доступные физические клавиатуры с иным набором символов, расположением клавиш, их формой и размером, которые можно подключать вместе со стандартными клавиатурами или независимо от них.
А вы вообще проводили ресерч на эту тему? Вот вам варианты интересные которые существенно увеличивают скорость набора.
https://en.wikipedia.org/wiki/DataHand
orbitouch.com
Так же есть куча раскладок, вроде дворак замест традиционной querty.По сути, мышь, трекбол, планшет и сенсор экрана - это самые распространённые устройства ввода и все они идеально подходят для двумерных интерфейсов. 
Мозги человека пока плохо приспособлены к восприятию информации в 3D. Вспомите эти славные иллюзии. а для трёхмерного по-прежнему неудобны. 
www.cgchannel.com/2010/11/axsotic-releases-intrigu...
www.3dconnexion.com/products/spacemouse/spacemouse...
ну и были еще кучи прототипов и т.д. Проблема в том что при работе с 3D большинство работают с проекциями, нам так удобнее.Может ли, по Вашему мнению, эволюция интерфейсов и устройств ввода-вывода ускорить прогресс, как это произошло во времена появления привычных нам сейчас клавиатуры, мыши и дисплея?
Работы в сторону нейроинтерфейсов ведутся, но я лично знаю только об успешной midi клавиатуре на 8 клавиш которыми можно управлять силой мысли. Вводить же информацию напрямую в мозг мы пока не научились вовсе.

Худший ответ: Да, может, в идеале произвести реверс-инжиниринг мозга и реализовать взаимодействие силой мысли.
Но обработка данных, как всегда, в сто раз актуальнее, чем интерфейсы, вот если в рамках того же реверс-инжиниринга мозга создадут девайс, который будет обрабатывать подобные вопросы на Тостере, "осушая из них всю воду", вот это будет еще круче, чем сила мысли! А так я "не осилил"!
Вопрос: Как реализовать в своей теме wp, так называемые, Edit Shortcuts в кастомайзере?

Лучший ответ: С помощью Partials.function foo_theme_customize_register( WP_Customize_Manager $wp_customize ) {
    $wp_customize->selective_refresh->add_partial( 'blogdescription', array(
        'selector' => '.site-description',
        'container_inclusive' => false,
        'render_callback' => function() {
            bloginfo( 'description' );
        },
    ) );
}
add_action( 'customize_register', 'foo_theme_customize_register' );
Пример реализации.
===
В functions.php добавить параметры customizeradd_action('customize_register', 'dco_customize_register');

function dco_customize_register($wp_customize) {
    //FOOTER
    $wp_customize->add_section('footer', array(
        'title' => 'Подвал',
        'priority' => 1,
    ));

    //footer text
    $setting_name = 'footer_text';
    $wp_customize->add_setting($setting_name, array(
        'default' => '',
        'sanitize_callback' => 'sanitize_textarea_field',
        'transport' => 'postMessage'
    ));

    $wp_customize->add_control($setting_name, array(
        'section' => 'footer',
        'type' => 'textarea',
        'label' => 'Текст в подвале',
    ));

    $wp_customize->selective_refresh->add_partial($setting_name, array(
        'selector' => '.footer-desc',
        'render_callback' => function() use ($setting_name) {
            return nl2br(get_theme_mod($setting_name));
        }
    ));
}
И в шаблоне footer.php в нужном месте вывести<div class="footer-desc"><?php echo nl2br(get_theme_mod('footer_text')); ?></div>

Худший ответ: А как для header настроить?
Вопрос: Как правильно организовать работу с изображениями при локальной разработке/обслуживании сайтов?

Лучший ответ: Можно проксировать изображения с продакшена.location ~* ^.+\.(svg|svgz|ttf|jpg|jpeg|gif|png|ico|webp)$ {
    try_files $uri @prod;
    access_log off;
    expires 8d;
}
location @prod {
    proxy_pass       http://prod.ru;
}
Поясню для тех кто не вкурил, с такой организацией nginx ищет файл на сайте и если его там нет тогда запрашивает его через проксю с продакшена)
Писал на коленке, данная вещь не тестировалась нигде, так что буду признателен если отпишите как оно)
P.S. естественно этот конфиг подойдёт только для nginx, но я думаю и на апаче изобразить такое же просто. Но я конкретно с апачем редко сталкиваюсь, так что написал на том что мне понятно.

Худший ответ: Для себя решил проблему таким образом. На копиях разработчиков нет необходимости в полной базе товаров, поэтому перед созданием копии, удаляется 90% товаров, соответственно, столько же изображений. Оставшегося объёма достаточно для тестирования новых фич по изображениям. Изображения товаров - основная масса изображений. Изображения вёрстки, прочие контентные изображения переносятся на копию полностью. Но в любом случае, если копия не находит у себя запрошенного изображения, она идёт за ним на прод
Вопрос: Какую книгу для уверенного Junior JAVA посоветуете?

Лучший ответ: Джошуа Блох - Java Эффективное программирование

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

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

Худший ответ: Как писал Pavel Shvedov надо использовать webpack.
Вот большой пример.
// app.jsimport router from './router';

const app = new App({
    router
});
// router.jsconst router = () => { /* ... */ }

export default router;
Вопрос: Должен ли программист знать ассемблер?

Лучший ответ: Чем больше знаешь - тем лучше, разве не очевидно?

Худший ответ: Если изучать просто так, то бесполезен, смысла от этого мало. Если в институте под правильный соус из курса теории по программированию, то полезно. 
Также полезно, если в будущем будешь искать работу по этому направлению.
Вопрос: Почему страница помнит ранее созданный Singleton при генерации отчетов (npoi)?

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

Худший ответ: Дык на то он и Singleton =)  Даже если его звать из другого контроллера, то экземпляр будет один и тот же, который был создан при самом первом обращении. 
Похоже, вам тут это совсем не нужно, почему бы не использовать new XSSFWorkbook() каждый раз?
Вопрос: Сколько языков программирования может знать разработчик?

Лучший ответ: Автор в статье видимо имел ввиду не сам язык программирования, а все его окружение - язык, библиотеки, движки/фреймворки, известные решения и личный опыт.
Это все вместе - весьма большой багаж знаний, поэтому изучить за жизнь больше 1-3 языков на таком уровне сложно.
Если же чисто сами языки, без всего остального - да хоть по языку в месяц можно подучить.

Худший ответ: Это мнение конкретного автора выраженное из его собственных жизненных принципов и лени.
Как можно нормально не разбираться во множестве языков, если десятками лет приходиться на них писать?
Для примера web разработка ранее требовала знания более 2х языков. (Javascript для фронт и другой для бекенда, Сейчас конечно можно Javascript + Node.js).
Вопрос: Как правильнее настроить локальную сеть?

Лучший ответ: Карту сети делать всё-таки придётся, чтобы понять, где какие кабели и можно ли обойтись тупыми свичами или всё-таки потребуется что-то чуть более умное с VLAN.
В общем - нафига вам сдался PPPoE?
Засуньте каждую подсеть в отдельную L2 - физические порты на микротике, если разводка кабелей позволяет, или VLAN - но придётся свичи менять, на которые заходят сразу несколько vlan'ов. На каждый L2 вешаете по DHCP для удобства арендаторов (кто захочет, всё равно поставит свой роутер), шейпинг на основании входящего интерфейса.
Не забудьте зарезать соединения между подсетями.
Решение несколько странное, но если есть лишнее железо с сетевухами, но нет ни свичей с vlan'ами ни даже довольно скромного бюджета на покупку оных (если нужны только vlan - то это недорого даже за гигабитные железки) - то можете закупить пару копеечных железок и прошить openwrt. Тьфу, я же об имеющихся пк говорил. Поставить на пк какой-нибудь linux с openvswitch, будет хоть такой свич с vlan.

Худший ответ: Находился в подобной ситуации, поднял на Микротике PPPoE. Удобно админить, включать, отключать, резать скорость и т.п. При этом не важно какие стоят свитчи и как проложен кабель. Не знаю почему данный вариант рассматривают в последнюю очередь, по мне так очень удобно.
Вопрос: Как снифить http трафик с помощью tcpdump?

Лучший ответ: Сам использую вот такой вариантtcpdump -i any port 80 -A | grep -A 10 -P  '(GET|POST|OPTIONS|PUT|DELETE).*?HTTP/1.[01]' |  perl -ne 's/^.*?(?=(GET|POST|OPTIONS|PUT|DELETE))//g; print;'
Рекомендую для сниффинга http использовать tcpflow, там все более грамотно сделано. Пример для использованияtcpflow -p -c -i eth0 port 80

Худший ответ: Уточняйте запрос параметрами (порт, тип (tcp/udp), хост,  и т.д.)
либо используйте ngrep с нужными фильтрами (порт, регулярка для содержимого и пр.)
либо такие инструменты как wireshark для анализа пакетов в gui
Вопрос: Можно ли прикрепить к Upwork карту Visa?

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

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

Лучший ответ: "best practices" - это не писать то что уже написано.

Худший ответ: хм самый банальный способ отправлять json через http response
Вопрос: Актуален ли Lua в 2017? Где используется?

Лучший ответ: Lua предназначен для встраивания в другое ПО.
Используется, например, в СУБД Tarantool, в веб-сервере nginx есть модуль для БЫСТРОГО разруливания с помощью Lua, используется для программирования игровой логики в World of Warcraft.
И много где еще и игровых движках:
    Agen (2D Lua; Windows)
    Amulet (2D Lua; Window, Linux, Mac, HTML5, iOS)
    Baja Engine (3D C++/Lua; Windows, Mac)
    Blitwizard (2D Lua; Windows, Linux, Mac)
    Cafu 3D (3D C++/Lua)
    Cocos2d-x (2D C++/Lua/JS; Windows, Linux, Mac, iOS, Android, BlackBerry)
    Codea (2D Lua; iOS (Editor is iPad app); $14.99 USD)
    Corona (2D Lua; Windows, Mac, iOS, Android)
    Cryengine by Crytek (3D C++/Lua; Windows, Mac)
    Defold (2D Lua; Windows, Linux, Mac, iOS, Android, Web)
    Drystal (2D Lua; Linux, HTML5)
    EGSL (2D Pascal/Lua; Windows, Linux, Mac, Haiku)
    gengine (2D Lua; Windows, Linux, HTML5)
    Glint 3d Engine (3D Lua, Development stopped in November 2011)
    Grail Adventure Game Engine (2D C++/Lua; Windows, Linux, Mac (SDL))
    Irrlicht (3D C++/.NET/Lua; Windows, Linux, Mac)
    Juno (2D Lua; Windows, Linux, Mac)
    Lavgine (2.5D C++/Lua, Windows)
    Leadwerks (3D C++/C#/Delphi/BlitzMax/Lua; Windows; $199.95 USD)
    LÖVE (2D Lua; Windows, Linux, Mac)
    Luxinia (3D C/Lua; Windows)
    MOAI (2D C++/Lua; Windows, Linux, Mac, iOS, Android, Google Chrome (Native Client))
    Polycode (2D&3D C++/Lua; Windows, Linux, Mac)
    Spring RTS Engine (3D C++/Lua; Linux, Windows, Mac)

Худший ответ: Раньше программировал на Lua(ну как программировал...гайды смотрел.)И с ним не сошлось.Так то в принципе актуален(на нём The Binding of Isaac написан), но слишком мало уроков и из движков только Löve хороший.Используется в основном в геймдеве, но вакансий мало.
Вопрос: Два одинаковые массива не равны?

Лучший ответ: Потому, что Вы сравниваете не элементы массива, а ссылки на объекты. А так как это разные объекты, то и ссылки будут отличаться. Если хотите поэлементно сравнить массивы, то используйте другие способы.

Худший ответ: в JavaScript массивы являются объектами. Метод get_arr возвращает вам каждый раз новый объект. Когда вы сравниваете массивы через ==, то сравниваются ссылки на объекты, а они, как я сказал выше, разные. Есть простые способы сравнить массивы приводя их к строке:get_arr().toString() == get_arr().toString()
Или:JSON.stringify(get_arr()) == JSON.stringify(get_arr())
В тоже время если ваши массивы будут реально ссылаться на один и тот же объект, то при сравнении вы получите true:var arr1 = get_arr();
var arr2 = arr1;
arr1 == arr2 // true
Так же можно найти различия в массивах, для этого удобно использовать библиотеку lodash, метод difference - https://lodash.com/docs/4.17.4#difference
Вопрос: В чем заключается суть работы по администрированию SQL?

Лучший ответ: поскольку как понимаю сисадмин обязан это знать не факт. в маленьких компаниях чаще да, но чем больше инфраструктура, тем больше вероятность что есть админы и админы БД, с разными задачами и полномочиями Это как-то связано с 1С? возможно, но в вакансиях подобного типа это всегда явно указано Что вообще должен знать сисадмин в плане SQL, его администрирования?
- самое насущное - умение создавать резервные копии, еще важнее восстанавливать базы из резервных копий
- рутина - создавать базы, предоставлять к ним доступ согласно какого то плана/регламента, пользователям, разработчикам, и тд..
- не удивляйтесь - удалять базы (обычно принято делать резервные копии, вдруг руководитель передумает)
- продвинутый скилз - решать вопросы производительности, типа почему тупит база? может железо вышло из строя, может устарело, может разрабы накосячили, может пользователи накосячили...
.. мало?.. уверяю, накидать можно больше, ну.. мне лень, сори.. ))
ps и да - во всем упомянутом, видеоурок на 15-30-45 минут, не поможет. только опыт. ну или хорошие книги, блоги профи (в простейшем случае хабр по тегам), но обязательно личный опыт
pps .. в догон
- миграции баз. к примеру со старого железа, на крутое новое, но так что бы без перебоя обслуживания клиентов ;))
- управление кластерами - отказоустойчивыми, а есть схемы и кластеров распределения нагрузки, даже для БД ))
как то так в общем.. совершенству нет предела..

Худший ответ: - продвинутый скилз - решать вопросы производительности, типа почему тупит база? может железо вышло из строя, может устарело, может разрабы накосячили, может пользователи накосячили...
90% скилла, зарплаты и всего остального для DB Administrator
CRUD и проч и на стековерфло девопс посмотрит
Вопрос: А что если два разных сайта с общим кодом и доменным именем?

Лучший ответ: Бред какой-то. У тебя один сайт с одним доменным именем. А то что там и блог и магагзин это вообщене по барабану. Ты там хоть раздел с порно сделай и раздел новостей орнитологии - это будет ОДИН САЙТ.

Худший ответ: Да вообще ПС нас рать!
Главное - не дорвей.
Вопрос: Как узнать какая часть PHP кода нагружает CPU на сервере?

Лучший ответ: Гуглите "PHP профилирование"
XDebug, XHprof, Blackfire ...
А так же "нагрузочное тестирование"
jmeter ...
Для быстрой проверки коротких сценариев: делаем замеры, вырезаем кусок, повторяем замеры.

Худший ответ: предлагаю суперэлементарный вариант.
в начале скрипта разместите $start = microtime(true);
а по коду раскидайте printf(microtime(true) - $start);
Вопрос: Где почитать реальные примеры переезда в облако?

Лучший ответ: Был локальный exchange. Лицензии, кластер, сервера, винты, бэкапы.
Переехали в гуглпочту.
Для многих пользователей остался тот же outlook, web outlook заменился на web-google-mail.
Минус лицензии, минус локальные сервера, минус головняк и администрирование. Просто абонплата за корпоративную почту в гугле.
Многие вообще перестали пользоваться outlook. Минус офис и лицензии.
Линуксоиды особо ничего и не заметили.
Компания примерно 1500 человек.

Худший ответ: на сайте провайдера, которым пользуюсь, есть раздел "Кейсы" - там много написано про переезды в облако, есть схемы исходной инфраструктуры и той, которую получили в итоге в облаке.
сайт sim-networks.com, можете посмотреть.
это не реклама.
Вопрос: Как тестировать драйвера?

Лучший ответ: С копмиляцией вам уже посдказали. Давайте я про отладку расскажу. Во первых очень желательно иметь две машины - одну для компиляции и отладки, вторую - таргет, куда все грузим и где тестируем и проверяем
1) используем printk, в 95% случаев этого достаточно
2) если аппаратура позволяет, используем jtag - это аппаратный модуль для отладки - 100% успех!
3) можно использовать kgdb - не всегда это работает.
Ну и совсем сильная магия - использовать статическую область памяти, где реализуем кольцевой буфер и туда пишем своими средствами отладочную информацию напрямую. Но для этого статическая память должна быть на каком-то из устройств, я обычно пишу в статику в часики реального времени, но не везде они есть и имеются. За то таким образом можно отлаживать абсолютно все, от NME, до драйверов высокоскоростных устройств.

Худший ответ: Сразу скажу, комп у меня слабенький и ждать 3-4 часа чтоб понять что забыл в конце оператора точку с запятой поставить, это не хорошо?!
При разработке необязательно использовать конфигурацию ядра со всеми включёнными опциями. Типичный конфиг который я использую при разработке собирается с нуля за 2 минуты.
Кроме того, ядерный Makefile понимает цели вида *.o. Т.е. можно взять и откомпилировать один файл из дерева исходников ядра. Например: make init/main.o.
Если ты меняешь что-то в исходниках, перекомпилироваться будет только то, что действительно зависит от того, что ты поменял. Поменяешь .c -- перекомпилируется единственный соответствующий ему файл .o.как можно тестировать компоненты ядра
Это совсем другой вопрос. Под просто тестированием понимают проверку того, что код работает правильно, а не то, что он собрался.
Вопрос: Как заставить std::array различать родителя и наследника?

Лучший ответ: Танцы с virtual. Для того они и придуманы. 
Тут еще вопрос в том как именно вы помещаете объекты в std::array и какие именно это объекты. В вашем случае вам нужно помещать в массив либо ссылки, либо указатели (умные), иначе рискуете словить проблемы.

Худший ответ: Это можно реализовать с помощью CRTP
Вопрос: Поможете выбрать ресурс по изучению JS?

Лучший ответ: Самый эффективный и быстрой метод обучения - сразу начать писать код. Поставьте себе задачу и подумайте как её выполнить на таком-то языке программирования. Если чего-то не понимаете гуглите. Самую базу можете посмотреть в видео уроках Sorax'a например. А непонятные моменты, которые будут появлятся со временем, и чтоб понять как всё работает, то вам поможет всеми известный учебник learn.javascript.ru

Худший ответ: Магазин Амазон.
Вопрос: Как сравнить строку и datetime?

Лучший ответ: strptime преобразует строку в датуfrom datetime import datetime
chday = datetime.strptime('datetime.date(2018, 12, 31)', 'datetime.date(%Y, %m, %d)')
today = datetime.today()
print(today < chday)
print(today > chday)
print(today == chday)
type(chday)True
False
False
<class 'datetime.datetime'>

Худший ответ: Самый простой вариант (и самый небезопасный):>>> import datetime
>>> in_str = "datetime.date(2018, 12, 11)"
>>> type(in_str)
<class 'str'>
>>> res = eval(in_str)
>>> res
datetime.date(2018, 12, 11)
>>> type(res)
<class 'datetime.date'>
Вопрос: На чем лучше делать одностраничник?

Лучший ответ: Ну, давайте по-порядку разберём!
1. Одностраничник - делается под конкретный продукт или услугу.
2. Шаблон - создаётся также уникальным, исходя направления продукта/услуги и ЦА.
3. Форма сбора контактных данных на одностраничнике - прошлый век! Никто не будет оставлять данные. Для этого есть форма: "Отправить запрос" и в ней поле, НЕОБЯЗАТЕЛЬНОЕ К ЗАПОЛНЕНИЮ: "Прошу ответить мне на e-mail:".
4. Цель одностраничника - должна быть явно задана: реклама товара, продажа, выявление интереса к продукту, приоритетная первичная регистрация на сервис в альфа/бета-тесте и т.д. Если, что-то из перечисленного будет идти вместе, - ТОЛКУ НЕ БУДЕТ!
5. Конверсия - самая интересная тема, а уж тем более, на лендинге. Здесь многое зависит от того, кто создаёт Вам шаблон и корректно ли он располагает визуальные смысловые блоки и элементы пользовательского интерфейса страницы. Т.е., нужно, чтобы это делал именно UX-дизайнер, а не простой дизайнер! Т.к. он учитывает время просмотра страницы до десятых долей секунды, направление взгляда, движение мышки, скорость понимания информации, простоту изложения информации для понимания (пункты списка, схемы, таблицы, анимацию, видео-ролики и прочее).
6. Удобство управления лендингом и структурой страницы, скорость загрузки: однозначно SPA + AJAX. Вёрстка - делается так: общий дизайн и блоки наполнения В ОТДЕЛЬНЫХ HTML-файлах, затем берём includeHTML и ставим все нужные блоки друг за другом в едином HTML, которые нам понадобятся. Затем, комментируя/переставляя строки в головном HTML-файле мы легко можем менять расположение блоков (секций лендинга).
7. Все popup-формы, разметки секций и прочее (т.е., доп. разметку для доп.блоков) - грузим через тот же includeHTML из рядом лежащих файлов, например, "vote-form.html" или "feedback-form.html", где будет нужный функционал. Т.е. Вы сможете легко менять эти файлы, чтобы получать нужную (модифицированную/новую) форму.
8. Основной список секций по лендингу можно получить здесь (Создать сайт с "нуля" -> выбрав в списке типов сайта: лендинг).
9. SEO и индексация - JSON-LD, META-тэги (включая данные для соц. сетей, fb:* и т.д.), разметка всей вёрстки - строго HTML5!

Худший ответ: Я бы не стал прибегать к 4 варианту так как со стороны сервиса Вы все равно буде те чем то ограничены! 
Третий вариант удобный тем, что не нужно вручную настраивать различные формы обратной связи, комментарии и т.д. Решается все установкой плагинов... Чего не скажешь про 1-2 вариант где требуются более глубокие знания...
Вопрос: Как поставить vue.js компонент без node.js?

Лучший ответ: Фронт разрабатывается на своем компе с nodejs, после компиляции его уже выгружаете на хостинг. Там по сути 1 html файлик и скрипты со стилями.
Так что nodejs нужен только на этапе разработки.

Худший ответ: 1) чтобы использовать компоненты, совершенно не обязательно использовать node.js
Как тут вообще связан сервер и смайлики?
2) Если не хотите устанавливать vue-cli, как обычные люди, то можете просто скачивать эти дополнительные компоненты и устанавливать их по обычному
Это не какие то магические файлы, а совершенно обычные vue-component'ы 
3) php + node.js - я конечно такой себе программист, но вот это - просто жесть какая то)
В общем, почитайте про vue-cli и будет вам счастье
Вопрос: Как защитить свою верстку от рипа?

Лучший ответ: Не работать без предоплаты минимум 50% и не цепляться за таких вот заказчиков(в голове мысли "что то тут не чисто)абсолютно правильные мысли
Даже если Вы защитите свою работу от "угона", велик риск что просто проработаете за бесплатно, а Ваш заказчик обломавшись с Вами пойдет искать себе другую жертву, ибо сроки у него не жмут, так как когда сроки жмут заказчики готовы к предоплате не то что 50%, а даже 120% (20% - надбавка за переработки)

Худший ответ: показывать промежуточные результаты через PDF с защитой от копирования
Вопрос: Доступ к серверу извне, возможно ли через 3G модем?

Лучший ответ: У вас NAT,  надо обратиться к оператору для получения белого IP.
Лично мне для белого ip  пришлось купить новую симку со спец тарифом за х5 цену
Или используйте ipv6 туннели через брокера

Худший ответ: Используйте Teamviewer и GUI )))
Вопрос: Как закэшировать DNS для запросов из PHP CURL?

Лучший ответ: При DNS запросе происходит следующее:
1. Проверяется /etc/hosts
2. Проверяется локальный кеш
3. Выполняется DNS запрос на ваш DNS сервер (он все это повторяет, если что, делает запрос к своему DNS серверу и так до рута)
Соответственно самые простые варианты - или пропишите в запросах айпишники, или пропишите в /etc/hosts
Или обычный DNS кеш клиента сам разберется.

Худший ответ: Используй nscd, он замечательно кеширует DNS запросы
Вопрос: Как реализовать удаление и добавление tabs на angular?

Лучший ответ: Хранить данные табов в сервисе. Для операций - менять данные в сервисе. Выводить табы через ng-repeat.

Худший ответ: Дополню ответ Николай. Примерно так:angular.module('app')
  .controller('switchView', function() {
      this.tabs = ['tab1', 'tab2'];
      this.addTab = function (tabContent) { return this.tabs.push(tabContent); };
      this.delTab = function () { return this.tabs.pop(); };
  })