- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Sorry, TRWTF is distributed version control in any other setting but large open source project with large number of contributors. You'd think that people would learn from trying to shoehorn any new shiny nonsense everywhere even if it is not good fit and replacing the other technology which might be deemed by some "obsolete", but which is more appropriate.
Admin
Don't forget that Word can do translations from one language to another!
Admin
Distributed VCS is at worst "fine" in most heavily-centralized contexts. Even there the "distributed" portion can be a great help if anyone ever travels for instance, and see #3. Sure you probably won't see many benefits, and there are potential problems like having to break up a large unified repository to use... actually pretty awful support for things like submodules. I'm not saying it's for everyone, but using a DVCS in a centralized environment barely measures on the WTF scale.
Even if you don't grant me #1, I strongly feel that dropping the "large" qualifiers in your statement is called for, and that DVCS is a significant advantage for any open source project. (At least any where you actually care if people use or work on it.) IMO, DVCS dramatically lowers the entrance cost for people who want to work on your project. If (as a user) you have some little feature you want to add, DVCS makes it trivial to keep your modifications under version control while still tracking upstream changes (while you are getting the feature ready to push/after a push is rejected/if your feature isn't really general-purpose) because that's what it does. Without a DVCS, any modification that's more than one commit becomes far harder for anyone to do who doesn't have commit rights to the repository.
Even if you don't care about the "D" part of DVCS, you can use it largely like a centralized VCS and pick up a bunch of benefits that are incidental to the "D" part. Git and Hg are much faster than Subversion at many operations. Git in particular supports some features that I think are really awesome, like git add --patch and the index more generally. (I actually love --patch so much I wrote a script that tries to approximate it for Subversion, though it's far from perfect and Git's works much better.)
Admin
I hope I won't be talking out of school if I reveal that one of the largest payroll companies in southern California uses a boatload of vi macros as the IDE for its all-C code base. I have no objections to vi, but these countless spaghetti macros are so integral to the development process that coding cannot proceed without them, and moving to a real IDE would probably be a nightmare process.
Admin
Most of the places that I've worked, you can be terminated for using Design View in Visual Studio, nevermind this...
Admin
heh
Admin
Admin
Have you used a DVCS? If so, do you actually know how to use it?
For me sane merging makes it a must have for all projects (even solo ones). There's a tiny learning curve to using one (which Joel Spolsky has helped with thanks to his hg init site), but that's to be expected. Problem is jumping into Hg/Git/Bzr with the SVN mindset (which will get you lost quick).
Last place I worked at they jumped from Source Safe (which makes CVS look awesome) to Hg. We had 4 devs working (locally) on the same embedded project (only about 60K lines code, so plenty of potential for steeping on each others' feet). Sometimes we'd have around 8 branches (since forking off to work on a feature in isolation is trivial) and we never had an issue merging changes. Most would work with no manual intervention, and those that required manual intervention were easily handled. Of course that should come as no surprise (since they are designed around distributed use with many users).
I'd love to hear some cases where a DVCS causes overhead not present in a traditional system (not disk space or processor etc, I mean workflow overhead). A company a friend works at is still on SVN and they have full on merge days and weeks to try and sort out their codebase when they are trying to get a release together.
With a DVCS I'd never think twice about branching and I never did anything silly outside of the version control (like I have done in the past for experimental changes.. or getting around VSS's locking). I can always back out my changes, or leave an orphaned branch.. if they are promising I could push to a single teammate to take a look at or test etc. Easy and flexible.
Admin
Admin
I was going to ask if the "Biff" in the featured article was the same as "B1FF". But then I saw this and decided it doesn't really matter anymore. Because your engineer is a whole 'nother level below the "Biff" in the article...
Admin
Admin
So you compare Hg to VSS, then admit that you don't know how easy it is to set up concurrent checkouts. Granted that VSS does suck, but most complaints about it do come from people not knowing how to configure it.
Admin
Steps for correctly configuring VSS:
Admin
Possibly the impostor syndrome.
Admin
Pretty much. But it just annoys me when people complain about things that they are mistaken about.
Admin
Admin
Happened to me too.
In 1999 I was on a contract with a group that wrote all of their source code (Verilog for ASIC design) in FrameMaker.
Ya know - so they could embed tables and figures in the comments.
A macro was defined to save as text so the simulator could parse the result, but the golden files were FrameMaker binaries, and that's what was checked into RCS.
Admin
So according to Microsoft Copy-Modify-Merge was new in VSS 2005. We were using VSS 6 which only had the Lock-Modify-Unlock model.
They claim VSS 2005 uses the same DB though I find that doubtful since you have to select Copy-Modify-Merge vs Lock-Modify-Unlock at creation.. I guess it means you can continue using your vss6 Lock-Modify-Unlock database with the new client.
The particular product is somewhat beside the point. They were working within the constraints of locking source control system when they could have easily moved to one of the many free client-server or distributed revision control systems. The only barrier being a slight learning curve.
Admin
Ahhh, that was your first mistake. You took someone else's word for it. :P
Regarding the corruption, someone else had the proper fix for that: "Uninstall"
Admin
Yeah, timing might also have something to do with it. I wasn't the VSS admin, but around 2006-2007, we were using that and used concurrent checkouts pretty easily. Feels like a lifetime ago, though.
But yeah, using something else is definitely better. TFS was leaps and bounds above VSS. We use SVN here at the place that I've been working for about 10 months, and I do miss automated testing, builds, and deployment that came so easily with TFS. Then again, I don't do any of that here (hooray for a bigger pond), so it doesn't really matter to me in this case.
Admin
Come on now, we've all done this a little. I remember getting some code from someone in an email, cutting, pasting into the editor (possibly Eclipse) and then wondering why it didn't like the single quotes. After ten minutes of staring I noticed a tiny difference in the two single quotes. Two types of single quotes...
Capthca ... feugiat. I shouldn't have had the curry last night...
Admin
Admin
The weirdest thing I remember about VSS6 is that they were installing the client from an Office 2000 pro disc (I swear). It was some MS product that was NOT Visual Studio. Maybe Access? Something to do with licensing maybe? Plenty of IT WTFery in that place, most often to save pennies.
There are plenty of solutions to automated builds and testing. We used an Atlassian product(s) (forget what it's called) with Hg which had some other nifty features (tied in well with the bug system, showed useful info in Visual Studio etc). I can't speak to how it compares to TFS since they were too cheap to run TFS. It did the job and didn't require much maintenance (if any) to continue running.
Low maintenance was good since the developers had to maintain the build server and bug track server entirely. IT wouldn't touch it. They wouldn't do windows updates (another wtf that not all machines were managed centrally), wouldn't do backups (though we could point backups at a NAS), nothing. I suppose they were putting their foot down on more work, of course they then decided it was a good server to put a Windows VM on for the marketing guy (who ran a Mac but needed access to windows, but not via bootcamp or parallels or fusion though). The server was situated in R&D (not the server closet) so when the marketing guy's windows instance froze, instead of going to IT (that'd take too long), or figuring out how to restart a VM, he walked into R&D (forbidden land) and physically power cycled the computer by holding down the power button.
Which reminds me the Atlassian bug tracking software doesn't handle unexpected power cycles without manual intervention (or at least didn't at that time.. I'd hope they've fixed that since then). One point against Atlassian on that.
The blame fell on IT (since servers should be in the server room), not marketing for touching something they were explicitly told they weren't allowed to touch (all computers and equipment in R&D were off limits to all non-R&D staff). Of course IT didn't want to put it in the server closet because that would imply they had to manage and maintain it. IIRC it ended up in an IT person's office so it was out of reach of marketing, but not in the sacred server closet. The long term plan being to virtualize the physical machine to one of the big servers in the closet (which I wouldn't be surprise if it still hasn't happened).
Admin
So you fault me for making an assumption, and then make an even crazier one yourself? ahahahahahahahaha
Admin
Side note vaguely related to overengineering: My car can route the Air Con/Heater through the cup holders "to keep your drinks at a nice temperature". I'm guessing that plowing aircon temp air on a cold drink ain't gonna actually keep it at a pleasant drinking temperature. Although it's possible this was a feature thought up by a salesman (I'm guessing there's a lot of schmucks who would think this sort of thing works), I can't help but think it's an engineer that's too clever for his own good....
Admin
Admin
And Visual Studio's disk footprint is any better? Besides, who cares! With terabyte disks, I'm sure you can spare a gig (LaTeX) or ten (Visual Studio)
Admin
What was the crazier assumption? That it didn't have concurrent checkout? That assumption was correct (at the time).
Basically you go on a diatribe because I was wrong and so many people are wrong about VSS not supporting concurrent checkout and shouldn't ignorantly complain about something that is wrong. In reality VSS didn't support concurrent checkout until the final version.
Instead of, "Hey I learned something new. Now I'll know the facts next time a VSS debate comes up." You try to turn it back on me because your ego is hurt.
Sorry you are butthurt. This is the internet, you might be wrong and people might point it out.
Admin
You're really missing out, people.
All you need to do is run docx2txt.pl from your Makefile, then you're all set to compile, guys!
http://docx2txt.sourceforge.net/
Think of it as a preprocessor pass that turns human readable code into machine readable code.
Admin
xkcd-someone-is-wrong-on-the-internet.png
Admin
Aren't you coming to bed?
Admin
I remember writing the help for a system we were working on in Word Perfect 5, Then writing a macro to add the correct bibs and bobs to create sql to put it into the database which linked the compiled program to the help system (had access to internal database documentation for LANSA for the AS400). Fun when you had only 10 variables to use .
As LANSA also stored the source code in a database I quickly learned it was quicker to write code in WP 5 ( & then 5.1 ) on my PC, run a slightly modified macro to create the correct sql to put the code into the db and then execute the compiler (which converted to RPG III and compiled that) oh what fun. Then when VB1 was introduced wrote a syntax highlighting IDE that I connected to the db improved productivity no end as the LANSA editor was only green on black.
Having said that, I know someone who wrote a comms program in Excel (for dos) macros as that was the only programming environment he could use on an otherwise locked down machine.
Admin
We had used the Windows control panel to add a bunch of keyboard layouts, and we looked at charts of what a Polish keyboard looked like and what a Russian keyboard looked like, etc. But when we pressed a key, Visual Studio interpreted it as a shortcut hotkey and performed some action instead of inputting it into the file.
Visual Studio 6 was worse. It could compile .rc files that were already in Unicode, but it couldn't edit such files. So we always had to use Wordpad to edit those files.
Admin
Windows 98 Second Edition + drivers from USB vendors + only putting one partition on a USB disk could use USB disks. USB keys came out a while after that.
Admin
That would work for your code, maybe. But it wouldn't work for Peter's co-worker's code, which generated different syntax based on text color.
I have to say, that's the worst idea I ever heard. Just imagine this exchange: "Well, there's your problem right there, dope! You colored it 'forestgreen' instead of 'green'. What are you, color blind?"
Admin
+1. QFT
Admin
Well I worked in a 'team' of coders 'programming' in php. Firstly, OOP was severely frowned upon. Secondly, the method of coding handed down to all the new generation coders was to use a (non-free) text editor, and use object dumps at various points of code for 'debugging'.
Seriously I had to pair program at a colleague's machine on many occasions with him working through hours of object dumping, pleading with said colleague to take it to my machine to run through the debugger using break points and variable watches. The answer was always 'no no', the problem is in here somewhere...
And yes, I too used Visual Studio for said php 'programming' (I quote that because I don't see php as real programming) using an IDE extension so I had breakpoints, code highlighting, intellisense, object watches, refactoring etc.
Admin
Admin
Yikes. Not only a special machine, but Win95 with USB support.
It was rare to actually see that work... it was only possible with OEM version 2.1 or higher (AKA Win95B or Win95C). Retail copies were never supported.
Admin
Admin
Subversion makes this really easy: you just stick everything into one big repository, and things just work. (Well, they work as well as Subversion works anyway.)
Git or Mercurial behave really badly with huge repositories like that, so you have to break it up. And I can't speak to Hg, but in the Git world you then have to decide whether you just use a disconnected set of repositories, git submodules, git-subtree, some manual tree-based merge strategy, etc., and all of those have various tradeoffs in terms of what they are good and bad at, and none of theme are even as close to as smooth a workflow as putting everything in one repo.
I'm the same person who posted a defense of DVCS shortly after the original comment, so don't get me wrong -- I'd probably use Git for everything if it were up to me. But coordination across repos is, IMO, a problem that is far from convincingly solved.
Admin
I've tried very hard to forget the entire experience, so I'm not sure about Win95 vs Win98 vs Win95++. I think it was USB keys, adding a custom driver would have been his style, but it could very well have been 3.5 inch
floppies.
Admin
I can sort of see this -- I wrote an entire PhD dissertation in vi, as well as writing user documentation and training slides in vi at my first job.
Of course, if one does something like this you hope they're using some member of the TeX family (as was I).
Admin
I code html in Notepad. Some people at work think that's odd, but I memorised the tags and know exactly what the code is doing. Unfortunately, I can't say the same for people who use WYSIWYG html editors and don't really understand what the code is doing.
If you are programming, you should know the keywords, typical structures etc of whatever language you are programming in.
Admin
Oh wow, this thread caused memories to come streaming back in.
Back when BASIC was a language used by people who wanted or could learn how to program, it was not really practical to generate lower-case characters.
ALL CAPS was not considered shouting at the time -- that was just how computers talked. If you really had to have a lower-case character, you could force BASIC to emit the necessary EBCDIC code.
Then, I was introduced to another language called FORTRAN. You had to use a text editor in order to create FORTRAN code, and that was a gateway drug that led to many new experiences, the least of which was the brave world of lower and mixed-case output.
Admin
Are we sure this isn't Biff The Understudy from Baldur's Gate?
Admin
The reason each statement had the FORTRAN statement in columns 7 to 72, continuation characters in column 6 of continuation cards for a statement that didn't fit in a single card, an optional statement number in columns 1 to 5 for a statement that was a destination of GOTO or a FORMAT statement, a letter C in column 1 for a comment, and ignored stuff in columns 73 to 80 that could be used for sequence numbers to sort a dropped deck, was that you had to use a KEYPUNCH in order to create FORTRAN code.
Those were the days when "REAL PROGRAMMERS CODE IN PEN" meant what it said. Those who considered themselves incompetent coded in pencil. Either way, the next thing they did was take the pieces of dead trees on which they had coded their programs to a KEYPUNCH and poked holes in other pieces of dead trees.
I made fewer bugs in those days. Although a code review by self while reading self's bug ridden paper and punching them into cards is less effective than a code review by another programmer, it's better than nothing. When I read it back and noticed I was punching garbage into the cards, I punched the cards into the garbage, fixed my program, and proceeded to punch something more likely to work.
BASIC was invented for beginners who had trouble learning FORTRAN.
Admin
Three issues. On low end systems,
a) Sometimes they omitted lower case letters from the character generation ROMs to save money. b) On low resolution displays, lower case letters looked like crap. c) The lower case letters qjgp have a drop which requires an extra scan line.
The developers of unix though, they used lower case as a mark of class, to lord above the unwashed with their crappy cheap display terminals, or clutch my pearls, a TV with a display converter.
Admin
Real men don't need debuggers, right?
Admin
Back then people used TVs as displays and lower case looked crap in 8x8 fonts with no descenders.
Lower case only became practical when IBM started using
There's and old saw about when "user friendly" meant lower case error messages.