Hab heute eine interessante Frage in meinem Gästebuch gestellt bekommen. Hier nochmal der Text:
Hallo Oliver,
Mich würde interessieren, ob es auch eine Formel für die Fragestellung gibt, welchen jährlichen Rentenbetrag man aus einer Einmalzahlung über x-Jahre erhält, wenn man die Bedingung stellt, dass dieser Rentenbetrag jährlich um y% (Inflation) steigen soll. Fällt Dir dazu etwas ein?
Nun, ich hab mir ein paar Gedanken gemacht, und bin zumindest zu einer Näherung des Problems gekommen. Die Aufgabe an Euch Leser: bitte mal prüfen, ob da so alles korrekt zugeht. Eventuell findet Ihr ja eine bessere, genauere Lösung.
Hier nun meine Überlegungen:
Wie unter "Monatliche Rente/Tilgungsrate" rm ermitteln.
Annahme rm * 12 == "mittel"wert für die jährlichen Zahlungen, d.h. die weiter unten bezeichneten rn und r0 müssten jeweils durch 12 dividiert werden, um auf die monatliche Rate zu kommen.
Nun läuft r bis zur Laufzeit n mit Steigung (1+inf)^(n-1)
rn = Ende
r0 = Anfang
rn = r0 * (1+inf)^(n-1)
Annahme: Die Fläche unter der Kurve muss gleich der Fläche rm * n sein
Nun Beispiel mit rm * 12 = 120, ergibt sich aus Einmalzahlung von 229,50, Verzinsung des Kapitals mit 5% und Laufzeit von 2 Jahren.
rn = r0 * (1+inf)^(n-1)
0) rn * n = rm * n
1) r0 * (1+inf)^(n-1) * n = rm * n
2) r0 * (1+inf)^(n-1) = rm*12
3) r0 = rm*12 / (1+inf)^(n-1)
4) r0 = 120 / (1 + 0,03)^(2-1)
5) r0 = 120 / 1,03
6) r0 = 116,50
Aus r0 nun rn berechnen:
rn = r0 * (1+inf)^(n-1)
rn = 116,50 * (1,03) ^ 2
rn = 123,60
Das ganze stellt meiner Meinung nach nur eine Näherung dar, der Fehler wird sich mit steigendem n vergrößern... warum?
Durch die geringeren Entnahmen aus der anfänglichen Einmalzahlung werden zu Beginn der Laufzeit höhere Zinsen erwirtschaftet. Sobald die Rate allerdings rm*12 übersteigt, wird mehr entnommen, das heißt hier fallen die erwirtschafteten Zinsen wieder. Dieses Fallen und Steigen der Zinsen müsste nun in einer Formel integriert werden, neben der reinen Berechnung der Rate, wie oben gezeigt, auch die Entwicklung des Kapitalstands unter Berücksichtigung von Verzinsung und Laufzeit enthält. Eventuell ist hier die Rentenbarwert-Formel weiterzuentwickeln, vielleicht bin ich aber auch auf dem falschen Dampfer. Oder wäre die oben dargestellte Betrachtungsweise sogar 100% korrekt? Es wäre zu überprüfen.
Jedenfalls danke an Werner, der mir diese Frage gestellt hat.
Tja, und für weiterführende Hinweise sind wir, denke ich, beide dankbar!
Samstag, 20. März 2010
Montag, 22. Februar 2010
So geht's auch - Web 2.0
Vor kurzem hab ich auf "Schlaflos in München" den Artikel Meine Web 2.0 Strategie gelesen, bei Google-Reader empfohlen und mir gedacht: solltest Du auch mal aufschreiben. Schließlich wird man ja immer älter und ehe man sich versieht, vergißt man wieder was man da so alles miteinander verknüpft hat.
Dabei möchte ich gerne gestehen, dass ich mir einiges bei Annik abgekuckt hab, nicht dass mich hier gleich jemand "Raubkopierer" oder "Helene" schimpft. Jetzt aber...
Twitter
Die bis-zu-140-Zeichen-Ergüsse landen hier, und zwar über Web, iGoogle-Gadget BeTwittered, oder Twidroid. Die Links zu meinen Blog-Posts stelle ich manuell ein, und zwar über die Social Bookmark Links unter jedem Post. Von Twitter aus werden die Nachrichten dann automatisch an Facebook (Freigabe in Facebook für Twitter-Posts erforderlich), auf meine Webseite (ein bißchen Javascript-Programmierung) und der Vollständigkeit halber an GoogleBuzz (Freigabe dort für die Twitter-Posts) gesendet.
Flickr
Hier werden Fotos hochgeladen, ganz klar. Die werden ebenfalls bei Facebook und GoogleBuzz automatisch veröffentlicht. Auf meinen Blog kommen auch ab und an einige Bilder von hier, die dann aber manuell ausgewählt und in Flickr betextet werden, d.h. den "Post" erstelle ich in diesen Fällen eigentlich in Flickr.
Daneben zeige ich einige der bei Flickr abgestellten Fotos per Flickriver auf meiner Webseite in den entsprechenden Seiten. Zusätzlich teste ich gerade SnapTweet, mal kucken ob das was wird. ... ach und in meinem Google-Profil werden auch die neusten Flickr-Fotos angezeigt.
Blog
Ja, wie's oben steht, was nicht in 140 Zeichen passt, kommt hier rein - wie dieser Artikel *grins*. Ansonsten empfange ich hier die Infos von Flickr (ausgewählte Fotos mit Text als Post) und Google-Reader (Empfehlungen). Die normalen Posts (ohne Flickr-Bilder) schreibe ich im Webclient von Blogger, nur einmal hab ich AndroBlogger benutzt - für den Notfall geht's.
Soziale Netzwerke
Die meiste Zeit tummle ich mich bei Facebook. Daneben hab ich auch Accounts bei Xing, Wer-kennt-wen und MeinVZ. Die zwei letzteren beachte ich allerdings nur noch stiefmütterlich. Im übrigen hab ich meine wesentlichen Accounts bei MyNameIsE auf einer Visitenkarte zusammengefasst, die wiederum als Widget in meine Webseite und meinen Blog integriert ist.
Google
Buzzen tue ich nicht wirklich, meine für iGoogle eingestellten Gadgets hab ich auch auf meiner Webseite integriert und von Google nutze ich sonst noch Analytics, Adsense, Blogger, Kalender, Mail, Reader, Webmaster-Tools. Also viel zu viel *grins* nicht zu vergessen die entsprechende Integration in mein G1.
Und sonst...?
Tja, ich denke das war's. Gut, Podcasts abonniere ich per iTunes, die Audio-Files höre ich per iPod Shuffle (der alte, längliche, mit Bedien-Taste am Gerät) im Auto, die Videos kucke ich am Rechner.
Bleibt zu fragen, wozu der ganze Aufwand? Einfache, und kurze Antwort: weil's Spaß macht. ;-)
Dabei möchte ich gerne gestehen, dass ich mir einiges bei Annik abgekuckt hab, nicht dass mich hier gleich jemand "Raubkopierer" oder "Helene" schimpft. Jetzt aber...
Die bis-zu-140-Zeichen-Ergüsse landen hier, und zwar über Web, iGoogle-Gadget BeTwittered, oder Twidroid. Die Links zu meinen Blog-Posts stelle ich manuell ein, und zwar über die Social Bookmark Links unter jedem Post. Von Twitter aus werden die Nachrichten dann automatisch an Facebook (Freigabe in Facebook für Twitter-Posts erforderlich), auf meine Webseite (ein bißchen Javascript-Programmierung) und der Vollständigkeit halber an GoogleBuzz (Freigabe dort für die Twitter-Posts) gesendet.
Flickr
Hier werden Fotos hochgeladen, ganz klar. Die werden ebenfalls bei Facebook und GoogleBuzz automatisch veröffentlicht. Auf meinen Blog kommen auch ab und an einige Bilder von hier, die dann aber manuell ausgewählt und in Flickr betextet werden, d.h. den "Post" erstelle ich in diesen Fällen eigentlich in Flickr.
Daneben zeige ich einige der bei Flickr abgestellten Fotos per Flickriver auf meiner Webseite in den entsprechenden Seiten. Zusätzlich teste ich gerade SnapTweet, mal kucken ob das was wird. ... ach und in meinem Google-Profil werden auch die neusten Flickr-Fotos angezeigt.
Blog
Ja, wie's oben steht, was nicht in 140 Zeichen passt, kommt hier rein - wie dieser Artikel *grins*. Ansonsten empfange ich hier die Infos von Flickr (ausgewählte Fotos mit Text als Post) und Google-Reader (Empfehlungen). Die normalen Posts (ohne Flickr-Bilder) schreibe ich im Webclient von Blogger, nur einmal hab ich AndroBlogger benutzt - für den Notfall geht's.
Soziale Netzwerke
Die meiste Zeit tummle ich mich bei Facebook. Daneben hab ich auch Accounts bei Xing, Wer-kennt-wen und MeinVZ. Die zwei letzteren beachte ich allerdings nur noch stiefmütterlich. Im übrigen hab ich meine wesentlichen Accounts bei MyNameIsE auf einer Visitenkarte zusammengefasst, die wiederum als Widget in meine Webseite und meinen Blog integriert ist.
Buzzen tue ich nicht wirklich, meine für iGoogle eingestellten Gadgets hab ich auch auf meiner Webseite integriert und von Google nutze ich sonst noch Analytics, Adsense, Blogger, Kalender, Mail, Reader, Webmaster-Tools. Also viel zu viel *grins* nicht zu vergessen die entsprechende Integration in mein G1.
Und sonst...?
Tja, ich denke das war's. Gut, Podcasts abonniere ich per iTunes, die Audio-Files höre ich per iPod Shuffle (der alte, längliche, mit Bedien-Taste am Gerät) im Auto, die Videos kucke ich am Rechner.
Bleibt zu fragen, wozu der ganze Aufwand? Einfache, und kurze Antwort: weil's Spaß macht. ;-)
Freitag, 5. Februar 2010
Software Engineering im Kleinen: So macht man's richtig.
Gestern Abend war ich mit zwei Kollegen in Heidelberg an der SRH.
Dort wurde seitens der Regionalgruppe Rhein-Neckar der GI der Vortrag "IPhone SDK, AppStore – Status Quo und Herausforderungen" präsentiert. Vortragender war Maximilian Reiß, Wissenschaftlicher Mitarbeiter und Doktorand am Lehrstuhl für Angewandte Softwaretechnik der Technischen Universität München.
Schön an solchen Vorträgen ist, dass man mal wieder in ganz andere Themengebiete eintauchen kann. Dadurch kommt man auf ganz neue Ideen für die eigene Arbeit, ich selbst begreife das immer wieder als Kreativitätsschub. Ging mir schon letztes Jahr so, bei der SE2009 am Fraunhofer IESE in Kaiserslautern.
Schlimm ist, wenn man feststellt, was man selbst schon mal alles gemacht hat, sei es im Studium oder bereits im Job, diese Sachen teilweise im Vortrag wiedererkennt und dann die Erkenntnis reift, wieviel besser einiges laufen könnte, wenn man doch nur die Sachen beherzigen würde, die man schon kennt.
So auch diesmal. Allein die Verbindung von Usability und Software Engineering die Herr Reiß im ersten Teil seines Vortrags anhand eines Beispiel-Projekts zeigte war Höllenfeuer und Segen zugleich.
Ich möchte bemerken: die folgenden Punkte passierten in diesem Entwicklungsprojekt für eine IPhone App alle BEVOR das echte Codieren begann... wenn man das doch auch mal so nach Lehrbuch hinbekäme...
Hier meine Notizen:
1. Szenarien zur Beschreibung des Einsatz einer Anwendung werden immer in Verbindung mit sog. Personas gebracht (Begriff aus der griechischen Tragödie, Stereotypen verschiedener Ziel- bzw. Nutzergruppen)
2. Papierprototypen entwickeln sich weiter zu High Fidelity UI Prototypen, die z.B. mit Photoshop "gemalt" werden
3. Gespielte Szenarien werden als Video mit Green-Screen festgehalten; auf dem Greenscreen werden dann mgl. UserInterfaces eingeblendet
4. Entwicklung echter Storyboards für Ablauf der Screens innerhalb eines Szenarios
5. Ausgehend von den bisherigen Erkenntnissen erfolgt die Definition von Use Cases / Anwendungsfällen als Übergang in die Modellierung der Anwendung
6. Das System Design wird in der Gruppe mittels Brainstorming erarbeitet
7. Usability-Testing nach erstem Papierprototypen mit Gegenüberstellung der Ergebnisse aus mehreren Testrunden mit jeweils nachträglicher Änderung des Designs/der Abläufe
Doch der Gag war:
8. Einsatz eines haptischen Prototyps: ein aus spezieller Knetmasse gefertigtes Modell des IPhone im Maßstab 1:1 mit einschiebbaren Screens aus Papier
Mehr zum IPhone-Projekt an der TU München gibt's an Ort und Stelle:
https://teambruegge.informatik.tu-muenchen.de/groups/iphone08/
So, und nun zurück an die Arbeit. Wie trostlos doch der Alltag ist...
Dazu passend ein Zitat, gefunden bei Zitate.net:
Ich kann freilich nicht sagen, ob es besser werden wird, wenn es anders wird; aber soviel kann ich sagen: es muss anders werden, wenn es gut werden soll.
Dort wurde seitens der Regionalgruppe Rhein-Neckar der GI der Vortrag "IPhone SDK, AppStore – Status Quo und Herausforderungen" präsentiert. Vortragender war Maximilian Reiß, Wissenschaftlicher Mitarbeiter und Doktorand am Lehrstuhl für Angewandte Softwaretechnik der Technischen Universität München.
Schön an solchen Vorträgen ist, dass man mal wieder in ganz andere Themengebiete eintauchen kann. Dadurch kommt man auf ganz neue Ideen für die eigene Arbeit, ich selbst begreife das immer wieder als Kreativitätsschub. Ging mir schon letztes Jahr so, bei der SE2009 am Fraunhofer IESE in Kaiserslautern.
Schlimm ist, wenn man feststellt, was man selbst schon mal alles gemacht hat, sei es im Studium oder bereits im Job, diese Sachen teilweise im Vortrag wiedererkennt und dann die Erkenntnis reift, wieviel besser einiges laufen könnte, wenn man doch nur die Sachen beherzigen würde, die man schon kennt.
So auch diesmal. Allein die Verbindung von Usability und Software Engineering die Herr Reiß im ersten Teil seines Vortrags anhand eines Beispiel-Projekts zeigte war Höllenfeuer und Segen zugleich.
Ich möchte bemerken: die folgenden Punkte passierten in diesem Entwicklungsprojekt für eine IPhone App alle BEVOR das echte Codieren begann... wenn man das doch auch mal so nach Lehrbuch hinbekäme...
Hier meine Notizen:
1. Szenarien zur Beschreibung des Einsatz einer Anwendung werden immer in Verbindung mit sog. Personas gebracht (Begriff aus der griechischen Tragödie, Stereotypen verschiedener Ziel- bzw. Nutzergruppen)
2. Papierprototypen entwickeln sich weiter zu High Fidelity UI Prototypen, die z.B. mit Photoshop "gemalt" werden
3. Gespielte Szenarien werden als Video mit Green-Screen festgehalten; auf dem Greenscreen werden dann mgl. UserInterfaces eingeblendet
4. Entwicklung echter Storyboards für Ablauf der Screens innerhalb eines Szenarios
5. Ausgehend von den bisherigen Erkenntnissen erfolgt die Definition von Use Cases / Anwendungsfällen als Übergang in die Modellierung der Anwendung
6. Das System Design wird in der Gruppe mittels Brainstorming erarbeitet
7. Usability-Testing nach erstem Papierprototypen mit Gegenüberstellung der Ergebnisse aus mehreren Testrunden mit jeweils nachträglicher Änderung des Designs/der Abläufe
Doch der Gag war:
8. Einsatz eines haptischen Prototyps: ein aus spezieller Knetmasse gefertigtes Modell des IPhone im Maßstab 1:1 mit einschiebbaren Screens aus Papier
Mehr zum IPhone-Projekt an der TU München gibt's an Ort und Stelle:
https://teambruegge.informatik.tu-muenchen.de/groups/iphone08/
So, und nun zurück an die Arbeit. Wie trostlos doch der Alltag ist...
Dazu passend ein Zitat, gefunden bei Zitate.net:
Ich kann freilich nicht sagen, ob es besser werden wird, wenn es anders wird; aber soviel kann ich sagen: es muss anders werden, wenn es gut werden soll.
Sonntag, 31. Januar 2010
Eine Maske für Fasching?
's ist ja bald Karneval.
Und da meine Frau meinte "bau doch mal was anderes als immer nur Häuser" - wobei unser Sohnemann es liebt die kleinen Lego-Duplo-Pakete in den Schlitz vom Duplo-Briefkasten zu werfen, und das am allerliebsten, wenn der Briefkasten eben nicht 2 sondern eher 20 und mehr cm über'm Boden schwebt - fing ich mal an quer zu bauen.
Also, so von der Seite.
Nur um das Ding beim Karneval zu tragen, muss ich wohl noch ein wenig am Tragekomfort arbeiten. So ist's dann doch eher eine Art Selbstporträt...
Und da meine Frau meinte "bau doch mal was anderes als immer nur Häuser" - wobei unser Sohnemann es liebt die kleinen Lego-Duplo-Pakete in den Schlitz vom Duplo-Briefkasten zu werfen, und das am allerliebsten, wenn der Briefkasten eben nicht 2 sondern eher 20 und mehr cm über'm Boden schwebt - fing ich mal an quer zu bauen.
Also, so von der Seite.
Nur um das Ding beim Karneval zu tragen, muss ich wohl noch ein wenig am Tragekomfort arbeiten. So ist's dann doch eher eine Art Selbstporträt...
Sonntag, 10. Januar 2010
Ajax for Runaways
Anfangs dachte ich ja, da steckt ein Riesen-Ding dahinter... nachdem ich dann vor einigen Monaten auf Arbeit einigen Kollegen das Ajax-Prinzip näher bringen konnte, und die Kollegen das sogar erfolgreich einsetzen konnten, muss ich sagen: Hübsch.
Was war Ajax nochmal? Steht auf Wikipedia. Anleitungen etc. gibt's im Netz zuhauf. Wollte mir und Euch nur ein kleines Mini-Beispiel sichern, in dem ich es hier poste... ohne Schnörkel, ohne nix drumherum...zum beliebigen Anpassen.
Was war Ajax nochmal? Steht auf Wikipedia. Anleitungen etc. gibt's im Netz zuhauf. Wollte mir und Euch nur ein kleines Mini-Beispiel sichern, in dem ich es hier poste... ohne Schnörkel, ohne nix drumherum...zum beliebigen Anpassen.
function myAjaxManager() {
var request;
var versions = new Array("MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp");
if (document.getElementById) {
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
} else {}
if (window.ActiveXObject) {
for (var i=0; i < versions.length;i++) {
try {
request = new ActiveXObject(versions[i]);
} catch(exception) { }
}
}
}
return request;
}
var fileXML = "http://foo.example.com/dummy.xml"
function doDummyRequest() {
request = myAjaxManager();
if (request) {
request.open("GET", fileXML, true);
request.onreadystatechange = processDummyResponse;
request.send(null);
}
}
function processDummyResponse() {
if (request.readyState == 4) {
if (request.status == 200) {
//do something or leave it
}
}
}
Abonnieren
Posts (Atom)