Our Blog

Engage with us

Now showing articles in "mojolicious"

Dance, dance, dance!

Posted 2015-10-04 20:59:59 GMT

My experimentation with Mojolicious ended at my own site. I liked it for simple things, but as I tried to build an app that grew, I found myself getting more and more frustrated with the framework. I don't find that my frustration is damning of the product necessarily, but it was clear before long that it wasn't going to suit my tastes down the road.

Hello Dancer :) I have missed you like a long lost old friend.

I started by porting an old project of mine from Dancer 1 to Dancer 2, and was immediately reminded of why I loved Dancer - simplicity, clarity, consistency. The consistency was really appreciated as my pet project grew in size.

I can respect Mojo's reinvent the wheel, try to eliminate non-Perl core dependencies approach. But as I have worked with Dancer again, I like how it is able to remain lean while building upon a number of other tools in the Perl community that are well-tested and vetted by others.

As I have been working more with Dancer, I have taken to sending a few pull requests through to clarify and improve some issues I have found with the documentation. I've found the community very helpful and receptive (especially Sawyer, who has fielded a ton of questions from me as I have been getting up to speed again), and have even been threatened with a commit bit if I keep up the good work :) It's my sincere hope to keep contributing to and helping to improve Dancer and the community.

Tags: perl dancer mojolicious crome-plated

Fun with Mojolicious

Posted 2015-08-20 16:49:50 GMT

Since I need a website for my new venture, I decided that I might as well try out a new tool while for the construction of it. I've been meaning to get to Mojolicious for a while, so I decided to give it a whirl.

I have to say, I am extremely impressed.

Mojolicious is everything I like about Dancer - fast, simple, lightweight, and doesn't get in my way, especially for smaller projects. It has the added benefit of being highly extensible, and lets you easily grow your application into something you'd traditionally use Catalyst for. It has a friendly community, active development, and like their website says, it has made web development fun again!

I have a couple of more extensive projects waiting in the wings, and I am looking forward to building them with Mojolicious.

Tags: perl programming mojolicious web design crome-plated

Eating my own dog food

Posted 2013-07-10 03:41:48 GMT

You’re a software developer. You write apps for your customers; you don’t write applications for yourself. Users ask you for changes and it frustrates you. You’ve already given them an amazing application, why would they want it changed? You can’t possibly improve on the masterpiece you have already presented them with.

I see this time and time again, and it’s not an uncommon situation. Software developers, when not given a specific spec or set of marching orders, will (to their credit) give users the best they possibly can, and often times become emotionally invested in the work they’ve produced. What should be a simple request becomes a personal insult of the worst kind. Many times, this behavior is unintended: it’s hard to pour a lot of effort into something and not have a sense of pride in the final result. But many programmers are unable to take a step back from the situation and see things from the user’s perspective, because many times software developers don’t get to use the software they create for themselves. They love their work, but not for the same reasons a user (ideally should) love that developer’s work.

I have struggled with this same issue off and on over the course of my career. When I found myself sliding precipitously down this slope again last year, I asked myself how I could best get out of this destructive mindset.

Enter waste:


Waste is a pastebin. Pastebins are simple, well-defined problems for programmers, and it gave me a pretty reasonable scope-of-work to run with. And since we were in the market for a pastebin at work, I had the perfect opportunity to write one and eat my own dogfood in the process.

Because I use waste regularly, I quickly became attuned to its flaws. Every problem I find, every bug I squash, every new feature added gives me a personal sense of satisfaction. I am building an app that I love to use, and given my coworkers feedback, that they love to use too. Because I am a user of the app, I also get to see things from the perspective of my clients. Often times, something that sounded great in theory didn’t work out so well in practice. Being a user of my own app, I can quickly spot and fix these issues. I also gain some respect for my company’s users too, who have to deal with similar issues but have no ability to fix them and have to wait for us to address them.

I had to put waste away for a time while other priorities at work and in life took precedence. I dusted it off today and am so excited to work through some of the bugs people have reported and feature requests that have been sitting out there for some time. Does waste have some warts? Definitely. Some of it I chalk up to learning a new set of tools. But every version is better than the one before. It’s quickly nearing the point where I want to throw it out to the world and let them love me or hate me for it.

I encourage every software developer out there to go and scratch an itch. Build something for you, even if there is all sorts of prior art. If nothing else, it will give you a new perspective on the job that you do, a newfound respect for your end users, and if you’re really lucky, will even turn into a successful product that others will want to use. That is the ultimate reward.

In my own case, waste filled a couple of needs for me. We needed a private pastebin at work, and there are some really good ones out there, but they are almost harder to install than it was to write one. And since 2011, I have written waste three separate times: once (as shinyPaste) to learn Catalyst and jQuery UI, a second time (as shinyPaste) in early 2012 to learn Mojolicious, and one last time in the last half of 2012 to learn Dancer and Bootstrap. During this process, I learned to love using Dancer and Bootstrap, and haven’t looked back since.

Tags: dancer catalyst jquery ui bootstrap mojolicious programming crome-plated