|
If the warranty worked off of the "first use" date rather than purchase date, I probably could've returned them all for replacements. That's how quickly they all failed.
|
|
|
|
|
Sales team was/is really motivated?
Definition of a burocrate; Delegate, Take Credit, shift blame.
PartsBin an Electronics Part Organizer - Release Version 1.3.1 JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
shrug
I like 'em enough, I suppose if they all lasted at least 2-3 years (as these have), I'd be ready to buy another bunch. If the price was reasonable. Which it currently isn't.
|
|
|
|
|
My problem is I can't find a mouse that I like for under $100 and then I'm not sure I will like it.
I've had more luck with my current Logitech wired mouse than I have with wireless. This one has gone about a year without problem. Knock on wood!
Definition of a burocrate; Delegate, Take Credit, shift blame.
PartsBin an Electronics Part Organizer - Release Version 1.3.1 JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
Razers are nice.
They're overpriced chintzy crap, but they hold up longer than the other overpriced mice. Think I have had 3 and all lasted well past a year. It's possible someone here told me to get it (death adder).
The Logitech G3 is great, but one of the main clickers in it failed months into use.
I'm a heavy user so peripherals and the chair ... they just need to last 12 months. I'm not expecting miracles.
I feel like a quality stamp/lab could come back into vogue. UL is still around. Feel like we need a new one that doesn't represent whether your toaster may kill you but the odds it will still be toasting in a decade. Some sort of shared branding for some manufacturers to unite under that says, "we're only going to make high quality long lasting things".
|
|
|
|
|
dandy72 wrote: That's how quickly they all failed.
I use a logitech trackball[^]. I have one that I purchased back in 98' and i still use it!! These were USB A wired and they worked great and cost $19.95 and then recently went to about $39.95. But now, it looks like they aren't available and th one I linked at Amazon is listed at $219.95!!!
Anyways, the buttons in that trackball have never failed. They work as good as when I first bought it in 98. Wow! Probably an accident.
More recently I purchased a trackball for on the go[^] (ala wireless).
I bought that one and the buttons failed in just a little over one year.
I needed another one but I was very afraid that I would just be buying one of these every year.
I researched it and took the old one apart and tried to fix it and all that nonsense.
I also looked up the buttons that they used and those (internal -- not the things you fingers touch) buttons are super cheap. I was going to order strong ones and replace, but it's just a pain.
Taking it apart and cleaning it did make it work again for about three months.
There is nothing worse than clicking a mouse button and having it do nothing so that you have to click it again _hard_ to make it work. So annoying.
I finally bought another one of the wireless logitech m575s and have been using this one for over 2 years now with now problem.
So, they definitely use really shoddy cheap parts and hope they last "long enough".
1 year would be really terrible but I figured maybe we were at that point with them before i got this one.
Also, I bought this one at the store and didn't order it (seems like they have newer product than warehoused online stuff).
|
|
|
|
|
When is the last time you've seen a doctor?
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
Are you suggesting they should have outlasted me, and I need to see a doctor to find out why I'm still alive?
|
|
|
|
|
If they're supposed to outlast you, maybe they will, be afraid, be very afraid!
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
dandy72 wrote: mouse
The lifespan of a mouse 🐀 is generally much lesser than that of a human being.
|
|
|
|
|
With this generation, Microsoft went out of its way to prove you right.
|
|
|
|
|
I moved to Logitech, Logi as they are now known. After various models with more or less successful lives under my ham-fisted use I finally opted for their Signature M650 L - note the "L", this mouse comes in two sizes!
It is quiet, precise and has so far lasted 2 1/2 years with no sign of trouble. Wife & daughter have since got the same ones after using mine (Not the L version, they are not ham-fisted).
Your one with the dodgy scroll wheel might have been fixable by a simple air-blast to clean the optical system.
So old that I did my first coding in octal via switches on a DEC PDP 8
|
|
|
|
|
Hi,
I have written a bit of Code to talk to bit of hardware. All good I now having to document it for the records,
In the past I have worked on embedded and analogue test rigs which can be covered by a flowchart and a listing.
This will not work for a Windows program there is too much going on compared to a PIC or Atmel. Is there a way of creating the asked for without going mad? It can't be too odd as I think there must be other companies who need this...
|
|
|
|
|
Welcome to a reason I don't do desktop and server development anymore.
The truth is I've only ever done flow diagrams for embedded code.
To verify desktop applications, rather than design a flow diagram, I design a test matrix. My functional requirements basically dictate the tests.
If you really must diagram your software's behavior, you could use UML, but it won't make things easier, just more comprehensible because anyone with a UML background could understand it.
UML - Behavioral Diagram vs Structural Diagram[^]
Adding: To my mind this is the difference between programming realtime systems and programming non-realtime systems - realtime systems are predictable enough to diagram. As a rough rule of thumb anyway.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Well, there's the high level stuff:
1. What does the hardware do, and why?
2. What are the requirements for the code?
Mid-level stuff:
1. How to integrate the code into a project
2. How to test the code and hardware
Low-level stuff:
1. What are the "public" methods to initialize the code & hardware
2. What are the "public" methods to interact with the hardware -- read/write/reset/diagnostics, etc
3. What is a typical use-case scenario
4. What are the best practices for initialization and shutdown of the code/hardware?
5. What parts of the code are thread-safe, what parts are not? (I would assume none of it is thread safe, but who knows.)
Nano-level stuff:
1. Describe the low-level interface between the code and the hardware.
2. Describe signals and timing (or include the specs on the hardware)
3. Describe specific constraints on the code, like, are there timing dependencies
4. Describe interrupts the code uses when interacting with the hardware
My 2c of some ideas, dredging up memories of documentation I've written in the past for software-hardware stuff
|
|
|
|
|
Can a part of the documentation be written within the code itself, aka, self documenting code. In the form of class headers, function headers, etc.
And the remaining part of documentation as a high level document giving the overall architecture, hardware interfaces, assumptions, limitations, errors, etc.
|
|
|
|
|
Mmm, self documenting code, sounds good until you have to figure out how and why!
|
|
|
|
|
"military intelligence" is known as perfect example of oxymoron
allow me to add
"self documented code " into the growing list
corollary:
when "open source code " is NOT documented at all - period
is it still
"open source code " ?
|
|
|
|
|
Doxygen homepage[^]
It's something you have to do as you write but when done it's a flexible doc system.
Definition of a burocrate; Delegate, Take Credit, shift blame.
PartsBin an Electronics Part Organizer - Release Version 1.3.1 JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
FYI, DoxyPress[^] supports the same features as doxygen but in a far more reliable implementation and fewer limitations.
Software Zen: delete this;
|
|
|
|
|
Thanks for the heads up.
Definition of a burocrate; Delegate, Take Credit, shift blame.
PartsBin an Electronics Part Organizer - Release Version 1.3.1 JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
You're welcome.
We have a large code base that's a mix of C++ and C# that build into an application and several Windows services. We found that doxygen only handled single executables (one program or DLL). Its C# support wasn't great.
While DoxyPress isn't perfect, it does the job well enough that we include generating source documentation as part of our automated build process.
Software Zen: delete this;
|
|
|
|
|
I downloaded and ran it against a project that I am working on, with minimal settings.
I'll have to RTFM and find out how to fine tune, but all in all it looks pretty nice.
Definition of a burocrate; Delegate, Take Credit, shift blame.
PartsBin an Electronics Part Organizer - Release Version 1.3.1 JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|
My experience with Doxygen (my own direct use and how I have seen numerous co-workers use it) is that it is fine for the bottom level documentation. The reader will know all the details about the third argument to a given method, but without a clue about when, where and why that method is called at all. The protocol, both any line protocol and the protocol of interaction between methods in one module and the interaction between modules.
In principle, you can add information about module and object interaction, line protocol specifications etc. My experience is that developers never get around to it Round Tuit[^]. Documenting the third parameter in a Doxygen comment is easy to do when you are editing the code; the higher level documentation is postponed until the next tuit delivery. (But sending the order has been postponed ... ).
As long as the intermediate levels are documented well, from the top level, the main subsystems and their interactions, and then stepwise down to modules and objects, then the reader might as well dive right into the source code. When you understand the use of some component, you have no need for a Doxygen carbon copy of the details that you will find in the source code anyway. Too often, Doxygen 'documentation' is little more than a rephrasing of method header.
Obviously, this very much depends on how developers use Doxygen. I am referring to what I have observed, not what you in theory can do with Doxygen.
Equally important: This is certainly not Doxygen-specific. Give the same developers another documentation system that they can maintain as part of the code editing, and the result will be very much of the same. You see it everywhere, in almost all software and documentation available on internet: Method headers and parameters are documented; how these are intended to be used is often completely omitted. If there are some traces of it, it is often poorly written. (The best way learn the use of some library, server etc. is to search for some other open source code to see how they are using it!)
So, my advice is: Forget about the source code documentation, at the method header and parameter level (with the exception of APIs exported to users outside your organization). Document it top-down, with focus on component interactions. If there are explicit protocols across a line, describe it, but document the protocol, not the API! E.g. MSCs can be very helpful to understand the component interactions. You can even make MSCs for protocols between modules or objects, even if they are not line protocols.
Document data structures thoroughly, but again: Top down. What kind of information is held in each structure, which components have access to it, which component maintains it. I am so old that I still think of ER as a good data modelling tool; today it is about as non-PC as the riverfall model, but you can have an ER-like approach even if you do not use ER notation. Stick to abstract data types - at this level it doesn't matter if a counter is 16, 32 or 64 bits. It does matter that it is a counter, though!
If it suits the software, state diagrams and/or state tables are great documentation tools. Unfortunately, few young developers have a good grasp on state transitions; it is more like a vague, remote concept in the same class as the OSI 7-layer model .
So how far down should the documentation go? My answer is clear (but lots of people will frown): Write your documentation so that it is independent of programming language. If the system is re-implemented in, say, Fortran or Pascal, all of you documentation should still be valid. It should contain the language independent stuff, all the language independent stuff and nothing but the language independent stuff.
When you need code snippets or declarations to make your point, leave it to the source code itself. Your documentation tells what it should do. How does it can be seen from the code.
There is one big pitfall, though: When you start describing your system as a set of well documented(/defined) protocols, MSCs, a bird's eye on the data structures, state transitions etc., chances are that you will utter a few nasty words about how the system should have been written. You'll discover messy transitions, irregular use of interaction protocols, undisciplined access to data structures, ... There will be a lot of new entries in the ToDo-list! Just make sure to get that tuit order in the mail as soon as possible
Religious freedom is the freedom to say that two plus two make five.
|
|
|
|
|
The real problem is that there is not enough money or time in the budget for documenting and the programmer is usually to lazy to do it.
Definition of a burocrate; Delegate, Take Credit, shift blame.
PartsBin an Electronics Part Organizer - Release Version 1.3.1 JaxCoder.com
Latest Article: EventAggregator
|
|
|
|
|