A Quick Trip Down the Rabbit Hole - An Introduction into what the WP-REST-API is and what you can do with it. This is meant as an explanation for a site owner/project lead who wants to learn what this new technology means and for the developer who wants to understand where this will take the WordPress community over the next decade and beyond.
Rambling Talk given at http://2012.oc.wordcamp.org/
Supplemental information at http://mdawaffe.wordpress.com/2012/06/02/wordcamp-oc-restjson-api-talk/
A Quick Trip Down the Rabbit Hole - An Introduction into what the WP-REST-API is and what you can do with it. This is meant as an explanation for a site owner/project lead who wants to learn what this new technology means and for the developer who wants to understand where this will take the WordPress community over the next decade and beyond.
Rambling Talk given at http://2012.oc.wordcamp.org/
Supplemental information at http://mdawaffe.wordpress.com/2012/06/02/wordcamp-oc-restjson-api-talk/
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
In the front end development world there are 3 dominant players, Angular, ReactJS and VueJs.
Every framework has a strong fan base. And of course lots of pros and cons The best way to learn more about the strengths and weaknesses of the frameworks, I have build the same application with all these frameworks. In this session I will explain my experience with each framework and try to highlight the good the bad and the ugly. Expect to see code
The demo application can be found on GitHub, https://github.com/flinden68/my-events-demo-application
An Overview of the Javascript Ecosystem in 2015. Slides from this talk given at San Diego Javascript on June 2: https://www.youtube.com/watch?v=CGkPsNyI07A
I have contributed since 2009 to WordPress and related projects. I have done some great things for WordPress like rewriting the image manipulation API and leading GlotPress for a long while. But It also lead to some disagreements which had an impact.
This talk encompasses the idea that each of us can be empowered to use and improve WordPress through beta testing of upcoming releases. The 4.4 release is set to hit Beta 1 just three days before WCPDX, which makes this talk a unique opportunity to educate WordCampers on the value of beta testing, and even to interactively participate in testing the next version of WordPress during the talk. I’ll cover my personal journey and lessons learned in dogfooding WordPress for a living, as well as ways anyone (yes, anyone) can get started testing with little to no barrier to entry.
In this session, Drew will be sharing insight into how a WordPress release happens, including an overview of all the moving parts, teams, organization, and execution. A lot of people have this idea that the core team is solely responsible for new versions of WordPress getting released, which couldn’t be further from the truth – it’s an intricate ballet of multiple contributor teams coming together and executing a broad vision.
He will talk about how a release cycle is structured, how and where the decision-making happens, as well as all of the various contributors and teams that play their own part in a successful release. It’s very much opening the black box of how a release works.
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
Abstract: “Why am I getting a security error??” “Why does my code work sometimes, but not others?” “I wonder if McDonalds is hiring.” Writing custom code in SharePoint opens up unlimited possibilities but also throws many hurdles in your way that will slow you down if you don’t take them into account. So, before giving up and searching for careers in the fast food industry, equip yourself with the knowledge you need to succeed in writing custom code for SharePoint.
This presentation describes a "business trip" to Cambodia for a inter-cultural software project. Learn some of the benefits, challenges and lessons learned of this collaboration and how SCRUM can help you in such a setting.
Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
Thoughts on building deployable and updatable share point solutionsSerge van den Oever
Thoughts on building SharePoint solutions as if they are clicked together that can be deployed through dev, test, acceptation and production for version 1.0 and beyond.
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
In the front end development world there are 3 dominant players, Angular, ReactJS and VueJs.
Every framework has a strong fan base. And of course lots of pros and cons The best way to learn more about the strengths and weaknesses of the frameworks, I have build the same application with all these frameworks. In this session I will explain my experience with each framework and try to highlight the good the bad and the ugly. Expect to see code
The demo application can be found on GitHub, https://github.com/flinden68/my-events-demo-application
An Overview of the Javascript Ecosystem in 2015. Slides from this talk given at San Diego Javascript on June 2: https://www.youtube.com/watch?v=CGkPsNyI07A
I have contributed since 2009 to WordPress and related projects. I have done some great things for WordPress like rewriting the image manipulation API and leading GlotPress for a long while. But It also lead to some disagreements which had an impact.
This talk encompasses the idea that each of us can be empowered to use and improve WordPress through beta testing of upcoming releases. The 4.4 release is set to hit Beta 1 just three days before WCPDX, which makes this talk a unique opportunity to educate WordCampers on the value of beta testing, and even to interactively participate in testing the next version of WordPress during the talk. I’ll cover my personal journey and lessons learned in dogfooding WordPress for a living, as well as ways anyone (yes, anyone) can get started testing with little to no barrier to entry.
In this session, Drew will be sharing insight into how a WordPress release happens, including an overview of all the moving parts, teams, organization, and execution. A lot of people have this idea that the core team is solely responsible for new versions of WordPress getting released, which couldn’t be further from the truth – it’s an intricate ballet of multiple contributor teams coming together and executing a broad vision.
He will talk about how a release cycle is structured, how and where the decision-making happens, as well as all of the various contributors and teams that play their own part in a successful release. It’s very much opening the black box of how a release works.
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
Abstract: “Why am I getting a security error??” “Why does my code work sometimes, but not others?” “I wonder if McDonalds is hiring.” Writing custom code in SharePoint opens up unlimited possibilities but also throws many hurdles in your way that will slow you down if you don’t take them into account. So, before giving up and searching for careers in the fast food industry, equip yourself with the knowledge you need to succeed in writing custom code for SharePoint.
This presentation describes a "business trip" to Cambodia for a inter-cultural software project. Learn some of the benefits, challenges and lessons learned of this collaboration and how SCRUM can help you in such a setting.
Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
Thoughts on building deployable and updatable share point solutionsSerge van den Oever
Thoughts on building SharePoint solutions as if they are clicked together that can be deployed through dev, test, acceptation and production for version 1.0 and beyond.
Need to get to know the WordPress REST API? In this webinar, I cover the history of the REST API, which pieces of the API are in WordPress core, how the REST API is being used on real-world websites, and walk you through creating your very own endpoint on your WordPress site.
At WordCamp Norway I presented about why Javascript matters when developing for WordPress. The amount of Javascript grows and it's time that developers look more into Javascript.
The focus is around the example I build for WordSesh to show what you can do with Javascript and Node.js
Pour ce second talk de la saison, nous allons nous intéresser à Wordpress et à son usage en tant que plateforme de développement. Cette présentation va vous donner les clés pour adapter votre workflow de développement avec ce CMS et vous permettre d’aller plus loin que son système de blogging de base.
Jeff Andersen from GoInstant
Have you ever thought that writing web applications should allow you to use your mad Javascript skillz on the server side as well? Node.js is such a platform. Bundling up the Google Chrome Javascript runtime, Node lets you easily building fast and scalable network applications perfect for the real-time web. It's also a pretty great platform for building basic data driven websites too. Jeff, a web developer at Halifax based GoInstant, will introduce us to the Node platform, exploring it from the ground up.
Being a WordPress developer means that our main programming language is PHP. Which works for building websites but not for running tasks. In this talk I will share my experience using Node.js as a platform to build on. Explaining why I have chosen for Node.js and show you how I used Node.js to build microservices that are supporting my WordPress projects.
Whether you are building a mobile app or a web app, Apache Usergrid (incubating) can provide you with a complete backend that supports authentication, persistence and social features like activities and followers all via a comprehensive REST API — and backed by Cassandra, giving you linear scalability. This session will tell you what you need to know to be a Usergrid contributor, starting with the basics of building and running Usergrid from source code. You’ll learn how to find your way around the Usergrid code base, how the code for the Stack, Portal and SDKs and how to use the test infrastructure to test your changes to Usergrid. You’ll learn the Usergrid contributor workflow, how the project uses JIRA and Github to manage change and how to contribute your changes to the project. The session will also cover the Usergrid roadmap and what the community is currently working on.
ASP.NET is a set of Web development tools offered by Microsoft. Programs like Visual Studio .NET and Visual Web Developer allow Web developers to create dynamic websites using a visual interface. Of course, programmers can write their own code and scripts and incorporate it into ASP.NET websites as well. Though it often seen as a successor to Microsoft's ASPprogramming technology, ASP.NET also supports Visual Basic.NET, JScript .NET and open-source languages like Python and Perl.
ASP.NET is built on the .NET framework, which provides an application program interface (API) for software programmers. The .NET development tools can be used to create applications for both the Windows operating system and the Web. Programs like Visual Studio .NET provide a visual interface for developers to create their applications, which makes .NET a reasonable choice for designing Web-based interfaces as well.
My slides of my talk at WordSesh 2014.
A talk about a few projects and the lessons I learned from them.
Checkout wordsesh.org for more information about this event.
Web developers now have a large number of APIs available allowing them to harness complex functionality via JavaScript and produce ever more interesting web experiences. This presentation looks at where we can from, where APIs are going in the future, and what problems we are currently in the process of solving. This includes providing offline installation, multimedia, performance, and more.
Similar to REST In Action: The Live Coverage Platform at the New York Times (20)
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
1.Wireless Communication System_Wireless communication is a broad term that i...
REST In Action: The Live Coverage Platform at the New York Times
1. REST In Action: The Live
Coverage Platform at the
New York Times
WordCamp US
Philadelphia, PA - December 4, 2015
2. Scott Taylor
• Core Developer, WordPress
Release Lead for 4.4
• Sr. Software Engineer, The
New York Times
• @wonderboymusic on Twitter/
Instagram/Swarm et al
• I like Music, NYC, and
Mexican food
4. WordPress at the NYT now
• some “legacy” blogs
• Lens - Photography blog
• First Draft
• some internal corporate sites
• NYT Co.
• Women of the World
• Times Journeys
• The Live Coverage platform
• some forthcoming
International projects
5. WordPress 4.4 Lead
• REST API (Phase 1)
• Term Meta
• Responsive Images
• WordPress as oEmbed Provider
• Tons of under the hood stuff
7. Blogs at the NYTimes
• NYT used WordPress very early
• NYT was an early investor in Automattic
• Multisite
• ~80 blogs at the height of blog mania - the 00s
were the glory days for Blogs and WordPress
• Many blogs used Live Blogging
8. When I arrived:
Legacy Blogs Codebase
• Separate from the rest of the NYT’s PHP codebase
• Global NYTimes CSS and JS, CSS for all Blogs,
custom CSS per-blog
• A universe that assumed jQuery AND Prototype
were loaded on every page in global scope
• Challenging amounts of what could generously be
called “technical debt”
11. • Inline HTML from 2008 that assumes Prototype will
still be a thing in 2015, stored in post_content
• Widgets and inline code that add their own version
of jQuery/Prototype, because YOLO
• Even better: widgets/modules from other teams that
use a different version of jQuery … at times there
could be 4 jQuerys on the page (and 4 different
versions at that)
Things Like ….
13. No shared modules
• Code/HTML markup can get out of sync with other
projects regularly: header, footer, navigation
• The CSS and JS files were split across multiple
SVN repos - changes to global assets can affect us
without us knowing. Fixing the code requires
scouring through multiple repos.
14. At the NYT
• No WordPress Comments: There is an entire team that deals
with these for the site globally, in a different system called CRNR
• No Media: There is another CMS at the Times, Scoop, which
stores the images, videos, slideshows, etc
• WordPress native post-locking: This only landed in WordPress
core in version 3.6 (we have yet to reconcile the differences)
• There is layer for Bylines which is separate from Users: Our
users are employees authenticated via LDAP, most post authors
don’t actually enter the content themselves
15. NYT5: The New Frontier
My arrival at the New York Times coincided with
the NYT5 project, already in progress
16.
17.
18.
19. NYT5
• Development requires Vagrant environment
• “apps” are Git repos that require Grunt to transpile the
codebase - you can’t run your repo as a website: it has
to be built
• Impossible to create a “theme” this time with shared JS
and CSS. CSS is SASS build, JS is Require build - both
dynamically built for each app.
• PHP has Composer dependencies and uses
namespaces - the directories are expanded via Grunt in
accordance with PSR-0 Autoloading Standard
20. require( ['jquery'], function ($) {
$('#cool-link').click(...);
} );
require( ['jquery/1.9'], function ($) {
$('#cool-link').click(...);
} );
require( ['jquery/2.0'], function ($) {
$('#cool-link').click(...);
} );
Require.js fixed the jQuery problem
21. NYT5 Dealbreakers
• We can’t just point at WordPress on every request
and have our code figure out routing. Routing
happens in Apache in NYT5 - most requests get
piped to app.php
• Because PHP Namespaces are used, WP has to
load early and outside of them (global scope)
• On the frontend, WP cannot exit prematurely before
hitting the framework, which returns the response
to the server via SymfonyHttpFoundation
23. NYT5 Advantages
• “shared” modules - we inherit the “shell” of the page,
which includes: navigation, footer, login, etc.
• our nyt5 theme doesn’t need to produce an entire
HTML document, just the “content” portion
• With WP in global scope, all of its code is available even
when we hit the MVC parts of the NYT5 framework.
• WP output is captured via an output buffer on load - it’s
accessible downstream when the app logic is running.
24. $wp_query = new WP_Query();
$GLOBALS['wp_query'] = ...
function wp_thing() {
global $wp_query;
. . .
}
GLOBALS!!!
28. Overall: Bad News for Blogs
• Blogs were duplicating Section Fronts, Columns:
Mark Bittman has column in the paper.
The column also exists on the web as an article.
He contributes to the Diner’s Journal blog.
There is a section front for dining.
He also has his own NYTimes blog. Why?
• Blogs and WordPress were combined in everyone’s
mind. So whenever WordPress was mentioned as a
solution for anything, the response was: aren’t blogs
going away? #dark
29. But we still had…
First Draft
Lens
Live Coverage
33. 2008: Live Blogs at the Times
• A Blog would create a post and check “Start Live
Blogging”
• the updates related to the post were stored in custom
tables in the database
• the APIs for interacting with these tables duplicated tons
of WordPress functionality
• Custom Post Types didn’t exist until WordPress 3.0 (June
2010) - the NYT code was never rewritten to leverage
them (would have required porting the content as well)
34. Live (actual) Blogs:
Dashboards/Dashblogs
• A Live Blog would be its own blog in the network, its own
set of tables
• A special dashboard theme that had hooks to add
custom JS/CSS for each individual blog, without baking
them into the theme
• Making an entirely new site in the network for a 4-hour
event is overkill
• For every 10 or so new blogs that are added, you are
adding 100 new database tables - gross!
35. What if…
• Instead of custom tables and
dupe’d API code, new object
types: events and updates!
• To create a new “Live Blog”: create
an event, then go to a Backbone-
powered screen to add updates
• If WP isn’t desired for the front end,
it could be the backend for
anything that wants a JSON feed
for live event data
• Using custom post types, building
a Live Event UI that looks like the
NYT5 theme would be nominal
36.
37. • Built an admin interface with Backbone to quickly
produce content - which in turn could be read from
JSON feeds
• When saving, the updates post into a service we
have called Invisible City (wraps Redis/Pusher)
• Our first real foray into using the REST API
• Our plan was just to be an admin to produce data
via self-service URLs
What we did
38. Live Events, the new Live Blogs:
Complete Rewrite of 2008 code
• nytimes.com/live/{event} and nytimes.com/live/{event}/
{update}
• Brand new admin interface: Backbone app that uses the
REST API. Constantly updated filterable stream -
Backbone collections that re-fetch on Heartbeat tick
• Custom REST endpoints that handle processes that need
to happen on save
• Front end served by WordPress for SEO, but data is
received by web socket from Invisible City and rendered
via React
44. Guess What?
• Would rather use Docker instead of Vagrant
• PSR-0 is now PSR-4
• Grunt is now eschewed in favor of Gulp
• RequireJS is ok, but I’d rather use Browserify
• PHP is cool, but why don’t we use Node and
React?
45. Interactive News Team
• Mostly independent
• Mostly special News projects
• Mostly use whatever language you want
• Mostly does not use NYT5
• Is open to using WordPress, but just as often, does
not
47. nytimes.com/live/{event}
Request is served by WordPress,
PHP generates markup
React wraps the "posts" area
JS listens to Web Socket
Updates are added on the backend (OR via SLACK!)
React updates the content
53. Most plugins only handle POST
• WP-API and Backbone speak REST
• REST will send you requests via
GET, PUT, DELETE, POST and friends
54. $hook = add_menu_page( ... );
add_action( "load-$hook", 'callback' );
function old_custom_load() {
if ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
return;
}
...
}
function new_custom_load() {
if ( 'GET' === $_SERVER['REQUEST_METHOD'] ) {
return;
}
...
}
55. WordPress becomes
a web service
• Monolithic mindset needs to transition into how to
make it into a bare metal service provider
• The serving of requests should be loosely coupled
from objects like WP_Query
• WordPress needs to become supportive of
concurrency
56. Custom JSON Endpoints for GET
• We do not hit these endpoints on the front-end
• We have a storage mount that is fronted via Varnish
and Akamai
• JSON feeds can show up on the homepage of the
NYT to dynamically render “promos” - these have
to massively scale
57. HTTP is time-consuming
• It is easy to lose track of how many things are
happening on the 'save_post' hook
• Admin needs to be fast
• The front end is typically cached, but page generation
shouldn’t be bogged down by HTTP requests
• Anything which is time-consuming should be
offloaded to a separate “process” or request who
response you don’t need to handle
59. Custom REST Endpoints for POST
• Use fire-and-forget technique on 'save_post',
instead of waiting for responses inline. You can still
log/handle/re-try responses in the separate request.
• Most things that happen on 'save_post' only
need to know $post_id for context, the endpoint
handler can call get_post() from there