Showing posts with label Computers. Show all posts
Showing posts with label Computers. Show all posts

Sunday, May 29, 2016

The Shape of Things to Come

My original concept for Havoc was a tabbed interface consisting of a Calendar, a Note Board and Photos. In fact, the first name for the application was not Havoc, but simply The Noteboard as I thought that would be the focal point of the application. This ended up not being the case. I actually still have no idea what will go on the Noteboard tab or how I will get it there. As I played around with the interface and worked on getting a hardware and software platform nailed down, it began to expand.

This all came about as a result of how I wanted the interface to work in the first place. At its core Havoc is a calendar; you put in information and it reminds you of it in a couple of ways:
  1. You can look at the calendar and see what is upcoming.
  2. You can set reminders so that Havoc lets you know in advance that some appointment or event is on the horizon. My thought on this one was that when you are not in some sort of contact with the interface, it would go into a screen saver mode. This would not be a real screen saver (which would be deactivated), but rather another screen of Havoc. I would show you today's events and any reminders that had become due. They would float around the screen in very large text and maybe be paired with s random photo from your collection. 
  3. This is where things began to get complicated and fun, Havoc would know when you walked into the room and would wake up and tell you of any reminders that were due. This adds the need for some sort of motion detection capability and the need for havoc to be able to speak. Motion detection would require some sort of sensor, or a camera. Adding a camera to the package was intriguing, as that might open up other opportunities.
  4. Appointments or events could be assigned a scope, which would be one or more people and reminders could be sent to that person's/those people's cell phone(s). This adds the requirement that the Havoc database be in the cloud and accessible through web services. This also meant that I would be writing an Android app to go along with my Windows desktop app. I figured that I might as well try my hand a Xamarin coding and for the heck of it also write the app for iOS and Windows Phone.  
This gave me a lot to think about and a lot to learn about. How cool could I make this? Just what kind of libraries are available for free (the cost I felt I must pay) and just what would they be capable of doing?

If I could know when someone walked into the room, could I also know who they were? Could I tailor Havoc's responses based on facial recognition? Could I even do facial recognition?

Thursday, May 26, 2016

Speech! Speech!

Can I work with Raspbian? That was the question I last posed.

The answer turned out to be "Yes" and "No."

Can I work with it, can I create software that would run on Raspbian? Of course I could. Writing software is what I do. Could I write Havoc for Raspbian? Ah, that was a slightly different question. I went to work on this immediately and found Lazarus.

Lazarus is a Pascal derivative for Unix that is very much like the old Borland Delphi language, which was that company's answer to Visual Basic, which had some success in the 1990s. I had written a few things in Delphi over the years, so finding Lazarus seemed like a dream come true.

I had a couple of problems though.

First, Havoc relied on the Microsoft handwriting recognition API, something that did not exist in Raspbian and something I really couldn't just fake. A key component of Havoc was that there be no external input devices, no mouse and more importantly, no keyboard. This means that you would have to write on the screen with your finger and that writing had to be converted to text. Microsoft is really good at this.

I know what you are thinking, why not just use an on-screen keyboard? Ends up, I do offer that in Havoc. If you don't like the handwriting controls, you can tap a button and the on-screen keyboard will appear, but I didn't want that to be the first option. So I searched and found no handwriting recognition for Raspbian that I could tie in. This does not mean one does not exist out there somewhere, it just means I could not find it in a considered amount of time.

My second issue was that Havoc was not looking too much like Havoc anymore. Havoc was no longer just a touch interface, Havoc would listen when you talked to it. This was handled through the magic of the Microsoft Speech Recognition Library and works pretty well. By this time I had already tied some basic speech functionality into Havoc and wanted to keep it in. I found no real parallel to the Microsoft library for Raspbian, though I bet with a little more searching I could have found something that would work. Only, I could not see the point of continuing to look. I just didn't have faith that Raspbian could handle the work I needed Havoc to do.

So, I put my Raspberry Pi in a cabinet and went in search of another small, powerful computer. Luckily for me, there are a number of them on the market, though I had never heard of them.

Sunday, May 22, 2016

IoT Idiot!

One of the reasons I went with a Raspberry Pi for my little project was the claim that it ran Windows 10 IoT. Now I had no idea what IoT was, but I knew Windows 10 and I could program for it. I quickly found out that I would need some new ideas though if this was to work.

Once I had read that the Pi supported Windows 10, I had started writing my code, but I quickly learned that IoT, the Internet of Things, did not have a Windows desktop. This meant that my desktop application would not run on it. I would need to rewrite my code as a Windows Universal application.

Now I had wanted to try my hand at Universal apps for a while (think of them as the Windows Store applications, or applications for what they once called Windows Metro), but had never had the reason to try. So, when I read that, I made a tentative start at rewriting my application as a Windows Universal app, but never got real far. The learning curve into Universal apps is a little steep for those of us who have only written desktop or web apps in the past. Also, I knew that anything I wrote was a temporary measure as I had read that Windows 10 IoT came with its own version of Visual Studio and that you should create the application on the device, so the work I was doing was more or less getting a feel for the environment.

I was told that Windows 10 Iot came on the NOOB (New Out Of the Box) tools that would ship with the Pi, but this was not so. When it arrived, the only OS my Pi came with was Raspbian, one of the many flavors of Unix that run on the Pi. I would have to download Windows 10 and have it installed on my SD card in order to run it, only, I didn't have another SD card and I didn't want to destroy the only OS I was sure ran my Pi, so I ordered a new SD card from Amazon and went back to the waiting game.

In the mean time I hooked up the Pi, as it was, to my new monitor, used one of the USB ports to add the Touchscreen capabilities and played with it a bit. For a $39 computer the Pi is pretty awesome. I could play games, surf the web, do all kinds of things on it.

Finally my SD card arrived and I burned Windows 10 IoT onto it and booted up Windows 10 on my P1! Yay! Or so I thought.

It didn't seem to do anything but show me a static page with non-functioning links. Where was the Visual Studio I had been promised? Where was, hell, anything?

Seems the article I had read about VS being a part of the OS was, how shall we say, bullshit. Not only was Visual Studio not included, IoT could not run it as...wait for it...it's a desktop application!

This was when I learned the real limitations of IoT. Seems it has no program loader, which means in laymen's terms, you can't point it to an application and have it run it. Seems the OS has to boot into your application and it is the only application that will run. I could see the serious limitations beginning to show in trying to run Windows IoT on the Pi.

Can I work with Raspbian?

Friday, May 20, 2016

Can I have some Pi with my Havoc?

So the first thing I needed to do was figure out from an engineering standpoint, what I was going to make my calendar out of.

First, let's be clear here; I am not making a product to sell, I am making something for my home. Given that, money is not really an object here, so I don't have to look at the economics of building something that I can market at a price that would attract buyers, which is a good thing because my first hardware decision was to use a 21-inch touch screen. Anyone want to guess how much a 21-inch touch screen cost? Go ahead, Google it; I'll wait till you are done.

See? Not gonna be selling too many calendars when the price of admission begins with one of these guys. I was able to secure a refurbished 21-inch HP monitor for a little over $200 with tax and shipping. It is an oldie, still has the Compaq name on it, but it works fine and has a very nice picture.

Now you may wonder, why a touchscreen? Well, no keyboard or mouse required. "But how can you enter items into the calendar?" you ask. Well, I had a plan for that, but more my plan next time.

Second, I know that for around $600 I could have just gone out and bought an HP touchscreen computer and been done with it, but where is the fun in that? This is not a road we even need to consider going down.

So given that, I needed to find something to drive my big monitor and I looked to the new version of the Raspberry Pi to do that. The Raspberry Pi, for those who do not know, is a small computer that costs $39. Now there is some real cost savings!

I had been looking for an excuse to work with a Raspberry Pi for a year or so now and this seemed like a good opportunity to do so.  The latest version had just come out and it was faster, had more memory, built-in Bluetooth and Wi-Fi, four USB ports, Ethernet, SD card slot, and HDMI. Best of all the new version supported Windows 10 IoT.

Also, considering that it would fit in the palm of my hand I figured it was small enough to tuck in somewhere back behind my monitor. Being a Microsoft programmer by trade, this seemed right up my alley, so I ordered one.

Wednesday, May 18, 2016

Days of Wine and Havoc

Years ago my wife bought this calendar holder, a wooden base that attached s to the wall of our kitchen and into which she can slide a new calendar each year. Not an earthshaking concept, but one with a few flaws in it.

First, I don't know about you, but I get tired of seeing the same picture above the calendar for an entire month. This year it might be glasses of wine or fields of grapes and next year it might be puppy dogs or unicorns. This is not something I can't live with, but something that just mildly bugs me.

Second, my wife works in the medical field, which means her days working are scheduled months in advance. In order to keep track of them, she tacks another calendar to the bottom of her calendar holder and writes her work days there for the months in advance, then transfers them to the real calendar when the month rolls around.

Third. I have no idea what is on the calendar at home when I am not there and neither does she. We could use an online calendar like Google Calendar, but that would just mean reentering things twice.

Some may see these as a minor nuisance, but for me it was enough to see if I could build us a calendar that would eliminate all of these issues.

That was the germ of what is turning into Havoc, my latest obsession.

So to be clear, I set out to build a wall calendar with a touchscreen interface that is accessible from our phones. Not a small undertaking, but something that has morphed over the past few months into something much more.


Sunday, May 15, 2016

Wreaking Havoc

Decades ago I was at COMDEX (the Computer Dealers Expo) in Las Vegas and I saw one of the earliest implementations of home automation that you could actually purchase. Over the years I have forgotten almost everything about the product I saw that day, but I clearly remember thinking it didn't go far enough. I thought though it was a good start, it needed to be voice activated and it wasn't. I envisioned my own product and what it could do and how it could work. Of those long ago musings the only thing I really remember is the name I had for my product: HAVOC, the Home Automation Voice Operated Computer.

Well it is now decades later and home automation is everywhere. I own an Amazon Echo and, if I wanted to, I could have it automate nearly every aspect of my home, that is if I wanted to spend the money on expensive wireless devices to replace cheap standard ones. For the most part, I don't want to do that.  But, that doesn't mean I am not always looking for something to automate, just for the heck of it.

OK, that is not quite the truth; it is not "just for the heck of it." I write software for a living. I've done so for over 30 years. I have lived in a small corner of Microsoft development for over 25 years and made a good living at it as there are a vast number of companies who do the same. So if it is Microsoft WinForms for your desktop computer or Microsoft WebForms for your website, I am all over it. But I like to grow as a developer and sometimes that means leaving my comfortable corner and venturing out to something else, or simply expanding the environ of my small corner, making it a little bigger. So, I have a real reason for doing this, it expands my toolkit for the work I have chosen as a career.

A few months ago I started looking at automating something I have been thinking about for a few years now and it is slowly morphing into a Havoc, though the acronym is not quite what I envisioned more than 20 years ago..


Thursday, June 19, 2014

Loan Explorer Logo


Years ago, before they were taken over by the Feds, I worked for IndyMac Bank in their Construction Lending department. I worked on a piece of software called Loan Explorer, which managed big loans for construction companies. Blowing my own horn here, but Loan Explorer was the best Construction Loan processing system on the planet, and I was not the only one who thought that. When Fannie Mae was looking for a construction loan package, they went to all the banks to see what they were using. They ended up wanting to buy Loan Explorer; IndyMac didn't sell it to them. Anyway, as each new version of the product would arrive I would work on the code, the training docs, the help files, the manuals and yes, the logo. For my last version, Loan Explorer 5.0, I created this animated logo which was presented in a splash/logon page every time the program was loaded. I kind of like it.

The spinning numbers were created with Swift3D software from Electric Rain. That was then merged in CoffeeCup Firestarter to created the finished logo. For the final product I altered the colors and put it on a gray background, where it looked something like this:

Saturday, March 22, 2014

...You Know I Love You!

When IBM was selling its own windowing operating system, I always thought this should be their theme song in their commercials. Listen and just replace "Oh it's true" with "OS2" and you will see what I mean. And I'm sure they could have gotten Flo and Eddie to record it for them.


Saturday, March 02, 2013

Surface Pro


Guess what I got on Thursday? So far I could not be happier. This is looking to be the best damn computer I have ever owned. This is a game changer for Microsoft. No wonder the Apple people were trying to piss on this before it came out; it... puts their products to shame. I can run over 40,000 Windows 8 apps, 675,000 Android apps (through Bluestack) and any Windows program I own all on one device. There is nothing on the market that comes close to this with a touch or keyboard interface and astonishing handwriting recognition. If it can read my scribbles (and it can) it can read anything.See More
 


Monday, January 09, 2012

Slashed!


I had said a few days ago that I was able to remote access my Kindle Fire using Slashtop and that was true up to a point. The point where it was not true was when I left my internal wi-fi and went out into the wild blooming yonder of open access wi-fi. From there I could not get to my desktop. I searched the Kindle Fire Forum and found another app mentioned, TeamViewer and downloaded it.

Today, from my Dr.'s waiting room, I was able to access my home PC and work on my novel. Pretty cool. The problem I had with Slashtop was that it only saw my internalal IP address, not the external one being generated by FIOS. TeamViewer doesn't seem to have that issue.

Monday, January 02, 2012

All Fired Up!

I am all fired up, Kindle Fired up that is. My son bought me a Kindle Fire for Christmas and I have been giddy ever since. I've had it for over a week now but I am really just beginning to see the potential in the product.

Bezos should have come out singing, "I am the God of hell fire and I bring you FIRE!"

I bought a nice leather case for it with a stylus. That comes in handy when I want to use Autodesk Sketchbook Mobile. It will take some getting used to the stylus which is not nearly as easy to use as my Wacom Tablet on the PC, but will suffice for now.

It's Kindle, so all of my Kindle books are available to me for reading at my leisurere. Though not an e-Ink screen, I can still use the Fire as a reader while on the go.

I'm not really much of a gamer, never owned a gaming device, though I have played with my son's XBox 360 and Kinect a number of times, but I seem to be loading the internal memory with  games like Asphalt 6: Adrenaline, Back Stab and Madden 12, all of which play amazingly well on the Fire and for each of which I paid 99 cents. The graphics and the response of the machine are pretty damn amazing.

Video is another treat on the Fire. From YouTube to streaming full movies and TV episodes, the Fire is a smooth experience.

A few months ago I ripped all of my CDs to my PC and then moved all of them to the Amazon Music Cloud so that I could listen to them on my phone or at work. With the Fire I have access to my entire music collection.

A few months ago I gave my laptop to my step-son who needed it for work and so I went through November's NaNoWriMo without benifit of a way to go out and socialize while writing. I wrote my first novel using Scrivener for Windows and put my Scriverner data files into my Dropbox folder which allowed me to have access to them on my PC and my phone and anywhere else I had a Dropbox folder. Well, though not natively supported on the Fire, I was able to side load Dropbox onto the Fire, so my novel is now there as well. My problem is editing the files. The Fire does not have an editor for RTF (Rich Text Format) files, which is what Scrivener uses, so though I have access to them on my Fire, I still cannot edit them. Enter Slashtop!

Slashtop is a remote access app that allows me to have access to my PC desktop on my Fire. Utilizing Slashtop I have been able to work on my novel from my Fire. Not a perfect solution, but it does work and for the time being, that is enough for me.

So let's see if I can bottom-line this. I can surf the web, play amazing games, read my books, paint and draw, watch movies and TV, listen to my music and write my novel all from a $199 tablet, all for $300 less than the cheapest iPad. Only a complete fool would waste their money on the big Apple.

Wednesday, November 23, 2011

The Kinect Effect

I saw this commercial on TV twice in the past day or so and had to share it. It moves me. Ah Microsoft, what a great commercial and what a great technology. The Kinect is surely the "big-titted hit" it deserves to be.

Sunday, May 18, 2008

A SLIC Time

Hewlett-Packard’s purchase of EDS this week got me thinking about my time with Electronic Data Systems, or Ed’s Bar and Grill as some of the people there called it. I was just in the process of being made a manager at Amtec Information Services when we were purchased by EDS. The manager I was replacing, Giovanni Reynaudo, was the man responsible for me getting seriously into programming.

I had been employed as an editor at Amtec (and two other names the company had gone by) for a couple of years. During that time I had become quite proficient at writing EXEC, EXEC2 and XEdit macros, not realizing that these were programs. Giovanni spotted my work and one day asked if I would be interested in working on the coding of the proprietary typographic software that our company created. I told Giovanni that I didn’t know how to program and he told me that I did, that he had seen it. Long story short here, I became a programmer by name and occupation that week and within a year Giovanni and I were neck-deep in rewriting the SLIC and SuperSLIC languages in our own images. SLIC stood for the Symbolic Language for Illustrated Composition and it was an IBM 370 Assembler Macro language that ran on a number of IBM mainframe operating systems. SuperSLIC was what we considered the ultimate format-driven generic composition system.

When I took over the lead role in developing these two products, SLIC was about 7,000 lines of Assembler code and SuperSLIC was about 12,000 lines of code on top of that. When I left the company six years later, the software had more than tripled in size, doubled in functionality and ran 20% faster than when I had started working on it. SuperSLIC had three separate macro languages imbedded inside it and when I got hold of the software these languages were a shambles of inconsistency. I removed the inconsistencies and then worked on improving all of them.

You may wonder why one program needed three macro languages and it is a good question. In reality the program could have gotten away with only two. SuperSLIC was a two-pass composition system. The first pass created composed typographic galley: lines of type, paragraphs, illustrations, footnotes, etc. The second pass placed that galley into pages. While galley creation was a pretty straightforward process, pagination was a series of trial-and-error passes, filling a column, then another, then squaring them, then backing off space for footnotes, floating blocks of text/graphics or structure changes (from say two columns to three columns, etc.), then starting the page over with the building of the first column again and over and over.

Each process had its own macro language, which were different because they did much different things and saw much different types of data. There was a second galley macro language that could do just about anything, but it was harder to use that the main macro language which we called “structured editing.” The “unstructured editing” was very powerful, but very hard to implement correctly. There was only one form of “pagination editing.”

Besides bringing consistency to the macro languages, I brought new concepts as well. I added new commands to the languages, the concept of functions, then nesting of functions and a short-hand way of declaring multiple and or sequential search values. I made sure that everything I added was done modularly, so that a new functionality could be called and used by many different areas of the program or attached to many of the new and existing commands.

At every opportunity I looked for limitations and tried to remove them. For example, the language had seven or eight different types of floating blocks. One type would appear where it was encountered or float to the top of the next page. One type would only appear at the top of the next page. One type would appear where it was encountered or float to the top of the next column (if it fit). One type would appear where it was encountered or float to the bottom of the current page. One type would only float to the bottom of the page. One type of block was hard-coded so that it would only appear at the top of a specified page. One type of block would jump in front of existing blocks waiting to be output. I took all of the logic and mapped it to a new type of super block that could perform any and all functionality. Then I exposed this new block as a new command that allowed the user to mix-and-match the floating logic. This allowed for hundreds of different types of blocks to be created by the user, yet allowed all the existing blocks to continue working as normal even though internally they were being converted to the new super block format.

I’m actually very proud of the work I did on this software and I really loved working with the 370 Assembler language which was unforgiving but elegant and straightforward in nature.

Next time I get back to this subject, I will tell you about the biggest failure of my career and the day I showed up at work and waited to be fired.

Friday, July 06, 2007

iPhone: The Musical

This came down the TiVoCaster to my box this afternoon, courtesy of the New York Times. This is the kind of stuff you get daily from TiVoCast. Damn this is funny!

Tuesday, July 03, 2007

What's In a Name? II

So I open my ComicSpace page today and had to laugh. Click on the picture above to see the large version and check out the obviously context-sensitive ads being displayed on the site.

Saturday, June 16, 2007

What the Hell Is This?

I spent part of the morning cleaning out a portion of the garage with my wife. You never know what your going to find when you do that. In this case I found a docking station to a Dell laptop, but not for the Dell laptop I own and a cable modem, but we only had an Adelphia cable modem five years ago and this isn't it. Not only do you never know what you will find, you never know where it came from either. I have reason to suspect my son, but he never had a Dell laptop, though he might of had a cable modem when he was away at college last year.

Thursday, April 12, 2007

Black Screen of Death -- Part II

A couple of people have asked exactly what was the problem with my Dell XPS 410 yesterday. I realize now that I never really said. So, for those who care, here it is in a nutshell.

The problem was in the boot sequence. Now we don't know if the sequence was actually changed or if there is something wrong with the BIOS that is suddenly causing the problem. Whichever, it boils down to this: the first item on the boot sequence was the CD-ROM drive. It appears that the system refused to go forward to the next item in the sequence even though there was no disk in the drive. We moved the SATA Hard drives to first place and pushed the CD-ROM drive down to second, rebooted and we still had the same problem. We then moved Intel ARRAY to first, SATA to second and CD-ROM to third and the system booted just fine.

So, as I said yesterday, the problem is corrected, but we don't know what actually caused it in the first place.

Wednesday, April 11, 2007

A Black Screen of Death Day

I awoke this morning to the oddest message on the solid black screen of my PC. It said that I could only attempt to repair my Windows NT from the Windows NT setup disk. A couple of strange things here: 1. I was not attempting to repair anything. 2. This must be a really old message embedding in Windows XP, because I don't have Windows NT. 3. My system was running fine when I went to bed last night.

As I have mentioned before, I have a fairly new Dell XPS 410 and also as I mentioned before, doing diagnostics on the machine takes forever due to the dual 320GB hard drives in my RAID. Before going into diagnostic hell, I rebooted the machine a few times and always end up on the same error message, not even getting close to booting the operating system.

I rebooted to the diagnostic partition (one of the nice things about Dells) and ran the diagnostics for "Can't boot the OS." It ran fine till it got to the hard drive diagnostics. As I have said, they are very extensive and take eight hours to run on my dual drives. Well, I let them run for one drive and figured that since I am in a RAID, that is not the problem. So, I called the special Dell XPS support number. It took them about 35 minutes to correct the problem, but due to the diagnostics, it wasted most of my day.

The worse part is, though I know what corrected the problem, I can't tell you exactly what was wrong or how it got there. Just another of those black screen of death kinda days.

Tuesday, March 20, 2007

On a Hard Drive, No One Can Hear You Scream!

I'm a programmer. Two weeks ago at work we had a hard drive failure on our development database containing two full months of work. The files on that drive were backed up nightly, but unfortunately, they were backed up to the same server that they resided on, so the file backup was gone as well.

When I asked for tape backups we discovered that nightly the database was backed up to another server, then moved to a third location and deleted from the original backup location. Unfortunately we also learned that someone at some time in the past had deleted the folder it was being moved to and no one ever noticed the error messages being generated nightly. So, our data was safely backed up, then moved to a location that did not exist, then deleted. The nonexistent files were then backed up to tape. Things looked pretty bleak when a few days later one of the ex-data base administrators restored a database he called "prayer" and like an answered prayer it was the data we thought we had lost.

Until today I thought we had it bad; then I read about Alaska.

Saturday, February 24, 2007

More on MP3

The Los Angeles Times agrees with me that there is something horribly wrong with the latest MP3 patent verdict against Microsoft. The U.S. Patent Office has been a joke for a very long time, being totally unprepared to deal with technology issues; it's good to see someone of the Times stature finally taking notice of its shortcomings.