Meeting notes
rbrousla edited this page Dec 4, 2012
·
41 revisions
- Played a little Starcraft and Diablo 3
- Mentioned that the summer reading assignment was Clean Code
- Went over syllabus
- Discussed possible projects (names, urls, ...)
- Looked at previous LMU CMSI 401 projects
- Watched cleancoder rationale video
- Finalized name - wutup -- and decided to look for domain wutupwith.us
- Sketched out use cases
- Did some architecting
- Talked about UML (a little bit)
- Watched Episode 1 of Clean Code
- Looked at last year's meeting notes
- Went over pros and cons of GAE, decided to use it
- Assignment: Review github repo (code and wiki) of last year's project, Ktah
- Set up wiki
- Enhanced the README
- Talked a little about Markdown
- Discussed webservice and iOS/android native apps
- Reviewed Goto and How to write good code XKCD
- Discussed Epic (parent) and User Story formatting and inclusion into RallyDev
- Check out RallyDev stories and tasks plus real life examples from CityGrid
- Agnes - "you broke the build!": Don't check in broken changes!!!
- Agile development : sprints, user stories and tasks
- Discussed the [Agile Software Development Manifesto] (http://agilemanifesto.org)
- Discussed sw research/prototypes/starter that Toal wrote
- Video of The Power of Motivation
- Architecture discussion
- Marc arrived for the last 20 minutes of class
- History of the Internet
- http protocol requests and responses
- http status codes
- Pull git repo!!! Toal default starter project
- What is a web service review
- Discussed technologies: GAE, Maven, Spring, Jersey, JaxB/Jackson, JUnit, Mockito, H2, Tomcat, Cargo
- Sam showed up late at 11:03am, Marc still not here.
- Maven goals in default life cycle: validate, compile, test, package, integration_test, verify, install, deploy.
- Http response codes review
- URI design
- Review POM
- Application Architecture
- Reviewed event object and event resources.
- Marc never showed up.
- How to run all tests except integration test
- Sam showed at 11:03
- Discuss objects
- Tangent discussion of Date programming
- Marc arrives at 11:30am...
- Major rewrite of event object.
- Discuss standup procedure
- Tyler found a Facebook library
- Lets do the standup.
- Held first standup
- Rich ran the Rally board
- Everyone had stories completed except Marc
- Revisited architecture
- Was a category class required? A location class?
- How should we handle events that have multiple occurrences and span multiple locations?
- Developed new UML class diagram
- Discussed the scope of use cases
- Reiterated that UML was not for detailed blueprinting, but only for (1) conceptual design when done early, or (2) "As-built" documentation when done after coding
- Created stories for Sprint 2 and tasked them out
- Review grading procedures
- Sam arrived on time but Eric was late
- Marc isn't here...
- Grades based on: Code Reviews, Databases, Dev/Prod/QA, Manual testing?
- Code review is based on Toal looking, reviewing code and fixing inline with annotations.
- Reviewed Eric's USER object and tests in class... he need to add toString() method.
- Marc arrived at 11:30am
- Tests are always INDEPENDENT!!!!!!!
- Reviewed manual testing and integration tests.
- Discussed CARGO, H2 and SPRING.
- Wutup! No one took notes today on what we did?
- A little bit of contention and arguing because the build was in a state of unit tests pass, integration tests failed
- 10 minutes in, KIN LANE SHOWED UP!
- Great discussion as Kin talked about:
- the business of APIs
- the history of APIs
- the API ecosystem
- who is doing what in the API world
- himself
- the U.S. government API strategy
- authentication and authorization, and OAuth
- the importance of having consumed APIs before setting out to write one's own
- We discussed our project with Kin
- Kin even went over design choices for endpoints with a few students
- Marc never showed up
- Discussed our wallowing project, how to get unstuck
- Reviewed domain objects and schema (that RB and Dr. Toal worked on)
- Reviewed architecture posted to project wiki
- Reviewed updated domain schema
- Marc arrived at 11:07, yay!
- Code review where Dr. Toal took some of our code and made it so much cuter:
- Learned that toString is used for logging and debugging, so we can omit null values
- ToString methods should always be at the bottom of the class, per company standard
- "Getters before setters" - Dr. Toal
- Null tests should be done in the model classes and not at the dao level
- Debugged.
- Discussed whether models should store related objects or just the object IDs.
- Learned that example.com is reserved for documentation purposes and can always be used in tests
- Wutup! No one took notes today on what we did?
- Mellow, low-key working day.
- Guest speaker: Rebecca Stillman from ZEFR talked about her company, her industry, and talked about the upcoming hackathon.
- Wutup! No one took notes today on what we did?
- Wutup! No one took notes today on what we did?
- Made QueryBuilder unit tests made in class because Andy didn't follow TDD.
- Reviewed how services and impls should be separated.
- Reviewed Mockito and how to do service unit tests.
- Reviewed changes to code made by Dr. Toal.
- Learned that when using @QueryParam it's good to always get String so Jax-RS doesn't try to handle incorrect types; takes away control of errors.
- Assigned new tasks for next iteration:
- Finish migration from PUT to PATCH.
- Rebuild QueryBuilder from Dr. Toal's QueryBuilder Wish List.
- Create a new Pagination class.
- Learned that Mustache makes logic go away by doing things like:
<head>
<script src="https://raw.github.com/janl/mustache.js/master/mustache.js"></script>
</head>
<body>
<div id="message"></div>
<script>
var view = {
title: "Joe",
calc: function () {
return 2 + 4;
}
};
document.getElementById("message").innerHTML = Mustache.render("{{title}} spends {{calc}}", view);
</script>
</body>
- Standup Reports:
- Tyler: Refactored geocoding system. Created a GoogleGateway that can be independently mocked. Added lots of tests. Misc. Refactoring.
- Andy: Not much. Ready to blast out a new, or integrate an existing, SQL builder.
- Sam: Research client side stuff. Chose Apache Wicket. Major implementation push.
- Allyson: Client mockups done. Going to research Bootstrap.
- Rich: Will be getting up to speed.
- Marc: Android client. Work is progressing. Google Maps integration done. IntelliJ to Eclipse migration took some time.
- Eric: Implemented patch for Event / User. Work needs to be done on query builder and queries for resources / domain classes.
- Sam went over the client.
- Discussion of rebasing. Yes, we had to do it. :(
- By Nov 8th, have data displayed.
- Short standup.
- The class broke into groups.
- Client group (Sam and Allyson) did some planning.
- Tyler filled Rich in with a grand tour.
- Marc went solo on Android work; had trouble with his laptop.
- Eric and Andy did some work on the service, including an SQL builder.
- In class exercise of a major refactoring effort.
- Guest lecturer: Aghyan Alzuabi on Agile Project Management (was well received).
- Marc committed no changes to repo, showed up for late for class.
- Fixed broken build - tests failed due to event id already existed when attempting to create new event. Discussed that we should have auto id generation/assignment in event factory.
- Sam Bugged: Debug why DateTimes being returned from H2 are missing hours, minutes or seconds, Eric solved by changing rs.getDate to rs.getTimestamp.
- Add logging to the project, running tomcat under cargo so where is the log file being generated? Configured a log4j properties file for console.
- Discussed how client knows you are logged in without service session support.
- Wutup? No one took notes for this day.
- Guest speaker from LMU Entrepreneurship Club, who has also himself founded a couple companies.
- Bobby Tables (SQL Injection) Lecture
- Reviewed how SQL statements are compiled (prepared) and why query parameters prevent injection attacks
- Talked about how autocomplete works
- Searched for information on autocomplete in Android
- Class exercise on fixing code that was giving a 500 when it should have given a 400
- Showed that nearly all POST, PUSH, and PATCH methods were missing this validation
- Discussion on moving validation from resource classes to a separate validator
- Need logging for querybuilder... Andy to do and already did!
- Rally dev stand up
- Marc to enter his tasks in Rally under user stories
- Client questions about creating events without an existing venue.
- Venue must be created first, due to db constraints.
- Usage of HEAD, gives back response without body.
- Decided to kill category functionality, not enough time.
- Discussion surrounding client consistency and the web service.
- Discussion of the prezi content.
- Tighten up service and client Use Cases
- Check every end point from client
- More aggressive logging
- add Authentication, auth and https
- Review the status of project
- Can we adjust scope of the project?
- kill categories
- kill event comments and venue comments
- Sam gave UI demo
- Michael Licht (ex EA) came to speak with class.