My dream for PR.

This article reflects my personal opinions, and not the opinions of Panda Robotics

I’ve had a few very interesting conversations and the organizations I’ve managed have had to make a very difficult decisions this last week.

Panda Robotics’ target market is primarily the general consumer, I personally believe that it is time to get 3d printers out of the labs, out of the workshops, right into the homes. Essentially, the exact same thinking that happened in the late 70s with personal computers.

Yes, there are always ways to improve on these existing tools from the perspective of finer resolution, etc., but, in my opinion we could spend the rest of time trying to make the very best one before we get the prices down and get it so people can use it themselves. Get it so everyone can start to imagine and create in ways that we, the manufacturers, can’t even imagine.

I’m fairly certain many of the early PC pioneers never envisioned VisiCalc, nor dreamt that something that useful for business could run on such an underpowered machine.

To get to the general consumer, we not only have to get the price down, but my dream was to get Pandabots safe and easy enough to use that we could get entire labs of these into the schools at schoolboards, or the universities throughout North America. Yes, there would still be a place for high-end printers like the Objet’s and Dimensions, but this provides a stepping stone where individuals who would never have had the opportunity to really play with a 3d printer, learn it’s limitations and possibilities, but more importantly be able to dream about how they can create a new world with it.

I know, this seems very optimistic, but I really think that Moore’s Law (to some degree) will apply to 3d printing, and by the time the kids in elementary school have reached adulthood, they will not only view 3d printing as just another part of life, but be able to enact those things they’ve been dreaming of doing since they were young.

Just as many of us did when we graduated, having started on old XTs and Apple IIs.

Amazingly, when the kickstarter started. we got lots of requests from schools and institutions who wanted it precisely for this reason. It excites me immensely, and I’m very hopeful that we’ll be able to get the first production models to them soon. So that the people in school in 2013 will be able to all start to use 3d printers daily and get as excited as me about them.

I’m working as hard as I can to make this dream come true, and I appreciate all of the support each and everyone of you has given me in reaching it.

KJR

Enhanced by Zemanta

Exponential Growth == Good!

One of the pet things that excite me every day is the possibility of exponential growth from renewable power sources. This isn’t because I’m a hippy trying to save the planet, it’s because the more I do the numbers, the more it just makes good economic sense. (I’m simply a frustrated entrepreneur at heart one of my good friends told me. Lots of idea, not enough capital and time to implement them all.)

Specifically Wind/Solar/Geothermal Power sources. High upfront cost, yes, but low maintenance cost. You don’t need to buy wind to power a wind plant, you do need to pay for coal to power a coal plant. From the perspective of exponential growth, as long as I make more than it costs year to year, window/tidal/solar is an obvious long-term business plan.

Let me explain. Let’s go with wind power. The first one will cost and likely not make me much within the first year. Say 10 Mil for the first windmill.

Short of minimal maintenance we get most of the capital from selling to the grid. Back of envelope calculation, I’m guessing about 4-6 mil per year. So this means approximately every 2 years, we can double the number of windmills and pay interest/dividends on initial investment. So in 10 years, we could, in theory, have 2^5 = 32 windmills, and in 20 years, have over a thousand of them.

But where can we build this massive bounty of windmills successfully without large land costs, problems with low wind speeds, good location near the grid, or people complaining about their “views.”

I’ve thought hard about this, and realized that perhaps if we build up near Churchill, where no one lives, there’s tons of cheap land and if you look at the following map, lots of high wind locations.

Mean Annual Wind Velocity at 50M above ground.

Ok, that’s great.  How far are we from the main power grid, or at very least a powerline that feeds into the main powergrid up there. Well, let’s take a lot at the next map.

Generating Stations and Power Lines, Manitoba

Beautiful, what can you see there, in the vast empty spaces of the north of Manitoba… A beautiful 500kV powerline directly into the heart of where we want to build this exponentially growing wind farm.

So, we have cheap land, easy access to the largest power grid in northwestern America, and great wind resources… What is the last problem we need to resolve.

Well, as anyone who reads newspapers in Ontario is used to seeing around windmills, there’s the inevitable NIMBYism. (Not in my Backyard), by people who think these beautiful pieces of modern architecture will somehow destroy their great view of trees and rocks.

Well, let’s look at this map of population density in Canada.

Population Density in Canada from 2002

What do you notice around the Hudson Bay, particularly near where Churchill is.

There is almost no one living there. Ie. There is very little change for NIMBYism, and the few people who are there will likely be very happy to have the oil-sands level windfalls from jobs and capital due to the power production.

Note, this is all back of envelope, but doesn’t this sound like a great business plan to you? Up there with the original business of Hudson’s Bay when they built York Factory and started the creation of a business that has prospered and lasted for over 300 years.

Yes, because we are only starting with 1 windmill, it will take a while to get up to scale, but exponential growth is exponential growth. Given 10 iterations, we would be at 1024 windmills, 20 iterations, and we’d likely be generating enough power for the entire northeast corridor simply from wind… Then with that cheap energy, the real fun begins for Canada and Canadian manufacturing. 😉

Pretty exciting, eh?

KJR

ps. I would love to take this, put it into a business plan, get the capital and start building. However, I need an engineer to help me out with the technical parts. Perhaps if I could nail this down, the BDC or someone with some real capital would be interested in this long term plan.

Enhanced by Zemanta

Late night ponderings (madness?)

Life is a fascinating thing. It could all very well be stochastic and random, but our minds work so hard to make meaning out of it and to tease out what could only be called a story that there are times when you reflect on the good and the bad and you simply find it impossible to believe there isn’t some purpose or meaning to it.

Some of the best parts and moments of my life happened very shortly after I received deep and painful disappointment at the hands of others, or at my own failure to execute what I believes in. Even now, I regularly am in fear that while I work my best on the projects I truly believe will change the world for the better that I will fail. Sometimes the trolls and the nay-sayers and the pessimists do get the best of me and I worry that the effort is for naught.

However, even if I do fail, or stop, or simply change course, I usually find out that the end product is superior than anything I originally dreamed it would be. Almost as if my dreams aren’t capable enough of putting the pieces together as well as they could eventually turn out. Sure, i’m not a billionaire with my own private plane to Mars like I drew pictures of when I was a child, but I’ve had some adventures I’d never have believed I’d have.

Three things are going on in my life that inspire me everyday and keep me moving.

First and foremost… I’m going to be a daddy… Not much more I can say to how awesome that is. Either  you understand it, and I don’t need to say anything, or you don’t understand it and there’s nothing I could say to explain it to you.

For this, I study my French and German. I’m working on my ability to draw. I’m studying the “art of manliness” and practising my ability to read bedtime stories. I can’t even wait to get her out to the baseball field and play a game of catch (or him… we really don’t know yet.) I don’t know if I’ll be a good father, but I know that the idea of it inspires me to work even harder every day.

I am a co-founder of an amazing company (Panda Robotics) with an amazing product that impresses me every day as we improve it and add more and more capacity with the capital we do have. Liav, Felix, and everyone else always amazes me at how they can work with me to squeeze out of every moment, every dime, every item that little bit more to create a product that just… Well, you have to talk to people who’ve seen it in person. It’s just that impressive.

Yes, I dream bigger, and I pray at times that God (or the Universe, or *insert your diety here*) will come through and let Felix, Liav and I take this to the level it really could be brought to, and from that dream and wish I work hard every day to try and make it come true. You see, I really believe that 3d printing is going to change everything, it’s only a matter of building it and getting the next generation learning it young. Just like all of us grew up with Apple IIs and created this revolution. The moment Pandabots (or something similar) are in schools and homes with children learning how to create 3d objects young, that will be the moment that the 15 year clock to the real next industrial revolution will start.

However, I must say that seeing Liav come up with innovative ways to make 3d printing accessible, or seeing Felix’s enthusiasm shine through when he’s working on the business with me. There’s not much more you can ask as a co-founder.

Finally, there’s Panda Rose, my company I started a few years back with some of the most creative programmers I know, and our software immix. Every day I learn about new features that Stefen has implemented, or adjustments to the basic framework that make it so much easier to wire everything together in this beautiful holistic framework. Some of the new stuff coming down the pipeline changes everything. It truly turns immix into a framework for the internet of things.

I’m always proud to see the work that JF does for our clients ensuring that their every need is met, even if they aren’t 100% sure of their needs in the first place. It excites me to know that Steve is making sure that the product won’t just be accessible, but will be fully internationalized so people of every language will be able to use it effectively.

There’s also Becky, who keeps me sane and happy at the office, even while she reminds me that I need to put more pressure on my clients to ensure the A/R doesn’t keep on growing without converting into CoH. She’s the reason I’ve been able to concentrate on what I do best, and hopefully building a few of these dreams into reality.

Yes, it’s stressful, and yes, there are days that I just don’t know what to do, and yes, even sometimes I wish some of my clients understood how much I really do care about what I do for them. Yet, I know that I do my utmost best, my team is amazing, and that Panda Rose is the epitome of the phrase, “We don’t know what impossible even means.” We all dream big, so our clients can dream even bigger. It’s wildly fun.

In the end though, it all seems to be building to something, and this is going to be an exciting ride.

Have a great night everyone, and I hope this week will be the start of something even more amazing.

KJR

Enhanced by Zemanta

The joys of cardinality – part 1

So, here’s an article I’ve been meaning to write for a while. I love Cantor’s diagonal proof of how there are as many rational numbers (of the form a/b, for example 1/5 or 1/2 or 3/5) and yet there are more real numbers (this is the numbers with an infinite expansion of decimals like pi, e, 3.5252353…) than integers.

However, everytime I try to share this with people I get stuck because it’s very abstract thinking, even though it’s really cool. So, this is my attempt to explain it in a few steps so that everyone can understand how thinking rigourously can teach you very cool things about numbers.

So, let’s start with the idea of cardinality. How can we clearly state that two sets of objects are the same size. I want a method that is indisputable. So let’s imagine we have 2 sets of objects, baskets and balls.

|_| |_| |_|   o o o

Now, above we can see, at a glance, that we have the same number of baskets as balls, but how can we prove it to someone who can’t count. Well, we can put one ball into each basket.
|o| |o| |o|

Yep, each basket is full, and each ball is in a basket. So we must have the same number of baskets as balls. This is great.

Now let’s try another set of baskets and balls.

|_| |_| |_| |_|    o o

Putting them into the baskets, we have

|o||o| |_| |_|

Hmmm… we have more baskets than balls. This means that the two sets aren’t the same size as we have empty baskets. Technically, mathematicians would say this is a injective mapping of balls into baskets. However, we’ll avoid the technical terms for now.

One more set, just so we have all cases covered for finite syts.

|_| |_| |_| o o o o o

Putting balls into baskets, gives us:

|o| |o| |o| o o

Now we have 2 lonely balls rolling around without any baskets. Again, this clearly demonstrates that the two sets aren’t the same size, as we have balls that need baskets, and all of the baskets are full. If we were allowed to put more than one ball into a basket, this would be a surjective mapping of balls onto baskets. Again, you can ignore these technical terms. As the key point here is we now have a clear way to determining when we have 2 sets whether they are equal in size, or whether one is larger than the other.

So let’s try with an infinite set of baskets, and an infinite set of balls.

|_| |_| |_| |_| ....

o o o o ....

Now, obviously, we need to find a clear way to represent which ball would go into each basket without having to draw an infinite number of baskets with balls in them to verify. So, let’s number each basket and number each ball in the obvious fashion.

|_| |_| |_| |_| ...
 1   2   3   4 ...

o o o o ...
1 2 3 4 ...

Now, there is an obvious way we can put every ball into every basket. We put Ball 1 into Basket 1, Ball 2 into Basket 2, and so on. Now, how do we test if every basket is full? Well, we check if the basket has a ball in it. So if you were to challenge me by asking (Does basket 34255 have a ball in it?) I can respond, yes, it has ball 34255 in it, by how we filled the baskets. This is true, because we know ball 34255 exists, and we agreed to this method of filling baskets.

Something interesting happens now, you throw a ball to me and tell me to put it into a basket. Well, all the baskets are full, so this should be, in theory, impossible, right?

I look at the baskets, and go ok. I mark your ball as ball 0 and put it into basket 1, moving ball 1 to basket 2, and so on…

|_| |o| |o| |o| ...
1/1 2/2 3/3 4/4 ... (Basket Number / Ball Number)

Ø
0 (Ball Number 0, which to make it clearer we'll 
represent as a ball with a slash on it)

So we do this, take ball 1 out of basket 1, and put into basket 2. ball 2 out of basket 2 and put into basket 3, and so on…

|_| |o| |o| |o| ...
 1  2/1 3/2 4/3 ... (Basket Number / Ball Number)

Put in ball 0 into basket 1

|Ø| |o| |o| |o| ...
1/0 2/1 3/2 4/3 ... (Basket Number / Ball NumbeR)

Now, every single ball is in a basket, even though we added one ball to the previous pile. This is one of the more interesting properties of infinity. Adding a finite number of elements to an infinite set does not change how many objects there are overall from this perspective. You could give me 100 balls, and I would only need to shift the first 100 down all the way down the line and there’ll still be enough baskets.

I’ll let everyone think about that one for a bit, and tomorrow I am going to go into how there are just as many even numbers as numbers in general. Hopefully ending with a framework to show how you can see there are just as many rational numbers (ie. fractions) as integers (whole numbers like 1, 2, 3).

Leading to the really weird realization in the following post that there are actually levels of infinity. 🙂

Please if anything here confused you, please ask questions. I’d love to have the chance to clear it up and develop an even better way to show this neat beauty in mathematics.

KJR

Enhanced by Zemanta

From the 24 Hours of mad hacking, here’s the two repositories for the Badgeduino-Modem + iPhone controller:

https://github.com/kjrose/Arduino-Badge-Driver—iPhone

https://github.com/kjrose/Badgeduino-Modem

These are both really hacky and primitive code, but they work and they get you started on having a simple audio modem between an iPhone and badgeduino. Pretty fun stuff to work with actually.

KJR

It’s not pretty, but here’s the code for the badgeduino Modem

Cars, tires, blowouts, and the Gardiner

This is my exciting story of wildness and madness today. It’s not really that exciting, but I’m having so much fun refining it and repeating it, that I will repeat it one last time here.

Above you can see the map where I estimate I blew out my tire going about 100km+ in the fast lane, and where I had to get to during rush hour so I could successfully get off the road. This is to set framework for the story of what happened and pictures, and reflections and so on. Big lesson learned, make sure you know the age of your tires when you buy a new car and if they are 5+ years old, replace them asap.

About 1 minute before the tires blew out, I was noticing something odd with the traction of the car. Since it’s an old car, I assumed it was nothing too important, but compensated a bit by slowing down and preparing just in case it wasn’t just road vibrations coming into the car.

Suzanne, my wife, noticed pretty much the moment the tire started to go, turning to me and saying, “do you hear that weird…” (Clunk, thup thup thup thup) This was the exact moment the tire blew out and the car fishtailed while I regained control “noise?”

Strangely enough, you would think that you would be very nervous or stressed in this situation, but instead, all of my training from AMA came into play and I just went into 100% emergency driving mode. Only responding to Suzanne with a very calm “Yep, we just blew out a tire.” As I looked around for any way to get off the road and out of everyone’s way.

I knew there was an exit coming up if nothing else, so I negotiated my way with the flat across all of the lanes of traffic (so I wouldn’t block rush hour traffic any worse than I needed to) and made it safely to the Jameson exit (seen in the map). Finding an enbridge powerstation, I pulled over there to survey the damage, making a note that when I was pulling into the powerstation little outcropping the car was fishtailing at the slightest push. At this point I saw the following:

Completely detached tire
Completely detached tire

Yes, what you see there is a tire whose treads were entirely detached from the rim. If you were to look slightly further back on the road, you’d actually see a little bit of a gouge where it started to dig in when I drove onto the outcropping. Thankfully, I didn’t damage the rim at all, so I was able to get new tires.

These Goodyear Assurance tires clearly had some problems, even though they looked brand new. I was very glad at this point for my CAA membership. I called CAA to make sure there wasn’t going to be any other issues. They sent a tow truck who reviewed the situation, declared that the axle and car were fine, and replaced the tire with a spare for me, letting me know about Kipling Tire and how to get there to replace my tires.

By the way, very pleased with Kipling Tire. They looked at my tires and immediately alerted me to the problem. All of my tires were from 2006… Over 5 years ago. Yes, because I didn’t know to check the date on the tires, I had been driving back and forth from North Bay with tires that were just on the brink of blowing. After a bit of discussion, we got new tires, and discovered that Kipling Tire gives you a nice coffee at a restaurant next door.

Which, I must say, also had some amazingly delicious dishes which I was able to enjoy (Bacon-Wrapped Dates, anyone?)

Long story short, lessons and thoughts learned from this whole endeavour:

  1. Take CAA driver training in whatever province you are in, and if they offer emergency maneuver training, do it. It is worth it, simply because it helps you remain calm in an emergency situation.
  2. Get CAA for your car. I know I could’ve changed the tire myself, but having a tow truck come and deal with it, at no charge, as well as tell me where I could go to get the servicing I need. Well, that was totally worth it.
  3. Check the dates of your tires if you buy a new car. My tires looked almost brand new. It was only when a tire technician took a very close look at them that he was able to let me know what happened. He even commented that he would’ve never guessed the age from how good the tires looked.
  4. If you need tire work, totally go to Kipling Tire and try out the restaurant next door. The chef is fantastic, and the service was very good. Highly recommend.
  5. If you blow out your tire, or have some emergency on the Gardiner, remain calm, and please do what I did, get off the road entirely. That way no one needs to deal with a 1 hour backup because a lane is blocked.

It was good stuff, Suzanne, my lovely wife is ok and I’m really thankful to everyone who was concerned about her and my safety. We have 4 brand new Michelin tires on my car and they are warrantied for a very long time, so I feel a lot more confident moving forward. All in all, a very exciting day.

Enhanced by Zemanta

Nuit Blanche badge recap

So, the code will come. I promise that.

I had a fun 24 hours just before Nuit Blanche. I had this crazy idea of taking the SoonCon badge which we  (@saeruaisu, @jjstautt & me) built and programmed in 2011 and seeing if I could up the ante a bit on it. Find a couple of analog inputs, and have my iPhone send data to it in order to allow me to send tweets and other live data to the badge.

@jjstautt did a great job soldering the heads onto the end of a repurposed pair of headphones (sans headphones) and I bought a splitter so I could listen to the data as I sent it to the badge to make sure the computer was transmitting correctly.

Badge connected to laptop for testing with splitter and earphones to hear signal. (dit dit dit dit)

Now, the theory behind how I would send signals was to use the right ear as a clock pulse of sorts and the left ear as the data line. When the right ear had a signal, it meant that the arduino should listen to the left until the right ears signal goes down, if the left goes on for a set period of time (is up and not just noise), then the signal is a 1 and reflect that in whatever code that exists in the arduino software.

This alone was a bit of a pain in the butt. Took me a while to find a sound that the arduino would recognize reliably, as well as get it to not hear noise as the right or left ear turning on. My code is awful, but when I github it you’ll see the generla methodology I used for it. Having a variable I could fiddle to determine the best time to wait for the signal to be marked as on for both ears.

Once I had this in place, I simply made it so the clock pulse would iterate through the screen turning on or off the lights as per the signal. Since the fastest pulse I could reliable send to the arduino and have it receive it was around 0.15s, I could really only get about 8 bits per second to the arduino. When painting the screen, this lead to a refresh rate of approximately 15 seconds. Nowhere near fast enough to simply drive the badge with the iPhone.

Regardless, I trudged forward and programmed in xcode (I will also post this on github) a simple application that would let me draw “HI :)” and “< 3” on the phone as well as a few simple test patterns. Once I was confident that the data channel was solid and, in general, fault free. I went to sleep Friday night. Leaving a wonderful video for everyone showing I had the basic proof of concept working. Yes in this video that is xCode’s iPhone simulator running the badgeduino.


iPhone / Arduino sound modem project “Hello World!”

The next day I decided to continue on with this project, but to get it so I can send tweets effectively to the arduino badge, I would need to be able to send letters to it and not simply draw on the screen one bit at a time.

So, I added a special command where the left ear would send sole signals without the right ear at all to tell the arduino to go into “COMMAND_MODE”. This meant that the next 4 bits would be a command to do something or switch to some other mode of receiving. 1111 meant go back to the start, and 1000 went to what I refer fondly as “TEXT_MODE”. Now, there was intended to be the possibility of sending more commands, but I hit a pain in the butt hiccup which meant my code was too big for the badgeduino.

TEXT_MODE worked as follows. Each letter was 6 bits. This allowed me to have every letter of the alphabet and ! , . @ # . I forgot about the numbers, but by the time I hardcoded all the letters into the arduino code I ran out of usable space on the badgeduino and couldn’t have added them if I wanted.

When 111111 was received by the badge, that meant the message was complete, and that it should start scrolling it across the screen. I programmed a text box + button into the xcode and it worked wonderfully. I could type a long message and it would send it, slowly, to the arduino and it would scroll nicely across the screen.

However, it was at this point that I started seeing bugs appear since I was actually using more space on the arduino for the badge than there was space to store, so the code didn’t quite respond correctly and it would simply crash. I’m betting with some work I could optimize the code and get more onto that board, but at this point it was 6:30 and I still wanted to get tweets working in the xCode.

For the next 1 1/2 hours, I realized how pitiful the documentation was for the newest version of xCode around Tweets. I thought I had something working, but by the time I uploaded it to the phone, it would crash everytime I tried to get tweets.

So I came up with a plan so we could all get going. I would copy and paste any tweets sent to @kjrose so they would scroll across the screen. I got a few people asking me to put things that scrolled across, but it wasn’t as spiffy as having it run live.

I think I’m going to play with it some more for next year. Maybe turn it into a distance detector for @saeruaisu’s and @jjstautt’s phones pointing in the direction they are in from my iPhone making sure we don’t get lost now that I have the communication working.

Perhaps next year we can get some more of these badgeduinos (or build a better one that can handle a bluetooth adaptor so I don’t have to use my fancy, but somewhat noisy channel over the speakers) and get a larger crowd with these plugged into their phones.

Regardless. It was good fun, and I will get the code up hopefully this week. I just want to add some comments so it’s not all entirely badly written in a rush code. (remember I only had 24 hours from when I first got started on the idea to NB.)

Have fun everyone. Oh, and if anyone knows where to get the badge design for the SoonCon 2011 badge, let me know. I’ve very tempted to upgrade it for next year.

KJR

Enhanced by Zemanta