upFRONT
#include <vga.h>
#include <vgagl.h>
#include <math.h>
#include <stdlib.h>
#define GMODE G320x200x256
/* It's a good idea to keep these global */
GraphicsContext *virtualscreen;
GraphicsContext *physicalscreen;
int main(void)
{
int c, d; /* counting */
int x, y; /* box location */
int *box; /* our box */
int *cut; /* cookie cut */
vga_init(); /* start svgalib */
gl_enableclipping();
vga_setmode(GMODE); /* set mode */
gl_setcontextvga(GMODE);
physicalscreen = gl_allocatecontext();
gl_getcontext(physicalscreen);
gl_setcontextvgavirtual(GMODE);
virtualscreen = gl_allocatecontext();
gl_getcontext(virtualscreen);
/* now let's fix the palette up
* real pretty like! */
for (d=0; d<256; d++)
gl_setpalettecolor(d, 32*sin(6.3*d/256.0)+31,
32*sin(6.3*(d-67)/256.0)+31,
32*sin(6.3*(d-133)/256.0)+31);
/* generate our square, with a
* transparent hole in the middle */
box = malloc(16*16*BYTESPERPIXEL);
cut = malloc(16*16*BYTESPERPIXEL);
for (d=0; d<7; d++) /* loop to draw box */
gl_fillbox(d,d,16-2*d,16-2*d, (d-6)*60);
gl_getbox(0,0,16,16,box); /* get the box */
/* draw the background stripes */
for (d=0; d<HEIGHT; d++)
gl_hline(0, d, WIDTH-1, d+1);
/* the main loop. For fun, try adding a few
* more boxes following the leader
*/
for (c=d=0; d==0; d=vga_getkey()) {
c++;
x = 152*sin(c/37.0)+152;
y = 92*sin(c/61.0)+93;
gl_getbox(x,y,16,16,cut);
gl_putboxmask(x,y,16,16,box);
gl_copyscreen(physicalscreen);
vga_waitretrace();
gl_putbox(x,y,16,16,cut);
}
return 0;
}

Using Linux and Informix to register for conferences is a reality; it happened at ALS (Atlanta Linux Showcase) last year. I talked to Tim Costello, the man who made it happen, by e-mail on January 31. Tim is a Senior Systems Analyst for Conference Management Systems, LLC. This company specializes in convention services, e.g., registration, travel and hotel booking, message centers, booth locators, temporary staffing and related services.
Margie: Tell me a bit about yourself.
Tim: I have worked with CMS since April 1994. I have been in the computer industry since about 1984—before that, it was just a hobby—when I started doing some Dbase programming and general consulting for a local company.
When I first started college in 1986, I planned on an EE degree with a CS minor. In 1992, I graduated with a degree in Technical Theatre (Lighting and Sound Design) with a CS minor. After college, I worked as a consultant Monday through Thursday and did lighting for local events most Fridays through Sundays. Then in late 1993, I got a call from a friend who was touring with Disney's “Beauty and the Beast on Ice” in Europe. They needed an electrician ASAP, so for the next six months I toured Europe with Disney. At the end of the tour, I received a job offer from CMS, a consulting client of mine. So the day after I flew back from Barcelona, I was at work at CMS buying equipment for one of our early shows.
Margie: How long have you been involved in the Linux community?
Tim: I first started using Linux early in my tenure at CMS, so I would guess late 1994. I haven't contributed any programming to the community, but I answer questions in the newsgroups whenever I can and submit as many bug reports as possible.
Margie: How did you come to be taking care of ALS registration? Do you belong to ALE?
Tim: We submitted a proposal for registration services in response to a request from ALS. One stipulation in the Request For Proposal from ALS was the use of open-source software, which we were already using—we were a perfect fit. No, I am not part of ALE; CMS is based in Park Ridge, IL.
Margie: Have you done registration of shows before?
Tim: Convention registration is a core business for us. We do registration for several hundred shows a year, ranging from small corporate meetings to ones with over 20,000 attendees.
Margie: How did you come to pick Informix as your database of choice? How did the combination of Linux/Informix work for you? Have you used other systems to take care of registrations? How did Linux compare?
Tim: I'll answer all these questions in a group. When we first started doing registration, we used HP9000s/HP-UX and Informix—all purchased prior to my coming on board. During this time, I was using a Linux box as my office desktop and was the system administrator for both systems. As time went by, whenever we needed a new server, I would use a Linux box; e.g., our dial-in/fax server is a Linux box using mgetty-sendfax. Until Informix came around and ported to Linux, I was stuck with the HP9Ks. I was involved in the lobbying effort (I signed the e-petitions) to get Informix to port to Linux, and as soon as it was available as a public beta, I started testing with it. I find the Linux boxes easier to administer than the HPs, and on a price/performance curve, I find them much more attractive.
Margie: Would you have preferred to use some other system?
Tim: No. We began a move to SCO UNIX as a stop-gap when Informix was still publicly undecided about a port. Those systems were wiped and moved to Linux as soon as possible.
Margie: What do you feel are the main advantages to using Linux/Informix over other systems?
Tim: Ease of system administration and availability of assistance.
Margie: Drawbacks?
Tim: Commercial software availability, or the lack thereof. One of the other services we offer for conventions is a voice-messaging system, using Dialogic voice cards. I am currently forced to use Windows and Visual Basic to access them, and until a month or so ago, there seemed to be no hope unless I switched vendors—something I may still do, but I hate to waste my existing investment. However, when Intel recently acquired Dialogic, they announced they would support Linux!
Margie: Do you use Linux/Informix in other business situations? If so, tell us about them.
Tim: We use Linux for all our servers, web (with Apache), fax (with mgetty), file and print (with Netatalk) and database (with Informix).
Other open-source systems in use at our location are Python, PHP3 and Perl, among others. We use Red Hat and Linux-Mandrake on our servers, with some updates/patches.
Margie: What did you think about the ALS event itself?
Tim: I enjoyed every minute of it! Next year, we plan on additional people from our staff going to the show, so we can trade off working at registration. There were several sessions I would have liked to attend, but missed due to my duties at registration.
Margie: Thanks for your time. —Marjorie Richardson
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Designing Electronics with Linux | May 22, 2013 |
| Dynamic DNS—an Object Lesson in Problem Solving | May 21, 2013 |
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
- RSS Feeds
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Designing Electronics with Linux
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- A Topic for Discussion - Open Source Feature-Richness?
- Drupal Is a Framework: Why Everyone Needs to Understand This
- Validate an E-Mail Address with PHP, the Right Way
- What's the tweeting protocol?
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?




5 hours 9 min ago
9 hours 36 min ago
13 hours 12 min ago
13 hours 44 min ago
16 hours 8 min ago
16 hours 11 min ago
16 hours 12 min ago
20 hours 37 min ago
22 hours 28 min ago
1 day 3 hours ago