Creating your first XPage Repository using GitBlit

If you read my last article about setting up your own GitBlit Server with Domino credentials this is the next step. Creating your first repository and pushing up an xpage application to the server.

Login to your git blit server and click on the repositories tab

Snap64

 

 
 

Click on new Repository at the right hand side of the UI

Snap66

Give your new repository a name, and write a description if you like.
There is lot’s of other options that you can setup but they are not needed for this example.

Click on the access permission tab

Snap71

 

Add owners to the repository, change the access restrictions so your users can view, clone and push.

Also change the authorization control for the users. Now your repository is ready to be saved, so Click on Save.

When the repository is saved, it’s time to get the Repository URL that we need to clone the repository.

Click on your prefered git client software, my prefered client is SourceTree
Snap68

 

 

 

 

 

 

Copy this URL into your application and clone the repository.

And you are ready to get the most out of your development.

Internet of things is that something to care about

Finally is the revolution here, since I’ve started as a developer I have waited for this. Integration of things is really interesting. And will help us a lot, you might say why should my coffee maker be connected to the internet?

The answer to that is how many times have you asked yourself, did I turn off the coffee maker. That’s only one thing, add sensors to everything in your house and you can start to get an alarm if there is an water leakage, a fire is starting, the sensors can be added into so many things in houses, cars and electronics.

And the great thing is that the connected sensors can be used for private and company use and because the cost isn’t that high for the sensors we will start seeing lots of these both at work and at home. And then we also have wearables that can monitor your health or why don’t we have a sensor that will vibrate so you don’t hit your head in a low door post like a parking sensor for humans.

This is some very interesting IoT platforms to follow

Arduino – This is a great platform to create your own IoT platform, there is hundreds of IoT and sensor projects already created.

Espruino - an hardware board like Arduino but this board has Javascript as the language to develop software that runs on the board. Great for developers that doesn’t want to learn yet another language.

Little Bits – Another great platform to create great things fast. They have now released cloud bits that you can connect using IFTTT

Little bits have lots of bits that dies different tasks. But the latest two makes them more interesting that that is the cloudbit and the arduino bit.

It’s Lego for Internet of Things.

NEST – The newly Google bought smart thermostat company. This will probably be the start for the Google connected house.

20140727-093143-34303123.jpg

bluemix

IBM BlueMix has an IOT communication capabilities so this is also an interesting platform that you should keep a close eye on.

 

 

 

My conslusion is that YES, Internet of Things is very much something to care about as an developer because the system you create will with most certainty connect to things or wearables in some way.

If you have some more interesting IOT:s that you want to share please comment.

Why you should move all routines to an application

How many paper based-routines does your company have?

If you are lucky you can answer none on this question, but are you sure?

paperbased

  • What about vacations
  • When you are sick
  • Expence report
  • Time report
  • Purcase requests
  • Travel expense requests
  • Performance Appraisals (PA)

And there is probably lots more routines

If you still can say no, then your company has came very far and you are one of the lucky few employees that can work 100% digital.

These are some reasons why your company should move towards getting these routines/reports into an electronic workflow if your company still have paper-based routines.

These are my top 7 in no specific order.

  • Speed
  • Geographical boundaries
  • Easier reporting
  • Easier to follow up
  • History, who did what and when
  • Handling cost
  • Environment

paperfree

Considerations when moving to an electronic workflow

These are some things that I need is

  • What devices are the users going to use when doing the reporting
  • Create / buy an application that support more than one workflow in the same application
  • Possibility to change the workflow with minimum cost when the business needs change
  • Alarms/ Notifications to the users when certain criterias happens

A flexible system should be able to

  • Easy to adapt the reports/routines into what data you need to collect
  • Handle more that one report/routine type
  • Can handle different access levels
  • Have alarms when things need attention
  • Can export reports, so you can do statistics
  • Easy to search for reports

I could probably add some more things but these are the most important one, if you ask me. The great thing is that IBM Domino is a great tool to create these types of applications that’s why my company QNova Systems have built all of our applications on this platform and have NO plans of moving away from this platform. Because of the security, rapid development cycle, and document centric data model. We are expanding our suite of applications and will deliver even more corporate applications in the future both for on premise and cloud based deployment. To help companies move away from paper-based work and into a faster and better world, where we don’t cut down trees to print things out, and throw it away.

Go Green with IBM Domino

Go Green With IBM Domino

Another great developer book found

Summer is here and book reading time for me is also here, I’ve read and added this great resource to my desk at work, JQuery and Javascript Phasebook.

JQuery And JavaScript Phasebook

I often like to have all my resources as pdf files but in some cases a reference book can come in handy. Easy to pick up without the need for extra screens (They are full with applications anyway)

This book is one of them, if you develop using jQuery this book has lots of short code snippets that will come in handy when developing using JQuery and Javascript.

 

 

 

The book has the basics of setting up the JQuery framework and start using it to creating Dom nodes, setting css styles,classes. Adding animations to elements and also a little section on how to use JQuery mobile.

And the great part is that the book has quick explanations and then a code snippet that you can test, So you will get a great reference guide and also learn to use jQuery more when you develop new applications.

The books developer audience is developers that isn’t experienced JQuery Developers but what to get started or just started to use JQuery.

Get your own copy here or from amazon

Setup a Free Git server with Domino Credentials in a few minutes

Today I’m going to show you hav to setup you own internal Free Git server in five minutes

Make sure that you have java version 7 installed in you windows server. JRE or JDK any version works. If you don’t have one goto java.com and install the a java jre.

Goto the java download page scroll down to the bottom of the page and download the JCE

Java_JCE

Open up the downloaded zip file and copy the 2 selected files

To the folder lib\security below your java installation folder in my case it was

C:\Program Files\Java\jre7\lib\security you might need to replace existing files nothing to worry about.

This is needed to be able to create the certificates later.

Next step is to  gitblit.com wher your download the Go Git Blit Server for Windows or if you are using Linux or Macosx use that version.

GitBlit

Unzip the zip file in the root to a folder called gitblit or a suitable sub folder, if you change the folder you might need to change url:s in the .cmd files.

Configure GitBlit

We are now going to configure gitblit to use LDAP as authentication method

Open up the file gitblit.properties in the data folder, search for the keyword realm.userService edit this line so the line should look like this realm.userService = com.gitblit.LdapUserService

Setup the connection to the LDAP server

realm.ldap.server=ldap://localhost change the row if your LDAP server isn’t on localhost remember if you want to connect to a domino server and it’s hosted on a windows machine that has AD LDAP on it you need to change the port for the Domino LDAP service.

The syntax if you want to change ip or port is like this ldap://192.168.10.10:399

You also need to change the login user to be able to use the domino LDAP Service

realm.ldap.username = LDAP Manager

realm.ldap.password = your password

To a Domino user and password

Clear the accountBase so it will search all Nodes

realm.ldap.accountBase=

Change the accountPattern to

realm.ldap.accountPattern = (&(objectClass=person)(cn=${username}))

Empty the groupBase to search all nodes for groupsrealm.ldap.groupBase =

And the groupMemberPattern to find groups

realm.ldap.groupMemberPattern = (&(objectClass=group)(member=${dn}))

realm.ldap.admins can be edited to add a admin group from LDAP

change the row realm.ldap.email from email to mail

And the row realm.ldap.uid also to mail

Important last step, search the file for localhost and remove that otherwise gitblit will only operate on localhost and you can access it from another machine

Save the file

Generate SSL Certificate

In the Gitblit folder in my case c:\GitBlit there is a cmd file called authority.cmd (if you have another url you might need to modify the file)

start authority.cmd add the information about your certificate

Write the password for your keystore, write gitblit if you don’t want that password you need to edit the gitblit config file so the password match.

The keystore is generated and the cert admin is opened

Close the Window

Start the Git Blit Server using the gitblit.cmd the server will now start in the window.

Your Git server should be up and running now. Let’s access it thru a browser.

Write https://servername or ipadress or localhost and end the adress with :8443

but if you want to use http instead you need to edit the gitblit.properties and change the row

server.httpPort =0 to have the port for the http server i.e. server.httpPort = 8080

The GitBlit interface will load.

Try to login using your Domino credentials

When you have logged in, logout again and login using the standard admin user

username: admin password: admin

and assign yourself as an administrator and change the password of the default admin

Login with your user again

Now your ready to create your first repository

Next step is to connect your git client to the repository. Some clients like sourcetree needs a special setup to accept ssl that is created using a self cert. But that is for the next post.

Importing a Files and folders into a IBM Domino database

I saw a question today inside a linkedin forum about how to import files and folders into a Domino database and there are several ways on how to do this. Check out these three ways of importing files and folders into your nsf file.

1. Import the files into the webcontent folder using package explorer. using import

Snap17

 

 

 

 

 

 

 

 

Select general -> file system to import files and folders

eclipse file import

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Browse for the from folder, any subfolder will be the top folder when imported into web content in this case bootstrap

eclipse file system import

And then your files and folders look like this after the import

Snap20

 

 

 

 

2. Enable the database for webdav then you can connect to the database using windows and upload the folder/file structure into domino. Super simple and quite easy to maintain. (Link to how to setup this or this old Codestore post)

3. Build an agent that will import the file resource using dxl check out this TLCC article in how to import using DXL.

HTTP Server is waiting for threads to finish: the wait is over part 2

If you did read my post yesterday about how to break long running requests on the Domino server if not you can find it here The wait is over part 1
S
ven Hasselbach commented that this didn’t work for him and yes he is probably right because I suspect that Sven was trying a long running XPage and yes you can’t break them using Restart Task Http but I have a solution/workaround but that requires you to implement a failsafe into your long running code.
If you add this inside your long running loop

if(applicationScope.get(“BreakAllCode”)==true){
  break;
}

And create an Admin Failsafe XPage with a “Break it All” button with the code

applicationScope.put(“BreakAllCode”,true)

And a second button called “Reset” with the code

applicationScope.remove(“BreakAllCode”)

To bring back the application to a normal state.

If you then open up the “Failsafe” XPage if your code has gone wild and click the button you can quit the code that has gone wild.

 

HTTP Server is waiting for threads to finish: the wait is over

How many times have you tried to stop the http task on a Domino server and got this back on the console

HTTP Server: Waiting for session to finish: Session State [Processing Request]

And there you are waiting and waiting for the http to restart och shut down

The solution is not to use tell http quit or tell http restart if you want to shut down http

Use restart task http instead if you want to restart http or restart task http and when the task is restarted use tell http quit.

This will force the http to restart and will not stall the restart because there are some long running requests or view updates that is blocking the restart.

Update: if your using XPages see the Wait is over part 2

Mastering XPages – a good addition to every XPagers bookshelf

As I promised in my previous article  about the book here is the review of Mastering XPages.

I did read the old Mastering XPages from cover to cover over a couple of days when that one came out. And have been using it as reference but not enough I understand now. While reading the second edition of Mastering XPages I had to go back into the first edition several times, was this really in the first edition? And yes it was, I hadn’t read the first edition enough it seams.

I rediscovered some forgotten knowledge about custom controls and communication between custom controls and setting properties on each other. This isn’t something new it was in the first edition, while rereading the updated parts it really updated and verified alot of knowledge for me. Adding some of the new stuff where you get a new angle to things as performance, extending the Notes client XPinc, Mobile and more. All this information together with real example databases where you can try the explained content for your self. I must really say that this is good starting point if you want to start learning XPages or extend you XPages knowledge but If you are a beginner I would still suggest viewing David Leedys Notesin9 JumpStart to XPages first (yes, I know this one is old but still good)

With the updated old content and the new this is really a gold mine and is an great additional resource to the ICS Community with videos and blog posts this really fills it place and the price is if you ask me a bargain for the amount of information you get. And if you use this code IBM3370 in the checkout on IBMPressBooks.Com you get a 35% discount, I also saw that you get the e-book for $10 extra during May 2014 so for a total of $58 you get the hardcopy and the ebook that you can use for search reference.

And to the Authors, great work. Looking for to the next one, because as I see it now we have Mastering XPages, XPages Extension library and the Portable Command Guide books. The missing one is

The Java Developers guide to XPages
with and without OpenNTF Java API

This could really be an interesting book, so who is interested to write it.

What happens in enemy camp: Microsoft Build 2014

Snap43

Microsoft developer conference Build was at Moscow center this week. Microsoft new CEO Satya Nadella talked about that Microsoft will be the developers best friend, well we will see about this. They also talked a lot about Internet of Things or to be exact Windows for Things. Windows in your car, your tv and all your other machines. It’s probably only is the multimedia system so we can be calm, no blue screen on the highway. If you want to know more this is the session to view 

Windows phone is free for phone manufactures to meet up the competition from Android and IOS. Microsoft also released version 8.1 with a brand new virtual assistant Cortana to compete with Siri and Google Now. It had alot more news see the Day one keynote to see them all.

Checkout the Day 1 Keynote here and Day 2 keynote here or this video about Cortana

The race against Mobile domination is not over yet and if you have counted out Microsoft you are probably wrong. This is the company that thought internet wasn’t anything for the future and a couple years later they has 90% of the web browser market and almost killed all competition. I’m not saying that they can do this again but moving up and getting 30% of the market is not unrealistic.

Snap44

A new native mobile development framework Xamarin was shown. It enables you write the mobile apps in c# and publish them for Windows Phone, IOS and Android. Interesting is that Xamarin enables you to build and test applications for all three platforms on Windows.

Xamarin can be found here

Microsoft also showed of a new element framework called WinJS that will get multi browser support. check it out try.buildwinjs.com

I don’t think that this is tools new but anyway, the development environment Visual Studio is available thru Microsoft Azure as an online service. There is a session about that  Getting Started with Visual Studio Online if you want to know more. 

This was some info on the things I’ve found about the Build dev conference, if you have some more info perhaps you where there, please add a comment.