This document provides an overview of various topics related to developing a NodeJS application with a database. It discusses mindsets for developers, resources for learning to code like online courses and communities, and technologies involved in web development like front-end versus back-end programming. It also introduces NodeJS, databases like MongoDB and Cloudant, and provides instructions for an example app using Cloudant on Bluemix. Students are assigned homework to deploy this example app and modify it for their own purposes.
the third class of the spring 2017 untangling the web series
with a guest presentation by Chris Hawkins of Authentic business solutions https://authenticlab.ca/
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.
the third class of the spring 2017 untangling the web series
with a guest presentation by Chris Hawkins of Authentic business solutions https://authenticlab.ca/
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.
We’re all doing Agile nowadays, aren’t we? We’ll all delivering software in an Agile way. But what does that mean? Does it mean sprints and stand-ups? Kanban even? But what about Extreme Programming? If as a development team we’re not using pair programming, test driven development, continuous integration, and other XP practices, then we’re not really doing Agile software development and we may be on a march to frustration, or even failure.
I’m going to look at why the current trend of companies and projects adopting Scrum, calling themselves Agile, but not transitioning their development to XP, is a recipe for disaster. I’d like to cover the main practices of XP as well as other good practices that can really help a team deliver quality software, whether they’re doing two-week sprints, Kanban, or even Waterfall.
https://www.youtube.com/watch?v=aZgnY9fAHOA
Scaling a High Traffic Web Application: Our Journey from Java to PHP120bi
What makes an application scale? What should you worry about early on and what can wait?
Over the last 3 years, Achievers has learned many lessons and gained fundamental knowledge on scaling our SaaS platform. CTO Dr. Aris Zakinthinos will present and discuss the decisions we’ve made including language choice, server architecture, and much more; join us while we share tips, tricks, and things to absolutely avoid.
Throughout the evening you will have the opportunity to talk to the development team behind the Achievers Platform and ask questions on scaling best practices.
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
===
Presentation (revisited & updated) shared at JDD 2022:
https://jdd.org.pl/lecture_2022/#id=78434
OK, I’m ready to DevOp. Now what?
We’ve heard a lot about the technologies behind DevOps, and even a bit on the processes that some DevOps shops employ. What we haven’t heard too much about directly is a fundamental matter of bootstrapping. If you’re a leader or influencer in a software or IT shop, you’re sold on this DevOps idea but overwhelmed by the difference between where you are now and where you need to be, you’ve come to the right place. We’ve heard all about the unicorns of the movement, and what they are doing. Much time is spent talking about their innovative technologies. But how did they get there? Moreover, how can YOU get there? We’re going to spend some time discussing how to get started and find success on the rocky road to DevOps. We’re going to talk about the roles of executives, middle managers, front line managers, and individual contributors in this transformation. We’ll talk about the layered approach to transforming your culture, and building the processes and tool chains on top of it. At the tactical level, we’re going to talk about an example team and what their first year looks like, what are the major milestones they will reach, and how to measure their success along the way.
Thinking About Prototyping: Sketching, Familiarity, Costs versus Ease of Prototyping, Prototypes and Production, Changing Embedded Platform, Physical Prototypes and Mass Personalisation, Climbing into the Cloud, Open Source versus Closed Source, Why Closed? Why Open? Mixing Open and Closed Source, Closed Source for Mass Market Projects, Tapping into the Community. Prototyping Embedded Devices: Electronics, Sensors, Actuators, Scaling Up the Electronics, Embedded Computing Basics, Microcontrollers, System-on-Chips, Choosing Your Platform, Arduino, Developing on the Arduino, Some Notes on the Hardware, Openness, Raspberry Pi, Cases and Extension Boards, Developing on the Raspberry Pi, Some Notes on the Hardware, Openness.
In his recent book, Clean Agile, Robert C "Uncle Bob" Martin chooses Extreme Programming (XP) for the basis of his explanation of Agile because "of all the Agile processes, XP is the best defined, the most complete, and the least muddled."
So why is it that in my professional life I only hear us speaking about Agile in terms of Scrum, Sprints, and possibly Kanban? Often I mention XP and people are not sure what I mean. Am I sure myself?
Coined in 1999 by Kent Beck and Ward Cunningham, XP has been with us for twenty years, but may of its practices have been with us for much longer. Many of them will be familar to you, but did you know they came from XP?
This talk aims to take us back to what XP is, how it fits in the Agile world, how it sits alongside other methodologies, and why, like Uncle Bob, I believe it is the best defined methodology, and what we should all be talking about.
The talk is based on a heavily refactored talk that Mike gave previously at Agile on the Beach conference, updated for 2020.
Given at Ox:Agile Meetup on February 11th 2020: https://www.meetup.com/OXAGILE/events/nxrdmrybcdbpb/
This presentation is an introduction to the field of technical writing based on my personal journey and philosophy of documentation, and was presented to the first meeting of Write The Docs Nigeria on February 20, 2021.
The Art Pastor's Guide to Sabbath | Steve ThomasonSteve Thomason
What is the purpose of the Sabbath Law in the Torah. It is interesting to compare how the context of the law shifts from Exodus to Deuteronomy. Who gets to rest, and why?
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
The Indian economy is classified into different sectors to simplify the analysis and understanding of economic activities. For Class 10, it's essential to grasp the sectors of the Indian economy, understand their characteristics, and recognize their importance. This guide will provide detailed notes on the Sectors of the Indian Economy Class 10, using specific long-tail keywords to enhance comprehension.
For more information, visit-www.vavaclasses.com
Ethnobotany and Ethnopharmacology:
Ethnobotany in herbal drug evaluation,
Impact of Ethnobotany in traditional medicine,
New development in herbals,
Bio-prospecting tools for drug discovery,
Role of Ethnopharmacology in drug evaluation,
Reverse Pharmacology.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
This is a presentation by Dada Robert in a Your Skill Boost masterclass organised by the Excellence Foundation for South Sudan (EFSS) on Saturday, the 25th and Sunday, the 26th of May 2024.
He discussed the concept of quality improvement, emphasizing its applicability to various aspects of life, including personal, project, and program improvements. He defined quality as doing the right thing at the right time in the right way to achieve the best possible results and discussed the concept of the "gap" between what we know and what we do, and how this gap represents the areas we need to improve. He explained the scientific approach to quality improvement, which involves systematic performance analysis, testing and learning, and implementing change ideas. He also highlighted the importance of client focus and a team approach to quality improvement.
1. UNTANGLING THE WEB
FALL 2017 WEEK 7 – A DEVELOPER MINDSET, AN INTRODUCTION TO NODEJS,
DATABASES
2. AGENDA
• A developer mindset and how to conquer frustration
• Some resources to draw on
• An introduction to server-side programming
• NodeJS
• Databases
• A Bluemix Cloudant/NodeJS example
• Project 2 work if we have time
3. THIS PART IS MORE ABOUT DEFINITIONS AND
MINDSET THAN DEVELOPMENT
• I’m going to throw a lot of concepts at you, but they build on the previous classes less directly than the
previous few classes
• Just relax and think about the ideas I’m describing rather than the development details
4.
5. A DEVELOPER MINDSET
• Zen and the Art of Motorcycle Maintenance
• “Assembly of Japanese BBQ requires great peace of mind”
• Comfort with discomfort
• Eventually you’ll figure it out. Or you won’t. Life will probably go on. Unless you’re trying to re-write the code
for the airlock and you’re on a space station. Then still don’t panic!
• Imposter syndrome
• Even as you gain skills you’ll still sometimes feel like the worst developer in the world and wonder how anyone
would ever hire you. It’s not your job to live up to over-inflated expectations, but only to try to do what you’ve
committed to.
6. CONCENTRATION
• https://medium.com/@crowquine/the-mindset-of-the-software-developer-2b8f64ee96e5#.pglf8vhw7
• Holding everything in your mind
• When I’m coding I *HATE* to be interrupted
• So much so that my boyfriend built me a little tent around my desk where I can pull the curtains and put on my
earplugs and he knows to never so much as wiggle the curtains unless he sends me email to ask if I can come
out
• Keeping a stack of inter-related concepts in mind, particularly a complex set of mathematical constructs, is just
hard and if I’m interrupted it may take quite some time to get back to where I was
7. HOW TO GET LESS FRUSTRATED
• Coding is inherently frustrating
• You’re trying to describe something very precisely to a machine that is more literal than a 3 year old. And might
have worse communication skills.
• Error messages are never sufficient.
• Work on the mental model
• Understand what you’re doing. Read conceptual help topics first, then man pages
• Draw pictures
• Walk away for a while. Take more breaks. Take a walk and think about it.
8. LIVECODING AND VIDEO LESSONS
• Screencasting is a thing. It’s also called livecoding.
• Twitch.tv
• https://www.liveedu.tv/livestreams/javascript/
• Even youtube has a lot of content
• These are all regular folks who stream. Expect variable quality.
• Online education is a huge thing
• I subscribe to pluralsight, safaribooks, stan Winston school, Adobe cloud, and others
• I also buy courses from select individuals on a regular basis
• It gets expensive, but if I pick up a nugget or two from a course it’s worth it
9. PLURALSIGHT
• The largest online education site, I think.
• It’s about $300 a year, sometimes a bit less with sales. (Big one is usually right around US thanksgiving.
If you sign up for a trial do so with a throwaway email address so that you’re eligible for new subscriber
discounts.)
• Very good quality content on a wide array of topics ranging from programming to application use to
graphics and creative process
• Get a free 3 month trial by signing up for Microsoft Developer Essentials:
https://www.visualstudio.com/dev-essentials/
10. SAFARI BOOKS
• This is O’Reilly’s online site. It is also about $300 a year.
• They have some courses, but mostly it is books and videos.
• They have all of the Packt publishing books, all of the O’Reilly books, and various other small publishers
that they strike deals with.
• Early release books, so you can see content before release, make comments, interact with authors, etc.
• I use this less than Pluralsight, but the ability to search forthcoming books makes it worth it to me.
11. HACKHANDS
• Now owned by pluralsight, but it runs as a separate company still
• Pay by the minute for a shared screen session with an expert
• Kind of like how I run my zoom sessions sometimes
• Please feel free to continue to use me for that during the course
• Can find experts on a variety of topics. When I’m learning a new language or library it sometimes saves
me many hours to pay someone $20-$50 to consult for a bit.
12. WES BOS
• Wes is a developer in Hamilton, Ontario that makes fantastic courses on Javascript and React.
• Generally $80-100 for a 5 or 6 hour course, so not cheap
• He has good sample projects and materials and maintains a good online presence for questions, though
• He has an ES6 course out right now and I’m anxiously awaiting his course on async/await that should be
out in the next month or two
13. CODE SCHOOL, CODE ACADEMY, ETC.
• https://www.codecademy.com/learn/javascript
• https://www.codeschool.com/learn
14. QUORA
• I’m not a huge fan, but they do have an interesting community
• It’s a good place to ask conceptual questions or questions about how programs interface with the real
world
• Not as good for pure programming questions
15. STACK OVERFLOW
• This is the place for programming questions
• Variable code quality, so don’t cut and paste haphazardly
• But feel free to test it out
• Even in professional settings you’ll often see code from stackoverflow
• The common convention is the leave a comment in the code with a link to the stackoverflow question
16. WORKING AS A GROUP
• I intentionally did not impose a process for working together because you can find many different ways
of doing so
• Informal mechanisms work best for small projects, but more formality is needed as teams grow and
projects get longer
• I’m fine for this class if you just have one person manage the repo and pass them code to check in
• Ideally you’ll each independently commit, and I trust that team members will do roughly equal amount
of work, but I won’t mark down for group approaches
17. PUBLIC PROJECT STRATEGY
• Best for large projects without a fixed team
• Owner is the only one with repo permissions
• Other people fork the code and modify it then make merge requests back to the owner
• Careful, everything you have changed gets put into the merge request! Use a branch to do your playing
around
• Project owner will review the request and take those pieces they want
18. PROJECT OWNER STRATEGY
• This is how I run my big projects with fixed team members
• A project owner is the only one who can check into the master branch
• The master branch is where builds come from
• Contributors can create branches and check code into those branches and then send me a merge
request when they want to move it to master
• This only happens when their code is synced up with the latest changes in the master branch and has passes
acceptance tests
19. CO-CONTRIBUTOR STRATEGY
• Add others as contributors, don’t enforce branch and merge rules
• This is really only suitable on small projects
• Requires team members to communicate about who is working on which pieces to avoid having to
merge or causing conflicts
• Ideally have people working in separate files most of the time
20. PAIR PROGRAMMING
• This is a useful technique where you program in groups of 2 (or more, sometimes)
• One person is typing, of course, but others are watching and helping to figure things out and make
suggestions
• It’s tiring being the one typing and you should change things up with some frequency
• This is a good way to share experience when one of the pair is more experienced than the other
21. FRONT END VERSUS BACK END
• Front-End programming
• Anything that runs in the user’s browser
• Client code and the graphics that are used to deliver the end-user experience
• Everything we have done in the course so far, with the possible exception of google maps where you were using
someone else’s back end
• Back-End programming
• Server side code
• Databases
• Anything that is not running on the user’s machine
22. WEB SERVER AND BACKENDS
• A web server can serve up pages to the user’s browser and not have any other backend code
• It can also run code on the backend that determines what it sends to the browser, but to date we have
not done this
23. BUILD ENVIRONMENT AND PACKAGES
• LOTS of decisions
• Node.JS
• NPM
• Webpack
• Express
• React, Angular, etc.
• The point isn’t to scare you, but just to illustrate some of the things that could be thought about
24. CORY HOUSE CLASS INTRODUCTION
• http://www.bitnative.com/2016/11/12/building-a-javascript-development-environment-live-on-
pluralsight/
• Longer version:
• https://www.youtube.com/watch?v=QGCWal_JWek&feature=player_embedded
25.
26. WE’RE GOING TO SIMPLIFY THIS SET OF DECISIONS
• NodeJS version 6: https://nodejs.org/en/download/
• IBM CLI extensions: https://clis.ng.bluemix.net/ui/home.html
• We’ll use the default stack that Bluemix provides
• (Install the above, you may have to reboot after the IBM install, you’ll certainly have to close and re-
open any terminal windows)
• Try the commands “node –v”, “npm”, “bluemix” (all should work, don’t worry much about the output)
27. VSCODE BUG TO FIX
• In working on the example at the end of this class, I encountered a vscode bug that I had a hard time
tracking down
• The HTML formatter was automatically being invoked on save, and this was introducing an error that
would negatively effect the web page
• That formatter must be turned off on save
• F1 to get to the command pallette
• Type in “formatter config”
• The first line “onSave” should be changed to “false” rather than “true”
• Restart VSCode
28. NODEJS
• This is a server-side framework
• Access databases
• Access filesystems
• Authentication
• Mutiuser applications
• Uses javascript on the server
29. DATABASES
• 2 main varieties – SQL and NoSQL
• SQL – structured query language
• Relational database
• Multiple tables, joins, complex queries
• NoSQL – anything else!
• Usually flat structure
• MongoDB is a popular one
• We’ll be looking at Cloudant, which is an IBM version of the open source CouchDB database
31. IBM CLOUDANT EXAMPLE
• NodeJS, cloudant, website, routes
• Don’t worry too much about how it’s put together, but more how to get it running
• We’ll go into more detail on the component parts starting next week
32.
33.
34.
35.
36. • Note the lines I added by copying out of package.json!
• This will become relevant for the homework
37.
38. A QUICK FILE WALKTHROUGH
• Package.json
• Routes
• Html files
• Styling
• Database scripts
39. HOMEWORK 7
• Create your Bluemix account (if you have not already done so) and send me the email under which you
created the account (ideally your uvic email)
• Install the IBM CLI tools and NodeJS version 6
• Install the NodeJS Cloudant DB Web Starter project
• Fix the vscode bug described earlier
• Edit the HTML page at views/index.html to describe what each of the dependencies in package.json does
• Create a new github repository for the project and check all the files in
• Push up to bluemix (using the bluemix command line tools)
• Turn in both a link to the page running on bluemix and a link to your github repository
40. PROJECT 2
• Please ask early if you have any questions
• I am expecting 3-4 nicely styled pages, although any backend functionality can just be placeholders
• I am also expecting a presentation, ideally just using the webpages rather than slides (feel free to add
an additional webpage if you need to explain anything not implemented in the UI, such as your business
model canvas and value proposition canvas.)
41. PROJECT 2 – DUE START OF CLASS OCT 25TH
• Groups of 3-4 (no smaller than 2, no larger than 5)
• You will design and implement a website business
• This website must contain 3-4 html pages, a map (we’ll discuss this next week), a database mockup
(you’ll do the UI only in this project, the database itself will be for project 3), and a chatbot (also for
project 3, but you’ll do the dialog design for this project)
42. PROJECT 2 DELIVERABLES
• A business model canvas and value proposition canvas for your website business
• 3-4 web pages, hosted on github pages, that are styled nicely in CSS
• A half-page discussion of which SEO factors your website exhibits
• A functional map on one of the pages, although it does not have to be completely populated
• A presentation of between 3-5 minutes giving a walkthrough of the website concept
• This project is worth 15% of your mark and all group members will get the same mark. Switching groups
between projects 2 and 3 is discouraged but not impossible.