We're Dart Publishing, and we make great websites. This is our home on the web. You can learn more about us, or just get in touch.

Self Improvement

Posted on September 28th, 2011 by Chris

Boston SkylineI like JavaScript, and I like jQuery, and I am always interested in improving my skills with those tools. So when I found out that jQuery’s latest conference was going to be held in Boston, less than an hour’s drive from where I live, and that a good friend of mine was going to be presenting, it only made sense to sign up!

I haven’t been to a ton of web conventions in the past couple of years, due in part to living in the middle of the country. It seems like most conventions take place on the coasts. A few years back, I did go to An Event Apart in Boston, and it was fantastic; I learned an incredible amount, and had a really good time doing it. The things I picked up at that conference were immediately useful in the day-to-day web work I was doing at the time. I’m very much hoping that this jQuery conference will be like that. A few of the seminars I’m really looking forward to include:

  • Attributes and Properties in jQuery – Timmy Willison (always looking to expand my knowledge of basic jQuery operation)
  • Plugin Authoring Best Practices – Ben Alman (I’m starting to reuse code and might want to write a plugin eventually)
  • Grow a spine.js – August “Kai” Kaiser (Interested in more info on anything MVC related)
  • Optimizing Animations on Canvas – Glenn Barnett (Just started playing around with canvas. Also I’ve known the guy since high school!)

I’ll probably post some tweets from the conference under the @DartPublishing Twitter account, so if you don’t already follow us and are curious to hear what’s going on, now’s a good time!

Oh, by the way, a big update is coming to BlogShouts soon. We’ve been a bit quiet on that front while working for one of our clients, but stuff is still happening!


New to BlogShouts 004

Posted on August 19th, 2011 by Chris

Colonel Kurtz - Apocalypse NowWow, it’s been two weeks since the last BlogShouts update, but that doesn’t mean we’ve stopped working on the site. Not by a long shot! We’ve pushed out a bunch of new fixes and features, including at least one thing that wasn’t even on the list of pending features. To quote Captain Willard, from Apocalypse Now, “He received no official clearance … he just thought it up and did it.”

That’s our approach. Think it up and do it. As a result, you can now save favorite Shouts on the site. What will come next? Who can say for sure! We’ve got plenty of ideas on the list, but new ones are bound to pop up as we continue working.

Here’s the latest:

  • Revamped Shout Submission Process:
    • Can now upload an image or grab it right from a web URI
    • Can now crop your image right on BlogShouts
  • “Forgot Password” functionality
  • Favorite Shouts
  • Display Favorite Shouts on User Profile
  • New, compact shout display on User Profile, with tooltip
  • Twitter integration: Follow @BlogShouts for the latest Shouts!
  • Numerous Administration Improvements
  • Numerous small bug fixes
  • Numerous site optimizations
  • Completed Honk Button Freon Cycling

And here’s what’s on the way:

  • Integrate Existing Accounts w/ Facebook
  • Realtime AJAX Shout updater
  • AJAX Shout loading when scrolling
  • Multiple categories for shouts
  • Personalized User Page – see only the shouts you want
  • User Avatars
  • User Profile Enhancements
  • Comments on Shouts
  • Engage Honk Button Rotary Transmission

As always, the best way to find out what’s going on with BlogShouts is to check the site regularly! We’ll see you there.

The Search

Posted on August 9th, 2011 by Chris

AngelFor a while now, Gabe and I have been working on BlogShouts. Not all of that time has been spent in development — first we had to come up with the idea and flesh it out, then we had to write a complete business plan and PowerPoint deck (not as easy as it sounds!). After we had those, we actually started developing the site in ASP.Net’s webforms  platform before deciding to switch over to MVC. At that point, we scrapped everything we had, including the visual design, and started over from scratch.

That stuff used up a whole lot of evenings and weekends! Gabe and I are not fortunate enough to be independently wealthy, which means we have to work on paying projects in addition to whatever we do on BlogShouts. It can be difficult and frustrating at times to spend an entire day working on the web, then grab a quick dinner and sit back down to do more work on the web, but we’ve kept it up (with the occasional vacation, necessary for sanity!), and at long last the site has launched!

For the past couple of months, we’ve been able to give BlogShouts even more time than usual. We’ve cranked out a ton of fixes, features and improvements in the past eight weeks or so, and we’re rolling out new stuff on the site nearly every day. It’s been awesome, and we’re hoping to be able to keep it up.

Along with the obvious technical work that will go into continuously improving and upgrading Blogshouts, this also means we’re going to start looking for a Seed Round of funding. Our goal since day one has been to turn Dart Publishing into a real company, complete with things like employees, benefits, and a marketing budget. We’ve both worked extensively in the startup industry, and we know that it’s a lot easier to do all of that if you have some funds in the bank to start with, so we’ve decided to put together a profile at Angel List, a new site from the guys who run VentureHacks, meant to hook up investors with promising startups.

We think we’re a pretty promising startup, considering our technical expertise and experience in the industry, and we’re hoping others will agree. Are you an investor, or do you know anyone who is looking to help fund a tech company? Check out our profile on Angel List, and see what you think!

New to BlogShouts 003

Posted on August 5th, 2011 by Chris

BlogShouts Logo - blogshouts.comIt’s been another busy period over here at Dart. We’ve been working hard to take BlogShouts from ULTRA BETA to plain ol’ beta, and I think we’ve just about hit that point. This is exciting, because it means we get to really ramp up our efforts to attract bloggers to the site. We’ve got 220+ shouts on there now, and I’m hoping that number will explode in the coming months!

Here’s the latest in BlogShouts land:

New This Week

  • New logo!
  • Register/Log In with Facebook
  • Not using Facebook? Log In with username OR email
  • Improved login – less page refreshing.
  • Yet more new Shout categories!
  • Improved user bar at the top of the page
  • Improved Shout category menu
  • New sidebar widget: Stats
  • New Tweet Button for Twitterization
  • Reconfigured Honk Button initialization routine

Coming Soon

  • Get Shout images via URL or screen capture
  • Crop Shout images during shout submission process
  • “I forgot my password” link
  • Probably more shout categories!
  • More user interface tweaks and improvements
  • Realtime AJAX Shout updater
  • AJAX Shout loading when scrolling
  • Enumerate Honk Button attack parameters

That’s it for now. Stay tuned to the Dart Blog for more updates on our projects. In the meantime, go visit BlogShouts and do some Shouting!

New to BlogShouts 002

Posted on July 25th, 2011 by Chris

Busy Day at Dart HQ

Pictured: another busy day at Dart HQ

We’ve been rolling out features, fixes and improvements to BlogShouts right and left for the past ten days, so I thought I’d do another update on what’s happening with the site.

I love the tech we’re using — it’s really made it a breeze to quickly change the site. Sometimes we roll out two, three, or even more updates in a single day. Gabe’s been cranking on a few major pieces and I’ve been splitting time between prettying up existing stuff and prototyping some new features.

We’re also running a logo contest for the site over at LogoSauce. Check it out!

New This Week

  • Vastly Improved Shout Editing
  • All RSS Feeds Page
  • Sub-Menu Re-categorization
  • Miscellaneous Admin Interface Improvements
  • Better Thumbnails on Profile Pages
  • New Shout Categories
  • Upgraded Honk Button Detection Engine!

Coming Soon

  • Facebook Connect (main focus this week)
  • Improved Log-In, Register and Password Functionality
  • Upload  Shout Images via URL / Screen-grab
  • New Sidebar Widget: Voting Stats
  • De-Ionizing Honk Button Proton Tubes!

We’re targeting August first for our move from ULTRA BETA to plain old Beta. That means we’ll be really starting to promote the site and drum up new users. Wish us luck and don’t forget to Visit BlogShouts!


New to BlogShouts

Posted on July 15th, 2011 by Chris

BlogShouts ScreenshotWelcome to what I hope is a recurring column here on the Dart Blog, where we talk about the features, fixes and enhancements we’ve recently added to BlogShouts, and take a look at what we think is coming up in the next week or so.

As mentioned in the last entry, we’ve launched Blog Shouts and are busily filling it with rich, creamy blog-entry goodness. We’ve also been identifying all kinds of things to fix, improve, or add to the site. We roll new stuff out pretty much every day. Recent highlights include:

  • A new semi-liquid layout that expands intelligently with your browser!
  • A much more prominent “Add a Shout” button for easy clickabilifying!
  • Several font improvements for OSX users!
  • A Top 10 of the Week list that actually keeps track of the week!
  • More shouts on the front page!
  • RSS Feeds for every shout category!
  • Improved honk button honkification!

We’ve also fixed a hojillion little bugs that are scarcely worth mentioning, because no one likes bugs. Except maybe ladybugs. And fireflies.

Here’s what’s coming soon:

  • Facebook Connect Support!
  • Forgotten password retrieval (whoops)!
  • Login by Email Address or Username!
  • Improved Shout Editing!
  • Shout Images from a URL!
  • Installing honk button morality core!
  • So much more!

I hope you’ll check out BlogShouts and see how the site works. We’re having a lot of fun with it, and can’t wait to bring you more updates. Feel free to send us your ideas, opinions, comments, thoughts, and bug reports.

Movings and/or Shakings

Posted on July 8th, 2011 by Chris

BlogShouts Screenshot

It's aliiiiive!

It’s been a busy few weeks for us over here at Dart! First, we went on a bit of a crazy streak with BlogShouts, fixing bugs and finishing features like madmen, and then running a bit of a private beta with friends. Then I moved to Providence, RI so that my wife can go back to school. I am typing this from our empty living room while we sit, waiting for our furniture to arrive.

Perhaps you noticed that the BlogShouts text above was linked? Yes, that’s right, after months of bootstrap development, spending our nights and weekends on the project, we’ve finally launched the site. No more passwords or screenshots, just an actual functioning site (with many kinks that we’re still working out, naturally). In the coming weeks, you can watch this space to see lists of bugs exterminated, new features added, and other new features added to the “to be developed” list.

In the meantime, why not go add some shouts?

Fun CSS Tricks: the nth-child Selector

Posted on June 14th, 2011 by Chris

Rabbit in a HatAs we wrap up the final few bugs fixes and feature additions that we want to have ready before BlogShouts goes live this month, I ran into a minor bit of CSS/JavaScript wackiness that was annoying me. I wanted alternating “Shout Cards” to have different margin widths, but I didn’t want Gabe to have to write a bunch of code to spit out Shout Cards with alternating classes. My initial solution was to use a jQuery routine to add a CSS class to every second Shout Card on the page so that it wouldn’t inherit the margin that I had declared for Shout Cards in general.

This bit of JavaScript I used was really simple, and looked like this:


There are two problems with this approach: for one thing, it’s simply less-elegant than a CSS-only approach. For another thing, the more AJAX you start doing on a page, the more you run into weird issues where the even Shout Cards forget their margins and start bouncing all over the page, especially in Internet Explorer 9. No good.

This is where the nth-child CSS Selector comes in really handy. Using it, you can selectively apply styles to only particular instances of a set of elements, even when they all have the same class. So I removed my jQuery line, and instead of adding a class to every other object via JavaScript, I simply used the following CSS:

#bsContent .shout {
    margin:0 5px 25px 5px; padding:11px;
    border:3px solid #CCC;
    #bsContent .shout:nth-child(even) {

I’ve bolded the really important line, there, down at the bottom. What this is saying is: for every even instance of the .shout class (starting at 0), add a 25-pixel right margin. You could do odd numbers by replacing “even” with “odd”, and you can specify other sequences by using something like nth-child(9n) — which would apply to every ninth item, or even nth-child(5n-2) – which would highlight the 3rd, 8th, and so forth items. For a more complete explanation of how nth-child works, take a look over at this CSS Tricks page.

This child selector works in all modern browsers, and some older non-IE browsers. To get it working in IE8 or below, you will need to play around with some jQuery, but it should still give a more robust experience than the method described at the beginning of the post.

Happy scripting!

The Dart Philosophy

Posted on May 2nd, 2011 by Chris

Business Woman

She can debug JavaScript, design a newsletter, AND broker an ad deal!

One of the things we believe in very strongly here at Dart is keeping the company lean. We’ve seen start-ups hire too many people, too quickly, and it can get ugly. You end up disorganized, over-managed, and filled with employees who aren’t quite sure what their roles are (often fighting over who gets to do what). If you’re really unlucky, you end up in financial trouble and have to lay people off or worse, fold up shop.

It’s a bad situation, and the hiring trap is deceptively easy to fall into. It’s something we want to avoid here at Dart. To that end, our goal is to hire only when absolutely necessary, and to hire multi-skilled people who can contribute in a variety of ways.

The philosophy really starts right at the top with Gabe and I, the only two people who currently work for Dart. Not only are we skilled in our main areas: front-end development and software engineering, but we’re also incredibly good looking!

Wait, sorry, I meant that we have a wide variety of other skills. I’ve spent years working in graphic design and have done plenty of writing (fiction, non-fiction, business documents, etc). Gabe is a capable SQL developer, knows his way around a server, and even used to handle payroll at a previous gig. Not only do we know how to do this stuff, but we enjoy doing it in addition to our main roles with the company (well, ok … maybe not payroll).

At Dart, we believe in quality over quantity, and we believe that you get what you pay for. To that end, we’d rather spend a bit more on a more experienced person who can handle a wide variety of tasks, than go cheap but get a one-dimensional employee in return. Of course, we’d also rather wait and be sure we’ve got the right person (and can afford them), rather than rush into hiring.

I know what you’re thinking: there’s only two of you, and you don’t have any plans to hire any more, anytime soon. Yes, this is true, but that doesn’t mean we haven’t already laid down some basic tenets of how we want to run our business. It doesn’t hurt to plan ahead and be prepared so that when the moment comes and we’re ready to bring on our first round of employees, we know exactly who we’re looking for and what we need them to do. In the end, it’ll be better for us, better for Dart, and better for whomever we end up hiring.

Models, Views, Controllers … Oh My!

Posted on April 19th, 2011 by Chris

MVC Explained

See? All this stuff just talks to all this other stuff, and then some other stuff happens, and it's totally great.

I have to admit, even though the MVC concept has been around for a long time, I had never really heard of it before Microsoft chose to adopt it for ASP.Net. This is mainly because I’m not a programmer, and also because I haven’t worked extensively with Ruby on Rails, which from what I understand is also an MVC implementation. The work I have done with it was a quick touch-up job for a New York City web design firm where they just needed some HTML and CSS stuff done around the edges of a bunch of Ruby/Rails code. So I never actually worked with a programmer on that project, just various managers. This is the life of a freelancer.

Anyway, now that I’m through justifying my own ignorance, let’s get to the point: I’m still figuring out how exactly it is that MVC comes together and makes the magic happen. I understood views pretty quickly … those are the things written mostly in a scripting language I understand forward and backward (HTML 5) with a few drips and dabs of the highly-readable RAZOR syntax we’re using for dynamic content.

When you start getting into C#, with its strongly-typed variables and its objects and methods and whosits, that’s where I don’t have as much education (formal or informal), and when you combine that with the whole Model/Controller thing, I have to admit I found it pretty confusing at first. Mostly I just let Gabe handle it. He’s good with this stuff, and it helps that he already knows the language itself. I’ve done a few “Hello World” type projects with C#, but it’s not something I’m fluent in.

With that in mind, it may seem strange that I decided today to dive into a coding project for BlogShouts that was initially on Gabe’s task-list. Part of the reason for this is because the near-release part of projects gets very code-heavy and I was hoping to alleviate some of his workload. The rest of the reason is because I like knowing things, and sometimes I feel the need to roll my sleeves up and get my hands dirty. Metaphorically. In real life, I actually dislike getting my hands dirty, and therefor avoid yardwork like the plague.

Anyway, I’m pleased to say that after today’s project, I’m feeling a whole lot more comfortable with the hows and whys of Models and Controllers. I spent a couple of hours reading through and messing with some tutorial code that I found on the web, and was able to adapt it to our existing site structure, work through various bugs, and finish up with working code. The end result? BlogShouts now has a fully functioning contact form (exciting, I know), and I have a much better handle on MVC as a whole.

The moral of this story is: sometimes it’s good to take on projects that are initially daunting, because you end up learning a whole lot of stuff, including things which are tangential to the task at hand, but will nonetheless prove valuable!