2005-04-30

Xcode 1.5, Subversion, and SSH

I've always used Xcode for checking in my stuff into the SVN repository, but when I started using a remote SVN (Subversion) server over ssh, I quickly found out that it doesn't work all that well. But I also found the fix. Here's what you do.

1) From a new Finder window press apple+shift+g and type in .MacOSX
3) Double click on the file called environment.plist
4) In Property List Editor click on New Child
5) Call it SVN_SSH and set the value to "ssh -l username" (without the quotes) replacing username with the username you need for accessing the repository.
6) Logout and then log back in.
7) Checkout your source like normal. For example: svn co svn+ssh://server.tld/repos

And from there on go like you normally would. Open the Xcode project and starting using it's integrated version control management.

Projects Status

I have been doing different tests in making PHP extensions lately and things seem to be good except for some problem I've been having with shared extensions. But I've decided to wait for my Tiger box to come before I work more on that.
In the meantime I'll try to get ACal3 alpha 2 out.

2005-04-29

Rebirth of wxPHP

I am announcing the rebirth of wxPHP. wxPHP is a project to create a wxWidgets wrapper for PHP. Or you could also say bindings.
I'm trying to takeover the wxPHP project on Sourceforge.net but if that fails I'll have to do it somewhere else.

Here are my plans for it. Even though I barely know C++ myself, I will attempt to write a PHP extension. This extension can be compiled as a shared library or built statically into PHP.
The extension will require PHP5 just to make things easier. PHP 5 has much better support for object oriented programming (oop) and wxWidgets has a lot of that.

I'm currently wetting my feet in writing PHP extensions. But I hope to get a really basic something out the door in the near future.

And just because I'm working on this too now doesn't mean that ACal will recieve no attention.

2005-04-28

Users & Groups Support Added to ACal 3

I have now checked in complete support for users and groups in ACal 3.0.

What does it consist of? A user is simply a record containing the username, password, and a list of groups the user is part of.
A groups is a record consisting of the group name, and rights that group has. For example a group may have admin, editor, or read-only rights.

In the future I want to work on this some more and allow a user to have more personal information such as real name, email address, etc. This would allow event notifications to be sent to a group (via email records of users in that group) instead of only a specific email address.

But for now I'm just going to get the basics done so that we can get alpha 2 out the door very soon.
And I will continue to do alpha releases until the calendar is ready for everyday use and then a beta phase will begin until everything is done and it has been thoroughly tested.

2005-04-27

ACal Status Update

Prefs Preview
This here is a little preview of the new preferences pane. It's a semi-transparent layer that floats on top of the calendar until closed. It's not really a window but an absolute positioned, fixed, floating div.

As of today I am now using the BerliOS SVN repository because I'm tired of waiting for SF.net to adopt it.
You can find out more about that on The ACal Project FAQ.

Users and Groups are coming along. It'll be in SVN this week.

And totally off topic, Dojo Toolkit is now hosting my Firefox builds.

2005-04-26

ACal 3 Redesigned pref Window

I have redesigned the ACal preferences window. It looks a lot better and works better also.
I'm working on the Users and Groups feature. I expect this to take a little while because I want it to be complete.
Then comes event categories. I also need to complete event notifications. Much needs to be done.

Alpha 2 is coming later than expected because I did not have that much time to work on it. It will come either this Saturday or early May. Depending on how well things go.

2005-04-25

NTP Server Support in ACal 3?

Hmm, sounds like a good idea to me. I'll just put it this way. If I can add this feature is a unobtrusive way, it will be added.

Just a few more tweaks and fixes and the acal trunk with have full support for time zones. Thanks to the PEAR Date package which made things a little easier.
If I add NTP support it will be using Net_NNTP_Client. Also a PEAR package.

So good things are coming. It'll just be awhile before ACal 3 is in a good state. Which is probably a good thing because PHP5 is being adopted rather slowly anyway.

[UPDATE]
As of my latest checkin to the ACal Subversion repository, support for time zones has been added!

2005-04-22

I know I've said it before...

But I don't like time zones! If for no other reason because of inconsistency.

I've been working on adding time zone support to ACal and it's being going through, albeit slowly. Almost at a crawl.
Why? Because there is so much to test and with each small change you need to make sure it works properly before going on. Timestamps are especially hard to figure out. I've been going wild trying to get this all working.
If nothing else works I'll be inventing my own data and time format to fix all these problems. But hopefully we'll have this done by next week.

2005-04-21

So... what have you been up to?

I don't know about you but here's what I have been doing.

I recently started to volunteer for UMO (Mozilla Update or update.mozilla.org.)
I've been helping to review extensions, manage comments, and other editor stuff.
But also some work on the actual UMO web site as well.

What else? Well I just finished a small CMS project which uses my XML parser and also my security system. It's a nifty little CMS. It's fast and easy to work with but not good for very complex web sites.

Today I started working on ACal 3.0 again. It looks like I'll have to push back the beta again. I still hope to get alpha 2 out this month.
Right now I'm working on time zone support. Just to make things go faster and for more features I'm using the Pear Time package. You won't need to install the Time package yourself because I'll include it with ACal.
When I have these time things sorted out I'll be working on Users and Groups. Planning has already started for that.

2005-04-19

That Problem is the Public School

Many organizations are fighting for Christianity in the public school system. Recently it became legal for Islam to be taught, but those wishing to teach Christianity are persecuted and even disciplined.
While I do believe this is a major battle I also realize why it is such.

The public school system was first defined in the communist manifesto. Why? Because it's just another way, and very important way to control the next generation. Whoever controls the public school system in a way has the future of that nation in his hands. That is why there is such a major battle there.

This could all be eliminated by totally removing the public school. I do not believe in the goverment owning the nations children. Training them is the God-given responsibility of their parents.

Google Maps are Cool

Take a look at http://maps.google.com/

I just noticed now that they have a new Satellite view. It's really neat.

2005-04-17

XML Parsers

I needed an XML parser for PHP 4 and tried MiniXML but ran into many problems with HTML entities. Very strange problems.
I looked into other XML parsers written in PHP but most were too complex for what I needed. So what did I do?

Well the obvious thing would be to use SimpleXML right? Well wrong. Because I need something for PHP4 due to the fact that this particular web host won't upgrade to PHP 5.
So then the obvious thing to do is write your own parser. Right? :)

At first I thought it would be simple. But it ended up taking me about 4 1/2 hours just to write a very simple parser. Well maybe you should take into account that I've never written something this complex before.

XML isn't complex in itself but yet writing any kind of parser is fun, in a difficult and challenging sort of way.
So what does this really great and simple parser do? Well it loads an XML file, creates an array from it. You can add elements and get everything back in XML or Array format.

I meets my needs, for now. In the future I'll be able to do a better job.

2005-04-16

Thankful for PHP

I know PHP like the back of my head. And know enough Python to write a desktop application in it. But recently had the urge to try C++ again. I really recommend http://www.cplusplus.com/ to anyone who wants to learn C++. It's a great learning resource.

But back to the main topic. Until you've done some programming in another language like C, you cannot truly appreciate how easy it is to write PHP code. The C++ syntax is the same in a lot of ways, but yet a lot more complicated. For example you have to declare each variable, constant, class, and function. And I have never used Pointers before either.
Everything is so strict--although that is a good thing--it makes it hard to write code when you are not familiar with all of the C++ syntax.
So having now written a wxWidgets application in C++ using Xcode I can say that I am thankful, truly thankful for the relative simplicity of PHP.

And no I don't want to try assembly next :)

2005-04-15

Starting to Learn C++ Again

Triggered by more problems with the Mac OS X FlightGear application because of of the fact I used Python and the fact that I only know scripting languages. I have once again started to learn C++.

Hopefully it will go better this time and in the future I may actually be able to do some really good stuff.
I'm also learning wxWidgets while I'm at it.

2005-04-14

Another Small Side Project

I've been working on a different project for the past two days. I got a little tired of ACal.

This project involves XML, templates, and web sites. Well almost everything I do involves the web.
Anyway I'm working on a system which stores all web site data in an XML format, caches it, and loads it when needed. This is all loaded into a template and served as a web page. Or pages.

It's kind of neat actually and I expect it to work nicely. A nice little content management system.

2005-04-12

I do not like time zones or DST!

I've been trying to add support for different time zones in ACal 3 for the past two days and what's the result? Nothing that works as expected.

I've read some tutorials and articles on time zones in PHP but to no avail. It's just too complicated for my little mind :)

Actually I've hardly worked on it for an hour so far. I need to work out a reliable algorithm within the next few days.

But then there's daylight savings time which is even worse because of the really great inconsistency.
But you can be sure I will not work on anything else until this is done.

2005-04-11

Much more work in ACal 3

Much more work needs to be done before ACal is a viable alternative to other popular calendar apps.
Today I've got the new preference pane system working well and have started redoing the time and date system so that we can allow user defined timezones instead of always using the system default.
And while I'm at all the time bugs should be fixed at the same time.

But putting that aside there are still many minor bugs all over the place like PHP notices and simple errors.

When I have this time thing done, event categories will be added. And when all this is done users and groups is next.

The beta is shooting for May 2nd now.

2005-04-09

Cool Stuff Coming

Hopefully you don't mind one more post about ACal 3.0 today :)

I've been working on a way to get rid of all popups. Well sort of. In ACal 2.x a popup window is used to manage events. In v3 alpha 1 a popup is used for the preferences window.
But I thought it would be neat if the preferences could use the same idea as the event pane.
For those who don't know in ACal 3.0 an event pane slides into the right side of the screen vertically from which you can add/edit/delete events. It is semi-transparent so you can see the calendar under it. Kind of neat.

Now for the preferences window why not do this?
Contain the preferences interface inside a single div. This div is hidden by default using CSS {display: none}
Now when a openLayer() function is invoked the div class changes and the div turns into a normal absolute positioned div. It is also semi-transparent, like a layer floating over your calendar allowing you to dynamically make changes.
So I'm going to base the new prefs off of this idea. With all these popup blockers today, it's safer to use pure CSS. (As long as the use is legitimate)

And today I have added full localization support. And fixed some bugs.
Everything hasn't been checked in yet.

Localization in ACal 3

One of the most requested features has been localization support. If we would have released ACal 2.3 it would be available now. But we didn't and it's going to be in version 3 and better than ever.

Each language has it's own file in the languages folder. The file is a plain XML file named (&Language.xml) and you can install a new language simply by dragging it in and it will be instantly available.
The XML file consists of a <lang/> element and each string is translated like this:
<str name="Constant Name">Translated String</str>
The lang element consists of a language code compatible with the PHP setlocale() function which automatically localizes strings generated by the date() function.

I'm starting out with a German translating and will add a Spanish locale later. Both will be available in alpha 2 which is expected later this month.

2005-04-08

Road to ACal 3.0 Alpha 1 - Part #4

This is the final "Road to ACal 3.0 Alpha 1" post. Why? Because we're at the end of the road.
Last night I uploaded ACal 3.0a1 and the new web site. The web site needed some work to get it working with PHP 4 but that was a snap.
So check it out at http://acalproj.sourceforge.net/
It's looking good so far. Now if only Sourceforge.net would roll out Subversion support and get the statistics working again :)

Interestingly enough I fixed two bugs after testing the alpha in Linux. One in the alarms system and one in configure.
Then shortly after I released alpha 1, I found another bug in the configure script. It's fixed in the latest snapshot.

You can't win them all I guess. In two weeks or so I expect to release alpha 2. And then at the end of the month get a beta out.

2005-04-07

Road to ACal 3.0 Alpha 1 - Part #3

As of now only one thing needs to be done before Alpha 1 is released. And that is testing. I will make a snapshot and test it on a Linux system. All the development is done on my Mac and sometimes you don't notice problems until you try it on a different system.

So this alpha release will have bugs. Some I left purposely so nobody would actually use it in a big way. Others I don't know about yet.
All in all it should be pretty stable as long as you have PHP 5 and a good HTTP server like Apache. I have no idea if it'll work on Windows.

So what didn't make it into this release?
Event categories, users and groups, and a lot of other things are incomplete. Aso RSS support, iCalendar export/import, and an embedding API are missing as well.
So a lot needs to be done and this is just the first preview of it.

2005-04-06

Road to ACal 3.0 Alpha 1 - Part #2

The ACal Project now has a new web site. Well it's not exactly online yet but it's done and ready to go. The new web site will be made public alongside the 3.0 Alpha 1 release.

Friday is certainly going to be a busy day. We have two more days before the alpha has to be ready and everything needs to be well tested and ready to go. Not a whole lot of time.

But about the new web site. It's designed to be easy to maintain and yet look good. I have a feeling that it looks terrible in Internet Explorer though. But that's why I have a get Firefox button :)
And of course a valid XHTML and CSS button as well.
The previous web site actually depended on my computer to keep it updated as a cron job would run every night updating the content. But this one is totally independant.

And about the ACal 3 alpha release in two days, it's going to be good but please don't use it if you care about your data because it's sure to break before the final is released.

2005-04-04

Road to ACal 3.0 Alpha 1 - Part #1

Well I'm planning on pushing out the alpha in 4 days so I'll probably do daily updates on this blog until then.

Today:
Bug where if more than 10 events are added they will have the same ID number. This has been fixed by using a unix timestamp plus a random number between 1 and 999. This means that even if a new event is added 200 times every seconds there's little chance it will have the same ID number as another event.

Events can now repeat every year and the monthly recurring code has been revised. It took a little math skill for that ;)

And the configure script is now fully functional. Configure is a small program that can be run from the command line. It asks you some questions then configures everything for you making sure it all works at the same time.

I've also added an INSTALL document.

There's been other small changes and fixes here and there but are small enough not to notice.
Next I'll be working on event editing. Time for some fun :)

2005-04-03

ACal 3.0 Alpha Update

Today there's been some new bug fixes and features checked in. Major things include full SQLite and MySQLi support and monthly recurring support.

The official alpha release will be coming out on the 8th of this week.
Major things that really need to be done before the 8th is yearly recurring support, and the ability to delete and edit events. Those 3 things are currently blocking the Alpha, but is by no means all that needs to be done before the final release. For example the Alpha will not have support for users, groups, or event categories. The Notes features will not work either. It's not yet been determined whether or not the alarms feature will be fully complete or not. One major part is not yet functional.

So a lot needs to be done. But I'm optimistic that we'll get a beta this month yet. ACal 3.0 will be the greatest web calendar available when I'm done with it.

2005-04-01

GMail Ups Services?

It seems Google has updated GMail once again. Now GMail provides up to 1446 MB of disk space. Previously it was 1000 MB. Also you can now send rich text emails.

The rich text toolbar has some layout problems but it works great. GMail is coming ever closer to being a total replacement of traditional email clients.

By the way if you would like to try GMail out, leave a comment with your name and email address and I'll send you an invitation.