HNHacker News
TopNewBestAskShowJobs

grdvnl

141 karma · joined March 24, 2012

Software Engineer, PhD Candidate[Research area: static and dynamic analysis of programs to improve testing tools and mutant generating mechanisms]

Currently I spend my spare time understanding and programming in Clojure and its implementation on the JVM.

Blog: http://devanla.com Linkedin: http://lnkd.in/zPja7t Twitter: https://twitter.com/grdvnl

submissionscomments
grdvnl··on MIT's Scratch Team releases Scratch 2.0 editor and player as open source
This is great. Every time I visited the Scratch website I wished I could use a similar project on a tablet/smartphone.
grdvnl··on Washington, D.C. has some amazing startups http://started.in/dc
I am not aware of anyone. Would love to see this information on LA. Let me know if there is something I can do to help!
grdvnl··on Ask HN: Creating a query builder for end users
I have worked on an app that gave the exact functionality to the users. The users could create queries using the query builder, and also schedule when the queries could be run.

The challenges of course was training the users to use the operators correctly and in a way that made logical sense. It did take a while for the end users to learn to build queries.

On the UI front, most of the fields and tables could be chosen by double-clicking or drag and drop. Certain operators could not be used with fields based on their types. We also provided a AST like tree to help users understand the operators.

On the optimization front, letting users build their own queries could also lead to very costly queries. We had to profile the user created queries regularly and fine tune our query generator to handle such uses. We ended up creating a lot of materialized views in Oracle to handle specific frequent uses of joins in the table.

The users who were using this tool were top level finance and accounting folks, who wanted to produce reports for the CFO has he dreamt up different data points to work on!

grdvnl··on Washington, D.C. has some amazing startups http://started.in/dc
One list I am aware of for LA is http://represent.la/. Are there other websites which provide information on startups in So. Cal?
grdvnl··on The Indian sanitary pad revolutionary
> "You always have a girl in white jeans, jumping over a wall," he says. "They never talk about hygiene."

Look's like the marketing folks at P&G were selling this stuff to the mostly affluent. Therefore, I am guessing they never bothered to sell the hygiene angle.

grdvnl··on Postfix Code Completion in IntelliJ IDEA 13.1
Nice. The most useful postfix completion I would be using in casting. It involves a lot more jumps over braces to wrap around couple of casts.
grdvnl··on How to intentionally get denied entry into the United States?
One other option worth considering:

1. Loose your passport 2. Get a new passport 3. Apply for new US visa to keep parents happy 4. Get rejected at the visa office

Just avoids re-entry, and buys time may be till she is done with her college.

grdvnl··on Where Lisp Fits
nitpick: Here is the link that describes why Clojure's threading macro is not really a pure thrush operator.

http://blog.fogus.me/2010/09/28/thrush-in-clojure-redux/

grdvnl··on Open Dylan's Call for Help
Why do you feel it is contradictory? I think having method names end with "?" whenever they return a boolean value is quite intuitive. They seem to stand out more than having such method names start with "is" or "has". YMMV.
grdvnl··on Why Are There So Many Pythons?
Ok, thanks for clarifying that. I just looked it up and learnt than an interpreter-based approach is another option compared to other ways of supporting a dynamic typed language( by reflection, base object declaration)
grdvnl··on Why Are There So Many Pythons?
Why does one need a Jython Interpreter once the byte code is available for a JVM. Isn't there the standard java that I can use?
grdvnl··on Is learning C# as a first language a mistake?
I have been thinking about a similar question. What is the best way to learn a language? Or how does one equip oneself to pick up any language to start coding up the basic tasks[ignoring the intricacies the language provides]. Does learning one kind of a language help with learning other languages?

I started learning programming with C and little bit of C++, before I started working on real life projects in Java and C#. Since then, I have dabbled in Python, ML, Racket and more recently Clojure. So what did I learn from all this? It is best to learn any language by learning the concepts or the \ how the language implements/solves that concept.

For example, teaching the general concept of "environment" some declaration resides in helps understand any languages "scoping" behavior more easily.

So, the bottom line is teaching any language by way of 'programming language concepts' and just using the language to realize those concepts would go a long way.

grdvnl··on 37signals Works Remotely [video]
Agreed. Having a big percentage of company working remotely sets up a workflow among all team members that is conducive to remote work. Whereas, when some parts of a team are working remotely, including where teams get created/dismantled for short projects every couple of months coming up with a workflow becomes difficult. That said, I work remotely and I have been productive as ever.
grdvnl··on India: the Story You Never Wanted to Hear
Even the highly educated in India go around temples and follow all superstitious beliefs. My parents quote examples of Indian scientists at NASA and their superstitious beliefs to make me believe in religion and the super powers. Their reasoning being there are smart people at NASA who follow the astrological calendar when it comes to events at their homes. So, I doubt education alone makes a person better. Character building and rational thinking is whole another ball game where Indian education falls short.
grdvnl··on India: the Story You Never Wanted to Hear
Ok, when I said it is part of culture I did not by any means justify the behavior. Cultural habits have their own downsides and upsides. They also evolve. So, right now that is the state. I wish it got better. If my comment sounded like I supported that behavior, I would like to make it clear that intent of the comment was not that.
grdvnl··on India: the Story You Never Wanted to Hear
To add to your comment: Even Indians who grow up in cities get the same kind of stares when they visit villages. As an young child every year when my siblings and I visit a tiny village where my parents grew up, there are always people who live around the neighborhood peeping through our doors to see who has arrived and what we were up to. Even when we walk in the muddy roads or ride in an ox-cart to visit the farms,we noticed everyone lines up on the road to watch us.

And of course, this is more pronounced for woman. This is also part of Indian culture(good or bad).

But, this part of mannerism does not discount the extreme harassment the OP has experienced.

grdvnl··on Microsoft Code Digger
Your are right. I mixed up dynamic symbolic execution with invariant detection. I know there is something called DySy which does do invariant detection using dynamic symbolic execution.
grdvnl··on U.S. Software developer wages fall 2% as workforce expands
My comment was considering inflation. Can you please elaborate what you were alluding to.
grdvnl··on U.S. Software developer wages fall 2% as workforce expands
Well I am talking about time between 2000 and 2012. Salaries have remained in the same range since then for the most part based on my conversations with people I used to work for then in the Silicon Valley.
grdvnl··on U.S. Software developer wages fall 2% as workforce expands
I think even in the Silicon Valley the salaries other than the selective big guys has not even kept up with inflation. A 2 year-experience developer still gets between 80-100k or less. This is what was being paid in 2000 as well. The situation is probably the same elsewhere.

Of course, my numbers above are from my own poor sampling.

grdvnl··on Microsoft Code Digger
Pex is based on the Daikon dynamic invariant. This document explains some results and examples in certain languages.

http://groups.csail.mit.edu/pag/daikon/download/doc/daikon.p...

grdvnl··on Why Maybe Is Better Than Null
The Optional<T> in Guava just forces one to explicitly check for null and then get the container object during development. A typical pattern would be:

Given an object a of type Optional<MyObject>, we write:

if (a.isPresent()){ MyObject o = a.get() }

Of course, I could still do a.get() without evaluating isPresent() and end up with an java.lang.IllegalStateException. Here, we are "reminded" to do the null check.

grdvnl··on Object Oriented Design principles Java programmers should know
Agreed. There is a fine line on how much of this should be used. Teams can spend cycles trying to design everything based on IoC which might be overkill. All rules regarding keeping things simple should also apply to IoC.
grdvnl··on Poll: Have you run a marathon?
Running with a group while training for the marathon could be the best approach. Before I started training for my first marathon I had never run more than 3 or 4 miles. Just being in a group forces you to show up for the those long runs on weekends. Plus, I have met some amazing people and made great friends during the training. I trained with this group back then: http://sf.team-asha.org/ (a charity that funds education in India)

Since my first marathon I have trained alone for a number of them. But, I have consistently trained well and timed well when I trained with a group.

In terms of what organizations to choose: if you are looking for charity based training groups there are a tonne.

If anyone is in Chicago and planning to train I would recommend checking out CARA(Chicago Area Runner's association). They have an excellent marathon training program.

grdvnl··on A Review of 3 Hacker News Jobs Listings
>> No salary. At the very least quote a range. The Qualified are probably working and need to know whether it's worth their while to jump ship....

This alone is a one of the biggest inhibitors for some great people I know. These days all startups claim their culture is as cool as any startup culture can get. So, I feel there isn't any differentiating factor in quotes like 'disrupting something' most of the time. I believe a good advert would be one which gives sufficient information that motivates good candidates(who usually have good jobs already) explore other options.

grdvnl··on A gallery of interesting IPython Notebooks
IPython Notebook is an amazing tool. I used it a lot while presenting examples during my GSoC project. It was easy to clearly present the features I was adding to the library as the project progressed. I also used it regularly as an REPL, though I would prefer lot more keyboard shortcuts be made available.

Some examples: http://rhoforsympy.wordpress.com/2012/07/16/week-8-trace-imp...

grdvnl··on View of Scala from Java
Yes, I have been using the Scala IDE and Scala worksheet for my initial learning. As you said, it is great and more friendly than the REPL itself. It reminds me of Python Notebook in terms of being able to get good feedback and recursively edit.
grdvnl··on View of Scala from Java
Thanks, fixed the errors.
grdvnl··on View of Scala from Java
Even, I find this strange and I may be wrong. With your definition, when I use the for construct, I see this:

    scala> for (y<-x if x > 2)
         | println(y)
    <console>:9: error: value > is not a member of Array[Int]
              for (y<-x if x > 2)
                             ^

As you suggested, there may be a idiomatically better way to get implicit inference and also use the filters. I would be glad if some one corrects me on that.

Edit: Yeah, I see the silly error I made. I'll better get some sleep. I will leave this comment intact, for the responses to make sense.

grdvnl··on View of Scala from Java
By not using the declaration, the type of x is Array[Nothing], and it lacks the `withFilter` attribute.
← PreviousPage 2 of 3Next →