HNHacker News
TopNewBestAskShowJobs

cjo

32 karma · joined August 22, 2013

Programmer and math/science tutor from Denver.

github: https://github.com/CJOlsen?tab=repositories

homepage: cjolsen.com

submissionscomments
cjo··on Ask HN: How do you become a subcontractor?
Thanks for the list, it's a little surprising to see WordPress and Drupal doing so well. I'm afraid I've been underestimating both of them. I also didn't realize the popularity difference between Rails and Django was that large.

My heart isn't set on subcontracting, it just looks like a good way to go if I can make it work. In the past I've found that good jobs come through contacts and I was hoping that through freelancing I'd meet people. Plus Denver is changing so fast I barely recognize it some days, if I can freelance or work remotely I keep the option of relocating.

I love the name of your company, it's very poetic. I really like the homepage too, the text effects and zooming are nice touches. Unfortunately it wrecks my poor little computer, it acts like it might have a memory leak? Even so, I'm a big fan of whoever is taking care of your aesthetics.

cjo··on Ask HN: How do you become a subcontractor?
I've talked to a few agencies over the years but it's never panned out, they'd have jobs for different technologies than I knew or they wanted 10 years experience for what I did know.

Can you point me to a blog post or some source of information on how to find recruiters and what to expect? I'm great at finding information about technical problems but with this I don't know where to start. Should I be sending out 10 resumes a day to anybody that comes up in a google search? Do recruiters list themselves somewhere so they're easy to find?

cjo··on Ask HN: How do you become a subcontractor?
That's good advice, I haven't been to a meetup in a while. There are two interesting meetups in the next week alone and several over the past few months that I probably would have enjoyed.
cjo··on Ask HN: Who wants to be hired? (June 2015)

  Location: Denver, CO
  Remote: Yes
  Willing to relocate: Possibly
  Technologies: Python, Django, PostgreSQL, Heroku, Clojure, jQuery/JavaScript, HTML/CSS
  Résumé/CV: portfolio @ www.cjolsen.com/#portfolio, email for resume
  Email: contact [at] cjolsen (dot) com
  Homepage: www.cjolsen.com
  Github: https://github.com/CJOlsen
I'm currently focusing on web development with Postgres/Django/jQuery but I'm also excited to learn new things.
cjo··on Accidents at Virgin Galactic, Orbital Sciences Show Hurdles for Private Space
> You have personalities like Richard Branson and Elon Musk and Jeff Bezos, who are not engineers.

Elon Musk has a BS in Physics, Jeff Bezos has an engineering degree (electrical/computer science.) Maybe they never got their PE licenses but they have strong enough technical backgrounds to grasp the science of what they're doing.

cjo··on Please remove mitsuhiko/*
Out of curiosity, which theory of value are you using here? There are many and in the most commonly used value =/= utility.
cjo··on A tiny group of people can see ‘invisible’ colours that no-one else can perceive
Also of interest is that birds have little oil droplets, often colored, as part of their visual set up. There are five different known types of color-filtering oil droplets (a sixth that is transparent) but it doesn't appear every bird has all of them.

I'm no bird sight expert but it's suggested here [0] that a particular bird may have 8 effective color receptors (5 cones, 3 cone-droplet pairs) for a huge number of colors humans can't see. Diagrams of the receptors themselves can be found at the wiki [1].

[0] - http://watchingtheworldwakeup.blogspot.com/2008/11/mountain-... [1] - http://en.wikipedia.org/wiki/Bird_vision#Light_perception

cjo··on Ask HN: Who wants to be hired?
Denver. Willing to relocate. Full-time/part-time/contract.

Stack: Clojure, Python, I'm learning JS/jQuery

Portfolio: http://www.cjolsen.com/portfolio

Contact: see webpage for email

Entry level. I learned a bit of programming in college (I minored in electrical engineering) and started to take it seriously a few years ago. Though I've focused on desktop apps in the past I'm following the market and moving towards web technologies. I'm open to contract-to-hire and I'll consider relocation on a case-by-case basis.

cjo··on Ask HN: Freelancer? Seeking freelancer? (May 2014)
SEEKING WORK - Denver, remote

Entry level Clojure/Python dev, also working towards web development. Willing to learn new frameworks/languages. Looking for part-time/full-time.

Clojure/Seesaw desktop app: https://github.com/CJOlsen/tiling-todo

Python/wx desktop app: http://thiscurrentproject.wordpress.com/2013/08/22/perfect-m...

http://www.cjolsen.com

https://github.com/CJOlsen

email on website, contact page

cjo··on DataScript – Datomic in ClojureScript
The query language is embedded in legal Clojure data structures, so it would be tricky to port to JS. That's a drawback of embedded DSL's I suppose.
cjo··on DataScript – Datomic in ClojureScript
The SICP lectures on logic programming will provide some conceptual background if needed.

http://ocw.mit.edu/courses/electrical-engineering-and-comput...

cjo··on Vinyl's great, but it's not better than CDs
This article reads like the author is just mad at some audiophile for being a jerk about their vinyl collection. Fair enough, but it's kind of straw-manning vinyl collectors.

Implying that CDs give you forensic level exact playback while vinyl is "messing up" the sound? That's ridiculous. If nothing else, digital music has to make the trip from analog to digital (ADC) and then digital to analog (DAC) and neither of these are trivial steps. Lavry Blue's cost $2500 and that's just for analog-to-digital and digital-to-analog conversion of one stereo signal, no pre-amps or anything else. In fact, mastering engineers might spend up to $8500 for two channels of digital to analog conversion.

I've done sound engineering in the past; I love digital, I think digital has done great things for music and I think the sound quality is excellent. But there's a reason that 8-tracks came and went, cassette tapes came and went, CDs are on their way out, but vinyl is still hanging on.

cjo··on Lisp is Abstract Syntax
It might not be easy, depending. Without too much trouble you could write a macro for this:

    (my-macro "
    foo
       bar
    baz beez
       zang
          dang
          bang")
and have the macro parse the string manually into something the eval/apply loop understands. But I think it might get funky pretty quick, and you'll likely lose a lot of power in the process.

The example of Hiccup above doesn't add anything new to Clojure's syntax, the DSL is all legal Clojure data structures. That way it inherits all of the power of the underlying language, like if you want to dynamically generate new HTML - that functionality comes from Clojure. But doing that while modifying the syntax for meaningful whitespace wouldn't be easy.

cjo··on Lisp is Abstract Syntax
What I think this is missing which was a huge part of the SICP course is that Lisp is probably the best language to write your own language in with a custom syntax tailored for the problem space you're working on. Even if it isn't trivial to do.

An example is Clojure's Hiccup[0] where there's a whole new syntax for dynamic HTML generation. It's not a full new Turing-complete language, but it's a custom syntax and vocabulary that illustrates Lisp's extensibility (a sample of Hiccup in action is linked below, though it isn't mine.)

[0] - https://github.com/yokolet/hiccup-samples/blob/master/src/hi...

cjo··on Lisp is Abstract Syntax
I always liked The Rise of Worse Is Better in explaining why C and its derivatives became the standard.

http://www.jwz.org/doc/worse-is-better.html

cjo··on The Hitchhiker’s Guide to Clojure
I'm not sure how high the adoption rate is but it's a natural extension of immutable data into the database world.

It also has some old roots in the Lisp community, lectures 8A and 8B[0] of MIT's famous SICP course and section 4.4 of the book[1] are on creating a logic programming language similar to Prolog; and Datomic's query language is Datalog which is a subset of Prolog.

[0] - http://ocw.mit.edu/courses/electrical-engineering-and-comput... [1] - http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-29.html...

cjo··on SICP in Clojure
I was interested in the same question (how big is a simple Scheme in Clojure?), and ended up working on one for the heck of it. It's a little under 500 lines of Clojure, and it has a very small number of primitives at this point.

I tell myself some day I'll go back and build a read layer so I can have macros.

https://github.com/CJOlsen/fez/blob/master/src/fez/core.clj

cjo··on Light Table is now open source
Great post!

For those interested, GNU's Lesser General Public License (LGPL) was created to address these concerns.

cjo··on Economists agree: Raising the minimum wage reduces poverty
Ah, c'mon, don't pin it on The Bearded Guy! That stuff predated him (see Ricardo's Law of Rent: https://en.wikipedia.org/wiki/Law_of_rent). The Bearded Guy was after all the last of the Classical Economists :)

He also didn't think wages would make it to subsistence: https://en.wikipedia.org/wiki/Iron_law_of_wages#Socialist_cr...

cjo··on Economists agree: Raising the minimum wage reduces poverty
OK, I'll respond to this and harryh's at the same time. First of all, "distortion" is relative to what economic model you're starting with - so it can get a bit tricky, and I'm not very concerned with using the absolute correct technical term. But I'll make my case from the ground up:

Unemployment has a downward effect on wages because there's more competition for every job, just like competition between firms for employees will increase wages. Ideally these things will all even out. Unfortunately in our current economy we have high market concentration (so low competition between firms for employees which decreases wages) and high unemployment (so high competition for each job which also decreases wages). So we see lower wages from what they would be under Perfect Competition (or an ideally functioning free market) where I'm told it's impossible for these things to persist.

Minimum wage laws put a limit on how much firms can wield this market power given to them by market conditions. Without minimum wage/collective bargaining of some sort (and without technological advances, etc.) history and economic theory agree that firms will tend to push wages down to subsistence levels in order to maximize profits. Minimum wage is not the greatest tool, and I don't actually like it - but I do think it should be higher. We have a lack of good options at the moment so we're left picking the best of the bad.

But why do I call it a distortion? Large enough unemployment, coupled with lack of competition between firms for employees causes such a shift that the free market is barely distinguishable from slavery for those at the bottom (subsistence wages are literally only enough to survive and keep working.) So I throw around the word distortion because I'm trying to communicate that unemployment gives such a large amount of market power to employers that the market becomes fundamentally different from what we expect in a Free Market.

cjo··on Economists agree: Raising the minimum wage reduces poverty
Well I certainly agree that money in general and our relationship to it could use a good rethinking - which is a surprisingly unpopular opinion considering America's financial sector pretty much imploded just a few years ago.

But I don't follow how solving that problem addresses markets becoming concentrated and member firms using that advantage to push wages down towards subsistence levels. That I think requires some sort of collective bargaining, which minimum wage is a type of (although it's likely not the best.)

cjo··on Economists agree: Raising the minimum wage reduces poverty
Sounds like it's a choice between a short period of minimum wage pay and then getting replaced by "cost saving technologies", or a slightly longer period of subsistence wages and then still getting replaced. It's easy to argue that since the cost of technology goes down with time that any replacement of workers due to a minimum wage hike will happen anyways when the tech gets cheap enough.

Here's a question. Both market concentration (as in oligopoly) and unemployment have significant downward effects on wages especially in the low end of the labor market. I don't like minimum wage and I wish we didn't have it but it's the best solution I've seen to these problems. Do you have a solution to these problems?

cjo··on Economists agree: Raising the minimum wage reduces poverty
Even if minimum wage does cause some unemployment that's not the beginning or the end of the story. It's a market distortion created to counteract two other market distortions - namely already existing unemployment and market concentration on the employers' side, both of which depress wages.

So even proving beyond a doubt that minimum wage causes an increase in unemployment isn't enough to abolish the institution if there isn't a better solution to the problems at hand. Plus, unemployment percentage is not a robust enough metric to base the entire conversation on.

I liked Bryan Caplan's piece but to me it was predicated on the idea that minimum wage is based on errors in logic and not based on distortions in markets (especially in his conclusion.) I'm yet to see a better idea for addressing the downward effect of unemployment and oligopolization on low end wages. Caplan's solution seems to be deregulation but to me that's a bit like letting the wolves and the sheep work it out for themselves.

cjo··on Economists agree: Raising the minimum wage reduces poverty
> It is basic economics that when the government mandates a price floor then anyone who cannot sell their goods for anything below that floor will not be able to sell their goods. Thus it will hurt those it's trying to help.

Applying this to the low end of the labor market is pushed in a lot of Econ 101 classes but it requires so many assumptions to be true that the model only has a passing resemblance to reality.

To use your own logic, you can't say that raising the minimum wage won't also change other variables important to the model but assumed to be constant (maybe it causes companies to outsource, maybe it causes workers to emmigrate, maybe it raises worker productivity) - so if economists are truly constrained to ceteris paribus situations then they have nothing to say about the effects in reality from a minimum wage increase.

cjo··on Python 2.x vs. 3.x survey results
> Do you have dependencies keeping you on 2.x? > Yes: 61.46% > No: 38.54%

I know that's why I returned to 2 after trying 3. For example BeautifulSoup (HTML parsing/scraping) has only supported Python 3 since October '13. There was nothing wrong with 3, it was just dependency issues.

Plus, when 2.7 was released it was done with a promise of ~6 years of support[0] to aid in the transition to 3.x. I think the definition of success here needs to take that into account.

[0] - https://mail.python.org/pipermail/python-dev/2010-May/099971...

cjo··on X server in 5000 lines of Common Lisp
I think it's easier to reason about in the long run although the initial period of wondering why you don't just set up a data structure and bang on it in place is a little bumpy.

The syntax is always[0] (procedure argument-1 argument-2 ...) where the procedure is applied to the arguments.

about half-hour in to this lecture the syntax is explained: http://ocw.mit.edu/courses/electrical-engineering-and-comput...

[0] - almost always. Macros look the same and often get treated the same but they are very different.

cjo··on Magnus Carlsen is World Chess Champion
There was a checker playing computer called Chinook that had something similar happen at one point (iirc one of its databases was corrupted).

Definitely worth listening to the story: http://relprime.com/chinook/

cjo··on Idiomatic Clojure with LightTable
I've heard good things about using emacs-live (https://github.com/overtone/emacs-live) to get you up and running quickly.
cjo··on Idiomatic Clojure with LightTable
I think it would only be good if its used as a learning tool and not a code-writing tool, compare:

write the best code you can -> run kibit -> spend an hour reading the docs and every blog post you can find about a feature you didn't know about -> repeat

write the best code you can -> run kibit -> show off your awesome code, you're a rockstar!

cjo··on Idiomatic Clojure with LightTable
thing is if you take a modern language and add s-expressions, then you may as well add macros and at that point there's a good chance it just became a lisp

If you go here (http://www.paulgraham.com/icad.html) and search for the heading 'What Made Lisp Different' it may better explain it

Page 1 of 2Next →