Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Рассчет отступов в пагинации?

Лучший ответ:
На самом деле достаточно четырех if-ов и одного цикла. Правда условия у этих if-ов довольно развесистые.
Сперва вычисляем какие номера страниц видны в начале, в конце и в середине$start = 1 + $indent;
$end = $total - $indent;
$mid_start = $current - $indent;
$mid_end = $current + $indent;
Первый и последний if-else выводят активную или неактивную стрелочку ← →
(вместо неактивной, можно и вообще не выводить)
Цикл пробегает по всем страницам, проверяет не текущая ли это страница, или страница попадает в видимый диапазон, и нужно вывести кликабельную ссылку или троеточие.лапша c кусками бутстрапаpublic static function renderPaginator($total, $current, $indent = 3)
    { 
        $start = 1 + $indent;
        $end = $total - $indent;
        $mid_start = $current - $indent;
        $mid_end = $current + $indent;
        
        ?>
    
    <nav style="margin: 0 auto;">
        <ul class="pagination">
            <?
            
            $skip1 = ($start > $current || $current > $end);
            
            if ($current == 1) { // previous
                ?><li class="disabled"><a href="#" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li><?
            } else {
                ?><li><a href="?page=<?=($current-1)?>" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li><?
            }
            for ($p = 1; $p <= $total; $p++) { // each page
                if ($p == $current) {
                    ?>
                    <li class="active"><a href="#"><?=$p?> <span class="sr-only">(текущая)</a></li><?
                } else {
                    
                    if($p < $start
                    || ($p > $mid_start && $mid_end > $p)
                    || ($p > $end)
                    || ($p == $start && $p == $mid_start)
                    || ($p == $end && $p == $mid_end)
                    ) {
                    ?>
                    <li><a href="?page=<?=$p?>"><?=$p?></a></li><?
                    } elseif($p == $start || $p == $end) {
                    ?>
                    <li class="disabled"><a href="#">...</a></li><?
                    }
                }
            }
            if ($current == $total) { // next
                ?><li class="disabled"><a href="#" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li><?
            } else {
                ?><li><a href="?page=<?=($current-1)?>" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li><?
            }
            ?>
  
        </ul>
    </nav>    
    <?
    }

Худший ответ:
Контроллер
if (isset($_GET['page'])) {
			$page = $_GET['page'];
		} else {
			$page = 1;
		}
        $dataitems = array(
			'start' => ($page - 1) * 20,
			'limit' => 20
		);
Модель
		$sql = "SELECT * FROM table order by `id`";
		if (isset($dataitems['start']) || isset($dataitems['limit'])) {
			if ($dataitems['start'] < 0) {
				$dataitems['start'] = 0;
			}
			if ($dataitems['limit'] < 1) {
				$dataitems['limit'] = 20;
			}
			$sql .= " LIMIT " . (int)$dataitems['start'] . "," . (int)$dataitems['limit'];
		}
Вопрос: USB Железка для оцифровки видеосигнала (VHS кассета )?

Лучший ответ:
Самый малозатратный вариант взять VHS магнитофон и практически любую DV-камеру. Также нужен IEEE 1394 (Firewire) вход на компе.

С выхода VHS по S-Video подцепляем к камере видео, тюльпанами — звук. А с DV-камеры фаерварником подключаем к компу. Запускаем Adobe Premiere, Pinnacle и т.п. и цифруем. Помня при этом, что 1 час DV-video занимает около 13 гб. И перед цифровкой обязательно перемотать раза 2 вперёд-назад кассету.

Если камеру негде взять, проще купить распространённый в своё время Pinnacle DV 500.

Худший ответ:
Сам долго матерился на качество дешевых тюнеров, а потом мне в руки попал УСБ K-world уже не вспомню название, но года 4 назад он стоил 1700 рублей где-то. И качество вполне отличное было. После этого цифровал на профессиональной студии и учитывая качество самого материала разница была не столь огромна.
Хотя тут наверное не подгадаешь и мне просто повезло
Вопрос: Почему hello world на symfony грузится 72 секунды?

Лучший ответ:
Может быть при первом запросе генерировался кеш долго?
Тоже недавно его решил попробовать — у меня такое только если кеш сбросить — первый запрос долгий а потом всё ок.

Худший ответ:
Предлагаю для фундаментального «разбора полетов» выложить Ваше «hello world» приложение на github. Постараюсь помочь.
Вопрос: В чем преимущество OSX перед Windows для программиста?

Лучший ответ:
Для C++, насколько мне известно, в OS X нет достаточно полного аналога Visual Studio. Для Java, конечно, есть Eclipse и IntelliJ IDEA. 
Преимущества OS X лично для меня (уже около 3-х лет в качестве основной системы дома):
— Более-менее нормальная консоль, т.к. Unix. 
— Из верхнего пункта все вытекающие последствия — консольные утилиты из коробки, Homebrew и т.п.
— Софт выглядит очень приятно, в плане дизайна и UX операционная система от Apple вне конкуренции, имхо. 
— Есть очень полезный и качественный софт, повышающий скорость работы (Alfred, Dash, 1password, например).
— Ни разу не было серьезных проблем с системой
Недостатки:
— Отсутствует нормальный MS Office (для меня это проблема)
— Мало игр
Ну и ноуты от Apple выглядит классно.

Худший ответ:
Ни в чем, всё равно 90% софта пишется для винды.
Вопрос: Можно ли в google docs написать текст вертикально?

Лучший ответ:
Пока только так:
=arrayformula (concatenate((mid ("вертикальный текст";row(indirect("yy1:yy"&len("вертикальный текст")));1)&char(10))))

Худший ответ:
Меню: Формат > Поворот текстаСкриншот, как повернуть текст на 90 градусовВынужден оставить это тут, так-как по данному вопросу эта страница в топе и более быстрого способа узнать не нашел.
Вопрос: Raspberry pi отключается. Брак или проблемы с питанием?

Лучший ответ:
может ОС глючит? попробуйте Pidora поставить

Худший ответ:
Это был брак. Я ее вернул продавцу, они экспертизу сделали и заменили ее. Всем спасибо за помошь.
Вопрос: Взлом: В логах Mikrotik вижу чужое подключение l2tp|ipsec — подключается кто-то левый?

Лучший ответ:
ну сервис же наружу торчит - вот и стучатся

Худший ответ:
позакрывай порты
Вопрос: Что делать с забаненными ссылками — в сервисе сокращения ссылок?

Лучший ответ:
лучше вообще никогда повторно не использовать ссылки — они могут еще сохраниться на общедоступных ресурсах, а кто-то в ссылке может передавать имя/пароль (ну, в случае со ссылками в google docs — доступ по ссылке)

Худший ответ:
Лучше пользователю пришедшему по этой ссылке сказать, что она забанена, нежели, чем заставлять его бродить по сайту и искать, то, с чем он перешел…
Вопрос: Как создать не-root пользователя в CentOS с доступом только к определенной папке?

Лучший ответ:
Ставьте, например, proftp в режиме SFTP и настраивайте запирание в home. Средствами самого ssh - примерно так

Худший ответ:
Делаете chroot-окружение. Можно для этого использовать тот же debootstrap.
Туда монтируете /proc, /sys. Копируете файлы /etc/{passwd,shadow,group,gshadow}. Монтируете директорию к которой надо предоставить доступ пользователю в chroot. И через /etc/ssh/sshd_config указываете чтобы он при подключении по ssh попадал в chroot-окружение.
Вопрос: Какие вы видите перспективы в развитии js «оберток»?

Лучший ответ:
В моем представлении о препроцессорах ниша для coffescript занята теми, кто предпочитает философию ruby. 
В сторону typescript смотрят те, кто перешел из типизированных языков и на 
данный момент не может представить, как можно сделать крупное приложение не программируя 
"на интерфейсах", каковым является философия типизированных языков.
Поклонники Babel, это третья сторона силы, которая сейчас учится будущему.
Лично я смотрел coffe и скомпилированный код мне понравился меньше, чем чисты, как слеза,
скомпилированный код typescript.
И я остановился на Babel, потому что js беден без последних новшеств, а выбирая между написания целой библиотеки или использовать точно такую же плюс учась завтрашнему синтаксису, я выбрал второе.

Худший ответ:
Использую haxe. haxe.org
Можно писать приложения под разные платформы.
Вопрос: Куда уехать до конца лета?

Лучший ответ:
Сезон дождей не означает что будет лить без остановок до конца лета, это не африка. Тем более в таком климате да еще и на работе — дождь благо. Езжайте в таю.

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

Лучший ответ:
может как то так? 99designs.com/

Худший ответ:
не?
Вопрос: Налоги с продажи сайта

Лучший ответ:
Если по простому, то можно продать как физик физику, за рубли на территории РФ. В начале 2014 года подать декларацию (как физик) и там:
 — заплатить 13% от суммы сделки (не кашерный вариант)
 — показать расход на создание сайта (нарисовать договор) заплатить налог на разницу между расходом и суммой сделки (так же можно продать без выгоды для себя — на сайт потратили 7,5 продали за 7,5. Никакого криминала)

Можно сложнее, заковыристей, но надежней. 
1) Заключаете с покупателем договор займа на сумму 7,5 на пол года в договоре прописываете возможность возврата не только деньгами, но и иными активами. Через пару недель к Вам приходит озарение, что вы не можете погасить долг, в результате составляете акт, оцениваете ваш нематериальный актив (Сайт) в сумму 7,5 и передаете в качестве возврата долга.

2) Заключаете все, что угодно. Просто покупатель выплачивает Вам не всю сумму зараз а траншами менее 600 тыс. (это лимит ниже которого банки не отчитываются пред налоговой)

P.S. тема финансов мне очень близка, номера законов не помню, но подтверждение моей писанины при желании можно легко найти

Худший ответ:
Как вариант нарисовать ТЗ на создание сайта. Заключить договор на работу и тут же подписать что все условия работы выполнены и все сдано. Но опять же в таком случае 13% плюс на пиво, плюс оформление. Для покупателя это лишние проблемы. Если речь о большой сумме идет, откройте офшор и проведите сделку через счет этой компании. Оффшор обойдется где-то в 50-70т.р. (скорее всего это будет оншор, оффоры вымирают, лучше платить маленький налог и создавать иллюзию компании, чем остаться ни с чем).
Самый простой вариант это получите деньги налом если сумма меньше 1 млн рублей и забудьте о том что у вас был сайт. Домен тихо переведите на покупателя, код так отдайте, составьте "договор соглашение", что все права на интеллектуальную собственность и идеи передаете(но это нужно если покупатель волнуется и не хочет потом проблем). А так по сути если есть налог на продажу домена, и домен будут на баланс ставить вам итак придет уведомление что нужно заплатить налог. Вообщем надеюсь мой ответ кому-то поможет.
Вопрос: Проксирование GET параметров через статичную картинку используя NGINX?

Лучший ответ:
Используйте X-Accel-Redirect.

Худший ответ:
location умеет регулярные выражения, можно всё «отпарсить» и подставить куда нужно
Вопрос: Знаете ли вы программистов которые в одиночку создали крутой проект?

Лучший ответ:
Google - два парня Сергей Брин и Ларри ПейджFacebook - начал Марк ЦукербергInstagram - два парня, один делал приложение для iPhone, другой делал сайт, потом заработали расширилисьMsDOS - первую версию сделал один человек, потом Баллмер у него купил за 50 000 $ и права перешли MicrosoftNginx - начал Игорь СысоевКомпьютер Apple I - дело рук Стива ВознякаLinux - начал Линус ТорвальдсGit - начал Линус торвальдсRedis  - Salvatore Sanfilippo ( antirez )Minecraft - начал Маркус Перссон ( также известный как notch )Dropbox - начал Дрю ХьюстонShadertoy - создан Iñigo Quilez ( также известен как iq )C++ - начал Бьёрн СтрауструпPython - Гвидо ван РоссумPHP - Расмус ЛердорфSimplaCMS - начал один человекDLE CMS - начал один человекTYPO3 CMS  - начал один человек
P.S. ответ редактировался и дополнялся

Худший ответ:
TYPO3 - Система создана Каспером Скорхёем и распространяется бесплатно под лицензией GNU GPL.
https://ru.wikipedia.org/wiki/TYPO3
Вопрос: Как российскому айтишнику уехать жить и работать в Украину?

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

Худший ответ:
Мы свалили от туда и слава богу. И никаких денег не нужно (да, в киеве зарплаты сейчас повыше и конкуренция такая же как и раньше - т.е. нулевая почти)
Всё это розовые сопли про "побывала в Киеве и понравилось". Парня небось красивого увидела и что-то в голову ударило. Не стоит путать туризм с эмиграцией. Но я очень рекомендую - езжайте. Там вам быстро откроют всю "правду".
>> Насколько возможно официальное трудоустройство? 
нет и забудьте. Украина на уровне 90ых в плане трудоустройства и защиты прав работников. 50% фирм платит вчерную, ещё 50% платит как ИП (ФЛП там называется). Я думаю вам не нужно объяснять, что ИП это бизнесмен и его можно запросто кинуть, разорвать за 1 день с ним контракт и что угодно сделать, если на фирме кризис начался? ЗП не платить\задреживать за 2-3 месяца, например. По трудовой книжке только в библиотеку можно устроиться или в Самсунг. Конечно вам будут рассказывать, что это всё сказки. Пока не столкнёшься с реальностью. Из плюсов - там ИТ более развитое, чем в России и зарплата в долларах (привязана к курсу)
Одних знаний фронтенда никому не достаточно, но могут взять обучая дальше чему-то.
Вопрос: CSS. Как избавиться от наследования?

Лучший ответ:
попробуйте background-color: rgba();

Худший ответ:
Так и не получится.
opacity в данном случае не наследуется.
Элемент прозрачный на 30%, соответственно все внутренние элементы будут прозрачнее...
Вопрос: Указатели на память в стеке?

Лучший ответ:
Итак. В присваивании у нас участвует "string" - это константа. Она отправляется компилятором в область данных программы - это зависит от платформы, куда конкретно. Так что на стеке оказывается сам указатель cStr, который указывает куда-то, куда компилятор засунул ваши буковки.
По второму вопросу (какого черта вы засунули два вопроса в один?) - компилятор - не дурак, он взял два одинаковых набора символов "str", понял, что они одинаковые, и не стал плодить дубляки - в a и b попадает один указатель, потому как компилятор не стал сохранять в программе две идентичные строки.

Худший ответ:
Почему при выводе, напримерstd :: cout << cStr ;
Выводится "string" , то есть значение, а не адрес значения как обычно с указателями ?
Потому что в cout переопределена оператор << для типа char*, так чтобы  выводилась именно строка, а не указатель. Чтоб вывести адрес преобразуйте указатель в int и выводите как целое число.
Вопрос: Выбор системы управления проектами + tracing система?

Лучший ответ:
Судя по описанию нужна система уровня управления жизненным циклом (application lifecycle managnemt), поскольку только в таких есть встроенные возможности трассировки между проектными артефактами, а также учет и планирование ресурсов.
Из доступных российских аналогов могу порекомендовать devprom.ru

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

Лучший ответ:
Как зеленый может учить других зеленых стать красным?

Худший ответ:
Поделюсь опытом:
Для обычной лекции внутри своей компании соотношение 1 час лекции = 3 часа предварительной подготовки ( конспектов лекций )
Да, вторая и 3 лекция проходят значительно легче. 

Самое главное не тормозить.., на успехе вашей лекции. 
Ведь ваши «ученики» тоже растут: вы должны быть впереди их.
Это сложно ( по факту 1 час лекций = 7 час вашей подготовки, естественно — это первая лекция )
А без фактической практики — это очень очень сложно… ( если говорить о качестве )
Вопрос: Как определить гео принадлежность IP адреса не используя базы maxmind.com, ipgeobase.ru и т.п?

Лучший ответ:
Цель определения географического положения уточните, где и как будут данные использоваться?UPD:От этого зависит ответ на поставленный вопрос?
На самом деле, я хотел кое в чем удостовериться. И удостоверился.
С моей точки зрения, вы не вполне понимаете, что и зачем вам нужно. Что такое "географическая принадлежность IP адреса"? Географическая принадлежность может наблюдаться у человека, его дома, квартиры, клиентского устройства, но не у какого-то 32-битного числа. Соответствие клиентского устройства и глобально маршрутизируемого IPv4-адреса, который видит сервер в интернете - вещь  в общем случае непостоянная и нерегулярная.Как и где узнать как на самом деле?на самом деле? Получить доступ к внутренней документации провайдера (конфигурации устройств, карта сети с географической привязкой) и сопоставить разнородные данные. Все остальные способы, базы дадут вам лишь первое приближение.
Если рассмотреть задачу определения города клиента веб-магазина с целью персонализации, например, то я бы поступил так. Сначала определение положения по нескольким популярным базам, по данным регистратора IP адресов (RIPE для Европы/СНГ). Неким алгоритмом определил бы наиболее "специфичное" совпадение. Например, если RIPE и одна база говорят, что хост расположен в Киеве, а другая база - что во Львове, выбрал бы Львов как более специфичный вариант. Далее, показал бы клиенту ненавязчивую форму: "мы предполагаем, что вы из такого-то города, если это не так, то, пожалуйста, уточните данные" и установил бы ему соответствующий параметр в cookie.
Вкратце, IP-адреса годятся для определения географического положения клиента лишь в первом приближении. По мере развития практики аренды IPv4-префиксов интернет-компаниями друг у друга устаревание информации в различных базах ускорится. В зависимости от целей, вам может пригодиться Geolocation API HTML5 или некая реализация его аналога (т.е. с использованием не только IP-адреса, но и других данных, GPS в случае смартфона, SSID наблюдаемых точек доступа Wi-Fi и прочая)UPD2: Забыл упомянуть еще один момент, иногда можно сделать выводы о местоположении хоста базируясь на его имени, в данном случае - записи PTR (например, hostXXXXXX.dyn.kiev.isp.ua). Опять же, эти корректность этих данных не гарантирована, была лет пять назад релевантная история с PTR вроде rostelecom-fsb в выводе traceroute до livejournal.com или аналогичного сервиса (с понятной реакцией пользователей сервиса, "37й год вернулся" и прочая).

Худший ответ:
Определения геолокации по IP это целая наука.
Можете ознакомиться со статьями о том как это происходит в данный момент и какие новые технолии были разработаны совершенно недавно.Bigdatacloud.net предоставляет удобные API и 10к запросов по каждому из них в месяц, абсолютно бесплатно, без ограничений по точности и детализации данных.
Вопрос: Считаете ли вы, что книги по саморазвитию в большинстве своем бесполезны?

Лучший ответ:
Очень полезны, просто 99 процентов их читателей не делают то что в них написано и им кажется что они бесполезны
Их можно вообще не читать и просто заниматься своей жизнью

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

Лучший ответ:
Можно положить изображения в какое-нибудь хранилище, например S3 или облачное хранилище от Селектела. Будет недорого (если не очень большой трафик), и надёжно

Худший ответ:
Я бы перешел на другой хостинг, тот же digitalocean. Ну или его использовать под картинки.
Вопрос: Mikrotik: мониторинг и удаленное управление?

Лучший ответ:
1) SNMP умеет. Т.е. любой софт мониторинга. Опрашивать через всё тот же VPN из второго вопроса.
2) Поднимаете интерфейс управления как VPN до какой-то машины с внешним IP
Что там может не работать у однажды настроенной железки, но при этом это можно исправить удалённо? И кто доверил полторы сотни офисов дилетанту?

Худший ответ:
если без белого ip, то только snmp-traps, но тут все зависит от того что именно вы ххотите мониторить. если состояние cpu и загрузку портов, то трапами тут не обойтись.
поставить один центральный роутер с рельным ip и поднять со всех филлиалов до него pptp.( или же eoip, но на сколько я помню eoip требует 2  реальных адреса) и первый пункт безболезненно решается, можно будет спокойно мониторить загрузку и состояние железяки, поднять zabbix и запиилить в него шаблон, в интернете ужее есть созданные
Вопрос: Почему рынок готовых тем настолько огромен и рентабелен и каковы его перспективы?

Лучший ответ:
Купить тему дешевле зачастую в десятки раз чем сделать самому. Англоязычный рынок больше русского в сто раз поэтому смотря на русский рынок вы думаете что рынок перегрет. А рынок то по сути ещё даже не разогрелся. Сколько ещё миллиардов людей без интернета до сих пор?

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

Лучший ответ:
На две формы ни в коем случае не стоит разбивать. Десять полей — это не так много.
Лучше логически разделить части формы.

Почитайте советы на сайте Бюро Артёма Горбунова, там есть немало интересного про формы:
artgorbunov.ru/bb/soviet/

Худший ответ:
1) Что такое название сайта? сделайте автоматический парсер тега title до n-ного символа, -1 поле.
2) Когда пользователь ввел почту, он уже должен быть залогинен, а пароль ему на почту высылается.
3) Чек-боксы не нужны, напишите, что при нажатии на «Отправить» пользователь соглашается с тем-то тем то.
Вопрос: Как обойтись в данной случае без goto?

Лучший ответ:
если у вас задача - выйти из цикла, то можно использовать break:foreach ($items as $value) {
    if (условие) break;
}

Худший ответ:
Не увидел тут goto, но вам лучше вообще забыть про этот оператор.
А кто мешает вам вызвать exit в любом месте?
php.net/manual/ru/control-structures.break.php
Вопрос: Как учитывается время синхронизации?

Лучший ответ:
Есть сервер времени. На расстоянии примерно в 1000 километров с него синхронизируется другие компы (ЛЭП волс). Как именно учитывается время которое затрачивается на передачу запроса и выдачу ответа. Если не вдаваться в детали - отправили десяток запросов серверу времени, он вам в ответ продиктовал смещение вашего времени относительно сервера по каждому запросу. Выбираете среднее.
Т.е сервер вам не говорит сколько сейчас, он говорит на сколько его показания отличаются от присланных вами.
Если вдаваться в детали - курите RFS по NTP, считайте дисперсию Аллана.Точность интересует именно в МИКРОсекундах! В указанных вами условиях речь идет про милисекунды. 
Хотите микро - не пользуйтесь интернетом, для этого GPSы и прочие ГЛОНАССы существуют.

Худший ответ:
Алгоритм работы NTP: www.ntp.org/ntpfaq/NTP-s-algo.htm#Q-ALGO-PLL-UPD
Вопрос: На чем программировать физику-математику?

Лучший ответ:
Матлаб/Питон для алгоритмов, Си для скорости, MPI для кластеров, Куда/ОпенЦЛ для видеокарт, R для статистики и еще много много всякого специфического софта для разных специфических задач.

Худший ответ:
Если только визуализация — проще использовать специализированный софт — MathLab, FreeCAD, есть также софт для визуализации молекул итп.
Там нет возможности делать архисложные алгоритмы, но и изучать программирования не требуется.