Sunday, April 26, 2009

Where Is All Six Arrows On Ultimate I

Strike Engineering Languages: Past, Present and Future Oracle buys Sun

writing this post the article thread I've read in dosideas.com. In it, we talk about the skills they should have a programmer for a relevant curriculum in the next five years:
1. One of the "Big 3" (Java,. NET, PHP)
2. Rich Internet Applications (RIA - Rich Internet Applications)
3. Web Development
4. Web Services
5. Human Skills
6. A dynamic programming language and / or functional
7. Agile
8. Domain knowledge
9. "Hygiene" development
10. Mobile Development


From this article, I discussed with some colleagues and I took some conclusions that I want to express here.

I think the article is a little better, given the arbitrariness with which you have chosen to acquire knowledge. In fact, many of these skills are to be taken in the present (I would meet from 9 to 10).

I will focus on point 1, one of the "Big 3" (Java,. NET, PHP). Before talking about "greatness" should be defined the criteria for comparison. If greatness is the demand for programmers in absolute terms (not percentage), if those are the three major languages, no doubt. But they are now. In fact, in 1999, for example, were not, and maybe in five years are not.

In 1999, Java and PHP were at the point you are now Python and Ruby, and. NET does not exist. By then demanded C + +, Oracle Forms, Delphi and Visual Basic. Some people mistakenly think that the demand for Cobol was huge, when it was very similar to what is now Legacy Software and maintenance of critical applications (such as banks). It is true that by then the web-oriented dynamic languages \u200b\u200b(PHP and ASP) experienced very strong growth.

Looking ahead, there are already come a long way thanks to the contributions of the different types of languages \u200b\u200bin the world of software development. I think the future of Python is very promising, as well as recycling points already made good Java, provides simplicity and increased performance of the developers who use this language. Python will grow in proportion to what Google keep betting on him. But I think Ruby will stay on the road for many reasons (stand, complexity, maturity, anarchy ...).

There are people who think that PHP is anarchic and has been widely accepted, but what makes Ruby on PHP? Showed that PHP could be made websites dynamic, multi-platform and free software very easily. What makes Ruby on PHP I've not yet discovered.

Also there are saying that Java is the new Cobol or C + + again, and again I disagree. To some extent that Cobol is the number of applications that have been developed (beyond criticality). In addition, Java code is more maintainable, thanks to the three-tier architecture (although the pattern is independent of language, Cobol applications were developed by mathematicians and physicists who did not know design patterns and other software engineering techniques) being able to even change the GUI leaving business logic and / or domain as layers that can be maintained or not independently. Sincerely

Cobol has never made a big deal. If it were not implemented as a corporate solution for banks, we would agree or not his name.

For C + + revolutionized the graphic above applications. Its object orientation was artificial because of backwards compatibility with C (Ansi C is entirely contained in C + +). Debugging an error because a "pointer crazy, could consume weeks, and that's without mentioning that you were never quite sure that the arrangement would not lead to side effects. Actually the language "pata negra", which is still required in many companies (particularly microelectronics) is the C. Contributions

Java to the world of software development: Java

has not stalled, it has adapted to the Aspect Oriented Programming (beyond object orientation with the Spring framework, for example), and has the broader development community of the world. Java

also includes: desktop applications, web, mobile and services. That is, you can do anything.

If so, we add its contribution to the world of Object Orientation (OO first language was pure and it worked), object persistence (Hibernate, iBatis, JPA), ORM (Hibernate), web services (REST, SOAP with Axis), graphics frameworks (SWT, RCP, AWT, Swing), MVC frameworks (Struts), web frameworks (JSF, Struts, Struts 2), full adaptation to UML , unit testing (JUnit, TestNG), Loge in console (Log4J), two fantastic multilingual free IDEs (Netbeans and Eclipse), and all this multiplatform (transparently to the programmer), we can conclude that the contribution to the world of Java development software is far superior to what he could bring in their day, Cobol, and C + +. Current Market



now 60% of projects we receive are in Java (Web + Mobility). I was surprised see how PHP has grown to 30% in times of crisis. I would like to find an explanation for this growth (perhaps as a consequence of Drupal and Joomla CMS that have achieved a high degree of maturity). However projects. NET has been reduced. This can make sense because of the cost of licenses, and should be mitigated by Mono (open platform for application development. NET), but not be its place finish, although C # I think a very good language.

demand I would like Python, in order to have some time to develop, but currently there is none (in my case, and in Andalusia in general). Future



Within five years there will continue to work for PHP and Java developers.

the developer better trained, more mature, should include several languages \u200b\u200band frameworks, that will give a perspective and a superior experience to master only one language. That has been my personal experience.

I think it will become less important "for what is scheduled, the paradigm that the tendency is Software as a Service (SaaS) - Cloud Computing ( here is a first approximation). I bet on SOA (service oriented architecture), where what matters are the services and interoperability, not the software of the "guts".

Monday, April 20, 2009

My Toddler Soaks Diapers



News very important and quite unexpected, at least for me: Oracle has bought

Sun. It was expected that IBM did that to maintain a double line (free and proprietary software), the operation was seen as a big bet on free software IBM. After consummation of the transaction Oracle, which we all know, is committed to the sale of licensed products, the story changes dramatically.

We must be very attentive to the next moves. In my opinion the following may occur:

  • phasing that Oracle will support Sun in its technologies (Java, MySQL, LWUIT, Netbeans ...). In that case it could happen:

      1. - That some government change its policy of free software and proprietary software suit. In my opinion, this is unlikely, but if it does, we should go for more mature proprietary software, such as. NET, for example.

        - What new projects are still underway in free software (Python, PostgreSQL, for example). In that case we should adapt to these technologies, as Google is doing.

    That
  • Oracle enters fully into the world of free software. In that case, what would you do with MySQL, Oracle's current main competitor? How would I wrote this to here?

Yaoi Anime Serien Stream

Databases: Past (Oracle), Present (MySQL), future ("db4o?)

Recently, both the British government as the German have a firm commitment to invest in Free Software by gradually migrating its proprietary systems.

In my visit to the Accenture Delivery Center in Malaga , assured me that proprietary software licenses were 25 percent more expensive in 2008. Proprietary software costs that were already quite high in 2007.

One of the most widely spread proprietary products, even where it has a firm commitment to free software, is the management system of Oracle databases. Its main strengths are its robustness, security, and support. Its main flaws are its slowness, complexity and the large amount of resources consumed. These defects should be added to its high cost, both licenses and maintenance, requiring specially trained personnel to administer this type of database.

I think the end of Oracle's golden age has arrived. There is a large database management systems offer "free" with no defects in Oracle, and whose virtues are tailored to what is needed in most information systems developed. May not reach the power of Oracle, but neither need, and we also offer other benefits such as speed, or simplicity, involving extra cost savings.

will remain Oracle databases, as there are still plenty of work for Cobol programmers as there are critical applications, whose migration is hard to take, but it sure will be adopted in most new developments.

I think a good solution is to develop with MySQL, especially since it was bought by Sun, and became more mature. It is easy to install, maintain, the system requirements for operation are minimal, fast, stable ... "Is all I need" and is Free Software. What else do you want?

Most current developments for the Andalusian are done with MySQL, though Hank (Framework for the Development of Andalusia) recommend PostgreSQL (we know how is the policy of development of the government ...) .

As MySQL is the present, do not think it's the future, or at least not be the MySQL we know today. Moreover, no sense that we use the paradigm of Object Oriented Programming, then have to make mapping to convert the objects to records, even if this frameworks like Hibernate, which represent a black box to the developer as far as mapping concerns. Hibernate no longer a "trick", but increasingly offer more features, such as second-level cache, session management ... but have a cost, especially in performance. Moreover, these functions must be assumed, for the most part, by the DBMS.

In my company we have taken development using object-oriented DBMS, db4o , which has a licensing system identical to that of MySQL (dual licensed GPL / commercial). The results have been very good. It is a lightweight database, simple and fast, but do not use SQL operations on objects to persist. With db4o got no need to duplicate the data model of the application domain is ie, diagram no E / R (all are objects). We do not have to sacrifice performance as when we use an ORM. We can use a PDA in one device with Android, on Windows, Linux ... Is a fairly new, and still has a long way to go, but, there must be "shots."

post post Note:
do not know how this can affect to what I have.

Tuesday, April 14, 2009

Alexis Texas Talks About Black Guys

The other leg of the Career Collaborative Portals II

On 13 March I was talking to Javier Rubio, Director General of MP Systems, Maturation on the Millennium Development Team Soltel.

During the meeting, I had the opportunity to show our SWOT matrix team (Weaknesses, Threats, Strengths, Opportunities). We were discussing our previous scenario, indicators, actions, objectives, applied to the development team.

After explaining, I had the opportunity to listen carefully to their advice. Everything we focused on technique and technology. Which is a prerequisite for a company that is dedicated to the ICT sector (IT elsewhere in the world), but not enough. I was counting on his experience in several projects, in which the contributions of a leader with high level of knowledge in different business models (biology, law, pharmacy), had been final for achieving success in development.

That is, if in addition to a high level of empathy with the customer, we have an accurate understanding of their needs, how your business behaves, and how to optimize processes, we are closer to offer a truly useful product. For all this, of course, be necessary to have technical skills to convert knowledge into tangible development. But as I said before, technical knowledge is not enough.

Obviously we can not know all models of all clients. That means acquiring knowledge rather heterogeneous, with the capacity that may get over time, experience, training and concerns.

is very positive to have indicators to weigh the technical advances of developers. It would be great to have a team with Level 4 (indicating the Software Excellence in our team), but if that is not accompanied by an added value, our table is lame. We just might be efficient producers, which is something, but we want more. We must get to design indicators that are measured in other knowledge-based skills and general skills that complement our existing technical indicators.

These indicators, as well as technicians, should be totally objective and measurable. As will overcome steps, include the possibility that there separation code. Although now we are passionate about the development itself (in all its phases), it seems likely that as they mature personally and professionally, let us make way for new generations to do the work forward base and capacity, and workers 'mature' be providing else of value to the company.

Monday, April 6, 2009

East West Eye Institute

Collaborative Portals

On 20 March I was at the seminar "Management of Collaborative Portals" organized Avante in their installations of the Cartuja Technological Park 93. Emergy Ignacio Garcia Montoya, made a very interesting paper on the technology related to job sharing Online.

In this post, I'll talk about it, and will bring my particular view on the subject. According

thematic and / or objectives, we make the following division:

- Portales horizontal (general): Facebook, Tuenti, Second Life, ...
- Portales vertical (thematic):
- Professional Networks: Xing, Neuron, LinkedIn
- Network Blogs: Blogger, MySpace, Weblogs, theorizes
- Networks Business: Ciao!, Ebay
- Networks Image: Flickr, Picasa , Natuba
- Networks for Citizen Participation: Participate in Andalusia
- ...

the study conducted by The Cocktail Analysis in 2008, is drawn that social networks are in full swing, and are widely exploited by the Internet, but what happens to the collaborative portal for corporate environments?

There are several studies that show how beneficial it is for the enterprise portals such (cost reduction, increased productivity, improved security ,...). Too tedious to do the post, will not go into numbers, but I want to comment that the world's largest companies (Google, Sun, Nike, IBM, Cisco), have successfully implemented this type of software.

There are several products for each function or objective to be filled, then where do start?


Step 0 - Defining users:
- If users are members of the company: we will want to get Communication, Cooperation, Community (which are the three "c" of social networks).
- If users are technology partners or external agents, we will want to get Community, Loyalty, Links.
- customers, potential employees, potential partners, we will want to get visibility, Advertising, Branding.



Step 1 - Defining features:

- Blogs / Microblogging
- Virtual Room Conference Calls
- RSS Syndication
- Calendars
- Manage tasks and time
-
Content Management - E-Learning Platform
- Links / Shares
- Board News / Announcements
-
's Directory - Forums
- ...



Step 2 - The project:

- There is no all-encompassing platform.
- Use existing products and make integration work for not reinventing the wheel.
- modularity, we can provide future scalability.
- Interoperability and use of open formats.
- Supporting community development and support.
- Best if with Free Software.


As development, it could start from scratch, as they did in Digg, or Facebook, but it is advisable to rely on a development framework: Django (Python), JSF (Java), Zend (PHP), OpenSocial (Google's web framework social).

If we rely on software that is already developed, we can use based on a Content Management System (CMS).

What to choose?
reaching this decision must be answered the following questions: What

dominate my technicians? What is
which gives me more functionality using standard modules?
What is a deployment less expensive?
What is less costly maintenance?
Which provides better interoperability with third parties?
Which has a higher learning curve?
What technology can be strategic for the company?


In terms of technical features, we can support the comparator CMS Matrix


There are 1040 entries CMSs for comparison.

What would I use for a collaborative portal? Within

team may raise doubts concerning:

- The holiday of a member, on he will be out of the office, or meetings. You must have shared agendas. A good option would be to use Google Calendar .

- The modules have a project, tasks to be performed by each member, or if there are errors to be resolved. Ie you need a tool to manage the project. We currently use Trac, but I want to evaluate Redmine .

- Where to find information. We use a wiki (Soltelpedia) and a mailing list, but in our collaborative portal should include a link manager as Delicious.

- Virtual Meetings. Soltel Webex is a partner of , which is a fantastic tool for video conferencing, desktop sharing ...

- Document management, for which Alfresco is a good solution.

- central program to integrate with other tools. This is the portal itself, and taking into account the characteristics and demands of a Collaborative Portal (modularity, scalability ,...), Liferay is the best benefits to provide, and also meets the needs of our CMS. I spoke a few weeks ago on this .

I think if our project, takes into account all these factors, will be successful. The modern company claims this tool type, according to the times. Communication, collaboration, centralization, personalization are key to improving efficiency at individual and collective.