What’s wrong with just script(1) to record:
script script.log
which makes a script of everything typed and displayed. Which you can then play back via:
while read line; do echo ${line}; sleep 1; done < script.log
Tweak the parameter to sleep(1) for replay speed :)
Indeed, script is great, and ubiquitous. script usually (depending on the version) also has options to record and playback everything, including timing. (scriptreplay under Linux, script -p under FreeBSD.)
Didn’t know about -r option to script(1), at least from BSD, to record. And -p option, to play back.
Very cool!
Thanks :)
[Comment removed by author]
I am a heavy org-mode user too, one feature I use a lot is capture templates, actually. I have one for taking meeting notes, another for recording project decisions, and another for any arbitrary notes I think are worth remembering.
The one thing I really dislike about org-mode is that I could never find a decent CLI app for it. Sometimes I just wanna query from the command line without firing up emacs. If someone has a decent utility to talk to org-mode files without org-mode, please please send it my way.
This might seem a bit obvious but the best support for org-mode is always going to be within Emacs. So why not write whatever is it that you’re after as a eshell/emacs script that you run from the command line?
I’ve alliased vi to emacsclient -t it launches an emacs server on the first call the next call will open it almost instantaneously. Perhaps it would be good enough for you.
Some suggestions to make this easier:
grep -E '^\*+ TODO' has always been good for me as my “todo” alias.org-batch-agenda-csv can be used along with pulling your org-agenda-files and agenda config into a separate file, and you can use that with other CLI tools fairly easily.They’re only textfiles, I think state changes are the hard part without emacs
I think the beginning of your last sentence is really the key for me. “They’re only text files”. I can script the hell out of those, as it turns out. Onwards!
Seriously though, one of my main cases is to have a way to accumulate notes easily. I always have an emacs instance running too. I think my problem might abstract itself away, in the end.
what kinds of queries? you can always run emacs with a one off command against a file. alias that in your shell.
see:
https://www.emacswiki.org/emacs/BatchMode
https://emacs.stackexchange.com/questions/18111/query-the-org-agenda-from-the-commandline#18119
you could also just do a simple ag or grep search as org files are all just text depending on what you want to do.
I love org-mode and consistently feel like I’ve barely scratched the surface. You can start with a really simple workflow and build it out as you see fit. Occasionally I end up in a yak shave, like trying to sync with google calendar or jira or some other part of the outside world, but yeah emacs + org-mode + (some file syncing service) has served me well.
I also use org-mode with deft.
My ~/.deft is a symlink to a folder in my iCloud drive so my notes are always sync and saved.
Furthermore I also append .gpg to the file name so my notes are encrypted with my gpg.
Org-mode is also what I use. I’ve tried many different tools, but come back to org-mode each time - it’s worth learning emacs basics just for org-mode. For example, I love how I can get a myriad of different views and reports on how I spend my time.
Here is an example clock report from a few weeks ago. (The far-right column, unlabeled, is actually a custom calculation, my estimated hourly-rate multiplied by how much time I spent on the task. I use this to estimate how “valuable” a task is. It’s not a perfect metric, but I find it’s better than just time-spent on a task.)
I try to put everything in org-mode, and the more I do so, the more organized I get and the more I get done. Like (I think) Peter Drucker said “what gets measured, gets managed.” Org-mode is my manager-self, so my engineer-self can actually get work done without worrying about which work is important.
Maybe I will seem like a jerk but my opinion is this is an expensive project with little to gain. Not really worth the effort spent. But prove me wrong and I’ll be happy for you.
Not really worth the effort spent. But prove me wrong and I’ll be happy for you.
Wilfred mentioned it in his presentation that while porting Emacs C source to Rust, he found bugs, fixed them and in turn was given Emacs commit access.
Those are good things, but the cost benefit still does not make sense to me.
For the cost of many hours of time you get:
You can’t actually say what they get out of it because what you get out of it isn’t necessarily the same.
Time preferences vary according to each individual.
I suppose I should have worded it “doesn’t make sense for me”.
I actually mean well by being this critical. I’ve lost lots of time and other things to projects like this and in the end it was not worth it. Programmers often don’t value time as much as they should.
Programmers often don’t value time as much as they should.
Given my previous comment, I think it should be clear that I reject this notion because I fundamentally disagree with its premise: that there is some gold standard on what time preferences should be.
Whether spending time on projects like this was worth it or not is completely a matter of perspective. Both successes and failures can be valuable. For example, my time preferences at $work are tuned completely differently than my time preferences at home. At work, I (generally) can’t afford to take a 2 week diversion to read a couple research papers to figure out what the best of the best is, primarily because the solution we know how to build today satisfies our immediate business need for it. But at home, I have no deadlines and my only real constraint is the number of days that I live. Therefore, if I want to spend 5 years rewriting a piece of software, there’s nothing inherently wrong or mystical about that.
All you need to do is acknowledge that my time preferences are different than yours. It might help to consider opportunity cost. For example, this week, I can either go home and work on my pet project (which maybe you think is a giant waste of time) or maybe I could go sit on the couch and watch Game of Thrones. Is that less of a waste of time? Or more? How do you know without knowing my own personal time preferences?
In my experience, telling people that what they’re working on has no or little benefit can’t possibly end well. The very fact that they’re working on it means they chose to do that at the expense of every other thing that they could do with their time. So they must see some value in it. If you want to mean well and you think there’s a lesson you can teach about time preferences, then it might help to ask them what they’re hoping to gain by working on this project. In my experience, most people understand that sometimes working on a thing is just fun because they like building stuff, and something about porting an old piece of software might just catch their fancy. I’d wager that most of these projects die and fizzle away to obscurity, and you might think, “Hah! Told ya so!” But, no, in fact, you didn’t. Because I still enjoyed my time working on the project, and I achieved the goal I wanted: to have fun. In other cases, the project is so much fun that other people have fun working on it with you. And it evolves. And guess what? So do your goals. The project becomes more than just something to scratch an itch, it becomes something that solves problems for other people too.
It certainly does. This can be said about almost any exploratory or porting project and these ones have at least made the effort to write a lot about why they thing its a worthwhile endeavor.
Even if the project goes nowhere, the Rust community gains a lot from this, as making this kind of porting work possible is a core target of the language. They will hit all the things we haven’t foreseen.
I didn’t see any measurable objectives for the port. The closest thing to a justification is better thread safety. Which may be a problem, but I wasn’t aware of it, and have no way to measure if the work was successful.
Listing the good things about rust and the good things about Emacs is not a good justification for Emacs in rust.
I guess the real reason is to have fun, though that motivation is maybe one of the most flimsy to base a lasting project on.
For example, exploration is explicitely mentioned:
By forking, we can explore new development approaches. We can use a pull request workflow with integrated CI.
It mentions that maintained forks of emacs are not unusual:
Forking is a longstanding tradition in the Emacs community for trying different approaches. Notable Emacs forks include XEmacs, Guile Emacs, and emacs-jit.
There’s a measurable objective: Emacs, written in Rust. That might be simple, but is quite enough.
I also wouldn’t discredit fun here. Lots of projects started as fun and got somewhere when someone got hooked.
The author of the port gave a presentation on it, here is the transcript:
http://www.wilfred.me.uk/blog/2017/04/30/remacs-talk-transcript/
And here is the latest update of the project:
http://www.wilfred.me.uk/blog/2017/07/15/these-weeks-in-remacs-ii/
So, like a Zaurus?
Ha, I was thinking the same, except, you don’t import it from .jp and you build it yourself :)
Pretty cool project.
This is one of those things I was always embarrassed about explaining to Clojure newcomers. Of course it’s important to understand seqs and laziness, but the fact that there are many lists for which the list? predicate returns false for is just a stupid accident of history where a patch got merged carelessly without taking time to understand its implications, and people have tried to rationalize it retroactively.
stupid accident of history where a patch got merged carelessly without taking time to understand its implications, and people have tried to rationalize it retroactively.
Source?
Seems like the first appearance of seq? was:
commit 86dd57ad4e8d1cbe6a46a45d6eb5df5711373fe9
Author: Rich Hickey <richhickey@gmail.com>
Date: Mon Feb 4 16:57:57 2008 +0000
added string? symbol? map? vector? seq? nthrest
first cut at destructuring let (let*)
And the first appearance of list? was:
commit 3f0cef5142672ea1a9f881477135565b316a2796
Author: Rich Hickey <richhickey@gmail.com>
Date: Fri Sep 5 15:52:08 2008 +0000
added many predicates
My read from that is that list? was added later intentionally as a way to differentiate from seq?.
added many predicates
A former co-worker claimed this patch was submitted by him before the switch to git made it possible to attribute patches to non-committers.
I completely disagree with this and I wrote up a post coming at it from the design perspective to try to give a different mental model to explain why list? does what it does.
If you like this tool, you might like Ditaa
I have a day job at New Relic, in my off hours I’m working on improving my Brazilian Jiu Jitsu and making some electronic music. I’ve also been working on www.livingbjj.com – although it has been dormant for a while, I’m going to be committing to it this week.
Just wanted to say that we recently started using New Relic and it’s an amazing product. It confirmed various performance problems I suspected, and also highlighted a few really odd ones that were totally unexpected.
So, thanks!
Glad to hear it. I just started here a couple of months ago, and am still learning my way around the code, but it is nice to work on a product that people find useful.
Nice site @mattvanhorn!
Have you thought about adding some clubs that aren’t in the US?
How long have you been doing BJJ?
I started doing Muay Thai a month and a half ago and am probably going to transition to BJJ at a Gracie Barra facility at some point.
a little over 2 years now – got my blue belt last year, but I still suck. Trying to focus on fundamentals and getting my head in the right place to make progress. It’s a sport that can be rough on the ego, but that’s one of the reasons I love it – there’s such a good sense of accomplishment when something ‘clicks’ – a lot like programming.
I’m still at the point where my taste far surpasses my skill, and as such I am too embarrassed to put anything out there yet. I might upload a 10min DJ set or similar to youtube, but probably not much more than that for a while. My tastes run towards drum & bass, house & dubstep – Calyx, Dillinja, Bassnectar, Datsik, Photek, but also a lot of stuff in other genres.
Let’s see. The reasons have to do with Τεχ, with those character encodings that were used before utf8 took over, because it’s difficult to find on an unfamiliar keyboard, because of something to do with Spanish and Portuguese, and because people misprint it. Right? That’s a fair summary?
I don’t see any point in using tilde. Home directories on multuuser servers have disappeared.
But those are hilariously weak reasons to stop. Τεχ is dead, so are those character encodings, most typing is done on familiar keyboards, if I were to stop doing things because they’re difficult in some other language (even just ones I’ve half-learned for a vacation) I’d have to change both my first and last name, and as for misprints the tilde is a minor detail. Many pages today have more difficult URLs. The URL of the page you’re reading includes the character sequence “dlk8d1” and orgies of “…?…=…&q=…” are normal.
… what?
The first one has been around for a while, while the last two are sort of new and are attempts of taking the Internet back…
IME many university/college sites use this. FWIW my university uses this for course sites (e.g. http://___.ca/~csXXX/)