Wednesday, November 22, 2006

Baby Sign Language

I'm a big fan of Scott Hanselman. Aside from his many useful technical posts, I enjoy reading his posts about his son, Zenzo. That's due at least in part to the fact that Zenzo is right around a year younger than my daughter Ellen, so hearing about Zenzo learning to crawl, walk, or whatever brings me back to when Ellen was passing the same milestones.

 

It was with particular interest, however, that I read Scott's latest Zenzo post, entitled "Baby Sign Language". I was going to leave a comment on his blog, but frankly I just don't like comments. It's a subject for another post, but essentially I find that I just never go back to the site after I leave a comment - I've tried stuff like CoComment, but nothing has really been natural and easy. So I figured I'd just post here instead - the trackback is generated automatically, which is better than nothing.

 

But to the subject at hand: Baby Sign Language. We did this with Ellen. I'm a HUGE fan of it. But I knew I would be - I have a brother who is thirteen years younger than me, so I can clearly remember him as a baby. He has Down Syndrome, so he was unable to speak at all until he was nearly three. It was just too difficult a skill. My parents got the brilliant idea of teaching him ASL, and we were all signing simple signs with him for probably a year before he could communicate verbally. It was great - really helped him express himself.

 

Given my experience, I was pretty determined to teach Ellen sign language as well. Alice (my wife) was totally open to the idea (indeed, she probably would have done it regardless of whether I'd be interested) so we started with Ellen when she was something like six months old. For us, the primary sign was for "milk", which we'd show her every time she got fed.

 

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.

 

Of course, she stopped signing shortly thereafter for a good six weeks, but once she started again, there was no stopping her. She probably knew about ten signs ("milk", "eat", "more", etc.) before she could speak her first word ("ball"), and she probably knew over two dozen when her verbal vocabulary passed her signing one. It was our primary way of communicating with her for months and months, and was a great help to both her and to us in knowing what she wanted.

 

Right around the time Ellen was really catching on to the signs, we had a friend staying with us for an extended time. He'd been hit by a car, so he had a lot of time to sit around and watch Ellen learn. His comment? "I'm totally doing this with my kids when I have them." Which was my exact sentiment from watching my brother.

 

It's funny for me to hear resistance to the idea. The one that really puzzles me is the "it'll slow down their speech" one. Not only is this contrary to clinical evidence (IIRC - we did the research but I no longer have the citation), but my personal experience has been the opposite. Ellen, like Zenzo, is bilingual in verbal languages (Chinese and English), and despite that seems to have verbal capabilities comparable to her contemporaries. Bilingual children generally take a bit longer to reach the same level of speech in a single language than children only learning one language (again, I don't have a citation any more).

 

But setting that aside, I always point out to people that all children use sign language. Every kid reaches their hands up when they want to be picked up, and every kid waves to indicate "goodbye". There are probably other examples - gestures are so baked into communication that it's hard to even think of them. Teaching ASL is just an extension of this.

 

I can't recommend teaching ASL to your baby strongly enough. It's totally worth it. And don't worry if you don't know ASL - just make up some sign and use it consistently. We used to do that all the time for new stuff we didn't know the sign for. Of course, it's not hard to find signs on the Internet, but when you're in the heat of the moment, anything will do as long as you pick something, tell your spouse, and stick with it.

 

I'll close here by answering one more of the questions Scott posed: Does Ellen still sign? Yes she does, but not to communicate. She communicates exclusively (and nearly endlessly :) ) verbally, but there are about five signs she still makes even when speaking. For example, she still signs "sorry" even as she says it - in English or in Chinese.

Wednesday, November 15, 2006

Slides and Code for CapArea .NET UG Talk

I spoke last night at the Capital Area .NET User Group, and while I'm probably not the most objective evaluator, I thought it went pretty well. Which is cool, since I was presenting one of the modules from my upcoming Pluralsight course.

 

I've uploaded the slides and demos here. Any questions, you know how to reach me.

Monday, November 13, 2006

Speaking at CapArea .NET UG

Tomorrow night (Tuesday, November 14th) I'm speaking at the Capital Area .NET Users' Group meeting. My subject will be "Effective URL Design Using ASP.NET". You can read the summary on the website (http://caparea.com).

I'm particularly looking forward to giving this presentation, because the material is part of my upcoming Applied .NET Architecture and Design course (http://pluralsight.com/courses/AppliedDotNetArch.aspx), which I'm in the final stages of writing. Yes, I've been working on it for a long time, but it really is nearly done.

Anyway, hope you'll come on down to the event - there's usually pizza. Say hi if you do.

Tuesday, November 7, 2006

Using a .NET 1.x Control from a MC++ 2.0 Windows Forms Application

OK, this one took me forever to find, even though the solution was simple, so I'm blogging it.


Apparently, there's still at least one person out there using RichTextBox2/RichTextEditor. And he wanted to use it from managed C++, of all places. And it wasn't working, of course. So he emailed me, and I was happy to help. Of course, it took some research, since VC++ isn't exactly my first choice for writing Windows Forms applications. (Like, I didn't even know VC++ has a forms designer now!)


The problem occurs any time you try to add a control to a form when the control was compiled against .NET 1.x. When you do that, you'll see errors like this:


Error C3699: '^' : cannot use this indirection on type 'System::Windows::Forms::Cursor'
warning C4945: 'DescriptionAttribute' : cannot import symbol from 
'c:\windows\assembly\gac\system\1.0.5000.0__b77a5c561934e089\system.dll':
as 'System::ComponentModel::DescriptionAttribute' has already been imported
from another assembly 'System'
c:\windows\assembly\gac\system\1.0.5000.0__b77a5c561934e089\system.dll

This is due to the fact that when you add the control to the form, VC++ helpfully adds references for the control's dependent assemblies to the form. Unfortunately, those dependencies include things like the 1.x version of System.dll, and you've already got references in your project to the 2.0 version of System.dll. Hence the conflict.


The solution is to go into Project->Properties->Common Properties->References, where you must remove references to the duplicate 1.x libraries. Easy. And hopefully easier to find now.

Saturday, October 28, 2006

Happy Birthday Ellen!

Hard to believe this was two years ago. Or that now she can do this when you ask her to make an angry face:

 

 

 
:)

 

Happy birthday sweetie!

Tuesday, October 24, 2006

The Impact of Atlas on Web Services

<prognostication-mode accuracy="questionable"> 

 

I was reading this post today about the Microsoft AJAX Library, and something struck me: the [ScriptService] attribute makes this is a new web service toolkit. "Duh", you're saying. But the interesting thing about this one is that it's a toolkit that .NET web service authors probably can't ignore. Up until now, I've been getting the message from most of my clients that the only web service client they really care about is .NET. That sort of begs the question of "Then why use web services at all?" but that's perhaps a topic for another time.

 

At any rate, given how software from Microsoft is usually received by developers in the Windows world, I suspect that people will be forced to consider the AJAX Library when designing their .NET web services. And granted it's written by the same company, but I'll be completely stunned if the two stacks are completely isomorphic. Hell, it's hard enough to get the .NET stack to talk to itself across XML serialization sometimes.

 

I think this constraint is going to be fundamentally positive. It's generally true that the second client is much harder to write than the third, as the number of generalizations you have to introduce decreases. So if people start testing against two different clients (even if they are both from Microsoft) then it'll be that much easier when it comes time to integrate with Java, or Ruby, or whatever the hell comes next. Which is (at least one of) the point(s) of doing Web Services.

 

Should be interesting. At the very least, it looks like I should devote some time to playing with [ScriptService] to find out what the limitations are.

 

</prognostication-mode>

Monday, October 23, 2006

ScrewTurn Wiki

Ian pointed me to this posting by James Avery, who seems to really like ScrewTurn wiki, an open-source, .NET-based wiki engine just like FlexWiki. But James' statement

 

I have been using FlexWiki for sometime and I have to say that Screwturn really blows it away. It has built in security, one-click backup, its extremely customizable, and much more.

 

sort of caught my eye, as you might imagine. :)

 

Contrary to what seems to be the unfortunately frequent open-source practice, I'm not interested trashtalking ScrewTurn wiki. In my ideal world, ScrewTurn would do everything that FlexWiki does, plus more, and there'd be a syntax converter. Then I could switch to ScrewTurn wiki and spend my limited free time making it (or something else) better. Since that doesn't seem to be the case (it looks like they both have features the other lacks), I guess I'm going to stick with FlexWiki for now. :)

 

At any rate, if you're in the market for a .NET-based wiki, I highly recommend you check out ScrewTurn. I haven't installed it yet, but I've skimmed the docs, and it sure looks like they've got a solid project. It looks like for now the choice between FlexWiki and ScrewTurn depends on your particular requirements and preferences, so it's good to know about the options.

 

And to any ScrewTurn devs that read this - if there's anything FlexWiki can do to help, or if you have suggestions about what we can do better (there's lots), or if you can think of interesting ways to work together, just let us know.