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.
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. ;)
* 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.
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.
> 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).
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.
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 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!
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.
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).
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 ;-)
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.
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.
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.
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
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.
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.
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!
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."
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.
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.
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.
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.
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.
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".
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.
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
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
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.
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.
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.
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.
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).
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
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).
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.
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?
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.
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.
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.
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 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.
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).
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.
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
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.
[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.
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
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.
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.