Search
Write a publication
Pull to refresh
2
0
Сергей Викторыч @SpyDeX

ПО (разработка, разработка и ещё раз разработка)

Send message

Пишем собственный платежный шлюз Bitcoin

Reading time6 min
Views56K
UPDATE. Заопенсорсил платежный шлюз: github.com/Overtorment/Cashier-BTC

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

Предполагается что читатель знаком с устройством сети биткоин. Если нет, то рекомендую эти статьи: “Как на самом деле работает протокол Биткоин” и “Биткойн: введение для разработчиков”
Читать дальше →

Построить, накопить, напасть, повторить: история стратегий в реальном времени

Reading time33 min
Views66K
Пока мы ждём выхода этой осенью новой Age of Empires, давайте вспомним взлёты и падения жанра RTS.



Расцвет и упадок стратегий в реальном времени был очень странным. Они возникали постепенно, из экспериментов, в которых разработчики пытались объединить скорость и интересность экшн-игр с обдуманностью и глубиной стратегий. Внезапно жанр получил взрывную популярность во второй половине 90-х, а потом так же быстро её потерял (за исключением StarCraft) в середине 2000-х, на фоне стагнации и изменения игрового рынка. Однако одной из наиболее популярных соревновательных игр в мире является RTS, а три из четырёх оставшихся стали ответвлением от жанра стратегий в реальном времени.

В 25-летнем возрасте стратегии в реальном времени остаются преданными своим базовым идеям и наследству. Сегодня, в момент глубокого затишья жанра, самое время исторически исследовать его, как мы в своё время сделали с графическими адвенчурами, Sim-играми, шутерами от первого лица, гонками на картах, играми с открытым миром (перевод на ГТ) и градостроительными симуляторами.
Читать дальше →

Решение закрытой транспортной задачи с дополнительными условиями средствами Python

Reading time10 min
Views27K

Постановка задачи


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

Решение закрытой транспортной задачи средствами Python с классическим условиями для поставщиков и потребителей товара приведено в моей статье “Решение задач линейного программирования с использованием Python” [1].

Реальная транспортная задача усложняется дополнительными условиями и вот некоторые из них. Ограниченная грузоподъёмность транспорта, не учитываемые задержки при оформлении груза на таможне, приоритеты и паритеты для поставщиков и потребителей. Поэтому решение закрытой транспортной задачи с учётом дополнительных условий и стало целью данной публикации.
Читать дальше →

О классификации методов преобразования Фурье на примерах их программной реализации средствами Python

Reading time7 min
Views31K

Введение


Публикации по методу Фурье условно можно разделить на две группы. Первая группа так называемых познавательных публикаций, например, [1,2].

Вторая группа публикаций касается применения преобразований Фурье в технике, например, при спектральном анализе [3,4].

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

Задачи публикации


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

Гармонический анализ и синтез


Гармоническим анализом называют разложение функции f(t), заданной на отрезке [0, Т] в ряд Фурье или в вычислении коэффициентов Фурье по формулам.

Гармоническим синтезом называют получение колебаний сложной формы путем суммирования их гармонических составляющих (гармоник).

Программная реализация
#!/usr/bin/python
# -*- coding: utf-8 -*
from scipy.integrate import quad # модуль для интегрирования
import matplotlib.pyplot as plt # модуль для графиков
import numpy as np # модуль для операций со списками и массивами
T=np.pi; w=2*np.pi/T# период и круговая частота
def func(t):# анализируемая функция
         if t<np.pi:
                  p=np.cos(t)
         else:
                  p=-np.cos(t)
         return p
def func_1(t,k,w):# функция для расчёта коэффициента a[k] 
         if t<np.pi:
                  z=np.cos(t)*np.cos(w*k*t)
         else:
                  z=-np.cos(t)*np.cos(w*k*t)
         return z
def func_2(t,k,w):#функция для расчёта коэффициента b[k] 
         if t<np.pi:
                  y=np.cos(t)*np.sin(w*k*t)
         else:
                  y=-np.cos(t)*np.sin(w*k*t)
         return y
a=[];b=[];c=4;g=[];m=np.arange(0,c,1);q=np.arange(0,2*np.pi,0.01)# подготовка списков для численного анализа
a=[round(2*quad(func_1, 0, T, args=(k,w))[0]/T,3) for k in m]# интеграл для a[k], k -номер гармоники 
b=[round(2*quad(func_2, 0, T, args=(k,w))[0]/T,3) for k in m]# интеграл для b[k], k -номер гармоники
F1=[a[1]*np.cos(w*1*t)+b[1]*np.sin(w*1*t) for t in q]#функции для гармоник
F2=[a[2]*np.cos(w*2*t)+b[2]*np.sin(w*2*t) for t in q]
F3=[a[3]*np.cos(w*3*t)+b[3]*np.sin(w*3*t) for t in q]
plt.figure()
plt.title("Классический гармонический анализ функции \n при t<pi  f(t)=cos(t)  при t>=pi  f(t)=-cos(t)")
plt.plot(q, F1, label='1 гармоника')
plt.plot(q, F2 , label='2 гармоника')
plt.plot(q, F3, label='3 гармоника')
plt.xlabel("Время t")
plt.ylabel("Амплитуда А")
plt.legend(loc='best')
plt.grid(True)
F=np.array(a[0]/2)+np.array([0*t for t in q-1])# подготовка массива для анализа с a[0]/2
for k in np.arange(1,c,1):
         F=F+np.array([a[k]*np.cos(w*k*t)+b[k]*np.sin(w*k*t) for t in q])# вычисление членов ряда Фурье
plt.figure()
P=[func(t) for t in q]
plt.title("Классический гармонический синтез")
plt.plot(q, P, label='f(t)')
plt.plot(q, F, label='F(t)')
plt.xlabel("Время t")
plt.ylabel("f(t),F(t)")
plt.legend(loc='best')
plt.grid(True)
plt.show()

Читать дальше →

Простая Scada на Python

Reading time3 min
Views37K
Ниже приведу пример собственной реализации простой SCADA программы выполненной, как обычно говорят, «на коленке».

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

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

Как выяснилось на генераторе установлен контроллер, который поддерживает протокол обмена Modbus RTU, это значит, что можно проложить кабель витую пару и подключиться по RS-485.
После изучения адресной таблицы, решили сами сделать простенькую программу.
В результате получилась ScadaPy.
Читать дальше →

Компьютерная криминалистика (форензика): подборка полезных ссылок

Reading time4 min
Views48K
image

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

Читать дальше →

Хостинг для стартапа: конструктор, облака или свое железо?

Reading time7 min
Views15K


Какой хостинг выбрать? Этим вопросом рано или поздно задается любой стартап. Ответ в каждом случае придется искать самостоятельно — оценивать плюсы-минусы, прикидывать риски и считать бюджет. Максимально упростить этот процесс и систематизировать виды хостингов и их особенности нам помог выпускник ФРИИ и основатель проекта AdminDivision.ru Егор Андреев, который помогает стартапам Акселератора ФРИИ масштабировать свою IT-инфраструктуру.
Читать дальше →

Перестаньте травить печатные платы дома — заказывайте их на производстве

Reading time3 min
Views100K
В последней своей статье про Домофон с MQTT я проводил опрос на тему того, какую статью написать следующей. Выбор пал на заказ производства печатных плат, вот собственно немного расскажу об этом. Если статья зайдет, напишу по следующей теме из голосовалки.

Я ни в коем разе не принуждаю сразу выливать ваше хлорное железо / перекись водорода, оставьте их для макетирования. Я лишь хочу показать, что заказать платы на производстве в наше время совсем не сложно, как может показаться начинающему радиолюбителю. Есть в этом что-то магическое — подержать в руках красивую плату собственного изготовления.
Читать дальше →

Евросоюз потратил $400 000 на исследование, доказывающее, что пираты не влияют на продажи цифрового контента

Reading time3 min
Views97K
Правообладатели, в особенности крупные музыкальные лейблы, издатели игр, киностудии часто жалуются на то, что недополученная ими в результате деятельности пиратов прибыль просто огромна. Потери, по их словам, составляют миллиарды долларов США. Эти цифры приводятся в судах, где постоянно идут разбирательства с компаниями и частными лицами, которые, по мнению правообладателей, нарушают авторское право, нелегально скачивая фильмы, игры, музыку и книги.

Чиновники обычно соглашаются с мнением крупных компаний, которые лоббируют свои интересы. В 2014 году Евросоюз даже профинансировал исследование, которое посвящено анализу влияния деятельности пиратов на уровень продаж лицензионного контента разных типов. Проводила эту работу аналитическая компания Ecorys.
Читать дальше →

Гео-баркодинг 2.0

Reading time2 min
Views983
Оставим в стороне футболки и визитки. Посмотрим, как баркод позволяет создавать полноценные «мешапы» из онлайн-сервисов и городских объектов.

Проект Dencity.net, который организовали наши немецкие товарищи, можно смело называть гео-баркодингом 2.0



Читать дальше →

QR-коды — проблемы безопасности: не поторопились ли мы

Reading time4 min
Views20K
imageQR-код — хаотично расположенные маленькие черные квадраты на белом фоне — не так прост, как кажется. QR-коды более совершенны, чем одномерный штрих-код, — они имеют более высокую емкость хранилища и могут хранить различные типы символов. По сути, эти коды похожи на физические гиперссылки, поскольку при их сканировании пользователь переходит на внешнюю ссылку или сайт. Их также часто относят к модели ведения бизнеса O2O (оффлайн-для-онлайн).

Изначально созданные в 1994 году компанией Denso Wave (дочерняя компания Toyota) для использования в японской автомобильной промышленности, QR-коды постепенно начинают использоваться разными компаниями по всему миру.

Самый популярный и самый прибыльный вариант использования QR-кодов — в индустрии платежей. Финансовые учреждения долго искали способ повысить качество обслуживания клиентов и увеличить показатель «простоты использования» своих платежных процессов. Революция смартфонов в конце 2000-х годов стимулировала развитие цифровых и мобильных платежей. Появление QR-кодов стало настоящим чудом, так как теперь любой пользователь смартфона может совершить платеж по мановению руки. В наше время, когда смартфоны широко распространены в обществе, QR-коды нашли свое место в большинстве розничных магазинов, электронной коммерции, оплате счетов и всевозможных встроенных мобильных платежах.
Читать дальше →

Абстракция сетевого слоя с применением «стратегий»

Reading time8 min
Views9K

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


Часть 1. Взгляд на существующие подходы


Для начала из публикации 21 Amazing Open Source iOS Apps Written in Swift взято приложение Artsy. В нем используется популярный фреймворк Moya, на базе которого и построен весь сетевой слой. Отмечу ряд основных недостатков, которые встретил в данном проекте и часто встречаю в других приложениях и публикациях.

Читать дальше →

Названа дата гибели рынка интернет-торговли в России

Reading time3 min
Views68K
image

В 2020 году российский рынок интернет-торговли в сегменте небольшой электроники, а также одежды и обуви может прекратить свое существование, — заявил на недавней пресс-конференции президент Ассоциации компаний интернет-торговли (АКИТ) Алексей Федоров. Причинами этого названы рост китайских площадок и (внезапно) эффективная работа «Почты России». Единственное, что может спасти российский e-commerce — введение налогов для иностранных интернет-магазинов, уверены в АКИТ.
Читать дальше →

ИТ против ИИ: отберут ли машины работу у своих создателей?

Reading time7 min
Views17K
Разговоры о том, что системы искусственного интеллекта рано или поздно вытеснят людей из ряда профессий, ведутся уже не первый десяток лет. Роботы проникают в медицину, тяжелую промышленность, решают сложные аналитические и творческие задачи. А издание The Guardian не так давно сообщило, что одна из японский страховых компаний сократила часть сотрудников, заменив их системой Watson Explorer от IBM, которая, по предположениям менеджмента, должна оказаться на 30% продуктивнее людей.

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

Мы решили рассмотреть это вопрос на примере трёх направлений из сферы ИТ и обсудить, какова вероятность, что в ближайшем будущем вам на смену придёт машина.

В этом материале:

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

Постиндустриальное общество: ценности, семья, мораль и право

Reading time10 min
Views21K
Disclaimer. Написать этот топик меня побудил комментарий nail84 к предыдущему бестселлеру про порнографию.

Современное западное общество является, с социологической точки зрения, совершенно уникальным. Перечислю вкратце: эмансипация женщин; либерализация права (легализация наркотиков, проституции, однополых браков, et cetera); либерализация морали, в т.ч. сексуальной; распад традиционной семьи; длинное детство и длительное образование; деградация института брака; снижение рождаемости и повышение фертильного возраста; консюмеризм — все эти явления в совокупности никогда не встречались в человеческой истории.

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

P.S. Топик в персональных блогах, не хочешь — не читай. Писать в комменты «это не для Хабра!!! одынодын» не надо.

Поехали

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

Reading time3 min
Views5.9K
Когда я рассказываю о нашей работе над искусственным интеллектом, меня иногда спрашивают, что я думаю о моральных проблемах создания искусственного интеллекта и переноса человеческого разума на электронный носитель.

Как будет осознавать себя искусственный разум? Не будет ли у человеческого разума, перенесенного на электронный носитель, болеть «ампутированное тело»? Гуманно ли ставить негуманные опыты над искусственным интеллектом или электронными копиями реальных людей?

Так вот, я считаю, что страдания искусственного разума — полная чушь.
Читать дальше →

Что будет, если запретят Google Global Cache — простым языком

Reading time3 min
Views98K

Сегодня появилась новость, о том, что youtube это плохо Роскомнадзор хочет запретить Google Global Cache. Для обычного пользователя это просто набор слов, который не как не трансформируется в проблемы с каким-то сервисом, которым он пользуется. В этом посте я постараюсь простым языком объяснить что будет, если это произойдет.

Последствия будут катастрофическими. Для всех.
Читать дальше →

Как перевести криптовалюту в другой блокчейн: немного о сайдчейнах

Reading time5 min
Views19K
Биткоин продолжает укрепляться после недавнего спада. На положительную динамику влияет развитие блокчейн-технологий и череда событий в криптовалютной экосистеме.

Приложила к этому руку и компания Bitfury Group. Например, в начале июля мы провели первую транзакцию в Lightning Network c использованием биткойн-протокола. Задача этой сети — ускорить транзакции и снизить издержки на их проведение.

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

Читать дальше →

О смарт-контрактах простыми словами

Reading time5 min
Views16K
Добрый день! Ранее у нас в блоге были посты на блокчейн темы, в которых нередко возникали дискуссии о распределенных вычислениях в блокчейне. По мотивам этих дискуссий и возник этот пост.

Итак давайте попробуем сегодня разобраться, что такое смарт-контракты (умные контракты). Сначала мы достаточно общо обсудим сам концепт, а потом немного копнем в реализацию смарт-контрактов на примере блокчейна Ethereum.
Читать дальше →

Смарт контракты Ethereum: пишем простой контракт для ICO

Reading time7 min
Views29K
В последнее время ко мне поступает огромное количество запросов за помощью в разработке смартконтракта для проведения ICO, при этом у меня не хватает времени, чтобы помочь каждому. Поэтому я решил написать этот небольшой пост (ссылка на видео в конце поста), в котором описываю очень простой смартконтракт для проведения crowdsale, который вы можете использовать в своих проектах.


Читать дальше →

Information

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