kolya7k

Пикабушник
1072 рейтинг 20 подписчиков 7 подписок 21 пост 1 в горячем
Награды:
5 лет на Пикабу

Как ИП платить меньше налогов

Многие ИП "сидят" на УСН и платят налоги либо 6% от оборота, либо 15% от прибыли + 1% от оборота.

Хочу рассказать вам про такую редко применяемую систему налоговых отчислений как "Патент".

Патент даёт право платить ФИКСИРОВАННУЮ сумму налогов в год, при этом она существенно ниже чем "обычный" УСН.


Например, для Челябинска при 15 человек численности сотрудников стоимость патента на разработку программ для ЭВМ составляет 34320 рублей в ГОД.


При этом стоимость патента зависит от рода деятельности и от региона, в котором она осуществляется. В Москве и СПб она выше примерно в 10 раз, но всё-равно получается выгоднее чем 6%.


Для того, чтобы перейти на патентную систему налогообложения необходимо соответствовать ВСЕМ условиям из списка:
1. Вы ИП.
2. У вас не больше 15 сотрудников.

3. Ваш годовой оборот не превышает 60 млн. рублей (регионы могут менять этот лимит, см. информацию по своему региону).
4. Деятельность, которой вы занимаетесь позволяет применять патент (список по ссылке ниже).


При этом ИП освобождается от налогов на доходы физических лиц, на имущество физических лиц и НДС!

Подать заявление на патент можно в ФНС к которой приписан ваш ИП.


Список видов деятельности, на которые можно получить патент и все подробности тут https://www.nalog.ru/rn77/taxation/taxes/patent/

Расчёт стоимости патента: https://patent.nalog.ru/info/

Показать полностью

Бэкапы в облако

Пост для тех, кто как и я искал быстро развёртываемый гибкий сервис для бэкапов в облако по приемлемой цене. Пост НЕ является рекламой и подходит для мелких и средних проектов.


Наш парк серверов состоит из CDN, Application и Web-серверов. ОС - Gentoo x64, основная БД - MySQL.


Бэкапить нужно

1) Файлы конфигурации (весь /etc).

2) Конфиг ядра, чтобы не настраивать заново (/boot/config*)

3) Очередь почты (/var/spool)

4) Конфиги собственных приложений

5) БД

6) Webroot


На наших проектах нет нужды в репликации БД и подключать эту функцию только для бэкапов нет смысла. Все таблицы делятся на те, что можно спокойно потерять (логи доступа, генерируемые отчёты и пр.) и те, что потерять никак нельзя.


Серверов много, на них стоят SSD и делать на каждом RAID-массив для бэкапов мы не хотели (выходит дорого), поэтому выбор пал на unmanaged cloud backup сервис - rsync.net

Цена за это хранилище 0.04$ / GB в месяц.


Средний размер БД одного нашего Application сервера 200GB, Webroot - 10-1000GB.


Как понятно из названия - сервис работает по протоколу rsync (с пробросом через ssh), скорость заливки бэкапов из России и Европы примерно 1MB/sec. Настраивается за 5 минут, сам сервис самостоятельно делает ежедневные снапшоты и хранит 7 снапшотов.


БД и данные сначала бэкапятся в локальный каталог через mysqldump, все данные сжимаются архиватором zstd (намного быстрее и эффективнее zip, bzip), а потом заливаются в облако.


Универсальный скрипт, который используем мы можно взять тут: https://pastebin.com/X7XW0Nz9


В скрипте нужно заменить текст

%RSYNC_URL% на URL, который вам выдаст сервис после регистрации.

%SERVER_NAME% на имя вашего сервера


Создать --login-path=backup чтобы не писать в скрипте пароль, а брать данные доступа из предварительно созданных конфигов (https://dev.mysql.com/doc/refman/8.0/en/mysql-config-editor....).


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


По-умолчанию бэкапятся все БД и все таблицы на сервере. Для того, чтобы исключить таблицу из бэкапа нужно добавить ей в комментарии слово "nobackup"

Показать полностью

Пост про программирование №2

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


Я не хочу научить вас чему-то особенному, но хочу показать вам в каком направлении стоит думать, чтобы стать лучше, поэтому этот пост имеет стиль повествования.


Когда вам приходит мысль "я должен зарефакторить это *****"? Однозначно, тогда, когда ваш текущий опыт программирования выше, чем тот, который был когда вы писали то, что считаете "*****". Если у вас этого не происходит - поздравляю, вы не растёте. Абсолютно любой программист с ростом опыта хочет "переписать" весь свой старый код. Если у вас возникло такое желание, во-первых, запишите причины, по которым вы производите эти изменения. Постарайтесь их формализировать. Если вы не сможете объяснить другим программистам почему вы это сделали и не в стиле "так лучше" или "мне не нравится как это было написано", то для вас приготовлено мной особое место в аду программистов (за это можете поставить минут в мой рейтинг :) ). Абсолютно все изменения в коде, что вы делаете должны иметь обоснование в виде логичных, непротиворечивых правил. Способность формировать такие правила как раз присуща программистам с опытом, "профессионалам".


Дальше перейду к большей конкретики. Эти самые правила рефакторинга, вы можете не придумывать сами после 10 лет программирования, но взять из чужого опыта (дурак учится на своих ошибках, помните, да?). Где взять этот опыт? Книги, форумы, совместная работа. (я пишу этот текст в режиме on-line без исправлений и изменений, поэтому мне пришла в голову идея рассказать вам о совместной работе перед тем, как я напишу ссылки на книги, который передают вам этот опыт).


Итак, если вам нравится программирование - БРОСАЙТЕ ВСЁ И УСТРАИВАЙТЕСЬ РАБОТАТЬ ПРОГРАММИСТОМ! Даже если вы сейчаc полный 0 в этой профессии, то первая же ваша должность с коллегами "бустанёт" вас раз в 10 и дальше будет гораздо легче и уверенней. Для тех, кто уже прошёл этот этап - старайтесь взаимодействовать с опытными коллегами. Думаете они заносчивы и хер на вас клали? Ни хрена. Программисты по своей сути люди добрые и простые, создать свою тусу (секту программистов :) ), передать часть своих знаний коллегам они всегда рады. Камень преткновения тут как раз в том, что вы либо слишком навязчивы (не пытаетесь получить базовую информацию из открытых источников), либо слишком закрытые (не пытаетесь перенять опыт вашего коллеги в тех вещах, которые "в интернетах" не описаны). Где тут грань? Да, блин, загуглите и прочитайте всё, что вы найдёте по волнующей вас теме за 20 минут. После этого вашему коллеге будет гораздо приятнее помочь вам и получите гораздо больше, чем могли расчитывать.


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

*) Совершенный код. Мастер-класс. Стив Макконнелл

*) Защищенный код. Майкл Ховард, Дэвид Лебланк

*) Рефакторинг. Улучшение проекта существующего кода. Мартин Фаулер, Кент Бек, Джон Брант, Дон Робертс

*) Идеальный код

*) Алгоритмы и структуры данных

*) Чистый код: создание, анализ и рефакторинг. Роберт Мартин

*) Скользкие места С++

*) Приемы объектно-ориентированного проектирования. Паттерны проектирования. Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

*) 24 смертных греха компьютерной безопасности. Майкл Ховард, Дэвид Лебланк, Джон Виега

*) Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ». Скотт Майерс

*) Регулярные выражения. Джеффри Фридл


Список не полный и не сортирован, но №1 и №2 - самое лучшее что со мной происходило в мире программирования. Must have, must read.

Готов прочитать любую книгу, которую вы назовёте (English, Russian, если ещё не читал) и дать вам обратную связь по ней.


P.S.: Я готов помогать начинающим программистам в режиме он-лайн, я всегда мечтал стать неким "сенсеем" в программировании. Основание условие - исполнение всех моих "приказов" по программированию. Я буду делать то же самое что и вы и потом мы будем сравнивать результаты. Участие - бесплатное, после собеседования. Пишите сюда.


P.P.S.: Вообще, я начале я хотел лишь затронуть тему вызова виртуальных функций в конструкторах (неожиданно, правда?), но текущее содержание поста не ориентировано на уровень объяснения что такое виртуальные функции и почему их нельзя вызывать в конструкторах.

Показать полностью
4

Пост про программирование (часть 1)

Всегда мечтал учить других тому, что люблю делать сам. Наверное, подобные мысли посещали голову многих из нас, но что нас останавливает в этом деле? Мой опыт программирования примерно 24 года, при этом опыт руководства командами программистов/дизайнеров/аниматоров и других специалистов в сфере разработки ПО около 9 лет.


Первая моя попытка научить кого-то программированию была на 3-м курсе университета, когда я, решив, что уже созрел для того, чтобы передать хоть что-то из того, что знаю сам детям отправился в общеобразовательную школу устраиваться на должность преподавателя информатики.


Так уж сложилось, что в это время я зарабатывал примерно в 10 раз больше средней зарплаты учителя в нашем городе, поэтому шёл в школу не ради денег, а ради идеи. Директор школы, честно скажу, офигела от моего предложения устроиться к ним учителем не важно на какую зарплату и взяла время «подумать». К сожалению, думала она около 3-х месяцев и к тому времени, когда мне позвонили из этой школы с предложением зайти к ним ещё раз чтобы обсудить моё трудоустройство я уже нашёл себе занятие, бросать которое не доделав не хотел.


Но оставим в стороне действия руководства школы и перейдём к сути. Что для вас программирование? Обучая студентов в университете, в котором сам учился, я много раз задавал себе этот вопрос. Для меня это способ, средство, инструменты для того, чтобы создать такой мир вокруг себя, который я сам желаю. Иными словами - это игра в «бога». Это моё личное мнение, но не принимая эту составляющую творчества вы не раскороетесь в полной мере ни в каком его (творчества) виде и проявлении. В данном посте я хотел рассказать про своё видение программирования и тех принципах, которым сам в нём следую.


«Как научиться программированию» - такой вопрос я часто вижу и слышу от многих людей. Ответ - так же, как научиться ходить. Ходите - и научитесь! Есть правило 10 тыс. часов, которое сделает из вас профессионала (прочитайте о нём в интернете). Это правило зависит от вашего таланта к данной области деятельности, мотивации, интеллекта и много ещё чего, но математически это всё можно представить в виде коэффициента «опыта», которого надо достичь в эквиваленте 10 тыс. часов. Суть при этом остаётся та же - чем больше вы этим занимаетесь тем лучше становитесь.


«Что надо читать» - не важно что, а важно как. Тут главное интерес, который влияет на усвоение материала. В свои 9 лет я  читал не самую лучшую книгу по программированию, но делал это с таким интересом, что прочитал её раз 100. Поэтому, если вы не нашли интересную для себя книгу по программированию за месяц - бросьте это и занимайтесь чем-нибудь другим.


«Что отличает хорошего программиста от плохого» - педантичность, сомнение в своих действиях, желание стать лучше. Вообщем, посмотрите любое популярное аниме про героев :). Ум, интеллект, способности - все они «разбиваются» об ошибки, которые совершают все люди в этом мире. Дальше идёт уже набор действий, которые хорошие программисты делают, а плохие не делают. Но учиться этим действиям бесполезно - если вы не ХОТИТЕ это делать - вы будете всегда проигрывать тем, кто ХОЧЕТ. Как это проверить? Пример - вам нужно проверять все ваши изменения в проекте перед тем, как «отправить» их в общий доступ - сделать коммит. Но ваш работодатель запретил вам это делать под угрозой штрафа и сказал что это будут делать другие люди за меньшую зарплату и специализирующиеся в этом деле (тестировщики). Таким образом вы повысите эффективность вашей работы и результатов компании. Звучит разумно? Если да, то вы всегда будете отставать. Вы это не любите так как это любят фанаты программирования, поэтому найдите то, от чего «фаеатнете».


...

Если пост «зайдёт», то продолжу.

Показать полностью

Как "впарить" игру и не возвращать деньги

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


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


Т.е., если вы купите этот "предзаказ" и вам не понравится игра, то деньги вы вернуть себе не сможете, даже если игра у вас не запустится или будет жутко тормозить (игра тормозит на моих 2-х GeForce 1080 Ti).


Дальше, вкусная часть предзаказа это дополнительное снаряжение и оборудование, в виде оружия, брони, патронов, аптечек и т.д., которое даётся вам сразу. Вы думаете всё это вам чем-то поможет? А вот и нет, особенностью данной игры является то, что всё, что вы взяли с собой при вашей смерти вы ПОТЕРЯЕТЕ.


Конечно, всё это можно застраховать, но страховка возвращает вам предметы только если их никто не залутал :D То есть ваш супер-броник, гранаты, патроны, обвес для оружия, аптечки, разгрузка на старте уйдут со 100% вероятностью, т.к. скорее всего в самой первой игре вы умрёте от первого встреченного противника, а предметы ценные и их утащат без вариантов.


Эта особенность стала для меня огромным сюрпризом, я понял что заплатил за "кота в мешке".


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

Показать полностью
Отличная работа, все прочитано!