|
February 2003 Archives
|
Off to London
|
|
February 23, 2003
|
04:18 PM
| Comments (0)
| TrackBack (0)
|
|
Boarding the plane
in a couple of hours. See you at DevWeek in London!
My talks are on
Wednesday (.NET Remoting vs. ASP.NET Web Services, Advanced .NET Remoting and
.NET Remoting Internals) and Friday ("A day of .NET Remoting" - don't miss this
one!).
Katja and I are
really looking forward to this week as it's our first time in London and apart
from the mandatory sightseeing tour, we're going to attend a showing of The
Phantom Of The Opera which definitely
rocks.
|
|
Tablets - once more
|
|
February 23, 2003
|
11:58 AM
| Comments (0)
| TrackBack (0)
|
|
Robert tries to convince me that using the
Tablet is better than paper in any case. I'm sorry, Robert, but I certainly
disagree with you. Paper is more lightweight, doesn't need power, has better
resolution - and using my Visioneer
Strobe Pro, it reaches my harddrive in about ten seconds. (Oh - and by the
way, the Strobe really rocks - my Tablet PC doesn't help me with digitizing
incoming contracts, letters, invoices & receipts.)
So ... do I
like the Tablet at all? Sure I do. Absolutely. 100%. It helps me to see the
future. I can imagine a range of applications in the likes of Journal and
OneNote. Applications, which take advantage of the platform. I can also see the
next generation devices. Devices, which will be more lightweight (let's target 1
lb, ok?) have better battery power (12+ hours) and a higher resolution (about
2000x1600 pixels on a 12" screen would be a good start). Oh - and the
device has to recover from hibernation or standby in < 1 second.
Does that sound
unrealistic?
I don't think so. I
really expect that we will see these kinds of devices in the not so distant
future. We simply have to - the current generation doesn't address the very
issues I mentioned before.
Still ... I
like my Tablet in its current incarnation and actually it's the device I use
most of the time. Combining the power of Journal, OneNote and the Strobe, it
allows me to carry all my data with me in less than 4 lbs. And I can
use it in coach class on the plane. Something that's not possible with my 16"
Sony Vaio.
|
|
Tablet PC - We're not yet there
|
|
February 21, 2003
|
06:42 PM
| Comments (0)
| TrackBack (0)
|
|
After talking with Robert
Scoble - and some other TPC owners - last
week, I finally decided to join the ranks of Star Trek officials and bought the
Compaq TC1000. It's a
convertible tablet with the additional benefit that the keyboard can be
completely detached - leaving you
with a perfect slate-style table. Sorry Robert, but the NEC one isn't sold in
Austria as this one came pretty close
;)
Generally,
it's a nice device - and especially the "Windows Journal" application
absolutely rocks. One can clearly see the future when working with this
device.
However, we're not there yet.
I'll spare you a listing of all the great features
of the tablet - just look at any of the usual pages. I second most of the great stuff you'll hear
there.
But for
today, I'll talk a little bit about the drawbacks or areas of improvement
I see:
* Boot-up speed. This device is positioned
to replace your paper based notebook. But even though it starts pretty fast
(taking from 10 to 15 seconds from hibernation), my sheet of paper and my pen
boot in about 0.1 seconds. I already had two different meetings where I had to
ask the other person to pause a little so that I can start the engines. Very
embarrassing indeed.
* Size & weight. It's still too heavy
and too thick. My paper notebooks weights about a tenth of the Tablet
PC.
* Applications. My paper-based time
planner comes with dozens of forms and it allows me to scribble, edit and paint
on all "one-sheet-a-day" planning pages. Outlook doesn't and even Franklin's
tablet planner forces me to constrain myself to "Add->New
Appointment->...". I want to just write on the pages of my time planner - wherever and whenever
I like!
* Resolution. Even though digital magazine
delivery rocks, I still can't read a full
magazine page on the screen without
scrolling. I think that we need about 1600x1200 (better even 2000 pixels)
resolution on the screens so that they look and feel more like paper.
* Hardware Buttons. I'd like to see at least eight
programmable hardware buttons which should be operated by simply pressing them, not by pointing with the
special pen. I want to use the
tablet for reading and don't want to search for the pen whenever I
want to turn the virtual
pages.
* Hardware support. The built in wireless LAN adapter doesn't
work with Ethereal. That's really
bad. At the dot.net conference two
weeks ago, the WLAN has been completely jammed by Slammer. Ethereal easily allowed me to trace down the
offending machine. I can't do this with my tablet. (Well yes, I can ... I'll
just carry an additional WLAN PCMCIA card. But that's not exactly the point of a
built-in card, right?)
That said ... don't get me wrong: I really like
this device. It's neat-o-factor is close to 100%. It's geeky-gadget-factor is
even way higher. The things mentioned above are just a reality-check from a
user's perspective: take them as an
encouragement or as suggestions when talking with your program manager -
especially if you're working in the Office group and thinking about the next
version of Outlook ;)
|
|
Tablets
|
|
February 19, 2003
|
11:27 PM
| Comments (0)
| TrackBack (0)
|
|

Caution: Talking
with Scoble on the phone can
lead to serious outbreaks of Gear Acquisition Syndrome.
|
|
Médecins Sans Frontières
|
|
February 19, 2003
|
11:33 AM
| Comments (0)
| TrackBack (0)
|
|
I don't normally
spread links to any petitions or "send to ten of your friends"-kind of
stuff.
However, this time
it's different. This is not a hoax or the like and it will take you about 2
minutes to fill out this petition. Médecins Sans Frontièrs (Doctors Without
Borders) are still missing one of their doctors - Arjan Erkel - who
has been kidnapped half a year ago. You quite likely already heard about this
before.
They put up a
petition which will be sent to Mr. President Putin and Mr. Magomedov (Chairman
of the State Council of Dagestan) and which urges them to do all within their
powers to help the efforts in achieving a safe release of this
doctor.
Sign the petition
to support an act of peace of people who are living in
interesting times.
|
|
God's own constants
|
|
February 15, 2003
|
12:10 AM
| Comments (0)
| TrackBack (0)
|
|
Scott
wonders whether God stored the universe's constants "as a
readonly field in a static constructor or a singleton pattern, or assuming
parallel universes, a factory pattern?"
He also presents a
sample which unfortunately sports two serious
bugs:
a) God doesn't use
Hungarian notation for variables. He's a great supporter of the theory
that choosing a reasonable name for a variable
combined with an OO languages with strict type checking and
extensible metadata render Hungarian notation pretty obsolete.
b) God also faced the problem that most constants
aren't finite. Therefore he decided not to store them in any field. Instead he
created methods which returned the results as a stream and combined these with
some factory methods returning delegates to the helper
functions thus creating a pretty pluggable
architecture.
After
implementing a prototype, he saw that streaming of infinitely
long numbers doesn't work pretty well in a SOAP 1.1 based distributed
environment incorporating multiple Universes. As an interim solution
he therefore limited Reality to a single instance. Somehow he has been
assigned to a different project in the meantime so we still live in a single
Reality.
He seriously
promises that the application is nevertheless scalable to multiple instances -
if he only gets to fix the bug in the calculation of the answer to the Great
Question of Life, the Universe and Everything.
Don't
panic.
|
|
I'm flattered
|
|
February 14, 2003
|
12:53 AM
| Comments (0)
| TrackBack (0)
|
|
Within one day,
more than 600 developers signed up for my Distributed .NET
Newsletter. I'm flattered to see that so many people allow
me to send my humble opinions on these topics directly to their
inboxes.
Special thanks fly
out to all fellow webloggers who helped to spread the word:
- Brad Wilson:
Ingo's doing a Remoting newsletter. Do I have to say it? Go! Subscribe!
Now!
- Brian Graf: I can't
wait for the first issue. I'm subscribed, are
you?
- Brian Hjøllund: If you're into .NET, and
would like the lowdown on remoting, then you should consider signing up for
Ingo Rammers's newsletter on .NET distributed application design and
development.
- Brad
More: I'm in, and you should
be too. Ingo's weblog was the first I read regularly, before I even
knew what an aggregator was ...
- Christian Weyer: You probably won't get any better
information about how to design, implement, deploy and maintain distributed
enterprise applications of any scale.
- Darren
Neimke: I imagine that this will be an
invaluable resource ...
- Early and
Adopter: Subscribed...
- Erik
Noble
- Frogware
- John Bristowe: From Mr.
Remoting himself ...
- Marsh Drew: Ingo knows his
stuff, so this is certainly one newsletter I plan to subscribe to and
recommend the same for anyone else that does work with these technologies.
- Matt Croydon: *signed
up*
- Scott Hanselman: When
Ingo speaks about Remoting, I listen - you should
too.
- Steven Vore: Glancing at some of
the cool stuff that Ingo does every day is enough to stay
inspired.
Thanks
guys.
|
|
Distributed .NET Newsletter
|
|
February 12, 2003
|
11:19 PM
| Comments (0)
| TrackBack (0)
|
|
Early next week,
I'll send out the first issue of my free "Distributed .NET Newsletter".
This bi-weekly
newsletter contains real world tips and tricks about .NET Remoting, Web Services
and EnterpriseServices, and design guidance for distributed applications. You'll
also find the occasional pointers to other free resources like white papers,
patterns&practices documents or other great samples on the web.
You can subscribe to the
newsletter in HTML or plaintext format at http://www.ingorammer.com/contact/Newsletter.aspx.
To all
weblog writers, newsletter publishers and usergroup members: It would
be really great if you could help me spread the word! This newsletter contains
real world advice, is completely free and I promise to never give any email
addresses to any third party. Ever. I hate spam as much as you
do.
|
|
Phil got me
|
|
February 11, 2003
|
10:23 AM
| Comments (0)
| TrackBack (0)
|
Phil got
me: Not to be another "me too" on Ingo's redesign, but what's up
with this ;)
<meta name="GENERATOR"
content="Microsoft FrontPage 5.0"> <meta name="ProgId"
content="FrontPage.Editor.Document">
Good point. Ok, let me tell you how this site has been created and show
you a little bit of its magic.
-
I
created a layout prototype in Photoshop. It looked exactly the same
way the website looks now.
-
Cranked open FrontPage to "translate" my image to HTML until
it really looks the same way as my initial Photoshop drawing.
-
Split the page up in header, content, footer areas and put the first
and latter into some magic ASCXs.
-
Done.
So, what's the cool part about this site? It's the magic behind the
scenes. For example, whenever you access an HTML page (like this) the complete
header, menus, etc. are generated dynamically by an http handler I inject into
the request pipeline. This handler takes the content out of the "real" HTML
file's <BODY>, detects the current context by looking at the path,
generates the correct menu structure based on this content, and renders the
complete thing in a templated way.
But that's not all it can do. If the .html file doesn't exist, the
handler looks for a .XML file in the same location (for example the real source
for this one is
actually that
one). It will then detect the namespace used in the XML, and render it using
for example this
XSLT. So, why did I do
this? Because I can later on also use this
XSLT to render PDF output instead of HTML.
Well.
There's one more thing: URLs are immutable. I used a bunch of http handlers
and magic rewriting rules to forward to the current location of the pages. This
way, Dave's link from last
year which pointed here is
still valid, even though I changed blog tools twice and even switched
domains.
Rocks?
|
|
Ascii Table
|
|
February 10, 2003
|
06:37 PM
| Comments (0)
| TrackBack (0)
|
|
I'm currently doing
some serial communications development in .NET. During the course of
talking to the machine on the other end, I was in need of an ASCII
table.
I found a nice one
at http://www.december.com/html/spec/ascii.html.
|
|
Website Redesign
|
|
February 10, 2003
|
05:25 PM
| Comments (0)
| TrackBack (0)
|
|
It's the time of the
year again. http://www.ingorammer.com
has undergone its first major design change.
Looks
ok?
(And yes, I
still have some problems with Opera. In the meantime I'll supply a different
stylesheet ...)
|
|
Jason Bock has an RSS feed.
|
|
February 09, 2003
|
04:39 PM
| Comments (0)
| TrackBack (0)
|
|
I just noticed that
Jason Bock has an RSS feed.
This is a very good
thing as my habits of reading the web have definitely changed. Right now, I read
most developer sites by means of RSS and discover new sites by looking at my
referrer logs. This was also the reason how I found out about Jason's
feed: a link pointed to one of my posts ;-).
|
|
Interception for ServicedComponents
|
|
February 07, 2003
|
05:59 PM
| Comments (0)
| TrackBack (0)
|
|
Clemens is starting to
publicly talk about the features of his interception toolkit for
EnterpriseServices. I think that this very thing is just sooo
cool.
[Transaction] public class Component : newtelligence.EnterpriseServices. AspectServicedComponent { private string val = ""; public Component() { }
[Match("[A-Z]*")] public string SetMeGetMe { get { return val; } set { val = value; } }
GreaterEqualTo(0)]
public int TestField;
[return: MinLength(1)] public string Hello( [MinLength(1),MaxLength(20)] string Name, [Between(1,100)] int Age, [MinLength(1)] out string retString, [LaterThanToday] DateTime when) { return "Test"; } }
This rocks,
right? Not just the fact that one can use custom attributes - that´s already
well known - but even more that his toolkit will allow you to use
interception with ServicedComponents to automatically check these properties
whenever you call the method. The keywords here are automatically
and ServicedComponent. My only question is: Why is there
a stateful variable ("private string val") in your ServicedComponent
;-)? Just kidding ... it's an educational sample.
|
|
15 Days Smoke Free
|
|
February 07, 2003
|
01:52 PM
| Comments (0)
| TrackBack (0)
|
|
15th day!
In the meantime, I was able to
survive a number of challenging events without ever touching a
cigarette:
* Development of a prototype
application in very limited time. Stress Level 5.
* Preparation of 9
hours of conference talks. Stress Level 3.
* Preparation of
(and talking for two and a half hour as well) another set of
conference talks for which I was working on a cool demo application until about
one hour before my talk started. Stress Level 7 for the preparation and
Stress Level 1 for the talk.
* Technical discussions of the
relative merits of .NET and Java until 2 am. It's cool to be able to talk
with two hard core Java guys when they finally confirm that
.NET isn't too bad after all ;-). They also had some great tips about how
.NET should evolve to threaten Java in the enterprise environment - i.e.
they are pretty open to acknowledging some shortcomings of the Java platform.
CMP for example. Stress Level between 2 and 4.
* A friend's birthday party
which involved quite a bit of alcoholic beverages and lasted until 7 am. Seven
out of ten people were smoking there. Eight out of ten people worked in
IT.
Feels
good!
|
|
Matt on documentation
|
|
February 06, 2003
|
07:47 PM
| Comments (0)
| TrackBack (0)
|
|
Matt replies to my rant
on technical documentation:
Good technical documentation is hard
to produce. By the same token, good technical documentation is hard to
come by.
True. Because most developers don't like to write it as they
know (or at least believe) that they write it for the sole purpose of fulfilling
The Process. The other developers don't like to read it because it
heavily lacks quality as it has been written only to fulfill The
Process. So when they have to write another piece of documentation, they
know (or at least believe) that they write it for the sole purpose of fulfilling
The Process. The other developers don't like to read it
....
Break the cycle. Write your next documentation the same way
- and with the same quality - as if you'd write an article or book. Your readers
will love it. And don't forget: documentation is marketing your code to a
peer.
|
|
Documentation
|
|
February 06, 2003
|
06:03 PM
| Comments (0)
| TrackBack (0)
|
|
I love writing
documentation.
Technical writing is
a form of communication which takes a certain degree of sophistication.
Especially when you actually expect someone to read it.
I guess that in
today's corporate environments, too many papers are produced just to suit
the process. Been there, done that - and I will avoid these kinds of
projects like the plague. Sorry folks, but I'm a technician and I won't follow
your project politics when they force me to do work for which the quality of the
resulting product doesn't matter. I won't write documentation which isn't read
and I won't write code which nobody will use because it's just to silence
political opponents (that is, project politics - not the real one).
Period.
Am I against
corporate processes? No, definitely not. Whoever has worked in a leading
role on 30+ person projects - as I did - knows that a certain number of
business processes is definitely needed to prevent absolute chaos. The
difference lies in the quality of these processes and whether they
have been designed by people who know the tasks at hand (i.e. if the people
who did the job every day for years decided to formalize it) or by people who
just creatively created The Process but never thought about living it.
I just wonder why corporations today accept that the people who did a
twenty-minute task ("build production and deployment") successfully
for years can be pushed into a process which takes 30 letter-sized pages of
flowcharts. Flowcharts which aren't even complete and contain too many bugs to
appeal to any software developer and which result in the same process
taking 8 hours for a single build plus deployment to QA
department. During this process, dozens of pages of documentation are
generated which quite likely won't ever be read by anyone. Anyone still wonders why
IT is so slow today?
But let me get back
to talking about writing technical documentation. For me, writing the
documentation of a framework which has been created by one of my
teams or clients is equally or maybe even more rewarding than actually
designing and coding the framework. Why? Because documentation is marketing.
Documentation means selling your code to a peer.
Innovative
frameworks have a certain drawback: innovation. The developers who should use
the framework will have to understand how it works internally and how they
should write their code to actually use the
capabilities your framework - else they won't appreciate the
existing code base. And remember: a good developer will never like a
framework he doesn't understand. You have to provide quality marketing documentation.
Writing good documentation is like writing a book: You have to forget
everything you know about the application and put yourself in the reader's seat.
Then you start to write until you reach a point where you don't know anything
more you could tell. That's when you click on File|Print.
Next week is
documentation week. I'm looking forward.
|
|
More Essays. No Blogging.
|
|
February 04, 2003
|
08:14 AM
| Comments (0)
| TrackBack (0)
|
[Workbench]
The inventor of
the term blog is giving up his verb. "I've gotta do something else with this
site," says Peter Merholz, who began one of the first 25 weblogs in May 1998. "More essays.
No blogging."
So be it.
DotNetRemoting.cc and IngoRammer.com will change considerable as well. More
essays. No blogging.
|
|
|