Carly Fiorina on Entrepreneurial Thought Leaders podcast

I recently learned about Stanford's Entrepreneurial Thought Leaders podcast (on the Java Posse podcast: thanks Tor Joe!), and downloaded a few episodes to my iPod.  I swear, dog walking has NOT been the same since I got the iPod.  Sometimes I extend my walk because I'm enjoying the talk so much that I don't want to head home (or back to work).  Today was one of those days, in spite of the fact that it was raining.

Anyhow, today's speaker was Carly Fiorina, former CEO of HP, and Stanford alum.  She studied medieval history and philosophy at Stanford as an undergrad.  She talked a bit about her windy, twisty career path, and it was quite interesting.  I have to say, I would have never guessed that she was a secretary as her first job out of college, before her MBA!

The entire talk is great.  The first 40 minutes or so consist of her speaking.  After that, there's a Q&A session with the audience (another 30 minutes).  If it takes too much out of your day to listen to the entire episode, definitely listen to the first 40 minutes.

The highlight for me was in her describing leadership.  She talked a lot about it being a personal choice.  Anyone can choose to be a leader, and make a difference. It's not always those who seem to be in the best position financially, or status-wise, that make leaders. Often times, those people don't choose that route, whereas someone that you would expect to be unempowered to make a difference stands up and chooses to do so.  She compared some Harvard grads in her age group who seemed unable to determine what it would take to make a difference to a soldier, recently back from Iraq, who had lost both legs and his eyesight.  It was the 20 year old soldier who was incented to make a difference, in the lives of other people who had been injured and not the Harvard grads who, seemingly, had "everything" going for them.

She described some key aspects of a leader:

  • Capability
  • Collaboration
  • Character

It takes all of these things.  It struck me that the times in my life when I have been most disappointed in situations where I met someone who I thought was a leader, were when the person violated one of the these principles, specifically the latter two. From a collaboration standpoint, either they don't know how to "ask questions and LISTEN to the answers" (as Carly put it) or they don't seek out people with differing viewpoints and learn from people with varying experience.  Or, they fail in the character category by not treating people well.

If you have a chance to listen to this podcast, definitely do so (and feel free to post comments; I would love to know what others thought). I'm looking forward to the other talks in the Stanford Entrepreneurial Thought Leaders series and I hope that I will be as thrilled with them as I was with this.   The dog will enjoy them too, I'm sure.  Anything that prolongs his walk makes him happy.

Stanford Entrepreneurial Thought Leaders podcast
(also available on iTunes)

Stephan Diehl on PyPy and Stackless Python

Visitor from Germany to speak at the Ann Arbor ITZone, May 16 at 7 pm

Stephan Diehl will be visiting Ann Arbor and we were lucky enough to tap him to do a talk while he's in town.  He will be speaking at the Ann Arbor ITZone, for a special Michigan Python User Group meeting, on May 16 at 7 pm.  He will talk about both pypy and stackless python.

Please join us.  The meeting is open to the public, and free.

The Ann Arbor ITZone/SPARK Central is at 330 E. Liberty (lower level), Ann Arbor, MI.

PyPy
An Implementation of Python in Python
Stackless Python
Simplifying thread-based programming in Python

The Productivity Continuum: Ruby for Big Companies

Meeting review/notes from May 2, 2007

On Wednesday, May 2, Joe O'Brien made the trip from Columbus to present a talk on Ruby for the Enterprise, for the Ann Arbor Computer Society.  We first made Joe's acquaintance in the time leading up to CodeMash 2007, when he saw that we were looking for Ruby speakers and he stepped up (and also promoted the heck out of it, so thanks much, Joe!).  Joe helped to found the Columbus Ruby Brigade, and he's recently written a book on domain specific languages (DSLs), which should be available soon.  The book isn't available for order yet (as far as I can tell), but the title is:

Pragmatic DSLs In Ruby: Fluent Interfaces for your Code by Zak Tamsen, Jeremy Stell-Smith, Joe O’Brien, Neal Ford

I had originally thought that the talk was going to be on Ruby on Rails, but Rails was definitely only a small part of it.  Rails is an example of a DSL used for web programming.  Joe focused on integrating Ruby into the enterprise.  He talked about how you can integrate with Java, if your back end is already written in Java.  He said that he gets dirty looks from Ruby programmers for even suggesting a thing, but Joe strikes me as a pragmatic guy.  He wants to use powerful tools to solve problems, but he understands that it doesn't always make good business sense to go in and rip everything out and start over.

Joe talked a lot about Ruby as an "enterprise glue" language, for accomplishing specific tasks.

After hearing horror stories about deploying Ruby apps, I was glad to hear Joe talk about Capistrano, which he says simplifies all of that.  Another developer whose opinion I trust immensely, Barry Hawkins from Atlanta, concurs.

He described a few other tools, including RubyGems (akin to Python's cheeseshop, this is one-stop shopping for Ruby components). Watir is used for web application testing in Ruby.  It looks a lot like twill (written in Python), to me.

Joe is hosting the Enterprise Ruby Conference in Columbus July 16-18.  It looks like a great conference, with some really great speakers.  The cost is discounted to $199 for user groups (AACS members can contact the AACS for a discount code, and other user groups can get one from Joe).  He's heavily promoting this event to user groups, and I think that's a fantastic idea.

This was a great talk and I was really glad that I was able to attend, and that we were able to spirit Joe up to Ann Arbor to speak.  I don't know if I will get down to the Ruby Conference, but I'm sure it will be a great experience for those who can.

Ruby

RubyGems

Watir
Web testing in Ruby
Capistrano
Deploying Ruby apps
Enterprise Ruby Conference
(blog entry description)

Eclipse for SWT Development

Review/notes from May 1 meeting

On Tuesday, May 1, Carlus Henry from the Grand Rapids Java User Group, presented "Eclipse for SWT Development" at the Ann Arbor Java User Group.  He declared himself an Eclipse Enthusiast.  He drew a distinction between an evangelist and an enthusiast and declared that evangelists get paid for their admiration and enthusiasm!

In any case, he was definitely enthusiastic about both SWT (Standard Widget Toolkit) and Eclipse.  Since I use Eclipse, but all of my GUI building has been in Swing, so I was really interested to hear more about SWT.

SWT is pretty famous for its ability to maintain the native look and feel, and performance, by harnessing the JNI (Java Native Interface).  I recently met Josh Marinacci, of the Swing team, and I've seen what really cool things can be developed with Swing, so I definitely think that Sun is not sitting on their hands in this regard.  Over at SwingLabs, there's some very cool stuff to look at, including the Nimbus Look and Feel. 

SWT is used for Eclipse plugins and RCP (Rich Client Platform, for which SWT is the widget toolkit).  Eclipse itself is written using RCP.  One disadvantage of SWT over Eclipse is in terms of Resource Management.  Native calls mean that managing resources become the programmer's responsibility, specifically.  The parent-child relationship (tree structure of widgets) does make this easy, but you have to know to manage it.

From Carlus' demo, I didn't feel that the layout was any less cumbersome in SWT than in Swing, just different, and so an additional learning curve is required on top of Swing layout management, if you already understand that.

I didn't leave the meeting hot to try SWT any time soon.  Honestly, with what I've seen Josh and SwingLabs doing, I'm really pleased with the new things that you can accomplish in Swing, and I'm looking forward to seeing the screencast from his "just 1 line of new code" at JavaOne this week.

It took me a while to get this review out, and in the meantime, IBM pulled its support for the Visual Editor in Eclipse (GUI builder for SWT applications).  I'm left wondering what that means, especially considering Matisse is such a full featured editor for Swing development (see *** Wall (of the Java Posse)'s article on using Matisse)

I really enjoy meeting Carlus.  He's an excellent speaker and I look forward to hearing him speak again sometime soon.  He's also heavily involved in the software community in Grand Rapids and he and I have promised to share resources to do what we can to promote software development, share JUG speakers, etc. in Michigan.  And I sure hope that Carlus sends an abstract for CodeMash 2008!

SWT

Eclipse

SWT Visual Editor: Dead?

Swing Labs

NetBeans 5.5

NetBeans Milestones downloads

Will it be SWT or Google Analytics on Tuesday? Or Both?

Tuesday, May 1 Ann Arbor Technical Meetings

It's the first week of the month, and so the Ann Arbor area is hopping with user group meetings.   I already mentioned the AACS meeting (Ruby on Rails), but there are also meetings on Eclipse for SWT Development and Google Analytics at the ITZone.  The Python User Group meeting, which would typically take place on Thursday May 3, is postponed until May 16, for a special event with Stephan Diehl (who will talk about stackless python and pypy).

So here are the meeting announcements for each of the Tuesday night talks.  I guess if you're resourceful, you could attend both, since the Google analytics talk goes until 7 and the Eclipse talk doesn't start until after the open networking at 7 (so probably 7:30)!

——————————————————————————

At the AAJUG meeting, Carlus Henry speaks on:

Eclipse for SWT Development

Date: Tuesday, May 1st, 2007
Time: 7:00PM – 9:00PM EDT

Open Networking starts at 7 PM.

Meeting Location:
Washtenaw Community College, WCC BE158

 http://www.wccnet.org/search/roomlocator/index.php?room=BE158&bego=Go 

PRESENTATION:
===========

I. Introductions
    A. Who am I?
    B. Who are you?
II. Presentation Goals
III. What is SWT
    A. Setting up Eclipse for SWT Development
    B. SWT Demo
VI. What is JFace
    A. JFace Demo
VIII. Eclipse RCP
    A. Case Studies
    B. Demo

 
—————————————————————————————

At the ITZone, Jeff Gillis introduces and demos Google Analytics, a free web site analytics solution from Google used by web site owners and marketers to better understand their users' experiences, optimize content and track marketing performance. Google Analytics also shows advertisers' data about their AdWords ROI so that they can purchase more appropriate keywords and track Ad Group performance.
Date: Tuesday, May 1, 2007.
Networking starts at 5.
Program 5:30-7.
Costs: Members are free, Nonmembers are $25, and students are $5.
Jeff Gillis – Associate Manager, Google Analytics
Jeff has been with Google for more than three years, working on AdWords operations, and since Google acquired and renamed Urchin, with the Google Analytics team. He focuses on marketing and operations for the service, and is a regular contributor to the official Google Analytics blog (http:// analytics.blogspot.com ). Before joining Google, Jeff was a technical solutions specialist for ParentWatch.com in New York City. He graduated with a BA in Literature from Stanford University.

Ruby on Rails at the Ann Arbor Computer Society

Featuring Joe O'Brien of the Columbus Ruby Brigade

Joe O'Brien, who helped to found the Columbus Ruby Brigade, is going to be speaking at the next AACS meeting, on May 2.  Meeting starts around 6 pm (well, that's when the pizza arrives; Joe will probably start talking around 6:30).

So, if you're in the Ann Arbor area and want to learn about Ruby on Rails, here's your chance.

AACS meetings are free and open to the public.  Annual memberships (just $20) do qualify you for door prizes and to vote in elections.  The May meeting also happens to be election night.

Meeting will be held on Wednesday, May 2, at 6 pm at the Ann Arbor ITZone/Spark Central, 330 E. Liberty (lower level), Ann Arbor, MI.

AACS

Columbus Ruby Brigade

Ruby on Rails

UI Smackdown: Session 4

Combining Flex with other technologies

Is it possible to combine Flex with other technologies?  We saw James Ward build a Flex front end for a TurboGears app at CodeMash.  What else makes sense? Those are the questions that we tried to answer in the last session that I attended at the UI Smackdown.

Flex runs on the Flash VM, which has a small memory footprint. It's possible to build a GWT programming model for Flash.  This would generate ActionScript instead of Javascript. That's interesting.  The goals of such would be to reuse components so that you don't have to learn a new interface, leveraging the Flex framework (e.g., tab navigation, etc.).  You would want to use the GWT Compiler, which is written in C/C++.

This would provide good discipline in Javascript, in terms of using libraries and namespaces.  It would improve searchability.  This would be heavy on HTML, rather than AJAX.  One downside of AJAX is that it's not spiderable, hence the reduced searchability.

This is an interesting area which certainly requires more thought. It sounds like James Ward IS thinking in that direction and it will be interesting to see what Adobe comes up with.

UI Smackdown: Session 3

XAML/MXML: Why both?

I'm always curious when we have competing standards emerging, and I wonder how that happens, and why.  So, since we had people who were knowledgeable about both Flex and WPF at the UI Smackdown, it seemed reasonable to explore this issue with respect to XAML (Microsoft's XML scripting language for use with WPF) and MXML (Adobe's XML scriptiong language for use with Flex).  How similar are they?  Do they strive to solve the same problem? Will one standard emerge?

MXML is Adobe's markup language. It's essentially a DSL (domain specific language) for ECMA script.  You write MXML and it compiles into Action Script.  It has a familiar feel to HTML.  Used for layout.

ActionScript is used for all procedural components.  In Apollo, ActionScript compiles to byte code on the server.

XAML is Microsoft's markup language.  You use it to write WPF applications.  Instead of ActionScript, procedural components are written in C# or VB.NET.  XAML is not just for WPF.  It's a serializable format that can be used to:

  • serialize event wireups
  • refer to other objects in serializing code
  • serialize property injections
  • add properties to a language

You can pull in more than just state with XAML.  WPF and WF use XAML (and other technologies will as well).

Thus, MXML is really more specific to layouts, while XAML manages serialized formats.  The general consensus from both vendors is that the technology needs to mature before it can be standardized.  It's hard to work with other primary vendors while trying to innovate (e.g., XUL, SVG).  It's better to give the technologies time to mature and then let them come together.

With that understanding, we moved on to what some described as the "real" question.  The tooling on top of XAML and MXML is really the key, not the underlying technologies that implement it.  So the real question is: WPF/E or Flex? 

In designing tools toward productivity in developers, Microsoft has the edge.  Adobe's process is more manual, but this will be addressed in Flex 3.

Microsoft's Expression UI writes to XAML source files in the same project as Visual Studio Developer.  On the other hand, pure designers feel more comfortable using Photoshop, so Adobe certainly has an edge there.

For now, the jury is out regarding which to use.  As they both mature, this will be interesting to watch.

MXML
Adobe's markup language, used to build Flex apps
XAML
Microsoft's markup language, used to build WPF apps

UI Smackdown: Session 2

How to Hook into an Existing App

The second session that I attended at the UI Smackdown discussed opportunities for hooking new technologies into an existing application.  In particular, one of the participants wanted to hook a WinForms app with a WPF app.  While we were there, Drew Robbins from Microsoft demonstrated how to do this, and gave references to some tutorials at msdn.microsoft.com.

One discussion that came out of this session was the idea that the goal in generating user interfaces is to be able to suspend the disbelief of the users that they are actually using software.  They need to feel like it's a natural progression toward getting their work done.  With WinForms, this is difficult, but WPF improves this experience. 

One objection that people face when moving away from winforms is that there is a lot of third party support for it.  However, looking at WPF, it's apparent that a lot of these things have been built into the framework, so third party support is not as critical.  Rather, the downside of WPF at this point is in documentation (or lack thereof).  Once you figure out what to look for, WPF is a lot easier than Winforms.

If you're looking for a mobility solution, for now, WPF isn't going to help.  It doesn't appear that there's any intention to have WPF/E (E=Everywhere except mobile?).  WPF/E builds true web apps using layout/vector graphics from WPF with XAML.  Javascript drives it.

An aside that came out of this session was the idea that we often look at migrating an application based on what it currently does.  Rather, we should consider what the USER is trying to accomplish.  This will offer us more of an opportunity to provide a rich web application experience, since we aren't stuck in the mode of what has been done.

WPF

WPF/E
Scott Guthrie's Blog Entry
Winforms with WPF
(Thanks, Drew, for the link!)

UI Smackdown: Session 1

Web App Limits: Real World Experiences

A group convened a session to talk about web applications, and where they break down with real world experience.  The limitations were noted as:
1. Javascript requires testing in many different browsers, but the GWT strives to solve this problem
2. May experience CSS challenges with GWT
3. Limited browser support for multi-media and vector graphics (resulting from lawsuits between Apple and Microsoft?)
4. Drag and Drop onto a scrollable pane generated some headaches for those who had used GWT

The recommendations and observations included:
1. Use Javascript for fast prototyping and then build in GWT once the interactions are discovered
2. Flex can talk to AJAX apps
3. Controls in Flex are builg using vector bitmaps.
4. WPF and Flash allow designer to build whatever they want and the programmer can use it
5. Can encrypt Flex and send over SSL.
6. Can unitttest classes using Flex
7. Javascript, Flex, and WPF build on strengths of the designers
8. Innovation in the browser has stagnated.  By adding in elements other than pure Javascript, Microsoft and Adobe (and others) are able to innovate more freely.

Google Web Toolkit Designer
A great tool for building apps using GWT