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.
I resort to building my own applications when there is an area I want to know more about.
(1)I built my own webcam security system that does exactly what I need it to do - it runs off a pc and uses usb or ip webcams.
It's movement sensitive and has more options and configuration possibilities than you can shake a stick at.
I wrote it as nothing on the market did everything I needed.
(2)A simple application that finds multiple copies of the same image files.
(3)A voice activated co-pilot for when I was into flight sims. I was fed up of having to remember key combinations, so I created a system that would react to my voice commands and basically be my co-pilot.
(4)A steganography application so that sensitive information can be encrypted and hidden in plain sight or so that artists can create watermarks in their images for copyright purposes.
Currently very slowly working on a traffic(as in things that go "broom, broom, beep, beep") simulation application - largely to help teach myself graphics and to test some ideas I have about traffic flow.
“That which can be asserted without evidence, can be dismissed without evidence.”
I'm mostly satisfied, but I have often written my own utility apps for exactly the reasons you said, customization and control. For example, I wanted a file backup utility and found one that almost did what i wanted, but not quite, so I wrote my own. It's one of the nice parts of being a developer.
Yep, this is currently how it's being done, and it works fine...but I really wanted some advanced features like:
0: hot/warm/cold (off premise) backup locations
1: zipped (with optional password) archives
2: automatic housekeeping of archive folders (based on a limit for each folder or 0 for unlimited)
3: multiple databases
4: multiple configurations/jobs
5: command-line switch to select a job and auto-run
6: advanced logging
I also wanted something that I could potentially offer to clients who don't have a dedicated dba. It's all working now...just tried it out on the server...worked the first time!
- Pomodoro Timer, for motivation against boring tasks
- A sort/filter (remove dupes), and inlist generator for sql queries.
(how many times do you get like 500 IDs you have to scan for data against, but they should be in a comma list, quoted or not quoted? Me every week!)
- Always on top (for pinning a window I am referencing)
- Enable copy/paste into a command window (Ctrl+C, Ctrl+V)
- A Simple clock that floats on my secondary monitor, so when I record meetings, there is always a visible clock in the recording. (My note taking tool has F5 key that drops a date/time stamp down to the seconds. This allows me to see something in my notes, and EASILY advance to it. Like an external bookmark. Mostly because I can't get traction with the software maker to allow bookmarks in their meetings!)
What's great is that we have this ability to do this stuff.
I wrote my own helper app that I keep adding little things to:
Features it has:
- Hover over tray icon to see IPconfig data
- Equation evaluator with history and settable variables
- Aotumatic converstion tool, from dec / hex / binary / BCD
- Calendar with three month view from Tray
- WebServer to allow download of files from any directory (port 81)
- Keyboard wedge app that opens a URL to my machine which allows key data to be sent into any program (Think like a USB barcode reader scans a barcode as text)
But my MO is to dig deep to see what others have done first.
A clipboard manager. Loads of them out there, but not exactly working the way I wanted, to store everything in specified folders according to data type or certain applications, and perform other little personally desired functions on clipboard events.
Oh yeah, also a shorthand utility that works across all Windows programs, instead of just Word.
(Many years ago in DOS I was using the commercial program PRD+, and then "Shorthand for Windows", which was perfect, but when they stopped supporting it at Windows 7 I think it was, but being very dependent on it, I had to write my own copycat version, with some adjustments.
"Shorthand" seems to be available again, but now my own is sufficient.
p.s., that sql restore utility sounds really good... ... ...
Once I was working on a client system remotelly and had a couple of remote desktops on their network. I used to work on both of them as the RDP client didn't let me extend one to both my screens, so I created a network enabled clipboard to share the clipboard between N number of systems
At work I tend to develop my own, in my role as the DSJB(*). The packaged solutions to most problems are either poor fits or too expensive in terms of money, learning curve, or both. I've developed our own automated backups (our build servers essentially mirror each other), product build process, and so on. The backups are the simplest, mainly batch files and RoboCopy. The build process is a Windows service written in C#. It extracts source from source control, compiles as necessary, builds installer(s), creates installation media images, and creates an archive ISO of the entire build.
(*) Departmental Sh!t-Job Boy
I'm a lot more inclined to use an available app for things at home. A few times I've started on a project at home to do a simple thing, and it got out of hand .
Sometimes yes, it's good to write something very tailored to your own needs; but it's also a great way to learn a specific technology in depth, with no risk of writing cr@p that'll end up on a client system. Occasionally it turns out that what you've created is genuinely useful not just to you but to others as well, and can end up as a second income stream.
Some of my side projects/utilities over the years have included:
- a TCP-based message tool to send messages over the local network only, via a Systray popup (later enhanced and sold to one client)
- a forum summary email parser that could reconstruct forum threads for local browsing / searching
- the above included a utility to read MS OutlookExpress .DBX files - later made this a standalone tool and sold several hundred licenses
- a little systray icon that showed minute-by-minute earnings based on hourly rate; a motivator when working on any deadly dull client job
- a little JScript tool that converts hourly / daily / weekly / annual rates/salaries, incl. working weeks; very useful when talking to agents when discussing rates and they use some weird basis and you need to know instantly if it's any good...
- an MS-Access [spit] based tool to record and track contract vacancy applications, with instant lookup / cross reference by agent / agency / client / role - again perfect when on phone to agent so you can identify which vacancy is which, and which ones need chasing up
- a webform interface to a little DLL that encapsulates an interface to the UK Companies House webservice - useful for checking out company directorships and links, following a thread of connections
Plus I guess you could include libraries that have developed over the course of many projects, such as error / performance logging modules etc.