HN user

elangoc

197 karma
Posts5
Comments96
View on HN
Datomic is Free 3 years ago

People who use Parinfer rather than Paredit when learning Clojure really like it. The concept is available in the Clojure mode in all the usual suspects of IDEs (IntelliJ Cursive, emacs Cider, etc.)

https://shaunlebron.github.io/parinfer/

The size of the community is not as important as the value of what is available. It's just not widely known, or maybe there's still much potential yet unrealized.

This is an oldie but a goodie on how interactive an experience you can have when using Clojure on the front end and backend of a web app:

https://figwheel.org/

This project is the most recent and most promising iteration of someone making a very visual interactive tool for introspecting on data structures in the REPL environment

https://github.com/djblue/portal

The simplicity of the visual language that Scratch provides inherits from the simplicity of Lisp, via Logo. The Logo language (& the Mindstorms pedagogical philosophy), which is what Scratch builds off of in a visual way, was implemented as a dialect of Lisp.

From anecdotal experience, I do believe that the choice of a Lisp for Logo was an important criterion in the simplicity of the language, and thus the high impact of the learning impact.

I do think that if we find Scratch useful and powerful, then we should really re-/consider Clojure as an important language for real general purpose programming work, for many reasons: https://www.youtube.com/watch?v=Y3-53JoGPE4

History of Pepper 5 years ago

You seemed to have misunderstood what I was saying.

I was pointing out that specifically in the case of chili spice, I don't think it's good for the body. There are data to support the idea that eating large amounts of capsaicin is harmful to the body: https://www.healthline.com/nutrition/foods/chili-peppers#dow...

Meanwhile, go to the vitamin supplement section of your nearest store, look at the ingredients of turmeric tablets, and you'll see they have a disclaimer that they have trace amounts of black pepper to magnify the effect of turmeric.

Everything else you said is fine by me because I wasn't arguing for it or against it.

Oranges and millets probably came from China, bananas probably came from SE Asia (and these things probably before the Sangam age, which is before the Pallavas and the height of the Cholas, so clearly exchange was happening for longer than we know).

A slight correction to what you said, idli came from a Pallava king in the 13th century who married a bride from a Indonesia who in turn brought along cooks who liked using rice. They combined rice with lentils to make idli: https://youtu.be/7pxEXHxSQzU

To be clear, I know that rice has been grown in South Asia since the time of the Indus Valley Civilization (>= 4500 years ago), but all I'm saying is specifically about idli.

History of Pepper 5 years ago

The thing about chili peppers is that they're not healthy (have medicinal benefits) in the way peppercorn and long pepper do. Capsaicin can be harmful in large quantities, IIUC.

There are South Indian foods and snacks like venpongal and methu vadai that use whole peppercorn, not chili peppers. Tomato is another colonialism byproduct, but there are still people who make versions that use lemons instead of tomatoes. A common homemade drink for sick people is made from grinding dried ginger, coriander seeds, and black pepper. These are all daily foods. But you're right, few households or restaurants are 100% free of these 400 year old import crops.

Obviously, chili pepper is used where peppercorn or ground black pepper used to be, for the reasons in the parent comment. It also makes sense that black pepper would have been used in various dishes because it enhances the potency of the medicinal properties of turmeric by an order of magnitude. It wouldn't be hard to go back to black pepper, I imagine, with a little retooling of recipes to rebalance flavors.

To add to that and concur that Rich generally doesn't have such un-nuanced strong opinions without context, see his talk Effective Programs. He explains what Clojure is good for and isn't good for, and says more clearly it so depends on what you're doing.

He doesn't organize the Clojure conferences, but I'd imagine that if he didn't see any value in any context for static typing, there wouldn't have been a talk about Typed Racket and static typing researchers as keynote speakers, etc.

And FWIW, spec is a library trying to come as close as possible to the imaginary midpoint of static and dynamic typing, but in a Clojure-y way.

I agree with the grandparent comment. The parent comment sounds like a random and non representative sampling of what makes Clojure unique.

Both parent and grandparent correctly identify that many Clojure ideas come from elsewhere. Lisp and hosting on the JVM were not new. Immutability and persistent data structures weren't new ideas.

But putting them into one and making it performant was a paper published by people in the Clojure community (Rich was the lead author).

Clojure describes itself as data-oriented. That means not just the primacy of data, but of plain data, unadorned: https://youtu.be/VSdnJDO-xdg

What I find almost unique Clojure is that there's a philosophy to it that resonates throughout in it's design decisions: simplicity. Data is simpler than code, and code is simpler than macros, so prefer data and leave macros so a last resort. Libraries are simple, frameworks are complex. Plain data is simple, and the knock on effects of every library converting to & from plain data is powerful. But it only reveals itself after using Clojure for a while. Immutability allows for simpler code that you can reason about. Isolating state into containers allows you to characterize, control, and reduce touch points with state, which is necessary yet a source of complexity.

You can see the same set of ideas that underpin the design of Clojure to be present in follow on library additions (reducers/transducers, async, Datomic, etc). There's simplicity, often manifested in immutability and the associative model of information (everything is a map), at least.

Exactly. Wasn't Jobs proud to say, "Good artists copy, great artists steal"?

Jobs made amazing things happen, but he also had a Reality Distortion Field with the best of them.

Indeed!

https://elangocheran.com/2014/10/30/exploring-programming-in...

https://youtu.be/MqjMZNwnYCY

Although I started the above project around the same time as Ramsey started his project in the original link (CLisp in Arabic), they were two entirely independent things. Ramsey's project is a 100% translation, whereas my project scales to other natural languages but is not a 100% translation.

Tim and I worked on trying to make programming in other languages easier as a means to help more kids learn programming, and learn FP the Lisp way, which we explain as more natural.

https://www.youtube.com/watch?v=Y3-53JoGPE4

https://power-turtle.com/#freestyle

Same here, can you let me know, too? I'm just an idle observer, more often interested in consuming the polished findings, but am utterly fascinated and impressed by the work required to get there.

Can you also comment on how the current decipherments are going? And how much progress has been made in the Dravido-Elamite angle?

This book came out that republishes incomplete research that establishes cognates and place name parallels, although no grammatical connections made. In light of the progress made in the IVC script, it seems compelling. https://tamilnet.com/art.html?catid=79&artid=38813

In the meantime since this article was published in 2013, for IVC in terms of a Dravidian language, there's been a lot of progress in terms of script decipherment (to the point where the theory has become proof), archaeology, and DNA analysis that support each other consistently.

It's quotes like this that deflect responsiblity:

“We don’t completely blame Facebook,” said Harindra Dissanayake, a presidential adviser in Sri Lanka. “The germs are ours, but Facebook is the wind, you know?”

And this, too, which says lynching is a natural individual reaction to systemic failure of law and order:

And where people do not feel they can rely on the police or courts to keep them safe, research shows, panic over a perceived threat can lead some to take matters into their own hands — to lynch.

As tempting as it is to believe this story's premise that Facebook is bullying?/neglecting? smaller countries and then fit that into the larger backlash against social media, I think it's very misleading to believe that actually applies in Sri Lanka's case.

In fact, Sri Lanka has a history of majoritarian ethnic violence, up to and including genocide, against ethnic nationalities and minorities within the country.

Sinhalese also committed organized violence against Muslims in 1915. There were riots in 1958 because Tamils protested the use of the Sinhalese on license plates (following 1956 when Sinhalese replaced English as the only official language of govt, disenfrachising all Tamil govt employees). Tamils were killed in 1974 at the international Tamil conference in Jaffna, the Tamil cultural capital. And of course, the official war between 1983 - 2009 was one drawn-out genocide against Tamils by the 99% Sinhalese military and 95% Sinhalese police force, "ignited" by Sinhalese "mobs" using govt voter lists to burn Tamil homes and business along with killing Tamils, while the police were deployed everywhere but stood by and watched.

I get the tech-relevance of Facebook here, but this story is trying to take the latest ethnic atrocity from country that's already systemically racist, and somehow shoehorn it into the larger narrative of social media, corruption, and politics.

Maybe this is Sri Lanka's attempt at distancing itself from the Cambridge Analytica exposé that Channel 4 did undercover, where they posed as a middleman working to swing the recent SL local elections in the favor of an opposition chauvinist strongman who oversaw the crescendo of genocide against Tamils in 2009 (https://www.channel4.com/news/exposed-undercover-secrets-of-...)

I find the Sri Lankan government a very unsympathetic, persistent, complicit actor in the violence within its borders. It's not like Facebook and Cambridge Analytica were around to cause all the racist violence since 1915.

If you try the interactive examples on the main Readme page all the way to the end, you'll see there's a gradual, subtle shift from cutesy Logo to Clojure-style functional programming. But I owe more doc-writing along those lines, and they that would make that fuller & clearer.

BASIC was my first programming language. Starting with the days of the Commodore 64, Apple IIe, and MS GWBASIC, but I never understood it well enough beyond a number guessing game or so. Then I had a class on Logo, and I was doing cool stuff on my own, and it was so fun! Yeah, I love Logo.

During the time of that Logo class, I tried writing a BASIC program for a programming competition with my new-found confidence. But it was such a spectacular fail that my 11-year old self was literally crying.

I find both Logo and Clojure are profound, simple, and powerful in their own ways. A friend and I are working to take the next step with this project and make this a little more accessible/usable. ;)

I don't deny that the network effects of speaking the same language matter. They do. But if you're turned off to programming because it's too hard (b/c the language barrier), you may never care to put in the effort to get to the point of learning English for all of its relative benefits.

If you're interested, I brought up these considerations and tradeoffs in the talk I gave last year - https://youtu.be/MqjMZNwnYCY

I've had people ask me, "Why don't we get everyone to speak just one language? That would make everything easier."

That ignores a lot about the cultural meanings embedded in language and the human tendency to use language to encode identity.

And on a very practical point, not everyone has access to learning English. Wealth & wealth distribution matter. How close your native language is to English also matters (is it Germanic? Indo-European? does it use a Roman script? is it alphabetic?...)

Thanks! If you want to try Icelandic, all you need to do is create a map or two where the keys are the English names and the values are the corresponding Icelandic ones. Then call translate-fns and translate-forms on the maps. You can follow this example - https://git.io/v2FdH

Here's what programming in Malayalam looks like - https://twitter.com/prathyvsh/status/635733805567840256

I don't believe that we give enough credit to the hurdle that exists when you have to learn English to learn programming. One of my cousins grew up in a village in Tamil Nadu (Southern India) where even the English teacher didn't know English well... The high-school computing courses were just about using desktop office apps. Kids end up just memorizing which icons do what actions (as opposed to reading the self-explanatory tooltips, menus, and error dialogs). The obstacles to equity for someone like her occur on multiple dimensions. I imagine the distribution of difficulty for non-native speakers skews more towards her end than towards those with better access to learning English.

Yeah, just wanted to drop in and affirm that I already knew that not everything can grow everywhere.

(Ex: apples can grow in Appalachia, but they're famous in Washington state; potatoes may not grow well in Florida, and oranges wouldn't grow well at all in Idaho...) But almonds must grow in at least one other place where there is more water than in California's Central Valley.

So I think we're on the same wavelength.

And I remember hearing 10 years ago that water will be the new resource that people fight over, if oil was the resource that people fought over for the last half-century. And that agriculture trade would be a form of trading water. That's sort of already happening. Call me naive, but we should cut down on California's production of some crops, and use good Midwest farmland more efficiently by growing more non-meat agriculture instead of meat.

If we invoke the ancient European idea of the "public trust doctrine" to bolster the justness of the argument that Vinod Khosla should create a path on his private land for the public use -- then why can't California invoke that same reasoning to overturn the antequated water ownership laws that give private, transferrable ownership of ground resources (including water) for large landowners who control a large portion of the state's water sources?

The attitude about California's ground water is, "Hey, they own the water based on the laws on the books, what can you do?" Much of the public would rather they not use all that water on almonds and alfalfa and whatnot, just to export elsewhere. Why can't the rest of the country grow that stuff? How can someone exclusively own the groundwater like that??

Whatever law that applies to Vinod Khosla should apply to those large water-wasting water-owners.

(And it follows that however dastardly Vinod Khosla may seem, the large water-owners in California are irrevocably screwing over California's future generations' water resources, and are thus in my book, much more worthy of scorn and "public trust doctrine" action.)

In the last week, I've done this 2 or 3 times: I've opened some Clojure/CLJS file of mine in a text editor, did a search-and-replace of all open- and close-parens to a single space.

Then I ask if they've seen Python before, to which most say 'yes', and I say, 'there you go, it's Python now'. And I can immediately see the look of surprise when they see that _similarity_, because the similarity is then hard to unsee!

I recommend that trick to any others trying to open minds and challenge preconceived notions in their surroundings. :-)

Side note: I've made the point that nested SQL expressions have many nested parens, too, which we've all done. And that the sum of parens+brackets+braces is similar to other languages, just the distribution is different. Neither of those 2 arguments work as well -- I guess because it's not visual and striking?