- Brazilian "Ivy League" Computer Engineering education (University of Campinas)
- 10+ years of software engineering experience
## Seeking:
- Preference for work with static site generators, landing pages, markdown/MDX blogs and documentation websites for developer-focused businesses and startups
## Show HN:
I'm the author of IPFS Deploy[0], a zero-config CLI with great developer experience for deploying static websites to IPFS.
- Its Show HN[1] was on the front page for 10+ hours
- It is recommended by Cloudflare's official docs for their IPFS Gateway
- It got adopted by Protocol Labs (authors of IPFS) who have taken up its maintenance
I'm hoping at some point a brave team of enthusiasts decides to try making a business out of modernizing emacs (code and process), like the onivim2 people are doing for vim.
What do you think of forks like Remacs / emacs-ng?
I have no idea how to read or make sense of these definitions. I mean semantically and grammatically. What should I read if I want to understand those snippets and how/why they do define what an addition is?
The first confusing thing is the type signatures. Concatenative languages pass everything around with a stack so here the double dash separates a top part of the stack before application from what the application of the word transforms that bit of the stack into, so:
succ : Nat -- Nat
means that if you can prove there is a Nat, n on the top of the stack, you can do succ to replace that with a Nat, succ n. Similarly we have:
+ : Nat Nat -- Nat
Which says if you have two Nats on the top of the stack you can do + to get a single Nat.
The next weird thing is pattern matching. + is defined with two cases. The first is:
zero + = id
Which makes some sense: to add zero to x, do nothing. Making up a variable syntax it would look like:
<x> zero + = <x>
The pattern matching on the next line is harder:
succ + = + succ
Which (making up syntax again) says that if your stack looks like:
m n
And n = succ k:
m (succ k)
And you do +, you “unapply” succ to get a “stack” that looks like:
m k succ
With the application of + shown:
m k succ +
And this matches the pattern above so we transform:
m k + succ
And evaluate:
(m+k) succ
(m+k+1)
(m+n)
I think this is a rough idea of how the basic types work:
Denote a “stack” of types (e.g. Nat Nat above) as [a], and single types a.
If e : [a] -- [b] then for any [c], e : [c] [a] -- [c] [b]
If dashes are omitted from a type a, it is the same as the type -- a (ie [b] -- [b] a for any [b])
If e : [a] -- [b] and f : [b] -- [c] then e f : [a] -- [c]
To define a word w : [a] -- [b], e w = f is a valid clause if:
1. e has type [c] -- [a]
2. f has type [c] -- [b]
3. e is a valid pattern (ie made out of constructors (?))
I guess the rest of the typing rules are more complicated.
The syntax is a bit peculiar, but they defined the union type Nat, defined the function + which takes two Nats and returns a Nat (which they defined in a thoroughly confusing point-free way because the language is concatenative), and demonstrated the associativity of +.
If you read any introduction to dependent types, they will do this.
> Mirth hasn't been released. I found it and decided to share it.
So you are actually doing it a disservice. Perhaps the author intended a larger release with better docs and examples (or no release at all if it’s a toy project).
But now it will be yet another “ah, one of those languages with no documentation or viable use cases”.
Languages are a dime a dozen, there are several of then on HN each weak. “How dare you demand something from something made for free” is not a credible defence for anything.
Neat! Anyone with more understanding can point out differences with statebox[1]? Both seem to be:
- visual and textual
- purely functional
- dataflow-like
I get the feeling that statebox might not be turing complete (guaranteed termination) and have a stronger focus on formal verification. Also, it doesn't seem to have a visual editor yet.
Luna not super well, but I did beta test their first release (and some later versions), cool stuff.
Anyway, the two are (feature wise) very similar, as you noted:
- both have textual/visual representations,
- are typed FP languages,
- access to FFI/effects,
- diagram nesting
But Statebox is _not_ data-flow, it's more about "control flow" or "multi-party protocol execution".
(You could do data-flow with Statebox, but at the moment that's prohibitively inefficient.)
Where Statebox takes a different direction (I think) is in basing the language on established concepts from category theory and focussing on 'generality/compositionality' ; specifically, our diagrams are not "graphs", but (morphisms in) categories.
This difference is very very subtle, in fact, seems totally irrelevant if you want to visual programming (see the nice codex, clearly it works using graphs!)
but it becomes more important when you want to diagram's to be "universal". at least in principle, the Statebox language should naturally and compositionally translate to any kind of hardware ; we want you to be able to program smart contracts, p2p-systems, JS frontends, digital circuits, heck, maybe even slime molds, all from the same diagram.
Luna certainly has more features at this stage.
(also, our editor is under heavy development and not yet published, we are aiming to release some things around the statebox summit in september)
Maybe it's fair to say: Luna is like a better NodeRED, Statebox is conceptually closer to something like homotopy.io / globular.science ?
I really want to use Firefox because of Quantum and other Rust goodness, but until they catch up on usability I'm happy to stay with Brave. Tab-to-search is sorely missing in Firefox, and the tab creation and switching experience on Android is awful.
Tab management is what keeping me from switching to FF on Android. The option to use extensions and to customize the browser to the desktop level is amazing though. I hope they will look into tabs' UX later when more people are going to use it.
Curious about the suggestion to try plain TeX. Could you expand on what are the advantages? Do you mean it as a learning stepping stone or for actual usage?
Not OP, but for me it helped to understand what is actually happening. Definitely recommended. Nowadays I use mostly Context (mainly because fonts and creating your own layout is made easy), and never plain Tex, but still I think reading the Texbook was one of the best decisions I've made concerning desktop publishing.
If I'm a pedestrian getting my body filmed, 3D-scanned, with potential facial recognition and internal-organs-penetrating sensors added on top, _I'm_ the one who should own that data (and the right to not consent to its collection in the first place). Why are people weirded out by some Google Glass-wearing rando filming them on the sidewalk but ok for everyone behind a wheel to be suddenly promoted to a CCTV omnisensing recorder?
>Why are people weirded out by some Google Glass-wearing rando filming them on the sidewalk but ok for everyone behind a wheel to be suddenly promoted to a CCTV omnisensing recorder?
Pedestrians are promoting dense and walk-able cities, environmentally sustainable transportation, healthy lifestyles and are generally virtuous. Drivers are wasting space, killing the planet, promoting a sedentary lifestyle and are generally evil.
Yes I'm being a bit absurd and over the top here but the point is that most people aren't disciplined enough to stick to their principals when a group they don't like is the one getting screwed.
most people aren't disciplined enough to stick to their principals when a group they don't like is the one getting screwed
For most people, it's hard to keep out of group-think mode 100% of the time. It's especially hard to do when emotions are involved. As a consequence, most are only too happy to screw the members of the groups they don't like.
This is why one should stay away from politics where one is labeling another group as inferior or bad, based on how they were born, or based on what they believe. It's better to convince than to condemn.
I think it is even simpler than this in that most people don't realize they are being tracked in this way. It is easy to seem hypocritical when you are simply ignorant of a potentially parallel case.
You will absolutely get into some kind of trouble (social or legal) if you put a camera on a sidewalk and start filming whoever goes by. On the other hand CCTV cameras don't receive any flak. Society is usually not obviously consistent about privacy matters. The ultimate determining factor is what seems creepy vs what is necessary. So its entirely possible that some societies might decide that the video taping done by self-driving cars is sufficiently creepy to ban.
No you won't, I've had a camera mounted on my house for years with no issues, I did this when my car got hit by a neighbor and I had to chase down camera footage from a CCTV camera operated by a home builder down the street, having that footage was the only way they were held responsible for it, as after initially admitting to it they later decided they didn't want to pay. Many people also run dashcams for insurance purposes, perfectly legal.
Personally I find devices that record locally or to user-owned services perfectly fine, keeping local recordings on your dashcam's SD card, awesome, keeping your home recordings on your NVR, NAS or private server, that's okay, but sending that to corporate or government owned services is generally bad. There's a limit to how much an individual can do with the data they record from a few places they own, their car, their house, etc. There's no limit to how much abuse a large entity can do with that data, facial recognition and more computing power than they know what to do with.
Drawing this line legally however is... extremely challenging.
The reality is what we have here is a tradeoff between freedom and security with any individual CCTV camera. Those are both valuable things in their own right and such tradeoffs should be made carefully.
When we then hand that data off to a corporation or government entity, that tradeoff looks very different - now they have access to thousands if not millions of sensors. The freedom implications become much higher and the security is often replaced with things like "how good is our traffic data?", "how can we improve our self-driving system to sell more cars?" or "how can the Chinese government bust more Muslims?". The aggregated result is rarely worth it.
This is a bad attempt to ridicule the issue. Obviously we're talking about data here that is processable by third parties. Nobody but you can get (reliable) data out of your brain, but pictures of you or information about you kept on recording can be used by third parties for everything ranging from policing to advertisement or anything else.
In Germany for example Google Streetview is mostly not available, because a significant percentage of people considered it unacceptable and have the right to opt out of it, and the company has to blur faces, houses, addresses and so on.
It's not processable by third parties? If you tweet that you met me at a conference and then someone else tweets that you saw me at the airport, etc. now people can't use that to infer my location and travel patterns? You're just drawing the line conveniently where you can violate my privacy while simultaneously claiming the higher ground.
I hope your friends treat you with the fear that they should considering you seem to believe that their private information is not "processable by third parties" and therefore probably treat it with no discretion whatsoever.
## Contact:
Email: hn@agentofuser.com
Website: https://agentofuser.com
## Background:
- Brazilian "Ivy League" Computer Engineering education (University of Campinas)
- 10+ years of software engineering experience
## Seeking:
- Preference for work with static site generators, landing pages, markdown/MDX blogs and documentation websites for developer-focused businesses and startups
## Show HN:
I'm the author of IPFS Deploy[0], a zero-config CLI with great developer experience for deploying static websites to IPFS.
- Its Show HN[1] was on the front page for 10+ hours
- It is recommended by Cloudflare's official docs for their IPFS Gateway
- It got adopted by Protocol Labs (authors of IPFS) who have taken up its maintenance
[0]: https://agentofuser.com/ipfs-deploy/
[1]: https://news.ycombinator.com/item?id=19801546