I just always run into the issue of my eshell buffer becoming huge and getting really slow. I’ve looked online for a way to tell emacs to “chop off” or “empty” the current buffer, with no luck.
I just always run into the issue of my eshell buffer becoming huge and getting really slow. I’ve looked online for a way to tell emacs to “chop off” or “empty” the current buffer, with no luck.
I’ve not been an eshell user until I read this article today (we’ll see if I stick with it), but the first thing I tried was the normal emacs editing commands: I selected some text and then hit C-w (kill-region). It did exactly the right thing.
… and then I discovered that it can only remove the output of a single command at a time. That’s really annoying.
It does look like killing & recreating the buffer does work. How very annoying; one would have thought that it’d have been fixed by now.
Benjamin C. Pierce, Types and Programming Languages, MIT Press.
That’s the one you want. I’m biased towards ML (vs Haskell), and I think the book is, too (it’s not a Haskell book). You can get all six, sure, but if you had to get one that’s the one.
+1 for this. I’m using TaPL in my PL class this quarter and it’s awesome. Super well written and ML is great for this class - the work involves writing successively more complex interpreters for successively more complex toy languages. We’re not sticking strictly to the book, but the sections our prof has pointed us to have been great.
I also highly recommend TAPL.
I’ve been recommended TAPL before, but seeing as this isnt a class thats strictly about type systems, I’d like to get a more general one and read TAPL later.
TAPL isn’t just about types neither - it’s types AND programming languages.
Practical Foundations for Programming Languages is also very good.
Finished 阿拉丁和神灯 (Aladdin and the Enchanted Lamp) today. This particular edition is intended to help primary school students in China learn English, but it works equally well for my purposes of learning Chinese :)
A lot of the other books mentioned here look really interesting; I always like these threads :)
Hi jcs,
In an attempt to preserve a community which has been a large part of our lives for a better part of the last few years, @angersock @pushcx @355e3b @alynpost and a few other of the IRC folks feel that we can take over running the website. @alynpost will be able to provide the hosting in Santa Clara, CA under pgrmr’s infrastructure. @pushcx will assume the role of head administrator and take over the domain name along with the Twitter account. @355e3b and @aleph- will take over the care and feeding of the Rails codebase.
We will not be making any moderation changes at this time—continuity is the important thing.
Our transition plan is as follows:
This is solely to ensure continued hosting and maintenance of the website, and a continuation of the community. Long-term, if the existing moderators wish to step down, @pushcx will be responsible for picking new candidates.
We would also like to thank you for all of your years of work put into this.
― #lobsters IRC regulars (aka the clawlateral committee)
And I assume @tedu will be in charge of the TLS certificates?
That sounds like a great plan, thanks for putting that together. I’ll feel better knowing the site will be managed by a group instead of falling all on one person.
Glad to see your approval. :)
/u/pushcx should be the central point of contact for the migration deets. We’ll keep the community updated!
Great! We’re really happy to step up and take good care of a community we love.
And, for the community: the first update is that I just started an email discussion with me, jcs, and alynpost to handle the technical details of the migration. I’ve migrated barnacl.es a few times, so I’m familiar with the procedure. My guess for a timeline is two weeks, but that’ll be adjusted if needed. I’ll post a comment in this thread when we’ve picked a date or there’s otherwise news.
I got back from talking to the people planning out the transition (aleph, push, socky, goodger, alyn, 355, irenes) on Mumble and IRC - they’ve all been wonderful people putting in their best to ensure the community will experience a smooth transition and avoid any turmoil.
Awesome, glad to have regulars and good people taking things over.
I would strongly recommend, and as a lobste.rs regular personally request that as a group you take a bit of time to define some basic agreement about decision making and ownership, so that it is clear between you all, and also to the community.
This is not a problem when there’s one guy in charge - it’s simple and clear and whether you agree with them or not you have consistency and stability (thanks @jcs !)
When there’s more than one, you need extremely strong value alignment and high levels of trust. If you guys have not known each other for 5+ years and can meet in the same bar to share a beer, you need to talk about and get down some basics. Who makes decisions, how, when; who is in control of the domain / hosting / features / community management.
Personally, I like the ‘benevolent dictator’ situation. It reduces ambiguity and facilitates short sharp clear decisions. Greater than 2 people needs work to define that recognises that you will eventually have a conflict, that some of you will come and go, and that there is no way you can all have perfect understanding of what each other wants for this community and what your values are.
Not doing this is a valid choice too; equal to commitment to cede to whoever has ‘root’ and control of the hosting and then domains if a conflict happens, and requiring proactively thinking about forking / commuity splits.
Is that what you’re thinking too @pushcx ?
That’s the current plan I’m executing on, yes. I want to continue this excellent community. Lobsters is in a good place: we have a healthy, active userbase, the code is stable, bug-free, and has little need for new features, and I’m on sabbatical so I have plenty of time and attention to devote to a smooth transition.
After the migration is complete I think it’s worth having a new meta thread about if we want to shift to a new community governance model. I’m comfortable being BD for years if not indefinitely, but there’s enough folks talking about community models that I want to have a dedicated discussion to explore examples and consider the option.
One of the guiding principles we talked about a lot during the clawlateral committee meeting was that we wanted to stray as little as possible from the existing governance structure for the time being–the site has done well in its current incarnation, and @pushcx is we believe a good steward to carry on the precedent set by @jcs.
The plan explicitly has redundancy in roles (think failover) for all important things you mentioned. We also tried to follow a principle of least-trust and a little bit of separation of powers for the failover folks, so that continuity of service is easy but forking and hijacking is hard.
[Comment removed by author]
So what moderation changes will you make later?
The first rule of intelligent tinkering is to keep all the pieces. When we say we will not be making any moderation changes at this time, we mean that we have no moderation changes to make. This group volunteered to operate lobste.rs because we like the way the website has been run. We will moderate with the same principles the site has always operated on. The moderation log is available for public inspection. Changes to the site, just like the one announced here, will be discussed in their own meta thread.
Thank you all. I work a lot, don’t know Rails, and don’t really have anything constructive to contribute, but this is far and away the best signal to noise community I’m involved with and I really appreciate it.
If throwing money at the problem will help the new maintainers along please consider setting something up and I’ll chip in.
Does this mean we can finally get an @angersock plushie?
You guys were my first thought when I saw this post lol. Thanks for your continued commitment to the community ~
Thanks @angersock, @pushcx, @355e3b, @alynpost!
I’d hate to see lobsters die!
I love how fast this plan was put together and I feel it will be in good hands. I was scared seeing this post and am excited to see the community I love will keep going and be in good hands!
I’ve recently dealt with source-to-source transformations, so this was a pleasure to read. Thanks for sharing.
Author is a great writer.
I would love to hear more about this code hotloading solution. Does anyone have any experience in this area? Seems really cool.
Short answer: Most code goes into a dylib, and the executable (which contains the main game loop) reloads the dylib in between iterations if it notices that the dylib has changed on disk.
I have been experimenting a little with that, especially around keeping a stable boundary that could vanish at runtime. Would you be open for bikeshedding somewhere else? Maybe users.rust-lang.org?
Continuing work on my SSH config parser - github.com/kevinburke/ssh_config. So far I’ve implemented wildcard match, the ability to find the first matching value for a key, the ability to write the file back to disk, with all comments still in place.
The ssh config spec has some weird parts, for example the parts where you can get it to run a local command via “Match exec”. Still not sure I want to implement that.
But if you want to help out or learn Go, I’ve posted the open issues here: https://github.com/kevinburke/ssh_config/issues
go has a really nice package for doing SSH, golang.org/x/crypto/ssh, but it doesn’t support loading any of the useful alias info that you get by typing e.g. “ssh prod” or whatever
Switching to Evil mode from vim. I’m new to emacs, so if anyone has any cool, obscure tips, please let me know!
Excited to get started with org-mode, email, and doc-view. Still viewing LaTeX’d pdfs in an external viewer.
Also, I’ve got two weeks of undergrad left, so I’m focusing on finishing my last couple assignments as well :P
If you need some help, I am in the spacemacs chat on gitter.im and they are generally friendly (can’t say the same for the emacs group on freenode when you mention anything about spacemacs.)
spacemacs is great stuff from a vimmer’s perspective and magit is phenomenal(seriously).
map jk to the evil-escape sequence and make it unordered to make it super easy and fast to escape from insert mode. just mash j and k at the same time when you are in insert mode and it escapes. here’s that code to put inside user-config inside your dotfile:
(setq evil-escape-key-sequence "jk")
(setq evil-escape-unordered-key-sequence t)
(setq evil-escape-excluded-major-modes '(dired-mode neotree-mode evil-visual-state help-mode ibuffer-mode))
(push 'visual evil-escape-excluded-states)
(push 'normal evil-escape-excluded-states)
The other one is making Q repeat the last macro you used. It’s so great that it really deserves to be in there too.
(evil-define-key '(normal) global-map (kbd "Q") (kbd "@@"))
I also find that scrolling inside the file can be better than ctrl-f or ctrl-b. I like ctrl-shift-j/k to do this but only half a page down at a time:
;; scroll a half page at a time
(evil-define-key '(normal) global-map (kbd "C-S-J") '(lambda () (interactive) (evil-scroll-down 0)))
(evil-define-key '(normal) global-map (kbd "C-S-K") '(lambda () (interactive) (evil-scroll-up 0)))
There are others but those are my favorites.
This might be a better fit over at https://barnacl.es/.
This seems mostly to be SEO navel-gazing, and I personally wouldn’t want to see more of it here.
I think it’s only a matter of time until I switch to evil mode. Gonna figure out how to get doc view to match zathurra keybindings.
And then I can have my entire work setup working cross platform…
Maybe I do want emacs to be my OS :P
That’s some great work! Do you have anything similar for Pathfinder, or do you think they’ll be mainly interchangable?
I’ve never played pathfinder, but I suspect they should be pretty interchangeable. Almost all the code is aesthetics - unfortunately we have to leave out game logic for copyright reasons.
And ty! There’s a handful of serial contributors now, all of whom deserve credit :)
IANAL, but the 3.5 OGL was very explicitly permissive on reuse of the game rules. Later editions being more restrictive was a substantial part of paizo splitting off with pathfinder.
I’ve been using it for pathfinder this afternoon. Very hackable, I have had no trouble getting pathfinder stat blocks (as a first time latex user).
This is really cool! I’ve previously used a markdown based module formatter called The Homebrewery. The results came out pretty well, but I will give this a shot when I get the DnD itch again.
I like this style for reading code. It’s seems to be a hell of a lot of work for the author, though.
This looks pretty interesting! I’ve been considering switching to Evil Mode, but maybe some of this material will convince me to stay for a bit longer :P
I do wonder about the usefulness of these sorts of projects overall: I’d argue that most developers would prefer to build their dev environments from the ground up, rather than inheriting a whole slew of keycommands they haven’t defined themselves (also, I like to avoid language-specific plugins for languages I do not use :P)
That being said, this looks very well thought out :)
Lazy loading gets rid of most of the issues around language specific plugins, but I guess what will make or break this is how well integrated the plugins are and how heavy this all ends up being. I like spacemacs, but it’s a little clunky. I’ll try this out when I have the time.
A lot of this went away for me when I started using emacs in daemon mode. Granted, it’s a pretty silly suggestion to run your text editor in a daemon. :)
I don’t think of spacemacs as an evironment as muich as I do a separate app that runs on the emacs vm
Did you ever play a “total conversion” mod for a game like Quake or Unreal or Half-Life? Usually the experience you get is mostly seamless and all new but then occasionally a little bit of the underlying game that it was based on pokes through and is visible - say a stray texture or something that was reused from the base game.
That’s kind of how using Spacemacs feels relative to Emacs. :)
I’ve been using vimrc for a while (because I lost my original setup) and I keep forgetting combos for things like opening NERDTree, etc… I think because I didn’t set them up myself, it didn’t sort of burn the keystrokes into memory. vimrc has too many things in it for me. This looks a bit more lean by comparison so I might actually try this out to put off setting up all my own again.
Edited: meant vimrc not vimawesome
Ha. Ha ha. HAHAHAHAHAHAHAHAHA.
It’d be less funny if this shit wasn’t the bane of my career. Some folks tried to warn others about adding new cruft, but we were ignored and/or mocked.
Anyways, a point the author doesn’t bring up that’s essential to proper vulgar-OOP (e.g., Enterpriesy heavily inheritance-based) stuff: there still is no way of properly handling visibility, for things like protected and private.
Seriously, look at this abortion. Look. at. it.
All that happy horseshit about modules and tree-shaking and all that, and I can’t make a for-real no-sharing private class method without resorting to acrobatics? Srsly?
[Comment removed by author]
Because this pig brings home the bacon.
I agree with you, mind you, but the problem is that the quality of this tool is actively declining as they keep adding shit to the language. And to the ecosystem. And to the tooling.
at the very least you can use typescript - it can at this point be considered not just viable but even “conservative” (in the “no one ever got fired for buying ibm” sense). it’s a strict improvement over javascript, can seamlessly consume existing javascript code, and the language itself is improving all the time (seriously, see the frequency of releases, each with an impressive changelog).
I’ll second the recommendation for TypeScript. I don’t feel as strongly about JS’s warts as angersock, but TypeScript definitely alleviates a lot of JavaScript’s worst problems.
This encouraging to hear. I hope this becomes more commonplace over time.
I’m hesitantly very-much-for the static typing revolution. (But iff it increases security and programmer productivity).
I’m not sure what kind of benefit you would get with having private/protected slots in a dynamic language. It’s mostly a compiler’s business to enforce access permissions, and there are plenty of transpilers with this kind of features to choose from.
I would have personally preferred JS to improve its core model and runtime so that transpilers can be implemented more efficiently, instead of adding sugar and complexity to a clunky language. Thank God, Webassembly is coming.
Even Python can hide things from you, which is super useful if you want to alter an object’s state without exposing all the plumbing.
Are you referring to the __ slot prefix? It’s not the same semantics as access protection, as in Python it will rewrite the slot name on assignment but it’s still going to be accessible afterwards (under the rewritten name). I’d be curious to know if you were thinking about another feature in Python that I’m not aware of.
It’s that but accessing the rewritten name is obfuscated enough that it’s hidden for all intents and purposes, at least in my book.
I’d tend to agree that complete protection is a hassle/impossible without a compiler, but IMO the Python solution blows at least JS out of the water.
Python, Perl, and Ruby don’t have private/protected either, so this is a thin argument to hang your hat on. There are much juicier targets when contemplating js flaws.
Do i know you? You remind me of someone i know. Also, to answer your closing question: no, you can’t. Not that I’m aware of.
Remember, this is 0.1, not 1.0. Its a point of reference, but not a stability promise in terms of API or a guarantee there are not bugs. Myrddin currently has a small userbase, so there will be issues.
Pull requests will be welcomed.
Yes. More or less, I stopped hitting compiler bugs when writing code. New users tend to find new bugs. As a result, this release was created to address the shortage of chaos monkeys.
That’s an incredible reason to hit a 0.1 release. Kudos to you for keeping this going for so long!
Of all the random programming projects on the internet, Myrddin is one of the few that I think about routinely. I’m really excited to see the QBE backend go in!
Actually, this makes me wonder whether I should target QBE over LLVM for my own personal project.
Congrats to Ori on a first release!
From a compiler / PL enthusiast perspective, Smalltalk seems really cool. I have the longer-term goal of writing an implementation eventually.
I wonder if the type theory crowd has formalized the operational semantics for a Smalltalk-like language.
Also, the domain name ‘redline.st’ is really cool.
lol in 2.7 one can already do this with list comphrensions: