PHP frameworks provide common features like models, views, and controllers so developers don't have to build these from scratch. The document discusses several popular PHP frameworks like Laravel, Yii, Symfony, CakePHP, CodeIgniter, Phalcon, and Zend. It notes that while frameworks make similar claims about being fast, easy to use, and robust, personal preference and experience with a framework should be the primary factors in selection.
Mixing Plone and Django for explosive resultsSimone Deponti
This document discusses mixing the Django web framework with the Plone content management system (CMS) to create an e-commerce platform with advanced community features. It explores using the Satchmo e-commerce solution and Pinax community modules with Django, while retaining Plone as the CMS due to its content editing capabilities. The document outlines the integration challenges and solutions tried, such as common theming with Diazo, avoiding data duplication, and ensuring users are managed consistently across both systems. It advocates for a single buildout, with different configurations for development and deployment.
This document discusses reasons why the author believes Plone may decline or become a "CMS zombie" unless changes are made. Key points include:
- Growing developer and integrator frustration due to legacy code, complexities, lack of documentation and APIs.
- Difficult and unpredictable migrations between major Plone versions that introduce issues and costs.
- Stagnating community and market as Plone relies on aging technologies like Zope and ZODB.
The author argues Plone needs to remove legacy code, simplify architectures, introduce explicit APIs, support new databases and Python 3 to thrive in the future. A potential approach is starting from scratch with Pyramid and new components rather than continuing to build on aging foundations.
Stackato is a PaaS cloud platform from ActiveState that allows developers to easily deploy applications to the cloud. It supports multiple languages including Perl, Ruby, and JavaScript. The presentation demonstrated deploying simple Perl apps to Stackato using the Mojolicious framework. Key benefits of Stackato include minimal differences between development and production environments, one-click deployments, and allowing developers to manage infrastructure. ActiveState is very open and provides documentation, examples, and a community forum to support Stackato users.
Polyglot and Functional Programming (OSCON 2012)Martijn Verburg
The document discusses introducing polyglot and functional programming concepts to Java developers. It explains that while Java is a powerful language, other JVM languages can offer advantages like more rapid development, concise coding, and taking advantage of non-object oriented and dynamic approaches. It provides examples of using functional concepts like map and filter to more declaratively operate on collections of data in a Java program. The document suggests exposing developers to these concepts through libraries and by experimenting with other JVM languages.
The document discusses modern Java concurrency. It introduces the topic and explains why developers may want to utilize modern Java concurrency features. It discusses the java.util.concurrent library and how it provides building blocks for concurrent and thread-safe code like ReentrantLock, Condition, ConcurrentHashMap. It provides examples of using constructs like CountDownLatch, ThreadPoolExecutor, ForkJoin to write concurrent applications in a safer and more performant way compared to traditional locking approaches.
In this talk I will introduce attendees to the basics of messaging queues, their goals and applications from CFML. Messaging enables software applications to connect and scale. Thus, providing applications to connect to each other as components of a larger application, or to user devices and data. Messaging is asynchronous, and can decouple your software concerns with ease. However, messaging is much more than the traditional publish/subscribe patterns but also the ability to create work queues, routing and much more.
This document discusses how to build command line interface (CLI) applications in Ruby. It introduces the Thor gem for building CLI apps with single commands and then discusses building interactive shell apps using a read-eval-print loop (REPL) and the GNU Readline library. The document provides examples of CLI apps, why they are useful, and tips for making better CLI apps, and concludes by showcasing a Facebook command line application built with these techniques.
PHP 5.4 - Begin your love affair with traitsGraham Weldon
This document discusses PHP 5.4 and introduces new features such as traits, array dereferencing, binary notation, and upload progress tracking. It provides examples of using traits to reuse code across classes without complicated inheritance. Traits allow for small reusable code sections that can be included in any class while maintaining a precedence order. The document encourages early adoption of new PHP versions for cleaner code and new language features, while also advising testing before deploying to production.
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishJani Tarvainen
Content Management has come of age and systems need to move forward. Tools such as WordPress, Drupal and eZ Publish have evolved to what they are rather organically. Now they face the challenge of renewing themselves.
The document discusses updates to the Java programming language through JSR-335, which proposes adding lambda expressions, interface evolution through default methods, and bulk parallel operations on collections. These changes aim to make Java more parallel-friendly and enable developers to write more concise code. The addition of lambda expressions and default methods can help enable more powerful library APIs and make client code more readable and less error-prone.
The document summarizes the agenda for a SydPHP meetup. It includes talks from Brad Lorge on Javascript security and Graham Weldon on web server alternatives and environment setup. It also discusses last month's social event, upcoming sponsorship opportunities, and encouraging attendees to suggest future talk topics.
My presentation from the PHP Matsuri 2011 conference. This presentation discusses the changes in CakePHP 2.0 and goes into more detail on some of the cooler features that PHP 5 allows us, and some of the internal restructuring.
The document discusses planned changes and improvements for CakePHP 2.0, including dropping PHP 4 support, switching from SimpleTest to PHPUnit for unit testing, using SPL classes instead of reimplementing functions, throwing exceptions instead of using cakeError, improving the request/response system, making sessions more flexible through a session handler interface, improving JavaScript and XML handling, and moving the project to a beta and eventual stable release.
This document provides an overview and agenda for a session on the "Well-Grounded Java Developer". The session will cover introductions to Java 7 features like Project Coin, NIO.2, and Method Handles. It will also cover polyglot and functional programming and modern Java concurrency practices like Fork/Join. The session aims to help developers code more rapidly, concisely, and take advantage of compiler, JVM, and GC improvements in Java 7.
This document discusses why Ruby is a good programming language for security projects. It provides examples of security tools and frameworks built with Ruby, including Metasploit, BeEF, Arachni, Brakeman, WPScan, and RailsGoat. Ruby offers features like an easy-to-read syntax, package management with RubyGems, powerful object-oriented capabilities, platform independence, and support for domains like network protocols that make it well-suited for security applications.
This document discusses opportunities to improve curation on CPAN. It suggests implementing features like module tagging, reviews of module groups, registering module use, following semantic versioning guidelines, and retiring old modules. The goal is to provide more context around modules, encourage collaboration between authors, and help users more easily find high-quality solutions on CPAN.
The document provides an introduction to programming concepts such as variables, data types, basic math operations, and order of operations. It explains how programs use variables to store and manipulate data in memory and demonstrates basic PHP code examples for printing output, performing math calculations, and assigning values to variables. The examples illustrate fundamental programming concepts like declaring variables, assigning values, and performing arithmetic operations in PHP.
Ruby is a dynamic, open source programming language created in 1993 by Yukihiro Matsumoto. It was influenced by Perl, Smalltalk, Python and Lisp. Ruby supports object-oriented, imperative, and functional programming styles. Everything in Ruby is an object and has flexible typing. Ruby also features open classes and duck typing. It gained popularity with the release of the Ruby on Rails framework in 2004.
The document summarizes plans for CakePHP 2.0, including:
- Refactoring the core code and removing unused code.
- Dropping support for PHP 4 and supporting PHP 5.2.6 and above.
- Replacing the SimpleTest unit testing framework with PHPUnit.
- Standardizing how objects inherit through components.
- Removing duplicated code and relying more on PHP's Standard PHP Library.
- Centralizing request and response handling.
- Allowing custom session handlers through an interface.
- Lazy loading nested objects to optimize performance.
The presentation gives an overview about the ruby programming language and Rails, the web framework built over it ruby. It does highlight some of the key features of ruby programming language and mentions the key benefits of using Rails framework for web application development.
Web Development Environments: Choose the best or go with the restgeorge.james
The document discusses various web development environments and frameworks for choosing the right one. It covers popular options like ASP.NET, Java/JSP, PHP, Python and Ruby as well as databases. For each, it provides an overview and examples of sorting data to demonstrate capabilities. It emphasizes evaluating options based on requirements rather than following trends and notes the impact that open source movements and companies can have on technologies.
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
Hannes Lowette discusses how to structure software code like a bag of marbles rather than a LEGO castle. The document describes challenges faced with a tightly coupled codebase and how adopting an onion architecture approach using plugins allowed for more modular and maintainable code. Key points include defining clean dependencies and interfaces, making core business logic decoupled and testable, and enabling new features to be added and removed through plugins without polluting the core codebase.
The document is a presentation about scaling applications with Symfony. It discusses concepts related to scalability like load balancing and sharding. It provides advice on profiling code to diagnose bottlenecks and optimizing aspects like caching, databases, and front-end performance. Specific technologies discussed include APC, Zend Opcache, Memcached, Redis, MySQL, and NoSQL databases. Real-world examples of large applications built with Symfony like a social game with millions of daily users are also presented.
An overview of Ruby, jRuby, Rails, Torquebox, and PostgreSQL that was presented as a 3 hour class to other programmers at The Ironyard (http://theironyard.com) in Greenville, SC in July of 2013. The Rails specific sections are mostly code samples that were explained during the session so the real focus of the slides is Ruby, "the rails way" / workflow / differentiators and PostgreSQL.
The document discusses modern Java concurrency. It introduces the topic and explains why developers may want to utilize modern Java concurrency features. It discusses the java.util.concurrent library and how it provides building blocks for concurrent and thread-safe code like ReentrantLock, Condition, ConcurrentHashMap. It provides examples of using constructs like CountDownLatch, ThreadPoolExecutor, ForkJoin to write concurrent applications in a safer and more performant way compared to traditional locking approaches.
In this talk I will introduce attendees to the basics of messaging queues, their goals and applications from CFML. Messaging enables software applications to connect and scale. Thus, providing applications to connect to each other as components of a larger application, or to user devices and data. Messaging is asynchronous, and can decouple your software concerns with ease. However, messaging is much more than the traditional publish/subscribe patterns but also the ability to create work queues, routing and much more.
This document discusses how to build command line interface (CLI) applications in Ruby. It introduces the Thor gem for building CLI apps with single commands and then discusses building interactive shell apps using a read-eval-print loop (REPL) and the GNU Readline library. The document provides examples of CLI apps, why they are useful, and tips for making better CLI apps, and concludes by showcasing a Facebook command line application built with these techniques.
PHP 5.4 - Begin your love affair with traitsGraham Weldon
This document discusses PHP 5.4 and introduces new features such as traits, array dereferencing, binary notation, and upload progress tracking. It provides examples of using traits to reuse code across classes without complicated inheritance. Traits allow for small reusable code sections that can be included in any class while maintaining a precedence order. The document encourages early adoption of new PHP versions for cleaner code and new language features, while also advising testing before deploying to production.
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishJani Tarvainen
Content Management has come of age and systems need to move forward. Tools such as WordPress, Drupal and eZ Publish have evolved to what they are rather organically. Now they face the challenge of renewing themselves.
The document discusses updates to the Java programming language through JSR-335, which proposes adding lambda expressions, interface evolution through default methods, and bulk parallel operations on collections. These changes aim to make Java more parallel-friendly and enable developers to write more concise code. The addition of lambda expressions and default methods can help enable more powerful library APIs and make client code more readable and less error-prone.
The document summarizes the agenda for a SydPHP meetup. It includes talks from Brad Lorge on Javascript security and Graham Weldon on web server alternatives and environment setup. It also discusses last month's social event, upcoming sponsorship opportunities, and encouraging attendees to suggest future talk topics.
My presentation from the PHP Matsuri 2011 conference. This presentation discusses the changes in CakePHP 2.0 and goes into more detail on some of the cooler features that PHP 5 allows us, and some of the internal restructuring.
The document discusses planned changes and improvements for CakePHP 2.0, including dropping PHP 4 support, switching from SimpleTest to PHPUnit for unit testing, using SPL classes instead of reimplementing functions, throwing exceptions instead of using cakeError, improving the request/response system, making sessions more flexible through a session handler interface, improving JavaScript and XML handling, and moving the project to a beta and eventual stable release.
This document provides an overview and agenda for a session on the "Well-Grounded Java Developer". The session will cover introductions to Java 7 features like Project Coin, NIO.2, and Method Handles. It will also cover polyglot and functional programming and modern Java concurrency practices like Fork/Join. The session aims to help developers code more rapidly, concisely, and take advantage of compiler, JVM, and GC improvements in Java 7.
This document discusses why Ruby is a good programming language for security projects. It provides examples of security tools and frameworks built with Ruby, including Metasploit, BeEF, Arachni, Brakeman, WPScan, and RailsGoat. Ruby offers features like an easy-to-read syntax, package management with RubyGems, powerful object-oriented capabilities, platform independence, and support for domains like network protocols that make it well-suited for security applications.
This document discusses opportunities to improve curation on CPAN. It suggests implementing features like module tagging, reviews of module groups, registering module use, following semantic versioning guidelines, and retiring old modules. The goal is to provide more context around modules, encourage collaboration between authors, and help users more easily find high-quality solutions on CPAN.
The document provides an introduction to programming concepts such as variables, data types, basic math operations, and order of operations. It explains how programs use variables to store and manipulate data in memory and demonstrates basic PHP code examples for printing output, performing math calculations, and assigning values to variables. The examples illustrate fundamental programming concepts like declaring variables, assigning values, and performing arithmetic operations in PHP.
Ruby is a dynamic, open source programming language created in 1993 by Yukihiro Matsumoto. It was influenced by Perl, Smalltalk, Python and Lisp. Ruby supports object-oriented, imperative, and functional programming styles. Everything in Ruby is an object and has flexible typing. Ruby also features open classes and duck typing. It gained popularity with the release of the Ruby on Rails framework in 2004.
The document summarizes plans for CakePHP 2.0, including:
- Refactoring the core code and removing unused code.
- Dropping support for PHP 4 and supporting PHP 5.2.6 and above.
- Replacing the SimpleTest unit testing framework with PHPUnit.
- Standardizing how objects inherit through components.
- Removing duplicated code and relying more on PHP's Standard PHP Library.
- Centralizing request and response handling.
- Allowing custom session handlers through an interface.
- Lazy loading nested objects to optimize performance.
The presentation gives an overview about the ruby programming language and Rails, the web framework built over it ruby. It does highlight some of the key features of ruby programming language and mentions the key benefits of using Rails framework for web application development.
Web Development Environments: Choose the best or go with the restgeorge.james
The document discusses various web development environments and frameworks for choosing the right one. It covers popular options like ASP.NET, Java/JSP, PHP, Python and Ruby as well as databases. For each, it provides an overview and examples of sorting data to demonstrate capabilities. It emphasizes evaluating options based on requirements rather than following trends and notes the impact that open source movements and companies can have on technologies.
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
Hannes Lowette discusses how to structure software code like a bag of marbles rather than a LEGO castle. The document describes challenges faced with a tightly coupled codebase and how adopting an onion architecture approach using plugins allowed for more modular and maintainable code. Key points include defining clean dependencies and interfaces, making core business logic decoupled and testable, and enabling new features to be added and removed through plugins without polluting the core codebase.
The document is a presentation about scaling applications with Symfony. It discusses concepts related to scalability like load balancing and sharding. It provides advice on profiling code to diagnose bottlenecks and optimizing aspects like caching, databases, and front-end performance. Specific technologies discussed include APC, Zend Opcache, Memcached, Redis, MySQL, and NoSQL databases. Real-world examples of large applications built with Symfony like a social game with millions of daily users are also presented.
An overview of Ruby, jRuby, Rails, Torquebox, and PostgreSQL that was presented as a 3 hour class to other programmers at The Ironyard (http://theironyard.com) in Greenville, SC in July of 2013. The Rails specific sections are mostly code samples that were explained during the session so the real focus of the slides is Ruby, "the rails way" / workflow / differentiators and PostgreSQL.
The TFB challenge is a performance comparison of many web app platforms, exercising JSON, database, ORM, HTML templates, all over HTTP. It compares the best frameworks written in C++, Rust, Go, JS, Java, C#… and now Pascal – thanks to mORMot. In this session, we will look and compare the source code of some frameworks samples, to distinguish their typical philosophy. We will see how modern Object Pascal is still relevant, and propose some ideas for the future of the language.
This document provides an overview and agenda for an introductory course on web development. It introduces the basic hardware and protocols that power the internet, including switches, routers, IP addresses, DNS, and HTTP. It outlines the course goals of introducing web development teams and processes. The course structure is described, including weekly lectures, exercises, and group projects. The instructor's background is provided. Homework involving a video, system profiling, and setting up accounts is assigned to prepare for the next class.
The document provides an introduction to programming concepts such as variables, data types, basic math operations, and order of operations. It explains how variables store and represent data in computer memory and how their values can be manipulated using assignment statements and basic math. The document also introduces potential issues around data type conversion and order of operations that programmers need to be aware of.
This document discusses using ReactPHP as an event-driven and non-blocking I/O HTTP server with Symfony, a request-response PHP framework. ReactPHP runs the application event loop and handles requests without bootstrap code on each request, improving performance. Symfony is lightweight and supports modern practices. Benchmarks show ReactPHP with Symfony is faster than the default Symfony configuration with Apache and PHP-FPM. Some challenges are memory management, file uploads, and database interactions in long-running processes.
The document provides an overview of PHP and frameworks. It discusses open source software, widely used open source products like Linux, Apache, MySQL, and PHP. It covers the difference between open source and closed source software, pros and cons of open source, and background information on PHP including its history, variables, data types, conditional and looping statements, functions, arrays, and more. The document also discusses PHP frameworks, popular frameworks like WordPress, Magento and Opencart, and includes an index of topics covered.
Repeating History...On Purpose...with ElixirBarry Jones
A dive into the highlights of Elixir that make it the ideal platform for the web...and how all these questions were answered figured out 30 years ago. Presented to Upstate Elixir in Greenville, SC on Nov 16.
The document discusses the characteristics of a successful single page application (SPA). It recommends choosing frameworks and libraries that have good documentation, large communities, and support needed functionality. It also emphasizes building robust, stable APIs and keeping performance in mind from the start. The document suggests optimizing JavaScript and backend code, knowing the runtime environment, and using developer tools to minimize resource-intensive reflows and repaints. Overall, it presents SPAs as a good option for mobile apps if frameworks, libraries, APIs, and performance are chosen and developed carefully.
PHP is a server-side scripting language that is commonly used for web development and can be embedded into HTML code. It allows developers to manage dynamic content, connect to databases, track sessions, and build e-commerce sites. PHP code runs on the server and generates HTML that is sent to the user's browser. It is free, runs on most server platforms, and has a large community of developers. LIT Susant K Rout offers PHP training courses in Bhubaneswar, Odisha, India to teach participants how to use PHP for web development.
PHP Programming course provides the knowledge necessary to design and develop dynamic, database-driven web pages using PHP version 5. PHP is a language written for the web, quick to learn, easy to deploy and provides substantial functionality required for e-commerce. This course introduces the PHP framework and syntax, and covers in depth the most important techniques used to build dynamic web sites. Students also learn how to configure PHP and the Apache Web Server. Comprehensive hands on exercises are integrated throughout to reinforce learning and develop real competency.
Compilers can have a huge effect on software efficiency and performance by changing what user experiences are possible and reducing CPU and resource usage. They work by parsing code, generating machine-friendly representations, and emitting optimized machine code. As web programming grew in complexity, developers started building more efficient compilers for dynamic languages to preserve rapid development workflows while improving performance. There are various approaches to building compilers like interpreters, transpilers, using backends like LLVM, and fully custom solutions. The best approach depends on goals, constraints, and tradeoffs around control, performance, and development effort. Optimization focuses should include memory usage, caching, and runtime layout. Future areas may include database query compilation for real-time analytics on large datasets.
Infrastructure as Data with Ansible for easier Continuous DeliveryCarlo Bonamico
This document discusses using Ansible to implement continuous delivery of infrastructure configuration. It introduces Ansible as an infrastructure management tool that allows infrastructure to be defined as code in playbooks and executed across servers. Using Ansible, infrastructure can be provisioned and configured in an automated, repeatable way to support continuous delivery practices and reduce risk. The document provides examples of using Ansible to set up a sample pizza ordering application infrastructure.
jRuby fixes some issues with the Ruby programming language like memory leaks and lack of kernel level threading by running Ruby code on the Java Virtual Machine which has features like a sophisticated garbage collector, just-in-time compilation for improved performance, and native threading; benchmarks show jRuby provides much higher concurrency and better performance than Ruby for background processing and web applications; deploying a Ruby application using jRuby and a Java application server like Torquebox allows it to take advantage of the reliability, scalability and deployment features of the Java platform.
This document introduces PostGIS, an extension to PostgreSQL that adds support for geographic objects allowing location queries to be run in SQL. It discusses geospatial data types and functions in PostGIS for working with spatial features like points, lines, polygons, and rasters. PostGIS allows importing and exporting geospatial data, integration with GIS software, and access to open mapping data sources. It also covers spatial queries and analysis in PostGIS using functions for distance, containment, intersections and more. Additional topics mentioned include pgRouting for routing/navigation, generating maps/images from PostGIS data, and real-world use cases.
This document provides an overview and review of relational database concepts and ActiveRecord functionality in Rails. It discusses the ACID principles of atomicity, consistency, isolation, and durability and how they are achieved. It also covers topics like transactions, locking, callbacks, associations, queries, and using the database console. The document aims to explain why following database rules ensures data integrity and discusses when it may be better to handle things in the database rather than just in Rails code.
Barry Jones introduces himself as the instructor for the Ruby on Rails and PostgreSQL course. He has experience developing applications using various languages and databases. He wishes a course like this had been available when he took over a large Perl to Rails conversion project without knowing Rails or PostgreSQL, which led to issues he later had to fix. The goal of the course is to help students gain proficiency with Rails and PostgreSQL faster to avoid similar mistakes.
My experiences combatting phishing and fraud using DMARC and assorted other techniques in a large eBay-like platform for a niche market...when the site previously did everything over direct user email...for over a decade.
A recap of some of the most interesting things learned from the AWS re:Invent 2013 Conference. Easily the most intense and educational conference I've ever attended.
PostgreSQL - It's kind've a nifty databaseBarry Jones
This presentation was given to a company that makes software for churches that is considering a migration from SQL Server to PostgreSQL. It was designed to give a broad overview of features in PostgreSQL with an emphasis on full-text search, various datatypes like hstore, array, xml, json as well as custom datatypes, TOAST compression and a taste of other interesting features worth following up on.
Smart Mobile App Pitch Deck丨AI Travel App Presentation Templateyojeari421237
🚀 Smart Mobile App Pitch Deck – "Trip-A" | AI Travel App Presentation Template
This professional, visually engaging pitch deck is designed specifically for developers, startups, and tech students looking to present a smart travel mobile app concept with impact.
Whether you're building an AI-powered travel planner or showcasing a class project, Trip-A gives you the edge to impress investors, professors, or clients. Every slide is cleanly structured, fully editable, and tailored to highlight key aspects of a mobile travel app powered by artificial intelligence and real-time data.
💼 What’s Inside:
- Cover slide with sleek app UI preview
- AI/ML module implementation breakdown
- Key travel market trends analysis
- Competitor comparison slide
- Evaluation challenges & solutions
- Real-time data training model (AI/ML)
- “Live Demo” call-to-action slide
🎨 Why You'll Love It:
- Professional, modern layout with mobile app mockups
- Ideal for pitches, hackathons, university presentations, or MVP launches
- Easily customizable in PowerPoint or Google Slides
- High-resolution visuals and smooth gradients
📦 Format:
- PPTX / Google Slides compatible
- 16:9 widescreen
- Fully editable text, charts, and visuals
APNIC -Policy Development Process, presented at Local APIGA Taiwan 2025APNIC
Joyce Chen, Senior Advisor, Strategic Engagement at APNIC, presented on 'APNIC Policy Development Process' at the Local APIGA Taiwan 2025 event held in Taipei from 19 to 20 April 2025.
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingsteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
APNIC Update, presented at NZNOG 2025 by Terry SweetserAPNIC
Terry Sweetser, Training Delivery Manager (South Asia & Oceania) at APNIC presented an APNIC update at NZNOG 2025 held in Napier, New Zealand from 9 to 11 April 2025.
DNS Resolvers and Nameservers (in New Zealand)APNIC
Geoff Huston, Chief Scientist at APNIC, presented on 'DNS Resolvers and Nameservers in New Zealand' at NZNOG 2025 held in Napier, New Zealand from 9 to 11 April 2025.
Understanding the Tor Network and Exploring the Deep Webnabilajabin35
While the Tor network, Dark Web, and Deep Web can seem mysterious and daunting, they are simply parts of the internet that prioritize privacy and anonymity. Using tools like Ahmia and onionland search, users can explore these hidden spaces responsibly and securely. It’s essential to understand the technology behind these networks, as well as the risks involved, to navigate them safely. Visit https://torgol.com/
Best web hosting Vancouver 2025 for you businesssteve198109
Vancouver in 2025 is more than scenic views, yoga studios, and oat milk lattes—it’s a thriving hub for eco-conscious entrepreneurs looking to make a real difference. If you’ve ever dreamed of launching a purpose-driven business, now is the time. Whether it’s urban mushroom farming, upcycled furniture sales, or vegan skincare sold online, your green idea deserves a strong digital foundation.
The 2025 Canadian eCommerce landscape is being shaped by trends like sustainability, local innovation, and consumer trust. To stay ahead, eco-startups need reliable hosting that aligns with their values. That’s where 4GoodHosting.com comes in—one of the top-rated Vancouver web hosting providers of 2025. Offering secure, sustainable, and Canadian-based hosting solutions, they help green entrepreneurs build their brand with confidence and conscience.
As eCommerce in Canada embraces localism and environmental responsibility, choosing a hosting provider that shares your vision is essential. 4GoodHosting goes beyond just hosting websites—they champion Canadian businesses, sustainable practices, and meaningful growth.
So go ahead—start that eco-friendly venture. With Vancouver web hosting from 4GoodHosting, your green business and your values are in perfect sync.
Reliable Vancouver Web Hosting with Local Servers & 24/7 Supportsteve198109
Looking for powerful and affordable web hosting in Vancouver? 4GoodHosting offers premium Canadian web hosting solutions designed specifically for individuals, startups, and businesses across British Columbia. With local data centers in Vancouver and Toronto, we ensure blazing-fast website speeds, superior uptime, and enhanced data privacy—all critical for your business success in today’s competitive digital landscape.
Our Vancouver web hosting plans are packed with value—starting as low as $2.95/month—and include secure cPanel management, free domain transfer, one-click WordPress installs, and robust email support with anti-spam protection. Whether you're hosting a personal blog, business website, or eCommerce store, our scalable cloud hosting packages are built to grow with you.
Enjoy enterprise-grade features like daily backups, DDoS protection, free SSL certificates, and unlimited bandwidth on select plans. Plus, our expert Canadian support team is available 24/7 to help you every step of the way.
At 4GoodHosting, we understand the needs of local Vancouver businesses. That’s why we focus on speed, security, and service—all hosted on Canadian soil. Start your online journey today with a reliable hosting partner trusted by thousands across Canada.
2. Who am I?
• Barry Jones
• Java/Groovy/PHP/Perl developer since ’98
• Ruby on Rails developer mostly since 2012
• Formerly ran Brightball, Inc here in Greenville
– Contract programming business from 2008-2012
– 99% CakePHP…
– Built our platform “The Intersect” on top of Cake
• Software Architect with ACS Technologies, Inc
6. Before we answer that…
Why do other languages seem to have clear leaders?
• Ruby has Rails
• Python has Django
• Groovy has Grails
• C# has MVC
• Java has Spring
7. Many solutions to the same problem…
usually indicates an underlying issue…
which leads to lots of trade offs
8. What does that mean for PHP?
PHP is bad at frameworks…
…out of the box
9. So let’s dig into that a little
• Ruby, Python, Groovy, C#, and Java have
something in common
• They boot up…
– The application gets loaded into RAM
– Runs initializer code
– Makes its database connection(s) with a pool
– Listens for requests and only processes that request
– Can share RAM between requests
– Built for long term garbage collection
10. PHP…
• Reprocesses everything on every single request
• Configuration
• Route mappings
• Database connections
• Loading all of those framework files
– Devastating to Disk I/O
• Encapsulates and garbage collects each individual
process
11. So a PHP framework has too…
• Cache…heavily
– And then reload those configuration caches on
every request
• Per request RAM allocation is HEAVY
– It’s not loaded once and then processed
– Framework is loaded every time for every request
13. Rails lit the world on fire
• Java’s Struts popularized MVC…but was awful
• Rails made MVC good…
– And EEEEEEVERYBODY copied it as best they could
– CakePHP was a near clone for a while
– Microsoft’s MVC framework…almost carbon copy
– Grails…do I need to explain this?
14. But why did Rails take off?
• Ruby is great…but it’s not built for the web
• PHP is built for the web
• Ruby is an excellent language for writing Domain Specific Languages (DSLs)
– Think….
• Puppet, Chef, Capistrano, Vagrant
– Rails is a DSL for the web
• It changes Ruby to make it a web language
• That added to its popularity significantly in the Ruby community
– Nearly every Ruby library has a Rails version for premium integration
– Ruby developers are very big on testing because of the language’s flexibility
• good at testing and easy to break
– Ruby developers place a premium on workflow
• That’s a heck of a lot more than just arranging some files and throwing
routing and hooks on top…they built an entire mode of operation
15. This is important for PHP
PHP is built for the web out of the box
With no framework…
it can rock your face off
16. So why so many frameworks?
• Well…prior to PHP 5.3
– PHP was terrible for frameworks for all the reasons
previously mentioned
• Also, lack of namespaces made sharing libraries a PAAAAIN
– 5.3 was released in 2010
– CakePHP 1.1 was popular in 2006 because it ran on
PHP 4 and PHP 5 while structurally copying Rails
– The PHP “framework wars” started during a time
when PHP was bad at frameworks…hence the variety,
saturation, and trade offs
• Everybody tried to solve the problem a different way
17. Prior to 5.3 you needed to…
• Enable APC on the server
– Optimized PHP byte code cached in RAM
– Share RAM between process (under Apache mod_php only)
– In production, set APC to not check for file changes
– This got around the Disk I/O and overhead of reloading all those files
– Also drastically reduced per-request RAM
• With CakePHP we’d go from 12mb to 2mb (also mod_php only)
• Configure a database connection pool within Apache
– OR ensure you were using MySQL because the overhead of new connections is almost
negligible
• Avoid .htaccess files like the plague
– Every framework used them for “pretty urls” instead of having them added to a server config
• Setup a reverse proxy w/ nginx
– Intercept non-application requests prior to Apache processing .htaccess rules
• Use framework specific class loaders to try to load things only when necessary
• Frameworks had to roll almost everything themselves to avoid naming conflicts
with outside libraries
– Extensive “does this work with X?” syndrome
18. So what changed?
• In 5.3
– Late static bindings
– Namespaces
• In 5.4
– Traits
– Artisan
• Built in Web Server
• CLI
• These allow…
– Lazy loading
– Dependency injection
– Aspect Oriented
Programming (AOP)
– Simpler development
workflow
– Much easier library / package
management
19. What is PHP good at?
• Scales down OR up better than any other language
– “Boot up” web languages can’t scale down easily
– With PHP, you can fill up a hard drive with code and it will all work
• Other languages, you fill up your RAM and you’re done
• This is why PHP shared hosting is everywhere and dirt cheap
• Encapsulation of each request provides near perfect server stability
– Tell me next time somebody uses “PHP” and “Memory Leak” in a sentence
– If a request dies it can’t crash the server
• In it’s raw form, it can already do almost everything you need
– Example: Built an on-the-fly image processing server for a huge site
– Same functionality previously kept crashing Rails processes
…because memory leaks
– Increased efficiency by 3000% (seriously)
21. What is PHP bad at?
More on long polling
• PHP is bad at long running process
• Long polling involves many long running connections
– which for PHP means many long running processes…
– which will vary based on the number of your users
So for example:
• Optimal PHP request/response cycle
– Request received
– PHP started
– Libraries loaded/RAM allocated (2-12mb)
– Request processed
– Request ended, garbage collected
– Total time < .5 seconds (hopefully)
• Long polling PHP request/response cycle
– Request received
– PHP started
– Libraries loaded/RAM allocated (2-12mb)
– ………. (30-60 seconds)
– Request ended, garbage collected
– Total time 30-60 seconds
– Your servers RAM will be swallowed with a dramatically lower number of users from
holding open dozens of 12mb connections
– You can make it “work” but in production you’ll have massive scaling issues
from concurrency
• nginx_http_push_module – This is not a php specific solution
– Request received with internal response address
– PHP started
– Libraries loaded/RAM allocated (2-12mb)
– Requested added to queue
– Request ended, garbage collected
– Total time < .5 seconds
– nginx holds the long polled connection instead of php
– Single background process pulls requests off the queue and processes them
– Sends response to the internal response address
– The background process handles responding to the long polling request so you control
how many are running in parallel, not your user traffic
– nginx holds the concurrent connections efficiently (as good or greater concurrency than
Node.js)
Long running processes
• Please don’t use PHP for long
polling…ever
• No really
• All those documents that say PHP
is bad at long polling…don’t take
it as a challenge…they mean it
• But if you must use
nginx_http_push_module
Also…method syntax consistency and
assorted other quirks…
22. But it’s more than just code
• The business problem:
– How do I find programmers who know this framework?
• Case: Brightball
– I loved CakePHP. It was complex, had a steep learning curve but
was incredibly powerful
– We built a tool around it that would generate a permission
controlled, data linked, interface based solely off of the
database structure
• AKA “The Intersect” (we were big fans of Chuck)
• Really bad for billable hours
– Hard to find people who knew Cake (or any other specific
framework) despite “popularity” numbers
– With complexity, training and learning curve are bad
23. This is where Code Igniter took off
• Code Igniter was not as awesome as Cake
(sorry CI people)
– I know one of you wants to argue this point…your opinion is wrong
• But it was a heck of a lot simpler
• Learning curve and training ease led to a huge
following
– And Expression Engine
24. Not a problem in other languages
• Dominant frameworks lead to common knowledge
bases among developers
• Hard to find a Ruby programmer that doesn’t know
Rails
• That allows continuous evolution because businesses
avoid the training/hiring quandry
• Namespaces allows easy library integration and sharing
between frameworks and for the language as a whole
25. Then there’s workflow…
• Common frameworks lead to…
– Common testing integrations
– Common library integrations
– Common database flow
– Common team operations
26. So the answer is…?
If I have to tell you the “right” framework...
then there isn’t a clear choice
31. First the framework wars
• What about all the “other” frameworks
– All of the existing dominant frameworks have to
maintain a migration path for their user bases
– This makes full reinvention on php >= 5.4…hard
• Laravel does not have this problem
– But it does need to gain widespread adoption
32. So first up…
Laravel is a Rails clone
And I mean that in a good way
They didn’t just go for file structure
Or callbacks
Or active record
Or middleware
Or migrations
Or testing
Or workflow
Or modularity
They ate the whole…dang…thing
33. Libraries
Ruby on Rails
• Ruby has Gems
• Rails applications have a
Gemfile
• Bundler installs Gems and
manages dependencies
PHP and Laravel
• PHP has Composer
– And PEAR
– And PECL
• Laravel uses Composer
• Namespaces make this work
34. Dev Environment
Ruby on Rails
• Ruby has RVM
– Ruby version manager
– “cd” into a project directory and
your ruby version and gemset
changes
• Bundled web server
– From your project directory, your
application runs
– Dozens of projects in different
versions, with different libraries
and different dependencies are
easy
• Command line app access
– Rails console
PHP and Laravel
• Php 5.4 + has Artisan
– Going forward, running multiple
local versions of PHP will be easier
– Also will make tools like Foreman
an option for complex apps
• Laravel has Homestead
– Complete Vagrant based dev
environment
– A framework that takes dev
environments this seriously is huge
– Will only improve thanks to Docker
• Command line app access
– Artisan CLI
35. Migrations
Ruby on Rails
• Migrations are “the” way
• Necessary for teams
working on the same code
locally
• Eases deployment across
multiple environments
PHP and Laravel
• Migrations are “the” way
• Virtually identical to Rails
migrations
36. ORM
“Laravel ships with a superb ORM: Eloquent. If
you have used the Ruby on Rails framework, you
will find Eloquent familiar, as it follows the
ActiveRecord ORM style of database
interaction.”
– Laravel documentation
37. Deployment
Ruby on Rails
• You can always run your
own…
• But Heroku is where Rails
apps begin
• Deployment:
– `git push heroku master`
– Aaaaand that’s it
PHP and Laravel
• You can always run your
own…
• But Laravel Forge makes it
easy to get
THAT
On Linode, Digital Ocean,
Rackspace or AWS
38. Other stuff
Ruby on Rails
• Built with testing in mind
• Queuing is standardized
• RESTful
• Excellent localization
• Extremely well documented
• Rack Middleware layer
• Highly modular
• Very clean syntax
Laravel
• Built with testing in mind
• Queuing is standardized
• RESTful
• Excellent localization
• Extremely well documented
• StackPHP Middleware Layer
• Highly modular
• Very clean syntax
39. What Laravel needs…
• Like any PHP Framework, it needs saturation
• It’s covered all the other bases
– Powerful MVC framework
– Developer workflow
– Full language package management
– Simple, fast deployment options
– Very well documented
– Built for teams (testing + migrations)
– Modular
• Just needs more people using it to solve the “hiring”
case