Friday, May 13, 2011
The End
Sunday, May 8, 2011
update
So, since I last did anything for Farmville, there is a ridiculous 5 minute buffer rather than a smart sleep, and we now update every 5 minutes, dictionaries are being abused like crazy, and random errors are creeping up all over the place. On the other hand, the GUI LOOKS nice...
Oy, the more I look, the more errors there are.
Ugh, this will be a long week. Today I just reviewed all the recent changes, and looked up a bunch of legal stuff that we will likely be adding to an addendum slide. I still have yet to complete my self evaluation, but I think I get some slack for recent personal events.
Friday, May 6, 2011
Friday presentations
The demo was nice -- is it a push notification system, or do you have to be logged in?
Nice market potentials!
Monday, May 2, 2011
Presentations Monday
-asking for $500k
- clients will be ergonomics departments across the world, costing $100 per user
- competition is gnome voice control, and built in control apps with Windows 7 and Apple.
- they want their product certified by US Ergonomics, and they want to work with insurance companies to reduce cost for companies using their product
- potential futures: lip reading, keyboard
- nice demo using bluetooth speaker!
How big is the workers compensation business, esp. related to hand repetitive motion injuries? Quote indicates damage to other places than hands?
Do you plan on copyrighting your software, and do you have to buy licenses for any part of it?
What about dragon speakeasy?
Second presenters: Class Match
presenter is nervous, and no one up front looks remotely happy or excited.
- trying to raise $440,000
- customers will be the university, or people like SunGard
- competition includes WebCT, Google Groups, and Facebook
- barriers include acceptance by both university and students
what's the difference between a MySQL expert and a database expert?
Isn't it an oxymoron to say "accepted by the students AND the university"?
May deliverables
- Project and Docs (Delivered as a team)
- Working demonstration of project.
- User documentation.
- Developer documentation.
- Requirements/User Stories/Use Cases/Tasks, finished and remaing (future features too).
- A polished 10min presentation for NM Angels (given on May 13).
- Evaluation (see below)
- Self Evaluation (Delivered by individuals via email to professor)
- Design (Principles & Process, Concept to Completion)
- Testing (Unit and System)
- Writing (consider your proposal, first self eval, and contributions to project docs)
- Speaking (consider project pitch, participation in meetings, presentation)
- Professional Development (Self directed? Iteration? Responsible? Resourceful? Dynamic?)
- Skill (Programing, Tools and APIs, Abstract/Reusable code)
- Contributions and Achievements (obviously!!)
- Group Evaluation (Include an evaluation of the group in your Self Eval, AND prepare a Group Eval as a team)
- Attendance (of individuals, and ability to coordinate as a team)
- Division of Labor (roles, contributions, quality, timelyness)
- Meeting performance (preperation, quality, topicality, timely, etc..)
- Professionalisim (of individuals and team)
- Communication (within the team, with the "hats", with the world)
- Design, Development, Testing, and Tracking of project.
- Based on the deliverables above, what grade do you deserve?
compact, robust
It's been nice having a language that lets us map, filter, and reduce, and also has nice partial function application, keyword unpacking, and list unpacking capabilities.
Wednesday, April 27, 2011
huge farms and parser problems
Sunday, April 24, 2011
legal stuff
updated notes, windows executable
I also loaded and merged all my notes with the rest from yesterday's meeting, and sent Joe a version of our browser loader so he can see if he can get flash working with Qt.
Thursday, April 21, 2011
emitting signals
I also have been working on parsing more generically.
Tuesday, April 19, 2011
Using cookies like a browser; browsing for team profiles
Sunday, April 17, 2011
web scraping and farm fixes
Not too much progress...
I believe I fixed the problem with planting and harvesting that recently "cropped" up.
Saturday, April 16, 2011
threading and not being kicked out
Friday, April 15, 2011
PtQt4 in action!
Thursday, April 14, 2011
little progress
Wednesday, April 13, 2011
need sleep!
Tuesday, April 12, 2011
Keep awake!
I also used a shelver for storing persistent user data in the app.
Monday, April 11, 2011
Assignment: Test First
Saturday, April 9, 2011
work on Saturday -- security verification
Thursday, April 7, 2011
working with flash and python
The problem is it won't work with games. I will look here tomorrow to see if they have a way of doing it.
**UPDATE**
I checked out those links and all were broken. *SIGH*
Technology Business Plan Competition
My business contact let me know that he was able to go to the Self-Employment Fair the Tuesday before last, when my car had broken down. He was able to talk with the President of the New Mexico Angels, John Chavez, for about half an hour one-on-one. Tomorrow he will be at the TBP Competition, so hopefully I can meet him then.
Monday, March 28, 2011
Requirements for our code
Any module should ideally fit in a single page.
If you're copying and pasting code, it's wrong.
How well do we understand system boundaries?
Aesthetics.
Reusable components in our code.
Thursday, March 24, 2011
literate programming and the rational unified process
I definitely see how important an easy tool for bookkeeping would be!
And the IBM 6 best practices for a software development team are:
1) Develop software iteratively -- agile methods I think work just as well here
2) Manage requirements -- they emphasize use cases and scenarios, as in agile!
3) Use component-based architectures -- I think Python is a great example of this in practice; developers of Python have made dozens upon dozens of robust and useful components for the language
4) Visually model software -- this is where UML comes into play. I think we need to use this more.
5) Verify software quality -- Here I think agile is better - test first!
6) Control changes to software -- this is what good version control software is all about, right?
Here's a visual of how they envision the "process":

I think our team could do better with a vision document and a bigger overall picture of what we want to create.
The rest of the doc goes into details about this process.
Wednesday, March 23, 2011
class monday
Tuesday, March 22, 2011
long, empty week
Thursday, March 10, 2011
Asana collaboration tool
Wednesday, March 9, 2011
high-level stuff we need figured out
Tuesday, March 8, 2011
Evaluation of Ekaterina Davydenko's proposal
Monday, March 7, 2011
Self-Evaluation
startup success rates
Sunday, March 6, 2011
online service horrors... and potential
Friday, March 4, 2011
notes from class
Thursday, March 3, 2011
Long day
Monday, February 28, 2011
Agenda for Second Meeting
Friday, February 25, 2011
Roberts Rules of Order
Wednesday, February 23, 2011
Agenda for first meeting
Tasks:
- Nominate a product owner
- Make a wiki with product backlog / tasks to do
- Have a script that can log onto facebook and access the Farmville app
- Establish a database and write a script that goes online, verifies the identity of the server, and then sends and receives verification of its certificate in the server database.
- Give "point" values to upcoming tasks on list based on time required
Sprint workshop:
- decide how many points to aim for on this iteration
- discuss in detail (user stories) all items to be accomplished this iteration
- estimate time to be taken by each sub-task and figure out how much time each team member will devote to getting this sprint done. Include "stretch" tasks for being done early.
- establish where we'll work and have a TODO list, "test cases in progress" list, "code in progress" list, "ready to be verified" list, and a "done" list
- establish a time for every day to briefly all check in together and report on progress since yesterday. Have scrum leader update "burndown" chart to indicate hours needed left to complete sprint.
Remember:
- team members should try to work on the same code together, and when your tasks are finished early, work on someone else's or a sprint task.
- review every sprint at the end, the burndown chart, the team velocity, discussing what went well, what could be done better, and what will be done differently next time. Continue process through every iteration.
First meeting with team
Monday, February 21, 2011
Pharmville specs
- This is based on the Volere Requirements Specification Template.
- Allow customers to gain experience, prestige, and credits inside Zynga games in an automated manner. This goal is actually a set of goals to be attained, and can later be transformed into a set of goals to make the service faster or more reliable over a set period of time.
- Starting small, we expect revenue to be in the 10s of dollars by the end of the semester. Further goals will not be stated here.
- Have the product and company comply with all state and federal laws, avoiding torts and copyright infringements.
- The product shall employ online verification mechanisms to avoid being hacked and distributed without permission.
- Production team shall learn how to employ agile techniques in the product development cycle, how to advertise on Facebook, how to program in Python, and how to use some of the Facebook APIs for python.
- Follow the direction of the teacher
- Be legal
- Use python, php, SQL, and developer APIs
- We expect school, as well as team members' houses. Maybe even the institute.
- Other classes
- 10 weeks
- No money
- Not started yet
- Not currently important
- TBD
- Users are to play with the product, but not reverse engineer or otherwise misuse it
- TBD
- Should be broken down into atomic parts, and kept track of by the product owner
- The product shall maintain a history of what it's done for the user
- The product shall check in with a server every 15 minutes for verification
- The product shall allow user to set different behavior modes
- There shall be a user database, that includes payment receipts and history
- The product shall be user tested by a wide demographic
- We'll cross that bridge when we come to it
- The product shall be easy to use
- The product shall be tested for sensitivity to audience's sense of appropriateness
Sunday, February 20, 2011
Imperfect Voting
Facemashing the Proposals
Friday, February 18, 2011
Thursday, February 17, 2011
Rank / score / name
(verbose notes in previous post)
00 / mine / JH
01 / 95 / TDG
02 / 85 / NS
03 / 83 / AR
04 / 80 / JD
05 / 78 / AH
06 / 76 / AK
07 / 68 / JD2
08 / 67 / IG
09 / 63 / LAG
10 / 55 / ANS
11 / 45 / DWS
12 / 41 / JD1
13 / 40 / GIA
14 / 38 / SM
15 / 37 / VS
16 / 35 / E
17 / 25 / MM
18 / 23 / AS
19 / 22 / ED
20 / 20 / BFR
21 / 18 / RH
22 / 15 / WC
23 / 13 / KN
24 / 11 / ALH
25 / 10 / CJA
26 / 05 / EA
27 / 03 / DH
28 / 00 / K
Tuesday, February 15, 2011
Thoughts about proposals (desirability going up to 100)
Friday, February 11, 2011
Concept Paragraph(s)
I originally wanted to design a web service that connected local service sector businesses with consumers, allowing consumers to rate the businesses that they have interacted with. The idea was to have a space for businesses to advertise and name their price, motivated by a need to find affordable local tutors by parents and college students, but extendable to small businesses advertising their services. A major factor in the design was how to allow the site to earn money. It could take a percentage of business transactions, like eBay, but local businesses could simply meet with their clients and not post their transactions online. It could make money by requiring merchants to pay a premium to post a larger amount of data or to be listed first on search returns. This functionality could stagnate the growth of the site if not done well. It could make money through advertising clicks, which may be effective after becoming more popular.
A great aspect about such a web service is that the design can be made simple, it can fill a niche market that isn’t quite filled yet, and it can start local and expand as revenue is made, thus paying for itself early on. This service has a chance to enable the service-sector entrepreneur – and in today’s job climate, it really has a chance to take off.
I don’t want that idea owned by UNM.
Thus, my second idea is to design a sophisticated bot to play through parts of the World of Warcraft MMORPG. This bot will not be sold to users. Instead, it will be used by several private machines to harvest gold on multiple WoW accounts. Websites will be set up that allow WoW users to buy gold for the game at competitive prices. A lot of effort in the project will be spent on preventing WoW administrators from discovering the bots and banning accounts / email addresses, and some effort will be spent on figuring out what countries we can host servers / our LLC in that can avoid legal issues with Blizzard. Early phases of the project will be carried out using unofficial Blizzard servers to begin testing out Blizzard with more formidable bots. Time will also need to be spent on making the UI that controls the bot easy to configure in real time, and also in writing or finding tools to assemble and analyze the massive data flows we will be experiencing as we run our project.
The motivation behind my second idea is to simply spend idle CPUs at cents per hour performing rote tasks that game addicts are willing to spend dollars for.
Agile development
This is what I gathered from looking at Scrum and Extreme Programming and narrowing down the ideas for our class:
1) Have a “product backlog”, which is a master list (via Google docs or something) of every feature and project-related issue from the user-perspective (not expressed as technical tasks) atomized into stand-alone doable tasks (not interdependent)
2) Nominate a “product owner”, who dedicates themselves to the completion of the project, the elucidation of its requirements, and the only one able to prioritize the product backlog
3) Negotiate as a team (minus the product owner) on the “points” of the highest priority items on the backlog and let the product owner decide whether to change priorities of certain tasks
4) Decide as a team how long to “sprint” for each iteration – for a 10 week project, every 2 weeks is about right
5) Hold a sprint workshop, where the team decides how many points to aim for on the iteration (over iterations, figure out the “velocity” of the team – points completed per iteration), they discuss in detail every item on the backlog that is to be completed this iteration, forming “user stories” to describe the bare bones of all the features to implement this cycle
6) Figure out time constraints for the team for the sprint. Break down all features into sets of tasks to be performed, estimating the time each task will take to complete. Decide on what will constitute being “done” with this iteration, and try to state all tasks or sets of tasks as “deliverables”. Make sure each task takes a day or less to complete. Adjust the goals for this iteration based on time estimates, also including “stretch” tasks if the team delivers earlier than expected
7) Establish a place to work with the team, and a place where the incomplete goals for the sprint (user stories) can be written down, along with (in columns) a TODO task list, an “test cases in progress” list, a "code in progress" list, a “ready to be verified” list, and a “done” list.
8) Hold a 10 minute daily meeting at the same time, where each member briefly reports on what they have achieved since the last meeting, what they will achieve before the next meeting, and anything that may be holding up their progress. Also update an iteration “burndown” chart, which indicates the hours of work, as a team, needed to complete the sprint, compared to original estimates per diem.
9) Get members of the team to work on the same code together, whenever feasible, and when a team member finishes their tasks early, have them work on the tasks of another member. Everyone should be familiar with everyone’s code, ideally.
10) Review every sprint at the end, the burndown chart, the team velocity, discussing what went well, what could be done better, and what will be done differently next time. Continue process through every iteration.
Wednesday, February 9, 2011
Functional vs Nonfunctional project components
Preliminary review of Amr Saad's project proposal
The design of the program seems to require universities to sign on-board, as well as a considerable amount of back-end work: databases in different locales, security protocols, and website design on top of any mobile applications.
The creation of a small games software suite is a great idea -- however, such suites do already exist and it is hard to see why combining it with a mobile chatting app would be of any benefit. It might be more feasible to integrate gaming apps directly into an already existent social application, such as facebook or twitter.
Thus the project seems to have too broad a scope and doesn't seem to have any way to make up the costs of the extra work required in building such a multi-featured app.
Jim Collins, in his book "Good to Great", explains the difference between what he calls the "hedgehog" approach versus the "fox" approach. A fox is wily, and knows many things, whereas a hedgehog knows one big thing. It turns out that companies tend to be successful most often when they focus on the one big thing they can do, that outcompetes everyone else. For this to be a viable idea, the project proposal needs to pare down the expected costs, and focus on the one big thing their app can do that will hold its own. Will it be a social app or a gaming app? In 12 weeks it can't be both.