Contributor Page



22:  Reviewing TLCC's Learning XPages Courses

In this show I do a review of TLCC’s distance learning products. I talk about what they offer and then do a demo of what their courseware by looking at their XPages lessons. Disclaimer:I was not paid for this review. Over the years I’ve purchased with my own personal money several TLCC courses, including the first XPages course. However, I was given a free review copy of the second XPages course and I do talk about that course during the show.

199:  Bitmask, Enums and Creating Excel reports from XPages

This is the big one! The last demo of my presentation at MWLUG 2016. In this show I’ll demonstrate how you can use something called a “Bitmask” and combine it with some Java code and the Apache Poi project to allow the user to create a custom Excel spreadsheet. The user will be able to choose any column they want from the data provided and save it to Excel. Users like that kind of stuff.

196:  No Dependency Page Controllers

We’ve talked about using page controllers before on the show, but typically I’ve used an external library. Today I’ll show a way to get started with page controllers with no external dependency. I consider my move to page controllers as one of the best things I’ve ever done as an XPages Developer. Now there is no excuse for you to not consider using page controllers in your XPages applications.

56:  XPages Jumpstart Part 2: Beyond the Introduction (EE6)

100:  XPages – Modernize Yourself!

Welcome to the 100th Episode!!! This show is pretty much my actual session from IBM Connect. Unfortunately there were no room monitors and I ended up running a little long. Here is the original Abstract: XPages Development: Modernize yourself! Theres a lot of tools available to the XPages Developer. @Formulas, Server and Client side JavaScript, Expression Language, Java, and even Source Control are the tools of the trade these days. But which tools should you use? Which should be avoided and why? Come to this session and learn about their strengths and weaknesses. See how easy it is to go from @Formulas and LotusScript to JavaScript. Learn how to get started with new tools and concepts like Java and Source Control. Find out what resources are available to go further. Before you can modernize your applications you need to modernize yourself! === In this show I look at several really important topics for the XPages Developer. I talk about how you need to change you’re thinking when approaching XPages applications and why that’s important. I also talk about the different languages in XPages and how similar some are and when you should use some instead of others. In the beginning of this show, in what I think is the most important part really, I talk about how you can actually learn more about XPages by SHARING more! Bascially I implore you to either blog, or post to the forum or wiki. And for your convenience I’ve already anticipated your excuses for not doing so and succesfully debunked them all. haha That section starts at 24:52. So if you do nothing else – watch that little bit please. I think it’s that important. In the code section near the end I talk about Expression Language and show you how to use that and even Custom Language. But the best bit I think is how to use a Managed Java bean to toggle between Edit and Read mode for your fields and save data from the Bean itself. The bad part about this show is that I ran WAY too long. People always say you talk faster live and here’s proof. This 60 minute session became an 80 minute NotesIn9! This actually beats my 73 minute Introduction to XPages show. I really thought about throwing this away since it’s so long but the Intro to XPages is my most popular show. So since this is done, I figure I’ll release this and see what happens. I’ve actually reviewed this to try and see what happened, and other then a little stumble or two I don’t think it’s too bad. I did get lost for a minute in the demo section… it was late.

131:  Use SourceTree for better XPages Source Control

In previous NotesIn9's I've talked about using Source Control inside Domino Designer. Well today it all changes! Whatever I said before.. forget it! The great Jedi master Yoda once said: "You must unlearn what you have learned". I'm officially calling a "Do Over" and we're going to start from scratch with Source Control. This show focuses on using Source Control but in a whole new way. Rather then trying to control it from inside Domino Designer we're going to use a really great FREE external application called "SourceTree". This app supports Git and Mercurial and has built in "HG Flow" which really should take a lot of pain out of creating branches and releases. I ATTEMPT to demo how to install SourceTree, how to use it with your XPages Applications and how to push it to the server and pull an application back down from the server. This is an early video. I've only barely started using this myself but I wanted to get this out right away for our internal development team as well as anyone else who's interested. It took me a while to "get it" and I want to spare anyone the pain that I went through. I will do a followup video as needed. Big thanks go out to Nathan T. Freeman, Russ Maher and Declan Lynch for their help which led to this video.

61:  XPages View and Document Split Screen (EE 11)

49:  XPages: Login and Logout

In this show I take a look at how to use the Login and Logout node of the Extension Libraries Application Layout Control. It should be noted that currently there’s a bug in the extension library where the logout piece doesn’t actually work. So I demonstrate how to get around that until it gets fixed.

17:  Control Rendering in XPages

In today’s show we’re going to go back to XPages and look at how to a scoped variable, Partial Page refresh, and the Rendering property to control with something is written to the browser or not. For Notes Client developers this is going to be like working with “Hide-When’s” in the Notes Client.

45:  Tracking File Downloads

In this episode I take a look at how you can use an XAgent to track any file this is downloaded or link that is clicked on your website.

13:  XPages and XML

In today’s show I talk about XPages and especially the need to start becoming comfortable with the source window. Unlike traditional Notes Development where you only have an IDE, XPages allows you to access the actual XML source of the page. Watch how you can use that to your advantage and do a couple of simple things that can not be done in the IDE alone. May the source be with you!

142:  Adding a Please Wait to XPages

In this show it’s back to XPages and demos! I will do a quick recap on the last show as 141 seemed REALLY popular but then it’s back to work. In this show I demo a quick tip on how you can use CLIENT SIDE JavaScript to show the user the server is processing. UPDATE: Fredrik Norling (@XPageDeveloper) tweeted me a link to an OpenNTF Snippet designed to handle Partial Refreshes: http://openntf.org/XSnippets.nsf/snippet.xsp?id=standby-dialog-custom-control Also, Eric Tomenga sent me a nice email with even another solution. This one looks like it uses the Ext. Library. http://xpagesera.blogspot.com/2012/05/add-ajax-loading-control-in-xpages-for.html I actually did look for a jQuery version as well since I’m using this inside the Bootstrap project. I couldn’t find one but I’m sure there’s something out there. I do love having options.

167:  Learning XPages Part 8 – Working towards CRUD

In this show I continue on to the goal of CRUD. CRUD stands for Create, Read, Update and Delete. By the end of this show we should be able to achieve all 4 actions against the Company document. I’ve not done anything to really make this app look pretty yet. Honestly I’ve given the UI very little thought so far. I’m trying to just focus on the core functionality at the moment so the UI stuff doesn’t distract. I do want to better integrate Bootstrap to clean up the UI at some point when it makes sense. Note: I’ve been pushing a bunch of these shows out quickly. I filmed them a while back in one evening. I believe I have one more small one then I’ll probably take a little break from this series as I have another personal XPages project that must be ready by Thanksgiving.

30:  Formatting Numbers in XPages

This is just a quick little show today to demonstrate a couple of ways to deal with formatting numbers on an XPage.

6:  Blueprint to XPages

If you’re a Notes Client person getting started in XPages/Web stuff, you’re going to need to learn CSS on top of other things.  Blueprint allows you to place items on your page easily.  I really like it.  If you want to see a good example of Blueprint in action check out IQJam.net.

59:  Using Java HashMap and TreeMap in XPages (EE 9)

200:  NotesIn9 200: Access Server Databases From Code

Wow! Major milestone here. I really don’t want to make too huge a deal of this at the moment but I do have to say thanks for all the contributors that helped the show get to 200 episodes. NotesIn9 has contributed 94 + hours of free tips and tricks to the community. Most importantly to me, 41 contributors have donated their time and talents to the show and I am so grateful for them helping out with my silly little corner of the Internet. I could never thank them enough. I had many ideas for what to do with this show and in the end I decided to try and help a viewer who sent me an email. NotesIn9 was created to help others so to me it seems so very appropriate to mark this milestone with at least an attempt at helping others learn to code. Learn. Code. Share.

60:  Simple Repeat Controls (EE 10)

I recently realized that of all the demos I’ve done on Repeat Controls, I’ve not done a simple one that actually looks like a table. There are a couple of ways to do this and in this show I demonstrate my prefered method. Along the way I talk about data binding formulas and working in the source pane as well. This is a really basic show for those new to XPages. If you’ve been a long time viewer there might not be much new here.

15:  How to Search Email and Change the Web Browser

In today’s show I do my first one that’s geared to the End User and not the Developer. There were a couple of people on Twitter recently who had some issues with Notes. The first wanted to know how to tell Notes to use Chrome as the browser and the other was having some problems searching his Email database.

24:  Fancy Type Ahead in XPages

In this show I try and do something rather dangerous. I attempt to explain a Tim Tripcony blog post on creating Fancy TypeAheads which are TypeAheads that show additional data in the lookup results. This helps aid the user to select the correct record.

161:  Learning XPages Part 2 – Designer Plugins

In this show I take a look at adding additional tools to your toolbox. Specifically we’re going to grab some great projects from OpenNTF.org. Among them are: XLog Reader Bootstrap4Xpages XPages Ext. Library OpenNTF Domino API Debug Toolbar Some Notes: When I talked about the OpenNTF Essentials. I didn’t realize there were 2 projects. The “runtime” and the “toolbox”. I was referring to the runtime even though I had clicked on the toolbox. I filmed a bunch of shows on a day I was under the weather and having some Asthma issues. So the mic picked up more “breathing” then usual. Hopefully that’s not too annoying.

190:  Barcode Scanning in XPages

In this show I demonstrate how I recently improved web pages that let a user scan barcodes with a blue tooth barcode scanner. Big thanks to Declan Lynch for the help on the Client Side JavaScript solution. This also takes advantage of the undocumented XSP.fireEvent() method. A little more information about this technique can be found here : http://www.notesin9.com/2016/03/29/in-xpages-you-can-add-an-id-to-an-event-handler-and-call-it-from-csjs/

138:  XPages Combobox Improvements

In this show I take a look at using a Combobox inside XPages. I’m going to demo how to use Java – but it’s NOT scary Java – I show you everything. We’re going to show the user a pretty value in the combobox but get a hold of and store the key value for our use. I’m also going to show how you can create categories inside the combobox. That’s kinda cool I think depending on your situation. Update: Oliver Busse – @zeromancer1972 – has another example of this on his blog. http://mardou.dyndns.org/Privat/osnippets.nsf/id/OBUE-9C5KDN In that post he’s reading the data in from a view. Cool!

46:  Building Forms with Extension Library

I talk about several different ext. library controls. The focus is on Field Layout Controls like “Form Table”, “Form Layout Row”, and “Form Layout Column”. But to get to that point I first touch on the App Layout control and the Navigator. I hope you like it.

36:  The IBM XWork Server

In this show I’ll talk about the newly announced IBM XWork server. What it is. What it can and can not do. No demo today. Just some information in this exciting new server announcement.

188:  Adding a “Please Wait” to XPages

In this show I demonstrate a couple of techniques for improving your UI when you have a longer running code process. I show how to add a “Standby” custom control to your application for Partial Refreshes and another technique for when you’re opening a page that needs a few extra moments to process your data. Big thanks to Fredrik Norling and Vikas Tiwari for their original contributions on this subject.

166:  Learning XPages Part 7 – Company Controller

In this show I demonstrate how to setup and set using a Java “Page Controller”. This is a technique that Jesse Gallagher came up with and I absolutely love. Without a doubt it saved me a TON of work on a recent day job assignment. There’s a little effort involved in setting it up but it’s so worth it in the long run.

164:  Learning XPages Part 5 – Application Properties

In this show we actually go into Designer and create a new database that we’re going to be working with for our application and I have a little discussion on some of the application properties that are useful for XPages Developement.

193:  Force User Logout from XPages

In this show I’ll demo how you can add some code to your application to force a user to logout after a certain period of inactivity. Thanks to Steve Zavocki for the original blog post that this show is based on.

20:  Integrating Woopra Analytics to XPages Apps

Woopra allows you to have live tracking and Analytics for your website. In this show I’ll demonstrate how easy it is to add Woopra to your XPages applications.

9:  Viewer Questions on XPages

In this show I take some questions from a viewer who’s confused with how XPages interacts with traditional notes web development.

44:  Using Source Control Part 2

In this show I take another look at Source control in Domino Designer. I feel it’s an EXTREMELY important topic. There will hopefully more more shows coming as well. In this show I talk more about the servers to hold your repository. We take a quick look back at Declan Lynch’s server that I demo’d in Episode 41 , and then I show how you might go about getting the information needed to build your own internal server.

3:  Intro to Searching

Want to know how to do some basic searching inside an XPages application?  Look no further then this episode of Notes in 9.

141:  Java vs. JavaScript throwdown

This is a VERY DIFFERENT NotesIn9. It’s less of a normal show and more if a response to a recent blog post regarding one persons opinion on the value of Java in XPages and the Value of the UI vs the backend. Actually this show is more of a really long “rant”. This show could absolutely suck. I pretty much broke all my rules and tried to have fun with it. I do give my thoughts on things so maybe there’s at least a little value there. There’s no Demo. There is only the trainwreck. I would say that if you do give it a shot. Stick around for the end. That’s when I get my most immature. For the first time ever there’s even a few bloopers at the very end. No not me, but one of the cast members. I want to thank Mark Roden for the original post. Please check out the comments. There’s a lot of good information in there. Here’s the shortlink: http://xpag.es/?WTF I hope you like it.

41:  XPages, Domino Designer and Source Control! Part 1

In this show I talk about what Source Control is, more importantly why even as a solo Domino Developer that you would want to use it, and I go into a hopefully fairly detailed demo on how to install it into Designer and how to use it.

90:  XPages Google Hangout

This is a different show NotesIn9. I’m basically re-broadcasting a Google Hangout that Chris Toohey put together with a couple of us discussing XPages. The panel includes Paul Calhoun and Russ Maher as well as myself and Chris. So no real tips here. Just about 50 minutes worth of XPages talk. Chris might continue to do these with different people or topics. So if you want to keep up with that then follow him on twitter or via his website. I don’t currently plan on rebroadcasting any more via NotesIn9. I’m just doing it here because 1. It’s new and I want to make sure people know about this. 2. Everybody on the show is a Ni9 Alumni! Yay!!! 3. This makes it easy for someone to download it off line until Chris comes up with his own solution 4. It’s an easy show to help me get to that magic 99 number! haha

163:  Learning XPages Part 4 – Access Control Lists

In this show I gave a brief introduction to Database properties and most importantly to Access Control lists for the database. There’s nothing really* here for the experienced Notes developer but if you’re new to the platform you might find the talk on the Access Control lists interesting. * Well there might be one little thing. :-)

28:  XPages and CGI Variables

In this show I demo one way to access CGI variables inside your XPages applications.

11:  Blueprint and UI Layout (SpeedGeeking)

In this show I present my material from Lotusphere’s “SpeedGeeking” session. The point of the show is at the end where I combine XPages, CSS, Blueprint Framework, Themes, and Custom Controls to create a layout (header, sidebars, etc…) that you can easily include on every XPage.

4:  Intro to Scoped Variables

In this edition of Notes in Nine I talk a little more about Scoped Variables.  In addition to that I give an example that is the XPage equivalent of a very common UI component for a Notes Client Developer: A form with an Embedded View on it that uses Show single Category.

132:  Using Java in XPages Part 1

Ok. There’s a lot going on in this show so let’s get started: This show came from a Skype Chat I had with Tim Tripcony. The goal here is a series that focuses on how you actually use xpages and java beans together. We want to show how to bind to Java Objects instead of documents and actually use them. This is not a full “app” but more of a CRUD example. We didn’t want to distract too much from the core concept of linking XPages to Java Beans directly. Of course I failed at that as since Tim was using source control for this I wanted to start the show with source control. So you can see me bring the project down and create not only the .ntf but also the .nsf file. So if that’s not too interesting to you skip it. the Java stuff starts around the 15 minute mark I think. I did do some editing to cut out some other parts that weren’t needed. So there’s a pretty poor transition in there at one point. One of the things I cut out was how Tim was using Themes to pull Bootstap 3 into his app from a CDN. So if you’re interested in Bootstrap you might want to download the app and check that out! Clever. Beats putting it into the NSF. Today is actually my birthday. So as a gift to the community I wanted to get this show out and start this series. Jesse Gallagher asked if that I was doing a Hobbit Style Birthday. Where a Hobbit gives out gifts on their birthday. Wish I would have thought of it that way. Typical Jesse – usually 3 steps ahead of me. Anyway – I hope you like the show. P.S. This show is at another new resolution. 1440×900 I believe. I’m having trouble getting my Parallels VM to use my normal 1280×720 resolution. It works great for my work VM but not my NotesIn9 VM. Really weird. I do like the bigger resolution since you know… it’s Designer and all that. So I might try to keep this. I don’t know. But PLEASE let me know if you have problems viewing the show or reading any code.

29:  Combine URL Parameters with Excel Reporting

In this show I’m going to combine 2 tips from the XPagesCheatSheet which can be freely downloaded at xpagescheatsheet.com. I take the Export to Excel example, and demonstrate how you can improve that by getting and using a parameter from the URL so the exported Excel document has only a subset of records.

68:  XPages Media Library Application

In this show I go over my new OpenNTF contribution – The XPages Media Library. This demo is basically a how to use and setup the application.

198:  Convert a Document to a Java Object in XPages

In this show I show you how I typically go about converting a Domino Document to a pure Java Object.

195:  Use XPages To Fill a PDF Form

In this show I demonstrate how to take an existing PDF form, and use iText from inside XPages to populate fields on the form.

160:  Learning XPages Part 1 – Installing Designer

This show beings my great experiment. I’ve wanted to do this for a couple of years actually. I’m going to ATTEMPT to start from scratch and build an XPages Application. I’m going to assume that the viewer has little to no knowledge of Domino Development. I’ve gotten a bunch of emails from people brand new to the platform so the beginning shows are kinda geared for them. I’m really trying to start from square one. When I get into the Application build – which won’t be till the 5th show I believe, I’m going to TRY and build a “typical” XPages application – Companies, contacts, Activities… stuff like that. But when I do get into the App build, It’s going to be built with a heavy preference for Java and Managed Beans. Why? Must I use Java to build this kind of application? Absolutely not. No Java needed. But I’m going to use it for 2 reasons: 1-People have been asking for this kind of information 2-This is how I might build an app in the day job so that’s what I’m going to do here. So that’s why I’m using Java. It will also let me get into making a “business api” I hope. I’m also going to use Bootstrap and the OpenNTF API. Basically any tool in the toolbox. That’s the plan anyway. P.S. In this show I meant to start with actually installing the designer software, but messed something up and didn’t want to redo it. I figure clicking on the installer isn’t that big a deal. So this show starts off after the initial install. P.P.S If you’re a beginner and want further information and an alternate view point on starting XPages development, you might want to check out a video series from Paul Della-Nebbia on his blog. Oh and there is one more thing…. Some episodes MIGHT contain some “bloopers” at the end.

66:  Importing Custom Controls from OpenNTF

18:  XPages: Data Relationships

In this demo I talk how the ability to do a lookup inside a view control or repeat control allows us to do some different data modeling that has never been possible in traditional Notes development. I’ve created a little example that allows you to link contacts to each other and assign relationships between them. As a bonus, I show an example of using a view control and also a repeat control. In addition I have an example of reversing it to show who is related to a particular contact. Similar to “My followers” in Twitter. The goal of the show is really to demonstrate that XPages allows us to re-think how we design our data.

72:  Reviewing Designer

This episode marks an early start to the NotesIn9: Drive to 99 event. I recently spoke at the MWLug conference. This show is the first part of what might be 4-5 parts of that presentation turned into a screencast. In this show I talk about Domino Designer and source control first. These are brief reviews of some longer shows I have done. Though I talk a little more indepth about source control "Branching" which I've not done before. I then talk about some tools that you need to have in your designers toolbox. Hope you like it as our "Drive to 99" starts heading to the highway!

89:  Basic XPages Troubleshooting

In this show, Kate, a NotesIn9 viewer, emailed me about a problem she was having. Kate is new to XPages and she was able to create a cut down database showing the problem. She sent it to me so I could take a look at it. While she thought the problem was related to scoped variables it was really in how she was using the link control. In this show I’ll explain the problem and solution as well has how to troubleshoot it and where to go for help.

162:  Learning XPages Part 3 – Source Control

In this show I continue setting up the programming environment by installing Source Tree and pulling down a project that we’ll be using later in the series. My plan is to try and emulate real life, and real life needs some good quality source control so I will ideally be doing a lot of different things with source control along the way.

25:  Selecting Documents from inside a Repeat Control

In this show l will demonstrate how have a repeat control and get a handle on any documents that the user selects.

150:  Announcing fileVault for XPages

This is a different show today. I’m going to be speaking at MWLug at the end of August. In this show I’m going to do a little demo of what I intended to present at MWLug. I’m not going to tell you HOW to do it yet, you’ll need to come to see that. Or wait for it to hit a future NotesIn9. In addition to the commercial, I’ve taken a small clip from my show 100 (which ran WAY too long). In this clip I give suggestions on how to get more involved in the XPages community and why you might want to. At the end I refute any excuses that you might have. Hope you like the show.

21:  Combine Client and Server Side JavaScript

First I’ll be talking about a bug in XPages dealing with Dates – specifically @Now(). Then I’ll show how to use the onComplete event handler to combine Server Side and Client Side Code.

76:  What are Java Beans?

In this show I attempt to tackle the "forbidden topic". Yep. Java. This show is an expanded version of parts of a presentation i did at MWLug. I first try and show some of the tools available to the XPages developer and when you might want or not want to use some. Then we get into the meat of the show - Java Beans. I try and explain exactly what they are and show what they look like. I show managed and "unmanaged" beans and go through what they look like and a little bit on how they can be used. This is a "getting to know them" type show. Not an indepth getting started on building them. I didn't intend to do this show quite yet but I'm getting some great contributions as part of the Drive to 99 Event that are starting to talk about Java beans so I wanted to get this little intro out. There's lots more Java Beans stuff coming. If you can't wait Jeremy Hodge did 3 shows for NotesIn9 that are highly recommended. I'll probably be doing my attempt and an indepth intro to Java in the near future as well. If you have any questions please ask.

1:  Repeat Controls

Here's a simple example of using a Repeat Control inside an XPage to display view data in a NON-Table looking format

108:  XPages Mobile Controls Problem and Solution

This is a rush show. I didn’t mean to make this show at this time, but it looks like I solved a problem that has been frustrating me for a while so I had to take a quick break and document it and get this out. The problem is with trying to do a refresh in the onChange event of an edit control in the confines of XPages Mobile Controls. I’ve done this before in a production app, but recently I tried making a new version of that app, starting from scratch, and I couldn’t get the same behavior. Really really frustrating stuff. Hopefully, if you’re working with Mobile controls this will help you.

168:  Updating Source Control for Page Controllers

In today’s show I take a break from the Learning XPages series and do a little demo on updating a project in source control. So it kind of goes with the Learning XPages series but really isn’t part of it. The Learning XPages series is going on a little break while I work on a more important holiday project – but hopefully that project will turn into shows as well. As always let me know if you have any comments or questions. Thanks!

7:  A License to TypeAhead

In this show I talk about XPages built in capability to easily add a Type Ahead to your field.  I demo how to deal with the 64k Limit and also the potential pitfalls of Full vs. Partial Mode.As I mentioned in the show, a big thanks to Mark Hughes who posted a great blog article here and also Paul Hannan and Maire Kehoe who are XPage XPerts from IBM!!

182:  XPages and Java from Start to Finish

In this show I do an in depth demo of an XPages app that’s based on Java Code. I didn’t take time to build it from scratch in front of you, but I go over every line of code in the app. The app lets you you Create, Read, Update, and Delete Project documents, and then add to each project an unlimited number of tasks. It’s a long demo – but I first show the app, then go through all the Java code, and then finally the XPages code itself. I hope this helps you put the pieces together to consider adding Java to your XPages toolbox. Note: In the Demo, I do use the OpenNTF Domino API which makes life so much easier. It’s not required and in the near future I will try to produce a “cheatsheet” to help translate from the API to the lotus.domino classes.

128:  Fixing URL Issues

In this show I fix a problem with my XPagesCheatSheet.com that had to do with URL handling. I'll describe the problem and detail the fixes.

38:  XPages and iOS Trick

In this show I take a look at using XPages with iOS browsers. Specifically we’ll be looking at how to turn off AutoCorrect.

14:  Repeats Repeated

So in today’s show I’ll demonstrate two ways to repeat a multi-value field. The first from a document and the second from a view. The interesting thing about the view is to pull it off I’ll nest a repeat INSIDE a repeat.

5:  Lotus Notes and Domino 8.5.1

Ready for 8.5.1? This show goes details a preview from a late beta.

19:  Getting Column Totals from a view

For the technical portion of the show, I give a demo on how to use Server Side JavaScript (SSJS) to retrieve a categorized column total and put it on an XPage.

16:  Creating an Agent Framework

While this show ended up being a little rushed, due to several late night phone calls with my accountant over taxes, I am particularly fond of this content. You see, many of the things I present, I've not really discovered myself. Many of them I learn by reading the blogs or the wiki's and figure out how I would use them and then create a show around it to try and teach others so they save time. I always try to give credit when I can. But this topic, an "Agent Framework" is something that I came up with all on my own. I started doing this years ago and even wrote an article about this in the magazine, "Lotus Advisor". The point of this, which I hope comes across in the show, is that if you have agents in Notes Application, and users are going to running the agents from the Actions menu, then, in my opinion, there's a better way for us as developers to give them that option. We need to make sure our apps have the best User Interface possible since that's what people expect nowadays.

8:  Tri-State LUG Wrap UP

In this show I talk about some happenings with Notes In 9, the recent user group meeting in New York, and I give some thanks to the people who made that all possible. Nothing too technical today, but don't worry, more tips and tricks are on the way in the near future!

70:  Searching Source Code & Importing from Excel

In this show I'll demonstrate two things. 1. Using Eclipse to search your source code in a single or multiple databases. 2. Importing Excel Data into Notes with Junction. <a href="http://www.dominoguru.com/pages/junctionlite_v1.0.html">Junction</a> is a small $5 Notes Client application from Chris Toohey of <a href="http://dominoguru.com">DominoGuru.com</a>. It lets you easily import your spreadsheets into Notes Applications.

169:  Show Single Category View

This show comes direct from the XPages Forum. I attempt to answer someone’s question on how to do a show single category view inside of XPages. In the beginning of the show I talk about a couple of things community and XPages related. Where to ask XPages questions for instance. However the biggest news is this: I’ve been elected the director of XPages.Info! I talk more about this in the opening of the show. Please tune in.

51:  Introduction to XPages

Jumpstart video designed to help you get up to speed with XPages

23:  The Great XPages Race

This is a special show that I started last night to basically respond to a couple of blog posts from Jake Howlett atcodestore.net.Post 1Post 2I believe that XPages is RAD. I pretty much did the building in 3:45 give or take a second or two. It might be interesting to spend another 5 minutes to add things like security, validation and mobile controls to make it truly production ready.I know there’s some problems getting to my videos. The direct download link is here:http://traffic.libsyn.com/notesin9/Ni9-23-XPagesRace.movI have this on YouTube as well here:YouTube VideoAgain – this is just an all in fun kinda thing. There are pros and cons to any platform.

151:  Bootstrap ProgressBars in XPages

In this show I demonstrate how to build some XPages custom controls to make a Bootstrap ProgressBar and stacked ProgressBar. I also mention Daniel Friedrich’s blog at http://xpagesandme.wordpress.com/. I highly recommend you check that out.

26:  Collapsing and Expanding Views in XPages

Here’s a quick little show that I threw together last night. Was talking to someone who had a question on how to do a Collapse All/Expand All for a view control and it turns out to be WAY more difficult then it should. I’ll maintain there are better UI constructs to do this but he wanted to stick with a view control. So here goes.

2:  Busting the Rip and Replace Myth

Do you need to replace your existing Notes Apps to take advantage of XPages? Maybe not. Tune in for a discussion on the pros and cons and to see how XPages might improve a Notes App, without even modifying the Notes App.

43:  Domino Designer Tips and Tweaks

In this show I take a brief look at Domino Designer and go over some enhancements that I’ve learned from some true experts, Paul Calhoun and Nathan Freeman.  I’ll show how to check out and improve Designer’s memory usage and even make your XPages XML source code easier to read.

115:  XPages Data View Control Part 1 – Implementation

In this show Brad Balassaitis comes back on to give a great demo on how to get started using the Data View Control. There’s a lot of power in the Data View Control and I highly recommend checking it out. In other news, recently I did a webinar for OpenNTF.org called “Getting Started with XPages”. I presented that with Marky Roden and we want to thank those who attended. Niklas Heidloff has now posted the video, audio and slides to the presesentation. Here’s the link to find those. http://www.openntf.org/blogs/openntf.nsf/d6plinks/NHEF-98D7BV

129:  # Thanks Bruce

In this show I take a few moments to thank Bruce Elgort for everything he’s done, not only for me personally, but for the Domino Community as a whole.

104:  Viewer Questions - ComboBox

In this show I answer a question from a poster on the XPages Forum. Ursus Schneider posted that he was having a problem with Arrays (http://www-10.lotus.com/ldd/xpagesforum.nsf/topicThread.xsp?action=openDocument&documentId=646EB71744203F5C85257B38006321C2) but when he sent me a small sample to look at he had actually was having problems with working with comboboxes and partial refreshes. So in this show I take a look at the sample I was sent and dissect it. I’ll try and show you how it was originally coded and what the current problem that Ursus was having it. I’ll fix that but then take a more indepth look at trying to modify the original code so it’s more on the lines of best practices. Coding is an art, and I’m only so good at it myself, but hopefully this will be a contructive look at some possible ways to improve things via a code review. I thank Ursus for sending me this and letting me using the discussion on the show. One of the main reasons I wanted to do this example, was I thought pretty early on that I could work in an example that I’ve been trying to get on the show. I wanted to demonstrate how you can return multiple values from a document from 1 SSJS function. So instead of doing multiple lookups you might be able to do more at once. Anyway – hope you like the show. This should be a good one for people newish to XPages. P.S. Theres like 3 seconds of black at the beginning of this video. I’ve no idea what I did there. Sorry about that.

194:  Upload Files With PLUpload

Who likes the built in XPages File Upload Control? Well not me at least. In this show I’ll demo how to use PLUpload to better upload multiple files to your XPages application.

91:  XPages Memory Profiling Part 1

In this show I will demonstrate how to install the YourKit Java profiling application on your Domino server. This application is used to detail the inner workings of the server and your XPages applications. Specifically it is supposed to help find memory leaks. Because the Domino objects that XPages use are based on Java and not LotusScript you must be aware of this and you must recycle Domino Objects. This is especially crucial in loops like “for” and “while”. This is an odd show because I really don’t know much about this yet. I recorded the show at 5:30PM my time. I asked my first question about how to get started at 3:30PM. Nathan T Freeman very kindly got me started in the right direction so I could install it. So big thanks to Mr. NTF himself!!! Thanks to Jeremy Hodge as well for posting a key comment on Sean Cull’s blog. So this show took 2 hours from begining to learn about this for the first time to recording what I got so far – the install. I only mention that because I talk to a lot of potential contributors and commonly hear things like “I’m not an expert” or “I don’t know anything worth sharing”. So I’m trying to disprove that. I don’t yet really know how to check for memory leaks, which is the ultimate goal here, but so far I at least know how to install the evaluation copy of the YourKit app. I hope that this helps anyone else with the install. My plan is to do a second show relatively soon where I better demo how to use this app to find leaks. I just need to figure it out myself first. Be sure to check out the comments in the original blog post for more information.

165:  Learning XPages Part 6 – Forms, Views and XPages

In this show we finally start coding. Horaay! I’m going to create a form and a couple views to start setting up how the data for the applicaiton will work and then I’ll go right into some Java which will act as a bridge between our application and the data that gets stored into the database itself. This show should be particularily good if you’re interested in starting to use Java with your XPages applications. Note: This episode was filmed a couple weeks ago when I was watching the Philadaphila Eagles beat up on the New York Giants. The Eagles won 27 – 0! It was a good night.

122:  Working with Java Objects in XPages

This show comes directly from my day job. This is a presentation that I gave to the internal XPages team. I talk about using Java Objects but not necessarily via "Managed Beans". A lot of XPages and Java talk centers around "Managed Beans" but that's not your only option. There are additional ways to use Java Code in your XPages Applications that don't need Managed Beans. There's also DataContext, objectData and "ScopedBinding". NOTE: "ScopedBinding" is a term I'm making up myself. So I'm really not an expert here, this is just stuff I've been playing with and there might be things I've missed but this is a simple demo on how to use a Java Class from each of these entry points. I thought it might be useful especially if you hear the term "Java Managed Bean" and think it's something scary. Another Note: I have a little Java Class in here for the demo. That Class itself was rushed and not exactly an example of best practice. It's kinda close, but I left some crap in there that needs to be cleaned up. Hope You like the show. P.S. In the show I am asking for feedback on how you prefer to consume NotesIn9 Videos. Do you stream from the website? Do you download and watch off line via iTunes/RSS? Do you prefer YouTube? Any feedback on that would be appreciated. I'm trying to find out preferences between downloading vs streaming for the most part. Feel free to comment here, or send me a note on twitter or email. thanks! UPDATE: I mentioned on the video that there were several things that I did not know. Most of them have been answered by the great Tim Tripcony who sent me this information: Great video today! I'm hoping I can answer some of the questions you brought up during the demo: 1. Java "purists" would tell you that if your class has A) an argumentless constructor, B) properties exposed via getters and setters, and C) implements Serializable, it's a bean. With "managed beans", all that is being "managed" is the variable name and scope. So the class you showed is always a bean, regardless of each of the ways you demo'ed using it, because its own code meets the bean criteria. But you also registered it in faces-config, so Domino "manages" making sure there's always an instance of that bean named "PersonBean" in the session scope. That's what makes it managed. It was already a bean because it uses bean conventions (serializable, argumentless constructor, and getters/setters). 2. ignoreRequestParams is ideal for "related" data sources. For instance, if you had an XPages-based blog, and you're using the standard document data source for blog entries, then you'd want that data source to respect the URL, because then you can use built-in URL parameters like action, documentId, formName, and databaseName, and it'll know which document to open, whether it's new, in edit mode or read mode, etc. In contrast, if you had a repeat underneath the entry content to display comments, then your data source for each comment in the repeat *should* set ignoreRequestParams to true. Otherwise, even if you've set action to "openDocument" and calculating the documentId based on what row the repeat is rendering, the data will IGNORE those properties, because it will see matching URL parameters and the value of those parameters will override the data source properties. BUT… all of this behavior is the way that the original data sources (document and view) behave. The object data source always ignores the URL, so ignoreRequestParams has no effect, because it always ignores the params. The property just shows up because it's part of the base interface for all data sources. 3. requestParamPrefix is ideal for "sibling" data sources. What I mean by that is if you have two data sources on a page that are sort of "peers" (as opposed to a parent-response, discussion thread style relationship). For example, suppose you had two documents that you wanted to allow the user to compare side-by-side… if you created one document data source with standard attributes (just var and formName), and a second document data source where requestParamPrefix="other", then your URL query string could contain something like documentId="OU812"&otherdocumentId="OU813"… So your first data source will be bound to the document whose note ID is OU812, and your second data source will be bound to the document whose note ID is OU813. Object data sources also ignore this property; this only affects document and view data sources. 4. The reason you had to set your data context to compute on page load is because data contexts are automatically associated with the request scope… so if you set it to compute dynamically, then it will create a new one on each request, not just one for each page instance (i.e. view scope). Setting it to compute on page load makes it behave more like a data source than a data context. 5. Your assumption about the syntax of #{sessionScope.ScopeBean.firstName} is correct. All 4 of the scopes are Maps, so when the variable resolver identifies sessionScope as a Map, then the property resolver knows that instead of the usual getPropertyName() / setPropertyName(newValue) syntax, it should call get("propertyName") and put("propertyName", newValue) instead… but only if it's the last property in the chain -- anything in the middle is always treated as a get. So the whole expression essentially gets translated into sessionScope.get("ScopeBean").getFirstName() in read operations, and sessionScope.get("ScopeBean").setFirstName() in write operations.

197:  Sending Alert Messages to an XPage

In this show I’ll demo a little thing I do where I combine page controllers with a custom java object and the Bootstrap CSS Framework from the Extension Library to easily send useful alert messages back to the user.