Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какую бухгалтерскую программу или ERP для производства выбрать?

Лучший ответ:
В любом случае Вы находитесь в рамках решения подрядчика, это нужно понимать с самого начала. Многие подрядчики будут настаивать на ERP, потому что это выгодно внедрять. Я же Вам советую всеми способами избегать ERP.  
Сделайте лучше следующее: Управление Нашей Фирмой (УНФ), как конфа для Спецификаций/Заказов/Остатков из неё данные загружаются в Бухгалтерию для получения проводок и регл-отчетности; 
Такая схема удобна ещё и тем, что позволяет параллельно вести внедрение и настройку УНФ , Бухгалтерии и web-магазина; Кроме того, web-магазин будет присылать/получать данные только из УНФ (и не будет иметь доступа в бухгалтерскую систему)
Не каждый подрядчик захочет реализовывать такую модель; Но Вы попробуйте, посоветуйтесь, постарайтесь проработать общую архитектуру проекта с подрядчиком(-ами) сразу. Может вместо УНФ есть что-нибудь более близкое к вашей специфике ...
Но запомнить важно одно: ERP - ни за что, Бухгалтерия - наше всё; Не озвучивайте этот тезис при подрядчиках, обсудите с ними "Как они видят решение ?" выбирайте тех кто предложит Бухгалтерию

Худший ответ:
Поговорите с франчайзи.  В принципе гонять в 1с и обратно не проблема. Я сейчас как раз готовлю коробочное решение для интернет магазинов, свяжитесь со мной, добавим интерфейсы для загрузки выгрузки.
Вопрос: Какая программа под WINDOWS Умеет создавать архив по SFTP на Сервере и выгружать?

Лучший ответ:
Cobian backup  посмотртте

Худший ответ:
ssh и баш скрипт. Это наиболее правильный вариант
rsync
winscp +планировщик
Вопрос: Можете помочь досоставить схему включения свет.диодной ленты при открывании двери через геркон?

Лучший ответ:
Вариант через реле

(если реле как из схемы, то там 6 слотов под подключение проводов - что в какой порт подключать)?

Смотрите обозначения: COM = общий, NO = нормально разомкнутый контакт, NC = (в данном контексте) нормально замкнутый контакт. Вам нужны COM и NO.

Худший ответ:
Вариант через реле

(если реле как из схемы, то там 6 слотов под подключение проводов - что в какой порт подключать)?

Смотрите обозначения: COM = общий, NO = нормально разомкнутый контакт, NC = (в данном контексте) нормально замкнутый контакт. Вам нужны COM и NO.
Вопрос: Как сделать паузу в js вычислениях, чтобы отрисовать изменения?

Лучший ответ:
Как вариант, всю тяжёлую работу передать в web worker.


показать лоадер
вынуть из localStorage данные, и отправить их в worker
спиннер крутится, воркер в другом треде считает
воркер наконец пришлёт ответ: большой кусок готового HTML
вставить весь полученный HTML разом
скрыть спиннер


Худший ответ:
JS каждой страницы в браузере однопоточный. Поэтому для того, чтобы на странице что-то происходило, вам необходимо разбить свой код на быстро выполняющиеся фрагменты так, чтобы каждый фрагмент вызывал следующий через setTimeout. Тогда между этими фрагментами браузер сможет обрабатывать события пользовательского интерфейса.
Вопрос: Как сменить версию php для mysql?

Лучший ответ:
php -v - это консоль. веб-сервер может быть настроен на использование другой версии пыха. 
для веб-сервера нужно смотреть выхлоп phpinfo().
как лечить на панелях понятия не имею. 

и, как уже написали, лучше вообще не пользовать PMA.

Худший ответ:
PHP в Linux присутствует в 4 основных ипостасях:
1. консольное приложение php
2. модуль для Apache
3. FPM модуль для nginx и т.п.
4. библиотека php-mysql

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

Лучший ответ:
После этого и срабатывает этот блок success. где отрисовывается новый блок.
document.getElementById('client-personal-note-container').innerHTML += appendNotemakrup;
Нет, это НЕ добавление нового элемента.
Это чтение разметки КАК СТРОКИ, добавление к этой СТРОКЕ новой СТРОКИ и потом преобразование под капотом в DOM элементы. Понимаете?

То есть все элементы что у Вас были - умирают и заменяются НОВЫМИ. Без добавленных на них ранее обработчиков.

Как исправить?
Основных пути 2:
1) Научиться именно добавлять элементы https://learn.javascript.ru/modifying-document
2) Освоить делигирование событий https://learn.javascript.ru/event-delegation

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

Лучший ответ:
Перестаньте заниматься ерундой и замените div'ы на ol + li.

Ну или хотя бы через css сделайте.#itemInner {
  counter-reset: bullshit-counter;
}
.row {
  counter-increment: bullshit-counter;
}
.row::before {
  content: counter(bullshit-counter) "!!!";
}
А если всё-таки намерены продолжать говнокодить, то......долой счётчик itemLength, устанавливайте значения заново после каждой вставки/удаления:

itemInner.find('.item-num').text(i => i + 1);

Худший ответ:
let itemInner = $("#itemInner");
        var itemLength = $("#itemInner.row").length;

        $("#addItem").click(function (e) {
            e.preventDefault();
            itemLength++;
            var addedRow = `
                <div class='row '>
                <div class='item-num'>${itemLength}</div>
                <button id='deleteItem'><img src="/img/icons/delete.png"></button>
                </div>
            `;
            itemInner.append(addedRow);

            // Меняем кол-во
            $("#count").text(itemLength);
        });

        itemInner.on("click", "#deleteItem", function (e) {
            e.preventDefault();
            $(this).closest("div").remove();
            itemLength--;

            // Меняем кол-во
            $("#count").text(itemLength);
        });

        // Отслеживаем изменения кол-ва
        $("#count").bind("DOMSubtreeModified",function(){
            // Переписываем нумерацию            
            $(".item-num").each(function(i, elem) {
                $(elem).text(i+1);
            });
        });
Вопрос: Стоит ли размещать сервер в офисе?

Лучший ответ:
Сначала стоит посчитать - какой ширины канал потребуется, чтобы на пике обеспечить одновременно всех возможностью передачи таких файлов. 
Потом покачать головой и урезать хотелки. И снова посчитать.
И снова покачать головой и урезать. И снова посчитать.
...
И так до тех пор, пока не придете к реальности, которая есть весьма суровая штука. Или я что-то не понял, и 10 тыс. чел. - это не одновременное количество юзеров, а вообще их количество (для расчета стора, например)? Тогда нужно задаться количеством одновременных подключений - и все равно посчитать требуемую ширину канала. Потому что в первую очередь упрется все в это (если конечно это не сервер для обмена данными внутри офиса :) )

Худший ответ:
Из вне будут подключения же? Вам 10GB канал дадут в офис?)
Какой мессенджер? Сколько это надо хранить?
Вопрос: RabbitMQ: как правильно выполнять тяжелые задачи?

Лучший ответ:
Сам консюмер не должен обрабатывать задачи. Его основное назначение - разгрузить очередь и отправить задачи дальше, например в базу данных или на другие сервера через балансировщик. Лучше всего первый способ.
Далее некий воркер смотрит необработанные задачи в базе данных и неспеша их обрабатывает. Обработанные задачи помечает флагом.

Худший ответ:
php-amqplib тормозной, лучше расширение amqp из pecl
Вопрос: Какие есть способы работать в front-end до 18?

Лучший ответ:
Гугл говорит, что украинский ТК не запрещает несовершеннолетним работать. Так что остаётся только найти работодателя.

Худший ответ:
Даже если вы все что нужно для джуна знаете, конкуренция такова, что найдутся десятки джунов, которым 18, или которым 21 после института, и никто не захочет мучаться с разрешениями для несовершеннолетних.

Поэтому на текущий момент - помощь с лабами, фриланс. Ну и можете конечно пробовать искать работодателя, но врядли. Просто с точки зрения работодателя - зачем ему лишние проблемы..
Вопрос: Как пробросить порт 8080 из VirtualBox в физический сервер?

Лучший ответ:
Добавить правило проброса на роутере - только и всего.
Ничего сложного там нет.

Уточнил информацию у провайдера - никакие порты не блокируются и не фильтруются;
Сайты по проверке доступности портов говорят, что порт 8080 не доступен
При чем тут провайдер, какие сайты??? У вас же проброс внутри одной физической машины?

что нужно сделать, что бы порт 8080 в Windows Server был виден из Ubuntu Server?Для начала определиться что вам конкретно нужно.
В вопросе вы спрашивали как пробросить порт из виртуалки в физический сервер, а в теле вопроса спрашиваете как пробросить из физического сервера в виртуалку.
Вы уж определитесь туда или обратно пробрасывать надо.

Худший ответ:
У вас Ubuntu - гостевая? а основная WinServer?  Тогда по нормальному - никак, ток через "велосипед". 
Если сеть  в режиме моста - тогда можно пробросить с ТПлинк на IP Ubuntu, с Ubuntu уже фаерволом переадресовать на IP WinServer.
Как настроена сеть в VirtualBox - какой режим сетевого адаптера там стоит?
Почему нельзя сразу напрямую прокинуть порт на WinServer? С ТПлинка?
Вопрос: Объясните, чем здесь является elem.onclick?

Лучший ответ:
В конструктор передаётся html элемент.
Ему в onClick назначается одноимённый метод класса Menu.
то есть в onClick элемента кладётся вот это:
onClick(event) {
      let action = event.target.dataset.action;
      if (action) {
        this[action]();
      }
    }
с забинженным контекстом на инстанс класса. Так как по умолчанию в обработчиках событий this равен элементу.
А вот зачем там в _elemкладётся elem это загадка.

Худший ответ:
Это чтобы у обработчика был контекст этого объекта. Чаще замыканием делают, но тут - так.
elem.onclick = e => this.onClick(e); // замыканием - так. этот код - не совсем эквивалент, но делает то же.
Вопрос: Почему не GLOBAL?

Лучший ответ:
Чем я могу заменить такую конструкцию?
Нормальным возвращением переменной через return

def func(var):
    var += 1
    return var

var1 = 0
var1 = func(var1)

Худший ответ:
Потому что каждая функция имеет к ним доступ и это засоряет пространство имен. Используйте либо return, либо волшебное слово self в функциях класса
Вопрос: Как рендерится шрифт в linux?

Лучший ответ:
Под капотом используется HarfBuzz для определения расстановки глифов.
State of Text Rendering. Статье уже более 10 лет, но она позволяет понять как исторически развивался рендеринг. Behdad, я думаю, был одним из ключевых разработчиков в рендеринге.

FreeType, собственно, растеризует глифы с заданными координатами, шрифтом, цветом и прочими характеристиками.

Modern text rendering with Linux: Overview

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

Худший ответ:
В Photoshop CS5 и Photoshop CS6 функциональные возможности 3D-рисования были доступны в Photoshop Extended. Все возможности Photoshop Extended доступны в Photoshop CC. Photoshop CC не имеет специальной версии Extended.
Стандартным режимом рендеринга является «По умолчанию», при котором на экран выводятся видимые поверхности моделей. Режимы «Вершины» и «Каркас» выводят на экран базовую структуру. Для совместного использования режимов «Сплошной» и «Каркас» выберите предустановку с сочетанием этих двух режимов. Для отображения модели в качестве элементарного куба, размеры которого соответствуют габаритам исходной модели, выберите предустановку «Ограничительная рамка».

В верхней части панели 3D нажмите кнопку «Сцена» .
Вопрос: Где искать заказы вычислений на суперкомпьютере?

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

ценообразование- между амортизацией и ценами Большой Семерки (ИБМ амазон гугл азур китайцы французы оракл)

Худший ответ:
Не то что бы вы тут заработали, просто может в вас заиграет добродушие.
https://ru.wikipedia.org/wiki/BOINC
Вопрос: Мониторинг температуры linux сервера в Zabbix?

Лучший ответ:
Заббикс в состоянии забирать данные через запросы к http snmp и кучу других протоколов и хэлперов

Худший ответ:
https://www.youtube.com/watch?v=XcztWztGjZA реализовал с помощью данного гайда
Вопрос: Насколько реально иммигрировать в США, не имея профильного образования?

Лучший ответ:
Не наличие\отсутствие вышки главное препятствие на пути к H1B (в конце концов, если бы у вас было 10 лет профильного подтверждённого опыта, вышка была бы не нужна). Главная проблема - лотерея для желающих получить H1B.

Да-да. Вот нашли вы работодателя, готового вас перевезти, а виз H1B всего 55000 на весь мир, и ещё 20000 для магистров и докторов по отдельной квоте. А желающих получить рабочую визу почти 300.000 человек, поэтому американское правительство проводит лотерею, на которую податься можно только 1-2 дня в году (в начале апреля каждого года, ЕМНИП).

В общем, долго это, муторно и никакого прямого пути к этой визе нет: повезёт-не повезёт.

L1-B может быть лучшим вариантом. Ради неё многие в Европу переезжают, куда-нибудь в Ирландский офис Google (как сделало несколько моих бывших коллег из Яндекса).
L1B позволяет через год работы в филиале американской компании релокейтнуться в США. Квот нет :) Это самый нормальный путь, единственный минус - если вам не сделают гринку, то работодателя вы поменять не сможете, как на H1B. Поэтому для L1B во-первых, заранее оговаривайте с работодателем то, что он обязуется сделать вам гринкарту, во-вторых, остерегайтесь бадишопов, лучше ломиться в Google, Amazon, etc.

Читайте форумы, например govorimpro.us

Худший ответ:
Если есть бабло просто переезжай, на остальное я бы хрен ложил
Вопрос: Как вы считаете время ожидания на Freelance?

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

Если обговорено, то оплачивается любое время, даже если "мы просто обсудили пару мелочей"...

Худший ответ:
Обычно нет, считается фактическая работа. 
Но все зависит исключительно от позиционирования своего труда и договора.
Вопрос: Что потянет компьютер на GTX 660 2GB, Core i5-3570, 16 GB ОЗУ?

Лучший ответ:
У играх, как ни крути, главное - видеокарта. 
Если бы вы хоть чуть-чуть погуглили, то нашли бы кучу статей и видео, полностью отвечающих на ваш вопрос:
https://www.overclockers.ua/video/gpu/nvidia/gefor...
https://youtu.be/VoFsmdHYcG0
https://youtu.be/Lgra157a7fo

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

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

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

Лучший ответ:
Самба АД - это всегда ужасно, но работать должно. Особенно, если версии не очень различаются.

Худший ответ:
Samba - это неродной для Linux файловый интерфейс. Он IMHO создавался для интеграции Windows систем. Просто исходя из этого предположения я-бы поискал другие способы. Например NFS.
Вопрос: Как отсортировать дробную и целую часть числа в C++?

Лучший ответ:
Целую часть можно получить с помощью floor(v)
Дробную: (v - floor(v))
Для сортировки используйте стандартный sort.

Кстати, отсортировать вы можете массив (он у вас уже есть в памяти), когда говорят про поток, то это нечто потенциально бесконечное, порции данных из потока вы получаете частями и обрабатываете их.
Соответственно, если у вас действительно поток, то надо строить из его данных дерево. Для этого можно использовать стандартный map. Данные будут укладываться в дерево по мере поступления с одновременной сортировкой. Получить из дерева отсортированный список можно просто обходом дерева с помощью итератора.
Данные в дереве сортируются по ключу. Для ключа можно использовать примерно такую конструкцию: floor(v) + (1 - (v - floor(v)))

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

Лучший ответ:
MySQL построен по клиент-серверной технологии. С файлами базы данных работает сервер, к которому обращаются клиенты. Сервер может располагаться на том же компьютере, что и клиент, или на другом, доступном через сеть. Такая технология используется, как правило, когда все экземпляры приложения работают с одной общей базой данных.
Если вам надо держать отдельную базу данных для каждого экземпляра приложения, то смотрите в сторону SQLite.

Худший ответ:
Большинство СУБД хранят данные в директориях со своим расположением. В Линуксе изменчивые (variable) данные хранятся в /var. Не должно быть никаких проблем с тем что данные хранятся именно там. Все, что создается пользователем, доступно только тем, у кого есть доступ к схемам БД и таблицам.

Из тех немногих СУБД, которые позволяют хранить данные в той же директории, что и приложение, можно упомянуть SQLite. Это единственный файл, в котором находятся все данные и они доступны любому, у кого есть доступ к файлу. В SQLite нет аутентикации пользователей.
Вопрос: Не загружает скетч?

Лучший ответ:
Наверно надо выбрать через что загружать

Худший ответ:
1. Установить на ПК необходимый драйвер для конвертера UART-USB вашей Arduino
2. Подключить  Arduino к ПК. Убедится, что появился соответствующий виртуальный COM-порт
3. В Arduino IDE в меню Инструменты-Плата выбрать вашу плату, в меню Инструменты-Порт выбрать соответствующий порт
Вопрос: Как рассчитать норму количества багов на проект?

Лучший ответ:
А зачем считать "баги на проект"?? Тем более, что любой мало-мальски опытный программист знает главную аксиому программирования: "Любой последний найденный баг в программе/проекте всегда является на самом деле предпоследним".
И это не шутка. 
Вот из этого и исходите.

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

1. Баги гарантированно будут в любом достаточно сложном продукте.
2. Если не работает какой-то типичный сценарий (например если нельзя добавить в корзину товар в магазине) - это даже не баг, а просто невыполненная (некачественно выполненная) работа.
3. В любом достаточно долго работающем продукте, которым пользуется много людей, будет исчезающе малое количество критичных багов.

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

Лучший ответ:
Не нужен. Можно начать учить язык без привязки к ios. Если же хочется писать именно под ios, для начала будет достаточно симулятора

Худший ответ:
Телефон легко можно заменить компьютерным эмулятором. Реальное устройство обязательно в случаях использования GPS, камеры, Bluetooth и подобного, чего нет в компе или не поддерживается эмулятором
Вопрос: Нормально ли забывать пути решения задач JS?

Лучший ответ:
school-collection.edu.ru/catalog/rubr/696f5fc4-7f5...
и учебник по арифметике

Вы 10 лет учили в школе матиматику. Сколько Вы из нее забыли ? 90% или более ? Но таблица умножения и 4 арифметических действия отскакивают на автомате от зубов ? 

Анекдот в тему
Эдисон однажды пожаловался Эйнштейну, что никак не может найти себе помощника. Эйнштейн поинтересовался, как он определяет их пригодность. В ответ Эдисон показал ему несколько листов с вопросами. Эйнштейн стал их читать:
"Сколько миль от Нью-Йорка до Чикаго?" -
и ответил:
"Надо заглянуть в железнодорожный справочник".
Он прочёл следующий вопрос:
"Из чего делают нержавеющую сталь?" -
и ответил:
"Это можно узнать в справочнике по металловедению".
Быстро просмотрев остальные вопросы, Эйнштейн отложил листки и сказал:
"Не дожидаясь отказа, снимаю свою кандидатуру сам".

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

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

В целом мысли очевидные, но знай, что ты не один такой))))
Вопрос: Как защититься от разработчика?

Лучший ответ:
4. Как я могу обезопасить себя от возможной кражи сайта и доменного имени регистратором?
А он кому-то так нужен? Не работайте с микрорегистраторами, работайте с серьезными конторами и никому нафиг Ваш домен не упрется. Вы явно преувеличиваете собственную значимость.
2. Как я могу обезопасить себя от возможной кражи сайта и доменного имени фирмой
Зарегить домен в одном месте, сайт в другом. После регистрации домена сменить пароль и больше его фирме не давать - все нужное она уже сделала. Не разрешать действия с доменом без личного присутствия.
От кражи сайта - никак, они же его разрабатывают :)

Худший ответ:
Регистратором - никак.

Заключай договор. где всё четко должно быть прописано

Зарегистрируй все на себя, им выдай либо нужные права, на отдельного пользователя, если такое есть, либо данные для входа
Вопрос: H-мост на n-канальных транзисторах?

Лучший ответ:
Основные варианты:
Драйверы с бутстрепным питанием на полумост/мост/трехфазные мост. Их до 600 В огромный выбор, например серия IR.../IRS... от Infineon.

Изолированные драйверы, такие как HCPL, TLP, ISO. В случае, когда они используются в верхнем плече, питание подавать через изолированные DC/DC.

Трансформаторы.

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

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

А так, вопрос является баяном
Вопрос: Как все делают деплой из git hub actions?

Лучший ответ:
В туториалах примерно такая схема
Это часть которая называется CI.
Что касается CD - зависит от того что бежит на сервере. Если K8S - есть варианты, включая GitOps c ArgoCD и т.п.
Если AWS ECS - деплой через AWS.
Если "просто  VPS с докер" - через ssh запускаем команду на обновление image, рестарт и т.п.
В git hub actions будет история деплоев.

Худший ответ:
Runner же
Вопрос: Какое выбрать сетевое хранилище?

Лучший ответ:
Для маленькой команды подойдёт любой бытовой NAS.
WD MyCloud или что-нибудь от Хлаоми. Хватит чего угодно в пределах 15 тыр (ну и диски, если их в комплекте нет).

Худший ответ:
Любой готовый NAS + wifi карта к нему

Самосборный ПК, установить туда OpenMediaVault + карточка wifi...
Вопрос: Какую библиотеку или методику лучше использовать для работы с ценами в интернет-магазине?

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

moneyphp/money
brick/money

Первая более популярная, её используют многие библиотеки. Но в последние полгода разработка встала, так что в своём проекте я решил использовать вторую из них, работает хорошо.

Если смотреть на зависимые от них пакеты - можно найти ещё много всего интересного по этой теме.

Худший ответ:
1) К неожиданному результату могут привести операции с float и double, но это так везде, не только в PHP
2) https://github.com/moneyphp/money
3) Для работы с деньгами не использовать числа с плавающей точкой. Либо оперировать копейками в int, либо использовать специально для этого предназначенные библиотеки
Вопрос: Где искать социально значимую работу?

Лучший ответ:
Можно поработать волонтером. На НКО. Денег не будет, но социальной значимости хоть отбавляй. 

Открою маленький секрет - компанию для души найти очень не просто. И не для всех людей есть такие места

Худший ответ:
Волонтером в любую социальную отрасль