PDA

View Full Version : Weekly update


kornalius
07-04-2008, 07:09 PM
Starting this week, we will give you a weekly update on the progress of PPL 2.0.

We are about 50% done and there is still a lot to do before we finish. We are almost feature complete and will concentrate on polishing and stability in the next few months.

Database programming will be very advanced thanks to the Orion SQLite library that will encapsulate all the power of SQL within an easy-to-use object-oriented library.

A custom grid component will be included to provide easy table browsing and editing on Windows and Windows Mobile.

Game creation has never been easier. See you game live while you edit it. The programming is done in object-oriented via the Swirl library.

Project management is kept to maximum flexibility and simplicity by integrating all data of a project into a simple XML file. You can also save your projects as templates to easily reuse later.

Compatibility with PPL 1.x is kept using the PLibrary object and procedural project type.

More to come next week.

kornalius
07-05-2008, 05:28 PM
Here is another something for you guys.

A screenshot of the PPL version 2 development environment for the Desktop. This might not represents what the finished product is going to look like but it gives you a good idea how things will work.

kornalius
07-18-2008, 08:07 PM
This week has been a very rough one. Lots on our plate but a lot of progress have been done.

We have worked pretty hard on the UI (user interface) and it is now more polished. All the icons have been replaced with new ones that give the interface a fresher look.

We have made a lot of fixes and improvements to the object-oriented syntax. It is now more solid and should be faster too.

We have added the ability to create components to the PIDE list of components visually using the object-oriented programming interface. Very nice and easy!

Console programming has never been easier, create a new Console project, and start adding your code right away in the MyApplication.OnCreate event like this:
DefaultConsole.Writeln("One line");

Object properties are now fully supported, which means, you can have a PFont property which is fully editable using the property editor. The same applies for collection of objects property. This will allow for very flexible software creation and internal designs.

That is about it for this week, more to come next week.

Regards,
The ArianeSoft Team.

kornalius
07-26-2008, 09:38 PM
This week has been one hell of a week for PPL 2.0.

First, I have integrated the ability to visually edit object properties inside another object property, take for example the TFont property in the TEdit component in Delphi. You can do the same thing in PPL 2.0. There is also a powerful collector editor which allow you to edit a collection of object's properties right from within an object's property, like column objects in a grid.

The interface is very very nice now. The watches window is docked right into the main window, no need to have multiple windows opened. The code editor has scope aware Code Completion, Auto code complete as you type, Ctrl+Click on a word and it will search for the declaration line for you, parameter list is displayed when you are typing inside ( ). You can drag a component from the components window and the code for initializing the component will be inserted in your code. You can even drag a property or event from the Properties window and its name will be inserted in the code.

The project templates can be made of full projects, selected project items (for specific classes) or pure code. There is also a collection of around 350 images you can choose from to assign to your project template. Yes you can easily create project templates for future projects in PPL 2.0.

There is a new Tips window that appears when you launch PPL 2.0. You can disable it and consult it whenever you want too.

Future things to work on this week:

PStructCollection which is an object that will hold an array of structures which you can save to XML file and load too.

The properties editor will support porperties of type STRUCT, you will be able to edit the structure elements like regular properties. Support for PStructCollection (like the PObjectCollection editor).

Locale objects and editors in PPL to support multiple languages in your application super easily.

PControl alignment and relative alignment to glue controls to selected parent control's borders. Relative alignment will keep the control in place but if the parent control is resized, it will resize with it but keeping the same distance to the borders it originally was.

PPicture object that will encapsulate the GameAPI image formats support, allowing to load and save BMP, JPG, PNG and GIF images on your forms.

PSound object that will encapsulate the GameAPI sound engine, to play WAV, MP3, OGG, MOD, etc... in your regular windows application.

The ability to expand classes via programming, like:


#class PMyControl expand PControl
public func Right
return(Left + Width);
end;

public func Bottom
return(Top + Height);
end;
#endclass


This way you can still use PControl in your code but now have the ability to use Right and Bottom functions.

There is way more on the plate, I won't reveal everything in one post! :p

Hope you have a nice weekend, I will keep in touch next week for another weekly update.

kornalius
07-26-2008, 10:31 PM
Forgot some new screenshots:

1. Code completion popup. Press Ctrl+Space to activate it.
2. Auto completion popup. As you type it suggest something.
3. Move your mouse pointer within ( ) and you get instant parameter hints.
4. Ctrl+Click a word in the code editor to lookup its definition.
5. Powerful find wizard. It looks through, code, properties, events, so much...
6. Global view of PPL 2.0 as it stands today.

kornalius
07-26-2008, 10:32 PM
One more, only 5 images per post. Hope you enjoy it all!

Andrew Beery
07-29-2008, 03:44 AM
Cannot wait!

kornalius
08-03-2008, 07:22 PM
Already another week has passed? Damn, I cannot count them anymore.

This week, I have spent a huge amount of time, polishing, debugging and adding nice cool features to PPL 2.0. I have a huge list of things to do but my main goal right now is rewriting the debugger engine. The new engine will communicate via TCP/IP locally (via ActiveSync) for a start and then it will allow for remote debugging. This feature will open doors to powerful entreprise developments. Imagine debugging your application remotely at your client's site via the internet! This is very powerful. I am putting all my ideas together right now and coding will be done next week.

Still concerning the debugger, anytime you will run a PPL program from the PIDE, it will run in debugging mode automatically. The execution speed will be almost identical to normal mode. Debugging a PPL program will be very fast now and very flexible, the new debugger will allow complete integration with the interpreter.

PPL 2.0 promisess to be a revolution and I have plans for version 3.0 already. PPL 2.0 will implement the development environment I have always dreamed of and version 3.0 will be a total rewrite of the compiler/interpreter and will offer an hybrid solution using dynamic compiling (pure machine code speed) with the power and flexibility of an interpreter.

I wish to start closed beta testing by September and hopefully release by the end of the year or ealier.

I have to go now but I will do my best to keep you guys up to date every week.

kornalius
08-10-2008, 01:11 AM
Here's another week, another update.

Though one, it was! Lots of hours spent on the editor this week. I am using a totally new component that offers a very powerful editor to the PIDE 2.0. It supports UNICODE text by default, code blocks collapsing, solid syntax highlighting and so much more... A great evolution from the previous editor.

We have reworked the whole debugger from scratch and it is now almost finished.

The Visual Form Builder now allow to align controls on the form. The error log is now splitted into 4 pages, Debug log, Errors, Warnings and Error log as text.

It is now possible to EXPAND a class very easily without having to write a new class and inherit from another.

Here are some more screenshots.

Mike Halliday
08-11-2008, 07:02 PM
Woo hoo, much improved debugging and error reporting. I like the highlighted error very much. One thing that I find difficult in PPL V1.51 is the Char/Line/Opcode error format. Suppose we have to start somewhere, but V2 looks a lot easier to debug code! :)

Keep it up Alain

<Mouth watering in anticipation of V2> :D

kornalius
08-19-2008, 05:52 PM
Oups, I missed the update last week. Anyway, it is never too late right?

Things are progressing at a very good rate these days. The interface is getting pretty decent and very useable. I will need to optimize the code completion a bit later this week. Control alignments and anchoring is in place too, so layout out a form will be a piece of cake now.

Last week, I have finished the PTimer component, the PScript (which lets you execute PPL scripts very easily) and the PResource (which lets you include any file data into your code).

There will be a major optimization in the compiler/interpreter, it is called stack pre-caching, it allows to squeeze stack push operands into one, this should increase the speed of the interpreter by a lot. Everything is on paper right now, I will try to implement this feature this week and I will post back with some benchmarks.

I might be able to get some money in about a months and will hire someone part time to work on the documentation, which is a part of PPL 2.0 that will be very important.

The first beta of 2.0 should be around September or October at the latest and we should be able to look for a December release.

I will have more news next week.

kornalius
08-24-2008, 09:41 PM
As you get deeper in a project of this size, you start to realize after a while that maybe all this hard work will never pay off. The marketing side of things is another full time project on its own. The you look into your pockets and realize they are empty, what do you do? Look for investors to help you during the development and pre-marketing phases? Invest money yourself? All these questions have been going through my heads many many times during the last couple of months. Basically, if you have no money, don't start a company. You need a lot of money to realize your projects to the end. I am learning the hard way but I am not ready to give up!

On a more positive note, PPL 2.0 development is still going strong, the new code editor is fantastic, it does so much to help you code in PPL. It supports unicode characters as well, which should be implemented very soon (multi-language support).

I hope to try the new optimization technic (pre-stack caching) on the interpreter this week, this feature will only be available in version 2.

Btw, if you are following this thread, please leave a note here, I hope I am not talking to myself... :rolleyes: At least it will serve as good personal bed time reading for later.

Andrew Beery
08-25-2008, 01:18 AM
Kornalius... where you are I have been... I feel your concerns and pray for you to pull through the rough phases. I started a company writing for the Atari ST and Amiga platforms in the mid 80's. Never made me rich but I'd not be the man I am today if I hadn't tried. Never underestimate the "Value" of passion -- don't get me wrong money is wonderful but it never replaces doing what you love. The biggest hint I can give you besides hang tough is to adjust your timescale when you need to... to conserve captial or energy. God bless you my friend. I can afford to use any tools I choose... I choose to use yours because of you. Stick with it!

csandman
08-25-2008, 03:43 PM
...

Btw, if you are following this thread, please leave a note here, I hope I am not talking to myself... :rolleyes: At least it will serve as good personal bed time reading for later.

I'm following your development news on a weekly base.
Using PPL Pro since version 1.05 i would like to see Version 2 become true.
So be successfull.

Best regards
csandman

RichardW
08-25-2008, 04:30 PM
I too am following your weekly updates and look forward to PPL 2.

I have been writing and marketing software for several years and true its hard to make money but I enjoyed the effort and I learned a lot.

zehlein
08-27-2008, 03:57 PM
Hi Kornalius,
here is another one eagerly waiting for news concerning PPL 2. I can't believe what you have done so far and, honestly, can't wait to lay my hands on the new version! Keep up the good work! :)

Leginus
08-28-2008, 12:13 AM
Hi kornalius.

PPL is by far the best pocket pc development language that I have used, and I have used 3, all from different price ranges. Not only does it perform well, but has lots of excellent functions.....and this is only version 1.51.

No adhoc runtimes, small exe and no download of .net runtimes. You are onto a winner!!

I eagerly await V2.0 and will definitely purchase. I think if everyone of the current users could mention PPL in 1 forum each, your marketing problem will be over as PPL can DEFINITELY sell itself.

Please keep up the excellent work and take comfort in the fact that you are already rich in appreciation and the money will follow..oh and I know a major competitor of yours are struggling with keeping their language afloat, with many unfixed errors on WM6. I for one migrated months ago due to unhappiness with performance and bugs. PPL is light years in front.

Nige

matteo.m
08-28-2008, 01:49 PM
Hi Alain , go on ! everyone will support you.

you should look at the future with optimism because you have already
done a wonderful amazing job so this will bring to you the results you need.

Mat

kornalius
08-29-2008, 02:26 PM
Thanks a lot for the support.

I will need to focus on creating a community with PPL 2.0. The community is not very active anymore which is certainly due to the fact that we have slowed down updating PPL 1.x and we don't advertise much.

I will have another weekly update this weekend.

Mike Halliday
08-29-2008, 05:45 PM
Im still here Alain!

Busy as ever squeezing info into the Newsletter. - There has been a deflation factor recently though, but why? I cant quite put my finger on it.

I will be back to coding too soon as I have some great things I want to get working via PPL. - Have been a bit upset that there have not been any PPL 1.x updates of recent, but I guess you are all working hard on PPL2.

Do you have hardware specs for PPL 2.0 yet? or will it operate on the same spec as PPL 1 requires? I only ask because my development laptop is a tiny 1Ghz and PPL 1 work ok, but its kinda slow! :S

Mike.

Blue Suede
09-01-2008, 05:02 AM
Kornalius,

I can imagine what you are going through. Hang in there! I know I will purchase 2.0 when it is ready. 1.x is fun, and I am really looking forward to a more powerful IDE and OO feature set. The only thing that I find frustrating with PPL as it exists today is the limited amount of documentation that is available. Although I haven't had a lot of time to work with PPL, I can tell you that it is the best all around way to create applications for the PPC.

kornalius
09-03-2008, 02:39 PM
Hey guys,

As usual, I am late for updates!

I know that version 1.52 is late and I apologize deeply. In some ways, it is good for you because this version will include tons of bug fixes and a lot of memory leaks have been fixed. Oh and there are some very good speed improvements too.

Now for version 2.0, I am in the process of migrating all my projects to Microsoft Vista using Visual Studio 2008 and Delphi 2007. This will make PPL 2.0 fully Vista compliant.

You might remember me talking about bytecode stack pre-caching? Well, I have done it and it didn't turn out to be the speed improvement I was expecting but it improves speed a bit, I'd say by about 5-10%.

I will keep you up to date on the migration process...

kornalius
09-05-2008, 10:36 PM
Finally an update on time, on Friday, yeah! :D

As reported in the last update, I have converted all my projects for PPL 2.0 to the latest development environments and running on Vista.

I can confirm now that PPL 2.0 will run flawlessly on Windows Vista, Windows Mobile 5 and 6. I am using the PPC2003, WM5 and WM6 SDK's and will work on Smartphones builds as well.

Here are some screenshots of PPL 2.0 running under Vista with UAC turn ON.

I can finally get back on track...

Mike Halliday
09-10-2008, 08:27 AM
Alain,

This is looking so good. Can't wait for a taster of it to load on my Vista Lappy. :)

It's good to know that you are still working on 1.52 too. I am looking forward to that more than V2 because I know PPL V1.x and at the moment dont have time to get to grips with a new version! :S

Any time scale for V1.52?

Regards

Mike

kornalius
09-13-2008, 12:35 AM
To get the latest news about PPL 2.0, please check out our blog:

http://blog.arianesoft.ca

Version 1.52 is coming Monday, check out the post in the blog. :cool:

Mike Halliday
09-14-2008, 09:09 AM
Alain,

This is fantastic news. So many updates to V1.X :) - Lets hope that there are no more bugs found in 1.52 so that you can concentrate on giving us V2

I could not see on your list of fixes the G_GetPixel bug. Has this been included? I know there was a long discussion in the forum a while back about this. This is one of the bugs that is stopping a lot of my graphics apps/demos from working properly.

Ta.

Mike.

kornalius
09-14-2008, 05:25 PM
Please point me to this thread, I will review my code to make sure it is fixed.

kornalius
09-14-2008, 05:32 PM
Come on guys, post some comments on my blog, I feel alone! ;)

Nicknack
09-14-2008, 06:28 PM
where can we register to post comments?
the setpixel thread is here: http://forums.arianesoft.ca/showthread.php?t=1441&highlight=getpixel

btw i think it's a great idea with the xml help file, flexibility is a good choice ;)

Mike Halliday
09-15-2008, 07:08 AM
Thanks NickNack, you saved me searching the forum for the link. :D

You can register on the blog by 'CLicking the comments link' then in the top right it says 'you must register to post comments' - I clicked on this link and it sent me to the registration page.

Hope this helps.

Mike.

kornalius
09-15-2008, 01:53 PM
I have fixed the registration problem yesterday. Thanks NickNack for mentioning this issue.

As for the getpixel issue, here are the results I am getting right now:

g_setpixel(10, 10, g_rgb(255,255,255));
ShowMessage(g_getpixel(10, 10)); // 65535

You have to use the g_rgb() function instead of the rgb() function. PocketHAL uses unsigned short for pixel colors.

Mike Halliday
09-15-2008, 02:46 PM
I have fixed the registration problem yesterday. Thanks NickNack for mentioning this issue.

As for the getpixel issue, here are the results I am getting right now:

g_setpixel(10, 10, g_rgb(255,255,255));
ShowMessage(g_getpixel(10, 10)); // 65535

You have to use the g_rgb() function instead of the rgb() function. PocketHAL uses unsigned short for pixel colors.


Should it not return an unsigned long though?

if you follow the above code but store the getpixel value in a variable, then re-plot this value with g_setpixel the resultant pixel is drawn in yellow and not white.

Should g_getpixel not return 16777215 instead of 65535

Am I colour blind or is there a bug?

Thanks for spending time on this Alain.

Cheers

Mike

Nicknack
09-15-2008, 05:56 PM
the help document also says g_getpixel would return a long value...

kornalius
09-15-2008, 06:36 PM
It returns a unsigned short.

g_setpixel uses an unsigned short too. I see two white pixels here. Are you trying this on PocketPC or PC?

Nicknack
09-15-2008, 06:57 PM
yeah i see also two white pixel , but if i try to set two blue ones it will be black:


G_SetPixel(100, 100, g_rgb(0,0, 255));

lColor$ = g_GetPixel(100, 100);
red$ = lColor$ Mod 256;
green$ = (lColor$ / 256) Mod 256;
blue$ = (lColor$ / 256 / 256) Mod 256;

G_SetPixel(100, 100, g_rgb(red$,green$,blue$));

Mike Halliday
09-16-2008, 01:22 PM
yeah i see also two white pixel , but if i try to set two blue ones it will be black:


G_SetPixel(100, 100, g_rgb(0,0, 255));

lColor$ = g_GetPixel(100, 100);
red$ = lColor$ Mod 256;
green$ = (lColor$ / 256) Mod 256;
blue$ = (lColor$ / 256 / 256) Mod 256;

G_SetPixel(100, 100, g_rgb(red$,green$,blue$));


I have tried the example of NickNack's except I changed the re-plot to 150, 150 so I could see the result.

I also changed from an initial plot of BLUE to WHITE.
The re-plot ends up yellow.

CODE:

G_Clear(0);
G_SetPixel(100, 100, g_rgb(255,255, 255));
lColor$ = g_GetPixel(100, 100);
red$ = lColor$ Mod 256;
green$ = (lColor$ / 256) Mod 256;
blue$ = (lColor$ / 256 / 256) Mod 256;
G_SetPixel(150, 150, g_rgb(red$,green$,blue$));
// Render all loaded sprites on screen.
RenderSprites;

This is the code I used;

And attached is the resulting output. - With a zoomed area to see the color;

Hope this helps;


(Interestingly, if I use G_SetPixel(150, 150, lcolor$); instead of breaking it down into RGB values, I get a white pixel plotted!)

Mike Halliday
09-16-2008, 02:30 PM
Maybe this should be moved to a support thread?

I have found something even more interesting. In PPL, my code shows a yellow pixel when re-plotted, yet when I screen grab and load it into paint shop pro, then save it as a JPG, the yellow pixel turns white (Which may be shown on the first attachment).

Could this be another problem or is it re lated to the current one?

Ta Mike.

kornalius
09-16-2008, 02:35 PM
First your algorithm cannot work with unsigned short color values.

Ok, the problem is bigger than I thought.

The pixel value is stored in 565 format. Red is 5 bits, G is 6 bits and Blue is the last 5 bits. You are loosing bits when doing a conversion from a normal RGB value. So technically there is possible way to retrieve a 565 pixel value and convert it back to RGB value, it won't be the same.

So I have added helper functions:

g_rValue(), g_gValue(), g_bValue() // works on 565 color format
GetRValue(), GetGValue(), GetBValue() // works on standard RGB color
g_rgb565() // convert 565 format R G B values to a 565 color.

Example:

G_SetPixel(100, 100, g_rgb(255, 255, 255));
lColor$ = g_GetPixel(100, 100);
red$ = g_rvalue(lColor$);
green$ = g_gvalue(lColor$);
blue$ = g_bvalue(lColor$);
G_SetPixel(150, 150, g_rgb565(red$, green$, blue$));

This is the maximum we can do.

Mike Halliday
09-16-2008, 02:52 PM
Your algorithm is not correct. I have added three new functions to the 1.52 release:

g_rvalue(), g_gvalue(), g_bvalue().

Here is how to really get the R,G,B values from an unsigned short:

const Pixel RED_MASK = 0x1F << 11;
const Pixel GREEN_MASK = 0x3F << 5;
const Pixel BLUE_MASK = 0x1F;
const int RED_SHIFT = 11;
const int GREEN_SHIFT = 5;
const int BLUE_SHIFT = 0;

int r = (c & Frog::RED_MASK) >> Frog::RED_SHIFT;
int g = (c & Frog::GREEN_MASK) >> Frog::GREEN_SHIFT;
int b = (c & Frog::BLUE_MASK) >> Frog::BLUE_SHIFT;

You can SHL and SHR to shift values in PPL.



Am I missing something here? what is c & FROG:: is this new for 1.52 - never used it in 1.51!

kornalius
09-16-2008, 03:52 PM
Sorry Mike, I have edited my post, the original one had C code in it.:)

Mike Halliday
09-16-2008, 03:58 PM
Sorry Mike, I have edited my post, the original one had C code in it.:)

Thanks for the prompt replies Alain.

Role on V1.52 so I can try the RGB values in my older graphics apps! :)

Cheers

Nicknack
09-16-2008, 04:07 PM
great work kornalius ;)