Hello,
in addition to my thesis, I have to write a short paper about the innovation aspects of my work.
Please find my document here:
Innovation Aspects
If some more innovation aspects come to your mind, I would be happy to hear them. Feel free to comment.
I am back in Austria and working on the last corrections of the thesis. The final deadline is the first of September.
Cheers,
Tanja
Saturday, August 3, 2013
Wednesday, July 3, 2013
HPU Talk
Aloha,
today I gave a talk about my semester abroad and my research work at HPU.
Here you can find my presentation online:
Presentation
Curt recorded the presentation. I hope he will be able to upload the video to youtube, then I can post it here ...
Cheers, Tanja
today I gave a talk about my semester abroad and my research work at HPU.
Here you can find my presentation online:
Presentation
Curt recorded the presentation. I hope he will be able to upload the video to youtube, then I can post it here ...
Cheers, Tanja
Wednesday, June 5, 2013
Temporary End Version
Hello,
here you can find my temporary end version of the thesis:
Thesis - Microsoft Word
Thesis - PDF
I tried to implement all the suggestions from you. Hope its fine like this.
I am heading to San Francisco tomorrow and I will be back in Honolulu on 25th June.
Curt Powley (Chair of the Computer Science Department here) asked me to hold a talk about my thesis at HPU. It it expected to take place in the first week of July.
Cheers, Tanja
here you can find my temporary end version of the thesis:
Thesis - Microsoft Word
Thesis - PDF
I tried to implement all the suggestions from you. Hope its fine like this.
- I tried to avoid using too many bullet points
But I also did not delete all of them, cause I think sometimes they are useful for the clarity of the text
- I implemented the spelling and grammar corrections from Sam
- I updated the visualization part
It is now possible to save visualizations and to load them again
User story: a scientist wants to give his visualizations to his colleague, so that the colleague can also use them in his simulation
- I corrected the sequence diagrams
I am heading to San Francisco tomorrow and I will be back in Honolulu on 25th June.
Curt Powley (Chair of the Computer Science Department here) asked me to hold a talk about my thesis at HPU. It it expected to take place in the first week of July.
Cheers, Tanja
Tuesday, May 21, 2013
Update: Visualization
Hello,
this week I added two new visualization methods to my simulation (see code on Github).
It is now also possible to view more than one sensor/constructs with each visualization option for comparison.
Here is an example of the curve viewing data for humidity and temperature:
I am currently updating my documentation with your hints and suggestions.
Thanks very much for your help!!
One hint from Thomas, which I don't really understand is:
---
... you should again think about your scenarios and the COMBINATION of constructs. ATM, you thought of combinations as mathematical equations. Combinations can also mean the visual combination of several graphs (constructs). This would also be a 'construct' that could be used itself ...
---
How can I visually combine sensors? If two constructs are nearly the same, storing e.g. the mean value of them?
A concrete example (like a user story) would be great. I think I don't really understand what you mean with visual combinations.
Thanks a lot!
Cheers, Tanja
this week I added two new visualization methods to my simulation (see code on Github).
Updated visualization screen with the following options: Curve, Pie Chart and Bars
The bar view
The pie chart
It is now also possible to view more than one sensor/constructs with each visualization option for comparison.
Here is an example of the curve viewing data for humidity and temperature:
I am currently updating my documentation with your hints and suggestions.
Thanks very much for your help!!
One hint from Thomas, which I don't really understand is:
---
... you should again think about your scenarios and the COMBINATION of constructs. ATM, you thought of combinations as mathematical equations. Combinations can also mean the visual combination of several graphs (constructs). This would also be a 'construct' that could be used itself ...
---
How can I visually combine sensors? If two constructs are nearly the same, storing e.g. the mean value of them?
A concrete example (like a user story) would be great. I think I don't really understand what you mean with visual combinations.
Thanks a lot!
Cheers, Tanja
Monday, May 13, 2013
Preview Thesis
Hello,
here you can find the preview of my thesis:
Thesis - Preview - PDF
Thesis - Preview - Microsoft Word
I would appreciate to know, if the direction I am heading to is right ... especially for the practical part (starting at chapter 7). Are some important parts missing?
Thanks a lot!
Cheers, Tanja
here you can find the preview of my thesis:
Thesis - Preview - PDF
Thesis - Preview - Microsoft Word
I would appreciate to know, if the direction I am heading to is right ... especially for the practical part (starting at chapter 7). Are some important parts missing?
Thanks a lot!
Cheers, Tanja
Sunday, May 12, 2013
Simulation GIT
Hello,
after my simulation using the version control system SVN works, I implemented now the same with GIT.
I added a button called "Settings" on the simulation start screen.
When clicking the button, the settings can be chosen:
(I stored all the standard settings as default value).
When the settings for GIT are chosen, the text "GIT" is displayed on the top right corner of the start screen (instead of SVN) and when linking two constructs, a different windows service using GIT is started up.
I wanted to let the user chose, if the GIT version should store to the local repository or to the remote one on Github. I spend nearlly two full days browsing the internet and searching the source code: seems like it is not implemented to push to a remote repository while using the library Gitsharp.
So far, I experienced the following advantages/disadvantages with the two versioning systems:
I am currently working on the documentation of my practical implementation. I hope to be able to upload this document next week.
Cheers, Tanja
after my simulation using the version control system SVN works, I implemented now the same with GIT.
I added a button called "Settings" on the simulation start screen.
When clicking the button, the settings can be chosen:
(I stored all the standard settings as default value).
When the settings for GIT are chosen, the text "GIT" is displayed on the top right corner of the start screen (instead of SVN) and when linking two constructs, a different windows service using GIT is started up.
I wanted to let the user chose, if the GIT version should store to the local repository or to the remote one on Github. I spend nearlly two full days browsing the internet and searching the source code: seems like it is not implemented to push to a remote repository while using the library Gitsharp.
So far, I experienced the following advantages/disadvantages with the two versioning systems:
I am currently working on the documentation of my practical implementation. I hope to be able to upload this document next week.
Cheers, Tanja
Sunday, May 5, 2013
Data Visualization
Dear readers,
this week I started working on the visualization part.
After the sensor called "Humidity" is checked and clicking the button "Show" ...
... my visualisation mask pops up:
Coordinate system:
The coordinate system shows the timestamps on the x-axis (displayed interval = 1) and the actual data on the y-axis.
At first, I was not sure, how to visualize data with C#.
I started with online research. I found some self-made graphics and wanted to draw a graph on my own. But this started to get really complicated ... so I restarted browsing the Internet and came up with a open source library from the website "Code Project":
http://www.codeproject.com/Articles/5431/A-flexible-charting-library-for-NET
I implemented this code in my project. It works really fine now :-)
(see project called "Simulation" on Github https://github.com/tantschi/masterthesis.git).
At the beginning, I wanted to implement two different visualization methods.
I did some research on the Internet/books, but I don't know, which second method I should implement for my kind of data?
My sensor files contain just a timestamp and a value, but nothing else (e.g. 25.04.2013 09:17:59;93).
So I am not sure, if I should implement a second visualization or better try to focus on the processing/mining of the data (the storage in a versioning system).
Concerning my last post: I am now able to store the content of the linked sensors in a new construct-file.
I use another library from Code Project called "Math Parser".
http://www.codeproject.com/Tips/381509/Math-Parser-NET-Csharp
It calculates the result out of my Link-text-field:
At the moment I link the two last lines in each text-file according to a given interval. I think it is quite hard to know which lines of two .txt-files with different sensor intervals belong to each other.
Tanja
this week I started working on the visualization part.
After the sensor called "Humidity" is checked and clicking the button "Show" ...
... my visualisation mask pops up:
- Description
Per default here stands the name of the selected sensor - Destination
The destination, where the sensor file is stored - Data
The current data in the sensor - Refresh
The user has to click this button for refreshing the sensor data - Cancel
Closes the mask - Show
A new window showing the visualization opens
Coordinate system:
The coordinate system shows the timestamps on the x-axis (displayed interval = 1) and the actual data on the y-axis.
At first, I was not sure, how to visualize data with C#.
I started with online research. I found some self-made graphics and wanted to draw a graph on my own. But this started to get really complicated ... so I restarted browsing the Internet and came up with a open source library from the website "Code Project":
http://www.codeproject.com/Articles/5431/A-flexible-charting-library-for-NET
I implemented this code in my project. It works really fine now :-)
(see project called "Simulation" on Github https://github.com/tantschi/masterthesis.git).
At the beginning, I wanted to implement two different visualization methods.
I did some research on the Internet/books, but I don't know, which second method I should implement for my kind of data?
My sensor files contain just a timestamp and a value, but nothing else (e.g. 25.04.2013 09:17:59;93).
So I am not sure, if I should implement a second visualization or better try to focus on the processing/mining of the data (the storage in a versioning system).
Concerning my last post: I am now able to store the content of the linked sensors in a new construct-file.
I use another library from Code Project called "Math Parser".
http://www.codeproject.com/Tips/381509/Math-Parser-NET-Csharp
It calculates the result out of my Link-text-field:
At the moment I link the two last lines in each text-file according to a given interval. I think it is quite hard to know which lines of two .txt-files with different sensor intervals belong to each other.
Tanja
Thursday, April 25, 2013
How to save Meta-Constructs
Hello,
last week I was working on programming the "Link"-functionality of two or more sensors or constructs.
Click button "Link" on start screen:
This window pops up:
After finding a link-connection, there must run a background process, which reads the existing sensor data, connects them and saves a new brunch in the versioning system.
At the beginning I was not sure, how I should realize that with C#. I was thinking of stuff like threads.
After research in the Internet and asking friends, I now decided to use Windows Services.
When the user clicks on the button "Add" a new service is added to the system with the name of the new meta construct. This service takes over all the work in the background:
It works really well! :-)
My C#-Project called "Simulation" installs and starts my Windows Service project called "MetaConstructService". Witch clicking the button "Delete" it is also possible to uninstall it.
The Service reads out the parameter it needs from a XML-configuration file, that looks like that:
<configuration>
<appSettings>
<add key="ServiceName" value="Simulation_NewConstruct" />
<add key="Destination" value="D:\newconst.txt" />
<add key="CommitMsg" value="(Humditiy + Temperature) * 3" />
<add key="data_Humditiy" value="D:\\newconst2.txt" />
<add key="data_Temperature" value="D:\\newconst2.txt" />
</appSettings>
</configuration>
All the Code is available at Github (https://github.com/tantschi/masterthesis.git). At the moment I am just storing a dummy content. I am not sure, how I link the sensors together. They won't have the exact timestamp. Maybe just linking the datasets with the most actual dates.
Concerning your comments of an older post of mine, I store each sensor data now like that in my .txt-files: timestamp;data
Tanja
last week I was working on programming the "Link"-functionality of two or more sensors or constructs.
Click button "Link" on start screen:
This window pops up:
After finding a link-connection, there must run a background process, which reads the existing sensor data, connects them and saves a new brunch in the versioning system.
At the beginning I was not sure, how I should realize that with C#. I was thinking of stuff like threads.
After research in the Internet and asking friends, I now decided to use Windows Services.
When the user clicks on the button "Add" a new service is added to the system with the name of the new meta construct. This service takes over all the work in the background:
It works really well! :-)
My C#-Project called "Simulation" installs and starts my Windows Service project called "MetaConstructService". Witch clicking the button "Delete" it is also possible to uninstall it.
The Service reads out the parameter it needs from a XML-configuration file, that looks like that:
<configuration>
<appSettings>
<add key="ServiceName" value="Simulation_NewConstruct" />
<add key="Destination" value="D:\newconst.txt" />
<add key="CommitMsg" value="(Humditiy + Temperature) * 3" />
<add key="data_Humditiy" value="D:\\newconst2.txt" />
<add key="data_Temperature" value="D:\\newconst2.txt" />
</appSettings>
</configuration>
All the Code is available at Github (https://github.com/tantschi/masterthesis.git). At the moment I am just storing a dummy content. I am not sure, how I link the sensors together. They won't have the exact timestamp. Maybe just linking the datasets with the most actual dates.
Concerning your comments of an older post of mine, I store each sensor data now like that in my .txt-files: timestamp;data
Tanja
Wednesday, April 17, 2013
Theoretical Part
Hello,
I finished the first three (theoretical) chapters of the thesis according to my proposal:
I also added a chapter called "Challenges" and changed the order of the chapters a bit.
Please find my text here:
Theoretical Part - PDF
Theoretical Part - DOC
I wrote it in Microsoft Word, cause I had a lot of formatting problems with Latech :-(
I will put it all in Latech before handing the thesis in ... but I think for the moment word is much nicer for me - the spelling correction is really useful and I know how to handle the software.
I have another question: does anybody of you know, where I can correct my text? I am no English native speaker, I am sure there are a lot of English grammar mistakes in it :-(
Sam, do you may know someone at HPU who can help me correct it?
Thank you very much for your help,
Tanja
I finished the first three (theoretical) chapters of the thesis according to my proposal:
I also added a chapter called "Challenges" and changed the order of the chapters a bit.
Please find my text here:
Theoretical Part - PDF
Theoretical Part - DOC
- Is it okay like that?
- Is anything missing or should I change or add something?
I wrote it in Microsoft Word, cause I had a lot of formatting problems with Latech :-(
I will put it all in Latech before handing the thesis in ... but I think for the moment word is much nicer for me - the spelling correction is really useful and I know how to handle the software.
I have another question: does anybody of you know, where I can correct my text? I am no English native speaker, I am sure there are a lot of English grammar mistakes in it :-(
Sam, do you may know someone at HPU who can help me correct it?
Thank you very much for your help,
Tanja
Thursday, April 4, 2013
GUI-Mockup
Dear readers,
this week I started with some GUI mockups.
----------------------------------------
Start Screen:
Related user story:
John is a meteorologist. He has many sensors in a field study each generating temperature readings. In order to conduct his research he wants to have a general overview of all the current sensors he is currently working with. He also wants to see in his overview, if the data is generated from a sensor or a construct. A construct is a combination of several sensors.
Adding a New Sensor:
Press Button „Add“ on start screen.
Related user story:
John has already stored his data securely in a sensor. He wants to add a new sensor to the system for further processing, like creating new constructs or showing the data.
Link two sensors to a new construct:
Press Button „Link“ on start screen.
Related user story:
John likes to create visualizations that combine humidity data with data on temperature that another scientist has been storing. He wants to save these combinations of data securely to show them to his colleagues in a few weeks.
Visualize data:
Press Button „Show“ on start screen.
Related user story:
John wants to view his new data combination to Alfred graphically to show him his results. He can show Alfred the raw data (Timestamp and Data) or he can visualize it by choosing one out of two visualization options.
----------------------------------------
The above shown GUIs are examples, how I want to realise my program.
Some of the buttons are already working, but not all of them.
I haven't started with the visualization part yet.
Open questions at the moment:
Mahalo, Tanja
this week I started with some GUI mockups.
----------------------------------------
Start Screen:
Related user story:
John is a meteorologist. He has many sensors in a field study each generating temperature readings. In order to conduct his research he wants to have a general overview of all the current sensors he is currently working with. He also wants to see in his overview, if the data is generated from a sensor or a construct. A construct is a combination of several sensors.
Adding a New Sensor:
Press Button „Add“ on start screen.
Related user story:
John has already stored his data securely in a sensor. He wants to add a new sensor to the system for further processing, like creating new constructs or showing the data.
Link two sensors to a new construct:
Press Button „Link“ on start screen.
Related user story:
John likes to create visualizations that combine humidity data with data on temperature that another scientist has been storing. He wants to save these combinations of data securely to show them to his colleagues in a few weeks.
Visualize data:
Press Button „Show“ on start screen.
John wants to view his new data combination to Alfred graphically to show him his results. He can show Alfred the raw data (Timestamp and Data) or he can visualize it by choosing one out of two visualization options.
----------------------------------------
The above shown GUIs are examples, how I want to realise my program.
Some of the buttons are already working, but not all of them.
I haven't started with the visualization part yet.
Open questions at the moment:
- The visualization-window shows the date of the sensor data
Should I store a date in my GIT/SVN .txt.-file which I display here.
Or is it better to show the date, when the actuall data has been stored in the versioning system? (reading the log-File of the versioning system)
Currently each sensor is just a text-File with data like that:
93
94
95
But I can also store the data like that:
2013-04-04 13:20:55;93
2013-04-04 13:25:55;94
2013-04-04 13:30:55;95 - I was looking for a standardized way to store the data
At the website http://www.opengeospatial.org/ I just find standards for .xml-schemas
I haven't found an appropriate standard for my data yet ...
I downloaded some test-data from http://freegisdata.rtwilson.com/. They also provide .txt. files.
So I think I will keep my .txt-File storing schema - For the first visualization option I am thinking of a x/y-coordination system. Where x is the timestamp and y the actual value. I haven't decided on the second visualization option yet.
- I am not sure if I should allow to mix GIT and SVN in my solution. At the moment it is possible to load a sensor from GIT or from SVN in the system.
Mahalo, Tanja
Monday, April 1, 2013
Business Paper 2: Geo-Information - Value and economic feasibility
Aloha,
here you find my second German business paper about "Geo-Information - Value and economic feasibility" for the class "International Economics".
Business Paper 2
Tanja
here you find my second German business paper about "Geo-Information - Value and economic feasibility" for the class "International Economics".
Business Paper 2
Tanja
Wednesday, March 27, 2013
Business Paper 1: Geo-Marketing
Aloha,
last week I was not working on my master thesis, but on my compensation work for a business class called "Marketing & Sales" at my home university in Salzburg.
I am writing about "Geo-Marketing".
Here you find my paper:
Geo Marketing
I had to write the paper in German. So I am sorry that not everybody will understand it. Nevertheless, I am happy about any comments or suggestions :-)
Tanja
P.S.: My second compensation work for the class "International Economics" will be about "Geo-Information - Value and economic feasibility". I want to finish it as soon as possible, so that I can concentrate on my thesis again.
last week I was not working on my master thesis, but on my compensation work for a business class called "Marketing & Sales" at my home university in Salzburg.
I am writing about "Geo-Marketing".
Here you find my paper:
Geo Marketing
I had to write the paper in German. So I am sorry that not everybody will understand it. Nevertheless, I am happy about any comments or suggestions :-)
Tanja
P.S.: My second compensation work for the class "International Economics" will be about "Geo-Information - Value and economic feasibility". I want to finish it as soon as possible, so that I can concentrate on my thesis again.
Friday, March 15, 2013
Standards
Aloha,
like mentioned in my last post, I was looking at standards of geo-sensor networks this week.
You can see the results of my work under the following GoogleDrive-link:
Standards.pdf
I know that my quotations are not perfect. I wrote the document in Microsoft Word. I will copy the text later in my Latech-template where I am using JabRef for quotations.
I started working on my business paper about "Geo Marketing". I have to write the paper in German, so I think it makes no sense publishing it here.
I also joined a math and computer science seminar this week at HPU about "Integrating Project-based Computing into Secondary Science and Mathematics" by Stewart Crawford. It was really interesting :-)
Cheers, Tanja
like mentioned in my last post, I was looking at standards of geo-sensor networks this week.
You can see the results of my work under the following GoogleDrive-link:
Standards.pdf
I know that my quotations are not perfect. I wrote the document in Microsoft Word. I will copy the text later in my Latech-template where I am using JabRef for quotations.
I started working on my business paper about "Geo Marketing". I have to write the paper in German, so I think it makes no sense publishing it here.
I also joined a math and computer science seminar this week at HPU about "Integrating Project-based Computing into Secondary Science and Mathematics" by Stewart Crawford. It was really interesting :-)
Cheers, Tanja
Friday, March 8, 2013
Requirements Engineering
Aloha,
as there have been some misunderstandings regarding my geo-sensor simulations, I worked this week on requirements engineering.
I made a requirements engineering specification, like I learned it in a course at the University of Applied Sciences Salzburg a view semesters ago (by Roland Graf and Dietmar Glachs).
I also found the the Berkley lecture 6 about scenarios quite useful for that purpose:
Here you can find my requirements engineering document:
Requirements Engineering Document
I uploaded a PDF-document, because I find it quite hard to format a table with blogger ...
I am thankful for ever comment or suggestion :-)
My next steps: I want to look at standards, before I continue. I already read some papers from Bernd Resch (a scientist working in Heidelberg/Germany), where he writes about geo sensor standards. I should also check out that website: http://www.opengeospatial.org/
Cheers,
Tanja
as there have been some misunderstandings regarding my geo-sensor simulations, I worked this week on requirements engineering.
I made a requirements engineering specification, like I learned it in a course at the University of Applied Sciences Salzburg a view semesters ago (by Roland Graf and Dietmar Glachs).
I also found the the Berkley lecture 6 about scenarios quite useful for that purpose:
Here you can find my requirements engineering document:
Requirements Engineering Document
I uploaded a PDF-document, because I find it quite hard to format a table with blogger ...
I am thankful for ever comment or suggestion :-)
My next steps: I want to look at standards, before I continue. I already read some papers from Bernd Resch (a scientist working in Heidelberg/Germany), where he writes about geo sensor standards. I should also check out that website: http://www.opengeospatial.org/
Cheers,
Tanja
Thursday, February 28, 2013
Software as a Service
Hello,
I am currently watching some really interesting YouTube videos.
They contain lectures of a course called "Software as a Service" which took place in Berkeley in Fall 2012.
So if you are interested check out the link:
Computer Science 169, 001 - Fall 2012
My notes about the videos, I already watched:
Lecture 1:
Instructions, Overview, Programming Models (Waterfall Model, Spiral Lifecycle, Agile Manifesto), Testing, Formal Methods, Productivity, DRY, SaaS
Good overview. I already knew most of the content.
Lecture 2:
SOA vs. SW silo: good explanation
SaaS infrastructure, clusters, cloud computing, fallacies and pitfalls
Pair programming: learned some new views about pair programming
Introduction to ruby: interesting language, not relevant for my thesis
Lecture 3:
All about ruby: everything is an object, poetry mode, ruby oop, meta programming, loops ...
Very interesting programing language, quite efficient syntax, little code does a lot of work
Lecture 4:
High level view of architecture: very good overview
The model view controller-pattern: how to organize data
CRUD: create, read, update, delete
Data mapper vs relational databases (good to know about), REST (good explanation)
Rails as an MVC-framework: not really interesting for me
Lecture 5:
MVC-Framework - Model: Databases & Migrations, automation
Rails cookbock: Not important for my project as I don't use rails
#1: Adding features (model, view, controllers)
#2: Add a new action to a rails app
#3: Create a new submitable form
Everything that is important and big should be stored in a database!
Lecture 6:
Lecture 7:
Lecture 13:
Measuring Productivity: Pivotal Tracker (I already created a project with pivotal tracker for my thesis)
Effective Meetings: SAMOSAS (Start, Agenda, Minutes, One, Send, Action, Set): sounds really useful
Version Control Systems: history, Git, solving conflicts, effective branching, forks, pitfall: good overview
I will update this post entry with every lecture I watch.
Tanja
I am currently watching some really interesting YouTube videos.
They contain lectures of a course called "Software as a Service" which took place in Berkeley in Fall 2012.
So if you are interested check out the link:
Computer Science 169, 001 - Fall 2012
My notes about the videos, I already watched:
Lecture 1:
Instructions, Overview, Programming Models (Waterfall Model, Spiral Lifecycle, Agile Manifesto), Testing, Formal Methods, Productivity, DRY, SaaS
Good overview. I already knew most of the content.
Lecture 2:
SOA vs. SW silo: good explanation
SaaS infrastructure, clusters, cloud computing, fallacies and pitfalls
Pair programming: learned some new views about pair programming
Introduction to ruby: interesting language, not relevant for my thesis
Lecture 3:
All about ruby: everything is an object, poetry mode, ruby oop, meta programming, loops ...
Very interesting programing language, quite efficient syntax, little code does a lot of work
Lecture 4:
High level view of architecture: very good overview
The model view controller-pattern: how to organize data
CRUD: create, read, update, delete
Data mapper vs relational databases (good to know about), REST (good explanation)
Rails as an MVC-framework: not really interesting for me
Lecture 5:
MVC-Framework - Model: Databases & Migrations, automation
Rails cookbock: Not important for my project as I don't use rails
#1: Adding features (model, view, controllers)
#2: Add a new action to a rails app
#3: Create a new submitable form
Everything that is important and big should be stored in a database!
Lecture 6:
Debugging,
RASP (Read, Ask, Search, Post): Sounds plausible
MVC: Thin controllers and views, put real code in models
Test driven design (TDD): tests implementation
Behavior Driven Design (BDD): write requirements down as user stories
User stories: 1-3 sentences in everyday language, fits on 3x5 inch card, write with customer, should be SMART (Specific, Measurable, Achievable, Relevant, Timeboxed): want to implement that for project
Cucumber and Capybara: Rails specific
UI: storyboard, am I allowed to put a storyboard in a scientific paper?
General question: Am I allowed to cite something from the Berkeley-course in my paper? Or are quotations only allowed from books and well known web sites?
MVC: Thin controllers and views, put real code in models
Test driven design (TDD): tests implementation
Behavior Driven Design (BDD): write requirements down as user stories
User stories: 1-3 sentences in everyday language, fits on 3x5 inch card, write with customer, should be SMART (Specific, Measurable, Achievable, Relevant, Timeboxed): want to implement that for project
Cucumber and Capybara: Rails specific
UI: storyboard, am I allowed to put a storyboard in a scientific paper?
General question: Am I allowed to cite something from the Berkeley-course in my paper? Or are quotations only allowed from books and well known web sites?
Lecture 7:
MVC: the
View-Layer: Haml = HTML on a diet
Explicit scenarios: part of acceptance tests
Implicit scenarios: logical consequence of explicit requirements
Imperative: specifying logical consequences, often complicated
Declarative: try to make a domain language from steps, better choice
Pitfalls: customers who confuse mock-ups with completed features, sketches without storyboards, adding cool features that do not make the product more successful, trying to predict which code you need, before you need it --> sounds all logical
Remember: debugging sucks, testing rocks :-)
HTML: general overview, invented by IBM: not a lot of new stuff for me
CSS: introduction: I already learned about it
Comments should describe things that aren’t obvious in the code: why not what!
Explicit scenarios: part of acceptance tests
Implicit scenarios: logical consequence of explicit requirements
Imperative: specifying logical consequences, often complicated
Declarative: try to make a domain language from steps, better choice
Pitfalls: customers who confuse mock-ups with completed features, sketches without storyboards, adding cool features that do not make the product more successful, trying to predict which code you need, before you need it --> sounds all logical
Remember: debugging sucks, testing rocks :-)
HTML: general overview, invented by IBM: not a lot of new stuff for me
CSS: introduction: I already learned about it
Comments should describe things that aren’t obvious in the code: why not what!
Lecture 13:
Measuring Productivity: Pivotal Tracker (I already created a project with pivotal tracker for my thesis)
Effective Meetings: SAMOSAS (Start, Agenda, Minutes, One, Send, Action, Set): sounds really useful
Version Control Systems: history, Git, solving conflicts, effective branching, forks, pitfall: good overview
I will update this post entry with every lecture I watch.
Tanja
Wednesday, February 27, 2013
Simulation of a Geo Sensor
Hello,
here you can see my prototypical simulation of a geo sensor programmed with C#:
Group Box Sensor:
Tab control "Git":
When clicking the button "Start", data is imported from the geo sensor. The data is displayed in the view on the right side. The new data is then stored and committed to subversion.
Import data in a Git local repository:
When clicking the button "Start", data is imported from the geo sensor.
The data is displayed in the view on the right side. The new data is
then stored and committed to Git.
The same thing is possible in Java with the libraries "SVNKit" and "JGit". I already programmed two test programs with those libraries too. But I decided to stick to C#, because the later implementation of the visualization of the geo data will be done in C#.
Problems encountered:
I already encountered speed problems when working with SVN. I used an SVN repository from the University of Applied Sciences Salzburg. When I read the geo data like every second, the storage of the data in de SVN repository takes like 5 seconds. You can see the log message here:
It is no problem for the weather data which I am using, because that data comes in with a period of 5 minutes. But if you use faster sensors, five seconds for storing the data will be too long.
I don't have these problems with Git. But I have to mention, I store the data in the local Git repository, not in the remote one.
If you have any remarks or suggestions, feel free to comment :-)
Tanja
here you can see my prototypical simulation of a geo sensor programmed with C#:
Group Box Sensor:
- Description
For specifying the current sensor. As I am working with weather data it is "humidity" here.
- Sensor
origin
A file, where the data of the sensor is stored.
In my example the file is very simple and locks like that:
93
94
94
91
... - Interval
Here you can specify the interval in seconds
- Local
Destination
A file-name in an existing local repository, where the data should be stored - Commit
Message
A message that will be stored for the SVN-commit
Tab control "Git":
- Local Repository
A path to a local repository
- Local
Destination
A file-name in an existing local repository, where the data should be stored
- Commit
Message
A message for the SVN-commit
When clicking the button "Start", data is imported from the geo sensor. The data is displayed in the view on the right side. The new data is then stored and committed to subversion.
Library: Sharpsvn (http://sharpsvn.open.collab.net/)
Library: Sharpsvn (http://sharpsvn.open.collab.net/)
The same thing is possible in Java with the libraries "SVNKit" and "JGit". I already programmed two test programs with those libraries too. But I decided to stick to C#, because the later implementation of the visualization of the geo data will be done in C#.
Problems encountered:
I already encountered speed problems when working with SVN. I used an SVN repository from the University of Applied Sciences Salzburg. When I read the geo data like every second, the storage of the data in de SVN repository takes like 5 seconds. You can see the log message here:
It is no problem for the weather data which I am using, because that data comes in with a period of 5 minutes. But if you use faster sensors, five seconds for storing the data will be too long.
I don't have these problems with Git. But I have to mention, I store the data in the local Git repository, not in the remote one.
If you have any remarks or suggestions, feel free to comment :-)
Tanja
Evaluation and comparison of VCS
Hello,
today I want to take a closer lock on existing version control systems.
The following table shows a general overview of existing centralized and decentralized systems:
For further evaluation I chose three of the versioning systems in the table. The version control systems Subversion, Git and Mercurial have been picked, because they are currently the most popular systems and they are open source applications.
Apache Subversion (SVN)
The development on Apache Subversion started in October 2000 by CollabNet. In February 2010 it became an open source Apache Software Foundation Project. SVN is a centralized version control system. Collaboration with other developers, even in remote locations, is possible since SVN uses HTTP. HTTP (Hypertext Transfer Protocol) is a standard protocol which is allowed by most firewalls [7].
SVN offers a lot of features like for example a merging tool, branching support, commit messages and a whole lot more. It tries to solve conflicts if two developers have being working on the same place in a file. SVN features also true atomic commits. That means that either a whole commit completes or nothing is committed. That helps repositories to not become corrupted due to incomplete data [7].
Because SVN is open source, easy to learn and offers a lot of features, that other version control systems in the past didn't had, it found a wide adaption by a large number of companies. That results in a wide support with third-party applications. Nevertheless, Subversion suffers from the disadvantages centralized file systems have. If using a slow internet connection the speed of updating or committing data goes down rapidly. Also SVN merging abilities suffer if a file is not cleared of the additional code generated [7].
Mercurial
After the free version of Bit Keeper was removed from the market Mercurial was started to be developed in April 2005 by Matt Mackall. Mercurial is open source and a decentralized versioning system including all advantages and disadvantages of that kind of systems. For example changes are most of the time just pushed to the local repository which gives a huge speed increase. When pushing to a remote location that can be set up with SSH. SSH (Secure Shell) is very similar to the standard HTTP protocol but more secure. That can be an advantage if all HTTP ports are closed in a locked-down network for whatever reason [7].
Mercurial is programmed in Python, which ensures good cross-platform compatibility. It is mostly a command line tool but there are also graphical implementations available. Mercurial offers some nice features like for example changes can be exported to a file. Another user can import that file to a remote repository still under the original name of the first user. This can be useful if new code has to be reviewed and approved of other team members before committing [7].
Because of all that features Mercurial found a wide number of users like for examples the companies Mozilla, Netbeans or Growl [7].
Git
Git started to be developed nearly the same time like Mercurial. Linus Torvalds, the inventor of the Linux kernel, programmed the first version of Git in just 4 days. Git was developed for managing the source code for the Linux kernel development with two core ambitions: speed and security. It is a decentralized version control system [7].
Git takes a special focus on rapid branching. In Git it is possible to make separate branches (so called Git stashes) for special features that can be merged back in the repository after they have been finished. Git is also very scalable. Even if managing a huge project with it doesn't slow it down [7].
The local use of Git is quite impressing, but there are also disadvantages like all decentralized version control systems have. In addition, the set up and learning curve of Git is not as easy like with other systems. The communication with a remote Git repository requires having SSH keys for the local and the remote machine. Nevertheless, there are a lot of books and online resources available for getting to know this versioning system [7].
Selection of two suitable systems for implementation
For the next part of my work, the implementation of version control systems for the processing of realtime geo data, I decided to use Subversion and Git.
These two systems have been chosen to have a comparison between centralized and decentralized systems. They are two very popular systems which are used in many companies. Git won over Mercurial because it is faster and offers more (branching) features [7].
[1] Apache Software Foundation. Apache Subversion. http://subversion.apache.org/,
March 2013.
[2] Perforce Software Inc. Perforce. http://www.perforce.com/, March 2013.
[3] Microsoft Corporation. Microsoft. http://www.microsoft.com/, March 2013.
[4] Pearce Shawn Scott Chacon, Hamano Junio C. Pro Git. Apress, New York, 2009.
[5] Matt Mackall. Mercurial. http://mercurial.selenic.com/, March 2013.
[6] Canonical Ltd. Bazaar. http://bazaar.canonical.com/en/, March 2013.
[7] Chris Kemper and Ian Oxley. Foundation Version Control for Web Developers.
friendsofED, New York, 2012.
today I want to take a closer lock on existing version control systems.
The following table shows a general overview of existing centralized and decentralized systems:
For further evaluation I chose three of the versioning systems in the table. The version control systems Subversion, Git and Mercurial have been picked, because they are currently the most popular systems and they are open source applications.
Apache Subversion (SVN)
The development on Apache Subversion started in October 2000 by CollabNet. In February 2010 it became an open source Apache Software Foundation Project. SVN is a centralized version control system. Collaboration with other developers, even in remote locations, is possible since SVN uses HTTP. HTTP (Hypertext Transfer Protocol) is a standard protocol which is allowed by most firewalls [7].
SVN offers a lot of features like for example a merging tool, branching support, commit messages and a whole lot more. It tries to solve conflicts if two developers have being working on the same place in a file. SVN features also true atomic commits. That means that either a whole commit completes or nothing is committed. That helps repositories to not become corrupted due to incomplete data [7].
Because SVN is open source, easy to learn and offers a lot of features, that other version control systems in the past didn't had, it found a wide adaption by a large number of companies. That results in a wide support with third-party applications. Nevertheless, Subversion suffers from the disadvantages centralized file systems have. If using a slow internet connection the speed of updating or committing data goes down rapidly. Also SVN merging abilities suffer if a file is not cleared of the additional code generated [7].
Mercurial
After the free version of Bit Keeper was removed from the market Mercurial was started to be developed in April 2005 by Matt Mackall. Mercurial is open source and a decentralized versioning system including all advantages and disadvantages of that kind of systems. For example changes are most of the time just pushed to the local repository which gives a huge speed increase. When pushing to a remote location that can be set up with SSH. SSH (Secure Shell) is very similar to the standard HTTP protocol but more secure. That can be an advantage if all HTTP ports are closed in a locked-down network for whatever reason [7].
Mercurial is programmed in Python, which ensures good cross-platform compatibility. It is mostly a command line tool but there are also graphical implementations available. Mercurial offers some nice features like for example changes can be exported to a file. Another user can import that file to a remote repository still under the original name of the first user. This can be useful if new code has to be reviewed and approved of other team members before committing [7].
Because of all that features Mercurial found a wide number of users like for examples the companies Mozilla, Netbeans or Growl [7].
Git
Git started to be developed nearly the same time like Mercurial. Linus Torvalds, the inventor of the Linux kernel, programmed the first version of Git in just 4 days. Git was developed for managing the source code for the Linux kernel development with two core ambitions: speed and security. It is a decentralized version control system [7].
Git takes a special focus on rapid branching. In Git it is possible to make separate branches (so called Git stashes) for special features that can be merged back in the repository after they have been finished. Git is also very scalable. Even if managing a huge project with it doesn't slow it down [7].
The local use of Git is quite impressing, but there are also disadvantages like all decentralized version control systems have. In addition, the set up and learning curve of Git is not as easy like with other systems. The communication with a remote Git repository requires having SSH keys for the local and the remote machine. Nevertheless, there are a lot of books and online resources available for getting to know this versioning system [7].
Selection of two suitable systems for implementation
For the next part of my work, the implementation of version control systems for the processing of realtime geo data, I decided to use Subversion and Git.
These two systems have been chosen to have a comparison between centralized and decentralized systems. They are two very popular systems which are used in many companies. Git won over Mercurial because it is faster and offers more (branching) features [7].
[1] Apache Software Foundation. Apache Subversion. http://subversion.apache.org/,
March 2013.
[2] Perforce Software Inc. Perforce. http://www.perforce.com/, March 2013.
[3] Microsoft Corporation. Microsoft. http://www.microsoft.com/, March 2013.
[4] Pearce Shawn Scott Chacon, Hamano Junio C. Pro Git. Apress, New York, 2009.
[5] Matt Mackall. Mercurial. http://mercurial.selenic.com/, March 2013.
[6] Canonical Ltd. Bazaar. http://bazaar.canonical.com/en/, March 2013.
[7] Chris Kemper and Ian Oxley. Foundation Version Control for Web Developers.
friendsofED, New York, 2012.
Friday, February 22, 2013
Version Control Systems
Hello,
as I will work with Version Control Systems a lot, I want to post a short introduction:
------------------------------------------------------------------
Version Control Systems (VCS) are tools helping developers to manage changes of software. They are used for documentation, sharing and merging of code. This is an essential part in software development and for the success of projects. Software is usually developed in teams which members work parallel on the same code. So it is very important to have a tool for sharing and merging changes [1].
Because this task is so important, there are already a lot of tools available. In my project I want to take use of these systems for handling real-time geo data. The process of merging geo data streams to each other is nearly the same like merging code of several developers to each other. Also documentation is needed for handling sensor data.
In general there can be made a classification of two types of version control sytems: distributed and centralized systems.
Centralized version control systems
Centralized version control systems consist of one single server that contains all the versioned files and a number of clients that are allowed to down- and upload files to that server. This architecture has been a standard for many years [2].
In a distributed version control systems each client fully mirrors the whole repository [2].
[1] Gilad Bracha Matthias Kleine, Robert Hirschfeld. An Abstraction for Version Control Systems. Universitätsverlag Potsdam, 2012.
[2] Scott Chacon. Pro Git. Apress, 2009
[3] Ian Oxley Chris Kemper. Foundation Version Control for Web Developers. Apress,
2012.
------------------------------------------------------------------
My plans are to make a evaluation of different systems and chose then two options for a practical implementation. My two current favorites are Subversion and Git. I think they are the two most common systems in companies. I also want to have one example of a centralized and one of a decentralized version control system in my thesis. But we will see ;)
Cheers, Tanja
as I will work with Version Control Systems a lot, I want to post a short introduction:
------------------------------------------------------------------
Version Control Systems (VCS) are tools helping developers to manage changes of software. They are used for documentation, sharing and merging of code. This is an essential part in software development and for the success of projects. Software is usually developed in teams which members work parallel on the same code. So it is very important to have a tool for sharing and merging changes [1].
Because this task is so important, there are already a lot of tools available. In my project I want to take use of these systems for handling real-time geo data. The process of merging geo data streams to each other is nearly the same like merging code of several developers to each other. Also documentation is needed for handling sensor data.
In general there can be made a classification of two types of version control sytems: distributed and centralized systems.
Centralized version control systems
Centralized version control systems consist of one single server that contains all the versioned files and a number of clients that are allowed to down- and upload files to that server. This architecture has been a standard for many years [2].
- Advantages:
Easier to learn
Everybody in a project knows what others are doing at the moment
Administrators have control over what everyone is doing
For administrators a central version control system is easier to deal with
Used in many companies
- Disadvantages:
The centralized server is a single point of failure. When for example the server goes down for one hour, nobody can work with the version control system any more.
If the hard disk, where the central server is stored, becomes corrupted, all the data is lost. So the making of proper backups is a central aspect when using central version control systems.
- Examples:
Subversion, CVS, Perforce
In a distributed version control systems each client fully mirrors the whole repository [2].
- Advantages:
Every checkout of a client is a full backup of the repository. If the repository goes down, any of the client repositories can be copied back on the server and fully restores the system.
A hierarchical model for workflows is possible. It is possible to work with different people in different groups within the same project.
Speed increase
- Disadvantages:
More complex to learn [3].
- Examples:
Git (can also be used as centralized version control system), Mercurial, Bazaar, Darcs
[1] Gilad Bracha Matthias Kleine, Robert Hirschfeld. An Abstraction for Version Control Systems. Universitätsverlag Potsdam, 2012.
[2] Scott Chacon. Pro Git. Apress, 2009
[3] Ian Oxley Chris Kemper. Foundation Version Control for Web Developers. Apress,
2012.
------------------------------------------------------------------
My plans are to make a evaluation of different systems and chose then two options for a practical implementation. My two current favorites are Subversion and Git. I think they are the two most common systems in companies. I also want to have one example of a centralized and one of a decentralized version control system in my thesis. But we will see ;)
Cheers, Tanja
Geo Sensing in a general context
Hello,
as the use of my project is to improve the data management of geo sensor networks, I want to post something about geo sensing in general:
Geo Sensing
Today geo-information technology is a rapidly rising discipline. The data is mostly collected via airbone and orbiting sensors using photogrammetric techniques, but how has it all started? In former times geomatics were known as land surveyors. Land surveying needs a lot of mathematics and physics. The German mathematician Carl Friedrich Gauss (1777-1855) spent about 20 years of his life with establishing a geodetic
coordinate system. Using photogrammetric for collecting geo-data has been started in the nineteenth century. Geo data is the most important requisite for doing research in the field of geoscience and for getting to know Earth-related processes better [4].
For collecting these data, the use of geo sensor networks created a lot of new opportunities in the recent time. Geo sensor networks communicate wirelessly, they are sensor enabled small devices and they can be distributed throughout a geographic environment [5]. So they can be defined as networks that monitor phenomena in a geographic space [6].
Fields of application
Geo sensor networks open a wide range of new possibilities, like the following examples will show. Therefor three application types can be distinguished based on their observation characteristics: [1]
Bibliography
[1] Silvia Nittel. A survey of geosensor networks: Advances in dynamic environmental
monitoring. Sensors, page 15, 2009.
[2] Scott Chacon. Pro Git. Apress, 2009.
[3] William I. Grosky. Senseweb: An infrastructure for shared sensing. Media Impact,
page 6, 2007.
[4] Mathias Lemmens. Geo-information, Technologies, Applications and the Environ-ment. Springer, 2011.
[5] Mike Worboys Matt Duckham, Silvia Nittel. Monitoring dynamic spatial elds
using responsive geosensor networks.
as the use of my project is to improve the data management of geo sensor networks, I want to post something about geo sensing in general:
Geo Sensing
Today geo-information technology is a rapidly rising discipline. The data is mostly collected via airbone and orbiting sensors using photogrammetric techniques, but how has it all started? In former times geomatics were known as land surveyors. Land surveying needs a lot of mathematics and physics. The German mathematician Carl Friedrich Gauss (1777-1855) spent about 20 years of his life with establishing a geodetic
coordinate system. Using photogrammetric for collecting geo-data has been started in the nineteenth century. Geo data is the most important requisite for doing research in the field of geoscience and for getting to know Earth-related processes better [4].
For collecting these data, the use of geo sensor networks created a lot of new opportunities in the recent time. Geo sensor networks communicate wirelessly, they are sensor enabled small devices and they can be distributed throughout a geographic environment [5]. So they can be defined as networks that monitor phenomena in a geographic space [6].
Examples for Geo Sensors [1]
Fields of application
Geo sensor networks open a wide range of new possibilities, like the following examples will show. Therefor three application types can be distinguished based on their observation characteristics: [1]
- Terrestrial Ecology Observing Systems
In these systems continuous monitoring is usual. For example the observation of the growth or the health of plants. In Australia a project was started in 2006 for monitoring the growth circumstances of a nectarine orchard. The orchard had been covered with about 270 sensors and a gateway connected to the internet [1]. - Geological Observation Systems
These systems describe real-time detection applications like a volcano sensor network deployment. For example, the volcano Mount Pinatubo on the island of Luzon in the Philippines erupted on the 15th of June 1991 after about 600 years of dormancy. For observing the volcano scientists are interested in monitoring the mud flow which is the dynamic spatial field in this example. With the help of geo sensor networks they can find out if one of the major tributaries has split or if the mud flow is still expanding [5]. - Aquatic Observing Systems
That group describes geo sensor systems that are mobile or attached to mobile objects. Mobile objects can for example be cars, animals or ocean buoys. Also tsunami early warning systems or coastal and ocean observation systems belong to that group [1].
Bibliography
[1] Silvia Nittel. A survey of geosensor networks: Advances in dynamic environmental
monitoring. Sensors, page 15, 2009.
[2] Scott Chacon. Pro Git. Apress, 2009.
[3] William I. Grosky. Senseweb: An infrastructure for shared sensing. Media Impact,
page 6, 2007.
[4] Mathias Lemmens. Geo-information, Technologies, Applications and the Environ-ment. Springer, 2011.
[5] Mike Worboys Matt Duckham, Silvia Nittel. Monitoring dynamic spatial elds
using responsive geosensor networks.
Proposal
Aloha,
please read my proposal for getting to know my current project better:
Proposal Geo Sensing
Cheers, Tanja
please read my proposal for getting to know my current project better:
Proposal Geo Sensing
Cheers, Tanja
Welcome
Hello and welcome to my blog.
I study Information Technology & Systems Management at the University of Applied Sciences in Salzburg, Austria. I currently write my master thesis about geo sensing at the Hawaii Pacific University in Honolulu, Hawaii.
University of Applied Sciences Salzburg
Hawaii Pacific University - HPU
I want to share my weekly progress of my work on this blog.
So feel free to comment, add suggestions or even help me to find spelling mistakes.
Mahalo, Tanja
I study Information Technology & Systems Management at the University of Applied Sciences in Salzburg, Austria. I currently write my master thesis about geo sensing at the Hawaii Pacific University in Honolulu, Hawaii.
University of Applied Sciences Salzburg
Hawaii Pacific University - HPU
I want to share my weekly progress of my work on this blog.
So feel free to comment, add suggestions or even help me to find spelling mistakes.
Mahalo, Tanja
Subscribe to:
Posts (Atom)