I spent the last 3 years building this differ thing. It has plugins for different filetypes (text, image, and simulink) and for different filesystems (local disk, web, and S3). Right now I'm working on turning it into a good version control client too (SVN first, then git).
Curious to see what people's first impressions are!
This looks cool. I like the concept of plugins for different filetypes.
My visual diff tool of choice is Meld, and most of us at work use it often with git. However, it would be cool if it supported plugins for filetypes. For example, recently I was interested in an SVG visual diff, which colours differences between SVG files, but could not find one.
How much do you think you'd be willing to pay for an SVG diff? One issue I'm grappling with is that I think people are willing to pay a lot to diff their CAD files, and probably nothing for their text files. There's a lot of useful stuff in-between, but I don't have a good feel for what price is appropriate.
Myself? Sorry to say, but I probably wouldn't pay, seeing as I am a programmer by trade. This was just for a little side project where I wanted to collaborate with my little sister on our own version of xkcd's "Click and Drag" [0] which we work on over a long period of time. I figured using Inkscape and version controlling the SVG's was the best way to collaborate with her, even though she's not familiar with version control (just finishing high school, interested in arts and not coding).
But I take your point that professional designers tend to pay for their tools, whereas programmers often find an open source tool. I guess it comes from the fact that programmers can program their own tools, where as designers cannot.
I recall a project hitting the front page which focused on visual diffs of 3D model which you may be interested in [1].
No way! My little brother drew most of DiffPlug's icons (and took the photos used in the demos). He is also just finishing high school, and part of why I made the image differ was to help bring him into the version control fold.
Thanks for the 3D differ link! The conventional wisdom when I talk to people about DiffPlug is that I should make it into a web service. For diffing, I think a desktop app is better than a web service for a few different reasons, but one of them is that the cloud is a pain for big documents like CAD files. I haven't had any real data to support that so far, but the comments thread for that link is very helpful!
Right now I've got two videos: the teaser on the front page, and a "getting started" video.
My goal was for the teaser video to get people interested enough to start the download and watch the "getting started" video. Based on my google analytics, it looks like I'm getting a pretty low conversion rate, so I'll try using the "getting started" video as the teaser. Gimme a few minutes...
Welp, this doesn't mean that either video is good, but more people were downloading it with the "teaser" video, so I'm going back to that one. I've definitely got a lot of work to do on the marketing side.
For what it's worth, your "teaser" video had me sold within the first three seconds. But maybe it's just because I've been looking for something like this for a long time. Great job!
Funny you should ask! That little blue/green eye that's used in the demo was the logo for "PictureDiff". I took out all the heavyweight stuff, and made it just a filmstrip, and you could click images in the filmstrip to open diffs. It also had the ability to compress images using diff: you compare a JPEG quality 50 image to a quality 80 image to decide if the extra filesize is worth the extra quality.
I spent $100 on AdWords to get people to look at it, but not a single visitor liked the site enough to download it. I might have given up too soon, but I decided to scrap it. I was way more motivated to tackle the general diff problem, and I didn't want to put a lot of effort marketing something I wasn't excited about.
Do you recall if one of the videos was the "Getting Started" video on the documentation page? I had been using a fast-moving "teaser" on the front, hoping that it would get people interested enough to watch the "getting started". My conversion rate isn't very good right now, so I'm gonna try just putting the "Getting started" video on the front.
I actually think there's an even bigger market for desktop diffing than web diffing. Most files that need diffing start their lives on a desktop. And most of the time, the diff happens before those files hit the cloud - while you're committing / merging with the central server.
If things like circuits.io and Cloud9 beat their desktop counterparts then I'm wrong, but if people (and especially enterprises) continue to do most of their complex work in native apps and not in the browser, then I think I'm right.
I wasn't necessarily talking about diffing on the web. I was actually talking about a diffing service.
I've seen lots of diffing programs and they all seem to have varying levels of success. I think there's an opportunity for a company to become the gold standard for diffing and to offer their diffing engine via a service that can be integrated into apps (web and desktop).
I bet there are lots of app developers who would like to have a robust diffing engine in their apps, but don't have the time or expertise to build one themselves.
EDIT: I see that you're the author. Have you thought about putting your diffing engine behind a web service?
People have suggested that I put the engine behind a web service. I don't personally have strong web skills, but I could learn / find collaborators.
The thing that I'm most interested in is building diff for things which haven't had very good diff before - CAD files, schematics, spreadsheets, etc. For each data format, you need a different set of diff tools.
I've built a grab-bag of diff algorithms for diffing different kinds of data (the Simulink diff in particular is a showcase of the different kinds of data DiffPlug can work with).
My goal is to release this grab-bag so that people can build their own tools on top of it, but I also have several tools in particular that I want to build.
Working in embedded software for aerospace is what drove me to make DiffPlug. When I built the Simulink differ, I spent a lot of time making it very general so that I could go after PCB schematics and layouts, some of the FPGA toolchain, etc.
I don't have any specific experience with PLC programming, but I bet some of DiffPlug could help your co-worker. The public API is still months from being stable, but I'd love to talk with your co-worker, I expect we have some shared interests. If he or she is interested, my personal email is ned.twigg@diffplug.com
26 comments
[ 2.4 ms ] story [ 76.7 ms ] threadCurious to see what people's first impressions are!
If you want people to buy I think you can be a little more upfront about your pricing.
Just my opinion.
I'm not sure what paying actually gets you beyond the version you can just download and use.
My visual diff tool of choice is Meld, and most of us at work use it often with git. However, it would be cool if it supported plugins for filetypes. For example, recently I was interested in an SVG visual diff, which colours differences between SVG files, but could not find one.
But I take your point that professional designers tend to pay for their tools, whereas programmers often find an open source tool. I guess it comes from the fact that programmers can program their own tools, where as designers cannot.
I recall a project hitting the front page which focused on visual diffs of 3D model which you may be interested in [1].
[0] - http://xkcd.com/1110/
[1] - http://news.ycombinator.com/item?id=4393704
Thanks for the 3D differ link! The conventional wisdom when I talk to people about DiffPlug is that I should make it into a web service. For diffing, I think a desktop app is better than a web service for a few different reasons, but one of them is that the cloud is a pain for big documents like CAD files. I haven't had any real data to support that so far, but the comments thread for that link is very helpful!
Firefox 18 (Aurora) on Mac.
And second, I don't know what's going on or what I'm supposed to be looking at in the video.
My goal was for the teaser video to get people interested enough to start the download and watch the "getting started" video. Based on my google analytics, it looks like I'm getting a pretty low conversion rate, so I'll try using the "getting started" video as the teaser. Gimme a few minutes...
I spent $100 on AdWords to get people to look at it, but not a single visitor liked the site enough to download it. I might have given up too soon, but I decided to scrap it. I was way more motivated to tackle the general diff problem, and I didn't want to put a lot of effort marketing something I wasn't excited about.
If someone nailed the execution and supported lots of types of content, I'm sure there'd be a market.
If things like circuits.io and Cloud9 beat their desktop counterparts then I'm wrong, but if people (and especially enterprises) continue to do most of their complex work in native apps and not in the browser, then I think I'm right.
I've seen lots of diffing programs and they all seem to have varying levels of success. I think there's an opportunity for a company to become the gold standard for diffing and to offer their diffing engine via a service that can be integrated into apps (web and desktop).
I bet there are lots of app developers who would like to have a robust diffing engine in their apps, but don't have the time or expertise to build one themselves.
EDIT: I see that you're the author. Have you thought about putting your diffing engine behind a web service?
The thing that I'm most interested in is building diff for things which haven't had very good diff before - CAD files, schematics, spreadsheets, etc. For each data format, you need a different set of diff tools.
I've built a grab-bag of diff algorithms for diffing different kinds of data (the Simulink diff in particular is a showcase of the different kinds of data DiffPlug can work with).
My goal is to release this grab-bag so that people can build their own tools on top of it, but I also have several tools in particular that I want to build.
I don't have any specific experience with PLC programming, but I bet some of DiffPlug could help your co-worker. The public API is still months from being stable, but I'd love to talk with your co-worker, I expect we have some shared interests. If he or she is interested, my personal email is ned.twigg@diffplug.com
I use Meld, because it's available through my package manager (http://meldmerge.org/)