Ask HN: What are you Building?

62 points by michael_fine ↗ HN
I'm curious to see what interesting projects/startups HNers are working on.

145 comments

[ 3.3 ms ] story [ 169 ms ] thread
I'm building a web package in Lua/Kepler. The idea is that you install it, create an admin account, and then decide what you want the site to be. If you want a wiki, then it installs wikimedia and configures all that. If you want a blog, it'll install a custom blog software with lots of extensibility. If you want CMS, then it will install Joomla/Drupal/Whatever, and you can configure all of that. If you want forums, then you can install phpbb/vbullshit/custom forum software.

Right now, I'm mostly designing blogging software and forum software. I plan on making everything first, releasing it all separately, then just packing it all up as a chameleon package once everything is finished.

You know, the usual.

I'm working on step 2 of a naming company (we create names for new startups and products). The plan is to offer a package with a name, logo, and business card, so I'm working on my logo design skills and bringing in some more designers.

Also, I'm building an copy editing service that's more transparent and straightforward. Most editors have complicated pricing schemes that vary depending on the topic, document type and whether they charge by the hour or by the number of words. Instead, I'm charging a flat fee per word, no matter what the project, and you'll be able to customize other features (like delivery date, format, etc.)

Hoping to get both startups rolling by the end of June.

I have to ask: Does your naming company have a name?
Yep, Nomvilla. (http://nomvilla.com)
how did you choose that?
"Nom" is the Latin root for "name" in pretty much every European language (Nom in French, Nome in Italian, Nombre in Spanish, etc.) and a villa is an upper class country house, so together, it's "Naming House".
(comment deleted)
I'm finishing up an ebook. I've found that startup founders struggle to tackle privacy issues. I'm hoping this ebook helps early stage startups find both a reason and a method to tackle privacy issues. If anyone is interested send me an email (in profile) and I'll send along a full copy -- I'd love to get your feedback.

http://startupprivacy.com

I'm currently working on a little project that has a new spin on Pastebin. I'm playing with a Bayesian classifier (or attempting and learning a lot) to auto-detect the language and appropriately set the syntax highlighting automatically without a dropdown and a reload. The paste will also be saved automatically so there isn't a page load for anything.

I'm still hacking away and haven't got very far whilst I'm getting my head around the classifier. One other problem I've noticed is keeping track of ownership. One solution I have in mind is that there is no ownership: when it's modified it generates a new link to share with. It might be good for very simple code collaboration - I've tried doing this with Pastebin over Facebook chat and this should make the process a whole lot smoother.

I also need to think about how training will work. I envisioned it so that the user can train it i.e if it guesses wrong, the user would correct it by selecting the proper language and the program will learn for the future. I'd be putting a lot of faith in potential future users but I'm not expecting it to be big or anything, maybe just something me and my friends can share and work on code friction-free (some don't have GitHub/BitBucket/etc accounts, one doesn't like CAPTCHAs at all).

I'm currently going off 100% self-education here too so I'm having to get to grips with some other maths stuff like some symbols (such as | means conditional probability and _not_ to be confused logical OR), so if the project falls flat on its face at least I learned something from it :)

Why not just make it a branching model? Whenever a new user edits a paste it creates a branch off that paste. It allows seamless sharing, without links. Kinda like this: http://srctree.net/
Oh wow, that's the perfect thing and achieves what I need and more. I didn't even think about being able to see the history of a piece of code.

Thanks for showing me this. Much appreciated.

Instead of having users train the software, why not download and feed it a corpus of open source software? Writing a script that clones random Github/Bitbucket/Google Code projects and feeds the code to the trainer (using the file extension to get the language) should be easy enough.
That is a good idea. Might even be able to just get away with not displaying a language name or anything so if it's off a little bit, it won't matter much. For example, there'll be much less worry if some C# gets mistaken for Java in rare instances - I'm guessing in those instances the differences won't matter.

Thanks for your input :)

I'm building a legal billing software that removes a lot of unnecessary complexity for solos and small firms.
how is it easier for the user?
I'm working in a 2D RPG in ImpactJS. Spent the last week getting HTML 5 caching to work on desktop and iOS, then put the finishing touches on a bash script to update the cache manifest, compress all my JS files and rsync them to the server.
How are you liking ImpactJS? I have done some looking at it but the hundred dollar price tag just to try it turns me off.
Love it. I'm not an engine guy, so having some of it done for me is wonderful. ImpactJS is well documented, reasonably fast, and has classes for the basics that work well. Plus it has a level editor that now includes collision detection. I'm satisfied with the $100 price.
I'm building a web application for stormwater engineering that integrates local jurisdictional requirements of computation, design and reporting with industry-specific project management.
I´m rewriting the strategy, moving from the app approach towards a html5 interfase guerrilla
I'm working on what I call "semantic version control". Namely, instead of diffing and merging text, the goal is to parse the program and diff/merge the AST.

EDIT: A better way to state the goal: I want to take advantage of the underlying structure of a computer program to inform the diff/merge. The first step just happens to be diffing ASTs, but I go beyond this.

I already have some neat features--for example, I can detect moves fairly robustly. That is, if you move a function, I can see that as a single action even if you modify the function a little bit when moving it (e.g. rename the parameters). Also, there is already more information for resolving conflicts in a three-way merge.

Unfortuntely, the performance is currently horrible, which makes it completely unusable. Once I fix that (I just need to memoize the diff function properly) and fiddle around with some of the algorithms a bit, I'll have something interesting (I hope :)). After that, I'll probably add a UI.

Also, I should add that I'm not the only person with this idea. A lot of the early design and features are based on YDiff[1], although I used no code from there. The merging and some of the other stuff I'm working on right now is more original though (I think).

[1]: http://yinwang0.wordpress.com/2012/01/03/ydiff/

That is a great idea, if you can get it to work.

I think your nomenclature's wrong, though. If you are comparing via the AST, it's lexical version control.

However, on your second paragraph:

> That is, if you move a function, I can see that as a single action even if you modify the function a little bit when moving it

That already seems a bit more semantic than lexical.

Well, I'm using the AST to power most of the analysis. So the first-order diff is lexical--it works on syntax ignoring whitespace and the like. The second-order stuff, like matching substructures, is based on the first-order diff, but is semantic.

I'm also planning to add more semantic features. In the short-term, I'd like to detect other simple refactorings (particularly renamed variables). In the long run, I might even add very language-specific features (like trying to use type information to help with merging).

I was just wondering what would be the use cases of this.

I mean to say code version control really is text version control. The whole idea is to track the changes, the cause for the change and who changed with some history. Added with this ability to do other code release related changes like revert, merge etc.

What is the use of semantic version control?

Right now it's just a better diff/merge tool. It's more accurate than a normal diff or merge, doesn't get confused by meaningless changes, can resolve more conflicts (theoretically) and should be able to produce a much better interactive merge experience.

I don't have any features beyond that right now--it does not actually manage different versions itself right now. Once I have the client finished, you will be able to use it along with a normal VCS like Git.

However, there are certain advantages to using an approach like this to manage commits as well as diffs and merges. For example, given the information I'm gathering, you would be able to automatically mark commits that only changed comments but not actual code. Additionally, you would be able to perform some fairly sophisticated queries on history--for example, you would be able to track a function across renames or just list all the names it ever had, which would be useful.

This is all possible, but writing a complete version control system is outside the scope of this side project. Additionally, it would be much easier to get users if this tool just augmented their existing workflow (e.g. Git) rather than trying to replace it altogether.

Hopefully this gives you a good idea of the sort of things I want to do. I have some other ideas as well, but some of them are probably too difficult to implement. I have to admit that even the relatively simple coffee I have so far turned out to be much more difficult to write than I exit expected.

Your question is actually very useful--it reminds me that I need to come up with a good elevator pitch for the system. I'll worry about it when I actually have a working prototype rather than a loose collection of slow functions :-).

The biggest benefit is more clear understanding of changes in development teams over significant periods of time. For example, when was this function changed? That's very hard to answer when the diffs are not semantic.

The Eclipse IDE provides semantic diffs on top of version control when viewing specific commits (pending or already committed) but this is obviously not part of the underlying version control system and is limited.

Hey, glad you are working on this. I have later given a talk on structural version control together with demos of structural editing and ydiff. Here are the slides:

http://yinwang0.wordpress.com/2012/02/12/structural-version-...

I think structural version control can open lots of possibilities that are not accessible by text-base version control systems. I'm not really focused on this area, but I'd be happen to to see more people getting interested in this and work on it.

As for the performance of diffing, I think the bottleneck is with detection of moving. That's something that text-based diff doesn't do at all, so not a big drawback. But with structural editors, those moves can be instantly detected and logically merged by the editors. That's too far into the future though. But I think structural diffing without move detection can be of good use already.

Another direction that's possible to detecting moving more efficiently is to use hashing, the same trick used to eliminate redundant expressions in a compiler.

I'm working on http://judgmint.org -- we're turning guilt into money that can be used for social good. Ideally we'll be able to collect some interesting information about people's moral positions and biases.
(comment deleted)
I've really been liking the Mac App Store. Great potential for selling apps as an independent developer, and not nearly as saturated at the iPhone/Android app stores. Such as...

EdgeCase: http://itunes.apple.com/us/app/edgecase/id513826860?mt=12

I'm a bit surprised that they don't consider this a violation of their requirement that apps not change the native user interface.
It was a really frustrating process getting it accepted actually. Took over 3 weeks and several rejections. Really depends on which reviewer you get I think.
I just finished building a widget, for beta testing, that startups can grab from my website that has a built in screen recording tool. So once they embed this on their own website they can entice users to record their interactions and it will even pick up on audio feedback as well.

You can see the widget on my site http://betapunch.com. The widget is the little punch icon in the right corner of the page. It's not great as far as design goes, but that's why I am working on the 2nd variation of the widget I will be launching in a couple days.

Here's what it will look like: http://i.imgur.com/iBS7C.png.

I am trying to get as many people to grab the code and put it on their startup websites so I can make sure display and functionality are all in order in various different browsers.

So if you have a moment and want to give it a shot for your site that would be great! You can remove it whenever you'd like, I just want to make sure it does what it's supposed to. :-)

Very cool idea - that's taking user feedback to the next level. Will have to give it a spin.
thanks! could you tell me which site you tried to install it on? I sent you an email too.
Added to a wordpress theme footer in a few different places. Couldn't get it to work & doesn't look like there's any way to contact you via the betapunch site. Email in my profile if interested.
As an average Joe, I've got no idea why I should click to begin a screencast. What does it do and why should I do it?
Good point. I know it's not crystal clear and that is largely my fault because I see it every day. I am hoping the newer style widget will clear things up maybe. The startup is allowed to customize an incentive when they get their widget code to display on their site. The purpose is to get something from the startup as a reward for beta testing their app. (A free upgraded plan, or some swag etc.)

Video recorded feedback has been proven to be much better than text based feedback. Why write out a problem and have something get lost in translation when you can show them and talk them through it?

I'm building an online workspace for uni students to collaborate on assignments and includes a calendar, contacts management with chat across platforms and an email client with document editor built in for pdf & doc.
Do you have some contact info I can reach you with? This sounds interesting to me.
Hit me up at @scrummitch on twitter and I can tell you more about the project.
Building HTML5 mobile app designer tools. Launched in late February, now ramen profitable, several YC rejections under our belt...we are going to bootstrap the damn thing!

http://codiqa.com/

(comment deleted)
Wonderful looking site, the UI and UX look really great. Wish I had a use for the tool myself.
Great work. I signed up about two months ago and intend on using codiqa for our mobile prototyping. It's great for those of us that are bootstrapped.

I actually found about you guys on Reddit :)

Cool, well feel free to drop me an email if you have any questions or suggestions. My email is in my profile. Thanks :)
Not sure you would find it interesting, but since GrubHub/Seamless are not in my area (Suburbs of South Florida) - http://munchables.me/
Nice to see something in South Florida.

Site looks well-done, too.

I'm working on http://asterank.com, a database that catalogs and computes the economic attributes of nearly 600,000 asteroids.

According to the data, there are 74 asteroids worth over $10 trillion.

I'm typing up this reply...
OK , as music lover (mostly as listener ) i developed weird abstract product that collect music recommendations from your Facebook friends and groups into private database , and in real time and let you play it ( you tube streaming ) its GUI sucks and its desktop app. but from programmer point of view it is doing its job and there are few weird people that like it : http://www.tunesamp.com/ hu .. and i very open to suggestion how to develop it or which direction to take it
Non-programming wise, I'm finishing up my PhD thesis. And my current side project, which I'll start as soon as I'm done writing is a small location based iPhone app.
Pay for performance SEO quoting system. You don't usually know what you're getting w/ SEO because it's billed per hour or in the typical standard, pro, enterprise packages that work well for web apps but not keywords w/ different competition levels.

And, it feels like the interests of firms aren't always tied to their clients. "Of course we have a guarantee...you're on the first page (of Ask.com)!"

So, I'm working on a quoting / billing structure where customer payments are dictated by the ranking improvements. Feedback so far is good, but of course, it's a challenge.

http://www.growtap.com

Since good SEO is a personal relationship with the client, it might benefit you to personalize your About Page. Clearly the price is right, but to sell me, I want to know that there is a team behind the effort.
Thanks for checking it out and the suggestion. Definitely will have to be upgraded soon (hiding it in the footer menu isn't the answer I guess).
I would also suggest a sales video explaining how much better performance based SEO is than the standard company. Put it where your screenshot is on the homepeage. Videos really connect with people, especially if you can get across your passion to really help your clients. something simple would cost you under a thousand if you found the right person to do it. (check out www.quiry.com "manifesto" or even go with some basic kinetic typography with music and your voice in background)
This month I've been Working through a book to teach myself iOS development. Only two chapters left!
Yak shaving & then once I'm done, implementing redundant yaks.