Object Oriented Programming Concepts

These are some concepts and principles object oriented programming, basic ones.

Concepts

Object
An abstraction of a domain-problem entity
Class
Programmatic representation of an object. A class is the blueprint from which individual objects are created.
Instance
Instance is a particular ‘occurrence’ of a class in runtime.

Principles

Principle Reference
Information Hiding
Information hiding in computer science is the principle of segregation of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed. The protection involves providing a stable interface which protects the remainder of the program from the implementation http://bit.ly/7HgfrJ
Polymorphism In the context of object-oriented programming, is the ability of one type, A, to appear as and be used like another type, B. Polymorphism is not the same as method overloading or method overriding. Polymorphism is only concerned with the application of specific implementations to an interface or a more generic base class. Method overloading refers to methods that have the same name but different signatures inside the same class. Method overriding is where a subclass replaces the implementation of one or more of its parent’s methods. Neither method overloading nor method overriding are by themselves implementations of polymorphism.
http://bit.ly/90rX6
Decoupling Basically, it’s interdependence between systems. In simple terms, if you have class A that uses class B then that’s coupling. Class A can’t work without class B. If there is a common interface between the two, then you could theoretically change class B and still have it work with class A as long as the interface is still there.
http://bit.ly/91Vx2D
Data encapsulation
It´s the mechanism whereby details of implementation are kept hidden from the user. http://bit.ly/5XXJG6


Want to see what your blog talks about?

Juan Moran Blog word cloud

Juan Moran Blog word cloud

I´ve been using wordle to create “word clouds”. It´s a funny thing to do since it displays an image with those words  that have greater prominence  in the source text (for instance, your blog RSS). You can tweak your clouds with different fonts, layouts, and color schemes.

Techcamp Costa Rica Presentations Summary

This is a summary of some presentations given yesterday, congratulations to the people that worked on TechCamp :)

Scrum

Speaker: @agilenature

The scrum presentation reinforces our knowledge about the set of assets (such as the backlog, burn down charts,etc) and actions required to manage a project.

The definitions or scrum roles (product owner, scrum master, developer, tester), the required actions (stand up meetings, effort estimation) can help us to better face a project as a cohesive team and better manage those projects where complexity is high due to not fully understood requirements and/or unknown technology needed to satisfy product objectives.

The main objectives are:

* Give the project visibility (stakeholders have from the beginning a clear state of the project progress)
* Get rid of uncertainty (the product owner is highly involved in the project)
* Manage change.

Since scrum is a extensive topic, the presenter gave us several topics that we can research for further knowledge about the methodology, such as:

Further reading:


Appcelerator

Speaker: @yeco

It talked about the Appcelerator Titanium Mobile which is a framework for building professional-grade applications for the iPhone and Android.

Titanium Mobile offers a way to create native mobile applications using HTML and Javascript. There is access to all native features, like geo-location, local filesystem and database access, and multi-touch and accelerometer controls, but without having to write native code. And because it’s cross-platform, a single codebase will work for both the iPhone and Android Phones.

Further reading:


Firefox Add-on development

The presentation wasn’t about how to develop an add-on for firefox, but it gave a general perspective about the development process and the Mozilla Foundation effort to offer high quality addons by checking and reviewing every development posted here: https://addons.mozilla.org/

The speaker talked about the business opportunity because there are not many companies developing Firefox add-ons and this software has a lot of potential to enhance user experience and productivity when surfing the web.

As for the career path for a Add-on Developer, the speaker talked about his and how it went from being a contributor in 2001 to a Mozilla employee.

Further reading:

Speaker: Jorge@mozilla.org

HTML5 & CSS3

The html is going to make web pages more semantic and browsers will provide more functionality making pages more lightweight even when there is video/audio streaming so HTML5 aims to reduce the use of proprietary plug-in-based rich Internet application (RIA) technologies such as Adobe Flash.

HTML5 provides new elements that reflect typical usage on current web pages. Some of them are semantic replacements for common uses of
element, such as (website navigation block), and . There is new functionality through a standardized interface, such as the and elements.

There are dropped elements including purely presentational elements such as and
, whose effects are achieved using CSS.

Further reading:


Roadmap to optmize php code ““Micro” Optimizations That Matter”

This a nice & short article: “Micro Optimizations That Matter” by Brandon Savage.

It’s like roadmap to optimize your web applications rather than the php code by itself, “micro” tricks that can definitely impact performance positively.

Improve Mysql Performance

The best answers come from measurable data, don’t let the “I think that “, “I believe”, “IF…” drive your decisions when it comes to performance.

Where to look? Well, don’t try to reinvent the wheel, there are plenty of tools that can provide enough data so you can make informed decisions regarding mysql performance.

SQL Performance Tips: There is lack on benchmarks about most of the suggestions here, still, many of them are obvious and can help you about what to test.

How to profile a query in mysql: this is self explanatory :)

Using the New MySQL Query Profiler: SQL diagnostic tool that assists in the debugging and analysis of running SQL.

Semantic Search Engines

There two new semantic search engines around: Wolfram Alpha and Google Squared (yet to be released)


Introduction to Wolfram|Alpha by Stephen Wolfram

Here’s a hands on of google squared

PHP frameworks overview

Here is an excelent php frameworks overview

What’s a backlog?

Taken from agilesoftwaredevelopment.com there i s good definition about Backlog. It’s Scrum artifact. it’s a list of things needed to be done; however, it’s more than a to-do list.

First of all, it’s a high-level document, because it’s made and managed mainly by the product owner which is the voice of the customer so the list of items to be developed are prioritized by business value.

Taken from agilesoftwaredevelopment.com:

  • Product backlog always lists items adding value for the customer. It includes functional requirements and non-functional requirements. It can also include items required by the team, but only the ones that will eventually bring value to the customer, e.g. taking into use a continuous integration server in order to guarantee the continuous end product quality.
  • Product backlog cannot include concrete low level tasks and requests for building the intermediate artifacts. For example, it cannot include request for producing the design document unless customer has to ship it further for some purpose.
  • Product backlog utilizes the simplest and the most effective way for prioritizing requests – a simple list. Such a method does not allow for having 100 absolute max priority features and forces the product owner to actually make decisions about the feature priorities.
  • The higher the items are located on the product backlog, the more detailed they are. Items for the closest couple of months are usually quite detailed, while items that will be worked on in some 6-12 month can be defined very broadly and imprecisely.
  • When there are several interdependent teams in the company or department, typically they all have a single product backlog and pull their work from it.
  • Product backlog does not typically include the detailed requirement information. Usually the final requirement details are figured out with the help of the customer, when the requirement is being implemented.

HTML 5

Here is some information regarding html5 that I’ve found surfing the web. Regards

View more presentations from teleject.

kin3tico.com

GREAT website from one of my best friends which is (also) one of the best web designer around…. this site looks amazing, without a doubt, the best website from Costa Rica.

Check it out
http://www.kin3tico.com

Return top

Information

Lacoste Shoes Saletory burch flatsNike Dunk Highchristian louboutin pumpstory burch bagsCheap Air max shoesnike air max 2010air force 1christian louboutin uktory burch shoeslebron shoesLacoste Shoes 2010