Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What project would you work on if you had half a year of free time?
109 points by conglats on July 25, 2014 | hide | past | web | favorite | 176 comments
I'm mainly trying to think of something to do for my undergraduate thesis, but I'm also curious about the projects you would work on that aren't academic.

I would spend the first month just enjoying my family, playing with my kids all day, taking my wife on dates. When they got tired of me I would spend a good week blogging, and reading stuff. I would then dream up an application so large and outside human possibility. I would spend 7 solid on days on that before I realized I was an idiot for even imagining it.

Then I would get super sucked into an anime series and spend a week getting through that. After watching tv for a week I would make a profound realization about my health and starting eating right and exercising regularly. I would definitely need a new pair of shoes, a water bottle, and a fitbit. I would spend the next two weeks working out really hard, and starting to feel great would me remind to be productive.

I would then scope a really clever Sass business that will generate monthly revenue so that I would never have to work again, and could be my own boss.

I would spend the rest of my time trying to get this up, working, and generating revenue.

Also guitar, I would definitely learn guitar for real this time.

I don't have a family of my own, so I can't do that part.... but switch an SaaS for the next single function social media platform that's obviously going to be a >$4B buyout and count me in.

Pretty crazy how much I agree with this.

Are you, me?

Deployable native-app encrypted email based on ECC OpenPGP, with a default to some affordance for generating new keys on the fly.

That, or an ANSI-art spin on Dwarf Fortress but set in San Mateo in 2010, because if ever there was something screaming out to be represented as a procedurally generated mob to kill, it's the California tech startup. ;)

Some random ideas currently floating in my head:

* Ultra-portable Linux computer. This is interesting in both building the HW, and figuring out the SW stack. To get most out of the device some custom(ized) SW is probably needed. Main inspiration: 200LX

* New kind of word processor. Squarely aimed for writing essays and other relatively straight-forward articles. Attempt to take semantically correct HTML to the extreme.

* Tag based file system/management. Ultimately this is something that should be integrated fairly deeply to the OS, so probably the most difficult of these projects. Basically make the filesystem more like document database.

* Something that merges the greatness of Excel and IPython. Not sure if this is really achievable, but it is something I'd love to explore.

* Object shell. I think the basic idea of PowerShell (ie piping objects) is very cool. But the syntax did not impress me, and Windows console window is not a nice editing environment. The output wouldn't need to necessarily be pure plain text, instead you could have at least some simple tables etc.

* Discussion platform. This is bit nebulous in my head, but something that would merge best bits of Wave, G+, Reddit, XMPP, and blogging maybe. This is one area where innovations certainly are possible, especially ones that do not have a walled garden in the center.

* Better XMPP-IRC gateway. Kinda precursor/first-step for the previous, something that would allow progressive transition from IRC to XMPP. Main inspiration: Isode/M-Link/FMUC.

* MP-TCP based VPN gateway+client. This is pretty self-explanatory; most services (afaik) do not support MP-TCP, but for end-user it would be massively beneficial. But luckily most of those benefits can be gotten by using MP-TCP (or something similar) to make a VPN, over which regular TCP connections are made.

Many of these ideas might work quite nicely together to make even greater whole.

> Discussion platform > XMPP-IRC gateway

Related: SecuShare, GNUnet, psyc, "Design of a Social Messaging System Using Stateful Multicast", http://tg-x.net/pub/gnunet-psyc.pdf

> New kind of word processor.

Some good ideas here: http://strlen.com/treesheets/

Like your idea about combining excel and Ipython a lot. So many people start with excel because it makes it easy to enter data and put up a couple plots, but by the time you want to do something more serious, you have multiple worksheets and cross references everywhere that are difficult to replicate into MATLAB or Ipython or a similar environment. Definitely see a market for that.

I would take a pet problem that I have and solve it well. Something so personal that nobody else would solve it. A personal time management app just for me. A way to manage all my contacts so that I can keep up with them intelligently. Something to get me to do that tasks I procrastinate on the worst (like going to the Dentist). There are a million general tools for this, but having your own perfect tool is like having a superpower. And it's a great way to get to know yourself.

Alternatively, you could become the world expert in something small and bizarre. Like VIM. Just kidding. No, like some API. I got to know the MTurk api, and it then became an expert at it. Then people started treating me like an expert. It was cool.

A third approach is find somebody you want to learn from and work with them. Any project you pick will never be as important as what you learn from the project.

Ha, fancy seeing you here (if that username matches up with a certain athena account)...!

That's a very good observation about becoming an expert at a particular niche. The same thing sort of happened to me one summer, when I researched so-called "Blue laws" in the US. Spend a summer diving through microfiched historical laws in the library and soon enough you know more than anyone else in the world on the subject! It's quite an interesting feeling.

However, as hmslydia said, I think an API could be a good niche here.

Ha! it is me! I'm in Cambridge! Let's catch up!!!

> A third approach is find somebody you want to learn from and work with them. Any project you pick will never be as important as what you learn from the project.

Finding a good teacher for whatever skills or traits you want to develop is incredibly hard but easily one of the most rewarding things you can do for yourself

I'd like to create a market for a "wish-based" currency. (Stop laughing).

As dumb as that sounds, I was struck by the idea of what a currency market would look like in some sci-fi techno-utopia (one where nanites or molecular printers can basically provide all utilitarian needs).

Presumably there would still be a need for currency, even if people didn't have to buy things. If I squint, I can almost see Kickstarter as a general example of a very specific "wish-based" market (one where someone has a thing that they want to exist, and other people collectively fund it).

So what could a system look like that was designed to facilitate wishes. Presumably there's some underlying crypto-currency, and a reputation system (which I'd also like to work on).

Anyway, it's at the bottom of my todo list.

Have you, perchance, read "Voyage From Yesteryear"?

The "economy" described is rather interesting.


I haven't, but I just bookmarked it. Thank you.

You might dig this article on the economics of star trek. It's kind of an inquiry into what currency might look like in an era of abundance.


Another sci-fi story on post-scarcity economics, Walter Jon Williams "The Green Leopard Plague", part 1 here. Remainder in anthology of same name.


wish-based currency? Try http://www.impossible.com

I've been slowly designing an open source drum lesson book. If I had more time, I'd put more effort into it.

Currently, there are a few drum books that every drumset player works out of (Syncopation, Stick Control, etc). Most people don't play what's in the books note for note. Instead, they modify the lesson to fit whatever they want to learn. If they were available under a free license, it would be easier for teachers and other drummers to publish their own modified lessons.

I have no delusions that a free drum book could replace the classics. I'll consider it a success if it just helps my students. And who knows, it might catch on.

I'm definitely interested. Is there a mailing list or something similar I can subscribe to in order to keep up with the progress?

Do you have links for the work in progress? What drumset player are you using for your book?

Not a software project, but I would try to learn mathematics properly and in depth. This isn't something I've had the time or opportunity to do.

I would get a stack of basic and undergrad textbooks, maybe a copy of Mathematica, maybe also a tutor, and just start at the beginning to see how far I could get.

I came across this yesterday (probably on HN) http://betterexplained.com/cheatsheet/ I plan to read through all of this in my free time.

I don't know where you found it but thank you sir! Very enlightening and helpful for those things you get rusty on. Calculus was 6 years ago now for me and just skimming over what is in this sheet helps a hell of a lot. Awesome!

I had 6 months and tried to do this. That was 7 years ago and I just finished my PhD. Careful what you wish for. Now I have another 6 months...

A better understanding of math would directly impact your skill as a programmer. It might be worth it to float the idea with your job and see if they can help you with that. Then demand a raise because of your increased value.

My current pet project is a Diplomacy adjudicator API. There are some dated web apps out there where you can play the game online, but I'd like for there to be well-tested and refactored backend as the basis for more modern web and mobile apps. Given the time, I would build this API out to pass Lucas Kruijswijk's test cases[0]. Probably not scholarly-level stuff, but it sounds fun and there's much to learn in such an ambitious project.

0: http://web.inter.nl.net/users/L.B.Kruijswijk/

Gosh, I haven't thought about diplomacy since college! Had no idea that the test cases were outlined in such detail.

I agree, this would be a fun project and not trivial.

Since we're talking academic: agent-based economic modeling, in which you come up with scenarios and assumptions about how different folks make decisions (which might be heterogeneous--e.g., your imaginary stock market could include the equivalent of the unfortunate individual investors that watch CNBC and follow bad strategies, and institutional investors, and HFTs), and you see how they play out. If your model seems to resemble the real world in interesting ways, you can simulate applying some intervention--a transaction crash, a commodity-price shock--and see how that plays out. Up to you to pick which scenarios and models to explore, of course.

It's fun because you have more flexibility in the kinds of models you can toy with than if you were simply working with equations and had to assume a spherical cow, and you can connect computing with a different discipline, and you get an almost reasonable excuse to borrow some extra compute cycles for a couple of larger simulations. :)

I've been thinking about similar things as educational tools, calling it interactive and illustrative simulation.

The idea is help people (kids and adults) learn a variety of real-life complex systems, such as free-markets (and how they do and don't work), game theory and social behavior, the impact of money in politics, the impact of advertising on the economy and web content, etc.

Users could control sliders to compare ideal situations to reality. For example, they can reduce to zero "consumer gullibility to advertising", "consumer myopia", max out "consumer intelligence", and see how the invisible hand of the free market works well. Then they can move the sliders into reality (They get to decide for themselves how far over), and see how the free market breaks down, and effects such as the Mathew Effect (rich get richer).

Overlapping thoughts?

Votecoin. Just as bitcoin makes it hard to post fraudulent transactions despite the lack of a central authority, votecoin would do the same for elections. The protocol would have to (1) make it extremely difficult to cast a fraudulent vote and (2) avoid relying on a central authority.

Such a protocol is possible if you think about it, but you have to be creative ;-)

This is a great idea for third-world countries and questionable democracies. Afghanistan, Iraq and the upcoming Jeb Bush election in America.

I live in a third-world country (Greece). The problem is not fraud. They don't need that. Corrupted politicians (ruling for 40 years here, without any real problems) buy votes prior to the elections. From 20 (EUR) to 50 per vote. Now that we're in the middle of a financial crisis even 12 to 15 per vote could work. In the villages you can get an entire family to vote (~ 4-5 votes) for 2Lt of fresh oil. In the cities are either bought or exchanged for a future job as a public servant (hard to do these days, but still...)

This. I live in Serbia and it's the same thing. They approach you as you're entering a voting location and offer you as little as €20 in exchange for a vote, and they ask you to take a smartphone photo of the voting piece of paper (dunno the right term in English) as proof.

Not to draw discussion to political affairs, but literally nobody I personally know has ever expressed nothing but contempt for the currently leading party here, yet they have amassed over 50% of all the votes on the latest elections. I suspect a lot of it was via these methods. So a fraud-intolerant voting system would help, but not tremendously so.

See? Now imagine with something bitcoinesque. They will ask you hashes, etc. Then they will use software to measure votes on the fly :-)

ps. There's no software that can fix a rogue voter.

> and the upcoming Jeb Bush election in America.


Check this out, I think it's going for something similar: http://users.encs.concordia.ca/~clark/projects/commitcoin/

How can you achieve vote secrecy with this system? Not being able to prove you voted for X, even if you wanted to, is one of the most important parts of electoral democracies.

There are several methods that allow this. I disagree with all of them, since I believe transparency is more important than anything else in an electoral process, and even the simplest is beyond comprehension of about 1/4 of voters, and beyond the effort to comprehend of about 3/4.

Anonymity is not the hard part---the challenge lies in verifying that an account from which a vote was cast is legitimate. But it is possible.

Alongside secrecy, I wonder how you prevent people from selling their votes in this system. It could be a much bigger problem than it currently is because of the ease with which someone could do it.

That is actually a brilliant idea. I like it.

Hmm. I would work on a scientific community that makes it easy to publish Science-to-Public books (to increase public interest in science), to get peers to review your paper easily (to decouple it from journal) and help people know and recongnised the talented scientist in their area. It bothers me that the science being done every day by clever people doesn't get the attention and funding that it should.

Would a collaborative filtering engine that was able to discern inputs/feedback that were reliable versus not be useful to your endeavor? That's a key piece of what I'm working on: https://news.ycombinator.com/item?id=8086694

This is quite interesting though an exact match. I will follow more news on this and w3c annotations.

It may be a tough problem for the current state of AI, but one day I want to see to life a consequence engine for real-life decisions. For example, when a new law is proposed, the engine interprets every stipulation, relates it to economic principles, legal decisions, historic analogies, etc, and produces probabilities of second, third and fourth orders of consequences that might result from the law as structured. There are many bad ideas and decisions made in government and elsewhere that could be avoided if something objectively evaluates the consequences of said politically or pork-motivated moves.

This would be more tractable if there were multiple consequence graphs that could be overlaid on wikipedia.

Prior to modelling possible futures, a good exercise is to model alternate pasts.

Pick key turning points in history and identify variables where a small change in input (location, time, magnitude) would have resulted in a large change in output.

I have no free time. The common curse of every coder are infinite ideas vs. limited time. So if I want to take free time from this curse, I would go offshore sailing for half a year to ensure I have no internet.

Once you mentioned offshore, I thought you were going in a different direction completely.

I'd actually return to my first love: theatre. I've been wanting to do some playwriting again, but i'm too busy paying the bills right now. I taught myself how to program so I could actually pay the bills, but I'd love to be writing again.

Honestly, as someone who has taken multiple mini-sabbaticals, all it takes is willpower.

By that, I mean the willpower to save, to have roommates, to cook at home... It is possible!

Another strategy is to plot out while working and spend your two weeks of vacation completely alone somewhere far away from wifi and basically use it as an opportunity to transcribe. If you have all your research done beforehand (and this is something that can be done in small chunks) you can get a first draft done in two weeks. (I've had friends do this.)

Of course, I still have a novel begging for a second draft that I keep promising myself I'll get back to. :)

I'm in almost the same boat. If I had six months off, I would spend the whole time writing fiction. So, while I've never done any playwriting (my particular poison is the novel), I understand how you feel.

Good luck - I hope you get to write!

Building a free and open source multiplayer digital audio workstation.

Here's the manifesto, copied from the README[1]:

* Fast but not over-optimized. Waste no CPU cycles, but do not add unnecessary complexity for the sake of speed.

* Take full advantage of multiple cores.

* When there is a tradeoff between speed and memory, sacrifice memory.

* Sample-accurate mixing.

* Never require the user to restart the program

* Let's get these things right the first time around:

   - Undo/redo

   - Ability to edit multiple projects at once. Mix and match

   - Support for N audio channels instead of hardcoded stereo
* Tight integration with an online sample/project sharing service. Make it almost easier to save it open source than to save it privately

* Multiplayer support. Each person can simultaneously edit different sections.

* Backend decoupled from the UI. Someone should be able to depend only on a C library and headlessly synthesize music.

[1]: https://github.com/andrewrk/genesis


But seriously, this sounds like an awesome project. As far as I know, there are still no great multiplayer-DAW setups. Would be incredible, but definitely a big challenge - working alone in a DAW uses serious CPU cycles, and trying to get a second person in on it would be hard. Good luck!

Thanks :)

I've been saving up money so that I can actually take a year or so off work and try to build this. Maybe this time next year I'll have something to show!

Continue my work on connecting robots and avatars to simulated connectomes but do it full time and make some really cool break throughs, and more importantly, some very useful devices! http://www.connectomeengine.com


I would spend my time looking for solutions to real problems that no one seems to really want fixed, like corruption, fraud, white collar crime, lying during elections, bureaucracy, human trafficking, revenue stream manipulation, buggy software sold to millions without any kind of quality guarantee, etc. etc.

That would include trying to get Bethesda to fix Skyrim for the PS3 (I know it's hopeless)

AI projects to help find useless, nonsensical laws which conflict with each other? To run governments without corruption (though garbage in, garbage out makes this a little scary as it could streamline and multiply corruption)

Then I would have no money left at all.

Nice open-ended question, by the way. Good luck with your thesis.

"like corruption, fraud, white collar crime, lying during elections, bureaucracy, human trafficking, revenue stream manipulation, buggy software sold to millions without any kind of quality guarantee, etc. etc."

We might have a lot of overlaps / synergies: https://news.ycombinator.com/item?id=8086694

I would hack on and port apps to https://sandstorm.io/

Last week, before I found out about Sandstorm, I would have said work on this: http://carcaddar.blogspot.com/search/label/ClearSky - I sketched out some ideas for how to apply current cryptographic techniques in new ways and use WebRTC to make a P2P social network that would still address scenarios like logging in and having access to your data from random library computers.

Finish writing my novel. Sure, I write after/before work (as did many famous writers as described in the really great book[1]), but it's HARD, and it's taken me 2 years to finish a first draft.

I daydream about my schedule: up at 8, exercise, write/edit from 9-12, then again from 1-2,then do the rest of the mundane stuff that builds up in a day. 100k polished words in 6 months, easy peasy.

[1] http://masoncurrey.com/daily-rituals/

Do National Novel Writing Month. You write a 50,000 word novel entirely in the month of November. The goal is quantity, not quality.

Then you can tell people you're working on your SECOND novel, which sounds way cooler.

Its a fun project, I did this back in 2012 or some such, and gained 5x different mini projects out of it (shorts, etc.)

Makes you crunch out quantity, which is good for aspiring authors. Learning how to say "it doesn't matter" until you start to edit. Meaning, just get it done.

Yup, I've done that in 2011 when I had less work obligations..it was a great time.

It's funny - now that I'm building http://withknown.com/ at http://matter.vc/, I don't know how I'd answer this question.

Previously, I would have said that.

I'd love to spend six months on writing a novel. I've written simple novels before, but a serious book. I have ideas that I want to pursue, but they really would need my whole brain at length. Six months _might_ cover it.

What's your business model for Known? The reason I ask is explained here: https://news.ycombinator.com/item?id=8086694

I really love the "users first" stipulation. We're deliberately building a business that builds what we call respectful software.

I wrote something about those principles last year: http://benwerd.com/2013/05/24/respectful-software/

Known is either SaaS or a self-hosted software application, depending on your needs. As such, we're offering:

* SaaS subscriptions

* Support subscriptions for self-hosted users

* Enterprise support

* Software and support for deploying Known across organizations

* Customizations (eg integrations with learning management systems / enterprise software, etc)

In the future, we will offer:

* Direct sales of content to readers (think Bandcamp)

Right now we're not considering advertising or any kind of tracking-based model.

Nice. When I write up my take on Users First I'll send you a note.

It's 2014 and I still haven't found a music player/manager I really like. Tomahawk and Musiq come close but they each leave something to be desired. iTunes circa 2008 was pretty good, but I'd like something for Linux, and I'd like it built in Java too, because I've found over the years that Java has amazing compatibility with sound cards on almost every computer.

I really like Google Music, but I don't like managing my music via the cloud. And I've tried just about every Linux home audio server and they all are a little wonky.

Some very basic features I see missing or hard to access in music players are:

- no ability to shuffle on different levels of granularity: genere/artist/year/etc

- ID3 tag editing somehow is terrible in everything but iTunes

- Full equalizer and audio effects (e.g., reverb, compression, filters)

- Canonical and clean song/album/artist data with extra attributes listed as comments, not cluttering up the main tags--I don't care that your song is "Feat. Jay-z;T-Pain;Snoop Lion;Sting; (album version (explicit version))"

And stepping back, I think the whole grid/table-based approach to viewing your music is a bit lifeless. I'd like to see other ways to navigate, .e.g., something built on the data that Pandora or Last FM has, but specific to my collection. And I'd also like to be able to navigate by artist history and associations, e.g., see all my albums by bands that have ever opened for the Flaming Lips.

Just some random thoughts I've been working/wish I had more time to do:

I would a lot of my time just working and maintaining an app to write and categorize recipes I have at home. This would go hand in hand with just taking on more involved and elaborate cooking projects (ramen, making moles, smoked meats).

I would also just work on random ruby challenges all the time. Some cryptography stuff, some math or general programming challenges, but also just programs I can use. Something fun would be to make a really nice music player/manager using shoes, just for the fun of it. I like music programs that run natively in Linux versus just web players. Other than this just learn as much as I can by contributing to open source projects.

A BIG goal of mine would also be work towards being a polyglot. I studied linguistics and other languages in college, and every programming language I seem to come across just sees fascinating to me. I want to absorb these and just become very familiar with things like Go and Haskell, two of which of are particular interest.

Other than that, I want to work on my fitness. Jogging more, going to the gym during the day when it's not as busy, stuff like that. I also have various games I want to play, not so much projects but just for fun.

I was thinking about writing a driver for laptops that have the touchpad in front of the space bar. Sometimes when I am typing, I accidentally move the focus by touching the touchpad, and my text gets entered in the wrong place. I think I could write a driver, or application, which recognizes that pattern and keeps track of the erroneously placed text. Then a magic keystroke combination could be used to invoke an automatic repair.

That is a good idea, too, but different from what I was thinking. If I, or someone else gets this working, it may have other applications.

I would learn Go and help build out Bazil: http://bazil.org/

Solves a problem I've had for a long time.

Interesting. Don't love the HW piece, but definitely relevant for what I want.

An HTML/CSS prototyping framework that is dead simple for designers to use. They would only write the code in an easy to organize way (layouts and snippets) and the tool would take care of building everything, live reloads, creating documentation from comments, collecting feedback from stakeholders, and serving it up.

I've been wireframing for a while and have yet to reach a solution I really like.

Not quite there yet, and might not be quite what you want, but here: https://github.com/AndersSchmidtHansen/Kaidan :-)

I would emerge myself into the world of data science and big data. It's the new frontier and is where the web was 15 years ago.

The trend I've seen with web development is that it's mostly a primary skill. While data science will be a primary skill for many, it has the capability to be a much sought after secondary skill in other industries like finance, health, and actuarial science.

I don't see that much demand for it. For example if you look on the HN seeking freelancer thread, most people are still looking for RoR or PHP. I don't see much of "please analyze my data and help me make decisions".

Where are you seeing all the demand?

I wouldn't expect to see much on the freelancer thread.

Working in advertising tech, we'd be looking for someone to join the team on a permanent basis. Even with data science fundamentals, you have to marry that with a thorough understanding of the industry to develop that productive intuition about how to help folks solve their data problems.

I don't see that much demand for it. For example if you look on the HN seeking freelancer thread, most people are still looking for RoR or PHP.

True, but HN is not particularly representative of computer science or software engineering related fields (well, it is, but only a small percentage). There's a lot of stuff going on out there both in industry and academia that doesn't make it here or get particularly represented in the jobs/freelancer threads.

And random side-rant, why are so many people looking for AngularJS developers when I see almost 0 single page application type websites in my day to day life? What are all of these companies using it for?

I've written dozens of sizable single page apps that you'll never see because they're behind a firewall that only my company and its clients can access. Not sure about everyone else.

Large companies and governments are obsessed with big data and data analysis.

You need a degree or relevant past work to land those jobs though.

There are also companies that you would work for that would provide these services rather than being hired or contracted by the company directly. (like SAS)

I mean, it pays my bills. But they're mostly large corporations that hire consultancies that specialize in this sort of thing, rather than hiring freelancers--much less posting about it online.

I've got a project that I'm working on that could really benefit from that free time. But like most HNers my project isn't going to change the world - but it's an interesting technical challenge.

If I had 6 months of free time I'd like to make something that could potentially do a lot of good. For example, an app that gamifies doing nice things for other people.

I have been open sourcing IBM WebSphere Message Broker (http://www.use-the-tree.com) recently.

It needs some polishing and especially it needs support for "industry standards" like Edifact (already started on that), SWIFT, HL7, X12 and others.

If I had half a year time, I'd be working on that!

It's a multi billion dollar business

Write a parser (analog to the Edifact one) and I will add you to the contributor's list and update the site with the new code.

Let's crush IBM :)

Do something that matters. Leave your mark here.

I am awaiting pull requests :)

Probably something to do with system programming.

I've only ever really worked on web applications, but am feeling drawn to systems work, it's something I'd love to get deeper knowledge in.

Not quite sure how to go about it / what to learn - but I'm starting with Rust - http://rust-lang.org.

This might not be a what you (or others) want to hear, but starting with Rust is not a terribly good idea. Rust will be great, but you need to learn system design concepts, not some programming language that might be used to implement system software in the future.

If I were you, I'd start with C (read K&R) and then move on to understanding Unix (write a few tools using libc), then try a kernel driver or maybe some embedded programming. You'll have billions of lines of C source code to learn from, there are plenty of books that teach systems programming using C (in various contexts) and it's really not that scary once you know what not to do (but it will take time).

Example projects to attempt: write a trivial kernel for an embedded device; implement paging in a toy kernel that doesn't have it; write a web server; write a C compiler for MIPS (optionally with optimizations); write a CPU emulator (8086, Z80, MIPS, ARM); write an assembler; write a malloc()/free() replacement; write an ELF loader to execute Linux binaries; write a 'tar' replacement.

The examples might sound daunting, but they don't have to be big, production-quality programs - those take years, these would take several months of part time work (if that). You will learn a lot. Also, there are online courses that teach you all of this (look at Computer Architecture, Operating System and Compiler courses), lots of textbooks (fairly expensive, but worth reading) and toy kernels/projects to use (things like Minix, Nachos, cheap ARM boards, etc).

- I'd like to put together a large illustrated book on protocol design, like architecture books that have large pages and illustrations

- a stone CNC that could do a marble bust or full scale stone statues

- try to design a space launch platform like a vacuum monorail going up the side of a mountain, there are plenty of mountains.

- build an off grid cabin (perfect place to read compsci books)

- a video search engine, based on speech-to-text first and then try to add comp vision to the extent possible

- brain-computer interface, any way to get data out other than through body movement / voice.

edit: also like to take a shot at designing a materials reclamation facility in a container box. like a one-shot machine where you dump garbage in one end and raw materials come out the other end. this + a mini nuclear reactor + versatile 3d printer would go a long way. I'd like to know what it would take to make a machine where you dump garbage in one end and finished products pop out the other end.

I'd compute the number of legal positions in the game of Go. We already know the numbers up to 17x17, and the approximate value for the standard board size of 19x19; see http://www.cwi.nl/~tromp/go/legal.html

Something involving WebRTC datachannels and decentralized/p2p web services, e.g.



P2P evernote clone without a central storage server, and fully open source. Synchronization through encrypted email between arbitrary pairs of clients. With all the NSA revelations I've come to the conclusion that only "trust no one" is secure, where you do not rely on any third party to have privileged access to your content, only to relay encrypted streams of it.

I've been hacking on a javascript implementation for syncing near-arbitrary json data in this way, but it's slow-going and I have too many distractions. Right now it sort of works for everything except arrays, arrays are tricky to sync. https://github.com/jsebrech/minisync

I have a few options I might work on...

As part of teaching myself python, I put together a small GPS logging/analysis package[0]. I have lots of ideas for extending it, so I would work on those.

I am also interested in gaining some hardware experience and seeing what sort of home automation things could be done with hardware like arduinos and raspberry pi. Associated with this, I am interested in exploring the options for natural language control through the inclusion of speech recognition and perhaps neural networks. The goal of this would not be AI, but to be a trainable system which might handle home control work.

[0] https://github.com/privong/magellan/

I would implement cassowary (the constraint solving algorithm) in Clojure/Clojurescript. And then I would try to find a good way to make it usable for layouting in React-based environments. I think it could be done in a shorter timespan.

Anyone interested in pairing on that?

I have worked on and off on a small developer oriented CMS based on PHP, but I could never get myself to work on it continuously. If I had half a year, I would develop the CMS which I could easily customise to write applications faster.

If I had six months free, I'd focus on one or more of my existing side projects.

- The big one is my laser cutter. I've got the low level software stack mostly finished, but I want to use it as a vehicle to learn about web programming and user experience.

- I am learning to program FPGAs. I still haven't identified the project here, but i'm leaning toward a CPU with high level language support or video processing.

- I've written Scheme interpreters, but I'd like to write a Scheme compiler. This could be combined with the FPGA project. I'd also like to use Scheme (or Clojure) to develop a large project or two.

As a guitarist who jumped over to software engineering:

1. An online metronome that allows you to save practice notes, track a history of tempos you've used, and allow you to record/save 30 second clips for reference.

2. A new full length album :)

At the moment I have three projects I would pick one from to finish:

1. an e-mail server with a web server that can be deployed on a cheap device (raspberry pi) to offer pgp mail to non-technical persons

2. a docker orchestration system (docker is supposedly working on one already, but where's the fun in waiting)

3. I have this idea for a "Game of Life"-like game where instead of life being dependent on adjacent life, life would be dependent on energy equally distributed over the grid, and life could store and expend energy to execute operations like replication and movement.

1. Build a deep neural network (probably consume my first 5 months!) and put it to use on something funny \ unusual, like determining if jokes are funny, or whether someone on camera is lying

2. Implement Bret Victor's learnable programming ideas into a useable IDE for mainstream languages (java, C#, python,etc). LightTable is really cool, but the lack of an instarepl for all but Clojure falls short of the original vision. It would also need to support time travel debugging and actual regular debugging and intellisense.

3. Solve N vs NP

First question: what are your areas of interest? It is easier to generate intrinsic motivation this way. If you've done prior work in the area, you should challenge yourself by trying to use a different language or paradigm.

Right now, I'm interested in compilers and Haskell. So I married the two together (they're made for each other) and am working hard on a Python 3 interpreter: https://github.com/mattgreen/hython

I'm not super familiar with Haskell, but I'm fairly proficient in one of its siblings--OCaml. I've found that compilers/interpreters are almost the ideal use case for those types of languages. (That's where my OCaml knowledge comes from--writing toy compilers).

truly private and easy to use email for all.

it's a big thing I want for myself, and I know many others who would like it too.

on paper, striking the balance of ease of use and security is hard, since gmail exists. :\

If you make it open source and not-ad-supported, committed to a Users First covenant that I need to write up, I'd promote the hell out of it. See https://news.ycombinator.com/item?id=8086694

That was the plan!

was going to use gpg to do most of the stuff (since I'm no cryptographer), and charge per gigabyte for the servers I host (just enough to cover costs).

the idea was hosting it yourself would be free, easy and of course, open source.

I would definitelly go for SaaS app for more comprehensive team / company management. I'm building something now (http://teamlens.io), but I do not have full year to commit. It would be really awesome to work stress-free on something. Anything that could profit in future, but without everyday stress (I run software house and hire > 10 people - it tends to generate abnormal amounts of stress from time to time).

Check out WeekDone.

Travelling the world and learn a new programming language. In fact, that's what I'm doing right now. Learning Go while sitting in a coffee shop in Vientiane, Laos.

thinking to myself: "bees are dying, the planet is overheating, everybody's overweight ... what we really need is more saas software and more mobile devices.

Encrypted p2p facebook.

Honest question, why not just go with diaspora*[0], which seems to run relatively smoothly and already has a (small) user base? Is there functionality they do not posess or are there issues with their architecture?

[0] https://diasporafoundation.org/

Now this may be old, but it had something called "pods" which I think are servers. And you have to run one, or register with one. Once done it would store all the data. There didn't seem to be a way to have intra-pod communications. This didn't feel sufficiently decentralized for me. Basically it seems more like a tool to create your own facebook. I still have to trust the guy running the pod.

I was expecting a locally running app, with all my stuff available to it, one or more bitcoin style IDs and external servers acting as a napster style introductory service, which once complete would have nothing to do with the encrypted p2p communications that followed.

I think with a sufficiently scoped out messaging protocol and simple demo client software something new and important could be created.

Since everything would be encrypted for the end-recipient it may well be data intensive, if sharing videos amongst many people for example, but perhaps some shared secret/ one-time pad/ dropbox (old and new meanings) would be a good solution to this.

If you make it open source and not-ad-supported, committed to a Users First covenant that I need to write up, I'd promote the hell out of it. See https://news.ycombinator.com/item?id=8086694

I'd finally get my CFD stuff off the ground. I currently only spend about an hour a day working on it, and I'd like to just work full time (or more) on it.

- work on that computer game I've always wanted to build.

- learn the Postgres codebase and add my pet features:

o bitmap indexes (for data warehouses)

o ORDER BY clauses for UPDATEs (to avoid deadlocks)

I would draw up some wireframes for my dream data storage platform/privacy firewall, then dream that I could actually build it.

EDIT: Now that I think about it, I'd rather like to build a filesystem that understands that data can come from URLs, and when (God forbid) you run out of local space, it'll remove data that's still online and replace it with something akin to a net-enabled symlink.

welcome to Microsoft OneDrive

I'd work on doing all the political and fundraising piece of building some new trails in a local state recreation area. Sure, this isn't IT related, but it strongly benefits the local community and due to having a number of obstacles (funding, gaining community acceptance, getting land manager support) it'd be a full time job for half a year.

After spending time with friends and family, I think I'll still have a good deal of time left for myself.

With that time, I'll build my body. Not just for aesthetics, but really spend time building it as well as I can. Needless to say that it'll make me feel pretty good about myself and all the good things start when one feels good about one's self.

Writing a (at least somewhat usable) compiler has always appealed. Would be tempting to try an implementation of PLOT -- http://users.rcn.com/david-moon/PLOT/

Alternatively, and rather more contact/resource dependent, would be some at-least-semi-lab-based biology.

I would make a big data analytics software that is really easy to use for the education sector. Currently, I am working on a project (https://github.com/apeeyush/Data-Analytics-Log-Manager) that takes me one step closer to it.

I would try to make a simplified version of http://ampache.org/ using Node.js instead of PHP.

I like the project and the centralization of the media files, but the current form seems to include too many secondary features while still missing a few things on the UX front.

My personal open source project, JazzChords.org. It should become a site where people can create and share good looking chord charts.



Academic wise I am interested in data, and human factors in programming. It might be interesting to develop a database API that is resistant to attacks. ORMs typically provide such an interface so maybe pick one of the NoSQL databases that doesn't already have a ton of ORM support.

I have a backlog, actually, that I would eliminate. :D


As soon as I have free time again (ha!) I'm going to chip away at it.

I would work on an open eco-system for managing ebook libraries. Start reading a book on your eink ereader at home. Later you're stuck in a queue at the bank, so you pull out your phone and pick up where you left off. That sort of thing.

Tired of using Calibre+Dropbox, there has to be a better way. I'm down to work as side-project, see contact in profile.

Well, unfortunately I don't have the half-year of free time the OP posited... :-)

I'd work on my "brilliant but stupid and perhaps useless" idea - automatically generating web apps from desktop apps, in realtime (i.e. as you use the web app, it's really controlling the desktop app behind the scenes).

Free, without a job, without kids/family, and some $?

No question, I would travel the world.

I would love to extend FillSkills.com to non software verticals. And market the heck out of iplanttrees.org.. get people planting a lot more trees.

Also, if I could, I would like to learn sailing. And Skuba dive again.

Another, similar thread here on HN today: https://news.ycombinator.com/item?id=8084866

I would really like to make a device, maybe Google Glass, maybe something else, that would allow me to see more of the EM spectrum through augmented reality.

I was just talking to someone about this today. Also, augmented audio.

I am retired so I know exactly what I'm doing. I'm devoting myself to the Atom editor for the foreseeable future. it is a hacker's dream.

Synthesize the knowledge from hundreds of books I've read into short chunks of consumable advice, similar to The Personal MBA.

That or write several fiction books.

This actually is quite a generic problem - most non-fiction books have a little bit of great wisdom , and a lot of fluff.

Creating a marketplace/business-model for people who write more content dense non-fiction seems like an interesting problem.

What would be the business or distribution model, assuming it's not a book?

I would spend some time learning C in more depth and contribute to NeoVim because we need this beast out and clean and nice and fast and perfect!

Something that lets me go back to working for myself.

I would work on my matching engine in Go.


It is just pure fun. The goal would be to hit 6 million transactions per second over the network. Currently finishing up the inter-thread queue implementations here


I have been on this for close to a year now. I imagine I could really push it out the door with six solid months.

Wish the matching_engine had a better readme so that others could play around with this

Yes, that is a fair comment. It really does need a better README, and some comments in the code.

Make some progress on a bipedal robot strong enough to carry me around.

"Some progress" means maybe I could get one leg to stand upright :-)

I would be working on comic strip that started about 10 years ago. The 6 months would allow me to accelerate the storyline!

Point a phone in a direction and see geocoded tweets taking into consideration the position of the phone,gps, etc.

Full-time travel, photography, and meeting people the world over and listening to their stories.

Using a drone to look for devices that are sending GPS signals in an area.

Generally speaking, the devices that are sending GPS signals tend to be in space.

Looking for devices that spoof GPS signals?

A space drone!!!

The web inundated with garbage because of the perverse incentives[1][2][3] that now rule it. I'm am working on ideas to fix this, including:

- Articulating the problem and its causes very well, better than what I did in the footnotes below. If you have an interest or expertise in the business models of the Internet, content publishing, economic analysis of advertising, or the promotion of "commons" approaches to human betterment (e.g. Wikipedia, open source, creative commons), talk to me!

- Designing a internet-wide, independent collaborative filtering layer that let's people share negative feedback with a single click. Imagine the satisfaction of hitting a trash can button when you are presented with garbage, and knowing that there is now a cost to publishing garbage. This adds a much needed negative feedback loop to the web[3]. I have a unique (as far as I know) idea that both solves the problem of "One person's garbage is another person's gold" and makes the system un-gamable. If you have interests or expertise in cluster analysis, statistical classification, collaborative filtering, talk to me!

- Promoting what I call the "Users First" covenant": A list of principles that internet sites and services adhere to.

- Promoting other solutions to the problem, work being done by other teams, such as

-- a consumer-friendly web browser that puts privacy first. No need to install any extensions. Open source, non-profit and in no way tied to advertising revenue. Adheres to the Users First covenant.

-- A way for publishers to get paid by their readers rather than advertisers. For example: https://news.ycombinator.com/item?id=8009959

I actually have more than a half a year of free time to work on this, because I quit my job (and my cushy life) to work on this. You in?


[1] It's bullshit that advertising gives us stuff for free. In fact, it makes everything way more expensive: https://news.ycombinator.com/item?id=7485773

[2] Since advertisers pay for much of it, sites and services are incented to trick us into clicking on links, to show as many ads as possible, and to invade our privacy for the benefit of advertisers. Users do not come first, advertisers do. We are the product, as they say.

[3] Viral dynamics rule! The web only has a positive feedback loop (people linking to pages, sharing URLs) and lacks the dampening effects of negative feedback. This let's good things as well as crap spiral to viral popularity. What we need is a way to downvote or flag garbage on the web in general (not just within communities such as HN), and this certainly can't be owned or operated by a business that takes advertising money (see [1]). It needs to be ungamable, and take into account that one person's garbage is another person's gold.

Have you looked at http://hypothes.is or the W3C annotation work?

Yes, as soon as they came out. Too geeky and complicated. For this to have the impact on the web it needs to have, it has to be adopted by everyday non-technical users. Annotations serve as notes explaining why a lot of people consider something garbage, but most often just need a warning that essentially means: "A lot of people you respect or who think this item is garbage". Not censorship, just a flag.

Hypothes.is and W3C annotations are like HN with only comments, no up or down votes.

Would users be able to choose their preferred editorial server, e.g. would it be "everyone on the internet thinks this is garbage", or would it be "hackernews thinks this is off topic and "reddit thinks this is moderately interesting"?

More like the latter, but you don't get to choose. The system automatically clusters you with others whose historical votes are like yours. So what you get is "true karma" where the collaborative filter you get is a direct result of the quality of your votes, as opposed to karma being a score as it is on HN. You may think you are an open and fair-minded thinker, but if you vote ideologically, or vote with things you want to be true whether or not they are, you will be clustered with the same. It would be like Apple fanboys and Android fanboys getting put into their own clusters, getting out of the way of others who engage in "agnostic" fair-minded discussions. [Typo in prior reply. Should be "A lot of people... who think like you think this item is garbage."]

Astro-turfers and bots trying to game the system naturally don't cluster with anyone except those who happen to agree with them, in which case who cares? There really is no difference between fake votes and dumb votes, so the system doesn't make that distinction. Trust is asymmetrical, so even even though your filter is influenced by those in your cluster, you may have no influence on your cluster. Trust is earned by voting on something before others do, and then those others agreeing with your vote. So it is impossible to game trust by mimicking the votes of others. The system distinguishes between leading votes and following votes.

The clustering is entirely transparent... You can "flip" your view at any time to one of the other clusters. I have a number of ideas how to surface a meaningful label for each cluster so that, for example, a self-professed fair-minded user can realize he is actually rather close minded and ideological. I call this "Mirror". One's cluster would never be publicly displayed (not in the business of shaming), but you can look in the mirror in private, and gain self-awareness.

The system would support the maximum privacy and anonymity guarantees possible (allowing people the option to register with no password recovery email, for example).

Before the system has enough users to do effective clustering, it would simply flag garbage that has widespread agreement as such. That in and of itself is a valuable service.

My original project name for this is "Garbage" (How much of the web do you think is garbage?), but I've settled on "Common Karma" as the official name. This is my first sharing of the above idea and its names beyond my friends. You heard it here first!

Sounds quite promising, look forward to seeing your algorithms take on professional astro-turfers (human or bot) who may have algorithmic assistance.

This 1997 essay on collaborative filtering has the baggage of an "extropian" perspective, from Sasha Chislenko (RIP). Some of the social speculation remains relevant, http://www.lucifer.com/~sasha/articles/ACF.html

This was in the early days of ACF, http://www.strategy-business.com/article/19707?gko=acda4

Complete the invention of a new technology elemental analysis technique.

What field and speciality are you studying and writing a thesis on?

I'm majoring in Computer Science and am minoring in Chinese Language and Culture. My thesis will involve more programming than Computer Science per se.

Coincidence: I also code and I speak Mandarin, though I'm not Chinese. Let me know if any of my ideas (in the many comments I made herein) are of interest to you.

I would churn out a few books on leanpub, around areas of interest to me--another cordova book, a revision of my current cordova book, one on business process automation using APIs and google services, and one on green/sustainable investment.

I support a web-based ERP system. I'd love to develop a feature for reporting support cases directly from the system that is context-aware enough to describe an issue better than most of our clients do when they call or email.

I would develop a game or several games.

In addition, I would write a metal EP.

A better way to share photos with my friends and family.

What's wrong with g+, facebook, instagram, snapchat? I'm not saying they're perfect, just wondering how you would improve on them?

Drupal 8. It will be amazing when it is finished.

Software project would be a platform for anonymous product distribution direct to consumers catered to their preferences.

Non-software related would become fluent in a second language. Any language.

I'd write a reference implementation for a distributed ecommerce system I've been dreaming up.

email. I use gnu's nmh in combination with some tickle folder tricks (43 folders) which would be neat to implement in an app. Alas, no time.

Learn OpenGL.

An economic game that explains marginal utility.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact