HNHacker News
TopNewBestAskShowJobs

joncalhoun

1,172 karma · joined March 14, 2012

Creator of:

- UseGolang.com - Web Development with Go course

- Gophercises.com - Go exercise problems w/ screencasts

- Calhoun.io - Go articles/tutorials

- ErrorsInGo.com - Common Go errors and ways to fix them

YC Alum. Founder of EasyPost. Former Googler

Email: jon@calhoun.io

submissionscomments
joncalhoun··on Course: Web Development with Go
Author here - happy to answer any questions.

This course is intended to be like Michael Hartl's Rails Tutorial, but for Go. Happy to go into more detail, but that should give you a pretty good idea of what to expect.

joncalhoun··on Just Say No
Any suggestions as to how those rules for professional conduct would be enforced?

A lawyer can be disbarred, and this is easy to enforce because they can't go into a courtroom and defend or prosecute afterwards.

Developers have no equivalent. There is no way to dictate who can and can't work as a developer. Perhaps you could create some sort of agency that every developer needs to be a part of to work, but I don't ever see developers all agreeing to give an organization that much power.

joncalhoun··on Plastc will cease operations and will not fulfill any pre-orders
As much as I'd love to see something like this succeed, I can't see it happening.

CC companies have too many incentives to force you to carry their physical card, so they will keep on producing things like the chip-and-PIN tech. That means we will always have one force pushing us to carry their physical card, and until I NEVER need to pull out that real card I have to carry it with me, so I might as well just use it.

joncalhoun··on How I Used Twilio, Python and Google to Automate My Wedding
Sometimes it isn't about you, but it is about the guests themselves.

My wife and I opted to do both physical + digital for our wedding and we found that the older crowd all relied on physical invites and info for things like the schedule, RSVPing, etc, while the younger crowd all used the digital alternative.

To be clear, the older crowd all knows how to use FB etc, and most had smartphones, but many still appreciated having something physical both to remember the wedding (my grandmother keeps the save the date on her fridge 5 years later), and to reference without having to constantly pull out a smart device.

Sure, you could argue that it is your day and you can do what you want, but I look at a wedding as a collective celebration. If it was just my day I wouldn't invite those people. I invited everyone that I wanted to be a part of that celebration with me, so I also put in a little extra effort to help them enjoy the day as much as I did.

joncalhoun··on API Design Guide
I prefer the bare minimum approach. That is, if you NEED the user resource to access the event (eg the primary key is like [user ID, event ID]) then nest it in the url. Otherwise if an object has its own ID and could otherwise be accessed independently why not just do so?
joncalhoun··on Ask HN: What are some books where the reader learns by building one project?
This book doesn't cover testing at all. I wanted to, but there just wasn't room for it and it would have lead to information overload.

What I am thinking about doing is writing a companion book that covers git, testing, etc. Eg after every chapter the companion book then walks you through writing tests, committing to git, merging it into master, etc. That way someone could optionally choose to do those things along the way. I might also experiment with other formats, but time will tell.

joncalhoun··on What I Heard from Trump Supporters
Honestly, I think just acknowledging that they are struggling and saying that he wanted to help won Trump a lot of voters. When you feel ignored or unheard by the other party that is enough.
joncalhoun··on Instacart is playing games with its workers’ pay
It is hard to evaluate if the delivery person did the best they could with what the store had or just grabbed random produce. So now we are ripping drivers because the grocery store for a fresh produce delivery?

I'm not saying the lack of tips doesn't hurt drivers, but I agree that I have no idea how I could determine when a tip is justified.

joncalhoun··on What I Heard from Trump Supporters
I live in a small deep-red town, so I'll try to give my take on a few here.

2. Imagine you lived in a town where 99% of the population is not racist, but that 1% that is racist is blatantly so. They don't do thing subtly, but they openly use racial slurs and make it known that they don't like or trust people of a certain ethnicity.

Now imagine someone comes into town and when they happen to see someone of color they subtly walk to the other side of the road, or quickly double check to make sure their wallet is still there after they pass by.

To many (most?) people in the town, they likely wouldn't perceive this as being racist at all. Racism to them is walking into the passerby intentionally and saying something crude like, "Watch where you are going, *!"

When you spend your entire life thinking that this is what a racist is, Trump can seem incredibly tame by comparison.

Now we can get into a completely different discussion about whether those people truly are racist for not recognizing racism, not ostracizing the few blatantly racist people, etc, but in my experience nearly all of those people are making a genuine effort to be accepting of others and aren't intentionally racist. They have just grown up in a completely different environment/culture than what you would get growing up in a city, and their opinion of what is racism isn't the same as yours.

4. Where I grew up, something like 75% or more of the jobs were at factories. Toys, factory equipment, bicycles, fiberglass, metal, etc all came out of the town. And the people working these jobs weren't lazy - they would work 60+ hours every week, often working Saturdays, long overlapping shifts, and the factory would run 24/7. They even dealt with dangerous equipment (it isn't uncommon to see people missing fingers here) where they needed to pay attention to what they were doing all the time without any additional compensation. But they were happy. They could provide for their family. They could make enough to pay for a $100k house and their wife could stay at home and watch the kids because he likely was working and couldn't help out. Wages were never amazing, but they got by.

Now for whatever reason - automation, outsourcing, immigration, or whatever else - many of those jobs are gone, and now these people who previously would bust their asses to get by are still trying to bust their asses, but they are all fighting for the few jobs remaining. Wages are down (more workers than are needed by jobs). Spouses are working to try to help pay the bills. Despite all of that, things just don't look like they are getting better anytime soon. There simply aren't enough jobs available for them.

In cities service jobs can often help fill this gap, but in small towns it typically isn't enough. And many people don't want to, or can't afford to move. They are already barely able to pay their $400/mo mortgage and nobody would want to move to their prospect free town, so who are they going to sell their house to? They have grandparents in the area who need their help. They have kids 6 years into school with friends they don't want to uproot. So they do what they can, take what work they can, and get by hoping and praying that someone will take notice of their struggle and try to help them out. And the median income continues to decrease.

joncalhoun··on Ask HN: What're the best-designed things you've ever used?
All those buttons and not a single one to mute the microwaves beeping noises. It would really be handy when others are sleeping.
joncalhoun··on Ask HN: What are some books where the reader learns by building one project?
Feel free to email me if you want to discuss this in more detail. I'm not opposed to something like this but I suspect a video format may work better. jon@calhoun.io
joncalhoun··on Ask HN: What are some books where the reader learns by building one project?
Web Development with Go (see https://www.usegolang.com) is based on starting with pretty minimal Go and web development experience and walking you through the process of building a complete web application.

I find this approach works well because you don't have to ask "why did he make that design decision" but instead I intentionally make common mistakes a beginner would make, wait until they become an issue, and then I demonstrate how we can fix that issue. As a result you really get to understand not only how to create a web app in Go but also why developers tend to follow different design patterns.

I said this in another comment, but it is based on Michael Hartl's Rails Tutorial. I think showing someone how to go from nothing to a full app is a great way to help them get into web development without the frustration that comes from piecing together blog posts/docs/trial&error.

If you are interested in Go I'd love to get your feedback :) and if it isn't obvious, I am the author of the book.

joncalhoun··on Ask HN: What are some books where the reader learns by building one project?
This is the inspiration behind the book I am working on - Web Development with Go (see https://www.usegolang.com).

Michael's book is fantastic and I really wanted something similar for people getting into go. My book doesn't cover git or testing but that is because rails is a framework with tons done for you, and in my book you basically build all of that from scratch. You learn a ton, but it is long and adding git or testing would have made the book like 600 pages (instead of ~400ish).

If you are interested in Go I'd love to get your feedback :)

joncalhoun··on GitLab’s Secret to Managing Employees in 160 Locations: Write Everything Down
I suspect if you want to do a partially remote team the best way would be to make an entire team of remote employees and then treat that team like a satellite office. We know those work for most companies, so as long as the team can communicate well amongst themselves I don't think them being remote will ultimately be any different for the in office workers than if they all went to an office in a different city.
joncalhoun··on Go Web Examples
I believe gorilla mux came out years before the others, so it's not really shocking that it is used more. I personally have never had any issues with it but to each there own.
joncalhoun··on Go Web Examples
Is https://www.calhoun.io/creating-the-v-in-mvc/ close to what you had in mind?

I need to do a follow-up to that with the type I use to wrap that logic, but I am curious if this is inline with what you are looking for in the examples.

joncalhoun··on Go Web Examples
If you want to ping me with what you are looking to build and your programming experience level I can recommend more specific resources. jon [at] calhoun.io

Many resources (like my book) are targeting absolute beginners so they are a bit lengthier to read if you are experienced, whereas other great books and whatnot are really hard for beginners to follow so at least expressing your skill level would help me recommend specific resources.

joncalhoun··on Go Web Examples
Your first request is tricky because it can lead to issues down the road if done poorly, so it is hard to just give a quick example of it. I wrote about this subject recently (see https://www.calhoun.io/pitfalls-of-context-values-and-how-to... ) and there is a lot of info to cover. That said I could see value in doing an example and referencing a more in depth overview from the example.

Once you cover (1) most of the others fall into line. There is little reason to use context values outside of MW from my experience.

Re (3) - can you provide a link or example of what you mean?

(5) - again, can you elaborate? Are you referring to error types? Or just how the errors are rendered?

I ask all these questions because I write a lot about Go and I am interested in trying to make examples of these available, but I want to understand what you are asking for first.

joncalhoun··on Recommend a Founder for YC
YC is only 3 months. Last I checked they still expect you to come to the bay area, but only for those 3 months. After that you can do as you please.

I know this may be challenging in some situations, but I doubt YC could offer the same value remotely. For starters, many of the talks given off the record would never happen if they were being streamed and could easily be recorded. You also would have less interaction with fellow batchmates, be less involved in group office hours, and a myriad of other small details that come from being present.

For remote to work (at YC or in the workplace) I believe it needs to be fostered and prioritized, and YC as it is now was never built around making remote work. If that is ever going to work I suspect an entire batch would need to be remote and the entire experience redesigned for that batch, and that doesn't appear to be a priority for YC.

joncalhoun··on If you don’t trust your employees to work remotely you shouldn’t have hired them
As someone who has worked remotely a great deal, this claim is generally true. A team is either remote-first, or full-time remote employees won't work well.

Notice that I said team. You can still have a remote team inside of a mostly office-going company and it ends up being similar to a satellite office for a regular company.

Eg Google has many satellite offices, so they could arguably have "remote" be one of those "offices". I don't see this ever actually happening, but they could do it if they make sure that team is remote-first.

joncalhoun··on Lyft Loses $600M in 2016 as Revenue Rises to $700M
What you get with each company varies from city to city so it is hard to know exactly what your experience will be with Lyft, especially if they are just starting out in your area as drivers might be a little harder to find at first.

On top of this, there isn't really much one company does that the other doesn't. Lyft line in SF is great, but I believe Uber has something similar there so it's not very unique.

That said, the biggest reasons I would support Lyft are:

1. Lyft doesn't appear to be run by immoral people. One of the reasons I would be hesitant to work at Uber and don't want Uber to monopolize the industry is that they have shown that they are willing to do shady things that hurt others to achieve their goals. I would hate to see another Comcast come to power where we are all stuck with them despite hating them. Right now Uber gets away with not being hated mostly because people paint taxi companies as even worse, but if those go away I wouldn't be shocked if Uber suddenly doesn't look like the saviour we thought it was.

2. Having competition and alternatives helps you as a consumer. If drivers find a way to game the Uber surge pricing (I read about this happening but I'm unclear how true it is) to cause fake surges then having other options for a ride means you aren't stuck paying 3x the normal fare because all the drivers shut off their Uber apps to drive up surge pricing.

You may not choose Lyft over Uber every time. You might not even choose Lyft for your next 10 rides as finding drivers in a new city may be tricky, but I would at least suggest you install both apps and give Lyft a try.

joncalhoun··on Advanced Encoding and Decoding Techniques in Go
It is a relative term.

I use it here because most introductory posts about encoding/decoding in go (like https://blog.golang.org/json-and-go) don't touch on these at all. Instead many people figure each of these out separately over time.

joncalhoun··on Advanced Encoding and Decoding Techniques in Go
Which specific example do you mean, and do you have any suggestions on how to improve it?

I felt this was a good approach given how aliasing builds off of it, but I may have missed a better approach. These are just ones that have worked well for me.

joncalhoun··on GitHub lost $66M in nine months of 2016
> Developers have, as far as I can tell, almost zero brand loyalty

I feel like part of this stems from the fact that every service now wants to charge a monthly fee instead of offering a one time purchase.

If you want me to pay $X/mo, that fee has to correlate to the value you are providing me each month. The minute that equation changes, people start to consider other options.

One of the benefits to SaaS is that you can make more money and your revenue is more predictable, but on the other hand it means your market is more susceptible to competition because companies are comparing their options more frequently.

joncalhoun··on Launchaco – Instantly generate a responsive, free, website
It would be awesome to see a service that just offered user testing with feedback like you just gave.

I have no idea how big that market is, but I suspect a lot of developers are like myself - not opposed to making a site more accessible but clueless about where to start.

I'm thinking user groups like colorblind users and blind users. I'm sure I am missing more groups, so sorry for my ignorance upfront.

joncalhoun··on Google says it will run entirely on renewable energy in 2017
There are basically two numbers here:

1. Net usage after selling off excess energy 2. Net usage assuming there is no demand for excess when you have it (maybe everyone on the grid has solar panels)

Achieving 100% in #1 is great and I applaud Google for it. If everyone did this we could drastically reduce overall usage of fossil fuels, but I believe the fear is that people won't know the distinction and will assume "if everyone does what Google does we will all be 100% renewable" and that isn't true.

joncalhoun··on Bookdown – Authoring Books and Technical Documents with R Markdown
Has anyone used both Bookdown and Softcover [1] to compare the two?

Softcover is something similar written in ruby that uses a combination of markdown with latex where necessary to generate HTML, PDF, ePub, and mobi book formats. It is what Michael Hartl uses (and created iirc) to build Rails Tutorial.

While it seems tightly linked with the Softcover publishing service, you can use the files it generates pretty much anywhere in my experience.

[1] https://github.com/softcover/softcover

joncalhoun··on Reddit CEO admits to altering user comments that were critical of him
To clarify, are you suggesting that someone was indicted based purely on a Reddit post?

If so, that in itself is scarier than anything else being discussed here.

To assume Reddit is a unedited source of truth is just insane. Why people felt it was 100% tamper proof is beyond me. I wouldn't even trust public companies like Twitter to not have potential flaws like this.

joncalhoun··on Pixel Security
A few points:

1. Cracked screens are incredibly easy to fix, so the one example you can give that doesn't cost an arm and a leg is the one thing that arguably any random repair shop should be able to do.

2. Not everyone even lives near an apple store, so while you might benefit from driving in to a physical store, there is a large chunk of the population who won't (at least not without driving a few hours).

PA is a great example of this - the only stores in PA are basically around Philly and around Pittsburgh. Live anywhere else in the state and you are driving to a store out of town.

That isn't so bad if prices are reasonable, but when you get there and hear "$600 to replace the battery" the stores start to feel less useful.

I understand that there is value in the Apple store. I'm not trying to say that there isn't any, but I do believe the original comment overstates that value, especially when Google (or a third party they work with) offers a pretty reasonable replacement plan as an add-on to your purchase.

joncalhoun··on Pixel Security
I realize you are just providing info, and I appreciate it, so I want to preface this by saying I am also just trying to add some context to the conversation.

The pixel offers a $99 replacement plan, plus an additional $99 every time you replace the phone, up to 2 times. I think it lasts for 2 years.

If the only thing holding you back on getting the phone is being able to get it repaired, the cost difference is $70 or $50 the first time you break your screen, and $40 or $0 the second time, and the plan covers more than just broken screens.

The biggest downside is that you have to front the $99.

← PreviousPage 3 of 9Next →