<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8659579075659743713</id><updated>2024-09-15T17:01:34.589-07:00</updated><category term="allergies"/><category term="gluten"/><category term="personal"/><category term="welcome"/><category term="wheat"/><title type='text'>Agreeable Disagreements</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8659579075659743713.post-2572653197957622481</id><published>2017-03-16T20:08:00.000-07:00</published><updated>2017-03-16T20:13:14.326-07:00</updated><title type='text'>Chauvet ColorStrip RGB FIXED! </title><content type='html'>I can&#39;t say enough good things about ultraDMX Micro from DMXKing.&lt;br /&gt;
&lt;a href=&quot;http://dmxking.com/usbdmx/ultradmxmicro&quot;&gt;http://dmxking.com/usbdmx/ultradmxmicro&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I had several Chauvet ColorStrip fixtures that worked fine linked to each other without a DMX Controller. Only recently, I discovered that the RGB mode under DMX had major problems with random flashing. Further research showed that the DMX chip in the Chauvet required a 40ms pause between each byte. Without that, it gets confused about what data is being sent. FYI, there are other cheap LED DMX fixtures that have similar problems. I found on-line a product that issues a byte delay and I&#39;m sure works well but it cost more than these three fixtures combined.&lt;br /&gt;
&lt;br /&gt;
So I thought I&#39;d check in with DMXKing, the makers of the ultraDMX Micro. They had a free firmware update that offered a &quot;Maximum Compatibility&quot; mode. I was able to update the firmware and set &quot;Maximum Compatibility&quot; mode using a Windows machine. The timing change was still there when I plugged the ultraDMX Micro into my linux laptop and fired up Q Light Controller Plus (&lt;a href=&quot;http://www.qlcplus.org/&quot;&gt;http://www.qlcplus.org/&lt;/a&gt;) and it worked perfectly.&lt;br /&gt;
&lt;br /&gt;
You have to love a company that supports a product that&#39;s several years old and is both cheaper and better than other products in the market.


</content><link rel='replies' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/2572653197957622481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agreeabledisagreements.blogspot.com/2017/03/chauvet-colorstrip-rgb-fixed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/2572653197957622481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/2572653197957622481'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/2017/03/chauvet-colorstrip-rgb-fixed.html' title='Chauvet ColorStrip RGB FIXED! '/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8659579075659743713.post-8843896864643926560</id><published>2017-03-02T22:38:00.000-08:00</published><updated>2017-05-02T17:53:24.859-07:00</updated><title type='text'>web2py quarks solved</title><content type='html'>So I&#39;m doing several projects in web2py and thought I&#39;d put a list of odd problems I&#39;ve faced and their solutions, not matter how simple or stupid, in case someone else faces them too.&lt;br /&gt;
&lt;br /&gt;
1) Fresh install of Linux Mint, apache2, web2py, etc. &amp;nbsp;I&#39;m using self-signed certificates as this will be an internal project for a client. Anyway, everything works fine except I can&#39;t access admin with a &quot;403 Forbidden&quot; error. After lots of looking around I found it was because the gluon directory was owned by root instead of www-data. The fix was easy.&lt;br /&gt;
change to the /home/www-data/web2py directory and type:  &lt;br /&gt;
&lt;blockquote&gt;
sudo chown -R www-data:www-data *&lt;/blockquote&gt;
to change the ownership of all files to www-data
&lt;br /&gt;
===================================================================&lt;br /&gt;
2) Did you forget your Admin password and get yourself locked out? There are two things you have to do.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; a) change your password. I found this solution at&amp;nbsp;&lt;a href=&quot;https://groups.google.com/forum/#!topic/web2py/xEpM3Rb0T3Q&quot; target=&quot;_blank&quot;&gt;this google group.&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; border: 0px; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 12.8px; margin: 0px; padding: 0px;&quot;&gt;sudo -u www-data python -c &quot;from gluon.main import save_password; save_password(&#39;123456&#39;,&lt;/span&gt;&lt;span style=&quot;background-color: white; border: 0px; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 12.8px; margin: 0px; padding: 0px;&quot;&gt;443&lt;/span&gt;&lt;span style=&quot;background-color: white; border: 0px; color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 12.8px; margin: 0px; padding: 0px;&quot;&gt;)&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 12.8px;&quot;&gt;Let&#39;s break this down a little. We are going to change to the www-data user and run python a python command. The python command is enclosed in quotations marks and consists of two lines separated by a semi-colon. The first imports the save_password function from gluon.main. Gluon a series of web2py libraries. It&#39;s good to look through if your learning python and, though it&#39;s really densely written, you can learn a lot. Just don&#39;t change anything. The second line calls the save_password function with the new password and the port number that web2py talks over. Of course you should set your own password, do NOT use 123456. Port 443 is the secure port number that web2py uses by default thought that can be changed using your apache configuration. If you changed your default port, you wouldn&#39;t be looking here for this info.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 12.8px;&quot;&gt;So go ahead and type that command on your server from the web2py directory.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;nbsp;b) clear your ip address from the denied list. Web2py maintains a list of ip addresses who&#39;ve tried to hack your admin password. By default, the admin application lives under the admin directory of your applications. It&#39;s interesting that the admin interface is just another application in the eyes of web2py. &amp;nbsp;Anyway, wherever you placed your web2py directory, go to /web2py/applications/admin/private. In here you&#39;ll find a file called hosts.deny. This is what is keeping you from accessing your admin interface after you&#39;ve changed your password. if you &quot;sudo nano hosts.deny&quot; you can remove the line that lists your ip address. Don&#39;t know your ip address? Visit&amp;nbsp;&lt;a href=&quot;http://www.myipaddress.com/show-my-ip-address/&quot; target=&quot;_blank&quot;&gt;this website&lt;/a&gt;&amp;nbsp;and it&#39;ll let you know.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 12.8px;&quot;&gt;Now https://YourDomainName.xxx/admin will work again!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
===================================================================</content><link rel='replies' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/8843896864643926560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agreeabledisagreements.blogspot.com/2017/03/web2py-quarks-solved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/8843896864643926560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/8843896864643926560'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/2017/03/web2py-quarks-solved.html' title='web2py quarks solved'/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8659579075659743713.post-8397076998500518734</id><published>2013-01-30T13:30:00.002-08:00</published><updated>2013-01-30T13:30:48.067-08:00</updated><title type='text'>Why we shoot people</title><content type='html'>&lt;br /&gt;
One thing lost in the gun debate is how guns make it really easy to quickly kill the wrong person. This comes up because of an article I was just reading about a Chicago girl who was killed when she happened to be caught in the middle of a gang related shooting. The current debate about which guns to ban won&#39;t help us stop bullets from hitting the wrong person so maybe we need to take a closer look at why people fire their guns. &amp;nbsp;Most gun violence, though generally ignored, is actually gang violence and most gang activity is drug activity so maybe we need to look at changing this countries drug policies.&lt;br /&gt;
&lt;br /&gt;
We&#39;ve had a war against drugs since it was declared by Nixon in &#39;71 but it was really ramped up by Reagan in &#39;80. Curiously, the percentage of those using drugs hasn&#39;t changed much but the percent incarcerated has gone up dramatically. Given that we&#39;ve used the military industrial complex to create new and better gear with which to fight this war but the drug war continues to fail after more than forty years of trying, maybe it&#39;s time to try another approach?&lt;br /&gt;
&lt;br /&gt;
I&#39;d like to suggest that we remove the profit motive that the gangs use to buy weapons by proving a legal path to drug access just like our current prescription drug system. Having to fill your heroin prescription in a well lit CVS would take much of the &quot;cool&quot; factor out of the most damaging drugs and addiction would be easier to spot and could be dealt with addiction as the health issue it is instead of a criminal issue. This would leave us more room in the jails for the &quot;white collar&quot; criminals that destroyed our economy.&lt;br /&gt;
&lt;br /&gt;
Clearly this doesn&#39;t solve the most media friendly mass shootings but it would solve the majority of gun deaths, both accidental and intentional. It seems this is a good debate to have with folks on both sides of the gun control issue. What&#39;s your take?&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/8397076998500518734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agreeabledisagreements.blogspot.com/2013/01/why-we-shoot-people.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/8397076998500518734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/8397076998500518734'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/2013/01/why-we-shoot-people.html' title='Why we shoot people'/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8659579075659743713.post-2504946501030184810</id><published>2012-12-17T20:33:00.000-08:00</published><updated>2012-12-17T20:47:52.789-08:00</updated><title type='text'>Why Newtown won&#39;t be the last...</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Like most people, I haven&#39;t been able
to avoid hearing about the murders in Newtown nor avoid the endless
stream of ideas about how to prevent such incidents in the future.
Arguments about gun control, mental healthcare, God, media and video
games run rampant on facebook and elsewhere. The fact is, none of
these things alone are the problem nor will fix what we face. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Yes, we have too many guns. Statistics
prove that. Guns aren&#39;t the problem however. We have too many guns
because they&#39;re cheap and we have an entire industry set up to
frighten people into thinking they will need guns to prevent the
government from attacking them. Remember, no person or group, has
ever defeated the worst elements of our government with a gun. Not in
Waco, not in Pine Ridge, not in Ruby Ridge, not ever. The only time
the people have defeated the government is when the people have stood
united against it. Gandhi and Martin Luther King Jr. proved that when
people stand together, positive change happens. So, yes, keep a
hunting rifle or two but there is seriously no logical explanation
for hand guns, huge clips or rapid fire weapons. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Yes, our mental health system is a
total failure. It&#39;s easy for people with health care to get
anti-depressants but impossible for the poor to receive any mental
healthcare until they commit a crime. The stigma of mental health
issues tends to keep other people out of the system until it&#39;s too late. On
top of that, our understanding of the working of the brain and mental
illness is extremely limited and successful outcomes are rare and
frequently a mystery. So, yes, mental healthcare is important, as is
identifying potentially dangerous people, but at best we are barbers
pulling teeth in the mental health field. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Some people believe that if only
everyone shared their particular believe in God, we wouldn&#39;t have any
problems at all. Yet, even the Christian churches cannot agree which
of them carries the “truest” doctrine. The entire Christian
community is filled with infighting and division and would never agree
on which denomination&#39;s reading of the bible should be taught in
school. I mention the Christians first because it&#39;s only the
Christians are making statements like “God wasn&#39;t in school that
day because He wasn&#39;t welcome.” Such statements totally ignore the
centuries of corruption in churches of all faiths and denominations,
many of which took the innocence of children. It also ignores the
diversity of religion and belief that exists. So, Yes, keep your God
if He/She/It works for you but if you think everyone could agree on a
single representation of God and that representation looks just like
yours, then you have a belief and not a faith. Myopic belief makes
you as dangerous as any gunman.  
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Our media and video games are
aggressively violent and more realistic every day. If repeated
exposure to images of violence doesn&#39;t create a culture of violence,
then repeated images of Coke wouldn&#39;t create a desire for Coke
products. But it&#39;s not just entertainment. Our country has been at
war almost continuously since the 40&#39;s. Include the “drug war”
and we&#39;ve been killing people in the name of peace non-stop since
1980. What kind of message does this give people? So yes, the media
has culpability but it&#39;s nothing like the 24/7 culture of death we
live through.  
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
So what do all of these things have in
common? 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
It&#39;s all about the money of fear. Guns, ammo, home
protection, for-profit prisons, for-profit healthcare, tax exempt
churches, movies, television, fear based news services, conspiracy
entertainment, our military... all the most powerful forces in our
society make money by making us feel afraid, overwhelmed and
defenseless. Advertisers sell us things to alleviate our guilt,
anxiety, boredom, alienation, and fear but of course, nothing you buy
fills the holes. The money only props up the industries we&#39;ve built
that require yearly, quarterly, weekly and hourly quotas and profits
be met. And everything is in service to Wall Street and the banks who
charge us interest and fees on the money we create with our labor. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
How did we get here?&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
We have allowed the sickest individuals
in our world, the psychopaths and greed mongers, to define what it
means to be “healthy” in our society. “Healthy” now means to
work endlessly, take short-cuts, skip vacations, boost the bottom
line and ignore friends and family in order to be a productive member
of society. We learn to disparage and avoid those who are different,
odd, funny, poor, sick or whom our particular church tells us are
morally impure. We&#39;ve been trained to accept wars and killing in our
name. We have churches teaching that one&#39;s piety is represented by
one&#39;s wealth and that the poor are unworthy. This lack of reality has
led us to media which is larger than life and the expectation that
our life needs to be larger than reality. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
And we&#39;ve let this happen to us. These
mass murders are the price we pay for fearing our neighbors and, instead, trusting those we will never meet.   
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
What do we do?&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
The insanity is, it can all stop today.
All we have to do is stop bowing to money and power.  We need to stop
fighting with each other and stand together, live within our means,
reject more goods and require more good. If we barter and trade
instead of using their money which funds the madness, make gifts of
time instead of spending time buying gifts, we can change the
culture. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
We have more homes sitting vacant today
than we have homeless in this country. We pay farmers to not grow
food while people starve. Unhealthy products that don&#39;t need to be
made wouldn&#39;t be made without a profit motive. These things are
insane.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
WWI ended when troops decided they
would no longer fight against each other. We can do the same.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
We need to reject the morality of money
and replace it with the wisdom of the ages: “Do unto others as you
would have them do unto you.”&lt;br /&gt;
&lt;br /&gt;
We&#39;ve been taught that without
the profit motive great and amazing things would not exist. Tell that
to the artist with a day job that supports their art. We are taught
that without the profit motive projects of great scope would not
exist. Tell that to those who went to the moon. We have developed
machinery to increase our efficiency but have given the fruit of that
efficiency to the owners of the machines while they cut laborers and
required increased working speed instead of providing the promised
thirty hour work week with a single livable wage. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
We can provide jobs, food, education
and housing for everyone on the planet simply by choosing to do it.
We can allow people the freedom to excel at life and live to the best
of their ability. We can encourage people to achieve to their highest
ability if that&#39;s what we model. Think of the great things we could
do if we quit worrying about the few who underachieve and celebrate
those who bring their talents to the table, not for profit, but for
the love of the achievement. 
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
Mass murders of children in a sick
society or a new world, it&#39;s truly your choice.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/2504946501030184810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/12/gun-violence-and-america.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/2504946501030184810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/2504946501030184810'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/12/gun-violence-and-america.html' title='Why Newtown won&#39;t be the last...'/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8659579075659743713.post-3061837639098783862</id><published>2012-10-31T23:58:00.000-07:00</published><updated>2012-11-01T22:51:08.619-07:00</updated><title type='text'>A beginners guide to programming DMX512 in Python. </title><content type='html'>I own some dimmers and a few L.E.D. lighting fixtures that I use with my band. Unfortunately, my foot controller gave out. I purchased one of the &lt;a href=&quot;http://dmxking.com/index.php?page=shop.product_details&amp;amp;flypage=flypage.tpl&amp;amp;product_id=26&amp;amp;category_id=1&amp;amp;option=com_virtuemart&amp;amp;Itemid=2&quot; target=&quot;_blank&quot;&gt;DMXKing UltraDMX Micro&lt;/a&gt; as it is quite inexpensive and compact. It has an on-board processor that handles all the DMX conversion and timing and is, to the best of my testing and their marketing, &lt;span style=&quot;font-family: inherit;&quot;&gt;100% compatible with the&amp;nbsp;&lt;span style=&quot;background-color: white; color: #333333; line-height: 21px;&quot;&gt;ENTTEC USB Pro protocols. It even uses the ENTTEC drivers. This means you can communicate with it through it&#39;s simple virtual serial port.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I&#39;ve found that it works flawlessly with all of the free lighting controller softwares out there, but I wanted to control it with Python. ENTTEC was nice enough to&lt;a href=&quot;http://www.enttec.com/docs/dmx_usb_pro_api_spec.pdf&quot; target=&quot;_blank&quot;&gt; publish a document &lt;/a&gt;explaining their protocol but I guess I was a little too stupid to understand it so I started downloading sniffers for the usb and virtual serial port that the UltraDMX Micro becomes. Most of them didn&#39;t work for me but I found &lt;a href=&quot;http://www.usblyzer.com/&quot; target=&quot;_blank&quot;&gt;USBlyzer&lt;/a&gt;, an excellent tool who&#39;s demo worked flawlessly. It&#39;s such a fine software I wish I needed it often enough to warrant the purchase. I guess I&#39;ll just have to post this free advert for them.&lt;br /&gt;
&lt;br /&gt;
What I discovered is a very simple protocol and I thought I&#39;d share the details with you in case you ever want to control DMX with Python, or any language really. This will be great for creating holiday light shows, home control systems or multimedia presentations where syncing lighting, video and music is important.&lt;br /&gt;
&lt;br /&gt;
Briefly, DMX512 has a four byte header followed by a spacer byte. Next comes the data block, which can vary in size, followed by a closing byte. The data block for communicating with fixtures is 512 bytes long with each byte representing the value for an individual channel. The channel value can range from 0 to 255.&lt;br /&gt;
&lt;br /&gt;
So here&#39;s some Python code with documentation. This should give you the general idea.&lt;br /&gt;
==============================&lt;br /&gt;
#serial is PySerial, the serial port software for Python&lt;br /&gt;
import serial&lt;br /&gt;
&lt;br /&gt;
#setup the dmx&lt;br /&gt;
#char 126 is 7E in hex. It&#39;s used to start all DMX512 commands&lt;br /&gt;
DMXOPEN=chr(126)&lt;br /&gt;
&lt;br /&gt;
#char 231 is E7 in hex. It&#39;s used to close all DMX512 commands&lt;br /&gt;
DMXCLOSE=chr(231)&lt;br /&gt;
&lt;br /&gt;
#I named the &quot;output only send dmx packet request&quot; DMXINTENSITY as I don&#39;t have&lt;br /&gt;
#any moving fixtures. Char 6 is the label , I don&#39;t know what Char 1 and Char 2 mean&lt;br /&gt;
#but my sniffer log showed those values always to be the same so I guess it&#39;s good enough. &lt;br /&gt;
DMXINTENSITY=chr(6)+chr(1)+chr(2)&lt;br /&gt;
&lt;br /&gt;
#this code seems to initialize the communications. Char 3 is a request for the controller&#39;s&lt;br /&gt;
#parameters. I didn&#39;t bother reading that data, I&#39;m just assuming it&#39;s an init string.&lt;br /&gt;
DMXINIT1= chr(03)+chr(02)+chr(0)+chr(0)+chr(0)&lt;br /&gt;
&lt;br /&gt;
#likewise, char 10 requests the serial number of the unit. I&#39;m not receiving it or using it&lt;br /&gt;
#but the other softwares I tested did. You might want to.&lt;br /&gt;
DMXINIT2= chr(10)+chr(02)+chr(0)+chr(0)+chr(0)&lt;br /&gt;
&lt;br /&gt;
#open serial port 4. This is where the USB virtual port hangs on my machine. You&lt;br /&gt;
#might need to change this number. Find out what com port your DMX controller is on&lt;br /&gt;
#and subtract 1, the ports are numbered 0-3 instead of 1-4&lt;br /&gt;
ser=serial.Serial(3)&lt;br /&gt;
&lt;br /&gt;
#this writes the initialization codes to the DMX&lt;br /&gt;
ser.write( DMXOPEN+DMXINIT1+DMXCLOSE)&lt;br /&gt;
ser.write( DMXOPEN+DMXINIT2+DMXCLOSE)&lt;br /&gt;
&lt;br /&gt;
# this sets up an array of 513 bytes, the first item in the array ( dmxdata[0] ) is the previously&lt;br /&gt;
#mentioned spacer byte following the header. This makes the array math more obvious&lt;br /&gt;
dmxdata=[chr(0)]*513&lt;br /&gt;
&lt;br /&gt;
#senddmx accepts the 513 byte long data string to keep the state of all the channels&lt;br /&gt;
# the channel number and the value for that channel&lt;br /&gt;
#senddmx writes to the serial port then returns the modified 513 byte array&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
def senddmx(data, chan, intensity):&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # because the spacer bit is [0], the channel number is the array item number&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # set the channel number to the proper value&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;       &lt;/span&gt;data[chan]=chr(intensity)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # join turns the array data into a string we can send down the DMX&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;sdata=&#39;&#39;.join(data)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # write the data to the serial port, this sends the data to your fixture&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;ser.write(DMXOPEN+DMXINTENSITY+sdata+DMXCLOSE)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # return the data with the new value in place&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;        &lt;/span&gt;return(data)&lt;br /&gt;
&lt;br /&gt;
# to change a light on channel 1 to full bright&lt;br /&gt;
dmxdata= senddmx(dmxdata,1,255)&lt;br /&gt;
# to dim it to half&lt;br /&gt;
dmxdata= senddmx(dmxdata,1,128)&lt;br /&gt;
# to black it out&lt;br /&gt;
dmxdata= senddmx(dmxdata,1,0)&lt;br /&gt;
===============================================================&lt;br /&gt;
&lt;br /&gt;
So, there you are. It&#39;s really very simple once you know the basic format of the data. It took me a while and a lot of dinking around to get to this point however. This is as far as I&#39;m going with this project as it worked fine for me and my fixtures. Someone could turn this into a Python Class for controlling DMX lighting but it isn&#39;t going to be me.</content><link rel='replies' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/3061837639098783862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/10/a-beginners-guide-to-dmx512-in-python.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/3061837639098783862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/3061837639098783862'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/10/a-beginners-guide-to-dmx512-in-python.html' title='A beginners guide to programming DMX512 in Python. '/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8659579075659743713.post-6396383331026204824</id><published>2012-09-19T10:57:00.000-07:00</published><updated>2012-09-19T16:11:24.809-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="allergies"/><category scheme="http://www.blogger.com/atom/ns#" term="gluten"/><category scheme="http://www.blogger.com/atom/ns#" term="wheat"/><title type='text'>Gone is the Gluten</title><content type='html'>In the personal side of my blog I begin with gluten or perhaps a wheat allergy, I&#39;m not sure which. 
&lt;br /&gt;
&lt;br /&gt;
For many years now I&#39;ve had cysts that lay deep under my skin. They look and feel like bumps of various sizes. It&#39;s hard to tell if they are in the lower layers of skin or on the muscle. I&#39;ve had doctors look at them several times and the answer is always the same, &quot;It&#39;s a cyst. We can remove it with surgery but it might come back. We don&#39;t know what causes them...&quot; 
&lt;br /&gt;
&lt;br /&gt;
Basically the same information I had gleaned from&lt;a href=&quot;http://www.medicinenet.com/cysts/article.htm&quot;&gt; http://www.medicinenet.com/cysts/article.htm&lt;/a&gt; and other related web sites only doctors charged $100 more. 
&lt;br /&gt;
&lt;br /&gt;
The real problem is the cysts can hurt. Sometimes they were debilitatingly painful. They&#39;d swell in size and get fevered. The cysts on my back were the worst, as frequently, after sitting for a bit, I&#39;d walk hunched over until they settled down and allowed me to stand upright. This was preventing me from doing my normal exercise and left me sitting on the couch far too often. 
&lt;br /&gt;
&lt;br /&gt;
If this all seems like too much information, it&#39;s for the search engine as I want them to find this page and possibly help others like me. 
&lt;br /&gt;
&lt;br /&gt;
You see, I found what may be the cause and cure for my problem. Gluten, or perhaps a wheat allergy, I&#39;m not sure and it doesn&#39;t matter as the result is the same. Following a tip from some other website I&#39;ve now lost track of, I chose to attempt becoming gluten free for the last three weeks. After just a few days the cysts quit hurting. Now, three weeks later, they&#39;ve reduced in size dramatically. I&#39;ve deemed my experiment a complete success. Now the problem is how to live like this. 
&lt;br /&gt;
&lt;br /&gt;
You see, twice during the last three weeks, I&#39;ve run into unexpected gluten. One was at a festival where I had a gyro. I knew the pita (not P.I.T.A, though it wound up being that) would have gluten. I had only been gluten free for a week and was feeling much better but gyros were a favorite food for me and I figured &quot;how bad can it be?&quot;
&lt;br /&gt;
&lt;br /&gt;
The answer, of course, was much worse than I could have expected. I didn&#39;t realize that most gyro meat also contains gluten. Anyway, several hours later I was convinced I had been kicked by a mule. All my cysts were hot to the touch and unbelievably painful. Painful enough to wake me at 4:00am. It was hard to determine if I was having gastro troubles or if the cyst that lives just under my rib cage was causing me such difficulty. I believe now that it was just the cyst. 
&lt;br /&gt;
&lt;br /&gt;
This past weekend, I had another run in with gluten when I ordered a burger, sans bun, from a little restaurant in North Dakota. The &quot;special sauce&quot; seemed to be soy sauce and sugar. I ate it without realizing that many soy sauces contain gluten. Damn, this stuff is in everything! Actually, identifying the source of the gluten as soy sauce as a bit of detective work. As my cysts lit up like the lights on a radio tower I stopped to think of what I had eaten. A quick internet search of the ingredients of my limited menu showed me soy sauce as the likely culprit. 
&lt;br /&gt;
&lt;br /&gt;
So now the game is two fold. One is to find gluten free products that don&#39;t suck and the second is to learn to eat on the road as we travel around 180 days a year. I&#39;ll be writing more about both of these issues in the future but I want to point out a major win.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pamela&#39;s Bread Mix &amp;amp; Flour Blend&amp;nbsp; is making things good on the home front. This stuff makes a wonderful bread. We bake it in a simple and cheap Oster Expressbake Bread Maker. I chose that Oster because it was cheap and I found one other review that said it did a good job with gluten free bread in it&#39;s standard cycle. Well, I&#39;m no expert on bread makers but the bread is excellent. It could be Pamela&#39;s flour, the Oster or my carefully measured ingredients for the recipe on the back of the Pamela&#39;s bag but the bread is good. 




&lt;br /&gt;
&lt;a href=&quot;http://gan.doubleclick.net/gan_click?lid=41000000028007181&amp;amp;pid=BNGLA10346&amp;amp;adurl=http%3A%2F%2Fwww.boncui.com%2Fbngla10346.html%3Fmr%3AtrackingCode%3DDF04824A-8031-E011-8262-001B2163195C%26mr%3AreferralID%3DNA&amp;amp;usg=AFHzDLulDt5d19svQZ5b0NSXUzIwgoSkCQ&amp;amp;pubid=578856&quot; rel=&quot;nofollow&quot;&gt;Pamelas Products 22988 Bread Mix &amp;amp; Flour Blend Gluten Free (Google Affiliate Ad)&lt;/a&gt;&lt;a href=&quot;http://gan.doubleclick.net/gan_click?lid=41000000028007181&amp;amp;pid=BNGLA8719&amp;amp;adurl=http%3A%2F%2Fwww.boncui.com%2Fbngla8719.html%3Fmr%3AtrackingCode%3DFF0C824A-8031-E011-8262-001B2163195C%26mr%3AreferralID%3DNA&amp;amp;usg=AFHzDLufij34Y99q8n_6W6cCqxIaJutL7Q&amp;amp;pubid=578856&quot; rel=&quot;nofollow&quot;&gt;Pamelas Products 31913 Amazing Bread Mix Gluten Free (Google Affiliate Ad)&lt;iframe bordercolor=&quot;#000000&quot; frameborder=&quot;0&quot; height=&quot;150&quot; hspace=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://ad.doubleclick.net/adi/N963.148119.BLOGGEREN/B6527721.7;dcadv=3632184;sz=180x150;lid=41000000028007181;pid=BNGLA10346;usg=AFHzDLulDt5d19svQZ5b0NSXUzIwgoSkCQ;adurl=http%253A%252F%252Fwww.boncui.com%252Fbngla10346.html%253Fmr%253AtrackingCode%253DDF04824A-8031-E011-8262-001B2163195C%2526mr%253AreferralID%253DNA;pubid=578856;price=%2449.79;title=Pamelas+Products+22988...;merc=Boncui.com;imgsrc=http%3A%2F%2Fsite.unbeatablesale.com%2Fimg176%2Fbngla10346.gif;width=85;height=85&quot; vspace=&quot;0&quot; width=&quot;180&quot;&gt;&lt;/iframe&gt;&lt;iframe bordercolor=&quot;#000000&quot; frameborder=&quot;0&quot; height=&quot;150&quot; hspace=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://ad.doubleclick.net/adi/N963.148119.BLOGGEREN/B6527721.7;dcadv=3632184;sz=180x150;lid=41000000028007181;pid=BNGLA8719;usg=AFHzDLufij34Y99q8n_6W6cCqxIaJutL7Q;adurl=http%253A%252F%252Fwww.boncui.com%252Fbngla8719.html%253Fmr%253AtrackingCode%253DFF0C824A-8031-E011-8262-001B2163195C%2526mr%253AreferralID%253DNA;pubid=578856;price=%2439.56;title=Pamelas+Products+31913...;merc=Boncui.com;imgsrc=http%3A%2F%2Fsite.unbeatablesale.com%2Fimg176%2Fbngla8719.gif;width=85;height=85&quot; vspace=&quot;0&quot; width=&quot;180&quot;&gt;&lt;/iframe&gt;&lt;/a&gt;&lt;a href=&quot;http://gan.doubleclick.net/gan_click?lid=41000000028505128&amp;amp;pid=OST1106&amp;amp;adurl=http%3A%2F%2Fwww.wayfair.com%2FOster-Express-Bake-Breadmaker-CKSTBRTW20-L960-K~OST1106.html&amp;amp;usg=AFHzDLtwXQYON6Eivr8dU0jC6vR2dOf79Q&amp;amp;pubid=578856&quot; rel=&quot;nofollow&quot;&gt;&quot;Express Bake Breadmaker&quot; (Google Affiliate Ad)&lt;iframe bordercolor=&quot;#000000&quot; frameborder=&quot;0&quot; height=&quot;150&quot; hspace=&quot;0&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://ad.doubleclick.net/adi/N7433.148119.BLOGGEREN/B6627857.13144;sz=180x150;ord=[timestamp]?;lid=41000000028505128;pid=OST1106;usg=AFHzDLtwXQYON6Eivr8dU0jC6vR2dOf79Q;adurl=http%253A%252F%252Fwww.wayfair.com%252FOster-Express-Bake-Breadmaker-CKSTBRTW20-L960-K%257EOST1106.html;pubid=578856;price=%2456.75;title=%22Express+Bake+Breadmaker%22;merc=Wayfair;imgsrc=http%3A%2F%2Fcommon1.csnimages.com%2Flf%2F49%2Fhash%2F1109%2F4880422%2F1%2F1.jpg;width=85;height=85&quot; vspace=&quot;0&quot; width=&quot;180&quot;&gt;&lt;/iframe&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/6396383331026204824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/09/gone-is-gluten.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/6396383331026204824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/6396383331026204824'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/09/gone-is-gluten.html' title='Gone is the Gluten'/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8659579075659743713.post-418420108485959219</id><published>2012-09-19T09:53:00.001-07:00</published><updated>2012-09-24T09:42:15.539-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><category scheme="http://www.blogger.com/atom/ns#" term="welcome"/><title type='text'>No time like the present. </title><content type='html'>Ok, I&#39;ve talked about doing this for a while but now I hope to actually get it done. It seems there is so much going on nowadays that&#39;s worthy of notice but we rarely take the time to do it. So after &lt;strike&gt;months&lt;/strike&gt; years of using facebook as my outlet, I&#39;m turning to blogging to make my public statements. 

Some will be political, some personal. Some will be half baked ramblings and some will be well thought out diatribes. In other words, this blog will be no different than all the other blogs out there. 

And so I begin...</content><link rel='replies' type='application/atom+xml' href='http://agreeabledisagreements.blogspot.com/feeds/418420108485959219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/09/no-time-like-present.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/418420108485959219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8659579075659743713/posts/default/418420108485959219'/><link rel='alternate' type='text/html' href='http://agreeabledisagreements.blogspot.com/2012/09/no-time-like-present.html' title='No time like the present. '/><author><name>mlacons</name><uri>http://www.blogger.com/profile/14423647526433619392</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>