HN user

drnewman

304 karma

https://delonnewman.name

Posts55
Comments48
View on HN
groups.google.com 1y ago

The Rekursiv Chip–A Smalltalk Machine

drnewman
3pts1
www.theverge.com 1y ago

Bad AI is wrecking a whole generation of gadgets

drnewman
2pts0
earthsky.org 1y ago

Earth's ice caps are temporary and rare, study suggests

drnewman
5pts0
psycnet.apa.org 2y ago

Zoom Fatigue is From Boredom not Anxiety

drnewman
2pts0
delonnewman.name 2y ago

Emacs Is More Like a Terminal Than an Editor

drnewman
4pts0
newatlas.com 2y ago

Circadian Rhythm Superpowers of Bears

drnewman
3pts0
newatlas.com 2y ago

Why Shock Therapy Effectively Treats Depression

drnewman
2pts0
delonnewman.name 2y ago

How to Generate Unique Names with a Value Object

drnewman
1pts0
delonnewman.name 2y ago

Perl–A Venerable Technology

drnewman
2pts0
logicmag.io 5y ago

COBOL: Built to Last

drnewman
1pts0
github.com 5y ago

Show HN: Invokable--Treat Any Ruby Class or Object as a Function

drnewman
1pts0
eli.thegreenplace.net 7y ago

Unification Algorithm in Python

drnewman
6pts0
arstechnica.com 7y ago

Being a morning person might have some health advantages

drnewman
2pts0
arstechnica.com 7y ago

The next version of HTTP won’t be using TCP

drnewman
4pts0
www.oreilly.com 7y ago

Diligence, Patience, and Humility – Larry Wall (1999)

drnewman
2pts0
github.com 7y ago

Projects and Companies using Mojolicious

drnewman
1pts0
testml.org 7y ago

TestML

drnewman
1pts0
news.opensuse.org 7y ago

OpenSUSE Legal Review System Developed Using Perl and Mojolicious

drnewman
4pts0
news.ycombinator.com 7y ago

Ask HN: Ruby Is to Perl What Scheme Is to Common Lisp?

drnewman
2pts2
leanpub.com 7y ago

Production Rules (Read-Eval-Print-λove)

drnewman
61pts11
blog.higher-order.com 7y ago

What Purity Is and Isn’t

drnewman
1pts0
jvns.ca 7y ago

Async IO on Linux: select, poll, and epoll

drnewman
1pts0
theoreticalminimum.com 7y ago

The Theoretical Minimum

drnewman
1pts0
indradhanush.github.io 7y ago

Writing a Unix Shell – Part I

drnewman
1pts0
www.celljs.org 7y ago

Cell – A self-driving web application framework

drnewman
3pts0
people.math.gatech.edu 7y ago

Online Mathematics Textbooks

drnewman
2pts0
jlongster.com 7y ago

What’s in a Continuation

drnewman
2pts0
www.facebook.com 7y ago

Mastering Programming

drnewman
1pts0
www.practicalai.io 7y ago

Implementing classification using a SVM in Ruby

drnewman
1pts0
www.economist.com 7y ago

How to determine a protein’s shape

drnewman
1pts0

I would say more broadly the innovation was two fold: 1) to make these features available in a syntactic form that would seem more familiar to programmers and 2) the powerful insight that when combined with Smalltalk style meta programming you can have a language that on the surface seems very conventional but underneath is just as powerful as Smalltalk or Lisp.

Although I would say he didn’t get 100% there although that this point Ruby isn’t too far from that.

These are ideas that I think are worth trying to take even further. In fact, I’ve been experimenting with that.

I agree blocks are closures. But they’re call stack aware closures. Which gives them _some_ of the power of continuations.

I’m also sure you’re right that they’re not implemented using continuations. However, my understanding is that Ruby was originally conceived as a language with continuations. I’ll see if I can find a reference for that. But from what I recall reading in a blog post from someone who was at a programming language conference in 1997 when Matz introduced the language that’s how he described it.

I'd think the preferred way would be to implement them as a separate class. That'd be more in line with the design of other core classes (like TrueClass & FalseClass). It'd also have created the opportunity to create a "Callable" protocol early in the design which would have been great, and would harmonize with the design of Ruby's many other protocols Enumerable, Comparable, Range-compatible values, etc.

Blocks in Smalltalk (to my understanding) are closures. Blocks in Ruby are closures that also bring the call stack they were created in with them.

One way to think of about it is this: anonymous functions as originally implemented in early Lisps are code as an object, closures are code with its lexical environment as an object. You can think of a Ruby block as code with its lexical environment and its call stack as an object.

So they don't just handle return differently than closures, they have access to the call stack of the site where they're created like a continuation. This is why they handle return differently, but this is just one of the things that falls out from that. It also comes with other control flow features like "redo", "retry", "next", "rescue", "finally", and others. These are all call stack control (control flow) conveniences, just like return is. All of them can be thought of as being abstractions built on top of continuations (just ask a Scheme hacker).

Originally Ruby was basically a Lisp without macros, but with continuations, a Smalltalk like object system and a lot of syntactic affordances inspired by Perl, and other languages. Blocks are one of the conveniences built on top of the Lispy semantics.

Note that I'm explaining how blocks work as an abstraction (vidarh below explains how they work as a concretion, as implemented in MRI).

It seems you're pretty upset about your experience with Ruby. I'm sorry that's been the case for you.

However, in Ruby blocks aren't just about flexibility, more importantly they're about generality. They're not there to resolve an edge case at all (Ruby also has keywords for loops). They're a generalization of control flow that is just slightly less general than continuations. In practical use they provide an alterative to Lisp macros for many use cases.

These were some of the problems Matz was trying to sort out with his design of Ruby--creating a language that was fun and easy to use for day-to-day programming, with as much of the meta-programming power of Lisp and Smalltalk as possible. Blocks are one of his true innovatations that came from trying to balance that tension.

SEEKING WORK | Maine | Remote

Software Engineer, Product Designer & Analyst able to help clients complete stalled projects, design & deliver user-friendly applications, and work through tough problems.

Looking for short term engagements

Résumé/CV: https://delonnewman.name/resume.pdf

Email: contact@delonnewman.name

Portfolio: https://delonnewman.name

Github: https://github.com/delonnewman

Highlights:

- Over 23 years of experience

- Over 9 years of experience in Healthcare

- Able to communicate effectively with technical and non-technical personnel

- Experienced tech lead, mentor & teacher

- Polyglot developer, specializing in Ruby & JavaScript

- Enjoy working with arcane data formats (e.g. EDI)

- System integration & automation

  Location: Maine
  Remote: Yes
  Willing to relocate: No

  Technologies:
    Primary Languages: Ruby, JavaScript (TypeScript)
    Databases: SQL (PostgreSQL, MySQL, MS SQL, Oracle), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js, Express
    Front-end: Vanilla, HTMX, React, Svelte, ClojureScript
    Other Languages: Clojure, Java, C, PHP, Perl, Bash, C#, Python, Swift, VBA

  Résumé/CV: https://delonnewman.name/resume.pdf
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman
  LinkedIn: https://www.linkedin.com/in/delonnewman

  Software Engineer, Product Designer & Analyst able to help clients complete stalled projects,
  design & deliver user-friendly applications, and work through tough problems.

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoys working with arcane data formats (e.g. EDI)
  - System architecture & design
  - Looking for part-time or short term engagements

SEEKING WORK | Maine | Remote

Software Engineer, Product Designer & Analyst able to help clients complete stalled projects, design & deliver user-friendly applications, and work through tough problems.

Looking for part-time & short term engagements

Résumé/CV: https://delonnewman.name/history

Email: contact@delonnewman.name

Portfolio: https://delonnewman.name

Github: https://github.com/delonnewman

Highlights:

- Over 23 years of experience

- Over 9 years of experience in Healthcare

- Able to communicate effectively with technical and non-technical personnel

- Experienced tech lead, mentor & teacher

- Polyglot developer, specializing in Ruby & JavaScript

- Enjoy working with arcane data formats (e.g. EDI)

- System integration & automation

  Location: Maine
  Remote: Yes
  Willing to relocate: No

  Technologies:
    Primary Languages: Ruby, JavaScript (TypeScript)
    Databases: SQL (PostgreSQL, MySQL, MS SQL, Oracle), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js, Express
    Front-end: Vanilla, HTMX, React, Svelte, ClojureScript
    Other Languages: Clojure, Java, C, PHP, Perl, Bash, C#, Python, Swift, VBA

  Résumé/CV: https://delonnewman.name/history
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman
  LinkedIn: https://www.linkedin.com/in/delonnewman

  Software Engineer, Product Designer & Analyst able to help clients complete stalled projects,
  design & deliver user-friendly applications, and work through tough problems.

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoys working with arcane data formats (e.g. EDI)
  - System architecture & design
  - Looking for part-time or short term engagements

Thanks so much for sharing that. I'm so glad that you and your dear one have gotten to such a beautiful place! I had to learn a similar lesson with regard to self-love and care from dealing with type-1 diabetes. My aha came in the form of the phrase "love is maintenance".

True, but I think the point of the article is that, in modern life, we tend to err strongly in the other direction.

  Location: New Mexico
  Remote: Yes, preferably or hybrid in Northern Maine
  Willing to relocate: Yes, Northern Maine

  Technologies:
    Primary Languages: Ruby, JavaScript
    Databases: SQL (PostgreSQL, MySQL, MS SQL, Oracle), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js
    Front-end: Vanilla JS, HTMX, React, ClojureScript
    Other Languages: TypeScript, Clojure, Java, C, Python, Swift, Perl, Bash, PHP, C#, VBA

  Résumé/CV: https://delonnewman.name/resume.pdf
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman
  LinkedIn: https://www.linkedin.com/in/delonnewman

  Software Engineer, Product Designer & Analyst who’s able to help clients complete stalled projects,
  design & deliver user-friendly applications, and work through tough problems.

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Able to communicate effectively with technical and non-technical personnel
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoys working with arcane data formats (e.g. EDI)
  - System architecture & design
  Location: New Mexico
  Remote: Yes, preferably or hybrid in Northern Maine
  Willing to relocate: Yes, Northern Maine

  Technologies:
    Primary Languages: Ruby, JavaScript
    Databases: SQL (PostgreSQL, MySQL, MS SQL, Oracle), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js
    Front-end: Vanilla JS, HTMX, React, ClojureScript
    Other Languages: TypeScript, Clojure, Java, C, Python, Swift, Perl, Bash, PHP, C#, VBA

  Résumé/CV: https://delonnewman.name/resume.pdf
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman
  LinkedIn: https://www.linkedin.com/in/delonnewman

  Software Engineer, Product Designer & Analyst who’s able to help clients complete stalled projects,
  design & deliver user-friendly applications, and work through tough problems.

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Able to communicate effectively with technical and non-technical personnel
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoys working with arcane data formats (e.g. EDI)
  - System architecture & design
  - Gaining experience with NLP & ML

SEEKING WORK | New Mexico | Remote

Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects, design & deliver user-friendly applications, and work through tough data-oriented problems.

Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

Résumé/CV: https://delonnewman.name/resume

Email: contact@delonnewman.name

Portfolio: https://delonnewman.name

Github: https://github.com/delonnewman

Highlights:

- Over 23 years of experience

- Over 9 years of experience in Healthcare

- Able to communicate effectively with technical and non-technical personnel

- Experienced tech lead, mentor & teacher

- Polyglot developer, specializing in Ruby & JavaScript

- Enjoy working with arcane data formats (e.g. EDI)

- System integration & automation

  Location: New Mexico
  Remote: Yes
  Willing to relocate: No 

  Technologies:
    Primary Languages: Ruby, JavaScript
    Databases: SQL (PostgreSQL, MySQL), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js
    Front-end: Vanilla JS, React, ClojureScript, SASS, Google Closure 
    Other Languages: TypeScript, Clojure, C, Java, Python, Swift, Perl, Bash, PHP, C#, VBA

  Résumé/CV: https://delonnewman.name/resume (HTML & PDF)
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman

  Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects, design
  & deliver user-friendly data-oriented applications, and work through tough data-oriented problems.
  
  Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Able to communicate effectively with technical and non-technical personnel
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoys working with arcane data formats (e.g. EDI)
  - System architecture & design
  Location: New Mexico
  Remote: Yes
  Willing to relocate: No

  Technologies:
    Primary Languages: Ruby, JavaScript
    Databases: SQL (PostgreSQL, MySQL), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js
    Front-end: Vanilla JS, React, ClojureScript, SASS, Google Closure 
    Other Languages: TypeScript, Clojure, C, Java, Python, Swift, Perl, Bash, PHP, C#, VBA

  Résumé/CV: https://delonnewman.name/resume (HTML & PDF)
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman

  Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects, design
  & deliver user-friendly data-oriented applications, and work through tough data-oriented problems.
  
  Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Able to communicate effectively with technical and non-technical personnel
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoys working with arcane data formats (e.g. EDI)
  - System architecture & design

SEEKING WORK | New Mexico | Remote

Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects, design & deliver user-friendly applications, and work through tough data-oriented problems.

Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

Résumé/CV: https://delonnewman.name/resume

Email: contact@delonnewman.name

Portfolio: https://delonnewman.name

Github: https://github.com/delonnewman

Highlights:

- Over 23 years of experience

- Over 9 years of experience in Healthcare

- Able to communicate effectively with technical and non-technical personnel

- Experienced tech lead, mentor & teacher

- Polyglot developer, specializing in Ruby & JavaScript

- Enjoy working with arcane data formats (e.g. EDI)

- System integration & automation

SEEKING WORK | New Mexico | Remote

Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects, design & deliver user-friendly applications, and work through tough data-oriented problems.

Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

Résumé/CV: https://delonnewman.name/resume (HTML & PDF)

Email: contact@delonnewman.name

Portfolio: https://delonnewman.name

Github: https://github.com/delonnewman

Highlights:

- Over 23 years of experience

- Over 9 years of experience in Healthcare

- Able to communicate effectively with technical and non-technical personnel

- Experienced tech lead, mentor & teacher

- Able to design & build user-friendly data-oriented applications

- Polyglot developer specializing in Ruby, Rails & JavaScript

- Enjoy working with arcane data formats (e.g. EDI)

- System architecture & design

  Location: New Mexico
  Remote: Yes
  Willing to relocate: No 

  Technologies:
    Primary Languages: Ruby, JavaScript
    Databases: SQL (PostgreSQL, MySQL), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js
    Front-end: Vanilla JS, React, ClojureScript, SASS, Google Closure 
    Other Languages: TypeScript, Clojure, C, Java, Python, Swift, Perl, Bash, PHP, C#, VBA

  Résumé/CV: https://delonnewman.name/resume (HTML & PDF)
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman

  Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects, design
  & deliver user-friendly data-oriented applications, and work through tough data-oriented problems.
  
  Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Able to communicate effectively with technical and non-technical personnel
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoys working with arcane data formats (e.g. EDI)
  - System architecture & design

SEEKING WORK | New Mexico | Remote

Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects, design user-friendly applications, and work through tough data-oriented problems.

Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

Portfolio: https://delonnewman.name

Résumé/CV: https://delonnewman.name/resume (HTML & PDF)

Email: contact@delonnewman.name

Highlights:

- Over 23 years of experience

- Over 9 years of experience in Healthcare

- Able to communicate effectively with technical and non-technical personnel

- Can help you reason through tough problems

- Experienced tech lead, mentor & teacher

- Able to design & build user-friendly data-oriented applications

- Polyglot developer

- Enjoy working with arcane data formats (e.g. EDI)

- System integration & automation

- Experienced working with Ruby, JavaScript and Java/JVM ecosystems

- System architecture & design

  Location: New Mexico
  Remote: Yes
  Willing to relocate: No 

  Technologies:
    Primary Languages: Ruby, JavaScript/TypeScript, Clojure
    Databases: SQL (PostgreSQL, MySQL), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux, macOS, iOS
    Back-end: Rails, Sinatra, Node.js
    Front-end: Vanilla JS, React, ClojureScript, SASS, Google Closure 
    Other Languages: C, Java, Python, Swift, Perl, Bash, PHP, C#, VBA

  Résumé/CV: https://delonnewman.name/resume (HTML & PDF)
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman

  Seasoned Software Engineer & Systems Analyst able to help clients complete stalled projects,
  design user-friendly applications, and work through tough  data-oriented problems.

  Looking for part-time (preferably less than 20 hours) or short term (3 months or less) engagements

  - Over 23 years of experience
  - Over 9 years of experience in Healthcare
  - Able to communicate effectively with technical and non-technical personnel
  - Can help you reason through tough problems
  - Experienced tech lead, mentor & teacher
  - Polyglot developer
  - Enjoy working with arcane data formats (e.g. EDI)
  - Able to design and build user-friendly data-oriented applications
  - System integration & automation
  - System architecture & design

Ruby has a meta object protocol. The net effect of the language isn't as powerful as Common Lisp since you don't have code-as-data in method definitions, but Ruby's object system is comparably powerful as CLOS (though made in the image of Smalltalk) it comes with a meta protocol for methods, objects, classes, modules, even lexical variables.

https://ruby-doc.org/3.2.2/Object.html

https://ruby-doc.org/3.2.2/Method.html

https://ruby-doc.org/3.2.2/Class.html

https://ruby-doc.org/3.2.2/Module.html

https://ruby-doc.org/3.2.2/Binding.html

  Location: New Mexico
  Remote: Yes
  Willing to relocate: No 

  Technologies:
    Primary Languages: Ruby, JavaScript, Clojure
    Databases: SQL (PostgreSQL, MySQL, SQL Server, Oracle, MS Access), Datomic, Redis, MongoDB
    Infrastructure: AWS, Docker, Linux SysAdmin
    OS: Linux (Debian, Ubuntu, Redhat, Fedora), macOS, iOS
    Back-end: Rails, Sinatra, Node.js
    Front-end: Vanilla JS, React, ClojureScript, SASS, Google Closure 
    Other Languages: TypeScript, C, Java, Python, Swift, Perl, Bash, PHP, C#, VBA, C++, ColdFusion, Scheme, Common Lisp
    Interested in gaining experience with any of the following:
      - Data Science, ML, NLP applications
      - Compilers, Interpreters, Query Engines

  Résumé/CV: https://delonnewman.name/resume.pdf
  Email: contact@delonnewman.name
  Portfolio: https://delonnewman.name
  Github: https://github.com/delonnewman

  Looking for part-time (preferably 10 - 30 hours)

  - Over 23 years of experience
  - Polyglot developer
  - Enjoy working with arcane data formats (e.g. EDI)
  - Build user-friendly data-oriented applications
  - System integration & automation
  - System architecture & design
  - Experienced tech lead, mentor & teacher