You are here


These ideas are licensed under a Creative Commons share-alike attribution license. All I ask is that you give credit for these ideas to me, should you choose to use them.

How do we perceive time?

Time flies when you're having fun. ~ Anonymous

I have noticed that when I am involved in activities that are interesting to me, time feels like it passes quickly. In other words, I can do a lot of activities, and not notice the passage of time. However, when I reflect later on the passage of time, periods of my life in which I was busiest doing work that interested me, it feels like those are the parts of my life I remember most, and which seem upon reflection to have passed most slowly.

Here is my theory; our experience of the passage of time is based on the memories we build as time passes. I don't currently know of any research which supports my theory, but read my thoughts below and see what you think.

When we are bored, or doing tasks which we have done many times before, our brain does not develop as many memories of those experiences. As a result, our short term memory does not engaged as often, and so has more references points with which to measure the passage of time. For our short term memory, this means that time feels like it is passing slowly. In other words, we are able to actively check the passage of time more frequently because our brains have the cognitive load available to do so, and so time feels like it is passing more slowly. In contrast, when we do activities in which our whole minds are actively engaged, our brain stops to check the time less frequently because it does not have the cognitive resources to do so and process our current experiences.

However, when we reflect back on the passage of time, our brains look for activities we have done and their associated memories. During periods of our lives when we are most mentally active (such as changing a job, becoming a parent, or moving to a new part of the world), the passage of time seems the slowest as we have more new memories to check through. When our lives are dull and full of the routine, our brains literally store less information from our life, and upon reflection it seems that the passage of time is very fast since there are hardly any memories with which to measure the passage of time.

Consequently, if you want to be able to reflect back on your life and feel like it is passing slowly, you need to build lots of new memories and avoid sticking to only routine tasks. Consider changing your job frequently, moving to a new place, and trying out new experiences. If none of this is possible, consider other changes you can make such as commuting to work with a different path (or a different mode of transport) every day, deliberately eating new food each day, or anything else that breaks your daily routine on a regular basis.

Visual programming language

Imagine a programming language that was designed using a largely visual interface. You would literally paint your code with your fingers. Want a loop? Make a circle with your fingers on the screen. Want an if-then control statement? Start with your fingers together and split them apart on the screen. Want an if-then-else statement? You'll need to use three fingers for that. Want a comparison? Drag the objects and their properties into the control statement and rotate them to find the properties to compare (and use your fingers to decide what comparison operator to use). Want a sub-routine or new object? Start painting it on a different page (or section of the screen, which could optionally allow for variable scoping), and then link it as necessary in your program.

Perhaps the IDE would look a little bit like a cross between a block language and a mind-mapping tool? If you needed more fine-grain control over individual structures, you could switch to a text interface, but I wonder how much of your core code you could do with a purely visual interface?

Sharing presentation slides more efficiently

Photo of a presentation slide
(Image credit: JISC Digital Media)

I watched someone take a photo of a slide during a presentation today, and I wondered if there was a more efficient way to share the slides. If you actually want the information on the slide, I can imagine that a possibly blurry photo of the slide from a distance is less than ideal. I can think of a couple of ways (as a presenter) of making the process of your audience accessing your photo/slide easier.

  • Share your entire presentation online, and share the URL to the presentation early in your session.
  • Use QR codes or links on each slide to allow participants to record the link to a specific slide or image.
  • Develop presentation software that allows sharing of individual slides more easily on an ad-hoc basis, much like what can be done with webinar or screen-sharing software.

Any other ideas?

Turn roads into solar-power generators

(Image credit: Dino ahmad ali)

I have no idea if this is even possible, but I remember wondering where all the solar panels would go if we were to convert our cities into running as much as possible on solar power. I realized that most cities are covered with many square kilometres worth of roads, and then I thought, wouldn't it be nice if these roads could do double duty?

The idea is basically to figure out a way to convert existing road space into solar generators (while still allowing cars to drive on it). The material used would have to be affordable, but it wouldn't need to be ultra-efficient (large amount of area, but low amount of efficiency would still lead to a lot of energy captured). Alternatively, the system could be based on capturing heat from the road (much of which would come from the son, but some would come from the cars on the road itself).

One advantage of using roads is that they are regularly upgraded and maintained, so you could eventually convert all of the roads over time through this maintenance, as opposed to having to install solar panels in new locations.

Two obvious questions: How much of the energy generated would dissipate before it could be used? How durable would this theoretical material have to be?

Idea: Build a Who is this person? browser extension

I often find myself reading articles online, which almost always have quotes embedded within the article. I then copy the person's name, and search for them on Twitter and other social media, to get a sense of who they are.

I would love to have a browser extension (perhaps hooking into the context menu) which would do this for me. It should be easy to use: highlight the person's name, and then right-click and choose the "who is this?" option from the menu. An overlay would appear which would let you choose between the different possible people (which is often easy, depending on the context of the article) represented by their selected social media profiles (as configured in the settings of the extension).

Can someone build this for me?


Create decentralized discussion software

The biggest problems I see with all of the popular social media products are

  • that users have very little to no control over changes in the software that runs the product,
  • the users are themselves the product, specifically for advertisers,
  • if a service is turned off, all of the energy in building conversations and networks users have done is lost.


I'd like to see a decentralized and open-source product introduced to change this.

  • The software would operate very much like a blog,
  • You would be able to connect your site to other peoples' sites, provided permission is granted in both directions,
  • Traditional RSS and other REST services would be provided from any of the sites, allowing for separate client applications to be written,
  • Instead of a centralized service, each peer in a network would run their own hosted version of the software,
  • When someone mentioned you within your network, or linked to your posts, you would get a notification on your site,
  • The cost to maintain the service would be spread over everyone who hosts a site,
  • You would be in charge of handling your own upgrades and customizing your site,
  • It could be either installed as a standalone service or as an extension/plugin for existing services like Drupal or Wordpress,
  • Your site could include a 'what other people are saying' section, generated from related traffic to your existing network (which would allow you to discover new people),
  • Most importantly: If someone decided to drop out of the service, everyone else would remain connected as before. The time you spent building an active network could no longer be wasted by someone else deciding to shut down the service.

This exists, see Diaspora.

Physics questions

One way to describe the effect of gravity on other masses is as a distortion in space time. Is it appropriate to use this analogy for understanding the geometry (from a magnetic particle's perspective) in a magnetic field?

Is it possible that some black holes could have a electromagnetic field so strong that no particle with charge could ever escape? Would the magnetic-event horizon for such an object extend beyond the gravity-event horizon?

Publicly fund open discussion space on the Internet

If you are not paying for it, you're not the customer you're the product being sold.
(Image credit: pshab)


Our society already funds roads, schools, libraries, community centres and other things which serve the public good. Why not fund a public space online, free from advertising and complicated terms of service?

The cost of such a service would be minimal compared to the overall cost of the infrastructure we currently support. It could be moderated by promoting people who have established themselves as leaders of their community.

We desparately need somewhere online where we can discuss ideas openly without being the product, without being advertised to non-stop. If this Internet thing is to be something with which we promote and discuss democracy, then we need some democratic space set up within it.

Twitter, Facebook, Google are useful services, but their corporate model ensures that they view you as a product and that isn't healthy for democracy.

Would it be messy? You bet, but then so is democracy.

Create open-source modular software that writes itself

Imagine a day in the future when you sit down at your terminal (or perhaps while taking a walk in the park?) and you can design your own software through a verbal user interface. Here's a story to try and explain what I mean.

While walking in the park...

You: "Computer, I would like to create a program today."

Computer: "What do you want your program to do?"

You: "I need it to process this data I'm collecting for my company and present it so that my employees will understand it."

Computer: "Do you mean the data set you collected yesterday at 2:35pm?"

You: "Yes."

Computer: "Do you want me to access the public code repository? There are some libraries there that will help."

You: "Yes, please."

Computer: "Processing, processing, processing. Done. Do you want to view your program?"

You: "Can you send it to my office so I can view it there?"

Computer: "Yes. Done."

Back at the office...

You: "Computer, bring up the program I started in the park."

Computer: "Now displaying."

You: "Okay, can you change the theme? I'd like it to be a bit more metallic. Use the Zen design principles please."

Computer: "Processing, processing, processing. Done."

You: "Hrmm. This isn't working quite as I'd like. Do you have a subroutine to allow them to edit the data at this point (points to screen) and add an overlay of the data in a visual timeline?"

Computer: "Checking public repository.... I have found a similar algorithm but it will probably need some minor changes. Would you like to use it and modify it yourself? The license allows you to use it for commercial purposes."

You: "Okay. I have a couple of hours here, I'll work on fixing that part of the code."

Computer: "Would you like to automatically share your code to the public repository?"

You: "Yes. Thank you, use the CC-BY-NC license."


I expect some day that most software will be mostly designed visually rather than written in text. Software libraries will exist in public repositories, and computers will assemble the code for us, rather than us assembling the code on a computer. Programmers will be more like artists, finding ways to combine algorithms and subroutines much like a painter assembling paint onto a canvas.

Create a more user friendly compiler

I was speaking with a visitor today about how I think kids learn, and the topic of programming came up. He suggested that one reason people find programming so hard to learn is that the syntax had to be exactly perfect in order to get anything to work. He said imagine if you couldn't communicate anything in a language until you had perfect syntax; you'd never learn the language!

So my response was, maybe we need to fix the compiler? What if the compiler understood poor syntax and was able to correct it to better syntax for a user (or at least offer some possible suggestions for improved syntax, with examples of the output of each version of the syntax)? Instead of a dumb compiler that needs exactly the right information entered into it, you'd have an intelligent compiler that would be able to interpret poorly written code, and still produce some sort of useful result.

This problem is often addressed by creating incredibly simple syntaxes (for example: block languages, like what exists in Scratch) but as I've noticed, students sometimes struggle to convert the block languages into text code blocks. Instead of simplifying the language, let's widen the range of acceptable syntax, while at the same time still giving some feedback to the learner.

An aside: what if we could do this in math as well?

Digital objects should include an attribution meta tag

What if every digital object (photo, learning resource, website) had an attribution metatag?

In a similar way that encryption keys are handed out by a small number of parties, digital resources could be tagged with encrypted information which can be easily matched against a database to find out who created the object, but which would be difficult (impossible?) to fake.

The objective of these attribution meta tags would not be to make content rights easier to manage (although this would be a consequence), but to act to improve the reliability of online data and resources. It would also allow for searching for resources created by individuals.

Obviously such a system would be an opt-in system.

Manufacture on demand

Consumer as designer and manufacturer

We all know the end of oil is coming, and with it, the end of cheap energy. Biofuels, alternative energies, all of these are only going to get us so far. One of the major consumers of energy on this planet is the shipping of goods across the globe. We ship supplies to one part of the globe, and then ship manufactured products back again.

Imagine if instead of having to ship goods, we could ship 3d digital models over the Internet instead, and then print these on demand. At first, products could be printed in local manufacturing plants (perhaps even on the same grounds where customers would go to pick up their orders, which would also significantly reduce warehousing needs) and supplied to local consumers, and eventually, consumers could print their own models directly, perhaps paying for licenses to create these products, or for the equipment necessary to do the production themselves (and have some licensing costs built into the cost of the equipment). Imagine an ecosystem where the consumer is the designer and manufacturer of their own products and that those products weren't limited to what capability the consumer has with typical DIY tools.

As production rose, so would production quality, and ever more intricate devices could be constructed with these machines. With the inclusion of the open source model, much of what we pay for today could be nearly free as we would just have to pay for the machines (and the energy to run them) and the supplies necessary to construct the models.

Intelligent refrigerator

Imagine you put your food into a re-usable container, but before putting it into your refrigerator, you scan it first, and when prompted, tell your refrigerator what it is (either verbally, or using text). Your refrigerator (or a small computer attached to the outside of it for "analog" refrigerators) records what you've entered into it, and the date and time you entered it. Every time you remove something from your refrigerator, you scan it on the way out, so that the refrigerator always has a record of what is inside it, and when it was placed inside it.

You could then ask your refrigerator (using voice-recognition software) what would be good to eat, and your refrigerator could also remind you that your food needs to be eaten soon. Further, if you also scanned in raw ingredients (and maybe did the same for dry goods stored in your cupboards/pantry), your refrigerator could recommend recipes. Your smartphone could have an app which was aware of the data from your refrigerator, and could act as a shopping list. Or, instead of an additional device on the refridgerator, each person who used the fridge could have the app on their phone.

I wonder how long it would take such a system to save you enough money from not wasting food so that it would be affordable?

Smart parking meters

What if parking meters were smart enough to indicate when the attached parking spot was in use, and when it was no longer in use? What if this information was available on the web (or through an app) so that anyone who was looking around for parking could pull off the road for a moment and look up some of the easiest places in the city to park?

What if this information was used to inform city planning? What if the prices of parking were dependent on how busy the surrounding area was, so that commuters were encouraged by lower prices to park in less densely packed areas of town? What if similar parking density meters were installed everywhere there was parking, even if that parking was free?

Build presentation software that makes sense

I'm tired of PowerPoint, and I find Prezi's spinning and zooming hard to follow. I'm tired of having to use third parties tools to embed websites with limited functionality so that I can embed my gizmos in my presentation. The web has been around for more than 30 years; why does today's presentation software consider it an after-thought? Why is it so difficult to use hyperlinks to link within a presentation itself?

I want presentation software that will:

  • Allow me to embed live versions of websites using whatever browser rendering software I choose.
  • Allow me to edit the presentation on the fly, so that I can take notes during a workshop in my presentation.
  • Allow my presentation to be streamed online (with audio and a webcam stream) using the same tool that I'm presenting with.
  • Allow me to save the state of 3rd party software and include it in my presentation. Think of what you could accomplish with your presentation if you didn't have to flip between programs all the time.
  • Suppress notifications from other programs. No, I don't want to know about that email I just got, and yes, I'm aware that I should have shut down my email in advance of my presentation, but I forgot, okay?
  • Can I ask for any webcam stream to be included in my presentation? I'd love to be able to embed a webcam stream from a person on the other side of the planet, while I take notes or share images on their behalf on my end of the conversation.
  • Allow me poll the audience (or embed a live chat) within my presentation itself. The audience is part of the presentation, not just a passive recipient of information, they should be included as much as possible where feasible.
  • Make the presentation software easy to use. We need to write more software remembering that the people on the other end may not be experts in a wide variety of software. Every time I have to teach somehow how to use software it makes me frustrated because I know it is possible to build software that is more intuitive than what currently exists.

I'm sure I'll come up with some more features, but this is good enough for now.

Are there multiple singularities inside the event horizon?

I was wondering in the shower today if when a star collapses into a black hole, if individual particles are "crushed" under the pressure from gravity and collapse into a singularity, and if many different particles will experience this simultaneously, would this process result in multiple singularities inside the event horizon of the black hole? Also, if an individual particle started falling toward a singularity, it would presumably cross the threshold for pressure (after which point it would itself collapse into a singularity) before it contacted the singularity.

It occurred to me that two (or more) orbiting singularities would never meet (this assumes that space-time is continuous), and so if the process of creating a black hole ended up resulting in multiple singularities inside the event horizon, these singularities would never merge. Presumably they would eventually end up in very tight orbits inside the event horizon, but even in this case, it would presumably mean that the event horizon itself wouldn't be completely spherical, (or elliptical), and that you may be able to measure this difference.

Gödel's incompleteness theorems and human self-inconsistency?

From Wikipedia:

The first incompleteness theorem states that no consistent system of axioms whose theorems can be listed by an "effective procedure" (e.g., a computer program, but it could be any sort of algorithm) is capable of proving all truths about the relations of the natural numbers (arithmetic). For any such system, there will always be statements about the natural numbers that are true, but that are unprovable within the system. The second incompleteness theorem, a corollary of the first, shows that such a system cannot demonstrate its own consistency.

My question:

Is there a relationship between Gödel's first incompleteness theorem and the ability of humans to hold seemingly self-contradictory thoughts?

In other words, has our brain been designed in such a way as to allow us to prove as much as possible about the universe, and consequently we must hold some thoughts in a contradictory fashion; we hold an inconsistent set of axioms about the world, and so we can potentially prove anything about the world (although many proofs would be invalid, but to an inconsistent system, perhaps an invalid truth is acceptable?).

Make escalators more energy efficient

People go up escalators, people go down escalators.

What if the energy potential of the people going down an escalator was used to power an escalator going up? You'd still have to add energy to the system, but there should be some way to save at least some of the energy used when the escalator carries many thousands of kilograms of people down, to help power the escalator on the up side.

Clearly this type of system would work best when the relative rates of people going up and down on the escalators are approximately equal. In many rush hour situations, this simply isn't true. However, even a modest savings of energy for a system which runs 24/7 every day of the year would be worth exploring.

Update: It seems to me that this idea is not likely to be original, and that someone has probably implemented it. Let me know if this is the case, and I'll update this post.

Modular cars

Imagine you get in your car, and drive it to the highway, where you pause for a moment to physically join with 5 or 6 other cars. Now you join the highway, which automatically moves your mini-train of cars at the fastest "safe" speed possible, before moving you off of the highway so that you can decouple from the other cars in your unit, and continue on your way to work.

There would be a few advantages of this system

  1. The total energy cost of the system would be less, since the total drag (from the wind) on the mini-trains would be less than the drag on each individual car.
  2. The mini-trains could run on tracks, which could provide the energy for them to move, and to recharge the batteries of the individual cars. It would help increase the range of an electric car, while simultaneously helping solve the problem of "refueling time."
  3. It would likely decrease the number of fatal accidents that would occur on highways. Most accidents on highways are the result of operator error, which would presumably be greatly reduced with a computer at the controls. See Google's driverless car for an existing example of automated driving.

Apply a genetic algorithm to public policy

Public policy based entirely on ideology is flawed. Our objective is often to ensure that our citizens have their needs met, but when we change our course dramatic and capriciously (as often happens after an election), we often fail our citizenry. Through the open government movement, and the open data movement, we have an opportunity to change some of this.

What if we decided on public policy based on what works, rather than our feelings about it? We could take 10 randomly selected public policies, all intended to address the same issue. Apply them as public policy to 10 randomly chosen similar jurisdictions (cities would probably have to collaborate to do this) and use the data collected from those jurisdictions to find out how effective the policies are. We would then discard all but the 3 best performing public policies, and randomly select 7 new policies to replace the ones lost, and rerun the experiment. We could tweak the three policies we've chosen (using some random variation on the various aspects of the policies).

Alternatively, once we have enough data collected from enough jurisdictions via the open data and open government movements, we could enter in all of this data into a computer, and run the policy algorithms on a simulation, rather than in the real world. At the very least, this computational approach could narrow down the field to policies which seem effective.

At the very least, the open data movement should allow us to do more effective research on public policy, but it would be interesting to see if any municipalities or governments would be open to an experiment of this kind.


Subscribe via email

This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Enter the word shown above.


Subscribe Subscribe to my blog

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer