|
I recently wrote my own file sync program after searching for something to fit my requirements. It's very basic, all I needed was something to copy files from my pc to an external hdd as a backup. Most of the file sync software available copes with that without a problem, but where they fell short was with renamed files. I renamed a whole lot of video files on my pc and wanted to sync them with the ones on the backup hdd. I couldn't find a free one that did this properly, they wanted to re-copy the files instead of just renaming them, which would have taken a long time for the amount of data.
My app checks the file size and last modified date and uses this to detect renamed files. So far it works pretty well. The other useful feature I built in was that it uses external copy tools for the copying. E.g. Unstoppable Copier or Teracopy. You can also save a list of folders to compare as a job. It can also mirror deletes, so that files you deleted from the source folder on the pc are deleted from the backup hdd as well.
I've been meaning to put it up somewhere so others could have a look and maybe use it if it suits their needs. The biggest problem so far is finding a good name for it. I just called it File Sync I also need to write a user guide.
Anyway, if anyone would like to have a look and see what it can do it's on my onedrive[^].
Edit: I've uploaded a very basic user guide now. I still want to add a few nice to haves to the program like select all / none for the checkboxes, but it's fully functional as it is.
modified 26-Jan-15 14:14pm.
|
|
|
|
|
Jacquers wrote: The biggest problem so far is finding a good name for it.
Synctacular
Synctastic
Synculator
Syncarillaringo
Syncmeister
DatSyncYo
SyncBot
KitchenSync
SyncTheBismark
SyncHole
EnSync
Sync-a-dync-a-doo
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
John Simmons / outlaw programmer wrote: KitchenSync
Thx for the suggestions.
That one actually crossed my mind
|
|
|
|
|
Jacquers wrote: My app checks the file size and last modified date and uses this to detect renamed files. That would work fine for files above a certain size, where there's a bit of leeway in the file size, but I'd guess that it could cause errors if used for a lot of small text files, where files with the same number of bytes being saved at the same time isn't so rare.
E.g. the source files for a code project.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Valid point It was initially meant for large video files. For smaller files I can implement something like a md5 hash check.
|
|
|
|
|
I've used FreeFileSync very successfully but be careful if you use the installer, it's crapped on my browser in the past.
|
|
|
|
|
...and I don't (necessarily) mean you have the title of Software Architect.
I believe many people are Architects -- because of what they do -- but do not have the title.
Also, (unfortunately) many people have the title, but aren't actually Architects.
Big Question
So, if you are an Architect, what is it that you believe you do that a software developer doesn't do?
CodeProject : Developer Heavy, Architect Light?
I'm asking that as a question, not trying to rile anyone up. I notice a lot of codeslingers around here, but curious if CodeProject also attracts Software Architects. What do you think?
Interesting Question
What value do you think a Software Architect really brings?
What skills do you expect from an Arthitect?
Can the value a Software Architect adds be put into words / definitively measured?
Just curious about your thoughts.
|
|
|
|
|
I suspect that a Software Architect designes applications which bend in a high wind instead of breaking...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
TBH you're on the right track. Anyone who is really a software architect will be designing the system, but more often than not they will not be full on coding.
veni bibi saltavi
|
|
|
|
|
That's a very Zen answer. Bend, Grasshopper. Do not break.
|
|
|
|
|
Nailed it in one, Griff. I understand the sentiment regarding codeslingers, but the write-ups I like here are the ones where someone explains why you would or wouldn't use a capability. Sure, we'd all like to have a triple-redundant quantum cloud cluster to perform sorts before they are requested, but here on Earth, maybe a call to sort() is good enough...
I would extend the argument that a "pure" coder (software developer) implements what the customer wants, but a "Software Architect" designs and implements what a customer needs. (And "customer" in this case is anyone who wants the software...even the coder his/her self.)
In reality, neither group is "pure"--a beautiful set of code, even to precise customer specs, is a failure if it doesn't get the real job done. And a perfect design doesn't mean crap if no one will use it.
vuolsi così colà dove si puote
ciò che si vuole, e più non dimandare
--The answer to Minos and any question of "Why are we doing this way?"
|
|
|
|
|
Well interesting Question, i personally can't differ the both but by architects do the design on an abstract basis to get a view of the whole system, sw-devolepers mostly focus on the single modules.
But as far as i got into that, by designing, programming, developing my very own project management application for my company i think i did everything on both sides.
That means i made graphs of how modules work together, how single modules are set up and what they can do, programmed it, reworked it, tested it.
if(this.signature != "")
{
MessageBox.Show("This is my signature: " + Environment.NewLine + signature);
}
else
{
MessageBox.Show("404-Signature not found");
}
|
|
|
|
|
HobbyProggy wrote: That means i made graphs of how modules work together...
I believe what you are really saying here is that you communicated how the system would work at an abstract level -- and then you developed the specific pieces to build the actual system.
This is the interesting thing about an SA that really should come out: The SA must be able to communicate what s/he is going to do, how s/he going to do it and why s/he is going to do it so every role within the company understands at the time. Then the SA must be able to write the code that does what s/he said it would do.
|
|
|
|
|
Exactly
if(this.signature != "")
{
MessageBox.Show("This is my signature: " + Environment.NewLine + signature);
}
else
{
MessageBox.Show("404-Signature not found");
}
|
|
|
|
|
I do it all from end-to-end.
My title is Systems Architect, but that's because when I was hired I was put in a group of actual Systems Architects -- who architect the network, storage, and computing infrastructure for the enterprise.
|
|
|
|
|
PIEBALDconsult wrote: hired I was put in a group of actual Systems Architects
I've seen that happen numerous times also.
And I also understand that since you honestly do it all end-to-end that you really are a true Architect.
It's an interesting thing to attempt to measure and explain.
|
|
|
|
|
PIEBALDconsult wrote:
I do it all from end-to-end. |
Yes, this is my 2nd reply to this.
As this conversation has moved along I see that what companies really want is "someone who can do it all". That has been my experience in the industry too. They attempt to assign roles but then you basically have to know everything -- fortunately I do.
|
|
|
|
|
Architects design systems that they think just takes bricklayers (programmers) to build, whereas, in fact the programmers need to be structural engineers to build safe and robust systems from the architect's plans, as architects have little knowledge of how things actually work in the real world.
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
Chris Quinn wrote: Architects design systems that they think just takes bricklayers (programmers) to build, whereas, in fact the programmers need to be structural engineers to build safe and robust systems from the architect's plans, as architects have little knowledge of how things actually work in the real world.
I am hearing the subtle humor in this as I've experienced that exact same thing.
So much truth in that and that is the discussion I'm really talking about.
Great input. Thanks.
|
|
|
|
|
I disagree. Software architects need to be able to understand systems and how they work as a cohesive unit. We might not know the ins and outs of a particular subsystem, but we know the importance of that subsystem to the system as a whole. We then do our tricks with crystal balls and mirrors to display the system to non-software types (the ones with money) in a format they might understand. Without software architects, we wouldn't have the payroll systems that ensure we get paid. Where we stumble and fall is trying to anticipate the next development that meets the needs of the next government that comes to power. Every so often, we are left with part of a system that is incomplete due to limits on funding midway through the project. It's those incomplete systems that make us look bad.
The difficult may take time, the impossible a little longer.
|
|
|
|
|
Chris Quinn wrote: as architects have little knowledge of how things actually work in the real world.
Some of them.
Chris Quinn wrote: in fact the programmers need to be structural engineers to build safe and robust systems from the architect's plans
That of course is too generic.
- It ignores that doing that in any complex system is a significant challenge and one that cannot be achieved by any one individual.
- It ignores that to do that there are in fact implementation details that must be done which really have nothing to do with architecture unless the architect is going to a very low level. For example avoiding injection attacks.
- It ignores that the knowledge required to do this in a significant enterprise is probably beyond the capability of any single individual. For example locking down a web server and locking down a database server (and apps) are very different.
Chris Quinn wrote: Architects design systems
Architects can have other roles of course. For example insuring that customer requirements do not subvert long term corporate goals and that customer requests can be correctly munged to produce something that is cost effective to implement.
|
|
|
|
|
Simply put, an architect is expected to have both wide and deep knowledge that spans operating systems. An architect should be able to provide effective guidance for hard problems such as software security, scalability and reliability. Architects are also expected to be aware of technical directions being taken by vendors who provide software infrastructure and tools, such as MS, Google, Oracle, etc.
And of course, an architect should be an experienced developer.
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: And of course, an architect should be an experienced developer.
I like the definition you provide and especially that you added that last part about the SA (Software Architect) being an experienced dev.
It's so important but we've all experienced someone who has Architect in their title but who is definitely missing the development experience. IT can be quite terrible.
I find the difficulty that many here are having explaining what an Architect does/is interesting bec. then how do you prove Architect abilities to a prospective employer.
Thanks for your great input.
|
|
|
|
|
newton.saber wrote: someone who has Architect in their title but who is definitely missing the development experience. IMHO, that makes no sense at all.
newton.saber wrote: how do you prove Architect abilities to a prospective employer. By describing detailed solutions you came up with to non-trivial problems such as security, scalability, integration, reliability, etc. If all you've done is written a lot of code but have never had to address these kinds of issues, you would be considered to be an experienced developer (which is good), but not an architect. At least that's how it works in my company.
You might find this[^] classic interesting.
/ravi
|
|
|
|
|
I agree with you. Someone who is an Arhitect but doesn't really have the development chops to back it up isn't an Architect at all.
Also, I've read that book, 97 Things Every Software Architect Should Know[^]
Not a bad read because it's from so many viewpoints.
|
|
|
|