Overall Scrum (number 3)

What follows is a list of all the tasks I know should be completed for this project in their priority order (as of the week starting 21-Oct-2013)

  1. Write up the workflow for how the files will be collected and analysed (and if any changes are needed, change this list of scrum items to include new necessities)
  2. Create a User Interface design (in PhotoShop) for
    1. The desktop application
      1. Property entry
      2. File selection
      3. Uploader
      4. Login
    2. The web interface
      1. Information page
      2. Download page
      3. Login form
      4. File Collection page
      5. Analysis page
  3. Create the Desktop ApplicationDecide whether to implement a Repository and Unit Of Work and write up what they are and the possible benefits (to be included in Progress Report)
    1. Assign Name and Description
    2. Select files
    3. Uploader
    4. Login form
  4. Decide whether to implement MvvM using breeze.js or knockout.js and write up a report
  5. Create the Web Service and Database
    1. Web Service needs to be accessed by both the Desktop Application and web interface
    2. Database should be accessed through Entity Framework
    3. Database needs to store:
      1. Login information (users, tokens)
      2. Uploaded files
      3. File analysis
  6. Create the Web Interface which
    1. Shows information about Bunsho
    2. Allows a user to login
    3. Shows a list of uploaded file collections with options
    4. Shows the analysis performed on the collections
    5. Can be linked to by the Desktop Application
  7. Re-evaluate at this point to include new features that may need to be included
    1. Flesh out Desktop Application to be update-able and easy to download/run
    2. Flesh out the web interface to actually show useful information

Repository + Unit Of Work in Data Access Layers

The Repository Pattern was introduced by MicroSoft as a means by which developers can abstract the way in which data is accessed so that all interactions are clearly defined in code and will be test-able even when name changes occur in the data storage area. It’s made up of Units Of Work which each have an individual role within an application.

I will not be implementing the Repository Pattern in my Final Year Project as it’s more code overhead that is not necessary, as every interaction with the database will go through Stored Procedures. Because of this, all code to do with data is already centralized in SQL and cannot be broken without being given an error code of some form. Entity Framework is also being used to act as a Data Access Layer between my application and the stored procedures, adding my own level of abstraction which allows all data to be type-safe.

MvvM mentality

MvvM (Model View ViewModel) is a way of implementing a user interface which requires interaction, while keeping the business logic away from the graphical user interface. In layman’s terms, the user interface is kept up-to-date with data behind the scenes, while the code-behind has no knowledge of the way the interface is built.

MvvM can be implemented in WPF applications natively and HTML applications through the use of a helper library such as http://knockoutjs.com/.

 

Where possible, I will implement this mentality to keep all logic separate from the data. The Desktop Application will utilize Data Binding for each separate area, and the web interface will work through Knockout.JS interaction where possible. (for more complex tasks, a little graphical code may be required, such as displaying the actual analysis)

 

Overall Scrum (number 3)

What follows is a list of all the tasks I know should be completed for this project in their priority order (as of the week starting 21-Oct-2013)

  1. Write up the workflow for how the files will be collected and analysed (and if any changes are needed, change this list of scrum items to include new necessities)
  2. Create a User Interface design (in PhotoShop) for
    1. The desktop application
      1. Property entry
      2. File selection
      3. Uploader
      4. Login
    2. The web interface
      1. Information page
      2. Download page
      3. Login form
      4. File Collection page
      5. Analysis page
  3. Create the Desktop Application
    1. Assign Name and Description
    2. Select files
    3. Uploader
    4. Login form
  4. Decide whether to implement a Repository and Unit Of Work and write up what they are and the possible benefits (to be included in Progress Report)
  5. Decide whether to implement MvvM using breeze.js or knockout.js and write up a report
  6. Create the Web Service and Database
    1. Web Service needs to be accessed by both the Desktop Application and web interface
    2. Database should be accessed through Entity Framework
    3. Database needs to store:
      1. Login information (users, tokens)
      2. Uploaded files
      3. File analysis
  7. Create the Web Interface which
    1. Shows information about Bunsho
    2. Allows a user to login
    3. Shows a list of uploaded file collections with options
    4. Shows the analysis performed on the collections
    5. Can be linked to by the Desktop Application
  8. Re-evaluate at this point to include new features that may need to be included
    1. Flesh out Desktop Application to be update-able and easy to download/run
    2. Flesh out the web interface to actually show useful information

Overall Scrum (number 2)

What follows is a list of all the tasks I know should be completed for this project in their priority order (as of the week starting 21-Oct-2013)

  1. Write up the workflow for how the files will be collected and analysed (and if any changes are needed, change this list of scrum items to include new necessities)
  2. Create a User Interface design (in PhotoShop) for
    1. The desktop application
      1. Property entry
      2. File selection
      3. Uploader
      4. Login
    2. The web interface
      1. Information page
      2. Download page
      3. Login form
      4. File Collection page
      5. Analysis page
  3. Create the Desktop Application
    1. Assign Name and Description
    2. Select files
    3. Uploader
    4. Login form
  4. Decide whether to implement a Repository and Unit Of Work and write up what they are and the possible benefits (to be included in Progress Report)
  5. Decide whether to implement MvvM using breeze.js or knockout.js and write up a report
  6. Create the Web Service and Database
    1. Web Service needs to be accessed by both the Desktop Application and web interface
    2. Database should be accessed through Entity Framework
    3. Database needs to store:
      1. Login information (users, tokens)
      2. Uploaded files
      3. File analysis
  7. Create the Web Interface which
    1. Shows information about Bunsho
    2. Allows a user to login
    3. Shows a list of uploaded file collections with options
    4. Shows the analysis performed on the collections
    5. Can be linked to by the Desktop Application
  8. Re-evaluate at this point to include new features that may need to be included
    1. Flesh out Desktop Application to be update-able and easy to download/run
    2. Flesh out the web interface to actually show useful information

Usage workflow (number 1)

What follows is a workflow of how Bunsho will be used (the working title for this project).

If something is in red, a change needs to be made to the scrum to incorporate this feature

Web Interface (start)

  • User goes to http://home.dannywhittaker.com/Bunsho
  • User is shown information on what Bunsho does
  • User is asked to register for the service so their file collections can be securely stored and accessed only by them
    • This is added so that security is now taken into account and everyone can’t see everyone’s files
  • User is shown a list of their current file collections and operations related to them
    • If no files exist, the “Download File Collector” button (which links to the Desktop Application) button is enlarged and a friendly message explaining how to use it is shown

Desktop Application:

  • A name (required) and description (optional) can be entered
  • A selection of files can be made
  • On uploading, the user should login to their account (if they’re not already logged in)
  • Once uploading is finished, a link should be shown which takes the user directly to the operations that can be performed on that file collection

Web Interface (at Collections screen):

  • The user should be able to specify a new pattern to analyse the files with
    • This removes the Pattern Selection from the Desktop Application
  • The user should be able to select a previously performed pattern that the files have already been analysed with (this will be a much faster operation as the data’s already stored)
  • The user should be able to delete the collection
  • The user should be able to edit the properties related to the collection

Web Interface (at Analysis screen):

  • Show the analysis performed
  • (TO BE DETERMINED AT A LATER STAGE)

Overall Scrum (number 1)

What follows is a list of all the tasks I know should be completed for this project in their priority order (as of the week starting 21-Oct-2013)

  1. Write up the workflow for how the files will be collected and analysed (and if any changes are needed, change this list of scrum items to include new necessities)
  2. Create a User Interface design (in PhotoShop) for
    1. The desktop application
    2. The web interface
  3. Create the Desktop Application
    1. Assign Name and Description
    2. Select files
    3. Select pattern
    4. Uploader (not fully featured until Web Service is created)
  4. Decide whether to implement a Repository and Unit Of Work and write up what they are and the possible benefits (to be included in Progress Report)
  5. Decide whether to implement MvvM using breeze.js or knockout.js and write up a report
  6. Create the Web Service and Database
    1. Web Service needs to be accessed by both the Desktop Application and web interface
    2. Database should be accessed through Entity Framework
    3. Database needs to store the uploaded files, their analysis and the patterns used for the analysis
  7. Create the Web Interface which
    1. Shows a list of uploaded file collections and the analysis stored with them
    2. Can be linked to by the Desktop Application
  8. Re-evaluate at this point to include new features that may need to be included
    1. Flesh out Desktop Application to be update-able and easy to download/run
    2. Flesh out the web interface to actually show useful information

APA Lecture Notes (14-Oct-2013)

Fortran: Exclusive words don’t exist. INTEGER REAL, REAL INTEGER. REAL and INTEGER are both variables with different types.

 

Readability vs write-ability vs reliability vs cost vs execution speed

Everything affects which language you should choose.

 

I need to 100% understand Compiler vs Interpretor. Pretty sure I do.

 

There won’t be a lecture/practical when the lecturer is in Sri Lanka.

WebSockets in ASP.NET

Using http://www.codeproject.com/Articles/617611/Using-WebSocket-in-NET-4-5-Part-1 as a guide.

Here’s a list of things I’ve had to do to get WebSockets working on Windows 8 in IIS8:

  • Configure IIS to have ASP supported in Programs & Features > Features > Inernet Information Services > World Wide Web Services > Application Development Services.
  • Configure IIS to have WebSocket protocol enabled (Programs & Features > Features > Inernet Information Services > World Wide Web Services > Application Development Services > WebSocket Protocol)

Weekly Review 2

Busy busy week.

General

  • My timetable is now sorted and not a mess
  • I got to catch up with some people I’d not seen for over a year (other placement students)

Final Year Project

  • I rewrote a fair chunk of my proposal to fit closer to the specification for specifications
  • I got feedback from Tim on my initial draft and incorporated everything he mentioned
  • I received feedback from Barry on my slightly-less than initial draft and it boils down to “Be more concise, explain your project better, tell us what you’re learning.”

Software Architecture

  • We went over a fair chunk of what I already knew, relating to how software is architectured (what’s in a .exe, .dll and whatnot) and how they’re run by operating systems
  • Stacks and processes have been sufficiently drilled into my head.
  • I multi-tasked the tutorial for next week (I think) while listening in the tutorial. I still need to go back and add support for threading, but that’s an easy job.

Artificial Intelligence Applications

  • We went over how NetLogo simulations work and the general coding behind them. I also got most of the software installed on my laptop.
  • My team was the first team to be “teamed” as I knew 1 person already and she knew 1 person. ( we weren’t supposed to have teams sorted for another 2 weeks)
  • I still need to dip my hands into NetLogo and see how it functions. I’ll do this at home as it looks computationally intensive and my poor laptop is already at the end of its life.

Alternative Programming Approaches

  • We went over Erlang and all of its amazingness
  • I’ve yet to see how it’s so amazing, but it is a different way of thinking. The language is difficult to wrap your head around when you’ve been a C# developer for a number of years.

Rich Internet Applications

  • I finished learning all of the HTML5 technologies specified and built a page showing them each in action
  • I also built a page which specifically shows Canvas and has a fair bit more information on it (http://dannywhittaker.com/Uni/RIA/HTML5Knowledge/CanvasPresentation.html)
  • We mostly did presentations through class, but Barry dropped in that he knows a few guys who want developers in to do work. We should be meeting these guys soon.
  • I was assigned (chose) to do Web Sockets by next week in the same vain as the Canvas above. I’ll take it further though for examples as I’m really curious about what it can do. I need to setup my home computer to have a static IP and forwarded port 80 for hosting websites, and link it to http://home.dannywhittaker.com

Due next week

  • My absolute finalized Proposal for Final Year Project
    • Taking into account both Barry and Tim’s feedback, I’ll need to get Tim’s feedback again next week before handing in, so this should be done ASAP.
  • A presentation page on web sockets (some form of Chat that actually works)
  • I need to setup my home computer to: