Raising the bar 2, Using Puppet to install enterprise middleware applicationsBert Hajee
This document discusses raising the bar by using EasyType to create custom Puppet types. It provides an overview of how to install EasyType, create a module, define a type with properties and parameters, generate the type, and test it by creating and destroying resources. Creating custom types with EasyType reduces the need for extensive Puppet knowledge and allows users to focus on defining object configurations.
This document provides an overview of topics for an ARTDM 171 week 2 class, including:
- Homework assignments due including reading chapters in textbooks and posting a blog comment.
- An introduction to HTML, the core markup language of the web, how it formats text and includes images and hyperlinks.
- Other topics covered include the HTTP protocol, XML, CSS, JavaScript, AJAX, and a brief history of the internet and how it was developed with military origins for robust communication.
- The final homework assigned is to build a first web page in Dreamweaver with specific formatting and design elements.
The document outlines Jonny Allbut's workflow for developing WordPress themes from start to finish. It discusses understanding client requirements, organizing client data, defining responsibilities, payment details, and development milestones. It then covers Jonny's development environment, version control, keeping functions.php organized, testing early and often, deploying the theme, and final thoughts on stopping plugin overuse and prioritizing legibility.
WordCamp Birmingham 2015 - Theme building workshopJonny Allbut
The document discusses techniques for building WordPress themes, including:
- Using a child theme to modify an existing parent theme allowing for easy updates
- Loading styles from a parent theme in a child theme using a functions.php file
- Understanding the WordPress template hierarchy to know which template files get used for different content
- Migrating a WordPress site to a new server by exporting the database, downloading files, importing the database, and running a search/replace script.
The document discusses tools that can increase productivity for WordPress developers. It introduces the speaker and asks the audience about their experience. The talk then demonstrates Integrated Development Environments (IDEs) like PhpStorm, local development environments like VVV and Flywheel, the xDebug debugger, the wp-cli command line interface, PHP CodeSniffer for linting code, and PHPUnit for testing. The key message is to automate as much as possible and use tools that make developers comfortable and productive.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your WordPress site? Cry no more, your tears will be reshaped as blinding swords as we explore uncharted territories laced with mystical creatures.
Debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your WordPress site.
WordCamp Birmingham 2015 - Theme building tricks of the tradeJonny Allbut
I’ve been building WordPress themes since 2005 and have developed a-lot of useful little tricks along the way. I’ll be sharing a handful of my best techniques to help you work with WordPress and build themes like a pro!
A brief about different JavaScript frameworks and some suggestions on when to use each one of them. More details at http://sudarmuthu.com/blog/slides-from-my-talk-about-using-javascript-at-teched
WordCamp Bournemouth 2014 - Designing with data in WordPressJonny Allbut
My Presentation from WordCamp Bournemouth 2014 on designing with data in WordPress. Covers structuring your data, the different data storage/attachment options available to you and some food for thought on how to use this data to deliver flexible WordPress websites.
This document provides an agenda and overview for a developer training session. It discusses developing a growth mindset for programming, strategies for managing frustration, resources for learning programming concepts and getting help, and approaches for collaborative work. It also introduces backend concepts like servers, databases, and JavaScript on the server side using Node.js. The homework assignment involves researching and documenting programming resources.
Power to the People: Manipulating SharePoint with Client-Side JavaScriptPeterBrunone
First delivered at SharePoint Saturday Houston, this presentation provides a brief background of the use of JavaScript in SharePoint before forging ahead into the capabilities of jQuery and the Client-Side Object Model.
Building fast webapps, fast - Velocity 2010marcuswestin
The document discusses techniques for building fast third-party web applications. It recommends initializing scripts asynchronously and non-blocking to avoid impacting page load. Specifically, it suggests loading scripts through an iframe to defer execution until needed and reduce blocking. The document also recommends deferring content downloads, combining files to reduce requests, embedding images in CSS, and using vector graphics to improve performance.
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Jonny Allbut
Jonny Allbut discusses best practices for building responsive WordPress themes. He outlines his theme development workflow and covers topics like using responsive design, PHP and CSS tricks, testing, and common theme trends like responsive layouts. The document provides tips on structure, templates, images, widgets, and useful hooks for developers.
This document provides an overview of WordPress, including that it is free and open source software, has a large community and available themes/plugins, and can be easily installed and configured for personalizing learning. Key points covered include the differences between posts and pages, using widgets and menus, options for themes and plugins, performing updates, and using WordPress Multisite to allow users to personalize their own blogs.
This document provides an overview of an introductory session on web development tools, including introducing the presenter and participants, covering basic Linux commands, developer tools, and tips for using tools in Windows and on the command line. Participants will work collaboratively and hands-on during the session.
This document discusses asynchronous JavaScript, databases, and Project 3. It introduces callbacks, promises, and async/await in JavaScript. It also covers the differences between SQL and NoSQL databases, provides examples of using SQL databases locally and online, and exercises on SQLZOO. It describes Project 3 as connecting a database to the back end of an application. Students are instructed to draw out their database structure, write queries, and demo their working Project 3 application connecting to an actual database by the due date.
This document provides an agenda and instructions for setting up a server and database for a coding project. It discusses setting up a Node.js server on Digital Ocean, forking a sample project on GitHub, installing dependencies with NPM, running the server, and using EJS templates and MySQL Workbench to connect to and modify a database. Students are instructed to fork the sample project, modify it to use their own database, run it on their server, and submit the GitHub link and website URL for homework.
This document discusses blogs and wikis. It begins by explaining what blogs are - online journals or diaries - and notes that the most basic blogs are for personal use while others are used for sharing knowledge or commentary. Wikis are described as online collaborative documents that allow global collaboration without needing the latest computers. Examples are given of popular blogging and wiki platforms like Blogger, LiveJournal, Wikipedia, and Edublogs. The document encourages readers to use these tools to share knowledge and be part of online innovation.
Drupal Day 2011 - Features: una vita feliceDrupalDay
Talk di Daniele Piaggesi & Luca Corbo
Il modulo Features per Drupal 7, permette al developer di costruire singole funzionalità riusabili in molteplici situazioni, oltre a disaccoppiare definitivamente la fase configurativa del CMS con la sua base dati.
In questa sessione vedremo velocemente dei casi d'uso del sistema di ""featuring"" di Drupal, quando usarle e con quali accortezze. E perchè questa funzionalità rende Drupal un CMS decisamente più duttile e maturo della sua concorrenza.
1. JavaScript is a programming language built into web browsers that allows for source code, algorithms, and input/output of data. Variants include ActionScript and JScript.
2. jQuery is a JavaScript library that makes complex tasks easier by providing functions to simplify things like DOM manipulation.
3. Debugging tools built into browsers can help proofread markup languages for errors by catching problems as the page loads. While coding standards help, computers don't always behave predictably so issues may still occur.
Power Without Plugins - WordCamp Miami 2012Myke Bates
Very few slides - we will mainly be going over code samples, but here are the slides anyways. Never mind the strange fonts - I was using a nonstandard type.
This document provides an introduction to WordPress from Samuel "Otto" Wood. It summarizes that WordPress is free, open-source content management system software that allows users to easily create and manage websites and blogs. It highlights key features like plugins, themes, and an active developer community for support. The document also provides an overview of WordPress APIs and how it is evolving to incorporate more object-oriented programming approaches.
The document outlines the agenda for the final week of a web development course. It includes wrap-up discussions, group presentations, course surveys, and demos of web applications built with technologies like React, Node.js, and Google Cloud Platform. Students will also discuss current trends in web development tools and technologies and strategies for continuing their learning after completing the course.
Web Development with Vim by Johannes RaggamT. Kim Nguyen
This document summarizes a presentation on using Vim for web development. It introduces the presenter and provides links to related resources. It then demonstrates various Vim plugins and configurations for file navigation, linting and formatting, Git integration, and other development tasks. The document concludes by offering to help with configuring jedi-vim for Python auto-completion using a project-specific paths file.
"Wordpress for web designers. What, when, how, where" por @nuriaraiwebcat
This document provides an overview of WordPress, including what it is, what a web content management system (WCMS) is, the pros and cons of WordPress, the types of sites that can be built with it, when to use or not use WordPress, how to use WordPress through themes, plugins and other features, and where WordPress is commonly used and where to find resources.
The document discusses building a basic Drupal website quickly using common tools and techniques. It recommends choosing an install profile to match client needs, using Drush to install the site in a new subdirectory, enable relevant modules and features, apply a contributed theme, and create a client account. With these steps, the document claims the $500 website can be built in about 30 minutes once the developer has configured their Drupal "toolkit" with commonly used modules.
Turneround Consultancy Ltd. specializes in transforming manufacturing companies to achieve best-in-class performance in safety, quality, cost and delivery. Led by Richard Turner, a transformational leader in lean manufacturing, it offers services such as strategic consultation, value stream mapping, process design, and training to facilitate operational excellence.
The document discusses strategies for improving a company's EBITDA through operational transformations. It provides examples of how minimal improvements across portfolio companies can significantly increase a firm's overall enterprise value. The strategies include identifying opportunities to increase revenue, improve efficiencies, and reduce costs. A methodology is outlined that involves discovery, assessment, planning and executing initiatives to standardize processes and embed transformations organizationally. Case studies demonstrate how targeting specific value streams can yield substantial EBITDA and margin gains through strategic programs.
A brief about different JavaScript frameworks and some suggestions on when to use each one of them. More details at http://sudarmuthu.com/blog/slides-from-my-talk-about-using-javascript-at-teched
WordCamp Bournemouth 2014 - Designing with data in WordPressJonny Allbut
My Presentation from WordCamp Bournemouth 2014 on designing with data in WordPress. Covers structuring your data, the different data storage/attachment options available to you and some food for thought on how to use this data to deliver flexible WordPress websites.
This document provides an agenda and overview for a developer training session. It discusses developing a growth mindset for programming, strategies for managing frustration, resources for learning programming concepts and getting help, and approaches for collaborative work. It also introduces backend concepts like servers, databases, and JavaScript on the server side using Node.js. The homework assignment involves researching and documenting programming resources.
Power to the People: Manipulating SharePoint with Client-Side JavaScriptPeterBrunone
First delivered at SharePoint Saturday Houston, this presentation provides a brief background of the use of JavaScript in SharePoint before forging ahead into the capabilities of jQuery and the Client-Side Object Model.
Building fast webapps, fast - Velocity 2010marcuswestin
The document discusses techniques for building fast third-party web applications. It recommends initializing scripts asynchronously and non-blocking to avoid impacting page load. Specifically, it suggests loading scripts through an iframe to defer execution until needed and reduce blocking. The document also recommends deferring content downloads, combining files to reduce requests, embedding images in CSS, and using vector graphics to improve performance.
Build WordPress themes like a heavyweight - WordCamp Lancaster 2013Jonny Allbut
Jonny Allbut discusses best practices for building responsive WordPress themes. He outlines his theme development workflow and covers topics like using responsive design, PHP and CSS tricks, testing, and common theme trends like responsive layouts. The document provides tips on structure, templates, images, widgets, and useful hooks for developers.
This document provides an overview of WordPress, including that it is free and open source software, has a large community and available themes/plugins, and can be easily installed and configured for personalizing learning. Key points covered include the differences between posts and pages, using widgets and menus, options for themes and plugins, performing updates, and using WordPress Multisite to allow users to personalize their own blogs.
This document provides an overview of an introductory session on web development tools, including introducing the presenter and participants, covering basic Linux commands, developer tools, and tips for using tools in Windows and on the command line. Participants will work collaboratively and hands-on during the session.
This document discusses asynchronous JavaScript, databases, and Project 3. It introduces callbacks, promises, and async/await in JavaScript. It also covers the differences between SQL and NoSQL databases, provides examples of using SQL databases locally and online, and exercises on SQLZOO. It describes Project 3 as connecting a database to the back end of an application. Students are instructed to draw out their database structure, write queries, and demo their working Project 3 application connecting to an actual database by the due date.
This document provides an agenda and instructions for setting up a server and database for a coding project. It discusses setting up a Node.js server on Digital Ocean, forking a sample project on GitHub, installing dependencies with NPM, running the server, and using EJS templates and MySQL Workbench to connect to and modify a database. Students are instructed to fork the sample project, modify it to use their own database, run it on their server, and submit the GitHub link and website URL for homework.
This document discusses blogs and wikis. It begins by explaining what blogs are - online journals or diaries - and notes that the most basic blogs are for personal use while others are used for sharing knowledge or commentary. Wikis are described as online collaborative documents that allow global collaboration without needing the latest computers. Examples are given of popular blogging and wiki platforms like Blogger, LiveJournal, Wikipedia, and Edublogs. The document encourages readers to use these tools to share knowledge and be part of online innovation.
Drupal Day 2011 - Features: una vita feliceDrupalDay
Talk di Daniele Piaggesi & Luca Corbo
Il modulo Features per Drupal 7, permette al developer di costruire singole funzionalità riusabili in molteplici situazioni, oltre a disaccoppiare definitivamente la fase configurativa del CMS con la sua base dati.
In questa sessione vedremo velocemente dei casi d'uso del sistema di ""featuring"" di Drupal, quando usarle e con quali accortezze. E perchè questa funzionalità rende Drupal un CMS decisamente più duttile e maturo della sua concorrenza.
1. JavaScript is a programming language built into web browsers that allows for source code, algorithms, and input/output of data. Variants include ActionScript and JScript.
2. jQuery is a JavaScript library that makes complex tasks easier by providing functions to simplify things like DOM manipulation.
3. Debugging tools built into browsers can help proofread markup languages for errors by catching problems as the page loads. While coding standards help, computers don't always behave predictably so issues may still occur.
Power Without Plugins - WordCamp Miami 2012Myke Bates
Very few slides - we will mainly be going over code samples, but here are the slides anyways. Never mind the strange fonts - I was using a nonstandard type.
This document provides an introduction to WordPress from Samuel "Otto" Wood. It summarizes that WordPress is free, open-source content management system software that allows users to easily create and manage websites and blogs. It highlights key features like plugins, themes, and an active developer community for support. The document also provides an overview of WordPress APIs and how it is evolving to incorporate more object-oriented programming approaches.
The document outlines the agenda for the final week of a web development course. It includes wrap-up discussions, group presentations, course surveys, and demos of web applications built with technologies like React, Node.js, and Google Cloud Platform. Students will also discuss current trends in web development tools and technologies and strategies for continuing their learning after completing the course.
Web Development with Vim by Johannes RaggamT. Kim Nguyen
This document summarizes a presentation on using Vim for web development. It introduces the presenter and provides links to related resources. It then demonstrates various Vim plugins and configurations for file navigation, linting and formatting, Git integration, and other development tasks. The document concludes by offering to help with configuring jedi-vim for Python auto-completion using a project-specific paths file.
"Wordpress for web designers. What, when, how, where" por @nuriaraiwebcat
This document provides an overview of WordPress, including what it is, what a web content management system (WCMS) is, the pros and cons of WordPress, the types of sites that can be built with it, when to use or not use WordPress, how to use WordPress through themes, plugins and other features, and where WordPress is commonly used and where to find resources.
The document discusses building a basic Drupal website quickly using common tools and techniques. It recommends choosing an install profile to match client needs, using Drush to install the site in a new subdirectory, enable relevant modules and features, apply a contributed theme, and create a client account. With these steps, the document claims the $500 website can be built in about 30 minutes once the developer has configured their Drupal "toolkit" with commonly used modules.
Turneround Consultancy Ltd. specializes in transforming manufacturing companies to achieve best-in-class performance in safety, quality, cost and delivery. Led by Richard Turner, a transformational leader in lean manufacturing, it offers services such as strategic consultation, value stream mapping, process design, and training to facilitate operational excellence.
The document discusses strategies for improving a company's EBITDA through operational transformations. It provides examples of how minimal improvements across portfolio companies can significantly increase a firm's overall enterprise value. The strategies include identifying opportunities to increase revenue, improve efficiencies, and reduce costs. A methodology is outlined that involves discovery, assessment, planning and executing initiatives to standardize processes and embed transformations organizationally. Case studies demonstrate how targeting specific value streams can yield substantial EBITDA and margin gains through strategic programs.
Value creation is the function of every organization. While the definition of value, and who you are creating value for, varies across sectors and industries, it is an imperative that must be embraced for anyone who wants to remain relevant to stakeholders and shareholders alike.
The fundamental equation for value creation is “who, what, and how,” those these variables will change depending on the type of value being created.
This document outlines the McKinsey approach to analyzing problems, gathering and interpreting data, presenting solutions, and managing projects, teams, clients, and oneself. Some key aspects include using a logical framework like MECE to structure problems, developing hypotheses and testing assumptions, prioritizing different analyses and data sources, interviewing stakeholders effectively, interpreting data objectively and assessing solutions from the client's perspective, gaining buy-in from all parties, and maintaining client relationships over the long term. Self-management involves finding mentors, focusing on continual improvement, leveraging one's network, and maintaining a healthy work-life balance.
The document discusses McKinsey's approach to time management and prioritizing work. It emphasizes doing the most important tasks rather than just urgent ones, focusing on the overall goals and picture rather than getting lost in details, and using tables to schedule daily tasks to stay organized and on track. Maintaining an overall perspective and prioritizing strategically important work over busywork is key to high efficiency according to McKinsey's time management techniques.
This document provides an executive's guide to management tools in 2013 published by Bain & Company. It includes an introductory preface and then summaries of various management tools like the balanced scorecard, benchmarking, big data analytics, business process reengineering, change management programs, and more. For each tool there is a brief description and a list of related topics. It also provides contact information for Bain & Company's global offices.
The mckinsey way "How consulting company works"Suhag Mistry
Presentation on book "The Mckinsey Way" I have tried to cover key points described in book on How Mckinsey manages the company and culture of the organization.
This document provides an overview of internal consulting and guidance for internal consultants. It discusses what defines an internal consultant and how they differ from external consultants in needing to build credibility within the organization. The document then outlines the multiple roles of an internal consultant and tips for success. Finally, it details the typical phases of a consulting engagement, including defining needs, finalizing agreements, assessing information, providing feedback, setting change targets, implementing strategies, and evaluating outcomes. The overall message is to help internal consultants understand their unique role and how to effectively guide organizations through the consulting process.
Bain & Company is a global management consulting firm founded in 1973 in Boston by former BCG consultants. It provides advisory services to businesses, non-profits, and governments. Bain faces competition from other top-tier consulting firms like McKinsey, BCG, Monitor Company and LEK Partnership. To grow, Bain must determine whether to focus on traditional advanced markets or emerging developing markets, and whether to rely solely on organic growth or pursue external opportunities like acquisitions or joint ventures. Maintaining its unique "one firm" culture while expanding internationally is also a key challenge.
The document discusses three models of consultation: the expert model, doctor-patient model, and process consultation model. The expert model positions the consultant as an expert bringing solutions to clients. The doctor-patient model gives consultants more power to diagnose problems and prescribe solutions. Process consultation aims to build a helping relationship where clients address their own issues with consultant support. It emphasizes the client owning the problem and solution.
Bain & Company is a global strategic consulting firm established in 1973 with 49 offices worldwide and over 5,500 employees. It has a 31% market share and is ranked 4th among the top 15 employers. Bain provides consultancy services across various industries like financial services, healthcare, retail, technology, telecommunications, energy, and private equity. It offers services related to performance improvement, strategy, mergers and acquisitions, organization change management, IT, and customer strategy. Bain has a typical career progression where associates and consultants gain experience and take on greater responsibilities like case team leader, manager, principal, and partner roles.
Being a consultant and also teacher, I noticed gaps between what is being taught and what is being practised. These slides are my attempts to close the gaps.
Part 1 is more on the overview and processes while Part 2 will place more emphasis on Consultant's competencies.
Since many have requested for the copy, I have made this presentation downloadable. Thank you for your visits and comments.
- The McKinsey Way emphasizes rigorous fact-based analysis, structured problem-solving processes, and hypothesis-driven solutions. It relies on assembling teams with intellectual horsepower, experience, and emotional intelligence.
- McKinsey consultants follow rules like focusing on the key 20% of drivers that matter most, conducting thorough research and interviews, and continually reviewing lessons learned to iteratively improve solutions.
- Successful consultants respect clients, get buy-in throughout engagements, and focus on rigorous implementation to achieve results rather than just activity. Maintaining integrity, humility, and meritocracy are valued both within McKinsey and after leaving the firm.
1. The document discusses various models of the consulting process including Schein's problem solving model, Lippitt and Lippitt's consulting process model, Block's flawless consulting model, and the systemic consulting loop model.
2. It also outlines different roles consultants can take including expert, pair of hands, and collaborative according to Schein as well as objective observer, process counselor, fact finder, identifier of alternatives, joint problem solver, trainer/educator, information specialist, and advocate according to Lippitt and Lippitt.
3. The models and roles are intended to help consultants match their approach to the complexity of the project and needs of the client.
The document summarizes McKinsey & Company's research on promoting gender diversity in organizations over several years from 2007 to 2012. Some of the key findings include: (1) Companies with more women in top executive positions tend to have better financial performance; (2) Leadership behaviors more commonly seen in female leaders (such as people development) improve organizational health; (3) Getting more women into leadership requires action at societal, governmental, company and individual levels.
This document analyzes the author's past and present romantic relationships using a BCG matrix format. It summarizes that the author's current relationship ranks highly compared to other relationships but that awareness of the relationship is low. The physical characteristics between the author and his partner are described as strong, though a disconnect was found between what the partner needs from the relationship and what the author provides. The summary concludes that the current relationship appears to be weakening with long-term prospects diminishing, and that addressing roadblocks is important to maintain the relationship.
The document outlines the key parts of web applications including the front-end, middleware, and back-end. It then provides a roadmap for learning the four main clusters of knowledge needed for web development: back-end development using Python frameworks like Django and Flask, front-end development using HTML5, CSS, and JavaScript, version control using Git, and deployment using Heroku. Specific resources like Codecademy, Mozilla Developer Network, and books from ImportPython are recommended for learning each area.
This presentation is useful for PHP beginner, it contains PHP with Xampp.
Xampp download, installation,configure and basic level of program using PHP.
At the last page of presentation few links is provided might be that will help you for higher level of programming.
This document provides a case study on a project created using open source technology. It discusses analyzing project goals and resources, evaluating open source options based on total cost of ownership, implementing a solution using LAMP stack, and lessons learned. The project was developed using Linux, Apache, MySQL, and PHP based on the needs of a low budget, ability to invest in internal skills, and reduce dependency on external trends. Key steps included preparing the Linux server, using version control and local testing, and engaging the open source community for support.
This document provides an overview of modern web development including products, languages, frameworks, content management systems, architecture, services and case studies. It discusses key concepts like what constitutes a product versus a project, popular programming languages for web and mobile including JavaScript, frameworks like Express and React, CMS options, client-side rendering, and using external services.
Habitat is a tool for building and running distributed applications. It aims to standardize packaging and running applications across different environments. With Habitat, applications are packaged into "harts" which contain all their dependencies and can be run on any system. Habitat handles configuration, service discovery, and updates to provide a uniform way to deploy applications. Plans are used to define how to build harts in a reproducible way. The Habitat runtime then manages running applications as services.
When performing security assessments or participating in bug bounties, there is generally a methodology you follow when assessing source-code or performing dynamic analysis. This involves using tools, reviewing results and understanding what you should be testing for. Reviewing modern web applications can be quite challenging, and this talk will go into details on how we can automate the boring (but necessary parts) and how to set a roadmap of what should be focused on when dealing with modern JavaScript applications.
The document discusses the modern frontend toolchain for developing complex client-side JavaScript applications. It recommends using command line tools like Homebrew, NPM, RubyGems to manage dependencies. Source code management with Git and feature branching workflow is also emphasized. Node.js and package managers like NPM and Bower are introduced to help manage third-party libraries. Task automation with Grunt is presented as a way to automate common development tasks like testing, preprocessing, and building.
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.
Are you a developer who works with PHP? Then this webinar was made for you.
Even though PHP is a simple and practical language, it is easy to make code with the help of unorthodox solutions, also known as "kludges", that can endanger your website.
In this webinar, Jean will explore some examples of PHP coding done incorrectly. Jean will also show you how badly written code is an invitation for hackers to exploit a website.
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.
This document provides information about the speaker, including their name, contact information, work experience, projects, and interests. They are a security researcher who previously worked as a VA and now works for HP Application Security Center. They enjoy talking about hacking and drinking beer and gin and tonics. The document also outlines an upcoming workshop they will be conducting on web hacking tools and techniques.
The document provides an overview of the author's experience building web applications using Go. It discusses the author's background with various backend and frontend technologies. It then summarizes building web apps in Go, covering routing, handlers, middleware, models, rendering, frameworks, and packages. The author advocates composing simple packages together rather than relying on magic or large frameworks. The document also touches on developer tools for assets, hot reloading, and distribution packaging.
Introduction to Penetration Testing with a use case of LFI -> Shell. I talk about the mindset required to be a good tester, and show places many testers and automated tools stop and how to go further.
Slides for Automation Guild 2016 Conference
If you want to automate, you learn to code, and you learn to code well.
“Automate” doesn’t mean “Automate Testing” it means “Automate part of your test process”.
You need to learn to code to do that with the most options open to you.
We’ll look at some ‘we do this alot’ and ‘we want to automate’ activities which we can use tools for. But we’ll also see that we are limited by the tools.
When we code, we can do a lot with minimum code, and gain a lot more flexibility.
Then we’ll cover how to think about learning to code.
solve a problem quickly (automate tactically)
solve a problem for the long term (automate strategically)
To work strategically we need to learn:
to code well,
understand refactoring,
libraries vs frameworks,
abstractions,
etc.
This talk isn’t just for beginners, we’ll cover stuff that should make it useful for the experts in the audience.
We’ll cover a lot in 45 mins, with code examples and tool examples, and I’ll make it all pretty practical.
For more details visit:
https://www.compendiumdev.co.uk/page/tag2017
Austin Python Learners Meetup - Everything you need to know about programming...Danny Mulligan
This document provides an overview of the key topics and tools needed for programming without prior experience, summarized in 3 sentences:
It discusses editors/IDEs, revision control, testing, debugging, common errors, performance, libraries, documentation, getting help, practicing, and answers questions about programming. Popular editors mentioned include TextEdit, Notepad, EMACS, and vim, while revision control tools include GIT and Mercurial. The document emphasizes using libraries, writing tests, avoiding errors, and getting help from documentation and online communities like StackOverflow.
This document discusses setting up a local development environment for Drupal. It covers installing and configuring XAMPP, a local web server package, downloading and installing Drupal, and installing useful development tools like Git, Drush, and Sass. XAMPP is used to create a local server for testing Drupal sites without needing a live server. Drupal is downloaded and its installation wizard is used to set up a new Drupal site. Git is installed for version control and Drush provides commands for common Drupal tasks from the command line. Sass is also installed to allow writing CSS in a more reusable, object-oriented way.
This document discusses various techniques for finding and exploiting vulnerabilities during a penetration test when vulnerabilities are marked as "low" or "medium" in severity. It argues that penetration testers and clients should not rely solely on vulnerability scanners and should thoroughly investigate even lower severity issues. Specific techniques mentioned include exploiting default credentials on services like VNC, exploiting exposed admin interfaces found through tools like Metasploit, taking advantage of browsable directories with backups or other sensitive files, exploiting SharePoint misconfigurations, exploiting HTTP PUT or WebDAV configurations, exploiting Apple Filing Protocol, and exploiting trace.axd to view request details in .NET applications. The document emphasizes finding overlooked vulnerabilities and keeping "a human in the mix" rather than full reliance
The document is a presentation on high performance PHP. It discusses profiling PHP applications to identify bottlenecks, code-level optimizations that can provide gains, and big wins like upgrading PHP versions and using APC correctly. It also covers load testing tools like JMeter and key takeaways like focusing on big wins and caching.
Distributed defense against disinformation: disinformation risk management an...Sara-Jayne Terp
This document discusses distributed defense against disinformation through cognitive security operations centers (CogSecCollab). It proposes a multi-pronged approach involving platforms, law enforcement, government, and other actors to address the complex problem of online disinformation. Key aspects include establishing disinformation security operations centers to conduct threat intelligence, incident response, risk mitigation, and enablement activities like training, tools, and processes. The centers would use frameworks to model disinformation campaigns and share indicators across heterogeneous teams in a collaborative manner. Simulations, red teaming, and other techniques are recommended to test defenses and learn from examples.
Risk, SOCs, and mitigations: cognitive security is coming of ageSara-Jayne Terp
This document discusses cognitive security and disinformation risk assessments. It outlines three layers of security - physical, cyber, and cognitive. It describes various disinformation strategies and risks, including different types of misleading information like disinformation, misinformation, and malinformation. It then discusses approaches for assessing and managing disinformation risks, including analyzing the information, threat, and response landscapes in a country. It provides frameworks for classifying disinformation incidents and objects. Finally, it discusses how to set up a cognitive security operations center (CogSOC) to conduct near real-time monitoring, analysis, and response to disinformation threats.
disinformation risk management: leveraging cyber security best practices to s...Sara-Jayne Terp
This document discusses leveraging cybersecurity best practices to support cognitive security goals related to disinformation and misinformation. It outlines three layers of security - physical, cyber, and cognitive security. It then provides examples of cognitive security risk assessment and mapping the risk landscape. Next, it discusses working together to mitigate and respond to risks through proposed cognitive security operations centers. Finally, it provides a hypothetical example of conducting a country-level risk assessment and designing a response strategy. The document advocates adapting frameworks and standards from cybersecurity to help conceptualize and coordinate cognitive security challenges and responses.
This document discusses cognitive security, which involves defending against attempts to intentionally or unintentionally manipulate cognition and sensemaking at scale. It covers various topics related to cognitive security including actors, channels, influencers, groups, messaging, and tools used in disinformation campaigns. Frameworks are presented for analyzing disinformation incidents, adapting concepts from information security like the cyber kill chain. Response strategies are discussed, drawing from fields like information operations, crisis management, and risk management. The need for a common language and ongoing monitoring and evaluation is emphasized.
2021 IWC presentation: Risk, SOCs and Mitigations: Cognitive Security is Comi...Sara-Jayne Terp
This document discusses cognitive security and disinformation risk assessments. It outlines three layers of security - physical, cyber, and cognitive. It describes various disinformation strategies and risks, including different types of misleading information like disinformation, misinformation, and malinformation. It then discusses approaches for assessing and managing disinformation risks, including analyzing the information, threat, and response landscapes in a country. It provides frameworks for classifying disinformation incidents and objects. Finally, it discusses how to set up a cognitive security operations center (CogSOC) to conduct near real-time monitoring, analysis, and response to disinformation threats.
This document discusses distributed defense against disinformation through cognitive security operations centers (CogSecCollab). It proposes a multi-pronged approach involving platforms, law enforcement, government, and other actors to address the complex problem of online disinformation. Key aspects include establishing disinformation security operations centers to conduct threat intelligence, incident response, risk mitigation, and enablement activities. The centers would use frameworks like AMITT to analyze disinformation techniques, track narratives and artifacts, and share intelligence. A variety of tactics are outlined, including detecting, denying, disrupting, and deceiving disinformation actors, as well as developing counter-narratives. Machine learning and automation could help with tasks like graph analysis, text analysis, and
1) The document discusses frameworks for understanding and responding to disinformation, including the AMITT and ATT&CK frameworks.
2) It describes various types of actors involved in spreading disinformation and proposes establishing Disinformation Security Operations Centers to facilitate collaboration between response efforts.
3) The goals of a CogSec SOC are outlined as informing about ongoing incidents, neutralizing disinformation, preventing future incidents, supporting organizations, and acting as a clearinghouse for incident data.
This document discusses lessons learned from the CTI League's Disinformation Team in responding to disinformation incidents related to COVID-19. It outlines key aspects of disinformation response including identifying common COVID-19 narratives, understanding motivations like money and geopolitics, and evolving tactics used by disinformation actors. It also describes the incident response process involving triaging incidents, conducting analysis to understand the situation, and considering options for countermeasures. Collaboration is emphasized as critical to effectively countering this complex, global problem.
1. The document outlines plans for an Information Sharing and Analysis Organization (ISAO) focused on countering misinformation.
2. It proposes building a global infrastructure and connecting public and private stakeholders to facilitate information sharing and developing collaborative capabilities to define, disseminate and apply best practices for cognitive security.
3. The ISAO would identify risks, protect information systems, detect threats and incidents, respond with countermeasures, and help recovery through lessons learned - extending the MITRE ATT&CK framework to analyze misinformation campaigns and techniques.
This document summarizes a presentation about social engineering at scale on the internet. The presentation discusses how social media platforms like Facebook have been used by groups to spread misinformation and manipulate public opinion at a massive scale through inauthentic accounts and posts. It also examines common human vulnerabilities that are exploited, such as biases and emotions. The presentation then outlines some responses from different groups to address this issue, including tech companies, journalists, and politicians. It concludes by suggesting ways to better design systems to reduce manipulation and abuse while coexisting with social bots.
The document discusses social engineering at scale on social media platforms like Facebook, the vulnerabilities it exploits in human cognition, and various responses to the spread of misinformation and disinformation online. It notes how certain Facebook groups have achieved massive shares and interactions while spreading untruths, and outlines cognitive biases and effects that make misinformation spread widely. Responses discussed include fact-checking organizations, changes by tech companies and social networks, and efforts by journalists, politicians, and hackers. It suggests this issue significantly changes the nature of the internet and human interactions online.
This document discusses belief hacking and how beliefs can be influenced through the use of algorithms, data analytics, and artificial intelligence on social networks. It describes how beliefs can be modeled and adjusted by optimizing for what people want to believe, using propaganda techniques to undermine opposing views, and leveraging social contagion to spread ideas. The document warns that while misinformation can be disruptive, understanding the systems already in place to influence beliefs is needed before attempting to counter or limit their effects.
This document discusses risks and mitigations when releasing data. It defines risk as the probability of something happening multiplied by the resulting cost or benefit. There are risks of physical harm, legal harm, reputational harm, and privacy breaches to data subjects, collectors, processors, and those releasing the data. Risk levels can be low, medium, or high. The document provides strategies for mitigating risks such as considering partial data releases, including locals to assess risks in local languages/contexts, and being aware of how data may interact with other datasets. It emphasizes the responsibility to do no harm when releasing datasets.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
Quantum Computing Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
4. Being a Computer Scientist is…
•
•
•
•
•
•
…knowing all the gotchas that trip you up
…like security
…and scaling
…solving an endless series of puzzles
…sometimes deeply frustrating
…someone you can hire once your idea’s
funded and off the ground
5. … So Build Prototypes (MVPs)
“I went through 3-4 years thinking I was going to meet
some magical engineer who would build all the stuff I
was thinking about. But I never met that person, so I
taught myself ASP and MS Access out of a book and got
to work just hacking stuff together. I’m still a really
shitty programmer, but I know enough to hack a
prototype together”
- Dennis Crowley, Foursquare founder
6. … and Don’t Worry About Perfect
“Contestants must create a working software
application that uses one or more of the MTA
data sets or APIs available at
http://mta.info/developers/, and includes the
ability to update/refresh the data”
– 2013mtaappquest.challengepost.com
9. Which Application?
don’t code
Minimally adapt
code
Build small
Use a framework
Build custom
Website
Use Wordpress,
Drupal, Joomla
etc.
Add Php to
wordpress, drupal
etc
Write html
Write in
Ruby/Rails,
Python/Django,
Php/Codeignitor
etc
Write in Ruby,
Python, Php etc
Mobile phone
Use SMS. Use
Funf, Conduit etc
Write html
Write Java,
Obective-C
Desktop tool
Use Excel,
download apps etc
Add Visual Basic
functions to Excel
etc.
Command line
interface
Graphical user
interface
Write in C++,
Java, etc.
Microcontrollers
Build circuits
Write in Python, C
etc
11. How Easy to Get Started?
• Html – very easy
• Css – easy
• Javascript – not so easy, but powerful
• Php – very easy, can be messy
• Ruby/Rails – easy, structured
• Python/Django – not so easy, structured, very
powerful data-handling libraries
13. Find Your Terminal Window
• Windows: from start menu, go to “all
programs -> accessories -> command prompt”
• Mac: go to “/applications/utilities” then click
on “terminal”
• Linux: you’re already there
14. Get a Good Text Editor
•
•
•
•
Notepad++
Komodo Edit
Eclipse
Idle (for Python)
20. HTML Help
• Getting started:
– Write a file with extension “.htm” or “.html”
– Open the file in a browser
• Getting help:
– Http://w3schools.com/
– http://learn.shayhowe.com/html-css
– http://www.htmlgoodies.com/
– http://www.dontfeartheinternet.com/
24. CSS Help
• Getting started:
– Write a .css file
– Add “<link rel="stylesheet"
href=“yourfilename.css">” to an html file
• Getting help:
– use the same sites as for html
– http://css-tricks.com/
27. Javascript Help
• Getting started:
– Add javascript to your html files
– Write .js file and add link to html files
• Getting help:
– http://www.w3schools.com/js/
– http://www.codecademy.com/tracks/javascript
– http://www.w3schools.com/ajax/
30. Php: Getting started
• First, set up a virtual server (WAMP, MAMP,
XAMPP etc).
• Then put your php file into directory
wamp/www (or mamp/www or xampp/www)
• Start the virtual server
• Point your browser at
localhost/myphpfile.php
37. Python: getting started
• https://wiki.python.org/moin/BeginnersGuide/Do
• http://docs.python-guide.org/en/latest/ (look
under “properly install”)
• http://icanhazdatascience.blogspot.com/2013/03/
38. Python: getting help
•
•
•
•
•
•
•
•
The Best Way to Learn Python (Read)
Learn Python the Hard Way (Read)
The Python Tutorial (Read)
NewBoston's Python videos (Watch)
http://www.pyschools.com/ (Do)
Codecadamy's Python course (Do)
MIT's Intro to Computer Science (Study)
help(xx)
46. Last (but not least)
• Please!
– Comment your code
– Use coding standards
– Learn about Test-Driven Development
– Be adventurous :
• Failing isn’t bad, it’s learning!
• If a learning method doesn’t work for you, it’s not you:
try a different method!
Editor's Notes
#2: {"38":"help(xx) is a python command. If you’re not sure about a python variable or function, type help(functionname) to see what you can do with it.\nAnd there’s now a Ruby version of learn python the hard way… called “Learn Ruby The Hard Way”. \n","27":"Here’s how to get started, and where to find more help. \nYou also need to know about AJAX. AJAX (Asynchronous JavaScript and XML) is a way to only change the pieces of a webpage that you need to – e.g. if all you want to do is change the name of a button, you change the name of that button rather than reloading the whole page from the Internet. \n","16":"You’ll need somewhere to write and test software that you’re developing for the internet, and you won’t always be online when you’re coding (I’m writing this line on the New York subway…). \nTesting your internet code ‘locally’ (on your own pc) is easy in straight Ruby/Rails and Python/Django. But if you want to test php code for the internet, or link your code up to a mysql database, a virtual server is a must. \nThe two most common ones are WAMP (for Windows) and MAMP (for Mac). There are install instructions for these here: http://themetaq.com/articles/quick-wamp-and-mamp. There are some gotchas installing \nWAMP on a 64-bit Windows7 machine - http://blog.overcognition.com/?p=483 has some tips on how to deal with these.\n","5":"You don’t have to build the ‘perfect’ system. And you certainly won’t build the perfect version of your system in one go. Get used to thinking about Minimum Viable Products – e.g. what’s the smallest system you can build to show and test your ideas. \n","44":"Go find a project doing something that interests you in a language you want to learn. \nAsk around, both online and at meetups. Search the internet… for example, this is a Github search that I did for humanitarian projects. Notice the project at the top, flavour/eden. It’s in Python, has lots of contributors and was updated recently – it’s probably a good place to learn from. \n","33":"If you want to build a site quickly, do it in Ruby. \nAnd Ruby scales… e.g. you can build websites that handle a *lot* of internet traffic in it.\n","22":"Here’s what that css file did to the html code we saw earlier. \nCSS can also hide and unhide parts of the html code (e.g. if you have a form that’s only needed sometimes), and change the *position* of items in the html code. That’s where the <div> tags come in handy, because you can name them, e.g. in the html: \n<div id=“sara_sidebar”>\nTo move this part of the html to the top right of the webpage, you type this in the css file: \ndiv.sara_sidebar\n{\nposition:fixed;\ntop:30px;\nright:5px;\n}\n","11":"Last question: how soon do you want to build something?\nAnd there’s a tradeoff here: a really easy language like HTML probably won’t do everything you need your system to do, so think again about why you want to learn to code, and what you want to do with it. Then pick a language that fits that need. \n","39":"When you start coding, you’ll learn quickly that there’s a gap between the things that you want to do and the things that you can do at the moment. Don’t worry about this – it’s normal. Do go find some allies to help you learn. Here’s how.\n","28":"Back-end languages do all the things that aren’t about putting text on a webpage. Things like: getting data into and out of databases; managing user logins; connecting to other systems (using things like APIs).\n","17":"We’re going to look at some languages used in web applications. A web application is software that you access over the internet. It has a front end and a back end. Front-end languages control what you see when you go to a website; back end languages control everything else. \nIf you want to look at the front-end code for a website, right-click on a webpage and select “view source”. \nIf you want to see what produced a specific button, effect etc, then use one of the browser tools: \nIn Chrome (https://www.google.com/intl/en/chrome/browser/), right-click on the button etc and select “inspect element”\nIn Firefox, install Firebug (http://getfirebug.com/). \n","6":"This is part of the rules for a $20,000 software app contest (MTA New York). Notice that nowhere does it say “and the app should be perfect and beautiful”. It says “working” and it adds some rule about using the MTA data, but that’s it. \nAs soon as people start using your system, you’ll learn things about what they need and want, and they won’t be the things that you thought they would. So build “quick and dirty” prototypes; start with something that doesn’t do everything and doesn’t have to look amazing, and iterate… get people using your prototypes and giving you feedback, and change your system a little bit at a time. \n","45":"Once you’ve found a project, find the community that goes with it. Search for the name, or email the main contributors to ask how you could help (it’s not just coding help they need – writing user guides that describe what the code does is a much-needed skill too). Many projects have issues lists – lists of bugs (the things that are wrong with the code) they’d like to fix, and features they’d like to have (this is the issues list for the web version of Ushahidi). Picking one of these is a very very good way to learn about how a system works, and you can usually get help with it from the rest of the team.\n","34":"To get started, just go to Railsinstaller.org. It’ll save you a huge amount of time.\nStarting a Rails project is pretty magic. \nGo to your command prompt, move to the directory you want the rails project in (use command “cd” to do this), and type “rails new nameofyourproject”)\nGo into the rails project directory (“cd nameofyourproject”)\nType “rails server”\nIn a web browser, go to http://localhost:3000/\nHeroku is a good site if you want to move a Rails apps from your local machine onto a real, live, on-the-web server (this is known as “hosting”): https://devcenter.heroku.com/articles/getting-started-with-rails4.\nOther hosting sites include Amazon Web Services (http://aws.amazon.com/), EngineYard.com, Rackspace and Digital Ocean.\n","23":"I knew you were going to ask. \nBe careful what you wish for: CSS positioning can get messy quickly – it really helps to understand the idea of CSS “boxes” when you’re designing a new page.\nThe above, by the way, was *absolute* positioning – there’s also a lot to be done by positioning pieces of the html code *relative* to each other, e.g. in 2 or 3 columns from left to right across the page. It takes a little while to learn, but mastering CSS positioning means you can build websites that look the way you were dreaming about before you started coding in HTML.\n","12":"So… before we look at some languages, there are some things that confused me when I started that would be good for you to try now. \n","1":"Abstract: \n1-hour lecture given to Columbia University’s New Media Task Force (http://newmediataskforce.wordpress.com/), to help students start to build computer applications themselves.\n","40":"If I have a coding problem that I can’t fix, then nine times out of 10, I find the answer on Stack Overflow. First do a Google search for your problem, then write a question on StackOverflow.com if you can’t find the answer to it.\nIRC (Internet Relay Chat) lets you chat in real time with other people around the world. A lot of coders use IRC to talk to each other, and there’s at least one IRC channel for each language. \nYou’ll need a software package to access IRC: I use MIRC (http://www.mirc.com/get.html) to access IRC on Windows; for mac users, Colloquy (http://colloquy.info/) and LimeChat (http://limechat.net/mac/) are both popular.\nSome teams also hang out and chat on Skype, but this isn’t as popular as IRC.\nOther good places for help include Safari Books Online ($, but gives you access to huge numbers of technical books) - https://ssl.safaribooksonline.com/trial.\n","29":"Here’s PHP. It’s an easy language to learn, and (perhaps because of that) very popular in international development. \n","18":"This is html. \nHtml is the language that browsers read to decide what to display on a webpage, where to display it and how to format it. \nIt’s a pretty simple language. Everything is enclosed in “tags” – like this “<html>” tag here. Every tag – except “<p> and <br>” – has a start tag, <tag> and an end tag </tag>. Everything inside a pair of tags is affected by them. \nSome common tags you’ll see: \n<html><head></head><body></body></html> tells the browser that this is html, which parts are general instructions, and which parts are displayed. \n<p>- paragraph\n<h1><h2><h3> - headings\n<br> - new line\n<img> - picture\n<div> - division. You don’t see this tag, but it’s used by other code (like css) to change the things inside it.\n","7":"Lots of new programmers agonize about which programming language to use. Don’t. The basic commands available in most modern languages are pretty similar: if-then-else, for loops, print etc. Basically, pick a language that fits what you’re interested in and that you can get started with quickly, play with it, use it, and learn other languages if you have to.\nBut just in case, here are some things to think about… \n","46":"Comments are lines in your code that don’t do anything, but do leave a text message for the next coder (or you) to read. Comments help you understand what you were doing and why, when you come back to your code, and save a lot of later pain. \nA coding standard is an agreement between programmers to write their code so it all looks similar. For instance, the python coding standard is PEP8: http://www.python.org/dev/peps/pep-0008/ - this says things like “lines shouldn’t be more than 79 characters long”. Ruby has “the unofficial coding guide”, http://www.caliban.org/ruby/rubyguide.shtml. Php has PEAR and PSR: http://jason.pureconcepts.net/2012/11/php-coding-standards/\nTest-driven development is the idea that you first write what you want your code to do, then you run your code, watch it fail your tests, then fix the code until the tests pass. On a big project with lots of developers, this is the only thing standing between you and the code potentially breaking in places you didn’t expect every time someone updates it.\n","35":"Here are some places to get Rails (note that Ruby is rarely used without Rails) help. Again, note the meetups – the Ruby Nuby is specifically for beginning Rails programmers, so that might be a good place to start.\n","24":"And here’s how to get started with CSS.\n","13":"If you’re back-end coding, you’ll probably use the terminal window a lot. Here’s where to find it. \nIt’s also called “terminal” and “command prompt” (http://pcsupport.about.com/od/termsc/p/command-prompt.htm) sometimes.\n","2":"Hi! I’m Sara – I’m a system designer, a coder, and I’m relearning how to be a developer. The NMTF asked me to talk to you today because some of them are in Eric Cantor and my class “ICT for Development and Social Change at SIPA”, where we teach people how to design systems that make a positive difference that users can use, and coders can create. \nWe’re not teaching coding on that course because frankly being able to design a good system is a valuable skill in itself, and coding can take a long time to teach. There’s a Columbia Business School course that teaches coding, but it’s hard to get into and there isn’t a SIPA equivalent yet. So today’s lecture is about the ways you can teach yourself to build software quickly.\n","41":"Good local meetups that include language training include Ruby Nuby and PyLadies. \n","30":"Now we’re on back-end languages, it gets a little harder to start running your code. \nYou can’t run PHP files without a ‘web server’ – a computer that knows how to process instructions in languages like php. Luckily, there are lots of ‘virtual’ servers out there – software that you can use to mimic a web server on your local PC. We mentioned some of these earlier. \nAs an aside, if you try running a php file without a server, you’ll see that your browser comments out all the php code, and only the html code will be visible. \n","19":"And here’s what that piece of code produced.\n","8":"Question 1: which hardware are you planning to run this system on? You can run most languages on most ‘hardware platforms’, but making that happen can take a huge amount of computer science knowledge. Some platforms are designed to work with specific languages; some languages are just easier to use on some platforms. Here’s the basic list: \nComputer that isn’t connected to the Internet, i.e. someone’s running your code on their own machine: lots of languages available, including C, C++, Visual Basic, Java, Python, Ruby, R... Gotchas: people will have to install your code on their machine. This can get messy.\nComputer that is connected to the Internet, i.e. someone’s running your code through your website: lots of languages available, including Html/Css, Javascript, Php, Ruby, Python, Java…\nPhones and tablets, i.e. someone’s running your app on their phone: First, all smartphones support web-based applications, e.g. you can use them to view websites instead of programming a “native app”. If you do want to build an app (and one of the reasons you might want to do this is that you don’t have to be connected to the internet to run an app), Android phones are usually programmed in Java, using the Android Software Development Kit. iPhones are usually programmed in a variant of C called Objective-C. Blackberry phones are usually programmed in Java. \nMicrocontrollers, i.e. someone’s running your code on a miniature computer, e.g. to sense and control things in your environment, like robots and air quality: The Raspberry Pi is usually programmed in Python, (although other languages are possible); Arduinos are usually programmed in a variant of C. \n","36":"Python is a very powerful language that’s great for data wrangling. It takes a while to learn how to use all of it, but there’s a lot there to love, including powerful natural language processing libraries. \n","25":"Javascript is used to control “active” things in html, like checking your form inputs are valid. \nJavascript, like css, can be added into html code (look for the <script> tags) or added to an external file and included in html files, like this: \n<html>\n<head>\n<script src=“myfirstjavascript.js”></script>\n</head>\n<body>\n</body>\n</html>\nJavascript references can go in the head or the body of an html file, although they’re usually put into the head.\n","14":"You will spend a lot of your time as a coder debugging (finding and fixing errors in the code). Doing that with wordpad is painful. Here are some text editors that are set up for displaying code – with line numbers at the side of the code, with colour highlighting of different types of command, and sometimes even with colour highlighting of bugs as you write them. \nPersonally, I use Notepad++ (http://notepad-plus-plus.org/) for most things, and Idle (http://www.annedawson.net/Python_Editor_IDLE.htm) for Python coding. Notepad++ is a good place to start. As you learn to code, you’ll find that one editor will become your favourite. \n","3":"First, some questions for you:\nWhy are you here? Do you want to learn to code so you can build things that work; to try out new ideas; to build the next facebook; to enter competitions?\nHow much time do you have available?\nWhat sort of systems do you want to build? What interests you? What moves you? What are your favourite systems that already exist, and why?\nMy own answers to those questions:\nI’m here because I’m not really a coder… I’m a systems architect – someone who works out how technology fits into a bigger system of people, processes and equipment, and helps determine what that system should do. The things that I do with code are build prototypes to test out ideas about a system, and build tools to do little jobs like processing data the way that I need to. I do also write ‘commercial’ code, for companies like Ushahidi, but that’s a different skill, and one that takes a lot more time, patience and downright detective work than many of you will need to succeed. \nI never have any time, but as the saying goes, “if you want something done, ask a busy person…”\nI want to build systems for communities that include people in the developing world. Equality interests me, especially the equality of opportunity that we can have in a globally-connected world. My favourite systems are elegant, minimal, and carry on working when the world goes to heck – Facebook, Twitter, Skype (although that isn’t so great on the elegant), Ushahidi. \n","42":"You’ll become a better computer scientist if you work in a team. Places you can join teams include:\nOpen-source projects on Github\nDedicated team sites (e.g. OpenHatch.com and codeMontage.com)\nHackathons\nExisting open-source applications (Ushahidi, Sahana Foundation, OpenStreetMap etc)\nJoining a social coding company – you don’t have to start as a coder!\n","31":"This is what happens when we run that piece of php code on a Wampserver. Note the web address: localhost/phpexample.php – that’s exactly what you have to type in (not www.localhost or http://localhost). \nThe middle line was produced by the php code; the other lines are in html. \nThis is a very simple example, but some very complex web systems are built in php, including Ushahidi, which uses the Kohana framework to keep its code tidy.\n","20":"It’s a small language, not too complex, but you need to know it if you’re doing anything on the Internet. Here are \nHow to write and run your first piece of html code\nWhere to find more help online.\n","9":"Question 2: what are you trying to build? And can you get away with doing less coding to produce your prototype faster? \nThis table isn’t finished yet – but your options for most platforms are: \nNo coding: use an existing application as the basis of your system. E.g. you want a basic website? Use WordPress. \nMinimal coding: add code to an existing application – e.g. add CSS code to change the layout of a WordPress site.\nBuild small: if you just want a box and a button, then just code a box and a button. You don’t have to build complicated systems to be successful.\nUse a framework: A framework is a reusable piece of software designed to make programming complex applications easier. Frameworks give you easy-to-use commands for things that are common across lots of applications, like logging in, security, database management and making pages look similar to each other. Frankly, if it’s appropriate and you can use one, do: it saves a lot of time writing the code, and a lot of time debugging and maintaining it later.\nBuild custom: if a framework doesn’t fit your needs (and for most web applications, a framework usually does), then write everything from scratch (but use libraries where you can). \n","37":"Some places to get you started with python. Full disclosure: my cat Emily writes the icanhazdatascience blog.\n","26":"And here’s what that piece of javascript produced: a button that, when pressed, creates a ‘pop-up’ box with a message and another button.\n","15":"GitHub (github.com) is a collection of ‘repositories’ – directories containing software, descriptions and issue lists that are all available together online. \nBut Git is much more than that. It’s social: it lets many people all edit the software offline (on their own computers) and ‘push’ changes to it to the repository that can be accepted or rejected by the repository owners. It has ‘branches’ – copies of the repository that subgroups can play with and add new things to without affecting the main repository code, so you can break things locally without breaking a working system. \nGithub is also a great place to find open source software – software that you can use for free, and change to fit what you need.\n","4":"Being a coder isn’t the same as being a developer. You start by learning to code, then learn how to turn that into reliable systems. Today is about the coding part. \n","43":"MOOCs (Massive Online Open Courses) have really changed access to good coding courses. Here are some of the main MOOCs (codecademy is dedicated to coding, MITx is open MIT courses, coursera is courses from many universities): see also http://www.mooc-list.com/ and http://en.wikipedia.org/wiki/Massive_open_online_course. \nGeneral Assembly is a training company in New York that’s run by coders: the courses aren’t free, but they’re generally excellent. \nAnd if you want to practice on your own before starting with a team, there are coding challenges (websites containing small coding tasks that you submit solutions to). \n","32":"And here are some good places to find PHP help. Note that, as we start on backend languages, I’m suggesting that you go to meetups and meet other coders. You will get stuck occasionally, and having a bunch of people to ask rather than fighting the system by yourself can be a very very sanity-restoring thing. Especially if the answer turns out to be “oh, you just add a couple of characters here…”. \n","21":"Css tells the browser how to format the html, e.g. how to display each element and where to put it on the page. \nHere’s a simple piece of CSS that makes everything in <p> tags red and bigger, and everything in <td> tags green. To apply a piece of css to a html file, you either need to put the CSS code in the HTML file, \ne.g. by\n<html>\n<head>\n<style>\np {color: #ff0000; font-size: 24px;}\ntd {color: #00ff00;}\n</style>\n<title>Example HTML file</title>\n</head>\n<body> etc\nOr put the css into its own file (aka “external style sheet”) and add a “reference” to the html file – that’s the “<link rel…” line in the html code above.\n","10":"Question 3: where are the people you can learn from? \nPicking a language isn’t just about picking a language. It’s about finding the places and people that can help you write the system you want to, in your chosen platform, area etc. \nSo go out and find which languages the projects you like are written in. Google the websites and apps you want to be like – find out which languages they’re written in, and why (better yet, see if there are any articles about why the developers wouldn’t pick the language if they could start again now). \nThis is a github search for an area I’m personally interested in: HFOSS (Humanitarian Free and Open Source Software, http://www.hfoss.org/). The top project lists its language as Python… the list on the left shows all the languages that people used in this list of projects. If I started again today, I’d probably go help out on one of the Open Source projects that interests me, and cut my teeth fixing bugs for them until I knew enough to build my own systems.\n"}