HNHacker News
TopNewBestAskShowJobs

deckeraa

205 karma · joined April 2, 2020

submissionscomments
deckeraa··on Is it time to kill the calculus curriculum?
(Somewhat tangential to the article since its main point of advocacy was adding data science courses, but I've been thinking about math reform and wanted to expand on the New Math).

It appears that the New Math failed to catch on as a math reform because:

1) Starting with formal system and building from axioms on up is appealing to mathematicians but doesn't match children's psychology, which requires concretions rather than abstractions in the early years.

2) There wasn't a good enough plan to get parents on board with the reform. Mathematics was highly regarded yet poorly understood in U.S. culture, leading to pushback from parents (and teachers) when they saw a different mathematics curricula then what they had ("You can't change math! Math is Math!").

Math reforms will need to avoid these two snares. Perhaps a data science class at middle school and up would work well since it would avoid concerns about radical changes to the curricula.

One approach I'm considering is doing a history-based approach to mathematics. I don't have anything shippable yet, but explaining the history of the integral calculus has helped my students understand the difference between Leibniz's and Newton's notations, as well as provide motivation for why we're studying limits.

deckeraa··on In Defense of XML
I'd agree that things like JSON and EDN don't convey all the type information that you might want (things you mention like type bounds, orderedness, number format). Though at least in a JSON string like {foo: [elementOne elementTwo]} you know that foo is a list of things, which is something that the XML document doesn't encode for you.

So perhaps I should make my statement more precise and say that XML data, in the absence of the schema information, is lossy compared to some formats like JSON or EDN.

[Edit: to answer the potential question of why I'd be using XML without have schema information, I was being provided the XML by an API that called web APIs and converted the result of the web call into XML (even if it was JSON) before passing it to me.]

deckeraa··on In Defense of XML
Fair enough. Though wouldn't that work better with languages like Java where the programmer typically ends up making a type or class for most things?

With languages like Clojure it's fairly typical to declare no classes or types and to simply have your data structure be a composition of maps, sets, and vectors, etc.

I suppose you could use your Clojure.spec keywords as the tag names in XML, but that's probably going to be more work than (clojure.edn/read-string (slurp "my-data.edn")). Could be an interesting option if you had to use XML as an interchange format.

deckeraa··on In Defense of XML
One thing not mentioned in the article is the lossy nature of XML when coming from data structures with concepts of arrays and maps. A typical array in XML looks something like:

<foo>

  <bar>First element</bar>

  <bar>Second element</bar>
</foo>

which can lead to issues if the second element isn't in there: should bar just be a property of foo or should it be an array? (I'm definitely open to correction on this if someone knows a better way; my experience with this particular issue is from writing a parser to take XML and turn it into a MUMPS-native data structure. I mostly had to have the parser take an educated guess and then let API users specify which elements were arrays if they wanted it to parse the same way against all inputs).

This is analogous to how saving Clojure sets (e.g. #{:a :b :c}) to a JSON document in CouchDB is also a lossy operation because JSON doesn't have sets, just maps and arrays.

deckeraa··on Bleeding-edge tech will kill your startup
There's a distinction to be made:

- If your business doesn't rely on new technology, then avoid bleeding edge tech (examples: you retail co-working space, rent apartments, do food/grocery delivery, etc.)

- If your business model does rely on new technology (examples: airlines in the early 20th century, railroads in the early days of the steam engine, e-commerce in the early 2000s) then you have to work out a way to deliver on bleeding-edge technology. That's where your competitive advantage lies and that's where the nice margins are.

Though even in the latter scenario, it's still prudent to narrow the scope of your bleeding-edge tech as much as possible (e.g. if you're doing a cryptocurrency app, you probably shouldn't be trying to make your own NoSQL database at the same time).

deckeraa··on Show HN: Take timestamped notes while watching YouTube videos
One of my users pointed out that it would be nice to have a fully off-line capable app. There are a couple barriers to this:

- It would require users to have a p2p system set up to get the video onto their system, which is a configuration barrier for most users.

- It's not clear what the monetization strategy would be to fund the development of the app.

- It would require a large amount of device storage to hold the videos.

But if someone were able to figure those out, they might be able to differentiate from the similar products.

deckeraa··on Show HN: Take timestamped notes while watching YouTube videos
Interesting to see this.

A couple months ago I launched a site (https://familymemorystream.com/) that allows annotating videos but is targeted towards the niche of converted family videos.

I was considering opening it up to make a generic "video note taker" version; it looks like you beat me to it :) Best wishes! It will be interesting to see where you end up with the pricing model. It looks like you're using YouTube/Vimeo for the video hosting so that frees you up to do one-time purchases if you want since your server costs will likely stay fairly constant across scale.

deckeraa··on Ask HN: Freelancer? Seeking freelancer? (September 2020)
SEEKING WORK | Madison, WI | REMOTE or LOCAL

I'm a product lead who specializes in Clojure/Script development. I quickly and independently develop quality software that will meet your business needs.

Recent work:

- Created a fuzz-testing tool that takes in a language grammar (EBNF) and uses that to generate syntactically correct random text in that language. During text generation it can also take in external information (such as table and column metadata for use in generated SQL queries) to create random text that is contextually correct as well. Currently used for testing SQL databases.

- Built https://familymemorystream.com, a video-hosting and sharing site for family videos. (Tech: Reagent, Clojure/Script, S3, CouchDB, Stripe)

- Created the https://github.com/deckeraa/couchdb-auth-for-ring/ open-source library that enables you to use CouchDB as an authentication back-end for Ring apps.

- Led a team of ~17 software developers for the business intelligence module of a large healthcare IT company.

Buzzwords: Clojure, Clojurescript, Javascript, C#, Java, MUMPS, Bash, SQL, CouchDB, GraphQL, S3, Python

Email aaron AT stronganchortech.com

Website: https://stronganchortech.com

LinkedIn: https://www.linkedin.com/in/aaron-decker-3420a77b/

Resume: https://stackoverflow.com/story/aarondecker

deckeraa··on Ask HN: Freelancer? Seeking freelancer? (August 2020)
SEEKING WORK | Madison, WI | REMOTE or LOCAL

I'm a product lead who specializes in Clojure/Script development. I quickly and independently develop quality software that will meet your business needs.

Recent work:

- Built https://familymemorystream.com, a video-hosting and sharing site for family videos. (Tech: Reagent, Clojure/Script, S3, CouchDB, Stripe)

- Created the https://github.com/deckeraa/couchdb-auth-for-ring/ open-source library that enables you to use CouchDB as an authentication back-end for Ring apps.

- Lead a team of ~17 software developers for the business intelligence module of a large healthcare IT company.

Buzzwords: Clojure, Clojurescript, Rust, Javascript, C#, Java, MUMPS, Bash, SQL, CouchDB, GraphQL, S3

Email aaron AT stronganchortech.com

Website: https://stronganchortech.com

LinkedIn: https://www.linkedin.com/in/aaron-decker-3420a77b/

Resume: https://stackoverflow.com/story/aarondecker

deckeraa··on Ask HN: Freelancer? Seeking freelancer? (July 2020)
SEEKING WORK | Madison, WI | REMOTE or LOCAL

Product Lead with experience in wide variety of technologies. I'll come up with novel, pragmatic solutions to the challenges your business is facing and see them through to delivery and optimization. I enjoy working with clients and leading teams.

Recent work:

- Built https://familymemorystream.com, a video-hosting and sharing site for family videos.

- Created the https://github.com/deckeraa/couchdb-auth-for-ring/ open-source library that enables you to use CouchDB as an authentication back-end for Ring apps.

- Lead a team of ~17 software developers for the business intelligence module of a large healthcare IT company.

Stack: Clojure, Clojurescript, Rust, Javascript, C#, Java, MUMPS, Bash, SQL, CouchDB, GraphQL, S3

I also do some electronics and hardware design (8 years experience with competitive robotics). I believe that the right language or technology to use for a project is the one that will provide the best long-term value for the client -- no need to use the trendiest new thing, though the advantages that new technologies offer should be considered.

Email aaron AT stronganchortech.com

Website: https://stronganchortech.com

LinkedIn: https://www.linkedin.com/in/aaron-decker-3420a77b/

Resume: https://stackoverflow.com/story/aarondecker

deckeraa··on Show HN: Use CouchDB to auth users for your Clojure/Script app
CouchDB is a convenient place to store Clojure/Script objects across sessions. To make this even more convenient, couchdb-auth-for-ring lets you use CouchDB's _users database to auth users for your Clojure/Script web app. It's middleware for Ring.
deckeraa··on Ask HN: Production Lisp in 2020?
I use Clojure and ClojureScript in production. The developer experience is a real pleasure: there is good library support, libraries are typically easy to use, and you can always interop with the underlying JVM/js if the need arises.

Clojure also has the core.async library. This can be used along with Reagent to build React-based apps; core.async allows you to do what Redux does but in fewer lines of code.

https://github.com/deckeraa/OpenStainer is an example of building apps this way.

deckeraa··on Ask HN: Freelancer? Seeking freelancer? (May 2020)
SEEKING WORK | Madison, WI | REMOTE or LOCAL

Product Lead with experience in wide variety of technologies. I'll come up with novel, pragmatic solutions to the challenges your business is facing and see them through to delivery and optimization. I enjoy working with clients and leading teams.

Recent work:

- Designed and programmed the Open Stainer (https://openstainer.com), an automated piece of lab equipment.

- Created a web-based collaborative video-annotation solution for a client.

- Led a team of ~17 software developers for the business intelligence module of a large healthcare IT company.

Stack: Clojure, Clojurescript, Rust, Javascript, C#, Java, MUMPS, Bash, SQL, CouchDB, GraphQL.

Email aaron AT stronganchortech.com

Website: https://stronganchortech.com

LinkedIn: https://www.linkedin.com/in/aaron-decker-3420a77b/

Resume: https://stackoverflow.com/story/aarondecker

deckeraa··on First Robotics Competition: An International High-School Robotics Competition
There is an official controller that all robots need to use per the rules. It's (or at least was ~5 years ago when I last competed) a National Instruments cRIO. I think this decision was made based on NI giving a large cost break on the units. Supported languages for the cRIO include LabView and Java, making those two the prominent languages that teams use.
deckeraa··on Ask HN: Freelancer? Seeking freelancer? (April 2020)
SEEKING WORK | Madison, WI | REMOTE or LOCAL

Product Lead with experience in wide variety of technologies. I'll come up with novel, pragmatic solutions to the challenges your business is facing and see them through to delivery and optimization. I enjoy working with clients and leading teams.

Recent work:

- Designed and programmed the Open Stainer (https://openstainer.com), an automated piece of lab equipment.

- Lead a team of ~17 software developers for the business intelligence module of a large healthcare IT company.

Stack: Clojure, Clojurescript, Rust, Javascript, C#, Java, MUMPS, Bash, SQL, CouchDB, GraphQL.

I also do some electronics and hardware design (8 years experience with competitive robotics).

I believe that the right language or technology to use for a project is the one that will provide the best long-term value for the client -- no need to use the trendiest new thing, though the advantages that new technologies offer should be considered.

Email aaron AT stronganchortech.com

Website: https://stronganchortech.com

LinkedIn: https://www.linkedin.com/in/aaron-decker-3420a77b/

Resume: https://stackoverflow.com/story/aarondecker

← PreviousPage 2 of 2