I am really eager to see what will happen out of this:
I am really eager to see what will happen out of this:
Gr8 movie! I love their office.
I have found a gr8 explanation of how FED in the US is operating.
In the first video I watched over the weekend, Damien Katz, the creator of CouchDB, gives some advices as about when one should use the document database, which CouchDB is. He suggests to look at the real world task that is being computerized. If one would use a number of pieces of paper that are passed around to different people than is a every good indication that document based database will suit the solution well. In addition, if the piece of information is to be taken offline to be edited and later on replicated to the server to reflect the most recent version of the document, CouchDB is something to consider. Katz said that with CouchDB he is trying to bring the Lotus Notes model of document centered database to the open source world. He touches a bit upon Google’s BigTable: he believes that it’s only benefit is scalability and that CouchDB is trying to address different problems. CouchDB allows to create a view of the data whereas BigTable if just “this big key value table store.”
By the way, I also learned that Exchange was suppose to be an MS version of IBM Lotus Notes document database but it did not work out quite that well.
In the 2nd video, the presentation given by Katz at RubyFringe, I did not expect to find the great presentation about doing what you like and enjoying life (reaally something I did not expect). The stuff was good but not much practical info about CouchDB.
While browsing through planet@CouchDB I have found an excellent post about how CouchDB can make all ORM/GORM stuff obsolete. Since CounchDB does not enforce particular schema, my understanding is that all the document that are stored can be quite different i.e. contain different set of attributes. That really makes sense but I am still not sure if this is good – for sure it makes things easier in the beginning. The question that bothers me is how that affects the system once its running. What if we store a number of documents with one set of attributes and then update the view/editor to include some more. Data will be inconsistent and may lead to unpredicted results. It requires some additional checking for the presence/notnull/whatever parameters when working on the view part. If we were to use traditional/relational/schema model It would be required to alter the schema before new version could be up and running. It would be an explicit step to make sure that all the old data is suitable for new view.
Resources
Measuring performance
Starting with GWT 1.5.3 it is not possible to read data from other servers than local. It makes development a bit tedious since if one was to do a test run of an app it would have to be first compiled (which takes sooo long) and then transferred to the server that all the XMLHttpRequest would be going to. Obviously we need some kind of proxy that will help us to fool the browser. Apache mod proxy fits great. Not to have repeat the same installation and configuration procedure on our all development machines I have created a VMWare vm that contains all the necessary things. Below are the steps that I followed.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.100.3
netmask 255.255.255.0
gateway 192.168.100.2
a2enmod proxy_httpa2enmod vhost_aliasAddDefaultCharset off
Order deny,allow
Deny from all
#Allow from .example.com
Allow from all
<VirtualHost *:80>
ServerAdmin spam@poland.pl
ServerName gwtproxy.poland.pl
ServerAlias gwtproxy
ErrorLog /var/log/apache2/gwtproxy.poland.pl-error_log
CustomLog /var/log/apache2/gwtproxy.poland.pl-access_log common
ProxyPass /pl.poland.cube.Cube http://192.168.100.1:8888/pl.poland.cube.Cube
ProxyPassReverse /pl.poland.cube.Cube http://192.168.100.1:8888/pl.poland.cube.Cube
ProxyPass /alfresco http://repo.cube.poland.pl:1030/alfresco
ProxyPassReverse /alfresco http://repo.cube.poland.pl:1030/alfresco
DocumentRoot /var/www
</VirtualHost>
192.168.100.3 gwtproxy gwtproxy.mxts.pl
When run the hosted browser should run app via proxy and it should be possible to read data from http://gwtproxy/alfresco/* which is actually on completely different server.
Sources
Solution on google groups
My database name is erace (not to have to type the actual name of the database each time I invoke psql).
dataSource {
pooled = true
driverClassName = "org.postgresql.Driver"
username = "erace"
password = "passw0rd"
}
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'
}
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop','update'
url = "jdbc:postgresql:erace"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:postgresql:erace"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:postgresql:erace"
}
}
}
It looks like terms such as cloud computing, SAAS, web services, REST, loose coupling and similar are popping here and there more and more often. Unlike in case of SOA big shmuzz buzz (see my favorite site on SOA) the above mentioned terms do have some meaning and can take some shape or form. Today the time to explore REST has come.
Intro
The definition of REST can be found in the number of places. Below I highlight only the things that I consider worth to emphasize.
REST (Representational State Transfer) is:
Further REST:
Defining REST
The name of the resource that is and item to be manipulated is a noun for example http://unisalveo.org/food (if to return single entity) or http://unisalveo.org/foods (if to return collection). We can “stack” a number of nouns on top of each other for a example http://unisalveo.org/foods/newest or http://unisalveo.org/foods/drinks.
The operation that is to be performed on the item is a verb. There is a number of “out of the box” operations that can be performed on the given resource (noun) with HTTP protocol namely:
Those operations roughly correspond to CRUD database operations operations or COPY, PASTE OVER, PASTE AFTER, and CUT. It looks like it is encouraged to use only those verbs in order to perform the operation on the resources. I thought that it makes sense to build URI’s such as http://unisalveo.org/food/search but it looks like it is discouraged. It is better to add parameters (constraints) to GET request in order to limit the data returned by the server (are HTTP methods really enough for all the possible operations?!).
In addition, constructing the mixes of nouns and verbs in a single word in the URI, for example http://unisalveo.org/searchForFood, is also considered a bad practice.
Other findings
Some links
Roy Fielding Dissertation
REST Triangle: nouns, verbs and content type spaces
REST Methods (verbs)
RESTful searching
Google RESTful search API
RESTful Design
URL Construction
XML.com Resources on REST
Intro into the AtomPub by Google
Intro into REST by Google
I guess thats enough for today
.
When reading about exodus of staff from Google to Microsoft I have found very valuable information about how to make a great connection between software team and the client.
It was my plan to create a software organization for some time now. I have been collecting interesting writings on the subject. About a year ago I have found a set of questions that every candidate should ask their potential employer. I knew it would be fun to answer them myself from the employer perspective
. Here they come along with answers.
Uff… that was rather painful reality check. Lets make things harder — in the comments to the original questions I have found some more suggestions about how to make a better code. Lets try to go through those as well.
4 out of 12 – ouch again. It looks like there are still quite a few things that should be improved
. I guess I better prepare some plan with the things that should be done. See next posts.
If this is way way that the message will be spread I am pretty sure it will be heard.
Check out this one as well.
Interview with Aimee Allen on The Alex Jones Show.
I am wondering how IPv6 will influence the ways in which I will be able to find about the things that are true and important.