TECHNO BLOGS

как я изучал программирование - Java

Sun, 03/05/2015 - 11:09 -- observer

Это рабочий вариант (пока доступный только друзьям) одного из серии постов о самообучении. Именно этот будет посвящен изучению языка программирования Java.

Этот пост я задумал для того чтобы рассказать о процессе обучения, самообучения. Я программирую для себя, совсем скромно.. но так получилось, что меня часто спрашивают каким путем я шел.. Времени у меня мало, обучаемость средняя. Одновременно  я еще изучаю Python и Processing. Я их изучаю не просто так на будущее, а решаю конкретные задачи. Ну это чтобы было понятно ))

спешу поделиться находкой - Pushover

Mon, 30/06/2014 - 17:29 -- observer

В рамках своего "академического" проекта homeserver была у меня необходимость как-то сваливать уведомленя от моих систем мониторинга на мобильное устройство. В случаях острой необхоимости  я йспользую свой SMS сервер на базе SIM900, но както сообщения INFO по sms слать не очень..

main_tags: 

Микроблог клиент - Переработка

Mon, 15/04/2013 - 17:00 -- observer

Крайняя коммандировка в другой город на скоростном поезде открыла напомнила об узких местах в приложении "Микроблог". На данный момент это версия 5 - для десктопа, написанная на JAva и отсталая мобильная версия 3 написанная на Python под Nokia.

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

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

main_tags: 

Хранение состояний датчиков на RabbitMQ

Wed, 13/03/2013 - 13:07 -- observer

Раньше я уже писал об использовании в проекте HomeServer - сервера сообщений RabbitMQ. Рано или поздно должна была возникнуть задача хранения различных текущих данных системы. Т.е. это какието показатели, состояния датчиков, статусы подсистем и т.п.

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

Задача - хранить текущие данные температуры, влажности, освещенности, состояния триггеров, состояния систем и т.п.. Доступ к этим данным должен быть максимально простым из всевозможных служб. Желательно использовать теже каналы и методы доступа что и в других модулях.

Решил всетаки хранить показания в отдельных очередях сервера сообщений RabbitMQ. Причем хранить только крайнее значение. Такой вариант полезен еще и тем, что позволяет любому сервису подписаться на определенную очередь и получать все обновления (если они есть) автоматически. Другой плюс в том, что за данными можно приходить только иногда, когда это необходимо. Можно подписать сервис видения логов на все очереди сразу, можно накапливать показания, если это необходимо - третьими сервисами. Возмностей и схем на самом деле много. Система получается очень гибкая и легкомасштабируемая.

Единственное что требуется от отправителя и получателя сообщений - умение отправлять и получать AMQP сообщения. Ну и что немаловажно - мое умение это все написать )) Так как я уже немного освоил эту технологию на Python, Java и PHP - задача по добавлению этого функционала в скрипты и программы упрощается.

Таким образом показания датчиков представляют собой сообщение следующего формата:

название параметра; значение параметра; метка времени; дополнительная информация

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

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

main_tags: 

Arduino + GSM/GPRS модуль SIM900

Sat, 29/12/2012 - 11:48 -- observer

Ну вот система обрела долгожданный модуль, дополнительную степень свободы - GSM/GPRS связь. Для начала я планирую попробовать его для отправки оповещений по SMS, а также для управления с помощью тех же SMS.

Реанимация ASUS O!Play

Sat, 22/12/2012 - 22:32 -- observer

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

main_tags: 

Microblog 4

Fri, 26/10/2012 - 14:31 -- observer

Доработал немного версию своего микроблог-клиента для Windows. Описание начала проекта тут.

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

main_tags: 

Полиграфия, принты и инсталляция на WHITE Milano 2012

Sun, 30/09/2012 - 15:15 -- observer

Учитывая уровень и размах предстоящего мероприятия, объем подготовительных работ был, мягко говоря не маленьким. Это же касалось и полиграфии. Хотя полиграфия, наверное, слишком узкое понятие в этом случае ))

Начну с самой сложной части - инсталляции. Стояла задача создать воссоздать визуальную заявку коллекции

Ардуино - работа в качестве ИК пульта

Wed, 05/09/2012 - 21:40 -- observer

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

Arduino IR remote

Собираем любимые фото по всей сети. RSS и другие приятные мелочи.

Tue, 15/05/2012 - 18:37 -- observer

Давно хотел сделать пост про RSS так как многие из моих знакомых может и знают об этом явлении, но точно не пользуются.  Очень полезная штука )) На самом деле очень удобно.. В чем же суть?

Управление информацией. Архив

Sat, 05/05/2012 - 19:09 -- observer

Ранее я уже писал о хранении информации. Упоминал несколько вариантов физической организации хранилища http://podrugomu.com/node/64 A также о логической организации дерева проектов http://podrugomu.com/node/49

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

Можно наращивать объемы дисков, устанавливать RAID массивы. Это конечно хороший выход, но это дорого, энергозатратно, шумно (для дома) и не всегда есть смысл хранить все, что накоплено. По крайней мере хранить в оперативном хранилище. Нужно архивировать.

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

Новый проект

Mon, 30/04/2012 - 15:51 -- observer

подходит к завершению новый проект - сайт для филиала компании ETI

 

помимо полного набора стандартного функционала, можно отметить сложный, объемный каталог продукции

Всем спасибо!

 

 

Pinterest - привлечение посетителей на сайт

Fri, 02/03/2012 - 18:02 -- observer

pinterest info

Крайние несколько дней достаточно часто приходится рассказывать о новой социальной сети Pinterest  Именно рассказывать, потому что при фразе "новая социальная сеть" народ просто разрывает - как !! еще одна!!!

Конечно необходимы разъяснения, зачем нам еще одна сетка. Если вы не сидите целый день, убивая время за компьютером, а занимаетесь делом, то эта заметка для Вас. Потому как, конечно, основное назначение Pinterest это развлечение и необходимо понять как это можно использовать для дела. Pinterest это обмен подборками / альбомами понравившихся картинок, в основном из интернета. Обмен ИНТЕРЕСАМИ. Казалось бы ничего нового в этом нет, но все дело, как всегда, в тонкостях и моментах.

Обмен сообщениями между скриптами, программами, сервисами и Arduino

Thu, 02/02/2012 - 16:09 -- observer

Новая схема взаимодействия подсистем между собой - система обмена сообщениями на базе RabbitMQ сервера.

RabbitMQ and Arduino

socket server и многопоточность

Mon, 16/01/2012 - 15:36 -- observer

ну вот началось ....

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

Есть несколько вариантов. Это может быть socket server, который будет ждать подключения на каком-то порту и принимать/передавать данные. RPC сервер, который будет так же ждать подключения на каком-то порту и выполнять команды. Ну и чтобы пострелять из пушки по воробьям - вариант посложнее и как мне кажется, поинтереснее  это использование очередей сообщений, протокола AMQP и RabbitMQ сервера.

Но остановлюсь пока на socket сервере. Остальное, возможно позже...

Не буду объяснять сам принцип, просто отправлю на пост которым я пользовался сам http://www.demoriz.ru/post-19/  Там все предельно ясно описано, да и поднять отдельный soсket сервер на питоне оказалось не так уж сложно, если без извращений конечно.

Главная проблема, которая сразу возникает при добавлении сервера в уже существующую программу, это остановка основного цикла программы, так как добавленный сервер ждет соединения и держит весь цикл.  Для решения этой проблемы существуют потоки и многопоточность. Чтобы не рыть интернет, а информации по этой теме много и она в основном рассчитана на более подготовленных.  Можно воспользоваться тем что нашел я: http://www.uchi-it.ru/9/11/11.html  http://keysolutions.ru/articles/osnovy-raboty-s-potokami-v-python  Очень внятно написано и понятно начинающим.

Arduino COM port - прием и разбор данных

Sun, 15/01/2012 - 17:13 -- observer

Этот небольшой пост как продолжение темы работы с COM портом, затронутой в посте http://podrugomu.com/node/981. Там я описывал запись данных Ардуиной в порт и разбор их Питоном на стороне компьютера. Теперь же стоит обратная задача - передача данных Ардуине и разбор их на команды.

Задача на первый взгляд не сложная, да и кода не много. Но, что программеру шара, то чайнику - смерть.

Первое это чтение данных из порта функцией Serial.read  в буфер

Второе это разбор буфера на адреса, команды и данные. Я придумал себе такой протокол - unitID,command,data - где unitID - номер устройства, command - команда которая должна быть выполнена этим устройством и data - пакет данных для этой программы, если это необходимо.

Ну и третий этап это обработка команды. Т.е. выполнение ее на плате - например передача на определенный выход каких-то данных (из data) или как показано ниже - включение светодиода.

Arduino - physical computing

Tue, 10/01/2012 - 19:00 -- observer

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

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

Arduino

Ситуация изменилась совсем недавно .....  читаем дальше

Arduino - COM port - Python

Mon, 09/01/2012 - 17:24 -- observer

Если не считать мелких опытов с Arduino - мигание светодиодом и тому подобное. Первым, что я решил сделать это подружить Arduino UNO с Python. Чтобы далее управлять платой из своих программ, написанных на Питоне. Сделать это проще всего через COM порт. Небольшой опыт работы с PySerial - питоновской библиотекой для связи с последовательными портами, у меня есть. Ну очень небольшой...

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

Чтобы не следить за тем занят порт или нет и не упустить данные решил сделать посредника, который со стороны компьютера будет брать данные из порта и распределять их между программами. Он же будет принимать данные от программ и укладывать их в порт. Со стороны Arduino аналогичная программа получает данные от устройств, готовит и укладывает их в порт, параллельно возможно делая какие-то прямые выводы из этих данных и управляя другими устройствами. Она же получает данные и команды из порта и раздает их нужным устройствам.

Напрашивается какой-то протокол обмена. Стоит конечно поискать что-то стандартное, но пока необходимо отработать лишь общую схему.

Обработка фото и практическая автоматизация

Sat, 19/11/2011 - 14:46 -- observer
Я пропадал последние пару недель, ничего не писал в блог, потому, что было много работы. Эти напряженные деньки кое что дали мне, хотя я ничем сверхъестественным не занимался. Обычная работа в одной из сфер моей деятельности — обработка фото. Разница была лишь в больших объемах и сжатых сроках. 

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

SMS сервер

Tue, 13/09/2011 - 16:42 -- observer

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

Идея как-то заглохла немного, софт я написал, но не было телефона ненужного, да и надобности острой не было. Интернет постоянно доступен с телефона, клиент простой .. все было очень легко. Но вот во время поездки в Париж.. остро почувствовал необходимость. С интернетом были постоянные проблемы. Французы все позакрывали .. напрочь )) А то что было открыто - было очень извращено в плане подключения. И писать в микроблог  не было возможности. А очень хотелось, потому как много всего интересного происходило )) К тому же хотелось, чтобы это было максимально бытро и просто - находу, так сказать.

Так что думаю, скоро проект увидит свет.

Отправил смс - и оно автоматом запостилось в микроблог. Что может быть проще.

main_tags: 

создание интернет магазина

Wed, 03/08/2011 - 15:12 -- observer
Еще один проект. Теперь это - небольшой интернет магазин.
Сам проект завершен, но стартует осенью после поставки первой партии товара.
Картинки и цены товаров, как понимаете, пока не реальные ))
 
создание интернет магазина - podrugomu.com
 
 

Проект - микроблог

Sun, 03/07/2011 - 16:38 -- observer

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

мое знакомство с PyQt

Mon, 27/06/2011 - 16:57 -- observer

Нужно было написать маленького клиента для блога.. и сделать это надо было под Windows. Функционала минимум, но сам переход под окошки ... Пришлось вникнуть в PyQt   Так что я волей неволей перехожу к окошкам.

заодно и перенес один свой скрипт на новые рельсы:

main_tags: 

местоположение

Fri, 24/06/2011 - 17:00 -- observer

научил робота постить информацию о текущих координатах ( посмотреть можно тут ) Ничего сложного, но функция может быть полезна. Сейчас дорабатываю накопление данных и публикацию набора меток сразу в одном посте. + Если еще разобраться со всем функционалом - можно выводить информацию о рядом расположенных объектах .. и много еще чего

Остается его куда-то запустить ))

main_tags: 

Персональный блог

Fri, 24/06/2011 - 13:37 -- observer

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

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

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

новые опыты с python

Sat, 21/05/2011 - 17:44 -- observer

Ввел таки тег python потому что чувствую - затягивает )) и буду еще не раз писать. Это записки конечно не для профессионалов а больше для общего развития. Может кто войдет во вкус, как и я

main_tags: 

Pages