El camino de Emacs

Este es mi RoadMap con respecto a Emacs:

– [X] Editor de texto / IDE

– [X] Cliente IRC

– [X] Chat / Facebook chat

– [X] Agenda / anotador / Life planner / time tracking/ project planner (Org-mode)

– [X] Shell / terminal

– [-] Cliente RSS (lo usé como tal pero no me convenció mucho.

– [X] Wiki personal

– [X] Lector de PDF

– [ ] Cliente de Email

– [ ] Lanzadera espacial.

Quién sabe qué nuevos usos tendré con este editor. Sus capacidades son casi ilimitadas. Seguro me estoy olvidando otros usos que le doy.

Detectar problemas de memoria en PHP


echo "Memory after attachment: ".memory_get_usage(true).PHP_EOL;
$attachmentId = pods_attachment_import(LODGE_FEATURE_PHOTOS_FOLDER.$image, $lodge["ID"], true);
echo "Memory before attachment: ".memory_get_usage(true).PHP_EOL;

Poniendo varias de estas líneas en el código podemos saber qué llamada es la que nos está consumiendo memoria. Se empieza por dividir el código en partes «sospechosas» y luego en el log vamos viendo entre cuáles se hizo la diferencia de memoria. Ejemplo:

Memory before attachment: 47972352
Memory after metadata: 47972352

Está claro que ahí no hay un problema de memoria.

 

Org-Mode I

Estados custom

Agregar al principio del archivo esta línea:

#+TODO: TODO(t) WORKING(w) | DONE(d) CANCELED(c)

Shortcuts

C-c C-c Toggle checkbox
C-c C-x C-b Org Toggle checkbox
C-c C-x C-a Archive subtree (org-archive-subtree)

Estadísticas

Agregar [/] en la entrada padre y apretar C-c (al final de la línea) o apretar C-c en alguno de los checkboxes (o marcarlo como «completed» / «done», etc.) para actualizar la estadística.

Reportes y timers

C-c C-x C-i para iniciar un timer
C-c C-x C-o para detener un timer
Marcar una tarea como DONE para detener un timer
C-c C-x C-r para actualizar el reporte

Reporte semanal (suma de horas)


#+BEGIN: clocktable :maxlevel 2 :scope file :block thisweek

#+END:

Reporte diario detallado


#+BEGIN: clocktable :maxlevel 2 :scope file :block today

#+END:

Reporte semanal detallado


#+BEGIN: clocktable :maxlevel 2 :scope file :block thisweek :step day :stepskip0

#+END: