|
TL;DR
Although what I am going to write is not strictly related to the question (I also do not know the software mentioned by the author of the post), I have read some answers that mention only flowcharts as the main way to document parts of software (the algorithmic ones). I would humbly like to bring my experience in terms of algorithm design.
Over the years, I have often found myself having to solve intricate problems, often automation problems, but also having to concisely describe relatively complex algorithms that then have to be translated into actual code. In short, this is the algorithm design phase.
In my experience, in some cases, flowcharts are too large to be read easily. It is also difficult to write them down, especially without the help of a drawing program. Leaving aside algorithms involving recursion, everything else falls into the third level of Noam Chomsky's hierarchy of grammars: regular ones. Since regular grammars are assimilated to finite-state automata, even a flowchart that contains no recursion can be traced back to a state machine. In fact, let us think of the various internal "loops" that constitute some parts of an algorithm described with a flowchart: we can think of them as internal states of an FSM and the transition from one "zone" (i.e., an internal loop) to another as the transition between two states with actions (calculations or side effects) related to the latter. This is as true for algorithms that never end (automation, IoT, etc.) as it is for computational or parsing algorithms.
Describing rather complex algorithms with FSM instead of flowcharts allows much more compact representations. It is much easier to understand their operation.
First, I want to say that the transformation of an FSM graph into a flowchart and then into code does not necessarily involve the use of state variables. In fact, in most cases they are not used at all: the mapping between the FSM and the flowchart is straightforward. One can also see a natural decomposition into functions (related to actions associated with transitions from one state to another), or to simplify the transition between states. But the translation directly from FSM to code is even more straightforward: one can translate the FSM into a flowchart only if required by the documentation protocol.
But the greatest advantage of this approach is the verification of the complete consideration of all input states governing the evolution of the FSM and thus of the algorithm it describes. That is, it is possible to verify that, state by state, we have not "forgotten" certain input configurations, that is, we have not forgotten to evaluate certain conditions.
Each input state is formed by the configuration of its constituent predicates. For us "engineers" a predicate is a pure function that return true or false.
The transition from one state to another (or staying in the same state), depend on repeated evaluations of predicates. If a predicate is true, there is the state transition with associated semantic action to be performed. A state can be associated with multiple predicates to be evaluated. The predicates associated with a state, all together, form a set of possibilities with cardinality 2^N, where N is the number of predicates. Now, it is simple to check whether each combination of the values computed from the predicates (input state) has been taken into account for each state. When I say "taken into account," I also mean when some of these predicates have no effect on that processing step (they are considered as "don't care"). If there are any combinations of inputs (states) that have not been considered it is immediately seen. So it is very easy to reduce bugs caused by distractions in the design (rare but possible cases of input conditions).
That said, I have been using this technique for 30 years when some algorithmic parts are a little more complicated than normal. It is definitely a powerful system for handling automation problems, but not only that.
In addition, if you can describe an algorithm as a "state machine," you can describe it with bubble diagrams using a textual representation as a comment in the code (perhaps using the "dot" language with "graphviz") to be transformed into a drawing by pasting the text on an online viewer.
Needless to say, the process was "borrowed" from the hardware design of logic circuits.
Because I'm lazy, even mentally, and I don't like complexity in things at all, I developed a personal notation related to the labels of the arcs of the transitions of the bubble diagrams. I think it's been 30 years since I've drawn a flowchart. In fact, the biggest problem concerns the bloating of input state descriptions (listing all predicates, perhaps explicitly, leads to very long texts).
They consist of three parts, which I enclose in three distinct geometric figures, all written on the same line.
The first part is the "priority." That is, which predicate(s) are valued first over others. Evaluating one predicate alone first excludes it from transcription into the remaining ones. In this case I enclose a priority number from 1 to N in a triangle.
The second part, usually put in a rectangle (optional) is the actual "predicate".
The third part, enclosed in a circle, is the "semantic action" associated with the transition.
Each arc can include multiple transitions each with its own reference line.
When an algorithm has been developed with this notation, it is possible to translate it into a state diagram that will take many but many more sheets than the original drawing with the states well highlighted.
Regards
P.S.: I apologize for the imperfect English.
modified 24-Jan-23 6:09am.
|
|
|
|
|
If you're old enough to do flowcharting, then you probably remember IBM's top down programming methodology: HIPO--Hierarchy plus Input-Process-Output.
Still use it, still like it.
|
|
|
|
|
I have $1500 USD worth of items in circulation somewhere in the belly of UPS's logistics and transport system.
I have no idea where it is despite having a tracking number.
The product was shipped from Pennsylvania. The last update was January 19th, departing Pennsylvania.
It's expected Tuesday (tomorrow here). I'm betting I don't get an update until it arrives in Seattle at the very earliest.
What the heck is the point of giving out a tracking ID if it goes dark for 90% of the trip?
To err is human. Fortune favors the monsters.
|
|
|
|
|
honey the codewitch wrote: What the heck is the point of giving out a tracking ID if it goes dark for 90% of the trip?
So noone can intercept it. Bravo Six, going dark.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
Locally, UPS stands for "Ur Parcel Smashed": I've yet to see anything they deliver that doesn't look like it was used as a football.
And if you think UPS tracking is poor, try UK Parcel Force - they just stay at "awaiting the parcel" until they switch to "delivered".
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I've had better luck with them thankfully. It's a video card, so it's kind of delicate. I'm a little anxious frankly, because the seller doesn't take returns. Nobody is on video cards right now.
To err is human. Fortune favors the monsters.
|
|
|
|
|
Be glad it's not the USPS (US Postal Service)
Listen to this one:
Years ago sold an item on ebay.
Sent item via USPS and paid for tracking number.
The package went dark and I waited some weeks.
Finally went into post office where I sent the item.
The PostMaster General (manager) came out.
I explained that I had a tracking number and he poked around on his own computer in frustration trying to find it.
Finally, he looked up and said, "Do you see all those packages back there?" and pointed at a bunch of packages laying in the hallway. "We can't keep track of all those packages. It'll show up some time. Give it another week and if it doesn't show up, then come back."
They have one job. But apparently all USPS really does is make commercials trying to convince you that they can get your package there.
The package did eventually show that it had been delivered.
|
|
|
|
|
Poste Italiane will simply open your package and steal the content if it's valuable.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
OriginalGriff wrote: they just stay at "awaiting the parcel" until they switch to "delivered".
Strictly speaking, if that's reporting your status (as opposed to theirs)...it's not inaccurate, is it? I mean, you're either waiting for it, or you have it.
|
|
|
|
|
You'll received a "Delivered" confirmation without being delivered.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
FedEx and UPS are merging -> FedUp
Tracking on all carriers seems to be hit or miss lately.
PartsBin an Electronics Part Organizer - An updated version available!
JaxCoder.com
|
|
|
|
|
LOL
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
They generate EDI events only when your item checks in/out port, terminal, dry hub, local storage etc. In your case looks like your jem is traveling the Oregon Trail and will be no updates until it hits one of those. It's not like the truck driver is sending updates while on the road: "At the rest stop now. Smashed a bag of Wendy's and booked me a nice hooker. Life is good. lol!"
Advertise here – minimum three posts per day are guaranteed.
modified 23-Jan-23 9:29am.
|
|
|
|
|
I worked as a package sorter for UPS back in 1990. The package was probably placed in a trailer in PA and is driving across the country to WA. It won't get another scan until it is resorted in WA.
I had to learn blocks of zip codes and learn to read addresses backwards zip, state, city as my job. I would read that information and then place the package on the right belt to go to the other end of the facility. Got an extra dollar an hour for that skill. Had to take a test every month on a computer to verify sorting skills. Programming helped since I knew where the keys were. Other sorters had to use the cursor to the right place on the screen while I just typed the right letter for the zip code. I could sort 3600 packages an hour.
I’ve given up trying to be calm. However, I am open to feeling slightly less agitated.
|
|
|
|
|
Yikes, 3600 per hour sorted! amazing
Yes, shipping physically is quite different than shipping mentally
(which is what we usually do as customers)
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
That was just the test. The physical labor was about one package every 3 seconds or something like that.
I’ve given up trying to be calm. However, I am open to feeling slightly less agitated.
|
|
|
|
|
Is it better to have the situation I ran into? I had a package (64 GB of RAM) going from Dallas TX to Cincinnati OH. I got a lot of tracking data - I got to watch it go to most of the Rocky Mountain and Pacific Northwest states before finally heading to the Midwest (St. Louis, MO), then it took a side trip to Philadelphia before heading back to the St. Louis again. The final steps in the delivery to Cincinnati were from Indianapolis, IN to Columbus, OH, then to Louisville, KY (presumably passing through Cincinnati on the way!), back to Indianapolis, back to Columbus and then finally to Cincinnati and final delivery. The package was fine, but it took 2 weeks and close to 4,000 miles to get here. I did feel like I got my money's worth for the shipping cost, though!
|
|
|
|
|
Another Bill Bryson quote (I have collected lots of them!):
Goodness knows, incidentally, what my letter had been doing in California for nearly six weeks, though it came back with a nice tan and an urge to get in touch with its inner feelings.
(Notes from a Big Country: 'Mail Call')
|
|
|
|
|
Love Bill Bryson
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
honey the codewitch wrote: What the heck is the point of giving out a tracking ID if it goes dark for 90% of the trip? I sure wish the USPS would see this post.
Jeremy Falcon
|
|
|
|
|
whatever
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
during the pandemic, the post office lost $250 worth of packages of mine. The items were shipped but never made it to my front door. To this day, they have not found them.
The post office manager said this was an everyday occurrence at the time.
more recently, Amazon in my area is now using UPS to deliver packages that its short-staffed delivery service cannot - for reasons I am not exactly sure of ( I can only guess, i.e. out sick, etc.). Hopefully, these packages don't become missing or lost. ugh.
Post office tracking numbers are slightly more useless than UPS, in my experience. If the items don't get logged during transit, the transit status never changes.
|
|
|
|
|
I have had good luck with UPS as well.
I suspect weather is problem.
Lots of it between Philly and NW coast.
Stay cool (no pun intended).
Vendor not accepting returns is not cool.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
Not accepting returns is really common with hard to find GPUs right now. That market is ugly.
To err is human. Fortune favors the monsters.
|
|
|
|
|
Understood. Memory used to be that way back in the day.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|