Monday, May 02, 2016

Hammurabi (on Run Basic)

To celebrate 50+ years of BASIC, I've published an early version of the classic simulation, Hammurabi, on the Run Basic Hosting site.

It ran "almost" unchanged -- line numbers, GOTOs and all. I'll publish the tweaked Run Basic code later, but here is the link to the game if you want to try it out right away.

If you're interested in the original source, here is a nice article on the game at the Atari Archives.

Have fun!

Monday, April 25, 2016

BASIC turns 50


Well, the BASIC language actually turned 50 on May 1, 2014, and I'm very late to the party.

Born at Dartmouth in 1964 (along with the first commercial time sharing), here is the university's tribute page. There is even a great 38 minute documentary that they made for the occasion.

10 PRINT "ENJOY"
20 GOTO 10


Tuesday, September 17, 2013

User data and program failure

A paraphrase of Asimov's first law of robotics:

A program shall not harm a user's data or through inaction allow a user's data to come to harm.

Every software engineer should take this to heart when designing a program. A user's data (or content) is sacred. Under no circumstances should it ever be lost -- especially due to a failure of the program.

Thursday, December 30, 2010

Liberty Basic in 2010

This past year has seen some modest progress in the world of Liberty Basic:

  1. Carl published a book titled Beginning Programming with Liberty BASIC. This is a great book -- I read it from cover to cover. Even if you're an experienced programmer, it is a fast way to get the gist of the language and you may even pick up a few new things along the way.
  2. Liberty Basic 4.04. This release offers better compatibility with Windows Vista and 7. It also fixes some bugs. I think it will be the last release of the 4.x version.
  3. Liberty Basic Pro. This is just 4.04 and Assist combined into a single product.

Hopefully 2011 will be the year of Run Basic.

Wednesday, March 24, 2010

How to set the System Restore and Shadow Copy storage limit in Windows Vista

I ran into a problem recently where Windows Vista kept using up all of my available disk space for System Restore and Shadow Copy storage. There is a feature in the Disk Cleanup utility that lets you manually delete all but the most recent snapshot. I did that for months before I finally took the time to figure out how to set the limit.

My problem was pretty extreme. My HP Pavilion laptop has a 105 gig disk drive. I have about 47 gigs free and over a period of about a month, Vista would use it all up. Vista is supposed to use only 15% of the hard disk for this storage, but apparently sometimes that limit can become UNBOUNDED. I don't know how that happens.

To see the current setpoint for your system, go to a command prompt and type the following:

vssadmin list shadowstorage

You should see something like the following:



To change the current setpoint for your system, type the following but change what's necessary to match your system. For example, you may need to change the drive letter and storage size to fit your needs.

vssadmin Resize ShadowStorage /On=C: /For=C: /MaxSize=5GB

That should fix your problem! If you run into an issue, please let me know by adding a comment to this post.

Monday, January 18, 2010

Run BASIC Hosting Service Launched

The new Run BASIC hosting service launched at midnight! Please visit http://runbasichosting.com for more details. Monthly and annual subscriptions are available.

Run BASIC, a product by ShopTalk Systems, is a tool that makes it easy to create your own web applications. No computer science degree required.

Run BASIC Hosting is a service that makes it easy to deploy your applications to the Internet. No IT experience required.

Wednesday, December 30, 2009

Launch Date Set For Run BASIC Hosting Service

The launch date for the world's second Run BASIC hosting service is officially set for Monday, January 18th 2010.

Details are available at http://runbasichosting.com.

Sunday, December 13, 2009

New Run BASIC Hosting Service

The first Run BASIC Hosting Service at http://runbasicnet.com shutdown a few months ago. This happened just before I realized that I needed a hosting service for my own applications. If it shutdown a month later, I may have become one of Jerry's last customers.

Personally, I don't want to rely on a server running in my home connected to the Internet through my Comcast cable modem. I know a lot of people do that and it's the cheapest way to go, but I did some testing and found that I have service interruptions almost every day. They are usually short and during the night, though. Plus, there are the occasional major outages both in cable service and power that usually happen during winter months or in bad weather. I live in Atlanta, so this doesn't happen often, but it's still often enough.

Last month, I purchased a subscription for my own VPS (Virtual Private Server) at VPSLand. I also started wondering if anyone else in the Run BASIC community would like to have a hosting service again. I posted this question on the forum and there was some interest, so I decided to throw my hat into the ring and start my own service for both myself and the Run BASIC community.

The service will launch in January, 2010. Yesterday, I brought a new website online that gives more details -- including pricing. It will be as affordable as the first hosting service with more features. My strategy is to start small, just as the Run BASIC community is still small and scale up as needed. The VPS -- instead of a dedicated server -- is the smartest starting point financially.

The new address for the service is http://www.runbasichosting.com.

Friday, September 11, 2009

New Book Published

I published a new book titled Embedded Software Development with C. I am a co-author along with Dr. Kai Qian and Li Cao. The book is published by Springer.

It is a computer science textbook written primarily for CS and EE undergraduate students, but it is also a good introduction for working professionals interested in embedded software development. Hobbyists will also like the projects and step-by-step approach to the labs.

The book takes a software engineering approach to programming the venerable 8051 microcontroller using the C language.

The 8051 and C have been around for decades, so this book should have some long term value. It stands out from other 8051/C books because it covers Ethernet networking. Most 8051 books on the market don't make it past serial communications.

Writing this book took me back 20 years to my EET days. I haven't bread-boarded circuits since the late 80's. It was a lot of fun designing the labs and making them work.

The Ethernet chapter features an embedded web server project using an AJAX page for displaying data from the microcontroller. Pretty cool considering the resource constraints.

Monday, June 29, 2009

How to open the target folder of a Windows shortcut

Sometimes I need to open the target folder of a shortcut on my desktop.

In Windows Vista (and the upcoming Windows 7), you just right click on the shortcut and select Open File Location. In Windows XP, however, you don't have this option.

In the past (and in haste), I would right click on the shortcut, select Properties and then copy and paste the already selected target field into Windows Explorer. This works, but it takes extra steps to accomplish the task. There's an easier way:

  1. Right click on the shortcut.
  2. Select Properties.
  3. Click the Find Target button. The shortcut's target folder (or containing folder) will open.

This method seems obvious, but is easy to miss if you're in a hurry.

Monday, December 15, 2008

New Run BASIC Whitepaper

Carl has a new Run BASIC whitepaper that's definitely worth reading. It is titled Run BASIC - A Breakthrough Web Application Server.

If you are new to Run BASIC but a veteran web programmer, be prepared to be shocked by how simple this is. No CGI scripting. No state management. HTML and Javascript knowledge is optional. In Run BASIC, there is an HTML statement that lets you embed custom code if you want.

Embedding HTML/Javascript is still necessary to add AJAX type code for dynamic page updating, but I suspect that future versions of Run BASIC will integrate this as well. For a more traditional web interface everything you need is built-in:

  • Desktop-like control flow
  • No state management
  • Graphics
  • SQLite database
  • HTML statement for embedding custom HTML and Javascript
  • SMTP statement for sending email
  • HTTP GET and POST statements for accessing other web sites and services
  • XML parser
  • Widgets with CSS styling
  • Easy component creation

Oh yeah, I almost forgot. Carl released a free version of Run BASIC 1.01. There is no login security or application publishing, but besides that it is the same as the full version which sells for $59.95. The free version is a great way to kick the tires -- even develop your application -- before you need to buy the full version for login security and deployment.

Wednesday, September 24, 2008

Google's Design Principles

I actually found useful content on Google's corporate information page.

Google's Design Principles. I especially like #3.

If you look at the navigation links on the left hand side of the page, there are other great links under the "Our Philosophy" section.

Monday, June 23, 2008

First Run Basic Hosting Service

Jerry Muelver of Hytext Consulting has launched the first Run Basic Hosting Service.

Account features include:
  1. Dedicated Run Basic server.
  2. Secure folder with FTP access.
  3. Static IP address.

A subscription is $60 for 6 months ($10/month). Jerry just announced a $5, 1-month trial.

Saturday, March 29, 2008

BBC Basic

A competitor to Liberty Basic from across the pond entered my radar in recent months. It's called BBC Basic for Windows and it's maintained by Richard T. Russell -- a sort of British Carl Gundel.

I was sufficiently impressed to buy a license and try it out as a testing tool for a project.

BBC Basic has a rich history that involves the BBC Micro and Acorn computers. The history of Acorn Computers parallels that of famous American companies like Apple and Commodore.

BBC Basic for Windows is a little more complicated than Liberty Basic, but it is also much faster and more powerful. I'll post updated Sieve benchmarks comparing Liberty Basic, Run Basic and BBC Basic in coming weeks.

Liberty Basic and Run Basic were developed with different tools and differing philosophies:

  • Liberty Basic was written in Smalltalk and has some of Smalltalk characteristics like big strings and really big integers. To understand what I mean, open a workspace in Squeak Smalltalk and evaluate the following: 1024 factorial.
  • BBC Basic was written in assembly language. It's fast, but has legacy power-of-two limits like 65535 character strings and program lines that can't exceed 251 characters.
  • Liberty Basic has integrated user interface statements. BBC Basic, however, keeps the core language small and moves user interface functions to external libraries. Liberty Basic doesn't support code libraries.

My evaluation of BBC Basic continues, and I'll have more to say about it in future posts.

Friday, February 22, 2008

Two new Carl Gundel Interviews

There are two new podcast interviews of Carl Gundel by the guys at Cincom Smalltalk. Just in case you've missed some previous posts, Carl is the author of Liberty Basic (for Windows) and the new Run Basic (for the web).

In both interviews, Carl discusses Run Basic:

Industry Misinterpretations Episode 70: Run Basic, Run!

Industry Misinterpretations Episode 71: Run Basic, Run! (Part 2)

Wednesday, January 09, 2008

Run Basic 1.0 Released!

Run Basic Personal Server 1.0 is available for purchase at http://runbasic.com/. The license price is $59.95. Here are some links organized by Alyce Watson, a long-time Liberty Basic community leader:

If you haven't tried Run BASIC, you'll want to visit the free online trial version here:
http://runbasic.com/

The forum is here:
http://runbasic.proboards82.com/

The community wiki is here:
http://runbasic.wikispaces.com/

What is Run BASIC? It's a web programming language that includes a server. Read more here:
http://runbasic.wikispaces.com/FAQs

and here:
http://runbasic.wikispaces.com/WebServer

Online documentation and tutorials:
http://www.runbasic.com/docs/rbhelp.html

Thursday, January 03, 2008

Run Basic Official Release This Weekend

We're up to Release Candidate 3.

Carl announced that he's preparing for the official release of Run Basic Personal Server 1.0 this weekend!

The Run Basic forum is also open to the public. Only the "Run Basic Beta Testing" area requires a login.

Friday, December 21, 2007

Run Basic RC1 Released

Carl invited me to be a beta tester for his upcoming Run Basic product about 4 months ago.

This week he released Release Candidate 1 to the beta testing group. It's been exciting to see the evolution of RB from Beta 2 through Beta 5 to RC1.

New features that aren't publicly available at www.runbasic.com include:

  1. A new syntax to use objects. (e.g. #object method). You can see the Smalltalk influence and the syntax leverages a Liberty Basic programmer's conceptual model of handles.
  2. An XMLparser object.
  3. A SQLITE object.
  4. A FILE object.
  5. A TABLE object.
  6. HTTPGet$ function that performs an HTTP GET.
Carl stated that there will be a few more release candidates before the official release of the Run Basic Personal Server. There will be an "Enterprise" version available at a later date which should include version control and enterprise database access.

This release will be the most significant event in the Basic programming world since the introduction of Visual Basic for Windows.


Monday, November 12, 2007

Tiny Basic 1.2 Progress

I'm working on the next release of Tiny Basic. Here's the latest list of enhancements:
  1. Added GOSUB/RETURN statements.
  2. Added TITLEBAR statement for the interpreter console.
  3. Increased program lines from 100 to 1024.
  4. Rewrote the MEM code.
  5. Added runtime error handling in the interpreter. It trys to recover to the READY prompt.
  6. Created test program for the interpreter (i.e. primitive unit testing).
Granted that some of these changes are behind the scenes, but I'm trying to increase the robustness of the interpreter without refactoring it into something completely different.

Before I release Tiny Basic 1.2, I still want to add these features:
  1. String variables (i.e. a$ -- z$).
  2. FOR/NEXT loops
  3. Fix known bugs in current version.
The work continues...

Thursday, October 18, 2007

The first BASIC

This blog is about simple computing. I view this from a programmer's rather than a user's perspective. With the BASIC language, though, this line has always been blurred.

Simple computing started in 1963 when Kemeny and Kurtz first designed the BASIC language.

Here is a scanned PDF of the original Dartmouth BASIC manual.

Tools like Liberty Basic and the upcoming Run Basic are the true succesors to Dartmouth BASIC.

There is nothing simple about Java, .NET and the tools festering around these platforms. Powerful, yes. Simple, no. Unlike Visual Basic 6 (and its predecessors), there is no attempt to strike a balance between simplicity and power.