Posts Tagged ‘Linux’

Open source programming languages for kids

Friday, December 19th, 2008
Note: This article was originally published on December 19, 2008 (2:00:00 PM) over at Linux.com. A still-breathing version of the article (broken links intact) can be found at Linux.com.

Scratch

The past couple of years have seen an explosion of open source programming languages and utilities that are geared toward children. Many of these efforts are based around the idea that, since the days of BASIC, programming environments have become far too complex for untrained minds to wrap themselves around. Some toolkits aim to create entirely new ways of envisioning and creating projects that appeal to younger minds, such as games and animations, while others aim to recreate the “basic”-ness of BASIC in a modern language and environment.

Developed by the Lifelong Kindergarten group at MIT, Scratch is a graphical programming environment implemented in Squeak that works in a very Lego-like fashion. The basic premise is that you build programs by snapping together colorful blocks of code. Scratch’s custom interface allows a programmer to bring in graphics and sounds and create basic animations. All the basic programming constructs, such as loops and if statements, are supported, and grouped into different block categories, such as Motion, Sensing, and Sound.

Scratch has implementations available under Microsoft Windows and Mac OS X, but as of yet there’s no (official) native Linux version to run. It is possible to run Scratch through Wine, though in my tests most audio-related Scratch programs ended up failing. There is a Linux-runnable version of Scratch, though it’s not actively developed by the folks at MIT. The one problem with using this version is that presentation mode, where your Scratch program can take over the whole screen, doesn’t work. This isn’t really a show-stopper, as there are a few different ways to view a Scratch program, but it’s easy to see how it could be a desired feature.

One useful prospect that Scratch offers is the ability to upload your programs to the Scratch Web site, where you can create an account, get support, and browse programs that other Scratch users have uploaded. All uploaded programs are open source, in the sense that you can download and modify the source of any Scratch program that’s been uploaded. Scratch programs are also viewable from within a Web browser, for the most part, through use of a Java applet called the Scratch Player. Scratch itself is released under its own Scratch License, and all uploaded programs exist under a Creative Commons Share Alike license.

One issue I came across with Scratch was that the source code for a program could become quite large when the program involved many graphics or, more specifically, music. One program, a simple music player, reached a strikingly large 93MB in size. Typically Scratch would choke on loading any program greater than 60MB in size, usually erroring out. The large size of a file may have something to do with how old the source code is; repeated instances of saving and re-opening the same file seemed to grow the size exponentially.

Alice

Scratch deals well with 2-D graphics, text, and other somewhat “flat” programming concepts. By contrast, Alice teaches programming fundamentals in the form of 3-D movies and games. Alice is developed in Java, and is somewhat like Scratch in that you build things in a drag and drop interface.

Alice, developed by a group of researchers at Carnegie Mellon University, has releases for Linux, Mac OS X, and Windows, and is released under an aptly titled Alice License. The environment is open source in the sense that you can download and examine the source code, but the creators prefer to work exclusively in-team, and don’t take outside contributions. Alice has been around since 1999, making it one of the oldest and most developed environments for teaching children how to program. It is because of this that it’s used in schools all over the world.

Shoes

Originally created by a developer who goes by “why the lucky stiff,” now furthered by a large development community, and based on the already user-friendly Ruby programming language, Shoes is an open source toolkit that’s a bit more in line with traditional programming methods. All that’s required to make a program in Shoes, besides its runtime environment, is a basic text editor. On the project’s Web site you can find a free PDF guidebook that contains tutorials and examples for Shoes. You can also order the guidebook in paperback form for $5.57. Shoes 2 comes with an extensive built-in manual that users can access via key commands.

Shoes has similar syntax to Ruby, and has easy methods for creating graphics and buttons, as well as displaying colors and text. It is supported across multiple platforms, including Linux, Mac OS X, and Windows. The toolkit works well across platforms, in that windows, buttons, and dialogs look native to their environment, and do so regardless of which platform the application was initially created on. A benefit of Shoes being in Ruby is that it’s given access to the many different RubyGems packages that exist. Shoes 2 even includes support for automatically installing a Gem on a user’s system if it’s not already present.

Shoes has a fan-supported Web site that showcases a gallery of applications created with Shoes. As with Scratch, all the applications that are uploaded can be downloaded, modified, and remixed. Shoes itself is released under an MIT License, and is open to outside patching and development.

A multitude of other programming languages and environments exist to teach children, such as Greenfoot, Phogram, and Microsoft’s Small Basic, though many of them exist as proprietary implementations. Scratch, Alice, and Shoes are all open source, include support channels such as forums or chatrooms, and have large, thriving communities. These three environments are possibly the most open, mature, and easily accessible environments that are geared toward teaching programming concepts to young minds.

Kino makes video editing simple

Friday, August 19th, 2005
Note: This article was originally published on August 19, 2005 over at the (now defunct) Newsforge.com. A still-breathing version of the article (broken links intact) can be found at Linux.com.

The Linux enviroment offers two major packages for creating and editing digital media. Cinelerra is a media powerhouse, while Kino works well for beginners who need to create simple digital video. It’s a speedy editor, lightweight, and it seldom crashes. Its simplicity, ease of use, and small learning curve make it an excellent alternative for creating and editing digital media in the Linux enviroment.
Kino does not require as much powerful hardware as Cinelerra; you can get good results with about 128MB of memory and a 1GHz processor. You’ll need a bit of disk space for digital video editing — about 40GB should do just fine.

Kino takes video to the disk in AVI and raw DV format. When you finish editing a video, Kino lets you export it in a number of formats, such as MPEG and MP3. Kino also features incredible support for IEEE-1394, otherwise known as FireWire, which allows it to communicate with different video hardware, and also supports most USB drive input. Kino has easy tools for filters, general effects, and video transition, ranging from kaleidescope to a general background generator. Kino also comes equipped with audio tools, such as filters and audio transitions, which include useful “fade in/out” and “mix” features.

The program is organized well, with a storyboard style view that allows you to see each of your scenes in a mini pane. You can drag and drop to rearrange frame order and movie flow. You can undo and redo changes up to 99 times, so you can learn by making mistakes and correcting them.

Kino’s excellent “dvgrab” interface, the tool that allows you to capture digital video to the disk, makes it ideal for importing digital media, even if you’re doing the majority of your editing with another digital video editor.

Kino’s user interface is available in English, Danish, Swedish, French, Spanish, and Czech. It provides online help for troubleshooting issues.

Disadvantages

Despite its many pluses, Kino is a low-end video editor, best suited for doing quick editing jobs or inputting digital feeds. Kino does not support multiple layers or tracks of audio and video, which means that it’s not suitable for video work that requires complex audio and video effects.

For those using a video camera to record their work, be aware that you will be able to connect via FireWire only if you’re using a digital video camcorder. A digital camera, meaning digital stills, will not work, whether it has a FireWire interface or not.

Fortunately, Kino’s advantages outweigh its disadvantages. Even if your project is a task of amazing proportions, Kino can be useful in one way or another, especially for inputting digital media and outputting it to a desired format. If you’re a beginner, it provides an easy entrance into the field of digital video on a Linux system.

Kino is free software under the GPL. The community behind Kino is helpful, too. You can find discussion boards, as well as excellent tutorials and support, such as Frequently Asked Questions and User Guides, on the project’s home page.

My Workstation OS: VidaLinux

Friday, April 29th, 2005
Note: This article was originally published on April 29, 2005 over at the (now defunct) Newsforge.com. A still-breathing version of the article (broken links intact) can be found at Linux.com.

My computer is my life, but I’m fairly new to the world of Linux. I started with SUSE Linux 9.1 Professional. It’s a fairly nice and easy system, but I wanted to try some other distributions, to see what I liked and disliked. I wanted something that felt not too advanced, but also not too limited. That’s what I found in the VidaLinux operating system (VLOS), the perfect combination of what I wanted.

Many call VidaLinux a “simpler Gentoo.” It uses many of Gentoo’s features, such as the Portage software distribution system, but also manages to make it all seem less intimidating. For instance, it uses Red Hat’s Anaconda installation system. Anaconda is a graphical interface, which many find easier than Gentoo’s command-line installation. Vida’s system components also come prebuilt and ready for installation, whereas Gentoo’s installation requires everything to be built from the command line, which intimidates some people.

Some people have reported issues with Vida’s networking and sound card configuration. While the sound card wasn’t an issue for me, networking was. Thankfully, I was able to fix my problem easily by referring back to the MadPenguin article that introduced me to Vida. After that little escapade, I moved on to configuring my system.

I use my computer for Web site management, helping out at sites such as The Mega Man Network and Metroid HQ. In addition to sitting on IRC most of the time, I tend to use AIM to contact some people. Vida comes set with what I need to get the job done. Firefox, generally the ideal browser for any Web designer, comes pre-installed, with many plug-ins already set, like MPlayer and Java. The GIMP is a fine image manipulation program, and works well for Web design. For music playing purposes, the system offers Xine, a fine music application. It covers chat too, with an easy installation of X-Chat and an included version of GAIM. When I need to get a professional project done, I’ve got OpenOffice.org right there. Vida’s main window system is GNOME 2.8.0, and the default icon set, with an uncanny similarity to Mac OS X’s, brings the desktop to life.

VidaLinux runs well, and the Portage system makes it even more fun. The Portage application itself is called Porthole, and it’s pretty useful. It allows users to choose new applications to install on their system, as well as old ones to get rid of. Apparently, some people have had issues with it suddenly shutting down on them, but that hasn’t been an issue for me. The Vida community itself is very helpful, and getting support has been no problem.

All in all, I thoroughly enjoy VidaLinux. It’s a stable operating system that caters to both advanced and beginning Linux users. What I need my computer to do, it does. I can work on Web pages, listen to music, and play my games with ease. The system itself is friendly, versatile, and workable. I know my way around it, and I’ll be sticking with it for awhile.