Hacker News new | comments | show | ask | jobs | submit | juvenn's comments login

Hey Chris,

Great to know Rand is hiring engineers!

I have worked with consulting engineers from Labor and Population department at RAND, and have visited HQ a few years ago. It is a great place to work!

I have a few questions about the position, could I send you email for inquiry? Thanks!

-----


Please do! Just use the dev.hiring@rand.org address. It goes straight to me.

-----


There are (currently) three host implementations of clojure: Clojure(JVM), ClojureCLR(.NET CLR), and ClojureScript(JavaScript). Supporting this reader conditional can facilitate code reuse as much as possible.

-----


To expand on this a bit more: while all three implementations are "Clojure", since Clojure is a hosted language (i.e. doesn't specify/implement its own VM) and embraces this fact, there are subtle differences between the various implementations. Some of these differences could be viewed as "bugs" and should eventually go away (e.g. cannot use macros at runtime in CLJS), but some are inherent to the platform (e.g. how do you convert a string to an integer?).

Originally, if your code was simple enough and didn't touch any of the parts that were different between the implementations, then you could simply run the same code under Clojure, ClojureScript, and ClojureCLR. If it was even mildly involved, though, you'd have to write separate implementations for each.

Then the CLJX project came along. It introduced the `#+clj` and `#+cljs` forms that could be used to specify code that should only run under Clojure or ClojureScript respectively. For Clojure v1.7.0, the goal is to implement something similar in the core language. At first the plan was to simply adopt the CLJX forms directly, but as of 1.7.0-alpha6 there is this new concept of a conditional reader.

Ultimately, as a beginning Clojurist the impact to you should be small. Eventually, if you are looking to write libraries to be used across both Clojure and ClojureScript, this will be useful to reduce the amount of duplication in your project. As you move towards the heights of advanced Clojure usage, though, this turns out to be a very powerful concept that could potentially be useful for a wide range of applications.

-----


Great answer.

-----


And on the preface to the 2nd edition of SICP, I noticed this quote from Alan J. Perlis:

> Is it possible that software is not like anything else, that it is meant to be discarded that the whole point is to always see it as a soap bubble?

which seems an echo.

-----


A link popped up within unstable Chrome, inviting me to test drive the Chrome notebook. Unfortunately I'm out of US. http://skitch.com/juvenn/rrnm5/selection-019

-----


Since the sensorship is beyond what Google's founders had expected. Even we native Chinese had not expected that then.

However, given they have invested so much on the Free Music Plan, and the market was rewarding, why, all of sudden, they pulled their feet? And risking of losing the world's largest and emerging market?

Though, I agree there are multiple causes about that. But simply thinking they pulled because they were losing ...

-----


Please clarify, it's the government, not all Chinese people, who can be as friendly and kindly as every faithful human on the earth.

-----


The government is made up of people. After living in China for a while, you soon find some Chinese people are friendly to your face, but are monitoring your emails thru your ISP, or tracking your movements around the city, or arranging for a breakin at your apartment. And these are young Chinese, just doing what their seniors showed them. Young Chinese don't have the concept in their minds that internet blocking harms innovation, and will do the same in government when they replace their elders.

-----


Yaa i am talking about government, not Chinese people. I know people are good, hard working.

-----


For those who can't afford a premium private repos, it's a good idea. You'd better off not symlinking the repo in Dropbox dir, or you'll keep dropbox very busy when you are editing files.

-----


Unfortunately, it's not log based. Just like Google Analytics, you insert a little script in, when request comes in, the script will update MongoDB in the backend.

Though, your need are not unusual, I guess. So, publish it.

-----


I'm interested as well and may contribute

-----


And, it supports markdown, ++

-----


That new node-based v2.0+ implementation can be 10x faster than the ruby-based implementation.

    # Ruby version
    $ time lessc -v
    lessc 1.2.21 

    real	0m1.681s
    user	0m1.492s
    sys	        0m0.176s


    # Node.js version
    $ time lss -v
    lessc 2.0.0 (LESS Compiler)

    real	0m0.104s
    user	0m0.088s
    sys	0m0.016s

Though it should be noted that Rubygems has introduced a bit overhead in the Ruby version.

-----


I'm disappointed with this change - it seems like picking up the new shiny tech for the sake of new shiny tech, at the expense of usability. My mac came with ruby, but not node.

Also, a 1.5-second speedup is not terribly compelling for something done rather infrequently (and if you're not caching or pre-processing to static files, you're doing it wrong).

-----


One reason to move to JavaScript is so that you can process LESS on the server and client. This way you can serve up a static LESS file and let the user's browser parse it, cutting out the extra compilation step. But you can still compile it beforehand and serve up the CSS directly if you don't want or cannot afford the performance hit on the client.

At the very least I could see myself using it in the browser for development.

-----


installing node on your mac takes all of 5 minutes if you already have ports installed. speed in development turnaround is important to me.

-----

More

Applications are open for YC Summer 2016

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: