Da es verschiedene NoSQL-Datenbanken gibt, ist es schwierig spezifische  Anwendungsfälle hervorzuheben. Ganz allgemein, werden NoSQL-Datenbanken jedoch oft da eingesetzt, wo die relationalen Datenbanken an ihre Grenzen stoßen, weil sie schlicht nicht für diese Anwendungsfälle entwickelt wurden.

NoSQL Datenbanken sind allerdings (meist) für einen speziellen Use-Case entwickelt und haben dort ihre großen Stärken, woanders aber auch Schwächen. In größeren Systemen sind deshalb oft mehrere verschiedene Datenbanken im Einsatz. 

Um dir ein paar Beispiele zu nennen:

  • Cassandra wird zum Beispiel sehr gerne als Persistierungslayer für Logs hergenommen (Stichwort: Internet of Things). In diesem Szenario wird sehr, sehr viel geschrieben und im Verhältnis dazu wenig gelesen. Deswegen ist Cassandra auf Schreiboperationen optimiert und kann sehr einfach in einer verteilten Umgebung betrieben werden. 
  • Neo4J ist eine Graph Datenbank und kann selbstverständlich sehr gut Graphen abbilden und macht es leicht und performant Abfragen darauf auszuführen (Stichwort: Soziale Netzwerke). Dafür ist es nicht so nicht so einfach die Datenbank auf mehrere Rechner zu skalieren.
  • MongoDB ist ein Documentstore, der, wie der Name schon sagt, ganze Dokumente (z.B. JSON-Dokumente) abspeichert und diese dann schnell wieder ausliefern kann. Dies ist besonders wichtig, wenn man eh immer nur das ganze Dokument ausliefern will und nicht nur einzelne Spalten des Dokuments. Dafür ist es schwierig auf einzelnen Spalten nach bestimmten Werten zu suchen.
  • Elasticsearch ist ein Suchserver. Es ist wahnsinnig performant, wenn man Volltextsuche betreiben will und kann dir auf den Resultaten auch noch Aggregationen liefern (Stichwort: Suchleiste auf fast jeder Webseite). Allerdings sind die Updateoperationen relativ teuer und es ist keine echte Datenbank, deswegen würde ich Elasticsearch nicht als primäre Datenbank verwenden, da es durchaus zu Datenverlust kommen kann. In solchen Fällen ist es sehr entspannend einen konsistenten primären Speicher zu haben. 

Wie du siehst sind die Anwendungsfälle sehr breit und kommen eher auf die konkrete Datenbank an!      

...zur Antwort

Meine Frau und ich haben uns vor Jahren ähnliche Fragen gestellt. Wir wollten jeweils einen Rucksack für unsere Trekkingtouren. Wir haben uns dann für die Deuter ACT Lite entschieden. Sie hat die Damenvariante 45 + 10 SL und ich den 50 + 10.

Ich möchte dir dazu kurz unsere Erfahrungen schildern: 

Wir waren bisher mit den Rucksäcken auf Trekkingtouren in Norwegen, Lappland, Kroatien und auf La Reunion. Also völlig unterschiedliche Anforderungen! Bisher hab ich nur in Norwegen die 10 extra Liter gebraucht, weil unser Zelt dort etwas größer war. 

Ansonsten ist es eine gute Idee, den Rucksack nicht zu groß zu wählen. Solange Platz im Rucksack ist, stopft man auch immer noch etwas in den Rucksack rein. ;) Am Ende zahlt alles einfach auf das Gewicht ein. Wenn du z.B. 30 km unterwegs bist und dabei noch einige Höhenmeter überwindest, bist du froh, wenn dein Rucksack das ein oder andere Kilo leichter ist. 

Außerdem sind für Frauen die schmäleren Varianten angenehmer zu tragen, da sie sich besser dem Körper anpassen. Hier würde ich auf jeden Fall in einem Geschäft die Rucksäcke ausprobieren, denn er sollte schon sehr gut sitzen. 

Zusammenfassend würde ich sagen, dass ich im Zweifel immer eher den kleineren nehmen würde. Die Marke spielt bei deinen genannten wohl keine große Rolle. ;) 

...zur Antwort

Du musst die toString Methode von Person überschreiben. Dort baust du einfach den String zusammen, den du auf der Konsole ausgeben willst.

Es ist allgemein immer eine gute Idee toString, equals und hashCode in Java zu überschreiben.

...zur Antwort

Das Interface stellt die Schnittstelle zwischen zwei Schichten in einer Software dar. Sie teilt somit der höheren Schicht mit, welche Methoden diese verwenden kann. 

Die Implementierungsdetails sind damit von der höheren Schicht versteckt. Damit kann mit sehr wenig Aufwand die Implementierung in der unteren Schicht ausgetauscht werden.

Schau dir dazu z.B. das List-Interface in Java an. https://docs.oracle.com/javase/8/docs/api/java/util/List.html

List<String> someList = new LinkedList<String>();
someList.add("text");
printFirstElement(someList);

private void printFirstElement(List<String> l) {
   System.out.println(someList.get(0));
}

Da wir in den Beispiel nur das Interface für z.B. den Methodenrumpf verwenden, brauchen wir nur bei der Initialisierung die LinkedList durch ArrayList ersetzen. Der Rest der Implementierung bleibt gleich. 

List<String> someList = new ArrayList<String>();
someList.add("text");
printFirstElement(someList);

private void printFirstElement(List<String> l) {
   System.out.println(someList.get(0));
}

In größeren Projekten ist damit die Wartung um einiges schneller!

...zur Antwort

Ihr könntet doch zum Chiemsee fahren. Dort kann man Baden oder auf Herrenchiemsee das Schloss besichtigen.

 Mit dem Auto ca. 1 Stunde zum fahren. https://www.chiemsee-alpenland.de/

Von dort ist es auch nicht mehr weit in die Chiemgauer Berge. 

...zur Antwort
Ich brauche Hilfe bei dieser (eigentlich einfachen) Rechnung. Ich steh komplett aufm Schlauch...?

Es geht um folgendes: Ich habe von Jan - Juni 2014 in einer WG gewohnt (zu dritt) Ende Juni bin ich dann ausgezogen und dafür ist die Jana eingezogen. (ab Juli) Nun ist die TV-Rechnung gekommen. Jonas (einer der Bewohner, der das ganze Jahr 2014 in der WG gewohnt hat) hat keinen TV-Anschluss im Zimmer, weshalb wir seinen Anteil dritteln. Jedoch ist es jetzt eben so, dass ich und Jana nur 6 Monate in 2014 in der WG gewohnt haben...Maike hat wie Jonas auch das ganze Jahr in der WG gewohnt. Irgendwie komme ich bei meiner Rechnung, was jeder von uns 3 (Maike, Jana, ich) an Jonas zahlen müssen. Wo ist der Fehler?

TV-Nachzahlung 2014

Gesamt 170,93 €

(Angenommen jeder zahlt, also geteilt durch 4)

Anteil Jonas Hypothetisch zur Berechnung 42,73 (wird unten gesplittet) Anteil Maike 42,73 Anteil Jana 42,73 Anteil Tatjana 42,73

Rechnung, wer wieviel für Jonas Beitrag zahlen muss:

Jonas Beitrag wird geteilt durch 3 Personen: 42,73€ / 3 = 14,24€ (Pro Person und pro Jahr)

Jetzt wird der Jahresbeitrag, den jeder von uns (Maike, Jana, Tatjana) an Jonas zahlen muss durch 12 geteilt um den Monatsbeitrag zu erfahren:

14,24€ / 12 Monate = 1,19€ (Pro Person und pro Monat)

Jana und Tatjana zahlen beide für 6 Monate: Also: 1,19€ * 6 Monate = 7,12€ Anteil Jana an Jonas für 6 Monate in 2014 1,19€ * 6 Monate = 7,12€ Anteil Tatjana an Jonas für 6 Monate in 2014

Wohnzeiten WG, darauf basierend die Berechnung der TV-Kosten für Jonas 42,73€ 2014

Januar: Maike + Tatjana = 1,19€ pro Person Februar: Maike + Tatjana =1,19€ pro Person März: Maike + Tatjana =1,19€ pro Person April: Maike + Tatjana =1,19€ pro Person Mai: Maike + Tatjana =1,19€ pro Person Juni: Maike + Tatjana =1,19€ pro Person

                            Gesamt:  Maike: 6 Monate: 7,14€
                            Gesamt: Taddi: 6 Monate: 7,14€

Juli: Maike + Jana =1,19€ pro Person August: Maike + Jana =1,19€ pro Person September: Maike + Jana =1,19€ pro Person Oktober: Maike + Jana =1,19€ pro Person November: Maike + Jana =1,19€ pro Person Dezember: Maike + Jana =1,19€ pro Person

                            Gesamt: Maike: 6 Monate: 7,14€
                            Gesamt: Jana: 6 Monate: 7,14€

Am Ende müssten ja die 42,73€ rauskommen. Es kommen aber nur 28,56€ raus. Mann, wo ist mein Denkfehler? Ich komme einfach nicht drauf...

Bitte Hilfe! Danke!

...zum Beitrag

Die 28,56 sind doch 2/3 von den 42,73 €. Du hattest ja geschrieben, dass Jonas 1/3 selbst zahlen muss. Das ist genau das dir in deiner Rechnung fehlt. ;)

...zur Antwort

Also ich befürchte, dass sich dein Problem nicht mit parallelisieren lösen lassen wird (zumindest wenn die einzelnen Schritte aufeinander aufbauen. Du also das Ergebnis von Schritt n - 1 in Schritt n brauchst). Solltest du einen Schritt in 1ms berechnen können, dann braucht dein Rechner immer noch einen Monat, um fertig zu werden. Da sich dein Problem ein wenig wie die iterative Berechnung von Pagerank anhört, kannst du vielleicht auf eine Heuristik zurückgreifen. Du solltest dir also folgende Fragen stellen. Brauche ich ein 100% exaktes Ergebnis? Kann ich meinen Algorithmus mit viel weniger Iterationen laufen lassen? Gibt es einen anderen Algorithmus, der mir das Ergebnis annähert?

...zur Antwort

Der Compiler weiß nicht, dass es nur die zwei Implementierungen von Geld gibt. Er weißt dich lediglich darauf hin, dass ein Runtime Error auftreten wird, sobald es eine weitere Implementierung von Geld gibt (die du im Pattern Matching ja nicht prüfst).

Lösen kannst du das Problem einfach, indem du einen Fallback einbaust. Das geht in Scala mit "_".

def summe[Geld](list: List[Geld]): Int = {    
   list match {
      case Nil                  => 0
      case Muenze(wert) :: tail => wert + summe(tail)
      case Schein(wert) :: tail => wert + summe(tail)
      case _ => {Defaultverhalten: z.B. 0}
   }
}

Es gibt aber auch noch zwei andere Möglichkeiten um die Summe einer Liste zu berechnen (Dazu muss aber wert im Interface definiert sein). 

sealed trait Geld {

def wert: Int

}

case class Muenze(wert: Int) extends Geld

case class Schein(wert: Int) extends Geld

Mit map:

val sum = boerse.map(_.wert).sum

oder mit foldLeft:

boerse.foldLeft(0)( (agg, element) => agg + element.wert)


Welche Variante du bevorzugst, musst du selber wissen. ;)

...zur Antwort

Das kommt natürlich sehr stark auf deine Vorlieben, Kondition, Erfahrung etc. an. Außerdem hängt die Entscheidung auch sehr von dem Land ab, wo du wandern willst. Sehr tolle Hüttentouren (für den von dir angegebenen Zeitraum) gibt es zum Beispiel in den skandinavischen Ländern.

Aber hier mal ein paar Beispiele, die mir spontan für Deutschland und Österreich einfallen: 

  • Berliner Höhenweg: http://www.tirol.at/a-wanderung-berliner-hoehenweg (eher schwerer)
  • Alpe Adria Trail: Relativ leicht aber viele Etappen. Du kannst dir aber einfach "ein Stück" raussuchen.
  • Westweg im Schwarzwald: Mittelgebirgstour von Pforzheim nach Basel. 

Ich bin selbst schon die ersten Etappen des Alpe-Adria-Trail gegangen (also beginnend beim Großglockner). Ist nicht klassisch eine "Hüttentour" allerdings kannst du in den Ortschaften auf dem Weg in sehr netten Unterkünften übernachten.  

...zur Antwort

Ich finde gerade in der IT muss man oft etwas neues erfinden. 
Ich arbeite selbst als Software Engineer und muss mir oft (auch zusammen mit meinen Team) Gedanken machen, wie wir das neue Feature in die gesamte Software Architektur integrieren können. Es gibt sogar die Berufsbezeichnung Software Architekt! (http://de.wikipedia.org/wiki/Softwarearchitekt)

Wenn du noch mehr an daran interessiert bist etwas neues zu schaffen, dann ist für dich evtl. eine Karriere an einen Informatik Lehrstuhl an der Universität interessant. 
Dort werden neue Algorithmen erfunden, implementiert und evaluiert. Sobald ein guter Algorithmus für ein Problem gefunden wurde, wir ein Paper geschrieben, dass den Algorithmus beschreibt. 

Nach deinen Präferenzen zu urteilen, würde ich dir empfehlen, dich mehr über eine Karriere an der Universität zu informieren. ;) 

...zur Antwort

Die zur Zeit letzten Filme von Lars von Trier werden auch Trilogie der Depressionen genannt. Dazu gehören : - Antichrist - Melanchohttp://m.imdb.com/title/tt1527186/7186/) - Nymphomaniac

...zur Antwort

Auf gar keinen Fall!! 3D - Brillen sind nur dazu da, um einen 3D Effekt zu erzeugen. Vor der Sonne schützen, sie hat nicht und du könntest ernsthafte Schäden davon tragen. Verwende bitte nur Brillen mit CE Zertifikat.

...zur Antwort