Matthew Lang avatar

Matthew Lang

Family guy and web developer

Supporting Features in DailyMuse

In the time it's taken me to get DailyMuse up and running, I've noticed that a lot of the code that I have written for this product is code that supports the product. The amount of features that I've added or expect to add is rather minimal. Yes, there's new features arriving soon for DailyMuse like scheduling snippets on particular days and tagging snippets, but in the past few weeks I've been writing code to support the product.

This idea of supporting the product with code could be thought of as a feature, but I see features as something that directly benefits the user. As an owner of the product I also need my own features. It's these supporting features that I see as being code that supports the product.

Commmunication with users of DailyMuse is important. They could be getting their daily email every day or almost every day of the week depending on their needs. Bombarding them with additional emails on top of this to notify them of features or changes in DailyMuse isn't in their best interests.

I wanted to notify users of changes to DailyMuse, so I added the ability to add one or two lines of text after their snippet that they receive on a particular day. I've used this short messaging idea only a couple of times so far, but it's value to me by being able to bring something to the users attention is without bombarding them with more emails is important.

I've got a number of other supporting features planned for DailyMuse in the future. They'll help me to administer DailyMuse, communicate with users and help maintain DailyMuse as a product and service. New features are nice, but having a stable product that improves gradually for its users is better.

Alternatives to Google

Not only can you be Google free, but the alternatives are just as good in terms of functionality.

I suspect the ease of switching away from Google depends primarily on whether you use Gmail. I never have — it solves problems I don’t have, and I greatly prefer native IMAP email apps — so Google has never had deep integration with my data or a significant presence on my iPhone.

I didn’t set out to aggressively quit Google-everything, but once I changed my browsers’ default search engine to DuckDuckGo, that has mostly happened. The most surprising part was how easy it was for Google to mostly fall out of my life, how quickly it happened, and how little I missed it.

Why not Google?
by Marco Arment

Ideas for Better Twittering

Adam Keys has some thoughts on this. I like this in particular.

Keep a private list for high signal-to-noise follows. Good friends and people whose ideas I don’t want to miss end up here.

Ideas for Twittering Better by Adam Keys

I'm still not that much into Twitter. It serves it's purpose, but I don't follow or participate that often.

Always Be Learning From Experiences

Learning tends to come from acquiring the knowledge of topics that we're not familiar with. This is why as kids we all went to school. At a young age we have limited knowledge of how to read, write and count. Through years of education and study we eventually acquire enough knowledge to allow us to learn and understand each of these topics. We can specialise in this new found knowledge by going to college or university or moving into the workplace and getting a job.

What about what we already know?

There I was this morning setting up a new database for an application I've been working on for a client when I noticed that the application's scripts to setup the database wouldn't run due to a dependency on data in the database that was always assumed to be there. Simply put, I couldn't create the database from these scripts.

So my knowledge of the application has changed and I have learned something new. What I have learned isn't a new topic, just a tiny part of a topic I already know. My experience with the database scripts has taught me that basing the build process of the database on data that is already assumed to be there is wrong.

While we tend to seek out to learn from new topics, we forget that we can also learn from experiences. At time we might think that the knowledge we have is correct, but it's only through experiences that we find out whether it is correct or not. In this case I have raised my concerns with the client about the build scripts for the database and proposed a solution to correct it in the future.

Always be learning. Whether it's from new topics we know nothing of or by fine tuning the knowledge we have through experiences.

The Open-office Model is Killing the Workplace

I've worked in a couple of open-office layouts but nothing near having to share the same table with other colleagues.

Our new, modern Tribeca office was beautifully airy, and yet remarkably oppressive. Nothing was private. On the first day, I took my seat at the table assigned to our creative department, next to a nice woman who I suspect was an air horn in a former life. All day, there was constant shuffling, yelling, and laughing, along with loud music piped through a PA system. As an excessive water drinker, I feared my co-workers were tallying my frequent bathroom trips. At day’s end, I bid adieu to the 12 pairs of eyes I felt judging my 5:04 p.m. departure time. I beelined to the Beats store to purchase their best noise-cancelling headphones in an unmistakably visible neon blue.

Workers need privacy just as much as they need to open spaces.

The Learning Benefit of a Side Project

As I move towards building up my GitHub profile with examples of work, I realised something about my side projects. They provided the perfect place to try new things and familiarise myself with new programming languages and frameworks.

Most web developers have probably at one time or another had a side project running alongside their day job. It could be an open source web application, a framework, a library or even a product or service that provides an extra bit of income. Regardless of what it is, having a side project is one of those things that web developers usually end up doing. It's almost like a rite of passage.

Most developers are working on large applications in their day jobs. Some are more fortunate than others on the choice of technology they're working with, but there will always be developers that are not using emerging technologies or languages at their day job. It just isn't always feasible to do.

So what's a developer to do?

Well, like most developers I usually turn to a book to pick up something new. I might read five or six development books in a year. Most of the time I won't go beyond reading the book to exercise the knowledge that I've picked up. When I do though, I usually put together little scripts or programs to get familiar with the language that I've just read about. Beyond that I rarely do anything else.

The best place to exercise your new found knowledge thought is on a side project. When I hit on an idea for a side project, I'll write a little spike for idea in Sinatra or Rails and see if it's worth having around. If it is, I'll keep it and use it for my own purposes. Rarely has anything made it past this point though.

With what I have been using on a daily basis though, I'm starting to tidy these bits of code up and put them on GitHub profile. I have one little side project called ClipPress that I run on a free Heroku instance. It's just a single form that I can fill in a few details and it will create a post in my Jekyll blog on Dropbox. It then syncs back down to my MacBook where I can fix up the post and publish it.

A number of Javascript libraries like Ember, React and Backbone have recently caught my eye. In the past I haven't gone beyond the basic demos with these, but having a side project like ClipPress means that I have a working environment to try out new things. I can plug in different JavaScript frameworks to see how they work. I can write the ClipPress application in a different language or framework just to see how they compare.

The benefit of a side project is that you have a working base to build upon. Building applications from scratch can be tedious work, and making something new for the sake of learning something else means that we might not see the end result in action. With a side project though you can build on the code base you have to see the results in a working environment.

Side projects are often cited as a way of generating extra revenue and they can be that if someone is willing to pay for it, but for most of us we just want to hack something together that removes a manual step we've had to do in the past. These side projects are a great place to try something new and learn from it.

FIFA Officials Face Corruption Charges

FIFA officials are now facing corruption charges for bribery that occurred in the US and was paid through US bank accounts.

As leaders of FIFA, soccer’s global governing body, gathered for their annual meeting, more than a dozen plain-clothed Swiss law enforcement officials arrived unannounced at the Baur au Lac hotel, an elegant five-star property with views of the Alps and Lake Zurich. They went to the front desk to get keys and proceeded upstairs to the rooms.

FIFA Officials Arrested on Corruption Charges; Blatter Isn’t Among Them by The New York Times

I'm not a big football fan, but it's not good to see one of the worlds biggest sports tainted in the last few years by allegations of corruption.

I wonder if Sepp will get through this scandal unscathed?