1. 3

    An emulator for my own made up ISA, Dvx.

    github.com/deavmi/Dvx

    1. 4

      What will happen next? Are we going to get a z80 inside our phones? Why not a 6502? Hell, I would love to run C64 basic interpreter natively inside my phone…. No really, I’m not criticizing Apple or Intel for using an x86 core, I don’t really care, but…my PERSONAL opinion is that something is going really wrong in this world.

      lol? Nothing wrong with either x86 or ARM… I’m curious why the author feels this way.

      1. 10

        x86 is typically considered a difficult ISA to make small silicon for due to its complexity. Previous attempts at small x86 processor products (notably the Intel Gallileo) have ended up very expensive.

        Albeit I believe that x86 processors don’t run the instructions directly, instead they break down each instruct into simpler (RISCier) micro-ops that are run [citation needed]. There’s jokes about the idea of making an x86 processor run ARM or other ISAs natively, if only you could write your own firmware.

        1. 7

          IIRC pretty much all (big) processors use micro-ops, even if the ISA is already RISCy

          1. 2

            Here’s a nice blog entry by ryg. The last paragraph is quite interesting:

            And by the way, I used x86 as an example here, but don’t believe for a second the same thing doesn’t apply to, say, the ARM chip in your phone. Modern ARM chips support multiple encodings and also rank over 1000 instructions […]

            MIPS is similar as well, it has SIMD, historic baggage (invented in ’85), etc., and even this.

            SPARC has ‘tagged add’ etc. instructions, made specifially with certain language runtimes in mind.

            The recent PPC 600 blog series made it clear that PPC, considered a RISC, isn’t very ‘reduced’ either.

            I don’t know much about RISC-V, but v2.2 of the spec tells me extensions for SIMD (P), “dynamically translated languages” (J), etc. exist, or will soon.

            The only ‘simple’ ISAs left are probably 6502, AVR and maybe SuperH (I don’t know much about this one either).

            EDIT: funnily, Z80 is considered CISC, while those chips are considerably simpler than many of these ‘R’ISCs.

            1. 9

              RISC is more about fixed instruction word length and no direct-memory operations than reduction of features.

              1. 2

                SuperH was used in Dreamcast. Still sold by Renesas in multiple versions for embedded sector.

                1. 2

                  There is J Core - a free and open SuperH CPU. See http://0pf.org/j-core.html and http://j-core.org/

          2. 5

            Kind of weird why he is complaining about x86 processors and their complexity in manufacturing if he is an end user? Like he ain’t fabbin’ them.

            1. 1

              Yeah, it would cost him more to get an 8-bitter out of an old node than buy a single Xeon. Probably.

          1. 3

            7 bit bytes for the win.

            1. 2

              Last year’s DEFCON CTF used an architecture with 9 bit bytes.

            1. 7

              It’s great to see OSM has come so far. I used to dismiss it out of hand in favor of Google Maps, but nowadays that’s a big mistake.

              I didn’t know Mapbox was OSM, but it makes sense. I’ve only used it a little bit, but damn Mapbox made everything so easy. With it I visualized thousands of routes all over the globe in just a couple of hours coding / debugging. It’s absolutely my first choice for anything map-related I need to do in the future.

              1. 2

                And contributing to OSM is extremely easy too.

              1. 7

                I still don’t get why sending patches via email is preferable over creating git remotes and pulling changes from them, the latter seems to fit better into git’s decentralized model. Even if you have scripts to create emails out of patches and apply them, it still seems clunky to try to recreate git’s state over text.

                1. 8

                  The main advantage of email is that you can do code review over email, too - you can chop up the patch and reply to specific lines of code inline and carry on the discussion same way you would any other email thread.

                  For bigger changes, though, it doesn’t scale. For that, we have git request-pull:

                  https://www.git-scm.com/docs/git-request-pull

                  I intend to facilitate both approaches on sr.ht.

                  1. 3

                    Email simplifies things.

                    You don’t need to know git ;)

                  2. 4

                    Even if you have scripts to create emails out of patches and apply them, it still seems clunky to try to recreate git’s state over text.

                    Git was made with email workflows in mind from the start. To send email, git helps with git format-patch and git am can receive patches via email. The patch format, for that matter, was also made with email in mind.

                  1. 0

                    Redmine anyone.

                    Trust me. I like this too. But I guess I am a Redmine convert.

                    1. 17

                      If you want to suggest redmine, that’s ace. It’s good to know about the alternatives - but please back it up with why you think it’s a strong competitor. If you’re supporting it here, you probably have insight worth sharing with us.

                      1. 1

                        Well it has a nicer interface I think. Has support for plugins from what I remember and yeah. May as well check out their site. I used it a while ago, so I cannoy remember much.

                    1. 2

                      For me it is really anything I guess. I prefer text thouth. Videos are shit.

                      1. 4

                        Isn’t it great to be able to open a chat conversation with your virtual machine and say things like “How are you today?” or “Hey, please reboot”?

                        I have to admit, this sentence is extremely uncompelling.

                        1. 1

                          Dude chatting to a VM is amazing okay

                          1. 1

                            XD. I knwo that does sound stupid, but other than that the management interface is nice hence why I posted.

                            1. 2

                              Oh, it’s fine to post :D They could just sell it better, I think.

                              1. 1

                                Oh yes, of course. It really isn’t a good selling point :).

                          1. 11

                            I also like the converse: If you’re writing a program, use a programming language!

                            1. 6

                              The contrapositive is even better. If you are not using a programming language then you are not writing a program.

                              1. 1

                                I think you flipped an “ought” to an “is” when you took the contrapositive.

                                1. 1

                                  Is my language incorrect?

                                  Okay will this then be more clear?

                                  If not using prog. Lang. => not writing program

                                  1. 2

                                    The original statements say how things ought to be, your statements are about how the world is. The proper contrapositive would be “if you aren’t using a programming language, it isn’t true that you should be writing a program.” “if it’s not the case that you should be using a programming language, you aren’t writing a program.”

                                2. 0

                                  Not true for what most people think of as “programming languages” (or, if you prefer, many programming languages are not obviously so).

                              1. 2

                                PPP and Freshmeat. The kids today have no idea!

                                Generally not a huge fan of the style here, there are things you still can’t do as easily on “Linux” as you can on an Apple computer, like html design.

                                Could be that fewer people cared about home computing those 20 years ago, and Apple wasn’t big shit and smart phones didn’t exist, so more people were intrigued and at least tried a distro or two.

                                But try showing a regular Joe of today LibreOffice, and what it does to Word documents, and apologize by talking about how cool FOSS is as an ideology, and how there is no one “Linux”. See what kind of enlightenment that leads to.

                                1. 3

                                  But try showing a regular Joe of today LibreOffice, and what it does to Word documents, and apologize by talking about how cool FOSS is as an ideology, and how there is no one “Linux”.

                                  True. In the meanwhile, the vast majority of worldwide smartphone users have a small Linux machine in their pockets. If they have a home router or smart TV it is probably powered by Linux as well. Of course, they don’t even know it is Linux.

                                  Many traditional Linux distributions and desktops have for a long time skated to where the puck was (trying to replicate Windows and/or macOS) rather than to where the puck was going (appliance-like computers, where the OS is just a technical detail). Plus some occasional cargo-culting (if we turn our desktop environment into a tablet-fest, the users will come).

                                  I hope that the traditional Linux desktop community has learned from this and realized that their primary market consists of developers and power-users, and will stop butchering the Linux workstation experience for simplicity. The masses of users will never come, that window of opportunity has closed after around 2007 when Vista was a flop and smartphones and tables were not widely used yet. Unfortunately, it seems like some environments still do things like removing menu bars [1] or system tray icons.

                                  [1] The GNOME HIG literally states Menu bars increase the vertical footprint of an application’s user interface, introduce a large number of disclosure points, and function as a fixed set of inflexible options. For these reasons, header bars and header bar menus are generally recommended over menu bars,

                                  1. 1

                                    PPP?

                                    1. 4

                                      I presume that is Point-to-Point-Protocol, commonly used to provide TCP/IP networking over a dial-up modem link.

                                      UPDATE: yeah the article confirms that.

                                      1. 1

                                        Ah thought it might have been something like that. Thanks for clearing that up :).

                                  1. 2

                                    I’ve investigated Archipel a few times when looking for VM solutions for my home server. It has a really appealing GUI, and for a while was sponsored by the maintainer’s employer. However, it hasn’t seen active development for a few years. At this point the only web presence is Cloudflare’s cache!

                                    Take a look at the Github issues to see what I mean:

                                    https://github.com/ArchipelProject/Archipel/issues/1205#issuecomment-390453860

                                    https://github.com/ArchipelProject/Archipel/issues/1182#issuecomment-252516526

                                    1. 1

                                      True, I will keep that in mind when looking for such tools.

                                      Can you recommend any other web management tools?

                                      1. 2

                                        Take a look at Proxmox, which is a web GUI over KVM virtualization and LXC “fat” containers: https://www.proxmox.com/en/proxmox-ve

                                        I never installed either of these systems, and eventually settled on FreeBSD + ZFS + ezjail for my isolation needs. VMs were overkill, and I use my workstation if I want to test out a different OS. I am considering a rebuild on Linux + ZFSOnLinux + Kubernetes now that ZFS on Linux is more mature, and I use Kubernetes at work.

                                        1. 1

                                          Ah. Yes Proxmox. I think I will settle on that. Thanks.

                                          It would be nice to see archipel go further but hey this is great!

                                    1. 3

                                      I’ve gotten quite the response over the past day, and we’ve jumped from 3 members to 9. I’ve decided that once I notice this post is no longer at the top of the Lobsters front page, I’m going to stop the “open signup” here. Thank you everybody for the input, and special thanks to @lindalap:matrix.org for helping (and continuing to help) with the ToS and privacy policy to stay compliant with <insert regulation here>.

                                      I have to say, this is much bigger and better of a reception than I expected. I guess I have something on my hands here then!

                                      1. -1

                                        Dude I appreciate this a lot hey. As a comp sci student this is pretty useful.

                                      1. 2

                                        I actually liked the Gigablast one. I have never seen such a simple interface that isn’t terrible.

                                        1. 2

                                          On this query, we’re at No 7 instead of No 1. We have to do better SEO to reach more Gigablast users. ;)

                                          1. -1

                                            Oh yes we do ;)

                                          2. 2

                                            Gigablast is faster than google.com at returning the number one result for the query “alphabet”, and it’s the same result. UPDATE: still faster, by less of a margin, when I use TLS 1.2. Who runs this gigablast thing?! :)

                                            1. 0

                                              It is called Gigabit for a reason.

                                          1. 6

                                            The internet search experience suffered a setback when the major browsers abandoned the separate search box for the combined address/search box. Only FireFox retains this feature, where your default search engine is the first choice in a list.

                                            In the days before Alta Vista became better than Yahoo, and then Google crushed all other search options, there were meta-search engines that combined, filtered, and formatted results from several search engines of your choice. IIRC Magellan was one of these. I’ve toyed with the idea of reviving this idea for my own use. Google and Bing are pretty similar, but not perfectly similar, and provide different results depending on whether you are signed-in or anonymous. DDG usually provides different enough results to be important. There’s a lot of room for innovation in meta-search.

                                            Finally there are still all sorts of specialized search options. In this category I would start with Amazon and Wikipedia. There are also sites like noodle.com, specializing in education related searches.

                                            1. 5

                                              DuckduckGo is my go to search.

                                              It is simple and doesn’t have the Google bloat to it and thise smart searches like where you can generate a md5 hash for example in a search query or do number system conversions is pretty cool

                                              1. 2

                                                Duckduckgo owns, its my configured default search on all devices. When i need something specific from Google, i use the bang feature for google, !g.

                                                1. 2

                                                  I never knew that was a bang available, my word. Is there a !b for bing too? (Update: there is wow)

                                                2. 0

                                                  So essengially DDG has a great interface and is actually way more useful.

                                                  1. 4

                                                    Let’s be honest, though: the results are not as good as Google for many/most queries.

                                                    1. 3

                                                      I don’t know. I switched to DDG at home and I’ve always been able to find what I’m looking for. I still use Google at work so I’m able to compare and contrast. About the only place where Google is better (in my opinion) is in image search, and that may be due to how Google displays them vs. DDG.

                                                      1. 4

                                                        Here’s a concrete example. Let’s say I’m trying to remember the name of the project that integrates Rust with Elixir NIFs.

                                                        First result for me for the query “elixir rust” on Google is the project in question: https://github.com/hansihe/rustler

                                                        After scrolling through three pages of DDG results, that project doesn’t seem to be listed or referenced at all, and there are several Japanese and Chinese-language results despite the fact that I have my location set to “United States”. I will forgive all the results about guitar strings since DDG doesn’t have tracking data to determine that I’m probably not interested in those (although the usage of the word “rust” in those results is in the term “anti-rust” which seems like a bad result for my query).

                                                        That query is admittedly obtuse, but that’s what I’ve become accustomed to using with Google. These results feel generally characteristic of my experience using DDG. I end up using the !g command a lot rather than trying to figure out how to reframe my query in a way that DDG will understand.

                                                        1. 2

                                                          I think you did that wrong. You were specifically interested in NIF but left that key word off. Even Lobsters search engine, which is often really off for me, gets to Rustler in the first search when I use these: elixir rust nif. Typing it into DDG like this gives me Rustler at Page 1, Result 2.

                                                          Just remember these high-volume, low-cost engines are pretty dumb when not backed by a company the size of Google or Microsoft. You gotta tell them the words most likely to appear together. “NIF” was critical in that search. Also, remember that you can use quotes around a word if you know for sure it will appear and minus in front of one to eliminate bogus results. Put “site:” in front if you’re pretty sure which place or places you might have seen it. Another trick is thinking of other ways to say something that authors might use. These tricks 1990’s-early2000’s searches get me the easy finds I submit here.

                                                          1. 0

                                                            I disagree that “NIF” was essential to that query. There are a fair number of articles and forum posts on Google about the Rustler library. It’s one of the primary contexts that those two languages would be discussed together. DDG has only one of those results as far as I see. Why? Even if I wasn’t looking for Rustler specifcally, I should see discussions of how those two languages can be integrated if I search for them together.

                                                            1. 2

                                                              There are a fair number of pages where Elixir and Rust will show up without Rustler, too. Especially all the posts about new languages. NIF is definitely a keyword because you’re wanting a NIF library specifically instead of a page about Rust and Elixir without NIF. It’s a credit to Google’s algorithms that it can make the extra connection to Rustler pushing it on the top.

                                                              That doesn’t mean I expect it or any other search engine to be that smart. So, I still put every key word in to get consistently accurate results. Out of curiosity, I ran your keywords to see what it produces. The results on the top suck. DuckDuckGo is usually way better than that in my daily use. However, instead of three pages in, DuckDuckGo has Rustler on page 1, result 6. Takes about 1 second after hitting enter to get to it. Maybe your search was bad luck or something.

                                                          2. 1

                                                            I did exactly that search and found it at the 5th position.

                                                            While “elixir rust github” put it at 1st position. Maybe you have some filters? I have it set to “All Regions”.

                                                        2. 2

                                                          Google has so many repeated results for me that I feel they have worse quality for most of my queries than ddg or startpage. Maybe I’ve done something wrong and gotten myself into a weird bubble, but these days I find myself using Google less and less.

                                                          1. 1

                                                            Guess so. I have been using it at uni though for a long time and gotten atleast what I needed.

                                                            But I admit that googs has more in their indexes.

                                                      2. 5

                                                        Searx is a fairly nice meta search engine.

                                                        1. 4

                                                          Finally there are still all sorts of specialized search options. In this category I would start with Amazon and Wikipedia.

                                                          DuckDuckGo has a feature called “bangs” that let you access them. Overview here. Even if not using DDG, their list might be a nice reference of what to include in a new, search engine.

                                                          1. 1

                                                            the URL bar itself now performs a search when you put something that’s not a URL in it

                                                            1. 1

                                                              I thought that was clear. What I like about the old style dedicated search box is it that its is so easy to switch between search engines.

                                                              1. 3

                                                                I believe that you can use multiple search engines in an omnibar by assigning each search engine a keyword, and typing that keyword (and then space) before your search.

                                                                1. 1

                                                                  Or if you use DuckDuckGo, you can use !bangs to pivot to another search engine or something else.

                                                                2. 2

                                                                  With keyword searching (a feature I first used in Opera, and which is definitely present in Firefox; I can’t speak to any other browsers), it’s “so easy” to switch between search engines—in fact, far easier than with a separate search box. I type “g nephropidae” to search Google, or “w nephropidae” for Wikipedia, “i nephropidae” for image search, or even “deb nephropidae” for Debian package search (there’s no results for that one).

                                                                  1. 2

                                                                    This is not completely obvious from the user experience. Without visual cues, much available functionality is effectively hidden. You must have either taken the initiative to research this, someone told you, or you stumbled upon it some other way. This also effectively requires you to have CLI-like commands memorized, the exact opposite of what GUIs purport to do. And adding new search engines? That’s non-obvious.

                                                                    1. 1

                                                                      I use YubNub to get large library of such keywords that is the same on every device.

                                                              1. 3

                                                                The first rule of asymptote club: you can talk about asymptote club, but you can’t join.

                                                                1. 1

                                                                  Lol. You would need to be a familiar lobster (reminds me of Jordan B Peterson), anyways.

                                                                1. 7

                                                                  Sweet. There is a similar community here https://github.com/hashbang/hashbang. They provide free shell accounts and I’m told their infrastructure runs on a combination of VPSes/dedicated servers.

                                                                  1. 6

                                                                    I’m going to start this message the same as I am the Disroot one:

                                                                    I’ve heard of them, and I’m pretty sure I have an account! It’s great that there are multiple communities in this space (Hashbang, Disroot, SDF, etc.), it fits perfectly into my philosophy that there should be many communities rather than single organizations serving tons of people.

                                                                    It looks like Hashbang is pretty narrow-focused, though. They have shell, chat, and mail, whereas Asymptote’s focus is anything FLOSS that might be useful to a community, so much wider. Both philosophies have their merits, and I don’t believe that one is better than the other, but they’re certainly different.

                                                                    1. 1

                                                                      I haven’t heard of hashbang.

                                                                      The ones I am familiar with are freeshell and tilde.town.

                                                                      1. 3

                                                                        tilde.town is less of a free shell/hosting provider and more of a social space, though. Asymptote/Hashbang/Disroot are different things to tilde.town.

                                                                    1. 3

                                                                      Side note I wanted to add. I know the developer and there are still some features needing to be added such as the functionality for it to sync articles with other NNTP servers which is obviously quite common (e.g. Usenet).

                                                                      1. 2

                                                                        There are a few NNTP-NNTP sync tools available in the meantime.

                                                                        1. 2

                                                                          Such as? I am interested to find out what is available as setting something up like that is on my todo list.

                                                                          1. 3

                                                                            https://github.com/dustin/nntpsucka is a useful start. If I remember some of the other solutions I’ll update you - most are quite old and my memory fails me at the moment.

                                                                            1. 2

                                                                              Awesome. Thanks. I will try this out probably tonight then.

                                                                              I will setup two wendezelNNTPds and then nntpsuckas in both I assume (for bidirectional sync (I haven’t read how it works yet, gonna click the link now)).

                                                                              1. 1

                                                                                It seems the most classic solution (suck and rpost) has also been recently updated - https://github.com/lazarus-pkgs/suck

                                                                      1. 1

                                                                        Is there one for OneDrive though?

                                                                        1. 3

                                                                          I’ll definitely be following this as I’ve been interested in running an nntp server for a few months now. I’ve briefly looked into older software like leafnode, but there is some abiguity when it comes to things like IPv6 support. It’s feels very similar to shoehornimg old BBS software into a more modern environment.

                                                                          1. 3

                                                                            Yeah I looked at leafnode but hell these old protocols confuse the hell out of me. I know I should read more into them.

                                                                            Well actually the protocol ain’t bad, the implmentations are confusing as hell.

                                                                            Anyways, I digress, I looked at leafnode but it wanted me to setup more stuff (I think a mail server, Idk, I don’t know how to do that). WendzeNNTPd was amazingly easy to setup and get running and working with posts coming in and out. It is amazing.

                                                                          1. 2

                                                                            Opened the blog and saw the box about how dynamic typed languages are easier to use (as in what people think).

                                                                            Dynamically typed languages don’t enforce any type checking and hence anything could happen. I love static typing and have never felt underpowered whilst using it.

                                                                            1. 13

                                                                              There’s a spectrum here. I’m guessing that when you use static typing, you’re probably not using SPARK, Dafny, or Liquid Haskell. Compare to them, most statlangs are pretty weak in what they can actually tell you. In those languages, you can also statically verify behavior, like “this procedure always terminates” or “this function is always called with a nonempty list and returns the same list, but sorted.”

                                                                              The problem is that they’re a lot harder to use. It’s the standard expressiveness vs legibility tradeoff here: the more valid expressions you can write in a language, the fewer properties they all share in common. Statically-typed languages have more expressiveness and less legibility than formally verifiable languages, and dynlangs have more expressiveness and less legibility than statlangs. In return for losing static typechecking, you get the ability to leverage the complete runtime language for defining types. For example, in Python you can define the type of all classes with an odd number of letters in their name, and in J you can define the obverse (quasi-inverse) of a function.

                                                                              I think most popular dynamics end up too expressive with not enough legibility. My justification is how rapidly gradual type-checkers are spreading. It implies that the parts of the dynlangs being used aren’t the bits that require the crazy expressivity dynamic typing gives you, so it’s worth adding legibility. But there’s still a lot space left to explore.

                                                                              1. 14

                                                                                Opposite experience here. I’ve worked with many kinds of statically typed languages, including Java, Haskell, and Scala for nearly a decade. I ultimately found that static typing introduces a lot of mental overhead in practice, and limits the way you’re able to express yourself. Many dynamic patterns such as Ring middleware become difficult in static languages. I’ve been working with Clojure about 8 years now, and I don’t miss types in the slightest. If I did, I would’ve gone back to a typed language a long time ago.

                                                                                Dynamic typing tends to be problematic in imperative/OO languages. One problem is that the data is mutable, and you pass things around by reference. Even if you knew the shape of the data originally, there’s no way to tell whether it’s been changed elsewhere via side effects. The other problem is that OO encourages proliferation of types in your code. Keeping track of that quickly gets out of hand.

                                                                                What I find to be of highest importance is the ability to reason about parts of the application in isolation, and types don’t provide much help in that regard. When you have shared mutable state, it becomes impossible to track it in your head as application size grows. Knowing the types of the data does not reduce the complexity of understanding how different parts of the application affect its overall state.

                                                                                My experience is that immutability plays a far bigger role than types in addressing this problem. Immutability as the default makes it natural to structure applications using independent components. This indirectly helps with the problem of tracking types in large applications as well. You don’t need to track types across your entire application, and you’re able to do local reasoning within the scope of each component. Meanwhile, you make bigger components by composing smaller ones together, and you only need to know the types at the level of composition which is the public API for the components.

                                                                                REPL driven development also plays a big role in the workflow. Any code I write, I evaluate in the REPL straight from the editor. The REPL has the full application state, so I have access to things like database connections, queues, etc. I can even connect to the REPL in production. So, say I’m writing a function to get some data from the database, I’ll write the code, and run it to see exactly the shape of the data that I have. Then I might write a function to transform it, and so on. At each step I know exactly what my data is and what my code is doing.

                                                                                Where I typically care about having a formalism is at component boundaries. Spec provides a much better way to do that than types. The main reason being that it focuses on ensuring semantic correctness. For example, consider a sort function. The types can tell me that I passed in a collection of a particular type and I got a collection of the same type back. However, what I really want to know is that the collection contains the same elements, and that they’re in order. This is difficult to express using most type systems out there, while trivial to do using Spec.