|
|
|
|
| Zitat von WeGi
| Zitat von Danzelot
.clone() ?
| |
Funzt nicht, aber .addAll(ZuKopierenderStack)
| |
Ich kenne deinen Algorithmus nicht. Große Listen zu kopieren ist aber alles andere als performant. Willst du nicht jedem Creep einfach eine Referenz auf den errechneten Weg und einen eigenen Zähler geben, mit dem sie dann über die einzelnen Elemente iterieren können?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Smoking am 18.06.2011 20:33]
|
|
|
|
|
|
Irgendwie interessant was für ein Geschwindigkeitsunterschied beim Rendern zwischen meinem mit Erweiterungen vollgepackten Firefox und einem Vanilla-Firefox auf dem Unirechner ist. Ich muss mir da echt mal meinen Firefox irgendwie beschleunigen und trotzdem noch die Funktionalität der Addons behalten.
|
|
|
|
|
|
|
| Zitat von TriggerTG
Wo ich demnächst mal etwas recherchieren will: Mir fällt am Fraunhofer immer wieder auf, dass extrem viel Arbeitszeit für das Einrichten der Arbeitsumgebung draufgeht. Alss das man um die Einrichtung der IDE nicht herum kommt, ist klar.
Aber insbesondere die Maven-Abhängigkeiten dauern immer Ewigkeiten und die PostgresDB intial aufzusetzen, ist ein ordentlicher Aufwand. Das Kompilieren selber dauert auf manchen Maschinen echt lange und der Serverstart dauert immer mindestens 3-4 Minuten. Wenn man etwas Neustart-intensives testen will, verdallert man immer mächtig viel Zeit.
Das Hauptproblem ist oft, dass insbesondere die Hiwis häufig wechseln, und daher auch der Initial-Einrichtungsprozess (oder das Update auf den aktuellen Stand) häufig ausgeführt werden muss.
Ich kann mir nicht vorstellen, dass diese Zeitvernichtung in der privaten Wirtschaft ohne Weiteres hingenommen wird.
Was gibt es da so an Lösungen und Ansätze? Schonmal selbst mit sowas gearbeitet? Ich stelle mir das irgendwie so vor, dass ein starker Server zentral das Kompilieren und Repository-Management abnimmt - und trotzdem (irgendwie) sicherstellt, dass die Entwickler halbwegs isoliert voneinander arbeiten können.
Begriffe? Literatur? Erfahrungen?
| |
Was den Einrichtungsaufwand angeht: oft gibts vom Kunden/Auftraggeber ja gestellte Entwicklungsrechner, da kann man dann wirklich ein Image vorbereiten und das einfach drueberbuegeln.
Ansonsten kann man so ein Entwicklungssystem, falls man den eigenen Rechner benutzt, auch prima in eine VM fuer neue Teammitglieder packen, mit fertig konfigurierter IDE, Datenbank, Webserver - rueberkopieren, einschalten, eigene Anmeldedaten an der Domaene eintragen, laeuft. Und das mit ausreichend Speicher und Rechenkraft sogar erstaunlich fix, ein Unterschied zur nativen Maschine ist da nicht mehr zu merken.
Und im Idealfall kannst du ein Repository auch so einrichten, dass nicht nur der blanke Quellcode, sondern auch saemtliche Abhaengigkeiten (3rd-Party-Libraries und Frameworks, Build- und Test-Tools, etc.) beim Auschecken mitgezogen werden.
Buildserver spielen natuerlich eine Rolle, aber nicht unbedingt fuer den Entwicklungszyklus auf der eigenen Maschine.
Der einzige Punkt, bei dem man mit vorbereiteten VMs aufpassen muss, ist, dass die verwendeten Tools vor Arbeitsaufnahme korrekt auf den jeweiligen Nutzer lizensiert werden muessen.
Im Endeffekt hat man dann fuer jedes Projekt eine VM, die die jeweiligen spezifischen Systemeinstellungen wegkapselt (man will sich ja das eigene System auch nicht mit jedem bloeden Tool und kundengeforderter Sondereinstellung vollmuellen).
|
|
|
|
|
|
|
HASS
Frau geht mit Notebook ins Bad.
Frau ruft "SCHAAATZ, der Computer geht wieder nicht".
Meine erste Frage: "Was hast du gemacht?"
Sie: "Nichts!"
Ich hebe das Notebook hoch und aus dem Bildschirm fließt Wasser.
...
|
|
|
|
|
|
|
|
|
|
|
Wollte sie beim Baden surfen?
|
|
|
|
|
|
|
|
|
|
|
Wie langweilig diese Welt doch ohne Frauen waere.
|
|
|
|
|
|
|
Meine Ex ist immer vom PC weggerannt und hat "Ich war's nicht!" gerufen.
|
|
|
|
|
|
|
Oh man.
|
|
|
|
|
|
|
Oho, der phpMyAdmin bei meinem Hoster hat ein neues Design verpasst bekommen.
Irgendwie gefiel mir das Oldschool-Design besser
|
|
|
|
|
|
|
Wordpress: Wenn jemand das Adminpasswort hat, hat derjenige dann schon die Möglichkeit PHP-Code einzuschleusen, also praktisch die Kontrolle zu übernehmen? Ich bin am Überlegen ob ich für weniger Aufwand bei einer anderen Funktion ein Plugin einbaue das PHP in Posts erlaubt oder ein komplett neues Plugin schreibe
|
|
|
|
|
|
|
Das mit der VM habe ich vorgschlagen und wurde umgesetzt. Leider war ich dann der dafür zuständige und das hat mal so gar kjeinen Spass gemacht das Image immer halbwegs aktuell zu halten
Schlussendlich ist das aber gescheitert, da die die Maschinen zu schwach waren.
| Zitat von igor]2
| Zitat von TriggerTG
Wo ich demnächst mal etwas recherchieren will: Mir fällt am Fraunhofer immer wieder auf, dass extrem viel Arbeitszeit für das Einrichten der Arbeitsumgebung draufgeht. Alss das man um die Einrichtung der IDE nicht herum kommt, ist klar.
Aber insbesondere die Maven-Abhängigkeiten dauern immer Ewigkeiten und die PostgresDB intial aufzusetzen, ist ein ordentlicher Aufwand. Das Kompilieren selber dauert auf manchen Maschinen echt lange und der Serverstart dauert immer mindestens 3-4 Minuten. Wenn man etwas Neustart-intensives testen will, verdallert man immer mächtig viel Zeit.
Das Hauptproblem ist oft, dass insbesondere die Hiwis häufig wechseln, und daher auch der Initial-Einrichtungsprozess (oder das Update auf den aktuellen Stand) häufig ausgeführt werden muss.
Ich kann mir nicht vorstellen, dass diese Zeitvernichtung in der privaten Wirtschaft ohne Weiteres hingenommen wird.
Was gibt es da so an Lösungen und Ansätze? Schonmal selbst mit sowas gearbeitet? Ich stelle mir das irgendwie so vor, dass ein starker Server zentral das Kompilieren und Repository-Management abnimmt - und trotzdem (irgendwie) sicherstellt, dass die Entwickler halbwegs isoliert voneinander arbeiten können.
Begriffe? Literatur? Erfahrungen?
| |
Was den Einrichtungsaufwand angeht: oft gibts vom Kunden/Auftraggeber ja gestellte Entwicklungsrechner, da kann man dann wirklich ein Image vorbereiten und das einfach drueberbuegeln.
Ansonsten kann man so ein Entwicklungssystem, falls man den eigenen Rechner benutzt, auch prima in eine VM fuer neue Teammitglieder packen, mit fertig konfigurierter IDE, Datenbank, Webserver - rueberkopieren, einschalten, eigene Anmeldedaten an der Domaene eintragen, laeuft. Und das mit ausreichend Speicher und Rechenkraft sogar erstaunlich fix, ein Unterschied zur nativen Maschine ist da nicht mehr zu merken.
Und im Idealfall kannst du ein Repository auch so einrichten, dass nicht nur der blanke Quellcode, sondern auch saemtliche Abhaengigkeiten (3rd-Party-Libraries und Frameworks, Build- und Test-Tools, etc.) beim Auschecken mitgezogen werden.
Buildserver spielen natuerlich eine Rolle, aber nicht unbedingt fuer den Entwicklungszyklus auf der eigenen Maschine.
Der einzige Punkt, bei dem man mit vorbereiteten VMs aufpassen muss, ist, dass die verwendeten Tools vor Arbeitsaufnahme korrekt auf den jeweiligen Nutzer lizensiert werden muessen.
Im Endeffekt hat man dann fuer jedes Projekt eine VM, die die jeweiligen spezifischen Systemeinstellungen wegkapselt (man will sich ja das eigene System auch nicht mit jedem bloeden Tool und kundengeforderter Sondereinstellung vollmuellen).
| |
|
|
|
|
|
|
|
Ich hab mich früher in meiner Jugend immer über einen Radfahrer lustig gemacht, der täglich von meinem Heimatort zu meinem Schulort (15km) mit Fahrrad gefahren ist. Ich, bzw wir alle, fanden das immer sonderbar.
Als ich eben grad von 'nem Grillen 40km im Dunkeln nach Hause gefahren bin (S-Bahn wäre auch partiell durchaus möglich gewesen, hätt' aber zeitlich nichts gebracht), musste ich daran aus irgendeinem Grund dran denken.
PS: Genau heute geht natürlich mein Licht kaputt
PPS: Aber gut dass ich mit Fahrrad unterwegs war, und nicht zu Fuß: Ich wurde unterwegs von einer Gruppe ausländischer Jugendlicher angepöbelt* und mit Flaschen beworfen. Der Weg führt leider durch die Favelas. Zum Glück hatte ich Rückenwind und bin da geschmeidig mit knapp 38 Sachen durchgerauscht
* Na gut, vielleicht habe ich das auch mit meiner schwulen Fahrradfahr-Kleidung provoziert
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 19.06.2011 0:35]
|
|
|
|
|
|
| Zitat von Danzelot
Wordpress: Wenn jemand das Adminpasswort hat, hat derjenige dann schon die Möglichkeit PHP-Code einzuschleusen, also praktisch die Kontrolle zu übernehmen? Ich bin am Überlegen ob ich für weniger Aufwand bei einer anderen Funktion ein Plugin einbaue das PHP in Posts erlaubt oder ein komplett neues Plugin schreibe
| |
Ja, müsste Zugriff haben. Es gibt aber soweit ich weiss Plugins mit denen du Zugriffe einschränken kannst, bzw entsprechende Menupunkte ausblenden. Das ist zwar nicht sicher, aber ein unversierte Nutzer könnte dann nichts mehr kaputt machen.
|
|
|
|
|
|
|
Es geht mir ja nicht um die unversierten Nutzer, diejenigen die den Blog später benutzen sind vorsichtig genug um nichts Dummes anzustellen. Aber dank LulzSec bin ich ein bisschen paranoid geworden was Sicherheit angeht
|
|
|
|
|
|
|
| Zitat von Danzelot
Es geht mir ja nicht um die unversierten Nutzer, diejenigen die den Blog später benutzen sind vorsichtig genug um nichts Dummes anzustellen. Aber dank LulzSec bin ich ein bisschen paranoid geworden was Sicherheit angeht
| | lulzsec ‒ making your systems save by inducing paranoia since 2011
mission accomplished
|
|
|
|
|
|
|
Du glaubst nicht wie viele int-Casts ich in meinem aktuellen Projekt gemacht habe - selbst wenn eine Funktion immer nur vorgefilterte Daten bekommen hat - ohne dreimal Casten ging keine Usereingabe in die Datenbank
|
|
|
|
|
|
|
| Zitat von Danzelot
Du glaubst nicht wie viele int-Casts ich in meinem aktuellen Projekt gemacht habe - selbst wenn eine Funktion immer nur vorgefilterte Daten bekommen hat - ohne dreimal Casten ging keine Usereingabe in die Datenbank
| |
Lädst du uns gerade dazu ein, uns über PHP oder dynamische Zaubersprachen allgemein lustig zu machen?
|
|
|
|
|
|
|
Ob ich Caste oder eine Exception werfe wenn eine Eingabe nicht-numerisch ist, wo ist der Unterschied im Aufwand?
|
|
|
|
|
|
|
| Zitat von Danzelot
Ob ich Caste oder eine Exception werfe wenn eine Eingabe nicht-numerisch ist, wo ist der Unterschied im Aufwand?
| |
Dass du 3 mal castest
Klar muss jedes Web-Framework zu aller erst mit Strings arbeiten, die der Nutzer angibt, aber wenn man DAL so abgesichtet ist, dass ich z.B. nur solche Methoden habe:
|
Code: |
IEnumerable<Product> GetProductById(int id);
etc.
|
|
Dann kannst du dich noch so blöd anstellen, du wirst in diese Funktion keine SQL Injection einbauen können.
Soweit ich weiß, kann in PHP nicht über die Methodensignatur der Typ mitangegeben werden, was zwangsläufig einen Laufzeitcheck erzwingt. Statische Sprachen verhinden dort Fehler schon im ersten Test (=Kompilieren).
Soll heißen, ja wenn du ordentlich castest und im Ausnamefall dann eine Exception wirfst, machst du alles richtig. Allerdings ist es in PHP viel leichter, solche Sachen zu Vergessen.
PS: Natürlich hindert mich auch in statischen Sprachen keiner daran, etwas falsch zu machen. Letztlich verliere ich durch die zusätzlichen Laufzeit-Checks nur Zeit (nicht unbedingt im Prozesser-Kontext, sondern im Programmieraufwand). Jedes "if", jeder Type-Cast ist potentiell ein Testfall, je weiter ich diese vom Kern der Anwendung fern halten kann, umso leichter ist die Wartung desselbigen.
|
|
|
|
|
|
|
Du hast natürlich Recht, und es nervt mich auch regelmäßig dass so etwas in PHP nicht möglich ist. Aber bis ich da tatsächlich eine Sprache gefunden habe die mir sowohl gefällt als auch verbreitet ist werden wahrscheinlich noch viele Integer gecastet - oder ich nehme mir auch für kleine Skripte die Zeit alles schön objektorientiert zu gestalten und da dann anständig zu prüfen.
Und ganz interessant, was ich bei einer Suche nach der Möglichkeit von Typsicherheit gefunden habe: Ein ernüchtender Benchmark von PHP gegen HipHop
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Danzelot am 19.06.2011 2:36]
|
|
|
|
|
|
| Zitat von Danzelot
Du hast natürlich Recht, und es nervt mich auch regelmäßig dass so etwas in PHP nicht möglich ist. Aber bis ich da tatsächlich eine Sprache gefunden habe die mir sowohl gefällt als auch verbreitet ist werden wahrscheinlich noch viele Integer gecastet - oder ich nehme mir auch für kleine Skripte die Zeit alles schön objektorientiert zu gestalten und da dann anständig zu prüfen.
Und ganz interessant, was ich bei einer Suche nach der Möglichkeit von Typsicherheit gefunden habe: Ein ernüchtender Benchmark von PHP gegen HipHop
| |
Gibt's nicht irgendeinen Aufsatz für PHP der das übernimmt? Ich hab schon ewig nichts mehr damit gemacht, aber ich hab selbst schon sehr sorgfältig implementierte Systeme in PHP gesehen, von daher will ich den Erfindungsgeist der Gemeinschaft da mal nicht vernachlässigen.
Morgen werd ich vielleicht mal was schreiben, wie ein typisches PHP Skript in ASP.NET aussieht und warum das so untypisch für ASP.NET ist
|
|
|
|
|
|
|
Wer da mehr Infos zu hat: Würde gerne mehr über PHP lesen was jetzt spezielle Fachliteratur angeht. Programmiere seit Jahren hauptsächlich damit in der Web-Branche und bin seit einigen Jahren gewöhnt relativ saubere und sichere Framework-Erweiterungen usw zu schreiben
Ich denke mit ein paar entsprechenden Richtlinien kann man echt nicht viel falsch machen.
Eine Frage an Danzelot: Meinst du mit Cast ein a = (int)b; oder machst du es per a = intval(b);?
|
|
|
|
|
|
|
Beofnf Skunkkkkkkkkk möchte einmal erwähnen, dass er seit langer Zeit mal wieder mit seinem besten Freund (lol Sheep, der Kerl ist Jude!) los war und es in Flensburg viellei8dcjht 20 Minutne geregnet hat und danacjh BÄM! war iund ist Sonnenschein.
Gute Nacht-1!
|
|
|
|
|
|
|
| Zitat von [DK]Peacemaker
| Zitat von Danzelot
Ob ich Caste oder eine Exception werfe wenn eine Eingabe nicht-numerisch ist, wo ist der Unterschied im Aufwand?
| |
Dass du 3 mal castest
Klar muss jedes Web-Framework zu aller erst mit Strings arbeiten, die der Nutzer angibt, aber wenn man DAL so abgesichtet ist, dass ich z.B. nur solche Methoden habe:
|
Code: |
IEnumerable<Product> GetProductById(int id);
etc.
|
|
Dann kannst du dich noch so blöd anstellen, du wirst in diese Funktion keine SQL Injection einbauen können.
Soweit ich weiß, kann in PHP nicht über die Methodensignatur der Typ mitangegeben werden, was zwangsläufig einen Laufzeitcheck erzwingt. Statische Sprachen verhinden dort Fehler schon im ersten Test (=Kompilieren).
Soll heißen, ja wenn du ordentlich castest und im Ausnamefall dann eine Exception wirfst, machst du alles richtig. Allerdings ist es in PHP viel leichter, solche Sachen zu Vergessen.
PS: Natürlich hindert mich auch in statischen Sprachen keiner daran, etwas falsch zu machen. Letztlich verliere ich durch die zusätzlichen Laufzeit-Checks nur Zeit (nicht unbedingt im Prozesser-Kontext, sondern im Programmieraufwand). Jedes "if", jeder Type-Cast ist potentiell ein Testfall, je weiter ich diese vom Kern der Anwendung fern halten kann, umso leichter ist die Wartung desselbigen.
| | php kann type hinting nur für klassen und arrays...
|
|
|
|
|
|
|
Aber wieso gibt GetProductById(int id) eine Collection zurueck statt eines einzelnen Elements?
|
|
|
|
|
|
|
Wann optimieren wir mal die ladezeit des salates?
|
|
|
|
|
|
|
ein zweiter Monitor steigert die Produktivität nicht zwangsläufig um 100%!
|
|
|
|
|
|
|
| Zitat von igor]2
Aber wieso gibt GetProductById(int id) eine Collection zurueck statt eines einzelnen Elements?
| |
War ja schon spät
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |