Sehr schön anzusehen. Wie auch Ello. Beides aber noch sehr leer.
Bringt mal Leben in -> die Bude.
Mein Adressbuch ist einigermaßen aufgeräumt. Die Quelle aller Kontaktdaten ist bei mir der Google Apps Account. Alle Geräte im Klugen Gadget-Zoo synchronisieren mit dem Google Apps Account. Von der Seite kommen dann immer wieder “Anreicherungen”. Apple reichert die Kontaktdaten mit den Facebook-Daten an. XING-Adress-Aktualisierungen landen auch in den entsprechenden Kontakt-Einträgen. Evercontact spült Adress-Aktualisierungen aus Mail-Inhalten in das Adressbuch.
Die Kontakte sind – mit relativ geringem Wartungsaufwand – damit immer aktuell. Sehr schön scheint mir nun “Humin” zu sein. Humin reichert die statischen Kontaktdaten mit den dynamischen Daten an und zeigt zu einer Person auf einen Blick alle relevanten Daten. Humin ist damit so eine Art “Private CRM” für mein Telefon. Die Kontaktdaten werden angereichert mit Bild, Arbeitsinformation aus LinkedIn, nächste Meetings aus Google Apps, letzte Korrespondenz aus Google Mail. Aus dem Kontakt-Dokument kann man direkt anwählen per Telefon, Mail versenden, Chat beginnen etc. Alles sehr hübsch gemacht und hat das Potential, die Telefon-App auf dem iPhone zu ersetzen.
Humin fordert lesenden Zugriff zu allen möglichen Accounts und Dienste, um diese Informationen alle anzeigen zu können. Ich kann damit leben, vermutlich aber viele andere nicht.
Today, I published a new version of my ACL & Cluster tool.
Changes:
- New feature to apply the mail-/homeserver of each mailfile owner as adminserver
- from the setup document, you can now send console commands to execute the agents immediatelly (useful for testing)
For more details and download, go to the project page on OpenNTF…
Feature requests and bug reports are very welcome!
Lee Beaumont sann auf Rache. Immer wieder wurde der 25-jährige Brite von unerwünschter telefonischer Werbung belästigt. Besonders hartnäckig war ein Anbieter von Restschuldversicherungen, der Beaumont mit einer Flut von Anrufen überschüttete.
Also suchte Beaumont nach einem Weg, seine Peiniger zu stoppen. Er schlug die Quälgeister mit ihren eigenen Mitteln.
Die Süddeutsche berichtet über eine interessante Methode, mit lästigen Call Centern Geld zu verdienen: Er richtete einfach eine kostenpflichtige Rufnummer ein.
Als Ergänzung zum “Gegenwehrskript“. Und anders als bei “Frank geht ran” verdient man auch noch Geld damit.
In the past weeks I was trying something new, at least new for me…
I realised that using jQuery in Xpages is a wonderful idea. Mark Roden has a nice blog with great things you can do with jQuery in XPages. You can find it here: Xomino Also check out his demo site: Xomino JQinX Demo
In one project I wanted to use a gantt chart. I want to write this article to show you how it’s done and warn you about the problems I had.
Let’s start.
To use jQuery you have to download it and integrate it in your database. Build your own version of jQuery here: JQuery Download It is the download page of JQuery UI, a set of many nice plugins and modules for jQuery. A version of the base jQuery is included. You can also configure a custom theme for your jQuery modules. It is on the right menu when you follow the link “design a custom theme“
For the gantt chart I am using this module: Taitems JQuery Gantt Chart Module
So, now you have to integrate these files into your database. You can do this either via the resource category in the database, or via the PackageExplorer (it is an Eclipse View) I recommend using the package explorer, because you can manage your files more easily. Simply drag and drop your files and create some folders to organize them.
Now you have to load them into your application. You can do this easily via a theme with the following statement:
<resource> <content-type>application/x-javascript</content-type> <href>js/jquery-1.7.min.js</href> </resource>
Or you load them directly into your code via the resource properties of the XPage/ Custom Control
<xp:script src="js/jquery-ui-1.8.23.custom.min.js" clientSide="true"/>
You have to do this for the jQuery base module, the UI module and the gantt module, also you have to load the CSS files.
First problem I had to face: The gantt module doesn’t work with every jQuery version. I was using jQuery 1.8.0. But when using this module, I had an error message which complained about some undefined variables (TypeError: m is undefined) Using the 1.7 version was a solution to this.
Now we can get started. On the page of the gantt module is an easy manual how to use this module. It is quite self explaining.
To implement a gantt chart, you only have to put in these few lines of code (client side of course)
<xp:scriptBlock id="scriptBlock1">
<xp:this.value>
// + "/ganttJSONBuilder?OpenAgent";
// + "/js/data.js";
jQuery( function() {
var dataPath = location.href.substring(0,
location.href.lastIndexOf('/') + 1)
+ "/ganttJSONBuilder?OpenAgent;
$(".gantt").gantt( {
source : dataPath
});
});]]>
<<!--xp:this.value>
<<!--xp:scriptBlock>
As data source the module uses JSON data. Use this site to validate your JSON data easily. The structure of your data is explained in the manual site of the module.
Be aware, the module expects a URL as data source. That means you can’t use server side Javascript in that scriptblock to generate the data source. So, we have two options on how to load the data into the module, either via a file which you can put into the WebContent folder in your database, or you call an agent. The agent is probably the better option because you sure want to load data dynamically.
Using an agent to achieve this is basically easy, you only have to write your JSON string into a variable and then you do this:
PrintWriter pw = getAgentOutput(); pw.println(output);
The difficulty of generating the JSON string itself depends on your data. In my case it was a simple project management, so some tasks, projects and editors. I used a view. I looped the entries and parsed the information into a JSON String.
There are some nice little things you should know when doing so.
The first line of your JSON string has to be the content type of the output, for JSON it is: Content-type: application/json; charset=utf-8\n
Also, it is very important that you use line breaks in the string, simply by using \n. If you aren’t doing that, your JSON string will not be properly interpreted and the module shows nothing but a nice grey bar.
Easily to overlook, but also important, in JSON you have to use a comma to separate your entries. Be sure you have no comma behind your last entry or parameter. It will result in a misinterpretion of the data.
The next important thing is, in the JSON data, you have to provide all entries defined in the manual. That means, if you forgot to write one of the parameters into the string, it is valid, but not recognized by the gantt module and isn’t doing anything. All of them need a value. providing nothing will have the same result: Nothing =)
I wanted to have my projects and tasks separated. In one line the project and then in the other lines the related tasks. This is possible by writing an extra entry to your JSON string, in which you only write the information about the project. When writing the tasks of the project, you probably don’t want to write the project in front of each task. If you think you can define an empty string for the name parameter of the JSON entry, you are wrong. The module needs a value of at least one character. Using an empty string results in not displaying the chart and some nice error messages. Using a space (” “) is the solution.
Also, you have to provide a start and end date for each entry. I wanted to have no duration for the project, so I didn’t provide the “from” and “to” parameter, it rewarded me with some other javascript errors. So I used the whole duration of the project for the project entry, it’s a good feature anyway.
A nice feature: You can use HTML in your JSON parameters, so, if you use
tags for example in your desc parameter and some formatting tags, you can make the mouseOver of the entries look more beautiful and put some more information into it.
If you think the styleClasses available for your entries in the chart (ganttRed, ganttGreen, ganttOrange) are not that beautiful, or you want to use some more, you can easily define some. There is a css file in the module. Looks like this:
.fn-gantt .ganttOrange { background-color: #FCD29A; } .fn-gantt .ganttOrange .fn-label { color: #714715 !important; }
Copy those entries and do your own styles, the class at the end of the definition is recognized by the module, so you can use it directly in the “customClass” parameter of your JSON.
But there is one big problem when using this module. Above the chart, I have some buttons. I wanted to load different charts with those buttons. Easily done I thought, just firing a partial execute on the chart container to set another data source or something. But, nothing happens, in fact really nothing, not even an event which I could see in my FireBug. Some other buttons with only clientside code are working fine. All other buttons on the whole page are working fine, only those I have directly above my chart didn’t wanted to work. I haven’t figured out what’s the problem, if I find it, I will let you know.
Another problem is that the gantt chart is not working in the Notes Client. If I open the Xpage in my Notes client, the chart isn’t loaded, only a nice grey bar. Other jQuery modules are working fine, for example the accordion or flip is working, but not the module. If you want to use it in the NotesClient you should think about another solution… or wait until I find a solution for this problem =)
Another thing you should consider are loading times. The loading time is increasing dramatically proportional on how many entries you display (rowsPerPage parameter in the gantt function) and how many years they cover. If you want to display some tasks from a period of 10 years or more, you have to wait a bit. I tried a period of 30 years… not a good idea, my browser crashed… after about 5 minutes of loading.
So, I think that’s all I know about the module and how to use it. Despite all the small and big problems I have a nice application with some really nice gantt charts. If you are interested in such an application, you should visit this page (Cobalt Software GmbH), the new version should be available soon. Ok, sorry for the advertisement…
If you have any questions or solutions for my unsolved problems, the comment section is all yours =)
Hope it was useful for some of you.
Ab und an kommt es ja mal vor, dass man auf eine Website gerät, auf der man augenblicklich Augenkrebs bekommt. Wenn das nun eine Seite ist die man recht häufig nutzen möchte, wie z.B. ein Forum, dann ist das natürlich sehr ärgerlich.
Mit ein paar Kenntnissen in Webdesign, bzw. dem Schreiben von CSS-Stylesheets, muss das aber nicht sein.
Firefox bietet die Möglichkeit an eigene Styles für bestimmte Seiten zu definieren. Dazu muss einfach nur eine Datei im Firefox ProfilVerzeichnis angelegt werden.
Die Datei heißt userContent.css und muss sich in einem Verzeichnis namens “Chrome” befinden.
Bei Windows 7 sähe das in etwa so aus:
C:\Users\Benutzername\AppData\Roaming\Mozilla\Firefox\Profiles\profilnummer.default\Chrome\userContent.css
Dort kann man mit Firefox-spezifischen CSS Befehlen eine Domain ansteuern und CSS Definitionen kapseln:
@-moz-document domain(“Domain-mit-schlechtem-Design.com”) {
.screwedStyleClass{…}
}
Nun kann man seine eigenen Styles für jede beliebige Seite definieren. Das ganze funktioniert übrigens auch im Aurora, wobei es da Diskrepanzen bei der Interpretierung des Stylesheets geben kann. Bei einem Anwendungsfall bei mir sah das Ergebnis im Aurora anders aus als im Firefox. Da Aurora und Firefox bei paralleler Installation auf das gleiche profil zugreifen muss man die Styles dementsprechend auch nur einmal ablegen.
Wer genauere Informationen zu diesem Thema und rund um das Thema Firefox haben möchte, dem kann ich diese Seite hier empfehlen:
Holger Metzger – Mozilla Tipps & Tricks
Diese Geschichte mit der userContent.css befindet sich in der Mozilla FAQ unter Kapitel 9
Heute hat mich ein Kollege (an dieser Stelle vielen Dank an Hedersoft GmbH) auf etwas aufmerksam gemacht.
Wir waren intern schon eine Weile auf der Suche nach einer Source Control Lösung für Notes/ Domino und vor allem für XPages. Auf der Seite Notes in 9 gibt es 2 nette Videos von David Leedy, in welchen er eine schöne Lösung vorstellt, welche aber ursprünglich von Declan Lynch zu stammen scheint.
Die Lösung baut auf dem Sourc Controlsystem Mercurial auf, in Verbindung mit der Projektmanagementlösung Redmine.
Benutzt wird das Plugin von Mercurial für Eclipse, welches in einer etwas älteren Version, mit dem Domino Designer kompaibel ist. Bedient wird das ganze über die Navigatoransicht, in welchem die einzelnen Designelemente in das Source Control System geschoben werden. Aber das sieht man alles in den Videos.
Hier sind die Videos:
Notes in 9: XPages Designer – Source Control
Notes in 9: Using Source Control Part 2
Ich denke wir werden das intern auf jeden Fall mal auspobieren. Ich werde euch auf dem Laufenden halten. Für weitere Rückmeldung und Erfahrungsberichte bin ich natürlich immer offen.
Heute habe ich mir mal ein paar Funktionen im Domino Designer angeschaut und dabei ein nettes verstecktes Feature gefunden: Den IBM Support Assistenten.
Man erreicht ihn über die Perspektiven im Designer:
Dann findet man ihn in der Liste:
Nun gelangt man zu einer Suchmaske auf der man in bestimmten Seiten nach Stichworten suchen kann:
So kann man während der Entwicklung bequem auf die IBM Ressourcen (& Google) zugreifen. Öffnet man einen der Links, so öffnet sich der Standard-Browser des Systems mit der angegebenen Ressource.
Weiterhin kann man über die erweiterte Suche noch die Art der Information einschränken die man haben möchte.
Ob, und wenn ja wie, man weitere Suchziele hinzufügen kann habe ich noch nicht herausgefunden, aber ich halte euch auf dem Laufenden.
Mozilla hat mit dem Aurora 11 eine, meiner Meinung nach, sehr schöne Version herausgebracht. Ich bin bisher noch nicht dazu gekommen ihn komplett zu testen, aber eine Funktion ist mir direkt ins Auge gefallen. Im Paket der Web-Developer Tools gibt es im Untersuchen-Werkzeug eine 3D-Funktion. Damit kann man sich seine Seite in 3D anschauen. Alle Elemente werden als Box gestapelt angezeigt. Dadurch kann man sehr intuitiv und einfach bestimmte Konstrukte und Elemente genauer anschauen, ohne sich durch Code durchwühlen zu müssen oder zu hoffen dass man mit der Maus das richtige Element erwischt, was besonders bei stark geschachtelten Konstrukten schwierig und zeitaufwändig sein kann. Natürlich beinhaltet das Paket nicht alle Funktionen die man mit dem Firebug oder den Web Development Tools (das Plugin) hat, aber als Ergänzung definitiv zu empfehlen.
Hier ein Screenshot als erster Eindruck von der Funktion:
Allgemein kann ich diese Version bisher sehr empfehlen, alle Plugins welche ich, privat oder auf der Arbeit, verwende, funktionieren problemlos in der neuen Version. Auch fällt die allgemeine Performance positiv auf. Das ist natürlich nur mein rein subjektiver Eindruck.
Bekommen kann man die Version hier.
I have been working with Ytria's excellent tools for many years now and there's not a single day in my life as a Domino developer or admin I don't use scanEZ or one of the other tools. That's one of the reasons we became a business partner with Ytria.
For one of our customers who is running several dozens of Domino-based enterprise web sites I had to change the "inherit design from master template" name in 46 databases. Doing this manually would have been very tedious, but using the soon-to-be-released tool "databaseEZ" made this a matter of only a few seconds.
When databaseEZ has started, the UI is very similar to aclEZ or agentEZ. The navigation pane on the left allows me to select the databases I want to see in the grid. Even when I select all databases on the server, the grid updates in a breeze. Since the property "Inherit from" is not displayed in the grid by default, I have to select it in the "Grid Data Composition" panel on the right, press "Apply" and the information is populated instantly. Then I just need to group the databases by this property, select the ones I want to change and select "Edit Database Design Properties" from the context menu. There I can change the name of the template the databases inherit from and after OK'ing the dialog the grid is updated with the new data. In order to actually save my changes I press CTRL-S or select "Server - Apply Changes" from the menu and I'm done.
That's just one of the many features in databaseEZ which make my Domino life so much easier. I will post a more detailed review of the tool soon, just wanted to share this today. Thank you guys!