1. 1

    Co-founder here, happy to answer questions. We link to more technical documentation from the blog.

    1. 1

      Wow, nice. What do you think of Glow?

      1. 1

        I’ve discussed Glow with our team, my recollection is that PlaidML is more directly comparable to Tensor Comprehensions and TVM than Glow. Basically PlaidML bridges the gap between high level tools like Keras or ONNX and most platforms (like Mac + Metal) without any other software. We’re open to collaborations though, maybe Nadav can comment in more detail.

        1. 1

          My understanding is that Tensor Comprehensions is used to implement specific kernels, and Glow is used to implement things like Keras or ONNX.

    1. 2

      The post mentions embedded devices. What would be the viability of running Plaid on Android and iOS devices? Is it (will it be) easier than what they had to do for Not Hotdog to run TensorFlow on smartphones?

      1. 1

        This release is focused on supporting research and education on desktop platforms with OpenCL, it would be some work to add iOS and Android support. You’d need to add GLES and probably Metal but it is a good idea. Let us know if you want to give it a shot.

      1. 11

        I’ve worked with people using Macs for film work and it’s actually been kind of sad to see them withering on the vine without any proper REALLY high-end machines from Apple for the last 4 years.

        If I was managing this one, I’d try to make:

        • a really nice, quite large, case
        • with a high-flow whisper quiet air cooling system
        • and a very robust water-cooling system
        • and lots of drive bays
        • the guts inside would not be tightly engineered to only just fit exactly into the space

        Then I’d release a new one every year or 6 mo, whatever schedule, with just tiny improvements to the case design, mostly all the same mechanical parts and updated CPU/GPU/motherboard. Keep making up new adaptors to make the water cooling system fit new chips and cards and you could keep the same basic design going for a decade.

        My reasoning is that the target market for a Mac Pro is people like OS X but have an unlimited demand for computing power, and would otherwise be looking at moving to a Hackintosh right now.

        tl;dr I’d make a giant hackintosh with official support

        1. 4

          Other than the case being heavy compared to a normal PC, the aluminum body with grill front mac pro was a great machine with a very nicely made design. not sure why they thought that smaller is better for that form. it’s not like people typically move these machines very often.

          1. 1

            Have you looked at the HP Z series? I use some of the older Z620 machines, they’re quite nice. I’m not a huge fan of water cooling, heat pipes to radiators seem like a more reliable system.

            http://h20195.www2.hp.com/V2/GetPDF.aspx/4AA5-4045ENW.pdf

          1. 3

            Legitimate question, what do most people think they get out of upgrading to a newer MacBook Pro from a moderately recent model (circa 2012/2013), when:

            1. The processors are not faster in real world use cases
            2. The dGPU are only marginally faster
            3. There isn’t more RAM (we’ve been maxed out at 16GB on a MacBook Pro for… around 7/8 years now?)
            4. There isn’t more SSD storage space (256GB to 1TB have been available on MacBook Pro models for years as well).
            5. Same retina screen resolution (understandable if you’re upgrading from a non-unibody to a unibody retina–the screen upgrade is definitely worth it!).

            I’m on a 2012 T430 Thinkpad that performs likely very close to a 2015 MacBook Pro (Intel i7 3630QM, 16GB RAM, 2x SSD).

            I just bought a HP 2570p (yet another machine from circa 2012), with the intent of upgrading it with 2x SSD, 16GB of RAM and an i7 3720QM to run Qubes OS (thus the 3720QM. I need VT-d!). All of this will cost me less than $600 to do, and gives me the portability (the 2570p is a 12.5" and weights 3.5lb–heavy for the size, but not heavy in the absolute sense) and performance of a 2015~2016 machine for a fraction of the price.

            1. 4

              Legitimate question, what do most people think they get out of upgrading to a newer MacBook Pro from a moderately recent model (circa 2012/2013), when: […] I’m on a 2012 T430 Thinkpad that performs likely very close to a 2015 MacBook Pro (Intel i7 3630QM, 16GB RAM, 2x SSD).

              It’s a matter of preference, but one of the reasons that I buy MacBooks, besides liking the thin/light hardware (I cycle quite a stretch to work every day), is macOS.

              Sure, I could buy a Thinkpad or HP laptop for half the price, but it would be heavier and it wouldn’t run macOS. That would be a downgrade for my computing needs.

              1. 3

                It’s a completely valid reason indeed. I see many talk about wanting to switch away from Apple hardware, and there is indeed a lot of great hardware out there. The real problem is that there exists no comparable (imo) desktop OS. Especially true for laptops, and running macOS on non-Apple hardware just seems barbaric.

                1. 1

                  Sorry, I meant upgrading from a circa 2013 MacBook Pro. The last two paragraphs is just to add context in terms of where I’m coming from.

                  I personally don’t see much difference between the retina unibody models of the last few years, and while yes the 2016 model is absolutely thinner (and slightly lighter), is that the primary motivation?

                  I’ve used the 2013 retina model previously and am currently using the 2015 model at work, and I would be hard pressed to say I see or feel a difference at all

                2. 2

                  If you do anything that involves a GPU in some fashion, then upgrading is worthwhile. I tolerate Apple’s anemic GPUs because my workloads typically don’t involve them, and macOS is so good.

                  Being able to run games like HotS just fine on the laptop screen is really nice, though!

                  1. 2

                    This only applies if the fashion in which the GPU is involved is for actual graphics, right? Afaict the cards in the new MBP are not bad as graphics cards, but not that useful for GPGPU, mainly because they aren’t Nvidia, and Cuda seems to have won that space for now.

                    1. 2

                      Indeed. But 40Gb Thunderbolt does open the possibility to have fast external GPUs [1]. I am currently doing my CUDA work on a Linux box that I SSH into. But the prospect of running CUDA on an eGPU on my Mac is quite exiting.

                      [1] http://barefeats.com/tube21.html

                      1. 2

                        Intel GPUs are actually pretty good for compute, they’ve been shipping significant performance improvements in recent generations and Skylake is impressive.

                        1. 2

                          The main problem is that a lot of libraries use CUDA (and only CUDA) for GPU computing. Hopefully Tensorflow on OpenCL will make some strides.

                          1. 2

                            For deep learning specifically the situation will get better in not too long. There are efforts to add OpenCL support for TensorFlow including the first SyCL support that got merged to master in the last week. I don’t know as much about scientific apps though.

                    2. 2

                      According to the chart, 802.11ac seems to be the only change. Also, a 2012/2013 machine with AppleCare would be coming out of warranty about now.

                      I just noticed on that chart that the 2016 model that I briefly had actually downgraded its max WiFi speed from 1.3 Gbit/s on the 2015 model to 867 Mbps. Not that I’d ever reach either of those speeds but boy, Apple sure did cheap out on this new 2016 model.

                    1. 21

                      This is especially timely with Apple supposedly polling MacBook Pro owners about whether they use their headphone jacks.

                      Apple seems increasingly out-of-touch with the professionals that helped make them the brand they are. I guess that doesn’t matter if you can hook the large masses of casual users.

                      1. 28

                        Apple was always about incompatible standards and limited extensibility:

                        • In the Macintosh 128K memory could not be upgraded, did not have expansion slots, and used proprietary ports.
                        • The first iPod could only be synced using Macs and used Fireware.
                        • While it may now seem normal, the iPhone had a proprietary 30-pin connector, while the rest of the industry used standard USB connectors.
                        • By the time that everyone has 30-pin connector accessories, they decide not to switch to USB, but invent another proprietary connector (lightning).
                        • The 2011 MacBooks only had Thunderbolt as a faster connector, while it was already clear that USB 3.0 would be the standard. 2011 users are stuck between slow USB 2.0 devices or extremely expensive Thunderbolt devices.

                        It wouldn’t be hard to find a handful of other examples. (I am still upset about removing IR remote support ;).) Apple’s history is full of incompatibilities and oddball interfaces. The professionals made them the brand they are despite this (me included).

                        1. 9

                          The 2011 MacBooks only had Thunderbolt as a faster connector, while it was already clear that USB 3.0 would be the standard. 2011 users are stuck between slow USB 2.0 devices or extremely expensive Thunderbolt devices.

                          It’s worth noting Thunderbolt 3 IS a standard, and can carry DisplayPort signals, and most interestingly, PCI Express. Unfortunately, only Apple put it in wide adoption. Now USB Type C is actually carrying Thunderbolt signals.

                          While it may now seem normal, the iPhone had a proprietary 30-pin connector, while the rest of the industry used standard USB connectors.

                          A few years ago, most PDAs have their own proprietary connectors, as well as most flip phones. It was only just around that time others started to switch to USB, and even then, the first time around, it was mini USB, which got replaced quickly.

                          Apple does use proprietary ends, but they’re good about sticking with it for a few years. The 30-pin connector lasted around a decade, but I hope Apple switches to Type C across the whole line soon. The Macs at least are getting that way.

                          1. 5

                            The original Mac was basically a reaction to the more complicated buyer experience of PCs and other micros of that era taking simplification of the UX to an extreme. Maybe too far. If you look at the rest of those choices in the context of when they were made they tend to make sense though.

                            • iPod Firewire: USB 1 was too slow to fill the drive in a reasonable amount of time and didn’t supply enough power to charge it in a reasonable amount of time.
                            • 30-pin connector: Mini-B was the closest connector USB had but it didn’t support audio. Remember the horrible quasi-USB connectors on WinCE smart phones of that era? Same reason.
                            • Lightning instead of USB micro: Lightning is mechanically far better, supports more power, and has lines for audio etc.
                            • 2011 Macbook USB 3: Did many people really care? I never noticed.
                            1. 2

                              Mini-B was the closest connector USB had but it didn’t support audio. Remember the horrible quasi-USB connectors on WinCE smart phones of that era? Same reason.

                              My Motorola Razr had a standard USB connection a couple of years before the iPhone became available. I didn’t use it for anything else than charging though ;).

                              2011 Macbook USB 3: Did many people really care? I never noticed.

                              I did. It sucked.

                              1. 1

                                Ah, the memories: http://shop.windowscentral.com/smartphone-experts-mini-usb-stereo-adapter/11A75A2373.htm

                                Who else was shipping USB3 laptops at the beginning of 2011? I don’t remember what the rollout was like.

                                1. 4

                                  It took until Haswell in 2013 to make USB 3 a standard part of the chipset. Until then, USB 3 was a separate chip.

                                  1. 2

                                    I didn’t get a USB 3 laptop until late 2012. The laptop I bought at the end of 2011 was USB 2 only.

                                    1. 2

                                      If I’m not mistaken the i7 X220 (released April 2011), has a single USB 3.0 port - oddly, I thought they were more mainstream by then. According to Wikipedia:

                                      Intel released its first chipset with integrated USB 3.0 ports in 2012 with the release of the Panther Point chipset.

                                      1. 2

                                        Yeah, only on the i7 model. Not the base i5 models. So that’s like a $200 USB port. :) Default USB 3 didn’t arrive until the 230 series more than a year later.

                                        1. 1

                                          Also the W520 had two, and the T520 didn’t.

                                  2. 2

                                    The article also mentions “floppy drives, serial, or PS/2 ports”, and “12” MacBook removing MagSafe, USB, and Thunderbolt”.
                                    IMHO A single USB on a desktop or laptop is the single most annoying thing Apple does.

                                  3. 11

                                    They don’t even support ZIP drives anymore!

                                    1. 5

                                      This is especially timely with Apple supposedly polling MacBook Pro owners about whether they use their headphone jacks.

                                      I always wondered why that sort of information isn’t collected among the people who opt in to share data. Knowing how often ports are used and how many devices are attached seems like a non-privacy invading thing to monitor when people opt in.

                                      Maybe I’ll eventually get a laptop with the 8000 USB ports I need.

                                      1. 2

                                        Apple seems increasingly out-of-touch with the professionals that helped make them the brand they are.

                                        I think you got it the other way around. Professionals use Macs because Apple is the brand that it is, which is because they make the right products.

                                        Of course professionals will always believe they ‘made the company’ since that sounds nicer to them, but if Apple didn’t exist, would these professionals have ‘made the company’ of Dell?

                                      1. 21

                                        Highly-skilled people that I respect just got really angry and irrational and basically refused to even try to learn Haskell, which resulted in a culture divide in the company.

                                        This is kind of a depressing story, by every account this team did everything right. They rationally evaluated their options, ended up building solid reliable software that added value to the company, and did internal training for the new tools to ensure it could be maintained. I really question the judgement of the management that divided the company over what was seemingly a solid solution, and I don’t blame the OP for leaving.

                                        Why bother calling our profession “software engineering” if weird superstitions and “feelings” about languages trump empiricism and measurement.

                                        1. 15

                                          Highly-skilled people that I respect just got really angry and irrational and basically refused to even try to learn Haskell, which resulted in a culture divide in the company.

                                          I’ve generally found most tech choices are driven by pure emotion.

                                          1. 10

                                            I’ve found a vanishingly small number of technical decisions derived from some rational set of principles in the ~25 years that I’ve been doing this work for money.

                                          2. 9

                                            One thing that I’ve found, unfortunately, with high-productivity languages is that there’s a sort of political Amdahl’s Law. Instead of it being the serial component of a program that holds up parallelism, the political component of your workflow can dominate your time once you make the coding aspect efficient. The negative side effect of making the work quicker, in other words, is that a higher proportion of your time is spent on political bullshit, such as justifying work. If the people you work for aren’t capable of valuing the technical excellence that such languages facilitate, it can just make your life a lot worse.

                                            The truth is that improving efficiency isn’t always a good thing. You have to be able to trust your employer. A good employer will give you more autonomy and let you take on more ambitious technical projects. An evil employer will say, “This is great, now I need three fewer of you.”

                                            Now that I’m more of a manager/architect who also codes, I’m less zealous about languages. If the other programmers want to use Haskell (which I also prefer) then it’s my job to make that possible. If they want to use Python, that’s more than fine with me. I’ll write Python, then. Even Java is OK if they have a damn good reason.

                                            1. 2

                                              This is a good point. The only languages I won’t write are C++ and PHP.

                                            2. 9

                                              People build their professional identities upon their tools and platforms, which is in all honesty an absolutely stupid way to approach things (but understandable, given the investment involved). So when you propose switching out your stack or your programming language, it’s perceived as a personal attack on the engineer’s competence or professional self-worth. (I am aware of such an actual situation at a certain large corporation involving certain developers and certain front-end stacks.)

                                              1. 6

                                                People build their professional identities upon their tools and platforms, which is in all honesty an absolutely stupid way to approach things (but understandable, given the investment involved).

                                                This is absolutely true, and you’re utterly right to call it stupid.

                                                I think that the short-termist and ageist culture of corporate programming is largely to blame. People no longer identify as computer scientists or problem solvers, but as X programmers. It has become this high-stakes game of choosing tools (a) where one can contribute to a corporate codebase right away, make a quick impression, and get pulled on to a leadership track in the first 3 months as opposed to never, and (b) that seem, at the time, to have a long-term future in the corporate world.

                                                When companies invested in people, and when you didn’t need to make a strong, “10x”, impression in your first 3 months to have a career at a place, there was less of a need to brand oneself based on tooling choices or based on silly silos like “data science” (which is mostly watered-down machine learning).

                                                I’m within a few days of turning 33, which is ancient by corporate programming standards, and I’ve worked with enough different tool sets to get a sense of the recurring themes. I find it a lot more useful and rewarding to think of myself as a computer scientist and problem-solver who can pick up any tool than as an XYZ developer. That, however, seems to be a luxury that comes with professional standing, insofar as I’d no longer take (and, because of my “advanced” age, probably not even be able to get, even if I needed a throwaway job to fill an income gap) the kind of job where I have to justify work in 2-week increments. If I was forced to play that horrid game, I’d do the same thing as everyone else and invest more energy into the tool-selection process than the work itself.

                                                1. 2

                                                  I’m curious about the halcyon days of corporate culture you are referring to. When was that? For example, “The Soul of a New Machine” - a book about a team developing a minicomputer more than 35 years ago - shows a picture of the industry that’s remarkably similar to what we see today. My impression is that corporate culture hasn’t really changed in at least the last 40 years.

                                                  1. 1

                                                    The worst employers probably were the same now as then. The distributions are different, with a lot more bad examples and very few good ones.

                                                    People always complained about short-term outlooks and meddling management, but it used to be that they complained about 5-year focus as opposed to the next-quarter mentality, and that management could meddle but it was limited compared to now. You didn’t have to stick with a bad employer, in tech, back then. You still don’t, now, but the odds are that if you roll the dice, it’s not going to be better… and you’re going to have one more job hop to explain in the future.

                                              2. 6

                                                I worked at IMVU a little before this. It was a good team and definitely some strong personalities. Large swaths of the PHP code at that point were… well “the horror” is a good way to describe it. I too am curious what would have happened with Java.

                                              1. [Comment removed by author]

                                                1. 12

                                                  I’ve yet to be convinced that quality sells. In the same vein, testing doesn’t sell either.

                                                    1. 1

                                                      Never heard of that before, but seems pretty accurate :(

                                                    2. 5

                                                      A problem I see in most of these conversations is squishy and variable definitions of “quality”. Here’s the definition I like: ((net present value of customer satisfaction) / cost). Customer is whoever the beneficiary is, discount rate varies by situation: high for a prototype at an early stage startup, low if you’re building firmware for a hydroelectric turbine controller that’s going to be in service for decades. Everything you do from choice of tools to management style can be evaluated by its contribution to quality.

                                                      I’ve written some fragile, buggy code that had to ship in a matter of hours but it was a high quality product: it did what the client needed when they needed it. Fewer bugs and a day later would have been a useless low quality solution. I’ve also spent weeks on a pretty tiny networked data synchronization service to ensure that the internal logic was solid and that the error handling was thorough (which on cheap Android devices is a project). That code was reliable in the field for a long time, high quality. On another project I wrote some transaction processing code in Python (due to the team’s existing language familiarity) with mypy for type checking and Hypothesis as part of the testing framework. The code was clean and in writing it we actually found bugs in the old code but ultimately the tooling was beyond the team’s comfort. Not high quality.

                                                      This victim mentality us-vs-them stuff is poisonous and pointless. We’re highly skilled professionals in a highly sought-after field, we have the leverage to push change inside companies and the option to vote with our feet. There’s no excuse for claiming everyone else is “doing it wrong” and not doing something about it. When you do act the test of rightness is easy: how good of a job you do is ultimately measured by customer satisfaction. If you make something good for the customer at a reasonable cost and go home happy, that’s quality work. It’s not complicated.

                                                      Edit: I’ve worked with a lot of people at a lot of places. I don’t get this idea that there are a huge number of stupid and/or malicious people in the industry, I haven’t seen it and I don’t think that view reflects reality. There are lots of problems but that’s not one.

                                                    3. 11

                                                      This is blame shifting. Is management to blame for a lot of buggy software due to unreasonable deadlines, lack of funding for QA, lack of budget for hiring teams of an appropriate size with skilled developers, etc…? Absolutely.

                                                      There’s also tons of open-source software out there which has no such stereotypical PHB behind it. The release schedule is dictated by community consensus or the relevant senior developers. And this software is often just as horrible as the output of so many closed-source behemoths we all love to hate.

                                                      Management always gets a bad rap, and a lot of it is deserved, but they can’t always be the foil for bad products. Especially where management largely doesn’t even exist, or does so in a far less formalised sense per many community projects.

                                                      1. [Comment removed by author]

                                                        1. 2

                                                          good management is really hard, and should be treasured above all

                                                          The problem with executives is that no one is willing to admit that 90% of them are negative-net-productivity players.

                                                          Sure, I agree that the best 2% of executives are worth millions per year to their respective companies. Even though Steve Jobs was an asshole, he was a competent asshole which enabled him to clear out the incompetent assholes who had managed to accumulate in Apple’s ranks. A CEO that can cut through bullshit and cut bikeshedding petty tyrants down to size can save a company. (Of course, such CEOs are rare. Smiling, affable dipshits are more likely to get that job.)

                                                          The problem, in the executive suite, is that the garbage also gets the high pay, status, and control. No one is willing to admit that most of these people are worthless and got their jobs through nepotism. There’s also nothing in place to filter them out, either, because managerial power gives them the ability to extort people into supporting their own careers.

                                                        2. 3

                                                          Programmers and technology management are both to blame. You can’t separate the two groups into separate tribes, especially since most of these bad middle managers that people love to complain about (and, in truth, they deserve their bad reputation) are ex-programmers who went Uncle Tom; as soon as they got that 20% raise, they were all about . I’ve encountered plenty of talented engineers who turned into awful managers.

                                                          I also think that corporate life makes people stupid, unless they have the courage to fight it, and then they’re putting their careers at risk. The supposed loss of “fluid intelligence” that happens in middle age, in my opinion, has no biological basis. I think that it’s an epidemic of subclinical midlife depression (not enough to put a person on meds, but enough to cause a 1-IQ-point-per-year drop over 30 years) that the militant mediocrity/anti-intellectual corporate world has created in people. Thus, you have people falling to pieces at a time when they’d otherwise be at their prime (the few who are lucky enough to dedicate their lives to meaningful intellectual pursuits tend to peak around 55, not at 23).

                                                          In other words, the militant stupidity that’s enforced upon us with open-plan offices and Scrum doesn’t magically go away when people go home and moonlight on open-source projects.

                                                        3. 6

                                                          I think it’s a bit of both. There’s definitely more pressure to get stuff out than before but I also think sometimes devs get lazy or just have poor attention to detail. Once you’re not proud of the product you work on, it’s easier to aim for “good enough” than “great” :/

                                                          1. 4

                                                            This. It’s hard to give software enough care when you need to deliver, deliver, deliver…

                                                            You end up taking shortcuts in the end. Saying to yourself that you will refactor it later on. Instead a new project comes and you leave the ugly mess behind, hoping the new one is finally going to be the nice one. Except you need to deliver…

                                                          2. 3

                                                            And if a last ditch defense of that position were ever needed, it’s easy to show that there are good developers out there who will do quality development given half a chance, and the managers either don’t hire them or don’t give them that half a chance.

                                                            The culture is hostile to people who care about quality. You can’t think in these open-plan offices that are designed to inculcate the idea that you matter more for your availability and appearance (especially to investors) than your actual capability. (An open-plan programmer is more valued as office furniture, to create a “busy” impression when investors are on-site, than for the software she creates.) Moreover, Scrum (i.e., terrorism for people who aren’t technical enough to make bombs) has been repurposed as a micromanagement framework designed to humiliate perceived low performers, with the tolerated side effect of also hitting people who actually care about their work well enough to do it right.

                                                            Thanks to the Silicon Valley’s willingness to bring absolute human garbage into the Founder class, private sector dev culture has become low-status, humiliating, and wracked by the crab mentality. It’s also sexist, racist, classist, and ageist and shows no signs of improving. In this light, it’s not surprising that low software quality would be the norm. This is a world in which everything’s built to be sold and 99 percent of it is garbage. Most people have lost the ability to create solid assets; it’s been punished out of them (again, Scrum).

                                                            However, I don’t think that it can be blamed only on software management. I understand the self-serving tribalism. It’s intellectually easier to heap all the blame and hatred on some Other called tech management and, sure, most technology executives are horrible people. That said, I don’t think that we can put 100% of the blame for our shitty culture and terrible products on “Them”. We’re at fault, too. I’ve seen engineers (even talented ones) become the worst kinds of people when given a little power. Also, whose fault is it that we’ve failed to organize around our interests? It’s ours. If we really care about software quality, then why aren’t we forming collective structures that can kill Scrum and the open-plan office culture?

                                                            There are some wonderful people in technology, but I’ve been in this game for 10 years, and all I’ve seen is that the bad people drive out the good. It exists at all levels and it can’t be blamed on management only. Those awful managers wouldn’t be in charge if engineers weren’t so easy to divide against each other (tabs versus spaces, Ruby versus Python, California versus “flyover country”, young versus “old” (meaning 30+), women versus brogrammers, and so on).

                                                          1. 2

                                                            Having written a fair amount of Go this looks like a great idea. There are some subtleties around interface{} values with nil contents and I don’t love the syntax but directionally having more safety in Go would be really, really good.

                                                            1. 2

                                                              Formatted version of the code: http://pastebin.com/Qxg26VpY

                                                              1. 2

                                                                Something of a less obfuscated code here: https://gist.github.com/madebyjeffrey/b30fc9537bb21b9ef81c

                                                                I have tried to ‘modernize’ it a little, but I am quite convinced they are playing fast and loose on types. But then again, it is K&R.

                                                              1. 29

                                                                It seems to be converging on exactly where we were a few years ago with regular unix processes. Oh, but see, unikernels are hardware isolated. So are unix processes. The MMU provides complete hardware isolation between processes. The fact that processes can interact and interfere with each other is enabled and mediated by the kernel. Somebody wrote code to let it happen because there was a need for it to happen.

                                                                It does look a lot like just a ring shift. Lots of ring 3 processes mediated by a ring 0 monitor has now become lots of ring 0 processes mediated by a ring -1 monitor.

                                                                1. 3

                                                                  Network performance is a big motivator for putting your application, IP stack, and drivers all in one place. A hypervisor and unikernel is one approach, the other common one is to run all of those things as a single user space process that controls the network card. In either case you probably need a fixed 1:1 thread to core mapping and some place to put all of the misc management code so it starts looking pretty similar.

                                                                1. 1

                                                                  Cool bug but “sanitizing” user input is usually not what you want. Instead the solution is to correctly parse and validate the user input, then later correctly serialize the data into the output format.

                                                                  1. 1

                                                                    I think sanitize is short hand for correctly parse and validate and serialize.

                                                                    1. 2

                                                                      In every instance where I ran into that when I worked in security the techniques described as “sanitization” were things like horrific regexes that stripped HTML tags, routines that backslash escaped some characters in parameters in incoming HTTP requests, or routines that removed “special” characters. For example: PHP’s documentation: http://php.net/manual/en/filter.filters.sanitize.php

                                                                      Or all of the hits on Google for “sanitize input”: https://www.google.com/search?q=magic_quotes+sanitize

                                                                      So, I wish that were what they meant but most likely not.

                                                                  1. 15

                                                                    I’ve got my first paid contract! It’s a simple static website, but it has to be billingual, so after a bit of research I opted to use Hakyll as a way to cut out most of the repetive work. Here is the repo: https://github.com/Superpat/esn-website

                                                                    I also have a lot to do on the school front, since we’ve just received our final project assignement, a php app, an asp.net ap and an android app. Only two weeks left till my degree is over!

                                                                    1. 3

                                                                      Congratulations! If you (or other lobsters) have questions about contracting as a technical person feel free to message me. It’s what I’ve done for about half of my career and I’m happy to give my perspective.

                                                                      1. 1

                                                                        Congrats!

                                                                        1. 2

                                                                          Thanks! I’ve been having a lot of fun with Hakyll thanks to it, who new web developement could be hassle free?

                                                                      1. 11

                                                                        Sourcegraph CEO here. We have large enterprise customers using Sourcegraph and are excited to release it publicly (with source code) so anyone can start using Sourcegraph for their team’s code.

                                                                        Feedback is much appreciated!

                                                                        More info at the announcement blog post and at Sourcegraph.com.

                                                                        1. 5

                                                                          Looks neat, I like the features. I often find myself browsing github for something, then having to jump back to IntelliJ so I can follow method calls and “find usage”.

                                                                          How does the “inline discussion” stuff work once the code has completely mutated past what it once looked like? Is there some kind of timeout that makes these notes fade over time?

                                                                          This might be a strange question, but is it possible to register via github sign-in? The biggest benefit (imho) to github for OSS projects is the network effect: anyone can stop by and send a PR, file a bug, etc. Having your own tracker definitely brings tech benefits, but the downside is that there is more friction to getting outside people to contribute. Or perhaps this is really targeted more for internal development that isn’t necessarily OSS?

                                                                          Probably just my connection (DSL yay), but many page loads are super slow for me. 3-14 seconds in many cases, and it looks like the json XHR RPC calls are doing a lot of it (long load but only a few bytes).

                                                                          Any chance of getting Rust support? :D

                                                                          EDIT: srclib looks neat! Will have to poke around that a bit more :)

                                                                          1. 5

                                                                            Thanks for checking it out! We’ve resolved some perf issues and the site should be faster now. If it’s still slow, can you send me the page URLs that are slow (beyang@sourcegraph.com)?

                                                                            Inline code discussions are currently tied to a line range in a file at a specific version, which makes them useful as a jumping off point to filing an issue in Sourcegraph Tracker. In the near future, we’d like to make them attachable to specific pieces of code (e.g., a function definition), as well, and in this case, the comment can remain as a relevant contextual item for the duration of the lifetime of the function. I like the idea of fading discussions out over time, as well.

                                                                            Rust is on the roadmap, but we welcome any and all contributors to srclib, our open-source core code analysis library :)

                                                                            We don’t support GitHub sign-in currently, but that’s something we’ll consider in the future.

                                                                          2. 5

                                                                            It’s a great announcement!

                                                                            Two questions:

                                                                            1. 3

                                                                              Hey, thanks for checking out Sourcegraph! Apologies for the slowness on the site yesterday. We’ve been working through some performance issues and it should be much faster now.

                                                                              We use server-side rendering for the mostly static parts of the site – good for SEO, performance, etc. For the more interactive parts (code browser, etc.), we use React to make more dynamic features like the code browser pop up box and smooth jump-to-def within a file.

                                                                            2. 1

                                                                              This looks really nice. Particularly once there is more language support it seems like it’ll be better than the other tools I’ve used. I did notice a bug, in Safari (9.0.1 on OS X 10.10) the following link appears to have a redirect loop:

                                                                              https://src.sourcegraph.com/sourcegraph/.search?q=NewClient

                                                                              Edit: Beyond Go & Java I’m particularly interested in Python (painful to analyze, I know). The other items on my wish-list would be Protobuf (if Sourcegraph could understand the correspondence between the generated code and the original file), Swift, and Objective-C. In an ideal world you’d be to jump-to-definition across RPC boundaries (say iOS client into Go server code) but there’s probably no sufficiently general way to do it to make it worth doing.

                                                                            1. 4

                                                                              There’s a few good points in here, but I also disagree about quite a bit. As an example of something that’s not quite discoverable, deep touch or force touch or whatever it’s called. It’s unclear what you can really jam on and in which app. But the functionality it unlocks is always optional; a nice to have. It’s not necessary to use it. Indeed, my phone has it and my tablet doesn’t. If apple drew a dancing circle around everything I could force tap, the result would be… Well, google maps. :)

                                                                              If Apple has confused design and appearance, I think the author has confused simple and possible. Menus are actually pretty bad at discoverability imo. Firefox has menus, but that doesn’t help me discover that “Preferences” is where to go to delete a cookie.

                                                                              The fonts are a solid complaint. That’s not functional. But most Apple design still remains functional. I gripe about asshat designers ruining websites daily, but the apple site remains quite navigable on a variety of platforms. I’d actually be extremely happy if Apple were the one giving design a bad name.

                                                                              1. 7

                                                                                The text-only button design introduced in iOS 7 is a great example of minimalism over functionality. It makes it much less clear what’s clickable vs what’s just a label. I’ve been a Mac user since the 80’s and iOS since the iPhone came out and the trend no longer seems to be that UIs are getting a lot better. To be clear I don’t think Android is really better and I also don’t have solutions to most of the areas I have complaints about but I’d hoped they would do better.

                                                                                1. 4

                                                                                  Agreed that “burn all the skeuomorphism” has had some collateral damage. I don’t know if it will prove worth it in the end, but icons that look like floppies (etc.) feels like more of a local maximum than a global maximum. Could we (we, as in Apple) have iterated our way past that? “UI without buttons!” is like “computer without floppy drive!” or “laptop without ethernet!” It’s strange and scary, but people figure it out. We kvetch about how it could have been done better, but in the end, we all seem happier for the change.

                                                                                  Worst UI I’ve ever used is snapchat. Growing up, people over 30 couldn’t set the time on their VCR. I feel like snapchat is the modern equivalent, designed to keep old people out. Despite the complete and utter lack of discoverablility or affordances, I’ve observed young people using the app with ferocious efficiency.

                                                                                  1. 4

                                                                                    “UI without buttons!”

                                                                                    As long as you’re touching it, it has buttons. If they don’t look like buttons, then they’re just shitty buttons.

                                                                                    The floppy disk “save” icon is a funny case. It’s true that it is now 100% anachronistic, but “save” is an incredibly abstract concept—coming up with a better icon is probably, in all seriousness, literally impossible. The floppy disk icon is a well-understood idiom for a concept that defies iconography. Try to invent a better icon, and you’ve committed Google’s second most serious interface sin (inventing icons and assuming we know what they mean; their most serious interface sin is fucking changing everything all the time stop that dammit). Nobody knows what it means, and nobody can infer what it means because of the huge degree of abstraction between the conceptual action and whatever concrete icon you present.

                                                                                    The best option other than the floppy disk icon is probably to just label the button with the text “save”. (Actually, nearly all buttons should have text labels in addition to whatever icon the designer dreamed up. I can’t remember where I read this, but someone remarked that the greatest strength of the GUI is not that it can show images—it’s that it can show text, a sentiment I wholeheartedly agree with. Regrettably, modern GUI designers have forgotten this completely.)

                                                                                    1. 1

                                                                                      Except what we have is not “UI without buttons” it’s “UI with buttons pretending not to be buttons so you don’t know what’s a button and what’s not”.

                                                                                      1. 1

                                                                                        ok, so s/ui without buttons/buttons without affordances/.

                                                                                  2. 4

                                                                                    I guess his main point is that Apple led this field by discovering good principles and sticking to them, but now they’re failing to follow their own principles and the UIs are suffering for it. It’s certainly obvious that they’re not following their own principles any more. The real question is whether there’s a pragmatic reason for these changes, or maybe an improvement to their principles.

                                                                                    I think when you’re working with very small screens like the old iPhone it’s pretty obvious why you’d have to change your approach a little - the restricted screen space and different available interaction changes the options you have. But overall I agree with the author that some of the choices are just not well considered. Why is there no consistent back button in iOS even now? Android did it and it works well. iOS refusing to do it smacks of “not invented here” syndrome rather than good design.

                                                                                    1. 6

                                                                                      The android back button is an interesting case. Does it go back in this app? Or does it go back to a different app? Trick question. It does what you want. :)

                                                                                      Apple does leave this up to each app, which leads to some abominations like snapchat having nav chevrons at the top and bottom of the screen (going different places!). But inter app nav is pretty consistent. I’ve never gone “back” in Facebook and landed in safari or something crazy.

                                                                                      For reference, if you leave an app to handle a notification, iOS now changes the signal strength part of the title bar into a back button. I might argue that that’s more consistent and predictable, but it was a while coming.

                                                                                  1. 87

                                                                                    Don’t continue reading if you’re a pussy, 9-year old boy or afraid of little bit “strong” writing.

                                                                                    This is like standing at a podium as a huge banner unfurls behind you saying “I AM A JOKE” and a pantless marching band comes out on stage playing a off-key version of Yackety Sax.

                                                                                    I definitely do not give a single solitary shit what the author thinks after that.

                                                                                    1. 27

                                                                                      There is very little quite so tiresome as the “I’m going to give it to you straight, and by straight I mean with lots of cuss words” sort of truth telling. It so rarely actually has any truths to tell.

                                                                                      1. 6

                                                                                        Skimming the article, the author seemed to have some good points with solid examples, particularly the bit about slice manipulation.

                                                                                        But the writing was so intolerable I quit reading.

                                                                                      2. 15

                                                                                        It looks like he’s removed that line now. But the tone remains that way throughout… Public discourse has standards that are required if you expect to be engaged.

                                                                                        1. 6

                                                                                          Trolling and terrible writing aside, I’d be far more interested in the opinions of people who have been using the language for more than a whole 4 months, and who have actually used it in production.

                                                                                          None of those seem particularly bad to me. In fact, the variable shadowing seems like people getting what they deserve for shadowing a variable in an inner scope like that ;-)

                                                                                          On the other hand, maybe years of C++ has numbed me to it.

                                                                                          1. 3

                                                                                            I’ve been using Go for years, since before 1.0 was released. In side projects (that I count on and use every day, at home and at work). In academic research. And now in production. Several of the things the author mentions are benefits of the language. For example, I love go generate. Others might be reasonably considered warts or footguns, but they are warts that simply haven’t caused many (if any at all) problems for me personally.

                                                                                          2. 3

                                                                                            So, you have no opinion on the technical complaints presented in the article?

                                                                                            1. 32

                                                                                              If somebody announces “Hi, I’m trolling!” I think it’s a reasonable tradeoff to decide you’re not interested in reading the rest of the post to determine if that’s true or not.

                                                                                              I probably could have put up with around half the intro, but at some point I grow tired of reading why I’m not going to like what comes next.

                                                                                              1. 4

                                                                                                That’s typically where the scroll keys come in handy. :)

                                                                                                I’ve noticed (over the last year or two) that people seem to be increasingly reluctant to try and find the good with the bad when it comes to technology posts, often to the point of (as with your GP) proudly proclaiming their impatience. At least the author here had the decency to be up-front, even though the edginess was sorta tiring.

                                                                                                1. 7

                                                                                                  Ah, so I don’t ordinarily complain about such things. I’m thankful the author has been so considerate as to tell me not to waste my time. :)

                                                                                                  I just don’t have any opinion about the rest, since I didn’t read it, which I only mention since there seemed to be a thread going.

                                                                                                  1. 2

                                                                                                    Personally, I’m fine with anything in an article besides unwarranted swearing. I don’t enjoy reading it and have a hard time blocking it out.

                                                                                                    1. 1

                                                                                                      I’ve noticed (over the last year or two) that people seem to be increasingly reluctant to try and find the good with the bad when it comes to technology posts

                                                                                                      My time is too precious to waste it reading poorly written content. If the ideas have merit they’ll be written up again by better authors.

                                                                                                      I feel like poor language indicates lazy thought, and lazy thinkers often don’t have as deep and interesting insights as they think they do ;)

                                                                                                    2. 1

                                                                                                      While that is true, if you do that, you should not leave a comment about how you didn’t read the article and therefore have nothing interesting to say about it.

                                                                                                      1. -3

                                                                                                        If somebody announces “Hi, I’m trolling!” I think it’s a reasonable tradeoff to decide you’re not interested in reading the rest of the post…

                                                                                                        Meanwhile, OpenBSD continues to produce “serious” presentations in Comic Sans, which doesn’t at all scream “Hi, I’m trolling!”

                                                                                                        Pot, Kettle, it’s all the same in this kitchen. Now excuse me as my karma burns away for daring to point out the above hypocrisy.

                                                                                                        1. 8

                                                                                                          No, your karma will burn away for the tired old “I’ll lose karma for this”. It adds nothing to the discussion. Please don’t do it.

                                                                                                          1. 6

                                                                                                            Shrug. I don’t typically use comic sans. Anyway, I think complaints about comic sans say more about the reader than the presenter, where as calling the reader a pussy says more about the author.

                                                                                                            1. 0

                                                                                                              where as calling the reader a pussy says more about the author.

                                                                                                              Nit, he didn’t call the reader a pussy.

                                                                                                            2. 1

                                                                                                              OpenBSD definitely gets justifiable criticism for that, and the pot being black doesn’t make the kettle not black.

                                                                                                              (IMO, while the Comic Sans thing is stupid and unprofessional, the bigger issue is that they typically deliver these things in a complicated binary format for which decoders have already had serious vulnerabilities, which sort of flies in the face of their entire raison d'être of worrying about security first and foremost.)

                                                                                                              1. 2

                                                                                                                Their presentations are either presented as PDFs, which already integrate with screen readers & tools like pdf2text, or are presented as webpages with images - and those presentations have plain text or HTML slides as well:

                                                                                                                (and c'mon, if you (not you specifically but y'all) can’t tell the difference between light ribbing directed at people who believe in form over function and starting your paper with GTFO PUSSIES then, uh.)

                                                                                                                1. 2

                                                                                                                  Whenever I’ve seen them linked it’s been a page full'o jpegs, and I’ve certainly never bothered investigating further. Good that that’s not the only format they’re available in; bad that it’s the only one I’ve seen, and still stupid and unprofessional that they format it like a middle schooler in the 90s.

                                                                                                                  And yes, I don’t think the two are comparable. To take the pot-and-kettle metaphor way too far, OpenBSD is at worst lightly scorched here. Not perfect, but at least mostly not actively insulting their audience.

                                                                                                          2. 15

                                                                                                            Why the fuck would I wade through the rest of that shit just to find out what the author thinks?

                                                                                                            Opinions about why Go is a poorly designed language are not so valuable or rare that I feel obliged to pick the peanuts out of the poop here.

                                                                                                            1. 3

                                                                                                              Precisely. It’s not like you’re obligated to read every word everywhere, even on a subject you might be interested in.

                                                                                                              1. 2

                                                                                                                “Peanuts out of the poop.” Thanks, that’s my new favorite phrase.

                                                                                                            2. 2

                                                                                                              That’s pretty much a classic Tone Argument… not saying it’s great writing, but maybe look through the writing to the arguments more?

                                                                                                              1. 9

                                                                                                                I’m pretty tone agnostic, actually, so I probably wouldn’t notice or care, except when the author goes out of their way to tell me how bad the tone is. If you know your tone is so bad that you have to warn people about it, but choose not to fix the tone, well… I think you have chosen poorly. It seems to reflect a desire to be more shocking than informative.

                                                                                                                1. 9

                                                                                                                  It’s definitely not a tone argument. Me saying your tone is shitty is only a tone argument if I’m also saying that makes you wrong, in the same way that ad hominems aren’t actually just insults.

                                                                                                                  1. 3

                                                                                                                    I don’t know if that’s strictly true. The typical example of a tone argument is an angry feminist being told “if you were less angry, people would be more receptive to your argument” (as a euphemism for “please make your point in a format I can more easily ignore”) with no reference to its truth value.

                                                                                                                    Regardless, this author is (a) not underprivileged relative to the people criticizing his tone, and (b) not justifiably angry anyway, so I don’t see a problem here.

                                                                                                                    1. 1

                                                                                                                      You’re saying that the tone he is using is sufficient to invalidate what he is saying. I’m pretty comfortable calling that a Tone Argument.

                                                                                                                      1. 3

                                                                                                                        You’re saying that the tone he is using is sufficient to invalidate what he is saying

                                                                                                                        Pretty sure what the parent was saying is that the tone the author is using, for him as a reader, is sufficient to ignore what the author is saying, without making any claims as to whether the author’s points about Go are correct or not.

                                                                                                                        “This paper is so caked in stinky shit I refuse to read it” is different than “this paper is so caked in stinky shit that whatever is written on it must be wrong”.

                                                                                                                      2. 1

                                                                                                                        Me saying your tone is shitty is only a tone argument if I’m also saying that makes you wrong

                                                                                                                        Eh … isn’t that exactly what you are doing? You don’t like him writing like you usually do, and use that to dismiss everything he has to say.

                                                                                                                        1. 1

                                                                                                                          Do I use gendered slurs? No. No, I don’t.

                                                                                                                          1. 1

                                                                                                                            Dick, pussy and asshole are all slurs. Gender doesn’t come into it (and it’s interesting that you would consider genitalia to be gendered).

                                                                                                                            1. 0

                                                                                                                              Are you trying to imply that if he used an inclusive she/he/they/xir/zhe/… you would have had no trouble reading the article?

                                                                                                                      3. 2

                                                                                                                        I don’t disagree with your point, or desire to point out your wrongness here. I do wish to share that I found it entertaining that you don’t like his tone, but use one like it for most of your own discussion. Again, I’m not criticizing (this is a different medium and you have different goals, for starters of why it doesn’t matter), I just found it causal of some chuckling.

                                                                                                                        1. 3

                                                                                                                          I don’t use gendered slurs, nor do I posture that cursing is some sort of bad-boy bullshit. If you think the author lost me because of his “strong” writing then you’re not paying attention.

                                                                                                                      1. 6

                                                                                                                        It’s 2015, the following should render well, right?

                                                                                                                        aeioucsz
                                                                                                                        áéíóúčšž
                                                                                                                        台北1234      (leading characters should be 2 spaces each)
                                                                                                                        abcdefgh
                                                                                                                        QRS12     (fullwidth latin; should be 2 spaces each)
                                                                                                                        abcdefgh
                                                                                                                        アイウ1234       (halfwidth kana; should be 1 space each)
                                                                                                                        abcdefgh
                                                                                                                        

                                                                                                                        Of course it renders well, just maybe not on windows.

                                                                                                                        1. 4

                                                                                                                          Just maybe not anywhere? :) iOS doesn’t even show the half width chars, at least not by default. Only boxes.

                                                                                                                          I’m guessing you’re on Linux? Firefox on OpenBSD, which uses exactly the same font rendering stack, didn’t show things in alignment. Perhaps there is some combination of installed fonts and font config xml that can be made to work, but it’s far from universal or automatic.

                                                                                                                          1. 1

                                                                                                                            Yes, I am on Arch Linux, using infinality-ultimate patchset, the applications I’ve checked are gnome-terminal and Firefox. I didn’t configure any custom settings in /etc/fonts.d/, just chosed Fira Mono in the gnome-tweak-tool.

                                                                                                                            1. 1

                                                                                                                              That doesn’t render properly for me (Arch, Fira Mono, Chromium). By render properly I mean: all the characters are boxes.

                                                                                                                          2. 3

                                                                                                                            Out of curiosity where does this render correctly? It doesn’t on my Mac or iPad.

                                                                                                                            1. 1

                                                                                                                              Arch Linux, infinality-ultimate patchset, gnome-terminal and firefox.

                                                                                                                            2. 2

                                                                                                                              I don’t have glyphs for a bunch of those characters, and the placeholders are not an integer number of characters wide for some reason: http://i.imgur.com/xsBoPMx.png

                                                                                                                              (Interestingly, my terminal emulator actually gets the widths right. Of course, it’s not going to stick in non-integer width characters, but I guess the character width tables are stored separately from the glyphs themselves. http://i.imgur.com/VPWOo0Y.png)

                                                                                                                              1. 1

                                                                                                                                http://imgur.com/Woh9qLw (firefox) and http://imgur.com/mGCzfTp (gnome-terminal). I have no idea how it actually works, but check my other comments for my font rendering stack.

                                                                                                                                1. 5

                                                                                                                                  Those don’t look correct at all. The full width characters aren’t quite two columns wide. The kana are too skinny too. “QRS” should span the full width of “abcdef”.

                                                                                                                              2. 1

                                                                                                                                Well it doesn’t render well on Linux Mint Firefox either, nor Sublime Text. Seems fine in the terminal though.

                                                                                                                              1. 6

                                                                                                                                This is deeply concerning to me as someone who has relied on the grsec patchset for over a decade to sleep slightly better knowing how horrible our memory safety is.

                                                                                                                                1. 7

                                                                                                                                  Why do such critical security features continue to exist as a 3rd party patchset after 14 years instead of being integrated upstream?

                                                                                                                                  1. 2

                                                                                                                                    Afaik it has issues with Xen and a few other things. Also, SELinux is ~better than grsecurity if configured correctly (which is much harder to do).

                                                                                                                                    1. 5

                                                                                                                                      That’s the main issue imho. Who cares if a better option is available if it requires an expert to configure/use? If there aren’t any mitigations on by default with sane default configuration then they might as well not exist.

                                                                                                                                      1. 1

                                                                                                                                        For an end user sure, but it depends who your audience is. If as in this case the user is someone patching together a custom kernel for an OS it seems reasonable to expect that they either are or have access to experts.

                                                                                                                                        1. 2

                                                                                                                                          Except that would go against what a lot of the more mainstream distros are doing. Most are SELinux (I know debian has it installed but disabled) and some are AppArmor (which is easier than SELinux/has some flaws), but if you are using grsecurity then you are either an expert or in a power-user leaning distro. That’s silly because grsecurity is the least management/config required and provides a lot of security for the ease of use. It would make more sense for the bigger distros to have grsecurity than SELinux, but SELinux is the corporate requirement in most spaces which is why it’s default in them.

                                                                                                                                          The end result is that the people most likely to benefit from the ease of configuration of grsecurity (casual linux users) don’t really have access to it.

                                                                                                                                1. 3

                                                                                                                                  If I understand this correctly it explains why Go doesn’t allow explicit stack vs heap allocation. Pointers from the heap back into the stack would be incompatible with stack relocation. In the Go I’ve written there are a fair number of situations where I have a goroutine running a loop in which a value is allocated, filled, and then sent by value into a channel without retaining a local reference. I wonder if in cases like this can be found statically at compile time to avoid the copies that (I think) happen with the current compiler.

                                                                                                                                  1. 1

                                                                                                                                    I believe the Go compiler actually uses escape analysis to determine whether to place data on the heap or stack so you can declare a local var in a function and then pass a reference to that var to some other part of the code and exit the function without destroying that var. Even though it looks like it was on the stack, the compiler actually detects that it’s needed outside the scope of the function where it’s declared and allocates it on the heap. No copies necessary.

                                                                                                                                  1. 2

                                                                                                                                    I also stopped using chrome for my daily browser a while back, but not because of the auto-updating. I found it pretty painless and didn’t run into the same issues he did.

                                                                                                                                    That said, Chrome was starting to feel sluggish and bloated, taking up more and more memory with no extensions. Right now I use chrome for debugging client-side stuff, otherwise I use Firefox. The only plugin I use in firefox is ublock and it’s quick, stable, and an overall good user experience.

                                                                                                                                    1. 7

                                                                                                                                      Right now I use chrome for debugging client-side stuff

                                                                                                                                      Can you point to anything in particular that you’re missing from Firefox’s tools? We’ve put a ton of effort into them over the last year, and it helps to know what gaps are sending people back to Chrome’s tools.

                                                                                                                                      1. 1

                                                                                                                                        The debugging tools work well enough for me, the big improvement I’ve noticed recently is that scrolling on Mac got much better in the last update. Still a long way from Safari but it’s not as jarring as it used to be.

                                                                                                                                        1. 1

                                                                                                                                          I’m going to try using them tomorrow while I work and I’ll let you know any particulars I can come up with. I can’t think of any at the moment.

                                                                                                                                      1. 6

                                                                                                                                        I think people are really blowing the whole TempleOS thing out of proportion either to troll Terry (which is sad really) or because they are really really naive about programming outside their little bubble. The reddit thread exploded where people are just goading Terry or pretending like he’s the second coming when he says stuff like TempleOS will never have things like mmap because he refuses to follow Linux/Unix, and TempleOS will always make you read/write the whole file through a compression filter.

                                                                                                                                        It’s a cool project and it’s interesting that people are playing with it, but I think a huge portion of the social popularity of posts like this especially on reddit where he isn’t banned has to do with exploiting a man’s condition for entertainment which is sickening.

                                                                                                                                        1. 17

                                                                                                                                          I can tell you why I linked it & why I read most articles about the system.

                                                                                                                                          This is as pure as hobbies can go. It’s not done for fame (at least not apparently), without a goal to be useful to anyone except the author. It’s a breath of fresh air and really interesting for someone not writing an operating system since the mid 90s. His OS may be old school but it also allows a new generation of people (or people that didn’t go into OS development) to look how things were done or how they could have been done.

                                                                                                                                          1. 4

                                                                                                                                            Oh definitely. I keep up with info about it (to know that Terry even updated his site recently) and it’s a pretty huge body of work, and I’ve churned my way through most of his videos, but in general I think there are more people on the other side of the coin that treat him like a side show attraction.

                                                                                                                                            1. 1

                                                                                                                                              I’ve spent a lot of time working on software with a lot of practical constraints including customer and user requirements, legacy API compatibility, large amounts of legacy code, and short delivery schedules. For contrast it’s interesting to read about systems with totally foreign requirements, I don’t really understand what Terry is doing with TempleOS but the purity of it makes it pretty fascinating and a nice intermission between work and work.

                                                                                                                                            2. 4

                                                                                                                                              Agreed, although I think that some people are not aware of his mental condition. Check out this comment.

                                                                                                                                              1. 6

                                                                                                                                                I’d be surprised if that were the case. Every time TempleOS gets mentioned anywhere there’s a huge disclaimer about Terry and his psyche. I mean the story about After Egypt and that he believes that generating a random number and corresponding it to a word in the King James Bible is in essence communicating with God is a staple in TempleOS mythos.

                                                                                                                                              2. 2

                                                                                                                                                because they are really really naive about programming outside their little bubble

                                                                                                                                                How’s so?

                                                                                                                                                The ultimate programmer’s hobby project (well, from a technical point of view) it’s certainly to build an operating system from scratch. If you have posix support you have loads of applications to snatch into it. Terry ignores posix, so he has to implement the “user space” too.

                                                                                                                                                It has some features that date way back to the 70/80’s, that are non-existent in current day operating systems.

                                                                                                                                                And you can’t deny that this is a technically demanding task, so probably because of that that he was godded on reddit. Most of us, in perfect mental shape, would be unable to accomplish this. I know I wouldn’t.

                                                                                                                                                If showing admiration for a great hobby project is naivety … I don’t know.

                                                                                                                                                1. 2

                                                                                                                                                  If showing admiration for a great hobby project is naivety … I don’t know.

                                                                                                                                                  It’s not admiration it’s more like buying into thought leadership from it, because these people have never done or learned systems programming properly in college.

                                                                                                                                                  Example on Reddit there’s a thread that Praises Terry for going against the grain and not following Unix/Linux, and what did Terry not follow? Oh nothing he just refuses to implement real buffers, or mmap and requires that all files in TempleOS are read/written in their entirety through a compression filter.

                                                                                                                                                  When I pointed out how infeasible it is to run a good portion of modern software (video players, audio players, databases) on a system that does this, I was met with “oh man but our RAM is so big”.

                                                                                                                                                  It has some features that date way back to the 70/80’s, that are non-existent in current day operating systems.

                                                                                                                                                  Only some of them are not. Many of the ones that people rave about are in Plan9/Plan9FromUserspace. Again people don’t really have domain knowledge and it becomes “everything old is new”.

                                                                                                                                                  And you can’t deny that this is a technically demanding task, so probably because of that that he was godded on reddit. Most of us, in perfect mental shape, would be unable to accomplish this. I know I wouldn’t.

                                                                                                                                                  Of course, but that doesn’t mean that things that Terry does differently are implicitly “good” and without problems/complications. I mean the whole thing is in ring0 and he markets it as a feature. I mean you really have people who have never written a lick of low level code commenting about how “awesome” it is. I mean 30 years ago TempleOS could have realistically been an undergrad project. It’s an impressive project and it’s unique, but it’s not well designed, and you have people comparing him to Theo De Raadt and the OpenBSD team because he “refuses to compromise” which is hilarious because he refuses to get out of ring0 and implement buffered/mapped read/writes.

                                                                                                                                                  I’m fine with admiration of effort but lets be realistic about his design choices.