Threads for bigs

  1. 6

    ergonomics is another reason to use desktop computers, if you actually care about looking at a monitor at the correct height and typing on an input device that won’t kill your wrists, desktops make a lot more sense. The laptops I use at work are just really crappy portable desktops, at least, how I use them.

    1. 4

      Yeah, due to my history w/ RSI, using a laptop for any extended duration (> 2 hours or so) is really not viable. When you give up the goal of “mobile computing” it really stops making sense having a laptop. I have one that I bring with me on work trips and whatnot (granted, those won’t be happening for a while). My desktop was cheap to build, is incredibly powerful (which is great when working in compiled environments), upgradeable at actual consumer prices. As you mentioned, I also invested in building a desktop that is ergonomic and comfortable. The whole thing was (desktop, peripherals, monitor, desk) was less than the price of a premium Macbook.

      I think laptops are great and have an important place for a majority of users, but it’s worth raising that the alternatives are real and viable.

      1. 2

        Most laptops have a way to plug in an external monitor, keyboard, and mouse. Then your desktop computer and your portable computer are the same thing.

        In fact, despite being a computer nerd, I decided years ago that I would probably not buy another desktop computer. The take up too much space, they are loud, power-hungry, space heaters and can’t be easily shoved into a backpack in one second. The only thing that would have kept me from moving in this direction is the expandability of the typical tower. But these days, practically all accessories are USB. And I’m not a gamer or bitcoin miner, so I don’t need a high-end CPU or GPU with liquid cooling.

      1. 17

        Thank you so much for this. Those were the days. When software aimed to the general crowds were making huge leaps in all fronts at insane speed. So much nostalgia, a couple of my favourite skins are featured at the top.

        The MP3 explosion in 98-99 was crazy. While online video got into our lives incrementally over the course of two decades, the introduction of mp3 was metheoric. In mater of months, almost anyone could download, store or even produce sound files just with their computer. Allo of this at a perfectly fine quality taking up 10 times less disk space than with previous formats.

        A couple of years after windows xp is released, polished with all the features the user wanted: an image viewer, the reference web browser at the time, a media player and an email client. What happened? Why did the industry stop giving the people what they want and need? Where, when and why did we lost track?

        Winamp is still to this day my favourite piece of software. Fast, light, pragmatic, feature rich, resource efficient, configurable. It really whips the llama’s ass!

        1. 1

          It really was fantastic! How would one go about making winamp-inspired software today I wonder… What UI library or toolkit (if any) makes it possible (if not easy) to make such fun, lightweight, powerful interfaces? The playfulness is sorely missed in todays desktop software.

          1. 1

            I think this kind of creative play is still possible in web development if you’re willing to eschew all the performance-optimizing complexity, deep state graph management, and avoidance of “ugly” hacks like table layouts and single-browser CSS that big FE frameworks + UI toolkits bring with them. Just throw down some markup and styling and bang on some JS until it all hangs together. (Odds are even without strict adherence to web standards your random demo will still work in mainstream browsers 5-10 years hence, which is more than you can say for most desktop app “skins”.)

            Beyond that, some experiments with one of the WebGL+Canvas-targeting immediate-mode UI toolkits popular around these parts and /r/rust might be just the thing the get the creativity flowing if you want an even more open sandbox. :)

            1. 1

              I do use tables for layout, but otherwise agree. My sites work in mosaic, Netscape, ie, and modern chrome too

            2. 1

              FWIW I still use Winamp on Windows and Audacious, an OSS clone, on Linux! Audacious is pretty nice, though it has a perplexing implementation that relies heavily on dbus.

              1. 1

                XMMS could be skinned, probably x11amp as well. To answer your question I guess Gtk offers this ability

            1. 3

              Any particular reason to share this here? I don’t see anything particularly news-worthy in the release notes of this point-release.

              1. 9

                Although it’s a x.y.1 release, it includes a lot of new features.

                I’ve been using the new Bits* data types to write a more accurate mysql wrapper around libmysqlclient at https://github.com/thomasdziedzic/mysql-idris2/

                Also the new :browse and :doc interpreter commands are super useful for exploration.

                1. 1

                  Any idea why it’s not 0.3.0 then?

                  1. 2

                    I guess they’ve made a quick release for the Scottish Summer School on Programming Languages and Verification http://www.macs.hw.ac.uk/splv/ to get the new proof/program search heuristics in.

                2. 3

                  Since Idris 2 is in its infancy, the language and tools are taking massive leaps forward right now. This release adds some critical features (as mentioned by sibling comment) to the REPL and gets the IDE Mode support almost to par, if not at par with Idris 1. Really exciting, as I’m working on two projects in Idris 2 right now and have been craving better editor integration. Idris is a language that truly comes alive with the editor integration.

                  1. 2

                    I think the more exciting part of this release is the code generation/search, specifically the :psnext and :gdnext REPL commands and their IDE mode counterparts.

                  1. 2

                    Spent a lot of time reading Type-Driven Development in Idris to buff up my skills from experienced Haskeller using Idris as Haskell+ to actually understanding the proving mechanisms in Idris 2. Going back to finish basic functionality in my libgit2 bindings now that I’ve cleared my hurdle!

                    1. 1

                      While it’s a little jarring to see loads of languages with few distinguishing features being born, it’s really cool to me that the tooling and state of the art for creating typed, compiled languages has gotten to the point where this is possible. More than anything, having a diversity of languages gives us an opportunity to explore more ideas and see what works / what is convenient for users.

                      The concept of regions described here is quite cool, and vaguely reminiscent of Pony’s memory/execution model. Really well written post!

                      1. 1

                        While it’s a little jarring to see loads of languages with few distinguishing features being born

                        I think Vale seems has more distinguishing features than most, so this seems like a poor language to make this comment on.

                        The concept of regions described here is quite cool, and vaguely reminiscent of Pony’s memory/execution model.

                        As far as I know Pony does not have anything resembling to regions, not sure what you are referring to.

                        1. 1

                          Wasn’t meant to be a discouraging comment. I think it seems cool and as I said I strongly believe experimentation like this drives the state of the art forward. There are just a lot of new imperative systems languages lately! I should have stuck with the purely positive language, and I apologize for that, as the last thing 2020 needs is excess snark.

                          Regarding Pony, I was referring to its Reference Capabilities, which are type tags attached to data that can govern how it’s used, eg read only. Again, mentioning Pony is not a slight. The read only immutable regions reminded me of this. I think it’s a great idea.

                          The article’s breakdown of Rust vs Vale was particularly interesting and makes a point of highlighting this feature.

                      1. 2

                        Working on libgit2 bindings for Idris 2 in support of the Elba package manager for Idris which is currently being rewritten in Idris 2 (from an initial implementation in Rust).

                        1. 2

                          Links describing the project elba from the README are broken :/

                          1. 1

                            Yeah, unfortunately it seems as though the project was near-derelict for a while, but is regaining some steam. I’m new to it, myself, but it seems to be the only major alternative to using Nix in the works for Idris, so I’m eager to dig in and learn! Libgit2 bindings seemed like something that would be useful to the community no matter what!

                            1. 1

                              Yeah, I was supposing nix would be involved but how? Does elba re-use the nix build daemon or does re-use the ideas from nix from scratch?

                              Naive question, how libgit2 will help?

                              1. 2

                                Sorry, if I wasn’t clear! Elba is an alternative to using Nix to manage Idris packages, so Nix isn’t involved in this solution. libgit2 would enable it to clone repositories from Git remotes.

                        1. 1

                          Awesome, huge fan of the idea of merging hw/sw testing efforts under unified infrastructure. This seems particularly useful for basic unit tests where these timing diagrams are often used as the specification for interfaces. Now one could report timing diagram coverage!

                          Is there any public info on what kind of hardware janestreet is building?

                          1. 2

                            Low latency trading systems.

                            1. 1

                              I’m guessing microwave transmitters.

                            1. 1

                              It’s been interesting going through my own shift in opinion about Apple laptops and laptops in general. In 2013 or so, I developed pretty severe RSI (first in my right arm, then left arm.) After years of treating and addressing underlying concerns, I’ve gotten to a place that’s not pain-free by any means, but is certainly manageable. I mention this because the underlying condition has made laptops pretty much a non-starter for me. Whenever I’ve purchased a laptop or been issued one by an employer, it’s pretty much always built into a desktop setup with an ergo keyboard and mouse and a monitor.

                              After having all-but abandoned laptops for the last three years (I have a pretty powerful Dell laptop which I use when I have to travel for work) for desktop computing, I’ve come to realize that the laptop hardware was never really providing that much for me. The gem of Apple’s ecosystem, in my opinion, is macOS. I have a 2017 iMac which I use for music and I adore it–not for its display (pretty much the only hardware “feature”) but for its OS.

                              I wonder if diminishing returns on iterating on the Macbook hardware will eventually lead Apple to eventually explore less high-end hardware options designed to run macOS smoothly, but without the slim profile and other knick knacks that seem to receive mixed reviews. I’d certainly take a “Mac Pro” in a standard ATX case that cost quite a bit less. Not necessarily saying open the OS to commodity hardware (it’d be nice but I understand the value of constraining your hardware domain), but just going for a less luxury design in order to address a broader market.

                              Addendum: The Mac Mini is a good example of how Apple has historically taken the opposite approach. Trying to make an affordable Mac with a luxury aesthetic places too many limitations on the machine! Being dogmatic about things like passive cooling was an odd choice to me.

                              1. 29

                                This is entertaining because it’s adding the laziness of GC back to Rust in a controllable way!

                                1. 3

                                  A great way of looking at it, yeah!

                                1. 3

                                  I spent a lot of time last weekend learning the bits of the Hashicorp stack I hadn’t already used, namely Terraform and Packer. Really blown away by the simplicity of them. I will probably look to making some packer / terraform recipes for deploying Consul.

                                  1. 2
                                    1. 17

                                      This isn’t that current but it’s been going on for a long time:

                                      Also featuring a related sidetrack:

                                      1. 8

                                        I need to implement a Forth so I can write firmware for my keyboard so I can write actual code.

                                        this thread, summarized. thanks for sharing the journeys!

                                        1. 2

                                          I would think that most Forths would fit in 2.5 KB of RAM if you implemented them in assembly, right? It’s just the C implementation that makes it too big, I would think.

                                          1. 2

                                            Right, well I mean technically my Forth implementation did fit in 2.5KB; it’s just that most of the RAM got used up by the Forth itself, so when I went to load my application code, it would quickly run out of memory.

                                            It turns out that even for seasoned Forth pros, it’s a challenge to get an implementation that’s practical on the ATmega32u4. The only one I know of is this: http://michaelalynmiller.com/blog/2017/10/04/enforth/ (btw the quote near the top from the #forth IRC channel was me) It’s also the only example I know of a programming environment for that chip where the compiler runs on the device.

                                            1. 2

                                              Oh, I see. That’s a lot better than I would have thought. Thank you for the link! The rabbit hole goes deeper….

                                        1. 3

                                          Should AWS (and Azure and GCP, since otherwise it wouldn’t be too effective) refuse to service British Petroleum? I think they certainly can; the question is should they.

                                          1. 10

                                            yeah. also it’s one thing to have them use your service, and another entirely to actively consult for them and build custom tooling for them. this seems like the latter, making it much more cut and dry as far as ethics are concerned.

                                          1. 2

                                            Seems a bit weird to call it “Zero-Knowledge Proofs in WebAssembly” when all the code is written in Rust

                                            1. 3

                                              it’s written in rust, compiled to web assembly, and subsequently run in your browser.

                                              1. 3

                                                Okay, but would you say “Solving x problem in x86 assembler” for a project where the source is all in C? Unless there’s something I’m missing that’s what this feels like.

                                                1. 4

                                                  i think the idea here is that they’ve got a full crypto library that can run in the browser. that implies native rust impl or using some browser api. this in and of itself is worthy of remark. very common for projects to use something like libsodium via ffi

                                              2. 2

                                                Fair point, I can see where you’re coming from. I think what I was trying to highlight is the fact that WebAssembly is efficient enough to run computationally intensive zkSNARKs, which I think wasn’t trivial not too long ago.

                                                The fact that the Zcash team implemented most of the cryptographic primitives needed for this in native Rust, and the fact that the wasm target of Rust is good are a substantial part of making it happen.

                                              1. 8

                                                to be clear, this memo is pertaining to renaming the HTTP binding, not the transport protocol, which will remain QUIC.

                                                1. 2

                                                  Binary blobs. Not particularly useful for anything beyond a demo.

                                                  1. 1

                                                    Entire Facebook runs on this, so apparently they disagree: https://github.com/facebook/fboss

                                                    1. 2

                                                      I used to work on the fboss project when I was at Facebook. FBOSS runs on an internal, NDA protected version of this, but the GitHub binary dumps used to be missing a huge amount of configurability and features. A quick skim indicates that’s still the case.

                                                      My interpretation is that it’s there to enable demoware, and if you want to do anything serious, you need to talk to Broadcom to get NDAs signed.

                                                      1. 1

                                                        That’s a great information. Thanks for sharing.

                                                    2. 1

                                                      what do you mean? this is a full programmatic API for configuring bridges, ports, and other virtual network infrastructure. this is incredibly useful!

                                                    1. 6

                                                      i’ll be working on libp2p integration testing (i work for protocol labs). excited to work towards having fully automated interoperability testing between libp2p implementations in different languages.

                                                      1. 1

                                                        oh this is a delight! had no idea there were so many re-implementation efforts. would be nice to have this outside of a pdf, hah!

                                                        1. 4

                                                          The link is actually a regular site, not a pdf. I agree that it reminds the in-browser pdf renderers a lot in style :D

                                                          1. 1

                                                            hahahah oh my goodness. got me. a lovely list indeed!