Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как в каждом проекте автоматически работать в PyCharm с тем версиями библиотек, которые прописаны в requirements.txt?

Лучший ответ:
Вообще PyCharm вроде умеет создавать виртуальные окружения (читай - локальные копии питона) для своих проектов? Тогда просто в каждом проекте создай свой venv, установи локально в него нужные пакеты и работай так.
Но точнее сказать затрудняюсь, с PyCharm сам не работал.

Худший ответ:
настраивать для каждого проекта свой питон (свой venv). создавать их  можешь как в pycharm, так и из консоли.
Вопрос: Сколько часов кодить на работе?

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

есть определенное время. есть разбор полетов и факапов.
если лажа – конкретно ваша, и вы продолжите лажать, с вами просто попрощаются.
и кол-во часов тут никак не роялит: потому что лажа за 2 часа или за 200 – все равно лажа.

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

конкретно по сабжу: сколько хотите.

Худший ответ:
можно провести аналогию с бегом - сколько кто может бегать? - неподготовленный человек не долго, подготовленный намного дольше. 
На моей практике обычно от 2х до 4х часов разработчики кодят. 
Если человек очень хорошо подготовлен то может больше - у меня обычно после 6-7 часов кодинга голова перестаёт соображать, можно только что-то на лайте делать)
Но помимо кодинга куча сопутствующих задач ещё есть, начиная от изучения проблемы, заканчивая тестированием, документированием ну и личным развитием.
Вопрос: Как на python скачать html страницу?

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

Худший ответ:
Самый простой способ:
import requests
r = requests.get(url) #url - ссылка
html = r.text
f = open('test.html', 'w')
f.write(html)
f.close()
Если вы еще хотите работать с этими кодами дальше советую библиотеку bs4
Вопрос: Как провайдер видит DoH/DoT трафик?

Лучший ответ:
 Как провайдер видит DoH/DoT трафик? В виде набора рандомных символов/букв/etc? 
Как и любой другой HTTPS/TSL трафик - видет адрес, резолвера, к которому ты пошёл с запросом, но не видит, с каким запросом, и какой ты получил ответ.
И я правильно понимаю, что по HTTP сайту в любом случае будет передаваться вся информация, даже если использовать DoH/DoT или через VPN сидеть?
В чём смысл использовать DoH для работы с сайтами, у которых нет https? Хотя сейчас таких почти нет.
Если будете работать с сайтом, у которого есть https, то провайдер увидет, к какому ip вы обращаетесь, но тк вы зарезолвили его через doh, то он не увидит домен.

Хотя опять же есть DPI, который может как-то косвенно понять, к какому именно сайту вы пошли на основе размеров пакетов и ip

Худший ответ:
DoH - как нечто похожее на HTTPS-сессию. DoT - как нечто непонятное, но вполне определяемое по сигнатурам.

Второй вопрос непонятен, перефразируйте. Если имеете в виду сайт без шифрования - да, если не через впн, ваш провайдер увидит всё. Через впн - всё увидит провайдер впна и далее.
Вопрос: Если удалить ветку, то что происходит с дочерними ветками?

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

Худший ответ:
проще всего представлять так: коммиты образуют что-то вроде связного списка (не обязательно линейного, могут быть разветвления, но это не суть важно). А ветка - указатель на коммит, т.е. на некоторый узел в этом списке. Удаляешь ветку - просто удаляешь этот указатель, при этом коммит остается.
Вопрос: Как оплатить зарубежные сервисы, если Visa, Mastercard и PayPal приостановили деятельность?

Лучший ответ:
Я так понимаю, единственный пока рабочий метод - надо куда-то вылететь, оформить долгосрочную аренду, и платежи ком.услуг на свое имя, оформить счет в зарубежном банке, или wise.com, payoneer.com - пройдя валидацию по новому адресу. 
Положить туда денег с запасом и вернуться.
А можно и не возвращаться.

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

Лучший ответ:
Нет, "оптимизировать json_decode" нельзя.

Но вот избавиться от идиотского алгоритма, который чтобы достать одну запись декодит их все по очереди - можно и нужно.
И никакой детский лепет про "ой заранее распарсить ну никак нельзя, сайт крутится на мамином утюге" здесь не помеха. 

Распарсить, положить в базу, при изменении данных менять их в базе, искать по-человечески, через SQL.
А редис тут вообще никаким боком не упёрся.

Худший ответ:
Переделать схему базы.

Можно попробовать использовать либу для потокового парсинга json halaxa/json-machine. Она вам поможет убедиться что проблема не в парсинге, а в структуре базы
Вопрос: Путь развития сетевого инженера/администратора?

Лучший ответ:
Путь может быть таким: простой человек --> сетевой инженер --> гуру сетевого администрирования --> повелитель мета вселенной.
На это уйдут годы тренировок. Не благодари.

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

Лучший ответ:
Почему мощность резистора R10 выбрана 0.5, а не 0.125 Вт?Чтобы резистор не сгорел. Когда светят 8 светодиодов, через них проходит ток в 8 раз больше, чем через один светодиод (при условии одинаковой яркости). В 8 раз больший ток через резистор приводит к выделению в 8 раз большего количества тепла. Номинальная мощность резистора есть максимальная рассеиваемая (в виде тепла) мощность, при которой резистор не перегорит, а может работать длительное время (годы).

что можно сделать, чтобы применить резистор на 0.125 вместо 0.5 Вт?поставить по одному резистору 0.125 Вт после каждого из светодиодов HL6..HL13. По схеме нетрудно предположить, что сопротивление каждого из этих восьми резисторов должно быть 330 Ом (смотрим на R1..R5). Но по хорошему нужен рассчёт, о котором говорит Виктор.

Худший ответ:
Вы предоставили почти всю просимую мною инфу, кроме напряжения питания. В дальнейших прикидках буду исходить из того, что Uпит=5 вольт, диоды желтые (Uпр~2 вольта) и светятся все разом, кроме одного. Получается суммарный ток примерно 60 мА, мощность на R10 около 170 мВт. Это действительно превышает 0,125 Вт, но для применения полуваттного резистора причины нет, достаточно 0,25 Вт.
Тем не менее резистор 0,125 применить можно, если использовать в качестве светодиодов современные сверхяркие - они отлично светятся от тока вдесятеро меньшего, чем те старинные, что стоят у вас (то, что там именно такие, видно по излишне большому току).
Итак, вот мой  совет - ставьте в схему сверхяркие диоды, и это позволит применить R10 мощностью 125 мВт и сопротивлением 330...680 Ом.
Вопрос: Какую OS выбрать для NAS?

Лучший ответ:
Ну ubuntu\debian....
TFTP должен поддерживать в первую очередь Ваш роутер...

Из готового посмотрите openMediaVault
В том числе есть виртуалки и докер...
Там же ничего не мешает поднять там же на голом железе некстклауд и перенастроить веб сервер для работы некстклауда и веб интерфейса

Худший ответ:
Я сам после долгих испытании перешел на виртуализацию (proxmox). До этого пробывал синолоджи, xigmanas и т.д. в итоге кажды сервис держать отдельной виртуальной машиной удобнее мне оказался. Например nextcloud лучше установить начисто и потом его доделать-настроить потихоньку. А для ВН нет лучше чем отдельный видеорегистратор (плата видеорегистратора на алике стоит от 1000 руб, дальше бп12в и HDD и интерес сборки конструктора).
Апач отдельной виртуальной машиной. А для дома (smb, torrent, dlna и т.д.) отдельная виртуальная машина с xigmanas.  И в добавок есть отдельный сервер на селероне с железной xigmanas для резервного копирования важных данных( включаю иногда только чтобы бекапы делать).
Вопрос: Ругается антивирус на безвредную программу, как решить?

Лучший ответ:
Нашел решение. Сначало, при помощи cython компилируем код в C

cython -3 script.py
Следом, компилируем C в EXE
https://docs.microsoft.com/ru-ru/cpp/build/walkthr...

Худший ответ:
Ну что же)
Я внесу тоже свой вклад)

Антивирусам не очень нравится сам питон, а не ваш код. В своё время этот интерпретатор засветился в разных вспышках вирусной активности, следы этого до сих пор преследуют его)

Учитывая то, что исполняемый файл, который был упакован какими-то внутренними решениями, по типу (cx_freeze, pyinstaller, py2exe and etc.) по сути является архивом, в котором лежит сам питон, библиотеки и ваш код в формате .pyc(py compiled).

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

Соглашусь с MichaelMih, как вариант использовать альтернативные питоны(cython, ironpython, jython and etc.).

Надеюсь вам помог мой ответ)
Вопрос: В чем именно проблема с ЖД?

Лучший ответ:
SMART всегда возвращает физическое состояние диска. Фактически состояние SMART хранится на контроллере диска, так что ПО тут значения не имеет.
У вас начались переназначения секторов. Это происходит, когда какие-то сектора на диске выходят из строя, в этом случае доступ к ним блокируется контроллером и вместо них назначаются другие (резервные) сектора. Резервных секторов ограниченное количество. 
Пока что у вас только 3 переназначения (VALUE), предельное количество переназначений 36 (THRESH). Когда количество переназначений достигнет этого числа, то переназначать уже будет нечего, тогда контроллер диска будет возвращать ошибки чтения в ОС.
Еще какое-то время диск может пожить. Но не известно как быстро он исчерпает все переназначения.
Так что лучше слить с него все что можно и заменить.

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

Худший ответ:
Ещё может быть вариант что тормоза начинаются при чтении со своп файла/раздела, часто встречал данный эффект, даже при подключенном m2 ssd при чтении со свопа система жутко тормозит
Попробуй закрыть все приложения которые сильно потребляют оперативку, и запустить команду swapoff -a, это отключит подкачку, дальше включаем её обратно swapon -a, если до того как swp в htop пустое тормозов нету, скорее всего придётся ковыряться с настройками swap
Вопрос: Почему вкладки Chrome при клике отделяются в новое окно?

Лучший ответ:
Это от мыши и\или от мышиных настроек. Попробуйте уменьшить разрешение мыши, или поэкспериментировать с настройкой клика (если есть продвинутые настройки в драйвере).

Худший ответ:
Такая же проблема. Я связывал ее с заблокированным автообновлением хрома.
На какое-то время проблема пропала, теперь после перезагрузки вернулась снова.
Вин 10.
Хром Версия 100.0.4896.127 (Официальная сборка), (64 бит)
Мышь Hama Roma
Вопрос: Почему не записываются буквы при регистрации?

Лучший ответ:
Кавычки вокруг $surname потерял при составлении SQL-запроса.
https://habr.com/ru/post/662523/ - начни с этого, чтоб такого не было

Худший ответ:
Кавычки вокруг $surname потерял при составлении SQL-запроса.
https://habr.com/ru/post/662523/ - начни с этого, чтоб такого не было
Вопрос: Можете посоветовать варианты бесплатного хостинга для full-stack пет-проектов?

Лучший ответ:
Сейчас дешевые vps (1 cpu / 1 gb ram / 15 gb disk) стоят 190 руб в месяц - имхо это гораздо удобнее, докер воткнул и делай , что хочешь.

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

Лучший ответ:
Ассемблер активно используется для:
* SIMD-оптимизаций в наиболее сложных задачах: кодирование и декодирование видео, эмуляции других архитектур (например, игровых приставок на компьютере)
* Написания (части) низкоуровневого кода для процессоров: бутромы, прошивки, и т.п.
* Создания того же UEFI под конкретную архитектуру/чипсет

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

Лучший ответ:
1. Количеством запросов
2. Нехаотичностью запросов
3. Отсутствием рантайма для JS
4. Либо присутсвием рантайма, но отсутствием натурального движения мышью
5. Списком IP из ренжа AWS/DO/Vultr и других хостингов. Пользователи не сидят с таких IP адресов или делают это очень редко (купили и настроили там VPN)
6. Резкими всплесками активности из одного сегмента сети (следствие 1 и 5 пунктов)
7. Капча
8. Что угодно ещё, хоть fingerprintjs

Какая конкретно детектилка ботов стоит — сложно сказать. Либо измерять эмпирически, либо подкупить разработчиков оттуда, либо терморектальный криптоанализ. Но в любом случае, это должно стоить дешевле, чем информация, которую ты пытаешься попарсить

Худший ответ:
При прочих равных пользователи в первую очередь отличаются частотой запросов. Парсер сходит по всем линкам за миллисекунды. Если владелец сайта задался целью усложнить парсеру работу, он сможет это сделать, анализируя частоту и типичность запросов.
Ну и ловушку можно предусмотреть - невидимая в UI ссылка, например (а если парсер умный и определяет видимость элемента, то можно и "светло-серое на белом" сделать). Прошёл по ссылке - значит бот (или влезливый мамкин хацкер). 
Если пофантазировать, то можно и нейросетку приделать, которая бы, имея модель действий среднестатистического пользователя, определяла бы, насколько этот клиент не похож на человека.
Вопрос: Как на php будет выглядеть запись из JS «value = value || 0»?

Лучший ответ:
$value = $value ?? 0
нет?

Худший ответ:
если value существует, берем значение из value, иначе приравниваем 0.
$value = $value ?? 0
как уже предложили, но к 
value = value || 0
это отношения не имеет. || - это оператор дизъюнкции, но в php он возвращает тип bool в отличии от js.
Вопрос: Как оплачивать хостинг?

Лучший ответ:
Итак, после некоторого флоу по оплате, я нашел некий алгоритм по оплате хостинга Hetzner с актуальностью на 14.03.2022.


Производите оплату при помощи банковского перевода, Сбербанк это делает.
Совершайте перевод за несколько дней до предполагаемой даты выставления инвойса: минимум 5 дней.
Чтобы сберечь нервы, не делайте перевод позже среды, так как: день занимает перевод от Сбербанка до промежуточного банка, день до Дойчебанка (вы получите уведомление от Сбербанка, что перевод дошел до иностранного банка) и несколько дней (1-2) пока средства появятся в вашем аккаунте.
Немецкие банки, как и саппорт Hetzner не работают по выходным, поэтому ждите.
Пишите\звоните в саппорт Hetzner - ответят обязательно, но не стОит этого делать в пятницу по указанной выше причине.


Как-то так  ¯\_(ツ)_/¯

Худший ответ:
Оплачивал через rubscribe. Подписали с ними договор.  Далее оплатили инвойс от Hetzner без каких-либо проблем. Но есть нюанс: нужно иметь юр. лицо или хотя бы ИП. Райфайзен Банком вроде тоже до сих пор можно оплатить.
Вопрос: Как сменить айпи на втором ПК, подключенному к одной LAN сети?

Лучший ответ:
Не выйдет - тот айпи, который вы видите через 2ip.ru и т.п., выдан роутеру (даже не столько ему, сколько динамически провайдером на все подключения с порта в оборудовании провайдера, куда воткнут роутер). Чтобы айпи были разные, вам нужно поднять на одном из ПК VPN-сессию куда-то ещё, и через неё пытаться выходить в Интернет.

Худший ответ:
Вообще-то проще всего заказать самый дешёвый VPS с доступом по SSH, подключиться к нему с туннелем
ssh -p port user@server -D localport

и на адресе localhost:localport у вас будет локальный SOCKS прокси, программа, выходящая через него в инет, будет иметь внешний IP от VPS. Можно использовать "проксификатор", вроде proxychains под Linux.
Можно даже запускать несколько подключений, подключаться к разным портам локального прокси, и иметь несколько разных внешних IP даже на одном компьютере.
Вопрос: Как в Ansible выполнить замену или вставку текст в файл?

Лучший ответ:
Я бы сделал шаблон конфига и из него уже контролируемо формировал конечный конфиг.

Худший ответ:
Проблема-то в чём? Не можете регулярное выражение составить?
Варианты:

Регулярное выражение с поиском и заменой
Модуль blockinfile
Шаблон
Вопрос: Как можно сократить говно-код?

Лучший ответ:
Кучи if ($request->input("type") заменяй на switch case, тем более далее по тексту у тебя оно используется, пиши код хотя бы в одном стиле.

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

Про права доступа, у тебя точно 2 состояния - public и authorized? может у тебя еще есть какой-нибудь superuser? или еще есть права на основе данных (например если статус операции 'такой то' то действие запрещено)... хотя метод по любому должен быть ->allowed() который собирает данные по текущему пользователю, состоянию, данным и т.п. хотя лучше разделять права доступа по роли и по состоянию, пусть будет пара методов.

Вот такие строчки "required|numeric|min:1|max:10000" - bad practics, магические константы, что значит 10к, 15, 3, 24, 5000... везде разные, что почему зачем, уже через пол года ты не вспомнишь а уж другой программист и подавно не поймет. Оформляй в виде функции-генератора или даже класса, документируй все значения, даже если это значения от балды, когда ты их выдумывал какой то смысл ты в это вкладывал - опиши это в коментариях в этой функции или классе, не обязательно все выносить в конфиг файл, сам отдельно лежащий файл с таким классом уже этот конфиг. Мало того, почему сериализация массива такая странная, на рынке существует уже безоговорочный стандарт json, и machine и human readable, накладные расходы минимальны (можно заставить паковать nginx, по трафику будет не на много больше чем умно оформленный protobuf), тем более у тебя там ошибки уже в json выдаются.

Худший ответ:
Валидацию убрать в форм реквест, правила доступа в политики. Остальное зависит от логики. См инструменты Ларавел кроме контроллеров и роутов.
Вопрос: Как решить проблему с открытием портов?

Лучший ответ:
какой у вас на роутере внешний адрес (обычно его видно в админке роутера)?

если белый - показывайте таки скрины админки. или хотя бы назовите модель роутера. 
если серый - скорее всего никак.

Худший ответ:
Так был же по мойму от тебя уже этот вопрос. неделю или 2 назад. я там всё подробно расписал. Какая цель то в открытии порта?
И да - если открываешь во внутрь, к твоему ПК\сервису - должна быть подключена услуга у провайдера - "внешний IP адрес"
Вопрос: Странная сетевая активность на mikrotik, у меня одного?

Лучший ответ:
Бот сканит

Худший ответ:
в spamrats этот ip в черном списке.
https:// bgp. he. net/ip/185.156.73.125#_rbl

RBL (remote block list or realtime blackhole list)
Вопрос: Как можно обезопасить Postgresql от случайного удаления volume с бд в Docker?

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

Худший ответ:
Сделай bind mounts:
db:
    restart: always
    image: postgres:12.0-alpine
    volumes:
      - /data/postgres_data:/var/lib/postgresql/data/
Вопрос: Как сделать панель управления принтера/чайника в браузере?

Лучший ответ:
Универсального инструмента нет. Следует исходить из задачи (какой именно фронт и что именно должен уметь бэк), и ресурсов - на сколько сильно вы можете увеличить стоимость устройства и какой человеческий ресурс.

На фронте, как уже сказали, выбора нет - любое решение в итоге будет сводиться к html/js/css (даже если навернуть React/TypeScript/sass)

На бэке варианта два:
1. Чайник/принтер сам выступает в роли сервера. Тогда придётся писать на C или Rust.
2. Сервером выступает отдельный, более мощный компьютер, чем тот который управляет основными функциями.
Он может быть как встроенным в устройство (какой-то небольшой одноплатный компьютер), так и отдельным (полноценный сервер или хаб) - тогда бэкенд можно будет написать на том, что тебе будет более удобным.

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

Худший ответ:
Для фронтенда у вас, кроме HTML,  JS и CSS, особо выбора то и нет ))
Бэкенд частенько и не нужен, ибо на устройстве может быть простенький web-сервер, который может принимать и обрабатывать запросы.
Вопрос: Как распространять только модификацию кода, без основы?

Лучший ответ:
Технически то, что вы хотите - это применение патча. Если вы можете сделать git diff, то результат этой команды позднее можно применить к исходному файлу (файлам) и получить модифицированную версию.
Делается это при помощи команды patch:
patch < diff.patch
где diff.patch получен как
git diff > diff.patch

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

Лучший ответ:
Документацию читали?
https://laravel.com/docs/8.x/migrations#squashing-...

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

Ну или дамп из миграции потом просто через DB::unprepared запускать можно.
Вопрос: Как в си узнать какой пользователь вошёл в систему linux?

Лучший ответ:
Вариант 1:
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char **argv)
{
    char *cmd = "whoami";
    char buf[BUFSIZ];
    FILE *ptr;
 
    if ((ptr = popen(cmd, "r")) != NULL)
        while (fgets(buf, BUFSIZ, ptr) != NULL)
            (void) printf("%s", buf);
            (void) pclose(ptr);
    return 0;
}
Вариант 2:
#include <stdlib.h>
 
int main(int argc,char **argv)
{
    system("whoami");
    return 0;
}
Оба варианта вернут имя текущего пользователя.


Худший ответ:
А такое не сработает: `system("who -a")`? Нужен 'stdlib.h'.  Источник: https://www.techonthenet.com/c_language/standard_l...