The eli4d Gazette – Issue 070: Sarah Drasner’s Amazing Article about Learning to Learn and on Startups and Stock Options

(Pretty) Please read Sarah Drasner’s Amazing article about Learning to Learn

This is absolutely the best article that I have read about learning in a very (very) long time: https://css-tricks.com/learning-to-learn/. The article is excellent because it is comprehensive and actionable. Sarah shows the steps she takes to learn in a very well written and detailed way.

On Startups and Stock Options

I came across an interesting Hacker News thread discussion stock options. It’s an interesting back and forth about the value of stock options and whether it is worth giving up on salary for something that’s not likely to yield anything.

I think that user’s code4tee comment is quite on the mark:

Easiest strategy is to just assume the options are worthless and base your comp assessment on that. Doing otherwise sets people up to get burned badly. Furthermore the risk reward for all but the founders is typically significantly lopsided.

If you can accept the risk great, but again assume you’ll never see a penny from options or far far less than you might think (as the calculator highlights nicely).

If things go well you’ll get a nice bonus. Not life changing for the vast majority of people, but a nice financial surprise.

The mistake most people make is accepting far too little cash comp on the grounds that their options may be worth something some day. When they turn out not to be they get burned twice. First on not getting that money period, and second on not having higher cash comp all along which means they also missed out on compound savings or investment with that money.

Net net see options for what they are in most companies—-a way to “pay” people when the company can’t really afford to pay people.

Currently Reading


You can find the newsletter archive at https://eli4d.com/category/newsletter/ and the blog at eli4d.com.

Thoughts? Feedback? Let me know: @eli4d on Twitter


The eli4d Gazette – Issue 065: NPM’s JavaScript Report and Firefox Monitor

NPM’s JavaScript Report

I mentioned the amazing 2018 State of Javascript report in the last issue. Right on the heels of this report, NPM came out with its own survey results.

It’s interesting to compare NPM’s survey results with the 2018 State of Javascript report. It is also important to keep in mind that NPM is a private company whose goal is to enhance and increase the usage of its services (nothing wrong with that but it’s important to know which grains of salt to use).

Some related information:

Firefox Monitor: A way to check if your email address was part of a data breach

A recent episode of Security Now mentioned Firefox Monitor. It is well worth to check your email(s) against sites that have been breached. I checked Monitor with an email address that I’ve used for over a decade and discovered that it was part of 4 data breaches.

Firefox Monitor also gives you some great advice regarding breach related next actions (from the site):

  1. Change your passwords, even for old accounts: If you can’t log in, contact the website to ask how you can recover or shut down the account. See an account you don’t recognize? The site may have changed names or someone may have created an account for you.

  2. If you reuse an exposed password, change it: Hackers may try to reuse your exposed password to get into other accounts. Create a different password for each website, especially for your bank account, email and other websites where you save personal information.

  3. Take extra steps to secure your financial accounts: Most breaches only expose emails and passwords, but some do include sensitive financial information. If your bank account or credit card numbers were included in a breach, alert your bank to possible fraud, and monitor statements for charges you don’t recognize.

  4. Get help creating good passwords and keeping them safe: Password managers like 1Password, LastPass, Dashlane, and Bitwarden generate strong passwords, store them securely, and fill them into websites for you.

Recently Finished Reading

I just finished “Forging Zero”…sigh. I so wanted this independent author to be awesome. The story is similar to taking five extremely different boxes of different jigsaw puzzles and mixing them all in one big jumble. The book had some excellent descriptions of aliens, but the coming-of-age story combined with military grind was exhausting, and the stuttering plot lines kept kicking me out of the story. I ground through the finish but (unfortunately) I won’t be reading any more stories from this author.


Thoughts? Feedback? Let me know: @eli4d on Twitter


The eli4d Gazette – Issue 063: A Thanksgiving Feast of Developer Flash Cards, Black Friday Deals, and the YNAB Book

Flash Cards for Developers

Spaced repetition via flashcards is a great way to learn new information. I came across flashcardsfordevelopers.com while listening to a recent Syntax.fm podcast (one of my current favorites when it comes to tech podcasts).

There are tons of different flash card collections including:

It’s a neat resource for both learning and review.

Winter is Coming…wait no…Black Friday is coming

I’ve been lax in past years about Black Friday deals. However, this year, I’m going to try to be more proactive about having a list of items for Black Friday shopping. I’ve found the Wirecutter to be a great review site that helps me answer the “what are two best choices for xyz product?”.

The Wirecutter has an excellent article on how to prepare for all the Black Friday and Cyber Monday deals. I especially like the emergency preparation section.

Just Finished Reading

I just finished the “You Need A Budget” book. I had purchased it from Audible during a sale before Audible decided to send deals to only Audible subscribers (makes sense I suppose…but still annoying). This book is excellent. Jesse Mecham has the perfect voice for audio (this is extremely unusual for an author) and he comes across in a frank and personable way. While I haven’t yet tried the YNAB approach to budgeting, I certainly intend to give it a whirl. An important point about this book is it does not push the YNAB service/product. The only place any information shows up is in the appendix. Base on the title it’s easy to assume that the book exists to market the service (since so many other books do exactly that), but Jesse is sincere in conveying his belief that a budget is a way to freedom rather than restriction.

One other thing I need to mention is chapter 9. Chapter 9 describes his approach to giving allowance to his kids. It’s a very concrete action based approach based on the book “The Opposite of Spoiled: Raising Kids Who Are Grounded, Generous, and Smart About Money”. I’m definitely going to explore this approach.

I highly recommend this book in audio format!


Thoughts? Feedback? Let me know: @eli4d on Twitter


The eli4d Gazette – Issue 057: Cool HTML/CSS/JS Tiny Editor and a Tiny Bite of Fan Fiction

Holy Cow – A 400 Byte Tiny HTML/CSS/JS Editor Demo

I came across this on a Hacker News thread. It’s an amazingly tiny HTML/CSS/JS editor. You can find the code on GitHub, but here’s the whole code that you can place in the browser URL (per usual disclaimer – don’t put this in your browser if you’re not comfortable with the code):

data:text/html,<body oninput="i.srcdoc=h.value+'<style>'+c.value+'</style>'+j.value+''"><style>textarea,iframe{width:100%;height:50%}body{margin:0}textarea{width:33.33%;font-size:18}</style><textarea placeholder=HTML id=h></textarea><textarea placeholder=CSS id=c></textarea><textarea placeholder=JS id=j></textarea><iframe id=i>

Fan Fiction

I never realized that there was a huge sub-culture around Fan Fiction. Episode 98 of the Imaginary Worlds podcast dives deeply into this world with Francesca Coppa.

The conversation around the evolution of fanfic in conjunction with the creation of https://archiveofourown.org/ is fascinating.


Thoughts? Feedback? Let me know: @eli4d on Twitter


The eli4d Gazette – Issue 025


Issue 025: 2017-03-15

Tech Pick

Git is a version control system that most developers use. Additionally, most open source projects publish their source code repositories via Git (typically on GitHub). Consequently, it’s very useful to know Git. The funny part about Git is that initially, it’s easy to use, but any heavy usage can lead to a blackhole of frustration and concern (‘Am I doing this right or will I mess up my whole code base?’). I came across two great resources that you might find useful:

  • A very reasonably priced Git course called Getting Git. The developer (Jason McCreary) is pretty awesome and very giving regarding his knowledge and time. Here are two podcast episodes where Jason is interviewed (in case you want to know more about him):
  • If you’ve been interested in contributing to open source software but haven’t been sure how to do it, then you’ll find Matt Stauffer’s article to be very useful actionable.

Media Pick

I’m a sucker for Audible’s Daily Deal. This means I sometimes buy some audio books which are not in my wheel house (a good thing in terms of stepping out of my typical media consumption). I just finished a daily deal purchase – “Radical Acceptance” by Tara Brach. It was a stunningly good book about the actual implementation and use of Buddhism in daily life. The reader (Cassandra Campbell) was excellent, and I plan to re-listen to it at a future point with the intent of practice rather than just consumption.

Note: While this is not directly related – through my various audio book purchases I learned the following lesson: Never ever ever buy an audio book that is read by the author. 9 out of 10 times such a book ends up being a terrible disappointment. One such example is “Algorithms to Live By”. I have yet to be able to get through the book because of the author’s reading. It’s great content but terrible delivery.


Thoughts? Feedback? Let me know: @eli4d on Twitter


The Laravel Podcast Episode 42 and the Meaning of …

I really enjoyed last week’s Laravel Podcast episode 42. Now since it is episode number 42 – I expected it to contain the answer to the ultimate question of development.

Now when you listen to the episode, you might think that the ultimate question that’s being answered is “which is the best object relational mapping approach/pattern – ActiveRecord pattern or the Data Mapper pattern?”

Or perhaps the ultimate question that’s being answered is “Should the ‘Single Responsibility Principle’ be violated when it comes to ORMs?”

Of course you need to listen to episode 42 to make your own decision. Perhaps it’s all ORM drama and dogma that is just a mystery wrapped in a Twinkie.

Personally, I think that the ultimate question is “how should you approach feature creation when it comes to software development?” And the answer is stated at the 46th minute of episode 42 (if only it was the 42nd minute…it would have been perfect…it’s time to repeat ‘serenity now’^100 and come to terms with this lack of symmetry). So what is the answer is:

“Don’t do it until you need it.”

Sounds simple – doesn’t it?

Laravel Podcast Episode 36 – Dev School – the unofficial/informal show notes

Summary

I really like the Laravel podcast. It’s a (typically) very short podcast covering both development and the Laravel framework. I like this podcast so much that I recommend it to my PHP students. It’s a nice informal conversation between seasoned PHP developers that covers the Laravel framework, PHP and other general development aspects.

The only down side of this show is that there aren’t any show notes (at least not for recent episodes). I found episode 36 to be really good in terms of pragmatic advice to those beginning to code. I think it will be really useful for my programming students which is why I decided to write a quick post providing my version of the show notes for this specific episode.

Things to note:

  • The episode is great up to time mark 41:40 (i.e. 41 minutes / 40 seconds) and then it deviates into a discussion about comfortable clothing. Feel free to skip this part. Of course if you want fashion hints from seasoned developers – then feel free to listen 🙂

  • The episode location is on the laravel podcast site. However, the linked time marks use Overcast.fm since that site provides a web player to specific time marks and it is my podcast player of choice where I listened to this episode. If you have an iPhone you should definitely give Overcast a try – it’s fully featured and free. Of course if you like it – you should donate.

  • Should you believe anything these guys say? Well – you shouldn’t believe anyone. Take it with a grain of salt and see if it makes sense. I think the perspective of this episode is useful because of the following:

    • Taylor: super backend developer and creator of the Laravel framework; very down-to-earth
    • Jeffrey: implementer of Laravel for his business (Laracasts) that involves teaching so he he has an interesting perspective on the how-to-learn-programming side
    • Matt: started as a ‘designer’ and ended as a front-end developer that now has his own company (so both a developer and business owner perspective)

Detail

I’ve arranged these show notes based on new beginner developer questions and the relevant time marks. I’ve paraphrased the questions but you’ll hear the exact question that Matt asks when you listen to the specified time marks. The usual disclaimers apply.

If I want to be a crack Laravel developer and I’m a complete beginner – where would I start? (01:30)

Time mark: 01:30

An interesting discussion of how to get from being a newbie to becoming experienced in Laravel. But it applies to any interesting framework/language.

What should I build when I’m learning? (14:35)

Time mark: 14:35

A good discussion of whether your learning project(s) should be ‘real’ and whether toy projects are the way to go (short answer: yes).

Boot camps: are they worth it? (15:38)

Time mark: 15:38

This frequently comes up in my in-person class. Up to now I didn’t have a great answer but this part of the episode covers this really well both from a what-do-you-learn perspective and from the job search will-an-employer-hire-me perspective.

What are the quintessential books every backend developer should read? (20:52)

Time mark: 20:52

This part of the podcast covers many more books than what a backend developer would use. There’s some dead air in the podcast for this question when Jeffrey speaks. Here are the books that I deciphered (I will update this if I hear back from Taylor/Matt/Jeffrey via twitter for anything that I missed).

Are there any tricks/pitfalls that you have fallen into as you were learning? (30:41)

Time mark: 30:41

This addresses the Law of the instrument question.

Knowing what you know now is there any one thing you wish you would have known or done when you began to learn programming? (32:36)

Time mark: 32:36

A long time ago I heard the “knowing what you know now” question in a Brian Tracy audio book. It applies to lots of thing including programming.

The clothing question that you can safely skip: is there any piece of clothing that you would fight about if your spouse threw it away? (41:40)

Time mark: 41:40

Thinking of my ripped gray hoodie still makes me sad.

Conclusion

Hopefully you’ve found this useful. Send me a tweet if you did.

The Voice Behind the Code

I recently listened to The Changelog episode about a static site generator called Middleman (as an aside – The Changelog is an amazing podcast about all kinds of open source software – kudos to Adam Stacoviak). Now I’m not a user of Ruby (haven’t had time to play with Ruby nor Rails) but after listening to this episode I really want to try out Middleman and in fact I put it on my list of projects to play with when I have time.

Why? Because I liked how Thomas Reynold presented himself on The Changelog, I like his philosophy in developing and managing Middleman. It’s a side project that he’s been maintaining for a long time and he’s committed to maintaing it for a long time still. Furthermore, his technical decisions and evolution of Middleman shows me that he’s someone who’s willing to evolve his software rather than let it fade away in a morass of old crufty code.

My immediate reaction of putting Middleman on my project playlist made me consider my own approach for selecting software. I used to look at software based on popularity as measured by techie blogs and the latest fad. Somewhere along the line I changed my approach and how I purchase software. Somewhere along the line, I started paying attention to the the voice behind the code.

These days – when I come across an interesting product – I start reading the blog of the developer (or company), and then I move onto any podcasts that the developer has participated in. It’s an oddly personal path to a product. I suppose that marketeers will call it ‘personalization’ or some such thing.

When did this start for me? When did I change from a blind purchaser of software to a more reflective one? (I think this is more applicable to Mac software purchases than iOS products where I’ve bought lots of crap before stopping my purchases for the most part)

I think it started with the Build and Analyze (B&A) podcast where I heard Marco Arment talk about software development. I found out about B&A from a Merlin Mann podcast called Back to Work.

I bought Marco’s Instapaper app because of B&A. Here was an opinionated developer that wasn’t afraid to tell why he did or didn’t do certain things when it came to Instapaper. I liked the guy’s honesty, hard headedness and general East Coast demeanor. Marco sold Instapaper in 2013 and I thought that Instapaper was doomed to take a long slow nosedive into oblivion. But I was wrong because Marco entrusted his software baby to a great steward for his product.

He moved on from B&A to the Accidental Tech Podcast. He also created The Magazine but I didn’t buy it because it was not my cup-of-tea as a product (Apple’s Newstand never seemed right to me so I never bought anything in it).

He recently created a fantastic podcast client which I’ve been enjoying since day one of its launch. Overcast embodies Marco’s sensibilities and his choices fit the checkboxes that I have for a podcast client.

It’s funny how all of this started because of a podcast and listening to some anonymous guy passionately talk about his software and why he made certain choices when designing that software.

I have yet to be disappointed by a product purchase that is based on the voice behind the code. I’m not sure if this is a great approach to purchasing software but it works for me.

Voices that I’ve liked:

Amazon Web Services Lesson – S3 Bucket Names are Universal so get your domain named S3 bucket before someone else does

I recently subscribed to Nicholas Zakas’s excellent http://www.nczonline.net newsletter and came across a shocking realization about Amazon’s S3 service: all S3 bucket names are universal. Let me explain what this means.

It all started with wanting a static image server for my blog

A few weeks ago I wanted to host all images for this site on images.eli4d.com. Why? Well I wanted to be able to easily move my blog without worrying about static assets. I also wanted to explore an AWS service such as S3.

I finally got it to work after beating my head against some security policy issues (this had more to do with me than Amazon but this is for another post). One of the key points that I learned when doing this is that the simplest approach to create an S3 based static site requires naming the S3 bucket with the name of the domain.

But then I read the following from Nicolas Zakas’s newsletter

From http://www.nczonline.net/blog/2015/08/wordpress-jekyll-my-new-blog-setup/

But then I read the following from Nicolas Zakas's newsletter

OMG – what?

image attribution: https://flic.kr/p/8Y1Mp9

OMG - what?

So what does this mean?

It means that if you have any intention of ever having a static S3 based website, then you should create the S3 buckets with the various permutation of your domain’s names before someone else does (so domain.com, www.domain.com, blog.domain.com, etc…). This is worth doing even if you don’t use those S3 buckets.

Keep in mind that you’re not locked out of using any other S3 buckets for your domains. But you have to deal with some unnecessary hoops.

So what does this mean?

Thanks!

Many thanks to Nicolas Zakas for documenting his experience with S3.