Pull to refresh
0
0
Send message

Totum — open source конструктор CRM/ERP и произвольных учетных систем (PHP + PgSQL)

Reading time12 min
Reach and readers29K


В двух словах — продвинутые таблицы. Ориентирован на отдельных разработчиков или микрокоманды из двух-трех человек. Подходит начинающим разработчикам и бизнес-аналитикам, желающим превратить свое понимание бизнеса в готовое решение или быстро разработать проект под конкретного клиента. Для небольших бизнес-ниш — в которых нет типовых решений. Small-code принцип — множество простых, ситуационных кодов. Есть подробная документация и видео. Устанавливается на собственный сервер за 5 мин. Со временем позволит выгружать разработанные на нем решения с коммерческими лицензиями с использованием встроенной защиты.

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

Создание браузерных 3d-игр с нуля на чистом html, css и js. Часть 1/2

Reading time27 min
Reach and readers101K
Современная вычислительная техника позволяет создавать классные компьютерные игры! И сейчас, достаточно популярны игры с 3d-графикой, так как, играя в них, ты окунаешься в вымышленный мир и теряешь всякую связь с реальностью. Развитие интернета и браузерных технологий сделало возможным запускать головоломки и стрелялки в любимом Хроме, Мозилле или еще в чем-то там (про Эксплорер помолчим) в онлайн-режиме, без загрузки. Так вот, здесь я расскажу о том, как создать простую трехмерную браузерную игру.

Выбор жанра, сюжета и стилистики игры является достаточно интересной задачей, и от решения этих вопросов может зависеть успех игры. Кроме этого, свои нюансы вносит и выбор технологии, на основе которой будет создаваться продукт. Моя цель – показать элементарные основы этого увлекательного процесса, поэтому я буду делать 3-мерный лабиринт с незамысловатым оформлением. Более того, я это сделаю на чистом коде без использования библиотек и движков, типа three.js (хотя большие проекты лучше делать все-таки на нем), чтобы показать, как можно создать движок для своих нужд. Полностью самописная игра может быть оригинальной, а потому интересной. В общем, оба подхода имеют свои плюсы и минусы.
Читать дальше →

Продвинутый уровень визуализации данных для Data Science на Python

Reading time7 min
Reach and readers62K
Как сделать крутые, полностью интерактивные графики с помощью одной строки Python

image

Когнитивное искажение о невозвратных затратах (sunk cost fallacy) является одним из многих вредных когнитивных предубеждений, жертвой которых становятся люди. Это относится к нашей тенденции продолжать посвящать время и ресурсы проигранному делу, потому что мы уже потратили — утонули — так много времени в погоне. Заблуждение о заниженной стоимости применимо к тому, чтобы оставаться на плохой работе дольше, чем мы должны, рабски работать над проектом, даже когда ясно, что он не будет работать, и да, продолжать использовать утомительную, устаревшую библиотеку построения графиков — matplotlib — когда существуют более эффективные, интерактивные и более привлекательные альтернативы.

За последние несколько месяцев я понял, что единственная причина, по которой я использую matplotlib, — это сотни часов, которые я потратил на изучение сложного синтаксиса. Эти сложности приводят к часам разочарования, выясняя на StackOverflow, как форматировать даты или добавить вторую ось Y. К счастью, это прекрасное время для построения графиков в Python, и после изучения вариантов, явным победителем — с точки зрения простоты использования, документации и функциональности — является библиотека plotly. В этой статье мы погрузимся прямо в plotly, изучая, как создавать лучшие графики за меньшее время — часто с помощью одной строки кода.
Читать дальше →

Пульсация экранов телевизоров

Reading time3 min
Reach and readers139K
У подавляющего большинства современных телевизоров экраны мерцают, причём уровень пульсации составляет 100% (экран полностью гаснет и загорается). Это может приводить к усталости глаз, головным болям и обострению нервных заболеваний.


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

Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно

Reading time2 min
Reach and readers82K
Всем привет. Давно хотел собрать большой E-Ink дисплей, который можно поставить на стол и отображать на нем полезную информацию (погоду, календарь и т.д.) В этой статье расскажу, как можно собрать такое устройство на базе ESP32 и дисплея от Kindle DX значительно дешевле, чем Waveshare.


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

Ещё лучшая ZIP-бомба

Reading time25 min
Reach and readers149K
В статье показано, как создать нерекурсивную zip-бомбу, которая обеспечивает высокую степень сжатия путём перекрытия файлов внутри zip-контейнера. «Нерекурсивная» означает, что она не зависит от рекурсивной распаковки декомпрессорами файлов, вложенных в zip-архивы: здесь всего один раунд. Выходной размер увеличивается квадратично от входного, достигая степени сжатия более 28 миллионов (10 МБ → 281 ТБ) в пределах формата zip. Ещё большее расширение возможно с помощью 64-разрядных расширений. Конструкция использует только наиболее распространённый алгоритм сжатия DEFLATE и совместима с большинством парсеров zip.

  • zbsm.zip 42 kB → 5.5 GB
  • zblg.zip 10 MB → 281 TB
  • zbxl.zip 46 MB → 4.5 PB (Zip64, менее совместима с парсерами)

Исходный код:
git clone https://www.bamsoftware.com/git/zipbomb.git
zipbomb-20190702.zip

Данные и исходники иллюстраций:
git clone https://www.bamsoftware.com/git/zipbomb-paper.git
Читать дальше →

Файл 420 байт разжимается в картинку PNG на 40 гигапикселей (141 ГБ ОЗУ)

Reading time2 min
Reach and readers16K
В старые времена были популярны zip-бомбы и рекурсивные архивы, которые распаковываются сами в себя. Zip-бомбу иногда можно использовать для DoS-атаки. Например, пресловутый файл 42.zip имеет размер 42 килобайта. Если начать его распаковку, то процесс будет идти до тех пор, пока набор данных не достигнет верхнего предела распаковки в 4,3 гигабайта. При этом процесс займет более 4,5 петабайт в оперативной памяти (4 503 599 626 321 920 байт).

Программист и хакер Дэвид Фифилд (David Fifield) задумался, где ещё можно применить «архивные бомбы». Сразу на ум приходит графический формат PNG, в котором используется алгоритм сжатия DEFLATE в библиотеке zlib.
Читать дальше →

Черная магия голубой таблетки (делаем программатор Black Magic Probe из модуля на базе STM32F103)

Reading time4 min
Reach and readers59K

Зачем?


В эпоху Arduino UNO и Atmega328 я вполне обходился без программатора, прошивая микроконтроллер сначала загрузчиком Arduino через другую Arduino (Arduino as ISP), а потом через обычный последовательный порт, и лишь после появления поддержки Arduino для модулей на основе Nordic Semiconductor nrf51822 и nrf52832 для меня впервые стало актуальным наличие swd-программатора, ибо никаким другим способом прошивку в голый китайский модуль не зальешь.

Стандартом де-факто в данной области являются программаторы Jlink немецкой компании Segger Microcontroller System, известные не только своими прекрасными ТТХ, но и заоблачной ценой (около $500-600). Надо отдать должное компании Segger, для некоммерческого использования выпускается EDU версия, полностью идентичная Jlink Base, но даже она стоит в России в районе 3000 руб. Любимый Aliexpress полон китайских клонов, однако и они относительно недешевы, не говоря уж о прочем.

Есть еще ST-LINK/V2 от ST Microelectronics, правда, под вопросом их совместимость с микроконтроллерами производства не самой STMicro.

В итоге, мой взгляд неминуемо пал на JTAG/SWD программатор Black Magic Probe (BMP), собравший на Kickstarter более $47,000 при заявленной цели в $10,000.
Читать дальше →

Mosh — SSH с блекджеком и роумингом

Reading time3 min
Reach and readers72K
На Хабре пару лет назад уже упоминали Mosh, но, кажется, есть смысл напомнить хабражителям об этой великолепной программе, которая, вполне возможно, станет для кого-то одним из самых приятных открытий и облегчит жизнь.

Забегая наперед, сразу спойлер — для mosh не нужны права суперпользователя, он не является демоном, и не занимается аутентификацией и шифрованием (это остается на плечах ssh). Разработали его в MIT, активно развивают, и поддерживают для всех платформ и дистрибутивов.



Чем же mosh лучше традиционного ssh-client, какие проблемы решает и почему вы, скорее всего, на него перейдете?
Читать дальше →

Программируем проходной выключатель. MicroPython на esp8266 (sonoff) с OTA. Часть 1

Reading time9 min
Reach and readers18K

Всем привет.


В процессе ремонта возникла задача сделать проходной выключатель. Конечно же захотелось сделать самым простым и удобным способом, добавив базовые функции управления с телефона. Я выбрал наиболее простую и удобную технологию для этого (конечно, на свой взгляд) — MicroPython, и начал делать. Взял готовую плату на esp8266 и выделил час свободного времени на это. Но, как это бывает с не очень популярными и не обкатанными проектами, задача немного затянулась.


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

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

Ускорение MicroPython

Reading time4 min
Reach and readers28K
MicroPython — реализация языка программирования Python для микроконтроллеров, даёт возможность аудитории этого языка, используя знакомый синтаксис и принципы программирования работать с небольшими вычислительными устройствами.

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

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

Но в некоторых аспектах, скорость работы и время реакции важно и встаёт вопрос о целесообразности использования MicroPython. Поэтому я провел небольшое исследование, на которое меня вдохновило видео с выступления создателя MicroPython Damien George. Мне стало интересно как быстро программа, написанная на Micropython будет реагировать на входное воздействие.

Подопытным устройством будет микроконтроллер ESP8266, на плате NodeMcu с MicroPython версии esp8266-2018511-v1.9.4 на борту.


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

Разработка чрезвычайно быстрых программ на Python

Reading time7 min
Reach and readers71K
Ненавистники Python всегда говорят, что одной из причин того, что они не хотят использовать этот язык, является то, что Python — это медленно. Но то, что некая программа, независимо от используемого языка программирования, может считаться быстрой или медленной, очень сильно зависит от разработчика, который её написал, от его знаний и от умения создавать оптимизированный и высокопроизводительный код.



Автор статьи, перевод которой мы сегодня публикуем, предлагает доказать то, что те, кто называет Python медленным, неправы. Он хочет рассказать о том, как улучшить производительность Python-программ и сделать их по-настоящему быстрыми.
Читать дальше →

Сайты для обучения программированию: Топ 100

Reading time28 min
Reach and readers326K
В наш век современных технологий появилось много онлайн-ресурсов, которые позволяют всем желающим обрести необходимые им знания по программированию.

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

Итак, сайты для обучения программированию онлайн, ТОП 100:
Читать дальше →

JAMstack: Как создать свой блог используя Gatsby + Contentful + Netlify

Reading time7 min
Reach and readers40K


Вы уже слышали о новом подходе JAMstack? Возможность писать веб-приложения на любимом фреймворке, управлять контентом из админ панели, а на выходе получать полностью валидные HTML-страницы построенные согласно с самыми последними рекомендациями SEO, PWA и a11y.


Интересно? Тогда вот список рассматриваемых вопросов в этой статье:


  • Что это за новый стек и зачем он нужен?
  • Как запустить базовое приложение используя Gatsby?
  • Работа с Contentful и создание первой порции данных
  • Как связать Contentful и Gatsby используя GraphQL?
  • Настроить автоматический деплоймент используя Netlify
Читать дальше →

Переключение контекста и простой вытесняющий планировщик для CortexM

Reading time19 min
Reach and readers23K

image

С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидать в Cube или собрать на Ардуино, но задача курсового не в этом. Основная задача — самостоятельно, с нуля разобраться с модулями микроконтроллера, продумать архитектуру ПО и, собственно, закодировать все на С++, начиная от регистров и заканчивая задачами РТОС. Кому интересно, здесь пример отчета по такому курсовому


Так вот, появилась небольшая проблема, а именно, бесплатный IAR позволяет делать ПО размером не более 30 кБайт. А это уже впритык к размеру курсового в неоптимизированном виде. Анализ кода студентов выявил, что примерно 1/4 часть их приложения занимает FreeRtos — около 6 кБайт, хотя для того, чтобы сделать вытесняющую переключалку и управлялку задачами хватило бы, наверное… да байт 500 причем вместе с 3 задачами (светодиодными моргунчиками).


Эта статья будет посвящена тому, как можно реализовать Очень Простой Планировщик(он же SST), описанный в статье аж 2006 года и сейчас поддерживаемый Quantum Leaps в продукте Qp framework.


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


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


Все кто заинтересовался и хочет понять как можно переключать контекст, добро пожаловать под кат.

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

Snort или Suricata. Часть 1: выбираем бесплатную IDS/IPS для защиты корпоративной сети

Reading time7 min
Reach and readers67K
Когда-то для защиты локальной сети было достаточно обыкновенного межсетевого экрана и антивирусных программ, но против атак современных хакеров и расплодившейся в последнее время малвари такой набор уже недостаточно эффективен. Старый-добрый firewall анализирует только заголовки пакетов, пропуская или блокируя их в соответствии с набором формальных правил. О содержимом пакетов он ничего не знает, а потому не может распознать внешне легитимные действия злоумышленников. Антивирусные программы не всегда отлавливают вредоносное ПО, поэтому перед администратором встает задача отслеживания аномальной активности и своевременной изоляции зараженных хостов.



Позволяющих защитить ИТ-инфраструктуру компании продвинутых средств существует множество. Сегодня мы поговорим о системах обнаружения и предупреждения вторжений с открытым исходным кодом, внедрить которые можно без покупки дорогостоящего оборудования и программных лицензий.
Читать дальше →

Роботаракан Петя за десять баксов

Reading time10 min
Reach and readers30K

Знакомьтесь с Петей, шестиногом о трёх сервоприводах


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


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

Еще раз о передатчиках и приемниках 433 МГц

Reading time10 min
Reach and readers250K
Простейший комплект из приемника и передатчика ISM-диапазона 433 МГц завоевал заслуженную популярность в среде любителей электроники. Комплекты дешевы (даже в «Чипе-Дипе» их можно купить рублей за 300, а на Ali, говорят, вообще за полтинник), просты и надежны. Кроме того (о чем вы, возможно, не подозреваете), это самый дальнодействующий и проникающий способ беспроводного обмена данными — сигнал на частоте 433 МГц куда лучше проходит через препятствия и действует на более далеком расстоянии, чем в популярном диапазоне 2,4 ГГц (433 МГц полностью задерживаются стенкой в полметра бетона, а Wi-Fi умирает уже на 10 сантиметрах). Допускаю, что недавно появившиеся модули MBee-868, будучи снабженными соответствующей (направленной) антенной, «стреляют» дальше, но они как минимум на порядок дороже, сложнее в подключении, требуют управления энергосбережением и предварительной настройки. И вдобавок частота 868 МГц вдвое хуже проходит через препятствия (хотя, конечно, несравненно лучше частоты 2,4 ГГц).



О приемниках-передатчиках 433 МГц написано очень много (в том числе и на хабре, конечно). Однако, правильно включать в схему этот комплект по какой-то странной причине, кажется, не умеет никто. Когда я в который раз прочел вот тут, что комплект «принимал на 8-ми метрах в пределах прямой видимости, 9-ый метр осилить не удалось», мое терпение лопнуло. Какие еще 8 метров?! В 40-50 я бы поверил, хотя в реальности, наверное, дальность еще больше.
Читать дальше →

Information

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

Specialization

Системный администратор, Администратор баз данных
Ведущий
From 350,000 ₽
Oracle DBA
Администрирование Oracle
Администрирование Linux