|
|
|
|
| Zitat von blue
Ich kannte das bis vor 'nem Jahr oder so nur unter der guten Bedeutung, die WP zu bieten hat:
Vorarbeiter auf'm Bau.
| |
Dies
Hab auch Baubackground.
Aber gut zu wissen, thx Armer Getron
|
|
|
|
|
|
|
In Norddeutschland kapiert das wahrscheinlich kaum einer. Obwohl, ich hab keinen Baubackground!
|
|
|
|
|
|
|
Büßer hat doch auch nur Busbaubackground
|
|
|
|
|
|
|
Jou hab das halt abgekürzt
|
|
|
|
|
|
|
| Zitat von Armag3ddon
| Zitat von AJ Alpha
warten bis der Capo abnickt.
| |
Gerade mal nachgeschlagen, dass das in Süddeutschland echt noch als Wort gebräuchlich ist. Hui.
| |
Ich kenn Capo nur vom Fußball
In der IT noch nie gehört/gelesen.
edit: Bei uns darf jeder Code reviewen, und ab 2 Approvals + erfolgreicher Build mit Sonar-Scan kann gemerged werden.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von krak0s am 23.07.2021 13:48]
|
|
|
|
|
|
| Zitat von Armag3ddon
In Norddeutschland kapiert das wahrscheinlich kaum einer. Obwohl, ich hab keinen Baubackground!
| |
Jeder Fußballfan versteht das ebenso. Oder jemand der ein paar Mobster-Filme geguckt hat. Aber ansonsten ist das in Norddeutschland tatsächlich nicht verbreitet.
|
|
|
|
|
|
|
Ich soll für ne Hausarbeit ein Run Length Encoding Programm in Java schreiben.
Ich kann mir grade einfach nicht erklären warum ich in der zweiten for Schleife nicht x <= digits.length benutzen kann
Die Zeile wird mir jedenfalls von IntelliJ angemeckert.
Sieht das jemand auf den ersten Blick?
|
Code: |
public static String decompress(String text) {
String decompressedarray = "";
char[] compressedarray = text.toCharArray();
for (int i = 0; i < compressedarray.length) {
if (Character.isDigit(compressedarray[i])) {
String digits = "";
while (Character.isDigit(compressedarray[i])) {
digits += compressedarray[i];
i++;
}
Integer.parseInt(digits);
// Hier kommt die problematische Stelle
for (int x = 0; x <= digits.length; x++){
decompressedarray += compressedarray[i];
}
}
else{
decompressedarray += compressedarray[i];
i++;
}
}
return decompressedarray;
} |
|
|
|
|
|
|
|
|
String ist ein Objekt und kein Array, also digits.length()
|
|
|
|
|
|
|
Ah geil, das wars Geht zwar nicht wie ich wollte, aber hab den fehler schon gefunden
E: Jetzt geht alles
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Apache am 23.07.2021 21:28]
|
|
|
|
|
|
Mal eine Frage:
Welche Lösung für einen kleinen Blog auf einem Shared-Webspace könnt Ihr mir empfehlen? Es soll wartungsarm sein, Highlighting ermöglichen und editieren per Markdown ist willkommen. Ich möchte nur Erlebnisse und das bisschen Wissen festhalten, zusammen mit Quellcode. Ich habe meinen Webspace bei Manitu, Apache, MySQL und PHP stehen zur Verfügung. Zur Administration auch SSH bzw. Git , es gibt auch Versuchsweise PostgreSQL. Von mir aus sind auch Textdateien in Ordnung, dann habe ich gleich ein Backup.
|
|
|
|
|
|
|
Bei so statischen Content würde ich Hugo oder Jekyll benutzen (Contentersteelung dann z.b. in markdown) und das ganze in git(hub) pflegen und nur die generierte Seite auf den Server laden.
|
|
|
|
|
|
|
Mal das Gegenteil gefragt...
Falls jemand in der Richtung unterwegs ist, was benutzt ihr so für größere Webseiten (B2B), also wenns über Wordpress und co hinausgeht?
|
|
|
|
|
|
|
Hab eine Weile Drupal für Kunden genutzt. Ist eine richtig beschissene Software vong Architektur her, aber es ist flexibel und nutzerfreundlich genug um schnell was zu bauen und den Kunden zufrieden zu stellen.
Wenn du aber irgendwelche besonderen Sachen brauchst, und selbst code schreiben musst, ist Drupal glaube ich ziemlicher Pain.
|
|
|
|
|
|
|
| Zitat von Admiral Bohm
Bei so statischen Content würde ich Hugo oder Jekyll benutzen (Contentersteelung dann z.b. in markdown) und das ganze in git(hub) pflegen und nur die generierte Seite auf den Server laden.
| |
Hugo sekundiere ich, habs im Einsatz und es ist gut.
Grösseres/Dynamisches Zeug selbstgestrickt mit Phoenix Framework / Elixir.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Swift am 26.07.2021 11:25]
|
|
|
|
|
|
Zur Doku ist DokuWiki ganz nett, gerade auch was Code angeht - aber wenn du es als Blog aufziehen willst, dann lieber die genannten Static Site Generatoren.
|
|
|
|
|
|
|
+1 für hugo. Bei Bedarf dann Netlify CMS dazu
|
|
|
|
|
|
|
Ich könnte nochmal Hilfe gebrauchen.
Ich soll in Java eine Koch Kurve bauen - das klappt auch.
Es soll beim Aufruf über die Konsole ein Argument mitgegeben werden, wie oft sich das Ursprungsdreieck "unterteilt".
Dabei soll jedes Argument über 5 auf 5 reduziert werden.
Wird ein Buchstabe mitgegeben soll er auf einen vorher festgelegten Wert geändert werden (hier 4).
Das gleiche soll passieren wenn kein Argument mitgegeben wird.
Das funktioniert auch alles, allerdings habe ich das jetzt fast 1:1 von nem Kommilitonen "abgeschrieben" und hätte es gerne irgendwie anders und wenn möglich auch nicht alles in der main Aber ich werd mit Java nicht warm und habe keine Idee.
|
Code: |
public class KochKurve extends JFrame {
public static void main(String[] args) {
JPanel jpanel = new JPanel() {
int steps;
public void paintComponent(Graphics g) {
try {
if (args.length == 1) {
steps = Integer.parseInt(args[0]);
if (steps > 5) {
steps = 5;
System.out.println("Eine hoehere Unterteilung als 5 ist nicht moeglich - Wert wurde auf 5 gesenkt");
}
}
else {
steps = 4;
System.out.println("Sie haben keinen Wert fuer die Unterteilung uebergeben - Wert wurde auf 4 gesetzt");
}
}
catch (NumberFormatException e) {
steps = 4;
System.out.println("Sie haben keine Zahl als Wert uebgergeben - Wert wurde auf 4 gesetzt");
}
g.drawPolygon(polygon(steps));
}
};
JFrame f = new JFrame("Koch Kurve");
f.add(jpanel);
f.pack();
f.setSize(500, 500);
f.setVisible(true);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
} |
|
Hat jemand ne Idee?
|
|
|
|
|
|
|
| Zitat von Noch_ein_Kamel
Mal das Gegenteil gefragt...
Falls jemand in der Richtung unterwegs ist, was benutzt ihr so für größere Webseiten (B2B), also wenns über Wordpress und co hinausgeht?
| |
Mein eigenes CMS, weil ich eh nur Seiten baue und alle anderen beschissen oder sehr beschissen sind und meins natürlich einfach gut ist. Also objektiv gesehen jetzt. Subjektiv ists natürlich geilon.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Fabsn am 28.07.2021 22:55]
|
|
|
|
|
|
| Zitat von Apache
Ich könnte nochmal Hilfe gebrauchen.
Ich soll in Java eine Koch Kurve bauen - das klappt auch.
Es soll beim Aufruf über die Konsole ein Argument mitgegeben werden, wie oft sich das Ursprungsdreieck "unterteilt".
Dabei soll jedes Argument über 5 auf 5 reduziert werden.
Wird ein Buchstabe mitgegeben soll er auf einen vorher festgelegten Wert geändert werden (hier 4).
Das gleiche soll passieren wenn kein Argument mitgegeben wird.
Das funktioniert auch alles, allerdings habe ich das jetzt fast 1:1 von nem Kommilitonen "abgeschrieben" und hätte es gerne irgendwie anders und wenn möglich auch nicht alles in der main Aber ich werd mit Java nicht warm und habe keine Idee.
|
Code: |
public class KochKurve extends JFrame {
public static void main(String[] args) {
JPanel jpanel = new JPanel() {
int steps;
public void paintComponent(Graphics g) {
try {
if (args.length == 1) {
steps = Integer.parseInt(args[0]);
if (steps > 5) {
steps = 5;
System.out.println("Eine hoehere Unterteilung als 5 ist nicht moeglich - Wert wurde auf 5 gesenkt");
}
}
else {
steps = 4;
System.out.println("Sie haben keinen Wert fuer die Unterteilung uebergeben - Wert wurde auf 4 gesetzt");
}
}
catch (NumberFormatException e) {
steps = 4;
System.out.println("Sie haben keine Zahl als Wert uebgergeben - Wert wurde auf 4 gesetzt");
}
g.drawPolygon(polygon(steps));
}
};
JFrame f = new JFrame("Koch Kurve");
f.add(jpanel);
f.pack();
f.setSize(500, 500);
f.setVisible(true);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
} |
|
Hat jemand ne Idee?
| |
|
Code: |
package bla;
public class Blub {
static Integer DEFAULT_STEPS = Integer.valueOf(4);
public static void main(String[] args) {
new Blub().getSteps(args);
}
public Integer getSteps(String[] args) {
if (args.length < 1) {
System.out.println("Argument fehlt. Verwende Default: " + DEFAULT_STEPS);
return DEFAULT_STEPS;
}
Integer steps;
try {
steps = Integer.valueOf(args[0]);
} catch(NumberFormatException e) {
System.out.println("Argument ist nicht numerisch. Verwende Default: " + DEFAULT_STEPS);
return DEFAULT_STEPS;
}
if (steps > 5) {
steps = 5;
}
return steps;
}
}
|
|
Test
|
Code: |
package bla;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class BlubTest {
@Test
void testNumberBelow5() {
Blub blub = new Blub();
String[] args = { "1" };
assertEquals(blub.getSteps(args), 1);
}
@Test
void testNumberOver5() {
Blub blub = new Blub();
String[] args = { "6" };
assertEquals(blub.getSteps(args), 5);
}
@Test
void testInvalidArgument() {
Blub blub = new Blub();
String[] args = { "Blub" };
assertEquals(blub.getSteps(args), 4);
}
@Test
void testNoArgument() {
Blub blub = new Blub();
String[] args = { };
assertEquals(blub.getSteps(args), 4);
}
}
|
|
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von DeineOmi am 28.07.2021 23:05]
|
|
|
|
|
|
So much fun ... gleich geht ne Mail an über 860 Empfänger raus. Aktualisierung der Nutzungsbedingungen. War überhaupt nicht stressig das alles vorzubereiten und das E-Mail Template gefühlt 20 mal zu aktualisieren und zu testen. In 5 Minuten ist alles rum und wer auch immer dagegen ist wird bei uns gelöscht
/e: 69 Sekunden für 686 E-Mails ... nice
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von NI-Xpert am 29.07.2021 18:38]
|
|
|
|
|
|
Den Versand selbst gecodet (und in was) oder einen Service genutzt bzw eine library? In batches verschickt nehme ich an? Oder for loop und dann gib ihm?
|
|
|
|
|
|
|
| Zitat von DeineOmi
| Zitat von Apache
Hat jemand ne Idee?
| |
code
| |
Vielen Dank, das klappt
|
|
|
|
|
|
|
| Zitat von X-Tender
Den Versand selbst gecodet (und in was) oder einen Service genutzt bzw eine library? In batches verschickt nehme ich an? Oder for loop und dann gib ihm?
| |
AWS Simple Email Service.
Hole email addressen aus DB, SDK, For loop und gib ihm
Innerhalb Sekunden kriegt man die Zustellungsbenachrichtigungen und weiß ob die Email angekommen ist oder das Postfach voll ist oder sonst was. Echt easy
|
|
|
|
|
|
|
Und möglicherweise landet die Server-IP auf Blacklisten =)
Ich habe mehrere Jahre eine kleine Event-Software für einen Autohersteller betreut. Da haben entweder Autohäuser für ihre Kunden, oder aber Regionsleiter für Fuhrparksleiter von Behörden und Firmen, unterschiedliche Kontingente bereit gestellt bekommen um jene für Fahr- oder Vorführ-Events einzuladen.
Je nach Event bekamen dann alle oder nur ausgewählte Kunden/Fuhrparksleiter oder Autohäuser/Regionsleiter Infomails. Oder Erinnerungsmails. Oder oder oder.
Wenn da dann 6000 Kunden tatsächlich fast gleichzeitig angeschrieben werden und irgendein empfangender Mailserver das nicht so cool findet und den Absender auf die Blacklist setzt, kann es schon passieren, dass hunderte Empfänger die Mails nie bekommen.
Versand deshalb immer in Batches und am besten über entsprechende Anbieter die den Spaß dann auch nochmal load-balancen.
Das war teilweise pures Chaos und das Testen des Systems war halt auch ... ungeil.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Fabsn am 29.07.2021 22:45]
|
|
|
|
|
|
|
|
|
|
Das macht doch alles der AWS Dienst. AWS weiß welcher Empfänger wie viele Emails pro Sekunde/Minute verträgt. Deren Infrastruktur wird von vielen Diensten genutzt wenn da ein Empfängerserver ne IP sperrt sperrt er kollateral zig andere Dienste mit.
Es gibt ein Tracking an Bounces und Complaints. Für nen Bounce reicht es ne Email Adresse anzuschreiben, die nicht existiert. Ist uns heute zum ersten Mal passiert. Ein Troll hat ne 1 Buchstaben Domain als Email Adresse angegeben und bei einem anderen User der auch seit Monaten nicht mehr eingeloggt war existiert das Yahoo Konto nicht mehr. AWS möchte dass die Bounce Rate bei <5% bleibt und wir sind nun bei 2 von 1500 oder so.
Die höhere Stufe sind Complaints und da reicht es wenn ein Empfänger bei der Mail auf "Report Spam" oder ähnlich drückt. Da sind wir bei 0 und AWS würde meckern wenn man da auf über 0,1% kommt.
Da wir aber zum Glück nicht mit Email Listen aus dem Vertrieb arbeiten bin ich da entspannt dass solche Massenmailings auch gut laufen. Die User registrieren sich ja für nen Account mit diesen Adressen und wir senden normalerweise außer der Double Opt In Mail nur Benachrichtigungen, falls der User sich die wünscht.
|
|
|
|
|
|
|
Ja mein Fehler, das hab ich irgendwie überlesen oder falsch interpretiert.
Aber wo sollten die User auf "Report Spam" drücken? Verändert das System die von euch generierten Mails?
|
|
|
|
|
|
|
| Zitat von Fabsn
Ja mein Fehler, das hab ich irgendwie überlesen oder falsch interpretiert.
Aber wo sollten die User auf "Report Spam" drücken? Verändert das System die von euch generierten Mails?
| |
Nein es wird nix verändert. So wie es verstehe geht es um die Report Spam Funktion, die die empfangene Mail bei dir im Postfach in den Spam Ordner schiebt. Bei den großen Anbietern geht dann wohl im Hintergrund n API Call zum Versender der Mail (also AWS) der als Complaint registriert wird. Ansonsten steht in den FAQs auch, dass der Empfänger sich manuell bei seinem Postfach Anbieter beschweren kann oder bei AWS selbst. Das wäre dann vermutlich per abuse@ Email.
|
|
|
|
|
|
|
| Zitat von NI-Xpert
ist uns heute zum ersten Mal passiert. Ein Troll hat ne 1 Buchstaben Domain
| |
Oh boy, have I got news for you: s.de
|
|
|
|
|
|
|
Es war a.de
Haben wir ja nicht blockiert es gab nur nen harten Bounce und den ersten Eintrag im Klassenbuch
|
|
|
|
|
|
Thema: Software-Entwicklung 0 ( new SammelThread() ) |