GNU did that part on the end.
Kudos to Google Books Ngram Viewer – graph link
GNU did that part on the end.
Kudos to Google Books Ngram Viewer – graph link
Its been a while since I posted on here, and to that note I should introduce my new project. First a prologue, recently it’s getting hard to use multiple remotes for my various devices. I would like a centralized media control system like the Logitech Harmony or the Google Nexus used to control Google Fiber products, but alas, I have neither. Nor do I have the money and wherewithal to deal with manufacturers that refuse to update their code. So I have decided to roll my own Arduino based remote control.
The project is connected to the local network through an Arduino Ethernet or Arduino + Ethernet Shield. It should in practice be able to send arbitrary IR commands to various devices. It should be configurable though a web interface using the local network as its interface to other devices like a smart phone or web dashboard. Currently this project is
not functional as it has just been started but with occasional weekend coding binges it should be completed eventually. Then I will have a fully functional remote control for all of my devices, configurable through the local ethernet or wifi. Eventually, it may control itself as I offload more functions to the device without requiring user input. Example, turn on the Xbox, your going to need the TV for that so turn it on too. This project is a work in progress so it will break and probably quite frequently. If you have cloned the repo and your merge doesn’t work you may have to do a rebase.
You can find this project atÂ https://github.com/infomaniac50/IRduino.
There are some related projects for this repo. They help with debugging and construction and are as follows:
Compare these two websites that talk about legislation that would allow Missouri’s electric companies to add Infrastructure Replacement Surcharge (ISRS) to consumers electric bills.
Here is a more independent take on the issue.
Here is a pro-ISRS website put together by the energy companies themselves.
Throughout their entire website you don’t see one mention of electric rate increases. The only mention of electric rates is in a category tag that puts the page in the category “electric rates”. It makes me so mad that our nations leaders all act like a bunch of damn snakes in the grass. They whisper sweet nothings in our ears and when we look away they bite in the ass.
Recently I have been working on the new api for the Arduino Random library. The library now has methods that return different integer sizes from byte to long. I’m not sure if I’ll add long long though as the delay would be too great. This is because the library will block the MCU until it has gathered all of the entropy. If the source of randomness going into the Arduino’s ADC is not very random the library can take a long time to generate the bits. This is especially true of the von neumann debiasing code since it truncates long stretches of ones or zeros.
The library is based on code by Rob Seward albeit heavily modified. Most of the debiasing code remains the same as well as the calibration code. The new code is now up on Github at https://github.com/infomaniac50/Random/. Feel free to fork away and make changes as you see fit. If you use the code please include links back to this blog. I’m sure Rob would like to see some attribution to him as well.
If anybody has any questions feel free to leave a comment, but please, only if you are human.
As we all know there are fraudsters out in the world. These people try and quite often succeed at pilfering money from unsuspecting individuals. Yours truly just got a call from a fraudster claiming to negotiate with my credit card company to reduce my interest rate. Sometimes these fraudsters don’t put a lot of effort into the scam. Seeing how I don’t even have a credit card, it’s kind of hard to take them seriously. They didn’t even have a real person on the phone but fraudsters still try anyway without fail to call me but never succeed. I looked up the scam on the FTC website and I found a link to an article that describes the bastards and their tactics. Just another number going into my block list for me though. Anyway here is the link to the article.Â http://ftc.gov/bcp/edu/pubs/consumer/alerts/alt178.shtm.
BTW. The number they called from is 1-425-406-9028.
Here are the results of the new random number generator I built yesterday.
The old random number generator was not putting out an unbiased stream of bits.
I tried using debiasing algorithms with the old generator but it was not enough.
Entropy is how random a piece of data is, basically how many random bits there are in on byte.
True randomness is 8.0 bits per byte.
We are really close. Yay!!! Five Nines!!! Statistically Significant!!! Yay!!!
Entropy = 7.999993 bits per byte.
Basically says how small you could get it with a zip file
Zip files and pretty much all compression schemes do their job by removing patterned and repeating sequences of bits
Optimum compression would reduce the size
of this 25874432 byte file by 0 percent.
Can’t quite figure out what a good figure is on this test
but 50 percent with an average of 254.05 seems good
Chi square distribution for 25874432 samples is 254.05, and randomly
would exceed this value 50.50 percent of the times.
Do the bytes average out to be in the middle
Tests the ratio of ones to zeros in the bit stream
Arithmetic mean value of data bytes is 127.4920 (127.5 = random).
Can we calculate Pi correctly, if so, we pass. Yay for Pi!!! Yay for Pie!!!
Monte Carlo value for Pi is 3.141568568 (error 0.00 percent).
Assuming this tests byte to byte similarities
Which means is the current byte similar to the last one
Serial correlation coefficient is -0.000016 (totally uncorrelated = 0.0).
The diode is a 12.1V zener and C1 is a ceramic disc type capacitor. The zener diode’s part number is an artefact of the designer I used so you can ignore it.
I recently made a neat little gadget with my Arduino Mega that controls my Xbox 360. It uses the remote control codes from the lirc project. I used an old keypad and an infrared led I found at a hamfest. Its works really good for controlling Hulu and Netflix. I used to have to turn the controller on and wait for it to connect when all I wanted to do is pause the video. With this I just turn on the Arduino and press the pause button and the Xbox pauses the video. It is so much easier now to control the xbox. What I would really like to do is turn it into a permanent device with maybe a touch screen and learning capabilities. Then it would be just like one of the logitech 100 dollar remotes. As of right now it runs on my breadboard. The infrared led is controlled with a library from the experimental branch of Ken Shirriff’s IR library. My version of the library also includes the ability to control Panasonic devices. I previously used it to control my 50″ Panasonic. The library uses the pwm output of timer 2 on the arduino, which on the mega is pin 9. Ken’s blog says pin 3 but that is for the Arduino Uno. The circuit includes a transistor because it is drawing more current than a pwm pin can supply. I didn’t have any low value resistors, so I hooked four 220 ohm resistors in parallel. I also modified the Keypad library from the arduino.cc playground to work with my old non-matrix keypad. Both modified versions of the libraries are available on Github here KeypadSimple and here IRremote.
Here are some pictures of it wired up on the breadboard. Click on any of them to get a close up.
I have been dabbling in cryptography for a while now and recently I got into random number generators. I found out that crypto libraries use random number generators all the time. You would have to be able to keep the output of the library unpredictable to ensure security. They do that mostly withÂ pseudoÂ random number generators. In other words they use an algorithm to generate the random numbers. These algorithms take a seed value to start the sequence and then only go for so long before the sequence repeats itself. So by using a true random number generator you can ensure that the output of the crypto library is kept secure.
I wanted a random number generator for my own use and I came upon a page on Rob Seward’s blogÂ for a random number generator using the arduino as the hardware interface. The board works by taking the noise that you get from running the pn junction in reverse breakdown mode. Then amplifying it through two stages and sampling it with the Arduino’s ADC. I don’t have an oscilloscope so I don’t know what the noise distribution looks like. However, I have collected the random output on a computer and ran it through a basic entropy test. The output of ent.exe fromÂ http://www.fourmilab.ch/random/Â looks pretty good.Â This was done on a 5MB file so I imagine if I get more samples the chi squared distribution would increase as well.
C:\Apps>ent -b random.dat Entropy = 1.000000 bits per bit. Optimum compression would reduce the size of this 41943040 bit file by 0 percent. Chi square distribution for 41943040 samples is 0.00, and randomly would exceed this value 95.89 percent of the times. Arithmetic mean value of data bits is 0.5000 (0.5 = random). Monte Carlo value for Pi is 3.141912514 (error 0.01 percent). Serial correlation coefficient is 0.000081 (totally uncorrelated = 0.0).
Here are some pictures of theÂ peripheralÂ board I put the circuit on.
Here are some pictures of it connected to the Arduino.
Here is the code I used for the Arduino. I made quite a few modifications to it, most notably I transformed it into libraries so you can use it in your own code. The code should be up on GitHub shortly, but if not it means I am still tweaking it.
A few months back decided to try out Visual Studio 2010 which uses version 4 of the .NET Framework. So I proceeded to install everything and after a few reboots everything was done. However my boot process was no longer showing me its race cars and rockets. No, it was more like turtles and slugs. The startup application loading process would stop halfway for about 2 minutes and after that everything would start loading again. What was weird was that the windows firewall built-in to Windows XP, my anti-virus, and networking all would not load. Of course after the initial 2 minutes of wondering whether Iâ€™m going to have to install the OS `again`, everything proceeded normally. So I did what I normally do when things act up. Which is dig in the forums, blogs, and general internet. Eventually I found on my own that the new version 4 of the NGEN service was to blame. For some reason it was failing to load or something and was holding everything else up in the process. After googling some more and turning up empty I decided to just disable the NGEN service at startup, only starting it after everything else had loaded.
Recently I found some new forum posts from August that described using the command â€œngen updateâ€ from the directory â€œC:\Windows\Microsoft.NET\Framework\v4.0.30319\â€. After waiting for what seemed like forever, I set the NGEN v4 Service back to Auto so it would start at the next boot. I rebooted and logged in and to my amazement everything was fixed. No disabled firewall or anti-virus and the network was immediately available. It ran just like it was before when the service was disabled but without the 2 minute wait times. So Iâ€™m very happy to have this problem fixed. Just another bug and another day.
In recent months there has been some buzz about SSDs, otherwise known as Solid State Drives. Performance from some of these drives is better than their mechanical counterparts. With access times in the nanosecond range its no wonder they appeal to speed junkies. But for the rest of us who either donâ€™t have the cash or canâ€™t upgrade an older machine. For example, that old IDE laptop you got sitting around. Fortunately there are some things you can do to give your old clunker a little more zip. One thing is to defrag your hard drive. Before I found my current defragmentation program, I used Defraggler from Piriform. It however was too slow for me. It would move a few blocks and then sit there and think about what to move next. Iâ€™m not really a waiting kind of person. So I started looking for something new. Thatâ€™s when I found Auslogics Disk Defrag.
Auslogics Disk Defrag is much faster than Defraggler and does a lot more. It is able to defragment multiple disks at once and it has an auto defrag function to defrag the hard drive when the computer is idle. Now I know this function is built-in to the windows defragging program, but with Auslogics you can specify the parameters for idleness. On my machine there is always a program running that occasionally uses more than 10% of the CPU, which is what windows considers idle. This causes the windows auto defrag to never run so having the option enables me to fix that problem. The drive map was neat but not to much different from Defraggler. However you can change the color theme to match another program. Since I was used to my old program I chose the Defraggler theme.
The only downside to Auslogics Disk Defrag is that it has some advertising for their other products in the program. The system health function doesnâ€™t actually do anything that I can tell. I think it just spits out a random number to get you to download their System Cleaner program. I use CCleaner for that, which is a great program from Pirifrom.
So if you have an old clunker like me and are looking for ways to put some umph back into it without dropping some cash for an upgrade. Then Auslogics Disk Defrag is a free and fast alternative. It does wonders for my virtual machine disk files. You can download it at http://www.auslogics.com/en/software/disk-defrag/