Das ist doch noch gar nichts! Wir mussten in "Logikorientierte Programmierung" Emacs verwenden, das ganze Semester über. Das sind Schmerzen! :O
Aber an schlechten IDEs herrscht leider echt kein Mangel. :-/
Haha, ich hab genau 7 Tage gebraucht um heraus zu finden, dass es noch einen zweiten Prof gibt, der das macht. Da muss man zwar am Ende des Semesters eine Prüfung machen, und wird vom schlimmsten Englisch der österreichischen Geschichte der Fremdsprachen terrorisiert, insofern sich der Prof. nicht gerade dazu entscheidet in seinem heimischen, deutschen, Dialekt zu sprechen.
Dementsprechend hab ich mich abgemeldet, und es ein Semester später mit einem echten Texteditor gemacht. :A
Ich hab gerade für mein Praktikum einen Compiler-Bug fixen müssen, der mir im Weg war.
emacs ist ein tolles Betriebssystem, aber es könnte echt mal einen guten Texteditor vertragen.
http://slashdot.org/comments.pl?sid=...6&cid=36844420
Ich muß dem nichts hinzufügen.
Ich bin beeindruckt. Also so richtig. Besonders, als ich mir den Quelltext angeschaut hab. Die setzen die Buchstaben noch nicht mal an irgendwelche zufälligen Positionen. Das ist ne Tabelle, bei der valign zufällig auf top, bottom oder gar nicht gesetzt wird.
Edit:
Ach ja, das Skript, das verhindern soll, dass man den Text markiert, funktioniert in Opera nicht. Obwohl sie dafür extra ne Browserweiche haben.
Genial! XD
Sowas kann man sich nicht ausdenken. :D
Oh Mann, das ist toll :D
Ich hab leider noch nicht rausgefunden, wo das zum Einsatz kommt.
XDDD
Wie gerade bekannt wurde, ist Steve Jobs CmdrTaco.
Nein, falsch, sie sind nur verdächtig zeitnah zurückgetreten. Für die, die sich wundern: Rob Malda aka CmdrTaco ist der Typ, der Slashdot gegründet hat. Und ich muß sagen: Respekt. Man schafft nicht alle Tage eine Community, wo mal eben Leute wie Bruce Schneier reinschauen, um ihren Senf abzugeben. Oder die so viel Traffic erzeugt, daß versehentliche DoS-Angriffe nach ihr benannt sind.
(Gut; alle Leute, die sich für diese Nachricht interessieren, werden sie eh auf /. gelesen haben, aber ich fand's trotzdem erwähnenswert.)
Och, ich benutz dich durchaus als meinen persönlichen /. Filter, weil ich keine Zeit hab, alles selbst zu lesen. Also mach weiter.
Punktwolken in WebGL
Blog: http://asalga.wordpress.com/
Eine von zahlreichen Demos: http://scotland.proximity.on.ca/asal...ixed_function/
Äusserst interessanter Blog mMn, für Leute die sich für Graphikprogrammierung interessieren.
Die Demo geht bei mir nicht. XD
Aber egal, wollte nur allen (und zukünftigen) professionellen Programmierern hier einen wichtigen Karrieretipp mit auf den Weg geben: http://phpadvent.org/2009/unmaintain...toyan-stefanov
Traurigerweise scheint alles an populärem C/C++-Code, den ich bisher gesehen habe, ziemlich exakt diesem Muster zu folgen. XD
Versuchs mal mit einem richtigen Betriebssystem. :p
Der Vorschlag mit dem Cyrillic а klingt wirklich sehr verlockend. Damit kann man Nachfolger bestimmt tagelang beschäfigen.
Geiler Scheiß! WebGL FTW!
Auf die Art bin ich mal Stunden lang nem Syntax Error hinterhergerannt. Das Problem war letztendlich, dass irgendwas, was ich für ein Minus gehalten hab, eigentlich ein Gedankenstrich oder sonst was war, was in Monospace Schriftarten nicht unterscheidbar ist. Hat wohl irgendein Editor automatisch ersetzt.
Auch immer wieder ungern gesehen: Editoren, die UTF-8 mit byte-order mark speichern. Herrlich, wenn einem plötzlich die Webapp kaputt geht, weil jemand beim letzten Commit ein überflüssiges, unsichtbares Zeichen eingebracht hat und PHP jetzt keine Header mehr senden kann, weil ja bereits Seiteninhalt gesendet wurde.
Hab hier was auf meiner Platte gefunden was ich schon ganz vergessen hatte.
Einen (klarerweise fehlgeschlagenen) Versuch, das Problem des Handlungsreisenden (travelling salesman problem) zu lösen.
Das Demoprogramm testet den Algo mit 6 Stationen und hält immer bei einem Fehler an. Bei durchschnittlich 2,5-3% der Fälle liegt er falsch, mit einem Unterschied von 1-2%, seltener bis zu 5%.
Binary: http://share.cherrytree.at/showfile-...sreisender.exe
FB Source:
mfG CherryCode:#Define C_MIN Asc("A")
#Define C_MAX Asc("F")
Type PointXY
x As Integer
y As Integer
Declare Constructor (x_ As Integer, y_ As Integer)
Declare Constructor ()
End Type
Constructor PointXY(x_ As Integer, y_ As Integer)
x = x_
y = y_
End Constructor
Constructor PointXY()
End Constructor
Dim Shared cost(C_MIN To C_MAX, C_MIN To C_MAX) As Integer
Dim Shared city(C_MIN To C_MAX) As PointXY
Randomize(Timer())
ScreenRes 800, 600, 32
Type Route
way As String
price As Integer
Declare Constructor (w As String, p As Integer)
Declare Sub Insert(c As Integer)
End Type
Constructor Route(w As String, p As Integer)
way = w
price = p
End Constructor
Sub Route.Insert(c As Integer)
Var best = Route(way, &h7FFFFFFF)
For i As Integer = 1 To Len(way) - 1
Var w = Left(way, i) & Chr(c) & Right(way, Len(way) - i)
Var p = price - cost(way[i - 1], way[i]) + cost(way[i - 1], c) + cost(c, way[i])
If p < best.price Then best = Route(w, p)
Next
This = best
End Sub
Function Calc(s As String) As Integer
Dim p As Integer = 0
For i As Integer = 0 To Len(s) - 2
p += cost(s[i], s[i + 1])
Next
Return p
End Function
Sub Rec(s As String = "", best As Route Ptr)
If Len(s) = C_MAX - C_MIN + 1 Then
Var s2 = s & Left(s, 1)
Var p = Calc(s2)
If p < best->price Then *best = Route(s2, p)
Exit Sub
EndIf
Var l = Len(s)
For i As Integer = C_MIN To C_MAX
If l = 0 Then Print Chr(i);
If InStr(s, Chr(i)) = 0 Then Rec(s & Chr(i), best)
Next
End Sub
Sub DrawRoute(w As String)
Circle (city(w[0]).x, city(w[0]).y), 5
For i As Integer = 0 To Len(w) - 2
Line (city(w[i]).x, city(w[i]).y)-(city(w[i + 1]).x, city(w[i + 1]).y)
Next
End Sub
Dim done As Integer = 0
Dim wrong As Integer = 0
Do
done += 1
ScreenLock()
Cls()
For i As Integer = C_MIN To C_MAX
city(i) = PointXY(CInt(Rnd * 800), 200 + CInt(Rnd * 400))
Circle (city(i).x, city(i).y), 3, RGB(255, 0, 0), , , , F
Draw String (city(i).x, city(i).y - 12), Chr(i), RGB(255, 255, 255)
Next
For x As Integer = C_MIN To C_MAX
For y As Integer = C_MIN To C_MAX
Line (city(x).x, city(x).y)-(city(y).x, city(y).y), RGB(96, 96, 96)
cost(x, y) = Sqr((city(y).x - city(x).x) ^ 2 + (city(y).y - city(x).y) ^ 2) * 100
If x <> y Then Draw String ((city(y).x + city(x).x) / 2 + 4, (city(y).y + city(x).y) / 2 - 4), "" & cost(x, y), RGB(160, 160, 160)
Next
Next
Var t = Timer()
Color RGB(255, 255, 0)
Print "USING CHERRY'S ALGORITHM"
Var best = Route("", &h7FFFFFFF)
For f As Integer = C_MIN To C_MAX
Print Chr(f);
Var r = Route(Chr(f, f), cost(f, f))
For i As Integer = C_MIN To C_MAX
If f <> i Then r.Insert(i)
Next
If r.price < best.price Then best = r
Next
Print "--------------------"
Print Timer() - t & " sec."
Print best.way
Print best.price
Var oldbest = best.price
DrawRoute(best.way)
Color RGB(255, 255, 255)
Print "--------------------"
t = Timer()
Color RGB(0, 255, 0)
Print "USING NAIVE ALGORITHM (Try all possible ways, find shortest)"
best = Route("", &h7FFFFFFF)
Rec(, @best)
Print "--------------------"
Print Timer() - t & " sec."
Print best.way
Print best.price
DrawRoute(best.way)
Color RGB(255, 255, 255)
Print "--------------------"
Print "" & done & " tries"
Print "--------------------"
If best.price <> oldbest Then
wrong += 1
Color RGB(255, 0, 0)
Print "FAILED!"
Print "Diff: " & oldbest - best.price & " (";
Print Using "##.##"; ((oldbest - best.price) / best.price) * 100;
Print "%)"
Print "--------------------"
Print "" & wrong & " tries wrong (";
Print Using "##.##"; (wrong / done) * 100;
Print "%)"
Print "(Press any key to continue)"
ScreenUnLock()
Sleep()
Else
ScreenUnLock()
EndIf
Loop Until InKey() = !"\&hFFk"
Travelling salesman ... damit wurde ich bei dem Schunk Graphentheorie (allerdings nicht in der Theorie-Verlesung, sondern bei der Methodisch-Praktischen Vorlesung) auch nicht mit verschont. Ich kann mich immer noch dran erinnern, dass ich einen Djikstra-Algorithmus und einen Ford-Fulkerson-Algorithmus implementieren musste.
Naja, mein Algorithmus ist ja billig eigentlich.
Einfach, weil das Thema hier drüben noch gar nicht angesprochen wurde:
Anhang 10694
Quelle: WillDrawForFood1 - Apple Memorial (deviantART)
Übrigens hat deviantART eine ganze Steve Jobs Tribute Aktion angeleiert, bei der schon einige sehr interessante Bilder entstanden sind.
Hrm, Steve Jobs war schon ein großer Mann. Keine Frage.
Hat zu den damaligen Zeiten die Zeichen der Zeit richtig gedeutet und richtig gehandelt um sich ein riesen Unternehmen zu erschaffen.
Definitiv beeindruckend.
Allerdings ist die Frage seit wann die Welt so Steve Jobs vergöttert? Ich meine, gut möglich das ich es verpasst habe.
Aber ich wüsste nicht das er dafür so viele "Jünger" hatte, die ihn vergöttert haben. Es kommt mir ein wenig so vor, als wäre
momentan der gleiche Effekt wie vorher bei Michael Jackson. Und ob man das so ernst nehmen kann ist eine andere Frage.
Ganz einfach: Jeder Machead hat Respekt vor Steve. Seit ein paar Jahren sind Macs dermaßen erfolgreich, daß es jetzt VIELE Macheads gibt. Folglich ist Steve plötzlich äußerst respektiert.
Dazu kommt, daß auch die Wettbewerber zugeben müssen, daß Apple ein Innovationstreiber ist. Apple hat schon immer nach dem Motto "scheiß auf Abwärtskompatibilität, wir wollen das Beste" gearbeitet, mit dem Ergebnis, daß sie das Wachstum von Dingen wie USB, FireWire oder der graphischen Benutzeroberfläche gefördert haben. Davon, wie Apple mal eben diktiert hat, wie Gadgets heutzutage auszusehen haben muß ich gar nicht erst reden. Einiges davon geht auf Steves Mentalität zurück. (Man bedenke, daß OS X und iOS beide von NeXTStep abstammen, seinem Projekt, nachdem er bei Apple ausgestiegen war. OS X ist im Wesentlichen NeXTStep mit einem an Mac OS Classic angelehnten GUI.)
Und an welche Person denkt man, wenn man an eine Firma denkt? An den CEO. In den 90ern war Bill Gates der große Computerheld, obwohl er sich schon früh eher auf das Geschäftliche konzentriert hatte. Aber er war präsent. Steve Jobs war das Gesicht bei Apple, das uns demonstriert hat, wie cool die neuen Produkte aussehen und was sie auf dem Kasten haben. Sicher, es gab auch ein paar andere wichtige Leute da wie Jonathan Ive, aber Steve ist der, den alle kennen.
Ich hatte gestern mit TWS einen Disput über Variablenbenennung, er bevorzugt es in Java Variablen so zu nennen wie "a_cool_variable", aber Funktionen mit camelCase zu benennen wie "aCoolFunction()". Ich meinte zu ihm, dass es syntakisch viel besser aussehen würde, wenn beides im camelCase-Syntax wäre.
Was ist denn nun mehr verbreitet (oder besser)?
Im Sinne einer Kooperation muss man ja syntaktisch irgendwie übereinkommen.
Ich denke auch nicht, dass das jetzt was mit "Vergötterung" zu tun hat. Ich denke, bei Bill Gates und Linus Torvalds würden die Leute ähnlich reagieren. Die drei sind einfach die großen Gesichter der Branche, ohne die vieles, was wir heute für selbstverständlich halten, nicht in dieser Form existieren würde.
Edit:
Ich bevorzuge es, mich jeweils an die Konvention der Standardbibliothek der entsprechenden Sprache zu halten. Grade bei Java gibt es von Sun einen sehr ausführlichen Style Guide.
Ihr solltet euch bei euren Konventionen nicht zu sehr verkrampfen. Wichtig ist nur, dass der Code einheitlich aussieht.
Das ist ja genau das Problem. Es wirkt für mich mit der Unterstrich-Konvention uneinheitlich und ist für mich schwer lesbar, weil ich mich an die unter Java typischen Namens-Konvention halte.
Aber auf Hinblick das nicht nur TWS und ich den Code lesen werden sondern auch andere.
Was Kyuu sagt reicht doch schon. Nur weil einer sagt: "Hey, ich brin Prof uns sage euch dass das so am Besten ist!" muss man sich nicht daran halten. Ich kenne auch Leute die fahren eine komplett andere Schiene mit sogenanntem CleanCode bei dem z.B. Methoden endlose Namen haben die genau beschreibt was alles in der Methode passiert und Methoden gleich ganz zerstückelt. Das ist jedem selbst überlassen.
Selbst bei Teamarbeit ist das nicht soooo wichtig, es sei denn man arbeitet zu zweit an einer Klasse. Dann sollte man sich vllt vorher auf einen Mittelweg einigen :)
Ja. Allein schon, weil einige Sachen auch nicht gut übertragbar sind. Nehmen wir mal als Extrembeispiel Objective-C: Da hat man Aufrufe, die in etwa so aussehen:
Das ist sehr deskriptiv, aber nur deshalb lesbar, weil a) Name und Variablen vermengt sind und b) XCode in der Lage ist, das automatisch sinnvoll einzurücken. Daß man mehrere Zeilen für einen Aufruf hat, ist bei längeren Aufrufen absolut nicht ungewöhnlich.
Aber was, wenn wir solche Namen in C++ benutzen wollen?
Funktioniert gar nicht. Wir haben zwar drin, was die Variablen bedeuten, aber der Funktionsaufruf ist enorm lang und man müßte ohnehin abzählen, welches Wort zu welcher Variable gehört. Das sollte uns doch eher die IDE erklären und nicht der Variablenname. Für sowas gibt es Doxygen und Konsorten und jede IDE, die den Namen verdient, wird einem genau sagen können, welche Variable was ist.
Ich muß aber zugeben, daß ich mich bei einer Sprache absolut nicht daran halte, wie die Funktionen standardmäßig heißen: PHP. In PHP ist camelCase typisch für objektorientierten PHP-Code, während Unterstriche in der Regel in prozeduralen Funktionen zu finden sind. Da ich aber meine Codebase konsistent formatiert haben will, nehme ich überall camelCase.
"Einheitlich" bedeutet nicht, daß der Stil gleichförmig aussieht; es bedeutet, daß die Codebase einheitlich ist. Eine Variable sollte in Quelldatei A den selben Formatierungsregeln folgen wie in Quelldatei B und C. Denn man WIRD früher oder später mit jemand anderes Code arbeiten müssen und dann ist es einfacher, wenn man sich nicht erst in die Konvention einarbeiten muß.
Solchen Spaß habe ich auf der Arbeit. Ein von meinem Vorgänger geschriebenes Modul hat Datenklassen, die zusammen mit den Werten noch Metadaten für den (schlechten) Formulargenerator mitbringen. Das macht das Befüllen umständlich:
Wenn ich jetzt also mit Daten aus seinem System arbeite, muß ich daran denken, daß a) camelCase herrscht, aber Unterwerte von Objekten mit PascalCase geschrieben werden und b) Werte Objekte sind, die eine Variable für den eigentlichen Wert beinhalte. Freude.
(Ja, ich weiß, das könnte man mit magischen Gettern und Settern lösen, aber meine erste Handlung als Entwickler war, den Code meines Vorgängers komplett zu deprecaten. Irgendwann wird der ganze Ramsch komplett ersetzt und bis dahin halte ich mich mit strukturellen Änderungen zurück.)
Strangest language feature
Zitat:
Zitat von Dipstick
Die Beispiele für C und Java sind aber auch nicht schlecht.Zitat:
JavaScript truth table:
Code:'' == '0' //false
0 == '' //true
0 == '0' //true
false == 'false' //false
false == '0' //true
false == undefined //false
false == null //false
null == undefined //true
" \t\r\n" == 0 //true
Immerhin nicht Dart. Da ist 1 == false. In der aktuellen Version von Dart ist alles false bis auf das Boole'sche true.
Wenigstens ist ein Bug dazu offen; in Zukunft soll wohl alles true sein, das nicht null oder das Boole'sche false ist. Natürlich bedeutet das dann 0 == true.
Perl:
... bitte, nicht wirklich....Zitat:
$[ — change your array base from 0-based to 1-based to 42-based: WHEEE!
Ich kopiere jetzt mal schamlos von fefe:
Man bemerke: das Dokument hat 80 Seiten.Zitat:
Standard des Tages: Das "Extensible Configuration Checklist Description Format". Ja, Checklisten. As in
[ ] Müll rausgebracht
[ ] Geschirr abgewaschen
Der Artikel ist ziemlicher Blödsinn. Diese Limits gibt es jetzt schon, zumindest für die API ohne Mapanzeige, also zum Beispiel für Koordinaten-Lookups. Bei dem Limit für die Maps gehe ich auch mal davon aus, dass das pro User und nicht pro Website ist. So gesehen ändert sich nicht viel. Bisher war es eben so, dass die Anfragen dann abgelehnt wurden, jetzt hat man die Möglichkeit, gegen Geld mehr zu bekommen.
Eigentlich hätt ich ja geglaubt, dass die shared_ptr eine syntaktisch hässliche aber trotzdem bessere alternative zu normalen pointern sind. Wegen so sachen wie enable_shared_from_this und anderem zeug wächst allerdings grad wieder mein wunsch, dass c++ doch endlich sterben möge.
Mir ist grade ein sehr interessanter Ansatz über den Weg gelaufen, um MD5 Hashes zu cracken: BozoCrack. Das ist ein winziges Ruby Programm, das die Hashes ganz stumpf googlet und dann das Suchergebnis als Dictionary für eine Attacke verwendet. Dadurch, dass viele MD5 Cracker Seiten ihre Ergebnisse in googlebaren Tabellen haben, ist die Erfolgsquote ziemlich hoch.
Anhang 11139
Mal so reingeworfen, der MapMaker für Mr. Hat I Remake das ich im Rahmen einer Vorlesung hier machen darf :) 3 Wochen Arbeit haben sich dann doch gelohnt. Und gespeichert wie die Map wie ein Boss Mit Serialization8)
Bubble Sort einmal anders:
http://www.youtube.com/watch?v=lyZQPjUT5B4
Aus der gleichen Kategorie, falls ihr es noch nicht kennt:
http://www.youtube.com/watch?NR=1&v=t8g-iYGHpEA
Wer es noch nicht kennt: http://www.stophiphop.com/modules/ne...hp?storyid=184
Leider gibts solche Leute wirklich zu Genüge.
Ich vermute allerdings auch, dass das ein Fake ist. Witzig ist es aber trotzdem.
Es ist zwar nicht möglich, eine Systempartition aus laufendem Windtews heraus zu formatieren, allerdings können tatsächlich Dateien gelöscht werden, sogar solche die zu laufenden Programmen gehören (DLLs und EXE-Dateien). Es ist sogar möglich, einfach die komplette Partition auszuhängen (d.h. ihr den Laufwerksbuchstaben C: wegzunehmen), wie einige Leute vom BMT bezeugen können (wo ich das versehentlich gemacht habe - es hat einige Verrenkungen und entsprechend viel Hirn gebraucht die Partition wieder einzuhängen wenn man eigentlich auf keine Dateien mehr zugreifen kann die auf ihr liegen, inklusive "mountvol.exe". Es ist auch ganz witzig wie Windows und laufende Programme sich verhalten wenn man ihnen quasi den Boden unter den Füßen wegzieht...).
Das ist klar. Aber in der Regel willst du ja nicht unbedingt ein bestimmtes Passwort haben, sondern (möglichst viele) beliebige aus einer ganzen Liste mit Hashes (etwa einem geklauten Datenbankdump). Da sind die Chancen schon recht hoch, dass irgendwer ein schwaches Passwort hat und so ein naiver Ansatz ist wesentlich praktikabler, als eigene Tabellen anzulegen.
Manchmal kann Open Source Software echt toll sein. Ich hab einen kleinen Bug in den GitLabHQ Install Scripts gefunden, ihn direkt im github Webinterface gefixt, einen Merge Request geschickt und grade mal 5 Minuten später wurde der Fix ins Hauptrepository übernommen. Genau so muss das laufen.
Warum das? Magst du ihn nicht oder bist du einfach nur sadistisch?
031 == 25, Merry Christmas!
(Oder für die, die ihn nicht kennen: warum verwechseln Geeks so oft Weihnachten und Halloween? Weil Oct 31 == Dec 25)
Gerade auf http://blog.fefe.de/?ts=b1fa9d42 gefunden:
Eine erfolgreiche Kaputtoptimierung - so sollte man es nicht machen.
ok, das ist echt schon nett O_o
Aber einen XML-Parser kann einen manchmal echt zur Weißglut bringen. Neulich hatte ich nen RSS Feed-Parser unter Java gebastelt.
Es ist nervig, dass hier die Daten nicht Elementar sind. Der <author>-Tag besitzt sowohl die E-Mail Adresse, als auch den Namen des Verfassers. Konnte man da nicht einfach zwei Tags draus machen? Stattdessen wird hier der <creator>-Tag aus dem "Dublin Core Metadata Element Set" verwendet, welcher noch eingebunden werden muss ...
Aus diesem Grund habe ich der Webentwicklung so weit es geht den Rücken zugekehrt. Ständig stößt man dort nur auf irgendwelche Flickenteppiche, die dann gesondert behandelt werden müssen.
Quelle.Zitat:
Bill Gates ist der Teufel, denn korrekt heißt er William Henry Gates III. Wandelt man die Buchstaben seines Namens in ASCII- Werte um, erhält man folgendes: B 66 - I 73 - L 76 - L 76 - G 71 - A 65 - T 84 - E 69 - S 83 + 3 = 666. Die 666 ist die Ziffer und das Zeichen des Teufels.
Das denke ich auch wobei es sich auch SUPER für Animationen eignet :D Zumindest kann ich damit viel leichter Animationen laden, Alternative wäre natürlich JSON, aber ich hab nen guten XML-Parser von daher geht das, ich mache ja damit nichts in Echtzeit.
Zum Daten-Austausch bevorzuge ich JSON ...
Es ist selbst in formatierter Form um die Hälfte kleiner als ein XML-Dokument ... und ist vor allem typisiert. Und wie ich finde häufig auch lesbarer als XML.
Ein krasses Beispiel was ich die tage gesehen habe ... SOLR (Eine Java-Web-Anwendung zum füttern eines Lucene Such Indexes):
XML:
JSON:Code:<add>
<doc>
<field name="id">F8V7067-APL-KIT</field>
<field name="name">Belkin Mobile Power Cord for iPod w/ Dock</field>
<field name="manu">Belkin</field>
<field name="cat">electronics</field>
<field name="cat">connector</field>
<field name="features">car power adapter, white</field>
<field name="weight">4</field>
<field name="price">19.95</field>
<field name="popularity">1</field>
<field name="inStock">false</field>
<!-- Buffalo store -->
<field name="store">45.17614,-93.87341</field>
<field name="manufacturedate_dt">2005-08-01T16:30:25Z</field>
</doc>
<doc>
<field name="id">IW-02</field>
<field name="name">iPod & iPod Mini USB 2.0 Cable</field>
<field name="manu">Belkin</field>
<field name="cat">electronics</field>
<field name="cat">connector</field>
<field name="features">car power adapter for iPod, white</field>
<field name="weight">2</field>
<field name="price">11.50</field>
<field name="popularity">1</field>
<field name="inStock">false</field>
<!-- San Francisco store -->
<field name="store">37.7752,-122.4232</field>
<field name="manufacturedate_dt">2006-02-14T23:55:59Z</field>
</doc>
</add>
Code:[
{
"id" : "978-0641723445",
"cat" : ["book","hardcover"],
"name" : "The Lightning Thief",
"author" : "Rick Riordan",
"series_t" : "Percy Jackson and the Olympians",
"sequence_i" : 1,
"genre_s" : "fantasy",
"inStock" : true,
"price" : 12.50,
"pages_i" : 384
}
,
{
"id" : "978-1423103349",
"cat" : ["book","paperback"],
"name" : "The Sea of Monsters",
"author" : "Rick Riordan",
"series_t" : "Percy Jackson and the Olympians",
"sequence_i" : 2,
"genre_s" : "fantasy",
"inStock" : true,
"price" : 6.49,
"pages_i" : 304
}
,
{
"id" : "978-1857995879",
"cat" : ["book","paperback"],
"name" : "Sophie's World : The Greek Philosophers",
"author" : "Jostein Gaarder",
"sequence_i" : 1,
"genre_s" : "fantasy",
"inStock" : true,
"price" : 3.07,
"pages_i" : 64
}
,
{
"id" : "978-1933988177",
"cat" : ["book","paperback"],
"name" : "Lucene in Action, Second Edition",
"author" : "Michael McCandless",
"sequence_i" : 1,
"genre_s" : "IT",
"inStock" : true,
"price" : 30.50,
"pages_i" : 475
}
]
JSON bringt mir aber nichts, wenn ich RSS Feeds von Webseiten auslesen möchte ^^
Gibt doch genug Bibliotheken, die dir das abnehmen. In Ruby empfehle ich feed_normalizer und für andere Sprachen gibts sicher auch was.
http://www.youtube.com/watch?v=uBSdVMOJGUA&feature=g-upl&context=G28e6447AUAAAAAAAAAA
Und hier auch noch mal das Video :) Ja das ist alles Java.
Mit Java bekommt man auch schnell einen RSS Parser gebastelt. Den hatte ich eigentlich nach ca. ner Stunde fertig, mit Hilfe vom SAXParser ... eigentlich.
Nur das Problem sind die ganzen Flickenteppiche, den man oft in RSS Feeds findet. Schau dir doch mal den feed_normalizer genauer an. Du findest dort zig Tags, die nicht mal bestandteil des RSS Standards sind, weil jeder meint, er müsse es anders machen und für Java habe ich nichts gefunden, was die gröbsten Flickenteppiche abdeckt.
Hat jemand eine nette Empfehlung für ein CMS?
Meine Erfahrung damit ist sehr begrenzt. Ich habe zwar im Frühling gut zwei Monate an einem Joomla-Plugin gebastlet aber wirklich damit gearbeitet habe ich nicht. Eine kleine Recherche hat mir nun WordPress aufgezeigt (angeblich ziemlich gut im Umsetzen von Webstandards? Das wäre ein +.) und Drupal (kenne ich von meinen Mitarbeiten - ist wohl manchmal echt grausam aber recht mächtig).
Vor allem sollte es Opensource und am besten unter MIT/GPL Linzenz stehen beziehungsweise auch im kommerziellen Rahmen verwendbar sein. Im Augenblick würde ich zwei recht unterschiedliche Webseiten damit einbinden wollen, weswegen ich eine nicht all zu spezifische Lösung bevorzugen würde. Ich habe auch kein Problem damit Hand an zu legen und Erweiterungen zu schreiben solange der Aufwand vertretbar bleibt. (Eine komplett neue Scriptsprache würde ich im Moment ungern lernen wollen).
Ich habe beruflich mit WordPress zu tun (auch wenn ich nicht unser WordPress-Entwickler bin). Prinzipiell ist WP ganz ordentlich, allerdings würde ich sagen, daß der Großteil der WP-Pluginautoren das Webentwicklungs-Äquivalent zu Visual Basic-Entwicklern sind. Man hat da gerne unsauberen Code und allgemein exzentrische Sachen. Paradebeispiel: Es gibt ein Plugin, über das man einzelnen Blogs verschiedene Domains zuweisen kann. Dieses Plugin versteht keine IDNs und der Autor hat einen entsprechenden Patch abgelehnt mit der Begründung, daß er keine IDNs braucht und daß man doch ein Plugin schreiben kann, das seins erweitert.
Grundsätzlich ist WordPress okay, aber du mußt wirklich darauf gefaßt sein, daß die Plugins in Sachen Softwaredesign, Codequalität und Bemühtheit der Autoren extrem unterschiedlich sind.
Irgendwann war Wordpress mal dafür berüchtigt, auf wildeste Art HTML- und PHP-Code zu mixen, so dass Templates nicht wirklich unabhängig von der application logic waren -- hat sich das inzwischen geändert?
WordPress setzt immer noch auf PHTML anstatt auf ein richtiges Templatesystem, deshalb sind Themes immer noch mächtiger, als sie sein sollten. Allerdings setzt das WP-Team den Kram immerhin ziemlich sauber um.
Das Problem ist, daß der Rest der Welt nicht die Disziplin hat, um mit PHTML sauber umzugehen. Themes von Dritten können u.U. nicht den gesamten Funktionsumfang haben, aber das absolute Hauptproblem sind sie Plugins. Da gibt es drei Gruppen:
Gruppe 1 ignoriert die WordPress-Codingvorschriften und praktiziert strenges MVC. Das ist die Gruppe, die am besten wartbar ist und die am wenigsten Ärger macht, wenn man Funktionen aus ihnen in einem anderen Plugin verwendet.
Gruppe 2 ist in etwa so geschrieben wie WordPress selbst: Alle Funktionen, die etwas mit dem Frontend zu tun haben, sind komplett PHTML. Das ist nicht so schön wartbar, aber wenn der Autor die nötige Disziplin hatte, kann es gut funktionieren.
Gruppe 3 ist das Visual Basic des Internets: Es gibt keinen Unterschied zwischen Model, View und Controller* und im Extremfall hat das gesamte Plugin nur eine Funktion, die dann zwischen haufenweise Inline-HTML dynamisch entscheidet, was eigentlich zu erledigen ist. Viel Spaß, wenn du da irgendwas von einem anderen Plugin einbinden willst; das gibt eine Menge überflüssiges Herumspielen mit dem Output-Puffer.
WordPress 4 könnte wirklich eine gute Template Engine und etwas strengeres MVC vertragen. Twig wäre wunderbar.
Auf der Habenseite ist WordPress allerdings extrem erweiterbar. Das geht so weit, daß ich für unser WordPress ein Plugin gebaut habe, mit dem es per-Blog-Benutzer gibt. Die entsprechenden Funktionen sind entweder als ersetzbar intendiert oder können problemlos geklont werden.
Mein CMS der Wahl ist SilverStripe das Backend ist in der aktuellen Version an einigen Stellen zwar leider relativ statisch ansonsten lässt es sich es sehr einfach erweitern.
Allerdings ist SilverStripe kein CMS für 0815 One Click Nutzer, da die Auswahl öffentlicher Module nicht besonders groß ist (auch wenn es mittlerweile schon mehr gibt), dafür lassen sich eigene Module in 5 Minuten, dank des zu Grunde liegenden MVCs + ORM, schreiben!
Concrete5 war in zwei Anwendungsfällen einfach und schnell einzurichten und zu warten.
Es ist gleichzeitig mächtig und auch für sehr unerfahrene Anwender zu gebrauchen. Jederzeit wieder. (=
Hmmm ich denke ich weiß schon warum ich CMS nie so überzeugend fand. Mein Umfeld hat mich nun erstmal dazu bewogen Drupal aus zu probieren. SilverStripe und Concrete5 würde ich mir notfalls danach nochmal ansehen.
Ich habe mich im Kopf aber schon fast damit abgefunden, dass ich nicht um ein eigenes kleines CMS rum komme. Das kann dann gemütlich mit den Aufgaben wachsen. Ich glaube nämlich inzwischen, dass es wohl einfach kein System gibt was sowohl einfach als auch effizient arbeitet :)
Mein Ziel ist es ja mir Arbeit ab zu nehmen und nicht meine Probleme einfach nur auf eine andere Ebene zu verschieben.
FYX meint ich sollt des mal hier posten.
http://www.toplessrobot.com/2012/01/...ut_quantum.php
Die hätten lieber mal F-Zero als Designbasis nehmen sollen^^
Also, meine OSS-related webpage lebt davon, dass ein shellscript ein xml-file parst, um daraus dann 2.5 gig Text zu generieren, welcher dann einmal pro Tag per cron-job und pull mit dem repo gesynct wird.
Demnächst kommt da noch eien db dazu, die mit ein paar Metadaten bei jedem pull gefüttert/geupdated wird.
Wer braucht schon CMS?^^
\All:
Irgendwer mit C# auf der platte herum liegen?
Würd gerne wissen ob folgende Dinge valid sind:
MyClass is MyClass
bzw:
T is MyClass
wobei T ein Type-Parameter ist.
Kann vlt wer ausprobieren?
T muss eine Variable sein.
Hey Leute,
ich weiß, dass sich hier echte Profis rumtreiben und ich als Anfänger habe da mal eine kurze Frage und bin mir sicher, dass ihr sie beantworten könnte. ;)
Ich habe mich den der letzten Zeit etwas ausführlicher mit den Maxwellgleichungen auseinander gesetzt und die dazu passende Mathematik, den Vektorfeldern.
Maxwells Gleichungen selbst, sollen hier nicht das Thema sein, viel mehr der mathematische Aspekt.
Wir betrachten nun zunächst einmal das Induktionsgesetz und das Durchflutungsgesetz. Da wir nur von Feldern sprechen ist der Stromfluss j = 0.
Außerdem betrachten wir alles im Vakuum, können also die Materialgleichungen vernachlässigen.
http://img209.imageshack.us/img209/4645/maxwell.png
Außerdem sei ein B-Feld gegeben. Dessen Ursprung ist unerheblich und seine Form oder Entstehung nicht zu ergründen.
Bei diesem Feld handelt es sich um rotierendes Wechselfeld:
http://img209.imageshack.us/img209/5738/bfeld.png
Nun ist die Frage, wie sieht das passende E-Feld dazu aus, dass die obigen Forderungen erfüllt?
Dazu differenzieren wir erstmal das B-Feld wie gefordert:
http://img705.imageshack.us/img705/4618/bfelddiff.png
Aus den Zusammenhängen ergibt sich dann für die zeitliche Ableitung:
http://img834.imageshack.us/img834/2389/efelddifft.png
( Faktor c² wurde vergessen )
Betrachten wir nun den Nabla-Operator:
http://img845.imageshack.us/img845/4013/nabladef.png,
ergibt sich durch das Kreuzprodukt analog dazu für die Rotation des E-Felds:
http://img844.imageshack.us/img844/1518/efeldrot.png
Zusammenhänge nocheinmal in der Übersicht:
http://img6.imageshack.us/img6/8364/efeldgleichung.png
( Faktor c² wurde vergessen )
Daraus folgen nun diese Bedingungen im einzellnen:
http://img210.imageshack.us/img210/2411/beding.png
Ich bin leider noch nicht soo fit im Lösen von Differentialgleichungen, darum ist meine Frage nun, ob mir hier jemand wenigstens einen Denkanstoß geben könnte,
wie ich ein passendes E-Feld finde. Oder ist gar nur die Numerische Annäherung möglich?
Nachtrag: Mir ist jetzt erst aufgefallen, dass ich bei den zeitlichen Ableitungen des E-Feldes jeweil den Faktor c² vergessen habe. Diese muss natürlich entsprechend ergänzt werden.
Deine letzten Schritte sind Quark. Das E-Feld ist doch nicht (x, y, z) sondern (E_x, E_y, E_z) ... Der Nabla-Operator ist ja die Ableitung nach den Koordinatenachsen (x, y, z). Und die wendest du auf das E-Feld (wie immer es aussehen mag) an. Damit aendern sich natuerlich deine Gleichungen. Mach das mal (hab gerade keine Lust) .. dann sehen wir weiter.
Unpassende Namensgebung.
Hier in Forum ist Latex ja verfügbar, darum tippe ich das jetzt mal kurz mit dem Handy ...
Die anderen Formeln schreibe ich jetzt aber nicht mehr auf, mit Handy und Latex ist das echt anstrengend ... Ich hoffe du kannst mir helfen :-)
Rein physikalisch gesehen sollte ein Feld entstehen bei dem nur die z-Komponente gefüllt ist.
Wenn also nunangenommen wird so ist
erfüllt.
Außerdem reduzieren sich die Differenzen und die anderen Bedingungen zu
E_x und E_y muessen nicht 0 sein. Es wird nur gefordert, dass ihre Ableitung nach der Zeit 0 ist. Selbst koennen sie aber immer noch Funktionen des Ortes sein.
Auf die Schnelle habe ich jetzt auch keine Loesung fuer dein Differentialgleichungssystem mit E_x = E_y = 0 gefunden. Hab aber auch nicht sonderlich viel Zeit reingesteckt, da ich selbst mehr als genug zu tun hab, mehr als ne Stunde konnte ich da nicht investieren. Probiere es doch einfach mal mit numerischen Loesungen, z.B. in einem Linear Algebra System wie Mathematica. Ansonsten helfen dir vielleicht Lagrange-Multiplikatoren weiter, die sind ja fuer das Loesen von Differentialgleichungssystemen mit Randbedingungen zustaendig ...
Ich hasse Überschriften.
Da schreiben die groß, FFT wurde geschwindigkeitsmäßig geknackt. Ich freu mich, backe einen Kuchen, und will schon Einladungen vertanzen, so wie es Pinky Pie mir beigebracht hat.
Und dann steht im letzten Satz des Artikels, dass es nur ein weiterer sparse algo ist.
Fickt euch doch ins Knie, Journalisten. Früher wart ihr ganz schön coole Leute, vor denen man den Hut ziehen konnte. Tim, Superman, etc. Was ist nur aus euch geworden, dass ihr arme Informatiker so foppen müsst?