B4A

Mostrando las entradas con la etiqueta zinc. Mostrar todas las entradas
Mostrando las entradas con la etiqueta zinc. Mostrar todas las entradas

domingo, abril 29, 2012

Open Projects, the financial side.

I love and believe in the open source, but happens that any person need the money to survive. No matter if was explained 1000 times, but open don't means free or, don't means that a developer developing open source software don't need money.

Many of open developers are financed by big companies that have a different scale business model, others by different sort of organizations, but others (as myself) need to administer very well the free time, to end up investing some (almost always few) hours to develop open projects, contribute with other open projects, write documentation, etc.

I know, is the backside of the open source world (and I really don't believe that the money may be made only by the support around the software. Or, if may be done, is another business, I'm a programmer, not a supporter).

This is a small thought of a sunday morning where I'm (again) trying to decide if invest my time in interesting open projects or do (boring) business stuff (As SEO optimizations, web sites updates, adwords campaigns, and many other things focused in have more sales of my closed product PasswordsPro).

Another side of the question is that if some of own open projects get some audience and are used by some people, they have needs....need new features, they need new versions and, of course, support....conforming a non easy equation for a (small and independent) open source developer.

With these thoughts in mind I decided to make here a list of open projects I'm working on and that I dedicate the time I can and also enable donations through PayPal to help me to spend more time on these projects.

The list of open projects I'm working on is:

Pharo in OpenShift: This is a project to make possible to run Pharo headless in the Red Hat Cloud PaaS OpenShift. I already proved that it's possible, but a lot of work is still needed to polish and automate the project using the DIY cartridge. Would be nice also that Red Hat could provide native support (I'm willing to help, of course!) for Smalltalk (Pharo / Squeak / Cuis) being that the Cog VM run smoothly here.

XMLRPC Support for Pharo: I need to port it to current 1.4 Pharo version and adapt to Zinc.

Crytography: We need to improve the Cryptography support in Pharo/Squeak/Cuis.

Pharo: I try to help (ok not much in the last times) in fix bugs and such sort of things.

Cuis: This is an argentinian project and I think is very promising in different aspects, but is needed adapt packages to run on it (As web servers, web frameworks, cryptography, and a long etc).

If you want to help donating some money (specially companies), here the button:


And it will be also in the specific pages of the projects.

Thanks for read!

domingo, noviembre 13, 2011

Zinc HTTP Components

From the Zinc page:


Zinc HTTP Components is an open-source Smalltalk framework to deal with the HTTP networking protocol. This is a new project (started September 1st 2010) that is currently under heavy development. Our long term goals are very ambitious: we want to reach the level of functionality, scope, architectural clarity and maturity of the Apache HTTP Components library. Our short term goal is to offer working HTTP client functionality to support fundamental features in a Smalltalk image. For the time being, Pharo is our reference platform.


Today I read a mail from the author of Zinc, Sven Van Caekenberghe in the Pharo list, about the status of the framework then I had the idea of write this small article highlighting the Zinc features and status.


Next the afore mentioned mail:


Hi,

This is a list of the most important changes to Zn since May 1st 2011:

- added brand new ZnClient to replace all other HTTP clients (who became deprecated)
 this is an object to build, execute and process HTTP client requests,
 it has a rich protocol to construct requests and to access responses,
 it has various error handling options,
 it can reuse an existing connection to a specific host:port,
 it can handle sessions, cookies, redirects and authentication,
 it has many options (settings) with sensible defaults.
 here is the simplest example:
     ZnClient new
       get: 'http://zn.stfx.eu/zn/numbers.txt'
 and here is an example using some features to make a better HTTP request:
     ZnClient new
       systemPolicy;
       accept: ZnMimeType textPlain;
       http;
       host: 'zn.stfx.eu';
       path: 'zn/numbers.txt';
       contentReader: [ :entity | entity contents lines collect: [ :each | each asNumber ] ];
       ifFail: [ :exception | self inform: 'I am sorry: ', exception printString ];
       get
- added support so that HTTPS works out of the box if Zodiac is present.
 this should work when Zodiac is loaded and the necessary plugin is present:
     ZnClient new
       url: 'https://www.google.com/search';
       queryAt: 'q' put: 'Pharo Smalltalk';
       get
- added a new subclass, ZnManagingMultiThreadedServer, that keeps track of open
 worker connections so that they can be properly closed when needed.
 to use this server with the Zn Seaside adaptor, you can do this:
     ZnZincServerAdaptor new
       port: 8080;
       serverClass: ZnManagingMultiThreadedServer;
       start
- refactored ZnNetworkingUtils, it is now (also) a factory for creating socket streams
- added ZnDispatcherDelegate for straight-forward dispatching to mapped urls (thx Nick Ager)
- cleanup of the cookie handling API
- fixed support for HTTP proxies (thx Alexandre Bergel for reporting)
- localhost URLs are now excluded from being proxied
- working around SocketStream>>#atEnd issues by using #peek
- implemented support for proxies that require authorization
- introduced ZnConnectionTimeout process variable
- added ManagedServers class variable to ZnServer to dispatch the system's
 #startUp/#shutDown messages to all server instances that are #register-ed
- implemented client side support for If-Modified-Since and Not Modified
- changed ZnMimePart>>#fieldValueString to return an empty string instead of 'nil'
 when the field is empty or absent (Thx Lukas Renggli)
- added support for dealing with certain defaults in ZnUrl
- added code to throw a ZnMissingHost exception when a bogus ZnUrl is used to connect to a HTTP host
- added ZnMimeType wildcard constants #any and #text
- added ZnHttpUnsuccessful and ZnUnexpectedContentType exceptions
- added a nice example to ZnEasy class>>#getPng: (Thx Lukas Renggli)
- added ZnUtils class>>#parseHttpDate: for use in ZnCookie>>#expiresTimeStamp
- added optional delegate #close-ing to ZnServer hierarchy
- added some Pharo 1.2 compatibility (ZnMultiThreadedServer>>#exceptionSet:)
- lots of small fixes, cleanup and improved documentation.



And don't miss the Getting Started guide!


Indeed this is a very good framework, not only by its features, but also for it technical quality and the commitment of the developer, taking care of the support and documentation.

I should reimplement XMLRPC to use Zinc. Hope to have time soon.

Pic Info: 
http://www.flickr.com/photos/kodomut/3950770038/ / License