HNHacker News
TopNewBestAskShowJobs

daly

1,804 karma · joined December 14, 2011

submissionscomments
daly··on (Part 2) Embrace, Extend, Extinguish and Free Software
> it required a "lock in" to the Apple Store

The company distributed its own games as a full education program. However, the only way to install them on the iPad seemed to require that they be hosted in the Apple Store.

Android versions of the games would not run on the iPad.

daly··on Ask HN: Do you consider ageism in tech to be a bad thing/unjustified?Why?
Ah, such innocence.

tl;dr "Don't Trust Anyone Over 30" White T Cotton T-Shirt (https://www.amazon.com/CafePress-Trust-Anyone-Cotton-T-Shirt...)

>>> And I can't help but think that it kind of make sense to me? Honestly if I'm still an employee by the time I'm 35/40, then I messed up somewhere.

Apparently, by your own logic, in a few years no company will hire you as an employee. In fact, you won't be hired because you're not a good "culture fit" (aka too old).

>>> Your memory certainly isn't going to improve with time, it can only get worst AFAIK, sames for the number of neurons, your brain elasticity, your capacity to learn new stuff. For instance I can honestly say that my dad learned less in the past 12 years than I learned in the past 12-24 months, even when he puts his mind to it just doesn't work that well anymore.

My memory is greatly enhanced with Google. But my understanding comes with time and experience. Lets suppose you work in robotics, such as with a spiffy new area like self-driving electric cars. Do you understand how to interpret a Lidar point cloud? I do. Do you understand SLAM? I do. How about neural nets? I do. Up to speed on ROS? I am. Know how to handle the jerk derivative (no joke). I do. Can you compute the fourier transform of the vehicle dynamics? I can. Any clue about Denavit-Hartenberg matrix transformations? I have. How's your battery technology knowledge? Know the difference between NMC, NCA, and LFP? I do. How about the tradeoff of alternating current (AC) induction motors versus permanent-magnet direct current (DC) motors? Or perhaps knowing something about the tire composition for driving needs? What about autopilot... surely you know the neural nets and their interactions with the dynamics of the car. Do you know how use encryption to secure an over-the-air update? Do you know how to update the FPGA? Or even write a update for the car because you clearly know about the CAN bus protocol... I know these things. I'll admit it took me more than 12-24 months. Age has its limitations.

>>> In most cases you're going to be out of touch with young people(whether customers or employees), I think it's +/- inevitable and it's going to happen to me too at some point, that's just the circle of life.

Oh MY, a Lion King reference! SO 2019! Just what the 20-somethings are quoting on TikTok! Be sure to buy the T-shirt above.

Oh, yeah, and self-driving electric cars are SO yesterday. How could I be so out of touch? I should be in the Metaverse. I guess I need to get past my chapter 7 bookmark in Physically Based Rendering (https://www.pbrt.org/). That book, by the way, is an excellent example of Knuth's Literate Programming... but that was before your time.

>>> Now this may come off as really evil, but you're also more likely to get sick or hurt yourself. Do I want to have carpal tunnel syndrome or osteoarthritis from typing 8 hours a day for the last 40 years? Not really...

Lets see. I'm 68. I have been sick enough to stay in bed for a day once in the last 25 years. I type all day but don't have carpal tunnel. My neighbor is 40, has had back surgery and cannot work. My one friend had a stroke at 38 and cannot work. My 27 year old friend just got covid and seems to have lasting heart problems. My friend from high school died at 19. But I do wear glasses so I want a vision plan. Hey, old people are the problem.

>>> You've most likely got less stamina too.

Well, you got me there. I take naps frequently. But when I'm not napping I'm at my computer somewhere between 12 and 16 hours a day. Covid has had no effect on my lifestyle as I haven't been invited to parties or weddings for years. All I get now are funerals but they don't take much time.

>>> Statistically speaking you're less likely to change your mind on any subject, even if you want to, the older you get the more your beliefs are fixed, and the harder it is to change in any area. Not saying it's impossible, just harder.

I have a degree in Mathematics. I can tell that you haven't spent a lot of your 12-24 months learning anything about statistics. Yes, it is harder to change my mind but, since I study a lot, I can usually cite sources for my beliefs.

>>> Is there any non-emotional reason that causes people to think it's actually a bad thing?

Well, your wife and children might. Consider: Data from the BLS shows that approximately 20% of new businesses fail during the first two years of being open, 45% during the first five years, and 65% during the first 10 years. Only 25% of new businesses make it to 15 years or more. So if you go into business at 35 you have a 25% chance of being in business at 50.

Current lifetime statistics in the U.S. for males 75ish, females 80ish. Of course, that's only for sex. I have no idea what the statistics are for gender. I suspect that if your business fails when you are 50 you might "change your mind" about age-related discrimination. But that would contradict your previous point, so maybe not. Time will tell.

Now I will crawl back into my corner and scrape the Rust off my programming. Sigh.

daly··on Ontario court freezes access to donations for truckers' protest from GiveSendGo
I have no opinion about the politics of this protest.

However, it seems to me to be a tactical mistake. In the city it is very difficult, if not impossible, to stop truckers from getting fuel, food, and bathrooms. They can create a public problem by blowing horns and blocking business.

On a bridge the police can easily keep anyone from supplying any of these items.

It is also likely to violate traffic laws leading to arrests, fines (possibly per day fines), higher insurance premiums, and loss of CDL due to the violations. Further, due to the linear nature it makes it easier to divert the trucks one at a time and impound them until fines are paid. You only need two tow trucks to clear the blockade. Any truck that appears to threaten violent action is easily stopped by putting a hole in the radiator.

It seems a tactical mistake to "line up" in a protest.

daly··on How many hours does it take you to read a ~10 page research paper?
That depends. If you are an expert in the area you can pretty much find out the important information in a well-written abstract and conclusion.

For most papers I find that it takes a single read, partially to pick up new ideas, techniques, and overviews of related research.

For some papers I have tried several times, especially the poorly written ones that contain a lot of noise, particularly bad in the logic area with pages of unexplained judgments.

And there are piles of papers I simply don't have the time and background to understand.

I find the hardest and most time consuming part is reading the references. I try to find and read some prior papers from the bibliography. For really interesting research this turns into a book-sized pile of reading. With enough experience in the area I usually have already read the most interesting references.

The other hard part is the volume of published papers. It feels like sipping from a firehose.

daly··on Nine Things You Should Know About AI
Russell defines "intelligence" as "machines that achieve their objectives". My toaster certainly achieves its objective of making toast. It even uses feedback from a sensor to know when it has achieved the goal.

It is not the achieving of objectives that motivates me. It is the defining of objectives, otherwise known as choosing research goals. Usually I find that the original research goals change, grow more complex, and spawn yet more goals. It is the "side-effect" of learning that motivates my efforts, not the achievement of goals.

It is, of course, open to debate whether I'm a "general purpose intelligence". I would be the first to argue that I am not. There are areas, like writing good music, which despite my years-long best efforts are a complete failure. I can't understand why I fail.

daly··on Nine Things You Should Know About AI
I've been involved in things originally called "AI" for most of my "career", such as it was. I've worked in a lot of, as they were called at the time, Artificial Intelligence projects. Of course, once they moved into the implementation phase they were no longer AI. For example, I worked on natural language understanding, robots, machine vision, neural networks, expert systems, speech recognition, touch sensing, self-reproducing systems, path planning, assembly planning, malware detection, computer algebra, knowledge representation, and human-robot interaction.

Russell states: "I want to be clear that we are a long way from achieving general purpose AI".

I want to be clear that anyone who talks about "general purpose AI" is failing to define their terms clearly. In fact, I suspect that any definition would exclude most, if not all, humans.

Rod Brooks is probably closest when he discusses the idea of learning at the 1-year, 2-year, 5-year, etc. levels of self-learning.

When you hear the phrases "Artificial General Intelligence" or "General Purpose AI" you should insist on a clear, exact definition. Otherwise the discussion is about nothing, basically pop-philosophy.

daly··on Symbolic-Numeric Integration of Univariate Expressions via Sparse Regression
If you want a wide range of symbolic integration it would make more sense to use Rich's pattern matching method. Visit https://rulebasedintegration.org/

There is also a theory of integration, the Risch integral algorithm. See https://en.wikipedia.org/wiki/Risch_algorithm

Axiom, a computer algebra system, implements the Risch algorithm. To see how these two approaches compare, look at the Axiom Computer Algebra Test Suite Visit http://axiom-developer.org/axiom-website/CATS/index.html

daly··on Compiler Design in C
I used this book to teach compilers. Good book.
daly··on Elon Musk just took the entire EV sector down with these comments
I have followed the EV market for the last year or so. (For excellent coverage look for "Electric Viking" on youtube.)

GM delivered 28 EVs in the 4th quarter. Rivian delivered a couple hundred. Claims of EV pickup trucks in 2024 are "interesting" but that is pretty late in the game. China is already producing millions of EVs and planning world-wide shipments. BYD is building a breath-taking amount of EVs.

There appears to be three constraining factors.

The first is full production. The large automakers are "talking" about building new factories. Tesla has two new factories already pre-producing cars. These are expected to open for full production shortly. There is a big difference between promises and production.

The second is batteries. Tesla has their own battery factory. It has contracts with CISL (the world's largest battery producer), LGChem, Panasonic, and others. It has long-term, high-volume contracts for raw materials like Nickel. Tesla also has a lease on a lithium-rich plot of land. GM is "talking" about building a battery factory in Michigan.

The third is "in-house" development. Tesla software is setting the standards for the industry. Their over-the-air updates improve your car for free even after you bought it. They make their own circuit boards so if a chip isn't available they can design around it. The major auto makers outsource a lot of work. It will take time to build in-house software and hardware teams.

Don't confuse promises with production. Tesla is years ahead.

daly··on Self-driving car users shouldn't be accountable for accidents, report suggests
If I set my cruise control to 45 in a 45 mph zone and then cruise through a section that is 30 but still maintain 45 then I shouldn't get at traffic ticket?

If I set my car to automatically choose the speed based on map data and the map data does not know about the transition from 45 to 30 based on a map error then I shouldn't get a traffic ticket?

At the moment, if I set a machine in motion I am generally liable for any effects. It is similar to the "pilot in command" in aircraft and boats.

daly··on If You Want to Fight Monopolies, Fight Occupational Licensing
There are reasons that favor occupational licensing. Consider, for instance, Electricians. There are standards which exist based on past failures, a sort-of institutional learning.

I'll admit that it can be annoying when the inspector fails your self-installation because "it is not up to code". It feels like a sneaky way to enforce hiring an electrician. It is also annoying that a vet can't practice on humans. I doubt that I'm much more complex than my cat.

On the other hand, licensing keeps me from performing brain surgery on you during the weekend. Unlicensed people don't know the "institutional learning", so they are likely to repeat potentially fatal mistakes. Medicine is sufficiently complex that one person can't know it all, or even other specialties.

daly··on Japan solves 5G airliner conundrum: Keep masts 200m from airport approach paths
The LORAN long range navigation system placed transmitters all around the world.

The hardest part of constructing the transmitter was designing "high Q" notch filters for any local frequencies.

Perhaps the 5G transmitters can install such high Q filters.

daly··on Japan solves 5G airliner conundrum: Keep masts 200m from airport approach paths
Do 5G cell phones in the plane have any effect, especially if they are "noisy" near the altimeter frequency?
daly··on Phone and internet links with Tonga appear likely to be limited for weeks
This is where a ham radio network would be useful.
daly··on Is Open Source Free If We Aren’t Allowed to Break It?
There is the "moral" side of the question and the "ethical" side of the question.

Morals are rules YOU live by... so, if you feel you should make a known damaging change to your FOSS project and that fits your "morals"... then, yes, (deliberately) break the code.

Ethics are rules EVERYBODY lives by... so, if you feel you want to make a known damaging change to your FOSS project... then, no, don't (deliberately) break the code.

If your Morals don't align with Ethics then you see this as an issue.

If your Morals align with Ethics then there is no issue.

daly··on Ask HN: Do Google recruiters keep contacting you?
I interviewed at Google. I passed the phone interview. I did an in-person interview. They told me I was "not a good culture fit" (i.e. I'm too old but they can't say that).

Then they contacted me a few months later and asked for another interview. I said no.

Then they contacted me a few months later, again I said no. I asked them to put a note in my file and exclude me from further contact. So far, that seems to have worked.

daly··on Coronavirus research deemed too dangerous by DARPA, approved by Fauci
Are you of the belief that Dr. Fauci has some sort of absolute control over funding decisions? If so, please show your source.
daly··on Copyright / Trademark Your Sperm?
Wow, you're REALLY going to have to work on your punch line.

Perhaps you could do something with a theme about how you didn't find the result "creative"? :-) Or requiring a GMO tattoo?

This is an attempt at humor. Something of a technical nature taken to the absurd just to start the year off on a light note. You know, something funny like crisper-splicing in an image of a trophy that says "swimmer of the year". It's a kind of "easter egg" for future geneticists.

daly··on [dead]
You're aware that regen braking is an option, right? You can turn it off.
daly··on Literate programming: Knuth is doing it wrong (2014)
Once a program has been developed and the developers have moved on to other tasks it needs to be maintained. The fundamental problem is that if you modify code you didn't write, you don't see the big picture and you don't understand the reasons why the code is written the way it is. Thus changing code without a larger context is almost always going to introduce new bugs.

The only way to correctly change code is to deeply understand the implications of the change. This requires a deep understanding of the code and an awareness of the big picture. Yet the "why" of code is rarely ever written down in standard programming practice. The goal is only to elaborate the "how" so the machine can perform the task. The programmer communicates with the machine.

Literate programming, as used in Axiom, is an attempt to communicate with other users, developers, and researchers in addition to the machine. The goal is to have the program read like a story so that others can understand the rational, the theory, the choices, the implications, and the implementation context as well as the "how".

This code is intended to live forever but it is highly probable that you will not. Write to communicate with the next person to pick up the torch. When you explore code, write down what you learn. When you change code, explain why you made your choices. When you write new code explain what others need to know to maintain it.

daly··on Literate programming: Knuth is doing it wrong (2014)

    The effect of this simple shift of emphasis can be so profound as to change one's whole approach to programming. Under the literate programming paradigm, the central activity of programming becomes that of conveying meaning to other intelligent beings rather than merely convincing the computer to behave in a particular way. It is the difference between performing and exposing a magic trick.
--Ross Williams
daly··on Literate programming: Knuth is doing it wrong (2014)

    Another thing I've been enjoying lately is literate programming. Amazingly it turns out to be faster to write a literate program than an ordinary program because debugging takes almost no time.
--Bill Hart
daly··on Literate programming: Knuth is doing it wrong (2014)

    Yet to me, literate programming is certainly the most important thing that came out of the TeX project. Not only has it enabled me to write and maintain programs faster and more reliably than ever before, and been one of my greatest sources of joy since the 1980s -- it has actually been indispensable at times. Some of my major programs, such as the MMIX meta-simulator, could not have been written with any other methodology that I've ever heard of. The complexity was simply too daunting for my limited brain to handle; without literate programming, the whole enterprise would have flopped miserably.

    If people discover nice ways to use the newfangled multithreaded machines, I would expect the discovery to come from people who routinely use literate programming. Literate programming is what you need to rise above the ordinary level of achievement. But I don't believe in forcing ideas on anybody.
-- Knuth, Donald
daly··on Literate programming: Knuth is doing it wrong (2014)
Lisp has the same ability to define things in any order.

Java wants specially named paths to files. The Makefile can create the directory structure and use the "tangle" program to extract the files to the correct place. That's what I did in the Clojure example.

daly··on Literate programming: Knuth is doing it wrong (2014)
There is a trivial C program that is also in the document. It does the actual "chunk" extraction from the Latex. The Makefile uses it to extract named chunks.

The program scans the Latex looking for named "chunk" blocks. Each named block is put in a hash table under the name. Once the scan is complete you use a provided command line argument to extract the named chunk to a file. Of course, the chunk can include other chunks and these get extracted and expanded inline. So

tanglec myliteratefile.tex achunkname > myfile.lang

This creates a hash table from "myliteratefile.tex" containing named chunks, then prints the chunk "achunkname" to stdout (recursively expanding chunks embedded in other chunks). The Makefile can extract Java files and put them in the proper directories.

It really is a trivial C program. Make a hash, print a hash key. This would be a simple interview test question.

(Actually I use Lisp, mostly because I always code in Lisp these days, but lets not start that war.)

daly··on Literate programming: Knuth is doing it wrong (2014)
Well, you're editing the Latex version of the literate program. But since my development "style" is to make small changes, rebuild, test, and re-create the code and PDF, my "thinking" isn't focused on the "non-typeset" version.

Pick up a physics textbook. Copy down all of the equations. Throw away the textbook and learn physics only using the equations. That's what programmers do. They write down the "equations" but fail to explain the ideas.

Equations, like programs, are really just an "iconic form" of an idea. The idea, however, lives in the surrounding text.

daly··on Literate programming: Knuth is doing it wrong (2014)
The slides basically show examples from other literate programs.

I also intended to give a live demonstration of literate code development, as outlined above.

It only takes a minute or so to start from the PDF to create a running, tested version of Clojure running in Java, along with a new PDF. I intended to demonstrate changing both code and data in real time.

daly··on Literate programming: Knuth is doing it wrong (2014)
You wrote "There's a fundamental problem with generating a beautifully typeset document for a codebase: it's dead. It can't render inside just about any actual programming environment (editor or IDE) on this planet, and so we can't make changes to it while we work on the codebase."

Sorry, that's not correct. When writing a literate program you should also include a chunk containing a Makefile. Extract the Makefile and let it construct the program.

I did this with the whole Clojure programming language. The whole source code for all of Clojure, as well as the test cases, are in the PDF. The sequence (from scratch is):

Extract the Makefile from the Latex document. Run the Makefile. This:

  1) extracts the code and tests

  2) compiles the code

  3) runs the tests

  4) recreates the PDF from the Latex
So you edit the Latex text and/or code with any editor and then re-run the Makefile. This will rebuild your program, runs the tests, and re-makes the PDF.

If you have the PDF open next to your editor it is likely that the PDF viewer will reload the changes immediately.

This ensures that (a) your program compiles, (b) your program passes tests, and (c) the PDF builds correctly.

I've been working on literate programs for years. See https://en.wikipedia.org/wiki/Axiom_(computer_algebra_system.... I've even given a talk on the subject See https://www.youtube.com/watch?v=Av0PQDVTP4A).

I find literate programming to be the MOST important change in programming since I started in 1970.

daly··on The One True Lisp Style Guide
Actually, that's no longer true for me, now that I think about it.

All of my code is now written as a literate program. I never write naked code anymore.

Thus my "lisp" files are actually latex and read:

\documentclass{book}

\begin{document}

words.....

\begin{chunk}{somelabel}

( thing thing ... thing )

\end{chunk}

\end{document}

------------------------------------------------------

To quote Knuth: (http://www.literateprogramming.com/)

I believe that the time is ripe for significantly better documentation of programs, and that we can best achieve this by considering programs to be works of literature. Hence, my title: "Literate Programming."

Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.

The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. Such an author, with thesaurus in hand, chooses the names of variables carefully and explains what each variable means. He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other.

daly··on The One True Lisp Style Guide
50 year lisper here with my style guide...

( thing thing ... thing )

← PreviousPage 9 of 27Next →