Technical Archives

Jesse Liberty

AddThis Social Bookmark Button

I’m committed to making Programming Silverlight not only the best book on the topic but also the best book I’ve written. As part of that effort I’ll be drawing on and deepening my blog entries and tutorials and videos on the Silverlight site.

If you want a flavor of what is to come, please consider keeping an eye on my blog. Your feedback on the technical level and the topics covered will be invaluable.

Thanks again.

Jesse Liberty

AddThis Social Bookmark Button

I’m very pleased and proud to announce that my newest book, Programming .NET 3.5, is available, and more important that it may be the most unusual book I’ve ever written. As noted in my primary blog it was our theory; generated long before I started work at Microsoft, that while there was good reason to write what I call “silo” books on each of the .NET technologies (e.g., WPF, WCF, etc.) there was a coherence to the entire Microsoft framework that was potentially missed by that approach.

Our other theory was that .NET 3.5 (broadly defined) was the first version of .NET to fully facilitate the development of n-tier applications and MVC (imagine our shock when Microsoft developed the MVC library for ASP.NET!)

This book was also a blast to write, and even more exceptional, my co-author, Alex Horovitz, launched his own writing career out of it, quickly following with Programming ASP.NET MVC to be released shortly.

Jesse Liberty

AddThis Social Bookmark Button

Add to Technorati Favorites

Jesse Liberty

AddThis Social Bookmark Button

It will come as no surprise that I’m always looking for on-ramps for aspiring Silverlight programmers. This month there are a few particularly attractive ones.

First, I’ve put together a new, if somewhat idiosyncratic roadmap for acquiring the tools and working your way through our learning materials.

Second, I’ve launched a series of live presentations delivered over the net, every other Wednesday, and then downloadable on demand.

Jesse Liberty

AddThis Social Bookmark Button

In Sunday’s NY Times (February 10, 2008) Tim O’Reilly is quoted as saying

Popfly shows me that Microsoft still thinks this is all about software, rather than about accumulating data via network effects, which to me is the core of Web 2.0…They are using Popfly to push Silverlight, rather than really trying to get into the mashup game.

This raises a host of interesting questions for me as a long time author for O’Reilly Media and as “Silverlight Geek” for Microsoft.

As a start, I decided it was time for me to turn my attention to writing a bit more about Popfly, and I invite you to join me if you’d like to know more about this interesting, if now somewhat controversial, technology.

Thanks.

-Jesse

Jesse Liberty

AddThis Social Bookmark Button

Since Silverlight 2 is around the corner, and with it Managed Code and LINQ, I’m cross posting the following to both my Silverlight blog and my O’Reilly blog. Hope that isn’t too annoying.

I believe it is a major stumbling block, when learning new technology, if you can’t say the syntax “out loud in your head.” — that is if you can’t read the code to yourself in a way that you can then translate into a meaningful sentence. For example, when learning C#, if you see

int result = employees.Add(237, new Employee(”John Doe”, theAddressRecord);

If you don’t speak C# you can’t really read this to yourself without stumbling. What do you do with the dot between employees and Add? What do you do with the commas? the parenthesis? Do you pronounce them (employee dot add?)

if you “speak” C# you can read this to yourself quite easily; perhaps without noticing: “Call the Add method on the Employees object, and pass in a new Employee object, initialized with two parameters, a string and an object and return a value that you will assign to the local integer variable result.”

In fact, you’d go much further, based on your knowledge of C# and you’d read it complete with the logical inferences: “add to the Employees dictionary a new Employee object, keyed to the integer value 237. The new Employee’s constructor takes two parameters: the Employee’s name as a string, and the Employee’s address as a AddressRecord. The Add Method of the Dictionary returns an integer indicating success or failure which is assigned to a local variable named result.”

Now, I posed the following question to Ian Griffiths: “how do you pronounce this C# LINQ statement:

IEnumerable<Person> results = people.Where(p => p.LastName == “Liberty”);

Ian Griffiths is a consultant, developer, speaker, author, blogger, and to my great fortune, he was one of the technical editors for the fifth edition of my book Programming C# 3.0

Ian’s first response to my question was “IEnumerable of Person results equals people dot where p goes to p dot last name equals Liberty .. or just people where last name equals Liberty” … However, I’ve not spent any time trying to devise a way of saying LINQ that’s necessarily comprehensible to anyone listening who doesn’t have the source code to look at…I’m also wondering if I’m missing a trick question

[Let me note now that I’m abbreviating both Ian’s comments and mine to make this readable and keep to the essence of the discussion]

I explained my reasons for wanting to teach how to pronounce it and suggested

Declare results as an instance of a collection that implements the generic interface IEnumerable of Person, and assign to results each member of the collection people (which we assume to be a collection of Person objects) that meets the condition given in the parentheses. The condition is: let p represent each member of people in turn, give me each p where p.LastName is equal to Liberty.”

Ian objected to the two parts I marked in bold.

“First, results holds an instance of a collection, and I prefer to keep the distinction between the variable and the object clear.”

After some back and forth, we agreed that it is better to say that results is a reference to an instance of a collection.

Ian’s’ second objection was more substantive and nailed my misunderstanding. He wrote,

The language suggests that we will assign each matching Person into results, which isn’t really true. It could be taken to suggest a process that looks like this:

List<Person> results = new List<Person>();
foreach (Person p in people)
{
if (p.LastName == “Liberty”) { results.Add(p);
}

and while that might have the same effect, I think it’s potentially misleading to think in those terms. (For one thing, the approach shown here will fail for infinite collections. But LINQ is quite happy to evaluate infinite collections lazily, so long as a) you use suitable enumerator and operators, and b) you never ask it to materialize the full results of the query.)

To that end, part of me wants to pare it right down:

“Let ‘results’ be all the ‘Person’ objects in ‘people’ that have a LastName of “Liberty”.”

For me that captures the essence, and avoids getting bogged down in details. I like it because it doesn’t make many assumptions about what ‘people’ is. (Specifically…very specifically and somewhat pedantically in fact…it makes the assumption that when we examine people through the standard LINQ ‘Where’ operator, it appears to contain a set of objects. And I chose my wording very carefully there - that does not mean that ‘people’ is necessarily a collection of objects. I could for example write a LINQ to SwipeCard library; ‘people’ might actually be a SwipeCardReader, and I may have provided a Where extension method that can be applied to a SwipeCardReader that returns an enumerator that yields an object each time someone swipes a card that matches the Where predicate.

OK that’d be a slightly weird thing to do - I’m just illustrating that there are scenarios in which talking in terms of ‘collections’ doesn’t fit. More pragmatically, in LINQ to SQL and LINQ to Entities, the Where clause ends up getting converted into SQL…so all you know is that it yields filtered output, and you can’t talk about how it achieves this in object terms.)

But that doesn’t explain the individual pieces. If we want to say precisely what each bit of that code does, we need a more complete explanation. And for that…well I’m still in two minds. It depends on context - how much do we really know about ‘people’. Given just that line of code, people could be anything, and we might well be building a query against a database here. The pattern presented is using one of the standard LINQ operators, so it’s applicable to LINQ to Objects, LINQ to SQL, and LINQ to anything else that might spit out an object that might have a LastName property. (So I don’t think this particular example would work directly with LINQ to XML. However, it’s still possible that person was a LINQ to XML query whose SELECT clause happened to project the results into a .NET object. But that would make this LINQ to Objects…)

But if we can assume that ‘people’ really is a collection objects, and that we’re using LINQ to objects, then my ‘no stone unturned’ version might look like:

“Declare a variable ‘results’, which will hold an enumerable set of Person objects, calculated by invoking the ‘Where’ operation on ‘people’. ‘Where’ is a standard LINQ operator that performs filtering. Since ‘people’ is a collection, the ‘Where’ operator is provided in this case by LINQ to Objects, and it is an extension method. (So we are really invoking Enumerable.Where here, even though the syntax makes ‘Where’ look like a member of the object referred to by ‘people’.) The parameter to ‘Where’ is a lambda expression that will be evaluated for each Person ‘p’ in people. The ‘Where’ method includes all Person objects for which the expression evaluates to true (i.e., the ones whose LastName property is “Liberty”) and excludes the rest. ‘Where’ returns all of the included objects as an IEnumerable<Person>, which is assigned into the ‘results’ variable.”

Comprehensive and, I fear, unreadable…

This was particularly powerful to me, because I had exactly that foreach loop in my head. I replied acknowledging that, and also highlighting his distinction of a set vs a collection and I didn’t much like the includes / excludes language, and asked about using

the ‘where’ method yields all Person objects for which the expression evaluates to true.

We agree that the problem with my language is that it doesn’t quite make explicit that those that don’t match are dropped on the floor, but on the other hand it is less ugly than saying

the ‘where’ method yields all (and only) Person objects for which the expression evaluates to true

M. David Peterson

AddThis Social Bookmark Button

In a recent entry to the news section of the lighttpd site,

Mono + FastCGI

Reggie pointed me to the FastCGI support for Mono. For our lighttpd they have a full featured page that should cover all possible configuration needs.

Feel free to try it out and comment on this article if it works as expected.

In follow-up, Amr_not_Amr asks,

This is so nice .. but does this work with lighttpd 1.5 ?

My response to Amr_not_Amr either didn’t make it through because of the pre and code tags, or just hasn’t been approved yet, but either way here it is (again?),

M. David Peterson

AddThis Social Bookmark Button

UPDATE: John Lam has followed-up with a response on his blog. For what I assume are obvious reasons I would pay attention to what John has to say on the matter well before anything I might have to say as, again quite obviously, John kind of knows a thing or two hundred about these kinds of things. ;-)

To ensure I’m not propagating bad information I’ve integrated portions of his comments that help clarify the real picture as it is (as opposed to how I may have interpreted things to be) into the body of this post. That said, if you haven’t already I would encourage you to head on over to his post *first* and then come back here if/when time allows.

Thanks for the follow-up, John!

[Original Post]
Pat Eyler asked me a while back for my thoughts on a handful of questions related to both IronRuby and Ruby.NET. He recently posted my answers to the following questions,

* How much are the IronRuby and Ruby.NET projects working together?

* Where/how could they better cooperate?

* What’s the easiest way to get started with Ruby.NET for Windows, Mac, and Linux users?

* What are some ways the Ruby.NET team is working with the larger Ruby community?

* What more could they be doing?

* Why should we trust Microsoft?

Extending from these answers and in response to a follow-up question from Pat, it seemed appropriate to pull together a summary of the core differences between the Ruby.NET and IronRuby projects. This summary extends from the thread @ http://groups.google.com/group/RubyDOTNET/browse_thread/thread/a8c51748456a46c0/0e6ad247c1e059e9?lnk=gst&q=Ruby.NET+and+IronRuby with plenty of extended substance from Douglas Stockwell, Charles Oliver Nutter, and Dr. Wayne Kelly that is worthy of your click.

PLEASE NOTE: If anyone from either the Ruby.NET or IronRuby camps (I claim myself a member of both) feels compelled to clarify or provide either an extended and/or counter follow-up, by all means please do. If it turns out that any of what follows is either inaccurate, misleading, or in other forms doesn’t present the complete story, please let me know and if seems justified, I will incorporate the suggested changes into the body of this post.

Thanks in advance!

Andy Flesner

AddThis Social Bookmark Button

I’ve created a couple of custom VBA functions for Outlook 2007 from some snippets at www.outlookcode.com and thought that someone else may find them useful. The first allows you to create a task from an email and modify the Update List recipients (something that you cannot do manually). This also works in Outlook 2003. The second is a timestamp that allows you to inject a timestamp into a task body without modifying the format of the body (using the Word object library).


Create a Task from an Email with the Ability to add Update List Recipients


Instructions: Copy the code below and paste it into the VBA editor in Outlook (access the editor by pressing ALT+F11 in Outlook). Then create a button on the Quick Access Toolbar for mail messages that accesses the MakeTaskFromEmail() function.

Sub MakeTaskFromEmail()
   Dim strID As String
   Dim olNS As Outlook.NameSpace
   Dim olMail As Outlook.MailItem
   Dim objTask As Outlook.TaskItem
   Set objMail = Outlook.Application.ActiveInspector.CurrentItem

   strID = objMail.EntryID
   Set olNS = Application.GetNamespace(”MAPI”)
   Set olMail = olNS.GetItemFromID(strID)
   Set objFolder = olNS.PickFolder
   Set objTask = objFolder.Items.Add(olTaskItem)
   objRecipients = InputBox(”Please enter any additional users to Update separated by semicolons:”, “Update List Users”)
    With objTask
      .Subject = olMail.Subject
      .Body = olMail.Body
      .StatusUpdateRecipients = olMail.SenderEmailAddress & “; ” & objRecipients
      .StatusOnCompletionRecipients = olMail.SenderEmailAddress & “; ” & objRecipients
   End With

   Call TaskAttachments(olMail, objTask)

   objTask.Display

   Set objTask = Nothing
   Set olMail = Nothing
   Set olNS = Nothing
End Sub

Sub TaskAttachments(objSourceItem, objTargetItem)
   Set fso = CreateObject(”Scripting.FileSystemObject”)
   Set fldTemp = fso.GetSpecialFolder(2)
   strPath = fldTemp.Path & “\”
   For Each objAtt In objSourceItem.Attachments
      strFile = strPath & objAtt.FileName
      objAtt.SaveAsFile strFile
      objTargetItem.Attachments.Add strFile, , , objAtt.DisplayName
      fso.DeleteFile strFile
   Next

   Set fldTemp = Nothing
   Set fso = Nothing
End Sub


TimeStamp Using WordEditor in Outlook 2007


Instructions: Copy the code below and paste it into the VBA editor in Outlook (access the editor by pressing ALT+F11 in Outlook). Then create a button on the Quick Access Toolbar for tasks that accesses the TimeStamp() function. You will also have to enable the Word object library in Tools -> References in the VBA editor.

Sub TimeStamp()
   Dim strText As String
   Dim objItem As Object
   Dim objExpl As Outlook.Explorer
   Dim objInsp As Outlook.Inspector
   Dim objDoc As Word.Document
   On Error Resume Next

   Set objNameSpace = Application.GetNamespace(”MAPI”)
   MyName = objNameSpace.CurrentUser.Name
   strText = “>> ” & Date & ” ” & Time & ” ” & MyName & “:” & vbCrLf & vbCrLf & vbCrLf

   Set objExpl = Application.ActiveExplorer
   Set objItem = objExpl.Selection(1)
   If Not objItem Is Nothing Then
      Set objInsp = objItem.GetInspector
      If objInsp.EditorType = olEditorWord Then
         Set objDoc = objInsp.WordEditor
         objDoc.Characters(1).InsertBefore strText
      Else
         MsgBox “Cannot insert text in a formatted message unless Word is the editor”
      End If
   End If

   Set objInsp = Nothing
   Set objDoc = Nothing
   Set objExpl = Nothing
   Set objItem = Nothing
   Set objMsg = Nothing
End Sub

AddThis Social Bookmark Button

Intel has announced a free “concurrency finder” tool for Windows. The tool is named CFinder. The documentation that’s included with the download says CFinder can be used

to check if an application is threaded and if the threads are running concurrently. This tool is aiming at providing developers a quick way to test their applications for parallelism.

Testing CFinder on a Threading Building Blocks app

I tried out the CFinder application on a program I had adapted for investigating of the task stealing mechanism in Threading Building Blocks (TBB), the open source project for which I’m currently “community manager.” For my experiments, I had adapted the StringFinder example in the TBB “Getting Started” guide. You can see the results of my experiment in my post “TBB Task Stealing on a Quad-Core Windows System”.

I tried out CFinder using my adapted StringFinder application. As you can see from my “Task Stealing” post, I had already proven that the program utilizes all four cores in my processor, with 222 seconds of work being completed in 63 seconds. This implies that an average of 3.52 processor cores were active each second.

So, knowing all of this in advance, I was curious to see what CFinder would tell me. I’m not exactly sure how to read the results that CFinder displays, but here is what the “Concurrent Level” pull-down showed me after my StringFinder application had completed its run:

Concurrent
Level
% Time
2 4.98
3 92.53
4 1.66

Clearly, concurrency level 3 dominated the run. Why wasn’t more time spent at concurrency level 4, since I have a quad-core system? I’m not sure at the moment. In a sense, I’m comparing apples and oranges (the timing analysis applied in the TBB software and the CFinder analysis). In addition, CFinder itself is running my StringFinder application, so I have an extra process running when CFinder is analyzing StringFinder’s performance. Surely Windows will allocate resources differently under differing circumstances. So — I’m really not all that troubled by the numbers. Everyone agrees that my app is utilizing my quad-core processor in a highly effective manner.

Conclusion

CFinder is a nice little free tool for quickly analyzing the degree to which a Windows program executes concurrently in a specific run (or set of runs). It’s a clear step up from the simple timing of execution instances that I applied for years to test the effect of edits to my multithreaded applications. I think I’ll keep it!

Mike Hendrickson

AddThis Social Bookmark Button

ignitebostonlogo.gif

The Second Ignite Boston is taking place this Thursday, September 6, from 6 to 10pm at Hurricane O’Reillys. If you have already RSVP’d your name is in our list and you will be entered into a drawing for $300 worth of O’Reilly books, and a Free Beer, or drink of your choice. If you have not RSVP’d or if you think a friend or two should join you, send email with your name to IgniteBoston AT oreilly DOT com. The talks are listed below.

    Keynote: Ben Fry - Visualizing Data
    Visualizing large data in a compelling style with tools that scale.

  1. Alessandro Pace - Flash Lite mobile technology
    I would like to showcase how to create Flash Lite content for mobile phones. I would be able to show sample applications
  2. Yael Maguire - New Uses of Long Range RFID
    Agile RFID reader technology.
  3. Jon Orwant - Google Book Search
  4. Ned Gulley - A wiki-like programming contest
    Picture a programming contest that’s open source, fast-paced, and competitive. Addictive collaboration ensues
  5. Andy Gregorowicz - Mining Wikipedia
    An overview of how we mine the Wikipedia to create massive networks of concepts and terms with interesting visuals.
  6. Hari Jayaram - Waiting for the MySpace scientist
    Science is getting so complex that we need to open things up, collaborate and use technology more than ever before
  7. Neil Henry - Digital Image Glut
    Articulation of an unmet need of modern consumers. The scarcity of time to organize, rate and enjoy digital images
  8. Jesse Liberty - Sliverlight
    Learn what is cool with Sliverlight.
  9. Ivan Schneider - A proposal for rules-based payment processing
    Why should affiliates and suppliers wait for a check when the payments network can divvy the spoils for every purchase?
  10. Shava Nerad - Convergence: games, virtual worlds, social networking
    They grew up on their own — now corporations enter. How will they deal with convergence and big money colonialism?
  11. Greg London - Bounty Hunters
    Looking at copyright law as a bounty/reward shows how to set the terms of copyright to some reasonable length.
  12. Michael Burns - Securing the OLPC
    Millions of XOs are being distributed this year. Bitfrost is the system to protect these child users. How does it work?
  13. Matt Douglas - Founder
    Develop a mantra for your product: how we make design decisions at MyPunchbowl.com
  14. Brian Olson - Ending Gerrymandering Through Automatic Redistricting
    Lots of states have crazy congressional districts drawn to the benefit of one party. Let a computer do it fairly!
  15. Daniel Olguin Olguin - Sensible Organizations
    Social sensor network technologies that will help individuals and organizations work better.
  16. Michael Colombo - AIR from the commercial trenches
    Seen enough Web 2.0 mashups? Let’s discuss building a business case, managing, and executing in an Adobe RIA universe.
  17. Ted Gilchrist - Extending Robocal to do “talking driving direcctions”
    Robocal is a talking Google Calendar, that you can call up. Now you’ll get driving directions to your meetings.
  18. Renat Khasanshyn - Enterprise 2.0 and Data Mashups: Bridging the Web 2.0 Information Gap
    In today’s enterprises, most data integration projects never get built. The ROI on these projects is simply too low. Co
  19. Dan Stolts - Free Local Technology Resources
    The local user group community is thriving. Get a taste of what the community is doing for the community.
  20. James Turner - 5 Ways to Keep an Editor Happy
    So, you’d like to write something for the ONLamp Family of Websites? Here’s 5 basic boo-boos to avoid.
  21. Daniel Berube - Storytelling
    As Leader of the BOSFCPUG, I would like to discuss Final Cut Studio 2 as a tool for storytelling and video on the iPhone
  22. Keith Erskine - Launch: Padpaw
    Padpaw is out of the Garage! Padpaw helps your group with important updates and information using your cell phone
  23. Greg Raiz - Launch PicMe Photo Sharing
    PicMe is a desktop based photo sharing application. It allows users to view and share large collections of photos.

Technorati Tags: , , , , , ,

M. David Peterson

AddThis Social Bookmark Button

To all of you MS Office gurus out there, here’s a chance to help out with a *GREAT* cause: As many of you will already know, Lawrence Lessig has made a shift in his fight for Free Culture, placing his attention on fighting the corruption that sits at the very foundation of the problems that keep us from living in this same mentioned free culture: Free from the corruptions that keep things in a state of… hmmm… not so much free and instead, not free.

As Professor Lessig makes mention in the same linked post from above,

M. David Peterson

AddThis Social Bookmark Button

I’ve learned a lot of things from a lot of people in my life. The following lesson/acquired knowledge came, more than likely unbeknown to him (it was a very casual conversation, so there is no reason he would have thought of it as anything other than a casual conversation), from Mike Champion,

The reason why I am a *HUGE* fan of shared source, non-commercial licensed software is,

- In many cases, the source comes from established software applications with proven commercial success.
- In cases such as this exists a *FANTASTIC* opportunity to learn and understand how something with significant commercial success was created.
- With this knowledge we are better enabled to build better product as a result.

To understand the hacker means to understand that the hacker learns through a hands on approach. I know very few hackers that learned how to hack and hack well inside the confines of a university.

On the other hand, I know *TONS* of hackers who, while they may never again utilize the source of a project they were once a part of, or have in many cases simply learned through reading the source of a project they were never a part of, they are enabled to write better software because of the knowledge they gained as a result.

OSS projects will come and go, but knowledge is King, and will stay with you as long as you continue to maintain and refresh this knowledge.

A month or so back I wrote an entry regarding a comment made by Oleg Tkachenko,

M. David Peterson

AddThis Social Bookmark Button

*WOW*!

IronPython Running on Virtual Desktop � 21st Century Smalltalk

NOTE: Technically speaking, the title doesn’t perfectly match the above graphic, but as per below, it will soon enough…

Above is a test of IronPython running on a “Virtual Desktop” inside a browser.

I created the “Virtual Desktop” libraries to allow me to create a Smalltalk environment within a browser. As part of my porting Vista Smalltalk to Silverlight, I have modified the desktop to be compliant with any DLR (Dynamic Language Runtime) based language; so it is now possible to run IronPython in workspace windows with Smalltalk-like interaction (”DoIt”, “ShowIt”, etc). This, of course, will also apply to IronRuby, Vbx and JScript.

Once I have an initial Smalltalk compiler working, I will attempt to run everything in Silverlight.

A while back I proclaimed Peter Fisk as a *ROCK STAR*. I would like to officially withdraw my position and change it to the following,

Todd Ogasawara

AddThis Social Bookmark Button

A number (all?) of virtualization products from Microsoft, Parallels, and VMware are having problems with recent Linux distro releases such as CentOS 5.0 (Red Hat Enterprise Linux clone) and Ubuntu 7.04. The main visible problem seems to have to do with the X11 windowing software. CentOS 5.0 appears to install correctly but X11 does not display. Instead, you get a text prompt that gets you to the shell. Manually attempting to start X fails too.

Here’s what worked for me though. I installed the older CentOS 4.4 first. Then, I booted from the 5.0 ISO and upgraded the 4.4 system. I’ve tried this twice: Once using Virtual PC 2007 and once using Virtual Server 2005 R2 SP1 Release Candidate. Both upgrades completed successfully and left me with a functioning X11/Gnome environment. Be sure to run “yum check-update” and “yum -y upgrade” after the upgrade. There are a bunch of components that need to be updated after CentOS 5.0 is up and running.

Ubuntu 7.04 Linux is another story. Although I’ve read reports of people getting this to install and running under Virtual PC 2007, I have not as much luck as them. I was able to get it installed but the X11 login screen was unusable for further work. I even had problems getting Ubuntu to run on a physical computer. I took an old Dell Latitude L400 currently running Ubuntu 6.10, wiped it out, and installed 7.04. However, a long series of kernel error messages is displayed on boot and the system never comes up correctly. It does, however, appear to install and run ok on an old Dell Dimension 4000 desktop PC. It is nowhere near as clean as the upgrade from 6.06LTS to 6.10.

I tried the upgrade path method with Ubuntu by installing 6.06LTS in Virtual PC 2007 first and then upgrading using gksu “update-manager -c” too. That resulted in a bunch of errors related to access issues to Gnome icons and OpenOffice files. Ultimately, the upgrade process appeared to fail and abort with a message about an unstable system. However, Ubuntu does boot into a normal looking X11 login screen. But, as noted in various web bulletin boards, the mouse does not work and you can’t effectively navigate Gnome’s GUI.

Jesse Liberty

AddThis Social Bookmark Button

In 2000 I saw C# and knew at once that (wanted to set aside c++ and write exclusively in, and about, .net.

Today I saw Silverlight (WPF/E) and had a similar feeling.I believe that, in 1-2 years:

There will be few reasons to develop in WPF
There will be few (no?) reasons to develop in Asp .NET-AJAX
JavaScript will be dead

Preston Gralla

AddThis Social Bookmark Button

Microsoft likes to point out the fact that its firewall in Windows Vista is superior to the one in XP because it includes outbound as well as inbound filtering. What it forgets to say, however, is that the outbound filtering is turned off, and pretty much impossible to configure to kill spyware.

Todd Ogasawara

AddThis Social Bookmark Button

Here’s the weekly summary of a mix of Windows Mobile and general mobile tech related items from my personal blog.

Ready for Windows Vista for Windows Mobile?
Microsoft Windows Vista is finally available for anyone to purchase/upgrade. Are you ready to sync your Pocket PC or Smartphone with Vista? Here’s some references for you to check out if you’re planning to use Vista with your Windows Mobile device.

Microsoft Windows Mobile Device Center

Couple of important notes from this page. First, if your device pre-dates Windows Mobile 2003, you can’t sync it with Vista and WMDC. Second, the oldest version of Outlook supported is XP (2002). I’ve seen some sites say Outlook 2000 is supported. But, that is not indicated on Microsoft’s WMDC page. Third WMDC appears to still be in a beta-release stage.

Synchronizing with Vista -Windows Mobile Device Center FAQ

The site above is maintained by fellow Mobile Devices MVP Chris De Herrera.

Troubleshooting Vista Windows Mobile Device Center

Finally, the blog entry linked above is by Microsoft’s own Mr. Mobile Jason Langridge.

Happy Vista-ing, folks!

EV-DO applicability in Japan?
Reader J.V. asks: Would a BlackBerry with Ev-DO technology (such as the 7703e) be usable in Japan? Would a BlackBerrys on GSM/GPRS and EDGE networks be usable in Japan?

Most of the world does not use CDMA/EVDO. Most of the world tends to be GSM/GPRS/EDGE/UMTS. Japan’s NTT DoCoMo invented W-CDMA used by both FOMA used in Japan and UMTS used in a lot of places (except for most of the US where we tend to lag behind in the wireless world).

I took a look at taking my GSM/GPRS phone with me when I visited Japan back in 2005. I ended up leaving it behind. In speaking with people who visit Japan regularly, it seems that they tend to buy a phone with rechargeable SIMs (fixed number of minutes). If you read the article I wrote about my trip for O’Reilly’s MacDevCenter…
Japan Primer for the Mac Techno-Tourist

…you’ll find a section sub-titled Mobile Phones, Broadband, & Wi-Fi Hotspots that provides links to sites that discussing phone roaming options.

Windows CE vs. Windows Mobile
Reader Z.M. asks: Two products I have seen, the Cisco/Linksys WIP330, and the Y5 World handset use Windows CE/Mobile for the OS and browser, but they do not have the full UI suite you see on Windows Mobile mobile phones. They both use what looks like the same 3rd-party UI kit for a telephony UI. I was wondering if you know who makes this software?
Microsoft provides the base platform for Windows CE that is used in embedded devices such as the ones you mention (and many more). This base platform is then molded and enhanced by independent developers to create products like the ones you mention. This is a large number of embedded systems developers working to develop these kinds of products.
Windows CE is also the underlying platform for Windows Mobile devices: Pocket PC, Pocket PC Phone Edition, and Smartphone. The Windows Mobile Shell, Office, and other teams add on the features you see on Pocket PCs and Smartphones based on Windows Mobile.

Microsoft Windows Mobile Device Center is Available
Microsoft released the production versions of Windows Mobile Device Center (WMDC) for Windows Vista on January 31. WMDC replaces ActiveSync for Vista users. There are two versions available…
Microsoft Windows Mobile Device Center Driver for Windows Vista (x86)

Microsoft Windows Mobile Device Center Driver for Windows Vista (AMD64)

Please note that you must check which version of Windows Vista you are using. I suspect that many people with AMD Athlon 64 based PCs (like me) are running the 32-bit version of Vista for driver compatibility. So, just having an Athlon-64 CPU does not mean you should download and try to install the AMD64 version of WMDC.

Windows Mobile Device Center Site

In my previous blog entry, I pointed out the two download links for the 32-bit and 64-bit veresions of the Vista replacement for ActiveSync. Here’s a link to its home web site…

Windows Mobile Device Center
It’s interesting that the full name for the software is Windows Mobile Device Center 6. Something to match up with an unreleased Windows Mobile 6, perhaps (we are currently at Windows Mobile 5 release)?

There’s a link to a WMDC troubleshooting page. One interesting note on this page is that while pre-WM2003 devices are not supported as partnered devices, you can still browse the ancient device and copy files.

I haven’t installed WMDC on my Vista PC yet. But, you can read what I have learned from installing Windows Vista Ultimate Edition on a cheap ($500) PC on another personal blog of mine: TO-Tech.com/blog.

InformationWeek’s Smartphone OS Roadmap

Information Week has a useful…

Road Map For Smartphone Operating Systems

…on their website. Anyone interested in trying to get a quick grasp of where the major mobile device OSes will be in the near future would find the table on their web site interesting. The table provides an overview of the near-future guess-timates for Symbian, Linux, Garnet OS (formerly Palm OS), Windows Mobile, Blackberry, and Mac OS X (Apple iPhone).

Todd Ogasawara

AddThis Social Bookmark Button

Here’s the weekly summary of a mix of Windows Mobile and general mobile tech related items from my personal blog.

ActiveSync: Pocket PC vs. Smartphone

Figure 1. ActiveSync Options for Smartphone

Figure 2. ActiveSync Options for Pocket PC

A lot of the confusion I see in email and comments (to blogs and articles) are caused by Mobile Phone carriers and Microsoft failing to properly distinquish between their Windows Mobile 5 Pocket PC Phone Edition and Smartphone platforms. The main problem is that several Smartphone devices such as the Motorola Q and the T-Mobile Dash look like the Treo 700w Pocket PC Phone Edition. They have similar looking form factors, LCD display, and QWERTY thumb keyboards. But, they are quite different.

Compare the two ActiveSync options lists displayed above. The one at the top is for a Windows Mobile 5 Smartphone. The one below it is the options list for a Windows Mobile 5 Pocket PC Phone Edition. Note that The Smartphone does not provide the option to sync Notes (from Outlook) or Files. We can only guess that Microsoft assumed that the previously keyboard-less Smartphones would not be used as text entry devices for various kinds of note taking options. That is also why the Smartphone does not have Word Mobile or Excel Mobile.

But, several Smartphones do have QWERTY thumb keyboards (though they still lack a touchscreen). And, many people assume that their device is a Pocket PC Phone Edition instead of a Smartphone. So, if you are thinking about buying a Windows Mobile based device, check if it is a Pocket PC Phone Edition or Smartphone and buy the one that fits your needs. If you are voice-centric, a Smartphone is probably the device for you. If you are data-centric, a Pocket PC Phone Edition is probably the one you want to look closely at. The main thing, though, is to be aware of the strengths, features, and limitations of whatever device you choose.

The basic rule of thumb is that a Pocket PC Phone Edition will have many more features and applications than a Smartphone. However, the Smartphone can be easily used with one hand while the Pocket PC Phone Edition will almost always require two hands.

Yahoo! Go 2.0 Beta
Yahoo! announced a beta release of their application for phones.

Yahoo! Go 2.0 Beta

The problem is that it supports a relatively small set of phones from Nokia, RIM, and Samsung. So, if you use a Palm OS, Windows Mobile, or even some other Nokia or Samsung phone, you are out of luck. This is one of the reasons I don’t like client-side applications for accessing web portals.

Apple iPhone - Wow!
Apple announced the…

Apple iPhone

…today. I usually don’t buy into market-speak hyperbole. But, wow, the iPhone sure looks like a winner. The Microsoft Windows Mobile product group has a lot of head scratching and catching up to do now.

Couple of items…


  • The iPhone won’t actually be available until June
  • It will only be available from Cingular (which will become AT&T Wireless). This leaves out a large double digit percentage of US mobile phone users who are on Sprint PCS, T-Mobile, or Verizon Wireless
  • Assuming it only has a single battery, I’m concerned about battery life if I use it as both my phone and audio/video player
  • We don’t know what applications will be available. Me? I need Ilium Software’s eWallet on whatever mobile device I use.

Virtual Earth Mobile 1.69
I mentioned Virtual Earth Mobile for the Pocket PC a while back. An update to 1.69 became available last week. You can find it at:

Virtual Earth Mobile 1.69

Changes include: Ability to drag the map with a stylus, get directions in text form, bug fix for Add to Contacts option.

Virtual Earth Mobile is a Pocket PC application that uses data from Microsoft’s Virtual Earth to display maps on a Windows Mobile Pocket PC. You can read Jason Fuller’s complete description of his app in the original blog entry describing it at:

Virtual Earth Mobile (2005.10.23)

I Really Want an Apple iPhone, but…
I’ve been a user and fan of Microsoft Windows Mobile (aka Windows CE) Handheld PCs, Pocket PCs, and Smartphones since 1996. I’ve used either a Windows Mobile Pocket PC Phone Edition or a Smartphone as my phone for nearly five years now. However, I really really want an Apple iPhone. Take a look at Apple’s Phil Schiller demonstrating it for CBS News if you wonder why.
CBS News: Apple’s Phil Schiller demonstrates the iPhone

That said, there is a “But…” in this train of thought. There are a couple of big issues for me and, I suspect, for others too.

First, the Apple iPhone will be available exclusively through Cingular in the US (soon to be merged into the AT&T Wireless brand). They are the largest mobile phone carrier in the US. But, they aren’t my carrier. And, neither Cingular nor AT&T Wireless have had great acclaim from their customers in the recent past. Take a look at RCRWireless’ discussion of Consumer Reports’ survey of 18,000 mobile phone customers. The title of the article is: Consumer Reports’ subscribers give Cingular, Sprint Nextel coal for the holidays.

Second, there is an issue about the dreaded MRC (Monthly Recurring Cost). The way it looks to me is that I would want their lowest cost voice plan with their unlimted data plan. I’m guessing this will be $40 + $40 = $80. My current plan is $30 for voice and $30 for unlimited data (also EDGE) plus unlimited WiFi at Starbucks, Borders Books, and Kinko/FedEx locations. That’s $60/month. That means that annual service cost would jump from $720/year to $960/year. Over the course of a two-year contract, this comes out to $1,440 vs. $1,920.

Third, Apple has verified that they will not allow 3rd party applications to be installed. Since they use the Safari browser, I guess you could argue that you can use web apps (maybe even AJAX-ified web apps). But, there are still plenty of times I know I will be out of EDGE or WiFi signal range and be app-less. Of course, the built-in apps look nice. I don’t install many apps on my Pocket PC or Smartphone. But, the ones I do have installed have become invaluable to me. I would need them or something like them on my iPhone.

My guess at the moment is that I’m going to have to pass on the Apple iPhone for 2007. I hope one of the other carriers picks up the iPhone in 2008/2009 and has a reasonable voice+data plan for me to consider.

Microsoft Research Outlook Mobile Manager 2.1
Microsoft Research released…

Microsoft Outlook Mobile Manager 2.1

…this past October. The software is installed on the PC, not the mobile device. Here’s what it does for your mobile device though: Microsoft Outlook Mobile Manager (OMM) brings the power of Microsoft Outlook to your portable device. OMM can prioritize your messages and makes smart decisions about when to send email. OMM also sends calendar reminders, task reminders, and an Outlook Today style daily summary all to your wireless device.

Interestingly, it only works for Outlook email accounts that are either POP3 or Exchange Server based. It does not support IMAP4 email accounts. In fact, the POP3 support was only just introduced with this particular update.

Q&A: How to Configure Email for an IMAP4 Server
From the beginning of Windows CE/Windows Mobile-time, it seems like people have had problems configuring Messaging (formerly known as Inbox) for their POP3 or IMAP4 and SMTP email servers. Reader D.B. recently wrote me email asking about this issue.

D.B. writes: I recently got the Cingular Treo 750- my fiorst experience with Windows mobile. I read you peice below and wondered how I can go about configruing my email as you have apparently done the the very last scenario (IMOAP4)…any advice greatly appreciated!

The response is way too long for a blog entry. So, I created a special How-To page for D.B. and anyone else wanting to configure Windows Mobile 5 Messaging with an IMAP4 server. Click on the link below to read what I hope is a simple 10-step process with lots of screen shots to step you through the configuration process.

Configuring IMAP4 Email for Windows Mobile 5

Preston Gralla

AddThis Social Bookmark Button

Good news for anyone who hates Vista’s exceedingly annoying UAC prompts: Symantec has said it will develop a Vista add-in that delivers UAC-level security without UAC-level annoyances.

Preston Gralla

AddThis Social Bookmark Button

Quietly, last month Microsoft released one of the best troubleshooting tools you’ll ever come across — Process Monitor. It combines the features of Regmon and Filemon in one package, and lets you monitor the Registry, processes, and your file system. It’s this simple: You should get this software now.

First, download it for free. Extract, install, and run it. You’ll see every process, file, thread, and more currently live on your PC, with an extraordinary amount of information about each.

For example, it shows every query, read, and write to registry values, as well as read, write, query, close, and other kinds of activities related to files. In addition, it displays all process and thread activity.

Armed with this information you can track down any files that an application is creating or writing to…or looking for unsuccessfully. You can see relationships among programs and processes — which is executing which, for example.

There’s a lot more here as well; far more than I can cover in this blog. But given that it’s free, download it and give it a try.

M. David Peterson

AddThis Social Bookmark Button

Firstly, a quick shout out to the folks on irc://freenode/conary, in particular mkj_wk, jtate, and Tybstar for helping me to quickly get to the bottom of a build problem I was having —

And when I say quickly I mean from the time I logged in to the time the problem was solved was less than two minutes.

TWO MINUTES!!!

NOTE-TO-WWW: If you know nothing about rPath and/or rBuilder — you need to fix that and you need to fix that *FAST* else get left behind by the rest of us that took the time to learn about all the wonderfullness that is rPath, rPath Linux, rBuilder, the conary build and distribution system, and the rPath Appliance Agent (among other things.) To truly understand virtualization and appliance-based computing, you need to get to know *EVERYTHING* you can about all of the above mentioned products and services made available to the world at *ZERO* cost by the good folks @ rPath.

More on the above soon, though I would *HIGHLY* recommend watching this two minute clip and be a smarter, more informed human being because of it. I would alsp recommend learning more about rPath, the company, in general. Contact information is located @ that same link. :)

In the mean time,

As per my recent check-in notes to the nuXleus project repository (*PROUDLY* hosted and developed by the same mentioned technologies by the same mentioned folks).

M. David Peterson

AddThis Social Bookmark Button

I found the following in my current feed reader of choice yesterday, installed the Windows Bits, and even finished cooking the Linux bits into the nuXleus project earlier this morning (still working on the next release, though its within spitting distance of being ready — two more apps to finish out.)

Mono 1.2 Released - Mono Project News

Mono 1.2 Released

Mono 1.2 has been released.

Go to the downloads page to get a copy.

Very Cool! Congratulations to the Mono folks for yet another amazing milestone!

That said, to whomever came up with the following feature in the latest Windows installation,

M. David Peterson

AddThis Social Bookmark Button

Update: Firstly, Marcel Weiher gently reminds me of a fairly important point,

In regards to OOP — Smalltalk is at the very foundation of classic Object Oriented Programming.

via [Vista:SmallTalk] On Alan Kay: It’s *ALL* About Messaging

Smalltalk is not only NOT its syntax or the class library,
it is not even about classes. I’m sorry that I long ago
coined the term “objects” for this topic because it gets
many people to focus on the lesser idea.

The big idea is “messaging” — that is what the kernal of
Smalltalk/Squeak is all about (and it’s something that was
never quite completed in our Xerox PARC phase). The Japanese
have a small word — ma — for “that which is in between”
- perhaps the nearest English equivalent is “interstitial”.

The key in making great and growable systems is much more to
design how its modules communicate rather than what their internal
properties and behaviors should be.

Think of the internet — to live, it
(a) has to allow many different kinds of ideas and realizations
that are beyond any single standard and
(b) to allow varying degrees of safe interoperability between
these ideas.

Secondly, I think one of the O’Reilly servers needs a bit of a tune-up on the system clock — Regardless of what it might seem, I promise, I didn’t reply to Marcel *BEFORE* he made his original comment. ;)

None-the-less, thanks for the reminder, Marcel!

[Original Post]
As promised, Peter Fisk has followed up yesterdays post with an overview of using JSON Arrays together with Smalltalk messages,

JSON Arrays and Smalltalk Messages � Microsoft .Net and Smalltalk

JSON (Javascript Object Notation) is a simple, lightweight data-interchange format which has libraries available for most languages. Using JSON, simple arrays of objects can be sent between Vista Smalltalk sessions.

And this method in class Object can then execute the arrays as Smalltalk messages:
performArray: anArray
self perform: anArray first asSymbol withArguments: anArray withoutFirst

As an example, the TmsTicTacToe game sends two kinds of messages to the opposing player:
- a text message which appears in the chat window
- a “mark tile” message which marks a tile on the opposing player’s board

For those of you who would rather chew on tinfoil than muck around with angle brackets, my guess is that this is something you will find most exciting. :)

Couple of things to note,

M. David Peterson

AddThis Social Bookmark Button

So I’ve been watching pfisk’s external Vista SmallTalk project like a hawk. As made obvious by my last post (to my Windows DevCenter blog), I’ve been head down for the last while, and just now getting caught up on my list of MUST READ’s. In doing so, I came across this recent post from pfisk,

The Big Idea � Microsoft .Net and the Smalltalk Language

I recently came across an original quote from Alan Kay where he discusses the “big idea” behind Smalltalk:

Smalltalk is not only NOT its syntax or the class library,
it is not even about classes. I’m sorry that I long ago
coined the term “objects” for this topic because it gets
many people to focus on the lesser idea.

The big idea is “messaging” — that is what the kernal of
Smalltalk/Squeak is all about (and it’s something that was
never quite completed in our Xerox PARC phase). The Japanese
have a small word — ma — for “that which is in between”
– perhaps the nearest English equivalent is “interstitial”.

The key in making great and growable systems is much more to
design how its modules communicate rather than what their internal
properties and behaviors should be.

Think of the internet — to live, it
(a) has to allow many different kinds of ideas and realizations
that are beyond any single standard and
(b) to allow varying degrees of safe interoperability between
these ideas.

The full message from Alan Kay is here.

The guiding philosophy of Vista Smalltalk is to be a flexible tool for building applications from both local and remote components - the language syntax is only a part of the story.

Two things:

Jean Hollis Weber

AddThis Social Bookmark Button

The OpenDocument Fellowship has put out a tender valued at $11,500 USD to develop an open source toolkit to convert HTML+CSS documents into OpenDocument Text. Details here.

M. David Peterson

AddThis Social Bookmark Button

Update: via an update to this same mentioned thread, Seo Sanghyeon reports -

> IronPython nt module now uses Marshal.GetHRForException method which
> is not yet implemented in Mono. I filed Mono bug #78839 for this and
> linked a patch that fixes the problem for me.

Fixed in Mono revision 62550. That was fast.

I’d say I’d have to agree :)

Seo has also built an archive index of all of his reports in regards to each Beta release, and building this release on Mono. On this same site, there are several how-to’s and a solid line-up of Python modules to help get you going with IronPython.

Thanks Seo!

[Original Post]
Seo Sanghyeon is one of the more high profile users found reporting bugs, and building solutions, on the IronPython users list. He has dedicated himself to ensuring a smooth running IronPython runtime for the Mono platform.

For example,

[IronPython] IronPython 1.0 Beta 9 on Mono

After applying a patch for #78839, IronPython 1.0 Beta 9 works nicely with Mono.It passes my informal battery of tests which you can get here. I must automate running this… http://sparcs.kaist.ac.kr/~tinuviel/fepy/example/ Again, many thanks to hard-working Mono team, in addition to incredible IronPython team.

Seo Sanghyeon

Please follow the above link for a complete list of instructions and links to the single necessary patch for IronPython Beta 9 to both compile and run on top of the Mono platform.

Seo represents another fine example of the results that take place when you involve your community with the development and testing/debugging process.

Like Seo suggests, my hat goes off to both the Mono-Project developers and the IronPython development team at Microsoft.

My hat also goes off to Seo. Seo is the perfect model representation of how the symbiotic relationship between the corporate software development world, and the community of software developers in which use their products, both can, and quite obviously does, work.

Thanks Seo!

Jesse Liberty

AddThis Social Bookmark Button

This is the first of a series of blog entries that attempt to answer the question: “what the *(#&# is .NET 3.0 and why should I care?”

First, as you no doubt know by now, .NET 3.0 is what we were calling WinFx until last week and is composed of (among other things):

Technology Name (Acronym) [Former Code Name]

Windows Presentation Foundation Classes (WPF) [Avalon] - Arguably the heart of .NET 3, this is the technology for building rich Windows applications with special features for managing layout, text, 2-d and 3-d graphics and much more.

Windows Communication Foundation Classes (WCF) [Indigo] - A new framework for inter-process communication that will change the way we interact with web services and the way we implement remoting.

Windows Workflow Foundation Classes (WF) - You’d think this would be WWF but the World Wide Wrestling Foundation thinks differently. This is a framework for creating workflow engines that can be incorporated into your application

Info Spaces [InfoCards] - A very nice way to deal with controlling how you identify yourself and how much information you provide on the web.

At the same time that .NET 3 is coming out, ASP.NET is changing, though not quite simultaneously and not as part of the .NET 3.0 release. The key change to ASP.NET will be the release of ATLAS, the .NET Ajax technology and controls.

While all this is happening, Microsoft will also be getting ready to release ORCAS - the next release of Visual Studio, and, oh by the way, C# 3 (with some very impressive new features and the next release of Visual Basic.

So, what is a developer to do?

My goal will be to begin to track this technology, in nice small steps, through blog entries, articles, books, discussions and so forth; that is, to open a discussion with interested readers, here, on Amazon, on my support discussion site and wherever I can.

I look forward to your active feedback.

Thanks.

Devin Ganger

AddThis Social Bookmark Button

I’ve long been a shell scripter. My first introduction to scripting was constructing the 3,000+ lines of hand-written batch files that controlled the operation of my DOS-based BBS. Since I was active in several networks, I had a lot of utilities I had to cobble together, and batch files were the only way to do it.

Unfortunately, shell scripting under DOS and later Windows was always somewhat of a pain. Windows 2000, XP, and 2003 made some strides in making more and of the operating system accessible from the command line (and thus from shell scripts), but I’d really hit my stride in scripting under ksh (the Korn shell) in UNIX. If I really needed to do serious scripting on a modern Windows system, my choices were to either break out some other language such as VBScript or Python (maybe, under duress, JavaScript or Perl) or install Services for UNIX to get a real Korn shell.

Well, no more. Now I’m installing PowerShell, and I’m finding I can do some amazing things in a small amount of scripting. Take a look at this specific example I outline on my blog and tell me what you think.

PowerShell, though it’s not yet RTM, is a powerful enough shell that I’ve found myself wishing that Microsoft would stop ignoring UNIX and actually port it to UNIX machines. PowerShell’s innovations are clear enough to be of great value even on a UNIX system.

Preston Gralla

AddThis Social Bookmark Button

Vista embraces RSS in a big way — subcribing to feeds are built into IE, and there’s a nice gadget for displaying feeds on the desktop as well. It’s too bad, though, that the tools aren’t more powerful.

Preston Gralla

AddThis Social Bookmark Button

The world is abuzz about Bootcamp, which lets you run XP on a Mac. Now there’s word that Bootcamp will let you run Vista as well.

Preston Gralla

AddThis Social Bookmark Button

You may build the slickest application in the world, but what’s the point if you can’t easily deploy it? There’s an easy solution — get ClickOnce to Deploy Windows Applications, a new PDF from O’Reilly. Use it, and you’ll never go back to the old way of deploying apps.

M. David Peterson

AddThis Social Bookmark Button

I recently received an email regarding the official public release of Monad, the new Microsoft Shell (MSH) that I believe deserves a HUGE amount of attention for two reasons:

- For a company who has built their entire foundation on a GUI-focused OS, to then respond to market demands by creating what every UNIX weenie on the planet will begin to salivate for is pretty remarkable in my opinion.

- Directly related to this… just as community-based software development is supposed to work, MS took the lead of the UNIX command line, started from scratch, and made it better. As such, both my hope AND my guess is that the UNIX community will borrow the result right back :)

Possibly as part of the Mono-Project? I don’t know, but it would certainly seem to make the most sense. That said, maybe they have? Not sure… Anybody out there know?

In the mean time here are a few highlights from the email recently sent to beta participants by Leonard Chung, Program Manager - Windows “Monad” Shell:

Devin Ganger

AddThis Social Bookmark Button

Sooner or later as an Exchange admin, you want to disable a mailbox-enabled user account in Active Directory while keeping the associated mailbox intact. Up until now, this caused problems, because as soon as the account was disabled, any mail sent to that alias (or any DL containing that alias) would generate an NDR and a 9548 event ID.

Fatal? No. Pain in the butt? Definitely. In some cases it could cause performance issues, the NDRs were annoying and confusing for non-technical users, and the constant nagging in the event log irritated admins left and right.

In fact, it was a widespread enough problem that Alex Seigler of Microsoft wrote the NoMAS tool, which is available from Microsoft PSS. This tool automatically populates the msExchMasterAccountSid attribute on disabled user accounts.

With this new hotfix, Exchange’s internal logic has been changed to automatically act as if the msExchMasterAccountSid attribute on a disabled account contains the SELF well-known SID if account doesn’t have the attribute already defined.

Note: this hotfix is currently available only for Exchange 2003 SP1; you can’t apply this to systems that are already running SP2. A SP2 version is expected soon.

Alex has written a blog article on the MS Exchange team blog about this if you want more detail. Note that the original article doesn’t state that this hotfix is for SP1 only; you have to read down in the comments to see that. I also don’t see any indication that this hotfix will be available for Exchange 2000…and I’m not holding my breath. Still, this is a welcome hotfix, and it’s a simple no-charge call in to PSS to get it.

M. David Peterson

AddThis Social Bookmark Button

In a recent Amazon Developers Forum post, there was a question regarding the availability of an S3 VB.NET Sample. There is an extremely easy way to go from C# (a C# REST and SOAP sample was provided by the Amazon folks) to VB.NET and/or Boo and back. This information could be useful to a lot of folks, so I’m republishing my response post here.