Posts in "Tech and Work"

Meta Problems

I’ve always used Instagram to promote my DJ hobby stuff. I know it is owned by (and integrated with) Facebook, which I actively dislike, but I always viewed IG as “Evil Adjacent” rather than “Pure Evil”. But at some point along the way, FB has now “streamlined” some things between the two platforms. The result is that if you want to use a scheduling app (like Buffer or Later) to queue your IG posts ahead of time, you need an IG Business Account that must be connected to a Facebook Page. You can’t just have an IG Creator account anymore, you must also have an FB account.

So where does this leave folks who have no desire to be on Facebook?

Answer: “no post scheduling for you”. And I know, if you are a casual user this is no big deal. If you are a content creator who has limited time to try and maintain a social media presence (which I am super bad at even with a scheduler), then this is a massive blocker. FB wants you all the way in.

Many folks have thrown in the towel and grudgingly set up their Facebook account. I get it. The fear that creators feel is that they will not be discovered and appreciated if they aren’t where the eyeballs are. And yes, many of their livelihoods depend on it. But I am increasingly becoming convinced that the big social media platforms always take more than they give.

My DJ teacher wisely observed the the best way to gain a following is to start a mailing list. Plenty of services out there will help you manage your mailing lists, but the beauty of email is that you can always take that list with you. No matter what happens to the platforms you use, the mailing list is yours. I think about that a lot these days, and in the meantime, I’ve been slowly reducing my footprint on Meta.

“But I’m sure going to miss all of the ads…” – Nobody, Ever.

OS X to Fedora 20: The User Experience, Pt. 1

A little background here: I have been a Mac enthusiast for a number of years now. I would not say that I am religious about OS X, but if the OS X user experience is a philosophical application of “opinionated software”, then I find myself in agreement with most of the opinions that the Apple UX team has expressed.

However, I am also an open source developer. I’d like to believe that it is possible to create a similar and possibly even superior experience with a Linux-based desktop environment. And lo, this is what lead me, a few weeks ago, to get Fedora 20 running on a MacBook Air. If you’re interested in trying the same thing, check out Matt Hicks’ invaluable blog post on setting things up.

Over a series of blog posts I am digging into my impressions of the Fedora 20 user experience as I work through this total switch-over.

How not to optimize a site with AJAX

I’ve inherited a project that is seeing some performance issues. We knew this was at least partly to blame on the UI, but most of the problem is down in the application. Fine; we’ve got a plan for the application-level issue and that’ll get solved. But right now, I’ve been picking through the UI because even though inspection with FireBug reveals that the site is loading at a reasonable clip, it doesnt seem to be rendering the main page until every last linked resource is loaded in the browser.

As the subject of this post should indicate, this project features AJAX. AJAX isn’t exactly brand new, but this project represents the first aggressive use of AJAX in my particular custom-projects corner of the universe. And as far as I can tell, once the decision was made to “go AJAX!”, a side directive of “abandon sanity!” was also put in motion.

Heres what’s great about AJAX: You load the static elements of your page once, and then you refresh the dynamic stuff with a behind-the-scenes request that leaves the static page elements unchanged. In other words, it makes a web page behave more like a locally installed application. But let’s say you’ve just learned about AJAX and you want to GO the DISTANCE! Then, even though the static page elements should never change, maybe you dynamically request them, too! And then use JavaScript to discretely rewrite the whole page! In your zero-latency development environment, the difference in rendering time may be completely undetectable. Unfortunately, when half a planet’s worth of internet lies between you and the server, the effect is pretty different.

Your AJAX request is an extra layer of abstraction that just linking static elements from the page itself will completely avoid. And, because the associated rendering may not be possible until after you’ve finished loading all of the AJAX-related JavaScript resources, you leave your users staring at the bare rafters of your web site until the loading is done.

Moral of the story: identify static page elements and keep them out of your AJAX scheme. If you really want to do the whole thing in AJAX, at least give the user a meaningful static site to look at while all of the background requests are churning. They might stay on your site long enough to see what you’ve cooked up..

Sunrocket'd

Well, that was a bad call. SunRocket basically imploded this week, and I’m unlikely to see a prorated return on my flat $200 for a year of service. So now I’m on the fence; I’d sure hate to come crawling back to Vonage in time to watch them implode the same way.

Farewell, Brix

After giving the whole thing some serious consideration, I am ending my career with Brix Networks. I have had a tremendous seven years there, and will miss working along side some of the smartest engineers I could ever hope to meet; chief among them, my long-time friend and mentor Mr. Bennett. I have accepted the position of Director of Technology at Mark Altman & Associates, a small and successful publishing agency that is looking to add technical leadership as part of their plan for business growth. Many thanks to K. for bringing this opportunity to my attention. Most importantly, thanks to my wife for supporting me in this decision–even as we prepare to bring kid #2 (!) into the world. Obvious symbolisms aside, this is a great opportunity for me and I look forward to the new challenge.