Sunday, April 10, 2016

JSF - the learning experience

Since fall when I had my JavaEE course in school I've been hitting seemingly every possible weird little bug in Glassfish's implementation of the JavaEE specification and the SDK's own little bumps and quirks.

It's been so bad that I've thuroughly enjoyed not working with Java at my internship, and I've come to understand why some don't share the love I generally have for Java. Scripting and non-compiled languages are easy and by their very definition light to work with.

But I've learned A LOT these passed 6 moths and it's been tough, but the experience I've gained is incredibly valuable. And where I'm at now, is where it's become really fun again. Even though the error message consists of "EJBException in container" and no reference what so ever to what's triggering it I've learned to identify what's causing it anyway.

My main issue has been with JSF. I'm very biased in that I know other frontend techniques that kicks its hind in all regards - ALL of them - (Imma let you finish but JavaScript has the best frontend of ALL TIME!) and I must have done some things wrong because there are so many things I couldn't get to work for the longest time.

I started out with RequestScoped, moved to SessionScoped master bean of bad practise (just to get it to work) and a turn over with ViewScoped WTF before getting back to RequestScoped again. I still have a bunch of franken-code, but I've gained a much deeper understanding of what I'm doing and how to design a system.

It's been rough, but I wouldn't want to trade this experience for anything in the world.

I walk stronger out from this.

Sunday, April 3, 2016


I'm starting to feel a bit old fashioned being poor. All my gaming consoles are old, I use pre-paid phone cards because I can't be sure that I have money at the end of the month to pay a subscription, and the pre-paid one charges less. I've always saved up to buy my phones straight, I've never used a partial payment plan for anything because I can't afford the fees attached to them.

So, unless I'm at (someone's) home, at work, or at some place that offers free dirty wi-fi, I don't really have access to the internet (not to mention I sometimes go to the lands of no cellphone coverage). This is incredibly infuriating when I'm looking for apps and services. Everything today requires an internet connection at all times. Developers just assume that everyone have internet available at all time.

For my computer that's usually not an issue, but sometimes the internet does go down and ironically enough, I end up only able to entertain myself with developing because the only things I have that doesn't require an internet connection is NetBeans and my application servers.

Now, I'm totally on board with the philosophy that "we should build for the society we want, not the one we have", but isn't there a limit to that? Cellphones lose coverage all the time. Fiber connections have downtime and not everyone can afford a lot of data (I'm thinking about the countries where you purchase internet by the data amount, be it for your cellphone or your ISP fiber connection). Shouldn't we at least make some services that can re-sync when internet is back on?

I can't even write notes on my phone because the app doesn't have an offline mode where it saves your writings on your phone and syncs it when you do come online. And my calendar? I totally get that you can't update it, but you can sync it at a later time.

It's also pretty ridiculous that the games that don't require an internet connection as they're single player games still needs you to log in to play them. (I'm looking at you Microsoft)

In some cases it makes sense that you don't have an offline mode; like a free to play game financed by ads; you could still make it offlineable, but you don't know if the user is never turning internet on ever again, are you gonna run the same ads forever? How are you gonna track the revenue of the app?

Luckily I do enjoy this ancient tradition of going outside, but that's also the time where I don't have internet access when the purpose of going outside is transporting myself from one place to another, not the leisure thing. You know, those commuting hours when planning your day and writing notes could be pretty handy before you get to work...