Model-View-ViewModel is a design pattern that has been around for a long time. Even longer than MVC. It is now gaining a huge movement especially in the .Net community. Microsoft is investing a lot of effort into implementing MVVM in their products. This is definitely present in Windows 8. 

Why do we need MVVM? MVVM is important because it helps to separate concerns. It allows teams to work on different pieces of an app but follow a pattern that supports easy integration. MVVM makes good use of data binding. It also seems to work a lot better on Mobile devices than MVC. Probably because of the closer relationship between the View and Model. 

I have yet to implement a version of MVVM in any of my maps. Shayne Boyer gave a talk at Tampa Code Camp on MVVM light a visual studio extension that makes using MVVM very easy. He has made me a convert. If you intend to use MVVM it will  help porting to other technologies. Shayne spoke about moving an application from Windows Phone 7 to Windows 8 and was able to direct copy 75% of his code. If you use MONO you can then port that same amount of Business logic towards an Android app or Apple app. 

Advertisements

At the Tampa Bar / Code camp at the University of South Florida, I attended a talk on some really interesting topics. The topics included AI, Machine learning, natural learning, and Data Mining.

The presenter was Don Berndt and he is a professor of MIS at USF.

He had a very interesting story. He told us about the AI winter and how his career in Machine learning was like a boomerang. He introduced the idea of Genetic Algorithms like Bird flocking and how they can be applied to solve technical problems like searching and sorting. He then went on to say his field of study is in combining the power of Machine learned algorithms and Natural Learning.

Artificial life is trying to emulate natural behaviors. If we tightly couple the knowledge natural behaviors with artificial data. We can see incredible optimizations in algorithms used to manipulate that data.

SiteWit the company Don Berndt primarily does his research at is focused on DataMining medical records. They work primarily with the VA hospital here in tampa. Using complex algorithms to organize and search the medical records data is “a big deal now”. Usually these services are accomplished by top down Natural Language Processing algorithms or statistical text mining applications.

Sitewit is attempting to hybrodize these approaches and are seeing some pretty interesting results. NLP is a top down approach and can be very heavy. The worst part is that they usually don’t take in to account abbreviations, short hands, and grammatical errors. Luckily medicine has an amazing Natural learning data source the UMLS. This is the result of a ton of natural learning. The efforts of many qualified doctors and years of hard work have amounted to a network of interconnected medical terms.

Sitewit is injecting the relationships found in UMLS and the power of statistical text search. The main problem is that nothing but frequency counts in statistical analysis.  Adding relationships and weight to the algorithms has increased data mining accuracy by more than ten percent. This following year they hope to see even greater efficiency increases.

This is a field I know nothing about but the talk was extremely interesting. This post is probably riddled with errors and misconceptions. If you have any comments please let me know. I love learning, I just hope that some day I can use this information for something greater than a blog post.

Last night I was able to nerd out on a webinar with Alan Page. Alan Page is a famous tester at Microsoft, he is especially known for his book “How we test software @ Microsoft”. I have read a few chapters in this book and I highly recommend it. Below is an explanation of what I learned.

All the recruiters were great and made a strong case that everyone involved in software should learn at least a little bit about testing. Testing is one of the most useful processes of software development and should be respected as such. I personally love to break things and tear them apart to see how they work. Ask my mother about her camcorder….sorry Mom.

Having a tester mentality can and should shine through all your work. Being a tester is about thinking outside the box and having a passion to learn. If you have hobbies, especially if you put them on your resume. You need to express these attributes. For example, if you love cars and you list it as a hobby on your resume. You should be able to express that you started a local club, moderate a forum, attend car shows, or frequent a local hobby garage. You should also show that you participate in these events to learn more about your passion…cars.

Preparing for a testing interview. The Almighty A.Page (as I like to call him) gave away a secret nugget. He gave us one of his personal interview questions.

“How would you test this function?”
int rollDie()
{}//returns 1-6

The secret to this question is to understand what he is asking. Yes, you can do all the white/black box testing you want but it wont solve the real problem. The true problem here is that you need to test randomness. Furthermore, how random the function needs to be is dependent on who will use it. A casino will want true randomness and a board game may not be as specific. Understand the root problem of questions and bugs by stepping back and looking at the whole project. Check out Alan Pages section of the book Beautiful testing for a more in depth look at testing randomness.

Always, relate all testing to the customer. Software is useless if no one uses it. If customers aren’t happy they wont use it. Testing helps keep customers happy. The idea of a tester as a code grammar nazi or a non-technical Ui tester is going the way of the dodo. Roles like SDET at Microsoft and Amazon are becoming the norm. Even if you are a developer writing code for test and understanding testing is necessary for minimizing bugs and increasing software quality overall.

 

 

alan page, microsoft, software, testing, development, code, SDE, SDET

Attending a Windows 8 event on campus today. I am really excited to see what I will learn. I can even apply the hours to my job -Woopee!. Too bad I am salary….

Tara Walker is the host. I have been to many of her events and they are always insightful. A friend I met at a professional Windows 8 app lab is also presenting. Tony….I mean Michael Stark is presenting his collection of Data Apps and they are really interesting. He has a Drone Attack App that shows the Militaries drone strikes for the past year. Very Cool. Mike will also be at the Tampa USF Code/Bar Camp.

I came to this event to ask Tara about a form dialog similar to this but I learned that the UI standard prefers Flyouts. Like this.

 

 

Mike and I will also be at the BarCamp/Code camp at USF.

 

 

 

Edit Rough notes:

Open source data source apps
Windows store submission sucks
Drone Attacks
911 call data sources
Start with a template.
        Reverse engineer it and replace the feed with local data
        Change colors
        Submit app
        Blend is for design
        Blend is a xaml designer. Xaml is improved xml
        App has to handle the connection to the internet properly
        Start progress ring and close when waiting on WCF
        
        
Government Socail app
    – Link to twitter with link to nuget
        – Use Linq to grab twitter info
        – Querying Sql server with WCF

 

http://usfwin8applabsession2.eventbrite.com/#

 

 

 

Sumo Software

About to start the tutorial for the facebook android SDK. It’s still in Beta but in the great words of Pimp C it’s looking “cleaner than a bi…”

Will keep this posted with some updates. Ran into some problems using the samples. You can find my QA solution here on Stack.

For a while there was one thing that bothered me about Windows 8 more than anything else. No start bar…. I have since gotten over that and adopted a new favorite Windows 8 rant. I hate that you can’t Debug a Windows 8 Metr….Store application in Visual Studio and easily return to development mode. There is a solution…sort of. Instead of running your app in the local machine run it on the simulator. This will allow you to preserve the context of Visual Studio and easily end debug.

Personally, I think that Visual studio should launch deugging applications in a manner that allows them to close instantly. Or that hitting Alt + F4 in a debugging app will return you to visual studio and not the Metro bar. Hopefully Microsoft has good reason and figures out a more elegant solution. All and all the simulator is really enjoyable to use.

Balsamiq: Ui dressing that tastes so good

I have used a handful of mockup applications. None are as easy, quick, and
Beautiful as Balsamiq. I hate paying for software but I couldn’t live without this application.

This is an example mock up done at USF for Android development. Photo available to be used elsewhere if link is posted back to this blog.

Credit: Sean Dunford, Hebron George, Nino Holmes
Special Thanks to Sumo Software for employing me and purchasing my copy of Balsamiq.

Hi all,

My name is Sean Dunford. I am a programmer and studying to be a Computer Engineer at the University of South Florida. I can’t contain all the things that go on in my brain, so I will keep copies of some things here. Hopefully this window into my synapses provides some enlightenment for someone else as well.

– Sean