Lotus Notes/Domino ::


A Nice List of Christmas Tutorials, Brushes, Clipart and Icons

A nice list of free Christmas Photoshop tutorials, Photoshop brushes, clipart and icons.

Comments off

Interview with the creator of CSSEdit 2

One of the reasons I was attracted to CSSEdit was its gorgeous interface. Jan Van Boghout isn’t only a talented developer but a great designer as well. I’m sure many people don’t realize, but Jan designs every element himself. Just look at MacRabbit’s new website, the icons etc. and I think you’ll agree it’s topnotch. High time we sat down with Jan to ask him a few questions about this new release…

1) Let's start by talking about the very clean and slick new interface of CSSEdit 2. I'm sure many readers are wondering how you come up with the ideas and how you tackle the task of creating them. What I am wondering is, if you create them in Photoshop or Illustrator and if you start by sketching them? If you sketch, any examples left that shows the progress?

I always carry around an "analog" notebook. Whenever I think of something cool, I sketch it out or describe how it works. Usually it goes from "think about cool idea X" to more elaborate UI sketches and behaviors over time.

Channeling my ideas into that notebook allows me to focus on what I *should* be doing. I often get random ideas while I'm working on something completely unrelated, so I can just write it down and continue working. Later, I can look at it again and flesh it out.

2) Would be great if you could share a trick or two in how you handle the creation in Photoshop or Illustrator since they are some of the best in the industry.

I'm probably a terrible person to ask this to! I live entirely in Photoshop for my graphics work, mainly because it was the first thing I really used. I took a stab at Illustrator once, but I was too impatient to make the mental switch from my (mostly) pixel based workflow to vector-only. I use Photoshop vectors a lot, but I don't think I could live without those little pixel tweaks. Leopard's 512x512 icons will probably help me change my mind :)

At the risk of sounding like a total newbie, one thing that really helped me is a way to change the opacity of a layer simply by typing a number. I used to click and drag that irritating little slider all the time, now it's usually just a single keystroke that does the trick.

3) How did you come up with the new features? Is that based on user feedback only?

User feedback can be tricky, but it's very useful to detect general trends. If tons of people request something particular, I don't rush into a coding frenzy to implement a particular feature (unless it's just an awesome idea). Instead, I try to dig deeper and find out what the basic problem is.

CSSEdit 2's Overriding is a great example of that. Everyone who codes dynamic sites has their favorite language or system, so I used to get all kinds of requests to handle Ruby on Rails, PHP, .... In the end though, the objective is to test your sites so they work in a browser. So I made anything that displays in a browser work, without having to worry about everyone's favorite languages.

I have a deep fear of bloating my apps, and it's incredibly hard to remove a feature once you've added it. If you've ever asked me for a feature that still hasn't popped up, I may just be waiting for the way to do it "right" :)

4) You seem to have a pretty rare mix of talent. How does a programmer become such a good designer? Or should I reverse the question?

Haha, thanks for the compliment! I guess I was a designer first, programmer second. I've always appreciated pretty things, but it wasn't until Mac OS X that I started thinking about designing anything of my own. Aqua was a "wow, sweeeeeet!" experience for me, and I wanted to duplicate that awesomeness. Of course I sucked at first, but I got better over the years. I'd show you just how bad I used to be, but when I searched my backups, it turned out I skillfully removed all traces of the horrible artwork I remember.

I tumbled into programming mainly by accident. A few years back, I felt I needed something to hide the mess of icons on my desktop, so I wrote DeskShade with great effort. I took Aaron Hillegass's Cocoa book and spent 2 months learning about Cocoa and programming in general. Since then I've gone through a few app revisions and started studying Computer Sciences. Looking at CSSEdit 2, I would say I've improved ;)

5) How has MacOS X changed your life as a programmer? Can you shed some light on the differences in creating CSSEdit 1.0 and 2.0 done on Tiger for example?

It has started my life as a programmer :) Developing CSSEdit 1 and 2 was a world of difference. The first version was written in the Jaguar (10.2) days, and Apple's frameworks have really improved a ton between now and then. Even WebKit didn't exist when I wrote CSSEdit 1.0, whereas vital parts of the app build on top of it now. Developing for Tiger is quite nice, and Leopard looks like it will be even better.

6) As a developer did you ever go to the World Wide developers conference or did you ever receive a sign of life from Apple? Personally I think this 2.0 makes a great chance of winning an Apple design award.

I went my first time this year, it was a blast. It's great to finally meet people in the flesh when they're usually across a huge ocean. A sign from life, hmmm. Some people at Apple must like CSSEdit 2, because it recently got featured on the Mac OS X Downloads page. That was pretty damn awesome! Let's hope even more Apple employees like it when I enter CSSEdit in the next Design Awards :D

7) Do you plan to add HTML editing to CSSEdit?

I plan to keep CSSEdit true to its name, so I wouldn't expect CSSEdit to edit HTML :) Currently the Preview senses changes to the HTML file in any editor, so you can use your favorite tool.

8) Are you going to do in the future?

With the exception of HTML editing, I prefer not to comment on my plans for future versions. They would surely come and bite me in the ass later! That said, I have a lot of improvements in mind for the future.

9) How have you applied your experiences from using Version 1 to make improvements in Version 2?

CSSEdit 2 is almost a complete rewrite thanks to version 1. I had a much more limited view on source editors and CSS development when I wrote 1.0. The new CSSEdit is the result of all the should-have-done-it-this-ways that popped up with version 1.

10) What kind of tools do you use? Why did testing take a long time and did it pay off?

I mainly use Xcode and Interface Builder, and Apple's optimization tools. I have an iMac and a MacBook Pro, but I do 99% of my development on the laptop (or notebook, since it will turn your lap into super-heated plasma). The only thing ruining the experience is Photoshop in Rosetta.

The testing phase took a long time because it wasn't a testing phase in the traditional sense. I was adding features till the last minute, which allowed me to build more incremental feedback. Once the basic stuff works, you can start worrying about the layer on top of that, and so on. I had a great bunch of testers with excellent feedback. I can't say there were a whole lot of bugs (it was rock solid even in the early stages ;) ), but the testing phase exposed common problems with brand new features, such as Overriding.

11) Are you able to make a living off your independent software efforts?

It's too early to tell for version 2, but the outlook is good. I will be a full time student for a while longer though, so I won't be able to dedicate all my time to MacRabbit for a bit longer. I hope it's feasible to go full time once I graduate :)

Comments off

Searching Like A Pro

Comments off

Freeze On Clients Extended

Comments off

Animated Favicons (Tuesday, Nov 21)

I was reading an article on the Microsoft Watch site the other day when I noticed that their favicon (you know, that little icon that shows up in the browser address bar next to the URL) was moving. Moving, I tell you! It was in motion. Not standing still...

I thought to myself: "Hmm, I thought favicon files had to be bitmaps. How do you make a bitmap move?"

Then I had a better thought: "Why don't I just do a View-Source and see what the heck is going on?" So I did. And at the top of the HTML page they have:


Dancing Banana Coolness. You can define an alternate icon that's an animated GIF.

I was going to do that myself, but I have no graphic design abilities and I couldn't think of anything that wasn't obnoxious and blinky. But it would be a fun way to add a little bling bling to the ol' site.

NOTE: interestingly enough, I didn't see ANY favicon for that site in IE6, only Firefox.

UPDATE: here's a fun little animated Domino favicon: Domino Favicon Animated


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments off

Kuler

Defining the colors you will use can always be daunting, it’s sometimes hard to find perfect complementary colors. There are a lot of web-hosted applications out there that can help you with that. If you want an overview of some of the better ones you can find it on my link page. A new kid on the block is ”Kuler” from power house Adobe.

Online community based around the use of color

It's from Adobe labs so you could call it a technology preview or beta. It allows users to quickly create and share color themes over the Web. Users can also collaborate, comment and share color themes based on predefined color formulas or you can create custom themes by using Kuler’s interactive color wheel. It also uses a star rating system ala iTunes so you can narrow things down by only showing the highest rating ones.

Interface of Kuler

Mykuler

Kuler also let's you create your own color combos by several options such as "Analogous, Monochromatic, Triad, Complementary, Compound, Shades or Custom". Once you've found your favorites you can give it a title, tag it and save it to a section called "Mykuler". Another option is to save your color themes as Adobe Swatch Exchange files (.ASE) but you have to own the Adobe Creative Suite for that. I've experimented with it and I must say it's easy to use and I am gonna use it again to go back to my colors that I saved for later usage. Some days are easier than others when you need color inspiration ;)

The Mykuler section

I think it is the first time that Adobe launched something that isn't an application that you have to buy. It makes me wonder if this is a new kind of Adobe that we are starting to see come to life.

Comments off

Spelling Expeditor (Monday, Nov 20)

Inspired by Ben Langhinrichs' recent blog entry on mnemonics, I've been trying to figure out a way to remember how to spell Lotus Expeditor (apparently the unusual spelling is intentional). Here's what I came up with:

I built an Editor in Expeditor.

Cause, you know, "Expeditor" contains the word "editor" at the end of it.

Sorry, that's the best I can do. Back to your regularly scheduled technical gibberish.


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments off

HTTPS Web Service Connections Using Stubby (Sunday, Nov 19)

Currently, if you use the Stubby application to generate files to access a web service in Lotus Notes, and the endpoint is a secure connection with an https:// URL, you will get the following error:

java.lang.NullPointerException
    at lotus.domino.axis.AxisFault.makeFault(Unknown Source)
    at lotus.domino.axis.transport.http.HTTPSender.invoke(Unknown Source)
    ...

This is because the Apache Axis SocketFactory classes that handle SSL connections seem to have been excluded from the Axis package that was shipped with Lotus Notes/Domino 7.0. I can't find them anyway, and neither can my web service agents. So...

short version:
Here's how to make it work:

  • download AxisSSLFactory.zip from this amazing website ;-)
  • extract the files somewhere
  • read and understand the README.TXT file
  • copy the AxisSSLFactory.jar file to your local /notes/jvm/lib/ext folder
  • restart Lotus Notes/Domino on the machine you're on
  • add the following line to your code that is trying to make the HTTPS web service connection, before it attempts to make the connection:

    System.setProperty("axis.socketSecureFactory",
        "com.nsftools.AxisSocketFactories.IBMFakeTrustSocketFactory");

This should allow you to properly make the connection and go on with your life.

long version:
It appears that IBM stripped all of the SSL functionality out of Axis when they packaged it up for Domino 7.0, so the HTTPS connection classes just aren't even there. This was probably a wise idea from a support standpoint -- just in case people like me tried to hack together web service clients like this -- because making "proper" SSL connections in Java requires creating keystores and importing certificates and other stuff that's a pain in the butt.

Anyway, the NullPointerException that was being thrown was actually telling you that there were no classes available to create an SSL socket -- although that wasn't obvious at all based on the error message. To fix that, I took the relevant HTTPS connection classes out of the Axis 1.1 distribution, made some modifications to make them work with Notes, and compiled them up into a JAR file.

To use them, just follow the instructions above.

I'm not really crazy about a solution that requires you to copy a file to the /notes/jvm/lib/ext directory, because it's not transparent, it requires intervention on client/server machines, and it requires a client or server restart, but that was the only way I could find to do it for now. The unusual way that Axis loads the SocketFactory classes seems to require that the class files are actually available on the local filesystem, not attached to an agent or script library.


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments off

CSSEdit 2

Belgium isn’t exactly the Mecca for great software development but since a few years I’ve been a fan of MacRabbit’s CSSEdit, a pretty cool app for visual editing CSS, designed and developed by Jan Van Boghout. Almost 2 weeks ago version 2.0 was released and I had the pleasure of beta testing this little gem the last few months.

My thoughts on CSSEdit 2.0

CSSEdit is the cleanest, simplest, easiest-to-use CSS editor that I know of because it appeals to both aspiring web designers and pros with its intuitive visual controls and a powerful source environment. I like the way the collapsable inspectors are anchored in the editing window and the fact that you can view both the source code and the inspectors at the same time. It shows only one inspector by default, but that's easy to adjust in the Preference pane. Just uncheck this option and you're done.

CSSEdit 2 Preferences

When beta-testing CSSEdit, I've used the Preview feature a lot, a feature I never used in the previous version. In version 2 it has improved so much that it became indispensable in my workflow. Every time I edit the CSS it's adjusted in the Preview window in real time. This makes my working process much more productive. I especially like the X-Ray feature which shows you the complete DOM and CSS path of a selected element in the page. It reminds me a bit of a tool called Xyle scope, which is totally focussed on this task. Below is a screenshot to show you what I mean:

CSSEdit 2 X-Ray feature

One thing that bugged me though was the permission error I got each time I wanted to save the changes I made to an (X)HTML page located on our Xserve here at Duoh!. This happens in BBEdit or DreamWeaver if the file is open in the Preview window. Even closing the file wasn't enough, I had to quit the application.

BBEdit permission error message

As far as I know the permission on the file is set correctly. It's only when I use TextMate that I don't have this issue. I recently downloaded this app and still have to experiment with it, but the first impression of this app is that it is more aimed to programmers than designers.

There are other features that I find very handy in CSSEdit 2 such as the Validate and the Milestones button. I always use the Milestones feature if I need to experiment a bit to fix a bug. This way I can always go back to my previous step(s). A full copy of the CSS file is saved to ~/Library/EditMilestones together with notes. What I can't miss most of all is its intelligent CodeSense. It even remembers what you type most. Then there is of course also the flexible source formatting and the fact that you can group your styles into folders. Last but not least, I hope I made my small contribution to quickly comment and un-comment CSS code, using command slash :)

Any questions you've always liked to ask the developer?

In a next post I'll interview the creator of CSSEdit 2 and I was wondering if you had some questions in mind for him. I'll pick a few of the best and add them to the ones I already had in mind.

Comments off

Notes on Linux Install Script (Saturday, Nov 18)

Nick Boldt wrote an interactive script for installing all the Notes client on Linux package dependencies. Sounds handy. I didn't really have any issues when I installed on CentOS, but I've heard that people have had plenty of problems with missing packages.


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments off

Quick and Extremely Easy Glowing Lights Photoshop Brushes

Create some flashy glowing lights brushes with this quick and extremely easy technique that will let you add flair, glow and sparkles to your illustrations.

Comments off

Well it’s been a bit since the last post over here…

Comments off

Web Services in Domino, Part 2 (Tuesday, Nov 14)

Hey, the second article in my Practical Web Services in Domino 7 series on developerWorks got published today. And this one has code!

In the article, I specifically go over:

  • what all the Web Services properties in Designer mean
  • how to write a simple Web Service
  • how to pass and return basic data types (Strings, Integers, etc.)
  • how to return Arrays
  • how to pass and return Date values
  • how to use InOut parameters (and what they are)
  • free tools you can use to test and access your Web Services

The sample database that can be downloaded with the article has:

  • Web Services containing all the code and concepts described in the article, in both LotusScript and Java
  • Agents that use Apache Axis and MSSOAP to call the web services
  • A few random informational documents

At the very least, after finishing the article you should be able to write your own simple web services right away. The next article in the series has the really fun stuff in it: complex data types, file attachments, enumerations, and Faults. With any luck, Part 3 will get published before the end of the month!


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments off

Speaking at Web Directions North

I’m just starting to settle in in our new place and the next exciting adventure already comes knocking at my doorstep. One of the countries that has always been on my to-go list is Canada, the world’s second biggest country with its 24 thousand kilometers coastline. Its great nature is one of the reasons I want to visit it. Now I have another, it’s called ”Web directions North”.

Northern Exposure

Not so long ago I got an e-mail from Dave Shea asking me if I would be interested in coming to his hometown Vancouver to speak at Web Directions North. After some serious thinking I accepted the invitation. You have to know that the event is brought to you by Dave Shea, Derek Featherstone, Maxine Sherrin and John Allsopp. The last two people are renown for their Web Directions in Australia, a top-notch conference. All the more reason I'm eager to go and I'm looking forward to work with Dave again.

Speakers list

There is a great line-up of speakers and the topics covered are very interesting. One of the people on that list is Douglas Bowman. To my knowledge it will be his first public speaking gig since he moved to Google to become their Lead Visual Designer. Doug has always been an inspiration for me, his work is stellar! We haven't seen each other since @Media 2005, London and that's what I call a nice bonus :) You know these events are all about meeting people. All necessary information about schedules, speakers registrations are found on the Web Directions North website.

Web Directions North - Vancouver, BC, Canada - Feb 6-10 2007

Skiing

Me at the age of 4 on my first skiing holiday at Les 2 Alpes, France (1973)So when Dave told me of the optional two days of skiing it brought back a lot memories. The Blackcomb Whistler sounds great, 30 feet of snow a year, 200+ trails from beginners to the blackest of double black diamonds, terrain parks, 7 mile long runs and home of the 2010 Winter Olympics.

I've been skiing since the age of 4. I still remember this vividly. It was Les 2 Alpes in France and the first French word I learned in ski class was "salo" :D and I remember the teacher kept saying "en avance". Since then I didn't spend any Christmas at home until I was 24. We were always on ski holiday in the French Alps or in Tirol, Austria. We went to Val Thorens, France for years in a row. I really saw that village growing from new, tiny and unknown to huge and super popular over the years. We went skiing at least 2 times a year, sometimes even three times, with the family. I know, you can say it, I've been spoiled rotten as a kid/teenager :) Though, the last time I've skied was years ago. It was Kronplatz (South Tirol), Italy with my boyfriend Geert, Christmas '93-'94. I miss skiing because I really love doing it and love the mountains, but I became far less "fanatic" than my family. No year goes by or they went skiing at least 1 time.

One more thing

I need to figure out the fastest way to fly to Vancouver as it seems that there aren't any direct flights from Brussels to Vancouver with SN Brussels Airlines as they only fly to Montreal and Toronto. Any suggestions?

Comments off

Virtual Machine Restrictions for Windows Vista (Sunday, Nov 12)

Here's an interesting little tidbit from the Gartner Windows Vista blog:

Among Microsoft's new restrictions in the Windows Vista End User License Agreement (EULA) is that neither Windows Vista Home Basic nor Windows Vista Home Premium may be run in a Virtual Machine. Like Windows Rootkits... there is a risk that a VM Rootkit gets installed unbeknownst to the consumer. Microsoft says that consumers don’t understand the risks of running virtual machines, and they only want enterprises that understand the risks running Vista on a VM.

They go on to say that the more expensive Vista Business and Vista Ultimate versions don't have the EULA restriction.

Madness.


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments off

Why is PHP Code Considered Hard to Maintain?

Tobias Schlitt describes Tim Bray's talk at the International PHP Conference. (PDF slides) Tim compares PHP, Java, and Rails along several dimensions. One of those dimensions is maintainability. Tim ranks PHP as least maintainable, Rails in the middle, and Java as most maintainable.

This is not a surprising ranking. After all, Tim is from Sun, and the maintainability complaint is common in Anti-PHP rants. I'm not trying to suggest that Tim is anti-PHP, far from it, it seems. I'm just using his ranking as a spring board to ask questions.

Chances are that your average Java jockey or C scientist's first exposure to PHP is to download one of the popular PHP applications. These are usually the product of some open source mega-project with developers of varying degrees of skill. Our engineer-by-day spends a few evenings with the program. The code is not technically outstanding.

How can something like this be so popular he asks? Yet, the software is successful by definition. Nobody downloads unsuccessful open source applications. The technocrat, heavily invested in his own technical prowess, faced with successful yet technically inferior code experiences cognitive dissonance. The only thing to do is to belittle the successful, but surely offensive code. "I could write better code than this," he says, or "this code sucks," or "this is unmaintainable."

It is easy to dismiss these gripes inside the PHP community. After all, those of us using PHP professionally can write maintainable code in PHP. Ask any programmer and they will tell you, "My code is maintainable." Who writes all of this unmaintainable code, anyway?

Lets take this gripe at face value for a moment. Why is PHP code considered hard to maintain? Is it the language that produces code that is hard to maintain, or is it that the popular ambassadors of the language happen to be programs that are hard to maintain?

Another common PHP sucks complaint is that PHP doesn't scale. When you are talking about traffic, there are all sorts of counter examples for this. Personally, I'm dying to learn the story behind those .php extensions on YouTube. But, this post is not about requests per second.

Another kind of scalability is team size. I think that when some people complain that PHP doesn't scale, what they mean is that PHP doesn't scale to large development teams or large projects. Now we are back to the maintainability issue.

What is it about PHP that makes people think that it is not suitable for larger development teams?

The criticisms of maintainability and scalability generally come from outside the PHP community. But, there is a common complaint from within the PHP community.

It is hard to find a PHP wish list that doesn't include namespaces. It comes up again and again.

Sometimes users request a feature without explicitly making their true desires and intentions known. They say "I want feature X," but what they really mean is "solve problem Y." Good programmers can hear the request for X, but make the jump to solving Y.

When people ask for the namespace feature, the problem they want to solve is integrating code from multiple parties. I wonder if the frequency of this request is a signal of a problem in this department? Perhaps one that requires more than just namespaces to solve? Is the namespace request a proxy for a larger problem?

What is it about PHP that makes it hard to integrate code written by multiple parties, whether they be different developers or different organizations?

Comments off

Rand Fishkin Needs New Shoes

Comments off

SoapLog 1.0.4 (Wednesday, Nov 8)

A special Friends-and-Family version of the SoapLog DSAPI Filter: now with file attachments!

In this exciting version of SoapLog, the full text of the SOAP request and response are also logged to a text file which is then attached to each log document in the SoapLog database. This avoids the embarrassing problem of Notes text fields being limited to only 32,000 characters.

Enjoy. Time to watch 'Lost' now.


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments off

Click on your calendar to create an entry

Rather than clicking on one of the "Schedule a Meeting" or "New" buttons...
Image:Click on your calendar to create an entry

You can create a calendar entry by clicking directly on the calendar when at the time you want the event to occur. ? For example, if I click on my calendar at 10 am
Image:Click on your calendar to create an entry

a new entry is created, with 10:00 am as the start time.
Image:Click on your calendar to create an entry

The entry type (appointment) and duration (1 hour) are filled in automatically based on settings defined in your calendar preferences. ?So if you mainly create meetings and you want them to be 30 minutes long by default, you can configure your preferences that way, and all new events you create will use those values as the defaults, a real time saver versus having to change them each time.
Image:Click on your calendar to create an entry

Similarly, you can change the day/time or the duration of a meeting via drag and drop in the calendar views as well.

Here is an extra tip. ?Last week I blogged about Calendar Display vs. Free Time Search. ? Via feedback in the comments section of that entry (and subsequent emails back and forth) I learned something new. ? If you are working in either the Week view, Two Week view, or Month view AND you do not have "Show Time Slots" selected...
Image:Click on your calendar to create an entry

Then when you click on a day to quickly create a calendar entry, the default start time is selected based on the starting time of your scheduling preferences for that day of the week.
Image:Click on your calendar to create an entry

Thanks for the tip Fabian, I always like to learn new things! ? ?This type of interaction with readers is one of the things I really enjoy about blogging.

Comments

Anniversaries… and Web Services(?) (Tuesday, Nov 7)

Yes, that is indeed a picture of me, and it was my birthday the other day. Bruce must have called in a few favors to get a hold of that old picture. Oh boy...

So I've have a lot of anniversaries lately:

  • my birthday (never mind how many years)
  • the TakingNotes podcast (one year just last week)
  • my blog (4 years and a couple months -- I totally forgot)

As an interesting happenstance, our very first TakingNotes podcast was a discussion of Web Services in Domino, and just today I had part one of my three part series of articles on Web Services in Domino published on developerWorks! I just won't shut up about Web Services, I guess.

The first article is just a general overview of Web Services and SOA -- nothing Domino-specific in there, and it's really just a primer to explain how some of the pieces fit together. Articles two and three (which have already been written and submitted, so they should be out soon too) get into the nuts and bolts of programming Web Services in Domino. They'll have everything from simple web services to complex ones that handle file attachments and enumerations, and there's even a long discussion of how to test your web services once you've written them.

I'm really excited for all the articles to get published, because it was so much fun to write them (and the sample code, which is in both LotusScript and Java). Coming soon to a developerWorks near you...


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments