HNHacker News
TopNewBestAskShowJobs

adamkittelson

477 karma · joined June 11, 2010

Software Engineer at Brightcove (Zencoder)

Current Side Project: Apotheosis - web-based MajorMUD inspired text game

submissionscomments
adamkittelson··on Joy of Elixir
I've certainly enjoyed Elixir as an nth programming language and the idea of Elixir as a 1st programming language is really interesting.

I know I've seen at least one educator in the community speculate that Elixir (or FP languages in general) could potentially make great 1st programming languages because they're often conceptually easier than OOP languages and in many ways the difficulties people associate with learning them come from the difficulty of unlearning some of the things they already know.

adamkittelson··on Show HN: ABCWeb – A Go Web Framework
I'm usually the last person to jump to the defense of anything golang related... but people seem to be raising eyebrows about the nodejs dependency. Assuming they're using it for asset compilation etc I really don't see the problem. There's no reason to keep rewriting that stuff in every language.
adamkittelson··on India Is Winning Its War on Human Waste
Or we could explore the possibility that the acceptable amount of human feces on the streets of a major city in a first world country is none.
adamkittelson··on Powerful new features for businesses on GitHub.com
Tangentially related, but on our slack this morning everyone is griping about the updated blue text color on repo pages at Github. It's pretty ugly.
adamkittelson··on The Programming Interview from Hell
And when you see that do you wish they'd never been hired due to this insurmountable hole in their knowledge of data structures or do you take 30 seconds to tell them about sets?
adamkittelson··on GitLab Database Incident – Live Report
I think the fact that no one seems to even remember that GitHub had a similar incident in 2010 https://github.com/blog/744-today-s-outage is a good thing to keep in mind for the GitLab team. This too shall pass etc.
adamkittelson··on “BRAAAM”: The Sound That Invaded the Hollywood Soundtrack
I didn't get the sense that the sound effect for dragon attacks was meant to be interpreted as being produced by the dragon, I took it as being in the same vein as the "BRAAAM" effect in the article.
adamkittelson··on Amazon LightSail: Simple Virtual Private Servers on AWS
I've been using packet.net for a small side project, they do bare metal / single tenant servers but the provisioning is very similar to linode/digital ocean. Their ~$35/mo ($0.05/hr) option is on par with digital ocean's $80/mo offering.
adamkittelson··on Does prospect theory explain Trump and Brexit votes?
It felt like they weren't just predicting disaster, but hoping for it. Like being right about Trump's election victory having dire consequences is somehow preferable to everything turning out ok despite their candidate losing.
adamkittelson··on Erlang Installer Beta: A Better Way To Use Erlang On OS X
Homebrew sometimes takes a while to get new erlang releases available. I seem to recall a release about a year ago that took over a month to become available. Something about other apps in homebrew that use erlang having to update before the homebrew erlang could be released, or something like that, I don't recall the details.

At any rate I've been using asdf https://github.com/asdf-vm/asdf to manage my erlang and elixir installs on a per project basis for a while now and it has been working well for me.

adamkittelson··on Functional Programming Jargon
I think that touches on one of the problems with hiring in tech. People tend to think things they learned earlier chronologically are simpler or more fundamental and necessary building blocks in order to be competent at the things they learned later. So we have programmers with CS backgrounds rejecting programmers without who would be perfectly capable of doing a particular programming job because they get tripped up on some algorithm or data-structure quiz that has no relation to what they'd actually be doing on the job (and could be quickly learned if and when it did).
adamkittelson··on I've Just Liberated My Modules
About a year ago I tried to unpublish a version of a library I'd pushed to Elixir's hex.pm package manager but the API rejected it. Turns out they only allow you to revert publishing for an hour after you push.

It was a little inconvenient at the time but in light of this I can very clearly see the wisdom of that decision.

adamkittelson··on Thanks for Trumpet Winsock
I've tweaked my implementation some to make it more conducive to non-automated play. The experience needed to level is significantly lower after level 10 or so than in the original.

Also in my implementation rather than play as the original races / classes you play as Angels or Demons which can possess and play as monsters/npcs to experience different play styles without having to create new characters.

The Angel class is the default for new players and has a mechanism by which experience points are redistributed periodically from players with more to players with less which helps newer / less active players catch up / stay relevant. Veteran / active players who get tired of carrying the team can go dark side and become demons.

adamkittelson··on Thanks for Trumpet Winsock
I've actually been working off and on on a MUD using Major Mud's dataset in Elixir for the last two years.
adamkittelson··on Rubinius, Inc. – A Benefit Company
Will it? My knee-jerk reaction to this was that Elixir already has more adoption than Rubinius, but then I stopped paying attention to Rubinius years ago. Do people use it for real stuff?
adamkittelson··on [dead]
From the announcement 5 days ago http://www.reddit.com/r/announcements/comments/3cucye/an_old...

"Steve is rejoining Alexis, who will work alongside Steve with the new title of “cofounder”."

Cofounder is the title of his new role, not just the indication in his bio that he helped found Reddit, so it covers what he does there now.

adamkittelson··on Amazon API Gateway – Build and Run Scalable Application Backends
It'd be cool if they'd use this to wrap their own XML-only APIs to provide JSON wrappers.
adamkittelson··on Deploying v0.11 Phoenix application to Heroku – My first ever blog post
I'm using https://github.com/scrogson/oauth2 to let users login with Facebook in the Phoenix app I'm working on and it works well.
adamkittelson··on Elixir – The next big language for the web
I used Weber when I first got into Elixir a little over a year ago. It was a cool framework and I even contributed to it (mostly keeping it up to date as new versions of Elixir were released).

But... the last commit was 9 months ago. Weber is dead. If you're interested in doing web stuff with Elixir today Phoenix is what you want.

http://www.phoenixframework.org/

adamkittelson··on Android 5.1 Fixes a Wi-Fi Annoyance
If there was an option not to connect to AT&T wifi hotspots I couldn't find it. Unlike most wireless routers it wouldn't only automatically connect to ones I've used before, it would eagerly connect to any AT&T hotspot.
adamkittelson··on Android 5.1 Fixes a Wi-Fi Annoyance
This was one of the reasons I left AT&T.

They have hotspots everywhere that my phone would connect to and they inevitably either sucked or were located just far enough away from the store I was visiting that the phone could connect but not get usable internet.

I'd have to keep turning wi-fi off in order to use the internet, then naturally I'd forget to turn it back on.

Between the removal of unlimited data plans and the strategic placement of wi-fi internet sabotage devices I wouldn't be surprised if I had to pay AT&T some overage as a result.

I'm on T-Mobile now with unlimited data and no useless hotspots.

adamkittelson··on Highlight.js – Syntax highlighting for the Web
This isn't really related to the act of highlighting syntax, but I noticed the example code for Elixir at https://highlightjs.org/static/demo/ is quite out of date. Records generally aren't used anymore, and the syntax to send a message to a process has changed from `pid <- message` to `send(pid, message)`
adamkittelson··on Metaprogramming Elixir
A lot of that is by design. It's my understanding that they made the decision not to wrap erlang standard libraries just for the sake of wrapping them, because the erlang standard libaries work just fine when called from elixir.

If something needed to be wrapped to make it play more nicely with elixir, for example to change argument order to better suit elixir's |> operator, or if there were other real benefits to wrapping an erlang library, then they might wrap it. Otherwise if the erlang library is good just use the erlang library.

adamkittelson··on A new wave of videogames offers lessons in powerlessness, scarcity and failure
There was an interesting critique of Mass Effect's morality system recently at http://www.avclub.com/article/mass-effects-universe-gets-ugl...
adamkittelson··on Ask HN: What's left for early startup engineers as the company grows?
Personally if I could eliminate all the aspects of my job that aren't just writing code I would be ecstatic.
adamkittelson··on Japan’s sexual apathy is endangering the global economy (2013)
previous discussion, 2 days ago: https://news.ycombinator.com/item?id=8866601
adamkittelson··on Phoenix – Elixir Web Framework
Here's a link to a discussion on the mailing list that touches on why Python-style significant whitespace wasn't used: https://groups.google.com/forum/#!topic/elixir-lang-talk/u6P...
adamkittelson··on Why your first Rust FizzBuzz implementation may not work
Yeah, it's also fun that you can do it in a multiple function head pattern matchy way

  defmodule FizzBuzz do
    def fizzbuzz(x),          do: fizzbuzz(x, {rem(x, 3), rem(x, 5)})
    def fizzbuzz(_x, {0, 0}), do: IO.puts "fizzbuzz"
    def fizzbuzz(_x, {0, _}), do: IO.puts "fizz"
    def fizzbuzz(_x, {_, 0}), do: IO.puts "buzz"
    def fizzbuzz(x,  {_, _}), do: IO.puts x
  end

  Enum.each Range.new(1, 100), &FizzBuzz.fizzbuzz/1

or in a more ruby-esque fashion

  (1..100) |> Enum.each fn(x) ->
    cond do
      rem(x, 3) == 0 and rem(x, 5) == 0 ->
        IO.puts "fizzbuzz"
      rem(x,5) == 0 ->
        IO.puts "buzz"
      rem(x,3) == 0 ->
        IO.puts "fizz"
      true ->
        IO.puts x
    end
  end
adamkittelson··on Tech Blogger Tries To Cancel Comcast Service, Hilarity Ensues
Comcast doesn't serve Madison, WI in case anyone needs a city for this.
adamkittelson··on People hate to register, some follow-up thoughts
I'm creating a MUD (text based multiplayer RPG) with Elixir using websockets instead of telnet. After reading the prior blog post I stripped out my account / character creation and converted to random URLs.

Game data like this starts out as being unimportant to the player when they're just dipping a toe, but as they get more invested it can become very important to them. I'm going to give players the ability to customize their URL to something more memorable / create a password to protect their URL / provide an email address to make it possible to reset a forgotten url or password. Those things will all be doable from within the game and are never mandatory, the player can decide when or if they care enough about their character to protect it.

As a bonus the account / character creation / login code was some of the worst code in the app so I was happy to delete it.

← PreviousPage 2 of 3Next →