help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Toggle appointment notification


From: pietru
Subject: Re: Toggle appointment notification
Date: Fri, 4 Dec 2020 01:28:13 +0100

> Sent: Friday, December 04, 2020 at 12:49 AM
> From: "Jean Louis" <bugs@gnu.support>
> To: "Michael Heerdegen" <michael_heerdegen@web.de>
> Cc: help-gnu-emacs@gnu.org
> Subject: Re: Toggle appointment notification
>
> * Michael Heerdegen <michael_heerdegen@web.de> [2020-12-04 02:05]:
> > pietru@caramail.com writes:
> > 
> > > Fair enough, but the response could easily be interpreter to be
> > > addressed to us rather than to every emacs user.  I understand we
> > > asked for points of view, but that was after Michael informed us that
> > > he was planning some work on diary appointments and he asked me for
> > > suggestions on our planned use and strategy.  Emanuel confirmed that
> > > changes will became part of the official release.
> > 
> > I'm sorry, but there was some misunderstanding.  I'm a user of calendar,
> > diary, org and diary, and plan to donate some related stuff to Gnu
> > Elpa.  I dunno to what Emanuel answered.
> > 
> > I'm interested in making diary expressions more common and useful.  I
> > want to have something better than appointments, and a better
> > integration of these things with Org.  But I'm not an Org developer.
> > 
> > I'm just curious about how people are currently using this stuff, as an
> > inspiration for the direction of development of my stuff, so that it may
> > end up in something useful for others.
> 
> {M-x appt-add} While called `appointments' it may be used for any type
> of daily alarm or notification. I find warnings or alarms useful. User
> may write something and be focused and is then reminded of
> appointment. Or bread being baken. Or child that has to be driven from
> kindergarten.
> 
> (appt-add TIME MSG &optional WARNTIME)
> 
>   Probably introduced at or before Emacs version 23.3.
> 
> Add an appointment for today at TIME with message MSG.
> The time should be in either 24 hour format or am/pm format.
> Optional argument WARNTIME is an integer (or string) giving the number
> of minutes before the appointment at which to start warning.
> The default is ‘appt-message-warning-time’.
> 
> 
> I am currently thinking same as you, how to streamline and shorten and
> make faster actions of life and education of others.
> 
> If you have structured data to deal with it is good to use databases.

Ok, it could be.  But bloody hell, you need to make an sql query.  And
of course SQLight works on binary files.  It is problematic.  It could be
made an option, but using text should be kept.  We often do not have
structured data.  At times we come up with things on the go, and don't
have people who would help if things get too technical when things
go wrong.  But with text you can hack things up on the spot and keep
working.  I could be working in a swamp, so not into the cosmetic
stuff.  Other people can use the fancy complex tree stuff.  There are
many instances where it would be an overkill.

Could you have a look at Gnu Recutils, so we can read and write using
rec-format.  Quite unsure how you are trying to do things, but sounds
like office work to me.  We have no need for people to organise things
for us, but for us to organise things as we wish.  Most times we find
that  databases are structured for very particular and typical purposes.
 
Regards
Pietru

> My planning of personal stuff is in this direction:
> 
> - reminders is database table that accepts general input, be it for
>   appointments, tasks, any kind of reminder. It has to repeat itself
>   at specific intervals and it has to have features to use SMS, email,
>   and by sound spoken notifications. Cron job or Emacs command
>   `run-with-idle-timer' can be used from time to time to run reminders
>   job of sending notifications.
> 
> - I have a hyperdocument database table (hlinks) and hyperdocument
>   types (hlinktypes), then I define the type of it. It can be
>   anything. So it can be appointment. It can be task assigned to
>   person, note, PDF, Org file, paragraph, or just WWW hyperlink,
>   message ID, annotation. I recommend using that approach.
> 
> - then by using smart intersection location one can find anything one
>   want. When having reminder, alert, warning, notifications, or
>   binding it to one or two keys that is where it becomes interesting.
> 
> - DragonflyBSD operating system has nifty features for administrator
>   that gets full report by local email about system
>   securities.
> 
> - Analogous to such daily report it could be automated that user gets
>   notifications, even that computer uploads symmetrically encrypted
>   agenda on a website, into the mobile phone, send it by email, send
>   reminders of tasks by email to people one work with, send them SMS
> 
> 1. I recommend using database approach. It can be GDBM database. It
>    can be PostgreSQL, MySQL, SQLite or something similar. Develop your
>    first table and play with it. Then start storing information.
> 
> 2. After a while of playing and exploring, develop table what you need
>    and want.
> 
> It is not hard:
> -- ------------------------------------------
> -- ------------ Table appointments
> -- ------------------------------------------
> CREATE TABLE appointments (
> appointments_id SERIAL NOT NULL PRIMARY KEY,
> appointments_datecreated TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
> appointments_datemodified TIMESTAMP,
> appointments_usercreated TEXT NOT NULL DEFAULT current_user,
> appointments_usermodified TEXT NOT NULL DEFAULT current_user,
> appointments_timestamp TIMESTAMP WITH TIME ZONE NOT NULL,
> appointments_title TEXT NOT NULL,
> appointments_description TEXT,
> appointments_status TEXT
> );
> 
> First make some functions to insert new appointmens:
> 
> (defun appointment-insert ()
>   (let* ((current-date-time (format-time-string "%Y-%m-%d %H:%M"))
>        (time-date (read-from-minibuffer "Date and time: " current-date-time))
>        (title (read-from-minibuffer "Appointment: "))
>        (title (sql-escape-string title))
>        (description (read-from-minibuffer "Description: "))
>        (descrption (sql-escape-string description))
>        (sql (format "INSERT INTO appointments (appointments_timestamp, 
>                                                  appointments_title,
>                                                  appointments_description)
>                        VALUES (%s,%s,%s)"
>                     time-date title description)))
>     (rcd-sql sql *db*)))
>     
> 3. Then start making few functions until you get the feeling. List
>    appointments chronologically and in reverse.
> 
>    When SQL query is:
>    
>    SELECT * FROM appointments ORDER BY appointments_timestamp;
> 
> Emacs Lisp function looks like:
> 
> (defun appointments-by-date ()
>   "Returns list of appointments"
>   (let ((sql "SELECT * FROM appointments ORDER BY appointments_timestamp;"))
>     (rcd-sql-list sql *db*)))
> 
> Advantage of the databases is:
> 
> - that you may access appointments from almost any programming language
> 
> - that you may replicate database to other databases
> 
> - that it is multi-user system, for example group could be
>   scheduling appointments and collaborating
> 
> - that you may access databases remotely, you may use mobile device
> 
> - high speed data access for large amounts of records quickly and efficiently
> 
> - databases lessen the coding requirement drastically, they have
>   built in searches, sorting, intersections and plethora of
>   functions, sparing user to write substantial amount of
>   code. They are available in every GNU/Linux distribution and
>   BSD derivatives and other operating systems.
> 
> - In general databases work well across various devices. It means
>   their data can be exported, moved, transformed to other
>   data. It is not just Emacs Lisp, it becomes universal data
>   accessable also from Internet or browsers, command line, from X
>   programs, and various types of software.
> 
> - databases are very reliable and easy to backup.
> 
> More reading:
> https://www.postgresql.org/about/
> 
> 
> Jean
> 
> 
> 
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]