There's a huge gap between dev and ops here - I'm thinking that building tools that allows a developer to make an ops ready deployable package as easy as pushing to source control would be the ideal. Then tools, that work against source control and can generate packages off any revision/flavor would be great for both continuous testing and eventual distribution.
We've been stuck in the "download the tarball and compile it" mindset for far too long.
Well, I just did the former though I can't really justify the latter. :) However, I mostly quit because my work was again taking over my personal life, so the intention now is the find something a bit more humdrum than yet another poorly managed startup so I have the energy at the end of the day to work on the side project.
Similar to Ivan, games. I want to make a Dwarf Fortress-like game for iPad, with a top-down 2.5D perspective, sprite graphics in a cel-shaded style, and culled down to the core elements I find to be most entertaining (with influences from other games I enjoy). It's a game I want to play, but I'm probably the only person on the planet willing to make it. However I'd also like to raise Dwarf Fortresses's visibility through my work, and get it some additional exposure to ensure DF development can continue. I've also a few concepts for iPhone games that scratch some other itches of mine, but the iPad game I at least have written a basic rendering and pathfinding engine already.
However I need to line up other work for the time being (should only take a few weeks). I'm a perfectionist that prefers the "when it's done" release cycle.
For example, no massive world at worldgen with full history and legends. Most people don't want to deal with complexity, they just want an embark site to start in and get to work on. It takes a lot of time to create those things that the majority of folks would never notice or appreciate.
There's a lot of satisfaction with gathering/growing food, building basic shops and homes, defending against threats, creating a trade industry, and a bit of dungeoneering. However one of Dwarf Fortress's strength is it presents a lot of competing interests -- where you need to weigh building defenses with industry, etc. Plus the occasional "oh shit" moment where the game attempts to stomp on your sand castle.
(Think the Viewpoints OS strategy - with good enough abstractions and DSLs, you can do an OS or languages in very small sourcebases; I'm still in awe of their TCP/IP strategy - parsing the RFC illustrations! http://www.moserware.com/2008/04/towards-moores-law-software... )
That would be a project worth doing.
1. What are the most important problems in your field?
2. Why aren't you working on them?
1. What are the most important problems in your life.
- Software can be as closed as it wants 'cause we can always drop it for another option anytime we want since the data is still under our control, but imprisoning our digital lives into these walled gardens put up by "for-profit, maximize-shareholder-value-at-all-costs, turn-user-into-product, shove-ads-into-the-user's-stream-and-if-possible-download-a-few-into-their-throats-as-well" companies like Facebook, Twitter and Google, is a recipe for disaster as our data, our friends, our relationships, our entire digital lives, go out of our control in realtime. The situation is really, really bad and to make things worse, the people currently working on this problem are so geeky, so out of touch with the common man's mentality that their technically smart solutions will never ever go mainstream. I'm very passionate about improving the situation and I desire to make social, at minimum, a federated system like email so migration can get a little bit easier when better alternatives pop up down the line or if the user feels the service provider is starting to get a tad too "evil" for his taste.
I think most developers are interested in the engine development (a known quantity) but when it comes to the art assets (3D models, animations, textures, level design) that seems like a giant unknown to me.
I would enjoy working on a rendering engine, but if I had to model characters and animate them, I think I'd release the game 6 weeks before my 97th birthday.
If you have talent in all the required spots to do this, I'd agree with the other poster... so 2 or 3 proof of concepts in the app store to hone your skills.
1. Game 1, simple terrain traversal game. Get used to open-world rendering.
2. Game 2, character-focused game with stats. Get used to modeling and animation.
3. <some more stuff>
4. Game 4, Skyrim for iOS
No you can't create Skyrim iOS edition in your free time, but you could create something much much sillier and simpler right?
Get the ball rolling, the creative juices flowing and a few apps in the respective app stores before quitting and going full-force?
I realize there isn't anything prophetical here; if you are an all-or-nothing type, then that will just be a much harder decision to make and I am hoping you get a chance to make it at some point.
That's an interesting area of thought. What things today are the way they are, merely because things were the way they were when the canonical instance was produced?
Almost everything we interact with is completely path-dependent: our mathematical notation and the organization of our mathematical abstractions, our weights and measures, our language, our cultural institutions, &c.
Or when you get down to it, everything about our bodies and ecosystems.
However, at some point conditions may emerge that allow you to leave the trodden path, which I think is where you're looking now. These are not our dad's computers.
- Kickstarter for scholarships
- A cheaper, more effective means of transportation for third world countries (essentially creating a better bicycle)
"microscholarships, crowdsourced, donorschoose for people"
I suppose students would have a page about themselves and donors would pick students to support based on their circumstances, talents, grades, and personality.
Also, education. Things like Khan academy are amazing, but not yet accessible to everyone in the world. Thinking about that, working on internet access for all seems like a pretty noble cause too.
Being very political and very active, during my personal time, I'm working on tools that I need to be more effective.
Sunlight Foundation's stuff is a fair start. There are some other initiatives.
The day job is just for healthcare and rent. It's a huge distraction.
Imagine downloading a script with very detailed stage and setting direction. A piece of software would exist that would take as input the script and as much source material as you have (seasons of a tv show or a movie) and create the setting, model the characters, synthesize the voices and output the finished product.
I think a lot of the tech to get started with this exists in the fields of game development, video editing, machinima, voice synthesis, etc. If money were no issue, I would work on putting it together. It would probably just be a toy for years before it could generate something watchable, but would be lots of fun.
I love electric cars and rocket ships. But my god there are some big ass problems I want to solve for my future children...
I and my oldest son have a dread disease and are basically well at this point when that is supposed to be impossible. Is the public curious? No. It is incredulous -- as in "you are a teller of tall tales".
Having said that, I did recently quit my job and moved a thousand miles to live on the beach and support myself doing freelance work. When the income is a little less dicey I may try to finally pursue my dream of creating a web comic or similar entertainment. That might actually pay. I very much need the money and I am extremely burned out on getting kicked in the teeth for trying to help people.
Writing soothes me.
I'd love to come up with answers to questions others have not yet answered and discover questions no-one else has discovered, yet.
I'd also like to travel the world and get to know as much people as possible.
However I fear that even with unlimited amounts of money the real problem I will face is time which is why I hate procrastinating and even more the fact that I can't seem to stop it.
Copenhagen Suborbitals (copenhagensuborbitals.com) is doing five testlaunches of rockets this summer from the baltic sea. My job is to get live video from the launch to the Internet. There are several interesting problems in this, one is getting good footage of the launch and preparations.
The rockets will launch from a specially built self propelled vessel that sails from Copenhagen to The launch site aacompanied by a navy vessel that will act as support and crew ship. On launch the navy vessel will be around one mile from the launch platform, so getting good footage of the launch and preparations will be difficult.
I've thought that aerial remote robotics with cameras would be a good way of getting some really great shots. It's not easy though; you're operating over water, with one mile to the support vessel, and you'll need to steer the remotes via the Internet since there won't be available space for an operator on the navy ship (there will be a reasonable good internet connection available from the support ship)so you need remotes that can be operated over the Internet and send footage back.
If this sounds interesting, or if you have any ideas let me know, either here or by email. My mail is in my profile.
Beyond that, I haven't much insight into how such a platform would be built but, figuring that out is what the no-worries-about-money time would be spent.
The community does all the content and most of the policy decisions, by themselves. The staff is there for things like ops, fundraising, legal, bugfixes, research, PR, and projects that require a longer-term vision.
Ian Baker aka Raindrift recently did a cool project to expose how things really work on Wikipedia. People usually underestimate the process.
For example, here's the diagram for Articles:
Knowledge, beautifully presented.
If I have a lot of time (not only money). I would certainly work in Artificial Intelligence or Artificial Life. I believe this is where I would be the most efficient in discovering something useful for the rest of the Humanity.
Sadly, even with a PhD in Machine Learning, I lose most of time resolving trivial issues or making trivial softwares.
(It's very tempting to reply with more multiple answers, in the form of a goal-subgoal tree. So for instance nodes in that tree might be "Help people think more effectively about their life situations", which in turn is connected to "Help people acquire better critical thinking skills", which, given my life history, has the greatest leverage when connected with the node "Help people become smarter about software development". But this kind of tree is dynamic; as you acquire new skills in the pursuit of intermediate nodes you often reprioritize nodes of the same level.)
I would work on new algorithms and application of high-performance computing to genetic sequencing, protein folding and, in general, modeling biological processes.
But, there's always the gloom & doom at the end. Post-doc positions are easy to find, but there are very, very few academic research+teaching positions and competition is quite intense. Still, it's a great ride so far. And the worst-case "build compilers for a big bank" scenario isn't so terrible.
If so, which topics do you want to deep-dive on?
I would most likely study some fusion of cs and art. These days I don't feel like I have enough time to move fast enough. I am trying to get into gpgpu (via CUDA at the moment) and I need to get into hardware. Having the full time to do this, without needing to worry about financials with my current lifestyle, is my dream.
Not the only way to get there, but a very fun one.
1. My self-indulgent dream: an IDE built around text editor integration. Think Eclipse, but constructed as an exoskeleton that Emacs and Vim could slip into and become real IDEs.
Of course my priorities would come to the fore. The core would be written in a concise but statically typed language, plugins could be written in the same language or in a clean, concise scripting language. It would be trivial to run code from within the editor. And it would be nice if one day it generalized into an application framework like Eclipse.
2. My actually socially productive work: interactive educational software. I would construct interactive software specialized for very small units of learning. An app to teach French verb conjugations, an app to teach the concept of electron valence, an app students could use to interact with a writing coach, an app to teach basic programming, and so on. I would try to implement what had been learned from studies about learning, and it would be awesome if I could provide a research platform for education research.
In the end, I hope that the software work on teaching individual subjects would generalize to a set of templates for interactive learning that would let people construct reasonably effective interactive learning tools for many different subjects, with a reasonable investment of effort. Just as a software engineer would look at a problem and construct a solution out of well-known systems, an educator could look at the material and skills they want to teach in a class and construct an interactive course from different parts: spaced repetition to teach certain information, an interactive coaching module and a drill module for medium-complexity skills involving several steps, a submit/teacher review/revision module for writing tasks, and a portfolio module for the semester project. Those are the kinds of general modules that come to mind now, but the aim of constructing completely ad hoc software for a variety of subjects would be to discover novel design patterns for interactive learning.
Custom modules created by teachers, researchers, and hackers could be trivially published, for free or for sale, and incorporated into course-specific modules or explored by self-guiding students. Utopia! (Whew.)
P.S. If I had to show ads to cover support and operations costs, I would only show them to adults, and I would let people pay to turn them off. (Nobody should have to feel guilty for running AdBlock, so I think it's important to let AdBlock users pay extra to turn off the ads they would see.)
For the idea of Vim within an exoskeleton, you might be interested in these ideas:
I'd love to hear more about your ideas; ping me @gmail if you want to chat.
My current job pays well, though, and I plan on retiring at least fifteen years before I'm too old to program, so the "money doesn't matter anymore" scenario is a realistic one. I have a feeling that whenever I retire, educational software will still feel like the right thing to work on.
Student: "No, thank you."
Event registration, chip timing software, live/historical race results. The whole package. Right now the pieces exist but they're usually separate pieces and they look and function like 90's software.
I'd try and bring modern look, feel, and technology to these areas.
Strava is a great example of bringing modern web to the cycling/running world if you ask me.
.. learning system level C (embedded kernel/driver stuff)
.. commit full-time on open-source projects that I love
I know, I know.. I should just start!
You might pick up a good Kernel beginners book (do you know C? If not, start there.) and just start reading it... thumb through it... start seeing some of the API calls and comitting them to memory so the next time you see them you think "Oh yea, I remember that from Chapter 1..."
Don't worry about coding, which IDE to use, which build system to use, installing Ubuntu on your laptop or moving in with Linus... just get that book and start reading before you go to bed at night.
It'll either break down the barrier to entry for you, or make you realize it isn't what you thought and you can focus on something else.
Absolute worse case scenario? You learn a few cool tricks and put the book on your shelf to collect dust. No biggie.
Might I suggest starting here? http://goo.gl/YBoJ0
Best of luck!
(Another "PhD" response begged the question of "to what end" - in my case, artifact preservation and restoration museum work would be the ultimate dream job. It's totally impractical, though.)
You want something. How do you make it happen?
If only money was of no concern!
1. A new political system
2. Fight corruption
3. Fight poverty
In my field:
1. New internet
2. New programming language
3. Open books
4. Open encyclopedias by field
5. No intellectual property, patents, or licenses
Anyway, I would try and stop that, via a non profit organization.