Quickly bootstrapping a new Node.js project

A problem that often happens to me: I get the inspiration to whip up something in Node.js  (for fun, for experimentation, for a side project, etc) but then I realize that I need to go through the process of actually setting things up before I can even start writing some code.

Usually, I have to dig through previous projects and copy over my eslint and prettier config files, read through some documentation and remember how to setup TypeScript again, install the correct dependencies for running tests. Before I know it, I’m bored and tired and no longer interested in doing whatever I was going to do.

I decided to experiment with some command line tools and created a Node.js script that can help me quickly bootstrap a new project with common configuration parameters that I use. It’s available on GitHub: Bootstrap Node Project.

The GIF above shows this tool in action. I’m able to get the scaffolding for a new project up and running within about 20 seconds! After running, the project structure looks like this (with associated npm start and test scripts, all ready to go). That is pretty awesome.

├─ .husky/
├─ node_modules/
├─ src/
│ ├─ index.js (.ts)
│ ├─ index.test.js (.ts)
├─ .eslintrc.json
├─ .gitignore
├─ .prettierrc
├─ package-lock.json
├─ package.json
├─ README.md
├─ tsconfig.json (optional)

Obviously, it’s highly opinionated and caters to configuration options that I personally like to use. But I figure it’s a great resource for anyone who wishes to roll their own utility to quickly bootstrap projects as well.


So long, little buddy

Even though you’re still around until July 1st, 2013, I think it’s best to break up with you now. We shared so many fun times since 2005.

I’ll never forget you, Google Reader.


What I’m excited about in iOS 7


Has it really been seven years?

iOS 7: It’s crazy to think it’s been seven years since the first release of iOS / iPhone OS (and the original iPhone) way back in 2007. If you haven’t seen the original video of Steve Jobs’s keynote announcing the iPhone, I highly recommend watching it. It marked the beginning of a new era in how all of us interact with technology.

During today’s iOS 7 keynote, I tried to lay low and not read too much into what people have been saying on Facebook, Twitter, and the comment sections of Engadget and The Verge. The levels of snark are off the scale on days like this and for the most part, it doesn’t positively contribute to the conversation.

What I’m excited about

Everyone has their own likes and dislikes when it comes to their favorite mobile operating system. For the most part, I’m pretty excited about some of the new features announced in iOS 7. I think this release finally tackles a lot of limitations and features that people on other platforms have harped about for years and it’s significantly mitigated the remaining reasons to jailbreak.

One caveat: I write this without having had an opportunity to download the latest beta. That said, I’m really excited about 3 things in particular: namely, the new control panel (a simple swiper from the bottom of your screen brings up a panel offering quick access to common system settings), improved multitasking (Apple’s implementation is allegedly “smart” — apps know when to wake up, update / download data, and go back to sleep. This is huge for apps I commonly use like Feedly, Pocket, and Downcast), and an improved notification center (it’s something I was so happy with when iOS 5 was announced but it’s always felt so limited — now we can see a list of relevant and important information at a glance, in addition to all the missed notifications we’re collecting).

Screen Shot 2013-06-10 at 9.25.36 PM

What I’m not excited about

My one and only gripe (albeit, it’s minor in the scheme of things) are the default first party icons. (Others have been complaining about this as well.) Their overly simplistic look doesn’t really appeal to me and I’d actually argue that they look bad. I’m not sure what happened in the design process here but it’s something that detracts from the overall polish of iOS for me.

Anyway, its going to be a long wait until fall. But I’m excited about this new direction and can’t wait to see where companies like Apple, Google, and Microsoft continue to take us in the mobile space.

Here’s what I want in a third-party browser in iOS 4 and iOS 5

  This piece was originally posted on gdgt. Check it out, here.

Safari logo

A number of third party browsers have been developed and released for Apple’s iOS. Despite the requirement that they must use WebKit, most of the browsers have executed some pretty interesting ideas and provided a lot of enhancements over the basic Safari browser found in the iPhone, iPad, and iPod touch.

Some of the browsers off the top of my head:

  • Atomic Browser
  • Dolphin Browser
  • iCab
  • Mercury Browser

What I would love to see is them offer some extra enhancements that would seriously make me switch. What are some of these enhancements?

  • TextExpander support: A number of applications (mostly text editors) have been released for iOS that take advantage of TextExpander. I would love to see this added to browsers! I do most of my work in a browser window each day anyway, and on the desktop, TextExpander has been a completely critical feature.
  • 1Password: If 1Password could find a way to allow other applications to user their database / keychain for passwords (similar to how other apps can use TextExpander macros), this would be huge! I use it all the time to ensure that I have completely random passwords, and if any one site is compromised, I don’t lose access to everything. The 1Password app on iOS is well done, but I don’t want to use their built-in browser. If there was a way I could access the passwords from another browser, this would be huge!
  • Xmarks: Xmarks has been an important tool for me when keeping all my browser bookmarks in sync between Chrome, Firefox, and Safari on the laptop. Why not bring that over a third party browser in iOS? If this was available in any third party browser, it would instantly become my go-to browser.
  • Ability to set a default browser in iOS: (Sadly, it will take Apple to build in this feature — there’s no way developers or users can do this short of jailbreaking) I’ll admit, having the option of running third-party browsers in iOS is pretty damn nice. But it still feels like a kludgy hack when you open a URL in any other application in iOS. It always goes to Safari, without fail. If there were a way to set a custom default browser in the system preferences, this would be awesome!

What sorts of other features do you want to see in third party browsers that they don’t currently offer (and aren’t offered in Safari)?

Safari Reader — One of my favorite features in iOS 5

  This piece was originally posted on gdgt. Check it out, here.

Safari reader

Been using various iOS 5 betas (and now the GM) for awhile now. One of my favorite features (besides proper notifications, of course) is Safari Reader. Basically, it strips away all the cruft from a webpage and simply displays the content you want to read. It works similar to things like Readability.

It’s especially nice, since it presents the content in an eBook like format and you can dynamically resize the text.

Something I find interesting though — I haven’t really been using the “Reading List” feature. Basically, it’s a way to temporarily bookmark articles and websites you want to read late. As far as I can tell, it doesn’t do offline access though (so, I’ll still be sticking to Instapaper for my offline needs).

More info on Apple’s website.

It’s Monday, but it isn’t…

I’ve been messing around with the ridiculously cheesy (but pretty fun) Songify app on the iPhone which auto-tunes spoken word and applies it to a backing musical track.

I thought I’d make my own musical debut. Rebecca Black, watch out!

It’s Monday. (Only it isn’t, because I’m dumb and recorded this song this morning — when it was actually Tuesday.)


[MP3 link]