Author Archives: Charlotte LaMontagne

Web Developer Profile: Dan Rowden

It is difficult to pin down where passion begins or what ignites it. For Dan Rowden, creator of Magpile, his passion for web development began with learning to play a musical instrument. To be more specific, it all began with learning to play the bass back in the late ‘90s at the age of 13. What began as an interest in music, evolved into an interest in sharing and making the learning process easier for others seeking to learn. was born and although it would not last, the interest in web development would linger in Dan’s mind for years as he fiddled with sites here and there and finally got serious about the whole process while obtaining his Bachelor of Engineering degree in Media Engineering with a focus on web development, printing technologies and European business from Helsinki Metropolia University of Applied Sciences. 

When Dan is not working his day job as a User Experience Designer for a Science and Technology university in the Middle East or browsing Stack Overflow and Dribbble, his favorite industry sites, he is dedicating his time to his true passion: web applications and the UX, UI and development that goes along with it. Last year, Dan combined his interest in magazines and web development into Magpile, an online community for magazine lovers. Dan was kind enough to take some time out of his week and share his thoughts on web development, magpile and the future of magazines.


Espresso (editor) is one of my favorite development tools. I only use that and Photoshop to make websites. There are a few compression tools I use, too, like or

If you have a team you have varied opinions and expertise, which leads to a more rounded and solid product. But as an individual you are forced to make decisions yourself so you can be quick and nimble, and work to your own deadlines.

Favorite developer language? Definitely Python. It’s a lot cleaner than most languages, in that you write only what you need (In Javascript or PHP, you should end lines with semi-colons and there are a lot of brackets needed in loops or if functions; Python has neither).

Working in web development, you can have an idea and make it into a product that people can use, within hours. Then you can change it and update it (and charge for it!), and it never has to be a 100% developed product, like if you were making a physical product.

There are a lot of sites I like the look of, but two that stand alone in my mind:, which shows a lot of different information really clearly and easily available with its recent design (it has won awards) and Issuu, which is both beautiful to look at and interact with, and you can read magazines on it!

Magpile is like a Wikipedia for magazines. It is a reference to the world of print and digital magazines. It also has a community, where readers can sign up, say which magazines they own, discuss them and follow other users. I also launched a Store, where publishers can easily sell their magazines to Magpile’s global readership.

I wanted to keep track of my own magazines, which were spread across three countries. I decided once I’d started planning the site that I should develop it into something other users can use. This then spiraled into the large magazine reference it is today as users added more and more titles.

The site is built with Python, using the django framework. django is an awesome codebase that gives you a leg-up creating web applications. I did the coding (back-end and front-end) and design gradually over the past 1.5 years.

I think, like Wikipedia, Magpile should be a freely available and long-standing resource. Any change in the publishing field won’t affect this mission, nor Magpile’s impact as a record of print history. I can’t see magazines going away anytime soon, so Magpile should be around for a while, too.

For nearly every feature I’ve added there is something I didn’t know how to do. A simple thing like getting a cover image from the internet and saving it in the Magpile database and onto the Magpile server isn’t really that difficult, but as I’d never done it before I had to go out and read up on how it would work. I’m on stack overflow an awful lot researching different ways to accomplish a coding challenge.

I just launched Maggly, which is also aimed at the magazine market. It gives publishers a magazine-specific website with very little set up, which means that they can focus on releasing their magazine rather than spending time setting up and managing their website.

To be able to do my work, I have to be on the computer. I don’t like to be tied to a screen all the time, and would love to someday do things with my hands (like woodwork) instead.


A look back, a look forward and a congratulatory self five

I went into our final assignment, re-reading the documents from the beginning of the semester, knowing exactly what I was supposed to feel. I was supposed to surprise myself with how much more I understood from the documents. Like a child watching an adult movie and not understanding, only to re-watch it years later and finally get all the jokes. To some degree, I did feel these things, probably not as much as I had initially anticipated but if this class has taught me anything it is that learning web development cannot take three months. It is a time consuming process that never really ends.

I may not be an expert at code but I pulled together a pretty decent web site (if I do say so myself) and I did it all on my own. Three months ago I had my doubts about whether that would be possible. I have the basics under my belt so going forward I will continue to use tools like Codecademy to deepen my understanding of html, php, css java script and more. I would love to pick one at a time and really focus on it to get a more full understanding of how it works before moving on to the next. I learn better when I focus my energy and for self-learning I think that will be the best way to proceed.

The WordPress Philosophy call for designing websites for the majority.

Many end users of WordPress are non-technically minded. They don’t know what AJAX is, nor do they care about which version of PHP they are using. The average WordPress user simply wants to be able to write without problems or interruption. These are the users that we design the software for as they are ultimately the ones who are going to spend the most time using it for what it was built for.

Thanks to this class, I’m already way ahead of the majority. We’ve talked about it in class but I think re-reading the WordPress Philosophy really helped it sink in. I don’t need to be a developer to use the skills learnt in class. Some of the lessons learnt from coding can actually be implemented in many aspects of my life, including being able to better communicate with people who are full time web developers. In fact, many of the the points made in The Pragmatic Programmer Quick Reference Guide could have been drawn straight out of a self-help book: Care about your craft, don’t make lame excuses, remember the big picture, finish what you start, don’t think outside the book – find the box, exceed expectations. (I also think my running app may spout a few of these out to me on a weekly basis.)

And with that I leave you all. Self five for a great semester.

The definition of ‘done’

I found the Agile scrum methodology to be quite interesting. The emphasis on following the rules and the critical role of good communication in keeping projects on task was fascinating to me. It was also something that I felt, when applied correctly, could be applied to anything, not just coding projects. I was a little confused by the idea of change however. In the video, it was made clear that mid-sprint, things should not be changed. It throws off the team and leads to potential failure. Rather, goals should be established at the beginning of the sprint and everyone needs to stick with them. In the Agile Manifesto however, it states that:

Welcome changing requirements, even late in 
development. Agile processes harness change for 
the customer’s competitive advantage.

I assume that these two elements of Agile are likely not as contradictory as I seem to think they are but for a novice like me, it still seems a little complicated.

One aspect of the video I found especially interesting, as is apparent by the title of this post, is the term ‘done’ and the many contradictory understandings people have of it. Our website projects are done today but are they actually done? Probably not. They were done last week as well and look at how much more work everyone has put into them! I think everyone has their own understanding of what an assignment being done means. Because of this, it is critical for everyone working together on projects or on the same team to share these understandings to maximize success.

Some last thoughts to leave you all with:

1. I wrote this post entirely in WordPress using the expanded page view Greg shared with us rather than copy pasting from Microsoft Word. It was my first time doing so and although it wasn’t half as bad as I thought it would be, having the page background fade in and out of white while I was typing was incredibly distracting.

2. I had a nightmare last night about getting stuck in traffic and not being able to post an analysis post by 5 p.m. I wish I was kidding.

Someone should tell my code I have a deadline to meet and make it cooperate.

It is interesting to look back on previous posts and see what my expectations were at the beginning of the semester were, and comparing them to what I have accomplished today. I was ambitious and definitely overestimated my own future abilities but overall I would say I did ok. We have talked quite a bit this semester about how learning to code is an ongoing process that takes time and serious amounts of practice/effort. Putting a deadline on it means that some things will get done, others probably not. At the end of the day I like my website but know that with more time I could have tweaked it just a little bit more. Obviously these are things that I can still do, just not before the deadline or for my web development class grade.

By this time last week I thought I was done with coding. All I had to do was insert content and voila, the website was done. However, things don’t always turn out the way we think they will. In class I left an extra space at the bottom of my php file which crashed my entire website. Once this was solved, the code I added to make my custom post type file properly under categories was glitchy and I couldn’t figure out the problem. Being a visual person I have a hard time wrapping my mind around concepts when I read them. I need to discuss them and see someone physically show them to me. This made solving the glitch difficult since I knew the project was due before I would see anyone else from class, or really anyone in my life who might have had the proper knowledge to help explain the problem to me. With the final deadline was approaching I decided to circumvent using categories and figure out the problem at another time, one when I am not facing a time crunch.

We have all been working on our projects in class and yet, I have no idea what other people’s pages look like! I’m excited to check them out and see how the ideas we discussed during circle time back in May take shape on everyone’s websites.

Looking back at goals and being challenged by meta boxes

As we near the final deadline for our web development project, I am growing increasingly worried about having done enough. This sounds silly even as I write it just because of the absurd amount of time I’ve dedicated to this project, but I have not taken many classes like this one where the grading rubric is on a project-by-project basis, and there are no clear-cut rules outlining what we need to do. Looking back at the  goals I had outlined for myself, I realized that I have pretty much met them all. I did some styles changes to the theme, I made a custom post type for Wine Bars with a custom taxonomy to sort them by neighborhood, and I created a custom page with a plugin to help me sort events!

My love/hate relationship with WordPress continues, but I have worked through most of my frustration with going live last week. I realized the source of the problem: CyberDuck was not actually processing the changes I was making unless I uploaded files and folders one at a time. Figuring this out was a huge relief because I was getting incredibly frustrated with my live site not matching the local one. I felt like a parent who loves one child more than another, favoring my local site and being afraid to look at the live site.

While sifting through old posts to figure out exactly what my objectives had been going into this project, I realized how far I have come. No, I will not be pursuing a life as a web developer any time soon, but I’ve gone from feeling overwhelmed by the thought of touching anything, to actually enjoying messing with parts of the code I can (sort of) understand and seeing what changes they cause. I am pretty much happy with where the site is at, although I will continue to mess around with meta boxes. They are fine, but I am still not completely comfortable working with them. Depending on how much time I have in the next week, I would like to do more with them in my custom post types. As Barney Stinson would say: challenge accepted meta boxes.

From Local to Live

I have been spending so much time on my local site that I had forgotten it wasn’t my real site! I wanted to make sure I understood what this website project entailed, every step of the way, so I decided to export what I had accomplished thus far onto my live site. Sounds easy enough right? I opened up CyberDuck and dropped the files in the correct folder. Next I went to Tools and then Export on my local site. All seemed to be working correctly. I signed into my live site (by some miracle I remembered my username and password) and again went to Tools and then Import. And here the problems began.

First of all, none of my media files had transferred. This meant my header and background were back to being the plain, gray, twenty twelve theme. This was slightly irritating but easily fixed. Next I noticed that the words on the main navigation bar were back to not being centered. This was the most frustrating part of the export/import process because I had spent so long last week, as well as last class, figuring out how to make them centered! Some of my other css style edits came through but not the centered words. The menu also refuses to display what I want it to even though everything is set up exactly as it is on the local site and everything on the local site works. Needless to say I’m glad I figured this out now and not in two weeks!

Having found little success with going live, I decided trying out custom post types might be a more successful venture. Unfortunately, every time I tried to make a plugin or change the functions.php file, the WordPress admin page stopped working. While it was not quite Susan’s white page of death with an error message, I found it irritating enough that I also deleted my attempts in order to restore a working WordPress page.

The readings were good this week in that I felt they helped me build up my understanding of what I was trying to do, especially the Smashing Magazine article. Hopefully next week I will have more luck executing this understanding!

Learning to swim without floaties…and spell my own name

Tuesday’s class left me exasperated. I felt as if I had gone from floating in the shallow end of the pool with floaties on, to being thrown into the deep end.

The big picture was overwhelming me so I started to look at the smaller pieces one at a time. Since I couldn’t get Cyberduck to work in class, I decided to test it at home. After a number of unsuccessful tries, I reached out to Greg who pointed out that I had spelt my name wrong. Whoops. More tries ensued and still I was unable to connect. Once again, Greg had to point out that I had spelt my name wrong. By stressing about the big picture and rushing through it all, I had sent my brain into a panic and forgotten how to spell my own name. Twice.

This week made me realize that only so much of coding can be taught. At a certain point, I will have to start learning by pushing through the frustration rather than giving in to it. Of course my new rational mindset was quickly challenged when I decided to create a child theme of Twenty Twelve and mess around with it. There were so many different parts to it; I had no idea where to begin! Even though many of the things I tried to do didn’t work, I am eager to continue to familiarize myself with the code and expand my css/php knowledge. In trying to stylize my page, I discovered a neat tool (Image Color Extract) that determines the codes for all the colors found in an image – great for helping me get the exact look I want. I also realized that even though I had all sorts of questions, I knew the right words to search for the answers in the codex – a sure sign of progress!

After a few days of messing around with the code on my own, I’m not as panicked as I was on Tuesday evening. I’ve come to terms with how the learning process will go from here on out and am ready to buckle down. I’m not ready to start swimming without floaties, but I am definitely open to challenging myself by moving into the deep end of the pool. I may also sit down and practice writing my own name a couple times, just to make sure I’m not losing my mind.

Write Less, Do More

After struggling through JavaScript last week, learning jQuery was a breath of fresh air. I won’t pretend that parts of it didn’t still confuse and challenge me (or that this section of Codecademy was glitch-free), but at the end of the day it made far more sense to me than last week’s lessons. I also really enjoyed being able to look at the final product of each lesson and feel like I understood something that even just last week felt incredibly overwhelming.

Despite how little time actually purchasing a domain name on GoDaddy took, I found that to be one of this week’s more difficult tasks for me. This was not because I struggle with making purchases online, in fact years of avid online shopping have adequately prepared me for the task. Rather this was a direct result of my being a highly indecisive person. So, convincing myself (for long enough to actually make the purchase) that the name I had chosen was what I, in fact, wanted to stick with was a surprisingly daunting task. This could have been avoided had I chosen to go with my name and make a portfolio page but I realized after our first class that this project presented an interesting opportunity to hone in on an interest, rather than focus in on myself.

In trying to expand my jQuery vocabulary this week, I came across an interesting jQuery tag line: “write less, do more.” Despite this not being a new concept in this class, something about it stood out to me. In fact since day one, the readings and the homework have been reiterating that if our code is repeating itself or is overly complicated, there is probably a better way to write it. Perhaps it was the way the tag line was laid out but the first thing that popped into my mind after reading it was Paul Rudd teaching Jason Segel how to surf in Forgetting Sarah Marshall. There is a fine balance between doing too much, trying to do less and actually not doing anything. Jason and Paul seemed to find it so I knew that if I set my mind to it while learning to code, I would get there as well.