From gambas at ...1... Sat Sep 1 03:48:22 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 01 Sep 2012 03:48:22 +0200 Subject: [Gambas-devel] About gb.net.pop3 In-Reply-To: <5040FFC7.6000801@...1...> References: <503EC13B.3020300@...1...> <503FC764.2000008@...1...> <5040FFC7.6000801@...1...> Message-ID: <50416966.60105@...1...> Le 31/08/2012 20:17, Beno?t Minisini a ?crit : > > You decided to not use gmime. OK. But so you have to be very careful > when following the MIME specs, otherwise many of mails will be > unreadable. I know what I am talking about with gb.net.smtp whose code > is not mine at the beginning... > > As for the interface : MIME is hierarchical, so you have to implement > different classes with some begin containers MIME parts, and other > contents MIME parts. You can look at gmime to know what to do, and > simplify their structure if you can. > > Regards, > Reading the gmime library documentation, I finally think it's a bad idea to try to reimplement Mime message parsing in Gambas. How could you write something complete and not full of bugs when you have thirty-two RFCs to implement? So I will start writing a gmime component as soon as possible, and tell you how to use it. Regards, -- Beno?t Minisini From sebikul at ...176... Sat Sep 1 07:26:00 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 1 Sep 2012 02:26:00 -0300 Subject: [Gambas-devel] About gb.net.pop3 In-Reply-To: <50416966.60105@...1...> References: <503EC13B.3020300@...1...> <503FC764.2000008@...1...> <5040FFC7.6000801@...1...> <50416966.60105@...1...> Message-ID: On Fri, Aug 31, 2012 at 10:48 PM, Beno?t Minisini wrote: > Le 31/08/2012 20:17, Beno?t Minisini a ?crit : >> >> You decided to not use gmime. OK. But so you have to be very careful >> when following the MIME specs, otherwise many of mails will be >> unreadable. I know what I am talking about with gb.net.smtp whose code >> is not mine at the beginning... >> >> As for the interface : MIME is hierarchical, so you have to implement >> different classes with some begin containers MIME parts, and other >> contents MIME parts. You can look at gmime to know what to do, and >> simplify their structure if you can. >> >> Regards, >> > > Reading the gmime library documentation, I finally think it's a bad idea > to try to reimplement Mime message parsing in Gambas. > > How could you write something complete and not full of bugs when you > have thirty-two RFCs to implement? > > So I will start writing a gmime component as soon as possible, and tell > you how to use it. > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel Yeah, i think that's the best approach. They are not hard to implement (just text parsing) but they are really long. I would offer my help, but i know little about C and the Gambas API. I will start writing an IMAP implementation to complete the .mail component ;-) From gambas.fr at ...176... Sat Sep 1 08:59:04 2012 From: gambas.fr at ...176... (Fabien Bodard) Date: Sat, 1 Sep 2012 08:59:04 +0200 Subject: [Gambas-devel] About gb.net.pop3 In-Reply-To: References: <503EC13B.3020300@...1...> <503FC764.2000008@...1...> <5040FFC7.6000801@...1...> <50416966.60105@...1...> Message-ID: I Le 1 sept. 2012 07:26, "Sebastian Kulesz" a ?crit : > > On Fri, Aug 31, 2012 at 10:48 PM, Beno?t Minisini > wrote: > > Le 31/08/2012 20:17, Beno?t Minisini a ?crit : > >> > >> You decided to not use gmime. OK. But so you have to be very careful > >> when following the MIME specs, otherwise many of mails will be > >> unreadable. I know what I am talking about with gb.net.smtp whose code > >> is not mine at the beginning... > >> > >> As for the interface : MIME is hierarchical, so you have to implement > >> different classes with some begin containers MIME parts, and other > >> contents MIME parts. You can look at gmime to know what to do, and > >> simplify their structure if you can. > >> > >> Regards, > >> > > > > Reading the gmime library documentation, I finally think it's a bad idea > > to try to reimplement Mime message parsing in Gambas. > > > > How could you write something complete and not full of bugs when you > > have thirty-two RFCs to implement? > > > > So I will start writing a gmime component as soon as possible, and tell > > you how to use it. > > > > Regards, > > > > -- > > Beno?t Minisini > > > > ------------------------------------------------------------------------------ > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > Gambas-devel mailing list > > Gambas-devel at lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/gambas-devel > > Yeah, i think that's the best approach. They are not hard to implement > (just text parsing) but they are really long. I would offer my help, > but i know little about C and the Gambas API. > > I will start writing an IMAP implementation to complete the .mail component ;-) Well... But not with the same way that you use for pop... > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias at ...692... Sun Sep 2 20:04:25 2012 From: tobias at ...692... (Tobias Boege) Date: Sun, 2 Sep 2012 20:04:25 +0200 Subject: [Gambas-devel] About List interface In-Reply-To: <5040FCF9.3060908@...1...> References: <20120830021816.GA10921@...693...> <5040FCF9.3060908@...1...> Message-ID: <20120902180425.GA521@...693...> > > 3. Prepend and the first Current > > When the first element is added to the List, it automatically gets Current. > > Before, there is none. If afterwards another element gets Prepend()'d, > > Current is the second node without the user doing anything on Current. Is > > this logical enough? > > You can choose to make the last inserted element current, whatever the > insertion method was. > > Regards, > > -- > Beno?t Minisini Hmm, having considered this issue a bit further, I would rather leave the Current invalid until the user sets it. If it is invalid, MoveNext() is the same as MoveFirst() and MovePrev() is the same as MoveLast() but accessing List.Current gives error. The reason for which I didn't choose changing on insertion is that it could get cumbersome for the user to save Current before every insertion if they don't want it to change. Last alternative could be using a flag. This is set whenever the user explicitly sets Current; before, it is cleared. If the bit is set, Current always remains the same, if it is cleared, any insertion moves Current to the first node. This sounds like the best solution to me... What do you think, finally? Regards, Tobi From gambas at ...1... Sun Sep 2 20:39:00 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sun, 02 Sep 2012 20:39:00 +0200 Subject: [Gambas-devel] About List interface In-Reply-To: <20120902180425.GA521@...693...> References: <20120830021816.GA10921@...693...> <5040FCF9.3060908@...1...> <20120902180425.GA521@...693...> Message-ID: <5043A7C4.9050307@...1...> Le 02/09/2012 20:04, Tobias Boege a ?crit : > Hmm, having considered this issue a bit further, I would rather leave the > Current invalid until the user sets it. If it is invalid, MoveNext() is the > same as MoveFirst() and MovePrev() is the same as MoveLast() but accessing > List.Current gives error. > > The reason for which I didn't choose changing on insertion is that it could > get cumbersome for the user to save Current before every insertion if they > don't want it to change. > > Last alternative could be using a flag. This is set whenever the user > explicitly sets Current; before, it is cleared. If the bit is set, Current > always remains the same, if it is cleared, any insertion moves Current to > the first node. This sounds like the best solution to me... Mmm... I find it weird. I'd prefer a less ambiguous and more stupid solution: either you always change Current after an insertion, either you never change it. Less sources of possible bugs... And would you rename the component? I'd like a better name than gb.adt. Maybe 'gb.data'. Not wonderful, but I don't see what a component with that name could do other than something such low-level as storing data. And if the component is not unstable anymore, write it in the component file. You have three choices! State=Finished State=Unfinished State=Experimental Regards, -- Beno?t Minisini From sebikul at ...176... Wed Sep 5 05:02:17 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Wed, 5 Sep 2012 00:02:17 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake Message-ID: Hi all !! I really think Gambas is a great language to work with, but lets face it, from the point of view of a beginner, distributing an application is a pain in the a**. There is no *standard* way to build a project (other than executing gbc3/gba3 directly if we let the IDE aside), this makes it difficult to create debian packages, PPAs, etc. as they all require some sort of autoconf script to manage the process. Without the IDE, an user can do much. And with it, this implies installing every component it depends on (a total of 15). To create a PPA of a gambas application, for example, the user has 2 choices. He can either write a Makefile (more bugs, no portability, etc) or create a dummy autoconf package, skim the files and replace what is needed (package name, version, etc), and merge it with his project. These are really just a few examples of the problems i faced not so long ago. With this in mind, i created this little tool to automate the building of gambas apps. It works as a *drop in* replacement for make (*seriously*, you can run "make", "make clean", and "sudo make install" without a single script, autoconf, automake, m4 macro). I also wrote the app with Quickly [0] in mind. For example, if you want to debianize a project, you can run "gbmake debianize" or just "make debianize" and that is it. It will automatically create a skeleton debian/ folder which should work out-of-the-box. Maybe a "make source" to create a source archive? I just started it today, so only the building process is really implemented (build, clean, install) but I really see a lot of potential here. Once it's completed, the autotools package may be dropped (it will be completely replaced and the user will have to do nothing). Uploading packages to a PPA will be much easier. Users won't depend on the IDE to perform administrative tasks, such as building a package or a source archive. I will need some help to port the packaging code in the IDE to work in headless mode. I'm trying to make this tool to only depend on the interpreter, so no single component has to be installed for it to work. This means implementing a custom option parser, and settings parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia and Fedora (and it's derivatives), so i will only be able to port the code, but i can't test for any bugs or regressions. How does it works? It's really simple actually. You will see 2 Makefiles included. the one named Makefile.1 should be used to install the app in the first place. sudo make -f Makefile.1 install This command will build the project and install it (/usr/bin/gbmake). The second Makefile only wraps the commands sent to "make" to "gbmake". It's really the same, but we are all used to type make *, aren't we? ;-) In this case, only adding this Makefile to a project will let "make" work out of the box, otherwise, "gbmake" will work just fine. I will try to have the Debian part finished by the end of the week so i can provide a working example, this is just a *proof of concept*, and a call for everybody who would like to help. I'm a little skeptic about merging this to trunk (even as a branch), as it's a work in progress, and it will just confuse the users. Besides, 3.3 is around the corner and this will only bring more bugs. Maybe 3.4 if we hurry. I'm really anxious to hear your comments! Thanks! [0] https://wiki.ubuntu.com/Quickly -------------- next part -------------- A non-text attachment was scrubbed... Name: gbmake-0.0.1.tar.gz Type: application/x-gzip Size: 9818 bytes Desc: not available URL: From gambas at ...1... Wed Sep 5 13:43:34 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Wed, 05 Sep 2012 13:43:34 +0200 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: References: Message-ID: <50473AE6.1030407@...1...> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : > Hi all !! > > I really think Gambas is a great language to work with, but lets face > it, from the point of view of a beginner, distributing an application > is a pain in the a**. There is no *standard* way to build a project > (other than executing gbc3/gba3 directly if we let the IDE aside), > this makes it difficult to create debian packages, PPAs, etc. as they > all require some sort of autoconf script to manage the process. > Without the IDE, an user can do much. And with it, this implies > installing every component it depends on (a total of 15). > > To create a PPA of a gambas application, for example, the user has 2 > choices. He can either write a Makefile (more bugs, no portability, > etc) or create a dummy autoconf package, skim the files and replace > what is needed (package name, version, etc), and merge it with his > project. > > These are really just a few examples of the problems i faced not so > long ago. With this in mind, i created this little tool to automate > the building of gambas apps. It works as a *drop in* replacement for > make (*seriously*, you can run "make", "make clean", and "sudo make > install" without a single script, autoconf, automake, m4 macro). > > I also wrote the app with Quickly [0] in mind. For example, if you > want to debianize a project, you can run "gbmake debianize" or just > "make debianize" and that is it. It will automatically create a > skeleton debian/ folder which should work out-of-the-box. Maybe a > "make source" to create a source archive? > > I just started it today, so only the building process is really > implemented (build, clean, install) but I really see a lot of > potential here. Once it's completed, the autotools package may be > dropped (it will be completely replaced and the user will have to do > nothing). Uploading packages to a PPA will be much easier. Users won't > depend on the IDE to perform administrative tasks, such as building a > package or a source archive. > > I will need some help to port the packaging code in the IDE to work in > headless mode. I'm trying to make this tool to only depend on the > interpreter, so no single component has to be installed for it to > work. This means implementing a custom option parser, and settings > parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia > and Fedora (and it's derivatives), so i will only be able to port the > code, but i can't test for any bugs or regressions. > > How does it works? It's really simple actually. You will see 2 > Makefiles included. the one named Makefile.1 should be used to install > the app in the first place. > > sudo make -f Makefile.1 install > > This command will build the project and install it (/usr/bin/gbmake). > The second Makefile only wraps the commands sent to "make" to > "gbmake". It's really the same, but we are all used to type make *, > aren't we? ;-) > > In this case, only adding this Makefile to a project will let "make" > work out of the box, otherwise, "gbmake" will work just fine. > > I will try to have the Debian part finished by the end of the week so > i can provide a working example, this is just a *proof of concept*, > and a call for everybody who would like to help. I'm a little skeptic > about merging this to trunk (even as a branch), as it's a work in > progress, and it will just confuse the users. Besides, 3.3 is around > the corner and this will only bring more bugs. Maybe 3.4 if we hurry. > > I'm really anxious to hear your comments! > > Thanks! > > [0] https://wiki.ubuntu.com/Quickly > Good idea, but the problem is code duplication between "gbmake" and the IDE. I suggest taking the code from the IDE instead of rewriting your own (or mix them if yours is better). The Packager class already has "debianizing" code for example, and everything for making packages with no GUI. It just depends on all the configuration parameters entered in the packager wizard, but all these parameters are stored in the .project file. I suggest renaming "gbmake" into "gbm", to follow the naming pattern of all gambas command-line tools. There is two ways to solve the code duplication problem: - The "gbm" project have modules that are symbolic links to the IDE code. - The IDE calls gbm systematically for doing all the stuff. At the moment I prefer the first solution, so that the interface of gbm can be developped independently of the IDE needs. I don't understand why you need two Makefiles. I imagine that the IDE would automatically generate a Makefile file inside the source directory with a configure script to detect that Gambas is installed. That way, you just have to uncompress the Gambas source archive, run './configure', 'make' and 'make install', and everything works as expected. Is it what you have in mind? -- Beno?t Minisini From gambas at ...1... Wed Sep 5 21:01:38 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Wed, 05 Sep 2012 21:01:38 +0200 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: <50473AE6.1030407@...1...> References: <50473AE6.1030407@...1...> Message-ID: <5047A192.5000300@...1...> Le 05/09/2012 13:43, Beno?t Minisini a ?crit : > Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >> Hi all !! >> >> I really think Gambas is a great language to work with, but lets face >> it, from the point of view of a beginner, distributing an application >> is a pain in the a**. There is no *standard* way to build a project >> (other than executing gbc3/gba3 directly if we let the IDE aside), >> this makes it difficult to create debian packages, PPAs, etc. as they >> all require some sort of autoconf script to manage the process. >> Without the IDE, an user can do much. And with it, this implies >> installing every component it depends on (a total of 15). >> >> To create a PPA of a gambas application, for example, the user has 2 >> choices. He can either write a Makefile (more bugs, no portability, >> etc) or create a dummy autoconf package, skim the files and replace >> what is needed (package name, version, etc), and merge it with his >> project. >> >> These are really just a few examples of the problems i faced not so >> long ago. With this in mind, i created this little tool to automate >> the building of gambas apps. It works as a *drop in* replacement for >> make (*seriously*, you can run "make", "make clean", and "sudo make >> install" without a single script, autoconf, automake, m4 macro). >> >> I also wrote the app with Quickly [0] in mind. For example, if you >> want to debianize a project, you can run "gbmake debianize" or just >> "make debianize" and that is it. It will automatically create a >> skeleton debian/ folder which should work out-of-the-box. Maybe a >> "make source" to create a source archive? >> >> I just started it today, so only the building process is really >> implemented (build, clean, install) but I really see a lot of >> potential here. Once it's completed, the autotools package may be >> dropped (it will be completely replaced and the user will have to do >> nothing). Uploading packages to a PPA will be much easier. Users won't >> depend on the IDE to perform administrative tasks, such as building a >> package or a source archive. >> >> I will need some help to port the packaging code in the IDE to work in >> headless mode. I'm trying to make this tool to only depend on the >> interpreter, so no single component has to be installed for it to >> work. This means implementing a custom option parser, and settings >> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >> and Fedora (and it's derivatives), so i will only be able to port the >> code, but i can't test for any bugs or regressions. >> >> How does it works? It's really simple actually. You will see 2 >> Makefiles included. the one named Makefile.1 should be used to install >> the app in the first place. >> >> sudo make -f Makefile.1 install >> >> This command will build the project and install it (/usr/bin/gbmake). >> The second Makefile only wraps the commands sent to "make" to >> "gbmake". It's really the same, but we are all used to type make *, >> aren't we? ;-) >> >> In this case, only adding this Makefile to a project will let "make" >> work out of the box, otherwise, "gbmake" will work just fine. >> >> I will try to have the Debian part finished by the end of the week so >> i can provide a working example, this is just a *proof of concept*, >> and a call for everybody who would like to help. I'm a little skeptic >> about merging this to trunk (even as a branch), as it's a work in >> progress, and it will just confuse the users. Besides, 3.3 is around >> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >> >> I'm really anxious to hear your comments! >> >> Thanks! >> >> [0] https://wiki.ubuntu.com/Quickly >> > > Good idea, but the problem is code duplication between "gbmake" and the IDE. > > I suggest taking the code from the IDE instead of rewriting your own (or > mix them if yours is better). > Yep. You tried to rewrite things already done by the IDE, but you didn't do it correctly. You should make a list of all project management features you need (how to clean a project, how to compile it...), and I will centralize all these features into an IDE module that will be able to be shared by the gambas make utility. Regards, -- Beno?t Minisini From sebikul at ...176... Thu Sep 6 05:19:52 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Thu, 6 Sep 2012 00:19:52 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: <5047A192.5000300@...1...> References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> Message-ID: On Wed, Sep 5, 2012 at 4:01 PM, Beno?t Minisini wrote: > Le 05/09/2012 13:43, Beno?t Minisini a ?crit : >> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >>> Hi all !! >>> >>> I really think Gambas is a great language to work with, but lets face >>> it, from the point of view of a beginner, distributing an application >>> is a pain in the a**. There is no *standard* way to build a project >>> (other than executing gbc3/gba3 directly if we let the IDE aside), >>> this makes it difficult to create debian packages, PPAs, etc. as they >>> all require some sort of autoconf script to manage the process. >>> Without the IDE, an user can do much. And with it, this implies >>> installing every component it depends on (a total of 15). >>> >>> To create a PPA of a gambas application, for example, the user has 2 >>> choices. He can either write a Makefile (more bugs, no portability, >>> etc) or create a dummy autoconf package, skim the files and replace >>> what is needed (package name, version, etc), and merge it with his >>> project. >>> >>> These are really just a few examples of the problems i faced not so >>> long ago. With this in mind, i created this little tool to automate >>> the building of gambas apps. It works as a *drop in* replacement for >>> make (*seriously*, you can run "make", "make clean", and "sudo make >>> install" without a single script, autoconf, automake, m4 macro). >>> >>> I also wrote the app with Quickly [0] in mind. For example, if you >>> want to debianize a project, you can run "gbmake debianize" or just >>> "make debianize" and that is it. It will automatically create a >>> skeleton debian/ folder which should work out-of-the-box. Maybe a >>> "make source" to create a source archive? >>> >>> I just started it today, so only the building process is really >>> implemented (build, clean, install) but I really see a lot of >>> potential here. Once it's completed, the autotools package may be >>> dropped (it will be completely replaced and the user will have to do >>> nothing). Uploading packages to a PPA will be much easier. Users won't >>> depend on the IDE to perform administrative tasks, such as building a >>> package or a source archive. >>> >>> I will need some help to port the packaging code in the IDE to work in >>> headless mode. I'm trying to make this tool to only depend on the >>> interpreter, so no single component has to be installed for it to >>> work. This means implementing a custom option parser, and settings >>> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >>> and Fedora (and it's derivatives), so i will only be able to port the >>> code, but i can't test for any bugs or regressions. >>> >>> How does it works? It's really simple actually. You will see 2 >>> Makefiles included. the one named Makefile.1 should be used to install >>> the app in the first place. >>> >>> sudo make -f Makefile.1 install >>> >>> This command will build the project and install it (/usr/bin/gbmake). >>> The second Makefile only wraps the commands sent to "make" to >>> "gbmake". It's really the same, but we are all used to type make *, >>> aren't we? ;-) >>> >>> In this case, only adding this Makefile to a project will let "make" >>> work out of the box, otherwise, "gbmake" will work just fine. >>> >>> I will try to have the Debian part finished by the end of the week so >>> i can provide a working example, this is just a *proof of concept*, >>> and a call for everybody who would like to help. I'm a little skeptic >>> about merging this to trunk (even as a branch), as it's a work in >>> progress, and it will just confuse the users. Besides, 3.3 is around >>> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >>> >>> I'm really anxious to hear your comments! >>> >>> Thanks! >>> >>> [0] https://wiki.ubuntu.com/Quickly >>> >> >> Good idea, but the problem is code duplication between "gbmake" and the IDE. >> >> I suggest taking the code from the IDE instead of rewriting your own (or >> mix them if yours is better). >> > > Yep. You tried to rewrite things already done by the IDE, but you didn't > do it correctly. > > You should make a list of all project management features you need (how > to clean a project, how to compile it...), and I will centralize all > these features into an IDE module that will be able to be shared by the > gambas make utility. > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel For the moment there *will* be code duplication, but in the end, using gbmake over the available implementations will require much less code. A few examples: I just finished the archlinux packaging module. If you take a look at the code the IDE uses to package it (more than 200 loc only to package, leaving dependency checks out), you will see a lot of "install" commands, conditionals that check what type of project we are dealing with, etc. With gbmake, we only need to execute 2 commands ("make" and "make install"). gbmake will itself check for dependencies (the package manager should do it, but if installed from source they have to be ignored), determine what type of project it is, and install the required files (this last part is not yet implemented, only basic installation") That 200 loc where reduced to just (fully abstracted) 80, *including dependency checks*. I'm planning the same with the debian part. There are more than 200 loc *only* to build a deb package. gbmake can do that by just "debianizing" a temporary folder ("gbmake debianize" will customize the files under debian/* using data prom the proejct configuration) and running "debuild -b", even from a terminal. I don't think gbmake should depend on a module inside the IDE, because we are missing the fact that it can run without a gui. Besides, i'm trying to abstract specific code into separate modules, so that functions that deal with debian packages, for example, resides in a separate module that only gets called when needed (easier to code, easier to maintain). > I don't understand why you need two Makefiles. I imagine that the IDE > would automatically generate a Makefile file inside the source directory > with a configure script to detect that Gambas is installed. That way, > you just have to uncompress the Gambas source archive, run > './configure', 'make' and 'make install', and everything works as > expected. Is it what you have in mind? Makefile.1 was only included so that you can install the tool without much trouble. The other Makefile is a generic one, this should be put inside every project if you wish to run gbmake trough make, but that's optional. The configure script should *only* check if the gambas interpreter is installed, everything else is done automatically. As i said on the first mail, that was just a proof of concept. I'm rewriting most of the packaging code (while still adding some missing features), but still using some parts of it. It will take some time to get it to work stable enough to be merged. I will send another source package once i finish the debian module, so those who want can play with it. Thanks! From gambas at ...1... Thu Sep 6 05:34:20 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 05:34:20 +0200 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> Message-ID: <504819BC.8080508@...1...> Le 06/09/2012 05:19, Sebastian Kulesz a ?crit : > On Wed, Sep 5, 2012 at 4:01 PM, Beno?t Minisini > wrote: >> Le 05/09/2012 13:43, Beno?t Minisini a ?crit : >>> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >>>> Hi all !! >>>> >>>> I really think Gambas is a great language to work with, but lets face >>>> it, from the point of view of a beginner, distributing an application >>>> is a pain in the a**. There is no *standard* way to build a project >>>> (other than executing gbc3/gba3 directly if we let the IDE aside), >>>> this makes it difficult to create debian packages, PPAs, etc. as they >>>> all require some sort of autoconf script to manage the process. >>>> Without the IDE, an user can do much. And with it, this implies >>>> installing every component it depends on (a total of 15). >>>> >>>> To create a PPA of a gambas application, for example, the user has 2 >>>> choices. He can either write a Makefile (more bugs, no portability, >>>> etc) or create a dummy autoconf package, skim the files and replace >>>> what is needed (package name, version, etc), and merge it with his >>>> project. >>>> >>>> These are really just a few examples of the problems i faced not so >>>> long ago. With this in mind, i created this little tool to automate >>>> the building of gambas apps. It works as a *drop in* replacement for >>>> make (*seriously*, you can run "make", "make clean", and "sudo make >>>> install" without a single script, autoconf, automake, m4 macro). >>>> >>>> I also wrote the app with Quickly [0] in mind. For example, if you >>>> want to debianize a project, you can run "gbmake debianize" or just >>>> "make debianize" and that is it. It will automatically create a >>>> skeleton debian/ folder which should work out-of-the-box. Maybe a >>>> "make source" to create a source archive? >>>> >>>> I just started it today, so only the building process is really >>>> implemented (build, clean, install) but I really see a lot of >>>> potential here. Once it's completed, the autotools package may be >>>> dropped (it will be completely replaced and the user will have to do >>>> nothing). Uploading packages to a PPA will be much easier. Users won't >>>> depend on the IDE to perform administrative tasks, such as building a >>>> package or a source archive. >>>> >>>> I will need some help to port the packaging code in the IDE to work in >>>> headless mode. I'm trying to make this tool to only depend on the >>>> interpreter, so no single component has to be installed for it to >>>> work. This means implementing a custom option parser, and settings >>>> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >>>> and Fedora (and it's derivatives), so i will only be able to port the >>>> code, but i can't test for any bugs or regressions. >>>> >>>> How does it works? It's really simple actually. You will see 2 >>>> Makefiles included. the one named Makefile.1 should be used to install >>>> the app in the first place. >>>> >>>> sudo make -f Makefile.1 install >>>> >>>> This command will build the project and install it (/usr/bin/gbmake). >>>> The second Makefile only wraps the commands sent to "make" to >>>> "gbmake". It's really the same, but we are all used to type make *, >>>> aren't we? ;-) >>>> >>>> In this case, only adding this Makefile to a project will let "make" >>>> work out of the box, otherwise, "gbmake" will work just fine. >>>> >>>> I will try to have the Debian part finished by the end of the week so >>>> i can provide a working example, this is just a *proof of concept*, >>>> and a call for everybody who would like to help. I'm a little skeptic >>>> about merging this to trunk (even as a branch), as it's a work in >>>> progress, and it will just confuse the users. Besides, 3.3 is around >>>> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >>>> >>>> I'm really anxious to hear your comments! >>>> >>>> Thanks! >>>> >>>> [0] https://wiki.ubuntu.com/Quickly >>>> >>> >>> Good idea, but the problem is code duplication between "gbmake" and the IDE. >>> >>> I suggest taking the code from the IDE instead of rewriting your own (or >>> mix them if yours is better). >>> >> >> Yep. You tried to rewrite things already done by the IDE, but you didn't >> do it correctly. >> >> You should make a list of all project management features you need (how >> to clean a project, how to compile it...), and I will centralize all >> these features into an IDE module that will be able to be shared by the >> gambas make utility. >> >> Regards, >> >> -- >> Beno?t Minisini >> >> ------------------------------------------------------------------------------ >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. Discussions >> will include endpoint security, mobile security and the latest in malware >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel > > For the moment there *will* be code duplication, but in the end, using > gbmake over the available implementations will require much less code. I think you don't understand : I don't want code duplication to save lines of code. I don't want code duplication because you are doing things incorrectly in gbmake. For example cleaning the project. As the IDE packager won't disappear, we must find a way to *not* duplicate features like that, otherwise it will be become a nightmare to maintain. So I proposed that all process that depends on the structure of the project directory (which is *maintained* by the IDE) is put in a specific module. Then that module will be shared between the IDE and the gbmake project through a symbolic link. > > A few examples: > > I just finished the archlinux packaging module. If you take a look at > the code the IDE uses to package it (more than 200 loc only to > package, leaving dependency checks out), you will see a lot of > "install" commands, conditionals that check what type of project we > are dealing with, etc. > With gbmake, we only need to execute 2 commands ("make" and "make > install"). gbmake will itself check for dependencies (the package > manager should do it, but if installed from source they have to be > ignored), determine what type of project it is, and install the > required files (this last part is not yet implemented, only basic > installation") > That 200 loc where reduced to just (fully abstracted) 80, *including > dependency checks*. > > I'm planning the same with the debian part. There are more than 200 > loc *only* to build a deb package. gbmake can do that by just > "debianizing" a temporary folder ("gbmake debianize" will customize > the files under debian/* using data prom the proejct configuration) > and running "debuild -b", even from a terminal. > > I don't think gbmake should depend on a module inside the IDE, because > we are missing the fact that it can run without a gui. This has no relation at all with GUI or not, and there is no dependency, as we are sharing only source code! Once gbmake is compiled, it has no dependency anymore on the IDE. But then we are sure that when gbmake wants to clean a project, it does it the good way. And if the cleaning process changes, the gbmake source code is automatically updated. > Besides, i'm > trying to abstract specific code into separate modules, so that > functions that deal with debian packages, for example, resides in a > separate module that only gets called when needed (easier to code, > easier to maintain). > >> I don't understand why you need two Makefiles. I imagine that the IDE >> would automatically generate a Makefile file inside the source directory >> with a configure script to detect that Gambas is installed. That way, >> you just have to uncompress the Gambas source archive, run >> './configure', 'make' and 'make install', and everything works as >> expected. Is it what you have in mind? > > Makefile.1 was only included so that you can install the tool without > much trouble. The other Makefile is a generic one, this should be put > inside every project if you wish to run gbmake trough make, but that's > optional. The configure script should *only* check if the gambas > interpreter is installed, everything else is done automatically. Again, I don't understand what you have in mind. The configure script normally must check every dependency of the program that is going to be compiled and installed. 'make' does the compilation, and 'make install' does the installation. And I guess that standard behaviour is expected by the Ubuntu automatic compilation and packaging process? > > As i said on the first mail, that was just a proof of concept. I'm > rewriting most of the packaging code (while still adding some missing > features), but still using some parts of it. It will take some time to > get it to work stable enough to be merged. > > I will send another source package once i finish the debian module, so > those who want can play with it. As for letting gbmake creating binary packages, ok. But again, the packaging code in the IDE is not dependent on the GUI, and I don't understand why you want to rewrite it, as AFAIK, it works. Why not just sharing it and using it? Regards, -- Beno?t Minisini From gambas at ...1... Thu Sep 6 05:43:30 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 05:43:30 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 Message-ID: <50481BE2.1060903@...1...> Hi, I'd like to know how Gambas 3.3 could be released, and I need a few answers! :-) For Tobias ---------- What is the state of gb.ncurses? Can it be marked as "Not finished" instead of "Unstable"? When will you rename gb.adt? And same question about its state: can it be marked as "Not finished" instead of "Unstable"? For information: "Unstable" means "don't use it", while "Not finished" means that the public interface can be used, compatibility will be ensured, but some important features are still missing. For Sebastian ------------- gb.mime is 90% finished and usable. Did you test it with Pop3Client? Will you clean the Pop3Client source code (many Debug instruction are still present) and mark it as "Stable"? I plan to rewrite SmtpClient entirely in Gambas as you did with Pop3Client, merge the two, based them on gb.mime. But not necessarily for Gambas 3.3, because compatibility with the old SmtpClient must be maintained. I have to find a mechanism to be able to remove gb.net.smtp without breaking programs using it. After your mail, I don't think gbmake will be release with that version, but the next one. For Fabien ---------- Do you have some needed tasks on gb.report? Or maybe gb.chart? Personnally, I just want to rewrite gb.option entirely in Gambas because its creator has disappeared. So we have a little time. Thanks for your collaboration! Regards, -- Beno?t Minisini From sebikul at ...176... Thu Sep 6 06:05:19 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Thu, 6 Sep 2012 01:05:19 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: <504819BC.8080508@...1...> References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> <504819BC.8080508@...1...> Message-ID: On Thu, Sep 6, 2012 at 12:34 AM, Beno?t Minisini wrote: > Le 06/09/2012 05:19, Sebastian Kulesz a ?crit : >> On Wed, Sep 5, 2012 at 4:01 PM, Beno?t Minisini >> wrote: >>> Le 05/09/2012 13:43, Beno?t Minisini a ?crit : >>>> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >>>>> Hi all !! >>>>> >>>>> I really think Gambas is a great language to work with, but lets face >>>>> it, from the point of view of a beginner, distributing an application >>>>> is a pain in the a**. There is no *standard* way to build a project >>>>> (other than executing gbc3/gba3 directly if we let the IDE aside), >>>>> this makes it difficult to create debian packages, PPAs, etc. as they >>>>> all require some sort of autoconf script to manage the process. >>>>> Without the IDE, an user can do much. And with it, this implies >>>>> installing every component it depends on (a total of 15). >>>>> >>>>> To create a PPA of a gambas application, for example, the user has 2 >>>>> choices. He can either write a Makefile (more bugs, no portability, >>>>> etc) or create a dummy autoconf package, skim the files and replace >>>>> what is needed (package name, version, etc), and merge it with his >>>>> project. >>>>> >>>>> These are really just a few examples of the problems i faced not so >>>>> long ago. With this in mind, i created this little tool to automate >>>>> the building of gambas apps. It works as a *drop in* replacement for >>>>> make (*seriously*, you can run "make", "make clean", and "sudo make >>>>> install" without a single script, autoconf, automake, m4 macro). >>>>> >>>>> I also wrote the app with Quickly [0] in mind. For example, if you >>>>> want to debianize a project, you can run "gbmake debianize" or just >>>>> "make debianize" and that is it. It will automatically create a >>>>> skeleton debian/ folder which should work out-of-the-box. Maybe a >>>>> "make source" to create a source archive? >>>>> >>>>> I just started it today, so only the building process is really >>>>> implemented (build, clean, install) but I really see a lot of >>>>> potential here. Once it's completed, the autotools package may be >>>>> dropped (it will be completely replaced and the user will have to do >>>>> nothing). Uploading packages to a PPA will be much easier. Users won't >>>>> depend on the IDE to perform administrative tasks, such as building a >>>>> package or a source archive. >>>>> >>>>> I will need some help to port the packaging code in the IDE to work in >>>>> headless mode. I'm trying to make this tool to only depend on the >>>>> interpreter, so no single component has to be installed for it to >>>>> work. This means implementing a custom option parser, and settings >>>>> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >>>>> and Fedora (and it's derivatives), so i will only be able to port the >>>>> code, but i can't test for any bugs or regressions. >>>>> >>>>> How does it works? It's really simple actually. You will see 2 >>>>> Makefiles included. the one named Makefile.1 should be used to install >>>>> the app in the first place. >>>>> >>>>> sudo make -f Makefile.1 install >>>>> >>>>> This command will build the project and install it (/usr/bin/gbmake). >>>>> The second Makefile only wraps the commands sent to "make" to >>>>> "gbmake". It's really the same, but we are all used to type make *, >>>>> aren't we? ;-) >>>>> >>>>> In this case, only adding this Makefile to a project will let "make" >>>>> work out of the box, otherwise, "gbmake" will work just fine. >>>>> >>>>> I will try to have the Debian part finished by the end of the week so >>>>> i can provide a working example, this is just a *proof of concept*, >>>>> and a call for everybody who would like to help. I'm a little skeptic >>>>> about merging this to trunk (even as a branch), as it's a work in >>>>> progress, and it will just confuse the users. Besides, 3.3 is around >>>>> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >>>>> >>>>> I'm really anxious to hear your comments! >>>>> >>>>> Thanks! >>>>> >>>>> [0] https://wiki.ubuntu.com/Quickly >>>>> >>>> >>>> Good idea, but the problem is code duplication between "gbmake" and the IDE. >>>> >>>> I suggest taking the code from the IDE instead of rewriting your own (or >>>> mix them if yours is better). >>>> >>> >>> Yep. You tried to rewrite things already done by the IDE, but you didn't >>> do it correctly. >>> >>> You should make a list of all project management features you need (how >>> to clean a project, how to compile it...), and I will centralize all >>> these features into an IDE module that will be able to be shared by the >>> gambas make utility. >>> >>> Regards, >>> >>> -- >>> Beno?t Minisini >>> >>> ------------------------------------------------------------------------------ >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. Discussions >>> will include endpoint security, mobile security and the latest in malware >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> Gambas-devel mailing list >>> Gambas-devel at lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/gambas-devel >> >> For the moment there *will* be code duplication, but in the end, using >> gbmake over the available implementations will require much less code. > > I think you don't understand : I don't want code duplication to save > lines of code. I don't want code duplication because you are doing > things incorrectly in gbmake. For example cleaning the project. > > As the IDE packager won't disappear, we must find a way to *not* > duplicate features like that, otherwise it will be become a nightmare to > maintain. > > So I proposed that all process that depends on the structure of the > project directory (which is *maintained* by the IDE) is put in a > specific module. Then that module will be shared between the IDE and the > gbmake project through a symbolic link. Wait! I thought you were talking about an exported module, but a symlink is way better than what i had in mind. > >> >> A few examples: >> >> I just finished the archlinux packaging module. If you take a look at >> the code the IDE uses to package it (more than 200 loc only to >> package, leaving dependency checks out), you will see a lot of >> "install" commands, conditionals that check what type of project we >> are dealing with, etc. >> With gbmake, we only need to execute 2 commands ("make" and "make >> install"). gbmake will itself check for dependencies (the package >> manager should do it, but if installed from source they have to be >> ignored), determine what type of project it is, and install the >> required files (this last part is not yet implemented, only basic >> installation") >> That 200 loc where reduced to just (fully abstracted) 80, *including >> dependency checks*. >> >> I'm planning the same with the debian part. There are more than 200 >> loc *only* to build a deb package. gbmake can do that by just >> "debianizing" a temporary folder ("gbmake debianize" will customize >> the files under debian/* using data prom the proejct configuration) >> and running "debuild -b", even from a terminal. >> >> I don't think gbmake should depend on a module inside the IDE, because >> we are missing the fact that it can run without a gui. > > This has no relation at all with GUI or not, and there is no dependency, > as we are sharing only source code! Once gbmake is compiled, it has no > dependency anymore on the IDE. > > But then we are sure that when gbmake wants to clean a project, it does > it the good way. And if the cleaning process changes, the gbmake source > code is automatically updated. Same as above. I'm not exactly sure how we should create this "shared" module(s). It's really hard to debug as some functions depend on an enormous tree of classes that would also have to be shared (dependency checking, project information, etc) and that can't just be symlinked inside gbmake. How are you planing to achieve this? > >> Besides, i'm >> trying to abstract specific code into separate modules, so that >> functions that deal with debian packages, for example, resides in a >> separate module that only gets called when needed (easier to code, >> easier to maintain). >> >>> I don't understand why you need two Makefiles. I imagine that the IDE >>> would automatically generate a Makefile file inside the source directory >>> with a configure script to detect that Gambas is installed. That way, >>> you just have to uncompress the Gambas source archive, run >>> './configure', 'make' and 'make install', and everything works as >>> expected. Is it what you have in mind? >> >> Makefile.1 was only included so that you can install the tool without >> much trouble. The other Makefile is a generic one, this should be put >> inside every project if you wish to run gbmake trough make, but that's >> optional. The configure script should *only* check if the gambas >> interpreter is installed, everything else is done automatically. > > Again, I don't understand what you have in mind. > > The configure script normally must check every dependency of the program > that is going to be compiled and installed. 'make' does the compilation, > and 'make install' does the installation. > > And I guess that standard behaviour is expected by the Ubuntu automatic > compilation and packaging process? You are right! I'm thinking of a configure script that performs the process in two steps. First it checks if the interpreter is installed, second, if the first step succeeded, call gbmake to check dependencies. It already does that internally, but i will add a special call to perform this checks. What do you think of this? > >> >> As i said on the first mail, that was just a proof of concept. I'm >> rewriting most of the packaging code (while still adding some missing >> features), but still using some parts of it. It will take some time to >> get it to work stable enough to be merged. >> >> I will send another source package once i finish the debian module, so >> those who want can play with it. > > As for letting gbmake creating binary packages, ok. But again, the > packaging code in the IDE is not dependent on the GUI, and I don't > understand why you want to rewrite it, as AFAIK, it works. Why not just > sharing it and using it? I'm not rewriting every bit of it, i'm just adapting and expanding where i see some missing features. The Archlinux packages, for example, lacks appropriate handling of the project's license. The wiki states that licenses should be treated in a certain way, and the IDE was to complying with that. They are really just paper cuts, but fixing them outside of the packaging code the IDE uses is way easier. The debian folder, again, is created on a file by file basis. The IDE should use dh_make and adapt the initial template of files.That's just for a start, i only started reviewing this yesterday. This will *definitely* miss the 3.3 release. We will see how it goes for 3.4 Thanks! > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From sebikul at ...176... Thu Sep 6 06:52:15 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Thu, 6 Sep 2012 01:52:15 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <50481BE2.1060903@...1...> References: <50481BE2.1060903@...1...> Message-ID: On Thu, Sep 6, 2012 at 12:43 AM, Beno?t Minisini wrote: > Hi, > > I'd like to know how Gambas 3.3 could be released, and I need a few > answers! :-) > > For Tobias > ---------- > > What is the state of gb.ncurses? Can it be marked as "Not finished" > instead of "Unstable"? > > When will you rename gb.adt? And same question about its state: can it > be marked as "Not finished" instead of "Unstable"? > > For information: "Unstable" means "don't use it", while "Not finished" > means that the public interface can be used, compatibility will be > ensured, but some important features are still missing. > > For Sebastian > ------------- > > gb.mime is 90% finished and usable. Did you test it with Pop3Client? > Will you clean the Pop3Client source code (many Debug instruction are > still present) and mark it as "Stable"? I just updated the component. I commented most debug instructions, only one missing (i will remove it once the following issue is resolved). Messages now inherit MIMEMessage. It works like a charm, great work!! There is only one bug keeping it as unstable. If you test the _next implementation (For Each) it will crash when trying to read from Enum.Index. There is a really simple example commented out in MTest.module. I don't know if it's something i did wrong, or if i'm doing something i'm not allowed to do (like initialize Enum.Index at 1). Could you please test it? > > I plan to rewrite SmtpClient entirely in Gambas as you did with > Pop3Client, merge the two, based them on gb.mime. > > But not necessarily for Gambas 3.3, because compatibility with the old > SmtpClient must be maintained. I have to find a mechanism to be able to > remove gb.net.smtp without breaking programs using it. > > After your mail, I don't think gbmake will be release with that version, > but the next one. > > For Fabien > ---------- > > Do you have some needed tasks on gb.report? Or maybe gb.chart? > > Personnally, I just want to rewrite gb.option entirely in Gambas because > its creator has disappeared. So we have a little time. > > Thanks for your collaboration! > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel Thanks! From gambas.fr at ...176... Thu Sep 6 12:02:35 2012 From: gambas.fr at ...176... (Fabien Bodard) Date: Thu, 6 Sep 2012 12:02:35 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> Message-ID: For gb.report no new things since December as I will not have time for that ... I'm just making some doc so users can tell me what is theire experience with it and then what they need. For gb.chart I've begin a full rewrite... But it will not be ready before the 3.3 release. I plan for it to use a class for each chart type that inherit a base One. And a dataclass for storing data's. And drawing with paint class. Le 6 sept. 2012 06:52, "Sebastian Kulesz" a ?crit : > On Thu, Sep 6, 2012 at 12:43 AM, Beno?t Minisini > wrote: > > Hi, > > > > I'd like to know how Gambas 3.3 could be released, and I need a few > > answers! :-) > > > > For Tobias > > ---------- > > > > What is the state of gb.ncurses? Can it be marked as "Not finished" > > instead of "Unstable"? > > > > When will you rename gb.adt? And same question about its state: can it > > be marked as "Not finished" instead of "Unstable"? > > > > For information: "Unstable" means "don't use it", while "Not finished" > > means that the public interface can be used, compatibility will be > > ensured, but some important features are still missing. > > > > For Sebastian > > ------------- > > > > gb.mime is 90% finished and usable. Did you test it with Pop3Client? > > Will you clean the Pop3Client source code (many Debug instruction are > > still present) and mark it as "Stable"? > > I just updated the component. I commented most debug instructions, > only one missing (i will remove it once the following issue is > resolved). Messages now inherit MIMEMessage. It works like a charm, > great work!! > > There is only one bug keeping it as unstable. If you test the _next > implementation (For Each) it will crash when trying to read from > Enum.Index. There is a really simple example commented out in > MTest.module. I don't know if it's something i did wrong, or if i'm > doing something i'm not allowed to do (like initialize Enum.Index at > 1). Could you please test it? > > > > > I plan to rewrite SmtpClient entirely in Gambas as you did with > > Pop3Client, merge the two, based them on gb.mime. > > > > But not necessarily for Gambas 3.3, because compatibility with the old > > SmtpClient must be maintained. I have to find a mechanism to be able to > > remove gb.net.smtp without breaking programs using it. > > > > After your mail, I don't think gbmake will be release with that version, > > but the next one. > > > > For Fabien > > ---------- > > > > Do you have some needed tasks on gb.report? Or maybe gb.chart? > > > > Personnally, I just want to rewrite gb.option entirely in Gambas because > > its creator has disappeared. So we have a little time. > > > > Thanks for your collaboration! > > > > Regards, > > > > -- > > Beno?t Minisini > > > > > ------------------------------------------------------------------------------ > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > Gambas-devel mailing list > > Gambas-devel at lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/gambas-devel > > Thanks! > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gambas at ...1... Thu Sep 6 16:08:28 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 16:08:28 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> Message-ID: <5048AE5C.2020603@...1...> Le 06/09/2012 06:52, Sebastian Kulesz a ?crit : > > I just updated the component. I commented most debug instructions, > only one missing (i will remove it once the following issue is > resolved). Messages now inherit MIMEMessage. It works like a charm, > great work!! _Pop3Client_Message must not inherit MIMEMessage, because it is a virtual class (beginning with a "_"). The idea is not stupid by itself, but then creating a _Pop3Client_Message automatically makes it load the message and parse it! Which is not a good idea at all, as you may want to list messages without loading them and parsing them. I will remove that stuff. -- Beno?t Minisini From gambas at ...1... Thu Sep 6 16:11:42 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 16:11:42 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <5048AE5C.2020603@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> Message-ID: <5048AF1E.60300@...1...> Le 06/09/2012 16:08, Beno?t Minisini a ?crit : > Le 06/09/2012 06:52, Sebastian Kulesz a ?crit : >> >> I just updated the component. I commented most debug instructions, >> only one missing (i will remove it once the following issue is >> resolved). Messages now inherit MIMEMessage. It works like a charm, >> great work!! > > _Pop3Client_Message must not inherit MIMEMessage, because it is a > virtual class (beginning with a "_"). > > The idea is not stupid by itself, but then creating a > _Pop3Client_Message automatically makes it load the message and parse > it! Which is not a good idea at all, as you may want to list messages > without loading them and parsing them. > > I will remove that stuff. > What's that horror in the source code of Pop3Client._get() ? "If msgid = 0 Then msgid = 1" -- Beno?t Minisini From gambas at ...1... Thu Sep 6 16:14:42 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 16:14:42 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <5048AF1E.60300@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> Message-ID: <5048AFD2.8000908@...1...> Le 06/09/2012 16:11, Beno?t Minisini a ?crit : > Le 06/09/2012 16:08, Beno?t Minisini a ?crit : >> Le 06/09/2012 06:52, Sebastian Kulesz a ?crit : >>> >>> I just updated the component. I commented most debug instructions, >>> only one missing (i will remove it once the following issue is >>> resolved). Messages now inherit MIMEMessage. It works like a charm, >>> great work!! >> >> _Pop3Client_Message must not inherit MIMEMessage, because it is a >> virtual class (beginning with a "_"). >> >> The idea is not stupid by itself, but then creating a >> _Pop3Client_Message automatically makes it load the message and parse >> it! Which is not a good idea at all, as you may want to list messages >> without loading them and parsing them. >> >> I will remove that stuff. >> > > What's that horror in the source code of Pop3Client._get() ? > > "If msgid = 0 Then msgid = 1" > The mail index should go from 0 to Count - 1, as any other collection in Gambas! -- Beno?t Minisini From tobias at ...692... Thu Sep 6 16:36:29 2012 From: tobias at ...692... (Tobias Boege) Date: Thu, 6 Sep 2012 16:36:29 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <50481BE2.1060903@...1...> References: <50481BE2.1060903@...1...> Message-ID: <20120906143628.GA539@...693...> On Thu, 06 Sep 2012, Beno?t Minisini wrote: > Hi, > > I'd like to know how Gambas 3.3 could be released, and I need a few > answers! :-) > > For Tobias > ---------- > > What is the state of gb.ncurses? Can it be marked as "Not finished" > instead of "Unstable"? > > When will you rename gb.adt? And same question about its state: can it > be marked as "Not finished" instead of "Unstable"? > > For information: "Unstable" means "don't use it", while "Not finished" > means that the public interface can be used, compatibility will be > ensured, but some important features are still missing. > I didn't commit anything to gb.ncurses in the holidays as I intended - sadly. It is still "Unstable" in my eyes. I must rewrite the Window class entirely in CDK and finish the NoDelay mode (for which I have a plan now. The last resort, but I saw this approach in librote[0] and just put it in now... Until I find the right words for the bug-ncurses mailing list...) All in all: unstable, I think. In my working copy, it is already set up to gb.data with "Not finished". Next commit will optimise List class and push the information. As we will go on class trip on monday, I strongly intend to finish the latter until then. Regards, Tobi [0] http://rote.sourceforge.net/ From gambas at ...1... Thu Sep 6 17:06:28 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 17:06:28 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> Message-ID: <5048BBF4.40301@...1...> Le 06/09/2012 06:52, Sebastian Kulesz a ?crit : > > There is only one bug keeping it as unstable. If you test the _next > implementation (For Each) it will crash when trying to read from > Enum.Index. There is a really simple example commented out in > MTest.module. I don't know if it's something i did wrong, or if i'm > doing something i'm not allowed to do (like initialize Enum.Index at > 1). Could you please test it? > I'm currently on that... -- Beno?t Minisini From gambas at ...1... Thu Sep 6 18:46:42 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 18:46:42 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <5048AFD2.8000908@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> Message-ID: <5048D372.7090604@...1...> Le 06/09/2012 16:14, Beno?t Minisini a ?crit : > Le 06/09/2012 16:11, Beno?t Minisini a ?crit : >> Le 06/09/2012 16:08, Beno?t Minisini a ?crit : >>> Le 06/09/2012 06:52, Sebastian Kulesz a ?crit : >>>> >>>> I just updated the component. I commented most debug instructions, >>>> only one missing (i will remove it once the following issue is >>>> resolved). Messages now inherit MIMEMessage. It works like a charm, >>>> great work!! >>> >>> _Pop3Client_Message must not inherit MIMEMessage, because it is a >>> virtual class (beginning with a "_"). >>> >>> The idea is not stupid by itself, but then creating a >>> _Pop3Client_Message automatically makes it load the message and parse >>> it! Which is not a good idea at all, as you may want to list messages >>> without loading them and parsing them. >>> >>> I will remove that stuff. >>> >> >> What's that horror in the source code of Pop3Client._get() ? >> >> "If msgid = 0 Then msgid = 1" >> > > The mail index should go from 0 to Count - 1, as any other collection in > Gambas! > OK, the POP3 component has been cleaned up! I have fixed the interpreter bug in enumeration management. That bug was there since years! While testing the component with gmail, I found tons of bugs and fixed them. I don't want you to be sued by Gambas users because you lost their mails. :-) Please test more when you develop the 'gbmake' tool. I think now the component should be stable enough. I tested it with gmail which use SSL encryption. If you could test it with your account that seems to not be encrypted and tell me that it's ok for you. Of course other people can test it too before the Gambas 3.3 release. It would be a good idea. :-) Regards, -- Beno?t Minisini From sebikul at ...176... Thu Sep 6 22:28:20 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Thu, 6 Sep 2012 17:28:20 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <5048D372.7090604@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> Message-ID: On Thu, Sep 6, 2012 at 1:46 PM, Beno?t Minisini wrote: > Le 06/09/2012 16:14, Beno?t Minisini a ?crit : >> Le 06/09/2012 16:11, Beno?t Minisini a ?crit : >>> Le 06/09/2012 16:08, Beno?t Minisini a ?crit : >>>> Le 06/09/2012 06:52, Sebastian Kulesz a ?crit : >>>>> >>>>> I just updated the component. I commented most debug instructions, >>>>> only one missing (i will remove it once the following issue is >>>>> resolved). Messages now inherit MIMEMessage. It works like a charm, >>>>> great work!! >>>> >>>> _Pop3Client_Message must not inherit MIMEMessage, because it is a >>>> virtual class (beginning with a "_"). >>>> >>>> The idea is not stupid by itself, but then creating a >>>> _Pop3Client_Message automatically makes it load the message and parse >>>> it! Which is not a good idea at all, as you may want to list messages >>>> without loading them and parsing them. >>>> >>>> I will remove that stuff. >>>> >>> >>> What's that horror in the source code of Pop3Client._get() ? >>> >>> "If msgid = 0 Then msgid = 1" >>> >> >> The mail index should go from 0 to Count - 1, as any other collection in >> Gambas! >> > > OK, the POP3 component has been cleaned up! > > I have fixed the interpreter bug in enumeration management. That bug was > there since years! > > While testing the component with gmail, I found tons of bugs and fixed > them. I don't want you to be sued by Gambas users because you lost their > mails. :-) Please test more when you develop the 'gbmake' tool. > > I think now the component should be stable enough. I tested it with > gmail which use SSL encryption. > > If you could test it with your account that seems to not be encrypted > and tell me that it's ok for you. > > Of course other people can test it too before the Gambas 3.3 release. It > would be a good idea. :-) > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel I like the changes, it works flawlessly now!! Tested with unencrypted account too. no bugs so far. I couldn't test it using my gmail account because i use 2-factor auth, so i needed to create a new key each time i wanted to test. One question tough; what is the use of Abort() if it doesn't roll back any changes? Shouldn't it call Reset() before disconnecting, otherwise it's almost the same as Close(). I would also like to implement the APOP, but i need to hash a string with md5. Is there a more native way of obtaining an md5 hexdigest than calling md5sum or openssl with Exec? From gambas at ...1... Thu Sep 6 22:35:44 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 06 Sep 2012 22:35:44 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> Message-ID: <50490920.6060004@...1...> Le 06/09/2012 22:28, Sebastian Kulesz a ?crit : > > I like the changes, I hope so. :-) > it works flawlessly now!! Tested with unencrypted account too. no > bugs so far. I couldn't test it using my gmail account because i use > 2-factor auth, so i needed to create a new key each time i wanted to > test. > > One question tough; what is the use of Abort() if it doesn't roll > back any changes? > Shouldn't it call Reset() before disconnecting, > otherwise it's almost the same as Close(). Actually it closes the connection without emitting the QUIT command, so normally nothing is changed on the server. Or am I wrong? Do I need to call Reset() ? > > I would also like to implement the APOP, but i need to hash a string > with md5. Is there a more native way of obtaining an md5 hexdigest > than calling md5sum or openssl with Exec? > No, there is no MD5 computation routine in Gambas at the moment. -- Beno?t Minisini From sebikul at ...176... Thu Sep 6 22:53:15 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Thu, 6 Sep 2012 17:53:15 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <50490920.6060004@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> Message-ID: On Thu, Sep 6, 2012 at 5:35 PM, Beno?t Minisini wrote: > Le 06/09/2012 22:28, Sebastian Kulesz a ?crit : >> >> I like the changes, > > I hope so. :-) > >> it works flawlessly now!! Tested with unencrypted account too. no >> bugs so far. I couldn't test it using my gmail account because i use >> 2-factor auth, so i needed to create a new key each time i wanted to >> test. >> >> One question tough; what is the use of Abort() if it doesn't roll >> back any changes? >> Shouldn't it call Reset() before disconnecting, >> otherwise it's almost the same as Close(). > > Actually it closes the connection without emitting the QUIT command, so > normally nothing is changed on the server. Or am I wrong? Do I need to > call Reset() ? No, you are right. According to the specs, if QUIT is never issued, then the inbox must be left intact. If there is any deletion, that must be a server bug, not ours. I believe it's complete now, at the exception of the APOP command, but it's optional. The only thing missing is the documentation. > >> >> I would also like to implement the APOP, but i need to hash a string >> with md5. Is there a more native way of obtaining an md5 hexdigest >> than calling md5sum or openssl with Exec? >> > > No, there is no MD5 computation routine in Gambas at the moment. > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From sebikul at ...176... Fri Sep 7 07:17:12 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 7 Sep 2012 02:17:12 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: <5047A192.5000300@...1...> References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> Message-ID: On Wed, Sep 5, 2012 at 4:01 PM, Beno?t Minisini wrote: > Le 05/09/2012 13:43, Beno?t Minisini a ?crit : >> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >>> Hi all !! >>> >>> I really think Gambas is a great language to work with, but lets face >>> it, from the point of view of a beginner, distributing an application >>> is a pain in the a**. There is no *standard* way to build a project >>> (other than executing gbc3/gba3 directly if we let the IDE aside), >>> this makes it difficult to create debian packages, PPAs, etc. as they >>> all require some sort of autoconf script to manage the process. >>> Without the IDE, an user can do much. And with it, this implies >>> installing every component it depends on (a total of 15). >>> >>> To create a PPA of a gambas application, for example, the user has 2 >>> choices. He can either write a Makefile (more bugs, no portability, >>> etc) or create a dummy autoconf package, skim the files and replace >>> what is needed (package name, version, etc), and merge it with his >>> project. >>> >>> These are really just a few examples of the problems i faced not so >>> long ago. With this in mind, i created this little tool to automate >>> the building of gambas apps. It works as a *drop in* replacement for >>> make (*seriously*, you can run "make", "make clean", and "sudo make >>> install" without a single script, autoconf, automake, m4 macro). >>> >>> I also wrote the app with Quickly [0] in mind. For example, if you >>> want to debianize a project, you can run "gbmake debianize" or just >>> "make debianize" and that is it. It will automatically create a >>> skeleton debian/ folder which should work out-of-the-box. Maybe a >>> "make source" to create a source archive? >>> >>> I just started it today, so only the building process is really >>> implemented (build, clean, install) but I really see a lot of >>> potential here. Once it's completed, the autotools package may be >>> dropped (it will be completely replaced and the user will have to do >>> nothing). Uploading packages to a PPA will be much easier. Users won't >>> depend on the IDE to perform administrative tasks, such as building a >>> package or a source archive. >>> >>> I will need some help to port the packaging code in the IDE to work in >>> headless mode. I'm trying to make this tool to only depend on the >>> interpreter, so no single component has to be installed for it to >>> work. This means implementing a custom option parser, and settings >>> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >>> and Fedora (and it's derivatives), so i will only be able to port the >>> code, but i can't test for any bugs or regressions. >>> >>> How does it works? It's really simple actually. You will see 2 >>> Makefiles included. the one named Makefile.1 should be used to install >>> the app in the first place. >>> >>> sudo make -f Makefile.1 install >>> >>> This command will build the project and install it (/usr/bin/gbmake). >>> The second Makefile only wraps the commands sent to "make" to >>> "gbmake". It's really the same, but we are all used to type make *, >>> aren't we? ;-) >>> >>> In this case, only adding this Makefile to a project will let "make" >>> work out of the box, otherwise, "gbmake" will work just fine. >>> >>> I will try to have the Debian part finished by the end of the week so >>> i can provide a working example, this is just a *proof of concept*, >>> and a call for everybody who would like to help. I'm a little skeptic >>> about merging this to trunk (even as a branch), as it's a work in >>> progress, and it will just confuse the users. Besides, 3.3 is around >>> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >>> >>> I'm really anxious to hear your comments! >>> >>> Thanks! >>> >>> [0] https://wiki.ubuntu.com/Quickly >>> >> >> Good idea, but the problem is code duplication between "gbmake" and the IDE. >> >> I suggest taking the code from the IDE instead of rewriting your own (or >> mix them if yours is better). >> > > Yep. You tried to rewrite things already done by the IDE, but you didn't > do it correctly. > > You should make a list of all project management features you need (how > to clean a project, how to compile it...), and I will centralize all > these features into an IDE module that will be able to be shared by the > gambas make utility. > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel Okey, here is an initial list. This will let me implement the basic set of functions to dump the autotools package. --- Loading .project file to retrieve project type, properties, components it depends on, etc. Listing installed components Compile a project (the options are passed from the Application.Args array, so there should be a parameter for every option it accepts) Package a project once it has been compiled Clean a project source tree Create a source archive (the output directory should be passed as argument, defaults at the cwd, or project root folder) Generate a .desktop file based on options from the .project file (the output directory should be passed as argument, defaults at the cwd) --- As for the packaging functions, IMO, it would be better to rewrite them. Please, let me explain first!! Archlinux was not so bad, i took the MakeArchPackage and updated little parts of the code. It's already finished. the output is "pretty" printed, the code is easier to read, and works really well. Debian is another story. It may "work" well, but in the bottom it's full of bugs that are not so evident. What i dislike the most about it is that is *assumes* that the deb it is producing will work on any distro. Firstly, every file inside the debian/ directory is manually created. It is also using an outdated (but still supported) format, as it specifies debhelper's minimum version as 5, when the debian maintainer guide recommends using version 7 (available since lucid or squeeze). Second, it specifies the directories and files the package will hold, when they should be recognized automatically when building the package. What about gb.jit? a supported version of llvm is only available in quantal or wheezy, which is yet to be released! I know this is only a paper cut with an easy fix, but every package has the same description! "This program is written in Gambas" The rules file can be replaced by the one available in the dh_make template and the standards version should be upgraded. This are just some of the things i could find while skimming the code. I will leave the packaging aside until we can work something out, and finish the "autotools" implementation. It's late now, I will send an updated source archive tomorrow so you can catch up. Bye! From sebikul at ...176... Fri Sep 7 23:23:44 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 7 Sep 2012 18:23:44 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> Message-ID: On Thu, Sep 6, 2012 at 5:53 PM, Sebastian Kulesz wrote: > On Thu, Sep 6, 2012 at 5:35 PM, Beno?t Minisini > wrote: >> Le 06/09/2012 22:28, Sebastian Kulesz a ?crit : >>> >>> I like the changes, >> >> I hope so. :-) >> >>> it works flawlessly now!! Tested with unencrypted account too. no >>> bugs so far. I couldn't test it using my gmail account because i use >>> 2-factor auth, so i needed to create a new key each time i wanted to >>> test. >>> >>> One question tough; what is the use of Abort() if it doesn't roll >>> back any changes? >>> Shouldn't it call Reset() before disconnecting, >>> otherwise it's almost the same as Close(). >> >> Actually it closes the connection without emitting the QUIT command, so >> normally nothing is changed on the server. Or am I wrong? Do I need to >> call Reset() ? > > No, you are right. According to the specs, if QUIT is never issued, > then the inbox must be left intact. If there is any deletion, that > must be a server bug, not ours. > > I believe it's complete now, at the exception of the APOP command, but > it's optional. The only thing missing is the documentation. > >> >>> >>> I would also like to implement the APOP, but i need to hash a string >>> with md5. Is there a more native way of obtaining an md5 hexdigest >>> than calling md5sum or openssl with Exec? >>> >> >> No, there is no MD5 computation routine in Gambas at the moment. >> >> -- >> Beno?t Minisini >> >> ------------------------------------------------------------------------------ >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. Discussions >> will include endpoint security, mobile security and the latest in malware >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel Hi Beno?t. Is gmime-2.6 strictly required? Using it restricts the gb.mime component to Ubuntu precise and quantal, leaving all others without the gb.mime, gb.net.pop3 and the gb.net.smtp when rewritten. Not sure about Debian, or other distros, but they are surely affected. Can gmime-2.4 be used? From gambas at ...1... Fri Sep 7 23:30:16 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Fri, 07 Sep 2012 23:30:16 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> Message-ID: <504A6768.3040602@...1...> Le 07/09/2012 23:23, Sebastian Kulesz a ?crit : > > Hi Beno?t. Is gmime-2.6 strictly required? > > Using it restricts the gb.mime component to Ubuntu precise and > quantal, leaving all others without the gb.mime, gb.net.pop3 and the > gb.net.smtp when rewritten. Not sure about Debian, or other distros, > but they are surely affected. > > Can gmime-2.4 be used? > I don't know, I didn't test. I'm on Ubuntu precise. The library version is inside the package name: you have to change it in the configure.ac file to test with gmime-2.4. Regards, -- Beno?t Minisini From sebikul at ...176... Sat Sep 8 02:38:07 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 7 Sep 2012 21:38:07 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <504A6768.3040602@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> Message-ID: On Fri, Sep 7, 2012 at 6:30 PM, Beno?t Minisini wrote: > Le 07/09/2012 23:23, Sebastian Kulesz a ?crit : >> >> Hi Beno?t. Is gmime-2.6 strictly required? >> >> Using it restricts the gb.mime component to Ubuntu precise and >> quantal, leaving all others without the gb.mime, gb.net.pop3 and the >> gb.net.smtp when rewritten. Not sure about Debian, or other distros, >> but they are surely affected. >> >> Can gmime-2.4 be used? >> > > I don't know, I didn't test. I'm on Ubuntu precise. > > The library version is inside the package name: you have to change it in > the configure.ac file to test with gmime-2.4. > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel I did some basic testing and it works fine. There is a compile warning, but that's it. Is there a way to automatically fallback to gmime-2.4 or should i make a patch for older distributions? Thanks1 From gambas at ...1... Sat Sep 8 02:42:43 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 08 Sep 2012 02:42:43 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> Message-ID: <504A9483.5090901@...1...> Le 08/09/2012 02:38, Sebastian Kulesz a ?crit : > > I did some basic testing and it works fine. There is a compile > warning, but that's it. > > Is there a way to automatically fallback to gmime-2.4 or should i make > a patch for older distributions? > > Thanks1 > That's the problem... The library is in the package name, and I don't know yet how to tell my scripts that I want either gmime-2.4 or gmime-2.6... -- Beno?t Minisini From sebikul at ...176... Sat Sep 8 02:47:19 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 7 Sep 2012 21:47:19 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <504A9483.5090901@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> <504A9483.5090901@...1...> Message-ID: On Fri, Sep 7, 2012 at 9:42 PM, Beno?t Minisini wrote: > Le 08/09/2012 02:38, Sebastian Kulesz a ?crit : >> >> I did some basic testing and it works fine. There is a compile >> warning, but that's it. >> >> Is there a way to automatically fallback to gmime-2.4 or should i make >> a patch for older distributions? >> >> Thanks1 >> > > That's the problem... The library is in the package name, and I don't > know yet how to tell my scripts that I want either gmime-2.4 or gmime-2.6... > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel Hmm, i see. I will create a patch for now so i can get the new revisions to build again. Users will be able to install for lucid, natty, and oneiric from the daily builds PPA but gb.mime will fail when compiling from source. From gambas at ...1... Sat Sep 8 02:51:04 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 08 Sep 2012 02:51:04 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> <504A9483.5090901@...1...> Message-ID: <504A9678.9090304@...1...> Le 08/09/2012 02:47, Sebastian Kulesz a ?crit : > > Hmm, i see. I will create a patch for now so i can get the new > revisions to build again. Users will be able to install for lucid, > natty, and oneiric from the daily builds PPA but gb.mime will fail > when compiling from source. > I'm currently trying to test gmime-2.6 and then gmime-2.4 if the first one is not present. I have not succeeded yet... -- Beno?t Minisini From gambas at ...1... Sat Sep 8 02:57:52 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 08 Sep 2012 02:57:52 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <504A9678.9090304@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> <504A9483.5090901@...1...> <504A9678.9090304@...1...> Message-ID: <504A9810.3050305@...1...> Le 08/09/2012 02:51, Beno?t Minisini a ?crit : > Le 08/09/2012 02:47, Sebastian Kulesz a ?crit : >> >> Hmm, i see. I will create a patch for now so i can get the new >> revisions to build again. Users will be able to install for lucid, >> natty, and oneiric from the daily builds PPA but gb.mime will fail >> when compiling from source. >> > > I'm currently trying to test gmime-2.6 and then gmime-2.4 if the first > one is not present. I have not succeeded yet... > OK! Can you try to test revision #5142 and tell me if it works? I'm testing gmime-2.4 if gmime-2.6 is not detected. -- Beno?t Minisini From sebikul at ...176... Sat Sep 8 03:11:33 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 7 Sep 2012 22:11:33 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <504A9810.3050305@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> <504A9483.5090901@...1...> <504A9678.9090304@...1...> <504A9810.3050305@...1...> Message-ID: On Fri, Sep 7, 2012 at 9:57 PM, Beno?t Minisini wrote: > Le 08/09/2012 02:51, Beno?t Minisini a ?crit : >> Le 08/09/2012 02:47, Sebastian Kulesz a ?crit : >>> >>> Hmm, i see. I will create a patch for now so i can get the new >>> revisions to build again. Users will be able to install for lucid, >>> natty, and oneiric from the daily builds PPA but gb.mime will fail >>> when compiling from source. >>> >> >> I'm currently trying to test gmime-2.6 and then gmime-2.4 if the first >> one is not present. I have not succeeded yet... >> > > OK! Can you try to test revision #5142 and tell me if it works? I'm > testing gmime-2.4 if gmime-2.6 is not detected. > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel I just forced a code import and a rebuild for lucid. There is a big queue tough, it will take a few hours. If it goes okay, i will pump the version of the packages to 3.3. From sebikul at ...176... Sat Sep 8 07:57:57 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 8 Sep 2012 02:57:57 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> Message-ID: On Fri, Sep 7, 2012 at 2:17 AM, Sebastian Kulesz wrote: > On Wed, Sep 5, 2012 at 4:01 PM, Beno?t Minisini > wrote: >> Le 05/09/2012 13:43, Beno?t Minisini a ?crit : >>> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >>>> Hi all !! >>>> >>>> I really think Gambas is a great language to work with, but lets face >>>> it, from the point of view of a beginner, distributing an application >>>> is a pain in the a**. There is no *standard* way to build a project >>>> (other than executing gbc3/gba3 directly if we let the IDE aside), >>>> this makes it difficult to create debian packages, PPAs, etc. as they >>>> all require some sort of autoconf script to manage the process. >>>> Without the IDE, an user can do much. And with it, this implies >>>> installing every component it depends on (a total of 15). >>>> >>>> To create a PPA of a gambas application, for example, the user has 2 >>>> choices. He can either write a Makefile (more bugs, no portability, >>>> etc) or create a dummy autoconf package, skim the files and replace >>>> what is needed (package name, version, etc), and merge it with his >>>> project. >>>> >>>> These are really just a few examples of the problems i faced not so >>>> long ago. With this in mind, i created this little tool to automate >>>> the building of gambas apps. It works as a *drop in* replacement for >>>> make (*seriously*, you can run "make", "make clean", and "sudo make >>>> install" without a single script, autoconf, automake, m4 macro). >>>> >>>> I also wrote the app with Quickly [0] in mind. For example, if you >>>> want to debianize a project, you can run "gbmake debianize" or just >>>> "make debianize" and that is it. It will automatically create a >>>> skeleton debian/ folder which should work out-of-the-box. Maybe a >>>> "make source" to create a source archive? >>>> >>>> I just started it today, so only the building process is really >>>> implemented (build, clean, install) but I really see a lot of >>>> potential here. Once it's completed, the autotools package may be >>>> dropped (it will be completely replaced and the user will have to do >>>> nothing). Uploading packages to a PPA will be much easier. Users won't >>>> depend on the IDE to perform administrative tasks, such as building a >>>> package or a source archive. >>>> >>>> I will need some help to port the packaging code in the IDE to work in >>>> headless mode. I'm trying to make this tool to only depend on the >>>> interpreter, so no single component has to be installed for it to >>>> work. This means implementing a custom option parser, and settings >>>> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >>>> and Fedora (and it's derivatives), so i will only be able to port the >>>> code, but i can't test for any bugs or regressions. >>>> >>>> How does it works? It's really simple actually. You will see 2 >>>> Makefiles included. the one named Makefile.1 should be used to install >>>> the app in the first place. >>>> >>>> sudo make -f Makefile.1 install >>>> >>>> This command will build the project and install it (/usr/bin/gbmake). >>>> The second Makefile only wraps the commands sent to "make" to >>>> "gbmake". It's really the same, but we are all used to type make *, >>>> aren't we? ;-) >>>> >>>> In this case, only adding this Makefile to a project will let "make" >>>> work out of the box, otherwise, "gbmake" will work just fine. >>>> >>>> I will try to have the Debian part finished by the end of the week so >>>> i can provide a working example, this is just a *proof of concept*, >>>> and a call for everybody who would like to help. I'm a little skeptic >>>> about merging this to trunk (even as a branch), as it's a work in >>>> progress, and it will just confuse the users. Besides, 3.3 is around >>>> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >>>> >>>> I'm really anxious to hear your comments! >>>> >>>> Thanks! >>>> >>>> [0] https://wiki.ubuntu.com/Quickly >>>> >>> >>> Good idea, but the problem is code duplication between "gbmake" and the IDE. >>> >>> I suggest taking the code from the IDE instead of rewriting your own (or >>> mix them if yours is better). >>> >> >> Yep. You tried to rewrite things already done by the IDE, but you didn't >> do it correctly. >> >> You should make a list of all project management features you need (how >> to clean a project, how to compile it...), and I will centralize all >> these features into an IDE module that will be able to be shared by the >> gambas make utility. >> >> Regards, >> >> -- >> Beno?t Minisini >> >> ------------------------------------------------------------------------------ >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. Discussions >> will include endpoint security, mobile security and the latest in malware >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel > > Okey, here is an initial list. This will let me implement the basic > set of functions to dump the autotools package. > > --- > Loading .project file to retrieve project type, properties, components > it depends on, etc. > Listing installed components > > Compile a project (the options are passed from the Application.Args > array, so there should be a parameter for every option it accepts) > Package a project once it has been compiled > Clean a project source tree > Create a source archive (the output directory should be passed as > argument, defaults at the cwd, or project root folder) > > Generate a .desktop file based on options from the .project file (the > output directory should be passed as argument, defaults at the cwd) > > --- > As for the packaging functions, IMO, it would be better to rewrite > them. Please, let me explain first!! > Archlinux was not so bad, i took the MakeArchPackage and updated > little parts of the code. It's already finished. the output is > "pretty" printed, the code is easier to read, and works really well. > > Debian is another story. It may "work" well, but in the bottom it's > full of bugs that are not so evident. What i dislike the most about it > is that is *assumes* that the deb it is producing will work on any > distro. > Firstly, every file inside the debian/ directory is manually created. > It is also using an outdated (but still supported) format, as it > specifies debhelper's minimum version as 5, when the debian maintainer > guide recommends using version 7 (available since lucid or squeeze). > Second, it specifies the directories and files the package will hold, > when they should be recognized automatically when building the > package. > What about gb.jit? a supported version of llvm is only available in > quantal or wheezy, which is yet to be released! > > I know this is only a paper cut with an easy fix, but every package > has the same description! "This program is written in Gambas" > > The rules file can be replaced by the one available in the dh_make > template and the standards version should be upgraded. > > This are just some of the things i could find while skimming the code. > I will leave the packaging aside until we can work something out, and > finish the "autotools" implementation. It's late now, I will send an > updated source archive tomorrow so you can catch up. > > Bye! Here is a tiny update. PLEASE ignore the packaging modules, i'm waiting for this common module, but still wanted to sketch some things beforehand (only the Archlinux module is usable if you have the tool installed). I would like you to take a look at the Compiler and Installer module. Most importantly to the later. There is some duplicate code that i had to port so i could properly test it, please ignore it too. I wanted to know if the installer and compiler are well written, and what would you change. I know there is a *lot* of cleanup to do, but i mean the algorithm. Am i missing any file? Anything! I know it works, in fact, i'm already using it to manage the project, compiling and installing it, even the source package was created using gbmake. -------------- next part -------------- A non-text attachment was scrubbed... Name: gbmake-0.0.1.tar.gz Type: application/x-gzip Size: 10710 bytes Desc: not available URL: From gambas at ...1... Sat Sep 8 10:01:41 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 08 Sep 2012 10:01:41 +0200 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> <504A9483.5090901@...1...> <504A9678.9090304@...1...> <504A9810.3050305@...1...> Message-ID: <504AFB65.9090502@...1...> Le 08/09/2012 03:11, Sebastian Kulesz a ?crit : > > I just forced a code import and a rebuild for lucid. There is a big > queue tough, it will take a few hours. If it goes okay, i will pump > the version of the packages to 3.3. > This is not 3.3 official yet, just a 3.2.90 with its version number changed. I'm waiting for Tobias changes... Regards, -- Beno?t Minisini From sebikul at ...176... Mon Sep 10 02:14:16 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sun, 9 Sep 2012 21:14:16 -0300 Subject: [Gambas-devel] Release of Gambas 3.3 In-Reply-To: <504AFB65.9090502@...1...> References: <50481BE2.1060903@...1...> <5048AE5C.2020603@...1...> <5048AF1E.60300@...1...> <5048AFD2.8000908@...1...> <5048D372.7090604@...1...> <50490920.6060004@...1...> <504A6768.3040602@...1...> <504A9483.5090901@...1...> <504A9678.9090304@...1...> <504A9810.3050305@...1...> <504AFB65.9090502@...1...> Message-ID: On Sat, Sep 8, 2012 at 5:01 AM, Beno?t Minisini wrote: > Le 08/09/2012 03:11, Sebastian Kulesz a ?crit : >> >> I just forced a code import and a rebuild for lucid. There is a big >> queue tough, it will take a few hours. If it goes okay, i will bump >> the version of the packages to 3.3. >> > > This is not 3.3 official yet, just a 3.2.90 with its version number > changed. I'm waiting for Tobias changes... > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel I updated the PPA, your fix seems to work fine. I also updated the man pages and renamed the gb.adt component to gb.data. From sebikul at ...176... Mon Sep 10 04:42:09 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sun, 9 Sep 2012 23:42:09 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> Message-ID: On Sat, Sep 8, 2012 at 2:57 AM, Sebastian Kulesz wrote: > On Fri, Sep 7, 2012 at 2:17 AM, Sebastian Kulesz wrote: >> On Wed, Sep 5, 2012 at 4:01 PM, Beno?t Minisini >> wrote: >>> Le 05/09/2012 13:43, Beno?t Minisini a ?crit : >>>> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >>>>> Hi all !! >>>>> >>>>> I really think Gambas is a great language to work with, but lets face >>>>> it, from the point of view of a beginner, distributing an application >>>>> is a pain in the a**. There is no *standard* way to build a project >>>>> (other than executing gbc3/gba3 directly if we let the IDE aside), >>>>> this makes it difficult to create debian packages, PPAs, etc. as they >>>>> all require some sort of autoconf script to manage the process. >>>>> Without the IDE, an user can do much. And with it, this implies >>>>> installing every component it depends on (a total of 15). >>>>> >>>>> To create a PPA of a gambas application, for example, the user has 2 >>>>> choices. He can either write a Makefile (more bugs, no portability, >>>>> etc) or create a dummy autoconf package, skim the files and replace >>>>> what is needed (package name, version, etc), and merge it with his >>>>> project. >>>>> >>>>> These are really just a few examples of the problems i faced not so >>>>> long ago. With this in mind, i created this little tool to automate >>>>> the building of gambas apps. It works as a *drop in* replacement for >>>>> make (*seriously*, you can run "make", "make clean", and "sudo make >>>>> install" without a single script, autoconf, automake, m4 macro). >>>>> >>>>> I also wrote the app with Quickly [0] in mind. For example, if you >>>>> want to debianize a project, you can run "gbmake debianize" or just >>>>> "make debianize" and that is it. It will automatically create a >>>>> skeleton debian/ folder which should work out-of-the-box. Maybe a >>>>> "make source" to create a source archive? >>>>> >>>>> I just started it today, so only the building process is really >>>>> implemented (build, clean, install) but I really see a lot of >>>>> potential here. Once it's completed, the autotools package may be >>>>> dropped (it will be completely replaced and the user will have to do >>>>> nothing). Uploading packages to a PPA will be much easier. Users won't >>>>> depend on the IDE to perform administrative tasks, such as building a >>>>> package or a source archive. >>>>> >>>>> I will need some help to port the packaging code in the IDE to work in >>>>> headless mode. I'm trying to make this tool to only depend on the >>>>> interpreter, so no single component has to be installed for it to >>>>> work. This means implementing a custom option parser, and settings >>>>> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >>>>> and Fedora (and it's derivatives), so i will only be able to port the >>>>> code, but i can't test for any bugs or regressions. >>>>> >>>>> How does it works? It's really simple actually. You will see 2 >>>>> Makefiles included. the one named Makefile.1 should be used to install >>>>> the app in the first place. >>>>> >>>>> sudo make -f Makefile.1 install >>>>> >>>>> This command will build the project and install it (/usr/bin/gbmake). >>>>> The second Makefile only wraps the commands sent to "make" to >>>>> "gbmake". It's really the same, but we are all used to type make *, >>>>> aren't we? ;-) >>>>> >>>>> In this case, only adding this Makefile to a project will let "make" >>>>> work out of the box, otherwise, "gbmake" will work just fine. >>>>> >>>>> I will try to have the Debian part finished by the end of the week so >>>>> i can provide a working example, this is just a *proof of concept*, >>>>> and a call for everybody who would like to help. I'm a little skeptic >>>>> about merging this to trunk (even as a branch), as it's a work in >>>>> progress, and it will just confuse the users. Besides, 3.3 is around >>>>> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >>>>> >>>>> I'm really anxious to hear your comments! >>>>> >>>>> Thanks! >>>>> >>>>> [0] https://wiki.ubuntu.com/Quickly >>>>> >>>> >>>> Good idea, but the problem is code duplication between "gbmake" and the IDE. >>>> >>>> I suggest taking the code from the IDE instead of rewriting your own (or >>>> mix them if yours is better). >>>> >>> >>> Yep. You tried to rewrite things already done by the IDE, but you didn't >>> do it correctly. >>> >>> You should make a list of all project management features you need (how >>> to clean a project, how to compile it...), and I will centralize all >>> these features into an IDE module that will be able to be shared by the >>> gambas make utility. >>> >>> Regards, >>> >>> -- >>> Beno?t Minisini >>> >>> ------------------------------------------------------------------------------ >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. Discussions >>> will include endpoint security, mobile security and the latest in malware >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> Gambas-devel mailing list >>> Gambas-devel at lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/gambas-devel >> >> Okey, here is an initial list. This will let me implement the basic >> set of functions to dump the autotools package. >> >> --- >> Loading .project file to retrieve project type, properties, components >> it depends on, etc. >> Listing installed components >> >> Compile a project (the options are passed from the Application.Args >> array, so there should be a parameter for every option it accepts) >> Package a project once it has been compiled >> Clean a project source tree >> Create a source archive (the output directory should be passed as >> argument, defaults at the cwd, or project root folder) >> >> Generate a .desktop file based on options from the .project file (the >> output directory should be passed as argument, defaults at the cwd) >> >> --- >> As for the packaging functions, IMO, it would be better to rewrite >> them. Please, let me explain first!! >> Archlinux was not so bad, i took the MakeArchPackage and updated >> little parts of the code. It's already finished. the output is >> "pretty" printed, the code is easier to read, and works really well. >> >> Debian is another story. It may "work" well, but in the bottom it's >> full of bugs that are not so evident. What i dislike the most about it >> is that is *assumes* that the deb it is producing will work on any >> distro. >> Firstly, every file inside the debian/ directory is manually created. >> It is also using an outdated (but still supported) format, as it >> specifies debhelper's minimum version as 5, when the debian maintainer >> guide recommends using version 7 (available since lucid or squeeze). >> Second, it specifies the directories and files the package will hold, >> when they should be recognized automatically when building the >> package. >> What about gb.jit? a supported version of llvm is only available in >> quantal or wheezy, which is yet to be released! >> >> I know this is only a paper cut with an easy fix, but every package >> has the same description! "This program is written in Gambas" >> >> The rules file can be replaced by the one available in the dh_make >> template and the standards version should be upgraded. >> >> This are just some of the things i could find while skimming the code. >> I will leave the packaging aside until we can work something out, and >> finish the "autotools" implementation. It's late now, I will send an >> updated source archive tomorrow so you can catch up. >> >> Bye! > > Here is a tiny update. PLEASE ignore the packaging modules, i'm > waiting for this common module, but still wanted to sketch some things > beforehand (only the Archlinux module is usable if you have the tool > installed). > > I would like you to take a look at the Compiler and Installer module. > Most importantly to the later. There is some duplicate code that i had > to port so i could properly test it, please ignore it too. I wanted to > know if the installer and compiler are well written, and what would > you change. I know there is a *lot* of cleanup to do, but i mean the > algorithm. Am i missing any file? Anything! > > I know it works, in fact, i'm already using it to manage the project, > compiling and installing it, even the source package was created using > gbmake. I just created a branch so we could test this new implementation. I didn't wanted to pollute trunk with 3.3 this close. With the build structure i used, and how libraries are implemented, i believe a more simple approach to the symlinked module would be to add the gbm3 tool as a library (or component, i'm not sure) to the ide. The install path will be known, as the gbx3 executable should be in the same directory. What do you think of this? From sebikul at ...176... Wed Sep 12 05:31:00 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Wed, 12 Sep 2012 00:31:00 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> Message-ID: On Sun, Sep 9, 2012 at 11:42 PM, Sebastian Kulesz wrote: > On Sat, Sep 8, 2012 at 2:57 AM, Sebastian Kulesz wrote: >> On Fri, Sep 7, 2012 at 2:17 AM, Sebastian Kulesz wrote: >>> On Wed, Sep 5, 2012 at 4:01 PM, Beno?t Minisini >>> wrote: >>>> Le 05/09/2012 13:43, Beno?t Minisini a ?crit : >>>>> Le 05/09/2012 05:02, Sebastian Kulesz a ?crit : >>>>>> Hi all !! >>>>>> >>>>>> I really think Gambas is a great language to work with, but lets face >>>>>> it, from the point of view of a beginner, distributing an application >>>>>> is a pain in the a**. There is no *standard* way to build a project >>>>>> (other than executing gbc3/gba3 directly if we let the IDE aside), >>>>>> this makes it difficult to create debian packages, PPAs, etc. as they >>>>>> all require some sort of autoconf script to manage the process. >>>>>> Without the IDE, an user can do much. And with it, this implies >>>>>> installing every component it depends on (a total of 15). >>>>>> >>>>>> To create a PPA of a gambas application, for example, the user has 2 >>>>>> choices. He can either write a Makefile (more bugs, no portability, >>>>>> etc) or create a dummy autoconf package, skim the files and replace >>>>>> what is needed (package name, version, etc), and merge it with his >>>>>> project. >>>>>> >>>>>> These are really just a few examples of the problems i faced not so >>>>>> long ago. With this in mind, i created this little tool to automate >>>>>> the building of gambas apps. It works as a *drop in* replacement for >>>>>> make (*seriously*, you can run "make", "make clean", and "sudo make >>>>>> install" without a single script, autoconf, automake, m4 macro). >>>>>> >>>>>> I also wrote the app with Quickly [0] in mind. For example, if you >>>>>> want to debianize a project, you can run "gbmake debianize" or just >>>>>> "make debianize" and that is it. It will automatically create a >>>>>> skeleton debian/ folder which should work out-of-the-box. Maybe a >>>>>> "make source" to create a source archive? >>>>>> >>>>>> I just started it today, so only the building process is really >>>>>> implemented (build, clean, install) but I really see a lot of >>>>>> potential here. Once it's completed, the autotools package may be >>>>>> dropped (it will be completely replaced and the user will have to do >>>>>> nothing). Uploading packages to a PPA will be much easier. Users won't >>>>>> depend on the IDE to perform administrative tasks, such as building a >>>>>> package or a source archive. >>>>>> >>>>>> I will need some help to port the packaging code in the IDE to work in >>>>>> headless mode. I'm trying to make this tool to only depend on the >>>>>> interpreter, so no single component has to be installed for it to >>>>>> work. This means implementing a custom option parser, and settings >>>>>> parser. I have zero knowledge of Slackware, OpenSUSE, Mandriva, Mageia >>>>>> and Fedora (and it's derivatives), so i will only be able to port the >>>>>> code, but i can't test for any bugs or regressions. >>>>>> >>>>>> How does it works? It's really simple actually. You will see 2 >>>>>> Makefiles included. the one named Makefile.1 should be used to install >>>>>> the app in the first place. >>>>>> >>>>>> sudo make -f Makefile.1 install >>>>>> >>>>>> This command will build the project and install it (/usr/bin/gbmake). >>>>>> The second Makefile only wraps the commands sent to "make" to >>>>>> "gbmake". It's really the same, but we are all used to type make *, >>>>>> aren't we? ;-) >>>>>> >>>>>> In this case, only adding this Makefile to a project will let "make" >>>>>> work out of the box, otherwise, "gbmake" will work just fine. >>>>>> >>>>>> I will try to have the Debian part finished by the end of the week so >>>>>> i can provide a working example, this is just a *proof of concept*, >>>>>> and a call for everybody who would like to help. I'm a little skeptic >>>>>> about merging this to trunk (even as a branch), as it's a work in >>>>>> progress, and it will just confuse the users. Besides, 3.3 is around >>>>>> the corner and this will only bring more bugs. Maybe 3.4 if we hurry. >>>>>> >>>>>> I'm really anxious to hear your comments! >>>>>> >>>>>> Thanks! >>>>>> >>>>>> [0] https://wiki.ubuntu.com/Quickly >>>>>> >>>>> >>>>> Good idea, but the problem is code duplication between "gbmake" and the IDE. >>>>> >>>>> I suggest taking the code from the IDE instead of rewriting your own (or >>>>> mix them if yours is better). >>>>> >>>> >>>> Yep. You tried to rewrite things already done by the IDE, but you didn't >>>> do it correctly. >>>> >>>> You should make a list of all project management features you need (how >>>> to clean a project, how to compile it...), and I will centralize all >>>> these features into an IDE module that will be able to be shared by the >>>> gambas make utility. >>>> >>>> Regards, >>>> >>>> -- >>>> Beno?t Minisini >>>> >>>> ------------------------------------------------------------------------------ >>>> Live Security Virtual Conference >>>> Exclusive live event will cover all the ways today's security and >>>> threat landscape has changed and how IT managers can respond. Discussions >>>> will include endpoint security, mobile security and the latest in malware >>>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>> _______________________________________________ >>>> Gambas-devel mailing list >>>> Gambas-devel at lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/gambas-devel >>> >>> Okey, here is an initial list. This will let me implement the basic >>> set of functions to dump the autotools package. >>> >>> --- >>> Loading .project file to retrieve project type, properties, components >>> it depends on, etc. >>> Listing installed components >>> >>> Compile a project (the options are passed from the Application.Args >>> array, so there should be a parameter for every option it accepts) >>> Package a project once it has been compiled >>> Clean a project source tree >>> Create a source archive (the output directory should be passed as >>> argument, defaults at the cwd, or project root folder) >>> >>> Generate a .desktop file based on options from the .project file (the >>> output directory should be passed as argument, defaults at the cwd) >>> >>> --- >>> As for the packaging functions, IMO, it would be better to rewrite >>> them. Please, let me explain first!! >>> Archlinux was not so bad, i took the MakeArchPackage and updated >>> little parts of the code. It's already finished. the output is >>> "pretty" printed, the code is easier to read, and works really well. >>> >>> Debian is another story. It may "work" well, but in the bottom it's >>> full of bugs that are not so evident. What i dislike the most about it >>> is that is *assumes* that the deb it is producing will work on any >>> distro. >>> Firstly, every file inside the debian/ directory is manually created. >>> It is also using an outdated (but still supported) format, as it >>> specifies debhelper's minimum version as 5, when the debian maintainer >>> guide recommends using version 7 (available since lucid or squeeze). >>> Second, it specifies the directories and files the package will hold, >>> when they should be recognized automatically when building the >>> package. >>> What about gb.jit? a supported version of llvm is only available in >>> quantal or wheezy, which is yet to be released! >>> >>> I know this is only a paper cut with an easy fix, but every package >>> has the same description! "This program is written in Gambas" >>> >>> The rules file can be replaced by the one available in the dh_make >>> template and the standards version should be upgraded. >>> >>> This are just some of the things i could find while skimming the code. >>> I will leave the packaging aside until we can work something out, and >>> finish the "autotools" implementation. It's late now, I will send an >>> updated source archive tomorrow so you can catch up. >>> >>> Bye! >> >> Here is a tiny update. PLEASE ignore the packaging modules, i'm >> waiting for this common module, but still wanted to sketch some things >> beforehand (only the Archlinux module is usable if you have the tool >> installed). >> >> I would like you to take a look at the Compiler and Installer module. >> Most importantly to the later. There is some duplicate code that i had >> to port so i could properly test it, please ignore it too. I wanted to >> know if the installer and compiler are well written, and what would >> you change. I know there is a *lot* of cleanup to do, but i mean the >> algorithm. Am i missing any file? Anything! >> >> I know it works, in fact, i'm already using it to manage the project, >> compiling and installing it, even the source package was created using >> gbmake. > > I just created a branch so we could test this new implementation. I > didn't wanted to pollute trunk with 3.3 this close. > > With the build structure i used, and how libraries are implemented, i > believe a more simple approach to the symlinked module would be to add > the gbm3 tool as a library (or component, i'm not sure) to the ide. > The install path will be known, as the gbx3 executable should be in > the same directory. What do you think of this? I just pushed an update into the branch. It is working incredibly well. I deleted the packaging code, it's too complex for it to be abstracted from the IDE, so i will leave that part untouched. As a test, i implemented gbm for the comp/ directory, not for the examples as the commit stated (sorry, my bad). It works fine (i believe). The files are installed exactly as the Makefile did, if there is an unmet dependency, or a compile error, the component is skipped. With the packaging code gone, the only thing i need to share with the IDE is the cleaning method and the procedure to create a source archive (this one was adapted to take the output type from commands line arguments). The Project module may be merged too, but i needed a custom procedure to check for dependencies. If it can be merged, this would disappear too. Please test and give your feedback! From tobias at ...692... Fri Sep 14 20:52:23 2012 From: tobias at ...692... (Tobias Boege) Date: Fri, 14 Sep 2012 20:52:23 +0200 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> Message-ID: <20120914185223.GB527@...693...> > I just created a branch so we could test this new implementation. I > didn't wanted to pollute trunk with 3.3 this close. > > With the build structure i used, and how libraries are implemented, i > believe a more simple approach to the symlinked module would be to add > the gbm3 tool as a library (or component, i'm not sure) to the ide. > The install path will be known, as the gbx3 executable should be in > the same directory. What do you think of this? I just arrived at home again and I am apparently not up-to-date with this project. Does this mean that we cannot use gbm3 outside gambas3 - even though it has to have much less dependencies? Personally, I would prefer a stand-alone program - be it cobbled together from symlinked sources, or whatever - over an integrated library, because this way I could actually compile and use it. You wanted thoughts - it's your work thus your decision (at least not mine). Regards, Tobi From sebikul at ...176... Fri Sep 14 23:40:21 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 14 Sep 2012 18:40:21 -0300 Subject: [Gambas-devel] gbmake. A drop-in replacement to automake In-Reply-To: <20120914185223.GB527@...693...> References: <50473AE6.1030407@...1...> <5047A192.5000300@...1...> <20120914185223.GB527@...693...> Message-ID: On Fri, Sep 14, 2012 at 3:52 PM, Tobias Boege wrote: >> I just created a branch so we could test this new implementation. I >> didn't wanted to pollute trunk with 3.3 this close. >> >> With the build structure i used, and how libraries are implemented, i >> believe a more simple approach to the symlinked module would be to add >> the gbm3 tool as a library (or component, i'm not sure) to the ide. >> The install path will be known, as the gbx3 executable should be in >> the same directory. What do you think of this? > > I just arrived at home again and I am apparently not up-to-date with this > project. Does this mean that we cannot use gbm3 outside gambas3 - even > though it has to have much less dependencies? > Personally, I would prefer a stand-alone program - be it cobbled together > from symlinked sources, or whatever - over an integrated library, because > this way I could actually compile and use it. > Right now, it only depends on the interpreter, and is compiled just after it. You can check my branch at the svn repository. To test it, i implemented it to install every gambas component under comp/, so any bug should be easy to spot. If you follow the thread you will see that i decided to let the packaging alone for now. With that out, there is a really small amount of code that needs to be shared. In reality, my idea was just to abstract the installation of a project, which right now is the only part of the development process of a gambas app that in not standardized inside a specific tool, but if i really wanted to make that process simple enough, i also had to implement the compilation (gbx3) and packaging (gba3) of a project. I have not tested a more "native" solution, although my language of choice would have been python 3.x, nothing more native than gambas would be, plus, it integrates pretty well. > You wanted thoughts - it's your work thus your decision (at least not mine). If i thought like this, i would have worked it out everything locally, uploaded it once it was finished, and let it "shine". I shared it because A. there are some parts of the gambas ecosystem that i don't know, and are needed to completely integrate this tool, and B. it's better when there is more than one dev working alone. Feel free to commit, rewrite, refactor, rework, etc. > > Regards, > Tobi > > > ------------------------------------------------------------------------------ > Got visibility? > Most devs has no idea what their production app looks like. > Find out how fast your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219671;13503038;y? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From sebikul at ...176... Tue Sep 18 21:48:35 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Tue, 18 Sep 2012 16:48:35 -0300 Subject: [Gambas-devel] gambas wiki db scheme Message-ID: Hi! Is it possible to get the scheme (or better, a partial dump) of the wiki's database? I'm trying to add a discussions page for each wiki entry, but it's proven hard without a database to debug. Thanks! From gambas at ...1... Tue Sep 18 21:58:13 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Tue, 18 Sep 2012 21:58:13 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: Message-ID: <5058D255.6050003@...1...> Le 18/09/2012 21:48, Sebastian Kulesz a ?crit : > Hi! Is it possible to get the scheme (or better, a partial dump) of > the wiki's database? I'm trying to add a discussions page for each > wiki entry, but it's proven hard without a database to debug. > > Thanks! > I have started to make a new wiki, but nothing really important at the moment. It will be based on the markup language defined in the IDE for writing help comments. Maybe should we go in that direction? -- Beno?t Minisini From sebikul at ...176... Tue Sep 18 22:19:32 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Tue, 18 Sep 2012 17:19:32 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <5058D255.6050003@...1...> References: <5058D255.6050003@...1...> Message-ID: On Tue, Sep 18, 2012 at 4:58 PM, Beno?t Minisini wrote: > Le 18/09/2012 21:48, Sebastian Kulesz a ?crit : >> Hi! Is it possible to get the scheme (or better, a partial dump) of >> the wiki's database? I'm trying to add a discussions page for each >> wiki entry, but it's proven hard without a database to debug. >> >> Thanks! >> > > I have started to make a new wiki, but nothing really important at the > moment. > > It will be based on the markup language defined in the IDE for writing > help comments. > > Maybe should we go in that direction? > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel I like the idea as it unifies comment syntax. But is it viable to convert the whole wiki? I believe you wrote (if not, you should do it now) a module to convert old pages, is it 100% safe? (maybe compare the html output to verify the success of each page). If the rewrite is going to happen, i suggest an MVC approach, currently, there are >5000 loc on a single file! Divide and conquer. I was going to suggest a rewrite, but why change something that works? The only downside is that adding a feature is really hard. You should also be careful with the url pattern implemented now. To the end user, *nothing* should change. I'm saying this mostly because of search engines. Also note that the IDE uses a special url pattern to display inline help and changing it would break previous versions. Maybe we should discuss this on the irc channel. Anyway, if you need any help, let me know, i like the challenge ;) From gambas at ...1... Tue Sep 18 22:36:44 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Tue, 18 Sep 2012 22:36:44 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> Message-ID: <5058DB5C.6090601@...1...> Le 18/09/2012 22:19, Sebastian Kulesz a ?crit : > > I like the idea as it unifies comment syntax. But is it viable to > convert the whole wiki? I believe you wrote (if not, you should do it > now) a module to convert old pages, is it 100% safe? (maybe compare > the html output to verify the success of each page). Nothing is wrote at the moment, except the markup -> HTML converter. Yes, maybe writing an old syntax -> new syntax converter would be the solution for porting the old wiki to the new one. To be useful for the wiki, the markup syntax must be extended with all the special commands of the old one (those beginning with '@'). > > If the rewrite is going to happen, i suggest an MVC approach, > currently, there are >5000 loc on a single file! Divide and conquer. I > was going to suggest a rewrite, but why change something that works? > The only downside is that adding a feature is really hard. That wiki was a QuickNDirty hack made with Gambas 1. And of course it is still there... > > You should also be careful with the url pattern implemented now. To > the end user, *nothing* should change. I'm saying this mostly because > of search engines. Also note that the IDE uses a special url pattern > to display inline help and changing it would break previous versions. Mmm... Yes. But I think I can change the url pattern for editing pages and administrating the wiki. > > Maybe we should discuss this on the irc channel. Alas I'm not an irc guy... > > Anyway, if you need any help, let me know, i like the challenge ;) > If you have some time, you are strongly welcome. I think if I can finish the markup syntax, things would be easier for you. I'd like the new wiki to be entirely based on one Gambas CGI script using the gb.web component and ASP-like pages. That way it will be a good demo for how to use that component. I want to keep all the current features, but here are a few other I'd like: - Using the Session object to implement a login/password not based on .htaccess files. - Being able to comment pages. - Gambas syntax highlighting. I plan in the future to embed a small http server into a component, so that a CGI script can be transformed in a full http server serving itself in one click. If I succeed (not sure...), debugging CGI scripts will be easy, and we will be able to run a local Gambas documentation server very easily! As for the database schema, I am currently downloading a database dump from the wiki and I will tell you. Not very complex... Another point: Fabien and Adrien have made an entire web site for Gambas (in french). It is based on the gb.xml and gb.xml.html components made by Adrien. Maybe they could help us? Regards, -- Beno?t Minisini From gambas at ...1... Tue Sep 18 22:42:35 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Tue, 18 Sep 2012 22:42:35 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <5058DB5C.6090601@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> Message-ID: <5058DCBB.3030306@...1...> Le 18/09/2012 22:36, Beno?t Minisini a ?crit : > > As for the database schema, I am currently downloading a database dump > from the wiki and I will tell you. Not very complex... > CREATE TABLE `page` ( `spath` varchar(255) NOT NULL default '', --> url path `slang` varchar(8) NOT NULL default '', --> language code `ddate` datetime default NULL, --> last modification date `stitle` varchar(128) default NULL, --> page title `sdesc` text, --> page contents `sdata` longblob, --> image for an image page `shtml` text, --> page contents translated to html `suser` varchar(16) default NULL, --> user that modified the page `brefresh` tinyint(1) NOT NULL default '0', --> invalidate 'shtml' PRIMARY KEY (`spath`,`slang`), KEY `page_index1` (`slang`,`stitle`), KEY `page_index2` (`slang`,`ddate`) ) TYPE=InnoDB; CREATE TABLE `archive` ( --> undo contents of `page` `spath` varchar(255) NOT NULL default '', `slang` varchar(8) NOT NULL default '', `ddate` datetime NOT NULL default '0000-00-00 00:00:00', `stitle` varchar(128) default NULL, `sdesc` text, `sdata` longblob, `suser` varchar(16) default NULL, PRIMARY KEY (`spath`,`slang`,`ddate`) ) TYPE=InnoDB; -- Beno?t Minisini From sebikul at ...176... Tue Sep 18 23:34:50 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Tue, 18 Sep 2012 18:34:50 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <5058DB5C.6090601@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> Message-ID: On Tue, Sep 18, 2012 at 5:36 PM, Beno?t Minisini wrote: > Le 18/09/2012 22:19, Sebastian Kulesz a ?crit : >> >> I like the idea as it unifies comment syntax. But is it viable to >> convert the whole wiki? I believe you wrote (if not, you should do it >> now) a module to convert old pages, is it 100% safe? (maybe compare >> the html output to verify the success of each page). > > Nothing is wrote at the moment, except the markup -> HTML converter. > > Yes, maybe writing an old syntax -> new syntax converter would be the > solution for porting the old wiki to the new one. > > To be useful for the wiki, the markup syntax must be extended with all > the special commands of the old one (those beginning with '@'). > >> >> If the rewrite is going to happen, i suggest an MVC approach, >> currently, there are >5000 loc on a single file! Divide and conquer. I >> was going to suggest a rewrite, but why change something that works? >> The only downside is that adding a feature is really hard. > > That wiki was a QuickNDirty hack made with Gambas 1. And of course it is > still there... > >> >> You should also be careful with the url pattern implemented now. To >> the end user, *nothing* should change. I'm saying this mostly because >> of search engines. Also note that the IDE uses a special url pattern >> to display inline help and changing it would break previous versions. > > Mmm... Yes. But I think I can change the url pattern for editing pages > and administrating the wiki. > >> >> Maybe we should discuss this on the irc channel. > > Alas I'm not an irc guy... > >> >> Anyway, if you need any help, let me know, i like the challenge ;) >> > > If you have some time, you are strongly welcome. I think if I can finish > the markup syntax, things would be easier for you. Actually, the parsing could be done inside a module, input text with markup > output html. So, if we start building the website now, this module would just plug in really easily, so it's not a hard requirement for now. > > I'd like the new wiki to be entirely based on one Gambas CGI script > using the gb.web component and ASP-like pages. That way it will be a > good demo for how to use that component. I like the idea, but i think that the ASP rendering engine would need a few changes. First, it should be possible to get the result without it being printed. Second, i don't know if this currently exists, but there should be a syntax declaration to include the content of another webpage inside the current one. Maybe <% Include "Webpage2" %> What do you think? > > I want to keep all the current features, but here are a few other I'd like: > > - Using the Session object to implement a login/password not based on > .htaccess files. I was also going to suggest this point, not only it uses HTTP authentication with .htaccess, but it relies on system accounts, not safe at all. > > - Being able to comment pages. > > - Gambas syntax highlighting. > > I plan in the future to embed a small http server into a component, so > that a CGI script can be transformed in a full http server serving > itself in one click. If I succeed (not sure...), debugging CGI scripts > will be easy, and we will be able to run a local Gambas documentation > server very easily! Ideally, this would be the best solution. It would also consume much less resources! > > As for the database schema, I am currently downloading a database dump > from the wiki and I will tell you. Not very complex... > > Another point: Fabien and Adrien have made an entire web site for Gambas > (in french). It is based on the gb.xml and gb.xml.html components made > by Adrien. Maybe they could help us? > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From gambas at ...1... Tue Sep 18 23:51:24 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Tue, 18 Sep 2012 23:51:24 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> Message-ID: <5058ECDC.90606@...1...> Le 18/09/2012 23:34, Sebastian Kulesz a ?crit : > > Actually, the parsing could be done inside a module, input text with > markup > output html. So, if we start building the website now, this > module would just plug in really easily, so it's not a hard > requirement for now. > The current markup routine can be used. It is just that the '@' special commands are not implemented. But this can be done later. >> >> I'd like the new wiki to be entirely based on one Gambas CGI script >> using the gb.web component and ASP-like pages. That way it will be a >> good demo for how to use that component. > > I like the idea, but i think that the ASP rendering engine would need > a few changes. First, it should be possible to get the result without > it being printed. What for? What do you mean? > Second, i don't know if this currently exists, but > there should be a syntax declaration to include the content of another > webpage inside the current one. Maybe <% Include "Webpage2" %> The syntax exists, but it is not wonderful: <%:WebPage2%> But it can take arguments: <%:WebPage2 foo="bar" zip="zap"%> And these arguments can be used inside WebPage2 with <%!foo%> and <%!zip%> Not wonderful syntaxes! :-/ Maybe I could change them into something like that: < foo="bar" zip="zap"> <%=[foo]%> More readable? More logical? -- Beno?t Minisini From sebikul at ...176... Wed Sep 19 00:14:06 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Tue, 18 Sep 2012 19:14:06 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <5058ECDC.90606@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> Message-ID: On Tue, Sep 18, 2012 at 6:51 PM, Beno?t Minisini wrote: > Le 18/09/2012 23:34, Sebastian Kulesz a ?crit : >> >> Actually, the parsing could be done inside a module, input text with >> markup > output html. So, if we start building the website now, this >> module would just plug in really easily, so it's not a hard >> requirement for now. >> > > The current markup routine can be used. It is just that the '@' special > commands are not implemented. But this can be done later. > >>> >>> I'd like the new wiki to be entirely based on one Gambas CGI script >>> using the gb.web component and ASP-like pages. That way it will be a >>> good demo for how to use that component. >> >> I like the idea, but i think that the ASP rendering engine would need >> a few changes. First, it should be possible to get the result without >> it being printed. > > What for? What do you mean? > >> Second, i don't know if this currently exists, but >> there should be a syntax declaration to include the content of another >> webpage inside the current one. Maybe <% Include "Webpage2" %> > > The syntax exists, but it is not wonderful: > > <%:WebPage2%> > > But it can take arguments: <%:WebPage2 foo="bar" zip="zap"%> > > And these arguments can be used inside WebPage2 with <%!foo%> and <%!zip%> > > Not wonderful syntaxes! :-/ > > Maybe I could change them into something like that: > > < foo="bar" zip="zap"> > <%=[foo]%> > > More readable? More logical? What about something like... <% Webpage2, ("foo", "bar", ...) %> <%=Args[0] %> --> foo <%=Args[1] %> --> bar <%=Args[2] %> --> NULL, no error should be thrown, but instead return an empty string. This way we don't get local vs global variables, and is easy to check if an argument was passed or not. A webpage should be much more "malleable" than a class. What do you think? > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From gambas at ...1... Wed Sep 19 01:35:22 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Wed, 19 Sep 2012 01:35:22 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> Message-ID: <5059053A.7090500@...1...> Le 19/09/2012 00:14, Sebastian Kulesz a ?crit : > On Tue, Sep 18, 2012 at 6:51 PM, Beno?t Minisini > wrote: >> Le 18/09/2012 23:34, Sebastian Kulesz a ?crit : >>> >>> Actually, the parsing could be done inside a module, input text with >>> markup > output html. So, if we start building the website now, this >>> module would just plug in really easily, so it's not a hard >>> requirement for now. >>> >> >> The current markup routine can be used. It is just that the '@' special >> commands are not implemented. But this can be done later. >> >>>> >>>> I'd like the new wiki to be entirely based on one Gambas CGI script >>>> using the gb.web component and ASP-like pages. That way it will be a >>>> good demo for how to use that component. >>> >>> I like the idea, but i think that the ASP rendering engine would need >>> a few changes. First, it should be possible to get the result without >>> it being printed. >> >> What for? What do you mean? >> >>> Second, i don't know if this currently exists, but >>> there should be a syntax declaration to include the content of another >>> webpage inside the current one. Maybe <% Include "Webpage2" %> >> >> The syntax exists, but it is not wonderful: >> >> <%:WebPage2%> >> >> But it can take arguments: <%:WebPage2 foo="bar" zip="zap"%> >> >> And these arguments can be used inside WebPage2 with <%!foo%> and <%!zip%> >> >> Not wonderful syntaxes! :-/ >> >> Maybe I could change them into something like that: >> >> < foo="bar" zip="zap"> >> <%=[foo]%> >> >> More readable? More logical? > > What about something like... <% Webpage2, ("foo", "bar", ...) %> This is ambiguous: <% ... %> is gambas code. > > <%=Args[0] %> --> foo > <%=Args[1] %> --> bar > > <%=Args[2] %> --> NULL, no error should be thrown, but instead return > an empty string. Ambiguous too: <%=xxx%> is just the same as "Print Html$(xxx)" (see below). > > This way we don't get local vs global variables, and is easy to check > if an argument was passed or not. A webpage should be much more > "malleable" than a class. What do you think? Maybe you should look at the source code of gbc_form_webpage.c. :-) A WebPage is just a class with a big "Render" routine that use Print to send the HTML. All these markups are converted to Print instructions, or directly sent to the compiler when you use <% ... %>. And the Webpage arguments are just a collection sent to the Render routine through its first argument, named "_Args" - you almost got it, just an underscore! :-) So if you need you can use _Args["foo"]... but of course this is not recommended nor documented. So all you want has already been done. All these <% ... %> syntaxes are syntactic sugar whose aim is just being easier to read, and make think that a WebPage can be included like a HTML markup (<%: ... %>). Regards, -- Beno?t Minisini From sebikul at ...176... Thu Sep 20 02:51:35 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Wed, 19 Sep 2012 21:51:35 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <5059053A.7090500@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> Message-ID: On Tue, Sep 18, 2012 at 8:35 PM, Beno?t Minisini wrote: > Le 19/09/2012 00:14, Sebastian Kulesz a ?crit : >> On Tue, Sep 18, 2012 at 6:51 PM, Beno?t Minisini >> wrote: >>> Le 18/09/2012 23:34, Sebastian Kulesz a ?crit : >>>> >>>> Actually, the parsing could be done inside a module, input text with >>>> markup > output html. So, if we start building the website now, this >>>> module would just plug in really easily, so it's not a hard >>>> requirement for now. >>>> >>> >>> The current markup routine can be used. It is just that the '@' special >>> commands are not implemented. But this can be done later. >>> >>>>> >>>>> I'd like the new wiki to be entirely based on one Gambas CGI script >>>>> using the gb.web component and ASP-like pages. That way it will be a >>>>> good demo for how to use that component. >>>> >>>> I like the idea, but i think that the ASP rendering engine would need >>>> a few changes. First, it should be possible to get the result without >>>> it being printed. >>> >>> What for? What do you mean? >>> >>>> Second, i don't know if this currently exists, but >>>> there should be a syntax declaration to include the content of another >>>> webpage inside the current one. Maybe <% Include "Webpage2" %> >>> >>> The syntax exists, but it is not wonderful: >>> >>> <%:WebPage2%> >>> >>> But it can take arguments: <%:WebPage2 foo="bar" zip="zap"%> >>> >>> And these arguments can be used inside WebPage2 with <%!foo%> and <%!zip%> >>> >>> Not wonderful syntaxes! :-/ >>> >>> Maybe I could change them into something like that: >>> >>> < foo="bar" zip="zap"> >>> <%=[foo]%> >>> >>> More readable? More logical? >> >> What about something like... <% Webpage2, ("foo", "bar", ...) %> > > This is ambiguous: <% ... %> is gambas code. > >> >> <%=Args[0] %> --> foo >> <%=Args[1] %> --> bar >> >> <%=Args[2] %> --> NULL, no error should be thrown, but instead return >> an empty string. > > Ambiguous too: <%=xxx%> is just the same as "Print Html$(xxx)" (see below). > >> >> This way we don't get local vs global variables, and is easy to check >> if an argument was passed or not. A webpage should be much more >> "malleable" than a class. What do you think? > > Maybe you should look at the source code of gbc_form_webpage.c. :-) > > A WebPage is just a class with a big "Render" routine that use Print to > send the HTML. > > All these markups are converted to Print instructions, or directly sent > to the compiler when you use <% ... %>. > > And the Webpage arguments are just a collection sent to the Render > routine through its first argument, named "_Args" - you almost got it, > just an underscore! :-) So if you need you can use _Args["foo"]... but > of course this is not recommended nor documented. > > So all you want has already been done. > > All these <% ... %> syntaxes are syntactic sugar whose aim is just being > easier to read, and make think that a WebPage can be included like a > HTML markup (<%: ... %>). > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel I've been playing around a bit with the code. I already have most of the basics, the database, user management and sessions are working. I'm moving the header code, it's not easy, but when inside a Web Page, it looks really good and easy to modify. I'm currently working with the functions necessary to translate URL paths into pages and vice versa, hoping to keep the pattern untouched. The gb.web component really saves a lot of code, mostly because of how the wiki handles url parameters. Using it proved to be really helpful. I've also added some specific MySQL routines from gb.mysql, but that shouldn't be a problem. I've not implemented sessions yet, but they seem really easy to use. I saw how symbols are automatically detected, but i don't want to touch that part of the app, seems too delicate. If possible, could you post the content of the .htaccess or, at least, the code that handles redirection and URL translation? Thanks! From gambas at ...1... Thu Sep 20 03:00:11 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Thu, 20 Sep 2012 03:00:11 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> Message-ID: <505A6A9B.1010500@...1...> Le 20/09/2012 02:51, Sebastian Kulesz a ?crit : > > I've been playing around a bit with the code. I already have most of > the basics, the database, user management and sessions are working. > I'm moving the header code, it's not easy, but when inside a Web Page, > it looks really good and easy to modify. I'm currently working with > the functions necessary to translate URL paths into pages and vice > versa, hoping to keep the pattern untouched. > > The gb.web component really saves a lot of code, mostly because of how > the wiki handles url parameters. Using it proved to be really helpful. > I've also added some specific MySQL routines from gb.mysql, but that > shouldn't be a problem. Please don't use gb.mysql, as I don't know if it is yet maintained. Normally there is no need to use it. Moreover, I don't want anything specific to MySQL, so that we can switch to another database system easily. > I've not implemented sessions yet, but they > seem really easy to use. > > I saw how symbols are automatically detected, but i don't want to > touch that part of the app, seems too delicate. > > If possible, could you post the content of the .htaccess or, at least, > the code that handles redirection and URL translation? What do you mean by that? What do you mean by "URL translation"? There is no code for that, everything is in the doc.cgi project. -- Beno?t Minisini From sebikul at ...176... Thu Sep 20 06:25:22 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Thu, 20 Sep 2012 01:25:22 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <505A6A9B.1010500@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> Message-ID: On Wed, Sep 19, 2012 at 10:00 PM, Beno?t Minisini wrote: > Le 20/09/2012 02:51, Sebastian Kulesz a ?crit : >> >> I've been playing around a bit with the code. I already have most of >> the basics, the database, user management and sessions are working. >> I'm moving the header code, it's not easy, but when inside a Web Page, >> it looks really good and easy to modify. I'm currently working with >> the functions necessary to translate URL paths into pages and vice >> versa, hoping to keep the pattern untouched. >> >> The gb.web component really saves a lot of code, mostly because of how >> the wiki handles url parameters. Using it proved to be really helpful. >> I've also added some specific MySQL routines from gb.mysql, but that >> shouldn't be a problem. > > Please don't use gb.mysql, as I don't know if it is yet maintained. > Normally there is no need to use it. Moreover, I don't want anything > specific to MySQL, so that we can switch to another database system easily. > >> I've not implemented sessions yet, but they >> seem really easy to use. >> >> I saw how symbols are automatically detected, but i don't want to >> touch that part of the app, seems too delicate. >> >> If possible, could you post the content of the .htaccess or, at least, >> the code that handles redirection and URL translation? > > What do you mean by that? What do you mean by "URL translation"? There > is no code for that, everything is in the doc.cgi project. Never mind, i'm using a workaround that should work fine. I found several bugs in the Session class and the webpage editor. I will get into details tomorrow, it's late now. So far, only the header template is complete, but i implemented most of the needed functions. I removed the language string from the url for 2 reasons. First, it's useless, it can easily be stored inside a cookie or a session object. Second, and most important, search engines will detect as many pages as languages the wiki supports, all of them using the same url path. So when an user searches for a symbol, he get's a result for every language found. Double that if the symbol has the same name in gambas2. Search engines automatically convert the search terms into synonyms using the user's browser language, so search results should be much cleaner with this change. Besides, there is an option, at least in google, to specify what language a website should use using and url parameter. Same happened with the version. They are both stored inside a cookie, so they persist across sessions (once i get sessions to work, i will make the switch) If possible, could you please send me a partial dump of the database? I only need a few articles that cover any possible variant the wiki can handle, it's really hard to test only by reading the code. Thanks! > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://ad.doubleclick.net/clk;258768047;13503038;j? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From gambas at ...1... Fri Sep 21 13:39:43 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Fri, 21 Sep 2012 13:39:43 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> Message-ID: <505C51FF.5040607@...1...> Le 20/09/2012 06:25, Sebastian Kulesz a ?crit : > > Same happened with the version. They are both stored inside a cookie, > so they persist across sessions (once i get sessions to work, i will > make the switch) You say Session is buggy but you don't give any details. The Session code is currently running on 18 different servers with hundred of users, so I think it should work. > > If possible, could you please send me a partial dump of the database? > I only need a few articles that cover any possible variant the wiki > can handle, it's really hard to test only by reading the code. I'm trying, but this @*#! of MySQL does not understand its own database dump format. If I succeed to get some records, I will give you them. -- Beno?t Minisini From sebikul at ...176... Sat Sep 22 03:54:46 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 21 Sep 2012 22:54:46 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <505C51FF.5040607@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> Message-ID: On Fri, Sep 21, 2012 at 8:39 AM, Beno?t Minisini wrote: > Le 20/09/2012 06:25, Sebastian Kulesz a ?crit : >> >> Same happened with the version. They are both stored inside a cookie, >> so they persist across sessions (once i get sessions to work, i will >> make the switch) > > You say Session is buggy but you don't give any details. The Session > code is currently running on 18 different servers with hundred of users, > so I think it should work. Yeah, you are right, i must be doing something wrong. I will leave the workaround for now, i will get that done later. > >> >> If possible, could you please send me a partial dump of the database? >> I only need a few articles that cover any possible variant the wiki >> can handle, it's really hard to test only by reading the code. > > I'm trying, but this @*#! of MySQL does not understand its own database > dump format. If I succeed to get some records, I will give you them. I already finished moving the header. I will start with the "wiki" part as soon as i get the dump, i'm currently doing the admin page and implementing the user management functions, along with the comments system. One question though, is there a way to prevent the Render() function of a webpage from printing the content-type header? I want to deffer the rendering as much as possible, ideally, until we know *exactly* what the user is expecting to view. This way, each controller is able to customize the call for each view it needs. I'm currently restricted because when executing the header webpage, for example, i can't tell the include statement which webpage should be included next. Thanks! > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > Got visibility? > Most devs has no idea what their production app looks like. > Find out how fast your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219671;13503038;y? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From gambas.fr at ...176... Sat Sep 22 11:30:51 2012 From: gambas.fr at ...176... (Fabien Bodard) Date: Sat, 22 Sep 2012 11:30:51 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> Message-ID: 2012/9/22 Sebastian Kulesz : > On Fri, Sep 21, 2012 at 8:39 AM, Beno?t Minisini > wrote: >> Le 20/09/2012 06:25, Sebastian Kulesz a ?crit : >>> >>> Same happened with the version. They are both stored inside a cookie, >>> so they persist across sessions (once i get sessions to work, i will >>> make the switch) >> >> You say Session is buggy but you don't give any details. The Session >> code is currently running on 18 different servers with hundred of users, >> so I think it should work. > > Yeah, you are right, i must be doing something wrong. I will leave the > workaround for now, i will get that done later. > >> >>> >>> If possible, could you please send me a partial dump of the database? >>> I only need a few articles that cover any possible variant the wiki >>> can handle, it's really hard to test only by reading the code. >> >> I'm trying, but this @*#! of MySQL does not understand its own database >> dump format. If I succeed to get some records, I will give you them. > > I already finished moving the header. I will start with the "wiki" > part as soon as i get the dump, i'm currently doing the admin page and > implementing the user management functions, along with the comments > system. > > One question though, is there a way to prevent the Render() function > of a webpage from printing the content-type header? > I want to deffer the rendering as much as possible, ideally, until we > know *exactly* what the user is expecting to view. This way, each > controller is able to customize the call for each view it needs. I'm > currently restricted because when executing the header webpage, for > example, i can't tell the include statement which webpage should be > included next. > > Thanks! > >> >> -- >> Beno?t Minisini >> >> ------------------------------------------------------------------------------ >> Got visibility? >> Most devs has no idea what their production app looks like. >> Find out how fast your code is with AppDynamics Lite. >> http://ad.doubleclick.net/clk;262219671;13503038;y? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel > > ------------------------------------------------------------------------------ > How fast is your code? > 3 out of 4 devs don\\\'t know how their code performs in production. > Find out how slow your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219672;13503038;z? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list http://www.gambasdoc.org/help/comp/gb.web/response/buffered?v3 > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel yes :) http://www.gambasdoc.org/help/comp/gb.web/response/buffered?v3 You can also use as us a memory tree ... it work well. Look at our code at http://sourceforge.net/projects/gambasforge/?source=directory and the site : http://gambasforge.org All is written using gb.xml.html and its DOM. Its a true poo site. And it's not slow at all. The site manage a Forum, a Forge, a Chat (Based on WebSockets) and a Wiki. I think this site is well constructed (not the dispacher). . It is now maintained by Adrien (and sometime by me). In fact, the story of gb.xml.html as begin with this site. And it lead to the rewriting of gb.xml. -- Fabien Bodard From gambas at ...1... Sat Sep 22 14:28:24 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 22 Sep 2012 14:28:24 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> Message-ID: <505DAEE8.1020707@...1...> Le 22/09/2012 03:54, Sebastian Kulesz a ?crit : > > I already finished moving the header. I will start with the "wiki" > part as soon as i get the dump, i'm currently doing the admin page and > implementing the user management functions, along with the comments > system. > The dump is on the way... > One question though, is there a way to prevent the Render() function > of a webpage from printing the content-type header? > I want to deffer the rendering as much as possible, ideally, until we > know *exactly* what the user is expecting to view. This way, each > controller is able to customize the call for each view it needs. I'm > currently restricted because when executing the header webpage, for > example, i can't tell the include statement which webpage should be > included next. Deferring can be done with the Buffered property. But I don't see why Render() should not print the content-type header when it wants. The Content-type header won't change, whatever the page contents is. -- Beno?t Minisini From sebikul at ...176... Sun Sep 23 01:42:08 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 22 Sep 2012 20:42:08 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <505DAEE8.1020707@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> Message-ID: On Sat, Sep 22, 2012 at 9:28 AM, Beno?t Minisini wrote: > Le 22/09/2012 03:54, Sebastian Kulesz a ?crit : >> >> I already finished moving the header. I will start with the "wiki" >> part as soon as i get the dump, i'm currently doing the admin page and >> implementing the user management functions, along with the comments >> system. >> > > The dump is on the way... The dump worked just fine, but i need some pages that cover any variant that the current wiki can handle, like titles for v2 and v3, the components url (maybe the gb component), etc. > >> One question though, is there a way to prevent the Render() function >> of a webpage from printing the content-type header? >> I want to deffer the rendering as much as possible, ideally, until we >> know *exactly* what the user is expecting to view. This way, each >> controller is able to customize the call for each view it needs. I'm >> currently restricted because when executing the header webpage, for >> example, i can't tell the include statement which webpage should be >> included next. > > Deferring can be done with the Buffered property. But I don't see why > Render() should not print the content-type header when it wants. The > Content-type header won't change, whatever the page contents is. The header should be set using the Response.ContentType property, not by directly printing it. Besides. almost all template systems provide both options, to either return the contents of the template rendered (to be appended to other content) or to dispatch it directly to the user. I managed to fix the problem though, but i'm having some issues. The <<--CONTENTS-->> and <> tags don't seem to work. Anything after an include statement seems to be omitted. Also, debugging a webpage is *really* difficult. If there is an error, the buffer is flushed anyway, until the line where the error happened. If the error is before the headers are sent , then only this line is shown in the apache's error_log file: [Sat Sep 22 19:09:55 2012] [error] [client 127.0.0.1] Premature end of script headers: doc.cgi.gambas Thanks! > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > How fast is your code? > 3 out of 4 devs don\\\'t know how their code performs in production. > Find out how slow your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219672;13503038;z? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From gambas at ...1... Sun Sep 23 01:56:10 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sun, 23 Sep 2012 01:56:10 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> Message-ID: <505E501A.2040504@...1...> Le 23/09/2012 01:42, Sebastian Kulesz a ?crit : > On Sat, Sep 22, 2012 at 9:28 AM, Beno?t Minisini > wrote: >> Le 22/09/2012 03:54, Sebastian Kulesz a ?crit : >>> >>> I already finished moving the header. I will start with the "wiki" >>> part as soon as i get the dump, i'm currently doing the admin page and >>> implementing the user management functions, along with the comments >>> system. >>> >> >> The dump is on the way... > > The dump worked just fine, but i need some pages that cover any > variant that the current wiki can handle, like titles for v2 and v3, > the components url (maybe the gb component), etc. Normally you got the entire database, except the undo table. I can't give you more. > > The header should be set using the Response.ContentType property, not > by directly printing it. A WebPage sends HTML, so the content type is "text/html". As it is the default Response.ContentType, nothing is set. So what are you talking about? Why do you want to change it? > Besides. almost all template systems provide > both options, to either return the contents of the template rendered > (to be appended to other content) or to dispatch it directly to the > user. This is another point. But I'm on releasing a new version, so I can fix bugs, but not change everything. Why do you want to do something else than printing with WebPage? > > I managed to fix the problem though, but i'm having some issues. The > <<--CONTENTS-->> and <> tags don't seem to work. Anything > after an include statement seems to be omitted. I need some examples. Mine work! > > Also, debugging a webpage is *really* difficult. If there is an error, > the buffer is flushed anyway, until the line where the error happened. > If the error is before the headers are sent , then only this line is > shown in the apache's error_log file: > > [Sat Sep 22 19:09:55 2012] [error] [client 127.0.0.1] Premature end of > script headers: doc.cgi.gambas You can catch the error and print something in a log file. This is all you can do at the moment. This is the reason I want to try to embed a HTTP server and debug scripts directly from the IDE too! Regards, -- Beno?t Minisini From sebikul at ...176... Sun Sep 23 08:35:54 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sun, 23 Sep 2012 03:35:54 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <505E501A.2040504@...1...> References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> <505E501A.2040504@...1...> Message-ID: On Sat, Sep 22, 2012 at 8:56 PM, Beno?t Minisini wrote: > Le 23/09/2012 01:42, Sebastian Kulesz a ?crit : >> On Sat, Sep 22, 2012 at 9:28 AM, Beno?t Minisini >> wrote: >>> Le 22/09/2012 03:54, Sebastian Kulesz a ?crit : >>>> >>>> I already finished moving the header. I will start with the "wiki" >>>> part as soon as i get the dump, i'm currently doing the admin page and >>>> implementing the user management functions, along with the comments >>>> system. >>>> >>> >>> The dump is on the way... >> >> The dump worked just fine, but i need some pages that cover any >> variant that the current wiki can handle, like titles for v2 and v3, >> the components url (maybe the gb component), etc. > > Normally you got the entire database, except the undo table. I can't > give you more. My bad, phpmyadmin only imported a few rows because of the size of the database, i had to change the max_post_size to import the full dump. > >> >> The header should be set using the Response.ContentType property, not >> by directly printing it. > > A WebPage sends HTML, so the content type is "text/html". As it is the > default Response.ContentType, nothing is set. So what are you talking > about? Why do you want to change it? I was not talking about changing it, but preventing it from being printed. I got around this by using the header as a global template that is included by any other page. > >> Besides. almost all template systems provide >> both options, to either return the contents of the template rendered >> (to be appended to other content) or to dispatch it directly to the >> user. > > This is another point. But I'm on releasing a new version, so I can fix > bugs, but not change everything. I see. Don't worry though, as i said before, i managed without it, but it would be a nice feature ;) I have no hurry! > > Why do you want to do something else than printing with WebPage? > >> >> I managed to fix the problem though, but i'm having some issues. The >> <<--CONTENTS-->> and <> tags don't seem to work. Anything >> after an include statement seems to be omitted. > > I need some examples. Mine work! FIXED. There was a "tiny" mistake inside a template. Instead of <%= i was using <% to print the content of a variable. Clearly a mistake, but i could only find it by looking at where the output stopped! This bug has caused me a lot of trouble! > >> >> Also, debugging a webpage is *really* difficult. If there is an error, >> the buffer is flushed anyway, until the line where the error happened. >> If the error is before the headers are sent , then only this line is >> shown in the apache's error_log file: >> >> [Sat Sep 22 19:09:55 2012] [error] [client 127.0.0.1] Premature end of >> script headers: doc.cgi.gambas > > You can catch the error and print something in a log file. This is all > you can do at the moment. This is the reason I want to try to embed a > HTTP server and debug scripts directly from the IDE too! This is what i ended up doing, but as you just read, not every error can be detected using a catch statement yet. So far, the whole template is moved. The admin section is finished, i just need to define a scheme for the users table. I have a few points i'm not completely sure how to proceed: Users should be moved from the current authentication system to the database. Currently, the username is stored to identify the last editor of a page, or a previous version of a page. Ideally, this should be replaced by a JOIN query when user data is needed along with the page being requested. The best implementation would be to use the row id of the user, and not it's username, but this implies converting every row in the page and archive table. As a not-so-important benefit, some disk space would be saved. The conversion could be easily made with a script, but it will take some time, and it's not needed anyway, things will work just fine like this. Which way should i go? We previously stated that the new documentation syntax implemented in the IDE should be used as default. What do you think would be better, Implement the new wiki as a drop-in replacement for the current one and implement this later, or do everything now? I'm thinking about some small improvements, like page subscriptions to which the editors can subscribe to be notified about changes to specific pages, the comment system we previously mentioned. What do you think? I will upload what i have so far once i finish polishing the user management class. Thanks! > > Regards, > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > How fast is your code? > 3 out of 4 devs don\\\'t know how their code performs in production. > Find out how slow your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219672;13503038;z? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From sebikul at ...176... Wed Sep 26 06:50:29 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Wed, 26 Sep 2012 01:50:29 -0300 Subject: [Gambas-devel] gb.memcached Message-ID: Hi! In rev 5206 i added a memcached client. It's fully implemented and works perfect, except for one thing, i only managed to store strings :( It's not that i could not store other datatypes, in fact, it can (strings are easy to debug), but the memcached server relies in the client to send the byte size of the data it has to store, which proved to be really hard to calculate. It should be trivial to also implement other native datatypes (i.e. integers, floats, etc) with a *really big* if structure. But the problem was with arrays and collections. Although the interpreter can serialize the objects, i *previously* need to send the byte size of the blob. If you look at the code, you will see that in the Store() function i hard coded an if statement to calculate the offset based on the length of the string (using the "Binary Data Representation" wiki page [0] ). The same could be done with integers, for example, but couldn't find a way to do this for objects. My question is: Would it be possible to expose the (de)serialization functions and return the blob as an utf-8 string? It would then be trivial to implement the rest In the meantime, you are free to play only with strings ;) Thanks! [0] http://gambasdoc.org/help/cat/datarep?v3 From gambas at ...1... Wed Sep 26 13:59:10 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Wed, 26 Sep 2012 13:59:10 +0200 Subject: [Gambas-devel] gb.memcached In-Reply-To: References: Message-ID: <5062EE0E.8090603@...1...> Le 26/09/2012 06:50, Sebastian Kulesz a ?crit : > Hi! > > In rev 5206 i added a memcached client. It's fully implemented and > works perfect, except for one thing, i only managed to store strings > :( > > It's not that i could not store other datatypes, in fact, it can > (strings are easy to debug), but the memcached server relies in the > client to send the byte size of the data it has to store, which proved > to be really hard to calculate. It should be trivial to also implement > other native datatypes (i.e. integers, floats, etc) with a *really > big* if structure. But the problem was with arrays and collections. > Although the interpreter can serialize the objects, i *previously* > need to send the byte size of the blob. > > If you look at the code, you will see that in the Store() function i > hard coded an if statement to calculate the offset based on the length > of the string (using the "Binary Data Representation" wiki page [0] ). > The same could be done with integers, for example, but couldn't find a > way to do this for objects. > > My question is: Would it be possible to expose the (de)serialization > functions and return the blob as an utf-8 string? It would then be > trivial to implement the rest > > In the meantime, you are free to play only with strings ;) > > Thanks! > > [0] http://gambasdoc.org/help/cat/datarep?v3 > What's the use of memcached? -- Beno?t Minisini From gambas at ...1... Wed Sep 26 14:38:16 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Wed, 26 Sep 2012 14:38:16 +0200 Subject: [Gambas-devel] gb.memcached In-Reply-To: <5062EE0E.8090603@...1...> References: <5062EE0E.8090603@...1...> Message-ID: <5062F738.6060507@...1...> Le 26/09/2012 13:59, Beno?t Minisini a ?crit : > Le 26/09/2012 06:50, Sebastian Kulesz a ?crit : >> Hi! >> >> In rev 5206 i added a memcached client. It's fully implemented and >> works perfect, except for one thing, i only managed to store strings >> :( >> >> It's not that i could not store other datatypes, in fact, it can >> (strings are easy to debug), but the memcached server relies in the >> client to send the byte size of the data it has to store, which proved >> to be really hard to calculate. It should be trivial to also implement >> other native datatypes (i.e. integers, floats, etc) with a *really >> big* if structure. But the problem was with arrays and collections. >> Although the interpreter can serialize the objects, i *previously* >> need to send the byte size of the blob. >> >> If you look at the code, you will see that in the Store() function i >> hard coded an if statement to calculate the offset based on the length >> of the string (using the "Binary Data Representation" wiki page [0] ). >> The same could be done with integers, for example, but couldn't find a >> way to do this for objects. >> >> My question is: Would it be possible to expose the (de)serialization >> functions and return the blob as an utf-8 string? It would then be >> trivial to implement the rest >> >> In the meantime, you are free to play only with strings ;) >> >> Thanks! >> >> [0] http://gambasdoc.org/help/cat/datarep?v3 >> > > What's the use of memcached? > Other points: - As in gb.net.pop3, you must not make public symbols related to the underlying protocol. - Public constants must be named with the Pascal convention ('TheConstantName' and not 'THE_CONSTANT_NAME') Regards, -- Beno?t Minisini From sebikul at ...176... Sat Sep 29 00:52:08 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Fri, 28 Sep 2012 19:52:08 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> <505E501A.2040504@...1...> Message-ID: On Sun, Sep 23, 2012 at 3:35 AM, Sebastian Kulesz wrote: > On Sat, Sep 22, 2012 at 8:56 PM, Beno?t Minisini > wrote: >> Le 23/09/2012 01:42, Sebastian Kulesz a ?crit : >>> On Sat, Sep 22, 2012 at 9:28 AM, Beno?t Minisini >>> wrote: >>>> Le 22/09/2012 03:54, Sebastian Kulesz a ?crit : >>>>> >>>>> I already finished moving the header. I will start with the "wiki" >>>>> part as soon as i get the dump, i'm currently doing the admin page and >>>>> implementing the user management functions, along with the comments >>>>> system. >>>>> >>>> >>>> The dump is on the way... >>> >>> The dump worked just fine, but i need some pages that cover any >>> variant that the current wiki can handle, like titles for v2 and v3, >>> the components url (maybe the gb component), etc. >> >> Normally you got the entire database, except the undo table. I can't >> give you more. > > My bad, phpmyadmin only imported a few rows because of the size of the > database, i had to change the max_post_size to import the full dump. > >> >>> >>> The header should be set using the Response.ContentType property, not >>> by directly printing it. >> >> A WebPage sends HTML, so the content type is "text/html". As it is the >> default Response.ContentType, nothing is set. So what are you talking >> about? Why do you want to change it? > > I was not talking about changing it, but preventing it from being > printed. I got around this by using the header as a global template > that is included by any other page. > >> >>> Besides. almost all template systems provide >>> both options, to either return the contents of the template rendered >>> (to be appended to other content) or to dispatch it directly to the >>> user. >> >> This is another point. But I'm on releasing a new version, so I can fix >> bugs, but not change everything. > > I see. Don't worry though, as i said before, i managed without it, but > it would be a nice feature ;) > I have no hurry! > > >> >> Why do you want to do something else than printing with WebPage? >> >>> >>> I managed to fix the problem though, but i'm having some issues. The >>> <<--CONTENTS-->> and <> tags don't seem to work. Anything >>> after an include statement seems to be omitted. >> >> I need some examples. Mine work! > > FIXED. There was a "tiny" mistake inside a template. Instead of <%= i > was using <% to print the content of a variable. Clearly a mistake, > but i could only find it by looking at where the output stopped! This > bug has caused me a lot of trouble! > >> >>> >>> Also, debugging a webpage is *really* difficult. If there is an error, >>> the buffer is flushed anyway, until the line where the error happened. >>> If the error is before the headers are sent , then only this line is >>> shown in the apache's error_log file: >>> >>> [Sat Sep 22 19:09:55 2012] [error] [client 127.0.0.1] Premature end of >>> script headers: doc.cgi.gambas >> >> You can catch the error and print something in a log file. This is all >> you can do at the moment. This is the reason I want to try to embed a >> HTTP server and debug scripts directly from the IDE too! > > This is what i ended up doing, but as you just read, not every error > can be detected using a catch statement yet. > > So far, the whole template is moved. The admin section is finished, i > just need to define a scheme for the users table. > > I have a few points i'm not completely sure how to proceed: > > Users should be moved from the current authentication system to the > database. Currently, the username is stored to identify the last > editor of a page, or a previous version of a page. Ideally, this > should be replaced by a JOIN query when user data is needed along with > the page being requested. The best implementation would be to use the > row id of the user, and not it's username, but this implies converting > every row in the page and archive table. As a not-so-important > benefit, some disk space would be saved. The conversion could be > easily made with a script, but it will take some time, and it's not > needed anyway, things will work just fine like this. Which way should > i go? > > We previously stated that the new documentation syntax implemented in > the IDE should be used as default. What do you think would be better, > Implement the new wiki as a drop-in replacement for the current one > and implement this later, or do everything now? > > I'm thinking about some small improvements, like page subscriptions to > which the editors can subscribe to be notified about changes to > specific pages, the comment system we previously mentioned. What do > you think? > > I will upload what i have so far once i finish polishing the user > management class. > > Thanks! > >> >> Regards, >> >> -- >> Beno?t Minisini >> >> ------------------------------------------------------------------------------ >> How fast is your code? >> 3 out of 4 devs don\\\'t know how their code performs in production. >> Find out how slow your code is with AppDynamics Lite. >> http://ad.doubleclick.net/clk;262219672;13503038;z? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel I finished porting the wiki, everything works, users can login, edit their accounts, images are properly loaded from the db, the url scheme is the same as before, but i'm having trouble loading the pages. So far, if a page has an HTML compiled version stored, it is displayed, but if not, the raw code is shown. I have not managed to port the parser though, i need some help there. Where should i upload the code? New folder under /app ? I will setup a test server so you can test drive the wiki, i will post the link once i get the proxy to work (i'm behind NAT). From sebikul at ...176... Sat Sep 29 21:21:24 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 29 Sep 2012 16:21:24 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058D255.6050003@...1...> <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> <505E501A.2040504@...1...> Message-ID: Note any difference? -------------- next part -------------- A non-text attachment was scrubbed... Name: capt.png Type: image/png Size: 215073 bytes Desc: not available URL: From gambas at ...1... Sat Sep 29 22:36:49 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 29 Sep 2012 22:36:49 +0200 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> <505E501A.2040504@...1...> Message-ID: <50675BE1.6050308@...1...> Le 29/09/2012 21:21, Sebastian Kulesz a ?crit : > Note any difference? > Gives us an URL to connect, and show us the code! :-) -- Beno?t Minisini From sebikul at ...176... Sat Sep 29 23:10:04 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 29 Sep 2012 18:10:04 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: <50675BE1.6050308@...1...> References: <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> <505E501A.2040504@...1...> <50675BE1.6050308@...1...> Message-ID: On Sat, Sep 29, 2012 at 5:36 PM, Beno?t Minisini wrote: > Le 29/09/2012 21:21, Sebastian Kulesz a ?crit : >> Note any difference? >> > > Gives us an URL to connect, and show us the code! :-) > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > How fast is your code? > 3 out of 4 devs don\\\'t know how their code performs in production. > Find out how slow your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219672;13503038;z? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel Here is a temporary test URL: http://4ksg.localtunnel.com/ I will leave it online for a couple of hours. I created a test user so you could access the admin page and have an overview of the account page. Be careful not to remove it or change it's password. Please note that the site is tunneled from my work PC, try not to overload it ;) User: testuser1 Password: testuser1 I will upload the code once i finish polishing the error management, debug printing, and a few other leftovers. The encoder was copied verbatim, i couldn't manage to rework it without breaking it. There are some things that won't work correctly, maybe some links are broken, indexes aren't complete, etc. Thanks! From sebikul at ...176... Sat Sep 29 23:12:12 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 29 Sep 2012 18:12:12 -0300 Subject: [Gambas-devel] gambas wiki db scheme In-Reply-To: References: <5058DB5C.6090601@...1...> <5058ECDC.90606@...1...> <5059053A.7090500@...1...> <505A6A9B.1010500@...1...> <505C51FF.5040607@...1...> <505DAEE8.1020707@...1...> <505E501A.2040504@...1...> <50675BE1.6050308@...1...> Message-ID: On Sat, Sep 29, 2012 at 6:10 PM, Sebastian Kulesz wrote: > On Sat, Sep 29, 2012 at 5:36 PM, Beno?t Minisini > wrote: >> Le 29/09/2012 21:21, Sebastian Kulesz a ?crit : >>> Note any difference? >>> >> >> Gives us an URL to connect, and show us the code! :-) >> >> -- >> Beno?t Minisini >> >> ------------------------------------------------------------------------------ >> How fast is your code? >> 3 out of 4 devs don\\\'t know how their code performs in production. >> Find out how slow your code is with AppDynamics Lite. >> http://ad.doubleclick.net/clk;262219672;13503038;z? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel > > Here is a temporary test URL: http://4ksg.localtunnel.com/ > > I will leave it online for a couple of hours. I created a test user so > you could access the admin page and have an overview of the account > page. Be careful not to remove it or change it's password. Please note > that the site is tunneled from my work PC, try not to overload it ;) > > User: testuser1 > Password: testuser1 > > I will upload the code once i finish polishing the error management, > debug printing, and a few other leftovers. > The encoder was copied verbatim, i couldn't manage to rework it > without breaking it. There are some things that won't work correctly, > maybe some links are broken, indexes aren't complete, etc. > > Thanks! Sorry, old URL, here it is! http://57rm.localtunnel.com/ From gambas at ...1... Sat Sep 29 23:22:17 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sat, 29 Sep 2012 23:22:17 +0200 Subject: [Gambas-devel] New Gambas wiki Message-ID: <50676689.3060308@...1...> To Sebastian: Some pages work, some other don't (for example 'Gambas object models'). But I can't tell you why! Administration login is now useless as soon as you have session management. Just have a default administrator user. Where can I test the new markup syntax? How do you manage the compatibility between the old syntax and the new one? Maybe each page should have a boolean flag in the database : old syntax and new syntax. All new pages will use the new syntax by default. We should be able to switch between the old one and the new one with a checkbox. Did you think about a new look too? Tell us everything. :-) -- Beno?t Minisini From sebikul at ...176... Sun Sep 30 01:22:31 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 29 Sep 2012 20:22:31 -0300 Subject: [Gambas-devel] New Gambas wiki In-Reply-To: <50676689.3060308@...1...> References: <50676689.3060308@...1...> Message-ID: On Sat, Sep 29, 2012 at 6:22 PM, Beno?t Minisini wrote: > To Sebastian: > > Some pages work, some other don't (for example 'Gambas object models'). > But I can't tell you why! > > Administration login is now useless as soon as you have session > management. Just have a default administrator user. > > Where can I test the new markup syntax? How do you manage the > compatibility between the old syntax and the new one? > > Maybe each page should have a boolean flag in the database : old syntax > and new syntax. All new pages will use the new syntax by default. We > should be able to switch between the old one and the new one with a > checkbox. > > Did you think about a new look too? > > Tell us everything. :-) > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > How fast is your code? > 3 out of 4 devs don\\\'t know how their code performs in production. > Find out how slow your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219672;13503038;z? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel I couldn't do much work on the syntax because the current code is a spaghetti. I had to add some patches to workaround some path issues, but this meant some regressions in other parts of the code. As the CGI script stops when it hits any kind of error, pages that can't be parsed correctly are shown halved or blank, every case is different, and without breakpoints it's really hard to debug (i had to do more that 500 builds!). The new syntax would be trivial to implement, the only hard part is to write an script to convert the old one. Where i need some help is when parsing the special commands. I couldn't port the code that analyzes symbols, components and classes. With the login system, i guess the administrator link can be hidden except if the user has admin privileges :) IMO, it would be better to convert the whole database at once. If we do it on demand, taking into account the amount of pages the wiki has, it will lead to an enormous amount of fragmentation, and making any change to the syntax parser would be nearly impossible without breaking stuff. It should also be easier to catch and fix possible errors. I thought about giving the wiki a new look, but i'm not a web designer, my experience with HTML and CSS is really limited. But a redesign with a more modern interface would be great! The code is organized using an MVC design pattern with some global modules that handle the db scheme, the path requested, and how the page should be loaded. Pages and users are handled both in the same way. There is a module that provides helper functions and a class representing the properties of each one.They make loading, reading and saving data really easy. The template consists of a major header webpage, and tiny webpages that contain a really small amount of code. 4 controllers handle the loading of a webpage depending on what the user requested, and a main module does the bootstrapping and routing. Languages and versions are stored inside the session object, so there is no need to keep the long standing ?v3 in the links. I will push the code tomorrow night once it's somewhat usable. Hopefully, it may be used by others as a generic wiki system. Thanks! From gambas at ...1... Sun Sep 30 01:27:23 2012 From: gambas at ...1... (=?ISO-8859-1?Q?Beno=EEt_Minisini?=) Date: Sun, 30 Sep 2012 01:27:23 +0200 Subject: [Gambas-devel] New Gambas wiki In-Reply-To: References: <50676689.3060308@...1...> Message-ID: <506783DB.5010607@...1...> Le 30/09/2012 01:22, Sebastian Kulesz a ?crit : > > I couldn't do much work on the syntax because the current code is a > spaghetti. I had to add some patches to workaround some path issues, > but this meant some regressions in other parts of the code. As the CGI > script stops when it hits any kind of error, pages that can't be > parsed correctly are shown halved or blank, every case is different, > and without breakpoints it's really hard to debug (i had to do more > that 500 builds!). > The new syntax would be trivial to implement, the only hard part is to > write an script to convert the old one. > > Where i need some help is when parsing the special commands. I > couldn't port the code that analyzes symbols, components and classes. > > With the login system, i guess the administrator link can be hidden > except if the user has admin privileges :) > > IMO, it would be better to convert the whole database at once. If we > do it on demand, taking into account the amount of pages the wiki has, > it will lead to an enormous amount of fragmentation, and making any > change to the syntax parser would be nearly impossible without > breaking stuff. It should also be easier to catch and fix possible > errors. You're right. I will try to do the converter as soon as possible. As for special commands, I must think about it, because everything should be rewritten to be compatible with the markup syntax. > > I thought about giving the wiki a new look, but i'm not a web > designer, my experience with HTML and CSS is really limited. But a > redesign with a more modern interface would be great! I mainly think about new interface features, like posting comments. The good looking should be done only with CSS. > > The code is organized using an MVC design pattern with some global > modules that handle the db scheme, the path requested, and how the > page should be loaded. > > Pages and users are handled both in the same way. There is a module > that provides helper functions and a class representing the properties > of each one.They make loading, reading and saving data really easy. > > The template consists of a major header webpage, and tiny webpages > that contain a really small amount of code. > > 4 controllers handle the loading of a webpage depending on what the > user requested, and a main module does the bootstrapping and routing. > Languages and versions are stored inside the session object, so there > is no need to keep the long standing ?v3 in the links. We must be allowed to specify the gambas version and the language in the link, otherwise we can't post a link on a specific documentation for a specific version and a specific language on the web! -- Beno?t Minisini From sebikul at ...176... Sun Sep 30 01:54:09 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sat, 29 Sep 2012 20:54:09 -0300 Subject: [Gambas-devel] New Gambas wiki In-Reply-To: <506783DB.5010607@...1...> References: <50676689.3060308@...1...> <506783DB.5010607@...1...> Message-ID: On Sat, Sep 29, 2012 at 8:27 PM, Beno?t Minisini wrote: > Le 30/09/2012 01:22, Sebastian Kulesz a ?crit : >> >> I couldn't do much work on the syntax because the current code is a >> spaghetti. I had to add some patches to workaround some path issues, >> but this meant some regressions in other parts of the code. As the CGI >> script stops when it hits any kind of error, pages that can't be >> parsed correctly are shown halved or blank, every case is different, >> and without breakpoints it's really hard to debug (i had to do more >> that 500 builds!). >> The new syntax would be trivial to implement, the only hard part is to >> write an script to convert the old one. >> >> Where i need some help is when parsing the special commands. I >> couldn't port the code that analyzes symbols, components and classes. >> >> With the login system, i guess the administrator link can be hidden >> except if the user has admin privileges :) >> >> IMO, it would be better to convert the whole database at once. If we >> do it on demand, taking into account the amount of pages the wiki has, >> it will lead to an enormous amount of fragmentation, and making any >> change to the syntax parser would be nearly impossible without >> breaking stuff. It should also be easier to catch and fix possible >> errors. > > You're right. I will try to do the converter as soon as possible. > > As for special commands, I must think about it, because everything > should be rewritten to be compatible with the markup syntax. > >> >> I thought about giving the wiki a new look, but i'm not a web >> designer, my experience with HTML and CSS is really limited. But a >> redesign with a more modern interface would be great! > > I mainly think about new interface features, like posting comments. The > good looking should be done only with CSS. > I thought about that too. Comments and a subscription system so that authors can be notified of changes to certain pages. Maybe we should follow the Wikimedia style and add a Discussions and Subscriptions tab to each page? >> >> The code is organized using an MVC design pattern with some global >> modules that handle the db scheme, the path requested, and how the >> page should be loaded. >> >> Pages and users are handled both in the same way. There is a module >> that provides helper functions and a class representing the properties >> of each one.They make loading, reading and saving data really easy. >> >> The template consists of a major header webpage, and tiny webpages >> that contain a really small amount of code. >> >> 4 controllers handle the loading of a webpage depending on what the >> user requested, and a main module does the bootstrapping and routing. >> Languages and versions are stored inside the session object, so there >> is no need to keep the long standing ?v3 in the links. > > We must be allowed to specify the gambas version and the language in the > link, otherwise we can't post a link on a specific documentation for a > specific version and a specific language on the web! It is possible to do that, only that the data is stored in the session object and then the URL is cleaned ;) I did this so that search crawlers only detect one version of a webpage, instead of n*language + n*version. Is this ok? > > -- > Beno?t Minisini > > ------------------------------------------------------------------------------ > How fast is your code? > 3 out of 4 devs don\\\'t know how their code performs in production. > Find out how slow your code is with AppDynamics Lite. > http://ad.doubleclick.net/clk;262219672;13503038;z? > http://info.appdynamics.com/FreeJavaPerformanceDownload.html > _______________________________________________ > Gambas-devel mailing list > Gambas-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-devel From sebikul at ...176... Sun Sep 30 22:55:33 2012 From: sebikul at ...176... (Sebastian Kulesz) Date: Sun, 30 Sep 2012 17:55:33 -0300 Subject: [Gambas-devel] New Gambas wiki In-Reply-To: References: <50676689.3060308@...1...> <506783DB.5010607@...1...> Message-ID: On Sat, Sep 29, 2012 at 8:54 PM, Sebastian Kulesz wrote: > On Sat, Sep 29, 2012 at 8:27 PM, Beno?t Minisini > wrote: >> Le 30/09/2012 01:22, Sebastian Kulesz a ?crit : >>> >>> I couldn't do much work on the syntax because the current code is a >>> spaghetti. I had to add some patches to workaround some path issues, >>> but this meant some regressions in other parts of the code. As the CGI >>> script stops when it hits any kind of error, pages that can't be >>> parsed correctly are shown halved or blank, every case is different, >>> and without breakpoints it's really hard to debug (i had to do more >>> that 500 builds!). >>> The new syntax would be trivial to implement, the only hard part is to >>> write an script to convert the old one. >>> >>> Where i need some help is when parsing the special commands. I >>> couldn't port the code that analyzes symbols, components and classes. >>> >>> With the login system, i guess the administrator link can be hidden >>> except if the user has admin privileges :) >>> >>> IMO, it would be better to convert the whole database at once. If we >>> do it on demand, taking into account the amount of pages the wiki has, >>> it will lead to an enormous amount of fragmentation, and making any >>> change to the syntax parser would be nearly impossible without >>> breaking stuff. It should also be easier to catch and fix possible >>> errors. >> >> You're right. I will try to do the converter as soon as possible. >> >> As for special commands, I must think about it, because everything >> should be rewritten to be compatible with the markup syntax. >> >>> >>> I thought about giving the wiki a new look, but i'm not a web >>> designer, my experience with HTML and CSS is really limited. But a >>> redesign with a more modern interface would be great! >> >> I mainly think about new interface features, like posting comments. The >> good looking should be done only with CSS. >> > > I thought about that too. Comments and a subscription system so that > authors can be notified of changes to certain pages. Maybe we should > follow the Wikimedia style and add a Discussions and Subscriptions tab > to each page? > >>> >>> The code is organized using an MVC design pattern with some global >>> modules that handle the db scheme, the path requested, and how the >>> page should be loaded. >>> >>> Pages and users are handled both in the same way. There is a module >>> that provides helper functions and a class representing the properties >>> of each one.They make loading, reading and saving data really easy. >>> >>> The template consists of a major header webpage, and tiny webpages >>> that contain a really small amount of code. >>> >>> 4 controllers handle the loading of a webpage depending on what the >>> user requested, and a main module does the bootstrapping and routing. >>> Languages and versions are stored inside the session object, so there >>> is no need to keep the long standing ?v3 in the links. >> >> We must be allowed to specify the gambas version and the language in the >> link, otherwise we can't post a link on a specific documentation for a >> specific version and a specific language on the web! > > It is possible to do that, only that the data is stored in the session > object and then the URL is cleaned ;) I did this so that search > crawlers only detect one version of a webpage, instead of n*language + > n*version. Is this ok? > >> >> -- >> Beno?t Minisini >> >> ------------------------------------------------------------------------------ >> How fast is your code? >> 3 out of 4 devs don\\\'t know how their code performs in production. >> Find out how slow your code is with AppDynamics Lite. >> http://ad.doubleclick.net/clk;262219672;13503038;z? >> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >> _______________________________________________ >> Gambas-devel mailing list >> Gambas-devel at lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/gambas-devel I have just uploaded the code. Here is the schema of the users table: CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sUser` varchar(300) NOT NULL, `sPass` varchar(300) NOT NULL, `sEmail` varchar(300) NOT NULL, `iType` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; If using apache, you need to use mod_rewrite, place this inside a .htaccess file on the root folder of the server: RewriteEngine on RewriteCond $1 !^(cgi-bin) RewriteRule ^(.*)$ /cgi-bin/gb.wiki.gambas/$1 [L] Let me know what you think! I will add a comments system on the next commit.