Apr 142018
 

Mit einem Elektroauto ist man eingeschränkt. Man hat nur eine begrenzte Reichweite, weil das Tanken viel zu lange dauert. Urlaube kann man mit einem Elektroauto vergessen. Stimmt das?

Wieviel Lebenszeit wird für das Tanken verschwendet?

Folgende Annahmen:

Ein Tankvorgang für ein Benziner/Diesel dauert ca. 7 Minuten. 10 Minuten erschien mir zu lang und 5 Minuten ein wenig zu kurz.

Es wird ca. alle 500 Kilometer das Auto vollgetankt.

Daraus ergibt sich je nach Jahreskilometer eine verbauchte Lebenszeit von 12.000Km/168 Min, 24.000Km/336 Min. usw.

Jahreskilometer Tanken ab Km Tankvorgänge Tankdauer in Min. benötigte Lebenszeit in Min.
12000 500 24 7 168
18000 500 36 7 252
24000 500 48 7 336
30000 500 60 7 420
42000 500 84 7 588
60000 500 120 7 840

Wendet man die gleiche Formel bei einem Elektroauto an, bei der Annahme, dass ein E-Auto in 30 Minuten für ca. 300 Km Reichweite tanken kann ergibt sich folgende Tabelle.

Jahreskilometer Tanken ab Km Tankvorgänge Tankdauer in Min. benötigte Lebenszeit in Min.
12000 300 40 30 1200
18000 300 60 30 1800
24000 300 80 30 2400
30000 300 100 30 3000
42000 300 140 31 4340
60000 300 200 32 6400

Es wird also deutlich mehr Lebenszeit beim Tanken eines E-Auto verbraucht. Richtig?

Wenn man es nur so betrachtet, ist es nichts mehr als eine Milchmädchenrechnung!

Nicht, weil 30 Minuten zu kurz für den Tankvorgang zu kurz sind oder die Reichweite mit 300 Kilometern zu optimistisch. Sondern:

Wenn man mit einem E-Auto innerhalb eines Tages innerhalb seiner Reichweite bleibt von 300-500 Km, dann gibt es keinen bewußten Tankvorgang der einem die Lebenszeit verbraucht!

Beispiel: Man pendelt morgens 100 Km zu Arbeit und Abends wieder zurück. Zu Hause kommt das Auto an die Steckdose und ist am nächsten Morgen wieder bereit. Dies bedeuten 0 (in Worten Null) Tankvorgänge, also kein Verbrauch der Lebenszeit.

Um einen angemessenen Vergleich zu haben, werden die langen Fahren (Urlaub) betrachtet. Denn nur bei Fahrten die über Reichweite des E-Autos muss bewußt getankt werden.

Urlaubsentfernung Tanken ab Km Tankvorgänge Tankdauer in Min. benötigte Lebenszeit in Min.
0 300 0 30 0
500 300 2 30 60
1000 300 4 30 120
1500 300 5 30 150
2000 300 7 30 210
3000 300 10 30 300

Die verbrauchte Lebenszeit ist nun deutlich geringer.

Wenn man dann auf langen Fahrten bewußt Pausen einplant um z.B. entspannt zu essen oder zu relaxen und sich nebenbei das Auto dabei auflädt, dann wäre es auch keine unnötig verbrauchte Lebenszeit. Und Pausen sollte man eh auf langen Fahrten einplanen.

Fazit:

Selbst wenn man mit einem E-Auto in den Urlaub fährt, erhält man pro Jahr mehr Lebenszeit. Der Tankvorgang wird nicht mehr bewußt ausgeführt, sondern wird nebenbei erledigt. Entweder abends das Auto an die Steckdose oder bei langen Fahrten, in dem bewußt eine längere Pause eingeplant wird. Meine persönliche Meinung ist, dass die Raststätten in Zukunft darauf ausgelegt sind, dass man sich dort länge als bisher aufhält. Die Anfahrt von besonderen Raststätten wird Teil der Urlaubsplanung, weil es dort die unterschiedlichsten Möglichkeiten zum Zeit verbringen gibt.

 

 

 

 

Jun 152017
 

Die Nutzung von enums in TypeScript ist ein wenig sperrig, aber nicht unmöglich!
Enum in einer TS-Datei definieren:

export enum MeinEnum{
A=1,
B=2,
C=4,
D=8,
D=16,
}

Einbinden in TS:

import {MeinEnum} from 'HierLiegtMeinEnum';

Nutzung in TS:

MeinEnum[MeinEnum.A];

liefert den Wert A als String zurück.

MeinEnum[MeinEnum.A].toLowerCase();

um den String vereinheitlicht zu nutzen, für Stringvergleiche.

Für die Nutzung in HTML benötigt TS noch ein Property auf das Enum:

private meinEnumInTS = MeinEnum;

und dann in HTML:


hatEinesDieserEnumWerte(meinEnumInTS.A, meinEnumInTS.D)

welches in TS zugreift auf:


hatEinesDieserEnumWerte(...e : MeinEnum): boolean{
// some Code
}

Nebenbei die Args – Notation für eine variable Anzahl gleicher Parameter!

Mai 252016
 

Nutzt ihr auch die Call Hierarchy um die Methodenaufrufe zu verfolgen? (strg + alt + h)
Stören euch auch die Testklassen?

Im Call Hierarchy – Fenster lassen sich unter „Filters…“ Klassen ausblenden.

Call Hierarchy

Dort einfach

*.*Test

Eintragen. Da die meisten Testklassen auf Test enden, war das Recht einfach.

Für Suchen geht das leider nicht, da könnte man mit einem Working Set aber ähnliches erreichen.
Ein großes Working Set für ein Projekt, ohne Testklassen erstellen und zukünfig nur noch im Working Set suchen.
Working Set

Dez 032015
 

Welche Variable benötigt den meisten Speicher?

Kurzer Weg:

Öffnen des Speicher Dumps. Wie man den erstellt siehe unter: http://blog.thomasmichael.de/memory-analysis-in-eclipse-nutzen/.

Übersicht

In der Übersicht auf Leak Suspect drücken.

Leak Suspect

Bei mir ist es recht eindeutig. Unten bei Keywords dann auf Details klicken.

Dominator

In der Beschreibung gibt es den Dominator Tree, dort sieht deutlich den Speicherverbrauch. Man kann jeden Eintrag anklicken und bekommt ein Menu, in welcher Ansicht man diese Klasse betrachten möchte.

Öffnen Incoming Reference

Wir betrachten die HashMap mit ListObjects-> with incoming references.

Damit erhalten wir eine Übersicht nur über diese Referenz und in welcher Variable sie gehalten wird.

Variable gefunden

 

In meinem Problem gibt es eine Map in einer Klasse, die Bilder hält.

Klasse

Nov 162015
 

Anleitung für Windows

Java Programm starten.

Über den Task-Manager die Prozess-ID (PID) heraus bekommen.

Einen Dump erstellen, dieser wird dann analyisert, mit:

jmap -dump:file=heap.bin <pid>

Dann in Eclipse auf die Ansicht vom Memory Analysis wechseln. (Vorher über den Marktplatz installieren, ich habe Memory Analyzer Version 1.5)

In der Ansicht den Heap.bin laden -> Fertig.

Nun kann analysiert werden.

 

Okt 232015
 

Wichtige Shortcuts für Eclipse!

Welche Shortcuts sollte jeder Eclipse-Benutzer kennen?

(Windows Version)

Strg + Space

Mit Strg+Space wird Code Copmpletion ausgeführt. Das bedeutet, dass Eclipse für das angefangene, geschriebene Wort mehr oder weniger intelligente Vorschläge macht, was aus dem Wort wohl werden soll. Klassennamen und Methodennamen erkennt Eclipse, so dass man nicht mehr den ganzen Namen schreiben muss. Weiterhin erkennt Eclipse Schlüsselworte wie z.B. main, TODO oder for. Eclipse erstelle dann eine in Verbindung mit „main“+ Strg+Space eine Main – Methode, „TODO“+Strg+Space ein Todo und mit „for“+Strg+Space kommt eine Auswahl an For-Schleifen. Mehr zu den Schlüsselwörten unter Eclipse-Formatter.

 

Strg+Shift+R

Mit Strg+Shift+R öffnet man das Ressourcen-Fenster um Klassen und anderen Dateien direkt zu öffnen. Dabei werden nur Klassen und Dateien aus den eigenen Projekten angeboten. Möchte man Klassen aus den benutzen Bibliotheken öffnen, nutzt man Strg+Shift+T.

Zusatztipp: Der Suchfilter versteht CamelCase z.B. AL oder ArrLi für ArrayList

Strg+1

Der Shortcut Strg+1 ist kontextsensitiv und bietetin der Regel eine Reihe von Möglichkeiten an.

Einige Beispiele:

  • Steht man auf einem Variablenname dann wird gefragt, ob die Varibale eine Klassenvariable werden soll.
  • schreibt man new Irgendwas, dann kommt die Frage, ob man eine lokale oder Klassenvariable daraus machen möchte.
  • Steht man auf einer Switch-Auswahl, dann können die fehlenden Cases hinzugefügt werden.
  • Implementiert man ein Interface  und steht auf dem Klassennamen, dann werden die Interface-Methoden als Rumpf implementiert
  • steht man auf einer Klassenvariablen, dann werden die Getter/Setter implementiert.
  • und und und

Strg+3

Dieser Shortcut öffnet den Quick-Access, mit dem man wiederrum andere Aufgaben aus ganz Eclipse nutzen kann, wie z.B. Generate irgendwas. (Getter, Kontruktor, Delegate usw.)

Alt+Pfeil rechts/links

Mit diesem Shortcurt  navigiert man in Eclipse zurück, also an die Stelle, an der man vorher gewesen ist. Nach de zurück navigieren kann man auch wieder nach vorn navigieren.

Strg+Shift+L

Anzeige weiterer Shortcuts.

Mrz 262015
 

In Eclipse unter: Preferences / Java / Editor / Templates

oder Strg + 3 und tippen von Template

landet man in der Template – Konfiguration.

Template

Dort kann meine eigene Templates konfigurieren. Z.B. ein eigenes TODO – Template mit Namen und Datum.

// TODO: t.michael ${date}

Somit hat man beim Nutzen immer seinen Namen und das Datum der Erstellung.

Benutzen kann man die Templates ganz normal der Code Completion.

todo1 todo2