This is my presentation about CFWheels at CFObjective ANZ, November 2010, Melbourne, Australia.
ColdFusion on Wheels (CFWheels), is an elegant framework inspired by Ruby on Rails.
From the new consensus based clustering to active data exploration, RavenDB 3.5 contains quite a lot of new features, improvement and fixes. In this keynote Oren Eini will showcase RavenDB 3.5 new features. Including SLAs, I/O monitoring, improved performance and stability, smarter replication, and more.
Oren Eini discusses the next major version of RavenDB 4.0, running on the CoreCLR, and skim over topics of performance (much higher), flexibility and ease of use.
DBFlow is an open source ORM library for Android that aims to provide maximum performance through annotation processing and lazy loading. It includes basic functions like model creation, queries, transactions, as well as advanced features like observables, migrations, triggers and indexes. Benchmark tests showed it to outperform other ORM libraries for operations like loading and saving large numbers of records. While powerful, it has a steep learning curve and documentation could be improved with working examples.
This document discusses various options for deploying Rails applications in production environments, including Platform as a Service (PaaS) options like Heroku, shared web hosting, virtual private servers, and infrastructure as a service providers like Amazon Web Services. It also covers selecting and configuring a web server (Nginx or Apache), Rails application servers (Unicorn, Thin, Passenger), and deployment tools like Capistrano. The ideal scalable architecture uses a content delivery network, load balancers, and multiple application servers behind a reverse proxy like Nginx.
The document discusses Apache Camel, an open-source integration library that can be used to integrate disparate systems that use different protocols and data formats. It provides an overview of what integration is, describes how Camel works using a domain-specific language and components, and demonstrates how to define simple routes using Java or XML. The presentation concludes with information on management and tooling support for Camel.
Reuven Lerner's first talk from Open Ruby Day, at Hi-Tech College in Herzliya, Israel, on June 27th 2010. An overview of what makes Rails a powerful framework for Web development -- what attracted Reuven to it, what are the components that most speak to him, and why others should consider Rails for their Web applications.
The document discusses various JVM web frameworks including Play, Ratpack, Spring Boot, and Rails. It provides code examples for templating, databases, servers, and other aspects of each framework. It compares the strengths and weaknesses of frameworks like Play, Ratpack, and Spring Boot. It emphasizes that modern JVM web development uses languages like Scala, Groovy, JRuby and Clojure rather than traditional Java web apps with WAR files. The document encourages the audience to pick a framework like Play, Ratpack or Rails and provides the basic commands to create a new project in each.
Automating JavaScript testing with Jasmine and Perlnohuhu
This document discusses automating JavaScript testing using Jasmine and Perl. It introduces Test::WWW::Jasmine, a module that takes Jasmine test specs, runs them in a Selenium-controlled browser, and outputs the results in TAP format. This allows running JavaScript tests from Perl similar to unit tests. Examples of Jasmine test specs and TAP output are shown. The document also discusses running the same Jasmine specs locally for development. It acknowledges some limitations but seeks feedback on the new module.
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDBOren Eini
Join a real uplift experience with Hagay Albo, the CTO of the Zap/Yellow Page Group in Israel, in which he explains how his team was able to take a legacy (slow and hard to modify) group of sites and make them easier to work with, MUCH faster and greatly simplified the operational environment.
By prioritizing high availability, flexible data modeling and focusing on raw speed Zap was able to reduce its load times by Two Orders of Magnitudes. Using RavenDB as the core engine behind Zap's new sites had improved site traffic, reduced time to market and made it possible to implement the next-gen features that were previously beyond reach.
Caching is used to optimize performance by taking advantage of different access speeds of storage mediums. It stores frequently accessed data in faster storage like memory or disk cache. There are different types of caches like browser cache, server cache using memcached, and cache within a request. Memcached is mainly used for read-through caching but has issues like requiring separate deployment and CAS operations. GroupCache is an alternative that avoids duplicated calls to the backend and has better performance without network IO or CAS. Write-through caching aims to have zero reads from the backend but is challenging to implement transactionally at scale.
MongoDB Days UK: Using MongoDB to Build a Fast and Scalable Content Repositor...MongoDB
Presented by Alain Escaffre, Director of Product Management, Nuxeo
Experience level: Beginner
MongoDB can be used in the Nuxeo Platform as a replacement for traditional SQL databases. Nuxeo's content repository, which is the cornerstone of this open source software platform, can now completely rely on MongoDB for data storage. This presentation will explain the motivation for using MongoDB and will discuss different implementation strategies. In this session, you will learn more about the migrations to MongoDB and how we were able to achieve increased performance gains.
This document provides an overview of Bower, a package manager for the web. It discusses the requirements to use Bower, how to install and configure it, and how to run Bower to install dependencies. Bower is used to manage front-end components and their dependencies. It requires Node.js and NPM to be installed first. Then Bower can be installed globally and configured via a bower.json file to specify packages and dependencies. Running Bower will install all dependencies to the default or specified directory. The document also briefly explains how Bower can be used with XPages projects to manage front-end libraries.
This document provides instructions for setting up a Zend Framework development environment and creating a sample project. It discusses requirements like installing Apache, PHP, and a database. It explains how to download and set up Zend Framework, configure the include path and environment variables. It demonstrates creating a sample "demo" project using the zend command line tool and describes the basic folder structure generated. It also covers setting up a project in NetBeans IDE and debugging PHP projects.
DrupalCampLA 2014 - Drupal backend performance and scalabilitycherryhillco
This document discusses various techniques for optimizing Drupal backend performance and scalability. It covers diagnosing issues through tools like Apache Benchmark and Munin, optimizing hardware, web and database servers like using Nginx, Varnish, MySQL tuning, and alternative databases like MongoDB. It also discusses PHP optimizations like opcode caching and HHVM. The goal is to provide strategies to handle more traffic, improve page response times, and minimize downtime through infrastructure improvements and code optimizations.
The article discusses the history of Java web frameworks including Servlets, JSP, Struts, Spring MVC, and the introduction and evolution of JSF from versions 1.0 to 2.0. It provides examples of JSF code including a sample JSF page, managed bean, and configuration file. It also covers JSF implementations, custom component design, and RichFaces as a popular JSF extension framework.
Building Enterprise Grade Front-End Applications with JavaScript FrameworksFITC
Presented at Web Unleashed 2016 in Toronto.
By Chad Upton
FITC produces events for digital creators in Toronto, Amsterdam, NYC and beyond
Save 10% off any of our events with discount code 'slideshare'
Check out our events at http://fitc.ca
or follow us at https://twitter.com/fitc
Overview
Web applications are replacing desktop apps in a lot of enterprises. In this talk we'll look at why we should build web apps in the enterprise. Specifically, we'll look at frameworks such as Angular and React plus the libraries, testing tools, procedures and DevOps processes we should use; and how to bring all of those pieces together to make our enterprise web application easy to build, maintain and deploy.
Objective
Teach the ingredients of successful enterprise web applications
Target Audience
Web app developers, app development managers and CTOs
Assumed Audience Knowledge
Involvement with building web applications is helpful but not necessary
Three Things Audience Members Will Learn
Why we build web applications in the enterprise
Tooling, testing and frameworks that work well together
Application build and deployment strategies
This document summarizes a hands-on performance workshop. It introduces the speaker and explains that the workshop will focus on hands-on experience using performance tools. The agenda outlines setting up the environment, an overview of performance factors, collecting performance data using tools like GC logs and thread dumps, and interpreting that data using tools like VisualVM. It notes some topics that won't be covered and provides instructions for optional extension activities.
This document contains details about a conference taking place in Queenstown, New Zealand from 20-21 August 2008. It includes a greeting and information about the speaker, Indiver Nagpal, who is the CTO of Straker Software in New Zealand and has been involved in web development since 1996, using ColdFusion for over a decade and Flex for three years. The speaker will provide information on testing processes and methodologies.
Make It Cooler: Using Decentralized Version Controlindiver
A commonly used version control system in the ColdFusion community is Subversion -- a centralized system that relies on being connected to a central server. The next generation version control systems are “decentralized”, in that version control tasks do not rely on a central server.
Decentralized version control systems are more efficient and offer a more practical way of software development.
In this session, Indy takes you through the considerations in moving from Subversion to Git, a decentralized version control system. You also get to understand the pros and cons of each and hear of the practical experience of migrating projects to decentralized version control.
Version control is often used in conjunction with a testing framework and continuous integration. To complete the picture, Indy walks you through how to integrate Git with a testing framework, MXUnit, and a continuous integration server, Hudson.
Use of No-SQL databases in web applications is becoming increasingly common. In part this is because they work well with rapid application development due to their schema-less nature. And partly because they scale well in a cloud-based environment without too much effort.
MongoDB is one of the many No-SQL database technologies available today. It's schema-less nature works very well with rapid application development nature of ColdFusion. Unlike other No-SQL databases, it offers the ability run arbitrary queries against databases without having to first write map-reduce functions. It also has some other interesting features like capped collections with asynchronous write ability.
In this session, Indy takes you through some common use-cases for considering MongoDB with ColdFusion applications, contrasting it with other No-SQL databases like CouchDB. And he shares his experiences of using it with cloud-based ColdFusion applications. The aim of the session is to provide an overview of using MongoDB with ColdFusion so that you have another tool to consider when working on your next web application.
This was presented at CFObjective, Melbourne, November 17-18, 2011.
This document provides an overview of using MongoDB with NoSQL databases. It discusses when to use NoSQL versus SQL databases, strengths of each, and example use cases. NoSQL databases like MongoDB provide consistency in data representation, flexibility for rapid development, and simplicity of storage. SQL databases are better for applications with relational data and strict schema enforcement. The document also covers topics like schema-less environments in NoSQL, clustering and sharding for scaling MongoDB, and using GridFS for file storage. It introduces the Coldbox ORM called CBMongoDB for working with MongoDB in Coldbox applications.
CommandBox is a standalone, native tool for Windows, Mac, and Linux that will provide you with a Command Line Interface (CLI) for developer productivity, tool interaction, package management, embedded CFML server, application scaffolding, and some sweet ASCII art. It seamlessly integrate to work with any of our *Box products but it is also open for extensibility for any ColdFusion (CFML) project as it is also written in ColdFusion (CFML) using our concepts of CommandBox Commands.
Built-in help is completely integrated for every command, so you can always know how to work with CommandBox. You can pop open a CommandBox shell in your terminal window and manually type commands, or even automate things externally via the CommandBox binary box with your OS's native shell and create awesome command recipes for automation, building, deploying, you name it!
Package Management, Application Scaffolding, Extensible Via CFML and Embedded Server are already included in CommandBox.
Advanced caching techniques with ehcache, big memory, terracotta, and coldfusionColdFusionConference
Rob Brooks-Bilson is a senior director at Amkor Technology who has been involved with ColdFusion for 18 years. He is the author of two books on ColdFusion programming and an Adobe Community Professional for ColdFusion. The document outlines his agenda for a presentation on caching in ColdFusion, which will cover caching tags and functions, Ehcache, replicating caches, BigMemory Go, and distributed caching with Terracotta. It provides legal disclaimers about the third-party applications discussed and their lack of official Adobe support.
This document introduces Luis Majano and provides an overview of Model-View-Controller (MVC) patterns and the ColdBox framework. It discusses the problems with traditional ColdFusion code using a single CFM page and the benefits of separating concerns using MVC. ColdBox is introduced as a HMVC framework that follows conventions and addresses common infrastructure needs. It describes how ColdBox works using routed URLs and handlers, and shows examples of handler, model, layout, and view code. The rendering process and use of the request context and private request context are also summarized.
This document provides an overview and agenda for an ASP.NET MVC practice and guidelines session. The agenda includes discussing MVC programming fundamentals like models, views, controllers and routes. It also covers NuGet, Entity Framework Code First, common UI libraries, the repository pattern, application layer architecture and dependency injection principles. The session includes demonstrations of these various ASP.NET MVC and software design topics.
This document provides an agenda and details for an AngularJS workshop. The key points are:
- The workshop will cover AngularJS concepts and skills over 4 sessions spanning introduction to advanced topics like testing and directives.
- Session 1 will cover basics like MVC patterns, data binding, controllers and services. Sessions 2-3 cover routing, testing and directives.
- Attendees should bring a laptop and install NodeJS, Karma and other tools to follow along with hands-on code examples and exercises.
- The goal is to take attendees through building a simple todo list app from start to finish over the day to learn AngularJS concepts and skills in a practical way. Questions are encouraged
This document discusses strategies for managing a Drupal project across multiple environments like development, testing, and production. It recommends using source control to manage code changes, taking database snapshots to migrate data between environments, and programmatically applying administrative changes through custom modules to keep all environments in sync. This systematic approach helps ensure seamless code integration, efficient database changes, and minimal downtime when updating production.
Extended Flexagon FlexDeploy® Technical Overview presentation with product screenshots. Presentation extended with their permission. Slides demonstrating connection and deployment to Oracle Service Bus.
AngularJS is a framework for client-side dynamic web apps. It lets you use HTML as your template language and lets you extend HTML's syntax to express your application's components clearly and succinctly. Angular's low impact nature ties in with Drupal's data handling and structure to allow you rapidly make interactive Javascript applications. Javascript developers will find that Angular's Controller/View structure adapts itself well to Drupal's Block and/or Panel System with minimal disruption to a standard Javascript development workflow - even if that developer has minimal or no Drupal knowledge.
In this talk I'll cover setting up AngularJS in Drupal using the Angles module, how to setup your Angular project structure for a large implementation (it works for small ones too), interacting with Drupal via the Services module and gotchas to watch out for.
This talk is targeted at technical users primarily but managers evaluating using AngularJS with Drupal will also benefit. Having some Javascript experience is recommended but not required.
Asp.net mvc presentation by Nitin SawantNitin Sawant
The document provides an introduction to ASP.NET MVC, including definitions of MVC and its components. It discusses the pros and cons of traditional ASP.NET WebForms compared to MVC. Key aspects of MVC like models, views, controllers, routing and HTML helpers are described at a high level. Popular MVC frameworks for different programming languages are also listed.
MVC 6 - the new unified Web programming modelAlex Thissen
Presentation for Dutch Microsoft TechDays 2015:
With ASP.NET 5 comes MVC 6 with a programming model that unifies Web Pages, MVC and Web API. Each of these has been rebuilt to reflect Microsoft's vision of lean and composable web applications. In this session you will see the changes that have been made to the programming model. We will cover topics such as the new POCO controllers, View Components, dependency injection and much more. Plus, you are going to see the significant changes to the ASP.NET runtime on which MVC 6 is built.
Rapid application development with spring roo j-fall 2010 - baris dereBaris Dere
SpringRoo is an open source tool that enables rapid Java web application development. It uses code generation and conventions to quickly generate common structures like entities, repositories, services, and web layers. Developers can focus on business logic rather than boilerplate coding. SpringRoo allows creating full-featured Java applications quickly without compromising on technology choices or best practices. It utilizes standard Java, Spring, AspectJ, and Maven to build applications for easy long-term maintenance and development.
Give your little scripts big wings: Using cron in the cloud with Amazon Simp...Amazon Web Services
Most developers write them and every company has them – a vast library of small and large scripts that are designed to run on a scheduled basis. These background angels help keep the lights on and the doors open. They’ve been built up over time and are forgotten little heroes that are only remembered when the machines they live on fail. They are scattered throughout a company’s IT infrastructure and do important things.
In this session, we will explain how to use Ruby on Simple Workflow to quickly build a system that schedules scripts, runs them on time, retries them if they fail, and stores the history of their execution. You will walk away from this session with an understanding of how Simple Workflow brings resiliency, concurrency, and tracking to your applications.
The future of web development write once, run everywhere with angular.js and ...Mark Roden
This slide deck was used in support of BTE 102 - The future of web development write once, run everywhere with angular.js and domino at IBMConnectED 2015
Presentation was given with Mark Leusink
The future of web development write once, run everywhere with angular js an...Mark Leusink
This document provides a summary of a presentation on using AngularJS and IBM Domino to build modern web applications.
The presentation introduces AngularJS, an open-source JavaScript framework, and how it uses a model-view-controller architecture. It also discusses using IBM Domino as a RESTful backend service via Domino Access Services or a custom REST API.
The presentation demonstrates a sample conference scheduling app built with AngularJS, Bootstrap, and data from an IBM Domino database. The app runs entirely on the client-side and shows how AngularJS allows building portable web apps that can run on any device or platform.
[Elio Struyf] We all have these daily tasks that can be automated. Like checking if the backup job of your site completed, or looking how many times a file has been accessed, etc. These kinds of tasks are great to be automated by an Azure Functions. In this session, you will get an overview of what Azure Functions can do for you. With some demos, we go step by step through the creation, debugging and deployment process of these functions.
This document introduces the Flask micro web framework. It discusses that Flask provides URL routing, request and response objects, template engines and other features for web development. Flask is simple and extensible, using Werkzeug and Jinja2. It does not include an ORM or form validation, but supports extensions. The document provides examples of basic routing, using request objects, templates and the development server. It also discusses using SQLAlchemy, WTForms and common patterns like MVC with Flask projects.
The document discusses the Symfony web application framework. It explains that Symfony is a full-stack PHP framework based on best practices like the MVC pattern. It provides tools for configuration, routing, controllers, models, debugging and more. The document also provides instructions for starting a basic "hello world" Symfony project using controllers and views.
The document discusses the Symfony web application framework. It explains that Symfony is a full-stack PHP framework based on best practices like the MVC pattern. It provides tools for configuration, routing, controllers, models, debugging and more. The document also provides instructions for starting a basic "hello world" Symfony project using controllers and views.
This document introduces CodeIgniter, an open source PHP web application framework based on the Model-View-Controller (MVC) pattern. It discusses why MVC frameworks are useful for building enterprise web applications. CodeIgniter provides features like routing, database access, form validation and security filtering to help structure applications and make tasks less tedious. The document outlines CodeIgniter's directory structure, controllers, views, helpers and libraries to demonstrate how it implements the MVC pattern.
Similar to CFWheels - Pragmatic, Beautiful Code (20)
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...Toru Tamaki
Jindong Gu, Zhen Han, Shuo Chen, Ahmad Beirami, Bailan He, Gengyuan Zhang, Ruotong Liao, Yao Qin, Volker Tresp, Philip Torr "A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models" arXiv2023
https://arxiv.org/abs/2307.12980
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Quality Patents: Patents That Stand the Test of TimeAurora Consulting
Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality.
Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality.
Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality.
Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank?
** Episode Overview **
In this first episode of our quality series, Kristen Hansen and the panel discuss:
⦿ What do we mean when we say patent quality?
⦿ Why is patent quality important?
⦿ How to balance quality and budget
⦿ The importance of searching, continuations, and draftsperson domain expertise
⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications
https://www.aurorapatents.com/patently-strategic-podcast.html
The Rise of Supernetwork Data Intensive ComputingLarry Smarr
Invited Remote Lecture to SC21
The International Conference for High Performance Computing, Networking, Storage, and Analysis
St. Louis, Missouri
November 18, 2021
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfjackson110191
These fighter aircraft have uses outside of traditional combat situations. They are essential in defending India's territorial integrity, averting dangers, and delivering aid to those in need during natural calamities. Additionally, the IAF improves its interoperability and fortifies international military alliances by working together and conducting joint exercises with other air forces.
Choose our Linux Web Hosting for a seamless and successful online presencerajancomputerfbd
Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently.
Visit- https://onliveserver.com/linux-web-hosting/
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsMydbops
This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization.
Key Takeaways:
* Understand why connection pooling is essential for high-traffic applications
* Explore various connection poolers available for PostgreSQL, including pgbouncer
* Learn the configuration options and functionalities of pgbouncer
* Discover best practices for monitoring and troubleshooting connection pooling setups
* Gain insights into real-world use cases and considerations for production environments
This presentation is ideal for:
* Database administrators (DBAs)
* Developers working with PostgreSQL
* DevOps engineers
* Anyone interested in optimizing PostgreSQL performance
Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services
Transcript: Details of description part II: Describing images in practice - T...BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
Coordinate Systems in FME 101 - Webinar SlidesSafe Software
If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights.
During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to:
- Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value
- Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems
- Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors
- Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported
- Look Ahead: Gain insights into where FME is headed with coordinate systems in the future
Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!
2. A bit about me
• CTO, Straker Software, New Zealand
• Been doing CF (and Flex) for a while
• Cloud-based CF Using Railo
• In love with Ruby (the language) & Rails
– Was in love with Groovy (still am, I think)
• nagpals.com/blog
4. Agile
• Early, continuous delivery of software
• Welcome changing requirements
• Deliver working software frequently
• Working software = progress
• Technical excellence and good design
• Simplicity is essential – work not done
5. “There comes a time in the history of
every project when it becomes
necessary to shoot the engineers and
begin production.”
6. Need
• Quickly build and deploy database-driven
web apps
• Rapid iterations in a testable fashion
• Easy for multiple developers to understand
• Working app is more important than
configuring the app
7. Search…
• Tried lots of frameworks/methodologies
• Ruby on Rails addressed most issues
• Learn another language and framework
• Defeats the whole purpose
• Enter, CFWheels…
8. What is CFWheels
• Framework inspired by Ruby on Rails
• Simple organization system
• Suited for typical, database-driven web
applications
• A couple of years’ old – fairly mature
9. Convention over configuration
• Possibly the single most important thing
• Mostly convention, minor configuration
• Easy to
– turn on
– tune in
– drop out
11. Intuitive Code Structure
• View
– Responsible for display and user interaction
– Receive data from controller
• Controller
– Process requests from view
– Get/process data from model
– Make data available to the view
• Model
– Interacts with the database layer
– Responsible for validation
– Other methods to process/message data
12. Convention - URLs
• URLs mapped to controllers/models/views
http://blog/posts/edit/1
Controller: Posts
Model: Post
Action: Edit
Key: 1
15. Model – http://blog/posts/
/models/Post.cfc
<cfcomponent extends="Model">
<cfscript>
function init(){
belongsTo("author")
hasMany("comments")
validatesLengthOf( properties = "title",
minimum = 10,
maximum = 255)
}
</cfscript>
</cfcomponent>
16. Convention – Files & Database
• Place in appropriate folders – MVC
• Plural database names, singular model
names
– DB Table: posts
– Model: Post.cfc
• Database fields: id, createdat, updatedat
17. Built-in ORM
• Simple and elegant
• All major databases supported
• Almost no setup required – baked in
• CRUD instantly available via models/plugin
• Finding data using “finders”
– findOne(), findAll(), findByKey()…
19. Dynamic Finders
• Dynamic finders are magical
model("user").findOne(where="username='bob' and password='pass'")
rewritten as
model("user").findOneByUsernameAndPassword("bob,pass”)
20. URLs and Routing
• Beautiful URLs
– http://blog/a-good-url
• Powerful routing mechanism
<cfset addRoute( name = "showPost",
pattern = "/[key]”,
controller = "Posts",
action = "show")>
• Can be turned REST-full
24. Plugins
• Neat architecture to add/override
functionality
• Extremely useful
– Scaffold –generate CRUD application
– DBMigrate – Add/edit database structure
– Remote Form Helpers – Ajax with forms
– Localizer – Localizing an application
25. Baked in testing
• Ships with RocketUnit
<cfcomponent extends="tests.Test">
<cfscript>
function test_1_get_timezones(){
qTimezone = model("Timezone").getTimezones()
assert("isQuery(qTimezone) ")
assert("qTimezone.recordcount eq 56")
}
</cfscript>
</cfcomponent>
26. Environments
• Different setup for applications based on
stages of development
– Design, Development, Production, Testing,
Maintenance
• Differ in terms of caching, error-handling
• Switch environments via config/url
27. Docs/Support
• Very helpful docs at cfwheels.org
• Active and supportive mailing list
• Quite a few screencasts
• Direct knowledge transfer from Ruby on
Rails books/docs (e.g., Head First Rails)
• Bunch of blogs
28. IDE Support
• Eclipse, CFBuilder
– Syntax Dictionary
• Textmate
– Bundle
• Coda
– Lacking, but works by adding Clips
29. Beauty
• Simple code organization and flow
• Easy to understand code – eyeballing code
• Common tasks done with minimal code
• Pretty URLs
• Almost zero configuration, with power to
configure as much as needed
30. Pragmatic
• Focus on simple code that solves issues
• Trades pure OO for simplicity and structure
• Easy to not use the framework if needed
• Common web application problems already
solved – why reinvent the wheel(s)!
31. Wrap up
• Evaluate if you need a ‘framework’
• Learn URL rewrites (Apache, IIS)
• Dabble with Ruby on Rails
• cfscript = succinct code
• Worth trying out just to see how problems
can be solved in a different manner