Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[Linux] [FB] Remember-Deamon

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 05.02.2010, 21:54    Titel: [Linux] [FB] Remember-Deamon Antworten mit Zitat

[Download-Link]
mrd.tar (50 KB)

[Betriebssystem]

Linux

[Funktion]
Erinnerungen anhand eines XML-files erfassen, benutzer per GTK-Fenster benachrichtigen (erinnern)

[Technisches]
Das ganze besteht aus zwei teilen: einmal dem Deamon, der die Memory einliest, auf korrektheit überprüft und anschließend in einer loop wartet bis ein erinnerungszeitpunkt eintritt.
Wenn ein Termin eintritt ruft der deamon ein kleines programm auf das ein GTK-fenster mit der Nachricht spawnt.

[Features]
- Beliebig viele Memorys
- Memorys können sich wiederholen (täglich, wöchentlich, monatlich, jährlich)
- einmalige Memorys werden auch aus der liste gelöscht (bzw nicht neu geschrieben)
- Datumsangabe (noch): in Wochentagen (deutsch / englisch), im format dd.mm.yyyy , dd.mm[.] oder leer (= datum des deamon-aufrufs).
- Memorys in XML-file
- Wiederholungs-interval (für alle wiederholungsarten) (<interval>x</interval>
- Erinnerungen mit Daten in der Vergangenheit werden auf das nächste Datum an dem sie wiederholt werden sollen gesetzt
- Beim aufruf der Erinnerung wird anschließend das Datum auf den nächsten wiederholungs-termin gesetzt
- Erinnerungen während der Laufzeit hinzufügen

[ToDo]
- Windows-Version(???)
- überarbeitung der call_men() und main() (< mehrere Erinnerungs-fenster gleichzeitig)
- Gui-App für das Verwalten der Erinnerungen -> kann mir da einer helfen?
- Performance beim Einlesen verbessern
- Delete-Button bei Erinnerungen ohne Wiederholung ausblenden
- Date-Range (z.b. von montag bis freitag, oder vom 15.2 bis zum 20.2) (??)
- Erinnerungsliste während der Laufzeit abfragen (fragt sich nur wie)
- Nur-ein-prozess-gleichzeitig (... fragt sich nur wie)

[Updates]
> 6.02.10
Feature Updates (siehe oben)
kleinere Bugfixes
xmlparse.bas ins archiv gelegt
> 8.02.10
- XML-Syntax geändert - fehler durch falsches Datums-format sind jetzt ausgeschlossen
- "Sicherheitslücke" geschlossen - es war möglich mit hilfe der Memorys code auf benutzer-ebene auszuführen (nicht als root)
- Chronologische Sortierung der Erinnerungen (werden dann auch sortiert gespeichert.
> 20.02.10
- Änderungen in der LinkedList (weniger statisch, mehr features)
- Kleine Bugfixex
- Hinzufügen von Erinnerungen während der laufzeit (via ConFiMa)
- MRD schreibt jetz einen Log (/home/<username>/.mrd/mrd.log)
- Code aufgeräumt
----------

Ich hoffe jemand kann damit was anfangen.. und bevor ichs vergesse: herzlichen dank an nemored für seinen xml-parser.
_________________
// nicht mehr aktiv //


Zuletzt bearbeitet von The_Muh am 24.02.2010, 21:56, insgesamt 10-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 06.02.2010, 03:15    Titel: Antworten mit Zitat

Zitat:
und bevor ichs vergesse: herzlichen dank an nemored für seinen xml-parser.

Du hast hoffentlich den genommen, welcher meiner aktuellen patfinder-Version beiliegt - ist im Vergleich zu dem vor einem halben Jahr ein Stückchen fehlerverbessert und kann jetzt auch grundlegende Kommentare ignorieren. lächeln
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 06.02.2010, 14:45    Titel: Antworten mit Zitat

japp, den hab ich genommen.
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 06.02.2010, 19:22    Titel: Antworten mit Zitat

Update (siehe oben)

Aber scheinbar interessiert das projekt keinen =/
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 06.02.2010, 19:33    Titel: Antworten mit Zitat

Mein Arbeitssystem ist Windows, von dem her kann ich mit der Linuxversion nicht viel anfangen. Ich denke bei den meisten anderen wird das ähnlich sein. ("meisten" <> "allen" bevor da Beschwerden kommen)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 06.02.2010, 19:40    Titel: Antworten mit Zitat

Problem ist, das ich nicht weiß wie ich unter Windows die Kill-Signale abfange, um das ganze ordentlich zu beenden... unter linux is das kein problem.
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 06.02.2010, 20:02    Titel: Antworten mit Zitat

Abschießen über den Taskmanager wirst du nicht abfangen können, aber soweit ich weiß, gibt es auch unter Linux Kill-Signale nicht nicht abgefangen werden können.

Für alles andere gibt es Tastenkombinationen die man abfragen kann.

Evtl. hilft auch ein Destructor.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 562
Wohnort: Jüterbog

BeitragVerfasst am: 06.02.2010, 20:08    Titel: Antworten mit Zitat

[fun]
... ach MOD... hier will ein elitärer Zirkel unter sich bleiben...
[/fun]
möööp
(betrifft mich ja schliesslich auch!!)
grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 06.02.2010, 21:53    Titel: Antworten mit Zitat

Hi Muh!

Tröste dich - auf meinen Fraktalgenerator hat sich gar keiner gemeldet... Du musst da so sehen: Das ist ein gutes Zeichen. Alle haben sich die Software runtergeladen und sind nun so begeistert damit unterwegs, dass sie einfach keine Zeit finden, einen Reply zu schreiben zwinkern

Ich hab's ganz ehrlich nicht verstanden: Was ist "eine memory"? Eine Nachricht, die mich an was erinnern soll? Oder hat das was mit Hauptspeicher zu tun?

Viele Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 07.02.2010, 17:16    Titel: Antworten mit Zitat

Eine Nachricht, die dich an was erinnern soll, richtig. "Erinnerungs-Daemon" is kein schönes Neu-deutsch *g*
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4597
Wohnort: ~/

BeitragVerfasst am: 07.02.2010, 23:01    Titel: Antworten mit Zitat

Nun ja, nachdem der Daimon aus dem Griechischen kommt, kannst du es ja mal mit einem mimneskischen Daimon probieren. cool

Als englisches Wort würde ich eher "remember" vorschlagen, da "memory" wie gesagt an Memory-Speicher erinnert.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 08.02.2010, 01:10    Titel: Antworten mit Zitat

Is Umbenannt... ich werd das XML mal leicht ändern, Beispiel für den neuen Syntax:

Code:

<memory>
   <time>
      <hour>13</hour>
      <minute>37</minute>
   </time>
   <date>
      <day>13</day>
      <month>07</month>
      <year>2010</year>
   </date>
   <message>G33k-T1m3! =)</message>
   <repeat>
      <type>yearly</type>
      <interval>1</interval>
   </repeat>
</memory>


Wird einfacher zu parsen...
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.02.2010, 10:17    Titel: Antworten mit Zitat

Die "Konkurrenz"-Anwendung aus dem Haus Microsoft für die hier diskutierte Anwendung nennt sich Outlook vom Office-Paket, ebenso jedes bessere Handy, d.h. Terminkalender ist halt eine typische PIM-Anwendung.

Sonst finde ich es gut, dass Du aufs Standardformat XML zurückgreifst. Wichtig ist einfach, dass Du eine DTD definierst. Deswegen sollte eine .xml-Datei auch immer mit beispielsweise einem
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE erinnerung SYSTEM "http://www.the-muh.de/erinnerung.dtd">

beginnen (natürlich muss die .DTD auch tatsächlich auf Deinem Webspace publiziert sein, damit sie ein XML-Syntax-Parser per HTTP-Request holen kann!). Was das Parsing betrifft: Es gibt inzwischen genügend Bibliotheken, die sich um das Parsing kümmern. Von Microsoft gibt es beispielsweise die XML Core Services für diesen Zweck. Unter Linux gibt es die libxml für dasselbe.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 08.02.2010, 14:00    Titel: Antworten mit Zitat

Unter Windows gibt es auch libxml, die Header sind bei FreeBASIC sogar schon dabei.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 08.02.2010, 14:44    Titel: Antworten mit Zitat

Webspace hab ich nicht. aber ich denke das XML von mir is so einfach zu lesen, das bekommt jeder auf die reihe...und wozu libxml? Funktioniert doch so auch ganz prima.

Nebenbei hab ich heut das ganze mal etwas geupdatet.

Zum Syntax gibts nur eine Wichtige sache:
<time> und <message> müssen einen wert haben,
bei <date> wird ersatzweise das aktuelle datum eingesetzt,
bei <repeat><type> wird none angenommen.
(<repeat><interval> ist standard 1)
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.02.2010, 15:27    Titel: Antworten mit Zitat

The_Muh hat Folgendes geschrieben:
Zum Syntax gibts nur eine Wichtige sache:
<time> und <message> müssen einen wert haben,
bei <date> wird ersatzweise das aktuelle datum eingesetzt,
bei <repeat><type> wird none angenommen.
(<repeat><interval> ist standard 1)

Exakt für derartige Definitionen (Du definierst hier REQUIRED-Attribute) wurde die DTD geschaffen. Ist eine formale Sprache um derartige Syntax-Constraints (Bedingungen) zu definieren. Tool an dieser Stelle:

http://xmlstar.sourceforge.net/

=> kann u.a. XML-Dateien validieren (=prüfen, ob derartige Constraints eingehalten sind). Logischerweise benötigt dieses quelloffene Tool die Syntaxregeln aus einer solchen .dtd-Datei. Diese kann selbstverständlich auch aus einer Offline-Resource stammen.

Ansonsten das W3C-Konsortium verteilt beispielsweise ebenfalls DTDs und URL-Form:

http://www.w3.org/TR/html4/strict.dtd
http://www.w3.org/TR/html4/loose.dtd
http://www.w3.org/TR/html4/frameset.dtd

Als Linux-Benutzer kannst Du diese direkt mit einem
Code:
wget

herunterladen. In diesen DTDs sind ebenfalls all diese Regeln, dass z.B. ein <BODY> immer in ein <HTML> gehört, ein <P> in ein <BODY> usw. definiert, so dass ein Syntaxprüfer zwischen well-formed HTML und nicht korrektem HTML unterscheiden kann.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 14.02.2010, 17:38    Titel: Antworten mit Zitat

Erstmal: Hab mal oben die Todo-liste aktualisiert. Ein(ige) Feature(s) sind zwar schon fertig, aber ich will noch ein paar sachen optimieren bis ich release.

Zweitens:
@Drael: danke für den tipp.. aber ich will erstmal alle geplanten features einbauen, da sich die Spezifikationen der Memory-liste noch ändern (können).
(und... ich weiß wie man wget benutzt... ich nutze Linux schon ein wenig länger zwinkern )

Drittens: weiß einer wie das mit DBus und Freebasic aussieht? ich hab die idee erst eben bekommen, deswegen frag ich direkt hier.. recherchiert hab ich noch nicht.

mfg
The_Muh
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 20.02.2010, 16:49    Titel: Update!! Antworten mit Zitat

Update is da. hab aber nich alles eingebaut was ich einbauen wollte, aber dafür ein paar andere sachen (siehe oben)
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz