Auch Kaufentscheidungen im B2B-Geschäft werden im Internet getroffen. Zu dieser Erkenntnis kommt eine Analyse des Softwareanbieters Webprospector. Dies gelte insbesondere bei Verbrauchs- und Investitionsgütern mit einem Preis unter 10.000 Euro.
[SP] trendwatching.com's MADE BETTER IN CHINATrendWatching
China aún enfrenta muchos obstáculos en su intento de fomentar una cultura de innovación y creatividad fuerte y perdurable (¡La economía del Estado! !La política! !La demografía! !El medio ambiente! !La propiedad intelectual!).
Sin embargo, una avalancha de marcas chinas ya están atendiendo a un mercado interno cada vez más grande y sofisticado, compitiendo e incluso superando a las marcas titulares ya establecidas en todo el mundo.
Imagínense qué sorpresas nos traerá el futuro cuando China se vea verdaderamente liberada.
Auch Kaufentscheidungen im B2B-Geschäft werden im Internet getroffen. Zu dieser Erkenntnis kommt eine Analyse des Softwareanbieters Webprospector. Dies gelte insbesondere bei Verbrauchs- und Investitionsgütern mit einem Preis unter 10.000 Euro.
[SP] trendwatching.com's MADE BETTER IN CHINATrendWatching
China aún enfrenta muchos obstáculos en su intento de fomentar una cultura de innovación y creatividad fuerte y perdurable (¡La economía del Estado! !La política! !La demografía! !El medio ambiente! !La propiedad intelectual!).
Sin embargo, una avalancha de marcas chinas ya están atendiendo a un mercado interno cada vez más grande y sofisticado, compitiendo e incluso superando a las marcas titulares ya establecidas en todo el mundo.
Imagínense qué sorpresas nos traerá el futuro cuando China se vea verdaderamente liberada.
Easy Diplomacy Summer Party, 13 giugno 2013Easy Diplomacy
Easy Diplomacy Summer Party, 13 June 2013 - InterContinental De La Ville Roma.
Un evento nel meraviglioso hotel InterContinental De La Ville nel cuore di Roma, dedicato al personale amministrativo e di segreteria membro di Easy Diplomacy. Una grande opportunità per i nostri Partner per promuovere i propri servizi!
Silvano Malfasi e Roberto Cozzi - Eurocar Limousine Services
Simona Guerra - Studio dentistico Borreo
Bruno Alessi - Il Mio Ristorante (Business Lunch a domicilio)
Ligia Martins - Teru (Gadget)
Simonetta Margheriti - L’Italiano Diplomatico (corsi di lingua italiana per Diplomatici)
E naturalmente il nostro gentile ospite, l'hotel InterContinental De La Ville Roma - il Direttore Generale Ciro Verrocchi e tutto lo Staff!
***
Easy Diplomacy Summer Party, 13 June 2013 at InterContinental De La Ville Roma.
An event in the beautiful hotel InterContinental De La Ville in the heart of Rome, dedicated to Administrative and secretarial personnel Member of Easy Diplomacy. A great opportunity for our Partners to promote their services!
Silvano Malfasi and Roberto Cozzi - Eurocar Limousine Services
Simona Guerra - Dental Office Borreo
Bruno Alessi - Il Mio Ristorante (Business Lunch Delivery)
Ligia Martins - Teru (Gadgets and business gifts)
Simonetta Margheriti - L’Italiano Diplomatico (Italian language courses for Diplomats)
And of course our kind host InterContinental De La Ville Roma - Ciro Verrocchi, General Manager and all the Staff!
PPT del que hago uso en la colaboración de voluntariado en Fundación Integra. Estos son los temas de que trato. Cualquier sugerencia será bienvenida.
1 – Diferencias entre aptitud y actitud (a desarrollar con los participantes)
2 – La búsqueda de empleo es un empleo (a desarrollar con los participantes)
3 – Desarrollo de la musculatura del ser (a desarrollar con los participantes)
4 – Desarrollo del buen pensar
a) Técnicas de autoapoyo
b) Técnicas del espejo interior
c) La sonrisa
d) Respiración consciente
5 – Cómo afrontar el día a día en la espera
6 – MOTIVACIÓN Y AUTOMOTIVACIÓN
1 – Diferencias entre aptitud y actitud (a desarrollar con los participantes)
Aptitud es toda habilidad en la que una persona es apta. Todos la tenemos, sea cual sea, ya en lo aparentemente más humilde ya en lo más complejo. Descubrirla, desarrollarla y ser conscientes de que nuestra aportación por muy pequeña es precisa para un mundo mejor es responsabilidad personal.
2 – La búsqueda de empleo es un empleo (a desarrollar con los participantes)
Sin embargo, como todo empleo debe de tener un horario y una metodología. Centrarnos exclusivamente en la búsqueda de empleo sin dejar espacio para nuestro desarrollo personal puede ser incluso contraproducente.
3 – Desarrollo de la musculatura del ser (a desarrollar con los participantes)
De igual manera que desarrollamos la musculatura física es preciso desarrollar y mantener a punto la musculatura sicológica, emocional y espiritual.
Desarrollo del buen pensar
Tomado del MANUAL DEL BUEN PENSAR, Doctor Seperiza
http://www.isp2002.co.cl/manual.htm
a) AUTOAPOYO
La palabra, AUTOAPOYO, está para recordarnos que cada uno tiene en su mente las herramientas para programarse mejor; mejor dicho reprogramar su manera de pensar. La media diaria de pensamientos en una persona normal representa un 70% de pensamientos basura y el AUTOAPOYO nos ayuda a Pensar Mejor. Pensar Mejor nos ayuda a vivir mejor...
b) EL ESPEJO INTERIOR
Si decidimos mirarnos, hacerlo cara a cara, fijo a los ojos. Conviene realizarlo eliminando la máscara social, hacerlo sin temor, con comprensión, amor y perdón ante la criatura que tenemos enfrente, ese que uno realmente es. Si uno no se ayuda a sí mismo nadie podrá hacerlo. Sólo será ayudado quien desea recibir ayuda y esa ayuda viene desde lo interno de cada uno. Al mirarnos al espejo es cual estarnos ayudando mutuamente.
- Sonreír, sonríete. Dar empleo a los flojos músculos faciales de la sonrisa que son más de 40. Verás como tu reflejado rostro cambia y tú cambias por el simple hecho de haberte sonreído y verte a ti mismo SONRIENDO.
- Dialoga mentalmente contigo mismo de manera constructiva dándote sanos consejos fraternales.
- Usa el AUTOAPOYO con la repetición de frases positivas que te harán, de buena manera, iniciar la diaria jornada matinal y finalizar el día en la noche.
- Mira tus ojos y conté
Gonzato Contract is the division of Ind.i.a. that works
with special supplies, in wrought iron, stainless steel
or any other metal, for prestigious private homes,
public buildings, community spaces and for each
kind of commission that requires a custom-made
approach, from planning to installation. Assisting the
customer during all the process, from the first steps
to the finished work, Gonzato Contract is the ideal
partner for any project and places itself towards the
client like the sole responsible of the quality of its
product and its service.
www.gonzatocontract.com
We are trying to develop our working and branding of our Brand in international markets of Denim and Leathers Products. And i hope you all my friends and supporting members are always support us. Our aim to gives you best and new generation of denim products.
Thanks To All
* Our Investor partners
* Working Partners
* Media Partners
And Our All Working Staffs........
Mythes, légendes et monstres: Obstacles sur le chemin vers le Graal de l'Entr...François Bachmann
Les obstacles à un déploiement plus massif de l'Agilité dans l'entreprise peuvent être vus comme des mythes, des légendes et des monstres. Cette présentation, donnée à Agile France 2011 à Paris, contient quelques pistes pour ne pas se laisser freiner par ces obstacles et continuer la quête du Graal: l'Entreprise Agile! ;)
In loser Folge werden Tipps und Tricks aus allen Bereichen der Programmierung in Lotus Notes/Domino vorgestellt. @Formula, LotusScript, XPages, LS2CApi.
Wie konfiguriere ich den Domino Designer?
Welche kostenlosen Tools können mir meine Arbeit erleichtern?
Warum ist es wichtig, richtig zu "dimmen"?
Richtext kann mit LotusScript im Backend nicht in Richtext eingefügt werden. Oder etwa doch? @Transform / @Sort. Was kann man denn damit machen?
8.5.3, was gibt es Neues im Bereich @Formula / LotusScript.
Zielgruppe sind alle, die sich mit Applikationsentwicklung beschäftigen. Anfänger und "alte Hasen"; es ist für jeden etwas dabei.
Kenntnisse: Grundlagen der Entwicklung in Lotus Notes/Domino
Interaction & Information Design: User first: Mit klarem Fokus eine ambitiöse...ONE Schweiz
Interaction & Information Design:
User first: Mit klarem Fokus eine ambitiöse Roadmap umsetzen
Marc Isler, E-Channel Manager, Interhome AG - interhome.ch
Easy Diplomacy Summer Party, 13 giugno 2013Easy Diplomacy
Easy Diplomacy Summer Party, 13 June 2013 - InterContinental De La Ville Roma.
Un evento nel meraviglioso hotel InterContinental De La Ville nel cuore di Roma, dedicato al personale amministrativo e di segreteria membro di Easy Diplomacy. Una grande opportunità per i nostri Partner per promuovere i propri servizi!
Silvano Malfasi e Roberto Cozzi - Eurocar Limousine Services
Simona Guerra - Studio dentistico Borreo
Bruno Alessi - Il Mio Ristorante (Business Lunch a domicilio)
Ligia Martins - Teru (Gadget)
Simonetta Margheriti - L’Italiano Diplomatico (corsi di lingua italiana per Diplomatici)
E naturalmente il nostro gentile ospite, l'hotel InterContinental De La Ville Roma - il Direttore Generale Ciro Verrocchi e tutto lo Staff!
***
Easy Diplomacy Summer Party, 13 June 2013 at InterContinental De La Ville Roma.
An event in the beautiful hotel InterContinental De La Ville in the heart of Rome, dedicated to Administrative and secretarial personnel Member of Easy Diplomacy. A great opportunity for our Partners to promote their services!
Silvano Malfasi and Roberto Cozzi - Eurocar Limousine Services
Simona Guerra - Dental Office Borreo
Bruno Alessi - Il Mio Ristorante (Business Lunch Delivery)
Ligia Martins - Teru (Gadgets and business gifts)
Simonetta Margheriti - L’Italiano Diplomatico (Italian language courses for Diplomats)
And of course our kind host InterContinental De La Ville Roma - Ciro Verrocchi, General Manager and all the Staff!
PPT del que hago uso en la colaboración de voluntariado en Fundación Integra. Estos son los temas de que trato. Cualquier sugerencia será bienvenida.
1 – Diferencias entre aptitud y actitud (a desarrollar con los participantes)
2 – La búsqueda de empleo es un empleo (a desarrollar con los participantes)
3 – Desarrollo de la musculatura del ser (a desarrollar con los participantes)
4 – Desarrollo del buen pensar
a) Técnicas de autoapoyo
b) Técnicas del espejo interior
c) La sonrisa
d) Respiración consciente
5 – Cómo afrontar el día a día en la espera
6 – MOTIVACIÓN Y AUTOMOTIVACIÓN
1 – Diferencias entre aptitud y actitud (a desarrollar con los participantes)
Aptitud es toda habilidad en la que una persona es apta. Todos la tenemos, sea cual sea, ya en lo aparentemente más humilde ya en lo más complejo. Descubrirla, desarrollarla y ser conscientes de que nuestra aportación por muy pequeña es precisa para un mundo mejor es responsabilidad personal.
2 – La búsqueda de empleo es un empleo (a desarrollar con los participantes)
Sin embargo, como todo empleo debe de tener un horario y una metodología. Centrarnos exclusivamente en la búsqueda de empleo sin dejar espacio para nuestro desarrollo personal puede ser incluso contraproducente.
3 – Desarrollo de la musculatura del ser (a desarrollar con los participantes)
De igual manera que desarrollamos la musculatura física es preciso desarrollar y mantener a punto la musculatura sicológica, emocional y espiritual.
Desarrollo del buen pensar
Tomado del MANUAL DEL BUEN PENSAR, Doctor Seperiza
http://www.isp2002.co.cl/manual.htm
a) AUTOAPOYO
La palabra, AUTOAPOYO, está para recordarnos que cada uno tiene en su mente las herramientas para programarse mejor; mejor dicho reprogramar su manera de pensar. La media diaria de pensamientos en una persona normal representa un 70% de pensamientos basura y el AUTOAPOYO nos ayuda a Pensar Mejor. Pensar Mejor nos ayuda a vivir mejor...
b) EL ESPEJO INTERIOR
Si decidimos mirarnos, hacerlo cara a cara, fijo a los ojos. Conviene realizarlo eliminando la máscara social, hacerlo sin temor, con comprensión, amor y perdón ante la criatura que tenemos enfrente, ese que uno realmente es. Si uno no se ayuda a sí mismo nadie podrá hacerlo. Sólo será ayudado quien desea recibir ayuda y esa ayuda viene desde lo interno de cada uno. Al mirarnos al espejo es cual estarnos ayudando mutuamente.
- Sonreír, sonríete. Dar empleo a los flojos músculos faciales de la sonrisa que son más de 40. Verás como tu reflejado rostro cambia y tú cambias por el simple hecho de haberte sonreído y verte a ti mismo SONRIENDO.
- Dialoga mentalmente contigo mismo de manera constructiva dándote sanos consejos fraternales.
- Usa el AUTOAPOYO con la repetición de frases positivas que te harán, de buena manera, iniciar la diaria jornada matinal y finalizar el día en la noche.
- Mira tus ojos y conté
Gonzato Contract is the division of Ind.i.a. that works
with special supplies, in wrought iron, stainless steel
or any other metal, for prestigious private homes,
public buildings, community spaces and for each
kind of commission that requires a custom-made
approach, from planning to installation. Assisting the
customer during all the process, from the first steps
to the finished work, Gonzato Contract is the ideal
partner for any project and places itself towards the
client like the sole responsible of the quality of its
product and its service.
www.gonzatocontract.com
We are trying to develop our working and branding of our Brand in international markets of Denim and Leathers Products. And i hope you all my friends and supporting members are always support us. Our aim to gives you best and new generation of denim products.
Thanks To All
* Our Investor partners
* Working Partners
* Media Partners
And Our All Working Staffs........
Mythes, légendes et monstres: Obstacles sur le chemin vers le Graal de l'Entr...François Bachmann
Les obstacles à un déploiement plus massif de l'Agilité dans l'entreprise peuvent être vus comme des mythes, des légendes et des monstres. Cette présentation, donnée à Agile France 2011 à Paris, contient quelques pistes pour ne pas se laisser freiner par ces obstacles et continuer la quête du Graal: l'Entreprise Agile! ;)
In loser Folge werden Tipps und Tricks aus allen Bereichen der Programmierung in Lotus Notes/Domino vorgestellt. @Formula, LotusScript, XPages, LS2CApi.
Wie konfiguriere ich den Domino Designer?
Welche kostenlosen Tools können mir meine Arbeit erleichtern?
Warum ist es wichtig, richtig zu "dimmen"?
Richtext kann mit LotusScript im Backend nicht in Richtext eingefügt werden. Oder etwa doch? @Transform / @Sort. Was kann man denn damit machen?
8.5.3, was gibt es Neues im Bereich @Formula / LotusScript.
Zielgruppe sind alle, die sich mit Applikationsentwicklung beschäftigen. Anfänger und "alte Hasen"; es ist für jeden etwas dabei.
Kenntnisse: Grundlagen der Entwicklung in Lotus Notes/Domino
Interaction & Information Design: User first: Mit klarem Fokus eine ambitiöse...ONE Schweiz
Interaction & Information Design:
User first: Mit klarem Fokus eine ambitiöse Roadmap umsetzen
Marc Isler, E-Channel Manager, Interhome AG - interhome.ch
Vortrag zur Entwicklung von Applikationen mit XPages. Der Vortrag wurde am 18.05.2011 im Rahmen des Arbeitskreises Anwendungsentwicklung auf der DNUG 2011 in Bonn gehalten.
Expert system webinar 29.6.2017 cogito und deep learningStefan Geißler
Slides of my webinar from June 29 2017 (in german): We train a network oin a text categorization corpus and then proceed to improve the results by introducing semantic abstraction with Expert System Cogito, reducing the error rate by ~40%
In Zusammenarbeit mit den Ergonomen und der Zürcher Hochschule er Künste, bereich Interaction Design wurde dieses Referat entwickelt und am eBusiness Kongress in Zürich gehalten.
Niemand hat Lust, online ein Formular auszufüllen und doch sind Formulare im Netz omnipräsent; angefangen bei Googles Suche, über Facebooks Statusnachrichtfeld bis hin zum Online-Autoversicherungsabschluss. Nur warum machen diese Formulare so unterschiedlich Spass? Was braucht es seitens Konzept, Design und Technologie, um mit einem Formular zu besseren Conversions zu kommen?
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem Vormarschenpit GmbH & Co. KG
Seit Jahrzehnten fasziniert das Gebiet der Künstlichen Intelligenz (KI). Durch neue Lernverfahren (z.B. Deep Learning) auf großen Datenbeständen konnte in den letzten Jahren insbesondere die Sprach- und Bilderkennung essentiell verbessert werden. Wie können Unternehmensanwendungen von den Errungenschaften Gebrauch machen? Neue Cloud Services von Oracle, Google, Microsoft, Amazon und IBM abstrahieren die Komplexität darunterliegender Algorithmen und machen maschinelle Lernverfahren für Entwickler intelligenter Assistenzsysteme einfach zugänglich. Auf Basis ausreichend großer Trainingsdaten können Muster erkannt, Handlungsempfehlungen abgeleitet oder autonome Entscheidungen getroffen werden.
Von Big Data zu Künstlicher Intelligenz - Maschinelles Lernen auf dem VormarschAndreas Koop
Seit Jahrzehnten fasziniert das Gebiet der Künstlichen Intelligenz (KI). Durch neue Lernverfahren (z.B. Deep Learning) auf großen Datenbeständen konnte in den letzten Jahren insbesondere die Sprach- und Bilderkennung essentiell verbessert werden. Wie können Unternehmensanwendungen von den Errungenschaften Gebrauch machen? Neue Cloud Services von Oracle, Google, Microsoft, Amazon und IBM abstrahieren die Komplexität darunterliegender Algorithmen und machen maschinelle Lernverfahren für Entwickler intelligenter Assistenzsysteme einfach zugänglich. Auf Basis ausreichend großer Trainingsdaten können Muster erkannt, Handlungsempfehlungen abgeleitet oder autonome Entscheidungen getroffen werden.
Topsoft 2017: Praxisbericht: Welche Fehler bei der Implementierung eines ERP-...Camptocamp
Die Einführung einer neuen ERP-Lösung ist ein strategisches, langfristiges Unternehmensprojekt. Für den Projekterfolg sind 3 Faktoren massgebend: die Wahl der richtigen Lösung, die Wahl des richtigen Implementierungspartners, sowie das Engagement des internen Projektteams.
Topsoft Fachmesse, Zürich, Switzerland
http://www.topsoft.ch/de/dyn_output.html?content.vname=home_de
Wie Sie Mit Design Sprints Echten Digitalen Wandel SchaffeniTiZZiMO
In dieser Präsentation zeigen wir Ihnen, wie Sie schwierige Problemstellungen in nur wenigen Tagen mit Design Sprints lösen. Wir stellen Ihnen die bewährte Methodik von Google vor und geben handfeste Tipps, wie Sie sofort loslegen können.
Sie haben verstanden, was digitale Transformation bedeutet
Sie wissen, wie groß die kommenden Herausforderungen sind.
Sie haben aber auch bemerkt, wie überwältigend diese sein können?
Wie schaffen es kleine Startups und Innovationsteams, Ideen und Probleme in nur wenigen Tagen zu lösen statt Ihr Geld in monatelanger Projektlaufzeit mit ungewissem Ausgang zu versenken?
Mit Design Sprints, basierend auf dem bewährten Design Thinking Modell, zeigen wir Ihnen, wie auch Sie Lösungsansätze in wenigen Tagen validieren können. Ganz egal ob es sich um Software, Services oder neue Produkte und Geschäftsmodelle handelt.
Ähnlich wie Fine tuning Lotus Script (german) (20)
1. Feinabstimmung für Ihr Lotusscript
Jens-B. Augustiny, LIGONET GmbH
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 1
2. Who is who?
● Jens-B. Augustiny, LIGONET GmbH
Biel, Schweiz / Sindelfingen
● Seit über 15 Jahren im Notes-Umfeld tätig
● Entwicklung und Administration
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 2
3. Agenda
● Was denken Sie, ist langsam?
– Wo tauchen Leistungsprobleme auf?
● Woher nur kommt das?
– Tips und Werkzeuge, die Schwachstellen zu
erkennen
● Nie mehr da durch!
– Tips zur Vermeidung von Leistungsschwächen
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 3
4. Was glauben Sie ist langsam?
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 4
5. Schlechte Leistung – was genau
meinen wir eigentlich?
● Schlechtes Programm ....
● Lieferzeiten statt Antwortzeiten
● Unmöglich damit zu arbeiten!
● Dieser Ablauf muss unbedingt
verbessert werden
● Wer hat diese Argumente nicht schon gehört?
● Stellen Sie sicher, dass Sie das richtige Problem
angehen!
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 5
6. 9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 6
7. Leistung – wovon eigentlich?
● Empfundene Leistung
● Der Benutzer empfindet, dass die Applikation nicht das
gewünschte Resultat liefert.
● Sehr schwer zu analysieren
● Mögliche Lösungen:
● Bessere Ausbildung der Benutzer: Funktionalität erklären
● Verbesserung der Wahrnehmung: Mehr Informationen während der
Verarbeitung oder der Dateneingabe
● Den Workflow überarbeiten und verbessern
● Das Empfinden der Benutzer kann stark beeinflussen, wie die
Leistung eingeschätzt wird: Frustrierende oder langwierige
Eingaben können als schlechte Leistung angekreidet werden
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 7
8. Reale Leistung
..... oder eher das Fehlen derselben ....
● Flaschenhälse, die durch Messung erkannt werden
● Fast unmöglich, diese vorauszusagen
● Unterschiede zwischen Test- und Produktionsumgebung
● Jede Aussage ohne Messung ist Spekulation
● Die Messung selbst kann das Resultat beeinflussen
● Enorm wichtig, Messdaten zu haben, bevor man etwas
ändert. Genau wie bei den Endusern haben auch
Entwickler ihre eigenen Ideen, welches die Ursache
von Problemen sein könnte ...
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 8
9. Beispiel
● Viermal derselbe Code
● 2 Variablen werden verändert: Die Loop-Logik und
die Art, wie auf die Datenbank-Eigenschaften
zugegriffen wird.
● Fragen:
– Welche der 4 Varianten ist die Schnellste?
– Warum ist die von Ihnen gewählte Variante schnell?
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 9
10. Der Beispielcode
Forall v In db.views u = Ubound(db.views)
A s = v.name
Print s
For i = 0 To u
s =db.Views(i).name
C
End Forall Print s
Next
tmpView = db.Views tmpView = db.Views
Forall v In tmpView u = Ubound(tmpView)
B s = v.name
Print s
For i = 0 To u
s =tmpView(i).name
D
End Forall Print s
Next
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 10
11. Resultate
Erster Lauf: B – D – A – C
Zweiter Lauf (caching): D – B – A – C
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 11
12. Folgerungen
● Ergebnisse können Ueberraschen
● Messungen sollten in realistischer Umgebung
durchgeführt werden
● Datenmenge und Datenstruktur sollte der Realität
entsprechen, die meisten Testumgebungen sind
ungenüngend
● Die Analyse muss extrem systematisch
durchgeführt werden, zB. systematische
Eingrenzung
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 12
13. Woher kommt das den alles?
●Sie benötigen aktuelle Werte, um
die Arbeit etwas aufzubessern zu
begründen. Woher sollen die
kommen?
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 13
14. Now für die Zeitmessung
● Beispiel:
BaseTime = Now
[.... Code hier ... ]
Print “Time used: “ & Now – BaseTime
● Vorteil:
– Einfach und billig
● Nachteile:
– Veränderung des Codes
– Platzierung ist kritisch
– Ungenügende Auflösung
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 14
15. High Resolution Timing -
GetThreadInfo()
● Von Brude Perry einst publizierter nicht dokumentierter
Funktionsaufruf, mittlerweile gilt das Verfahren als legal:
● http://searchdomino.techtarget.com/tip/1,289483,sid4_gci895240,00.html?FromTaxonomy=%2Fpr%2F283841
stc = GetThreadInfo(LSI_THREAD_TICKS) ' get the
starting tick count
'[....the code you want To Time...]
'get the final tick count
ftc = GetThreadInfo(LSI_THREAD_TICKS)
'get the ticks per second
tps = GetThreadInfo(LSI_THREAD_TICKS_PER_SEC)
'final tick count minus starting tick count divided by
ticks per second yields duration.
t = (ftc - stc) / tps
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 15
16. GetThreadInfo
● Vorteile:
– Einfache Implementierung
– Bessere Auflösung als Now
● Nachteile:
– Veränderung des Codes
– Falsche Platzierung ergibt falsche Resultate
– GetThreadInfo ist nicht garantiert vorhanden
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 16
17. Wie bekommt man die Resultate?
● PRINT: Resultat in der Statusleiste (Client) oder in
log.nsf (Server)
● Besser:
– Ausgabe in ein Dokument
– Ausgabe in ein Profile-Dokument
– Ausgabe in eine Analyse-Datenbank .... ähhh … Anwendung
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 17
18. Beispiel: Man mache es
wiederverwendbar
Class debugTimer
Private Start As Variant
Private fnName As String
Sub New( fn As String )
Set Start = Now
fnName = fn
End Sub
Sub Delete
Print fnName & " benötigte " & Now-Start & " Sekunden."
End Sub
End Class
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 18
19. Beispiel: Man mache es
wiederverwendbar
Sub Initialize()
Dim fnTime As New debugTimer( GetThreadInfo(LSI_THREAD_PROC) )
Dim i As Integer
While i < 1000
Print i
i = i + 1
Wend
End Sub
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 19
20. Systemeigenes Profiling
● Eingeführt mit Lotus Notes / Domino 7
® ® ®
● Nur für Agenten und Web Services
● Java und LotusScript
● Aktivierung in den Eigenschaften des Agenten/WS
● Resultate durch Rechtsklick auf Agent oder WS
● Es gibt nur Werte für reine Notes/Domino Objekte
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 20
21. Systemeigenes Profiling: Beispiel
Sub Initialize
Dim db As New NotesDatabase( "", "names.nsf" )
i = 0
Dim s As String
For i = 0 To UBound(db.views)
s =db.Views(i).name
Print s
Next
End Sub
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 21
24. Teamstudio Profiler
● Messung eigener Funktionen und Routinen
● Zeitangaben pro Zeile
● Eine Menge an zusätzlichen Analysewerten
● Server und Client
● LotusScript only
● Anwendung wird sehr stark verlangsamt
● Kostenpflichtig
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 24
26. Nein, ich will da nicht wieder durch
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 26
27. Häufige Probleme
● Hilfsmittel sind zwingend bei bestehenden
Programmen und Leistungsproblemen. Besser
ist jedoch, die Probleme von Anfang an zu
vermeiden.
● Manche Probleme sind reale Fehler, andere
häufig nur Sorglosigkeit
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 27
28. GetNthDocument()
● Durchlaufen einer Doc-Collection mit
GetNThDocument(n) ist bedeutend langsamer
als mit GetFirstDocument und
GetNextDocument (doc)
● Viel wurde darüber schon gesagt, einiges ist
online nachlesbar
● http://bobzblog.com/tuxedoguy.nsf/dx/getnth-revisited-helpful-function-or-spawn-of-the-devil
● http://www.lotusgeek.com/LotusGeek/LotusGeekBlog.nsf/d6plinks/ROLR-7HHPER
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 28
29. Ueberprüfen Sie Ihre Loops
found=False
Do Until (selected_doc Is Nothing)
If (selected_doc.Form(0)="fa_Term") Then
found=True
End If
Set selected_doc=term_collection.GetNextDocument(selected_doc)
Loop
Set selected_doc=term_collection.GetFirstDocument()
If Not(found=True) Then
MessageBox NO_TERM_DOCUMENTS_SELECTED_TO_DELETE, 16, DELETE_ERROR
Exit Sub
End If
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 29
30. … und korrigieren Sie die Fehler
found=False
Do Until (selected_doc Is Nothing)
If (selected_doc.Form(0)="fa_Term") Then
found=True
' loop sollte hier abgebrochen werden!!
End If
Set selected_doc=term_collection.GetNextDocument(selected_doc)
Loop
Set selected_doc=term_collection.GetFirstDocument()
If Not(found=True) Then
MessageBox NO_TERM_DOCUMENTS_SELECTED_TO_DELETE, 16, DELETE_ERROR
Exit Sub
End If
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 30
31. Fehler beheben: Verrotteter Code
● Tatsache ist, dass Code sich verändert:
man entdeckt bessere Wege
● Stellen Sie sicher, dass Codeänderungen zu Ende geführt werden, sonst kann
die Leistung leiden.
Sub Queryopen(...)
Dim session As New NotesSession
Set db = session.currentdatabase
Set view = db.getview("People")
Set ProfileDoc = db.getprofiledocument("PickerView")
' ProfileDoc.Pview = "People"
End Sub
● Die Variable “view” wird nirgends im Code verwendet. Db.Getview ist ein teurer
Funktionsaufruf, speziell dann, wenn das Resultat nie verwendet wird.
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 31
32. Achtung mit verschachtelten IF
● Anders als Sprachen wie C und Java wird
bei LotusScript immer die gesamte
Bedingung ausgewertet
x = 1
If x = 0 And checkresult( res ) = 0 Then
'do some stuff
End If
● Checkresult() wird in jedem Fall ausgeführt, auch wenn x nicht 0 ist.
Leistungsprobleme können sich in solch einfachen Anweisungen
verstecken.
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 32
33. Achtung mit verschachtelten IF:
die Lösung
x = 1
If x = 0 Then
If checkresult( res ) Then
'do some stuff
End If
End If
● Durch die Auflösung der Bedingung in zwei Aufrufe wirde Checkresult()
nur noch aufgerufen, wenn die erste Bedingung True ergibt.
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 33
34. Variablen – Variant ist langsamer
● Abgesehen davon, dass Variants
allgemein häufig zu Fehlern führen,
sind sie ausserdem sehr langsam.
● LotusScript muss bei jedem Zugriff den
Typ bestimmen und eine
Datenkonversion durchführen.
● Keine falsche Müdigkeit!
Option Declare gehört in jedes
LotusScript Programm
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 34
35. Loops – Es gibt schnellere und
langsamere
●Forall ist viel schneller beim Durchlauf von Arrays
●For ... Next ist schneller als Do ..... Loop oder While ..... Wend
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 35
36. Und was noch ....
● Zugriff auf ausgewählte Documente ist schneller
mit Hilfe einer Ansicht als einer Document
Collection
● Zugriff auf Notes Objecte ist schneller durch eine
temporäre Variable als durch einen Direktzugriff
– wenn man den Wert mehr als einmal benötigt.
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 36
37. Zusammenfassung
● Es gibt technische und nicht technische Gründe für
fehlende Performance
● Wenn es technische Gründe sind, ist jede Aussage ohne
Messung reine Spekulation
● Es gibt keine zwei gleiche Fälle
● Systematische Top down Analyse ist extrem wichtig
● Manchmal ist ein Redesign die beste Lösung
● Es gibt ein paar “best practices”
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 37
38. Danke!
Fragen?
●
Vielleicht gibt es sogar Antworten ..... :-)
Jens-B. Augustiny - LIGONET GmbH
augustiny.j@ligonet.ch
www.ligonet.ch
9. März 2010 Entwicklercamp 2010 / LIGONET GmbH 38