Scott Hanselman

Hanselminutes Podcasts 130 - JavaScript gets Faster: Brendan Eich, CTO of Mozilla Corporation and Creator of JavaScript

September 21, 2008 Comment on this post [8] Posted in ASP.NET | ASP.NET MVC | Javascript | Podcast
Sponsored By

ImageBEich.jpg My one-hundred-and-thirtieth podcast is up. I had the pleasure of talking to Brendan Eich about JavaScript this week. Brendan created JavaScript lo these many years ago, and lately his team has been working to make JavaScript even faster with TraceMonkey, their next step in their JavaScript engine. It's an exciting time for JavaScript as it approaches "C" speeds. I chat with Brendan in this episode about where he thinks JavaScript is headed. What does the rise of JavaScript mean to Flash, Silverlight and RIAs in general? We also talk about how TraceMonkey works and how much faster it can get.

Brendan is responsible for architecture and the technical direction of Mozilla. He is charged with authorizing module owners, owning architectural issues of the source base and writing the roadmapthat outlines the direction of the Mozilla project.

Brendan created JavaScript, did the work through Navigator 4.0, and helped carry it through international standardization. Before Netscape, he wrote operating system and network code for SGI; and at MicroUnity, wrote micro-kernel and DSP code, and did the first MIPS R4K port of gcc, the GNU C compiler.

One other change, this week a large number of the questions of Brendan came directly from you, the listener, via Twitter! This is a new thing I'm trying and I really feel it made for a better show and I thank you for it! I'm on Twitter at http://www.twitter.com/shanselman and you can read more about Twitter in my post on Twitter: The Uselessfulness of Micro-blogging if you want to jump in and "follow me." I encourage you to find a Twitter Client that works for you and give it a try.

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes 

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show!

Building quality software is never easy. It requires skills and imagination. We cannot promise to improve your skills, but when it comes to User Interface, we can provide the building blocks to take your application a step closer to your imagination. Explore the leading UI suites for ASP.NET and Windows Forms. Enjoy the versatility of our new-generation Reporting Tool. Dive into our online community. Visit www.telerik.com.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?

Technorati Tags: ,,

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Working Remotely from Home, Telepresence and Video Conferencing: One Year Later

September 20, 2008 Comment on this post [24] Posted in Microsoft | Musings | Remote Work
Sponsored By

Microsoft RoundTable Had my one year review at work last week. I met with my boss for an hour and we talked about what I was doing well and what I was doing poorly. I talk to him face to face a few times a week using video conferencing. I also have a mentor at Microsoft who helps me navigate the maze. He didn't have a web camera so I just had one sent to him so that it showed up on his desk one morning. I probably do two or three videos calls per day now.

LiveMeeting - Big Conference Room Meetings

I had a meeting this morning with six manager-types in a conference room and I finally felt like I was contributing and could be heard. I hate doing conference calls these days. You can't be heard, you're constantly asking "who is speaking?"

In the meeting today we used a Microsoft Roundtable for the meeting. In the last ten meetings I've asked all ten organizers to book a room with a Roundtable. Only two have. The belief is that it's hard to hook up, "I've never used it before," or just "I'll see what can we can do," then nothing.

They are SO easy to use. Literally you plug it into your laptop and start a LiveMeeting. That's it. The drivers were already included with Live Meeting so there's literally no setup time.

LiveMeeting with a Panorama view

You can't believe (or maybe you can) how much better the experience is for me when we use this. The Roundtable stitches together 5 cameras at 15fps into a 1056x144 panorama that covers a full 360 degrees. It also has a 640x480 square "active speaker" video. The Roundtable knows where people are in the room physically based on sound and will automatically create a square video view (as if each person had their own personal camera) and will 'cut' between them keeping the active speaker in view. This totally removes the "who's speaking?" factor from meetings.

I'm going to continue to ask anyone who wants to include me in a meeting to book a room with a Roundtable. We've got at least one on each floor, sometimes two, in most buildings.

Chat/IM

Microsoft's got internal chat through Office Communicator which I use to talk to all sorts of folks when email would be "too much." Communicator also acts as an global address book that lets me not only find out if someone is at their desk, but also when their next free block of time is as it's integrated into Exchange/Outlook. It also lets you "tag" someone if their presence changes - like if they've returned to their office.

I also use Communicator to make quick calls to folks in the office. If people configure it correctly, it'll call their desk phones and they won't know I'm calling from my PC.

Distributed Ad-Hoc Meetings

ooVoo Video ChatOne of the things that Live Meeting doesn't do easily is quick meetings using video with a bunch of folks that are located all over. For this I tend to use ooVoo. It's recently added 640x480 "High Quality" calls and unlike Skype, you don't need a Logitech special camera to do it. There's rumor (and a disabled menu item) that implies ooVoo will be going even higher-res, perhaps HD?

OoVoo does great through firewalls and most importantly lets me pull in folks from all over, a lot like iChat for the Mac. In fact, ooVoo is also cross-platform.

Screen Sharing

Often I've got to show my screen to someone I'm talking to. Live Meeting works for this, but it's a little heavy. I use both SharedView and CrossLoop, in that order. If SharedView fails to make it through the firewall (rarely happens) then I'll use CrossLoop. SharedView has the benefit that it supports sharing to up to 16 people and they just log in with their Live ID. CrossLoop is based on VNC and is a little slower to react, but I've never seen it not work. If you pay attention to the UI in CrossLoop and click "skip" at the right times, you can use it without creating an account. CrossLoop is great for fixing your parent's computer also.

Future: Putting Feet on my Web Cam - Telepresence Robots?

RoboDynamics ConsoleChris Sells (who also works remotely) and I have been brainstorming and prototyping ideas for smarter telepresence. Chris really wants a high-res camera with an optical zoom so he can see whiteboards.

Chris would be happy "without feet." He would like a computer/device/system that someone could pick up and take to a meeting - basically his disembodied virtual head - so he could participate in meetings.

I'd really like be able to "walk" into someone's office. Just pop in to see if they are there. I want to get involved in hallway conversations.

RoboDynamics RobotChris and I had the opportunity to remotely drive/beta-test a Telepresence robot from RoboDynamics. They've built their software on .NET 3.0 and the robot runs XP.

It was pretty sweet. They've got a 26x Optical Zoom and pan/tilt/zoom on the camera. There's a screen for your "head" so that folks can recognize you as you wander around. I was able to walk all over their office. The control console includes sonar and bumpers so when I got close to bumping into the fridge in their office kitchen I could "see" the distance to the fridge and avoid it.

There's a lot to think about when it comes to letting a virtual beastie into your company. Is it on the network? Which network? What access? Who is it logged in as? What if it's stolen?

As I understand it, RoboDynamics is looking to raise another round of funding so if you know someone, give them a call. Their stuff is REALLY impressive and cleanly implemented. There's video of the robot in action below.

Microsoft's doing a lot around Robotics and Robotics Research. Hopefully there will be a real telepresence solution soon for remote workers.  Maybe some Microsoftie will read this blog and let me beta test a robot or future telepresence platform...hint hint.

Future: Big Screen Cubical Portal?

prod_case_study0900aecd8054c81b-2Cisco has a telepresence platform that's pretty slick. Basically it's a really high res (1080p), really high framerate, low compression, 65-inch flat-screen or series of flat-screens.

If I could have an office with one of these screens set up, then folks could just pop by my office to say Hi. I could have a "portal" between my house and work up on campus in Redmond.

I thought I might be able to cobble something together with Skype or Office Communicator, maybe LiveMeeting, and some automation APIs. I could get a large monitor from Costco, maybe a no-name-brand 42" screen.

However, the bosses nixed buying the screens. It's funny, it costs about $250 to fly me up there, plus maybe $200 for a few nights in a hotel. If I went up just four times, that would be enough to by two 42" LCDs. Then I could just get a few PCs and I'd be in business.

The things that's been taking me the most time is:

  • Equipment: Setting up people who don't have these tools (software, webcams)
  • Patience: Convincing people that setting these things up are the ONLY way I can effectively do my job.

I am absolutely convinced that video conferencing builds relationships almost as much as showing up in person. If you've got the bandwidth to spare, talking to someone in F2F (face to face) via webcam conveys way more information than a phone call. Also, using a 640x480 webcam and software is a breath of fresh air when compared to the video conferencing that you may have used in the past. Another few years and we'll have clear 720p or greater, commodity video conferencing.

Do you work from home? What tools to you use to manage your remote life? What tools would you like to use?

Related Posts

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Back To Basics: Algorithms and Going Back To Virtual School

September 17, 2008 Comment on this post [18] Posted in Back to Basics | Learning .NET
Sponsored By

imageBefore I graduated from College/University I was convinced that school was for lamers. Then I graduated from school and decided that NOT going to school was for lamers. That shows you what a wishy-washy person *I* am. ;) School is for some folks and not for others. Wear the shoe that fits you best.

Totally random retrospective self-focused aside: I graduated from OIT with a BS in Software Engineering in 2003. Yes, that's 2003. It took me only 11 years to get a 4-year degree. ;)
I've been a programmer since 1992, so about 16 years, but 11 of those I was going to school at night. Basically I worked 9a-5p and went to school 6p-10p. For the first few years I took a lot of courses, but then work happened and I tapered off to one course a term. This was fine for a long time but then credits started falling off the other side. Basically courses I took 7+ years before became obsolete. I actually lived through four Deans while I was there. I made a deal with one of them that if I taught .NET I could keep my credits longer. That let me keep taking courses while working the whole time. The result took 11 years and two schools. But now I can just say, "I've got my degree and just not mention that I got it 5 years ago. Don't tell. Lots of experience sounds better than "slow learner at school."

Whether you went to school or are self-taught, even though the Internet was originally more a place to put academic papers than a place to meet "friends", there's a LOT more really good academic information on the web than I remember. It also takes more interesting forms than just pages of class syllabi. Here's the syllabus for the CST407 class I taught in Fall of 2003.

You can learn via Googling, you can learn via Book Readin' but you can also setup a more focused "curriculum" for yourself. I know a lot of devs that I admire that do this. They'll pick a discipline, area, language, whatever, and create a mini-class for themselves. Actually that much-teased "Learn Whatever in 24 Hours" books have more structure in this way than most programming books.

These days there's all the good content at iTunesU from colleges that didn't return my calls back in my High School years. There's even 1986 video of the legendary MIT lectures "Structure and Interpretation of Computer Programs" with Hal Abelson and Gerald Jay Sussman. There's MIT's excellent OpenCourseWare Videos of the Introduction to Algorithms class up on Google Video.

Professors are creating better and better tools to visualize things, like this amazing JavaScript-based page on "Animated Sorting Algorithms" by David R. Martin. It's utterly brilliant, not just because it's a Visualizer, but because the code is in Javascript, so you're seeing it happen. It's impressive like when you're playing a video game and you discover a particularly amazing cut-scene isn't prerendered, it's rendered in-engine. (UPDATE: And it would be impressive if it were true. I'm crushed. They ARE prerendered. Well, still. It's cool. Thanks, Adam!)

I recently stumbled on Massimo Di Pierro's site and his code. He's got a CSC309/321 class that he teaches at DePaul University and has a great Python application called "Algorithms Animator." His slides on basic OOP in C++ are excellent but the Algorithms Animator is really cool. There's a video of Algorithms Animator running over at Vimeo.

He's got all sorts of common algorithms, sorts, traversals, searches, etc. The algorithms are all in src/csc321algorithms.py, like this simple binary tree example.

def isNullTree(tree):
if tree is None: return true
if len(tree)==0: return true
return false

rootnode=0
leftchild=1
rightchild=2

def BinaryTree(node,left=[],right=[]):
list=[node,left,right]
if not isNullTree(left):
left[rootnode].parent=list
if not isNullTree(right):
right[rootnode].parent=list
return list

There's also more complex ones like a Huffman encoding example. But it's not the source code that interesting, although it is. The syllabus is really detailed, with the kind of detail you really only see in academia:

Huffman Encoding Definition: A minimal variable-length character encoding based on the frequency of each character. First, each character becomes a trivial tree, with the character as the only node. The character's frequency is the tree's frequency. The two trees with the least frequencies are joined with a new root which is assigned the sum of their frequencies. This is repeated until all characters are in one tree. One code bit represents each level. Thus more frequent characters are near the root and are encoded with few bits, and rare characters are far from the root and are encoded with many bits.

The Program accepts the text to be compresses as input and produces a text report showing compression rules and compressed text. The Program also shows in an animation how the Huffman tree is built.

Huffman encoding provides an example of Greedy strategy.

What's cool about this guy's way of teaching algorithms is that his app uses animation to show the algorithm happening step by step.

For example, if I use Huffman Encoding on the string "Scott Hanselman," here's Frame 0 of the animation.

"First, each character becomes a trivial tree, with the character as the only node."

Huffman Encoding Tree

Here's Frame 15 as the the character's frequencies are counted and the tree is in the process of being built.

"One code bit represents each level. Thus more frequent characters are near the root and are encoded with few bits, and rare characters are far from the root and are encoded with many bits."

Huffman Encoding Tree (2)

Here's Frame 22 as the tree has been built out and the bit values are applied.

Huffman Encoding Tree (3)

...and the result is in the image below showing the compression rules/map and the final bits.

image

I'm not sure about you, but I'm not able to bust out a QuickSort on a whiteboard under pressure anymore (I'm old).  I found this guy's stuff to be a great algorithms refresher, and using the little Python app to explore them made it very enjoyable. I wish we had this kind of stuff when I was in school. It's kind of nice to pretend I'm back in an Algorithms class and tickle the neurons that haven't fired in a while.

Related Posts

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Baby Sign Language 2.0

September 16, 2008 Comment on this post [27] Posted in Musings
Sponsored By

UPDATE: Check out http://www.babysignlanguage.com for more info on Babies and Sign Language!

The "2.0" in the post title there refers to Baby #2 who is pushing 9 months now. Insert gratuitous baby footage here (It's all good, but the best bit is just after 1:23):

He's a clever little dude, I like to think. One of the things that we did with Baby #1 (now Toddler of Pure Evil©) was that we taught him Baby Sign Language. I LOVE talking to parents about the benefits of teaching their kids a foreign language and American Sign Language is a full fledged foreign language. It just happens to be one that babies can learn before they can speak.

Teaching the first boy Sign was a radical success for our little family, so we're starting it up with 2.0. We're teaching him American Sign Language.

When?

How much earlier? Anywhere from 6 months old to one year, a baby can clearly make their intent known with Sign. Now, I'm not talking about trying to push a baby to be "gifted" or to get a baby to do anything that isn't relaxed and natural. I'm not promoting trying to teach 2 year olds to take college entrance exams.

Why?

What I am a huge fan of is taking the communication you've already got with your baby* and elevating the grunts and points that are primitive, invented signs, and replacing them with a formalized system of signs that have been used for years by deaf folks.

*(in the range between 6 months and whenever they start really talking...between 18 mos and 2 years or whatever)

With Baby Sign Language you start by introducing "Needs-Based" Signs like Food, Milk, Mommy and start using them all the time. Every time you say food out loud, you also sign food. Then you start introducing repetitive action signs. Those are signs for stuff that happen all the time like Sleep or seeing Grandpa.

What a Weird Country

A lot of folks I meet while (or from) overseas think this is insane. A German woman told me once "I know exactly what my baby wants." And that's cool. However, sometimes it's nice to hear directly from the child.

The idea is that the main reason babies cry is that their needs aren't being met. I'm hungry. I'm tired. I want that ball. We spend two years or more with these babies pointing and grunting at stuff trying to get their point across.

Also, "I'm hungry" is pretty vague. It's a joy to see a 14 month old sign "Want Grapes" then calm down when they get exactly what they want. It might sound weird, but it can't hurt to try! It's becoming more and more popular in the States and it's because it works and it enhances my relationship with my kids very early on.

How Much Sign Can They Learn?

It's a complete language and many successful Deaf folks would say "all of it." They'll learn as much as you can throw at them. However, I suggest picking 3-5 signs from about 6 months old until they've mastered them. Then, start adding a sign a week. Then a sign a day. Then, once you realize your child is smarter quicker to absorb then you are, they're probably going to start speaking soon anyway.

Boy #1 ended up with something like 80 signs (lots of Animals) and then just started talking one day.

Won't It Slow Their Development?

In my experience, nope. If anything, it gives them a nice little bump ahead, but that's not the point of doing it. Our two year old is speaking nicely and has happily forgotten his signs as soon as he figured it that speaking was easier for him. Now, fast forward a bit, he's re-learning it and signing (and speaking) to his little brother.

Check out my (now series of) posts on Baby Sign Language:

I highly recommend the Baby Signing Time DVDs and CDs. Now, forgive me as I compile a few small summaries from those previous posts:

What do you need to do to start signing?

  • Check your local community center. They often offer Baby Sign Language classes. We took classes before Z was born, and when he was 6 months old.
  • If Baby Sign Language is unusual or unused in your country, either find some Deaf Folks and learn your country's specific Sign Language, or use ASL (American Sign Language). The trick is to be consistent and have an illustrated dictionary to refer to.
  • Stick with it. Don't give up. We started when he was six months old and signed every day without a single clear response until he was a year old. We nearly quit a dozen times before that.
    • Then one day he signed "light" as clear as day in his bedroom. We turned on the light and our sonlit up with a small as wide as his face. That's when we connected with him. I'm not talking about the standard Mom/Dad/Baby we-love-you connection. I'm talking about the baby's opinion matters kind of connection.
  • Get picture books, lots of them, and learn the signs for the animals. I highly recommend the Priddy Books series of books for baby.
    • Learn the signs for animals and common objects and use them every time you see one out in the world. We went for a walk on the Portland Waterfront today and our son was signing bird anddog and plane and sharing those discoveries with us. It's great when he sees something interesting and points at it, but it's something different when he signs about something we didn't see.
  • Pay Attention and prepare for the unexpected.
    • Example: The baby was frantically signing ball recently, gesturing wildly at a dog. We tried to correct him..."No no sweetie, that's a dog, not a ball." The dog lifted it's head and we saw that the dog was in fact playing with a ball that we hadn't seen.

Testimonials

Many of my friends and family have taught their kids sign. For many, including all the non-Americans, they were teased by family and friends - especially concerned mother's-in-law. But they stuck with it. My friend Daniel "Kzu" Cazzulino had a great experience with Baby Sign Language in Argentina:

Just like Scott felt, it's not just a matter of teaching her something to make her "smarter" early on. There's a new kind of connection that you can make with your baby. Aylen's face shines when she sees that we can listen to her needs and help her. She no longer cries when she's hungry or thirsty, or when she wants to take a bath. That's huge."

Craig Andera is also huge Baby Signing Fan. He had to have patience early on though:

Just like Scott, it was initially like signing to a wall. She didn't seem to care, and she certainly didn't sign back. But I knew from my brother that it was just a matter of time, and sure enough, at about eight months, Ellen was able to mime the sign back to us. It's pretty amazing to get any communication whatsoever (other than smiling and crying) from an eight-month-old.

It's moving slowly, but our 9 month old (after flat ignoring our signs and smiling for the last 3 months straight) now asks for More Food quite clearly. I look forward to the next year that I get to "talk" to him as I patiently wait for him to actually start talking.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Hanselminutes Podcasts 128 and 129 - Ajax with Scott Cate and JavaScript with Bertrand Le Roy

September 16, 2008 Comment on this post [3] Posted in ASP.NET | Javascript | Podcast
Sponsored By

Ajax LogoMy one-hundred-and-twenty-eighth and one-hundred-and-twenty-ninth podcasts are up. Both are on JavaScript and each has a very different perspective. I also talked to jQuery creator John Resig a few weeks ago so check that out. Watch for a possible upcoming podcast with the creator of JavaScript, Brendan Eich, soonish. I'm trying to give JavaScript pretty full coverage. If anyone wants to introduce me to Douglas Crockford, please do so. ;)

Anyway, the first show is "Object Oriented AJAX with Scott Cate." Surprisingly, to me, a number of folks didn't agree with Scott's perspective and some even felt he "got it all wrong." However, Scott's go a very successful, very Javascript heavy product, so he must be doing something right. Scott's into MS-AJAX and is even a fan of the UpdatePanel. Apparently at this point some listeners cried. I love a pragmatist.

The second show is "Thoughts on Javascript with Bertrand Le Roy." Bertrand is the PM for MS-AJAX, and a JavaScript Ninja. We chat about where he thinks Javascript is going and how fast it'll really get. He also re-explains JavaScript's prototype model and how OOP works in a JS world. We finish up with a good understanding on how BLR's new JavaScript Templating system (preview) will let me write more Ajax-using sites with less JavaScript and more declarative HTML.

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show.

Telerik's new stuff is pretty sweet, check out the ONLINE DEMO of their new ASP.NET AJAX suite. RadGrid handles sorting, filtering, and paging of hundreds of thousands of records in milliseconds, and the RadEditor loads up to 4 times faster and the navigation controls now support binding to web services on the client.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.