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.
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.
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/
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.
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.
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
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.
The "economy" described is rather interesting.
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 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 agree, this would be a fun project and not trivial.
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. :)
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).
Such a protocol is possible if you think about it, but you have to be creative ;-)
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.
ps. There's no software that can fix a rogue voter.
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.
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. :)
Good luck - I hope you get to write!
Here's the manifesto, copied from the README:
* 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:
- Ability to edit multiple projects at once. Mix and match
- Support for N audio channels instead of hardcoded stereo
* 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.
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!
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.
We might have a lot of overlaps / synergies: https://news.ycombinator.com/item?id=8086694
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.
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.
Then you can tell people you're working on your SECOND novel, which sounds way cooler.
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.
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.
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.
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.
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.
Solves a problem I've had for a long time.
I've been wireframing for a while and have yet to reach a solution I really like.
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.
Where are you seeing all the demand?
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.
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.
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)
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.
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
Let's crush IBM :)
Do something that matters. Leave your mark here.
I am awaiting pull requests :)
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.
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).
- 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.
As part of teaching myself python, I put together a small GPS logging/analysis package. 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.
Anyone interested in pairing on that?
- 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.
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 :)
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.
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
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
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. :\
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 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.
- learn the Postgres codebase and add my pet features:
o bitmap indexes (for data warehouses)
o ORDER BY clauses for UPDATEs (to avoid deadlocks)
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.
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.
Alternatively, and rather more contact/resource dependent, would be some at-least-semi-lab-based biology.
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.
As soon as I have free time again (ha!) I'm going to chip away at it.
No question, I would travel the world.
Also, if I could, I would like to learn sailing. And Skuba dive again.
That or write several fiction books.
Creating a marketplace/business-model for people who write more content dense non-fiction seems like an interesting problem.
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.
"Some progress" means maybe I could get one leg to stand upright :-)
- 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. 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?
 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
 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.
 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 ). It needs to be ungamable, and take into account that one person's garbage is another person's gold.
Hypothes.is and W3C annotations are like HN with only comments, no up or down votes.
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!
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
In addition, I would write a metal EP.
Non-software related would become fluent in a second language. Any language.