1. 3

    I think some of it is becaue image-based development does not have good collaborative tools

    1. 5

      That’s always been a bit dubious (Smalltak has had changesets since at least the late 80s), but it’s been truly false for a long time. Squeak had Monticello, VisualWorks had ENVY and StORE, and Pharo just uses Git straight-up these days. I’m not arguing images don’t have other issues with them, but collaboration isn’t one of them.

      1. 1

        completely fair point. I didn’t only mean source code control, I’m also thinking that the developer process, incrementally manipulating a running image isn’t very easily mapped onto distributed working, maybe never was?

        e.g. are there workflows/tools where multiple developers push changes to a central image ? Because that’s kind of the mapping there - if I’m writing C, I am diffing text files, and compiling the changed ones into new objects, linking everything, running tests - this extends quite naturally to continous integration, and automation for collaborators.

        When I’m working on an image style system, I’m updating a running thing typically, usually interactively testing as I go. Ideall collaboration flow for this kind of thing would be to pull small upstream changes directly into my image, switch branches without resetting the world, this kind of thing.

        I don’t know very much about the detail of your counter-examples, but I did not mean to suggest it was impossible, so much as ungainly, which was my understanding.

        1. 1

          Sorry for responding so late; I know others won’t see this, but thought you deserved a response.

          I’m also thinking that the developer process, incrementally manipulating a running image isn’t very easily mapped onto distributed working, maybe never was?

          You do kind of have to decide if you’re gonna work in the classic Smalltalk mold, or if you’re going to work in a modern mold; that’s fair. It’s just that the modern mold is really common, to the point that relatively few people sculpt an app out of a Smalltalk image (which is closer to the original intent) than write Smalltalk code that really is the program.

          are there workflows/tools where multiple developers push changes to a central image ?

          This is in fact exactly how at least GNU Smalltalk and Pharo (which is to Smalltalk what Racket is to Scheme) do. E.g., this is Pharo’s Jenkins server, which works by just building off master constantly, just as any other project would do. The only difference is that, rather than diffing or thinking in terms of files, you think in terms of changes to classes and methods. Behind the scenes, this is converted into files using a tool called Iceberg.

          The only place this system calls down is if you’re building constants directly in the image, rather than in code. E.g., if I were truly building a Smalltalk program in a traditional Smalltalk way, I might just read an image into a variable and then keep the variable around. That’s obviously not going to have a meaningful source representation; there might be a class variable called SendImage, but the contents it happens to have in my image won’t be serialized out. Instead, I’d have to have the discipline to store the source image alongside the code in the repository, and then have a class method called something like initializeImages that set SendImage to the contents of that image file. In practice, this isn’t that difficult to do, and tools like CI can easily catch when you mess up.

          Whether this is working against or with the image system is debatable. I’ve used several image systems (Common Lisp and Factor being two big ones) that don’t suffer “the image problem”, but tools in the ilk of Smalltalk or Self are obviously different beasts.

          1. 1

            Thanks for the reply! I wish I had more smalltalk experience. Maybe some day.

      2. 2

        Smalltalk does have Monticello and Metacello. I’ve heard good things about them.

      1. 6

        I own a number of thinkpads, also have a bench power supply than can source 5a @ 20v, so I can do some analysis next week by removing the battery and looking at the current consumption under various configurations and workloads.

        The power management system on modern laptops should be able track power usage with a fairly fine granularity.

        1. 3

          yes, actual measurement would be much more helpful than my anecdata. Although, even if I’ve just enabled more accurate estimate reporting, I’ll take it.

          1. 2

            I don’t have a thinkpad any more, but won’t most modern laptops’ battery management system give you a measurement of battery current draw when they’re disconnected from a charger? On my current Dell it’s at /sys/class/power_supply/BAT0/current_now. PowerTop shows this metric as well, I think.

            I would expect this could be as accurate as measuring the average draw with a bench supply, if not more accurate (the BMS needs a reasonably accurate measurement of battery discharge current for “gas gauge” state of charge estimation.)

            1. 2

              I’ll take a look the next time I boot up my x220, I had planned on removing the battery and only operate it off the bench supply so load wouldn’t be conflated with any power going directly to charging.

              1. 2

                Yeah, I got that - it’s a good idea, I just thought this option might also be useful to know about (has the similar-but-opposite problem that the battery’s internal current meter is not useful if external power is connected to the battery).

          1. 3

            My newer linux systems use ip and ifconfig docker0 down doesn’t change anything. What’s the equivalent command with ip ?

            1. 2

              ip link set down docker0 i think

            1. 5

              I think there’s something else going on.

              I’ve had this same problem, used the same solution, and several extra watts moved to some other device or task. After doing this repeatedly, I’ve seen the screen or sometimes the Ethernet claim to use four watts. The power usage is still there, but moves.

              I’ve seen this on four Thinkpad models I own. Either powertop is confused or something is masquerading as another device or process.

              Maybe the Intel management engine is mining Bitcoin?

              1. 3

                heh. The accounting is definitely obscure, but the reported drain drop for me is consistent. Early days though.

              1. 2

                i don’t feel I have any understanding about setv variable scoping

                Although the author doesn’t say so explicitly, from an outsiders perspective, this seems to be hylangs biggest negative, it doesnt support let. It was removed from the language after several attempts to implement it correctly.

                1. 1

                  Yes, that’s a succinct way of putting it. Indeed, when I am using a lisp, I usually am aware of dynamic / lexical scope to some degree, but like I say I am not really sure where hy is putting them. I’m sure it’s all documented and demonstrable of course.

                1. 6

                  I decided to spend a year away from Twitter. I hope this will nudge me into more side projects and experiments with solo web publishing

                  1. 4

                    I found quitting twitter was pretty easy once I uninstalled the app from my phone. Desktop wise I still click on the occasional link but I no longer consume timelines, and haven’t posted in over a year.

                    Good luck!

                  1. 2

                    This is perfect timing. I was just wondering about how to add webmention to my mostly static site.

                    1. 2

                      Glad to be of service <3

                    1. 20

                      The strangest thing about this whole story is finding an Emacs user who hasn’t rebound caps lock to ctrl.

                      1. 7

                        (author of the post here) I have tried caps as a ctrl, but I don’t like it, I think it’s almost as much of an emacs pinky trigger as ctrl on the outside! with my scheme I have a ctrl either side of the space bar, where I can key them easily with alternating thumbs, which works well for me.

                        On this particular laptop, I think I am going to end up making caps lock another modifier (probably hyper) to use as a prefix command key. I usually have that as Ins, but that’s another key that’s disappeared on this generation.

                        1. 2

                          Well to be fair I have ctrl on the thumbs too on my primary keyboard, (https://atreus.technomancy.us/i/layout.svg) but I could never make it stick on hilariously-oversized-spacebar keyboards.

                          1. 3

                            Your keyboard is awesome, and makes more ergonomic and practical sense, but my thing is all about working on a laptop, portably. I don’t like to use external peripherals, so I try and find the best compromise with whatever is built in. Pretty ridiculous, I know, but I kind of enjoy the constraints.

                            1. 1

                              Thanks! I typically use it with my laptop (sitting on top of the laptop with the internal keyboard disabled) but it’s definitely not for everyone.

                        2. 1

                          Caps Lock can be used for other things like switching between keyboard maps, for example: Romaji and Hiragana, QWERTY and DVORAK, etc.

                          1. 1

                            Not really. I tried it for a while, but never found the convenience worth the hassle of setting it up.

                            And then it’s just one more thing making it look like I can’t type when I use a new computer.