Emacs Hangout 2015-03-18 show notes

We chatted about Org coolness and workflows; learning Emacs and deliberate practice; speech recognition; alternate layouts.

Event page: https://plus.google.com/events/cbj3rg26d8j9ifaiff5uq00ncr4

What’s this Emacs Hangout thing about? This is an informal way for Emacs geeks to get together and swap tips/notes/questions. You can find the previous Hangouts or sign up for the mailing list at http://sachachua.com/blog/tag/emacs-hangout/ . The next Emacs Hangout will be on April 15, 2015, at 8 PM Toronto time (12 midnight GMT): https://plus.google.com/events/c3igul0rj6cfc1qbcar91lrcj0s Want to get notified about upcoming hangouts? You can sign up for notifications at http://eepurl.com/bbi-Ir .

Experimenting with org-timer. Times are approximate, despite the seeming precision. =)

  • 0:00:12 Intros
  • 0:04:22 Howard – Prettify Your Quotation Marks
  • 0:06:37 Org Mode Spreadsheets
  • 0:12:44 org-aggregate
  • 0:12:50 summing up tables
  • 0:15:38 Hiding things from export with :PRIVATE: .. :END:
  • 0:16:30 Navigation
  • 0:17:10 Relative line numbers
  • 0:19:32 Org prettiness: org-bullets
  • 0:20:51 EMagicians Starter Kit
  • 0:26:23 More table stuff
  • 0:27:32 Org Mode workflows, reasons to use Org
  • 0:28:16 Org to replace Markdown, executable code samples, etc. Literate programming. Attachments.
  • 0:29:34 Org tables
  • 0:30:11 Literate programming, technical notes
  • 0:30:49 Links
  • 0:31:54 Keeping all your notes, reference information, and so forth
  • 0:32:25 As a simple database
  • 0:34:59 Leo’s demo: Org task management, scheduling, linking, refiling, org-pomodoro (with sound and tweaks) and time reporting
  • 0:44:47 clock reports, clocktable
  • 0:46:09 C-u org-refile
  • 0:47:53 tagging strategies (prefixes, @ for contexts, etc.), search
  • 0:49:45 using org-drill
  • 0:51:19 scheduling vs using agendas
  • 0:51:34 org-habits for visualizing consistency
  • 0:54:34 erc and other IRC clients
  • 0:55:20 devices
  • 0:56:47 Other apps like Wunderlist – tasks to synchronize; work/home separation
  • 0:59:44 org-trello – close, but no cigar
  • 1:00:26 orgzly
  • 1:01:44 MobileOrg =( hasn’t been updated in a long time, etc.
  • 1:03:15 org-timer, meeting notes, colouring neato
  • 1:05:37 spacemacs as a way for Vi converts to try Emacs out
  • 1:06:47 keybindings – rebind lots, or not? a few frequently used ones? ErgoEmacs?
  • 1:10:23 hydra, key-chord, prefixes, see Sacha’s config for making key-chord more specific
  • 1:12:52 pair-programming? tmux and different modes?
  • 1:13:09 httpd, impatient-mode, multi-tty?
  • 1:18:04 deliberate practice and learning new things
  • 1:18:41 putting new things in a temporary section (1 month)
  • 1:19:02 reading blog posts (ex: planet.emacsen.org), reading configs, doc.norang.ca/org-mode.html
  • 1:21:29 cheat sheet
  • 1:22:14 another vote for a staging area (experimental.el)
  • 1:24:35 blogging is awesome, org2blog, etc.
  • 1:28:59 edebug is a great way to explore how things work
  • 1:31:39 watching over people’s shoulders when it comes to Emacs; Hangouts, virtual conference? Moderators are helpful. Handing a virtual microphone out – moderator names someone who can then check in, ask the question, etc. monitoring comments. (Could use help reaching out to speakers, organizing schedule, etc.)
  • 1:34:55 Speech interface: less navigation, just commands. Better speech integration – requires C, or can be done with Emacs Lisp? What you’re operating on is different. Intent (what has to happen) vs action (what to do), audio wizards with contextual grammar. Pretty far out still. Translating dictation-friendly names to code-friendly names and vice versa.
  • 1:42:02 Quick wins: accelerators, focusing on intent
  • 1:44:19 Context
  • 1:46:03 LaTeX for math notes? Export to LaTeX or HTML with images, inline images. LyX if you need WYSIWYG? Snippets can help you work at a higher level (instead of memorizing a lot)
  • 1:48:52 Alternative keyboard layouts and keybindings; also, typing less (abbreviations, expansions, thinking, etc.), Kinesis
  • 1:53:57 Speech recognition. Saying things again instead of editing.
  • 1:58:06 Suggestions – more Org workflows, chatting leading up to the next Hangout, asking for help

Text chat:

Philip Stark 8:04 PM This one?
Cameron Desautels 8:04 PM yup
Howard Abrams 8:04 PM Yes!
Cameron Desautels 8:04 PM If you guys haven’t seen this, we should all try to contribute and help out: https://github.com/sachac/emacsconf2015/blob/gh-pages/index.org
me 8:08 PM (Dan: I muted you because of background noise, but you can always unmute yourself when you’re ready to ask a question )
Jonathan Hill 8:10 PM does anybody know how to full screen the hang out? I guess I could just full-screen chrome on the mac..
me 8:10 PM If you reduce your font size a lot, the main screen gets bigger, but let me just ask Howard to increase his text scale
Leo Ufimtsev 8:11 PM Btw, I came across an aggregator module: https://github.com/tbanel/orgaggregate allows sql-like aggregation for tables
Jonathan Hill 8:14 PM Howard, I’ve got a sidebar question about how you’re jumping around with the cursor seemingly arbitrarily when you can find a convenient spot to answer.
me 8:15 PM He might not see the chat while screensharing, so maybe you can ask out loud when there’s a gap
Cameron Desautels 8:15 PM Could be the mouse Though it took me a minute to realize that.
me 8:16 PM By the way, the nifty bullets on the headings are probably because of org-bullets.el, if you like that effect
Jonathan Hill 8:16 PM his modeline is gorgeous
Cameron Desautels 8:16 PM That’s likely powerline. https://github.com/milkypostman/powerline (Busted!)
me 8:17 PM <laugh> Ooh, relative line numbers
Cameron Desautels 8:19 PM I think I have some bad lag. Sorry about that. My ISP is terrible.
jason Peak 8:22 PM hi everyone, sorry I’m late
Leo Ufimtsev 8:23 PM I don’t think I’ll have time to prepare org-aggregator in this hangout. I can show a org-dot-emacs setup thou. Or some stuff on time-reporting
me 8:23 PM No worries!
jason Peak 8:24 PM yep
Philip Stark 8:26 PM how do you increase the font quickly?
Cameron Desautels 8:26 PM C-x C-=
Philip Stark 8:26 PM and decrease would be C-x C–?
Cameron Desautels 8:27 PM (text-scale-adjust) yep!
Philip Stark 8:27 PM great, thanks.
Will Monroe 8:28 PM I spend most of my time in emacs in org-mode FWIW
Leo Ufimtsev 8:30 PM I’m on twice. My hangouts crashed on my phone, (black screen). @Sacha would you be able to kick out my 2nd instance? (the one with black screen, not the one with picture)
Leo Ufimtsev 8:31 PM thanks
jason Peak 8:31 PM Complete beginner – I like the idea of using org as an organically developing a database of My stuff
Cameron Desautels 8:32 PM Will: that’s interesting. Do you want to speak about your uses? You might have a unique perspective.
Jonathan Hill 8:32 PM WOW That’s absurdly powerful, S
Will Monroe 8:33 PM Cameron: I’d be glad to. Very much a beginner though! ; )
Cameron Desautels 8:33 PM There are other beginners here—it’s probably exactly what they’d need!
Philip Stark 8:34 PM yeah
Leo Ufimtsev 8:35 PM I could show some things if folks are interested.
Howard Abrams 8:40 PM Can’t believe that Chrome crashed and I lost the chat history… I’ll try to catch up.
Philip Stark 8:41 PM http://0paste.com/7356-3b5998af chat history so far.
Will Monroe 8:45 PM Is that ticking?
Howard Abrams 8:46 PM The problem with demonstrating org-mode is not revealing too much about ourselves. Good thing we’re among friends, eh?
Cameron Desautels 8:46 PM haha, indeed
Philip Stark 8:46 PM indeed. and on youtube :S
Cameron Desautels 8:46 PM Just don’t read the comments. :p
Will Monroe 8:46 PM Ha!
jason Peak 8:47 PM how many tags is too much ?
me 8:47 PM Heh. Should I redact this text chat segment from the show notes?
jason Peak 8:47 PM how many tags are too many ?
Will Monroe 8:48 PM That’s a great question.
jason Peak 8:48 PM loaded question; just curious about others no mic, Sacha thanks, Will!
Jonathan Hill 8:49 PM someone has a lot of static on their mic
me 8:50 PM That’s Leo’s background noise, oh well.
Philip Stark 8:50 PM That’s Leo, I think. he’s probably on a phone.
me 8:50 PM <laugh!>
jason Peak 8:51 PM I’ve wondered about namespacing tags; org does not support namespaces as part of its tag data structure, though? Maybe I need to make it ?!!
me 8:51 PM I recognize that technique
jason Peak 8:51 PM thank you! yes
me 8:51 PM jason: You can probably combine a tag with other search filters, like the category (file)
Cameron Desautels 8:52 PM org-habit
jason Peak 8:53 PM sacha: thank you, I will exploreit
me 8:53 PM
Cameron Desautels 8:54 PM His setup minds me of mine from a couple years back…these days I use org-mode less because I want my tasks and calendar notifications on all of my devices. *reminds me
Will Monroe 8:54 PM I would love to hear about simple setups for erc
Philip Stark 8:55 PM What is erc?
Will Monroe 8:55 PM or any other emacs irc client
Howard Abrams 8:56 PM I like circe.
Jonathan Hill 8:58 PM Cameron, what about a cloud-based sort or read-only solution like syncing your stuff on dropbox or google drive or something? s/sort or/sort of/
Cameron Desautels 8:59 PM Yeah, I’ve actually tried that sort of thing, exporting an HTML version of my list into Dropbox so I could read it on any of my devices.
Howard Abrams 8:59 PM http://goo.gl/uWjFye
Cameron Desautels 8:59 PM But I’d really like r/w access on multiple platforms.
Cameron Desautels 9:00 PM And more ability to filter on the go.
Leo Ufimtsev 9:01 PM Sorry about vacum cleaning noise >_<
jason Peak 9:01 PM trello is great! not sure about the integration
Cameron Desautels 9:02 PM http://www.orgzly.com/
Jonathan Hill 9:02 PM There’s MobileOrg in the App Store for IOS
Leo Ufimtsev 9:04 PM I was wondering about that. Nifty.
jason Peak 9:04 PM very nice!
Jonathan Hill 9:04 PM does org-calendar interface with Exchange calendar with a tolerable level of setup pain?
Will Monroe 9:05 PM Jonathan: someone recently released an interface for Exchange.
Cameron Desautels 9:05 PM https://github.com/syl20bnr/spacemacs
Will Monroe 9:06 PM It was announced on the listserv…can’t recall the name. But it was within the last few weeks.
Leo Ufimtsev 9:09 PM I use a different keyboard layout “Colemak” (like modern Dvorak). I found emacs was more friendly for non-standard keyboard layouts like colemak.
jason Peak 9:09 PM I’m back, but only to say goodbye for now; Sacha, everyone, thanks for all you’ve shared; I look forward to being back here soon…
Leo Ufimtsev 9:09 PM take care
Will Monroe 9:09 PM bye jason!
Will Monroe 9:14 PM Leo: thanks for mentioning that. I’ve wondered about other keyboard layouts being more /less appropriate for emacs too.
Howard Abrams 9:17 PM I need to run, but I wanted to point out this gist that I wrote today … https://gist.github.com/howardabrams/67d60458858f407a13bd
me 9:19 PM (I use Dvorak, and haven’t remapped extensively – I mostly keep things the same, although my key-chords are Dvorak-friendly)
Leo Ufimtsev 9:20 PM http://doc.norang.ca/org-mode.html http://emacs.stackexchange.com/ <<< very good place for asking for help http://www.emacswiki.org/emacs/OrgDotemacs << organise your .emacs in orgmode
Cameron Desautels 9:26 PM https://gist.github.com/camdez/c0f4c53ee847d5d1e2f0 ^ That’s how I add my experiments. Nothing fancy, but it gets the job done. If you use org-mode you could use capture targets for something similar.
Will Monroe 9:29 PM Thanks, Cameron! That’s a great idea. I like the idea of keeping new and potentially unstable functions in a separate file…and the idea of commenting on them could lead to a nice diary of sorts.
Cameron Desautels 9:30 PM Exactly. Plus I don’t commit this so I don’t have to be embarrassed about pushing gross code to my public config.
me 9:30 PM Cameron: Hah! That’s a great idea. Although maybe I’ll keep the weird area in my config, just because
Cameron Desautels 9:31 PM Oh, and I load it like this so someone can pull down my config and have it still work whether or not the file exists: (load camdez/experiments-file ‘no-error)
Will Monroe 9:34 PM Thanks!
Jonathan Hill 9:35 PM @cameron I didn’t know about ‘no-error. neat trick
Leo Ufimtsev 9:35 PM Use trello lol
Cameron Desautels 9:39 PM Jonathan: really that argument can be anything non-nil, I just use that symbol name so it’s self-explanatory.
Jonathan Hill 9:39 PM Thinking Miserable? was that the phrase?
Cameron Desautels 9:40 PM ¯\_(ツ)_/¯ I’m not entirely sure how we got here.
me 9:41 PM It’s a thread from near the beginning of the Hangout in a Q&A question (Eric said he might have something to demo), so it’s not quite connected to the conference conversation
Leo Ufimtsev 9:41 PM Is the voice recognition business cross-platform or specific to windows/mac/linux?
me 9:41 PM (Although we can continue that in the backchannel if people have ideas/suggestions)
Cameron Desautels 9:42 PM Ah! Ok. I must have missed the thread.
Eric S. Johansson 9:42 PM https://docs.google.com/drawings/d/1M-TzfRaSaAhFXQk1OmcmHNOaW31_7W_7q0bf8CAJqSw/edit
Leo Ufimtsev 9:46 PM Btw, does anyone use Emacs with Latex.>? for math notes..?
Will Monroe 9:50 PM Sacha (or anyone): this is a much earlier comment you made, but I’d be interested in hearing about your experience using the “standard” Emacs keybindings with Dvorak some time. Maybe during the next Emacs Meetup!
Jonathan Hill 9:54 PM /me E I gather that’s likely not what you actually said. I seem to have gotten stuck on it, though
Will Monroe 9:56 PM Thanks for the advice, everyone. This was the first time I’ve been able to interact with so many Emacs users. Hope to return next month and perhaps again at the possible conference. All the best!
Cameron Desautels 9:57 PM Take care, Will. Nice to meet you.
me 9:57 PM See you!
Leo Ufimtsev 9:57 PM See you next time :-=
Will Monroe 9:57 PM You too! Mabye next time I’ll have something to share.
Jonathan Hill 9:58 PM /me C let me get your info before we go if you don’t mind oops
  • Emtpy_Mind

    I really love org-timer outline you did. *Thumbs up*

    • Yeah, org-timer is pretty powerful! Now if only I can remember to do it more accurately instead of getting distracted by how interesting people’s tips are, which is why I usually end up a bit late… =) Practice, I guess!

  • Hi Sacha, first and foremost love your blog ! Wonderful !

    I would like to ask you if you know anything about emacs (plugin, environment) that can automate publishing on social media.

    To give you a bit of a context, I am, as an hobby (for the moment :), a generative artist, and I use Emacs both to code my art and also to document it (with Muse).

    Recently, with the multiplicity of social media sites I am using, I am struggling to have a proper workflow to publish my works. Up to now, I was using a python script to upload my work on Flickr, and IFTTT to propagate the upload on the other social media, but it seems sometimes not very reliable, and I would like to have more control.

    I then got the idea that Emacs could be the tool to improve this situation:
    – using muse to reference and describe my work
    – but also using custom attributes to schedule uploading on the different social media.

    What would you recommend ? Do you have the same kind of needs ? Would love to have your opinion and your feedback on this matter !

    Thanks in advance, and have a good day.

    • Hmmm… There are probably Twitter libraries for Python or other command-line tools you can use, so that might be an avenue to explore. The way I do it for my uploads is I have a NodeJS script that uploads files to Flickr for me (https://gist.github.com/sachac/9ba39ee64773b4a52fb8) and gives me Org-formatted links I can include in my outline. If I wanted it to automatically tweet on upload, I could probably use one of those Twitter libraries for NodeJS. Scheduling a later tweet or a follow-up tweet might be more complicated – maybe see if you can offload it to a service like Buffer or GrabInbox? – but if you felt like coding, you could probably do it with a cron job and a database.

      Hmm, you might like a little of my workflow, actually. My http://sachachua.com/dotemacs has some code (my/rename-scanned-cards, my/upload-scanned-cards – misnomers because I actually just draw the cards directly on the computer instead of scanning them in like I did before, but ah well) that processes files that match a certain filename pattern, uploads them, gets the URLs, finds the spot in my outline, and adds the links (automatically categorizing if possible). Then I grab some of those links and write a blog post using org2blog. I don’t use org2blog to upload the pictures, since I prefer the way WordPress handles it. Instead, my/org2blog-subtree looks for the local versions of the linked files, copies them to a directory, and makes it easier for me to drag and drop them into the WordPress edit screen.

      It might be easier to see it than imagine it… Would you like to join one of the Emacs Hangouts (next one: https://plus.google.com/events/ced8omhb7oum7pinb5661g7kuj0), or set up a separate time through http://sachachua.com/blog/meet ?

      • thanks a lot Sacha for your answer ! Appreciate ! I have actually progressed a bit from my last post, your blog reminded me of org mode …

        So I set up a .org file containing all my works, reach with attributes status (TODO, CANCELLED, DONE) and timestamp for each social media, that are checked cyclically (I am on windows, so no cron for me :( ) by a Tcl script, and triggers when needed python scripts to upload to on the different social sites (only my WordPress site and twitter for the moment, but Flickr and Tumblr should be ok).

        I automatically update this .org file when I want to publish a new work, by using a Emacs command.

        I will read the pointers you just gave to me, org2blog seems interesting !

        Thanks again for your support, and your blog !

        • That sounds awesome. =) I hope you’ll consider demoing it at one of these Emacs Hangouts!

          • Thank you Sacha ! Will have to work a lot to have something decent to show… BTW, a small picture to share the end result :) Cheers !