Learning Learning Learning

Before I can master one thing, I am off to something else.  Usually, that is my doing if I can’t find something big enough to keep me pursuing a new technology.  For example, I love the language Google Go.  But, I have been able to find a project big enough for me to do anything other than just play with it a bit, get excited about how cool and different it is, put it away for a bit, and then come back to refresh.

But now, just as I was settling into learning and really getting good with Single-Web Applications (using Ember JS, Foundation CSS, and HandleBars) and my other nice web-development application WaveMaker.  I get pulled off by my tasks at work to learn and master Python, Django, and OpenStack.  All of them, except Django, I had learn a bit about earlier, but didn’t really have anything I can do with them besides playing around.  I don’t have enough computers to deploy a meaningful private Cloud.  And while I spend a few days before going to my current company learning Python, that too I had to put away because I didn’t or couldn’t find a real use for.

Fortunately, things are going quickly due to my previous brushes with the language.  So while I am lamenting not being able to focus on WaveMaker, Ember JS, et.al.  I am glad to be working on things that I had tried and found interesting. I still intend to get back to the other things.

I almost forgot another old friend I started messing with this weekend, Android.  I haven’t had anything to do in Android for about a year or more now.  But a buddy of mine asked me to help me with some Android work, so back into that pot too I go. Again, glad to see Android tooling have improved quite a bit and with the new Android Studio looking very promising, this should be fun.

Frankly, I am glad we will be focusing on the latest devices, freeing us to use the more beautiful UI and features.  Trying to write apps that works well on new and old platforms, while still taking advantage of the new one is a bit of a pain in Android.  The support library helps, but the coding is not the same.

WaveMaker – A Really Productive Way To Create Java Web Apps

I first started creating Web applications using JSP/JSF pages and Servlets.  I really followed the J2EE standard on creating Web apps.  Then I thought that was too cumbersome and started looking for alternatives.

I landed on Apache Struts 2, Apache Wicket Framework, Symfony, PHP Zen, and quite a bit more. Even tried Ruby on Rails for a little bit.  Eventually, I was back at the J2EE way of doing things, except using Grails.

With Grails,  things were so much easier than having to deal with all the issues you have when creating a web application.  There is the routing, services, db integration, and just wiring up the whole thing.  That is not what you are trying to solve. So Grails made all of that go away nicely, while staying with Java.  So no need to learn another language.

a UI library called Zk and Grails to back it up.  It was fairly easy to construct a UI in Zk.  Even though it was xml and mostly by hand. But I manage to force my friends to use it and we created an application for a client.  I think using Grails too was a stretch for them, as they didn’t have the background in Spring.

I kind of regret using that so extensively, when there were other things that might have worked just as well with less pain.

I enjoyed the Grails way of things without Zk and did my own thing, while my friends pursued using Jdev extensively.  For them, having been burned with Zk and a lot of hand coding of forms and configuration, they wanted a WYSIWYG type of development.

I have tried Jdev, I really have.  It is a steep learning curve and I still don’t seem to get it.  So when I got really busy with my new job, well. It was just impossible to continue on that road.

At worked, we do things the ‘harder’ way some might say. We have embraced using the Spring framework and JSF 2 via PrimeFaces UI JSF library.  A few teams have taken an exception to this, and started doing things using NodeJS and Single-Web-App.

I really enjoyed using Spring a long time ago, but just couldn’t convinced my buddied to embrace it when we did apps.  So now, I am back in Spring land at work and at home, as I jump head first into WaveMaker.  I already see that WaveMaker today, does not solve all my problems, and there is one frustrating thing, using external JAR libraries.  To use an external jar, you have to write a Java class, which both exposes methods to WM and delegates to the JAR library.  This is just too much extra work.  WM should find some way to generating delegating calls for straight calls.  But that is basically my only complaint at the moment.

Rapsodeus 2013 – The Light

I was watching a video on YouTube looking for Italians vs. Europeans and then I stumbled upon another video by the same author called Rapsodeus 2013.  What is interesting I think about this video, is that I can’t rally describe what it, but I know what kinds of idea I have in my head as I watch it.

I don’t want to bias you in anyway if you are going to watch the video. So if you are going to watch, which I recommend you do. Then stop here, watch the video and come back.

Okay, so what were you thinking as you watch the video? Any different before you started watching it or just, what the hell is this?  🙂  Well, here is what I was thinking and I am curious if anyone else had similar ideas as they watched it.

One of the things that fascinated me, was how these simple creatures seems so content, but a little sad, in their cages, then became so violent. They got taken in by an object, and for us it could just be a light. But what is it really? I can’t say I know and I don’t think they know either. But yet, they are committed to getting their hand on it.  As a result, things quickly goes from peaceful to chaotic.

Whether the need to capture the light spurred new inventions or existing technologies were adapted to pursue the light, we don’t know. But the two ideas are probably interwoven there.

For what purpose do they want the light  Did they know about the light before?  It looks like it was introduced.  They looked very surprised when it was first introduced, but I can’t prove that.  So there is this idea of desirability of something unknown at all cost.

Then I wondering if this an analogy of the human pursuit. Whatever that pursuit is, religion, science, spirituality, peace, etc.  If we had the perspective to step back, would we too, see that we are chasing something that is just strung out before us. Never to lay our hands on it, yet generations after generations, we try. So this quest we are on, this pursuit, it seems like we were trust into it.  Not having have any memory of our choice or initial role in it. Just that we are here, eventually achieve consciousness  and off we go or may be we are going before we even realize it.

If there is a goal to this pursuit, what is it?  To what are we progressing, if we are at all progressing.  Or are we just decaying into chaos?

Cool Tech – LightTable

Every now and then, it seems that new and interesting technologies just come out of nowhere. A buddy of mind sent me a link today and simply said, something like “check that out”.  I didn’t know what it was and he didn’t say much.

When I had some time to look at it, which I just did like 20 minutes back, I was really really excited.  You see, I have been trying to cultivate some interest in programming in the young family members, cousins, nephews, nieces, and even my youngest sister.  One of the problems you have, when you start thinking or even embark on teaching someone to program, are the following: which language would be easiest while being fun and eventually usable (you don’t want to tell someone they are learning to program, but can’t create even simple interesting app), and how quickly you can go from coding to seeing results.  There are other issues too, like how good is the development tool and the help system.

Fortunately, HTML and JavaScript fit the bill almost perfectly. They are not the greatest languages, but they are easy to learn, you can use tools and utils already on your computer (without the need to download anything else), and you do get to see impressive result.  I always get oh and ah when I show people who have never programmed, just how easy it is to write some text and have the looks of it modified with just a few simple tags.

So when I went to check out LightTable, and just read a bit about it, I was immediately interested.  Then I watched the first YouTube video.  Then I realized that this is something that I can use to teach young people and people new to programming how to program in JavaScript. They get instance feedback in the Web browser tab.

So here is to LightTable and I hope they keep developing it. There have been so many good things coming my way in the last few weeks.  Not too long ago, it was Ember JS and Handlebars.  Before that was Backbone (which lead me to Ember JS).  I found out about the Foundation CSS library while researching even more Ember JS.  And while cool, but not web centric, I have been learning quite a bit about OpenStack cloud platform.  It is a great day to live very long.

.v

Updated: May 01, 2013 @ 5:04 AM PT

Forgot to add few other things to the list. Not necessarily in the correct reverse order, but pretty close.  So there was Sublime Text 2, Notation Velocity, and TreeJS (JavaScript 3D library), and a slew of new features in Spring 3.2.0 that made your life in Spring that much more fun and easier. I really like the JavaConfig stuff and Spring Data (repository), which adds Grails like dynamic finders.  Hopefully I am not forgetting anything else.

Would We Ever Meet Aliens

There is this point on Slashdot, I have pasted it below.  The think is, the more I think about it, the more I think there is a point to what Paul Tyma says.  An ant to us is really not that interesting, though people do study them.  But is the ant aware of whatever interest we have in it?  But even so, most of us don’t care.  A really advance specie might just see us the same way. Or the future us might just see going to some primitive civilization the same way.

In another post, Physicist Steven Hawkins said that a meeting between us and any advance specie would surely not be good for us. So regardless of which path you consider, either you will be wiped out or not meet.

So much for meeting an alien.

Why We’ll Never Meet Aliens

Posted by Soulskill
from the probably-immigration-laws dept.
iggychaos writes “The idea that aliens will come visit us is fundamentally flawed. Paul Tyma ponders the technology that would be required for such an event and examines how evolution of that technology would preclude any reason to actually make the trip. He writes, ‘Twenty years ago if I asked you how many feet were in a mile (and you didn’t know) you could go to a library and look it up. Ten years ago, you could go to a computer and google it. Today, you can literally ask your phone. It’s not a stretch at all with the advent of wearable computing that coming soon – I can ask you that question and you’ll instantly answer. … How would you change if you had instant brain-level access to all information. How would you change if you were twice as smart as you are now. How about ten times as smart? (Don’t answer, truth is, you’re not smart enough to know). Now, let’s leap ahead and think about what that looks like in 100 years. Or 1000. Or whenever it is you’ll think we’d have the technology to travel to another solar system. We’d be a scant remnant of what a human looks like today. … The question of why aliens might ‘want to come here’ is probably fundamentally flawed because we are forming that question from our current (tiny) viewpoint. The word ‘want’ might not apply at all to someone 1000 times smarter than us.”

Jumping Into Single-Web-Application Via Ember JS

I recently wrote a short post about hearing and now starting to learn the frameworks being developed for Single-Web-Applications (SWA).  SWAs are not new, Google has been doing it for some time as GMail and other applications. It is not the only company either.

But what is an SWA? It turns out, like AJAX, the core technologies for building a SWA is what was there all the time, mainly HTML, JavaScript, and CSS.  Surely, there are a few new techniques and recommendations from lessons learned.  After some time of making SWA the hard way, some people decided to create frameworks and template-ing libraries.

One of the best known library in the SWA space is Ember JS.  Backbone and Angular JS (from Google) are very well known too.  But Ember just has something about it when you start playing with it, it just seems intuitive.  Not surprisingly, many of the Ember JS developers are or were Ruby on Rails developer developerts.

Enough talking, let’s get into and talk later.

Step 0 – Download ‘Ember JS Starter Kit’

Step 1 – Unzip/Extract Archive To A Folder

Step 2 – Load The Index.html File In Your Browser

Step 3 – Customize : Just A Touch

Step 4 – Be Amazed : Reload In Your Browser

Let’s do it.

Step 0 – Head over to Ember JS and download starter kit.

Step 1 – Unzip/Extract Archive To A Folder

Regardless of your platform, extract the downloaded archive to some directory.  I like putting my development projects in my <home directory>/devel/projects or <home directory>/devel/playgound depending on what I am doing.

Step 2 – Load The Index.html File In Your Browser

At this point, you can open the index.html file in the Ember Starter Kit folder you created in the previous step.  BUT, the directory name is probably some long crazy thing.  If you want, and would recommend, that you change the name to something simple like ’ember’.    Regardless of what you decided to do, just use the File->Open menu item in your Web Browser to select the index.html file in the starter-kit directory.

What you should see, is something like “Welcome to Ember.js” and a bulleted-list of “red”, “yellow”, and “blue”.  If you see that, it proves that everything is working just fine.

Step 3 – Customize : Just A Touch

So what just happened?  Well, if you didn’t sneak a peak at the index.html file yet, you should now.  You will see that it is a very simple file with what is call “Handlebars template”.  That is the text inside the “<script>” tag with ‘type=”text/x-handlebar-template”‘ in the body.  NOTE: The actual text might be slightly different, but you should be able to find it.

That the Handlebar template, was handled a “model”, the data to put in the list.  Which was just a JavaScript array of the strings “red”, “yellow”, and “blue”.  Handlebars then rendered the HTML which you see.  Pretty simple, huh?

So where is the ‘model/data’ coming from?  That is coming from the js/app.js file. If you take a peak at this file, you will see that JavaScrip array. But don’t worry about anything else for now.  Let’s do something fun.  I know, you still have a few questions, but trust me, this will be cool.

Using your favorite or any text editor on your computer, open the index.html file in the starter-kit directory. Remember, you might have changed the name of this directory.

** Rant on text editors.  For Windows users, this will most likely be Notepad.  Linux user, you are using Linux, you do better be using Vim or Sublime Text if you have a GUI.  As a matter of fact, regardless of your platform, get Sublime Text or Vim.**

Now, replace all the text between the two set of <script> tags so that you only have one remaining with the following text:

<script type=”text/x-handlebars”>

<p>{{input type=”text” value=name}}</p>

This is my name: {{name}}
</script>

Step 4 – Be Amazed : Reload In Your Browser

And start typing in the text box.

Vollia!!!

Take a minute or so to savor the result.  If you had to do that without Handlebars/Embers, you would have to be write a JavaScript function to update the output label, and of course register it to the “onchange” event of the text box.  You didn’t have to do any of that and it is working.

See you soon when we do more fun stuff with Ember and Handlebars.

Week 16

I tried to deploy RedHat’s RDO OpenStack distribution over the weekend. It was very easy to install, but I had some problems with the network configuration.  I have a two servers, one is newer than the  other.  The newest one is a 16-GB RAM with Quad-cores HT (8-cores total), and 2 x 150GB SATA HD.  The other is a bit older and tops out at about 4-GB RAM, single core-HT, and 1 x 150GB HD and a 250GB HD.

I had first deployed the RDO “allinone” option on the newest server, but realized that this is be my Nova-Compute node.  But since I still had a few server apps on the other computer which I couldn’t just remove, I had to find some way of moving them to the new computer. Then installing the “allinone” on that slower computer, not a problem since that would only be really be used as the Controller.  Then I can add more nodes, first a better computer node using the newer server.

Unfortunately, moving the services from the existing server is a pain and slow.  I am trying to move a physical server into a VM on the newer computer where I have installed KVM and libvirt.

At first, everything was going well. Until I did something and now it is not working reliably.  Now I have something else to look forward to fixing during the week after work.

Something Old, And Something New

If you are a web developer, there are many new technologies almost every few weeks coming at you. But here is one I am really excited about, one that has been around for a few months, but I only heard of it in the past few week.  It is only this week I have some time to start playing with some of it. Single-Page-Web-Application.

If you have used GMail and some of Google many web apps, those are examples of Single-Page-Web apps.  The underling technologies behind the new frameworks to support these types of apps are not surprising very old.  Your good old friend Javascript, HTML, and CSS.  The old work horse of the Internet.

But take a look at how they have been re-spun, as frameworks like Ember JS, HandleBars, Mustache, Backbone JS, Spine JS, Angular JS, and many many many many more.  After a bit of research, I decided that I will play with HandleBars, Foundation JS, and Ember for now.  I will be sure to write about my experience. And if things goes swimmingly, I might have an app to show for it too.