1. 2

    Trying to boot a mini-PC that I bought a few months ago. I mostly use VPSes and cloud stuff but the urge for a neat little Linux box was just too hard too resist 🙂

    1. 1

      Share some details! Specs? OS? First order of business after getting it booting?

      Asking as I recently did the same with a mini pc.

      1. 2

        Sure! 🙂 It’s a refurbished Lenovo Thinkcentre M72e that I bought from a shop in Germany via Ebay. Quite modest specs: Intel Core i5-3470 @ 3.20GHz, 8 GB RAM, 500 GB SSD. Currently trying out Openmediavault to see if it suits my needs. The admin web interface seems quite nice. I might also run some Docker containers on there. Feel free to follow me on Mastodon for updates! I’m tempted to get even more of these machines 🙃

    1. 1

      Home improvement. Building shelves to make a coat closet into a pantry. Flushing a neighbor’s tankless water heater. Painting my front door. And putting edging around planters in the yard.

      I’ll get back to my desk Monday.

      1. 10

        Did this awhile back in Erlang relying on pattern matching.

        https://git.sr.ht/~statianzo/sevenlangs/tree/master/item/erlang/tictactoe.erl

        1. 15

          Psychologically, using REPL this way improves the flow, the complete immersion in one’s activity without interruption. No wonder Clojure programmers are found to the happiest: a mental state of flow improves well-being and life satisfaction.

          I clicked the link:

          Clojure developers are the happiest - When Hermann looked at the use of words indicating happiness (e.g., “awesome,” “cool,” “fun”), comments made to posts in the Clojure subreddit came out on top.

          What.

          1. 4

            It’s the modern scraping of Usenet for the word “pointer”. /s

            More serious, the original author did put a disclaimer that it wasn’t hard science and just a fun project.

            https://github.com/Dobiasd/programming-language-subreddits-and-their-choice-of-words#disclaimer

            1. 11

              Yeah, the linked project sounds like a fun thing, I’m just piffed that the OP cited it unironically. Makes me doubt their objectivity in general, y’know?

              Same with this:

              Clojure is one of the only four languages where language choices is statistically significantly correlated with software quality in this large scale study. The other two “good” languages are found to be Haskell and Ruby, the one “bad” language is C++, while Clojure has the highest statistical significance number on the “good” side.

              Which is a shockingly bad misinterpretation of the paper. One of the authors of the paper commented as much:

              While it’s always nice to be cited, it would be inappropriate to cite our work (the “large-scale” study cited above) as supporting the hypothesis that Clojure is less bug-prone. This is not the correct conclusion to draw from our paper. Our paper in fact makes clear that despite statistical significance, our analysis demonstrates no practical difference between C++ and Clojure:

            2. 4

              I did the same and I read the title of that article

              Clojure developers are the happiest developers

              And then the conclusion

              Anyway, this analysis, obivously, doesn’t really prove that Clojure developers are the happiest…

              Oy vey… the disclaimer and conclusion were fair but the title was quite the bait!

            1. 1

              I’m in the middle of setting up a network with TP-Link’s Omada line. So far it’s been a positive experience. Controller will detect new devices and adopt with a single click. This weekend, I’m setting up outdoor point-to-point across ~300 meters with a couple of their Pharos access points, and I’m hoping everything on the other end gets recognized just the same.

              1. 4

                This got me tempted to build Janet this way. I’ve got 127 lines of errors to go through but I hope I can get it done (the resulting binary should be small too).

                It would be nice if the author could share his build commands and stubs. Might help some other efforts :)

                1. 3

                  The author forked the lua repo to be cosmopolitan compatible. Commit is available at

                  https://github.com/ahgamut/lua/commit/aa20d02dffc4f96d673d30e7378c0c02a6df13f8

                  1. 3

                    My advice - enable reduced OS mode, disable threads, disable ev in the config.h .

                  1. 6

                    Posts like these always make me feel like I’m living on another planet than some people. Why use docker? Why use a pi-hole at all? Is this all just for the web interface?

                    I personally think it’s much better to run DNSCrypt Proxy and just either point it to an upstream adblocking DNS or host my internal one with it’s own set of blocklists that use the same list from the Pi-hole. That could probably even be simplified to a set of firewall rules instead of DNS, or just DNS local resolver without DNSCrypt.

                    1. 3

                      I signed up for NextDNS about two weeks ago due to some excited Slack chatter about it (and to test my Handshake domain) and I quite like it. I’m gonna see about applying it to my router, if possible, next week.

                      1. 3

                        Honestly I just use one of the public resolvers that does AdBlocking on my phone or mobile device and at home I run an internal resolver that blackholes using the uBlock origin lists and a tiny script that turns it into unbound format. All of these solutions seem… Massively complex for what they really are.

                        1. 1

                          Oh that’s neat, thanks for sharing!

                          1. 1

                            Since public resolvers can see DNS request originating from your network, the privacy impact can be quite severe. I’d suggest to choose your upstream provider wisely. That’s why I’d never chose a public DNS server from google for example. Since you are already running unbound, you could also chose to take another way:

                            I’ve set up unbound to query the root dns servers directly and increased cache size to 128 megs. When the prefetch option is set, cache entries are revalidated before they expire. Not only does this increase privacy, but also dramatically reduces response times for most sites when the cache is warmed up. Be aware that the DNS traffic goes up by around 10 percent or so.

                          2. 2

                            Been a NextDNS user since the beta and now a paid user. I’ve set up DNS over HTTPs on devices that support it, and have it added my router for devices that don’t. It’s blocked about ~15% of queries over the last month and that’s with all browsers running ad blockers. Well worth it to me.

                          3. 3

                            People don’t understand how things work, so instead of learning how to build something simple, the, throw heaps of complex software on top of each other, because that is how things are done in 2020.

                            I too have a cron job that creates an unbound block list. The great thing is that I can easily debug it, because I understand all of it

                            1. 1

                              How many devices do you own that talk to the internet?

                              If it’s literally just me, then I would configure a thing on my laptop and call it done. I live with a bunch of other people, and even if I could individually configure all of their devices (some of them are too locked down for that), I wouldn’t really want to have to learn how to configure ad blocking on six different operating systems from three different vendors.

                              A centralized solution is actually easier, and it inherently gives ad blocking to everyone. It also has a web interface, so you can teach someone how to turn the ad blocker off if they really, really need to, but turning it off is enough of a pain in the neck that they usually just decide that reading such and such a listicle isn’t work it.

                              1. 1

                                8 physical devices and 30 virtual machines (technically 20 talking to the internet because the others are active directory labs for testing and they switch around depending on my needs). The reality is that if I were in your situation I’d just set my router to give out the DHCP nameserver for dns.adguard.com or to the local resolver to recurse up. That wouldn’t even require software installs but does rely entirely on a third party resolver.

                                1. 1

                                  That would’ve been an option, too. I did consider it.

                                  OTOH, as you mentioned, “is it just for the web interface?” Yes, that’s one of the biggest reasons.

                            1. 4

                              What gets me really excited is the pure Janet HTTP server backing it. Great to see Janet stdlib’s net/server and peg put to use so well.

                              https://github.com/joy-framework/halo2/blob/master/src/halo2.janet

                              1. 2

                                It is indeed a very good thing and speed is very good too.

                              1. 9

                                I would say especially in Go, since Go makes concurrency pretty hard compared to systems I’m used to…

                                1. 11

                                  What systems are you used to?

                                  1. 6

                                    He’s probably thinking of Haskell, maybe secondarily Scala.

                                    I mostly use Haskell, Rust, and Java and I have to concur.

                                    1. 2

                                      Yeah, Rust+Tokio is also pretty good.

                                    2. 4

                                      If I want to do concurrency I’ll always reach for Haskell, but also comfortable in Ruby+EventMachine

                                      1. 2

                                        This is super confusing to me. What do you use concurrency for?

                                        1. 1

                                          High-throughput network servers and clients, mostly.

                                          1. 2

                                            I think you might be the first person I’ve ever encountered who defaults to Haskell for network servers. This isn’t a criticism in any way, just an expression of mild astonishment.

                                            1. 2

                                              I certainly didn’t used to, but at this point I haven’t been able to find something else that even comes close in terms of concurrency abilities, especially with the GHC runtime. In something like Ruby+Eventmachine or Rust+Tokio you have to manage your async much more explicitly, whereas in GHC Haskell all IO operations are async all the time within the idiomatic programming model. With lower level systems like Go, you can have thread safety problems and non-atomic operations, wheras in Haskell all IO operations are atomic (unless you use the FFI in unsafe ways) and of course most code is pure and has no possible thread safety problems at all.

                                              Probably more reasons, but that’s what comes to my mind.

                                              1. 1

                                                What kind of RPS and p99 latency do you get with a Haskell service serving HTTP and doing some nontrivial work per request?

                                                1. 1

                                                  Looks like the Haskell web server (warp) comes in at 20th on a webserver benchmark from four months ago.

                                                  At my last job I did a lightning talk on Python vs Haskell for a simple webapp. I wanted to focus on simplicity of the code, but my coworkers wanted to see benchmarks. Haskell was much faster than Python for 99% of the requests, with laziness and garbage collection putting the last fraction of 1% of responses slower than Python. Python was slow, but consistently slow.

                                                  1. 1

                                                    Hmm, I have done some Haskell HTTP stuff, but not for high performance. If you’re really curious about HTTP I’d look up warp benchmarks.

                                                    1. 1

                                                      OK, then whatever you’ve done: I’m just trying to get a sense Haskell’s ballpark.

                                                2. 1

                                                  I’m also a fan, lots of benefits to doing network servers in Haskell.

                                                  Perhaps this tour of go in haskell would help illustrate some benefits?

                                      1. 3

                                        Continuing to set up NixOS on my new (to me) X1 Yoga.

                                        1. 4

                                          This looks cool, but I can’t find a good example of what an app written in Joy looks like. This would benefit from e.g. a TodoMVC implementation.

                                          1. 5

                                            The github org has a super basic todos example. The setup directions worked with the one hiccup that the joy executable was at /usr/local/lib/janet/bin/joy and not in my PATH.

                                            https://github.com/joy-framework/example-todos

                                          1. 1

                                            While You Might Not Need lodash, it comes in handy for stuff like this. Use mapKeys and be done with it.

                                            1. 1

                                              Link seems to be broken and redirects to a url shortener.

                                              1. 1

                                                This is because the original address could not be submited. I tried using shorturl, but it seems to be invalid soon. I’m very sorry.

                                                1. 1

                                                  You have hit the limit of number of submissions from one domain from a single user. DM @pushcx about this.

                                                  Don’t use a link shortener, and don’t create alt accounts to get around this. Your account may be banned.

                                                  As a workaround, talk to people in the IRC chat, someone there can link.

                                                  1. 1

                                                    You have hit the limit of number of submissions from one domain from a single user. DM @pushcx about this.

                                                    Don’t use a link shortener, and don’t create alt accounts to get around this. Your account may be banned.

                                                    As a workaround, talk to people in the IRC chat, someone there can link.

                                                    Got it, thanks!

                                              1. 26

                                                iPhone SE. My top reason is the form factor. No idea what I’m going to do when support is dropped. Every other modern phone feels massive in comparison.

                                                1. 3

                                                  Have you tried Samsung s10e? I feel that modern phones tend to be too big too and this one has been a keeper for me. It’s super comfy!

                                                  1. 2

                                                    With its 5.8” screen, it is significantly bigger than the iPhone SE. It is even bigger than most non-Max iPhone.

                                                    1. 2

                                                      The screen to body ratio is much much higher, so in reality it’s not much bigger whole giving you almost double the screen size:

                                                      S10e: 142 x 70 x 8 mm
                                                      IPhone se: 124 x 59 x 8 mm

                                                  2. 2

                                                    Same here, and also for flat camera. I need a communication device, not a real big camera.

                                                    1. 2

                                                      The quality control had become crap by the time I realized I wanted the iPhone SE. I went through four of them in less than a month before giving up and going to the iPhone 7. I emphatically do not believe that this was a generic iPhone SE issue; I have heard similar from people who bought them too late in their life cycle. I agree with you: that thing was my ideal form factor, and I’m genuinely disappointed I missed out and don’t have one.

                                                      1. 5

                                                        What exactly were the issues you had? Curious, I’m holding on to mine (about to replace the battery for the third time).

                                                        1. 1

                                                          In no particular order:

                                                          1. Screen with dead pixels
                                                          2. CarPlay simply didn’t work. The details varied, but this one was actually pretty consistent across all four phones.
                                                          3. Screen with dead touch areas or vague touch area so that precision touching was a no-go. This was especially deadly prior to iOS 13, when they let you hold and drag on the spacebar to select individual letters.
                                                          4. Battery operated as if it were a really forking old battery. It’d go from 100% to 30% over 15 minutes, then recharge back to 100% in as much time.
                                                          5. Bluetooth would occasionally just decide it had had enough with life and was going to exeunt stage left

                                                          To be clear, these were, at least nominally, brand-new phones bought directly from the Apple Store. That’s specifically why I gave up and bought an iPhone 7. I’d otherwise have simply gone to them and tried again for an SE.

                                                          1. 1

                                                            Thanks for clarifying! Didn’t think those issues could happen with new store-purchased phones.

                                                            (FWIW, my recent carplay issues turned out to be due to a pile of lint stuck in the lightning connector.).

                                                        2. 2

                                                          Try craigslist? I’ve never had a problem there.

                                                        3. 2

                                                          What I wouldn’t give for an iPhone 11 jammed into the case of an iPhone 5.

                                                          1. 1

                                                            I hope my SE never dies. I can reach all four corners of the screen with my thumb. Plus, I love having a headphone jack.

                                                            1. 1

                                                              That’s sort of why I got an XZ1c (specs). I bought it before my previous phone died, because I worried that they might stop making it. Sigh. There just aren’t very many of us asking for such phones.

                                                              FWIW, after disabling all the google things I don’t particularly want to use and ticking the right checkboxes, the phone appears not to tell Google anything significant. At least Google’s account history page is just an empty list.

                                                            1. 5

                                                              There really needs to be a federated github.

                                                              1. 46

                                                                Like… git ?

                                                                1. 21

                                                                  So github but without the hub. May be on to something.

                                                                  1. 7

                                                                    Github is one of my favorite stories when I talk about how decentralized systems centralize.

                                                                    1. 7

                                                                      But did GitHub really centralize something decentralized? Git, as a VCS is still decentralized, nearly everyone who seriously uses it has a git client on their computer, and a local repository for their projects. That part is still massively decentralized.

                                                                      GitHub as a code sharing platform, that allows issues to be raised and discussed, patches/pull requests to be submitted, etc. didn’t previously exist in a decentralized manner. There seems to have always been some central point of reference, be it website or just a mailing list. It’s not as if whole project were just based around cc’ing email to one another all the time. How would new people have gotten involved if that were the case?

                                                                      The only thing I could see as centralising is the relative amount of project hosted on GitHub, but that isn’t really a system which can be properly described as “decentralized” or “centralized”..,

                                                                      1. 4

                                                                        It’s the degree to which people are dependent on the value-adds that github provides beyond git. It’s like a store having a POS that relies on communication with a central server. Sure, they can keep records on paper do sales but it’s not their normal course, so they don’t. This comment on HN sums it up: https://news.ycombinator.com/item?id=16124575

                                                                      2. 1

                                                                        Got any other examples?

                                                                        1. 3

                                                                          Email would be a prominent one. Most people (and I can’t say I am innocent) use gmail, hotmail, yahoo mail, etc. I belive there is some general law that describes this trend in systems, which can then be applied to the analysis of different topics, for example matter gathering in around other matter in physics or money accumulating itself around organization with more money, etc.

                                                                          On the other side you have decentralized systems which didn’t really centralized significantly, for whatever reason, such as IRC, but which had a decrease in users over time, which I also find to be an interesting trend.

                                                                          1. 4

                                                                            Many businesses run their own email server and also I don’t have to sign up to gmail to send a gmail user an email but I do have to sign up to github.

                                                                            1. 1

                                                                              A tendency towards centralisation doesn’t mean that no smaller email servers exist, I’m sorry if you misunderstood me there. But on the other hand, I have heard of quite a few examples where businesses just use gmail with a custom domain, so there’s that.

                                                                              And it’s true that you don’t have to be on gmail to send an email to a hotmail server, for example, but most of the time, if just a normal person were to set up their mail server, all the major mail providers automatically view this new host as suspicious and potentially harmful, thus more probably redirecting normal messages as spam. This wouldn’t be that common, if the procentual distribution of mail servers weren’t that centralised.

                                                                          2. 1

                                                                            Did a talk using them. This cuts to the chase: https://www.youtube.com/watch?v=MgbmGQVa4wc#t=11m35s

                                                                      3. 1

                                                                        Git has a web interface?

                                                                        1. 7

                                                                          … federation is about data/communications between servers.. but seeing as you asked, yes it does: https://manpages.debian.org/stretch/git-man/gitweb.1.en.html

                                                                          1. 10

                                                                            To be fair, whjms did say “a federated github”. The main feature of GitHub is its web interface.

                                                                            1. 2

                                                                              Right, and there are literally dozens of git web interfaces. You can “federate” git and use whichever web ui you prefer.

                                                                              1. 12

                                                                                But you then miss out on issue tracking, PR tracking, stats, etc. I agree that Git itself provides a decentralized version control system. That’s the whole point. But a federated software development platform is not the same thing. I would personally be very interested to see a federated or otherwise decentralized issue tracking, PR tracking, etc platform.

                                                                                EDIT: I should point out that any existing system on par with Gitea, Gogs, GitLab, etc could add ActivityPub support and instantly solve this problem.

                                                                                1. 4

                                                                                  Doesn’t give you access to all the issues, PRs and comments though.

                                                                                  1. 4

                                                                                    git-appraise exists. Still waiting for the equivalent for issues to come along.

                                                                                    https://github.com/google/git-appraise

                                                                                    1. 4

                                                                                      huh git appraise is pretty cool.

                                                                                      I was going to suggest some kind of activitypub/ostatus system for comments. A bit like peertube does to manage comments. But a comment and issue system that is contained within the history of the project would be really interesting. Though it would make git repos take a lot more space for certain projects no?

                                                                                      1. 3

                                                                                        I’d assume that those could potentially be compressed but yes. It’s definitely not ideal. https://www.fossil-scm.org/index.html/doc/tip/www/index.wiki

                                                                                        ^^^^ Unless I’m mistaken, Fossil also tracks that kind of stuff internally. I really like the idea that issues, PRs, and documentation could live in the same place, mostly on account of being able to “go back in time”, and see when you go back to a given version, what issues were open. Sounds useful.

                                                                                    2. 3

                                                                                      BugsEverywhere (https://gitlab.com/bugseverywhere/bugseverywhere), git-issues (https://github.com/duplys/git-issues), sit (https://github.com/sit-it/sit) all embed issues directly in the git repo.

                                                                                      Don’t blame the tool because you chose a service that relies on vendor lock-in.

                                                                                      1. 4

                                                                                        If I recall correctly the problem here is that to create an issue you need write access to the git repo.

                                                                                        Having issues separated out of the repositories can make it easier, if the web interface can federate between services, that’s even better. Similar to Mastodon.

                                                                                        1. 1

                                                                                          There’s nothing to say that a web interface couldnt provide the ability for others to submit issues.

                                                                                    3. 3

                                                                                      Right, and there are literally dozens of git web interfaces.

                                                                                      Literally dozens of git web interfaces the majority of developers either don’t know or care about. The developers do use GitHub for various reasons. voronoipotato and LeoLamda saying a “federated Github” means the alternative needs to look like or work with Github well enough that those using Github, but ignoring other stuff you mentioned, will switch over to it. I’m not sure what that would take or if it’s even legal far as copying appearance goes. It does sound more practical goal than telling those web developers that there’s piles of git web interfaces out there.

                                                                                      1. 1

                                                                                        Im going to respond to two points in reverse order, deliberately:

                                                                                        or care about.

                                                                                        Well, clearly the person I replied to does care about a git web interface that isn’t reliant on GitHub.com. Otherwise, why would they have replied?

                                                                                        Literally dozens of git web interfaces the majority of developers either don’t know [about]

                                                                                        Given the above - The official git project’s wiki has a whole page dedicated to tools that work with git, including web interfaces. That wiki page is result 5 in google and result 3 in duckduckgo when searching for “git web interface”. If a developer wants a git web interface, and can’t find that information for themselves, nothing you, or I or a magic genie does will help them.

                                                                                2. 5

                                                                                  It’s not built-in, but Gogs and Gitea are both pretty nice.

                                                                                  1. 2

                                                                                    Hard agree. I run a personal Gogs site and it’s awesome.

                                                                              2. 7

                                                                                It would be enough if people stopped putting all their stuff on github.

                                                                                1. 8

                                                                                  It won’t happen for a while due to network effects. They made it easy to get benefits of a DVCS without directly dealing with one. Being a web app, it can be used on any device. Being free, that naturally pulls people in. There’s also lots of write-ups on using it or solving problems that are a Google away due to its popularity. Any of these can be copied and improved on. The remaining problem is huge amount of code already there.

                                                                                  The next solution won’t be able to copy that since it’s a rare event in general. Like SourceForge and Github did, it will have to create a compelling reason for massive amounts of people to move their code into it while intentionally sacrificing the benefits of their code being on Github specifically. I can’t begin to guess what that would take. I think those wanting no dependency on Github or alternatives will be targeting a niche market. It can still be a good one, though.

                                                                                  1. 2

                                                                                    I hear the ‘network effects’ story every time, but we are not mindless automatons who have to use github because other people are doing it. I’m hosting the code for my open source projects on a self-hosted gitlab server and i’m getting contributions from other people without problems. Maybe it would be more if the code was on github, but being popular isn’t the most important thing for everyone.

                                                                                    1. 1

                                                                                      Just look at sourceforge, if everyone had to set up their own CVS/SVN server back in the say do you think all those projects would have made it onto the internet?

                                                                                      Now we have a similar situation with got, if GitHub/Bitbucket/etc. didn’t exist I’m sure most people would have stuck with sourceforge (Or not bothered if they had to self host).

                                                                                      You can also look at Googlecode to see the problem with not reaching critical mass (IMHO). There were some high profile projects there, but then I’m sure execs said, why are we bothering to host 1% (A guess) of what is on GitHub?

                                                                                      1. 1

                                                                                        ‘Network effects’ doesn’t mean you’re mindless automatons. It means people are likely to jump on bandwagons. It also means that making it easy to connect people together, esp removing friction, makes more of them do stuff together. The massive success of Github vs other interfaces argues my point for me.

                                                                                        “Maybe it would be more if the code was on github”

                                                                                        That’s what I telling you rephrased. Also, expanded to the average project as some will get contributions, some won’t, etc.

                                                                                    2. 4

                                                                                      Heck even I won’t move off of it until there is a superior alternative, sorry.

                                                                                    3. 3

                                                                                      I thought about a project along these lines a while ago. Something along the lines of cgit, which could offer a more or less clean and consistent UI, and a easy to set up backend, making federation viable in the first place. Ideally, it wouldn’t even need accounts, instead Email+GPG could be used, for example by including an external mailing list into the repo, with a few addition markup features, such as internal linking and code highlighting. This “web app” would then effectively only serve as an aggregator of external information, onto one site, making it even easier to federate the entire structure, since the data wouldn’t even be necessarily bound to one server! If one were to be really evil, one could also use GitHub as a backend…

                                                                                      I thought about all of this for a while, but the big downsides from my perspective seemed to be a lack of reliability on servers (which is sadly something we have come to expect with tools such as NPM and Go’s packaging), asynchronous updates could mess stuff up, unless there were to be a central reference repo per project, and the social element in social coding could be hard to achieve. Think of stars, followings, likes, fork overviews, etc. these are all factors which help projects and devs display their reputation, for better or for worse.

                                                                                      Personally, I’m a bit sceptical that something along these lines would manage to have a real attractiveness, at least for now.

                                                                                      1. 3

                                                                                        Lacks a web interface, but there are efforts to use ipfs for a storage backend.

                                                                                        https://github.com/cryptix/git-remote-ipfs

                                                                                        1. 3

                                                                                          I think there have been proposals for gitlab and gitea/gogs to implement federated pull request. I would certainly love it since I stuff most of my project into my personal gitea instance anyway. Github is merely a code mirror where people happen to be able to file issues.

                                                                                          1. 3

                                                                                            I think this would honestly get the work done. Federated pull request, federated issue discussion

                                                                                            1. 1

                                                                                              I’m personally a bit torn if a federated github-like should handle it like a fork, ie, if somebody opens an issue they do it on their instance and you get a small notification and you can follow the issue in your own repo

                                                                                              Or if it should merely allow people to use my instance to file issues directly there like with OAuth or OpenID Connect. Probably something we’ll have to figure out in the process.

                                                                                              1. 2

                                                                                                just make it work like gnusocial/mastodon. username@server.com posted an issue on your repo. You can block server, have a whitelist, or let anyone in the world is your oyster.

                                                                                            2. 1

                                                                                              Would be nice if I could use my gitlab.com account to make MRs on other gitlab servers.

                                                                                            3. 1

                                                                                              I always thought it would be neat to try to implement this via upspin since it already provides identity, permissions, and a global (secure) namespace. Basically, my handwavy thoughts are: design what your “federated github” repo looks like in terms of files. This becomes the API or contract for federation. Maybe certain files are really not files but essentially RPCs and this is implemented by a custom upspin server. You have an issue directory, your actually git directory, and whatever else you feel is important for managing a software project on git represented in a file tree. Now create a local stateless web interface that anyone can fire up (assuming you have an upspin user) and now you can browse the global upspin filesystem and interact with repos ,make pull requests, and file issues.

                                                                                              I was thinking that centralized versions of this could exist like github for usability for most users. In this case users’ private keys are actually managed by the github like service itself as a base case to achieve equal usability for the masses. The main difference is that the github like service exports all the important information via upspin for others to interact with via their own clients.

                                                                                            1. 4

                                                                                              I have to hand it to the sequel ruby library by Jeremy Evans. It’s a dataset-first instead of model-first abstraction. Models are available as a layer on top of datasets, but are not required.

                                                                                              def users_allowed_to_receive_alcohol
                                                                                                state_codes = DB[:states].where(can_ship_alcohol: true).select(:code)
                                                                                                user_ids = DB[:addresses].exclude(state_code: states).select(:user_id)
                                                                                                DB[:users].where(id: user_ids).where{ age >= 21}
                                                                                              end
                                                                                              

                                                                                              Gets you an chainable dataset representing the query

                                                                                              SELECT * FROM users
                                                                                              WHERE age >= 21 AND id IN (
                                                                                                  SELECT user_id FROM addresses
                                                                                                  WHERE stateCode IN (
                                                                                                      SELECT code FROM states
                                                                                                      WHERE can_ship_alcohol = true)))
                                                                                              

                                                                                              It does a great job of providing a unified abstraction in most cases, and it still allows you to use database specific features (PG’s json, pub/sub, cursors, etc) without breaking the DSL. You could argue for writing raw SQL, but that gets ugly quickly when you’re dynamically building a query.

                                                                                              1. 2

                                                                                                Yes, sequel is a very nice library. The active record pattern was a known bad thing back when NeXT called it “Enterprise Object Framework” and it’s a bad thing now.

                                                                                                1. 1

                                                                                                  This is exactly why rom-sql is powered by Sequel Dataset API. I’m wondering why it’s not a separate gem.

                                                                                                  1. 1

                                                                                                    I was unaware of that. Thanks for the heads up.

                                                                                                1. 8

                                                                                                  One nice way to indicate “alive” status is to have a file with the version of everything the last test run passed on, and update it whenever a dependency changes.

                                                                                                  1. 3

                                                                                                    Nice! That’s definitely a productive approach.

                                                                                                    1. 3

                                                                                                      It’s specific to languages, but I’ve seen a few github projects with badges indicating dependency status from https://gemnasium.com/

                                                                                                    1. 6

                                                                                                      There are many ways to skin the “develop with a chromebook” cat and they all seem to fall terribly short to me. I have a chromebook, I’ve done ubuntu via crouton and it works fine… but at the end of the day you’re using either a poorly-spec’d machine, or using terminal-only apps ssh’d into something else you’re presumably paying for.

                                                                                                      Until there start being options for chromebooks with decent memory/storage I just don’t see them as valid alternatives to a “traditional” developer’s laptop for the vast majority of devs I know.

                                                                                                      1. 7

                                                                                                        This solution works great for me, since the only graphical app I use anymore is Chrome. So many traditional applications have moved to the web, so I barely miss being able to run other applications. The other machine was also already set up as a server, so I don’t see it as any extra cost. I would of course like to have a “real” notebook to use, but there is quite an appeal to me in having something so lightweight that I can still get work done with.

                                                                                                        1. 4

                                                                                                          I guess for my money, an 11" Macbook Air is going to beat a Chromebook in everything but cost. And if this is a machine I’m doing professional, paid work on, I can justify the cost. YMMV though, there is undeniably something very appealing about a ~$200 dev setup, and I do own one so I guess I can’t be too critical here :)

                                                                                                          1. 14

                                                                                                            I just wish people would say what kind of development they DO with these setups. I suspect its something web related but its hard to say.

                                                                                                            I bought a cheap chromebook for the same reason. Thing is, the battery life is just horrible to the point where I just don’t see the point compared to getting a beefier machine. $200 is a fine price point. But that old adage bites you in the end.

                                                                                                            And I agree on memory/storage. Even with 4gigs its painful to hit out of memory problems when compiling.

                                                                                                            Additionally the retina screens have corrupted me, given I look at text all day I’ll just stick to using my macbookpro+nix+osx etc… I also like being able to work disconnected, I get more done and the compulsion to just browse goes away when you’re not always online. That and on flights I can actually do stuff without a connection.

                                                                                                            I can still ssh into boxes but with a real terminal client. Running ssh through the browser just activates my “this can’t be a good idea security wise” part of my brain. Could I do “everything” remotely I do now? Maybe but typing latency for everything I do is not my favorite thing. I’ve been on enough spotty networks to consider this idea a bit of a non starter.

                                                                                                            But if it works for the op more power to you and all that.

                                                                                                            1. 4

                                                                                                              I’m mostly doing web API development in Node.js and development tooling projects right now. So I’m running either HTTP servers or command line tools.

                                                                                                              I’ve had excellent battery life on my Chromebook (its hardware being closer to mobile than desktop), lasting 7 hours on low screen brightness.

                                                                                                              The limited memory and storage is why I offload the actual work to a server that is much more capable. I definitely would not use this hardware alone for any kind of serious work.

                                                                                                              I definitely miss the retina displays, but I’ve gotten used to the small screen. It might even help me focus, since I can only really fit what I want to focus on on the screen. In the development that I’m doing, I do basically always need to be online. But having a lightweight computer with good battery makes it easy to move around to anywhere with wifi.

                                                                                                              With regards to security, SSH is going through OpenVPN, so that makes me feel better. For typing latency, I hear mosh makes that a lot more bearable, but I haven’t really run into a need for it. Granted, I don’t really travel, I just move between home, cafes, coworking spaces, etc.

                                                                                                              1. 2

                                                                                                                Fair enough that explains how it is workable to your setup.

                                                                                                                Mosh helps but it most definitely doesn’t fix the problems of bad connections. Bad connections with pegged upstream or just bad packet loss even with mosh result in storms of change, wait for it to redisplay, change etc…. When that gets too annoying I tend to get angry.

                                                                                                                I find it truly maddening when editing files as I tend to be switching between buffers so it means lots of wait. I still prefer to just edit locally and sync to remotes. I’ve never had a great experiences with relying on networks.

                                                                                                                I suspect my battery life is lower in general in that I’m doing more things like compiling etc… which will peg all cores for a while. That and I have hooks into my editor to be running syntax checks/clang behind the scenes etc… So probably just the difference in i/o and overall cpu/memory use. I’d love to remove the local dependency, but I’m not sure its worth it. My strategy is to just make setting up a machine a run a script affair. That works well enough for me for the moment.

                                                                                                                Hopefully my post didn’t come off too negatively!

                                                                                                              2. 2

                                                                                                                Happened to describe what I do in another comment–Web backend stuff that we do remotely anyway. Can’t argue if you need more memory to build stuff, etc.

                                                                                                                1. 2

                                                                                                                  Makes sense in that regard then thanks for the clarification! I’m at the point that as soon as apple releases a laptop with 32gb of memory I’m hitting the order button faster than a beam of light.

                                                                                                                  1. 3

                                                                                                                    You can always just download more RAM :)

                                                                                                                    1. 2

                                                                                                                      I wish I could!

                                                                                                                      1. 2

                                                                                                                        Well, there’s always compressed RAM. Since Apple added it to OS X, training with ~8GB datasets on my 8GB MacBook Air has become far more doable. There’s support in Linux for compressed RAM as well:

                                                                                                                        https://lwn.net/Articles/545244/

                                                                                                                        So, yeah, you can download more RAM ;).

                                                                                                                        1. 2

                                                                                                                          I tried out the zram stuff on my 4g chromebook, turned that off straight away though it was painful enough. Made compiles quite a bit slower more so than just using swap.

                                                                                                                          But I might have done it wrong, and might’ve been a bad kernel build, was 3.17 iirc.

                                                                                                            2. 6

                                                                                                              I got Nix installed on a Chromebook and used it for PureScript development for a few months. 2GB of memory is totally acceptable for compiling the web app I was working on. Battery life of ~10 hours was pretty awesome. I ran X11 and installed keepassx, Skype and some other Nix packages, too.

                                                                                                              I’ve just bought a Carbon X1 since I’m planning on doing more Haskell in the future, but a Chromebook is definitely an option for doing useful things.

                                                                                                              1. 2

                                                                                                                I use a C720, the i3 4GB model as it was the most specced out model other than the Pixel. Arch + dwm. Battery life runs about 7 hours for normal work habits (streaming music, filesystem watchers). Most of the development I use it for is ruby and node hitting postgres docker containers. Rarely a hiccup other than installing massive node_module trees. For a ~$300 machine it has far exceeded my expectations.

                                                                                                              1. 7

                                                                                                                Hitting “stop” before “start” breaks the “start” button.

                                                                                                                The 1 second delay between hitting “start” and receiving any feedback gave me the feeling something was wrong.

                                                                                                                1. 1

                                                                                                                  Ok, fixed the “stop what wasn’t started” bug.

                                                                                                                  Yeah, I’m not sure what could be a good feedback when hitting start.

                                                                                                                  1. 4

                                                                                                                    Maybe make the text darker when the stopwatch is active?

                                                                                                                    1. 3

                                                                                                                      Perhaps make the colon hide/unhide every half second, and hide it as soon as you press start?

                                                                                                                      1. 1

                                                                                                                        I still see a problem with pressing “stop” before “start”. If I press “reset” while stopped, then press “stop” and wait a few seconds, then press “start” again, the stopwatch starts at 4 seconds or so, instead of 0 seconds.

                                                                                                                        1. 2

                                                                                                                          Damn :) Fixed that one too now!