I was restarting the latest Ubuntu PHP nanoweb on my netbook when I saw a shell script error message. A run through the file nanoctl in my /usr/sbin revealed a few issues - particular if trying to use the simple status option. To make matters worse, the script is hard-coded with "lynx" as the browser name - while my Ubuntu defaults to Galeon (but I prefer Epiphany.)
If you care to look over an alternative, I have a version with extension .sh over at aule-browser.com
The edited version is set for the Gnome Epiphany browser for linux - you may wish to edit the BROWSER var. Note that the /usr/sbin/nanoweb file is what is commonly referred to as nanoweb.php
Like PHP programming, unix shell scripting sometimes can be a somewhat arcane art.
Showing posts with label PHP. Show all posts
Showing posts with label PHP. Show all posts
Thursday, December 17, 2009
Saturday, October 17, 2009
Concept Application Server
While looking at alternatives to Jetty and Geronimo with Jetty, I chanced upon the Concept Application Server. I will make an effort not to take the wrong tone.
A few tips: they offer the server and the client. Take the server. It comes with the client and you want them co-installed or no end of test scripts break (expect paths to be hard-coded and they will be the physical paths.)
The web site is in English but is in need of work. If you find the help CHM file, you will find that it even more in need of help.
The server and client are said to be RC (release candidates) but their own simplest examples crash the client on my XP desktop. Those examples were a mix of broken English and garish odd dialogs with senseless layout or radiobuttons which are not etc. etc. They say their current focus of effort is on their IDE, which I have not seen (it will not run.)
The choice of the name 'Concept' is so regrettable. It is the name of their alternative programming language. The architecture is something like client server for the web: applications reside on the server but execute in a client. So how to see this in action?
The server bin has options to install as an NT service. Once that is done, you can try
concept://localhost/Samples/test.con
in your browser.
You may do better than I did in Opera and IE 8 on XP if you are running Vista or Seven.
What was sad to see was the immense install: the server arrives with an immense pile of DLL's. The download was very slow in my case (they may be serving the file themselves) and I had already waited for the Client (my mistake, I guess.)
It remains unclear why anyone would adopt the Concept programming language unless they believe that programmers are what is needed: this looks like life without the web designers. But they also appear to be without UI designers. Perhaps they have an alternative to HTTP, but I cannot see it after a few hours.
Their blog has seen no addition in the past year (last entry Oct 2008) but it is tell-tale, quote
The worst is the commendation from a Romanian academic: the author of Concept is working to write the demo chat program in less that 1 minute - indeed, he will soon be able to write those few lines of code in less than 30 sec's. This feat may impress some CIO somewhere. And the team is brilliant and the team is dedicated. But a former president's wife was an all-but illiterate peasant who was awarded a PhD and headed chemical research. This is Romania. Not Montenegro, but still, caveat emptor. I follow a promising project in Sofia, Bulgaria. But things are not always what they seem in countries where for years saying made it so. Even in academic life.
If this server and client are 'release candidates' then I might also be the pope.
And if the documentation were not a big enough concern, I cannot find a test framework. A search in the CHM reveals an assert but no hint of Test, UnitTest, Builder, Factory.
The one large coding effort, GyroGears, is included in compiled form as is the PDFViewer. And this is open-source of some sort. The SOAP code that I looked at had no header for copyright or copy-left. A submarine patent nightmare, I assume.
The author's one PDF tells us that Concept is faster than Python. Which Python? Faster than PHP. Bare-bones open-source PHP? And why with Scala available, would we choose this form of DLL-hell on a Windows platform? And if so much like PHP in practice, why not opt for haXe?
Concept most often means "abstraction", an important CS notion. But today that means such things as the use of interfaces in the implementation of inversion of control. Patterns. Web containers. Geronimo. But what I find here is very unclear: the two documents offered are unencumbered by references.
At first I thought that Concept was like client-side Curl (http://www.curl.com/ and not haxx.se cURL) but shifted to the server-side with a focus on the delegate pattern. There is talk of an interface builder, but I see no sign of it yet in the code. I may dig a bit more, but the game appears not to be worth the candle.
For developers most at home with GTk, this may be of interest for a project in Romania with funding for 'made in Romania' systems. Perhaps someone at LtU would take a look at the merits of Concept as a programming language and the use of delegates in the CAS framework. Maybe someone can see more clearly which architectural challenges are being addressed and how to judge how effectively. Maybe this is a place for a cyclic dependency metric to be applied. Perhaps there is some research published in Romania or some tangible data on the one HR system which has been implemented (gone into production?) in CAS or using their GyroGears.
Someone may be unkind enough to notice the file extension; perhaps another unfortuate choice. What I suspect, is that CAS is a project solving a non-problem or another problem: the focus is on keeping the software on the server to prevent piracy and preclude updates while being performant to reduce server load. But the trips to the database are the usual issue, and I see nothing to address that in what I can tease out of the code and the limited docs.
A few tips: they offer the server and the client. Take the server. It comes with the client and you want them co-installed or no end of test scripts break (expect paths to be hard-coded and they will be the physical paths.)
The web site is in English but is in need of work. If you find the help CHM file, you will find that it even more in need of help.
The server and client are said to be RC (release candidates) but their own simplest examples crash the client on my XP desktop. Those examples were a mix of broken English and garish odd dialogs with senseless layout or radiobuttons which are not etc. etc. They say their current focus of effort is on their IDE, which I have not seen (it will not run.)
The choice of the name 'Concept' is so regrettable. It is the name of their alternative programming language. The architecture is something like client server for the web: applications reside on the server but execute in a client. So how to see this in action?
The server bin has options to install as an NT service. Once that is done, you can try
concept://localhost/Samples/test.con
in your browser.
You may do better than I did in Opera and IE 8 on XP if you are running Vista or Seven.
What was sad to see was the immense install: the server arrives with an immense pile of DLL's. The download was very slow in my case (they may be serving the file themselves) and I had already waited for the Client (my mistake, I guess.)
It remains unclear why anyone would adopt the Concept programming language unless they believe that programmers are what is needed: this looks like life without the web designers. But they also appear to be without UI designers. Perhaps they have an alternative to HTTP, but I cannot see it after a few hours.
Their blog has seen no addition in the past year (last entry Oct 2008) but it is tell-tale, quote
The Linux distribution is now up-to-date (or almost up-to-date).
The worst is the commendation from a Romanian academic: the author of Concept is working to write the demo chat program in less that 1 minute - indeed, he will soon be able to write those few lines of code in less than 30 sec's. This feat may impress some CIO somewhere. And the team is brilliant and the team is dedicated. But a former president's wife was an all-but illiterate peasant who was awarded a PhD and headed chemical research. This is Romania. Not Montenegro, but still, caveat emptor. I follow a promising project in Sofia, Bulgaria. But things are not always what they seem in countries where for years saying made it so. Even in academic life.
If this server and client are 'release candidates' then I might also be the pope.
And if the documentation were not a big enough concern, I cannot find a test framework. A search in the CHM reveals an assert but no hint of Test, UnitTest, Builder, Factory.
The one large coding effort, GyroGears, is included in compiled form as is the PDFViewer. And this is open-source of some sort. The SOAP code that I looked at had no header for copyright or copy-left. A submarine patent nightmare, I assume.
The author's one PDF tells us that Concept is faster than Python. Which Python? Faster than PHP. Bare-bones open-source PHP? And why with Scala available, would we choose this form of DLL-hell on a Windows platform? And if so much like PHP in practice, why not opt for haXe?
Concept most often means "abstraction", an important CS notion. But today that means such things as the use of interfaces in the implementation of inversion of control. Patterns. Web containers. Geronimo. But what I find here is very unclear: the two documents offered are unencumbered by references.
At first I thought that Concept was like client-side Curl (http://www.curl.com/ and not haxx.se cURL) but shifted to the server-side with a focus on the delegate pattern. There is talk of an interface builder, but I see no sign of it yet in the code. I may dig a bit more, but the game appears not to be worth the candle.
For developers most at home with GTk, this may be of interest for a project in Romania with funding for 'made in Romania' systems. Perhaps someone at LtU would take a look at the merits of Concept as a programming language and the use of delegates in the CAS framework. Maybe someone can see more clearly which architectural challenges are being addressed and how to judge how effectively. Maybe this is a place for a cyclic dependency metric to be applied. Perhaps there is some research published in Romania or some tangible data on the one HR system which has been implemented (gone into production?) in CAS or using their GyroGears.
Someone may be unkind enough to notice the file extension; perhaps another unfortuate choice. What I suspect, is that CAS is a project solving a non-problem or another problem: the focus is on keeping the software on the server to prevent piracy and preclude updates while being performant to reduce server load. But the trips to the database are the usual issue, and I see nothing to address that in what I can tease out of the code and the limited docs.
Monday, July 30, 2007
The Zend of PHP
July 2007 saw the release of the 1.00 'production' release of the Zend Framework. To quote:
One of the many criticisms of PHP as a scripting language for web development is the lack of enforcement of separation of content from logic. Now Zend proposes an MVC framework for PHP.
MVC (Model-View-Controller) is usually associated with Smalltalk and the thick client even before client-server, let alone the web and RIA. MVC used in conjunction with frameworks such as Struts for J2EE is MVC in name only. The concern is this: keeping domain models and business models from being entangled in presentation issues. The web MVC variant is usually called Model 2 MVC. In Smalltalk, the evolution of MVC to Morphic (from Self) or to M/V without controllers (Cincom Smalltalk Widgetry) is a topic in itself. Dolphin Smalltalk has MVP (Model-View-Presenter) and provides a nice introduction at their Object-Arts site.
PHP starts with a bad rap for not having adequate modularity: it still lacks namespaces. Smalltalk itself is evolving to embrace namespaces and away from classic MVC so we have something curious occurring.
Here is what the Zend Framework appears to offer. I quote:
<qt>
Put simply; models contains your domain specific code such as a user class, views contains your templates, or view scripts as they are called, and controllers contains the files that process data to and from the models and views. Following this simple practice not only introduces a design pattern into your programming arsenal, but also organizes your code in a way that makes it more maintainable than a great many existing PHP applications.
</qt>
What we really have here is the front controller pattern that arose in J2EE in frameworks such as Struts where it is combined with a Command pattern.
In terms of security, PHP with the Zend Framework remains a filtering approach. What is not yet clear to me is how this chaining of filters and validators constitutes a framework. A Framework is not just a library of classes and certainly not a cookbook of recipes. A Framework can usually be understood as providing for the interoperation of services identified with components by enforcing constraints. The constraint might be: this service must be presented as an interface (now you are constrained to implement against a minimal abstraction.)
To have a framework it is not enough to have a class library providing a mechanism which removes ? and & from PHP URL's or adding more filtering.
You may want to check out the Zend Framework site with its webinar and demo wiki application. The site also links to manuals for the API and a developer reference. The latter opens on Access Control Lists; scroll down to find Controllers. What is missing is an overview of the framework such as is readily communicated by the Rails folks promoting Ruby. Having the familiar directory structure in itself does not establish 'convention-over-config'.
Perhaps whether you have 'c-over-c' comes down to 'GUI-shootouts', but that sort of thing does not impress architects concerned about security+maintainability. Saying you are using a 'framework' only goes so far. If what you meant is a library of classes that will be familiar to Struts developers, then why not Java with JavaServer Faces with jars, ears and Maven with the Spring 2.0 framework for security? What ties anyone to PHP in a business setting?
PHP has likley gotten to where it is because it posed no steep learning curve. And then it got a bad case of bloat. What results could be called 'wading through muck' rather than 'slogging uphill'. But when I arrive to perform on a maintenance contract, knowing what the framework was and that it was respected means a whole lot. Knowing what libraries were used gives very little indication of what you are in for.
The Zend Framework project has developed solutions to solve frequent needs of web application developers, including the following areas:
* Powerful MVC framework
* Database access solution that balances ORM with efficiency and simplicity
* Lucene-compatible search engine
* Advanced I18N support
* Robust authentication/authorization classes and input filtering
* Rich web services client interfaces, including Google Data APIs and StrikeIron
* Many other useful classes to make you as productive as possible
* Thorough and high-quality test suites and documentation
* Open-source development process with an active community provides continuous review and testing
One of the many criticisms of PHP as a scripting language for web development is the lack of enforcement of separation of content from logic. Now Zend proposes an MVC framework for PHP.
MVC (Model-View-Controller) is usually associated with Smalltalk and the thick client even before client-server, let alone the web and RIA. MVC used in conjunction with frameworks such as Struts for J2EE is MVC in name only. The concern is this: keeping domain models and business models from being entangled in presentation issues. The web MVC variant is usually called Model 2 MVC. In Smalltalk, the evolution of MVC to Morphic (from Self) or to M/V without controllers (Cincom Smalltalk Widgetry) is a topic in itself. Dolphin Smalltalk has MVP (Model-View-Presenter) and provides a nice introduction at their Object-Arts site.
PHP starts with a bad rap for not having adequate modularity: it still lacks namespaces. Smalltalk itself is evolving to embrace namespaces and away from classic MVC so we have something curious occurring.
Here is what the Zend Framework appears to offer. I quote:
<qt>
Put simply; models contains your domain specific code such as a user class, views contains your templates, or view scripts as they are called, and controllers contains the files that process data to and from the models and views. Following this simple practice not only introduces a design pattern into your programming arsenal, but also organizes your code in a way that makes it more maintainable than a great many existing PHP applications.
</qt>
What we really have here is the front controller pattern that arose in J2EE in frameworks such as Struts where it is combined with a Command pattern.
In terms of security, PHP with the Zend Framework remains a filtering approach. What is not yet clear to me is how this chaining of filters and validators constitutes a framework. A Framework is not just a library of classes and certainly not a cookbook of recipes. A Framework can usually be understood as providing for the interoperation of services identified with components by enforcing constraints. The constraint might be: this service must be presented as an interface (now you are constrained to implement against a minimal abstraction.)
To have a framework it is not enough to have a class library providing a mechanism which removes ? and & from PHP URL's or adding more filtering.
You may want to check out the Zend Framework site with its webinar and demo wiki application. The site also links to manuals for the API and a developer reference. The latter opens on Access Control Lists; scroll down to find Controllers. What is missing is an overview of the framework such as is readily communicated by the Rails folks promoting Ruby. Having the familiar directory structure in itself does not establish 'convention-over-config'.
Perhaps whether you have 'c-over-c' comes down to 'GUI-shootouts', but that sort of thing does not impress architects concerned about security+maintainability. Saying you are using a 'framework' only goes so far. If what you meant is a library of classes that will be familiar to Struts developers, then why not Java with JavaServer Faces with jars, ears and Maven with the Spring 2.0 framework for security? What ties anyone to PHP in a business setting?
PHP has likley gotten to where it is because it posed no steep learning curve. And then it got a bad case of bloat. What results could be called 'wading through muck' rather than 'slogging uphill'. But when I arrive to perform on a maintenance contract, knowing what the framework was and that it was respected means a whole lot. Knowing what libraries were used gives very little indication of what you are in for.
Subscribe to:
Posts (Atom)