Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как вывести вместо булевого значение другое?

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

Можно все запихнуть в класс, используя, например, property - как раз для этого случая они подходят на 100%. Но придется написать много кода.

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

class Person:

    has_map = {True: 'Есть', False: 'Нет'}

    def __init__(self, name):
        self.name = name
        self._something_1 = False
        self._something_2 = True

    @property
    def something_1(self):
        return self.has_map[self._something_1]

    @something_1.setter
    def something_1(self, value):
        self._something_1 = value

    @property
    def something_2(self):
        return self.has_map[self._something_2]

    @something_2.setter
    def something_2(self, value):
        self._something_2 = value

def attr_mapping(value):
    has_map = {True: 'Есть', False: 'Нет'}
    if isinstance(value, bool):
        return has_map[value]

if __name__ == '__main__':

    Anna = Person('Anna')
    print(Anna.something_2)
    Anna.something_2 = False
    print(Anna.something_2)

    Anna = Person('Anna')
    print(attr_mapping(Anna._something_2))
    Anna._something_2 = False
    print(attr_mapping(Anna._something_2))

Худший ответ:
Можно адаптировать как вам угодно
class BaseField:
    def __init__(self, value):
        self.value = value

    def __eq__(self, other):
        if isinstance(other, BaseField):
            return self.value == other.value

        return self.value == other

    def __repr__(self):
        return str(self.value)


class BoolField(BaseField):
    def __str__(self):
        return {
            True: 'Есть',
            False: 'Нет'
        }.get(self.value)


class MoneyField(BaseField):
    def __str__(self):
        return f'{self.value}$'


class Person:
    def __init__(self, name):
        self.name = name
        self.something_1 = BoolField(False)
        self.something_2 = BoolField(True)
        self.money = MoneyField(1500)


p = Person('Vladimir')

print(p.something_1)
print(p.money)
Вопрос: Как вывести латинский алфавит?

Лучший ответ:
Функция chr() умеет преобразовывать код символа в символ. Знаете ASCII код буквы 'A' ? Дальше - дело техники.

Худший ответ:
Если речь идет о конкретном алгоритме и знании что латинский алфавит записан в кодировке по порядку, то достаточно узнать код символа 'A' с помощью функции Ord, а все последующие символы получить прибавлением к этому коду номера буквы в алфавите (начиная с 0), числа преобразуют в символ с помощью функции Chr

Если речь идет о любом алфавите или используется кодировка где латинский алфавит отсутствует или не по порядку (вероятность не нулевая но само собой возможна в таких местах где задающих такие вопросы нет) то нужно завести массив со всеми буквами алфавита в нужном порядке и задача сведется к выводу всех элементов этого массива

Цикл для указанного количества проходов делают с помощью for .. to .. do ... begin .. end
Вопрос: Зачем продают стартапы?

Лучший ответ:
1) Чтобы получить деньги на развитие.
2) Чтобы получить деньги в карман.
3) Чтобы скинуть то, что уже не нужно и получить какие-то деньги)

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

Лучший ответ:
hypot в Си даёт гипотенузу, а a²+b² в змее-питоне — квадрат гипотенузы.

Худший ответ:
Еще ошибка из-за того, что переменная а, которая дается в условии задачи для построения графика, имеет такое же название, как переменная а в while, из-за чего в f(n), которая использует global a, все ломается посреди работы.
Вот такие пироги!
Вопрос: Выбор дистрибутива Linux под сервер?

Лучший ответ:
Который лучше знаете (с)

Худший ответ:
Тут, к сожалению не обойтись без политоты и вопроса - где живете - в РФ или нет. Потому что:

- ежели в РФ и ежели имеете какое-то отношение к КИИ (хотя я полагаю, потом это тупо распространят на всех) - ставить можно только то, что в реестре минсвязи.
- ежели к КИИ никакого отношения нет, но в РФ - все равно я бы посоветовал избегать дистрибов, авторы которых занимают явно антироссийскую позицию (а это как раз бубунта). Почему? Тырнет все больше погружается во тьму госрегулирования и твоя репутация в нем стремитльно начинает иметь значение...

Ну а так - обычно ставят тот, который знают (если конечно не стоит цели изучить). 

PS: Кстати, говорят Synapse лучше чем RocketChat
Вопрос: Работает ли Asp.Net всегда?

Лучший ответ:
Он не только работает "всегда", но имеет несколько режимов работы. Можно деплоить приложение как модуль IIS, так и сделать его stand alone. Первый вариант в свою очередь разделяется на два: "классический" и "интегрированный". 

1. Классический подразумевает что IIS загружает DLL модуль ISAPI который в свою очередь запускает NET-среду в отдельном потоке. Так что даже в этом случае ASP NET CORE (или более ранний ASP NET ) работает "всегда". (В отличие от просто ASP который был до NET). Не смотря на то, что на картинках в документации обработка начинается только с приходом запроса, там всё равно присутствует процесс и поток отвечающий за работу ASP NET. В нём запускается global.asax. Но этот процесс может быть в любое время перезапущен IIS, если хоть что то ему "не понравится" (включая, например что процесс был запущен слишком давно. Часть этих параметров доступна для изменения в пуле приложений IIS)

2. В интегрированном режиме примерно всё тоже самое, за тем исключением, что там NET-среда уже является частью пайплайна IIS и приложению доступна возможность обрабатывать больше событий.  Т к теперь это часть IIS, то штатным завершением будет выгрузка домена приложения из памяти. Но т к это может быть не возможно по разным причинам, IIS всё равно может перезапустить процесс вместе со всем пулом приложений.  В штатном режиме обычно этого не происходит. Однако тут нужно сделать ремарку: 
Если под понятием "работает всегда" понимать запуск какой-то своей бэкграунд-задачи в отдельном потоке, то есть нюансы. Для старого ASP NET это описано в этом блоге haacked.com/archive/2011/10/16/the-dangers-of-impl... Для ASP NET CORE Микросософт сделал усилие и расширил как саму возможность правильного запуска фоновых задач, так и документацию: https://docs.microsoft.com/ru-ru/aspnet/core/funda...
И здесь нужно заметить, что никто не мешает просто запустить новый поток самостоятельно, но это не штатная работа и чревата всё теми же последствиями какие описаны в том блоге.
3. Режим stand alon более простой. Это отдельное консольное NET-приложение, в котором внутри работает HTTP-сервер Kestrel. Но в сравнении с IIS я бы назвал его "недосервер", т к у него мало того что нет большей части функций IIS, так ещё и хромает документация. Но всё равно, даже несмотря на это он во многом лучше IIS по причине своей простоты. Кроме того он является безальтернативным решением, если ваше приложение должно работать в docker-контейнере или на ОС отличной от Windows, где IIS не завезли пока. Т к это отдельное приложение, там можно запустить сколько угодно потоков и это не должно привести к описанным проблемам. Но всё равно лучше использовать штатные средства. Хотя бы в целях переносимости приложения между IIS и stand alone режимами.

Худший ответ:
Да работает всегда. Вот кстати для понимания
https://docs.microsoft.com/ru-ru/aspnet/mvc/overvi...
Вопрос: Почему значки стали отображаться крупными?

Лучший ответ:
Какая-то фигня с azure-ом.
https://docs.microsoft.com/en-us/answers/idea/6604... (в Firefox такая же ошибка, открывать другом браузере)

В качестве временного решения предлагают отключить OCSP Stapling:

Открыть about:config
Найти security.ssl.enable_ocsp_stapling
Заменить значение на false


UPD Вышло обновление Firefox  с фиксом

Худший ответ:
Покажите полный список расширений-анонимизаторов и проверьте, включен ли JavaScript
Вопрос: Как получить список новых смарт конрактов?

Лучший ответ:
Я с такой задачей еще не сталкивался, но вижу, что пока вообще никто не ответил.
Постараюсь помочь.

С уверенностью можно сказать то, что "копать" нужно в сторону анализа транзакций.

Транзакция в результате которой был создан смарт-контракт выглядит вот так
https://ropsten.etherscan.io/tx/0x5aa752d86932b36e...

Обратите внимание на поле "To"


Не исключаю, что если правильно декодировать поле "Input Data" - также можно получить информацию о том, что в этой транзакции должен создаться смарт-контракт.

Т.е. определить, что в результате этой транзакции создаётся смарт-контракт и после этого взять его адрес из поля To.

Знаю три варианта, которые можно рассмотреть для поиска решения:

1) https://docs.etherscan.io/, это бесплатное API от Ethereum (то, что на скриншотах).

2) https://infura.io, там, при помощи библиотек от эфира github.com/ethereum/go-ethereum я вычитывал транзакции и декодировал input data. Также там можно делать подписки.

3) можно попробовать поставить ноду эфира к себе на сервер и библиотеками эфира подключаться уже к ней, вместо infura.io и анализировать логи. Этот вариант имеет смысл только если вам не подходит ни etherscan.io, ни infura.io

Надеюсь это вам поможет.

Худший ответ:
Есть опенсорс проект https://github.com/blockchain-etl набор утилит по анализу блокчейн транзакций, скорее всего там решение есть
Вопрос: Как задать проверку обязательных полей в форме?

Лучший ответ:
var email = $('#email').val();
var phone = $('#phone').val();
var text = $('#text').val();Вот эта дичь не нужна! 

В полях формы айдишники меняем на атрибут name. Для почты указываем type="email", для телефона type="tel" (на мобильных устройствах будет сразу открыта цифровая клавиатура для ввода телефона). 
<form id="sendEmail" action="#" method="POST">
	<div class="modal-header">
		<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
	</div>
	<div class="modal-body">
		<input type="emal" class="form-control" name="email" placeholder="Email" required />
		<input type="tel" class="form-control" name="phone" placeholder="Телефон" required />
		<textarea class="form-control" name="text" cols="30" rows="10" placeholder="Сообщение" required></textarea>
	</div>
	<div class="modal-footer">
		<button type="button" class="btn btn-default" data-dismiss="modal">Отмена</button>
		<button type="submit" class="btn btn-primary">Отправить письмо</button>
	</div>
</form>

Данные через ajax отправляем на сервер не по клику на кнопку, а по событию submit как это положено для формы. 
$(document).ready(function(){
	$("form#sendEmail").submit(function(event) {
		event.preventDefault();
		$.ajax({
			type: "POST", 
			dataType: "html", 
			url: "page.php", 
			data: $(this).serializeArray(),
			success: function(data) {
				$(".modal-header").after(data);
			}
		});
	});
});

P/S: в php обработчик также необходимо добавить проверку и валидацию данных.

Худший ответ:
Уважаемый asalahiev!

Думаю, что не плохо было бы в  JS функции проверить содержимое переменных "email", "phone", "text".  И вызывать PHP обработчик лишь когда их значения будут не пустыми.

Сами то, что об этом думаете?
Вопрос: Кто-нибудь уже писал мобильные приложения на Maui? Как впечатления?

Лучший ответ:
Насколько я знаю это просто развитие Xamarin.
По сравнению с Xamarin улучшена производительность и появилось поддержка Model-View-Update и razor pages.
Так же сразу идет билд под все платформы и что-то там с нативным апи они сделали.
Насчет RN и Flutter составить конкуренцию в плане функциональности спокойно может, в плане скорости разработки при должных навыках в принципе тоже может, но надо не забывать что имеются баги и маленькое комьюнити.

Худший ответ:
Имеется ввиду использование webview браузера для UI?
соответственно Maui это с# dot net rust c++,
я хотел найти альтернативу webview, но не нашёл,
мне не нравится такая связь, т.к. не понятно как там взаимодействует память webview и оперативная память,
думаю tauri, это тоже самое что и Maui.
Вопрос: Как нарисовать плавные струйки дыма?

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

Начинается, собственно, всё с этим самых кривых. Вам нужно две. Чем больше они между собой переплетаются, тем интереснее потом будет узор. Я специально оставил справа ровную часть, чтобы было видно, что она не дает ничего. Если спросите как я сейчас их нарисовал - просто карандашом.



Создаете между ними бленд (Ctrl+Alt+B) с дистанцией в 1 пиксель. Можно поставить меньше - тогда переходных кривых будет больше. При толщине контура в 1 пиксель меньше 0.4 пикселя ставить уже особого смысла не будет.



Не переживайте, что всё слилось в одноцветье. Кстати, желаемый цвет вы можете задать как сейчас, так и на следующем этапе. Рекомендую делать это как раз там.

На всякий случай скопируйте бленд (Ctrl+C > Ctrl+F), чтобы была возможность что-то исправить, если последующий результат не понравится.

Выполните команду Object> Blend> Expand.

Далее Shift+Ctrl+G

Задаете малую непрозрачность (около 10%). Как раз сейчас лучше всего менять цвет. Можете также поменять режим смешивания.



Ctrl+G.

Большее свечение на "петлях" можно сделать дубликатом этой группы (Ctrl+C > Ctrl+F). Эту копию тоже надо будет потом разгруппировать (Shift+Ctrl+G) изменить цвет на более светлый, непрозрачность и режим смешивания по вкусу.



Собственно, узор готов.

При создании бленда вы можете нарисовать еще одну кривую и расположить ее в панели слоев между двух других. Дальше весь фокус в том, что ей нужно задать цвет фона. И в данном случае цвет других кривых нужно задавать сейчас. Потом тоже можно через команду Recolor Artwork, но это лишние действия.



Продолжение такое же: Shift+Ctrl+G, меняете прозрачность, режим смешивания и т.п.



Можно добавить еще одну кривую цвета фона и переплести ее с остальными. Можно переплетать два бленда от основного цвета к цвету фона и т.д. и т.п. 

Все команды, кроме рисования кривых, прекрасно записываются в экшен.

Худший ответ:
Можно взять за основу это:
https://ru.wikipedia.org/wiki/Кривая_Безье
примеры: https://www.google.com/search?q=bezier+curve&tbm=isch

хоть в Photoshop / IllustratorПомню, в старом Paint'е (ещё со времён Win95) были эти кривые; насчёт более поздних версий не уверен. В векторных редакторах должны быть, по идее.
Вопрос: Как надёжен RAID на простой, не серверной, плате?

Лучший ответ:
Это так называемый fake raid. Удивительная поделка, объединяющая недостатки одновременно аппаратного и программного рейда, но не обладающая никакими из их достоинств.
Использовать можно только если скучно и хочется приключений.

Не забудьте настроить бекапы. Рейды с избыточностью данных это про снижение простоя, а не замена бекапам.

Худший ответ:
Чем это может грозить? 
Тормозами, проипанием данных, невозможностью их прочитать потом.
То, что встроено в BIOS - это какой-то огрызок программного рейда. Он есть просто потому что есть и нужен он только тем, кто хочет попонтоваться (именно поэтому серьезные системы виртуализации такой типо-рейд в упор не видят)
Вопрос: Зачем .Net разработчику нужны отличные знания JavaScript?

Лучший ответ:
Первое. Половину требований в вакансиях можно смело отбрасывать. Это автогенерируемый мусор, чтобы быть конкурентными.
.NET-разработчики разные бывают. Есть чистый бэкенд, которым не нужно знать ангуляр, но JS знать рекомендуется, а HTML обязательно знать вообще всем. 
ASP.NET-разработчик тесно связан с фронтендом, а значит все ангуляры и реакты ему знать нужно, чтобы можно было договориться с тру-фронтендщиками на том же ангуляре.
Не надо так близко к сердцу принимать все прописываемые требования. Часто сами HR, а потом ещё и разработчики сами удивляются как та или иная технология попала в их список. Учитывать надо и то, что вакансия могла быть написана 5 лет назад, а за это время многое в компании поменялось

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

А так , да. Чистый бэкендщик сейчас мало кому нужен. Не ради экономии денег, ради экономии времени, чтобы не буцать и не блокировать задачи.  Дали задачу реализовать часть отображения данных, делаешь бэк для получения данных и сам же делаешь отображение. Не нужно тратиться на согласовывание между двумя и фронту ждать, когда бэк что сделает, а потом, если что-то не так, опять возвращать на бэк и т.д.
Вопрос: Через какое устройство интернет сильнее и стабильней?

Лучший ответ:
Роутер плюс модем это довольно стандартная и широко используемая комбинация. Берите её. Совет: роутер берите нормальный - микротик или кинетик; на модеме тоже не экономьте и берите с выводом под внешнюю антенну - её тоже сразу покупайте и на крышу монтируйте.

Худший ответ:
Ну телефон я бы тоже на постоянной основе не стал использовать, просто даже чтобы не занимать его! Между 2 и 3 разница практически только в том, что п.2 чаще подразумевает только wi-fi подключение и само устройство компактное, мобильное, а п.3 это обычный роутер как с проводным, так и с беспроводным подключением. Ничего чудовищного в нём нет. Какой к нему брать модем, нужно смотреть поддерживаемые модели в инструкции и желательно отзывы в интернете почитать.
Но мне почему-то кажется, что в Вашем случае, качество канала в большей степени будет зависеть от сотового оператора. Уж если у него связь хреновая, то тут хоть какое устройство бери... Было бы хорошо найти возможность потестировать разных операторов.
Вопрос: Можно ли сделать редирект с http на https без предупреждений браузера?

Лучший ответ:
Это можно сделать только на стороне сервера.
Но ни один вменяемый админ сервера не переведёт его с https на http

Худший ответ:
Не отвечаете header(), а сами в этом скрипте обращаетесь к этой ссылке, качаете её, и отдаёте скачанное запросившему пользователю. Так будет работать. Но для того скрипта на отдельном порту ВСЕ такие коннекты будут с IP-адреса самого сервера, что плохо для разграничения доступа...
Вопрос: Как отправлять UDP пинг?

Лучший ответ:
Прежде чем начинать писать чушь, стоит почитать олиферов, да? UDP пинга не бывает. ping - это ICMP, совершенно другой протокол.

Обойти NAT невозможно :)
Долбить провайдерский сервак можно хоть раз в секунду - просто за ddos посчитают и все. Нет механизма, который бы заставил провайдерский сервер инициировать соединение :) Ну не летают машины, не летают, не самолеты они.

Худший ответ:
Как отправлять UDP пинг?
Шта????? Как вариант справа. Другого даже не знаю. 
Но вопрос хорош. Он просто шикарен. Его возьму на заметку, чтобы на собеседовании крайне занудным и бестолковым интервьюерам с их вопросами про символы комментариев в  json-файле.
Вопрос: Определять цвет фона в зависимости от картинки на странице?

Лучший ответ:
Вроде это

Худший ответ:
Это не такая простая штука как может показаться. Средний цвет брать нельзя, потому что если смешать все цвета, то получится цвет известной субстанции.

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

В примере из вопроса, используется несколько цветов. Цвет поярче, цвет потемнее, и на более яркий, который располагается сверху накладывается полупрозрачный градиент. Чтоб это достичь, берется доминантный цвет и из него получается два варианта. 

Для получения доминантного цвета, можно использовать любую библиотеку или самостоятельно (https://lokeshdhakar.com/projects/color-thief/). А, для манипуляций с цветом, тут есть множество функций для преобразования цветов: https://github.com/styled-components/polished/tree...
Вопрос: Почему выходит ошибка в терминале линукс?

Лучший ответ:
Requested device "wlan0" does not exist

Давай подумаем вместе, что же может значить это загадочное эльфийское послание неведомых богов-пингвинов? Может, что такого устройства у тебя в системе нет? Да не, глупости какие...

Ну а если серьезно: в виртуалку не пробрасывается WiFi, она использует мост, который для гостевой ОС будет виден как обычное Ethernet соединение. 

airmon-ng

Очередной каликакер полез ломать соседу сеть? Бросай ты это дело.

Худший ответ:
Что, фразу device does not exist никак не можно перевести? :)  В виртуалку wifi не прокидывается, если это не отдельная карта в слоте.
Вопрос: Центрирование текста в python?

Лучший ответ:
Достаточно подумать головой, чтобы понять, что по центру легко поставить:
X = (Pic.Width / 2) - (Text.Width / 2)
Y = (Pic.Height / 2) - (Text.Height / 2)

Худший ответ:
Например от ширины картинки отнять длинну текста и разделить это на 2

img = Image.open("background.jpg")
W, H = (1400, 2000)
draw = ImageDraw.Draw(img)
msg = "12345"
w, h = draw.textsize(msg)
font_pt_1 = ImageFont.truetype("bahnschrift.ttf", 72)
draw.text(((W - w)/2, 150), msg, (255, 255, 255), font=font_pt_1)
img.save('sample-out.jpg')
Вопрос: Удалённая работа Front-end разработчиком в 17 лет. Что нужно уметь и возможно ли устроиться?

Лучший ответ:
Возможно ли в 17 устроиться на удалёнку 
Нет.

Худший ответ:
в этой области слишком высокая конкуренция

рекомендую 1с и сайты на битрикс
полно вакансий таких

если хочешь жаваскриптить то еще вариант - 3д в браузере
Вопрос: Дешевый vds/vps, который не тухнет долгое время?

Лучший ответ:
лицензия винды на сервер и то дороже стоит

Худший ответ:
Тоже нужен удаленный сервер для работы нашей компании.  Для нас больше важна скорость и стабильность.
Вопрос: Как сделать чтоб каждый пользователь Ubuntu имел свою php версию?

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

Кроме того,
по умолчанию в операционной системе может быть только одна версия php
Это неверно, вполне можно рядом примостить несколько разных версий.

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

Лучший ответ:
Технически - никак.
А так - банальное чутье.

Худший ответ:
Что-то из разряда «а знаешь ли ты *что-то*, если я тебе об этом не скажу?»
Вопрос: Есть ли программа, сервис, модуль для Excel, Calc для копирования из электронной таблицы в SQL?

Лучший ответ:
Knime.
Бесплатно. Есть русское комьюнити. Есть интерфейсы к почти любым sql и nosql бд. Открывает и пишет xlsx, csv, всё вот это вот. Можешь делать с «колонками и строчками» что угодно. 
Есть куча аналолитических модулей, логика, циклы и всё такое. Есть возможность создавать вставки на java, js, python и т.п. Можно поднять сервак и выполнять удаленно. Можно десктоп приложение. 

Только надо влиться в процесс. Там несколько нетривиально всё, я например с третьего подхода фишку просёк.

Худший ответ:
У вас очень специфичные требования к функционалу Excel. Все таки excel-файлы - это просто еще один вид получения отчета от информационной системы (в ИС входит как специализированный софт, так и СУБД - где структура базы спроектирована не просто набором таблиц, а именно по функциональным особенностям предметной области). Такие файлы не обязаны обладать внутренним функционалом импорта и экспорта данных, это просто выгрузка данных по какому-то информационному срезу. Excel хоть и имеет возможность выполнять вычисления по полям, но не надо возлагать на него то, что должен делать тот самый софт, которого у вас нет.
Однако, MS Office имеет возможность добавлять в свои документы макросы. На макросах можно сделать то, что вы хотите. Но при каждом изменении вида экспорта и импорта вам придется привлекать программиста, чтобы поправил код макроса.