Pull to refresh
66
0

User

Send message

Эффективное онлайн изучение программирования с помощью Сode Avengers

Reading time 3 min
Views 27K


В поисках качественных онлайн сервисов по изучению программирования, дизайна и гейм-разработки, я нашел несколько сервисов, выделяющихся качеством материала, об одном из них я решил написать статью и поделиться опытом с вами.
Сегодня речь пойдет о Сode Avengers | https://www.codeavengers.com
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 27

Дистанционное открытие брокерского счета через портал Госуслуг: зачем и как это сделать

Reading time 4 min
Views 39K


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

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

В сегодняшнем материале мы рассмотрим, для каких целей нужно открывать брокерский счет, и представим исчерпывающую инструкцию о том, как это сделать через Госуслуги.
Читать дальше →
Total votes 27: ↑16 and ↓11 +5
Comments 73

Профилирование и оптимизация программ на Go

Reading time 25 min
Views 83K

Введение


В этой статье я расскажу, как профилировать и оптимизировать приложения на языке Go с использованием встроенных и общих инструментов, доступных в ОС Linux.

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

Я привел такое определение, чтобы сразу отсечь вопросы некорректной работы приложения. В этой статье мы не будем говорить о проблемах мультитредового программирования, о дата-рейсах (англ. data race), о поиске ошибок (англ. debugging). Для всего этого в Go есть свои утилиты и подходы, но оставим эту тему на будущее.



Читать дальше →
Total votes 47: ↑45 and ↓2 +43
Comments 18

Как стать кукловодом или Puppet для начинающих

Reading time 7 min
Views 108K
Здравствуйте.
image
Этот топик открывает цикл статей по использованию системы управления конфигурацией Puppet.

Что такое система управления конфигурацией?


Предположим, что у вас есть парк серверов, выполняющих различные задачи. Пока серверов мало и вы не растёте, вы легко настраиваете каждый сервер вручную. Устанавливаете ОС (может быть, автоматизированно), добавляете пользователей, устанавливаете софт, вводя команды в консоль, настраиваете сервисы, правите конфиги ваших любимых текстовых редакторов (nanorc, vimrc), выставляете на них одинаковые настройки DNS-сервера, устанавливаете агент системы мониторинга, настраиваете syslog для централизованного сбора логов… Словом, работы довольно много и она не особенно интересна.
Как спастись от рутины?
Total votes 62: ↑55 and ↓7 +48
Comments 66

Сборка мусора в персистентной модели: от терабайта и дальше

Reading time 5 min
Views 12K
Привет всем. Продолжу о Фантоме. Для понимания полезно прочесть статью про персистентную оперативку, а так же общую статью про Фантом на Открытых Системах. Но можно и так.

Итак, мы имеем ОС (или просто среду, не важно), которая обеспечивает прикладным программам персистентную оперативную память, и вообще персистентную «жизнь». Программы живут в общем адресном пространстве с управляемыми (managed) пойнтерами, объектной байткод-машиной, не замечают рестарта ОС и, в целом, счастливы.

Очевидно, что такой среде нужна сборка мусора. Но — какая?

Есть несколько проблем, навязанных спецификой.

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

Во-вторых, нас категорически не устраивают stop the world алгоритмы. Если для обычного процесса остановка в полсекундны может быть приемлема, то для виртуальной памяти, которая, большей частью, на диске, это будут уже полчаса, а то как бы не полсуток!

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

Тут нужна оговорка. Вообще говоря, в системе, которая располагает парой терабайт виртуальной памяти, это не так уж критично — даже если не делать освобождение памяти полсуток, возможно, не так много и набежит — ну, например, истратится 2-3, ну 5 гигабайт, ну даже и 50 гигабайт — не жалко, диск большой.

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

Ок, итого у нас две задачи.
Читать дальше →
Total votes 39: ↑38 and ↓1 +37
Comments 26

Обзор инфракрасного датчика CO2 MH-Z19

Reading time 3 min
Views 123K
В последнее время популярны гаджеты, показывающие уровень CO2, равно как и статьи, рассказывающие как монитор CO2 можно превратить в подключенный к компьютеру датчик. Я хочу показать решение задачи с другой стороны.

В отличие от старых датчиков CO2, MH-Z19 не требует специфического напряжения или высокой мощности и умеет передавать данные через UART и PWM.


Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 70

Биржа торгует ресурсом, акциями и мутными обещаниями: ликбез о деривативах

Reading time 4 min
Views 16K


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

Например, фьючерс – это когда вы говорите «в конце года я выращу 2 тонны картошки, если вы купите у меня её по 20 рублей за килограмм». Затем куча людей подписывается с вами на 100 килограмм картошки, 20 килограмм, тонну и так далее. При этом, обратите внимание, сделки совершены, экономика крутится, но ещё ни самой картошки, ни денег пока нет.

Через месяц кто-то смотрит фильм «Марсианин» и узнаёт, что планируются поставки картохи с Марса. И решает, что она подешевеет. Догадайтесь, что происходит дальше.
Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Comments 31

Собака, глядя в глаза хозяина, манипулирует уровнем окситоцина в его организме

Reading time 6 min
Views 23K
Приветствуем вас на страницах блога iCover! Эксперименты японских нейробиологов, проведенные в уходящем 2015 году позволили сделать удивительный вывод: формирование эмпатии между хозяином и его собакой становится возможным благодаря тонкому механизму положительной обратной связи, аналогичной той, которая имеет место в отношениях матери и ребенка. Оказалось, что в отличие от прирученных волков, собаки часто стремятся поймать взгляд хозяина, что влечет за собой выраженное повышение у последнего уровня нейрогормона окситоцина, ответственного за развитие чувства привязанности, заботы и формирование положительного эмоционального фона. Подробнее о результатах проведенных исследований мы расскажем в нашей сегодняшней статье.

image
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Comments 10

GZip и nginx: влияние на производительность

Reading time 2 min
Views 35K
Добрый день. Недавно меня заинтересовал модуль ngx_http_gzip_static_module, и я решил погонять мой домашний сервер немного с разными настройками сжатия nginx, чтобы убедится, действительно ли современные процессоры настолько быстрые, что можно ставить сжатие в 9-тку и не париться. В качестве подопытного файла выступала слитая главная страница lenta.ru – 170кб. Во время тестирования обнаружилась интересная особенность, которая изменила мои взгляды на выбор количества процессов nginx.
Читать дальше →
Total votes 87: ↑82 and ↓5 +77
Comments 43

Полезные сниппеты для Nginx конфигов

Reading time 5 min
Views 121K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3 +88
Comments 44

SOCKS через SSH — не только для ICQ

Reading time 1 min
Views 31K
Сегодняшние проблемы с аськой напомнили об одном простейшем способе запуска SOCKS-прокси. Многие этот способ знают, но подозреваю, что не все, поэтому решил поделиться.

Итак, что нужно:
a) SSH-клиент (любой, под Linux или под Windows, главное, чтобы он позволял задавать нужные нам параметры, под Windows вполне подойдет putty)
b) Доступ на любой сервер по ssh (в случае с аськой помогает любой буржуйский хостинг).

Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 42

Изолируем демоны с systemd или «вам не нужен Docker для этого!»

Reading time 9 min
Views 49K
В последнее время я вижу, как довольно большое количество людей применяет контейнерную виртуализацию только для того, чтобы запереть потенциально небезопасное приложение внутри контейнера. Как правило, используют для этого Docker из-за его распространенности, и не знают ничего лучше. Действительно, многие демоны первоначально запускаются от имени root, а далее либо понижают свои привилегии, либо master-процесс порождает обрабатывающие процессы с пониженными привилегиями. А есть и такие, которые работают исключительно от root. Если в демоне обнаружат уязвимость, которая позволяет получить доступ с максимальными привилегиями, будет не очень приятно обнаружить злоумышленников, уже успевших скачать все данные и оставить вирусов.
Контейнеризация, предоставляемая Docker и другим подобным ПО, действительно спасает от этой проблемы, но также и привносит новые: необходимо создавать контейнер для каждого демона, заботиться о сохранности измененных файлов, обновлять базовый образ, да и сами контейнеры часто основаны на разных ОС, которые необходимо хранить на диске, хотя они вам, в общем-то, и не особо нужны. Что делать, если вам не нужны контейнеры как таковые, в Docker Hub приложение собрано не так, как нужно вам, да и версия устарела, SELinux и AppArmor кажутся вам слишком сложными, а вам бы хотелось запускать его в вашем окружении, но используя такую же изоляцию, которую использует Docker?

Capabilities

В чем отличие обычного пользователя от root? Почему root может управлять сетью, загружать модули ядра, монтировать файловые системы, убивать процессы любых пользователей, а обычный пользователь лишен таких возможностей? Все дело в capabilities — средстве для управления привилегиями. Все эти привилегии даются пользователю с UID 0 (т.е. root) по умолчанию, а у обычного пользователя нет ни одного из них. Привилегии можно как дать, так и отобрать. Так, например, привычная команда ping требует создания RAW-сокета, что невозможно сделать от имени обычного пользователя. Исторически, на ping ставили SUID-флаг, который просто запускал программу от имени суперпользователя, но сейчас все современные дистрибутивы выставляют CAP_NET_RAW capability, которая позволяет запускать ping из-под любого аккаунта.
Получить список установленных capabilities файла можно командой getcap из состава libcap.
% getcap $(which ping)
/usr/bin/ping = cap_net_raw+ep

Флаг p здесь означает permitted, т.е. у приложения есть возможность использовать заданную capability, e значит effective — приложение будет ее использовать, и есть еще флаг iinheritable, что дает возможность сохранять список capabilities при вызове функции execve().
Capabilities можно задать как на уровне ФС, так и просто у отдельного потока программы. Получить capability, которая не была доступна с момента запуска, нельзя, т.е. привилегии можно только понижать, но не повышать.
Также существуют биты безопасности (Secure Bits), их три: KEEP_CAPS позволяет сохранить capability при вызове setuid, NO_SETUID_FIXUP отключает перенастройку capability при вызове setuid, и NOROOT запрещает выдачу дополнительных привилегий при запуске suid-программ.
Читать дальше →
Total votes 72: ↑70 and ↓2 +68
Comments 34

Vim по полной: Введение

Reading time 5 min
Views 70K
Привет, хабраюзер!

Вот уже второй год я активный пользователь и поклонник редактора Vim. За это время я прошел путь от двух команд в .vimrc, до файла в несколько килобайт и обратно. Я испробовал очень много плагинов, а так же активно писал собственные, и теперь это мой основной текстовый редактор для работы и отдыха.

В этой серии статей я решил поделиться собственными наработками и, возможно, показать, на что может быть способен этот редактор в руках программиста. Серия будет состоять из следующих частей:
  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, nerdtree)
  4. Snippets и шаблоны файлов (UltiSnips, vim_template)
  5. Компиляция и выполнение чего угодно (vim-quickrun)
  6. Работа с Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, на которой все держится (vim_lib)
  10. Другие полезные плагины

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

Готов? Вперед под кат!
Total votes 52: ↑49 and ↓3 +46
Comments 86

Транзисторный усилитель класса А своими руками

Reading time 6 min
Views 256K


На Хабре уже были публикации о DIY-ламповых усилителях, которые было очень интересно читать. Спору нет, звук у них чудесный, но для повседневного использования проще использовать устройство на транзисторах. Транзисторы удобнее, поскольку не требуют прогрева перед работой и долговечнее. Да и не каждый рискнёт начинать ламповую сагу с анодными потенциалами под 400 В, а трансформаторы под транзисторные пару десятков вольт намного безопаснее и просто доступнее.

В качестве схемы для воспроизведения я выбрал схему от John Linsley Hood 1969 года, взяв авторские параметры в расчёте на импеданс своих колонок 8 Ом.

Классическая схема от британского инженера, опубликованная почти 50 лет назад, до сих пор является одной из самых воспроизводимых и собирает о себе исключительно положительные отзывы. Этому есть множество объяснений:
— минимальное количество элементов упрощает монтаж. Также считается, что чем проще конструкция, тем лучше звук;
— несмотря на то, что выходных транзисторов два, их не надо перебирать в комплементарные пары;
— выходных 10 Ватт с запасом хватает для обычных человеческих жилищ, а входная чувствительность 0.5-1 Вольт очень хорошо согласуется с выходом большинства звуковых карт или проигрывателей;
— класс А — он и в Африке класс А, если мы говорим о хорошем звучании. О сравнении с другими классами будет чуть ниже.
Читать дальше →
Total votes 54: ↑52 and ↓2 +50
Comments 79

О юридическом значении нажатия пользователем на кнопку «Купить», «Принять условия лицензионного соглашения» и т.п

Reading time 6 min
Views 19K
В современном мире с помощью Интернета заключаются различные сделки и продаются самые разные товары (в экономическом смысле), как материальные, так и нематериальные (ПО, музыка, фильмы и другая интеллектуальная собственность). Процесс их покупки для конечного пользователя выглядит, как нажатие на кнопку на экране компьютера или смартфона на которой написано «Купить», принять, подтвердить и тому подобное. Иногда для покупки необходимо ввести специальный код, полученный по SMS.

В посте дана попытка изложить эту информацию понятным языком.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 28

О возможностях RAW для новичков

Reading time 9 min
Views 110K
Камеры и разнообразнейшие мобильные гаджеты, умеющие фотографировать, уже стали привычными предметами повседневности. Кому сейчас придёт в голову, например, переписывать какой-то нужный текст, когда можно просто достать смартфон и отщёлкать нужные страницы? Зачем пытаться объяснить на словах, как выглядит что-то, если можно это что-то отснять и потом просто предъявить фото на планшете? Сегодня фотографировать не умеют разве что пылесосы — и то не факт, что скоро производители не научат делать это и их тоже. Вон, камеры, не требующие питания, уже сделали.



Совершенно закономерным этапом совершенствования цифровой техники стал тот факт, что формат RAW вырвался из рамок профессиональных зеркальных фотоаппаратов и стал появляться и в «мыльницах», компактах и даже в смартфонах/планшетах. И если вы являетесь обладателем девайса, поддерживающего функцию съёмки в RAW, но не знаете, что это и с чем это едят — вам под кат. Формат RAW — довольно интересная и дающая массу творческих возможностей штука, хотя и требующая умения с собой обращаться…

Пост расчитан на новичков и тех, кто совершенно не в теме RAW-файлов. Любители фотографии вряд ли найдут здесь для себя что-либо новое, но могут помочь новичкам в комментариях. ;)

Achtung! Под катом тяжеловесные GIF'ки.
Эх, куда делись полароиды...
Total votes 70: ↑65 and ↓5 +60
Comments 86

Вертолеты в GTA III/LCS или лучше поздно, чем никогда

Reading time 5 min
Views 36K
Давным-давно у меня была мечта попасть на маяк в GTA III (и ещё в пару интересных мест вроде города-призрака, обсерватории, стадиона и т.д.), но разработчики сделали это практически невыполнимым, из авиа-техники там был только самолетик Додо без крыльев, на котором было очень сложно летать. Потом вышла часть Liberty City Stories для PS2 (с практически тем же игровым городом) – приставки у меня не было (жили мы тогда бедно) и игра попала в мой список игр. Спустя много лет я купил приставку и прошел её, вертолётов там не оказалось тоже, но я сделал их себе там сам и нашёл кое-что ещё.

Хотя эта игра вышла давно, думаю, эта статья будет многим интересна и может кого-то вдохновит на достижение его старых целей. Лично у меня если цель поставлена — я выполню её всё равно, рано или поздно. Тогда же появилась идея написать статью про то что получилось. Потом на пару-тройку лет меня затянуло в работу, но про статью я не забыл, и вот она.

При написании статьи я нашел еще одну классную вещь для ПК версии GTA III, про которую почти нет информации в русском интернете и получил ещё немного приятных воспоминаний из детства.


Читать дальше →
Total votes 58: ↑55 and ↓3 +52
Comments 35

Systemd за пять минут

Reading time 4 min
Views 618K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

Но что делать, если стоит задача быстро-быстро, вот прямо вчера, сделать автозапуск некоего сервиса?
Давайте выжмем из документации минимально необходимый набор информации для создания простых старт-стоп скриптов.
Знакомство с systemd
Total votes 70: ↑66 and ↓4 +62
Comments 58

Разоблачение 12 юридических заблуждений о программах для ЭВМ

Reading time 7 min
Views 182K


Заблуждение / опасная привычка На самом деле … Наш совет прост:
1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
− от соблюдения набора критериев, установленных законом;
− от необходимости документально доказать факт создания программы и свои права на них.

Неоформленный SOFT закон не охраняет.

Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
Оформляйте много хороших и разных документов при создании программ для ЭВМ:
— договоры с авторами;
— договоры с подрядчиками;
— технические задания;
— протоколы совещаний и тестов;
— соглашения между соавторами;
— авторское свидетельство;
— сертификат признания интеллектуальной собственности;
— спецификация РИД;
— свидетельство о регистрации программы для ЭВМ (Роспатент).
Читать дальше →
Total votes 149: ↑119 and ↓30 +89
Comments 210

Мой опыт: Российские интернет банки и карты

Reading time 5 min
Views 250K
Привет всем! Если вы фрилансер, то наверняка имели дело с банковскими картами. Сейчас на Российском рынке огромное предложение карт, начиная от банковских премиальных, заканчивая скидочными и бонусными от кафе до авиакомпаний.
Сразу хочу сказать, что пост никаким образом не является рекламным. Тут только мое мнение и мой опыт по отношению к Российским банкам и их картам. В обзоре я использовал только те банки, с которыми работал лично.


Читать дальше →
Total votes 131: ↑85 and ↓46 +39
Comments 437

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity