Posts Tagged ‘learning’

h1

Nothing is ever wasted

August 19, 2013

I showed the thinking-of-you proof-of-concept webpage in the last post about this project. While functional, it was the definition of ugly. I want to make something lovely, that captures the charm of the project.

I have my sketch of what I want to do, it isn’t pretty (or legible to someone who isn’t me).

Web sketch

Here are the highlights:

  • I want the one file to be easily email-able.
  • One file to contain the three apparent pages: initial welcome, sending the (hug? wink? cheer?), and settings page to change name (and color).
  • The unused parts of the page shouldn’t be visible, the user should only see the welcome or normal page. The normal page should have a settings area that can be opened but is usually hidden.
  • The CSS and Javascript shouldn’t be in separate files. (One file, email, see first point.)
  • One file means no images. Off the shelf everything. But it should still look nice.
  • Colors are auto-assigned based on names but the user can still choose their color separately. This is a little complicated.
  • Color and name should be saved as a cookie so the user only does selection of these once.
  • Color and name should be changeable but that should be hidden until settings is selected on the normal page.
  • The color selected should be on the page itself: an icon should change color.

There is only one problem with all of that. It is way more web code than I know how to write. I started to solve this by reading Headfirst CSS and HTML. (I like the Headfirst series, they take longer to read but the information sticks a little better. The trade off is worth it, especially as they are amusing so I tend to keep reading.) I finished this book but I still didn’t know all I wanted to do, in particular the hidden parts of the page, the cookie, and showing the user’s color on the page.

Apparently, some of what I need to create is Javascript. I’m a little baffled as to the breakdown; HTML is the content and structure, CSS provides style, and Javascript does actions based on events. However, HTML5 can do actions based on events too. And none of them are particularly specific about how to deal with cookies, though Javascript seems the best for that so far. (Also Java has nothing to do with Javascript, they just named them that way to screw with my head.)

Yes, I program for a living but I don’t do this. And yes, I’ve made plenty of webpages, but they were either pure HTML (pre-2000) or done with a WYSIWYG editor. Plus, this is (secretly) an application masquerading as a webpage. Since all the cool kids are doing it, I thought it would be easy.

HTML5 (and all its friends) are living, changing standards. The books are out of date as soon as they are printed. Though, if you use a neat new feature, some browsers may not support it. (Goggle eyes in frustration of both never being right-according-to-the-spec and never knowing if I’m wrong-for-the-user’s-browser.)

This is strange to me… C99 (the C standard ratified in 1999) has been around long enough for me to know really well. And yet, Microsoft Visual Studio did not support it until last month. It isn’t that embedded systems move glacially slowly, the processors change quickly and new sensors are always coming out. I’m used to knowing and understanding the tricky parts of my language, it is bedrock to me. The shifting sands of web development are not giving me warm fuzzies.

On the other hand, I’m starting to get Agile development better now. This webpage will never be complete. It is getting better but there will always be something else I want to do. (For example, when you press the “Hug” button, it would be nice if the button changed color for about the same length of time that the widget’s LED will be on that color. That lets me have separate buttons for hug and wink since they’d have different times.) Even though the page isn’t perfect, I should put a line in the sand and say “this is pretty good”. That line would be easier to draw if I knew I could re-draw it in a week or two.

Thinking of you webpage v0

Here is the current version, as seen in Firefox. Some things to note:

  • This is the normal page, after the initial welcome page. My cookie is already set.
  • The turquoise heart is what my name colorizes to; other names would get a different color. I fix it so all colors have to be bright enough. (I’ll post the page next time so you can see your name’s assigned color.)

My list of short term improvements:

  • Hide settings area. I already mostly know how to do that (since I’ve already hidden the initial welcome area).
  • Fix cookie so it is not a session cookie but a permanent one. (Argh!)
  • Fix the color selector to look better in browsers that don’t support the color tag. (Chrome and Opera support color selection; Firefox and iPad do not, those will get a drop down list of colors. Right now you can type in a color but you have to guess what the HTML5 standard is thinking. Or write it in hex.)
  • Make hug and wink do separate things (this requires a little work on the Electric Imp widget as well). Or maybe remove one of them for now. Then I could change the name of the action every time you load the page. Hmm… move that to future features.
  • Do another pass of looking at the fonts and basic CSS to make it look more aesthetically pleasing.

My long term improvements are legion (and growing). They will probably change as I learn more about web development.

Wait a minute, why am I learning about web development? I’m a deeply embedded programmer.

I’ve been focused on getting this project done but I’m quite conscious of the fact that this information, this miniature education in web dev, would have been useful to me two years ago as I worked on an internet enabled fishbowl. (Note: it was not really a fishbowl but, to me, it was something that needed the internet as much as a fishbowl does.)

To connect the fishbowl to your home WiFi, you had to connect your computer (or phone) to the fishbowl’s WiFi network. The fishbowl would serve a page that would let you set your WiFi name (SSID) and password. Then the fishbowl would stop serving a webpage and go talk to the internet using the information you gave it. You’d switch your computer (or phone) and be able to talk to the fishbowl via the internet. Fun for all the fish.

But that webpage that the fishbowl would serve up? That came from the fishbowl’s miniature filesystem. And when we needed to make changes to it, the firmware team would go to the web dev team and ask for changes. They were always busy with the web (plus they spoke webese and we spoke embedded). Things took forever to get done. Well, that’s lame. Now, I could make those changes. I don’t think I’d change aesthetics but I’d be fine with 75% of the tweaks that needed doing.

So, if you think I’m learning web development for my thinking-of-you gadget, that is correct. But there is more to it than that. I hate the phrase “Internet of Things”, it oversells the connectivity that is coming. But whatever you call it, there will be more internet enabled fishbowls and now I can do even more for them.

Here fishy, fishy.

 

h1

Looking around furtively

November 15, 2012

I mentioned submitting conference proposals a few posts ago. Did I mention that I’m chairing a track? Ah, yes, well, that started today. It has been the most educational twenty minutes I’ve had in the last six months.

As track chair, I admit, I haven’t got a clue what I’m doing. I’ll get instructions tomorrow or Monday.  To check my ID, I logged into the review portal where I can see all the submissions waiting for my blessing. I’m to give them 1-5 stars and write a comment about the proposal. Easy-peasy.

One submitter helpfully used my track to submit a test proposal (where he copied in the information that was supposed to be filled in, that is under Submitter Comments, he wrote, Comments – 800 characters max). This should make it startlingly easy for me to put this proposal in my “review complete” list.

However, looking at the other ones, I’m struck by the information here. The session about something that sounds super nifty, exactly what I would want to see myself. The session by people who are clearly just looking for a really long commercial. The session by these strange people who want to have a chat in front of alive audience (oh, heck, I’m on that proposal, I’ll have to ask what to do with scoring myself).

More than that, I’m struck by the amount of work that went into some proposals. But not others.

Shifting topics for a second, whenever I participate in science fair judging, I talk to friends who are parents and gush about how they really, really need to sign up to judge if they ever want their child to win. It isn’t about gaming the system but about understanding what is happening on the other side of the curtain. What do the science fair judges look for, how can they look at two hundred projects in two hours and get to an award, and what pieces matter (and what pieces don’t)?

Back to the conference proposals. I suddenly get it. I understand why last year I got a very odd phone call about the session I wanted to put on because it didn’t fit the mold of the rest of the proposals (moldiness in some cases).

I’ve played chess with myself (heck, I learned the undefeatable tic-tac-toe strategy by playing against myself, it was for, um, kindergarten research, yeah, not because I didn’t have any friends, um, yeah). I strongly encourage new interviewees to practice interviewing each other so they can see what the other side of the table sees.

But I’ve never applied it to conference proposals. Duh. I am happy to be able to see what others are doing, to understand the rules. Usually, I look around furtively, trying to figure out if I’m doing this right by following along and hoping I’m blending so no one notices if I’m out of step.

Blending

Let me see if I can sum up my findings… remember this is the twenty minute education:

  • There are a lot of proposals. Title really counts. Funny is great. Funny and informative will get you two stars all by itself.
  • Scatter your submissions around the conference tracks. There are four proposals by one guy. When I dug in and read his bio, he’s just a guy. He’s not going to get all four sessions because I want some variety in my track.
  • You aren’t being judged alone, you are being judged against other people. It isn’t a good or bad call, it is a better or worse judgement. That can work in your favor but it also means you shouldn’t take it personally if your proposal gets axed.
  • More information isn’t necessarily better. At this point, a commercial for your session is more important than a dissertation. I’m happy to see you have a dissertation because it means you thought about it. But I don’t want to have to read it before figuring out if you are in the correct track.
  • Realize the proposal is going to someone, a human who is tired and busy and doing this between other activities. You’ve been there, write your proposal for the Friday-afternoon you. Don’t assume too much knowledge and write something nice in the comments, even if it is “Thanks for your consideration, I hope you enjoy this proposal. If not, please let me know what you’d like for next year.”

Well, I’ve got things to read. I should get back to that. I suspect it will be even more educational over the next week or so.

 

h1

I have an idea

August 13, 2012

About a decade ago, I had the idea to create a data logger, it would write data from a serial port to a USB thumb drive. I'd worked on a lot of devices that had serial output for their main interface or for debugging purposes. Normally, to get data, I'd have to hook a computer up to the gadget, hoping that the laptop batteries didn't die, that Windows didn't go to sleep, and that I didn't need to timestamp anything to greater than 4ms granularity (Window limitation). The ability to store days or weeks of data would be fabulous.

I chose the processor because it had the bare minimum I needed and a USB device. I got a wonderful and generous EE to help me choose the other components and make a schematic. I paid for it to get laid out, ordered all the parts, built kits, got boards fabbed, bought cases, worked with a model shop to get the cases cut for the boards. I learned a whole heck of a lot. The boards came in and came up ok but the vendor's USB library worked with only one or two thumb drives. I worked with the vendor to expand their library. Then I got a full time position and the frustrations of dealing with the vendor… well, I just finally got rid of the boards and cases recently (though not the completed one, there on the left of the pic). About two years ago, someone else built a data logger, one that I could just buy and it would do what I wanted.

About six years ago, I saw a product design contest and entered it with a neat new idea. I wanted microcontrolled Christmas lights, ones that I could put up and never take down because they'd change color to match the upcoming holiday. With a marketing VP friend, I wrote a complete business plan (summary: holiday decoration is a huge market). The software was easy to explain and the market was there but the hardware was difficult. The way the lights were to be controlled led them to have an unwieldy cable, making them expensive and essentially unmarketable.

Two years ago, GE came out with individually addressable LED strands (on the right in the pic). A hacker worked out the control protocol shortly thereafter. Anyone who wants to make my holiday lighting needs the $50-80 light strand, a $30 Arduino controller, and freely available program. Ok, so it is still expensive but it isn't impossible anymore. After I (and another wonderful EE) presented how to put this together at this spring's Embedded Systems Conference, I was accosted by an engineer for a lighting company asking if I had patented the idea (no, I just wanted someone to build it for me, I didn't want to block development). After a bit of searching, a generous patent agent friend found that Philips had patented “LED as applied to…” well, anything… including the “tidy bowl” application.

About three, maybe four, years ago, I got an idea for a video game called Shoe Shopping Adventure. The player would make life choices (i.e. career, friends vs. work) and that would translate into their need for different varieties of shoes, their available funds, and their time allotted for shopping. I learned a bit about iPhone programming, drawing shoes, and designing games. I tried to get Zappos involved because I was thinking that one way to avoid doing a lot of UI design is to use actual pictures of actual shoes. And as a revenue source, people who bought shoes in the game might want to see those same shoes for themselves later. Anyway, I only bugged one software friend and she mostly just had to listen to me babble one afternoon. Well, and my husband who has been supportive through all of these. So far, no one has made this game for me (yet) but I stopped development because it is a heck of a lot of work (and because I started writing Making Embedded Systems).

It isn't that I don't finish things. I do. I mean, I wrote a book (two, actually!). And I've shipped tens of products. But those have been for other people, for the companies that I've been employed by. The book was for myself but I had some external impetus there.

So it is with some trepidation that I say, once again, I have an idea. I wonder if I'm ready. And what I'll learn.

 

h1

Universities of the future

June 11, 2012

Going to college is expensive, really hideously expensive. And the price keeps rising. Student mortgage themselves in hopes of future income. And if they choose a major that doesn’t pay off, well, too bad, you still have to pay the loans

I don’t think this trend can continue. I’m excited (amazed, thrilled) by the online universities. Some of these are traditional universities offering their course material for free, often without a grade. Standford’s Machine Learning course by Professor Ng was awesome, I think every week I learned something that I applied to my job’s gnarly data analysis problem. And last fall, Stanford opened its Artificial Intelligence class for free to all comers. More than a hundred thousand people took them up on it. A hundred thousand people taking an upper level CS course. Wow!

The professor (Sebastian Thrun) touched all those minds. Amazing. And apparently addictive as he went off to co-found a startup to teach the masses. Udacity offers courses free to anyone and they range from intro to CS (no programming required) to building a robotic car. And the now-almost-legendary AI course is there. They even give you a grade (well, certificate with different levels of distinction).

Udacity isn’t alone. ITunes U has just a slew of videos and course materials on every topic under the sun. The photography ones are worth watching just for the pictures. And  Courseara has partnered with Stanford, Princeton, Penn and U of Michigan to offer an amazing selection.

See, every time someone makes a better course on topic X, you could watch that one instead. You could get the best education money can buy (and never have a boring, droning professor whose lecture leaves the material all in a muddle in your head). And it would be free.

Hey, I’m flabbergasted by that. I remember the day I paid off my student loans, what huge weight it was off my shoulders. Why would you pay to go to college when you could just suck this all down for free? For free!!!!!!!!!

How can it stay free? Well, I heard Udacity’s strategy yesterday (but I don’t know if it was said in confidence so you can search online to find it out yourself). It was interesting. I don’t know if it was viable but close enough that, yes, they can probably stay free to the student. Which is awesome (amazing, thrilling, exciting).

Grading become a problem but everyone is working on that. At Udacity, they build courses that have exams and homework that can be automatically graded (with some teaching assistant involvement). For many of the sciences, points can be based on the right answer (though it leaves style and partial credit to be solved).

Let’s say they fix that; natural language processing is getting better. Computers can read essays already, they don’t have too far to go to grade them. And multiple choice is evil but easy to grade.

Once you have grades, the next step is accreditation. Colleges already have it so they know how to do it. Some places may not go down that road, instead offering non-accredited transcripts. As long as they maintain an excellent reputation, it will work. For awhile. And then they’ll get accredited though maybe not by the body that does it now.

So, sweeping aside the problems that University of Phoenix has already surmounted, let’s think about where we go from here. Online colleges don’t have to turn anyone away to keep class sizes small. They can scale. Infinitely.

But what about labs? Physically doing the work in science? And then there is the issue that one of the main points to college is meeting everyone else in your college. The people I met in college are still my best friends, the people I trust to “get me” when no one else does. And I’ve heard the main point of business school is making contacts to help you work in business.

(Note: wild prognostication ahead.)

I think that college will go mostly online as the only affordable choice. And then students will realize they need each other, beyond the forums, in person. So they’ll co-locate. But not to an expensive university town, instead to an apartment in some cheap place where they can find part time jobs. And then, when four people are living nearby, a few more will come because is makes sense. And then a few more, until the whole building is mostly college students, studying together, helping each other, sharing physical space and physical materials.

Their degree will be from Accredited Online University  with a note that the student was from Apartment Building 12. Some of the apartments will be frat houses. Some will have chem labs in the basement. (Oh, save us from those that are both.) And some people won’t have that, they won’t afford the apartment or won’t get in (will you have to send your SAT scores so you can live with these people?). That’s ok, though it may be like going to a lower tier college so they’ll need to get good marks. Or maybe the students will take online courses from a dormitory at a traditional college as they augment that degree with courses that aren’t taught locally (or at the time needed or are taught poorly).

One of the tenets of society right now is that information wants to be free. If you are older than 35, can you imagine having Wikipedia in high school? I’m constantly stunned by the depth and breadth of what I can find online. Adding courses, designed to help people learn, well, now we are getting somewhere awesome. It isn’t just information, it is education.

Another tenet is that of self organization. Flash mobs are amusing; SOPA legislation squashing was more amazing. They used to call it grassroots. Now they call it the internet.

So, I think the universities of the future will be partially self organized. Where the senior, getting ready for a job, tells his sophomore neighbor that if she takes Penn’s archaeology course before Stanford’s paleobiology, it will make more sense. Since her transcript is going to be a set of courses and grades, well, her “degree” comes from when she’s ready to get a job or pass a certification exam. He does this because he wants his apartment building to stay ranked and maybe because he gets some “mentoring score”.

I don’t have it all planned out. But if I start buying apartment buildings, well, you’ll know why.

 

h1

Living American History

April 27, 2012

My knowledge of history and geography are faintly embarrassing in their lack. I could blame is on the California public school system but, since my science and math knowledge exceeds normal, I suspect the fault is all me.

To me, history is just facts and figures. Occasionally, it is a story (Molly Pitcher!) but I don’t know if she was real or just a fable of like that of Washington’s cherry tree. I love stories but when truth and fiction are interwoven in grade school, I don’t know how to sort my adult knowledge; it is a safer assumption that I know very little. And I haven’t really cared before now.

I think I would have been more interested in history growing up in Virginia or Massachusetts. Things happened here. You can see where people fought and died. Looking at these green hills, it is easier to understand why they fought so hard.

We are passing many Civil War battlegrounds today. I remember that it was a bloody, terrible war either about slavery or states’ rights. I can name some battle sites but only a handful. I can name some of the generals but I’m not sure which fought on which side (the horror if I get one wrong will keep me quiet).

Yesterday, we finished listening to an audio book called Wordy Shipmates by Sarah Vowell. It is a history of the Puritans in New England and the founding of Boston. I know we are going to see many of the places mentioned. I like knowing why the places are important and how they are connected, how the threads weave through the founding of the United States on through to the present day.

I don’t learn things, really remember them, unless they are woven into the other information in my head, ideally integrated with knowledge that I care about in some other way.

One Virginian license plate reported that then colony was founded in 1607. (For comparison, our rental car’s license plate has the California DMV website.) I don’t fathom the concept of “we’ve been here for four centuries”. In California, there are places of business with signs that say, “proudly serving the community since 2001”. I feel a little history-less both from lack of education and from living in a place where the history can be summarized by “Look a mission! And now we have Hollywood!”.

Today, as we talked about the Civil War (I wondered what battlegrounds we’d see, C pointed out we’d started traveling through historic sites since Tennessee, he’d even pointed out Shiloh as we passed. When he did so, I thought of beagles. See?)… Where was I? Oh, C and I talked about the Civil War and he said Washington DC was awfully far south to be the capital of the north, less than ten miles from Civil War battles. He speculated on how far north the Confederacy reached. With no help from me, he came up with Gettysburg.

Oh! I’ve heard of Gettysburg! Big, awful battle, that was a turning point of the war (in favor of the Union) And the Lincoln spoke after, “Four score and seven years ago, our forefathers brought forth…”.

Looking it up on on Wikipedia, the battle lasted for three days and 50,000 died. Jeez, that is a lot of dead young men. And the speech happened months later, commemirating the dead.

Being here, where things happened, makes me curious, it makes me go to Wikipedia and pick up books on history. I suspect I’ll learn more on this trip that in AP American History senior year in high school. And it will stick because I’m interested this time.

After we finished the Wordy Shipmates audio book, we started the sci fi adventure Ready Player One by Ernest Cline. It is a love poem to the ’80s and it is awesome. We’ ve both already read it but the audio version is just perfect as it is read by Wil Wheaton. Anyway, in the book, much of the time is spent in virtual reality. The narrator talks of going to school where astronomy is taught in holodeck-like simulations. One of the example included astronomy lessons taught on then moons of Jupiter.

That sort of immersion is the holy grail of education. I’m not the only one who learns best when curiosity is the motivating factor (instead of exams).

Right now, I’m excited about American history and geography. Because I’m here, where I can attach the physical world to new information.