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...

Saturday, February 6, 2016

The things that noone tells you

Working with JavaEE and JSF through GlassFish has really put my problem solving to the test. My education did not provide me with the information I needed for this task, nor does the documentations or the tutorial/books on the subjects.

It's been a real test for me but I'm not gonna say I regret any of it because by facing all the weirdest bugs and errors I've learned so incredibly much researching how things work. The the kind or errors I've had are the kind where you get one error in the stack trace, but the real error is somewhere entirely else, and it's been ranging from errors on my part in not knowing how things work to nothing I could have done at all because it's a known error in the application server through the documentation being plain wrong about how it works.

JSF rendered html still looks horrid, but reading how it was rendered really solved how to work with JSF for me. Experimenting with code takes time, but it's a great way to learn. My hands are dirty, my legs are knee-deep in the code-mud but I feel great, because I pulled through this far all on my own.

Now, I can focus on the area I know (reasonably well at least); CSS. Someone brew me some tea because I'm going in!

Thursday, February 4, 2016

First contact!

I finally fixed my issues with GlassFish and JavaEE (the ones I've had thus far at least) and made it all the way through the stack from frontend JSF to en entry in my database. FINALLY, I can start building for real.

That is all.

(I'm also pretty down with a cough so this success is probably overhyped)

Tuesday, January 26, 2016

GlassFish hates me

Since November I've been trying to figure out what's wrong with my glassfish; I've updated it, I've changed the eclipse links jars, I've reinstalled everything and now I can't even get it to start. Every time I think I found someone with the same issue as me, the solution that worked for them doesn't work for me. At first I would just get a plain RuntimeException whenever I tried to make a new JDBC resouce in the console, but today booting up, it won't start at all after I installed the updater in NetBeans.

I don't really know what to do newt, I mean; I uninstalled and reinstalled everything but the JDK and JRE. I just wanna code! What is this? I'm not feeling the sysadmin in me today.

Wednesday, January 13, 2016

Learning through work

At my internship I'm learning a lot getting headfirst into building things in a language I've never touched before. I got to read one chapter of a book on ruby, one chapter of a book on rails and here I am now; building things completely blind. It's fun and I'm learning a lot but I do wish I at least knew the language syntax or some basics about the framework, it would make googling soo much easier.

Today I got neck deep in frontend JavaScript and I can't help but to feel relief to venture into somewhat familiar grounds again (I know JavaScript backend but not so much the frontend parts). I know frontend. Frontend is good to me. (Sorry ruby, I'm sure 'll like you more when I can understand you).

It's a joy to wake up every morning when you get to have so much fun!

Thursday, January 7, 2016

Laerning is love, learning is life

The thing I like the most about learning new things is how it widens my knowledge about what i already know. It also gives me new views to bring back to my coding in my "native" language and the other ones I already know.

Today I had fun learning more about GitHub pages by learning Jekyll. I also realized there's project pages, and user pages, which makes it immensely easier to make not just one but several portfolio sites. I can tie my domain name to host my site on Github. That's a lot of fun and very useful to a poor student like me.

Next on my list: Ruby on Rails!