Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как защититься от сис.админа и программиста, храня секретные данные в БД?

Лучший ответ:
Данные о зарплате заводятся в проект наверное не только для того, чтобы там храниться, но и как-то участвуют в вычислениях.
Поэтому если у Вас трехзвенка, то защититься от админа сервера приложений невозможно - данные должны быть там в дешифрованном виде.
Если же есть возможность работу над этими "высокосекретными" данными всю производить по двухзвенной схеме - в клиентском браузере, то тогда - да, шифрование с должными предосторожностями (с рандомизацией и защитой от replay attack) Вас в принципе спасет. Хотя задача всё равно будет нетривиальной.
P.S. Кстати, Вы уверены, что ставку нельзя будет "вычислить обратно", зная сумму оплаты за этап и его трудозатраты в часах ?

Худший ответ:
To sim3x: Я примерно такую схему и предполагаю, что программисты все делают, код ревьюируется на отсутствие секретных данных в логах системы или серверов (пока проблема с логами БД), админы готовят процедуру развертывания (и возможно даже развертывают) я cам генерю ключи и сам обучаю пользователей. Но все еще непобедима проблема перехвата или ключа или пароля к ключу.
To m0rd: Вот этот вариант возможно и нужно реализовывать. Только пока неясно как (хотелось бы пример микроархитектуры).
Т.е. все получается открытым образом с UI уровня (работа по SSL с сервером) и назад тоже, и шифруется на бэкэнде. До момента шифрования нужно все очень внимательно ревьюить, чтоб никакие перехваты в коде не произошли и никакие внедрения чужеродного кода были невозможны (особенно на UI). Шифровать можно как симметричным, так и асиметричным ключем (тогда область кэширования ключей на страницах может быть разной). А на сторону БД уйдут уже стразу зашифрованные данные. Тем самым мы защищаемся от пока непобедимых нижнеуровневых логов БД. Т.е. ключи шифрования каждый раз предоставляются самим пользователем.
Но это все теория. Конечно. хотелось бы увидеть примерчик. А то я подозреваю в большом количестве невидимых "граблей", на которые заранее не хотелось бы наступать.
Вопрос: Как можно зарезервировать WiFi хотспот?

Лучший ответ:
Делал в свое время похожую задачу, только на азс. Использовал микротики + Huawei E3276.
+ зависание роутера - есть WatchDog
+ зависание модема - скрипт дергает питание usb при отсутствии пинга вовне
+ поломка - микротики довольно надежные
еще:
+ Captive portal: клент должен был посмотреть рекламу прежде чем получить интернет
+ очереди: один клиент не займет весь интернет
+ в интернете был поднят openvpn сервер, куда все микротики подключались при наличии инета, можно было ими удаленно управлять (оператор выдавал серые айпишники)
против "нехороших" сайтов использовал яндексовые "детские" днс
минусы:
- микротики надо уметь готовить
- совместимость с конкретной маркой модемов стоит проверить индивидуально
Вторая точка доступа не поможет без второго модема, кто ей даст интернет, если первая рухнула?

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

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

Худший ответ:
Дошло. В первом случае идет просто сравнение, во втором сравнение результата сдвига.
Вопрос: Реально ли сделать такое на css?

Лучший ответ:
Да, придётся поиграться с 3D-трансформациями.
Вот достаточно подробный разбор mockup-слайдера. Здесь хорошо показан пример встраивания картинки в mockup. 
Ещё полезные ссылки по теме:
https://habrahabr.ru/post/166751/
franklinta.com/2014/09/08/computing-css-matrix3d-t...

Худший ответ:
Лучше сделайте в Photoshop. Лишние трансформации ни к чему.
Вопрос: Можно ли публиковать на Хабре свои посты из ЖЖ?

Лучший ответ:
По-моему, пункт 1. Хабр — не место для копипастеров. Размещение полностью скопированного чужого контента с других сайтов запрещено — даже при использовании гиперссылки на источник.
вместе со вторым пунктом означают — НЕТ, нельзя.

Худший ответ:
Раньше для этого существовали топик-ссылки и было хорошо. Потом их убрали, и народ стал извращаться как может, в.т.ч. делать топики состоящие из заголовка, краткого описания и ссылки на статью. 

Минус этого способа- можно нахватать минусов в рейтинг и карму, особенно если сама статья окажется так себе. Но если статья действительно стоящая и хочется ей поделиться — почему бы и нет, ради кармы трястись и не постить полезный контент — бред.
Вопрос: Каким образом избавиться от «черных» статусов в Skype?

Лучший ответ:
Windows XP, открыт IE.
Радуйтесь, что "черные иконки" - это все проблемы на данном компьютере.

Худший ответ:
Нашел причину. Ответа по данной теме в интернете нет. В Windows XP нажмите Пуск - Панель управления - Специальные возможности - вкладка Экран - убрать галочку Высокая контрастность - кнопка ОК
Вопрос: Переезд в Москву (ЗП)

Лучший ответ:
На такие позиции нет и никогда не будет «среднего» уровня ЗП, это вопрос торга. Оцените свои затраты, желаемый уровень жизни (аренда качественного жилья в Москве — удовольствие довольно дорогое), соотнесите их с объемом работы, рисками и перспективами. Заложите возможное отсутствие повышения ЗП (это вам лучше знать), вероятность получения премий, и просите на 30-50% больше, а дальше — торгуйтесь.

С учетом кризиса, размера и производственной направленности предприятия, 100 тыс./мес мне видится как сумма, ниже которой опускаться нельзя ни в коем случае. В финансовом/торговом секторе это было бы в полтора раза больше. Но тут, опять же, нужно думать о перспективе и жизненных целях.

Худший ответ:
Давайте посмотрим на неплохой месячный «пакет» комплексно
 — зарплата (грязными) — 130000
 — бонус — 20%
 — ДМС на себя и членов семьи
 — компенсация за использование автомобиля — 10000
 — снять квартиру — 30000 + 10000 на каждого члена семьи
 — оплата проезда домой раз в год
 — суточные при поездке в командировку — 1000 руб в день

+ подъемные на переезд

Напомните, если чего забыл. 

Если есть желание обосноваться в Москве, покупка квартиры по ипотеке выливается в 50-80К ежемесячных платежей на 10-15 лет.

Наверное, стоит исходить из таких расчетов.
Вопрос: Почему сайт долго грузится?

Лучший ответ:
в самом начала поставьтеdefine('TIMESTART', microtime(true));
а потом раскидайте по коду echo 'Метка 1 - '.round( (microtime(true) - TIMESTART), 5).' сек'.PHP_EOL;
.............
echo 'Метка 2 - '.round( (microtime(true) - TIMESTART), 5).' сек'.PHP_EOL;
и при обращении к странице у вас появиться что то типа:
Метка 1 - 0.003 сек (от начала выполнения)
Метка 2 - 4.531 сек (от начала выполнения)
Метка 3 - 4.582 сек (от начала выполнения)
из которых станет понятно что между метка 1 и метка 2 что то обрабатывалось 4.5 секунд.
Сужайте место поиска сдвигая метки, пока не найдете проблему.

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

Лучший ответ:
Есть несколько вариантов:
- не вызывать чужое API напрямую, а сделать свой фасад над ним. В итоге достаточно будет оперативно менять бэкэнд, отпадет необходимость в обновлении приложения.
- показывать пользователям диалог большой зеленой кнопкой "Обновить" и объяснением почему без этого приложение работать не будет.

Худший ответ:
Была подобная проблема, сделал так:
Допустим необходимо сделать запрос1, программа отправляет запрос на сервер, со всеми данными, а сервер уже возвращает сформированный запрос1. программа просто выполняет этот запрос и отправляет данные опять на сервер. Сервер их "конвертирует" и выдает. 
только у меня часто менялся не ответ, а сам запрос, ответ конвертировать небыло необходимости. 
Да, сложно, не красиво, но удобно. API поменялся, меняете шаблоны на сервере.
Вопрос: SQL — запрос с транспонированием?

Лучший ответ:
если я правильно понял задание то так:
TRANSFORM sum([поле_с_цыфрами]) as Сумма
SELECT поле_с_ДАТОЙ,
Group By поле_с_ДАТОЙ
PIVOT поле_с_буквой

Худший ответ:
Можно использовать GROUP BY по двум колонкам(дате и объекту A,B,C,D)
Вопрос: [Windows] Автоматический перезапуск программы после сбоя

Лучший ответ:
Добрый день,
Ваша программа может быть зарегистрирована в системе как сервис?
Если да, то вкладка «Recovery» в свойствах сервиса вам поможет:
mdenomy.wordpress.com/2008/02/28/using-the-automatic-recovery-features-of-windows-services/

Худший ответ:
Если не запускается как служба.
«и при его отсутствии через определённое время» — это сколько?
1) Минуты — WSH в помощь, определить наличие процесса в выводе tasklist и запустить его. В качестве расписания использовать стандартный планировщик. Мануалов в сети куча
2) Секунды — то или искать готовый watchdog, или писать самому. Тоже проблемы особой нет.
Вопрос: Насколько успешно можно использовать инструментарий Linux при написании дипломной работы?

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

Худший ответ:
Liber/Open Office спокойно открывает и сохраняет вордовские документы. Для написание текста с таблицами, картинками, графиками его предостаточно. Возможно он и на большее способен, но мне просто это было не нужно :)
Вопрос: Какие есть библиотеки для отрисовки ориентированных графов на js?

Лучший ответ:
Где-то слышал, что на d3.js можно вообще все визуализировать.

Худший ответ:
Нагуглил таки. Cytoscape.js называется. Всем спасибо )
Вопрос: Выбор между Dreamweaver и Webstorm

Лучший ответ:
Это совсем разные инструменты, dw — редактор, webstorm — ide. Это как например у него есть сейчас микроволновка с двумя ручками, время и мощность. И она отлично греет еду, и больше от неё ничего не нужно. А вы ему хотите дать с кучей режимов, грилем, обдувом со всех сторон и панелью управления как у звездолёта.
Если ему не нужно писать разухабистый js, то вы ему сильно снизите скорость, если перетащите с dw и не факт что со временем она вернётся к текущей.

Худший ответ:
так спросите верстальщика почему он влюблен в Dreamwever =)
Вопрос: Работа с удаленной базой данных MySQL. Почему медленная передача данных?

Лучший ответ:
Если у вас MySQL, возможно проблема с DNS.
Попробуйте[mysqld]
# Skip reverse DNS lookup of clients
skip-name-resolve

Худший ответ:
Что упустили в такой конфигурации?  Как вариант, низкая производительность tcp.
Вопрос: Как можно сделать таймер?

Лучший ответ:
import time


class Stopwatch:
    """ Counts passed seconds """
    def __init__(self):
        self.init_time = time.time()
        self.seconds = 0
        self.last_check = self.init_time

    def checkseconds(self):
        now = time.time()
        count = int(now - self.last_check)
        mod = now - self.last_check - count
        self.seconds += count
        self.last_check = now - mod
Остается периодически дёргать checkseconds созданного экземпляра. Если дёргать с периодичностью меньшей секунды, то значение пройденных секунд будет обновляться ежесекундно.
Работу кода не проверял, но вроде нигде не ошибся. Попробуйте.
Тоже самое, с помощью генераторов:import time

def stopwatch():
    """ Coroutine that returns number of seconds
        passed after initialization
    """
    # Initialization
    init_time = time.time()
    seconds = 0
    last_check = init_time
    
    # Main loop
    while True:
        now = yield seconds
        count = int(now - last_check)
        mod = now - last_check - count
        seconds += count
        last_check = now - mod
Теперь создаем генератор и, также почаще, посылаем ему настоящее время:# Создаем сопрограмму
my_watcher = stopwatch()

# Не забываем про инициализацию (первый yield)
my_watcher.send(None)

# Остальные send будут возвращать количество пройденных
# после инициализации секунд
passed_seconds = my_watcher.send(time.time())
<...>
passed_seconds = my_watcher.send(time.time())

Худший ответ:
Вот так можно на твистед www.saltycrane.com/blog/2008/10/running-functions-...
Ну и в официальной документации twistedmatrix.com/documents/13.2.0/core/howto/time.html
На твистед и всю игру можно забацать.
Вопрос: Можно-ли отобразить изображение без загрузки его на сервер?

Лучший ответ:
Есть в HTML 5 объект FileReader, который поможет это реализовать.
Пример, jsfiddle.net/sLnLeLwg
Документацию можно нагуглить.

Худший ответ:
Да, можно, через объект FileReader. У меня есть вот такая функция на JavaScript, она вам пригодится.<input type="file" id="file1" accept="image/jpeg" onchange="previewUploadedPhoto('file1', 'previewArea');" />
<div id="previewArea"></div>// Preview uploaded photo
function previewUploadedPhoto(controlID, previewID) {
    if (document.getElementById(controlID).files) {
        var file = document.getElementById(controlID).files[0];
        if (file.type.match("image.*")) {
            if (parseInt(file.size) <= 4 * 1024 * 1024) {
                var reader = new FileReader();
                reader.onload = (function (theFile) {
                    return function (e) {
                        var img = new Image();
                        img.src = e.target.result;

                        img.onload = function () {
                            if (img.width + img.height < 1000) {
                                $("#" + previewID).html("<b>Выбранный файл слишком маленького размера!</b>");
                                file.value = null;
                            }
                            else {
                                $("#" + previewID).html('<img class="thumb" src="' + e.target.result + '" title="' + theFile.name + '" width="160" />');
                            }
                        };
                    };
                })(file);
                reader.readAsDataURL(file);
            }
            else {
                $("#" + previewID).html("<b>Выбранный файл должен быть размером не более 4 МБ!</b>");
                file.value = null;
            }
        }
        else {
            $("#" + previewID).html("<b>Выбранный вами файл не является изображением и не будет загружен! Выберите другой файл.</b>");
            file.value = null;
        }
    }
}
Вопрос: Что значит строка кода?

Лучший ответ:
Приветствую.
arduino.ru/Reference/Library/Servo/attach
servo.attach(pin, min, max)
    servo: переменная типа Servo
    pin: номер выхода, к которому подключаем servo и с которого осуществляется управление приводом
    min (опциональный): ширина импульса в микросекундах, соответствующий минимальному (угол 0 градусов) положению сервопривода. (по умолчанию 544)
    max (optional): ширина импульса в микросекундах, соответствующий максимальному (угол 180 градусов) положению сервопривода.

Худший ответ:
А что за библиотека используется? Это в начале кода, должно быть.
Вопрос: На каких технология основана следующая разработка?

Лучший ответ:
Альтернативы - WebGL/Canvas. Самая наверное популярная библиотека, которая заточена под всяческое 3d - Three.js
Вот статья на хабре:
habrahabr.ru/post/123400

Худший ответ:
Flash, а что за ним не известно
Вопрос: Как авторизоваться по ключу для стороннего проекта с github?

Лучший ответ:
склонируйте репо по ssh-ссылке, а не https-ссылкеили поменяйте для уже склонированного https://help.github.com/articles/changing-a-remote...

Худший ответ:
Попробуй ssh-add ~/.ssh/id_rsa
Вопрос: Какой микроконтроллер выбрать?

Лучший ответ:
Нагуглил:ST LIS331EB Акселерометр со встроенным MCU Cortex-M0

Худший ответ:
На алиэкспрессе есть модули с тем что вы написали, только прошивку залить нужную и все. работают на 3 АА до полугода (заявленно) , есть стм маломощные, тоже работают на батарейках очень долго. есть спец атмеги читал -  для встраиваемой электроники -  кстати показываи, обещали до 2 лет от одной батарейки (но там цена была намноговыше средней и партии от 1000)
Вопрос: Какими стандартными средствами можно реализовать получение почты на C#?

Лучший ответ:
Для отправки писем есть System.Net.Mail.SmtpClient, для получения такого нет. Пользуйтесь OpenPop.NET.var client = new POPClient();
client.Connect("pop.gmail.com", 995, true);
client.Authenticate("admin@bendytree.com", "YourPasswordHere");
var count = client.GetMessageCount();
Message message = client.GetMessage(count);
Console.WriteLine(message.Headers.Subject);
Еще можно на MailSystem.NET посмотреть.

Худший ответ:
@aush а как извлечь текст сообщения? Он зашифрованный? Где-то должен быть ключ?
Вопрос: Как правильно разрабатывать приложение через тестирование?

Лучший ответ:
теоретические знания появилисьПонял, что есть 3 вида тестирования
Что-то тут не сходится.
Учите матчасть.

Худший ответ:
Попробуйте программирование через проектирование. Все остальное — частные случаи. Разрисовываете на бумаге схему работы приложения, модуля или метода. Если какой-то участок не удается спроектировать с первого раза, значит, вы плохо знаете предметную область, отлично, надо доизучить, изучаете и снова возвращаетесь к участку. Затем пишите тесты по каждому узлу, потом сам код или наоборот, это как вам удобнее/быстрее.
Вопрос: Алгоритм измекрения пульса с помощью камеры телефона ?

Лучший ответ:
Там используется анализ интенсивности освещения, измеряемый камерой. Запишите видео, выделите каким-нибудь видеоредактором только канал интенсивности и «растяните» его динамический диапазон до максимума. Получите пульсирующую картинку. Посчитав период пульсаций — сможете определить частоту сердцебиения.

Для ускорение обработки там используется очень низкое разрешение изображений, снимаемых с камеры, по которым считается моментальное значение интенсивности, усреднённое по всему кадру плюс анализ по типу «плывущего окна», определяющий конкретный текущий минимум и максимум уровня. Далее, считается интервал между максимальными изменениями уровня — он и будет частотой сердцебиения с достаточно приличной точностью. 
Это только вкратце, возможно, разработчики тех приложений применили какой-то более интересный алгоритм.

Микрофоном снять шум сердечных сокращений практически нереально (слишком много внешних помех). Акселерометр тоже вряд ли сможет настолько точно отслеживать перемещения.

Кстати, такие приборчики и раньше делали при помощи лампочки и фотодиода (можете поискать схемы в журналах «Радио»), они работали именно посредством измерения интервала изменения интенсивности светового потока.

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

Лучший ответ:
Объяснить суть полиморфизма "на пальцах" довольно просто. Представьте себе класс Телефон. Его спроектировал некто в далеких 80-х, и определил в нем метод набратьНомер(). А потом другой программист в 90-х отнаследовал от него класс МобильныйТелефон и перекрыл метод набратьНомер(), т.к. грубо говоря, в новом устройстве набор производится уже не импульсно, а тонально. А потом третий программист отнаследовал от него класс Смартфон. При этом он не стал трогать метод набратьНомер(), а просто добавил методы для нового функционала, типа определитьПоложениеПоGPS() и т.д.
Теперь представьте себе пользователя. Он родом из 80-х и понятия не имеет о тональном наборе и GPS... но если ему в руки дать любое из этих устройств, он сможет набрать номер и сделать звонок. Почему? Потому, что он умеет использовать метод набратьНомер(), и большего ему знать не нужно.
А теперь представьте другого пользователя, нашего современника. Он вырос в эпоху смартфонов... но если ему в руки дать старый телефонный аппарат, он тоже сможет сделать звонок, т.к., опять же, знает метод набратьНомер().
Применительно к ООП, пользователь - это переменная, содержащая ссылку на экземпляр класса. Ее тип (как она была объявлена) - это "набор знаний" о возможностях этого экземпляра. И т.к. Смартфон в своей основе является Телефон-ом, мы вполне можем дать его в руки гипотетическому пользователю из 80-х:Телефон устройство = new Смартфон();
в результате чего он сможет сделать звонок:устройство.набратьНомер("03");
А вот определить свое местоположение он не сможет, пока не узнает о существовании соотв. метода:Смартфон усовершенствованноеУстройство = (Смартфон)устройство;
Это называется приведением типа. В данном примере у экземпляра класса уже был соотв. метод, но чтоб им воспользоваться, нужно сначала явно указать, что мы хотим рассматривать имеющееся у нас в руках устройство не как "простой" Телефон, а как Смартфон.
P.S. Кстати, в этом примере мы затронули не только полиморфизм, но и наследование, и инкапсуляцию (пользователя "снаружи" совершенно не интересует, как именно производится набор номера - тонально, импульсно или еще как-то иначе)... так сказать, все три кита ООП в одном флаконе. И только так вообще имеет смысл рассматривать эти принципы, т.к. они по сути неотделимы друг от друга, как Отец, Сын и Святой Дух в Христианстве или же длина, ширина и высота в трехмерном пространстве :) Если это понять, ООП становится совершенно простой и естественной парадигмой программирования.

Худший ответ:
пораженном  никто не говорит, откуда вы такой перевод взяли? Говорят обычно дочерний классРаботать могу с методами в two  скорее все таки с методами one, т.к. one родительский класс. А смысл в том что можно нужный нам функционал предоставить на реализацию дочерним классам, и не задумываться как они там его будут реализовывать.
Вопрос: Как подключить ПК к ресиверу (5.1 ch) используя 3 разъема 3.5 jack?

Лучший ответ:
Вы поспешили отметить решением НЕПРАВИЛЬНЫЙ ОТВЕТ. На этой материнской плате МОЖНО подключить 8-ми канальный звук. Достаточно открыть инструкцию и прочитать. 
Включаем в BIOS 
Подключаем переднюю AUDIO панель 

Худший ответ:
У этой модели нет отдельных входов для колонок, кроме фронтальных. Так что HDMI в помощь.
Вопрос: Надежность банков

Лучший ответ:
В банке должно быть всё в порядке с безопасностью и не должно быть бардака (тоже отрицательно влияет на безопасность). Иначе деньги могут просто пропасть и потом сложно будет их вернуть.

Моё имхо:

Сбербанк — бардак.
Альфа — движется куда-то в сторону где можно скомпромитировать доступ к деньгам миллионом способов и даже точно ни кто не знает всех их.

Худший ответ:
В своё время я тоже задавался подобным вопросом и выбрал для себя 2 банка:
1. Сбербанк — только для коммунальных потяжелей и редких покупок (оплаты товаров услуг в РФ);
2. Райффайзен — он стал как наследие после приобретения Импекс банка в своё время и вот уже 6 лет пользуюсь их услугами. В основном это покупки за границей и хранение сбережений.

Бак выбирал по рейтингу www.banki.ru/banks/ratings/ отзывам клиентов, наличием филиалов и банкометов по городу, так же смотрел у Раййфайзен банка:
Национальный
S&P — ruAAA 
Moody's — Aaa.ru 
Fitch Ratings — AAA(rus)
Страхование вкладов
Вопрос: Api Yandex Maps как развернуть во весь экран?

Лучший ответ:
В API 2.1 специально для этого есть fullscreenControl.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...
Ну и программная возможность развернуть карту тоже есть из коробки:
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...

Худший ответ:
Долго копался в документации яндекс карт и всё таки нашел решение.
описал в jQuery плагине address.js. Описание README.md
Вопрос: Vim + Python, ищу живой источник информации

Лучший ответ:
Ну можете написать мне в жаббер: horneds@gmail.com, github.com/klen/python-mode написал я и альтернатив на текущий момент не знаю, иначе бы не писал :)

Худший ответ:
Есть хороший пост по этому поводу. Связка Vim + Python habrahabr.ru/post/224979