HNHacker News
TopNewBestAskShowJobs

elangoc

197 karma · joined June 29, 2011

submissionscomments
elangoc··on A Clojure library that implements the Logo programming language
I love the jslogo site!
elangoc··on A Clojure library that implements the Logo programming language
As far as the Quil window with graphics, I'm not sure if it's because an Applet is being used, but on Mac OS X, the window pops up for me behind my other windows and without focus. I have to hide all of the other windows on top of it to find it. It's weird, I know.

What is the command you're running that gives you the error "quil.Applet cannot be cast to clojure.lang.IFn" ?

elangoc··on A Clojure library that implements the Logo programming language
Hi everyone, author here! I'm really excited about the possibilities that this library opens up! I intend to write a blog post soon to explain in detail the ideas I have and to put them in context. Until then, here's the high-level:

1. Yoko's talk at the recent Clojure/West about ClojureBridge curriculum (https://www.youtube.com/watch?v=fiIJuthOhnk) shows that the inflection point for difficulty for students happens around functions, especially higher-order-functions. That's exactly what REPEAT is in Logo, and kids handle that just fine. So maybe clojure-turtle can be used to smooth out the learning curve in Clojure curricula?

2. My talk at Clojure/West was about programming in Clojure in other languages, which could open up accessibility to programming to non-English speakers (https://www.youtube.com/watch?v=MqjMZNwnYCY). I think translating clojure-turtle shortens the first step to reaching a new human language -- the set of constructs you need to translate is much smaller and more tangible. If Logo works for kids, it should work for anyone. For those who have seen my talk, clojure-turtle is sort of my successor to clj-thamil (programming in other languages) in the sense that they can make programming and/or Clojure more accessible to much wider audiences.

3. Logo is used to teach kids programming, and it's fun! MIT's Scratch is based on Logo -- it's a visual version of it. UC-Berkeley uses a modified version of it for its intro CS 10 class, and code.org uses a version of it in its projects to teach kids programming. So we're teaching Lisp (Logo) to beginners because it's simple (and easy), but why is it that when they get older, Lisp/Clojure is all of a sudden hard and "weird"-looking? That ought to be a short gap to bridge, right?

4. clojure-turtle uses Quil because the ClojureBridge curriculum uses it for capstone / advanced concept material. But Quil is a great choice on its own merit. Since Quil shares a codebase between Clojure & ClojureScript code, it easily compiles to Java and JS, meaning we ought to be able to make a try-X.com website out of this, too.

Let me know if you have any other feedback, thoughts, etc. about the code or anything else.

elangoc··on Show HN: Clojure by Example
Whoa! ISICP looks really cool! You know, the exercise sections of ISICP remind me a lot of the interactive Clojure exercises at 4Clojure.com. 4Clojure.com has a link to the github repo of the software used to create the site.
elangoc··on Show HN: Clojure by Example
I love it!

The target audience is people with prior programming experience. It's important to know the target audience, either as a writer or reviewer.

The tutorial webpage is simple and effective with a gradual progression in concept difficulty.

I hope we have more things like this! Thanks!

elangoc··on Contributing to Clojure
To add on to that...

Even though, I haven't been involved in the contributing process for Clojure, but I thought it was interesting that Brian Goetz's keynote at the Conj 6 months ago was about stewardship, in particular, stewardship of the Java language:

https://www.youtube.com/watch?v=2y5Pv4yN0b0

It gave me a better appreciation for the differing concerns of someone using a language or contributing a patch vs. someone designing & maintaining a language.

In my day-to-day, I use languages other than Clojure, and I sorely miss the cohesive and good design. Brian Goetz's talk nails it on the head why the languages in my day-to-day are sub-optimal, even if they're currently the "new hotness"... at least for now...

elangoc··on What is a Hacker? (1985)
The n-word is the modern legacy of a history of 400 years of racism and enslavement. Its modern usage originates from using the word to reinforce the same economic and social oppression. That context exists for the n-word beyond your 'baseline' racial epithet.

'Hacker' is different because it's a term that originated with a somewhat positive connotation within and by a community, and got misinterpreted negatively later by the outside.

Yes, the duality in assigning meaning to 'hacker' internally/externally does share some similarity with a group/race-based slur that has been 're-claimed', but obviously not entirely. The n-word seems like a particularly bad choice of example, though.

elangoc··on 2014 MacBook Air: Performance benchmarks
Interesting. I could also imagine that the inverse of that point is also true: if one of the suppliers is really good and reliably so, if Apple depends on them more than the others, the cash inflow will help that one supplier more than the others, which that company could put back into R&D to widen that quality gap. And if one supplier is far superior to the others, then the comparability == competition between suppliers lessens, and so does Apple's bargaining power.
elangoc··on Trapperkeeper is a new Clojure framework for long-running applications, services
I attended the Clojure/West conference about 3 weeks ago, and the sentiments are valid. But also, the Clojure community is starting to focus on the beginner learning curve aspects. Right now, there's a ClojureBridge effort (based on RailsBridge) to increase the diversity in the community. And it's been generating interest among people even outside the under-represented demographics. I'll be co-teaching the ClojureBridge SF session in 3 weeks, ping me if you're interested in future Clojure workshops (given the huge amount of interest, there definitely will be more!).

I think there's going to be some efforts in the near future in the Clojure community to tackle the low-hanging fruit of improving beginners' path to mastery.

If you come from OOP school of programming and the Algol/C++/Java style of syntax (true of many popular languages these days), then Clojure does require a re-think of the programming paradigm. But it truly is worth it -- it will make you a better programmer -- and the community is friendly, smart, and always learning and improving. It's certainly a language that I think that I will grow as a programmer by being with.

elangoc··on US Supreme Court says human DNA cannot be patented (2013)
Yes, it's about time! But I don't understand the cDNA-is-patentable portion of the ruling -- if I isolate human RNA (finally declared to be a work of nature), and make cDNA off of it using RNA transcriptase (did I get that right?), then that's somehow patentable, but the DNA/RNA that it's based off of isn't? That seems contradictory
elangoc··on What if the critics win, and tech sector flees S.F.?
The problem is a structural one. There's more demand and no increasing supply of housing in SF:

http://www.theatlanticcities.com/housing/2013/10/san-francis...

The debate about whether ___Group X/Y/Z____ needs to flee is a false one -- just build more housing that will accommodate all types of people who want to stay.

To do that, the NIMBY laws and once-romanticized ideal in SF that prevent building up need to change.

elangoc··on Ancient Indian Texts
This sort of topic has come up before, and to put it gently, blog posts like these have been lacking in context and substance. See a previous HN post: https://news.ycombinator.com/item?id=4154755

Also see a previous HN post about a PNAS publication that talks about the people from current-day South India 4000 years ago (while South Indians' language is not based on Sanskrit, and 4000 years ago far predates the time period mentioned in the original post): https://news.ycombinator.com/item?id=5078076

elangoc··on Clojure from the ground up
a blog post of mine: http://www.elangocheran.com/blog/2012/03/the-newbies-guide-l...

and a workshop that I did: https://github.com/echeran/intro-clj-pres

elangoc··on Dr. Arjun Srinivasan: We’ve Reached “The End of Antibiotics, Period”
I'm genuinely interested to know whether garlic can be safe and effective replacement. I ask in all seriousness since garlic is said to have antibacterial properties (and was used topically as an antiseptic for wounds in WW 1 & WW 2). The thing about garlic is that our body never develops a tolerance for it. Is it true that bacteria can never develop resistance to the active compounds in garlic (ex: allicin) ?
elangoc··on Could San Francisco Automate Strike-Threatening Train Drivers?
The frequency of the trains will be increased once the trains are moved from diesel to electricity (will take 2 more yrs?), since the operating costs will decrease.

Whether the Caltrain schedule matches the highway 17 bus's schedule is not solely the fault of Caltrain -- it's either a 2 way street, or else they're both neglecting it, unless you have proof otherwise.

I have ridden MTA (NYC) and BART when they have stopped the trains in unpredictable locations for various reasons. For short stoppages, they don't say anything, but for stoppages more than 30 secs, they typically say something.

elangoc··on Monsanto Acquires Weather Big Data Company Climate Corporation For $930M
Maybe the comment was more about the agricultural economy. Most farmers have been and continue to be small-scale farmers (a few acres?), and since there are a lot more people in Asia, I'd expect a lot more farmers. I'm guessing that climate changes would hit 1000 people each with 2-acre farms in Asia differently than it would the pocketbook of 1 person with a 2000 acre farm in America that grows crops that get partially subsidized by the US govt. The role the govt plays (or doesn't, for example, b/c of excessive corruption), is also a factor.
elangoc··on Java to Scala converter
you're right, and Clojure extends the power/flexibility of certain constructs in OOP world, like making dynamic dispatch based on arbitrary types (not just the name of a concrete subclass of a polymorphic superclass)
elangoc··on Java to Scala converter
Clojure doesn't lend itself to doing that. Perhaps the easiest (albeit simplistic) way to describe the difference between Clojure and Scala -- Scala supports OOP and FP, and Clojure supports FP only as part of a holistic (and refreshing) vision of how high-level programming is done.

Even if it were possible to do so in Clojure, you probably wouldn't want to. There are usually ways to do the same things in Clojure that makes your code simpler, and as a result, in much less code.

Part of the Clojure philosophy is to make things simpler, even if it isn't always 'easy' at first relative to the individual talking. Even though using a code translation tool is easy, figuring out how to use functions and macros to abstract away repetitious code blocks and patterns from your code is well worth it in the medium- and long-term.

elangoc··on Looking back on the game 'Myst' on its 20th anniversary
I love discovery- & puzzle-based exploratory story games. Grim Fandango was another one, which I adore. It came out a few years after Myst, and I really wished that they would make another Grim Fandango (or at least make it playable on today's computers)!
elangoc··on They're Taking Over - jellyfish bloom and the future of the ocean.
You lost me at "only solution". How about we humans stop overfishing the oceans? We eat way too much meat in an unnecessary, gluttonous way, and seafood is included. The terrestrial manifestation is lower quality food, poorer diets, extra greenhouse gases, and pollution runoff in inland waters. The jellyfish problem is the oceanic manifestation. A systemic problem requires a systemic change. I doubt humans throughout history have proportionally eaten as much meat as Americans eat today. But these days, for the first time, we have too many humans to safely ignore the consequences.

The oceans are being acidified by absorbing CO2, which dissolves into the water. Does desalinating water solve that problem? Better yet, does it scale?? The amt of water humans need for drinking is nothing compared to the size of the ocean.

Nuclear fission is not a clean energy solution -- the waste lives on forever. Fusion is not an option at the moment, and we need to start on solutions now until/unless fusion energy happens.

elangoc··on How Much You Should Save for Retirement, Based on 139 Years of Data
This is an important article for HN readers, if this somewhat recent article from the East Bay Express is anything to go by: http://www.eastbayexpress.com/oakland/the-bacon-wrapped-econ...

The gist is that 20-something year olds come to the Bay area (or wherever else), go from graduating college to suddenly having high-paying jobs, and then they blow their money on short-term edification without thinking long-term. And so I think this type of personal planning for a future is important, too. Maybe down the road, we've accumulated a nest egg, or have enough money in the bank to bootstrap!

(Does the EBX article generalize? Yes, very much so, but my hunch is that the article raises insightful points that are definitely worth more than the generalizing or ranting that detractors might point out, for the record.)

elangoc··on Why Canada Has No Big Tech Companies
Yeah, the Liberal types like their social programs, and the Conservative types like their lower taxes, and no one has actually tried to reconcile those two opposing pulls.

I don't know why that obvious contradiction was never tackled. I would like to think it's because the Hollywood execs of SoCal and the ex-hippie/Silicon Valley combo of NorCal are so geographically far apart that they don't talk, but that's too simplistic, I'm sure.

elangoc··on The Rise and Fall and Rise of Java [video]
He didn't delve much into the proliferation of JVM-based languages, which is significant, even if Java (the language) doesn't have the same 'excitement'.

What I expected to hear, but didn't in so many words:

The trend of people migrating to higher-level languages will continue. Of course, if performance is important, you'll move to C or C++ at the other pole. Read PG's "Beating the Averages".

Considering the growth of multi-core programming, there will be movement towards the high-level end of the spectrum (Lisp). The languages people will eventually end up at will be something JVM-based (so Clojure, or at least Scala), if Twitter's move from Ruby to JRuby to Scala is any indication of the failings of Python/Ruby to handle multi-threading.

Frameworks like Hadoop, and lightweight servers like Jetty, allow people to program for HPC and web servers in JVM-land while being OS-agnostic. Once the migration to high-level JVM languages takes shape, Java will be the new C -- a "high-level assembly" language.

elangoc··on Tarsnap – Online backups for the truly paranoid
The point that suxnoll is making, though, is that the cost is not nearly high to begin with, b/c the data is dedup'ed and compressed. You're justifying an issue that doesn't quite exist.

The query that suxnoll responded to supposed that you have 400 GB of data with small deltas. But that's only possible if you're filling your harddrive with files created from random noise from /dev/random and updating all your files monthly by more random noise.

elangoc··on Wisp: a homoiconic JS dialect with Clojure syntax, s-expressions and macros
I agree. The comments here make me think that the commenters don't know all of the extra ideas that Clojure brings besides a "different syntax" to Lisp. Even just for the immutable, persistent data structures that support value semantics (& distinguishing state from identity), ClojureScript ought to go a long way to helping write better code.
elangoc··on Wisp: a homoiconic JS dialect with Clojure syntax, s-expressions and macros
What you're not realizing, though, is that each time you use the string "like" as a key for a map/dictionary, you're allocating a new object on the heap. So what if you have many keys, and they're all strings? What if you have many maps that share the same keys? That's a lot of memory to allocate, and strings are an extremely inefficient way to implement what is essentially a unique identifier to address map values. Instead, use an integer as a unique identifier.

That's basically what keywords do -- they are human-readable and compile down (prob. using some hash) into some integer, and the integer is stored globally only once. The biggest savings in memory comes when using maps, and that's how & why keywords get their name.

elangoc··on Dear American Consumers: Please don’t start eating healthfully
Well, lactose intolerance and gluten intolerance aren't dieting fads. I silently sneered at those labels, until I realized 6 years ago that I might have been lactose intolerant for the prior 10 years. (Now I know so.) And I felt the same way about gluten intolerance, until... 1 month ago. Now I realize that I have gluten intolerance. My intolerance for lactose is fairly strong, and for gluten, it's fairly weak, but now I know why I get stomach cramps and breakouts on my lower face. 75% of the world has at least some degree of lactose intolerance.
elangoc··on Dear American Consumers: Please don’t start eating healthfully
These points are interrelated.

> Which means nothing to the people who don't have it

So in the case of lactose intolerance, what's interesting, in fact, is the environmental impact of the fact that the people in the Western world are largely fine with lactose. As the PBS NewsHour story about the causes and effects of China's meat consumption habits shows, Western habits are having a significant influence in the diets of the younger generation in developing countries. The effects of large-scale pollution of water resources is horrific, and competition for water resources is, after oil, the next source of conflict in the world. So yes, it will affect everyone.

> Everyone knows this. That doesn't mean most First World people need supplements, because they don't.

Sure, First World people don't need supplements, if they have a varied diet. In North America, that's a big if. There are cultural impediments to that varied diet, even for those with the means to afford it. But for many lower-income families, and especially those living in low-income neighborhoods, they experience the "food desert" problem. And they lack the same access to quality foods as more affluent people. That is a systemic issue related to how society (via government) deals with the problem. And the economics of the prices of foods is, in some part, related to the energy requirements which is related to the 90% energy loss up each level of the food chain. There is an environmental impact there.

btw: I just threw in the names of Bittman and Pollan as representatives of the ideas of plant-based and natural diets. It's not like they invented the ideas; they're just the most recognizable cheerleaders for them at the moment.

elangoc··on Dear American Consumers: Please don’t start eating healthfully
I've been thinking for a long while, now, about how to stitch together the many threads of thought around diet, nutrition, environment, and economics:

1) eating a plant-based diet is healthier (Mark Bittman), or at the very least, eating natural things (Michael Pollan) 2) eating meat costs more, and it threatens the environment (http://www.marketplace.org/topics/sustainability/commentary/...), including in China (http://www.pbs.org/newshour/rundown/2012/11/china-meat.html) 3) for that matter, others foods besides meat that come from animals (ex: dairy) have the same effect. Roughly 75% of the world has some degree of lactose intolerance (http://en.wikipedia.org/wiki/Lactose_intolerance) 4) nutrition is more than calorie counting -- it is about getting nutrients in the diet (http://supplementsos.com/blog/how-to-actually-eat-healthily-...) Lentils play an important part as a quality, cheap source of protein. 5) there are ways to make good food affordable to the people who can least afford it (http://www.kpbs.org/news/2012/jul/28/new-mobile-food-truck-s...) In fact, the idea (or 'business model') of making necessary things affordable to the people who can least afford it as been around for 50 years (http://infinitevisionaries.com/) 6) a very important factor to incentivize people to switch diets is knowing that the food will taste good. While it might involve a slight change in cultural diet, this is absolutely possible (http://www.openthemagazine.com/article/international/the-dos...) 7) the vegetarian diet of Tamils in Tamil Nadu (India) and Tamil Eelam (Ceylon) is wide & varied, largely dairy-free, and mostly gluten free. This largely applies for the other South India states, too. The diet consists in large parts of lentils, leafy greens, vegetables, and spices. 8) in particular, the diet in Tamil Nadu/Tamil Eelam of 50 years ago should be examined, which is before the Green Revolution occurred in India. Back then, many of the healthier grains eaten in large quantities by a large swathe of people (millet, sorghum, finger millet, etc.). 9) An unintended consequence of the Green Revolution in India and China in the 1950's is that, at least in India, many of the healthier grains eaten in large quantities by a large swathe of people (millet, sorghum, finger millet, etc.) were dropped in favor of the far less nutritional white rice, which was for many just a once-in-a-while treat. In North India, the favored, newly-proliferated crop of choice was wheat. (Both rice and wheat are dreadfully water-intensive.) Brown rice doesn't exist there, but in the region, only people in Kerala and Tamil Eelam eat a red rice that is similarly nutritious. Of course, this is said to be not as nutritious as things like finger millet or "thinai" (similar to quinoa). 10) People talk about the importance of vitamin B12, and that you can only get it from animal based sources. But this diet has been around for 4,500 years, people have been just fine. (http://www.slate.com/articles/life/food/2013/01/indus_civili...) I'm sure people have been vegetarian for at least 2,000 years of that, if I judge based on the Thirukkural (2,000 year old literature of virtuous maxims, of which 10 talk about not eating meat). There are athletes and body-builders in America who are vegetarian and vegan.

So I really think that a restaurant (or at the least, food truck) should pop up selling a variety of vegan Tamil food at a very low price. This would solve so many problems. I've been thinking of this for a long while now, but I would be just happy if someone 'steals' the idea and runs with it.

(note: I'm sure there are other ways to achieve low cost, high nutrition, vegan diets in varied, tasty ways, but this is part of my birth tradition. You can treat that as a disclaimer / proof of authenticity. For me, personally, I'm fairly lactose-intolerant, and I'm wondering now that I might be gluten intolerant. I've been trying to be more vegan/vegetarian for the past 5 months, and it's helped a lot in my finances. It hasn't negatively impacted exercising. I'm hoping to see more change once I start cooking!...)

elangoc··on Not Having A Real Job
The sibling comment said it better than I would have -- I wrote that with warmth and a little wistfulness. :-) Of course, this is print/internet, where we don't have the benefit of audio and facial cues.

All I'm saying is that humans, as social creatures, like to feel connected to people. Different people feel comfortable with different manners of connectedness. Volunteering or traveling are not the only ways of connecting to people or broadening your mind on how the human experience can be. But to me, they represent the most direct forms.

Or inversely, you know, it's not the same to be Facebook friends with someone as it is to actually regularly spend / talk with that person. It is different to experience a place by reading about it, by visiting on a tour, and by living there for 2 months. (Which is probably why I especially think about the environmental problems of food production and food packaging -- all my time spent in Tamil Nadu / S. India over the years especially heightens my awareness of the potential to solve that problem that I wouldn't experience otherwise.)

"Growing" as a person was referring to collecting more / varied experiences... you know, the whole broaden horizons & learn-new-things thing. I don't think, however, that if I say that learning and education are inherently good things, that it would somehow imply that more educated people are 'better' than less educated people. All it means is, with all things being equal, taking advantage of an opportunity to learn is good, and the more you learn, the better.

← PreviousPage 2 of 4Next →