1. 2

      I’ve heard a great deal of buzz and praise for this editor. I’ve got a couple decades’ experience with my current editor – is it good enough to warrant considering a switch?

      1. 3

        What do you love about your current editor?

        What do you dislike about it?

        What are the things your editor needs to provide that you aren’t willing to compromise on?

        1. 2

          It probably isn’t, but it’s maybe worth playing around with, just to see how it compares. It’s definitely the best behaved Electron app I’ve ever seen. It doesn’t compete with the Emacs operating system configurations, but it does compete for things like Textmate, Sublime, and the other smaller code-editors. It has VI bindings(via a plugin) that’s actually pretty good(and can use neovim under the hood!). I still don’t understand Microsoft’s motivation for writing this thing, but it’s nice that they dedicate a talented team to it.

          It’s very much still a work in progress, but it’s definitely usable.

          1. 3

            Here’s the story of how it was created[1]. It’s a nice, technical interview. However, the most important thing about this editor is that it marked an interesting shift in Microsoft’s culture. It appears that is the single most widely used open source product originating by MS.

            https://changelog.com/podcast/277

            1. 1

              Thanks for linking that show up.

          2. 2

            It’s worth a try. It’s pretty good. I went from vim to vscode mostly due to windows support issues. I often switch between operating systems, so having a portable editor matters.

            1. 1

              It’s pretty decent editor to try it out. I’ve personally given up because it’s just too slow :| The only scenario in which I tolerate slowness, is a heavy-weight IDE (e.g., IntelliJ family). For simple editing I’d rather check out sublime (it’s not gratis, but it’s pretty fast).

              1. 1

                It doesn’t have to be a hard switch, I for example switch between vim and vs-code depending on the language and task. And if there is some Java or Kotlin to code then I will use Intellij Idea, simply because it feels like the best tool for the job. See your text editors more like a tool in your toolbelt, you won’t drive in a screw with a hammer, won’t you? I see the text editors I use more like a tool in my toolbelt.

                1. 1

                  I do a similar thing. I’ve found emacs unbearable for java (the best solution I’ve seen is eclim which literally runs eclipse in the background), so I use intellij for that.

                  For python, emacs isn’t quite as bad as it is with java, but I’ve found pycharm to be much better.

                  Emacs really wins out with pretty much anything else, especially C/++ and lisps.

                  1. 1

                    VS Code has a very nice python module (i.e. good autocomplete and debugger), the author of which has been hired by MS to work on it full time. Not quite PyCharm-level yet but worth checking out if you’re using Code for other stuff.

              1. 1

                Hi all,

                I think as many of you know, I work at Wallaroo Labs. I wanted to thank folks from Lobste.rs who gave us feedback on our first Python API. Along with other folks from Hacker News and /r/python, y’all really helped validate ideas we had about how to improve our API. The feedback was awesome and we really appreciated.

                So many folks were generous with their time. Thanks again!

                1. 2

                  Are you looking to send emails lots of email from those domain or merely receive email at the domain like you would with something like gmail?

                  Basically I’m not sure if you are looking for a SendGrid/Mailgun type solution or Gmail type solution. I think based on your comment and the mention of Zoho, you mean to send and receive a few emails under a given domain.

                  1. 1

                    You are correct, I edited the question adding more detail.

                  1. 1

                    There was a MacOS security update waiting for me when I woke up this morning.

                    1. 1

                      That’s probably a fairly old one, as far as I can tell Apple has not issued a macOS security update since December 6th.

                      1. 1

                        I had no update yesterday.

                        shrug

                    1. 5

                      I’ve worked on a variety of improvements to Pony. The improvements have ranged from documentation, to CI process, to adding generalized runtime backpressure to Pony’s actor scheduling. That’s my “for fun” work that I do mostly on weekends.

                      My day job is working on Wallaroo. A stream processing engine (with Python and Go language bindings) that’s written in Pony. This year, we open sourced (under an open core model) Wallaroo.

                      It’s been a wild and crazy year.

                      1. 1

                        It’s good you open-sourced it since that might benefit Pony developers still trying to learn how to use the language for real-world apps. Tutorials and examples only go so far.

                      1. 3

                        I think I’m missing something here. A lot of the deficiencies for the simple examples he gives are pretty easily fixable. And his simple example is… not very simple.

                        If you cargo cult a Makefile from a rando Internet page, and you have a big hairy project, then, yeah, it will be ugly.

                        The only build system that has impressed me so far is Stack and Cargo, and they are confined to single language ecosystems. Perhaps a language agnostic build system is a better idea in theory than in practice?

                        1. 1

                          The only build system that has impressed me so far is Stack and Cargo, and they are confined to single language ecosystems. Perhaps a language agnostic build system is a better idea in theory than in practice?

                          Have you tried nix?

                          1. 1

                            I’m interested in what impressed you about Cargo and stack. If you have time to elaborate (details please!), I’d appreciate it.

                            I ask as a Pony core team member who is quite satisfied with make but very interested in what people like and dislike in the single language tools they use.

                            1. 1

                              One good lesson is to have two files for dependencies, unlike Python pip for example.

                              One file should be a compact list of direct dependencies. Version numbers are optional. Use that to specify. Should be in version control with your code.

                              Another file contains all (transitive hull) dependencies with exactly the version numbers which are used. Use that to make builds repeatable. You may or may not check this file into version control.

                              (Technically, It is not necessary to use two files, but it seems pragmatic)

                          1. 8

                            If you are interested in high performance computing, give Dragonfly BSD a look. Even if you don’t end up using it, you find a lot of “o hell yes i want that”.

                            1. 4

                              I find the definition the author is hinting at for “simple” to be odd.

                              1. 4

                                As far as I can tell, underneath the actor model Pony is feeding multiple native threads using a work stealing algorithm? Basically: does Pony have parallelism, and not just green threads?

                                And what is the story with frame pointers? I’d like to know if DTrace can be used on it.

                                1. 5

                                  There was actually a pretty interesting article posted the other about dtrace and Pony.

                                  https://lobste.rs/s/d5ndrg/dynamic_tracing_pony_python_program_with

                                  1. 3

                                    Yes, multiple native threads with a work stealing algorithm. Pony has parallelism.

                                    1. 3

                                      To build on doublec’s comment… there are no green threads in the Pony runtime.

                                      1. 1

                                        A few more questions, if you don’t mind. I wasn’t able to find answers to these with preliminary Googling:

                                        Are floats boxed in Pony? Does Pony support multidimensional arrays? Is the GC a copying collector, or do objects stay where they were allocated? How difficult would it be to create objects over existing data in memory (i.e. a mmapped file)? And does Pony use %rbp as a base pointer, or rely entirely on DWARF to figure out a stack frame?

                                        1. 2
                                          • Are floats boxed in Pony?

                                          It depends. A float could end up boxed but F32 and F64 are not boxed by default. https://www.ponylang.org/reference/pony-performance-cheatsheet/#boxing-machine-words

                                          • Does Pony support multidimensional arrays?

                                          You could design a class to do it, but there’s not builtin type for them. There’s a RFC process to can be used to add new features. https://github.com/ponylang/rfcs/

                                          • How difficult would it be to create objects over existing data in memory (i.e. a mmapped file)?

                                          It depends.

                                          You’d might need to have access to be able to operate on pointers to do it. This is currently limited to some builtin classes like String and Array. We are planning on adding a capability that would allow non-builtin classes to use Pointers within Pony (as compared to C-FFI).

                                          OTOH, you might be able to do it now. Really it depends on what you would need to do. If you could represent the memory mapped file as an Array, (which you probably can), then you should be able to leverage existing functionality to do what you want.

                                          • And does Pony use %rbp as a base pointer, or rely entirely on DWARF to figure out a stack frame?

                                          That I can’t answer. I’ve never gone looking. Pony uses LLVM. I’ve never had a need to check out what is happening yet.

                                  1. 3

                                    Working on documentation for the Go API that we are going to be releasing for Wallaroo.

                                    1. 1

                                      Anyone got a comparison of this against Spanner and/or CochroachDB? It sounds most similar to their market.

                                      1. 6

                                        The consistency model is rather different. Check out the “just in time consistency” video on the website. It’s a good intro. Also AntidoteDB due to its ability to do eventually consistency where possible makes it a good DB when you have cluster members join and leave. For example, with IOT devices that phone home from time to time or mobile devices. Neither of those are good use cases for Spanner or Cockroach.

                                        1. 1

                                          Thanks!

                                      1. 3

                                        Visual studio code is amazing. There are tons of reasons here, but even without them I think the consistent performance in both Windows and Mac says a lot.

                                        1. 10

                                          Consistent performance on Windows, Mac, AND LINUX! I’ve been using it for Go Development on arch for a while and it’s extremely good. To the point where I’m thinking of switching from Sublime Text entirely. I was really resistant to trying it (M$) but it’s probably the nicest GUI Editor/semi-IDE-thing that I’ve used.

                                          1. 4

                                            Does it have good vim emulation yet? Haven’t tried it as my main editor in a few months now.

                                            1. 4

                                              It’s not perfect (my comparison is evil-mode in Emacs which is close to perfect) but it’s good enough. Basic editing/movement is great, but it runs into trouble with things like multiple-cursor support (it tries to implement block-visual mode with multiple cursors and sometimes gets into a…situation).

                                              1. 5

                                                heretical statement: i prefer evil-mode in Emacs to Vim.

                                                1. 2

                                                  Oh, me too, and maybe I should have mentioned I do miss Spacemacs terribly in VS Code. But most people wouldn’t file that under “vim emulation”. :) [Edit: and also it occurs to me that macros run really, really slow, so I switch back to Emacs for complex editing.]

                                                  1. 1

                                                    Same

                                              2. 3

                                                It has “fine” vim emulation, but not good enough to feel natural when I’m pairing with my coworker who uses it.

                                                1. 2

                                                  It has some okay keystroke emulation, but I miss a lot of the more niche features of vim, like page marks, bufdo, and good macros. I realize it’s all of the stuff that makes vim “vim” to me, and not just modal editing.

                                            1. 2

                                              I find the “like clockwork” hours phrasing to be interesting. That in my mind that is not good work life balance. Part of good balance for me is flexible hours so I can attend to my other de as needed during “traditional” work hours.

                                              I don’t see commits coming it at any hour as a sign of poor work life balance. It depends on other factors. Maybe working Saturday is better for balance for some employees.

                                              1. 2

                                                As someone who reused that phrase in a positive sense, I like the regiment of having a consistent schedule. If I frequently changed my working hours, then my feathers would become extremely ruffled and that would not be a good balance for me. Some of my co-workers do a more flexible schedule, and hey, it works for them and that’s cool. But it ain’t for me.

                                                With that said, I do of course need to re-arrange my schedule occasionally. Whether it’s working from home because I need to be here to manage typical home maintenance stuff or changing my hours a bit because I need to take my cat to the vet, then that’s all OK. But I largely see it as atypical. But yeah, it’s good that those sorts of things are totally fine with where I work.

                                                1. 2

                                                  Definitely depends on the person. “Clockwork” is an important thing for me. I schedule my time very tightly and am frustrated by unplanned variations. I avoid pickup meetings like the plague, I generally work 9-5 with only pre-planned exceptions (releases and so on). If I do have to work past normal hours for emergency/unplanned reasons, I generally make sure to come in late/leave early the next day. I have sold my employer 40h/week with periodic, small exceptions, I don’t intend to give any more away for free.

                                                  There are other folks at $work though who happily work odd hours, there was one guy doing the 4/10 week (4, 10h days with 3 days of weekend) for a while. I considered it, but ultimately preferred the orderly, more common schedule. Diff’rent Strokes, and so on.

                                                1. 12

                                                  I have 2 MacBook Pros from the 2012 to 2014 era. Love them both. Awesome hardware. I wish I could say the same for the software. Each version of OSX has gotten progressively worse for me as a developer since the high point that was Snow Leopard.

                                                  Several folks I know using Sierra and High Sierra are dealing with regular kernel panics.

                                                  I’ve started to contemplate what my next laptop and OS are going to be for work. Sometimes I harbor fantasies of buying another used MacBook Pro and installing something like Dragonfly or FreeBSD on it.

                                                  In the end, I’m probably going to settle for something like a Thinkpad that I’m “ok” with and some Linux distro.

                                                  Leaving aside “consumer” apps I need, there’s enough software like Zoom et al that support windows, Mac, and windows that I need for work that are going to end up being limiting factors.

                                                  1. 2

                                                    I am currently writing this on a mid-2014 MBP with High Sierra and the most recent updates have been grim. I have a lot of hanging applications, even Apple applications like GarageBand, and have to restart a couple times a day to keep things usable.

                                                    It was a great computer for a long time, but the software recently has been terrible.

                                                    1. 1

                                                      I feel like that is a theme in my life.

                                                      I accidentally upgraded by iPhone 7 to iOS 11 and now its mostly unusable. The level of lag opening a new application is nuts. Lyft as an example takes 60 to 90 seconds from when I open to it being usable.

                                                      Earlier today I opened the Messages app and wanted to take a picture and text it. It took almost 2 minutes for the message app to open, for me to be able to select the person I wanted to message, for that to open and then for the camera to come up. By the time it was ready, the thing I wanted to take a photo of was gone.

                                                      It feels like when I stopped using Apple products in the 90s again except now they have a lot more market share and they arent dealing with a signature laptop bursting into flames.

                                                    2. 1

                                                      I had a 2011 macbook pro with the 15” screen that I thought could never be topped. Couldn’t justify the increased price for the 2016/2017 model so I went for a thinkpad t460p and loaded kbuntu on it, I’m very happy with the machine in general but there are a few irritances such as photos being synced between my laptop & iPhone no longer happens, its just not as integrated which I do miss.

                                                      1. 1

                                                        Had a 2012 non-Retina (but the higher resolution variant) MBP until earlier this year. Had replaced the HDD with an SSD years ago, and upgraded even that to 1TB. Replaced the WiFi/Bluetooth card once it died. Took out the combo drive. Heavy, thick, but still worked great.

                                                        I ended up finally swapping out for the T470s. Slim, higher resolution, NVMe, Linux-compatible hardware.

                                                      1. 4

                                                        Anyone here using Envoy? Suggestion of background material that includes:

                                                        The hard problem(s) it solves for you? The drawbacks of using Envoy that you accept because of the help in solving those hard problems?

                                                        1. 5

                                                          Personally I like to find bugs that either exist in an issue tracker or exist as errors in production logs and then figure out how the bug could be happening. It gives me a concrete goal for my exploration.

                                                          At one job I joined, I tried to solve 1 bug that appeared as an error in Splunk each morning. I’d show up to work 90 minutes early and try to knock one out. Over the year that I did that, I ended up in a large amount of the code base and learned a ton of business rules.

                                                          In order to solve a lot of the bugs, I had to find and meet the folks who were experts in that area of code, and the business rules that applied to it. In the process, I got to know the QA team better, the product team better and developers on teams other than mine a lot better as well.

                                                          1. 1

                                                            Agreed. Try to fix some bugs. It gives you a concrete goal and lets you focus your questions (which you should not be afraid to ask).

                                                            I started working with the GCC toolchain code base this year and it’s the most daunting codebase I’ve ever worked with. I dove in trying to fix things after just reading some sources and it helped considerably. Having that goal really focuses the effort.

                                                            Also, it pays to understand how the software gets built, if it’s of that nature. You tend to learn a lot about dependencies that way.

                                                          1. 1

                                                            Love this. Thanks for submitting @pushcx.

                                                            1. 3

                                                              I wrote a small amount of pony, and it seems like an incredibly well designed language. The biggest downside to me was the awkwardness of having to fully unwind the stack to yield an actor, but for event driven programs it worked well, and it gives huge satisfaction knowing the code that compiles won’t crash.

                                                              1. 2

                                                                I’ve read alot of the pony docs because I find it very interesting. But one high level question I have is does pony have any guarantees that are better than what you’d get with rust’s ownership system?

                                                                Because as cool as pony is, I’m trying to figure out how to allocate my free time and rust still seems to fill the “try out new languages with new ideas” bucket since due to a race-free type system combined with the funding and community that makes me think I’ll be able to use it at a job without feeling like I’ll leave the company high and dry in 12 months.

                                                                1. 5

                                                                  The guarantees are pretty similar but the two languages approach them from very different angles.

                                                                  I’ve found Pony’s reference capabilities to be pretty easy to reason about from the time I picked it up. I can’t say the same for Rust’s ownership system. That said, in the end you can accomplish the same goals with them. How you get there is going to be rather different.

                                                                  1. 3

                                                                    combining ‘rust like’ guarantees with a (fast actor local) garbage collector seems like a winning combination to me.

                                                                1. 13

                                                                  I enjoyed reading this, Pony seems like a useful language in the situations they describe.

                                                                  As a meta thought: I would love to read some “we tried X and it was a big mistake” posts. They are kind of hard to write though because you inevitably get the 100s of “you’re using X wrong” comments. I could write a handful of posts why choosing Python or Java ended up being a poor decision but the slew of responses might just be more pain than it’s worth.

                                                                  But on another topic, @SeanTAllen, do you have any comparison for your choice of Pony vs Erlang? I can see a few things you want that Erlang would not be great for, for example the FFI is kind of awkward. If you haven’t looked at Erlang deeply enough to say, that’s fine too, there are a lot more options to evaluate out there than time to evaluate them.

                                                                  1. 12

                                                                    I love Erlang. It was definitely a consideration. We weren’t sure at the time how we were going to support different languages. One strike against Erlang was that uncertainy. The big strike though was talking about what we wanted to do performance wise with friends from Basho. They expressed doubt that we could get Erlang to do what we wanted. That was really what made us look elsewhere.

                                                                    Looking back now, the interfacing with other languages is what would have caused us the most pain with Erlang.

                                                                    Pony hasn’t been without pain for us. Really, we didn’t choose between Erlang and Pony. Our final decision was between Pony and using something like C/C++/Rust and writing a runtime ourselves.

                                                                    On the other note, I’d love to see “we tried X and it was a big mistake” posts as well. Along with all the caveats that you mentioned. Some of my favorite offline conversations with colleagues are discussing scenarios where we used a great tool in a way it wasn’t good for and what we learned from the experience.

                                                                    1. 2

                                                                      Do you know how well supported FreeBSD is with pony? I don’t see it in pkg but the source looks like it has capsacium support which is interesting to see.

                                                                      1. 4

                                                                        Best effort.

                                                                        As in, there’s no CI for it. We don’t do anything to intentionally break it. But as far as I know, not a lot of people are using it on FreeBSD so breakage is always possible.

                                                                        It’s definitely a “build from source” proposition at the moment. I’m very hopeful that someone can take on a more active Pony/FreeBSD role.

                                                                        1. 2

                                                                          Cool, I’m playing with it now. No promises but I’ve verified all the tests pass :)