Microsoft still supports Visual Basic?

I recently received some email critical of my claim that Microsoft no longer supports or provides Visual Basic. I suppose this is a fair point. They do after all still sell a product called Visual Basic.

So what gives? An awful lot of people don't think that the new Visual Basic .Net product is Visual Basic at all. It's more of a version of C# (a Java clone, more or less) with some BASIC syntax thrown on top. It's not hard to use Google to find many articles of people who agree with this sentiment.

Here are some examples that I found in just minute:

http://www.sqlmag.com/articles/index.cfm?articleid=21050&

And from Wikipedia:
http://en.wikipedia.org/wiki/Visual_Basic_.NET#Comparative_samples
http://en.wikipedia.org/wiki/Visual_Basic_.NET#Controversy_concerning_VB.NET

If there's any dishonesty here, I claim that it's on Microsoft's part. For years people complained that Visual Basic isn't BASIC. Now people are complaining that VB.Net isn't Visual Basic. Where does it end? ;-)

Whatever happened to PEEK and POKE?

Sometimes I'm asked how to PEEK and POKE using Liberty BASIC. The short answer to this is, you can't. The long answer is more complicated.

The original home computers (like the classic Commodore 64, TRS-80, and Apple II models) were designed to be completely open to their owners. Most of the different parts of the computer like the sound, graphics, keyboard and joystick (there were no mice back then) were controlled by mapping them to different memory locations. So, the built-in commands didn't do everything you need? It was common to control the computer's equipment directly by sticking values into the memory locations that control that equipment, and reading the status back out. This was done with POKE and PEEK. This was a lot of fun, and usually useful too.

Since these early machines didn't multitask it was pretty safe to steal control of things away from the BASIC interpreter (which was a much operating system as there was). Then computers started running Windows, the Mac OS, Linux, etc. and allowed more than one program to run at a time. PEEK and POKE became problematic because if one program decided to mess with the screen for example, it might interfere with what other programs need to do their thing. Not only that, but computers today all have different kinds of hardware in them, so even if you could PEEK and POKE the exact memory locations would be different from machine to machine. So that's the bad news. :-(

The good news is that we can still have a power trip. How? Your operating system manages all the hardware for you behind operating system functions. These functions make every computer look more or less the same to the programmer. You can use these functions to do a lot of powerful things and most languages have a way to use them. For example Liberty BASIC programmers can use the CALLDLL command to make Windows API calls, which are the operating system calls of the Windows operating system. These are more complicated in general (and you can fill a whole bookshelf with information about them) than the old fashioned PEEK and POKE, but at least we aren't left without some way to pull rank on our computers. ;-)

So if you're missing the power and coolness of PEEK and POKE, why not try your hand at API calls?

Here is a useful link to get you started: http://babek.info/libertybasicfiles/lbnews/nl108/api.htm

Redevelopment price hike?

In a comment to a previous post Isaac Raway wrote: "I see that you note you're going to change the syntax for controlling widgets in the new basic you're working on. Awesome! This may actually make me want to switch to LB as my main platform--maybe."

I'm glad to hear this. The new LB is coming along nicely now.

Isaac continues: "However I'm a bit concerned. I've seen this sort of "redevelopment" happen before, and often times it comes with a higher price tag. One of the strong points of LB I think is that it is truly useful but very inexpensive. I think you're the kind of person who realizes that though, so I have faith you'll keep it affordable."

Well, you're right. Pricing is a marketing issue and it isn't always clear whether to raise or lower prices. I can't promise that I will never raise the price of Liberty BASIC (in fact I've done it before) but I am committed to keeping it affordable. Many times I get feedback that LB is too inexpensive and that I should raise the price, so you see this is not a simple matter to determine.

Also remember that now we have a free BASIC (http://www.justbasic.com).

Extend Firefox Contest - Winners


Extend Firefox Contest winners are announced, a set of great developers are appreciated. Congradulations to all.

Grand Price

  • Best New Extension Overall:
    Reveal by Michael Wu

  • Best Upgraded Extension:
    Web Developer by Chris Pederick

  • Best Use of New Firefox 1.5 Features:
    Firefox Showcase by Josep del Rio

  • Extension Evaluation

    Reveal Extension
    Reveal allows you to see thumbnails of pages in your session history and quickly find the page you want. Reveal also includes a magnifying glass to help you see everything. Try it now - it comes with a quick tour of all features. Screenshots do not fully capture the experience of using Reveal.

    As Reveal is an extension that I'm not familiar, I installed and experienced it.
    It is really easy to use, as a small tutor comes with it so that anybody can easily pick up the idea. Thanks and Congradulations Michael Wu.


    The thumbnails of my browser looked like above.

    Related Topics:
    Extend Firefox Contest finalists

    Source
    addons.mozilla.org

    Don't dance so fast

    Today I received a mail with a nice but advicing thoughts. So I thought of adding it here.

    As the mail explained, this poem was written by a terminally ill young girl in a New York Hospital.

    Have you ever watched kids
    On a merry-go-round?
    Or listened to the rain
    Slapping on the ground?
    Ever followed a butterfly's erratic flight?
    Or gazed at the sun into the fading night?
    You'd better slow down
    Don't dance so fast.
    Time is short.
    The music won't last.


    Do you run through each day
    On the fly?
    When you ask How are you?
    Do you hear the reply?
    When the day is done
    Do you lie in your bed
    With the next hundred chores
    Running through your head?
    You'd better slow down
    Don't dance so fast.
    Time is short.
    The music won't last.


    Ever told your child,
    We'll do it tomorrow?
    And in your haste,
    Not see his sorrow?
    Ever lost touch,
    Let a good friendship die
    Cause you never had time
    To call and say,"Hi"
    You'd better slow down
    Don't dance so fast.
    Time is short.
    The music won't last.


    When you run
    so fast to get somewhere
    You miss half the fun of getting there.
    When you worry and hurry through your day,
    It is like an unopened gift....
    Thrown away.
    Life is not a race.
    Do take it slower
    Hear the music
    Before the song is over.


    Update:
    Today I got to know that the author of this poem is Mr. David L. Weatherford. Thanks for such a nice poem.

    Extend Firefox Contest finalists

    The finalists of the firefox extension contest has been announced!!!

    There are many extensions that I am using very much. So here are some comments about some of the extensions that are selected for the final contest.



    Adblock by Ben Karel

    Block ads including Flash ads from their source. Right click on an ad and select Adblock to block ads. Hit the status-element and see what has or hasn't been blocked.

    Now there's another good enhancement for ad blocks named Adblock Plus.
    It provides the ability to get the ad list managed at Filterset.G. (For that you need Adblock Filterset.G Updater extension).

    Firefox Showcase by Josep del Rio

    View open Tabs and Windows with Showcase. You can use it in two ways: global mode (F12) or local mode (Shift + F12). In global mode, a new window will be opened with thumbnails of the pages you've opened in all windows. In local mode, only content in tabs of your current window will be shown. You can also right click in those thumbnails to perform the most usual operations on them. Mouse middle button can be used to zoom a thumbnail, although other actions can be assigned to it.

    This is a pretty useful extension which shows thumbnails of all the pages that you have loaded currently. I like this extension.

    What's missing?
    I think one of the greatest extension is missing in the finalist list. It is the Tab Mix Plus.

    Tab Mix Plus 0.3.0.4, by CPU

    Tab Mix Plus enhances Firefox's tab browsing capabilities. It includes such features as duplicating tabs, controlling tab focus, tab clicking options, undo closed tabs and windows, plus much more. It also includes a full-featured session manager with crash recovery that can save and restore combinations of opened tabs and windows.

    This is one of the greatest extensions I have ever used as it provide so many features to manage tabs.

    Related Topics:
    If you think Internet Explorer is great, read this


    [UNIX Tips] Learn tar utility in 5 minutes

    tar is a facility in Linux that creates archived file using a set of files. One file will be created that contains all the files in it. But do not get misunderstand, ".tar" file is not a compressed file. It is only a collection of files within a single uncompressed file.

    TAR
    1. Create tar archive
        $ tar -cf tarFileName.tar file1 file2 file3
    This will create an achive named tarFileName.tar and that will include the files specified there (ie: file1, file2, file3).
    2. View the list of files
        $ tar -tf tarFileName.tar
    This will list the details of the files inside the archive.
    3. Extract tar archive
        $ tar -xf tarFileName.tar
    This will extract the archive and create the files that were inside the archive.

    The above options have the meanings as:
    c - create an archive
    f - archive file
    t - list the content of the archive
    x - extract an archive

    GZIP
    If the file is a ".tar.gz" or ".tgz" file it is a collection of files that is compressed. To compress a file, first create the tar file then gzip the file. For using gzip the option -z has to be used with the above command.
    1. Create tar archive
        $ tar -czf tarFileName.tar file1 file2 file3
    Now the archive is created as a compressed file.

    z - compress using gzip utility

    Check out this stream