|
I may have posted about this before, I should check.
Waaayyy... back when I was in college (circa 1990), working on my BSCS, I had a co-op job.
There was a Nice Young Lady there who caught my eye... she kept printing (dot-matrix, fanfold) long lists of numbers. List after list after list... The printers were just outside my office.
Eventually, I went to ask her what she was doing.
First, she had to validate the numbers and correct any errors. Then she had to transcribe them into a report. The reports went to a state agency.
Once the process was explained to me I said, "I can write a program to produce the report, then all you have to do is validate the report" (it was a one-page report) -- it would not only be legible, but it would save paper and printer ribbon at least. If I recall correctly, I also wrote something to detect and report any obvious referential integrity issues in the database -- don't get me started.
And so, after discussing it with my boss, I did just that.
Thereafter, a simple command (this was OpenVMS) would spit a report out of the printer and she would review it and fix any obvious data errors (e.g. columns with values greater than 100%).
The company has since gone out of business.
Why is this project meaningful? Because the Nice Young Lady and I have been married since 1992.
I don't think any of the other projects I have worked on have really had an impact on the world at large.
Edit:
Re: Programming Paid Off [^]
Re: Top 10 Pick-up Lines the Code Project Ladies Are Sick of Hearing[^]
modified 1-Jun-23 14:35pm.
|
|
|
|
|
My story is not as good. In fact, it didn't have a happy ending.
In the early nineties, before I incorporated, I got a gig to create a payroll system for a national fitness company. The payroll system was just for the professional trainers, who had a complex method for determining how they would be paid. For the sake of argument, this was bonus pay. There was a one-person department that did all this processing. As the company expanded, it was taking this one person nearly the full month to process the payments for the Personal Trainers. The company was worried that they soon wouldn't be able to make payments in time, so I was hired to analyze the process and build a solution.
The computer program that I developed solved the problem, reducing the process from weeks to days (data entry was now the most consuming part of the process). Everyone was happy, except when they decided to lay off the person who originally did the process. Yes, it was sad, but that wasn't my call. This was the last gig I did for the fitness company before I moved on to another gig. Maybe not a good ending, but it was a big accomplishment.
|
|
|
|
|
LucidDev wrote:
There was a one-person department that did all this processing. As the company expanded, it was taking this one person nearly the full month to process the payments for the Personal Trainers.
Reminds me of a major company I used to work for. When they had trouble, they hired a management consultant who talk to the employees, then wrote a report detailing what we told them. Their conclusion?
Due to interruptions for special management reports, We were kept busy for 15 months producing the annual budget and had no time to do productive/profitable work.
Not sadthat I left there.
CQ de W5ALT
Walt Fair, Jr.PhD P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
I don't have a publicly meaningful project, but there is one that's special to me called Trace Viewer. It's a Windows app that connects via TCP/IP to one or more servers embedded in our product software. We build commercial ink-jet systems, so several computers running multiple processes each. TV captures messages from the servers and records them to one or more files. Trace Viewer has become indispensable for developing these complex multiprocessor, heavily multithreaded applications.
Trace Viewer's been under development and maintenance since I started it in 2000. When my normal work tasks aren't providing satisfaction, I'll spend time tinkering with it. I've learned a lot, especially Windows UI in the process. Let me put it this way: CListCtrl (actually, CListView ) is my bitch.
I'm rather proud of it.
Software Zen: delete this;
|
|
|
|
|
Back in late 80's I created a system used when maintaining Concorde. It measured the loads on jacking points whilst the plane was under maintenance, took the information from a "black box" converter and used it to update a graphical display of the plane. There was a monster siren attached to the trolley to be sounded if any load exceeded a predefined maximum. All on the latest IBM PS2 using Turbo Basic. AFAIK it remained in place until Concorde was retired.
|
|
|
|
|
Very cool! Did the siren ever sound off (outside of test environment)?
|
|
|
|
|
Ha! There's a funny story related to that but it can't be told in a public forum 
|
|
|
|
|
Congrats. I'm retiring this year too. I've built a lot of the software my company uses internally, but the most meaningful project was building my first acoustic guitar, for me. More will be built in retirement.
Best wishes on your next adventure.
|
|
|
|
|
A couple come to mind. A pro-bono project for Black Mothers Breast Feeding Association in Detroit MI -- it was a website to schedule educational meetings and participants would surveys, the survey results were used to apply for grants and federal funding.
The other project performed failure analysis on complex switch rings on communication satellites, to determine what, if any, "switch" configurations could be directed to spare TWTA's (Travelling Wave Tube Amplifiers) when a main TWTA failed. These switch rings are so complicated it's impossible for a human to figure out (and this was before the days of AI, hahaha.) What was cool about this project was that I achieved something not even the PhD's could figure out. So, overall, the communication satellite's lifetime in orbit was extended as a result of my analysis software which led to better switch ring designs.
|
|
|
|
|
I love hearing about the 80's and 90's projects. All us retirees can relate. Developing software to support the Olympics had to be really satisfying. One of my most meaningful (satisfying) projects was an Ethernet interface (hardware and software) for Gould mini computers in the 80's. Ethernet was around, but by no means mainstream. We used this custom hardware for communication between mini computers running flight simulators for what is now the Air Force Research Labs (AFRL). This hardware and software was optimized for low latency. I provide the users with three routines. EtherInit, EtherOut and EtherIn. No TCP stacks here. Way too much fun.
|
|
|
|
|
At one place I worked, we had three mainframes; but none were connected. One mainframe usually kept everyone on shift because of all the printing. I modified the print spooler (IBM 370) to generate a "print spool file" (on tape) that could be used to print on the other mainframes. The operators were all happy because they finished early; management frowned because I didn't "ask them" first. So, meaningful in the sense it helped someone and I could also see the results (which isn't always easy to quantify).
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
I have a similar story like Gary's. In the very early 70's, I was hired at a manufacturing company as a computer operator/programmer. It was my first full time job. We had an IBM Model 25, which was based on IBM 370 technology, tape drives, disk drives, card readers, etc. Daily reports were produced that took a great deal of time to process because thousands of punch cards had be be sorted in an IBM sorter. Sometimes, I would drop a stack of cards and would have to start over. The same stack of cards had to be re-sorted to produce a different report.
I was assigned the task of creating a "Utility Program" (Program number 11108, if I recall). I got to spend more time programming and they hired another split-shift operator. My boss was upset that I took so much time writing the program. When It was completed, we used it to process the jobs that took multiple hours to produce using sorted cards. Now, the process only took minutes. The new operator was very pleased, but my boss commented: "Are you trying to put people out of work?
You can never win!
|
|
|
|
|
The most meaningful was one of the easiest in my career, it was to program a prototype for a company developing a way to clean up water turbines used for hydro-generators for electricity plants.
The ones I am most proud of are three. My first one, where I did a customer so happy that he rented me for a second project to repeat what I did in the first machine to another two and payed even a bunch extra (from which I didn't see a cent ).
The second one was a project where the PL of my direct customer blamed on me and complained to my boss telling a lot of crap, and then when I finished, the OEM End customer of the project forced him to apologize to me and asked him to rent me again to do the changes of the next two stations of the line.
The third one was the biggest of my career so far, I had multiple roles in that project (PL, Chief in the field, Senior PLC dev, only Robotic programer, training newbies...) at the beginning I was blamed by my boss because I used so much time to get the offer done (clarifying the specs with the customer) once finished I had a 1.7 million € superavit due to my concrete specs (all what was not described, was payed extra as not part of the contract). This time I got a bonus for that in my yearly revision, a one time 500€ payment. I started looking for something else that same day.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Back in the early 90s, I was part of a team that built facilities management software for the Burnet Road IBM facility in Austin. This place was home of the RS/6000. Part of our task was to convert drawings for about four million square feet of facility space from CADAM software [CAD running on mainframe] to AES software [CAD running on the RS/6000]. If I remember correctly, we exported from CADAM to .dxf > .dxf into Microstation > ran some automated Microstation processing > expoorted from the resulting Microstation to .dxf > .dxf to AES > post processing the AES files with the native AES language.
We wrote a frontend for managing the Oracle database full of department, facility space, and employee info. The database info was stored as graphical information on the CAD drawings. We also wrote a method of querrying the database, with plain English sentences, and getting answers as graphical information on the CAD drawings.
Database updates ran every night based on that days entries through the GUI interface of CAD drawings.
|
|
|
|
|
Congrats on retirement! I've probably got another 10 years left.
Believe it or not, I'm still maintaining/growing the first software project I started on over 23 years ago. I suppose that would put it above the dozen or so other applications and around 100 modules/utilities that have come since.
Actually my favorite was a long dead 'web-based' point of sale system. I quoted 'web-based' because that was the term in a contract our salesman at the time sold to multiple customers at a trade show...'If you buy X, we will throw in a free year of our brand new web-based point of service system'. The only problem was, we didn't actually have a point of service system much less one that was 'web-based'.
To fully explain the problem, please allow me to elaborate a little bit. This was the early 2000's and internet connectivity was still hit and miss in the geographical area for all three customers. Each customer had between 6 and 30 locations that each would have one or more devices. Each location had a server, albeit of different varieties depending on the customer. For two of three customers, a somewhat reliable WAN connecting locations was available. For the other customer, most locations only had limited internet access depending on the weather.
Oh yeah, the other thing was...it had to be able to work offline. Yeah OK, bending the definition of offline to be one in which a location can't access an outside resource. Against my better judgement, the first version relied on either a locally installed, or locally available web server running in either php or classic ASP depending on the host, and a choice of database for each location: sql server, mysql, or ms access. All three were used at some point.
The first version was a flop! Between weak hardware and weak connections, trying to run a local webserver between just a couple of concurrent users was just a horrible experience. There was also the realization that this crappy code will need to be updated/maintained at every location. It was slow, too hard to maintain, and suffered from all things web-related at the time...session timeouts, the evil back button, and lackluster UI feedback. It wasn't going to work...not without a drastic redesign.
As part of writing the scripts for the web apps, I prototyped each major function of the system as a little VB6 application, so I already had most of the UI and code when I decided to change course. I changed the project type for each function to a User Control (.ocx) and loaded them from our hosted website via IE and ActiveX. Once loaded, the website could be configured to be available offline through a setting in IE. The ActiveX controls ran locally, so it was basically running individual windows applications provided by a webpage...so legally, it was 'web-based'. Additionally, it solved most of the other problems as well, no longer requiring a local webserver and related file update/replace nightmare as updates to the controls would automatically trigger an update on all of the clients. I also lost the need for 99.9% of the web scripting. It also allowed us to provide different pages for different departments/levels that would only contain the modules pertinent to them. Most of all, it was fast and extremely easy for an IT person to install and configure on a client. Version 2.0 was a success althogh the product was not sold to any other new customers.
The system worked great for a few years until default security policies changed regarding download and install of even signed controls from secure sites. Even though it was a good system, the quality of the end users was sub-par...I'm trying to be nice here! Remember, this was the early 2000's in the backcountry...computer literacy was in it's infancy for common folk! The phone support for that application for just 3 customers (60+ locations in all) was more than we were willing to deal with. The project was scrapped.
That project still sticks with me as having some cool features:
0: Cashier screens were designed for touchscreen. I never had one to test on, but got to see them in action. For text input, there was a nice little popup on-screen keyboard that I designed.
1: Customer admins had a connection module that let them connect (when possible) to a location's database(s). This was great for troubleshooting before the widespread adoption of remote desktop for client support.
2: It was my first experience with barcode scanning and printing and it all somehow worked with their existing peripherals.
If you've made it this far, sorry for the rather lengthy trip down memory lane, but you asked for it!
Thanks for reading, and have a great weekend!
"Go forth into the source" - Neal Morse
"Hope is contagious"
|
|
|
|
|
My most meaningful project was carried out before computers on an HP41cv calculator. As a structural engineer an architect asked me to design a tent like structure, each part of the "tent" having four irregular sides. Move one corner while holding two in position and the fourth moves too, which changes the next part of the tent. The architect, needless to say, kept tweaking the dimensions. I managed to write a matrix inversion routine for the HP41cv and could rapidly work around the structure finding new x,y,z coordinates after each change. Not complicated, but very satisfying.
|
|
|
|
|
The one that should have been the most meaningful... In 2003/04 I was working as a remote freelancer for a small software outfit in Pennsylvania, USA, on a number of projects. The company came up with a concept for a desktop application that would have "plug-in" modules that would provide a whole host of functions, from airline ticket price comparisons, weather forecasts, cinema listings, share prices... the lot. He just provided screen shots, I built it (in VB6) as separate DLLs (plus an auto updater) with heavy use of XMLHttpRequest objects to make requests to 3rd party web servers. We'd get either XML or, often, have to resort to scraping web pages; then formatting data for display in a really interactive, dynamic way. The app was released as "The Seeker" and was effectively a custom browser aggregating data from multiple sources.
Late 2004 he realised that going down the installable application route wasn't going to reach the market he wanted, so asked if we could put the same interface on the web. I reasoned we could use Javascript to drive the XMLHttpRequests back to our own server, which would do the heavy lifting and high data volume comms. So, from scratch, I built a single-page website that could do all these totally different things, using Javascript, XML and asynchronous calls back to the server. We continued to develop The Seeker whilst building the new single-page website, schmedley.com[^].
His visual designs were (for the time) stunning and unlike anything else on the web, and he was still just sending me screen mockups and I was converting that to HTML/CSS and making it all work with Javascript. As well as the full-blown "channels" we were building little "widgets" (or "schmidgets") that could be dragged around, duplicated or hidden. He was getting interest in the US and starting to team up with data providers. I thought we had a really good working relationship and he was offering a part share in the company (I'd just been charging an hourly rate up to then).
Suddenly he announced that in order to keep up producing more channels he needed to hire more developers, but he couldn't find any more good ASP people, so he was re-writing the codebase in PHP. He could just have kept me on as CTO without me cutting server-side code, but for some reason chose not to, and we parted ways very soon after. Turns out his "good" developers weren't up to scratch and the project just fizzled out within a year.
By then (but after I'd built the Schmedley prototype) Jesse James Garrett published a paper describing how websites could become far more interactive and flexible by using a combination of Javascript to communicate specific requests to a server, updating the UI in response. He titled his paper “Ajax: A New Approach to Web Application.”
I should have patented it or something but I was too busy churning out code... No regrets though, I had so much fun on that project, and he paid well too.
modified 3-Jun-23 4:52am.
|
|
|
|
|
I wrote HaiBas, a BASIC interpreter, in 1975/76 for a software company in The Netherlands. The company and independent developers sold their packages, "apps" in modern parlance, and brought in eventually several thousand end users. It never progressed to a graphical world but there are still enthusiastic developers and end users. I bought the software rights about 10 years ago and have maintained the interpreter and associated tools (now in C++) for nearly 50 years.
Significant? Certainly on a personal level!
|
|
|
|
|
Any software that lives longer than 5 years is significant. (Because that's what's quoted as the "useful life" of software).
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
I'd say my most meaningful project was development of a real time metalic rod inspection system running on a 386 PC in 1990. The previous system was run on a PDP minicomputer.
It read data from serial port and needed to detect flaws of 1/64th of an inch with the rods moving at 1 foot per second. It's fairly simple to calculate how many readings per second are needed. I read the data and did an FFT to spot out-of-expected range responses.
The most challenging thing was the need to fire a paint gun to mark the flaw.Knoswing the distance to the gun nozzle, determined the time delay required.
Then there was the need to archive all the raw data for later review. Obviously, at those speeds, there was no way to spit the data to disk in time to get the next reading. I had to devise a way to detect the end of a rod, then vomit the data from a buffer to disk before the start of the next rod.Therewas generally a 1 foot space between rods. I write it in C, then optimized in assembly to crank the most out of every CPU cycle.
The system was in place and used in production for years. In fact I was told it is still in use after all these years.
CQ de W5ALT
Walt Fair, Jr.PhD P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
two projects come to mind.
One was doing class scheduling at a college for students. I created a way for them to search and select which classes they wanted based upon a variety of factors and to enable them to then wholesale sign up for the classes. Took a ton of work off of people so they could then focus on getting the right classes. I wrote it 20+ years ago and the code is still in use at its core by the college. That was fun
2nd was helping people to concentrate on their job. working at a very large farming organization. they had a monthly "dashboard" that was compiled given to their upper management. It took 4 people most of a month to put together and kept them out of their real jobs and being productive. They had to run around and interview a variety of people on differing projects about status etc... Took like 6 months but essentially made a real "dashboard" that was updated real time with the data from the various project managers. The best part about this was that no one lost a job and I got a huge bonus because of time saved for the company. It was such a good feeling.
there are a host of other projects that might have been harder or what not but these two stick out alot.
To err is human to really elephant it up you need a computer
|
|
|
|
|
I had the Xbox360 (yes, I know, it's "vintage") Rock Band 3 game disc, but because of my stupidity, I banged into the console, and that disc was trashed - and so I bought a NIB replacement disc. However to avoid this in the future, I want to make a copy of this game disc, and only use the copy disc to play, that way if I do this again, I could easily make a new copy.
Anyway, so I need to get an external CD writer, and I want to make sure that it can make an exact copy that the console will accept. Is there anything special I should look for in a CD writer? It seems that all such writers can write DVD, and I presume that any such writers could do a proper game disc copy.
|
|
|
|
|
I think any DVD writer will be sufficient. However you probably can't use a normal disc copy program, as I believe XBOX (and PlayStation, other consoles) use various tricks to prevent illegal copying. You should probably do a web search for something like "how to copy XBOX disc", and use that information to find a utility that will allow you to copy the game disc.
Keep Calm and Carry On
|
|
|
|
|
Yeah, they usually have some kind of hidden sectors that consumer grade writers can't duplicate.
|
|
|
|
|
Former unadorned prior ruler creates understanding. (9)
I'm heading out to a meeting in a few minutes, so unless someone gets it quickly (quite likely), there'll be a couple of hours delay in replying.
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|