1.  

    Now this is very cool! Well done.

    1.  

      Great example of pointless fight for an irrelevant made up cause. Do they want the app out, or the outrage blogpost material?

      1.  

        I can’t imagine what it’s like not be angry about this kind of thing.

        1.  

          I released my first iOS app in July after three rejections, two of which involved rather laborious terms/legal compliance changes. So really not a complete stranger to App Store approval process (or its rejections).

          Embarking on a crusade over release notes phrasing is really a made up problem, and the author’s snark is immature.

      1. 3

        At work I’m still doing bug triage.

        Outside of work I’m working on some auxiliary projects related to my ISBN scanner book database project.

        I gave up (for now) on writing my own barcode scanner and created a Common Lisp wrapper for ZBar. I had to make a few changes to CommonCV (the CL bindings to OpenCV), but I’m now able to scan barcodes from OpenCV images. Scanning from high quality PNG images works great, but I’m having problems with focus, lighting, and resolution when I try scanning from a webcam. I may have to figure something out with gphoto2 and a real camera, but we’ll see.

        I’ve submitted a pull request for my CommonCV changes, and later this week I’m going to remove the CommonCV dependency from the ZBar wrapper, clean up the code a little bit, add a couple of unit tests, and get it added to QuickLisp.

        1. 2

          Good luck, I see my PR on common-cv still hanging there since 2016 :)

          1. 1

            Yeah, I saw that…

            I’m not sure what’s going on, but I opened a different PR a few weeks ago, and it got pulled within a few days.

            Hopefully the maintainer will be more responsive going forward, because I suspect there are more changes needed. The data members of the two structures I needed to access were in alphabetical order in their defcstruct declarations instead of the order from the OpenCV header files. I may go back in a few days and double check the rest of them, but yesterday I was too focused on just getting barcode scanning to work.

        1. 34

          I’m impressed by the lack of testing for this “feature”. It may have a huge impact for end users, but they have managed it to ship with noob errors like the following:

          Why is www hidden twice if the domain is “www.www.2ld.tld”?

          Who in their right mind misses that, and how on Earth wasn’t it caught at some point before it made it to the stable branch?

          1. 11

            url = url.replace(/www/g, '') - job well done!

            1. 21

              Worse

              What’s really eye-opening is that comment just below wrapped in the pre-processor flag! Stunning.

              1. 9

                Wow, so whoever controls www.com can disguise as any .com page ever? And, as long as it’s served with HTTPS, it’ll be “secure”? That’s amazing.

                1. 5
                  1. 5

                    Not just .com. On any TLD so you could have lobster.www.rs

                  2. 3

                    If I may ask, how is this worse than url = url.replace(/www/g, '')? If anything, the current implementation use a proper tokenizer to search and replace instead of a naive string replace.

                    1. 2

                      That’s just my hyperbole.

                2. 10

                  Right, the amateurishness of Google here is stunning. You’d think with their famed interview process they’d do better than this.

                  On a tangential rant, one astonishing phenomenon is the helplessness of tech companies with multibillion capitalizations on relatively simple things like weeding out obvious bots or fixing the ridiculousness of their recommendation engines. This suggests a major internal dysfunction.

                  1. 14

                    To continue off on the tangent, it sounds like the classic problem with any institution when it reaches a certain size. No matter which type (public, private, government…), at some point the managerial overhead becomes too great and the product begins to suffer.

                    Google used to have a great search engine. It might even still be great for the casual IT user, but the signal-to-noise ratio has tanked completely within the past ~2 years. Almost all of my searches are now made on DuckDuckGo and it’s becoming increasingly rare that I even try Google, and when I do it’s mostly an exercise in frustration and I spend the first 3-4 searches on quoting and changing words to get proper results.

                    1. 5

                      Large institutions collapsing under their own managerial weight is more of a ‘feature’ in this case.

                      1. 1

                        What are a few examples of queries for which DDG produces better results than Google?

                        1. 2

                          I’m not able to rattle off any examples, sorry. I’ll try to keep it in mind and post an example or two, but don’t hold your breath :)

                          I’ve been using DDG as my primary search engine for 2-3-4 years now, and have tried to avoid Google more and more in that same time frame. This also means that all the benefits of Google having a full profile on me are missing from the equation, and I don’t doubt that explains a lot of the misery I experience in my Google searches. However, I treat DDG the same and they still manage to provide me with better search results than Google…

                          In general every search that includes one or more common words tend to be worse on Google. It seems to me that Google tries to “guess” the intent of the user way too much. I don’t want a “natural language” search engine, I want a search engine that searches for the words I type into the search field, no matter how much they seem like misspellings.

                  1. 9

                    Saturday, driving from Bergen to Flåm and back with the family. Planning for a ~15km mountain hike while there.

                    Sunday, preparing a presentation on Mezzano for our local hackermeet.

                    1. 4

                      Filing a patent.

                      1. 3

                        While keeping the specifics a trade secret until it’s filed. Classic!

                        1. 3

                          You know how it is! Going public before the application invalidates the claims. All I can say it’s acoustics related.

                          1. 2

                            Good luck on it!

                      1. 4

                        Why is this tagged programming?

                        1. 4

                          Would add this classic, with a dad joke title to boot: A Lisp through the Looking Glass

                          1. 2

                            tl;dr: deflect and avoid saying “no” to superiors

                            1. 2

                              It’s more like, deflect and avoid an automatic “yes” to superiors.

                              Obviously you need to weigh input from organizational heads differently, they have a different context then you do (otherwise what’s the point of em’). They tend to have a broader context, you tend to have a more narrow and detailed context.

                              The superiors’ version of this advice is, don’t automatically override the decision making power of your subordinates, they probably have details that you don’t have. This article is full of good advice.

                              1. 1

                                That is very much not what I’m suggesting.

                              1. 3

                                https://blog.funcall.org

                                Mostly Lisp, with some random vintage systems posts thrown in.

                                1. 4

                                  My Lisp take:

                                  (defun circular-p (list) (setf *print-circle* t) (eql #\# (aref (format nil "~A" list) 0)))

                                  1. 3

                                    YES 🤣

                                  1. 5

                                    I’m trying to convince my workplace to get rid of whiteboarding interviews, does anyone know if there are resources for ideas of alternatives? Anyone have a creative non-whiteboarding interview they’d like to share?

                                    1. 7

                                      The best that I’ve found is to just ask them to explain some tech that’s listed on their resume. You’ll really quickly be able to tell if its something they understand or not.

                                      My team does basic networking related stuff and my first question for anyone that lists experience with network protocols is to ask them to explain the difference between TCP and UDP. A surprising number of people really flounder on that despite listing 5+ years of implementing network protocols.

                                      1. 6

                                        This is what I’ve done too. Every developer I’ve ever interviewed, we kept the conversation to 30min-1hr and very conversational. A few questions about, say, Angular if it was listed on their resume, but not questions without any context. It would usually be like- “so what projects are you working on right now? Oh, interesting, how are you solving state management?” etc. Then I could relate that to a project we currently had at work so they could get a sense of what the work would be like. The rapid-fire technical questions I’ve find are quite off-putting to candidates (and off-putting to me when I’ve been asked them like that).

                                        As a side note, any company that interviews me in this conversational style (a conversation like a real human being) automatically gets pushed to the top of my list.

                                        1. 4

                                          Seconded. Soft interviewing can go a long way. “You put Ada and Assembler on your CV? Oh, you just read about Ada once and you can’t remember which architecture you wrote your assembly for?”

                                          1. 3

                                            I often flunk questions like that on things I know. This is because a question like that comes without context. If such a problem comes up when I’m building something, I have the context and then I remember.

                                            1. 6

                                              I don’t think any networking specialist would not know the difference between TCP and UDP, though. That sounds like a pretty clear case of someone embellishing their CV.

                                              1. 4

                                                So if you can’t whiteboard and you can’t talk about your experience, what options are left? Crystal ball?

                                                1. 3

                                                  I like work examples, open ended coding challenges: Here’s a problem, work on it when you like, how you like, come back in a week and lets discuss the solution. We’ve crafted the problem to match our domain of work.

                                                  In an interview I also look out for signs of hostility on the part of the interviewer, suggesting that may not be a good place for me to work.

                                            2. 5

                                              A sample of actual work expected of the prospective employee is fair. There are pros and cons to whether it should be given ahead of time or only shown there, but I lean towards giving it out in advance of the interview and having the candidate talk it through.

                                              Note that this can be a hard sell, as it requires humility on the part of the individual and the institution. If your organization supports an e-commerce platform, you probably don’t get to quiz people on quicksort’s worst-case algorithmic complexity.

                                              1. 7

                                                I certainly don’t have code just sitting around I could call a sample of actual work. The software I write for myself isn’t written in the way I’d write software for someone else. I write software for myself in Haskell using twenty type system extensions or in Python using a single generator comprehension. It’s for fun. The code I’ve written for work is the intellectual and physical copy of my previous employers, and I couldn’t present a sample even if I had access to it, which I don’t.

                                                1. 5

                                                  Yup, the code I write for myself is either 1) something quick and ugly just to solve a problem 2) me learning a new language or API. The latter is usually a bunch of basic exercises. Neither really show my skills in a meaningful way. Maybe I shouldn’t just throw things on GitHub for the hell of it.

                                                  1. 4

                                                    Oh, I think you misinterpreted me. I want the employer to give the employee some sample work to do ahead of time, and then talk to it in person.

                                                    As you said, unfortunately, the portfolio approach is more difficult for many people.

                                                    1. 1

                                                      I write software for myself in Haskell using twenty type system extensions or in Python using a single generator comprehension. It’s for fun.

                                                      Perhaps in the future we will see people taking on side projects specifically in order to get the attention of prospective employers.

                                                  2. 3

                                                    I recently went through a week of interviewing as the conclusion of the Triplebyte process, and I ended up enjoying 3 of the 4 interviews. There were going to be 5, but there was a scheduling issue on the company’s part. The one I didn’t enjoy involved white board coding. I’ll tell you about the other three.

                                                    To put all of this into perspective, I’m a junior engineer with no experience outside of internships, which I imagine puts me into the “relatively easy to interview” bucket, but maybe that’s just my perception.

                                                    The first one actually involved no coding whatsoever, which surprised me going in. Of the three technical interviews, two were systems design questions. Structured well, I enjoy these types of questions. Start with the high level description of what’s to be accomplished, come up with the initial design as if there was no load or tricky features to worry about, then add stresses to the problem. Higher volume. New features. New requirements. Dive into the parts that you understand well, talk about how you’d find the right answer for areas you don’t understand as deeply. The other question was a coding design question, centered around data structures and algorithms you’d use to implement a complex, non-distributed application.

                                                    The other two companies each had a design question as well, but each also included two coding questions. One company had a laptop prepared for me to use to code up a solution to the problem, and the other had me bring my own computer to solve the questions. In each case, the problem was solvable in an hour, including tests, but getting it to the point of being fully production ready wasn’t feasible, so there was room to stretch.

                                                    By the time I got to the fourth company and actually had to write code with a marker on a whiteboard I was shocked at how uncomfortable it felt in comparison. One of my interviews was pretty hostile, which didn’t help at all, but still, there are many, far better alternatives.

                                                    1. 1

                                                      I’m a little surprised that they asked you systems design questions, since I’ve been generally advised not to do that to people with little experience. But it sounds like you enjoyed those?

                                                    2. 1

                                                      There are extensive resources to help with the evangelism side of things.

                                                    1. 1

                                                      Related to anaphoric macros.

                                                      I like the improved style vs. Graham’s implicit bindings, but for whatever reason binding conditionals in Lisp never gained traction. Perhaps they are just harder to read.

                                                      1. 1

                                                        These are(were?) super common in Clojure, fwiw. I can’t fathom a reason they ‘d be popular in Clojure, but not in Common Lisp, other than one having a Lisp-1 and a community that hates typing more characters than necessary…but in that case, the implied ‘it Would be better….

                                                        1. 1

                                                          I can’t fathom a reason they ‘d be popular in Clojure, but not in Common Lisp

                                                          They’re included in the Clojure standard library, but you have to write them yourself in CL (or use a library). That’s probably why.

                                                          1. 1

                                                            Right. The barrier to entry is far less in Clojure, but the idea of binding conditionals was not new in Clojure. So there was lots of opportunity for CL users to adopt it, and for it to end up in SBCL’s standard library, or be a quicklisp library away. That seems to have not happened.

                                                      1. 4

                                                        Nothing specific! My app has been finished and as of $work, my bureaucracy filled vacation starts. Considering to finally add progressive image support to Common Lisp JPEG library. Long overdue really but not sure I’ll even have time to look until Friday.

                                                        1. 16

                                                          Option #4: Start a product business (the right way)

                                                          Did the author ever run a business?

                                                          The most realistic chance of working less than 35 hours is slacking off somewhere as a salaried employee.

                                                          1. 5

                                                            Slacking usually requires you to be in n office, so you’re still working

                                                            1. 15

                                                              This is where it gets philosophical. Sure you can’t go hiking or do parenting in that time. However people playing games, reading books, solving puzzles and even building entire parallel careers in their nominally work time aren’t unheard of.

                                                            2. 3

                                                              Exactly, when I ran my own startup, it was like working at 2 jobs. Always something to do, fix, research, discuss, plan, etc.

                                                              1. 2

                                                                It depends on the business, though. I know people with couple moderately-successful iOS apps where yes, they do some support nd bugfixing, but can do it on their own schedule and the money comes it “on its own”.

                                                                Startups are a particular kind of product company that is high-pace. But small-businesses can also exist.

                                                              2. 2

                                                                He did found a startup in the early 2000s.

                                                                1. 1

                                                                  And it failed! Because we did it the wrong way. But Amy Hoy has done it the right way, and teaches how, which is why I linked to her stuff.

                                                                  Also note that VC-backed startups are very definitely NOT the way to get decent working hours as a founder. It’s totally possible to work decent hours (<40) as an employee, as I’ve done at last three jobs.

                                                              1. 5

                                                                Just want to express my gratitude to the author for the series.

                                                                As a C++98 survivor, any C++ post made me throw up a little bit for a long time. These series convince that C++ is a lot nicer now, if we forget about all the ugliness introduced by the committee before.

                                                                1. 4

                                                                  The last time I was paid to write C++ was 2011, and after that job, I vowed to never write C++ again. However, the lastest revisions have mellowed my antipathy for it, so yeah, I’m with you :)

                                                                  1. 3

                                                                    He’s been responsive to me on Twitter about the series (https://twitter.com/PowerDNS_Bert). Very nice guy.

                                                                  1. 5

                                                                    Finished subscriptions handling in my app, rolling out TestFlight beta version for now. So this week is cleaning up the UI, code, adding more elaborate error handling, cosmetic touches. Hope to make my first submission to App Store by the weekend.

                                                                    Work, studying and experimenting with Precision Time Protocol and its possible use in a product.

                                                                    1. 7

                                                                      1900: people going around on horses, public lightning using gas.

                                                                      1960: cars, jet and nuclear powered airplanes, satellites, semiconductors, computers with LISP and COBOL compilers, antibiotics, fiber optics, nuclear fusion experiments (tokamak)

                                                                      2020 - another 60 years and do we really have to show?

                                                                      1. 11

                                                                        Compared to “commonplace” things like cars and antibiotics? Internet, GPS, maglevs, a vast array of surgical techniques, the absence of smallpox…

                                                                        Compared to “works but government and academia only” things like satellites and compilers? Hololens, quantum computers, drones, railguns, graphene, carbon nanotubes, metamaterials…

                                                                        Compared to “wildly experimental and probably won’t ever happen” things like tokamak and nuclear airplanes? Probably a lot of classified shit. Antimatter experiments at LHC. Arguably a lot of work with AI

                                                                        1. 4

                                                                          Maglevs were invented in 1950s and first operated in 1970s. I also don’t have anything made from graphene, or know anyone who knows anyone owning a graphene artefact.

                                                                          More importantly, none of that is imagination shattering from 1960s point of view. We do not have things mid-century people couldn’t come up with.

                                                                          1. 1

                                                                            More importantly, none of that is imagination shattering from 1960s point of view. We do not have things mid-century people couldn’t come up with.

                                                                            Antibiotics, heavier-than-air flight, cars, and computers (if you count Jacquard Looms) were all demonstrated before the 1900’ss. They weren’t imagination shattering from a 1890’s point of view.

                                                                            Even the internet isn’t imagination shattering from an 1890’s point of view.

                                                                            1. 3

                                                                              Antibiotics, heavier than air flight, and a programmable computer were not demonstrated before 1900s.

                                                                              1. 3
                                                                                • We first observed that bacteria didn’t grow in the presence of mold in the 1870’s.
                                                                                • The first manned, powered heavier-than-air flight was 1890.
                                                                                • The Jacquard Loom had programmable loom patterns and was 1804, and the first programmable reading of data was the US 1890 Census.

                                                                                Do any of these look close to what our modern conceptions of these things are? Not really. But it shows that the evolution of the first demonstrations of ideas to widespread use of polished version takes time.

                                                                                1. 3

                                                                                  There’s a huge difference between observation of mold and a concept of antibiotics, no matter how trivial that sounds with hindsight.

                                                                                  The “uncontrolled hop” does not qualify as a flight, except in the most trivial sense.

                                                                                  The loom is not a computer, but I’d love to see a fizzbuzz with Jacquard patterns to prove me wrong.

                                                                                  1. 2

                                                                                    It still means that all of the “imagination shattering” stuff in the 1960’s had precedents more than half a century old. We do not have things mid-century people could not have come up with. They did not have things 1800’s people could not have come up with, so we shouldn’t be thinking that our era is particularly barren.

                                                                        2. 4

                                                                          I think it is reasonable to say that the reworking of daily life has slowed.

                                                                          The stove, the refrigerator and the car changed the routine of life tremendously.

                                                                          The computer might be more impressive by any number of measures but it didn’t rework daily life so much as add another layer on top of ordinary life. We still must cook meals and drive around.

                                                                          The linear extension of the car and the stove would be the auto-chef and the flying/auto-driving car.

                                                                          Both things are still further than is sometimes claimed by the press but the seem a bit closer than 2012. However, the automation offered by externally available power, which began in the 1800s, definitely has reached a point of diminishing returns.

                                                                          We may experience further progress through computers, AI and such. But this seems to hampered by a “complexity barrier” - an equivalent amount of daily life automation as various technologies offered earlier through power now requires systems that are much more computationally complex. Folding towels really does turn out to be the hard part of washing, etc and even with vast advances in computational ability, we may still be at diminishing returns.

                                                                          1. 2

                                                                            There have been significant advances since then (for instance, in medical treatments like cancer therapies and surgery—life expectancy in the US has risen from 70 to 79 since 1960), but nothing revolutionary, that would seem remotely as magical as the developments across the first half of the century.

                                                                            1. 3

                                                                              Magical is relative. All the psychiatrics I take were invented after 1970. They’re pretty magic!

                                                                            1. 4

                                                                              Doesn’t seem to be a lot of content here. Right now if you wanted to move away from Intel for whatever reason, the only viable choice for the {x}Pro lines isn’t ARM, it’s Power. And there’s no way they’re going to do that. There’s also no way in hell Apple will allow the Mac line to fragment into two separate architectures unless they’re 100% compatible. Fat (or mostly-compiled) binaries and identical frameworks would be the order of the day.

                                                                              In addition to that, I don’t know if anybody’s noticed but they’re pretty clever over at Intel. I’ve yet to see anything resembling a proof that ARM scaled up to compete with 86/Power for processing would still retain its power (as in watts) advantage.

                                                                              My prediction remains: The cheap machines will go ARM, and soon (by mid-2020). Apple has emulated CPUs smoothly before, and Windows 10 does it now. The Pro machines will not (for a few years at least), although I wouldn’t be surprised to see Apple make their own GPUs for them, and to possibly even slap 4-or-5-ipads’ worth of ARM+GPU into the Mac Pro (as co-processors) for GPGPU loads. Jobs that are “embarrassingly parallel” are the kind of things you want to run with a pro machine, but you won’t give up single-threaded performance that only deeply pipelined complex CPUs like 86 and Power can give you.

                                                                              1. 1

                                                                                Maintaining two archs of MacOS will be too taxing. I really doubt they’ll do architecture switch for only half the products.

                                                                                1. 2

                                                                                  There’s no way they don’t already have a full build for ARM hidden away somewhere, and probably still maintain one for Power as well, just to keep the code portable. They had it running secretly on Intel for years before they switched.

                                                                                  1. 1

                                                                                    Notice how they switched to Intel wholesale and sunset the old arch as fast as they could.

                                                                              1. 1

                                                                                Despite the dopey cover, Smith’s book is IMO the best introductory text in the subject.

                                                                                1. 2

                                                                                  Based on the index and introduction, that definitely looks like a good starting point. I will have a look. Thanks!