Table of Contents


Calendar of Events:
We need some Equipment
The First Operating Environment
Certified Year 2000 Compliant.

Post Finances
Up-an-Coming Crew Expenses
Up-an-Coming Member Expenses
Preparing for UNIX in College
The Relation of Work
Perl for newbies
Multinet
New speeds for CPUs
Oracle to distribute Open-Source
operating system

Computing Trends
The Adventure Logo!
1st. OS Certified Y2K Compliant

PostScript Version

(C) Sat Oct 24 21:52:51 EDT 1998 Venturing Crew 369

Calendar of Events:

10/24/98 Air Force Museum

10/27/98 Pizza Party

11/3/98 Election Reporting

11/10/98 Munchie Night

11/10/98 Nominations

11/16/98 Elections

11/24/98 Pizza Party

12/1/98 VOA Meeting [Ranger Awards]

12/8/98 Munchie Night

12/18/98 Silver Beaver applications are due

12/18/98 Young American Award Nominations due

12/22/98 Christmas Pizza Party

1/5/99 VOA Meeting

2/2/99 VOA Meeting

2/6/99 Court-of Honor & Sleep Over

2/7/99 Scout Sunday

3/2/99 VOA Meeting

4/6/99 VOA Meeting

5/4/99 VOA Meeting

6/1/99 VOA Meeting

7/6/99 VOA Meeting

7/18-7/24/99 Venturing Camp Staff Week

7/25-7/21/99 Venturing Summer Camp

8/3/99 VOA Meeting

9/7/99 VOA Meeting

9/13/99 First Nighter Week

9/25/99 Award Nominations Due

10/5/99 VOA Meeting

10/15/99 Recognition Dinner Money Due

10/23/99 Venturing Recognition Dinner

11/2/99 Election Reporting

12/7/99 VOA Meeting

The 1999 Calendar is still in the planning Stages.


We need some Equipment

James D. Corder

We need 3 Disk Caddies for the Auspex 5000. If you have them and would like to donate them that would be GREAT!

We also need about 35 to 40 Sun Workstations. Old IPC, IPX, ELC, SLC, 2s or 5s would also be GREAT!

Post Finances


The Adventure -$1,983.00
Floor Fund Need $2,500.00
Floor Fund On-Hand $2,588.76
Equipment Shipping -$259.75
Book Printing -$215.00
$2,114..01
Electrical Fund $2,500.00
Elec. Fund On-Hand $0.00
Room Fund Needed $3,800.00
Room Fund On-Hand $0.00

Up-an-Coming Crew Expenses


12/01/98 Crew Charter $30.00
12/01/98 Crew Insurance $85.00
Monthly The Adventure $75.00

Up-an-Coming Member Expenses


10/20/98 Registration $25.00
10/27/98 Book Fee(1) $45.00
11/10/98 Uniform

The First Operating Environment Certified Year 2000 Compliant.

The Software Laboratory Limited, a respected UK-based software third-party testing service, says the first operating environment to be certified Year 2000 compliant is Solaris 2.6TM. The certification was the result of recent tests on both the Solaris 2.6 operating environment and a beta version of the 64-bit Solaris operating environment.

"It is our considered opinion that the Year 2000 compliance of the Solaris 2.6 operating environment as well as the next version now in beta, are exceptionally good," said Ken Veitch, managing director of The Software Laboratory. "The pass rates show that Sun has put a great deal of effort into ensuring compliance of their operating environment, and we certify that the Solaris operating environment is Year 2000 compliant as of April 1998."

The Software Laboratory (www.software-lab.com) independently ran 1,020 separate tests on the Solaris releases in a controlled environment at Sun's Customer Environment Test Lab in Menlo Park, Calif., with no interference, control or direction from Sun personnel. The firm evaluated an out-of-the-box version of Solaris 2.6 operating environment that was upgraded with three minor modifications that are freely available on Sun's Year 2000 website.

Sun is advising users to periodically check and ensure they have applied all the Year 2000 "required modifications" to their systems. This will maintain the system's Year 2000 compliance status.

Tests evaluated Year 2000 compliance in a variety of areas and circumstances, including:

  • Date-related utilities and commands;
  • A "powered-off rollover," in which a machine's date was set to 12/31/99. The machine was then turned off and powered on the next day to ensure a correct rollover, all Year 2000 regression tests passed as expected;
  • A machine whose date was set to Jan 1, 2000;
  • A machine allowed to roll over to 1/1/00 from 23:50 on 12/31/99;
  • The cron UNIX task scheduler.
(1)
If copying fees are donated the cost of the first book will only be $36.00.

Footnotes

Preparing for UNIX in College

Jon Schlegel

Wow, I looked at man sh, I never realized the real power of the manual pages. There is so much information. For now though, I love school. I have never felt so much at home. I just enjoy being at college every minute. I'm doing well in my studies, I think I will get A's.

I love UNIX. In about 3-5 days I will be removing my microsoft partitions for good. I never use them anyway, they are just wasting hard drive space. (Which I am very low on, so if someone happens to be giving away an IDE drive with more than 2 gigs of space I would be more than happy to relieve them of the weight =) I am running a web server now (apache), I got a little help from Joe Harvey on a few setup problems but for the most part I did it myself. Every day using UNIX, I learn new things and realize the real power and stability behind the operating system. I can't understand why I was so ignorant and never really tried UNIX before I got here. Oh well. I'm working hard at school, but Mr. Edwards taught me well and programming classes are a breeze.

Right now I am teaching myself CGI, Java, and Perl programming. I want to write some simple client-server applications and get to know the ideas and algorithms behind client-server programming. I remember you saying that corporations and for the most part everyone is moving more and more towards thin clients with most applications sitting on server somewhere. I'm taking your advice to heart and am always looking at the future. There is no way I will ever be a programmer for my whole life (unless it was truly innovative stuff, but revising code for a company is not my idea of a job for 40 years. uhg). I am passively keeping an eye out for jobs right now for programming and system administration. For now I am looking for things that will give me experience and more lines on the resume although 369 sure added a few key items.

Well thats about it for now. I'll write again soon. Can't wait to see all of you again!

New speeds for CPUs

James D. Corder
Ultra Sparc Driven Gif!

Supercooled UltraSPARCTM II Achieves 500 MHz

Personal Computers [PCs] have just reached 450MHz. Dec's Alpha was 600MHz 5 years ago.

Sun Microsystems, Inc., and KryoTech, Inc. treated attendees, at the recent Microprocessor Forum, in San Jose, Calif., to a cool demo [-40oC]. Sun was able to demonstrate an 300 MHz UltraSPARCTM II-powered Ultra 60 workstation running at 500 MHz -- 67% faster than its room temperature clock frequency, therebye, boosting the system's application performance by as much as 50%, and its clockspeed by two-thirds.

The supercooled Ultra 60 provided ample proof of the power and potential to be found in the UltraSPARC platform. The third-generation UltraSPARC III will be introduced at a speed of 600 MHz -- without any supercooling technology needed. Along with its significantly faster clock speed, the new UltraSPARC III will also offer over 15 times the scalability of the UltraSPARC II, raising the multiprocessing bar from 64-way systems to 1,000-way systems. With all its increased power, however, the UltraSPARC III will still maintain 100% compatibility with the existing version of the Solaris operating system, as well as all current applications and middleware. Since 1995, the UltraSPARC line of processors has set the standard for 64-bit performance, with over one million UltraSPARC systems shipped.

UltraSPARCTM will reach 1GHz by 2000 and should reach 1.5GHz by 2002. Sun has been shipping 64-bit CPUs for more than 2 years and will also make its 1GHz line 64-bit.

Because Sun's microprocessor development begins at the high-end, Sun can leverage its leading-edge performance across a wide range of solutions, from enterprise servers to embedded applications. The three lines in the UltraSPARC series of processors are the:

  • "S" series (UltraSPARC I, UltraSPARC II, and UltraSPARC III) delivering leading-edge performance for scaleable workstations and servers.
  • "I" series (UltraSPARC IIi), which integrates many system functions onto the processor, providing a cost-effective solution for single processor systems.
  • "E" series (microSPARCTM and UltraSPARC), which provides an optimal price-performance point for embedded application which need the power of SPARC such as thin clients as well as network interface, control and line cards.

Texas Instruments (TI) manufactures Sun's UltraSPARC processors, under an arrangement, now over a decade old. that lets Sun leverage TI's On August 27, 1998, TI announced a 0.07-micron process technology that will let TI pack more than 400 million transistors on a single chip. Sun will use this technology in developing its gigahertz UltraSPARC processors.

The Relation of Work

Brian Dyson, Coca Cola Enterprises

In a university commencement address several years ago, Brian Dyson, of Coca Cola Enterprises, spoke of the relation of work to one's other commitments.

"Imagine life as a game in which you are juggling some five balls in the air. You name them-work, family, health, friends and spirit and you're keeping all of these in the air. You will soon understand that work is a rubber ball. If you drop it, it will bounce back. But the other four balls---family, health, friends and spirit-are made of glass. If you drop one of these, they will be irrevocably scuffed, marked, nicked, damaged, or even shattered. They will never be the same. You must understand that and strive for balance in your life.

How?

Don't undermine your worth by comparing yourself with others. It is because we are different that each of us is special. Don't set your goals by what other people deem important. Only you know what is best for you. Don't take for granted the things closest to your heart. Cling to them as if they were your life.

A+ Approved Web Design Award!

Dear 369, We have reviewed your site, and A+ Approved Web Design Award! you have won the A+ Web Design Approved award. Your site is well designed and is an interesting addition to the world wide web!

  • 1061 *.gif
  • 528 Misc.
  • 507 *.html
  • 472 *.jpg
  • 73 *.ps
  • 8 *.txt

      Venturing Crew 369 has 2,649 Files on their web page!

Perl for newbies

Ho-Sheng Hsiao

A quicky language, one can easily extend a Perl script to suit his own needs. Case in point. The site off of Lost Realities uses some frames. (We assume that most of the visitors does have frames, as we plan on adding in feature that requires a late version of Netscape or Internet Exploder). However, a visitor can still request URLs of the individual pages within the frames. The result is an isolated page, outside of the frame format. We designed the frames to aid navigation; take out the frames, and the individual pages might be confusing to the visitor.

We could solve the problem by adding navigation links within the individual frames. But then, it would add redundant information for people who are browsing the page with frames. Instead, I've heard about forcing frames to automatically reload, through JavaScript, from a few of the post associate advisors. The idea is that, when individually accessed, the page would check if the frame pages are loaded as well. If it isn't, then it would reload everything.

Though I don't enough about JavaScript to implement this in pure JavaScript, I was able to implement the checker. However, the frame-loading code was a problem. I could not see a way to implement it in JavaScript.

Enter Perl. I decided to take it easy, and have the JavaScript code add a Refresh tag if the frames are not loaded (See Insert 1). It checks for the existence of the variable, "top.MainBanner". If it does not exist, it uses the JavaScript to add a Refresh tag. The Refresh tag would automatically redirect the browser to a different page. Then, I added a JavaScript code in the page that defines and turns on top.MainBanner. Now, all I just have to make sure the Refresh tag points to a URL that sets up the frames. Note that I saved the JavaScript as a separate file, and forced the pages to include it. Should I decide to change the way the JavaScript work, I only need to modify one file.

I have the Refresh tag detect the current URL, and sends that over to the CGI script. The CGI script (See Insert 2) parses it out, and adds it to a variable. Then it spits back the html code that sets up all of the frames.

The only drawback to this is the Refresh tag. This would require Netscape 4 or Internet Explorer 4. A much more elegant solution would bypass the refresh, and directly rewrite the URL of the current window.

However, the point was how little time I spent in modifying the CGI script. I ripped off an example Perl script that had all of the CGI function parsing installed. I modified it to parse out the variable I want it to. Then, I took the old frame code, and insert it into the Perl script-- with the additions of those variables. That is ten-minutes worth of work.

What remains is adding a tag within each individual page to include the JavaScript code.

Check out the frame-loading in action. That's assuming you have one of the later browsers.

Happy Perl-jamming.

Multinet

Bill Schwanitz

Have you ever wanted to reside on more than one network? Why do this you might ask? Let us say you are running a web server and you want to add another virtual host. You need an ip number right? You can get around another physical ethernet device by multineting your ethernet device.

The following information will show you how to do this on a Solaris 2.x box, your mileage may very from system to system.

The first step you want to do is to add the information to the /etc/hosts file.

example:

	
# /etc/hosts
65.1.37.191 system1
65.1.228.3 system2
...

Once you have done this, you want to copy or creat a file which will hold the hostname information for the new device. To do this, I usually copy hostname.<ether device> hostname.<ether device>:1 and then do a quick hack on it to adjust the hostname.

The final thing to do, if necessary is to hack the /etc/netmasks to assign a netmask if necessary.

The last couple of steps are going to pull up the interface. You need to run

ifconfig system2 netmask=255.255.255.0 broadcast=65.1.228.255,
and then bring the interface up.

Hopefully this should get you to a point where you can do this. You would be amazed at how this can help.


Oracle to distribute Open-Source operating system

Ho-Sheng Hsiao

As some of you may have heard, Oracle decided earlier this summer to support the open-source operating system, Linux by announcing a port of Oracle 8. While initially as a response to Informix's announcement, Oracle has slowly added further support.

Oracle, a long-time rival of Microsoft, have negotiated talks with popular Linux resellers (within the Linux community, they are called "distributors"). Computing (UK), however, reports that Oracle plans to sell, distribute, and supply technical support for their distribution of Linux.

Does that mean Oracle wants to take a pot shot at Microsoft, or does that mean that open-source software are becoming more respectable?

I think we are seeing an example of verticle integration. With the source code for the Linux kernel and all of the tools to go along with it, Linux tempts Oracle into "integrating" the operating system with the database. Verticle integration is a business practice to make more money; historically, Andrew Carnegie brilliantly took control of the raw materials to his steel mills to lower costs. Practices such as these have continued today, such as Microsoft's "integration" of their operating system packages with their applications.

Oracle, and many other high-end application developers will likely to do the same. With the ability to provide a complete package, operating system and the application, Oracle is positioning itself as a complete solution provider, much like IBM still does today. Even so, future solutions providers will still have to overcome the inherent lack of reliability in Intel-based architecture; luckily, Linux is nearing the point of reliability on Alpha-based and Sun-based machines.


Computing Trends

Ho-Sheng Hsiao Sun Tries Again with Jini (Or Do They?)

Jini is a neat technology. Running on the Java Virtual Machine architecture, Bill Joy designed Jini to run on a large-scale distributed computing environment. Instead of a single desktop or workstation, Jini promises to deliver ubiquitous appliances--applications that run on Java, of course.

This shouldn't be surprising. Java was originally designed to run small appliances, before the Internet fever came to sweep it into "code once, run anywhere." The Java technology has been suffering setbacks, with Sun and Microsoft Java trademark dispute, Sun and HP Java dispute, lack of embedded Java chips, and poor client-side JVM performace. On the other hand, Java sill remains strong in server-side of the technology.

One main problem resulting in Java's fragmentation and setback was Sun's slow development and its insistance on keeping the technology closed. Despite Sun's marketing efforts to assure developers that the technology is portable, Sun cannot keep the Java specs "open" while trying to sell their own "closed" version of Java.

Jini not only naturally promotes Java, the Jini source-code will be released (with stipulations).

Jini itself is a software framework, one that supports distributed applications. Each appliance-- storage, email, browser, smart-cards, cable-boxes, printers, voice-recognition devices, sound systems, hand-writing recognizor, smoke alarm sensors -- can be plugged in or out with little or no technical intervention from the user. While normally, a developer would have to worry about network latency, device failures, driver incompatibilities, encrypted communications, Jini should abstract all that mess away from the developer.

This technology is not as isolated and far-fetched as it sounds. Erick and Linda Von Schweber of the Infomaniacs think tank have sketched out a scheme, whereby SGI/Cray creates "computing fabrics", a dynamic and mobile computing environment. Computer Scientists at Carnegie Mellon University have designed and implemented Coda, a distributed file system for mobile users interacting with servers. Microsoft have also made some noise with their Digital Nervous System and Project Millennium. Lucent Technologies have been developing its Inferno technology. Inferno is a direct decendent of Plan 9 with an addition of virtual machine much like Java. Plan 9 itself is a complete redesign of a network OS from the same computing group (e.g. Dennis Ritchie and Ken Thompson) where UNIX and C was invented. IBM's T Space and Oak Ridge National Laboratory's Paralell Virtual Machine projects have similar goals.

Going farther back into time, Professor David Gelernter of Yale's Linda project pioneered many of the ideas of distributed computing. Norbert Wiener's concept of cybernetics insipired the dark and dreary (but nontheless great) books, William Gibson's Neuromancer and Neal Stephenson's Snow Crash.

Cuturally, people want to be jacked into the Internet. Of course, Jini does not appear to impact enterprise computing. I contend that it does. The role of enterprise computing will shift from the castle of the coporation to one of its many bastions.

Jini's primary advantage is its use of the Java virtual machine. With the developers' spotlight centered around Jini, Jini will likely have more applications than any of the other competing technologies. And maybe we will see some concrete ways Jini impacts our lives, instead of the vapor Sun has fed to us in the form of Java.


Insert 1: banner.js
// banner.js
// Banner script, for Lost Realities page
var navbar = "";
function startup () {
if (top.MainBanner) return;
document.writeln(`<meta http-equiv="Refresh" content=\"1;URL='+"/cgi-bin/main.cgi?content="+top.self.location+"\">");
}
startup();

Insert 2: main.cgi
#!/usr/bin/perl -w
#This dynamic script generates the banner used for Lost Realities
#The skeleton was ripped out from the sample CGI script from WebMonkey,
#the webzine put out by www.hotwired.com
package main;
#Tell the browser what kind of content we are going to output.
print "Content-Type: text/html\r\n\r\n";
#Process input from the form.
&simple_form;
#This calls subroutines to parse out the variable and states from the URL
my $bannersrc = $main::simple_form{ "bannersrc" } ||"";
my $content = $main::simple_form{ "content" } ||"";
my $navbar = $main::simple_form{ "navbar" } ||"";
#Now, all these checks mean is that the forms have to contain more
#than white space.
#Notice that they default to certain values if they do not exist.
if ($bannersrc =~ /^\s*$/) {
$bannersrc = "/banner.html";
}
if ($content =~ /^\s*$/) {
$content = "/intro.html";
}
if ($navbar =~ /^\s*$/) {
my @navbar = split(/\//, $content );
pop @navbar;
$navbar = join("/", @navbar, "sidebar.html");
# if (! -e $navbar) {
# $navbar = "/sidebar/home.html";
# }
}
if ($title =~ /^\s*$/) {
$title = "Lost Realities Design Group";
}
# This starts the generation of the frame page.
print <<`ENDMENOW';
<HTML>

<HEAD>
ENDMENOW
print `<TITLE>' . $title . `</TITLE>';
print <<`ENDMENOW';
<LINK Rel='stylesheet' Type='text/css' HREF='/styles/lost-realities.css'>
<script language="JavaScript">
<!--
var MainBanner = true;
// -->
</script>
</HEAD>

<frameset framespacing="0" noresize border="0" border="false"
frameborder="0" rows="28,*">

<frameset framespacing="0" noresize border="0" border="false"
frameborder="0" cols="128,*">
<frame name="sidebanner" sframeborder="0" scrolling="no" noresize
margineheight="0" marginewidth="0" framespacing="0" border="0"
target="_top" src="/sidebanner.html">

<frame name="banner" sframeborder="0" scrolling="no" noresize
marginheight="0" marginwidth="0" framespacing="0"
border="0" target="sidebar"
ENDMENOW
print `src="' . $bannersrc . `">';
print <<`ENDMENOW';
</frameset>

<frameset cols="32,*" noresize border="0" border="false" frameborder="0">
<frameset rows="*,190" noresize border="0"
border="false" frameborder="0">
<frame name="sigfiller" sframeborder="0" scrolling="no" noresize
margineheight="0" marginewidth="0" framespacing="0" border="0"
target="_top" src="/sigfiller.html">
<frame name="sig" sframeborder="0" scrolling="no" noresize
margineheight="0" marginewidth="0" framespacing="0" border="0"
target="_top" src="/signature.html">
</frameset>

<frameset cols="128,*" noresize border="0"
border="false" frameborder="0">
<frame name="navbar" TARGET="_top"
ENDMENOW
print `src="'. $navbar . `"';
print <<`ENDMENOW';
frameborder="0" marginheight="0" marginwidth="0" noresize
framespacing="0" border="0" scrolling="no">
<frame name="main"
ENDMENOW
print `src="' . $content . `">';
print <<`ENDMENOW';
</frameset></frameset></frameset> </HTML>
ENDMENOW
;
exit (0);
sub input {
my $name = shift;
my $type = shift || "Text";
my $input = "<Input Type=\"$type\" Name=\"$name\"";
my $value = $main::simple_form{$name}||"";
if ($value !~ /^\s*$/) {
$input .= " Value=\"". &to_weird ($value) . "\"";
}

$input .= ">";

return $input;
}
#simple_form checks if you are using POST or GET as input
#into your form and the reads the input from the form in
#that format. Plops it all in a hash, %main::simple_form,
#so any scope can use it. A little minor tweaking and it
#could be make into a perl package to call into many perl
#programs.
sub simple_form {
my $method = shift || $ENV{`REQUEST_METHOD'}||"GET";
#Make sure we it's in uppercase.
$method = "\U$method\E";
my $query_string;
if ($method eq "GET")
{
$query_string = $ENV{`QUERY_STRING'};
}
elsif ($method eq "POST")
{
$query_string = <STDIN>;
}
if (!defined $query_string)
{
#If there is no $query_string we cane do nothing, so stop
#here.
return;
}
my @query_string = split (/&/, $query_string);
my $name;
my $value;
my $input;
foreach $input (@query_string)
{
($name, $value) = split (/=/, $input, 2);
$main::simple_form{ $name } = &to_normal ($value);
}
}
#This subroutine looks for characters in a string like %__
#and converts that hex value that __ should be to normal
#characters.Forms have a nasty way of converting characters
#it don't like to the %__ format.
sub to_normal {
my $string = shift;;
$string =~ s/\+/ /g;
$string =~ s/%([0-9A-Fa-f]{2})/sprintf("%c",hex($1))/ge;
return $string;
}
#This subroutine takes every letter in a string and converts
#it them to the &#__; format, where __ is the ASCII value
#of that string. Why do it with every character and not just
#with the characters that it needs to be done with? Two
#reasons, First is that this is easer to do, and second is
#I don't remember off the top of my head which characters
#it needs to be done with.
sub to_weird {
my $string = shift;
$string =~ s/(.)/"&#" . ord($1) . ";"/ge;
return $string;
}



This page has been accessed  $pagecount"; ?> times. Since Sat Oct 24 21:53:33 EDT 1998