HNHacker News
TopNewBestAskShowJobs

gvickers

27 karma · joined May 31, 2013

submissionscomments
gvickers··on Philanthropy for Hackers
I thought the same thing, 35 times...
gvickers··on Why Go is doomed to succeed
Communicating sequential processes
gvickers··on Ask HN: Most difficult programming challenge you solved in 2014?
The most difficult project I have solved (just finishing up the implementation) is developing a monitoring solution for a bunch of legacy telephone PBX's.

Essentially, the bureaucratic overhead for getting a bunch of companies to open their firewalls to us was unfeasible. Long story short, I ended up hijacking the SSL/VPN generated by a running JVM to forward a bunch of SNMP/OSSI-polling traffic to our api.

At the end, after implementing the above, I found out about a service port for outgoing only traffic offered to business partners. That was much easier to use, only requiring nginx to split off a certain sub-path of SSL traffic + business partner status.

I am still proud of the original hack, although brittle and ugly it was very exciting to get working.

gvickers··on Ask HN: I will hack on your startup for a place to sleep
As am I
gvickers··on Ask HN: any advice for someone changing career to become a software engineer?
Thats a bad argument. Pickup an imperative language (python), learn a function language (Clojure), and you pretty much have your basis covered with whatever the future throws at you.
gvickers··on Ask HN: 100+ people/companies were hiring at ClojureWest?
http://functionaljobs.com/ seems to have a few postings. It is strange that there seems to be a huge desire for Clojure programmers but I have seen very little in the way of wanted adds.
gvickers··on Ask HN: What's the best technical talk you've heard?
Rich Hickey - Simple Made Easy http://www.infoq.com/presentations/Simple-Made-Easy

Changed how I think about a lot of stuff, made my design process a lot more rigorous, and my projects more successful.

gvickers··on Show HN: Real-time server monitoring in your browser
I've been searching for something like that for a while now. A metrics web framework that consumes and renders json/edn would be interesting.
gvickers··on Ask HN: Favorite projects for learning a new language?
You would be surprised how easy it is! Often when new to a language, especially if it crosses paradigms, contributing to an existing project is difficult. Wrapping another library that may be obscure or niche allows you the freedom to fail and learn from your mistakes.
gvickers··on Ask HN: Favorite projects for learning a new language?
Unless there are significant differences in the way a web framework is structured (i.e. Pedestal for Clojure), I find that making a web app doesn't really contribute much to learning the intricacies of the language.

I like to try out a languages interesting features by wrapping an existing library in an idiomatic style suitable for that language. For example my most recent work is attempting a wrapper around SNMP4j in Clojure, foregoing the OO style for a more data-centric approach.

gvickers··on Ask HN: How persistent and smart do you have to be to learn to program?
About two years

I'm serious, two years of an hour or two a day (at least!) will give you enough foundation to really enjoy it. You have to start with tutorial, use the sample projects you build and change them drastically. Break them, improve them, talk to people about them.

The issue that is most common is the starting momentum is difficult. There are some concepts that are dead simple in programming, by their nature they are composable. The composition of simple concepts form virtually all the higher level concepts. It's not so much learning to code as it is learning to think in a certain way.

gvickers··on Ask HN: Are you addicted to video games?
Yea, Eve online had me for a while. It also had the strange effect of making all other games un-enjoyable for me. Eve is a true min/max game, where 2% of something often makes a huge difference. The desire to maximize the efficiency of everything I did carried over to other games and even aspects of my life.

Most games stop being fun when you make a spreadsheet for them, Eve is one of those few exceptions. Right around the time I stopped playing Eve, I started finding it difficult to play games just for fun without trying to min/max every aspect to gain an advantage. I guess I was really addicted to the meta-game rather than the game itself.

gvickers··on You will probably need jQuery
Yes
gvickers··on CCP Games brings Sentry to the PlayStation
Lets you get around the GIL (Global Interpreter Lock), basically gives python lightweight threads (greenlets).
gvickers··on Compile Clojure to Objective-C
Using mutable data structures is pretty easy in clojure, I'm going to dig around and see how they handle this.
gvickers··on Ask HN: is Clojure a good all-purpose programming language?
It has been said time and time again, Clojure is suitable for anything that Java is suitable for. Clojurescript is extremely similar, so much so that you can expect most lib's to be trivially refactored between CLJS/ClJ.

There are some issues you are going to face, there's no way around them. First the tooling, it is beautiful in it's own right but takes a while to get used to. Leiningen is the preferred build tool, it cleanly handles almost everything for you but learning it seems to the beginner like just another thing preventing them from getting productive. You will miss your debugger for a while, until you realize having a debugger allowed you to write confusing, messy code that could be funged into working. There are many editors available, but when switching to clojure I decided to also learn Emacs 24 and now use it as my primary editor for every language/document.

Second is productivity, coming from php/js you will simply not have the background to lay down code quickly, let alone for-see potential issues. It took me approx. 5 months of study, every single day, to reach a comfortable point in the language where I could pump out Clojure code at a faster rate than C# code. I'm not even sure if it is faster or just my Clojure code doesn't have as many issues or is architecturally more sound. Why I feel more productive is a mixmash of things that I could probably write a book about. It's also very strange doing java interop with Clojure constructs. I often find myself getting caught up on clojure's lazyness or lack of types. Once you get a handle on it though it is extremely simple and my preferred way to write java code.

Lastly, I seem to have poisoned my brain a bit with these ideas, I approach almost every problem now as a functional one, yielding crappy looking C# code. I often have to take a step back, stop trying to make things fit into a functional category that are clearly OO.

I am risking sounding like an evangelical but Clojure has changed every aspect of programming for me, and made it fun again. I find getting in "the zone" is much easier when things seem to spookily just work. Looking at problems through the Clojure lens more often than not resolves in a simple, composable solution.

gvickers··on The spiral of learning
I used to be in the exact same position. Switching between different languages, paradigms, frameworks helps immensely in narrowing down you're area of interest. I spent a significant amount of time playing with python, tried thinking "pythonically" and using it as my side-project language. But after about a year I never got comfortable, maybe it was the mature community surrounding the language or its opinionated nature.

Anyway, I distinctly remember learning about Clojure, and being completely enamored with the ideas Rich Hickey talked about. I would still get bored of doing 4clojure problems, but instead of abandoning them for a different subject entirely I would watch a ClojureConj video, read a blog on a Clojure library, or even just practice some of the tooling like emacs key-chords.

I believe the learning process is better when it is erratic, both for you're own sanity and the overall completeness of a knowledge domain you can acquire after jumping around from topic to topic.

5 months in, I am trying to push Clojure/Cljs ideas into the C# shop I work at, and upholding my promise to do SOMETHING regarding the language or tooling every night.

Our brains seem to work best this way, storing an idea in our subconscious after rigorous study allows us to process it in the background. I find myself frequently daydreaming about language constructs or architectural designs.

gvickers··on Filthy Lucre
The American Dream is not "work hard and you will be successful", the American Dream is "Work hard at something people are willing to pay you to do and you will be successful".
gvickers··on The ones who walk towards Acre
How is this relevant to HN?
gvickers··on Ask HN: How were the first 12 million bitcoins distributed?
They were mined

https://en.bitcoin.it/wiki/Mining

gvickers··on 100,000 DOM Updates
Very impressive, I am glad I started studying clojure earlier this summer, I feel it will be a powerful tool in years to come. Currently working on a Cljs life simulation engine (flora, fauna, think Rich Hickeys Ant Colony demo)
gvickers··on Show HN: "Adventurize" Minecraft advertising platform built with Meteor
I didnt understand the point of your website until I read the comments section. Perhaps post something describing what your site does in clear detail.
gvickers··on How many Python programmers are there in the world?
Interesting but as accurate as pissing in the wind
gvickers··on How 'Sailing Stones' Move Themselves Across Death Valley
How would just the area around the rocks freeze? Why doesent this happen in more places if this is the case?
gvickers··on Omni: Move Naturally in Your Favorite Game
I am excited to see how this will change gaming. Traveling and moving with become first class citizens when it comes to the difficulty aspect of a game. Imagine multiplayer, where people's differences outside the game come into play inside the game like tactics, speed, agility...
gvickers··on Dynamic languages have jumped the shark
You have weak and dynamic typing confused.