HNHacker News
TopNewBestAskShowJobs

martinflack

482 karma · joined July 11, 2008

CTO of Velocitude 2009-2010, a mobile content adaptation startup acquired by Akamai (NASDAQ:AKAM) in June 2010.

Product Director at Akamai for 3 years, then switched to Engineering for past 14 years. Chief Architect in Architecture & Technology Strategy of Akamai's Cloud Technology Group.

submissionscomments
martinflack··on Microsoft needs to improve customer support
Oh, I imagined it would be automated so as a customer service rep you don't even think about it.
martinflack··on Microsoft needs to improve customer support
I've got a suggestion for that - offer to send a text message simultaneously when the chat window is active. The thing is, we all switch tabs, move away from the computer, etc. We may even forget about it, if the wait is very long. But these days we generally keep our smartphone at our side even if we move into another room to do laundry, etc. Potentially even allow the chat to shift over from the computer browser to the phone browser, as well.
martinflack··on What Canada’s largest art heist reveals about the art world’s shady side
Or, that art exhibited in museums open free of charge to the general public enjoy the same tax benefits as freeports - putting freeports out of business.
martinflack··on On tea and the art of doing nothing
There's a brand called Zest tea which specializes in this. Some flavors are tasty. They have a sampler pack.
martinflack··on The Age of Distracti-Pression
And if they kept it, at least they could punch the "yes" with a preceding m-dash. Punctuation fluency is dropping too!
martinflack··on Wisp: Whitespace to Lisp
A cool project... but instead I suggest to everyone who uses Lisp, just set your editor's syntax highlighter to make the parentheses fade into the background color almost completely. They're still there, for correctness, structured editing, and ease of sharing with others; but they don't stand out.
martinflack··on Code doesn’t have to be a mess
This is huge. Often the coder automating some manual process is the first person to sensibly create an unambiguous, correct taxonomy just to discuss it precisely.
martinflack··on Take more screenshots
I've found "print to PDF" to be great for web pages I want to keep, as well. You can then search, copy, print, etc.
martinflack··on Take more screenshots
I often wish I had a pet dog husky so I could walk him through some tricky python and have him figure out my bug with me.
martinflack··on In microtransit, passengers order a shuttle van instead of having to take a bus
> No, public transit systems can only be good on paper. Then they get implemented, the fares are held artificially low for equity reasons, bums move in, polite society abandons the system and it turns into a rolling cesspool. Every time.

Have you been to London? Paris? Zurich?

I'm trying to understand the basis for your absolutism and pessimism. In those cities, polite society definitely hasn't abandoned the public transit systems; at least not when I had been.

martinflack··on Six programming languages I’d like to see
Specifically, for reactive "spreadsheet-like" code in Lisp, Kenny Tilton's Cells project comes to mind: https://github.com/kennytilton/cells
martinflack··on Tell HN: We are trying to get tail calls into the WebAssembly standard
> The spec tests say: "Implementations are required to have every call consume some abstract resource

It's a nice detail for you to highlight, but surely that exists in the test spec specifically because the opcode spec doesn't mandate tail-call handling. If the latter did (a la Scheme), then the test spec would be updated to no longer have this note...?

martinflack··on Roe's overturn is tech's privacy apocalypse
> States themselves are federations of legislative districts

The variety of ways that US States internally allow municipalities to have their own rules is actually quite interesting: https://en.wikipedia.org/wiki/Home_rule_in_the_United_States

martinflack··on Virgil: A fast and lightweight programming language that compiles to WASM
The 'Coming From' page compares Virgil to a couple other languages: https://github.com/titzer/virgil/blob/master/doc/tutorial/Co...
martinflack··on The Illustrated QUIC Connection
I found minica very useful to do something like this (no affiliation): https://github.com/jsha/minica
martinflack··on The Illustrated QUIC Connection
You import your "CA cert" into the browser or the underlying operating system, and then the browser accepts the certs signed by it.
martinflack··on 3,200-year-old Egyptian tablet records excuses for why people missed work
In all seriousness, I think digital archaeology will be a huge field.
martinflack··on Android loses 8% of its global OS market share in five years
For a long-form answer, Marques Brownlee has a video[0] that discusses the technical, commercial, and social aspects.

[0] https://www.youtube.com/watch?v=BuaKzm7Kq9Q

martinflack··on Common Lisp Resources
I like the lispiness and features of ITERATE but it breaks source location for debugging errors in SBCL with SLIME. Instead the ITER form is indicated, which dampens my enthusiasm for it somewhat.

  (defpackage :test
    (:use :cl :iterate))

  (in-package :test)

  (defun test-iter ()
    (declare (optimize (debug 3) (safety 3) (speed 0)))
    (iter:iter   ;;; <-- highlights whole ITER form
      (sleep 2)
      (error "test")))

  (defun test-loop ()
    (declare (optimize (debug 3) (safety 3) (speed 0)))
    (loop
      :do (sleep 2)
      :do (error "test")))   ;;; <-- highlights ERROR form
martinflack··on What happens when a group of Fox News viewers watch CNN for a month?
> Guardian ... I just looked up their media bias. A below 'mostly factual' score card ...

Where'd you see that? Ad Fontes Media has Guardian fairly high. Did you look at something else?

martinflack··on When you get locked out of your Google account, what do you do? (2021)
It's a good idea to use something like gmvault [0] to ensure you have regular downloads of your mail corpus locally.

[0] http://gmvault.org/

martinflack··on Moreutils: A collection of Unix tools that nobody thought to write long ago
You might need a -f on that final mv.

While you're at it, may as well create a backup of the $1 file.

martinflack··on Israel passes law denying naturalization to Palestinian spouses
There are UN conventions[1][2] on statelessness that do require the bound parties to provide citizenship under very narrow conditions, essentially to avoid a stateless person. IANAL so I don't know if they apply in this type of example.

[1] https://en.wikipedia.org/wiki/Convention_Relating_to_the_Sta... [2] https://en.wikipedia.org/wiki/Convention_on_the_Reduction_of...

martinflack··on What is the purpose of check-in before flying? (2014)
I believe it relates to being able to approach a gate agent and having them rebook you on a later/tomorrow flight as a courtesy, after you checked-in but missed a flight because you dozed off, didn't watch the time, had a medical issue, couldn't find the gate in a huge airport, missed the connection from an inbound flight, etc. Really it's an extension of the US customer service ethos.
martinflack··on Things you notice when you quit the news (2016)
I'm not the person you answered but I find your comment well put. Do you have further reading on this distinction?
martinflack··on Ask HN: Is it just me or do 99% of SWE jobs offers seem completely pointless?
Well both can be true. https://www.vice.com/en/article/8x9j3k/depressed-people-see-...
martinflack··on On Pitman's “Special forms in Lisp” (2011)
I think the difference is what the function can "see."

e.g. if you have x and y in the environment as variables, and call your fexpr with (max x y) as the single argument called m: (myfexpr (max x y))

In haskell, m is not calculated (i.e. "max" is not run, nor x or y consulted) until "used". But the function doesn't "know" that it's max that's waiting to run, just that m is available if needed.

In a fexpr, you get something like a macro does, so you can see '(max x y) if you care to examine m, and you must call (eval m) to get the answer, but you could theoretically decide to do something else, like form a new expression if you walk m and make a decision based on the code itself (i.e. that it's a call to "max").

martinflack··on Linuxgems – A succinct cheat sheet for newbie Linux coders and sysadmins
TIL! Thanks
martinflack··on Linuxgems – A succinct cheat sheet for newbie Linux coders and sysadmins
> if looking at a file that might be renamed and stop updating (i.e. log files that are rotated). Without a filename the file descriptor is followed so when for instance access.log becomes access.log.1 your display keeps following access.log.1 not the new access.log which is probably what you want.

I believe that's true if you name a file as well (just tested it on Ubuntu). You keep following the original file you named, even if it becomes renamed; you don't follow a new file by the same name.

Using something like "watch -n5 tail filename" polls every few seconds to show the bottom of a file, and goes for the current file at that filename each time.

martinflack··on Lessons learned after working one year as a Common Lisp Developer (2018)
Well, let's clarify something - is it the syntax or the self-algorithm?

To compare, this is what a psuedo-popular-lang might look like:

    let year  = parse-integer(string, start=0, end=4)
    let month = parse-integer(string, start=7, end=7)
    let day   = parse-integer(string, start=9, end=10)
    
    return ((year * 31556926 +    ;; no. of seconds in a year
             month * 2629743 +    ;; no. of seconds in a month
             day * 86400) -       ;; no. of seconds in a day
            1900 * 31556926)      ;; lisp timestamps start at 1900
Honestly that looks pretty run-of-the-mill to me.

Having said that, rolling your own date logic is insanity, as the problem is difficult[1] yet solved[2].

[1] https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b... [2] https://common-lisp.net/project/local-time/manual.html

← PreviousPage 4 of 8Next →