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.

Thursday, November 14, 2013

Quiky

It has been a busy (and successful) month. First, I spent 2 fabulous weeks in Eastern and Southern Asia, exploring crown jewels of that area.

Right after that I attended Microsoft conference "MS Fest", where I've been introduced to MonoGame - an open source implementation of Microsoft XNA platform for easier game development. Because I have few games in mind for many years (and crashed'n'burned many times trying to make them come to life), I immediately tried to create the most ingenious of them. Thanks to wonderful YouTube tutorials from Coding Made Easy it was even easier.

I used Evernote to track all my ideas, but the lag between mobile and desktop sync was kind of frustrating. I had to deal with conflicts all the time and I got an idea to try (again) to make offline wiki editor for desktop. It supposed to be a tool for quick wiki editing, so I decided to call it "Quiky" (quick + wiki). To my surprise, quiky.net domain was available, so I took it.

For QetriX I created nice wiki parser in PHP in the past and it wasn't hard to convert the code into C#. I really love this language and .NET platform, I have to say.

Quiky for Windows
After about 12 hrs the core stuff was done and I really like what I did. I made few design flaws here and there, but it wasn't hard to get rid of them. Application can work with multiple wikis, represented by a directory. Each page has it's name as filename and it's contents in the text file. When saved, a HTML file is generated thanks to my parser, and displayed in WebBrowser component.

OK, that's the desktop part. What about a mobile app? Because I have an iPhone and I don't want to jailbreak it, it was a no-go for me. Therefore I decided to try HTML5 with localStorage for offline situations.

I started slow and low, but quickly expanded into much more complex script. My main target was low data footprint for network transfers and I like to deal with such stuff (optimizations for speed and resources).

My goal was to create a web version of that desktop app, plus extend functionalities of the app to communicate with the web app. Web app will be able to merge changes line-by-line (I already have a working solution in my drawer, it was one of my little challenges :)

It will need few more hours and hours of testing, but I can feel I'm on right track there. I'm still thinking how to tie it into QetriX and the same applies for the game. I want it all to be into single environment.

Oh and the game went south a little bit :) I decided to stay low and make something simple at first, than to add more stuff and make the desired game. Until then, do you remember Tunneler and Atomic Bomberman? ;-)

Saturday, October 12, 2013

Making progress

I'm aware I didn't publish a post in more than a month, but during the time I was (and still em) cracking on the final cut of QetriX for PHP.

So far I have the object and database model, I have HTML template for all major components: page, table, navigation, time sheet, form with controls etc.

I also determined file uploads and messaging/notifications thru the system. Still need to implement user accounts though, that involves user groups, roles and privileges as well. There's no general configuration at the moment, but it's also designed.

I tried to recycle some code from the previous version, but It was mostly useless, which made me to realize, how different these versions actually are, even if I'm doing pretty much the same.

It takes quite a lot of time, because I'm developing many different things at once - to make it as similar as possible across different platforms and languages it's not only PHP and HTML, but also C# with WPF and Java with GWT and Spring. I heard many great stuff about Node.js, so I'm going to include it to the process as well.

Everything I figure out I immediately publish on Wiki.