Random train of thought as I was driving in to work today.
I've said before that I think profit is the enemy of innovation. Companies invent, but want to hog all the profit for themselves, so they apply for patents and copyrights, preventing other people from copying and possibly improving on their product.
However, I took that thinking a step further. If you want to invent and innovate, you need funding. Where do you get that funding?
Off the top of my head, there are three possibilities:
- Donations
- Profit from unrelated product(s)
- Profit from previous innovation
So it looks like profit is a necessary evil when it comes to innovation.
2010-03-29
2010-03-22
IDEA: Sample Store
One thing that irks me about grocery shopping is the temptation to try something new. To do so, you usually need to buy a lot of the product, as that's the smallest size it comes in, and if it's not to your liking, are you going to return it?
Additionally, I sometimes want to compare flavors or varieties of products side-by-side to see which one I prefer more. However, the only available option is usually to buy a box of each flavor and take your changes.
Hence, the Sample Store. A store that encompasses both of these ideas in mind. It allows for samples of anything requested, and allows for side-by-side comparison.
Now, funding for such a venture may not be simple. More popular items could be cost-effective in that you buy a pack and quickly go through it in the course of sampling. However, some new and/or exotic products would likely be negative ROI, so those would need to be specially ordered, likely at a premium cost.
Then there's how to charge the customers.
A quick thought on this branch of thinking. It might be worth it just to have a bank of snack machines with individual packages of more popular products for people to sample as they wish.
Other ideas for funding this kind of venture are beyond my knowledge and experience, but the main goal would be to make the experience less painful than having to buy a large amount of food that you end up not eating due to a difference of opinion on taste
Additionally, I sometimes want to compare flavors or varieties of products side-by-side to see which one I prefer more. However, the only available option is usually to buy a box of each flavor and take your changes.
Hence, the Sample Store. A store that encompasses both of these ideas in mind. It allows for samples of anything requested, and allows for side-by-side comparison.
Now, funding for such a venture may not be simple. More popular items could be cost-effective in that you buy a pack and quickly go through it in the course of sampling. However, some new and/or exotic products would likely be negative ROI, so those would need to be specially ordered, likely at a premium cost.
Then there's how to charge the customers.
A quick thought on this branch of thinking. It might be worth it just to have a bank of snack machines with individual packages of more popular products for people to sample as they wish.
Other ideas for funding this kind of venture are beyond my knowledge and experience, but the main goal would be to make the experience less painful than having to buy a large amount of food that you end up not eating due to a difference of opinion on taste
2008-12-03
CODING: Add "compare" to "get" and "set"
For the coders out there, you may be familiar with C#, and how it includes "get" and "set" functions. I was thinking there should be a third function called "compare". Many times in code, I need to know if a value matches what an object has in a property. Rather than using "get" and writing extraneous code over and over, why not a simple "compare"?
Example:
tempvar = object.property.get()
if (tempvar = comparevar) ...
if (object.property.compare(comparevar)) ...
It probably gets more complicated than that, but you get the idea
Example:
tempvar = object.property.get()
if (tempvar = comparevar) ...
if (object.property.compare(comparevar)) ...
It probably gets more complicated than that, but you get the idea
2008-12-01
IDEA: Simpler interconnectivity for easier communication
It occurred to me that half of the mess of development of technology has to do with interfacing with legacy or proprietary systems. In light of this, I think it would be optimal for everyone to come to a consensus on what is the more efficient way to communicate (a la World Wide Web Consortium), and everyone develop around that. Legacy and proprietary interfaces would come at a premium to work with.
Some parts of this have already come to fruition, including XML.
Some parts of this have already come to fruition, including XML.
IDEA: Humans as brain cells
Let me quickly guide you through my thinking before I start in. I was pondering Leonardo da Vinci, and how he created while cutoff from outside influences(1). Then I moved forward to today, where the Internet connects a lot of the world (if not most). Yet innovation proceeds, almost at an equal pace with da Vinci.
That's when I thought of something. What if humans with a connection to each other could mimic a human brain? Imagine a brain as diverse as or more diverse than our own. This might be the next leap in evolution.
(1) I don't know if he was actually mostly cut off from outside influences; I have yet to do actual research. My sources are Wikipedia and a video game with a rendering of one of his studios.
That's when I thought of something. What if humans with a connection to each other could mimic a human brain? Imagine a brain as diverse as or more diverse than our own. This might be the next leap in evolution.
(1) I don't know if he was actually mostly cut off from outside influences; I have yet to do actual research. My sources are Wikipedia and a video game with a rendering of one of his studios.
2008-11-06
CODING: Modular coding techniques
Totally unnecessary disclaimer: I do not claim to be any kind of authority when it comes to programming. The following are just observations.
For more modular coding, I would like to mention two techniques.
First: code for unit testing. This means to write your methods in such a way that it is easy to test each method in an "offline" setting to make sure the method produces expected values given certain input. In this way, if you make changes to the method, you can test the method before and after to make sure the output is the same for both instances.
The trick in this case is to develop methods so that they do indeed work offline. For example. I was just editing a method that creates a SQL query using arguments passed to the method, executes the query, then returns the results. For unit testing, the part where the query is build should be in its own method (separated from the database part), so that you can test it with input when you change the method of building the query.
Second: modularize everything (sorry for making a verb by adding "ize"). Every part of an application should be modularized so that changing one part does not require changing other parts. For example, I have an application that accepts input from an excel spreadsheet and produces PHP code. However, many methods in the application contribute to the final output. What I should do is have all of those methods call a common output method, and have that write to the final output. In this way, if I decide to output in different mediums, I only have to change the output method, rather than the multiple methods.
For more modular coding, I would like to mention two techniques.
First: code for unit testing. This means to write your methods in such a way that it is easy to test each method in an "offline" setting to make sure the method produces expected values given certain input. In this way, if you make changes to the method, you can test the method before and after to make sure the output is the same for both instances.
The trick in this case is to develop methods so that they do indeed work offline. For example. I was just editing a method that creates a SQL query using arguments passed to the method, executes the query, then returns the results. For unit testing, the part where the query is build should be in its own method (separated from the database part), so that you can test it with input when you change the method of building the query.
Second: modularize everything (sorry for making a verb by adding "ize"). Every part of an application should be modularized so that changing one part does not require changing other parts. For example, I have an application that accepts input from an excel spreadsheet and produces PHP code. However, many methods in the application contribute to the final output. What I should do is have all of those methods call a common output method, and have that write to the final output. In this way, if I decide to output in different mediums, I only have to change the output method, rather than the multiple methods.
2008-10-22
IDEA: From Desktop to PMP
I think in the whirlpool of mobile computing, we're missing the big picture of what the desired goal is, so I'll map it out.
- Desktop for home computing and organization.
- Laptop for mobile computing and organization.
- PDA for mobile organization.
- Phone for communication.
- Mobile phone for mobile communication.
- Media playing software for home entertainment.
- Portable media player for mobile entertainment.
My idea is that as we go from home to mobile, we should be able to carry our data and preferences with us. An example of the implementation of my idea is the following: when moving from desktop to laptop, there is some common bridge that allows us to transfer our computer preferences and necessary files over to the laptop with no fuss or muss.
Taken a step further, the desktop and laptop could be combined into one, and the PDA, phone, and media player could also be combined into one. In this scenario, I envision two docking devices. The dock has the big hardware that drives the more powerful requirements needed at home, while the detatchable mobile parts carry the preferences, data, and necessary mobile applications to manipulate those items. When changes are made to any one device, it transfers to the rest of the devices upon docking. You could even have a single dock at home that has a detatchable laptop and mobile device.
Going even further, a degree of customization for shells is possible for the mobile devices.
This all loops back to my underlying premise of allowing the user as much control over their environment as possible, rather than being locked in to the company's software interface.
See also http://www.modumobile.com
- Desktop for home computing and organization.
- Laptop for mobile computing and organization.
- PDA for mobile organization.
- Phone for communication.
- Mobile phone for mobile communication.
- Media playing software for home entertainment.
- Portable media player for mobile entertainment.
My idea is that as we go from home to mobile, we should be able to carry our data and preferences with us. An example of the implementation of my idea is the following: when moving from desktop to laptop, there is some common bridge that allows us to transfer our computer preferences and necessary files over to the laptop with no fuss or muss.
Taken a step further, the desktop and laptop could be combined into one, and the PDA, phone, and media player could also be combined into one. In this scenario, I envision two docking devices. The dock has the big hardware that drives the more powerful requirements needed at home, while the detatchable mobile parts carry the preferences, data, and necessary mobile applications to manipulate those items. When changes are made to any one device, it transfers to the rest of the devices upon docking. You could even have a single dock at home that has a detatchable laptop and mobile device.
Going even further, a degree of customization for shells is possible for the mobile devices.
This all loops back to my underlying premise of allowing the user as much control over their environment as possible, rather than being locked in to the company's software interface.
See also http://www.modumobile.com
Subscribe to:
Posts (Atom)