eReader options

At ~70K population, 24 sq mi?

Tucson (236 sq mi) 526K

The towns sharing a *border* with Tucson (that I can remember, off the top of my head): Catalina Foothills 50K Casas Adobes 68 South Tucson 5 Tucson Estates 10 Flowing Wells 15 Vail 10 Littletown 1 Tanque Verde 16 Drexel Heights 24 ===== 189K

Add places "nearby" (i.e., a few miles) like Marana, Oro Valley, Green Valley, etc. and that's probably another 200K. I.e., that's just "commuting distance" (I'll ignore the twits who commute to feenigs!)

Now:

I can't remember enough of the adjoining towns from Denver so I'll skip that.

Boston (89 sq mi) 645K

With adjoining towns: Cambridge 107K Somerville 78 Revere 53 Chelsea 37 Watertown 32 Brookline 58 Newton 88 Needham 28 Dedham 24 Milton 27 Quincy 93 Everett 42 ==== 667K

Then:

Chicago (234 sq mi) 2719K

And, *adjoining* suburbs (this is a bit harder to remember so I'll only try for the easy ones -- Vic can tell me what I've missed):

Skokie 65K Evanston 75 Park Ridge 37 Niles 30 Elk Grove Village 33 Elmhurst 45 Oak Brook 8 Oak Lawn 56 Berwyn 56 Cicero 84 Des Plaines 59 ==== 548K

I won't tackle NYC... :>

Note that the Boston metro area would fit *inside* the city limits of Chicago so you actually have more locations (retail outlets) available in a given distance. By contrast, Tucson is roughly the same size as Chitown with 1/5th the population! And, once you're out of the immediate vicinity, there's NOTHING 'til you get to feenigs!

Here, I can wander through any of the (listed) adjoining towns without really knowing when I've crossed into one. But, the distances get to be pretty long and roadways poorly placed. E.g., I could drive from downtown Boston out to Medford/Lexington/Dedham/etc. in less time than I can get to the nearest *interstate* -- IN TOWN!

And, very few things are *made* here (contrast with Chicago) so I'm really only looking for retail outlets, not manufacturers.

OTOH, pity the 500 souls who live in Picacho where the "big city" is Eloy at 16K! :-/ (I wonder if they have a gas station, there?)

Reply to
Don Y
Loading thread data ...

FORTH. The core language is a bit arcane but you can create words that are suitable for the end user. I did one project to develop a simple interface for QA engineers who were using a robotic arm to pick and place the components under test.

Reply to
rbowman

I think the first Walmart was like that for a lot of people here. Progress for me was when they built a supermarket on the outskirts of town so I wouldn't have to drive all the way in. I suppose I should have known it would be followed by Old Navy, Taco Bell, B&N, BestBuy (formerly Future Shoppe) Lowe's, Petsmart, and so forth.

Since RatShack closed I don't think I could scare up a capacitor in town. Chicks, hay, and stock tanks are no problem.

It hardly qualifies as decent, but there is a Johnny Carino's. There are a couple of others that I've never been to. I've never seen good stats but from my experience there are more Hmong in Montana than Italians.

It's a large sporting goods chain, or outfitters as they prefer to be called. Much of their business is direct marketing but the brick and mortar stores tend to be dramatic. Their customer base probably also gets LL Bean and REI catalogs and aren't looking for the lowest prices.

In the '80s I took a contract at Ft. Wayne. There was a legitimate coffee shortage, with price increases and empty shelves. However one weekend I drove down to Indianapolis and found the shortage was over. Apparently the news never made it to Ft. Wayne. The population is about

250,000 but the supermarkets knew a good thing when they saw it.
Reply to
rbowman

How can you say that? There's Sells. Phoenix is a little closer to Why than Tucson but I prefer Tucson for shopping. It seems a little easier to get around. North 4th also has that funky '60s ambiance.

For a town of 4000 Ajo can fill most run of the mill needs but sooner or later you need a trip out to the world. After a day of dealing with Tucson or Phoenix it still is good to get back to the desert.

Reply to
rbowman

It isn't appropriate. Recall, you're dealing with "QA Engineers", not housewives, plumbers, accountants, etc.

The two biggest issues with FORTH are:

- too hard to enforce/check syntax. I.e., "Is this combination/sequence of words legitimate/valid?" You can make a word do damn near anything so no easy way for the user to *see* what it expects "upstream". And, no way to verify ("at compile time") that the sequence is even legitimate

- the RPN nature (stack machine) is incredibly CONSISTENT -- but, counterintuitive. People are more likely to think along the lines of "do SOMETHING to THIS and THAT"; not "THIS and THAT have SOMETHING done to them"

Beyond that, it also doesn't conveniently lend itself to the sorts of services that an "applet" needs to avail itself of (in my world). I.e., I deliberately want the heavy lifting to be done in services that are provided to the user: recognize(&face); speak(prompt); listento(response); etc.

So, there is inherently a high degree of parallelism. IME, people have a hard time dealing with parallelism/concurrency. But, can more readily think about it in a procedural framework: "I expect to have been done at this point..." (so the code can implicitly wait for it, *then*). The applet writeer can think in more linear terms and the "environment" can exploit parallelism for efficiency and abstraction (hiding lots of mechanism from the user/writer)

It's REALLY a hard problem! Complicate it by the fact that you (I) want to address a wide population of potential users -- each with potentially different abilities and HANDICAPS! I.e., something that requires lots of keystrokes to compose would be difficult for a movement impaired individual to write; something with lots of cryptic "vowel-less" abbreviations would be hard to "speak" to a visually impaired writer; etc.

OTOH, only the "hard" problems are worth the time to undertake! :>

Reply to
Don Y

With all 3000 souls? :> Sells is about as far as Casa Grande (pop 50K). And, Casa Grande has the outlet stores -- so you're a bit better off than shopping at the Sells Circle K! ;) (do they even *have* one??)

OTOH, if you're native O'odham, maybe that's enough?

Each year it gets worse. The bozos^H^H^H politicians don't have the stomach to make the infrastructure investments that are long overdue. Some mornings, it takes us 15 minutes to drive the 2 miles to the post office -- and the first 3/4 mile of that is smooth sailing OUT of the subdivision!

Also changing. The street car has revitalized parts of town (if you can call the change "revitalizing"). So, commercial rents have headed north which brings in more money-grubbing businesses instead of the more "eclectic"/bohemian.

Well, how many different brands of toilet paper, soap, etc. does one REALLY need? :>

SWMBO uses a special sort of paper towel for her art (no pattern -- embossed

*or* printed). It was a bit of an effort to find it even here (though definitely NOT unobtanium). Living in Why, Sells, Sahuarita even Vail would probably have required a trip *in* to find it.
Reply to
Don Y

Yup. When they said "If you built it, they will come" they were talking about the OTHER BUSINESSES! :>

I don't think they even *sell* discretes anymore!

Here, all Mexican. Though I've found a few "passable" chinese joints.

Ah. Not the sort of place I'd frequent! :>

By extension, why offer *anything* unless you have to (in order to remain in business).

"Sure, we carry toilet paper. Do you want THE single ply or THE two-ply?"

Reply to
Don Y

We have some good Thai restaurants even though most are run by Hmong trying to pass. One local Hmong dynasty dropped their restaurant and now specialize in outdoor events. They also expanded to teriyaki and Dutch funnel cakes. Whatever sells and they can follow a recipe book as well as anyone.

When I lived in Dover, NH there was a large Greek community. Again most that entered the restaurant business passed as Italian. That upset me since I like Greek food.

There is one decent Mexican restaurant run by actual Mexicans. They went the other way, starting with a roach coach and eventually finding a permanent home.

It's a hard market. The ethnic communities are very small and the rest of the market wants something exotic -- but not too exotic. I really miss the India Pavilion in Cambridge; I worked on Mem Ave and could walk to Central Square for lunch.

Reply to
rbowman

Actually, there is a Basha's. Not the biggest but at least something. Casa is a little closer to Why, too. You used to have to go to Casa for a driver's license if you didn't want to go to Tucson. Or maybe plates. Something that had to be in Pima county.

Reply to
rbowman

You can sometimes hide the RPN but it takes work. I've got a HP 16C calculator. It was always fun to leave it laying around. For extra credits, set it to hex mode. If they got past the RPN, 45 73 + is WHAT?

Semi apropos, I saw a cartoon recently that asked 'How do you generate a random string?" "Put a web designer in front of Vim and tell him to save and exit."

formatting link

Reply to
rbowman

On 1/17/2016 3:38 PM, rbowman wrote:

I took a job at a shop that used "split octal". I.e., 0xFFFF would be written as 0377377. Entirely different mindset! (and you actually learned to debug *in* octal -- nothing symbolic! Gee, I wonder why they went belly-up?)

I'm basing much of my scripting language on Limbo. To give you a feel for the (original) syntax, while being HIGHLY cooperative in choosing identifiers (my comments interspersed /* style):

/* declare "link" as a variable of type (communication) channel whose contents will always be tuples of (integer, string) */ link: chan of (int, string);

/* declare "print" to be a shorthand reference for the print MEMBER of a module of type "Sys". This is a typing economy (see below) */ print: import Sys;

/* init() is the equivalent of main(). The first argument, by convention, REFerences a drawing context (think display) and the second argument is a list (not array!) of strings -- like argv. As the dummy variables chosen here for each of these are "nil", we're discarding any means of referencing those by identifiers -- nil is sort of '', '\0', NULL, etc. */ init( nil: ref Draw->Context, nil: list of string ) { /* two variables that reference modules that are dynamically loaded. the first references a module of type "Sys" and the second of type "Bufio". Think of them as DLL's of sorts. Within the DECLARATION of each (not shown, here), there is a pathname that indicates the location of the module in the filesystem. By convention, the PATH member of each of these module type declarations is a string constant indicating that path. E.g., /modules/sys.m */ sys = load Sys Sys->PATH; bufmod = load Bufio Bufio->PATH;

/* declare (AND DEFINE!) a variable to reference the stdin file descriptor. The Sys (uppercase) module type has a member called "fildes" that returns a file descriptor object corresponding to the argument presented. E.g., '0' being stdin, by convention. Note that "sys" (lowercase) is a live variable that references a "Sys" type module. So, sys->fildes(0) invokes the fildes method with argument of '0' to yield the "stdin" filedescriptor */ stdin := sys->fildes(0);

/* use the fopen() member in the Bufio module type (which we can reference through the bufmod variable -- see above) to open the stdin file descriptor. The OREAD constant in the Bufio module declaration is usaed (by convention) to indicate read mode */ buffer = bufmod->fopen(stdin, bufmod->OREAD)

/* previously declared link as a channel type. Now, actually instantiate a channel of that type and let link reference it */ link = chan of (int, string);

/* create a new thread to run "get_data()" while passing the communication channel we just created to it as an argument */ spawn get_data(link);

/* continue by wiring "put_results" to that same communication channel */ put_results(link); }

/* declare 3 manifest constants having values of 0, 1, 2 (iota means ++) */ DONE, WORD, NADA: con iota;

/* get_data takes a communication channel of (integer,string) tuples as its sole argument. It's been spawned to run as an independant thread */ get_data( destination: chan of (int, string) ) { /* declare (the role of the ':' in the assignment) a variable called "aString" as having the same type as the return type of the gets() member of the Bufio module type (see above). Then, DEFINE (the role of the '=' in the assignment) the value of that variable to be the result of that gets() invocation -- which happens to get a string of characters up to a '\n' from whatever filedescriptor is associated with the "buffer" on which it is invoked. Keep doing this until the string returned is empty (nil) */ while ((aString := buffer.gets('\n')) != nil) { /* split the string, above, into words delimited by space, tab, newline. Use the "tokenize" member of the Sys module (referenced through the "sys" variable) to do this, returning a tuple that consists of the number of tokens and a LIST of tokens, each a string in itself. Note the use of ":=" to DECLARE and DEFINE the variables in the tuple on the left side of the assignment */ (words, wordlist) := sys->tokenize(aString, " \t\n"); /* if no words, then the input must have been terminated. Send a tuple down the communication channel indicating that */ if (0 == words) destination LINELENGTH) { print("\n"); position = 0; } /* print the token -- "print()" is similar to printf() */ print("%s ", token); /* update character position on the line */ position += len token + 1; DONE => sys->print("\n"); # don't have to use the imported alternative! exit; } } }

Notice all the syntactic sugar? And, the typical nod to programmer laziness ("int" instead of "integer" or "number"; "hd" instead of "head" or "car"; "tl" instead of "tail" or "cdr"; ':' vs. '=' vs. ":="; "nil" instead of "empty" or "unused"; etc.).

Reply to
Don Y

Great if you need a quart of motor oil or a new hammer! :>

Dunno. Casa Grande is just "halfway to feenigs" in my mind. If your eyes were closed as you passed by, you'd be hard pressed to decide if you needed to continue in the same direction -- or turn around!

Reply to
Don Y

Free ebooks

formatting link

Reply to
dangerous dan

I don't think Bashas carries hammers. The do have the pan dulce little pigs I'm fond of.

Reply to
rbowman

Don Y posted for all of us...

Work for a school district. Add teachers, administrators, support & maintenance users the add 20% to start. Don't worry about the kids because the admin doesn't, they help each other, and the older ones that cause problems can't keep their mouths shut on each other and don't like their "stuff" being taken away.

Reply to
Tekkie®

rbowman posted for all of us...

Cabela's has one of their "mega" stores near me. Their prices are never the greatest unless it's on sale. If you like firearms you are in heaven-as long you don't go Saturday. Then buy it at better price at your favorite dealer. Their clothes selection used to be good but now sucks, at least from my wifes and my view. They don't pay employees enough; even in this remote area; to get and keep help. The proposed buyout from Bass Pro Shops has not helped their business. It's sad. You can carry concealed.

Reply to
Tekkie®

Ed Pawlowski posted for all of us...

+1 Also your tax $$$ at work. They also have ebooks but I like the "paper" experience. If they can't get it I either buy it used off Amazon, or new off Amazon-if I have to have it... or bag it. I had a buddy whom had a list of every book he ever read. One a week for many years in a composition book. He retired and haven't heard from him. Hmm The state pays for the ILL.
Reply to
Tekkie®

rbowman posted for all of us...

HAAAAA funny one...

Reply to
Tekkie®

On Mon, 18 Jan 2016 12:39:42 -0600, Tekkie=AE wrote= :

Some cut.

There are used books for sale on Ebay also. Pretty cheap and I think the money goes to charity sometimes.

-- =

Using Opera's mail client:

formatting link

Reply to
Dean Hoffman

HomeOwnersHub website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.