Электровелосипед - особенности, реальный опыт, отзыв о электронаборе Велоракета

7 августа 2017 г. 16:20 электровелосипед  

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

 

Вставка и редактирование картинок прямо на сайте с помощью Painterro

5 августа 2017 г. 11:42 web   хак  

Редактируя посты в блоге часто приходится вставлять фотки и скриншоты. Редактор TinyMCE который используется у меня в блоге позволяет вставлять картинки прямо в текст и потом сохранять их. Однако перед вставкой их приходися обрезать и обрабатывать во всяких Paint-ах и Gimp-ax. Но теперь использовать для этого внешние программы не обязательно - 
можно установить на сайт виджет Painterro который позволяет вставлять скриншоты и картинки по Ctrl+V и редактировать их прямо в браузере, в админке вашего блока. Ссылка на проект: Painterro. Встроить виджет в блог удалось довольно просто, и в посте я расскажу об этом.

 

 

Самодельный GPS GSM трекер

5 августа 2017 г. 11:40 STM32   GPS  

В этом посте хочу представить свой заброшенный pet project, которым занимался пару лет назад. Проект этот - это небольшой по размеру GPS трекер совмещенный с GSM модемом. Изначально созданный для легкой интеграции в какую-либо часть велосипеда (напрмиер в подседельную трубу, трубу руля или в неметаллический насос).

Проект в целом рабочий и находится в состоянии пригодном для использования(использую сам), тем не менее он скорее находится в стостоянии PoC, и в нем есть несколько сырых  моментов (в т.ч. касающихся безопастности), работа над которыми требует определнного времени и сил. Так как я продолжать заниматься проектом не планирую решил выложить его здесь. Вы можете абсолютно бесплатно использовать проект целиком либо любые его части при условии сохранения ссылки на первоисточник (https://bovs.org/), то есть проект распространяется по лицензии MIT.

Предоставленная версия работает в связке с сервером - отправляет свои координаты на него через мобильную сеть (2G), пройденный маршрут можно просматривать по карте на сайте с компьютера или телефона. Однко если вы хотите использовать трекер без сервера (например получать координаты от симки в теркере по СМС), то вы можете слегка переделать предоставленную прошивку (первоначальный вариант был именно такой и в коде даже остались комментарии которые могут помочь в переделке) 

Защита от CSRF в Django на простом примере

31 августа 2016 г. 19:35 django  


В статье рассмотрен один из распространненых видов атак называемый Cross-site request forgery (CSRF). На простом примере будет показано как заставить пользователя выполнить действия на чужом незащищенном сайте при помощи своего сайта а также как защитить сайт от такой аттаки в Django Framework.

Вы поймете зачем нужно защищать свои страници от csrf аттак, к чему может привести их незащищенность и всегда ли так важна защита от csrf.

Заметки по созданию приложений Android

14 августа 2016 г. 21:16 Android   Java  

 В статье собраны несколько заметок и шаблонов кода для разработки приложений на Android с использованием Android SDK.

Статья не претендует на полноценный разжеванный туториал но тем не менее я постарался описать кратко основные понятия.

Осторожно, статья содержит много англоязычного сленга, например Интент (Intent), Вью (View), Лейяут (Layout), Евент (Event), etc. Так удобней писать и надеюсь что читателю будет удобней привыкать к правильным понятиям читая документацию в оригинале.

Сессии в Django

29 июля 2016 г. 22:14 django  

Djnago предоставляет возможность хранить и получать данные для каждого пользователя сайта c помощтю сессий. Сессия - это словарь с парами ключ/значение который ассоциирован с каждым сеансом работы с сайтом, обычно от первого визита сайта в браузере и до тех пор пока не истечет срок годности куки в браузере либо до тех пор пока юзер вручную их не очистит. Куки - это данные, которые сервер отправляет на хранение в браузер а потом получает назад с каждым запросом от браузера. В них хранится только id сессии (маленькая строка), а сами данные сессии хранятся на сервере. Это детальнее и будет рассмотрено в статье.

 

Передача пакетов через поток TCP

21 июня 2016 г. 21:08 python  

Сокеты Беркли предоставляют возможность передавать датаграмы без гарантии доставки (UDP) либо поток байт с гарантией (TCP). Смысл потока в отличии от датаграм состоит в том что при передачи определенного колличества байт на передающей стороне функцией send нет гарантии что вы получите ровно столько же за один вызов recv на принимающей стороне. Например вы можете передать один раз 1000 байт а получить сначала 400 а потом 600 байт. Аналогично в потоке возможен и обратный процесс - склейки - вы можете 3жды отправить по 200 байт а получите сразу 600. Причиной такого поведения есть алгоритм Нейгла позволяющий за счет накапливания байт и последующей отправке значительно повысить эффективность передачи данных. Но что если передавать нужно именно пакеты целиком, то есть датаграмы целиком. Один из вариантов - использовать подход TLV (Tag-length-value), пример на Python приведен в статье.

Сеть между двумя инстансами/интерфейсами OpenVPN

20 июня 2016 г. 21:57 Linux   OpenVPN  

Иногда бывает что на сервере приходится запускать по несколько инстансов openvpn-сервера. Бывает это чаще всего из-за того что один инстанс не умеет биндиться сразу на разных портах либо сразу на разных протоколах (TCP и UDP), поэтому приходится копировать конфиг и заменять в нем параметры port nnn или proto yyy, ну и подсети server x.x.x.x (Подразумивается что мы используем topology subnet, остальные параметры как правило не конфликтуют но бывают исключения). Новый конфиг приводит к созданию нового инстанса и нового интерфейса. Но что если вам нужно что бы узлы сетей OpenVPN могли работать друг с другом.

Advanced Python

28 мая 2016 г. 10:48 python  

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

Все что будет рассматриваться в статье проверялось и относится к python3 и python3.4 в частности. Тут не указаны отличия от этого всего в python2 чтобы не тратить ни чье время, но пару таких отличий все же есть.

Building Yocto linux for Intel Edison with 3G USB modems support

26 мая 2016 г. 20:55 Linux   Intel Edison  

Today we are going to build custom Yocto Linux image for embedded IoT computer called Intel Edison. My main aim why I need to build image was enabling mobile internet USB dongles support, but this guide can be also used if you want to do any other image tuning. To achieve USB modems support we need:

1. Include USB to Serial drivers for modem (to have /tty/USBx ports which will allow communicating with GSM/CDMA module inside of our USB Dongle)

2. Most of the dongles plugged in the system as USB storage Device. But to enable internet connection we need to switch dongle in USB Modem mode. This will lead to changing USB Vendor ID and appearing /tty/USBx ports (of course only if USB serial drivers will be installed). To implement switching, we need to include usb_modeswitch package in our Linux.

3. We need to enable PPP kernel drivers for creating PPP data connection to our mobile provider. 

4. We will also install pppd which will make a call to the mobile operator, create connection and create network interface (e.g. ppp0) which will connect our device to big world of the internet!

Часовые пояса в Django на простых примерах

8 апреля 2016 г. 10:57 django  

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

Поведение BRAM FIFO при переполнении

10 марта 2016 г. 11:10 ПЛИС  

Небольшая заметка с результатами симулации переполнения простой однотактовой FIFO с счетчиком объема data_count в симуляторе Xilinx ISIM.