The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
They were playing "Love Bites" and "I Miss The Misery" on the radio station fairly frequently until recently (just realized I haven't heard either in a few weeks though). Haven't taken the time to look for more yet, but I wanted to listen to music right now, so this will do
I second that. A great album (and so was their first album from 2009). I saw them live a couple of weeks ago. They did acoustic versions of some of the songs. Still great!
Lzzy Hale sure got a fantastic voice!
Edit: Fixed a typo (removed the 'i' from her name).
Alcohol. The cause of, and the solution to, all of life's problems - Homer Simpson
Intel's Perceptual Computing Challenge results were scheduled to be announced on 11th March. It is not yet declared ( due to overwhelming response to the contest ).
For last two weeks I have been in an infinite wait loop. Mind is totally out of control. No break ( read no rest) condition, no GUI( read no work). Just keep refreshing all relevant pages.
// logger is full and throw not permitted.
var result= WatchResults();// result is nullable
Update: Responses have reminded me of several laguages that I had forgotten.
The responses to my post about my first computer got me thinking about my first languages.
I think they were
MC 6800 Assembler
8086 Assembler (and worked on a Small C port on an original IBM PC)
MC 6809 Assembler (wrote a whole OS for traffic control systems)
Forth (the MC6809 seemed to be designed to implement Forth)
C++ (including Turbo C++)
During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack).
For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K.
What extremely resource constrained development do you remember from the stone age?
What extremely resource constrained development do you remember from the stone age?
Using all of Apple II memory, including unused holes in various places in memory. I recall one piece of code of mine being wedged into lo-res video memory. Then there was the bank switched ram.
I also remember TSRs in DOS, where we would overwrite the environment block with code. (I also have a vague memory that there was a hole between the text memory and VGA memory that you could slip a small TSR into.)
For me it was:
MACRO-11 (assembly for PDP-11)
As far as resource constrained, there was a large system using Pascal and FORTRAN during universitry days, some embedded C projects, and a system in QBASIC. (It was the only thing available.) We were always pushing the limit of what it could handle as the "database" grew.
More recently I've run out of memory on modern hardware in a C# (WinForms) application. That forced me to analyze the codebase from before I joined the project looking for objects not being disposed that should have.
Always *enjoy* those problems.
I often make very large prints from unexposed film, and every one of them turns out to be a picture of myself as I once dreamed I would be.
The major ones for me (in order of time learned):
C++ (this is when I actually learned how to program...not so much of a jab at the VB languages, as much as I enjoy doing so, but it wasn't much more than copy/pasting code until this point)
But I've played around in many other languages too (as I suspect most people here have), really trying to get something going with a functional language for kicks (though, I've been playing around with Ruby lately, and it's not far from it). As for interesting projects...well I honestly never finish personal projects, so they don't end up being very memorable
I faintly remember ordering a build your own computer kit through some English gadget magazine at the end if the 70'ties - I think I managed to assemble it according to the instructions. I guess it wasn't a real computer, but I managed to get a number lights to blink in the prescribed order.
My first real computer was an Acorn BBC model B which was, at the time, an extraordinary piece of hardware.
>My first real computer was an Acorn BBC model B which was, at the time, an extraordinary piece of hardware.<
The whole machine was a marvel of clearly thought out integration between hardware and software. Perhaps THE best example of a totally accessible computer system. The Archimedes wasn't half bad either, I wonder what happened to those nice ARM people. LOL
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan
I started with 6502 Machine code.
Learned enough Basic to write a quick and dirty assembler
This was on the Commodore Pet
The screen was character based (no pixels in them days!) but did have a character set that included 2x3 'blobs'
where X was either on or off. Space = all off.
I wrote the machine code (in pencil, in my school rough book) to firstly allow me to draw 'points' by calculating which character on the 80x24 character screen the point occurred in, then taking the character that was there and working out what new character to replace it with in order to turn on or off an individual 'blob'!
Then I wrote a line drawing version so I could draw straight lines at any angle.
Then ( and this was what it was all leading up to!) I wrote a version of missile command!!!
My first language was WATFIV on an IBM /360-65. I then regressed to Fortran IID, SPS IID and machine language on an IBM 1620. Then assembly, machine language, Fortran on PDP-11, then ... (lotsa stuff elided) ... Java.
A fun project I did was calculating the first several thousand digits of pi using 10000 digit floating point words on the 1620. This was in the days when there were only about 10,000 digits known at the time (that I could find; there was no Google then).
I also wrote an operating system in machine language for PDP-11/05 with 2 X 8K core memory as storage (no disk), keyboard/thermal printer (console) and alternate crt terminal (to avoid paper consumption). I wrote it in assembly on paper, assembled to machine code by hand and typed in each word via boot ROM. Lots of fun making lights blink and show patterns. The one and only app was a text editor. Array overruns and memory copy indiscretions had a bad habit of clearing memory.
I also wrote an operating system in machine language for PDP-11/05 with 2 X 8K
core memory as storage
By any chance did you go to Wright State University[^] in the late 70's through early 80's? That matches a two course sequence I took there, 'Introduction to Real-Time Programming'. The first course was really "learn PDP-11 assembly language". The second introduced concurrent programming. The labs included a PDP-11/15 running RSX-11 that we used to edit and assemble our source code, and then two PDP-11/05's for testing. The 05's included core memory that mainly stored the RT-11 bootstrap code, which student apps routinely overwrote. You then had to toggle in the bootstrap, about 80 words worth, via the front-panel switches. I had to do it a couple of times. One guy in our class had to do it so often he could do the whole thing in less than 60 seconds. This was probably my second-favorite class in school (first favorite being the computer graphics sequence).
Nope - off by almost a decade. I started the /360 stuff in 1969 with high school in Winnipeg, then University of Manitoba and beyond. My PDP-11/05s (2 of them) were retired equipment from work that I got to take home (without most of the attached digital lab equipment, sniff).
I wrote a Motorola 6800 version of DEC Teco (text editor with extensive scripting capabilities) and Runoff (text processor using embedded formatting commands like .center) back in the mid 70s - Teco took less than 12k and Runoff was even smaller. The programs were revised for the 6809 when that processor was introduced in the early 80s.
MS Basic on the ZX-81 and ZX Spectrum.
C and C++ on my first PC, but only dabbling. Never wrote more than Hello World that worked.
TypeScript (just starting)
First computer language, 1965: EDSAC2 Autocode in a programming course taught by Dr. Maurice Wilkes (who wrote the first book on computer programming, published in 1951).
But there was a huge resource-constraint! Computer time was so valuable that we students were not allowed to run our programs. Dr. Wilkes desk-checked them.
Then, for an interesting "software" project, later in 1965, I worked as a programmer for Electronic Associates who manufactured analog plug-board computers. One of my first projects was a real-time oil-field simulation on an EAI 360 which was somewhat bigger than this: http://www.technikum29.de/shared/photos/rechnertechnik/eai180.jpg - programming was done with wires.
My step-dad bought a COSMAC ELF 1802 single-board computer. It originally had two 7 segment displays and a hex keypad. John, an electrical engineer, added a teletype interface and hooked the thing up to an old KSR 33 teletype. We found a version of Tiny Basic for it that took up about 1.3K of the 2K of RAM. After fat-fingering in the Tiny Basic, and then painstakingly patching it to do I/O via the teletype, we kept the thing running using a car battery as backup.
The most extraordinary program I remember us writing for the thing was a mortgage amortization table program. Tiny Basic only had 26 16-bit integer variables named A-Z, so you had to do fixed point arithmetic and manage overflows and large values yourself. The program ran overnight, chugging out a line of data every minute or so.
We had a forward-looking Maths teacher in my first year at senior school, 1969. He taught us the principles of programming by having us navigate him around the classroom using only commands "Forward", "Right", "Left", "Stop". Think he must have had quite a few bruises. After that he introduced us to a 4-bit machine code (Elliott 903) and later Fortran. We punched cards using a mechanical hand-held punch, sent them off by post and they'd arrive back about two weeks later with our punching and syntax errors. Took a whole year to run the most basic of programs! Later we had a teletype connection to a University in the North-east and could type up programs off-line onto paper tape, then load them over the dial-up line. Programs were effectively limited by the length of a spool of paper tape. I pushed that to the max when, having explored the boundaries of that first limited Basic, wanted to learn another language and taught myself COBOL. There was no Cobol compiler, so I wrote a Cobol interpreter using Basic. That was an interesting concept, BUT it did work! That early basic was constrained to single-character data names, but you could use arrays, so when you ran out of data names you just had to declare arrays of them and so A(1) could be totally unrelated to A(2) etc..
On to Uni where I extended my Fortran (Running on ICL mainframes, remember George III, MOP and MultiMop??) and the rest is history.
Oh, and that Maths teacher had a word of advice for me when I left school: "Never go into Data Processing, you'll never make a living from it". Maybe not so forward looking, after all...
Time was, it was hard to get anything done on a minicomputer unless you coded in assembler. Everyone programming minis worked in assembler at that time, which severely restricted the market for them...but made those of us with "assembler muscles" a rather valuable commodity. Of course, we often had to flex those muscles in some rather interesting ways.
One of my earliest commercial gigs had me programming the Data General NOVA 1200. If you've never heard of it, God bless you. It had a bare 32K 16-bit words of core memory, no floating point, no hardware multiply or divide, no stack, a single-level interrupt system, only four 16-bit registers, and an addressing scheme from Hell. Everyone who worked on it swore at it more or less continuously.
Our shop programmed and sold payments-processing systems that were state of the art at the time, though they were utterly obsolete before the 80s were very old. Some of our customers were very large companies. Telephone companies, in particular. And some of them had to deal with amounts that you couldn't fit in 16 bits. So we had software multiply and divide routines for 32-bit arithmetic to handle the larger amounts.
Then came The Really Big Customer: the customer whose figures wouldn't fit in 32 bits. Suddenly we needed 48-bit multiply and divide capabilities...but the payments-processing program had already grown so large that we had less than thirty words of memory left unused.
I was the stuckee.
I got it done, but it took, as the saying goes, "every trick in the book." At the end of the process I knew more about the NOVA 1200 machine language and binary arithmetic than I'd thought there was to learn. I've (mercifully) forgotten just about all of it.
Today, the microprocessor in your microwave oven has about 100 times the power of the NOVA 1200. But I'd bet no one has written a machine-language triple-precision arithmetic package for it. Ah well, it probably has hardware floating point.
(This message is programming you in ways you cannot detect. Be afraid.)
First language was Fortran IV in college loaded via punch cards on the U of H computer. Lots of fun. We could have the mainframe mostly to ourselves at night because I lived on campus and could take the basement halls from the dorms to the lab in any weather.
TRS80 and BASIC
CPM and later MPM machine and CBASIC (an interpreter)
MS DOS machines and CBASIC (Compiler version)
Tried Forth, Pascal, assembler, C
Still use CBASIC compiler version and Visual Basic for business aps.
Most interesting project was a text editor I wrote WTTHOUT using a text editor to enter the code.
echo dim a$(10)>nate.bas
echo for j% = 1 to 10>>nate.bas
echo input "enter a line";line a$(j%)>>nate.bas
echo next j%>>nate.bas
I then compiled nate.bas (Not Another #$!% Text Editor!) to get the next version of the editor. The result was a somewhat limited, but full screen text editor I still use today.
Your story reminds me of mine. I also started with a TRS-80 "Color Computer 2" and Microsoft's BASIC, to which I added 6809 Assembler and then, C (which I had to get OS-9 to obtain).
The problem was, OS-9's line editor was horrific; I couldn't stand working with it. So the first thing I did was write a line editor to replace it that worked more like the one on NCR ITX. (If anyone has used ITX's line editor, they know two things; a) my goal wasn't overly ambitious and b) OS-9's line editor must have been really bad, for an ITX style editor to be better.)
On the plus side: I got to learn about pointers and doubly-linked lists and so forth which was a great start on C. It was also a very neat experience to spend a few hours in OS-9's editor writing just enough to get my own editor started, and then code the rest of it in my own editor.
On the minus side, the text editor compiled to a little over 10K which left something like 5K left for editing!
So setting up an editor I could stand ended up being the last significant thing I did on OS-9 because there wasn't enough memory space to do more. I remember sitting down one day to write an enhancement to swap lines between disk and memory, and deciding that it just wasn't worth doing for a computer that connected to a TV.
Last Visit: 31-Dec-99 18:00 Last Update: 22-Sep-17 23:59