At JP Technologies, programming is a fundamental keystone of our success. Customer expectations are dynamic. It goes with today's business climate. To have that edge over your competition can mean the difference between a profitable, happy customer and a costly, unhappy one. The ability to meet that dynamic head on translates into lower service costs, lowered man hours of labor and greater efficiency. Agile Methodology Development: Our programming approach ascribes to the Agile software development methodology model. Agile as we deploy is an incremental software development method that is lightweight. This brings individuals and interactions together over processes and tools. Our working software is developed and deployed rather than relying on reams of comprehensive documentation (when software is easy to use, you don't need lots of documents to kill trees, cost money and take up shelf space). Customer collaboration takes precedence over contract negotiation and response to change over following a rigid plan. --From the Agile Manifesto Disciplines iOS Ruby on Rails® We have completed projects for clients in a number of additional languages including: * Python * C * Java * PHP * Visual Basic A thorough software specification allows a good programmer to develop in any language. (We can help you with that, too!) iOS (source: Apple) The iOS runtime environment was designed to support the needs of mobile users and mobile devices. This environment requires you to design applications differently than you might for a desktop operating system. By design, iOS places restrictions on applications to more effectively manage resources and the overall security of the system. These restrictions encompass everything from the way you manage memory and files in your application to how your application interacts with the device hardware. Whether your needs call for simple information apps, or database embedded power apps, JP Technologies has a solution for you. “Ruby on Rails® is an open source web framework that is optimized for programmer happiness and sustainable productivity.“ Ruby on Rails® is intended to emphasize Convention over Configuration (CoC), and the rapid development principle of Don't Repeat Yourself (DRY). "Convention over Configuration" means a developer only needs to specify unconventional aspects of the application. For example, if there is a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table "products sold", that the developer needs to write code regarding these names. Generally, this leads to less code and less repetition. "Don't repeat yourself" means that information is located in a single, unambiguous place. For example, using the ActiveRecord module of Rails, the developer does not need to specify database column names in class definitions. Instead, Ruby on Rails can retrieve this information from the database based on the class name. Like many web frameworks, Ruby on Rails® uses the Model-View-Controller (MVC more information below) architecture pattern to organize application programming. Ruby on Rails includes tools that make common development tasks easier "out of the box", such as scaffolding that can automatically construct some of the models and views needed for a basic website.[15] Also included are WEBrick, a simple Ruby web server that is distributed with Ruby, and Rake, a build system, distributed as a gem. Together with Ruby on Rails® these tools provide a basic development environment. Ruby on Rails® relies on a web server to run it. We prefer Apache or nginx (either as a module - Passenger for example - or via CGI, FastCGI or mod_ruby). Ruby on Rails® makes extensive use of the JavaScript libraries Prototype and Script.aculo.us for Ajax. Ruby on Rails® 3.0 uses a technique called Unobtrusive JavaScript to separate the functionality (or logic) from the structure of the web page, and jQuery is fully supported as a replacement for Prototype. MVC: Though MVC comes in different flavors, control flow is generally as follows:
1. The user interacts with the user interface in some way (for example, by pressing a mouse button). 2. The controller handles the input event from the user interface, often via a registered handler or callback, and converts the event into an appropriate user action, understandable for the model. 3. The controller notifies the model of the user action, possibly resulting in a change in the model's state. (For example, the controller updates the user's shopping cart.) 4. A view queries the model in order to generate an appropriate user interface (for example the view lists the shopping cart's contents). The view gets its own data from the model. In some implementations, the controller may issue a general instruction to the view to render itself. In others, the view is automatically notified by the model of changes in state (Observer) that require a screen update. 5. The user interface waits for further user interactions, which restarts the control flow cycle. The goal of MVC is, by decoupling models and views, to reduce the complexity in architectural design and to increase flexibility and maintainability of code. . Finally, let us help you determine the needs for your organization. A sales consult, while a billable affair, can be rolled into your project scope and will provide you with professional, on budget and, most importantly, agile software development that works for you! Contact Stewart for more information at 877-297-4081 x101 |

