Thursday, December 31, 2015

Friday, October 30, 2015

Computer Are Fast

Computer are fast.

Though, fast compared to what?

Check out this site to see how much work a computer can do in one second:

Check out this site to see how fast the different levels of memory, disk, and network are:

- Danial Goodwin -

Sunday, May 3, 2015

Read: Norris Numbers

The differences between different skill levels of programmers can be staggering. This great article talks about more of the code organizational/architectural aspect of coding.

- Danial Goodwin -

Monday, March 30, 2015

Video: "Experts" by Dr. Richard Hamming

This is from an excerpt from the course "The Art of Doing Science and Engineering: Learning to Learn" by Dr. Richard Hamming (of the Hamming code).

There are a few good lectures for the semester, but this "Experts" one particular stood out because it is more applicable to everybody. One of the top take-aways is to make sure you aren't too closed-minded when you become an expert.

Video: Experts

And, here's some motivation that I liked, especially at and after the 17-minute mark: You and Your Research.

- Danial Goodwin -

Friday, March 27, 2015

Video: The Birth and Death of JavaScript (1995-2035)

Great comedic and serious talk about how JavaScript is bad and popular. Learn about the timeline of 1995-2035 about how JavaScript became the most popular language and fell.

- Danial Goodwin -

Friday, March 20, 2015

Read: Refresh on Graph Representations (Name 3)

At some point, I've forgotten about "edge lists", which are different from "adjacency lists" and "adjacency matricies". I'm glad I read this quick refresher on Khan Academy.

- Danial Goodwin -

Wednesday, March 11, 2015

Read: Better Languages For This Generation

As a side-hobby, I'm creating the ultimate language that starts from scratch and questions everything. And, I've found two languages that come really close. So, that's why I deem them for "this generation". ;)

Haxe and Ceylon.

I couldn't do justice for them in a small blog post. And, their websites already explain them really well. So, I recommend taking a few good minutes to find out what you're missing and how much better your language could really be!

- Danial Goodwin -

Saturday, February 28, 2015

Video: Compressor Head

If you are interested in compression algorithms, then the "Compressor Head" short series is a great collection of videos. And, the compression algorithm to beat is the LZ family, which is the backbone of just about all compression that is done. Though, the Markov Chain Compression looks really interesting!

The LZ77 Compression Family
Markov Chain Compression
Burrows-Wheeler Transform

- Danial Goodwin -

Friday, February 27, 2015

Read: Nearly All Binary Searches and Mergesorts are Broken

A great reminder that even the simplest code can have bugs that aren't found for year or even decades in this case!

Remember the integer overflow.

Source: Google Research Blog - Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken (2006-06)

- Danial Goodwin -

Friday, February 20, 2015

Video: A Whole New World

This great talk by Gary Bernhardt will make you think about the legacy systems that you are using everyday and why can't they be better. Hint: They can.

- Danial Goodwin -

Sunday, February 1, 2015

Video: The Unpuzzling Kotlin: Bringing Clarity to Your Code

An okay-ish video. I would only recommend it if you would like to learn a little bit about an alternative Java language, Kotlin (by JetBrains). Basically, it fixes many of Java's un-intuitive "features". And, it's usuable for Android.

After the first 10-15 minutes about Kotlin features, there are Java puzzlers for the rest of the video. Code puzzlers are great ways to learn about the edge cases of a language and help you understand better why some easy code isn't working.

Video: The Unpuzzling Kotlin: Bringing Clarity to Your Code

- Danial Goodwin -

Wednesday, January 28, 2015

Video: Java 8 Language Capabilities - What's in it for you?

After watching this video, I really want to go out of my way to find a Java 8 project to work on. My main Java platform, Android, is still mainly Java 7. Though, I did just find a workaround to get lambdas in using gradle-retrolambda.

The entire video is great, and mainly about lambdas in Java 8. A long time ago I thought lambdas were a complicated topic, but this presentation explains them easily, and with many examples. I really like the examples for the comparisons between Java 8 code and pre-8 code. For example:

Video: Java 8 Language Capabilities - What's in it for you?

- Danial Goodwin -

Tuesday, January 27, 2015

Long Read: A Conversation with Effective Java Author, Josh Bloch

First of all, I highly recommend the book Effective Java by Joshua Bloch. It is an intermediate level book and I've learned quite a bit in reading it. It boost my learning by getting me into the mind of an expert Java developer.

Today, I've read an interview between Josh Bloch and Bill Venners. It has further helped me understand why certain things in Java were done that way, and how to think about my future program and API designs. Here's two of the best parts of the long read:
Copy Constructor versus Cloning
Factory Method versus Constructor

What I really like about Josh Bloch's style is that he explains all the pros and cons between the different ideas.

 - Danial Goodwin -

Wednesday, January 21, 2015

Video: Objects and Functions, Conflict Without a Cause?

Good dev video about Objects, Object-Oriented Programming (OOP), Functional Programming (FP), and how Scala compares to Java and Haskell. I liked the entire 36 minute video, but if you want to get the most information in the littlest amount of time, then I suggest watching for about 3 minutes starting from about the 20 minute mark. There you will learn a great reason to use Scala over Java.. source code shown!

Then, you can watch the first two minutes to see the speaker's experience to tell if you want to watch anymore or not.

By the way, if you don't already have a free account with Parleys, then I suggest a painless registering with the site to add to your collection of places to find great videos with slides.

 - Danial Goodwin -

Tuesday, January 20, 2015

Initial Commit

Learning is a very important process. Sometimes, we may feel that we don't have enough time to learn things apart from our core job functions. Wouldn't summaries on summaries be nice?

I'm a computer engineer and I will make time to learn new things in both dev and non-dev areas. I plan on using this blog to share the best of the dev things that I learn. This is perhaps easier than sending emails to each person I knew who was interested in the information, which is what I used to do more of.

Each post will have my biggest takeaways.. basically, the information that I would have wanted to know to save myself from going through it all. Aka, high value information to words ratio.

 - Danial Goodwin -