Josef “Jeff” Sipek

2015-06-15

Going under the hood of Inbox — translating Java to ObjC and Javascript

Open-sourcing Facebook Infer: Identify bugs before you ship — a static analysis tool for C, ObjC, and Java

TrainFever — a game inspired by Wikipedia article: Transport Tycoon

How Computers Work: A Journey Into the Walk-Through Computer

Why “Agile” and especially Scrum are terrible — a thorough “rant” about agile and scrum and their effects on overall productivity

Sharing the Computer's Time

Earlier today, someone I know sent me this Time article. I started reading the article, but something seemed a bit odd. To not spoil it for you, here’s the text of the article:

The computer has become a main stay of big business in the U.S., but most small and medium-sized companies still find it too expensive for normal use. Last week two of the biggest computer makers, General Electric and Control Data Corp., introduced new systems that will offer the small business man the same computer advantages as the biggest corporation. Their move to what is called “time sharing” is part of a growing trend to market the computer’s abilities much as a utility sells light or gas.

Dial for the Answer. Business some time ago began using computer centers to process data cards, count receipts or keep track of airline reservations from distant offices. Time sharing goes much beyond that. It links up as many as 500 widely separated customers with one large computer, lets each feed its own problems to the machine by telephone through a simple typewriter console. The time-sharing computer can answer questions in microseconds, is able to shift back and forth swiftly among the diverse programming needs of many companies, small and large.

Although still in its infancy, time sharing is already being used by business, government and universities. Boston’s Raytheon Co. prepares contract proposals, and Arthur D. Little solves problems in applied mechanics through a time-sharing system run by Cambridge’s Bolt Beranek & Newman. An other time-sharing firm, Keydata, will soon take up the problems of Boston distributors of liquor, books, automobile parts and building materials. Control Data, which introduced two time-shared computers last week, will open the U.S.’s biggest sharing center in Los Angeles next year. General Electric already has 88 customers, last week added a New York center to its service centers in Phoenix and Valley Forge, Pa.

From New York, IBM gives shared-time services to 50 customers, including Union Carbide and the Bank of California. Under G.E.’s system, a company can rent the big G.E. 265 for 25 shared hours a month for only $350, compared with a normal monthly rent of $13,000 for individual computers.

Plugging Them In. Some companies have discovered that time sharing has reduced to one-fiftieth the time needed to answer a problem, have found access to a large computer more profitable than ownership of a small or medium-sized machine. The Massachusetts Institute of Technology, one of the pioneers in time sharing, now has 400 users for its IBM 7094 computer, has served scientists as far away as Norway and Argentina. Experts predict that by 1970 time sharing will account for at least half of an estimated $5 billion computer business, will be used as widely and easily as the telephone switchboard.

Yep, that’s right, this article is dated: Friday, Nov. 12, 1965. :)

chdir

This is probably as old as the internet itself…

Newsgroups: comp.unix.questions
Subject: NEED HELP FAST !!!!!!!!!
From: cs245@cs.somewhere.edu (The Unknown Hacker)
Date: 7 Apr 92 12:55:45 EDT
Organization: UNIX Guru's R Us!


HI, EVERYBODY!!!!
Sorry if this is a FAQ, but I've heard that a FAQ is something
everybody already knows, but since I don't know the answer to this
everybody doesn't know it, so it can't be a FAQ, so here I go ...

I've just created about the most Awesome change directory program ever
written.  If it doesn't find the target directory through an
exhaustive CDPATH search, it uses the most sophisticated spelling
corrector (based on a thorough analysis of Webster's on-line
dictionary, and a list of the 1000 most common directory names on Unix
systems throughout the world) to try to find a match that way.  If
that fails, then it tries to create the directory, and if that fails,
it opens /dev/uri-geller, and reads the mind of the invoker to try to
figure out what to do.  It executes with almost 0 impact on system
resources, and is most truly the finest/tightest code ever to grace
the memory of a computer.

The only problem is that it doesn't work.  No matter how I've tried,
once I've done that last chdir (and I've tried doing several identical
chdir(2)'s in a row to see if that would make the directory change
more "sticky" but that didn't work) I always end up where I started in
the shell I started my program in.  I've tried setting the PWD, and
CWD variables with putenv(3), but that doesn't seem to have any effect.

What it really seems to me, is I need some way of telling the shell what
directory it's supposed to be in when my program is done executing.
Put more simply, I need a way of modifying the environment of a parent
process.

E-mail responses only.  There's too much noise on this bboard for me to
be able to read it.  And HURRY!!!  I need to turn this project in by 5pm
tonight !!!!

 +----------------------------------------------------------------------------+
 |         _   /|                                                             |
 |         \'o.O'           UNIX Guru in training                             |
 |         =(___)=                                                            |
 |            U             Joe Programmer                                    |
 |     ACK.. THPPT!!!!      cs245@cs.somewhere.edu                            |
 |                                                                            |
 +----------------------------------------------------------------------------+

First Edition UNIX

As I mentioned over a week ago, people have found copies of First Edition UNIX source. Today, I managed to accidentally stumble on a google code project with said code: unix-jun72.

You can check out the entire code from the subversion repo:

svn checkout http://unix-jun72.googlecode.com/svn/trunk/ unix-jun72

Then look at something like pages/e01-01…

$ cat pages/e01-01 
/ u1 -- unix

unkni: / used for all system calls
sysent:
	incb	sysflg / indicate a system routine is
	beq	1f / in progress
	jmp	panic / called if trap inside system
1:
	mov	$s.syst+2,clockp
	mov	r0,-(sp) / save user registers
...

Pretty sweet, huh?

Powered by blahgd