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.

Tuesday, September 10, 2013

Video from PowerPoint presentation

I've been looking for ages for some easy-to-use animation software, preferably vector, where I can design simple product videos or video tutorials. I tried many of them, but none of them was quite user friendly for a newbie.

I always liked drawing in Microsoft PowerPoint. Sometimes I created simple pictures or schemes in it, recently I drew a QetriX Logo. And then it hit me - why don't I use PowerPoint as an animator? It supports export presentation as WMV (Windows Media Video), even the final quality is not quite good and max output resolution is 960x720.

First step is to change slide size from default 4:3 to 16:9, using "Page Setup" button on a "Design" tab. If you do it later, the graphics will be deformed (following the change of an aspect ratio) and you'll have to change the scale of a size from 133 % back to 100 % (in Format Picture / Format Shape, then Size).

Second step is to define all objects in the slide. You can use various shapes, such as lines, circles, rectangles, polygons, arrows and much, much more. You can also add some text. It doesn't matter, if you choose Text Box or a Word Art - it's the same.

You can use more slides, or just a single one. I definitely recommend more slides, because sometimes on a single slide it gets quite complicated :)

Now add some (tasteful!) animations for shapes/pictures and transitions between slides as well. Less is more, don't get carried away and make something like 1990s website. You can make some gorgeous stuff, but you need to play with it a little.

I'm not going to describe the full process of creation, because there's tons of options and it's not that hard to figure it on your own.

You can add some music and/or narration as well.

When your job is done, choose "Create a video" in "Save & Send" option. Make sure quality is set to Computer & HD displays and click to "Create Video" button.

Now wait, until it's fully rendered and there you go.

Monday, August 26, 2013

Do I need a "flag"?

Few days ago I had an idea I can't get off my head: Do I really need the "flag" property? Now I use it to define importance of an entity and mostly to disable certain particles or entities, but all these things can be done by "order" property.

I don't use order for entities, so it may act as flag. 0 = disabled, 1 = new, 2 = unverified, 3 = verified. I use order for date or appearence length of an actor in particular movie, so it already has a value.

I feel there's no need for the "flag" anymore. It came from the time I thought I may stuck four different "values" into single particle, but this was just a wrong assuption. Everything should be in the value only, everything else is additional value. DateTime in order is great, but only as a "timestamp" for the value. And if I fill the timestamp, why would I want to hide it? I always can set order for the entity to zero and it won't show up anyway.

Sure, there might be situations, when I need to hide the particle without losing any information in the order property, but more often I will take advantage of smaller data model and less code in the framework.


Wednesday, August 14, 2013

Hello World Showcase

One day I had an interesting idea. I already have QetriX project template in several languages for several platforms: PHP, JavaScript, C# (WinForms, WPF, ASPX), Java (Spring, Android) and Objective-C for iOS and OS X. Everything does the same and is coded in the same way.

Why not create a something like Hello World showcase? Usually, "Hello World" is just a simple piece of code to show how the programming language works. I have quite simple yet complete data solution, where I can demonstrate much more - the whole programming at glance. And not only the code, but different data management approaches (like databases) as well!

As I mentioned before, I'm very aware my programming habits is nothing to demonstrate. Also, each platform and language works differently and the same construction might be efficient in one language, but highly inefficient or even impossible to do in the other(s).

Therefore I decided to make more than one version for platforms where applicable - one in "compatibility mode", where all constructions will be the same (or at least very similar) across all languages and it will be easy to compare programming techniques between different languages and platforms, and one or more in "lang native mode", where the most efficient techniques and best practices will be in use.

In PHP there are many different approaches. Therefore I'll try to create one QetriX in pure functional programming, one in reasonably objective programming and one in pure OOP. I've just got an idea to even use different frameworks and CMS (CodeIgniter, Zend, Nette, Symfony, FatFree, CakePHP, WordPress, MediaWiki...) to recreate QetriX in them.

It would be nice to see the difference between them, how many lines of code and what performance results it will provide. I'm quite looking forward to do this.