Sunday
Feb222015

Waduzitdo: a simple language anyone can learn, part 1

Back in the late 1970’s, having a home computer was unique, not many people had one.  And, when those who did have one had family or friends over, the question that was asked was ‘Well, what does it do?’ Unfortunately, back then, they didn’t do a whole lot unless you knew how to write code.  That usually meant either some flavor of Basic or you had to learn assembler or ‘machine code’.  I did quite a bit of ‘machine code’ as I could not afford a full blown assembler.  Anyway, someone got tired of answering the question and whipped up a little language called ‘Waduzitdo’.  This little language was small, had few statements and was easily learned. 

Waduzitdo had little structure, statements were in the form of:

statement: value or text

There were seven statements:

Statement Parameter Meaning
T text Type <text> on the console
A variable Ask a question, put answer in <variable>
M<variable> text Match <variable> with <text> result goes on stack
JY jump number Jump if stack is true to line number
JN jump number Jump if stack is false to line number
J jump number Jump to line number
E none End

As you can see, it was REALLY simple. A sample ‘application’ would look like:

*T: Hello, this is Waduzitdo.
T: What is your name?
A: n
T: Hello,
Tn:
T: Do you want to see this again?
A: a
M: yes
JY:1
T: Good bye!

A few things, the asterisk is a line number.  Rather than using numbers, you used asterisks.  The first asterisk is ‘line 1’, second is ‘line 2’ and so on. As programs will be small, keeping track of them should not be an issue.  Variables can be on both sides of the colon, depending on the statement. For statements that have no parameters, like Accept, the variable is on the right. If the statement does have a parameter, the variable goes on the left. The Y and N goes before the colon. 

HalfByte’s implementation will include the core of the language and support for graphics, sound and limited math and the nunchuck.  The graphics will be similar to ‘turtle graphics’ of the 70’s and 80’s.  While I have not yet settled on a complete feature set, I do know that standard math, random numbers and limited string support will be there.  I will use some of the code from Tiny Basic but most of it will be new.  I am not going to use any of the source from the original language, but I am going to attempt to adhere to its style.

My goal is to document, via this blog, the process of writing this language for the Half-Byte Console (and other Arduino compatibles.)

So, stay tuned!  This should be fun.

Tuesday
Feb172015

Toshiba Encore Mini: a Seven Inch Tablet For $99

WP_20150216_18_06_53_ProIn 2014, one of the things that Microsoft did, to push Windows 8 and Windows 8 devices, was to offer up a ‘zero dollar’ (i.e. NOT FREE) version of Windows for devices that are under eight inches.  This move did more than just give manufacturers a ‘zero cost’ version of Windows, it opened the flood gate on small Windows devices.  Now, this is a FULL version of Windows, no strings attached. Well, ok, you have BING as your default search provider, but, you can change it if you wish.

Among the devices introduced was the Toshiba Encore Mini Tablet. This is an Intel Atom powered, seven inch tablet. It has 1GB of RAM, 16GB of storage (of which about 10GB is available), WIFI, SD Micro Card slot, USB connector and stereo sound.  It runs Windows 8.1 with Bing and costs $99.WP_20150214_22_48_42_Pro 1

If you shop, you can get it for about eighty-eight dollars.

The device is comparable, in size, to the iPad Mini, though not as pretty.  It is functional, but will not garner any design awards.  It is fairly generic. My unit has a bumpy, white hard plastic back with a black bezel.  The seven inch screen is not the best I’ve ever seen, but far from the worse (no, that award goes to the Pandigital White seven inch tablet from a few years ago.)

Unboxing the unit was quick, there’s not much there: the Tablet, two booklets, an addendum, the USB cable and…that’s it. NO POWER ADAPTOR was included. I suppose they cost too much.  The manual suggests PLUGGING IT IN TO YOUR COMPUTER to charge it.  Or, use the Toshiba branded wall wart, that you have to purchase separately. In reality, pretty much any USB charger will work.  My unit was DOA, so I had to wait to charge it. 

WP_20150216_18_07_50_ProOnce charged, it took a few minutes to set it up. I entered my Microsoft credentials and everything was setup for me: my mail, favorites, even recent browsing history.  OneNote synced fairly quickly as well. I specifically told it NOT to sync my apps as I don’t have that much storage and did not want ‘muddy’ it up. 

While the device comes with Office 365 Personal, I already have a subscription, so I have not set it up. 

Overall, the performance is about on par with my Asus Tablet.  For some things, it seems a bit faster and for others, much slower. Graphics performance is abysmal, but I won’t be playing games on this thing. Well, not anything demanding, anyway.  Audio is MUCH better than on my Asus-I can actually hear it. What a concept.

One thing I have noticed is that the Windows Desktop (aside from being an antique) just is not suitable for this size.  I think Microsoft made the right choice for Windows 10 by doing away with the desktop for devices of this size or smaller.  It simply does not scale properly. Icons and links are way too small, I found myself tapping on one thing, or, so I thought, and something else WP_20150216_18_07_12_Prohappens. At 1280 by 600, on a seven inch screen, it is just too small for Windows desktop.

WiFi performance was good, but I found that it, frequently, drops the WiFi connection.  I am guessing it is a driver issue.

Battery life is also not that great. iPad Mini gets about nine hours whereas this thing get, maybe, seven hours. It also charges very slowly. That initial charge took nearly eight hours. It has taken about six hours to fully charge since then. Now, to be fair, that first charge was from the computer, which charges my phone slowly as well. The second and subsequent charges have been on my Nikon Lumia battery charger. Your mileage may vary.

The camera? It’s horrible. Nothing more to be said.

Overall, this is a good buy if you need a tablet to take with you on daily trips, but don’t need it a full day.  It is great for short Internet bursts or checking and answering email. If you have a portable Bluetooth keyboard, it may be good for Word on the go.  It is great for OneNote as well. But, it isn’t so great for many things you’d use a laptop or larger tablet to do.  If you need to do more than this, save your money and buy a bigger tablet.  If, however, you want a device a little bigger than your phone, but not a full sized tablet, then this may be for you,  Go to Best Buy and try it first.

Saturday
Jan242015

Half-Byte Tiny Basic 2: code examples, random dots

Tiny Basic can be a great way to learn how to program. It is primitive enough to be easy to learn, yet powerful enough to complex things in a small amount of memory.  For today’s example, I’m going to show you how to create the random dot pattern I love to show off.

As the resolution on the Half-Byte Computer Console is really low, heck, it is barely there, it does not take much to make a compelling demo.  We have 80 by 48 dots to play with.  Not much, but more than some very early home computers had. But, today, we are only going to use 80 by 46. (Only because I typed the wrong value into the Y=RND statement and was too lazy to fix it.)

Our demo creates four random numbers, one set to turn on the dots and one set to turn them off.  We will use the x, y, p and q variables for the pixels. A fifth number will be generated, using the variable u, and we will discuss that later.

Our demo will create a four quadrant screen to light up the pixels. This will give you a kaleidoscope effect.  So, that means we have to restrict our work to just one quarter of the screen and then mirror it to the other three. Sounds complicated, but it isn’t.

Have a look at the code below:

100 CLS
110 X=RND(40): Y=RND(23)
120 P=RND(40): Q=RND(23)
130 SET X,Y
140 RESET P,Q
150 SET X,23-Y
160 RESET P, 23-Q
170 SET 40-X,Y
180 RESET 40-P, Q
190 SET 40-X,23-Y
200 RESET 40-P,23-Q
210 U=RND(99)
290 GOTO 110

Lines 110 and 120 generate our random numbers, one pixel, to light up and one pixel to turn off.  Lines 130 through 200 calculate the four quadrant locations to turn on or off.  SET will turn the pixel on, RESET will turn them off.  We figure out where to turn them on or off by using offsets. In our case, the offsets are the width (0 to 40) and height (0 to 23). Study what these lines are doing and you can figure out where on the screen each dot will go.  Take a sheet of graph paper and make an 80 by 46 grid.  Use RANDOM.ORG to generate 2 random numbers, one will be from 0 to 40 and the other will be from 0 to 23. Use the SET statements and figure out which cells on your graph paper to color in and then do so.  After you color in the four squares, you can see just how the code works.  Do that a few more times and you get an interesting design.  Now, key the code into Tiny Basic 2 and run it.  Let it go for a while and you’ll see very interesting patterns emerge. After a while, though, the screen gets busy and ceases to be interesting.  So, we need to do something about it.

We need to clear the screen every now and then and let the patterns regenerate.

So, how do we do this? Well, you can it do it a number of ways…poll the keyboard for a keypress, read the Wii Nunchuck, etc.  The easy way, though, is to just do it randomly.  Good thing we have line 210. Line 210 has already created a random number, we just have not done anything with the number. So…lets do something.

220 IF U=93 GOTO 100

That’s all we need to do. Evaluate the value of U and, if it matches our magic number (which can be anything from 0 to 99 as dictated by line 210.  You can put 10000 in there if you like. The random number limit and the number after the equal sign are entirely arbitrary.  But, the higher the numbers, the longer it could take to hit that random number.  It doesn’t matter. For our demo, I chose 99 and 93.  Go ahead, break the program if it is still running and then type in line 220 above. Re-run the program. You will see it switch patterns frequently.

Pretty cool, huh?

Play with the numbers a little. You can limit the pattern to just one quadrant. Change the x and y values in 110 to 20 and 12 (you will need to change line 120 as well.) Then, in the code, everywhere you see 40, change it 20 and change all of the 23 to 12. Run the demo.  You should see the same thing as before, only smaller and in one corner of the screen.  Experiment with this, what do you have to do to put it in, say, the lower right of the screen?  Hint: you will need to offset your set and reset locations.  Look at lines 190 and 200 for a clue. Post your solution in the comments.

I have posted a video here.

In an upcoming example, we will use the Wii Nunchuck to control the drawing.

Saturday
Jan242015

Windows 10, the consumer rules

Win10_Windows_ProductFamily_WebMicrosoft unveiled a near complete Windows 10 platform at an event they hosted this past week (Jan 21, 2015.)  During the keynotes, several key features were shown off, which are sure to make just about everyone happy about the new addition to the Windows family.  Among the features highlighted were:

  • Continuum, the ability to rather seamlessly transition from desktop mode to tablet and back again, depending on whether or not you have your tablet docked or not.
  • Cortana, the Windows Phone assistant now comes to the desktop and tablet experiences as well.
  • Universal apps, which have been talked about for a long time, are a reality. These apps will work on phone, tablet or PC and the experience will be very similar across devices.
  • Spartan, the ‘new’ browser based on the old browser’s Javascript and rendering engines.
  • Clean and consistent user interface spans all types of devices, from phone to XBOX One.

Windows 10: The Next Chapter press event (day 2 of 2)Windows 10 not only gives desktop features to mobile devices, but some of those features are headed to PC land (and some to XBOX as well) including the notification area. On phone, you swipe down from the top edge of the screen. On PC, it will be near the tray. Either way, you will see the same things. And, perhaps the biggest feature of all, Cortana, the Siri like assistant, comes to the desktop.

There were also two huge announcements made, that really kind of overshadow all of the other stuff:  Windows as a service and Windows 10 upgrades will be free to Windows 7, 8.1 and Windows Phone 8.1 users, for the first year the product is available.  Yes, that gives you a year to get off your seat and upgrade those Windows 7 computers.  For free.

Windows as a service is currently aimed at the business area, but it could to consumer land at some point. The Windows as a service plan is very much like Office 365 and, in fact, includes Office 365 for business.  Pricing was not announced, but it is speculated to be around $12 per user per month.

Perhaps an overlooked aspect of the announcements Win10_Xbox_Devices_Webwas the XBOX One.  Windows 10 will be coming to that platform as well. And it will require a new interface…the XBOX controller.  Game streaming from XBOX One to any Windows 10 device will be baked in. You will be able to start a game on your console, continue on your tablet or desktop and finish back on your console.  The XBOX app for Windows will also be included and will be very similar to the Xbox 360 and Xbox One apps that are out today.

Microsoft will be releasing two huge Windows 10 computers, a 55 inch and an 84 inch device that is ‘tuned’ for conferencing and aimed at business (which means they will be expensive.) They will be from the Perceptive Pixel company that Microsoft purchased a while back. Called Surface Hub, you can see them in action here.

Oh, and there was one more thing…

Win10_HoloLens_LivingRoom_WebHOLOLENS. HoloLens is an augmented reality headset in the form of glasses. Among the things it can do…use your eye as a mouse.  This device is very intriguing and nothing I write here will convey that, so…I will point you to Youtube and to Engadget, where they had some hands on with the device and a nice write up too boot.

 

OFFICE

Win10_Windows_Mail_PrintA new version of Office was briefly shown. Office for Windows 10 is a touch enabled version of the productivity suite.  It will be available for all Windows devices (not sure about XBOX) and will be consistent across them.  Outlook on Mobile will use the Word engine so you will be able to, finally, create really nice email messages on your phone.  The suite will be available for free on all device that are under 8 inches.  Pricing for the other devices was not revealed.

If  you want to play around with the new bits, you can enter the preview program and download Windows 10 for your computer today.  The mobile version is coming out in February of 2015.

Thursday
Jan152015

A look back at Hard Rock Park, Myrtle Beach, SC

Not tech, but I frequently write about theme parks so, here’s a look back at a terrific little theme park that used to exist in Myrtle Beach, South Carolina.  Hard Rock Park was open, as Hard Rock, for one season. It shut down early that year but was re-opened in 2009 as Freestyle Music Park.  I was fortunate enough to go there, twice, when it was Hard Rock Park. My son and I enjoyed the park and got to ride all of the rollercoasters and he rode most of the ‘flat’ rides. It was a charming place and I’m really sorry to see it fail.  It’s story is convoluted and twisted with many shady deals and missed opportunities. What’s left of the park, the rides, are mostly on their way or are already in a theme park in Vietnam. Rumor has it that that park is a near copy of the Myrtle Beach location, layout wise and ride wise.  So, enjoy the following photo album.  The photos, and I have to apologize for the quality, were taken in August of 2008.  I have a video on YouTube as well.