Wow. Heady stuff! Watch the BRI manifesto.
Random bleatings about technology misunderstood, misused, misunderestimated, misappropriated, or just plain missing.
Friday, April 19, 2019
Your Blockchain News Update
Wow. Heady stuff! Watch the BRI manifesto.
Friday, February 24, 2017
Cloudlbleed
The Cloudbleed Story:
https://www.forbes.com/sites/thomasbrewster/2017/02/24/google-just-discovered-a-massive-web-leak-and-you-might-want-to-change-all-your-passwords/#1848cf543ca3
...which refers to the finder of the bug, Tavis Ormandy, and this blog post:
https://bugs.chromium.org/p/project-zero/issues/detail?id=1139
And Cloudflare's announcement, which includes many technical details worth reading:
https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/
... which lays out the root cause (sigh)
/* generated code */
if ( ++p == pe )
goto _test_eof;
The root cause of the bug was that reaching the end of a buffer was checked using the equality operator and a pointer was able to step past the end of the buffer. This is known as a buffer overrun. Had the check been done using >= instead of == jumping over the buffer end would have been caught.
Incidentals:
What is Google Project Zero? And why does it exist? Pretty fascinating, actually:Project Zero is the name of a team of security analysts employed by Google tasked with finding zero-day vulnerabilities. It was announced on 15 July 2014. [wikipedia] https://en.wikipedia.org/wiki/Project_Zero_(Google)
The Wikipedia summary is definitely worth a read.
And the Project Zero blog:
https://googleprojectzero.blogspot.com/
#cloudbleed #cloudflare #GoogleProjectZero
Tuesday, February 21, 2017
An impressive-looking Apple ID phishing page
There is something clearly wrong here...
It's one of the more clever phishing attacks I've seen recently.
Looks pretty real, doesn't it? That's because it is a complete copy of the real Apple page:
In case you wonder, the real page https://iforgot.apple.com looks like this:
Now I'm going to report this as a phishing page at
https://safebrowsing.google.com/safebrowsing/report_phish/?hl=en
This exact attack has been around at other addresses, for example here.
Sunday, April 10, 2016
Your code as a Crime Scene
Code, Crime, Complexity: Analyzing software with forensic psychology | Adam Tornhill | TEDxTrondheim
A video worth watching.
Saturday, April 25, 2015
Unit Test of Embedded System Code
Manifesto: Unit Test of Embedded System Code
And why not give my efforts a grandiose name?
What does it mean to test embedded code?
Testing once is not enough
Consider functional test hardware as part of the original system design
Add a C++ test class to every device driver
Mock up data to test algorithms
Test all boundaries
Catch all exceptions and at least report a unique code
Use a C/C++ documentation tool
Wednesday, February 18, 2015
Crawling up the Linux and Python Learning Curves
- It helps me think it through on a deeper level and understand it better if I can explain it in complete sentences.
- My experience might be useful to others. The blogs I have read about other setup experiences have been very valuable.
- It's my first attempt to give something back to the open Linux community, which has made possible an amazing collection of software and resources.
- So I don't forget what I have done, and why.
- To share with attempts to start a local Python For Kids programming group, starting with my almost-13 year old son.
Over a year ago I set the goal to learn Linux and Python. Why? Because Linux servers pretty much run the world. Even little off the shelf NAS systems such as those by Synology (I use them) are running Linux. The more-or-less preferred Linux admin language is Python, so it ships with all standard Linux distros, even small ones like on Raspberry Pi and Beaglebone Black.
Plus I am in the midst of a commercial project using embedded Linux on a Beaglebone Black, and at the core of it, the Linux on it is pretty much the same as other Linux.
For over a year now, I've been running Ubuntu (now 14.10) on a Lenovo x131e netbook, with a Core i3, 8 GB RAM, 320 GB HDD, 1366x768 TFT screen. It is actually dual-booted with Windows 7 Pro but it has been months since I've booted into Windows. I need to do that and catch up on Windows updates. But I digress. This is the system I take with me every day when I teach at Salt Lake Community College, so I use it to log into the wireless network there. I use Libre Office to edit class materials. I use Chrome and FF to acces the Canvas instructional framework. So far, I have found it as easy to use as Windows 7 Pro. Some things are actually better: battery life seems a little longer, connection to Bluetooth mice (Logitech and MS Sculpt) is more reliable. Boot times are shorter. Ubuntu 14.10 seems a little less stable than 14.04 LTS: occaisonal lock-ups, and sometimes I start an application (e.g. Chrome) but it can't create a window in the display even though it's running (htop or System Load Indicator show it active). But overall, at least as stable as Win 7 Pro.
I travel around locally a lot and find it easier to connect to numerous WiFi points in Ubuntu. Also I tether to Samsung Relay 4G phone, and this is painless: the phone appears as a wired Ethernet connection to Ubuntu, and data speeds are at least 2X higher on average than using the phone as a WiFi hotspot.
So, spurred on by this success, I have built up an AMD quad-core A8-5600K desktop with a 120 GB SSD, 1 TB HDD, 8 GB RAM, etc. It also dual boots Windows 7 Pro and Ubuntu (now 14.10). It's now my second desktop system.
Then a few weeks ago I purchased a Lenovo Yoga 11e netbook with quad-core Intel 2930 CPU, 4 GB RAM, 128 GB SSD, and 1366x768 IPS multi-touch screen. It came with Windows 8.1 Pro but I have pulled that SSD and replaced it with a Sandisjk 128 GB and loaded Linux only on it. I'm typing this on that system, running Ubuntu Mate 14.10. An MS Sculpt BT mouse is connecting very reliably. But the touchscreen doesn't work at all, and the trackpad is so-so. But the screen is great: bright, wide viewing angles, good color, but glossy and shows all fingerprints. Also suspend doesn't seem to work correctly at the moment. I'd like to get all these things sorted out.
I'm making some Google docs as I go and will post view-only links to those here.
About me:
- Not a windows-hater. I like Windows 7 Pro for the most part and use it daily for my work. Many programs I need to use (Altium Designer for one) are only Windows. USB on Windows is a nightmare: I use many development boards with USB interface and they all seem to assume they will be the only USB device installed on my computer. Wrong. Too often, clashing ensues. It can be a real headache, requiring uninstalling and rebooting, ad nauseum. Still, USB in Windows 7 is a lot better than under XP.
- Not in love with Windows 8.1 since I don't want my PC to look like a tablet or phone, and I don't want to connect with the MS cloud. I don't spend all day on social media or gaming. I don't want a dumbed-down "friendly" screen of tiles: I was fine with the Windows 7 GUI. Is USB a lot better under Windows 8.1? I don't know.
- I'm an electrical engineer with background in hardware design of mixed-signal (that means digital and analog) systems, including embedded controllers.
- Embedded Java enthusiast, though sadly in the US that market has pretty much dissipated due to neglect and stupid licensing by Sun ($100K to make Sunspots commercially? Really? No wonder there were zero takers). My company, Systronix, produced TStik, JStamp, JStik, SaJe, and other (at the time) ground-breaking embedded Java systems.
Monday, February 16, 2015
Wired Ethernet at Home: Still a Great Idea
Why is (wired) Ethernet better than WiFi?
- More secure, if you care about that. Much harder for someone to sniff your wired Ethernet.
- Much better throughput. 1000BaseT is over 4X faster than 2.4 GHz WiFi and 2X faster than 5 GHz.
- No channel congestion. Use a sniffer (e.g. Fing or WiFi Analyzer) and it's astonishing how clogged 2.4 GHz is. No one else is on your wired Ethernet but you.
- Easier management of guests: they just plug in. No need to enter their MAC addresses into a table of allowed WiFi clients.
- Wire is cheap: 1000 feet of Belden UTP Cat 5e is $136 online. Jacks and other hardware are reasonable too. You do have to wire up the jacks and connect to switches. But this is easier than you might think. If I can do it, so can you.
- Those damn wires. It is a bit of a hassle plugging in. WiFi is so easy. But like too often eating fast food, easy does not mean best or even good.
- Those damn wires: retrofitting into an existing building can be a hassle. In my case, we are tearing out most of the walls anyway so we have a golden opportunity.
- Phones, tablets, and even some netbooks don't have an RJ45 jack, so they have not choice but WiFi.
- No switches, jack, routers to deal with. Well, at least fewer than with WiFi.
Tuesday, January 27, 2015
Fuel Surcharge???
source: https://ycharts.com/indicators/us_diesel_price
Thursday, October 16, 2014
Connecting an un-updated Kindle Keyboard to Windows 7
- Turn off WiFi on the KK. I don't know if this step was necessary, but it was recommended by others.
- Unplug USB between the KK and the PC
- Power off the KK by holding the power slider to the right until the screen blanks
- Restart the PC
- Connect USB between the PC and the powered-off Kindle.
- Woohoo! The Kindle came up in a different screen advising about using USB to charge while still being able to read or use the Kindle store. And the PC recognized the USB device as a Kindle.
- I dragged and dropped the Kindle 3.1 update onto the Kindle device in Windows Explorer, the file copied, then I ejected the Kindle and uplugged the USB cable. Amazon has instructions for this.
- Start the software update on the KK:
- From Home, press the Menu button, and then select Settings.
- Press the Menu button, and then select Update Your Kindle. This option will be grayed out if the most recent update has already been installed or if the file transfer was not successful.
- Select OK to perform the update. Your Kindle will restart twice during the update. After the first update, you will see Your Kindle is Updating.
Monday, July 28, 2014
Will that be paper - or not?
![]() |
| Paperless Whitepapers then? |
But then, in the nick of time I was saved from making a horrible mistake by the next email.
![]() |
| Why is it not surprising that the Government version of InformationWeek tells me I can't get rid of paper? After all, it works sooo well for Congress. |
Tuesday, September 24, 2013
JavaOne 2013: (Keep On) Making the Future Java
Web Fundamentals by James Ward (at 8:30 this morning, groan) was fabulous. In a dense hour he laid out what hours of googling and reading books (online and print) has failed to give me. He works for TypeSafe and they have some nice looking web tools which I am now inspired to try. It's a 200 MB download... good thing the wireless works.
Sun SPOTs are dead. When current stock is gone no more will be made. This is the final chapter in a sad story. SPOTs could have been the Arduino for the Internet of Things. But at a commercial license fee of $100K, what can you expect? Suppose Arduino had a $10K license fee for commercial use? It would have flopped too. Now SPOTs are open source, but no one seems to care. There are better options out there: you guessed it, mostly based on Arduino. $400 gets me two wireless SPOTs and a base station, or for $75 I can get a pair of Arduino WiFi Spark Core devices.
You never have to go more than half a block in San Francisco to get a decent latte. And at JavaOne you can get as many as you want for free in the "Buzz Shack". Someone got this right!
This is one aspect of Arduino which helps make it popular: the whole Arduino IDE and its libraries are open source, and since the code is all standard C/C++ and the underlying compiler is GCC, how badly can you be stuck in the unlikely event the Arduino.cc developers abandon further work? If we only have access to the binary releases of the JVM for ARM, what do we do if Oracle abandons the effort?
Saturday, June 2, 2012
mSecure: Finally a password manager for Android (and iOS) with multi-PC (Mac and Windows) synch
Check it out at https://msevensoftware.com/ where you will find iOS, Android, Mac, and Windows versions (3.1.0). Synch is via (secure) WiFi and I am successfully using Android 2.3.4 (mSecure 3.1.4) and Windows 7 pro 64-bit on two PCs.
Entries are called Items and there is usually a note field where you can enter freeform text. Groups are the higher-level categories such as Business, Website Logins, and Personal. Types are the lower-level categories such as Bank Accounts, Credit Cards and Web Logins. Yes: website login entries which are not strictly Business or Personal will be Group "Website Logins" and Type "Web Login".
You can easily edit existing Groups and Types. You can also add new Groups and Types.Oddly missing is a "Password" type, so I added that.
On Android, the database is stored on SD card, so you have a way to easily move to another device. I recently had to do that when my phone flaked out and got replaced.
Yes there are other password managers out there. I was using secForms but they failed to work on Android 2.3.4 and now seem to be out of business. Others don't claim to support multi-PC synch or lacked a decent desktop PC version altogether. KeePassDroid had issues with customization and a UI which I found awkward. Why did it take this long to get back to what I had with TopSecret on Windows and Palm OS devices 10+ years ago? I think they call that progress.
Monday, January 16, 2012
Highly Recommended: Bullzip PDF printer
Tuesday, October 25, 2011
My Review of Seattle Sports H2Zero Diamond Dry Bag - Large - Special Buy
A clear diamond-shaped window in this large dry bag makes it easy to view its contents.
Good bag for quick-grab raft/kayak/canoe
Pros: Sturdy clip, Waterproof, Strong Material, Good Capacity, Good size, Surprisingly durable
Best Uses: Paddling
Describe Yourself: Casual/ Recreational
Was this a gift?: No
Had this bag 2+ years and used it on several multi-day trips. It has held up better than I expected. No leaks or holes so far. Good for holding mid-size camera, glasses, keys, other small things that you want easily reachable through the day. Transparent window is handy.
(legalese)
Sunday, June 19, 2011
My Review of NRS Cargo Net with Straps
Our cargo net is one of the most versatile rafting accessories on the river. It can be secured over the top of your gear to keep it in the boat, or hung between two crossbars to create a cradle for loose gear. Built with a border of 2" webbing for strength and strap on points for securing misc...
Definitely worth it for truck and raft
Pros: Fits full size pickup, 9 straps are great, Seems plenty sturdy
Best Uses: Rapids Paddling, Truck on way to river, Rivers
Was this a gift?: No
This was purchased before a high water Green River and then a Yampa trip. We also used it on the pickup bed on the way to the river. It seems very well made, and the large size is just right for a full size 8-foot pickup bed. It makes securing gear on a 16-17' raft a lot easier although more D-rings on the raft would be nice. It's a little big for a raft not really heaped up but I just rolled up the edges. Way better than the cheapo bungee-type net I had gotten at a tool outlet. Seems like it will last a good long time, and it was great to have nine straps included. Someone at NRS thought this through pretty well.
(legalese)
Wednesday, June 15, 2011
I drank the Apple Kool-Aid: iPod Touch 4G: what? Only synch to one desktop?
Wednesday, March 9, 2011
Hardware UARTs under Windows 7: Yes, it is possible
Similarly, we have the need for a true hardware IEEE1284 parallel port with EPP mode to use with ;egacy JTAG adapters for Xilinx and legacy hardware such as JStamp and JStik.
BUT most new PCs have only USB (and things like RS232 handshaking signals are sometimes not properly functional on USB virtual COM ports) and Windows 7 no longer includes Hyperterminal (no great loss IMO). So the common (mis)perception is that hardware UARTs and software to access them are difficult or impossible under Windows 7. Ditto for IEE1284 true parallel ports with EPP mode (not just printer-capable ports).
Today I am building new Windows 7 64-bit PCs and wanting a solution for this, along with many of our customers. I'm using the MSI 890FXA-GD70 motherboard
And I am happy to say that real hardware UARTs are possible under Windows 7.
Here is the Rosewill RC303 at Newegg. This under-$20, PCI-bus card has two serial and one parallel port. So far I am able to use the hardware UARTs with RealTerm. I will add to this with more information as it develops.
Monday, February 28, 2011
Eudora 7.1.0.9 under Windows 7, vs Eudora OSE
Friday, October 22, 2010
Microsoft .NET Security Update Fail
So Windows Update keeps wanting to load a Security Update KB2418241 for .NET 2.0 SP2 and 3.5 SP1.
But it fails every time with unhelpful messages.
Great. So what to do? Well, it turns out I cannot uninstall, repair, or reinstall .NET 2.X using Windows Installer or Windows Install Cleanup. Swell.
So it gets me wondering: what uses any of these .NET runtimes? Why can't windows tell me?
Perhaps by deleting the .NET 3.5 SP1 I can wait to see what fails: Evernote 3.5 crashes ungracefully with no helpful message at all. Reinstalling it forces a reinstall of the missing .NET 3.5 SP1. But I still can't install the Security Update.
KB2416473 is a Security Update for .NET 3.5 SP1 only - will it install now? Yes.
.NET 2.0 shows up in Add/Remove Programs, but cannot be uninstalled:
The obvious thing to do is look at the article URL (which is not clickable and can't even be selected for copy and paste... aargh.... http://support.microsoft.com/support/kb/articles/q312/5/00.asp which redirects to http://support.microsoft.com/KB/906894 but sadly this is no help. I am advised to "To resolve this problem, uninstall the .NET Framework 2.0 Service Pack 1 before you install the .NET Framework 2.0." but this is not possible on my system.
Time to try the registry? I tried to delete the values in LEGACY_CLR_OPTIMIZATION_V2.0.50727_32 but could not. So instead I searched for all .Net references and found a few to .Net 2.0 such as
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ASP.NET_2.0.50727 which has Performance->Library value c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_perf.dll.
So all the keys using .Net 2.0 include
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\aspnet_state\Performance
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\clr_optimization_v2.0.50727_32
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\.NET Runtime 2.0 Error Reporting
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\.NET Runtime Optimization Service
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\ASP.NET 2.0.50727.0
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\SyncToy
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\System.ServiceModel.Install 3.0.0.0
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\WMI.NET Provider Extension
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\System\MSDTC Gateway
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\System\MSDTC WS-AT Protocol
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\aspnet_state
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\Root\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\ASP.NET\Performance
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\ASP.NET_2.0.50727
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\aspnet_state
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\aspnet_state\Performance
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\clr_optimization_v2.0.50727_32
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\.NET Runtime 2.0 Error Reporting
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\ASP.NET 2.0.50727.0
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\Business Connectivity Services(Legacy Provider)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\idsvc
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\SyncToy
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\System.ServiceModel.Install 3.0.0.0
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\System\MSDTC Gateway
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\System\MSDTC WS-AT Protocol
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\Root\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\ASP.NET\Performance
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\ASP.NET_2.0.50727
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\ASP.NET_2.0.50727\Performance
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\aspnet_state
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\aspnet_state\Performance
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\clr_optimization_v2.0.50727_32
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application\.NET Runtime 2.0 Error Reporting
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application\ASP.NET 2.0.50727.0
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application\Business Connectivity Services(Legacy Provider)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application\idsvc
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application\SyncToy
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application\System.ServiceModel.Install 3.0.0.0
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\Application\WMI.NET Provider Extension
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\System\MSDTC Gateway
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\Eventlog\System\MSDTC WS-AT Protocol
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_CLR_OPTIMIZATION_V2.0.50727_32\0000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASP.NET\Performance
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASP.NET_2.0.50727
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASP.NET_2.0.50727\Performance
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state
OK this is getting tiresome and I can see a pattern here.
In fact, 2.0 seems to be installed at C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727, and likewise C:\WINDOWS\Microsoft.NET\Framework\v3.0
What Next?
Google for some other solution such as
http://blogs.msdn.com/b/astebner/archive/2005/04/16/408856.aspx
Tuesday, September 21, 2010
JavaOne 2010 San Francisco
Oracle knows how to throw a party without scrimping!
Even in JavaOne's heyday I don't recall things being this well-planned, at least as far as facilities, food, and drink are concerned.
...but you kind of expect that from the man who spearheaded the development of the A17 trimaran which won the 33rd America's Cup race and is capable of sailing at up to five times the wind speed!
Shown here: BMW/Oracle racing team with the Cup, apparently repaired after the sledgehammer attack by a Maori tribesman (really).













