Joe Doyle's Coding Blog

Posts tagged "General"

After a stretch of radio-silence, I'm ready to get back into writing again. We're settled in after a very busy second half of the year. The JavaScript Capital of the World We wanted to live in San Francisco but the reality of that just wasn't possible. We did end up in the next best place, Oakland! As you can imagine, moving your family 2000 miles isn't the easiest thing to do. But, we made it and have been settling in. It's been a blast getting to know Oakland. I've really enjoyed being in the heart of the JavaScript community. There are quite a few prominent JavaScript & Node developers that call it home. It's inspiring to be local to so many creative and intelligent folks. And the community is welcoming as I learned by going to JSFest. Another New Year and Another New Job At the beginning of December I joined App Press as an employee. I had been working with them as a freelance developer since April under my own company, Doyle Software. The App Press team is great and I think we have a great product. While I'm sad to see end of Doyle Software, I'm very excited about being a part of App Press. If you're looking for a way to design and deliver beautiful, native apps be sure to check us out! I'm responsible for the server development and infrastructure, so expect to see a lot more post posts about Node & Angular, nginx, AWS, and Docker and other DevOpsy related topics.

The Next Next Adventure

After a stretch of radio-silence, I'm ready to get back into writing again. We're settled in after a very busy second half of the year. The JavaScript Capital of the World We wanted to live in San Francisco but the reality of that just wasn't possible. We did end up
The past 4 years here in Indianapolis have been wonderful and a time of growth for me. I have many happy memories as I look back at our time here. But, it is time for us to move on. This summer my family and I will be moving to San Francisco. Goodbye Pinnacle of Indiana Sadly this means that it's time to leave my job at Pinnacle of Indiana. I've really enjoyed the last few years working there. They are a great development team and I will miss working with them. If you are looking for a team to help with your next .NET project, be sure to give them a call. Indianapolis Meetups One of the best choices I made was to go to the JavaScript and Node meetups. Indy.js has been a great source of information on various topics as well as a great networking group to meet developers from around the city. I've even been lucky enough to present there a few times. Node.Indy has grown from a handful of people to a well attended meetup. The presentations have ranged from high speed web scraping to opening garage doors via Arduinos to websockets and WebRTC. If you are in the Indianapolis area, I highly recommend both of these meetups. Hello Doyle Software While we're still in Indianapolis, I'm going to be doing freelance work under my own company. You can checkout my site at https://doylesoftware.com. I currently have work lined up, but if you have a project you're looking for help with, let me know and I'll see if its a fit for me. My focus is on projects where Node.js and Angular.js make sense to provide an interactive and efficient solution. I'm not against doing some small, short-term .NET projects as well. San Francisco! We're both excited about moving to San Francisco. We're at a point in our lives where we get to choose anywhere we want to live, so why not go somewhere warm. My wife has secured a great job in downtown doing what she loves. I'm not exactly sure what I want to do next, but I'm sure I can find it in the Bay Area. It's also not a bad place to be as a software developer interested in Node! I'll still be around in Indianapolis until mid-summer if you want to chat or get together!

The Next Adventure

The past 4 years here in Indianapolis have been wonderful and a time of growth for me. I have many happy memories as I look back at our time here. But, it is time for us to move on. This summer my family and I will be moving to San
The World of WordPress About a year and a half ago I made the switch from Posterous to a WordPress for my blog. I figured that I might as well learn how to use the 800 pound gorilla in the room. For the most part, things went well considering that I wanted to run it on Windows under IIS and use SQL Server as the database. I added some plugins for the basics like commenting, syntax highlighting and the like. The import from Posterous was smooth with nothing lost. And it was good. I'm not sure if it was the WordPress upgrade or an update to one of the plugins. One day a few months ago I tried to create a new post only to have 90% of it just disappear upon hitting save. I hit the edit button and retyped a paragraph to see if that would save. It didn't. Typed a little less then previewed the post this time. Gone. I did a few more experiments with creating new posts and editing them in various stages. They all seemed to auto-save early in the entry and then get locked forever. A Ghost in the Darkness I wasn't sure what I wanted to do about my blog. I wasn't in the mood to re-install WordPress. I looked at a few blogs written in .NET, but none of them really appealed to me since most are written using WebForms. Then I saw the KickStarter for Ghost popup on Twitter. It's basically the start of a new platform designed to focus on blogs vs the CMS style product that WordPress has become. Its written in Node.js with SQLite as the default backend database. Markdown is used as the input language with a real-time preview as you create a post. It looks to leverage the best of HTML5 to make a state of the art blogging platform. My initial reaction was probably the same as most developers when they see something cool on the web: I can build that! And so I did. "I see you have constructed a new lightsaber." There's a bit of me that feels writing your own blog is a rite of passage as a developer. I know most people use existing packages because why would you really want to waste time at creating something that has been created hundreds of times before. For me, this is a chance to not only give it my personal touch, but really experiment with new technologies and practice the skills outside of my comfort zone. Some might say it's like a Jedi building his first lightsaber. At work I almost exclusively use ASP.NET MVC 4. And while I really do like using it, I felt this was the perfect time to try building a website in Node.js and Express. I really liked the idea of using Markdown instead of a WYSIWYG editor or plain HTML. I also liked the idea of having the layout update in real time when writing a post. I'm using MongoDB since it's my go-to datastore due to how easy and fast it is. So far the core is done. It's still mostly MVF (minimum viable functionality), but I'll keep tweaking it as I go. Here are some of the highlights that I'm proud of or really happy with. Editing To get the dual Markdown/HTML rendering I'm using Pagedown which is from the folks at Stack Exchange. Its the editor they use on their sites. It was really easy to implement and there's even a 3rd party add (Pagedown.Extra) on which extends the Markdown a bit more for things such as tables and code syntax highlighting. For syntax highlighting I'm using SyntaxHighlighter. For uploading images and files I integrated Dropzone.js by overriding the image dialog in Pagedown. Dropzone is amazingly simple implement and provides thumbnails of the images as you upload. Just eye candy, I know, but the effect is sweet. Here's a screenshot of me writing this post: Styling If there's anything I need more practice at, it's design. Thanks to Twitter Bootstrap, I got a running start. I like the clean and simple look so I tried to keep plenty of whitespace and let it define the sections. I'm using LESS for the CSS. I'm not yet customizing Bootstrap, but its on the list. Font Awesome is used for the icons. I went pretty minimalistic on the colors sticking to the really-dark-grey-and-black on while. I'm still iterating over the layouts, but I think I'm pretty close. Hosting I run my own servers, so I wanted continue to host my blog locally. For now I'm using iisnode with Node.js 0.10. One of the benefits is that I can have IIS host all of the static content and only have Node host the dynamic pages. This is the standard Node configuration I hear about, with the exception that its Nginx used instead of IIS. The concept is the same. I have Grunt setup to do my build and deployment so I can test locally then push out the live site. I really like Grunt and am looking at how feasible it would be to use in the .NET world for things like project scaffolding. Performance I wanted the site to be fast. Really fast. I tried to do all that I could to optimize the site. Grunt combines and minifies my JavaScript and CSS. Express is gzipping the content. The slowest part of the site is Disqus which is used for comments. Without Disqus, page load times are sub-70ms. Someone said on Twitter that a blog without comments is not a blog (and I agree), so its a price I'm willing to pay. One way I make things fast is loading all posts in memory and keeping them there. I don't have thousands of posts, so I can get away with that. Right now Node is only using ~60MB of memory, so I'm not too concerned. Almost there I still have a few behind the scenes sections to create. I want to build up a dashboard for some stats. Probably won't be as amazing as what Ghost will provide, but I'm not sure I need that much. I still have Google Analytics running anyways, and its not like I'm going to beat that. I also want to pretty up the Edit page to use auto-completion for the tags and to have the url get built from the title automatically. Just a bit of extra polish really. I do have an RSS feed, so if you're interested in .NET and Javascript posts, please do subscribe. Until next time...

The Creation of My New Blog

The World of WordPress About a year and a half ago I made the switch from Posterous to a WordPress for my blog. I figured that I might as well learn how to use the 800 pound gorilla in the room. For the most part, things went well considering that
Motivation can be a funny thing. Sometimes you have it when you don’t have time for it. Other times it’s nowhere to be found when you are desperately seeking it. My motivation for blogging has waxed and waned other the last year, as probably is apparent by all three of my posts. This year will be better. Hard to be much worse! I am motivated by moving my blog over to WordPress. I think my layout is cleaner, and my mobile layout is awesome! (Try it!) New Year! Happy New Year! Gregorian and Chinese. New Job! In November I started a new job as a developer at Pinnacle of Indiana. They found me through Careers 2.0 at Stackoverflow.com. I had created a profile when it was still 1.0, but I never really expected to get contacted, let alone a job. I get to work with a great group of people who have a focus on the craftsmanship of programming. I’m excited to learn and hopefully begin to master the Agile methodologies. Most of our projects are .NET, but I’m getting exposure to other Microsoft products like SharePoint, Dynamics GP, and CRM. And of course, lots of web apps. The JavaScript I write today is so much better than just 2 months ago. So far it’s been a great opportunity for me and I’m super lucky to be working here. Depending on what I come up with, I might even do some blogging on our developer blog at www.pinnacleofindiana.com/blog/developers New Stuff! In addition to learning more work skills, I have started brewing my own beer! I’m currently in process of fermenting my second batch. I started out with a Porter which turned out great! My Amber should be ready in about 2 weeks. I would love to blog about it, but I’m not sure what I would say yet. I’ve played with quite a few of the “cool kid” technologies over the last year and I have a bunch of things I want to cover in future posts. Some of the topics are: Node.js MongoDB JavaScript Git More posts are on the way!

New Year, New Job, New Stuff!

Motivation can be a funny thing. Sometimes you have it when you don’t have time for it. Other times it’s nowhere to be found when you are desperately seeking it. My motivation for blogging has waxed and waned other the last year, as probably is apparent by all
Like most American’s, our family had cable TV, Comcast in our area. And it was good, just expensive. Having 2 TVs, HD service, and a DVR really adds up. Throw in the sports package to be able to watch NFL Network in the fall and we’re talking a healthy sum of money each month. Now we’re doing fine financially, but we have a house, a toddler, and are planning for another one in the future. The more we can save, the better, right? Channels, Channels, Channels Our most common complaint is one you can read about whenever someone talks about cable (or U-verse, or satellite). We had more channels than anyone can watch. We had just about each channel twice, one in standard def, and one in HD. I never did count them, but I would guess we had about 250 HD channels. Of which, I think we watched about 15 on a regular basis. And most of those weren’t watched live, but through the DVR after we recorded the show. When you compare the total number of channels available per your monthly bill, you’re probably close to $0.25 a channel. Not too bad. But when you compare that bill to our actual usage… Now it’s more like $10 a channel. Throw in that 4 of those channels are the major networks, and that makes you think if there is a better way. I know that the “À La Carte” channel model will never happen even though that is the trend most technologies are headed. If that were an option on Comcast, we would have stayed a cable TV customer. We are still an Internet customer, but on the business side. To the Cloud! – Kind of So what’s the alternative? We do like to watch some TV. Just not as much any more. Netflix – Of course! Hulu Plus also helps fill in the gaps. But we have a nice HD TV which is a monster compared to our laptop screens! Roku to the rescue! IPTV – The future is here I don’t remember exactly where I first heard about Roku boxes. I think it was a podcast or maybe Slashdot. Either way, this device is pretty slick. You can connect it to your Netflix, Hulu Plus, and Amazon Instant accounts to get started. Then there are a bunch of free and premium channels available as well. Roku also has an SDK which allows developers to create their own channels from content they may already have available in the web. You can even connect into your Pandora account to listen to music through it. A little Googling, and you can even find a channel to watch YouTube. Roku has 3 different models available ranging from $60 to $100. This is a one time fee. You just have to pay for the other services you use, like Netflix or the premium channels. Honestly, there is no reason not to just get the XD|S version and call it a day. Full HD, wireless N, optical output, AND a USB port which can be used to view pictures or play movies. All of that is worth the extra $40 in my opinion. Overall, the quality is really good. Granted, having a 20MB downstream internet connection sure helps that, but overall, we haven’t had any issues with the Roku box itself. It holds the wireless connection well and picture quality is really good for streaming. We even picked up a second Roku for the other TV. Just about perfect Overall, Netflix & Hulu Plus cover about 80% of everything I want to watch. We don’t have Amazon Instant right now. Hulu Plus is good, but the commercials have to go. I’d pay another $5 a month to be totally commercial free. Saturday Night Live is pretty much skit, commercial, skit, commercial. Plus, I like Big Bang Theory, so no CBS on Hulu also hurts a bit. The CBS website does cover that though. The transition was pretty smooth. Our TV bill is now about 1/10th what it was before. We miss the DVR and select shows that aren't on Hulu Plus, but everything else is on demand anyways. There’s also plenty of children’s programming for our little guy. I have thought of getting an antenna and seeing what local channels get can get in HD. We haven’t quite gotten to that point yet, but maybe someday.

Cutting the Cable – Life after Comcast

Like most American’s, our family had cable TV, Comcast in our area. And it was good, just expensive. Having 2 TVs, HD service, and a DVR really adds up. Throw in the sports package to be able to watch NFL Network in the fall and we’re talking a