Tuesday, February 11, 2014

JetriX

Thanks to my new work project with colleagues from IBM CZ I laid my hands on IBM Worklight, which is PhoneGap on steroids with a server backend. I had no other chance than yet again install my disfavored Eclipse, which poweres Worklight Studio and IBM Rational Team Concert.

I has been taught how to use it and ultimately how to build hybrid mobile applications in it. I learned quite a few new stuff about Eclipse.

For Android (and couple of my Java tries) I used IntelliJ Idea Community Edition, even after Google introduced Android Studio, because I don't like single purpose tools (you can't build Java apps in A.S.).

Worklight Studio has a support for Android Studio, for building Android app (if you don't want to install Android Dev Tools in Eclipse), so I installed it as well and after that I discovered It's easier to make .apk in Worklight Studio itself and Android Studio struggles to launch properly.

But having Eclipse up and running I had yet another urge to try Java web apps (servlets) again. So I installed Tomcat and started new Dynamic Web Project.

Thanks to a video tutorial I had a working "Hello World" in a couple of minutes. I don't count resolving "HTTP Status 405" error, as it was because of Eclipse code template (that includes super.do[Post|Get](req, resp), causing the error).

After that it was quite straightforward. Create bunch of packages, fill them with classes and write some code. It gave me few insights how to improve the PHP framework, towrads unification between platforms.

Anyway, we were obliged to put the hybrid mobile application on Windows Phone Store as well, which requires a Visual Studio to compile and debug the WP project. So we purchased that, together with Windows 8.1 Pro (our company computers all has OEM licenses for Win7). As a result, I'll try to do the same with ASP.NET and it opens the door for better WPF desktop app.

Friday, January 31, 2014

Open Sourced

Ok, I noticed quite a few projects are on Github, so I got one repo also. I'm not committing there anything any time soon, but better to be prepared and start to learn what I need to know.

One struggle was to choose the license. I pushed my selfish me further away and chose the shortest one - MIT License (aka X11 License), which is the most permissive.

Then I understood I will need some "header" in my source code files, so I constructed two simple lines of code, one is copyright and license info, second is short description of the file. I'm going to comment scripts quite well (as I did in recent past), but I also think the code should be self-explanatory, so I'll try to stay modest.

Currently I feel this step as yet another way how to send a word about QetriX, but maybe it will catch on and somebody will rub the code into my face, which will ultimately make me a better programmer :)

On the other hand I'm little worried people may have problems with my way of coding. My programming is mostly "just enough". I don't build vast object schemas and in PHP I still prefer the old function way, because it's faster and less greedy for resources. I'm aware, that bloated code is mostly but fixes, but IMO less code means less things could go wrong.

Then, I don't comply to wide used coding standards, because on QetriX I'm trying to unify coding across various platforms, so I did quite a research on coding standards for particular languages, chose the most used and sticked with it. This includes using double quotes in PHP for strings, even if personally I prefer single quotes - just because in other languages single quotes are for char datetype, while double quotes are for strings.

Monday, December 9, 2013

Sliky Quiky

Well, I got many brilliant ideas for Quiky past few days. Most of them stays as TODO, to release first public version as soon as possible, but among them I got few killer features I can't wait to implement.

I tried Quiky in real life use case yesterday. I attended yet another great event, DevFest Praha 2013 by GUG CZ, and some of my notes I made using Quiky. Right there I figured out one of the killer features I don't want to write about, because I've never seen such feature anywhere else.

I also found I quite miss spell check, because I tend to use other text editors for this. Therefore I implemented NHunspell, but shortly after that I realized it would be nice to underline misspelled words. Quiky used plain multiline TextBox, which can't underline anything. I already had RichTextBox, but for future WYSIWYG only. After about a second of thinking about it I got rid of the plain TextBox and kept soloely the RichTextBox.

I was quite excited about the "switcheroo", because I didn't like the fact I have two different components for the same purpose.

Web side also got a lot of attention in the last few days. I focused on security and made few independent layers, especially when accessed from outside using Qiky API (like Quiky app).

My goal is to unify GUI for all platforms. Web will be responsive and it's not just for mobile usage. I still like Firefox's concept of a Sidebar, so I may be using Quiky there as well.

Monday, November 18, 2013

Staying low is darn hard

With Quiky I'm once again trapped in a feature loop. You know, you came up with something small and easy to make and during development you found many other (easy to make) features, that ultimately take much more time than the original idea combined. Or you figure out you gonna need this, and this, and that, so the original idea wasn't easy to make at all. That's what happened to me.

The PoC (Proof of Concept) was one evening stuff, but to make a product out of it it would need MUCH more grooming. Like settings form. I hate settings forms, it's always pain in the ass, because there's so much to do with uncertain result (of usage), but if you miss anything, you'll find an user, who will request that.

I had to stop coding, when I started playing with RichTextBox for WYSIWYG. I realized this is so much off the former road and that I need to go back to what's important.

Or you have a functionality on few lines of code, beautiful. But then it's time to sanitize all inputs, make some exception handling, value checking and other stuff, preventing the block of code from making unwanted stuff, suddenly you have a couple of new methods and from three lines are three screens of code.

Besides desktop app (which I can see I'll be reengineering in WPF, sooner or later) I made a nice progress with web app. Unfortunately I realized I'll have to redo the master code, because if I want the script to be cached, it can't show any content and therefore everything has to be made by XHR (AJAX). And it's harder I can't just delete the old code, because I want to preserve the original functionality for the improbable occasion some users may have JavaScript turned off. But I always took care of such events and this will be no exception.

Beacuse Quiky is getting serious, I registered a .net domain and created Facebook + Twitter pages.