Dirwalker - Simplistic and Ergonomic Directory Browser
#31
Hi TDarcos.

> In case no one else has said so, thank you for having created this, and for making it publicly available.

Thank you for recognizing what one real amateur stands for. Sharing is a key thing, returning the favor (of other coders sharing their experience) is by paying not back but paying forward (as in the movie). To me, amateurism is the very basis for building something exciting. Constantly being aware of one's own lack-of-mastery (while loving the craft) is a very powerful driving force that won't disappoint, never. On contrary, every little step on the way brings joy. For example, this night I added SIMD counting at 10GB/s (written by the awesome Hamid - the author of LzTurbo, BWTSatan and more superb state-of-the-art tools) of LF characters within a block - quite a nasty drag/break in performance when one has to know apriori how much lines are there in order to allocate the needed memory.

> Have F1 open a pop-up window showing what keys do what things, i.e. a cheat sheet. If F1 is in use, pick a different button and have the program say which one it is.

Indeed, this initial "cheat sheet" has to be put in a dedicated help screen. Simply, Dirwalker is in its infancy, many things are to be implemented, refined and described. Currently, wanna write browsing/sorting/searching the physical lines of 20++ GB textual files, the tweak I wanna play with, is a transparent recoding of lines shown to the window, in order to read German/Italian/French/Spanish/Russian... within 256 symbols encoding. In a month, hope to share the revision doing that.

> Having a copy of your work on Github protects you if something goes wrong.

I appreciate your suggestion, surely Github is a very useful platform for sharing/maintaining, yet, my habits are hard to break, kinda got used to the chaotic ways of old.

> If I think of other suggestions, I'll offer them, if you don't mind.

Please do, always good ideas are hidden behind untold ... ideas, that is, they give way to one another - beget new functionalities.
"He learns not to learn and reverts to what the masses pass by."
Reply
#32
(01-22-2023, 06:22 AM)Sanmayce Wrote: > Have F1 open a pop-up window showing what keys do what things, i.e. a cheat sheet. If F1 is in use, pick a different button and have the program say which one it is.

Indeed, this initial "cheat sheet" has to be put in a dedicated help screen. Simply, Dirwalker is in its infancy, many things are to be implemented, refined and described. Currently, wanna write...
Stop. The biggest problem in software development in my opinion is the failure to document work. There are literally millions of dollars of work - and I don't mean Zimbabwe dollars! - that has had to be thrown away or done over because nobody knows how to use it or what it does. Taking a few seconds when adding a command feature to write down what it does, means that when it is necessary to document it, it's already been done. Otherwise, you're spending hours trying to recreate something that probably would have taken a fraction of the time if done contemporaneously. Too many people treat documenting things like washing their hands after using the toilet; a good suggestion for others. Too many people see documentation as a chore to be put off as long as possible. Eventually, they regret this decision.



(01-22-2023, 06:22 AM)Sanmayce Wrote: > Have F1 open a pop-up window showing what keys do what things, i.e. a cheat sheet. If F1 is in use, pick a different button and have the program say which one it is.

Indeed, this initial "cheat sheet" has to be put in a dedicated help screen. Simply, Dirwalker is in its infancy, many things are to be implemented, refined and described.
Great, the initial effort should be minimal. The later rewards will not be. Creating documentation is a form, of deferred gratification; you take a small amount of time now, while it's fresh in your head what it is for. Then later when you need it, it's done and easy to reference and use as opposed to the even worse chore of spending much more time to do it later.



(01-22-2023, 06:22 AM)Sanmayce Wrote: > Having a copy of your work on Github protects you if something goes wrong.

I appreciate your suggestion, surely Github is a very useful platform for sharing/maintaining, yet, my habits are hard to break, kinda got used to the chaotic ways of old.
How old? I've been programming professionally since 1978.  Yes, that means I have 45 years experience. I still look at ways to make my job easier. One way to do that is to get the computer to do things for me, and just adding commit and push gives a record of all your intermediate work and the ability to rollback at any time is far too easy (and cheap!) a benefit to pass up.



I'd say source code control is one of very few things that breaks the "iron triangle" of "Good, easy, or cheap: pick any two." I's simple to set up, takes a few seconds to do, and costs nothing.




I'be heard it said that the military encourages enlistment/conscription by young men because they still think they're invulnerable; older people know they can die. I used to think I was very good until I saw other people's programs do things I couldn't even imagine. I have learned other people's works can be very instructive, even if you never use any of their code.. You have the humility to recognize you can learn from other people. Keep that mindset that the work of others can help. I have always felt I can learn something new from what others have done. Remember, one doesn't learn programming from writing programs, you learn from reading them.




The first time you make a serious mistake and break something - and if you claim you've never done this, I'd say you were lying - you'll find having backup systems in place will help immeasurably. Especially when you get the ability to go back to anywhere in your workflow and recover from there in addition to external backup, at least to me, it seems a no-brainer.




But in the end, it's your choice. Please try to remember my suggestion the next time you get stuck because there is no inadequate documentation for something. Then maybe you'll discover, as I have done painfully, how it bites you eventually. I still get burned by sometimes when something I "knew" I would only need for a quick-and-dirty one-time use, becomes something I end up using over again for something else. And guess where the documentation is? It isn't.
While 1
   Fix Bugs
   report all bugs fixed
   receive bug report
end while
Reply
#33
Thank you for sharing your views on documenting/maintaining.

I agree with you addressing my lack of commenting/documenting, indeed, it is good to have both.
Also, I agree with you addressing my lack of maintaining, indeed, it is good to use GitHub.

Guess, my hardcore amateurism is to blame, hee-hee.

If you have some ideas/remarks/critiques regarding functionality of Directory Browsing, you are welcome to share.

For a long time, hashing files either for deduplication or security stamps was in TO-DO list, now the initial functionality (SHA1 hashing all the files in current directory and its branches) is done:

   

Here is the ELF/EXE and the full sourcecode of revision 8-:

.7z   Dirwalker_r8-.7z (Size: 4.03 MB / Downloads: 49)

Enfun!
"He learns not to learn and reverts to what the masses pass by."
Reply
#34
(01-25-2023, 10:33 AM)TDarcos Wrote: Stop. The biggest problem in software development in my opinion is the failure to document work. There are literally millions of dollars of work - and I don't mean Zimbabwe dollars! - that has had to be thrown away or done over because nobody knows how to use it or what it does.

This is the main reason why I reject VLC Media Player on impulse. Not even a short HTML which is like the NomadBSD "Handbook" going through things briefly. Dresses up the program icon like Santa's helper on December instead which just pissed me off! Angry

The eagerness to show off coding expertise to land a job with a reputational corporation leaves no time for documentation. I've seen it in a program some guy wrote which was a music utility. I went to compliment him on a different forum but he was somewhat indifferent. I could have called him out instead for offering absolutely no documentation about how to use the features of his program that weren't obvious.

Sadly this is common which is helping to judge the whole Linux world. The FreeBSD community is doomed to remain small because they are very willing to talk about their stuff... I hope I'm flatly wrong here about "doomed". There's the example that Slackware provides -- good documentation in text files but almost all of it is outdated by at least 15-20 years. (IE. still assumes software comes in CD/DVD.)

OTOH there are people in which English isn't their first language but take an effort to explain what goes on with software they design. Among the ones that should be hailed are KX77FREE and the author of GSequencer (although that last-named software's documentation could go a bit further because I've found that program bewildering to use).
Reply
#35
https://wiki.videolan.org/Documentation:User_Guide/
Ask me about Windows API and maybe some Linux stuff
Reply
#36
Guys, having well-documented product, not just software, is always a big plus, not against writing explanations/examples/usecases, on contrary, I love giving walkthroughs and such, just the current focus is on writing the backbone (aiming at skeleton in near future) of one useful simplistic browser, I see several areas where different functions are not synchronized seamlessly - like flags setting when one to give way to another or not.
This is a work in progress, in my view, the sourcecode is very useful for all QB64 coders, allowing them to peak in the kitchen and add their own tweaks.

Anyway, glad to share revision 8, it allows making BLAKE3-256 (default, or SHA3-256, SHA1-160) hashsums for all files in a given TREE (folder and its sub-folders), also by pressing ‘Ctrl+S’ the current list is saved in current path as “Dirwalker_”+Time$+Date$+”.txt”, this is very useful when you want to check integrity of your SSD, just make a “snapshot” of current health status in folders you want to monitor, or just in the root. It looks like:

   

Speedwise, hashrate is not bad at all, around 390MB/s on i5-7200U and i7-3630QM, a bit faster than SHA1-160, and 3x faster than SHA3-256. You can switch the three via:
Code: (Select All)
Const WhichHash = 2 '0=SHA1-160; 1=SHA3-256; 2=BLAKE3-256

Here is the ELF/EXE and full sourcecode:

.7z   Dirwalker_r8.7z (Size: 4.09 MB / Downloads: 80)

Enfun!
"He learns not to learn and reverts to what the masses pass by."
Reply




Users browsing this thread: 8 Guest(s)