AncaA's tech journal

08 Nov, 2007

OpenGL ES Implementations

Posted by: Anca Alimanescu In: OpenGL

Vincent Mobile 3D Rendering Library

The Vincent Mobile 3D Rendering Library an OpenGL ES implementation that can be used for both commercial and non-commercial projects without having to pay license fees. Another great feature is that the library arrives standard with window management functions, allowing applications to be setup quickly and easily.

Hybrid’s “Rasteroid” Implementation

The Hybrid implementation is a commercial library which can be used freely for non-commercial use. License fees need to be payed if you wish to develop a commercial application using this library. The Hybrid implementation does offer advantages over the Vincent library. Some advantages I have come across include a higher frame rate for tested devices as well as the ability to use a depth buffer with greater precision.

GLUT|ES

The GLUT|ES library will be used in conjunction with these implementations as it greatly simplifies the creation and usage of an OpenGL ES window.

  • Share/Bookmark

08 Nov, 2007

What is OpenGL ES ?

Posted by: Anca Alimanescu In: OpenGL

OpenGL ES (OpenGL for Embedded Systems) is a subset of the OpenGL 3D graphics API designed for embedded devices such as mobile phones, PDAs, and video game consoles. It is defined and promoted by the Khronos Group, a graphics hardware and software industry consortium interested in open APIs for graphics and multimedia.

In creating OpenGL ES 1.0, much functionality has been stripped from the original OpenGL API and a little bit added.

The definition given by the Khronos group:

« OpenGL® ES is a royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems – including consoles, phones, appliances and vehicles. It consists of well-defined subsets of desktop OpenGL, creating a flexible and powerful low-level interface between software and graphics acceleration. OpenGL ES includes profiles for floating-point and fixed-point systems and the EGL™ specification for portably binding to native windowing systems. OpenGL ES 1.X is for fixed function hardware and offers acceleration, image quality and performance. OpenGL ES 2.X enables full programmable 3D graphics. OpenGL SC is tuned for the safety critical market. » (http://www.khronos.org/opengles/)

Several versions of the OpenGL ES specification now exist. OpenGL ES 1.0 is drawn up against the OpenGL 1.3 specification, OpenGL ES 1.1 is defined relative to the OpenGL 1.5 specification and OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification. Version 1.0 and 1.1 both have common and common lite profiles, the difference being that the common lite profile only supports fixed-point in lieu of floating point data type support, whereas common supports both.

OpenGL ES 1.1 adds to the OpenGL ES 1.0 functionality by introducing additional features such as mandatory support for multitexture, better multitexture support (with combiners and dot product texture operations), automatic mipmap generation, vertex buffer objects, state queries, user clip planes, and greater control over point rendering.

The common profile for OpenGL ES 2.0, publicly released in August 2005, completely eliminates all fixed-function API support in favor of an entirely programmable model, so features like the specification of surface normals in the API for use in a lighting calculation are eliminated in favor of abstract variables, the use of which is defined in a shader written by the graphics programmer.

OpenGL ES also defines an additional safety-critical profile that is intended to be a testable and demonstrably robust subset for safety-critical embedded applications such as glass cockpit avionics displays.

OpenGL ES has been chosen as the official graphics API in Symbian OS.

  • Share/Bookmark

07 Nov, 2007

Google’s Android

Posted by: Anca Alimanescu In: Mobile Dev

  • Share/Bookmark

07 Nov, 2007

What is GLUT ?

Posted by: Anca Alimanescu In: OpenGL

GLUT is a library written by Mark Kilgard that addresses these issues by providing a platform-independent interface to window management, menus, and input devices in a simple and elegant manner.

Using GLUT comes at the price of some flexibility.Because OpenGL doesn’t provide routines for interfacing with a windowing system or input devices, an application must use a variety of other platform-specific routines for this purpose.

The result is nonportable code.Furthermore, these platform-specific routines tend to be full-featured, which complicates construction of small programs and simple demos.

  • Share/Bookmark

07 Nov, 2007

What is OpenGL?

Posted by: Anca Alimanescu In: OpenGL

“OpenGL is the premier environment for developing portable, interactive 2D and 3D graphics applications. Since its introduction in 1992, OpenGL has become the industry’s most widely used and supported 2D and 3D graphics application programming interface (API), bringing thousands of applications to a wide variety of computer platforms. OpenGL fosters innovation and speeds application development by incorporating a broad set of rendering, texture mapping, special effects, and other powerful visualization functions. Developers can leverage the power of OpenGL across all popular desktop and workstation platforms, ensuring wide application deployment.” – OpenGL.org

The 2 most commonly used graphics APIs are OpenGL and Microsoft’s DirectX.

A great advantage of OpenGL is that it is platform independent, allowing your applications to be developed for Windows, Linux, Mac OS and other operating systems.

Porting a graphics program requires only that you install the appropriate OpenGL libraries on the new machine. The application itself requires no change: it calls the same functions in this library with the same parameters, and the same graphical results are produced.

OpenGL is often called an « application programming interface »(API). The interface is a collection of routines that the programmer can call, along with a model of how the routines work together to produce graphics. The programmer sees only the interface, and is therefore shielded from having to cope with the specific hardware work in a somewhat restricted fashion.

Many modern graphics systems are windows-based and manage the display of multiple overlapping windows. Using OpenGL the user can move the windows around the screen using the mouse and can resize them.

Another property of most windows-based programs is that they are event driven. This means that the program responds to various events, such as mouse click, the press of a keyboard key, or the resizing of the screen window.

The three main OpenGL libraries of interst are:

  1. Basic GL : The fundamental OpenGL library. It provides functions that are a permanent part of OpenGL. Each OpenGL function starts with the characters «GL ».

  2. GLUT: the GL Utility Toolkit, is in connection with opening windows, developing and managing menus, and managing events.

  3. GLU: the GL Utility Library, which provides high-level routines to handle certain matrix operations, the drawing of quadratic surfaces such as spheres and cylinders. GLU also assists in the decomposition of nonconvex and nonsimple polygons into simple shapes such as triangles.

  4. GLUI: the User Interface Library, as long as GLUT is available, GLUI will operate properly.The GLUI provides programmers with the ability to add sophisticated controls and menus to their OpenGL applications.

  • Share/Bookmark

05 Nov, 2007

Brief start-up in organizing the Testing Department

Posted by: Anca Alimanescu In: Software testing

A few years ago I used to work in a young IT Company as a software developer at first. As the company grew, the need of a specialized Testing Department grew even larger so I was appointed as the Testing/Quality Assurance Manager. I was to coordonate a team that had no experience related to what software testing really was.

So, me and my team, started from the scratch trying to organize the testing department according to the needs and the budget of a 20 programmers company.

First we started doing some research regarding what testing actually was and how to organize the testing process as efficient as posible. We started looking for some standards and software quality assurance books and as well some tools that we could use.

One of the definitions of quality assurance was:

The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.”( ISTQB definition).

If you search on the internet I’m sure you will find many definitions of what testing actually is. So, the software testing is a continous effort that should be sustained along the entire cycle of the project.

As we have seen the fundamental test process consists of the following main activities:

  • planning and control;
  • analysis and design;
  • implementation and execution;
  • evaluating exit criteria and reporting;
  • test closure activities.

As a result, we decided that the quality assurance team should be involved starting with the preliminary phases of the project in order to be properly planned and executed.
The test plan would usually specify aspects like number of human resources used, tools, allocation of time and tasks, deadlines, deliverables that should be provided to the client, the frequency and the way the activity reports would be provided to the client.

After planning and analizing the project, the time was to start performing the actual tests. For organizing our work, writing the testing scenarious, assigning the test cases and gathering statistics and managing the various builds of the tested application we found lots of tools, some of them very expensive, others free.

Of course we started focusing on finding a free tool and TestLink(http://testlink.org/wordpress/) seemed to be exactly what we needed. This proved to be very useful for us, the testers, and for me to be able to allocate the resources to the tested projects properly and to offer to the clients a proffesional way of generating the test cases.

When performing the test cases usualy faults or bugs start to show up and developers should be informed as soon as possible about them in order to be able to fix them.

DEFECT = FAULT = BUG = PROBLEM – A flaw in a component or system that can cause the component or system to fail to perform its required function, e.g. an incorrect statement or data definition. A defect, if encountered during execution, may cause a failure of the component or system.

So we needed another tool that would help both us and the developers to organize the bugs found and we decided to use Bugzilla(http://www.bugzilla.org/). It is an web application that proved to be very efficient in reporting bugs to groups of developers, showing the status of the bugs and providing a pattern that would describe the steps needed for an accurate report of the bugs.

Below is an example of how the testig process should be managed using Bugzilla(http://www.bugzilla.org/) as a bug & task manager tool.

Regardless of the types of tests performed, weather manual or automatic, these proved to be some of the basic steps needed to start organizing the software department.

  • Share/Bookmark

Mobile Phones

The mobile phone or cell phone is a long-range, portable electronic device used for mobile communication. In addition to the standard voice function of a telephone, current mobile phones can support many additional services such as SMS for text messaging, email, packet switching for access to the Internet, and MMS for sending and receiving photos and video.
http://en.wikipedia.org/wiki/Mobile_phone

Smartphone

A smartphone is a mobile phone offering advanced capabilities beyond a typical mobile phone, often with personal computer like functionality. There is no industry standard definition of a smartphone.

For some, a smartphone is a phone which runs complete operating system software providing a standardized interface and platform for application developers. For others, a smartphone is simply a phone with advanced features.

The most common operating systems (OS) used in smartphones are:

  • Symbian OS from Symbian Ltd. (72.4% Market Share)
  • Linux operating system (13.3% Market Share)
  • Windows Mobile from Microsoft (6.1% Market Share)
  • RIM BlackBerry operating system (5.3% Market Share)
  • Palm OS developed by PalmSource (now a subsidiary of ACCESS). (1.6% Market Share)
  • OS X from Apple Inc. (1.3% Market Share)

Market Share data from Canalys report “Worldwide smart mobile device market, Canalys Q2 2007″
http://en.wikipedia.org/wiki/Smartphone

PDA

Personal digital assistants (PDAs) are handheld computers, but have become much more versatile over the years. PDAs are also known as pocket computers or palmtop computers.

PDAs have many uses: calculation, use as a clock and calendar, accessing the Internet, sending and receiving e-mails, video recording, typewriting and word processing, use as an address book, making and writing on spreadsheets, scanning bar codes, use as a radio or stereo, playing computer games, recording survey responses, and Global Positioning System (GPS).

Newer PDAs also have both color screens and audio capabilities, enabling them to be used as mobile phones (smartphones), web browsers, or portable media players. Many PDAs can access the Internet, intranets or extranets via Wi-Fi, or Wireless Wide-Area Networks (WWANs). Many PDA’s employ touch screen technology.

Typical features:

Currently, a typical PDA has a touch screen for entering data, a memory card slot for data storage and at least one of the following for connectivity: IrDA, Bluetooth and/or WiFi.

However, many PDAs (typically those used primarily as telephones) may not have a touch screen, using softkeys, a directional pad and either the numeric keypad or a thumb keyboard for input.

Software typically required to be a PDA includes:
an appointment calendar, a to-do list, an address book for contacts
some sort of note program. Connected PDAs also typically include e-mail and Web support.

The most common operating systems (OS) used in PDAs are Palm OS – owned by PalmSource, Windows Mobile Professional and Classic for use on Pocket PCs, (based on the Windows CE kernel) – owned by Microsoft, BlackBerry OS – owned by Research In Motion.

Many operating systems based on the Linux kernel – free (not owned by any company) These include:

  • Familiar (comes in three flavours: GPE, Opie and barebone),
  • OpenZaurus (for Zaurus PDAs),
  • Intimate (for PDAs with an exceedingly large amount of memory),
  • Symbian OS (formerly EPOC) owned by Motorola, Panasonic, Nokia, Samsung, Siemens and Sony Ericsson

http://en.wikipedia.org/wiki/Personal_digital_assistant<

Pocket PC

A Pocket PC, abbreviated P/PC or PPC, is a hardware specification for a handheld-sized computer (Personal digital assistant) that runs the Windows Mobile operating system. It may have the capability to run an alternative operating system like NetBSD or Linux. It has many of the capabilities of modern desktop Pcs.

Currently there are thousands of applications for handhelds adhering to the Microsoft Pocket PC specification, many of which are freeware. Some of these devices also include mobile phone features. Microsoft compliant Pocket PCs can also be used with many other add-ons like GPS receivers, barcode readers, RFID readers, and cameras.

According to Microsoft, the Pocket PC is “a handheld device that enables users to store and retrieve e-mail, contacts, appointments, tasks, play multimedia files, games, exchange text messages with Windows Live Messenger (Formally known as MSN Messenger), browse the Web, and more.

For instance, any device which is to be classified as a Pocket PC must:

  • Run Microsoft’s Windows Mobile, PocketPC edition
  • Come bundled with a specific suite of applications in ROM. Note : the name Windows Mobile includes both the Windows CE operating system and a suite of basic applications along with a specified user interface.
  • Include a touchscreen
  • Include a directional pad or touchpad
  • Include a set of hardware application buttons
  • Be based on an ARM version 4 compatible CPU, Intel XScale CPU, MIPS CPU or SH3 CPU. (As of the Pocket PC 2002 specification, ARM-based CPUs are required.)

Operating System Versions:

Microsoft’s current release is Windows Mobile 6, internally code-named “Crossbow’”. It was officially released by Microsoft on February 12, 2007 and Microsoft has promised that it will work seamlessly with Windows Vista.

Windows Mobile 5.0 marked the convergence of the Phone Edition and Professional Edition operating systems into one system that contains both phone and PDA capabilities.

A ‘Phone’ application was included in the OS, and all PIM applications were updated to interface with it. Windows Mobile 5.0 was compatible with Microsoft’s Smartphone operating system and was capable of running Smartphone applications.
http://en.wikipedia.org/wiki/Mobile_phone

  • Share/Bookmark

03 Oct, 2007

Model-Based Testing: Black or White?

Posted by: Anca Alimanescu In: Software testing

  • Share/Bookmark

29 Sep, 2007

Google TechTalks: XP and Agile Testing

Posted by: Anca Alimanescu In: Software testing


* XP = eXtreme Programming

  • Share/Bookmark

29 Sep, 2007

Google TechTalks: Becoming a software testing expert

Posted by: Anca Alimanescu In: Software testing

  • Share/Bookmark

Arhive

Mobile Barcode

qrcode

This is a 2D-barcode containing the address of my mobile site.If your mobile has a barcode reader, simply snap this bar code with the camera and launch the site.

About me

Client-focused software engineer with high intellectual mobility and experience in international teams.

Some of my interests are open innovation, design patterns, networking, personal branding, blogging and study of foreign languages.

Enjoy your visit and don’t hesitate to leave me a feedback!


Software entropy

1. A computer program that is used will be modified.

2. When a program is modified, its complexity will increase, provided that one does not actively work against this.

Switch to our mobile site