Tumblr - Not designed for blogging

The more I use Tumblr, the more I realize how ill suited it is for blogging. It feels more like a long form version of Twitter than blogging software.

This is evidenced by how the ‘Post’ buttons have you choose between Text, Image, Video, etc. A blog post would usually comprise of all of these elements combined.

Not designed for Long form posts

Wanna create a post with an embedded youtube video? You cant. Wanna create a post with lots of images? You can’t, because in a ‘text’ post, Tumblr will crop does images down to almost invisible sizes. Features like clicking on an image to show a larger version are non existent.

Even typographical elements like Headlines are non-existent from Text posts. You can directly edit the html/markdown to insert a h2 tag, but none of the default Tumblr themes will style it properly and the spacing around the heading will be wonky.

What other options are out there?

Since Tumblr is not a blogging platform per se, what other options are out there:

Wordpress

Too complex compared to alternatives. More for building websites than blogging.

Blogger

Ha. We are in 2014 now.

Medium

This seems nice but completely takes away your identity.

Ghost

Ghost seems to be the best choice currently. It looks beautiful and extremely simple to use. Is designed for long form writing. High profile bloggers like Coding Horror are using it. That said, the hosted version is paid. I still prefer this to the rest of the options.

Hyperlapse: Giant vs Startup

A week or so ago Microsoft research published a paper showing the mega cool Hyperlapse technology.

Today Instagram released a full working app that allows you to actually create them on your phone.

Famous’s Achilles Heel - Maps

While famo.us has cool demos and has great plans for the future to replace native mobile apps, the one place they really fall short is Maps.

A big reason to use a native app instead of a web page is to get fast, responsive maps. Unless either Google or Apple decides to implement their map using Famo.us APIs (which is not happening anytime soon), Maps will remain a big reason why you continue creating native apps.

The Invisible Skyscraper Of Software

Yesterday I was assembling an IKEA table. It was exhausting but felt extremely satisfying to see the physical table when it was built.

I make software everyday which in its size and complexity could be a skyscraper compared to that table. But it is invisible. Me or no one else can ever marvel at the beauty of that skyscraper I create.

Somehow assembling that table felt more satisfying..

Essential Gradle snippet for Intellij users

Intellij IDEA likes to create a bunch of directories for its own use. Since they are inside the project folder, they will clutter your ‘Project’ view in the IDE.

The official way to deal with these in Intellij is to select them and mark them as ‘Excluded’ so Intellij wont look at them and they wont clutter your views. However, if you have a Gradle project, Intellij ignores its own settings and those directories will magically reappear when you hit ‘Refresh’ in the Gradle view or reload your project.

After a ton of hair scratching, I reported this to Jetbrains and this is indeed a bug as of Intellij 13.1. The official workaround for this is to manually exclude the directories in Gradle itself using a snippet like this:

apply plugin: 'idea'
idea {
    module {
        excludeDirs += file('.idea')
        excludeDirs += file('out')
        excludeDirs += file('projectFilesBackup')
        excludeDirs += file('servercommon')
    }
}

Angular’s UI-Router project basically dead?

If you use Angular for any serious web application, you know that angular is basically unusable without a 3rd party router lib. And for a while, that gap has been filled by the UI-Router project.

While the project has always been full of bugs, it is still very popular due to the necessity of having a real router. However, it seems now that the project is basically dead. The last real update was done on June 5. Since then there have been some minor updates to documentation but no real code changes. This is after the issue tracker is full of pull requests from people desperately trying to get the bugs fixed.

I can tell from experience at DripStat, that putting in all the various workarounds to deal with UI-Router is a complete pain in the ass. And at this point, no matter what the size of your project, if you use UI-Router, you will run into and end up creating workarounds for its bugs.

This leaves Angular in a weird place. Without a solid router, it is close to impossible to create real world apps. Angular’s current router is more of a joke, and Angular 2.0 with an actual robust router won’t be out till next year. All roads seem to point to EmberJs

The elements still holding back web.xml

While both JavaEE and Spring would like you to believe that you no longer need a web.xml file in your projects, that is not true. Here are a couple elements/configurations that are simply not available through Java Configuration.

1. Session-Timeout

<session-config>    
      <session-timeout>120</session-timeout>  
</session-config>

Yes, there is no way to specify a session-timeout using Java configuration.

Related Spring Bug: https://jira.spring.io/browse/SPR-11585

2. Execution order of filters

<filter-mapping>  
    <filter-name>filter1</filter-name>
    <url-pattern>/url1/*</url-pattern>  
</filter-mapping>  
<filter-mapping>  
    <filter-name>filter2</filter-name>
    <url-pattern>/url2/*</url-pattern>  
</filter-mapping>

There is no way to guarantee which order your filters execute in unless you specify them in a web.xml file. This can have dire security consequences with your authentication filter being executed after some security sensitive filter or being skipped entirely due to some previous filter in the chain.

Related Spring Bug: https://jira.spring.io/browse/SPR-12019

Vote for bugs
I dont know where to file a bug for JavaEE, but I have linked to the corresponding bugs for Spring and hopefully they will be fixed in the next release so we can actually get rid of the dreaded web.xml file.

Java 8 lambda error messages are the new C++ templates

Java 8 lambda error messages are the new C++ templates

The major problem with Eclipse.org website

While eclipse.org has a cool new design:

There are still things fundamentally wrong with the website in that it seems to cater to developers of eclipse rather than users of eclipse.

For example, expanding the ‘Detailed features list’ for Eclipse IDE for Java Developers, I see:

Can someone explain the feature org.eclipse.epp.package.common.feature and how it is different from org.eclipse.equinox.p2.user.ui