doeknius_gloek

joined 2 years ago

Well, that makes the recalls easier to manage.

[–] doeknius_gloek@discuss.tchncs.de 10 points 1 day ago (1 children)

My server rack is located in an uninsulated attic with two tiny windows. I haven't measured the ambient temperature but I think it's over 40°C. Yesterday one drive in my storage server reached 65°C - so for today I have shut it off until the rain comes. Fun times.

This reads like a headline from Plague Inc.

[–] doeknius_gloek@discuss.tchncs.de 1 points 2 days ago (1 children)

Haha, danke :D Mir ist gerade noch ein Fehler in meinem Pastebin aufgefallen: In Zeile 111 müsste config->flashPin = ... stehen.

[–] doeknius_gloek@discuss.tchncs.de 2 points 2 days ago (3 children)

Gerne, freut mich :)

[–] doeknius_gloek@discuss.tchncs.de 12 points 2 days ago (1 children)

Great, now this might work with my neighbor, but how exactly do I smack mega corps and the state? Are we talking eco terrorism here or do you have some other idea that hasn't been tried in the last decades?

I mean, climate change isn't new but humanity still fucks up the planet and that does not seem to change. Why should we have to sweat at home while professionalized greed burns down everything around us? I will gladly take individual responsibility, but not alone.

Actually, a failing power grid here and there might act as a wake-up call and then we can start talking about solutions, not just symptomatic treatment.

[–] doeknius_gloek@discuss.tchncs.de 45 points 2 days ago (2 children)

our small impact is only felt when we band together

It is also offset immediately when unregulated corporations use the saved energy to sell us the next dumb thing.

[–] doeknius_gloek@discuss.tchncs.de 1 points 4 days ago (5 children)

Okay, also die folgenden Punkte sind mir aufgefallen:

  1. Du könntest deine Konfigurationsvariablen in einem Struct gruppieren, dann kannst du später sowas wie config.exposureTime machen.
  2. Eine while-Schleife bietet sich immer dann an, wenn du die Anzahl an Schleifendurchläufen nicht kennst - in deinem Code kennst du deine MAX_ROWS aber schon, daher würde ich eher eine for-Schleife nutzen (wobei ich gerade nicht weiß, wie sich das mit fscanf verträgt...)
  3. Die Reihenfolge deiner Variablen muss in der Konfigurationsdatei exakt so sein, wie dein Code es erwartet. Der Key deiner Key-Value Paare wird nicht abgeglichen.
  4. Wenn du den ersten Punkt umsetzt, würde ich empfehlen, dass initalizeVariables ein Config Struct returned, anstatt globale Variablen zu füllen. Macht's wartbarer.
  5. Jemand anderes hat bereits den möglichen Buffer Overflow bei fscanf angesprochen.
  6. Generell müsste man noch einiges an Errorhandling hinzufügen, um das Programm robuster zu machen
  7. Vielleicht willst du irgendwann mal andere Konfigurationswerte eintragen, bisher gehen nur (Gleitkomma)zahlen

Ich habe mich mal hingesetzt und das zum Anlass genommen, meinen ersten (und wahrscheinlich auch einzigen) C-Code zu schreiben. Disclaimer: Das Ergebnis macht mich nicht besonders glücklich, aber ich hasse mein Leben nicht genug, um weitere Verbesserungsideen auszuprobieren. C scheint mir doch recht alt/limitiert und was bei anderen Sprachen Standardfeatures sind, sucht man bei C vergebens. Eine Map wäre z.B. sehr praktisch gewesen, oder ein switch Statement, welches mit Strings umgehen kann oder überhaupt ein String Datentyp statt Char-Arrays mit festen Längen... Uff ey.

Egal, hier mein (nicht besonders guter und brüchiger) Code: https://pastebin.com/hWCFSvQd

[–] doeknius_gloek@discuss.tchncs.de 2 points 4 days ago (7 children)

Cool, danke für den Code! Hast du Interesse an Feedback von einem Webentwickler, der in seinem Leben noch nicht eine Zeile C geschrieben hat?

[–] doeknius_gloek@discuss.tchncs.de 2 points 4 days ago* (last edited 4 days ago) (10 children)

Wie hast du's letztendlich gemacht? Ich habe inzwischen deinen vorherigen Post gelesen und gesehen, dass deine Konfigurationsdatei im Grunde eine vereinfachte .ini ist - pro Zeile ein Key-Value Paar, getrennt durch ein "=”.

Mein naivster Ansatz wäre, die Datei einzulesen, an allen EOLs zu splitten, um alle Key-Value Paare zu bekommen und dann wiederrum am = zu splitten?

view more: next ›