Categories
Java Podcast XPages

NotesIn9 127: XPages Parallel Processing

In this show Serdar Basegmez returns with a demo taken from his recent presentation at Icon UK.

He’ll introduce the concept of creating a new thread in your XPages application that can be used for longer running processes.  This effectively lets you do 2 things at once in your application.

 

You can download a demo database here:  https://github.com/sbasegmez/ICONUK2013

Categories
Mobile Notes In 9 Podcast

NotesIn9 126: Appcelerator Tab Groups

In this show John Jardin, IBM Champion and mobile expert, comes back to continue his series on getting started with Appcelerator for Mobile Development.  Today he’ll talk about work with Tabs and Tab groups.

This show continues the foundations of Appcelerator.  It is planned to use XPages as a backend database once we get to that point.

Categories
Mobile Podcast

NotesIn9 125: Appcelerator: Working with Windows

In this show John Jardin comes back with Chapter 4 of his series on getting started with Appcelerator.

Categories
Notes In 9 Podcast XPages

NotesIn9 124: Code Snippets

In today’s episode, Martin Rolph, a great new contributor, comes on the show to demonstrate how you can use the built in Snippet functionality of Domino Designer.

I also do a brief demo of OpenNTF’s XSnipppet’s project.  A really wonderful resource.

Categories
Mobile Notes In 9 Podcast

NotesIn9 123: Titanium Appcelerator – Getting Started

In this show John Jardin returns to start a series on Titanium Appcelerator. TA is a product for using Html and JavaScript to make native mobile applications for devices like iPhone and Androids.  John is currently running a series of posts on his blog about this and I wanted him to make some supplemental videos on it for NotesIn9.

This show really isn’t about XPages and that’s not a bad thing as I think being able to reuse the html and javascript skills that you and I are learrning via XPages with a whole new product like Appcelerator is a great thing. But if you’re a hard core XPager there’s no need to fear.  John does have plans to eventually use XPages as a backend database for an Appcelerator application.  So stay tuned!

Categories
Java Notes In 9 Podcast XPages

NotesIn9 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 the information below.

 

UPDATE 2: Here is the demo file for this show

beans.zip

Comments from Tim Tripcony:

 

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.

 

Categories
Mobile Notes In 9 Podcast XPages

NotesIn9 121: Implementing Dojo Scrollable Pane with XPages Mobile Controls

In this show, Keith Stickland, a great new contributor, comes on with an awesome demo on how to add newer Dojo features to an XPages Mobile Controls application.  He’ll show you how to create a fixed bottom tab bar – something that can’t be done with just the Mobile controls themselves.

Categories
Community Notes In 9

NotesIn9 4 Year Anniversary

The very first NotesIn9  was published way back on July 11 2009.  I usually miss the actual date because I forget and only remember it was in the “summer” sometime.  I should probably set a reminder or something.  Anyway…

After 4 years, NotesIn9 has now produced 120 episodes from 31 amazing contributors for almost 35 hours of mostly XPages educational content.

Between my libsyn.com account and Youtube, the show has been viewed or downloaded 200,524 times!  Not too shabby at all I think.

My best show continues to be the 73 minute “Introduction to XPages” with over 15,000 views/downloads just for that episode.

The cheatsheets continue to be downloaded and some people seem to like the new show map.

In case you didn’t know it, NotesIn9 is available from the iTunes store here: https://itunes.apple.com/us/podcast/notes-in-9/id342514883?mt=2. There’s also an RSS feed in the sidebar of the website.

I’m hoping for some big changes in the next year, we’ll see. In the meantime there are more shows coming.  A great one by Keith Strickland is up next and I’ve got some I’d like to get out.  I’ve also talked to some potential new contributors recently and need to get back to that.  So all in all should be some more content coming.

I want to thank Chris Miller of SpikedStudios and Jeremy Hodge of Zeta One for some key support at some crucial times.  I want to thank Jesse Gallagher for some key support moving forward.

I also really wanted to take a minute to thank all the contributors for donating your time and talent to the show.  I and others really appreciate it. Thanks also to everyone who watches and leaves comments and feedback as that’s really nice also.

Dave

I’ll leave you with a little story.

Probably the most common question I get asked is “What does the 9 mean”?  Well back when I started out, YouTube had a 10 minute limit for uploaded shows. I thought NotesIn9 had a much better ring to it then “NotesIn10”.  That worked for a while till I just needed more time for longer topics.  So I moved from YouTube for the most part to a private host – libsyn.com.  That let me get longer shows and also an RSS feed for the Apple iTunes store. So the 9 originally meant that the show would be 9 minutes-ish.  Now it has less meaning as some shows have been lengthy. Not quite sure what to do about that. haha.

So that’s my story. More to come.  Stay tuned.

 

 

Categories
Community Learning XPages Notes In 9 XPages

The NotesIn9 Guide Map to Learning XPages has been updated.

There’s been a bunch of new NotesIn9 shows recently with more on the way.  I’m really close to getting through my contributor backlog.  I even have a several of my own shows I’d like to do.

Since there’s been these new shows I took a couple of minutes to update the Mind Map that should hopefully have links to all of them. The goal is to make things easier to find.

Check it out here.

I hope this is a helpful means of finding other shows and getting into XPages.  I’ve not really spent much time on the organization of this map but if anyone has any suggestions, or if there are any problems with any of the links please let me know.

Dave

Categories
Ext. Library Learning XPages Podcast XPages

NotesIn9 120: XPages Data View Control Part 2: Customization

In this show Brad Balassaitis comes back on with a show on how to customize the Data View control.  This is the 2nd video that Brad’s contributed on this control.  Part 1 is at http://notesin9.com/index.php/2013/06/05/notesin9-115-xpages-data-view-control-part-1-implementation.

This show also has a lot of great detail on how Facets/Editable areas work.  He also shows you how to inspect elements on the XPage.  Really great stuff in this show.

Do NOT miss this show!