Mino HD Review
I got my Flip Mino HD at the end of March and have been playing with it for a little over a month. I recently took it on holiday and found it a perfect extension to my SLR when I did not have the video camera around; I found it a real moment device, as its fast to get out and use.
Anyway, onto the device which can record an hour’s worth of 720p high definition video at 30 frames per second on its 4GBs of internal storage. It is small weighing in at only 3.3 ounces and no are cables required.
Size
It’s extremely lightweight for its size, and feels fragile, although I’ve not dropped it yet other reviews say it can stand a drop.
The USB connection flips open via a switch on the side and you can plug it directly into a PC or Mac, but I use the cable provided through fear that I will snap it off.
The Flip Mino HD’s form-factor is only slightly thicker than my iPhone and just over half as wide (Measuring only 1.5 inches corner to corner). The lens on the front is small, but shoots well if held still. I tried it out in recording a dodgy guy eyeing up the house next door and did not get beaten up, so its small enough not to get noticed.
The viewing screen is admittedly a bit small and the speakers sit on either side of the screen are not great, but thats not really an issue, although headphone jack for monitoring the audio would be nice
There’s also a plug for the included TV composite cable adapter and a standard thread for attaching to a tripod.
Controls
The controls are really simple and you can just pick it up and go without even thinking about reading the manual,
Video Quality
The Flip Mino HD records in 720p 16:9 aspect ratio video, so it is capable of recording very highly detailed video. But only is you keep it very, very still and there is enough light, as even the slightest movements when filming can appear very jarring. However, don’t be put off as the quality outside is still really good, but a tripod inside is needed to avoid a grainy and slightly red look.
Battery Life
The battery has not let me down yet it can easily last through an hour of recording at HD quality and play back for about 45 mins to the TV.
Bundled Software
The Flip Mino HD mounts as a flash storage device on both PCs and Macs, so getting the video files off is simple. There is some standard software that launches when you plug it in, but I have a mac and it integrates well with iMovie.
Conclusion
Everyone who has seen the camera is impressed, there are some alternatives on the market and more are coming out. But at the moment the size, and charge and go nature of the Mino HD make it a winner. I brought mine at firebox, but its now cheaper at play.com
Cookie Sniffing and Trading
What does that mean?
There are networks of companies who create cookies on your machine and use these to track your behaviour across multiple websites.
And in English?
You will see ad based content on one site based on your activity on another and you won’t even know it happened.
Who invented it?
Netscape invented cookies to allow state to be maintained between HTTP transactions. However Microsoft filed for a patent in 2000 which was granted in 2006. So it’s been around for many years. It’s typically used to authenticate or identify a registered user of a website without requiring them to sign in again, provide a personalised view of the site or track pages visited and use this data for marketing purposes ( that is refereed to as cookie sniffing)
What does it mean for my business (what are the marketing implications)?
It’s very likely you’re already using the technology, but are likely not part of a network of companies who share the gathered information. But, be careful as storing cookies on a users machine opens privacy issues. So speak with you IT team/tracking vendor to get more information before going for world domination through a proliferation of cookies.
What do I need to do about it?
I you want to opt out of tracking cookies from some of the larger players follow the little advertised link (surprise, surprise) http://www.networkadvertising.org/managing/opt_out.asp
How or where do I find out more?
Speak to an expert or get talking to the players on the list found in the above link.
Is it a paradigm shift or just another TLA?
Its nothing new cookies where invented partly for marketing purposes. But, lets face it cookie sniffing and trading sounds better.
Strategic Design- The good, the bad and the ugly
Not all of a large system will be well designed and this can pull your attention in multiple directions. The goal is to have the most important part s of the system well designed - strategic design.
Take two loosely coupled systems that have grown independently, but are starting to move toward interaction. The decision was to move towards a new system, by
A series of steps - But, it’s never going to work like that. Why? as the old business logic is taken there will be more and more parts of the old system that take inadvertent amounts of time. This will lead to just porting sections of code, without re-design and this cannot be well tested. Which, means your new system ends up partitioned into old and new sections - coupled with changes to the original system can mean the project will just end. What are the alternatives:
Refactoring - keep the system running and change parts by increments. You have the danger here that the best people work on the new items and the others work on system updates, but do everything they can to work on the potentially good stuff.
Note - the real mess is made by the 2nd worst dev on the team , as everyone is watching the worst like a hawk.
Lets Hack - this will just end up in an almighty mess
But, whichever of these 3 approaches is taken you are prone to end up with the Lets Hack endpoint. So is there a potential solution? How about Domain Design and the core principle ‘Distilling the core domain’.
Break it down into 4 categories (which are not trivial to figure out)
- Generic subdomains - often possible to get these off-the-shelf or outsource it
- Supporting subdomains - possible outsource
- Core domain - direct trace-back to the fundamental goals, also often the smallest part of the system, but, is what makes the system worth writing. This is where you should put your key efforts, as it is the key to success
Often the core domain is often left to last, as all the infrastructure and rework is done first and sometimes this is never completed. Therefore, the fundamental goals are never achieved.
There are always multiple domains so they are inherently always wrong The blind men and the elephant by John Goderey Saxe example of how multiple domain models can come about. Your aim is to find a model that is takes into account the core domain and is consistent within the context of its boundary. Within this boundary you should be able to achieve a ubiquitous language that is usable by all team members. You should also have no duplication within the boundary which defines a unified context.
So to skip to the core domain rather than build all the supporting layers first you could form an Anti-corruption layer - isolate from the other parts forming a platform on which you can start to build the core domain. The anti-corruption layer will not be pretty, but it gets you to a point where you can move forward with the fundamental goals far sooner than the alternative route, that often never gets to the core domain, let alone completing the legacy migration.
you should aim for:
- Stability
- Reasonable Operating cost
- Suitability to task
- Adaptability
Remember to:
- Clarify context map (map what is there)
- deliver early and produce enthusiastic business sponsors - to gain influence
- focus on core domain
- create a platform
and as a responsible designer you should:
- clean up other peoples mess
- Build a platform to make other (lesser) programmers to be more productive
- allow the lesser developers to work on the sexy new functionality, while the stars work in the core domain
- make the lesser programmers look even better - remember they are often working in the core domain while the great programmers are working on sexy stuff that does not directly influence the fundamental business goals.
Phases in a developers life
Phases in a developers life
- Enthusiastic - build programs for real people - but its boring and uncool
- The disillusioned developer - you figure real people have boring problems
- Build generic solutions there cool, become an enthusiastic architect - build the generic thing machine
- But that takes loads of time and everyone else is still waiting to see the end product. The customer does not care about you generic thing machine.
- Opps the generic thing machine turns out not to be as generic as you first thought. But you really want to force everything into it
- you become the disillusioned architect, but keep on gaining experience
- then you become the “wise” architect Question *, Answer, it depends
A story about a technical architect - Pimp my architecture
A great architect will:
- be a coach
- be an expert - have instinct
- be an influencer
- have the ability to understand what’s in place and tell stories about it
- have empathy to understand what is true for others not just self
- have humility and humor
- have technological and social curiosity
Prologue
An architect often turns up to find a bit of a mess. A classic is SOA gone bad, with clients coupled to WSDL, WSDL coupled to methods and multiple duplication of methods across the services. This could all be deployed upon a flaky architecture; a particular version of a software stack, with known issues rectified in later versions, with a crazy bit of EJB. To add to the problem you may find yourself with smart developers in silos.
The Story
Start by doing nothing, listen, listen and listen some more. But, take into account that all you hear may no be true.Now it’s time to set a strategy for the future (give yourself air cover), once you have a strategy:
- make sure you are moving on and not just re-hashing the old, but you may need an interim architecture to get you to utopia.
- make sure the team are with you and change the culture as appropriate - rotate roles - encourage coaching - future ambassador/architects
- keep to the strategy and use the right technology stack
- introduce bounded contexts and shape to the codebase/services
- make it easy to share knowledge - make sure the stand-ups are effective, not just news.
- if it’s not working be honest so you can get it right
Note: pairing is just helping, easier to sell in.
Epilogue (1)- Technical aims
- “Good” SOA
- Clear context of boundaries
- Happy team - moving in the same direction
- systemic and sustainable organizational aims
Epilogue (2)- Learnings
- There’s always a reason -positive intent (whatever someones doing they are trying to help)
- Have and be a shaman -people who can explain why
- Strip away everything you can - until it breaks, your simplifying the system
- use transitional architectures (think of it as scaffolding whilst you complete the building)
When is open source and standardization right?
Standardization is essential for certain parts of the stack, those items that change least frequently i.e lower in the stack. Higher in the stack needs to change frequently and here standardization kills innovation. We need to remember it take a lot of time to get to a standard and also Open Source will always be easier to engage with as a develop than a standard.
Open standards can also help open source, as many companies are not interested in using an open source project unless it has a sponsor or is part of a well know organization i.e Apache. However, it really needs to start open source and move to open standards, just trying to become a standard often leads to the wrong group of people getting involved in the standards process; it all gets a bit political and horse trading occurs over functionality. But moving toward a standard can also be impossible for small companies and individuals to get involved in a standard, whereas it is easy for Oracle and others (who have staff with this as there sole responsibility). Also standards can feel like they are dictating how we should be working and this can grate a little when we are already working well ; Is the JPA better than hibernate - No.
Standards should consolidate the gains made in an area of technology - in effect locking in the gains made and stabilizing prior to further innovation. The value in standardization in that it can facilitate multiple versions of the technology that can inter operate; innovation.
Ruby has now figured that without some form of standards and specification it is not possible to have multiple implementations that can interact and is now looking at moving in the standards direction. Without a standard interoperability between systems becomes very difficult.
For smaller projects i think it’s more about blessing by association with the standard(s). This allowing the potential user to have some confidence in the implementation they are about to try out.
The evolving Guardian.co.uk architecture
What were the challenges faced and how they were overcome.
Digital History
- 1995 - web site launched with a simple portal - experimental project
- 2006 - Europe largest online newspaper site
- 2007 - aim to be the worlds leading liberal voice
But by 2007 had outgrown there existing vingnette architecture. So entered a 18month re-design.
- agile build
- 4 development team
- 2> million pages to migrate
- lots of new functionality.
- build on a java stack (Spring, Hibernate, EHCache and Velocity)
- Endeca as a search engine
Issues to deal with
- Develop in parallel with existing site
- Zero downtime - migrating section by section - used an Apache mod to allow selection of back-end to serve from
- Architecture as the system develops - start simple with travel 14k articles - will fit in RAM so can worry less about DB, can turn DB off by stopping cache timeout, this allowing upgrades.
- Co-located hosting across Manchester and London
Travel had been completed, load testing was performed and they selected other sites that were similar to travel, this allowing re-use of code and mitigating risk. To further mitigate potential DB issues built in graceful degrade back to flat files.
More performance testing was carried out before moving onto the more complex sites with 200k articles. After due to underestimating because of database problems the decision was made to move to a simple REST system for integration with 3rd parties; this providing them with a level of control and leaving the guardian just having to know the model for the data, rather than hold the data.
Finally the news site was migrated, this has 1 million + content pages. This would lead to issues with related content and tags, as the database would not be able to handle the load. Solved by using the search engine and database to determine which tags were the most used (this points to the most content). The search engine looked at the database to find the tags - the database hold each tag and how many items it is referenced by - and returns the content ids back, this reducing the load on the database. This was still not enough, but an Oracle consultant optomised the queries and performance increased (classic).
What does the future hold?
- EHCache –> JBoss cache and memcached
- Akami reverse proxy
- Open Platform - access to all the guardian content XML, JSON, ATOM
- Open Database
Transforming Software Architecture with Web as Platform
Focus on the power of people and today’s network opportunity. Your customers, competitors and all the ideas and innovation is on the network. There is very few things the browser cannot do, but its still not a great place to develop software. however, its much bigger that any operating system.
Now we are seeing that no small system can withstand sustained contact with a larger system without being changed. This has been amplified through the move to SOA, but these principles do have complexity problems - there are many frameworks to follow. The complexity has been addressed in part by REST which is at the heart of the new acronym WOA (Web Orientated Architecture), but there is still a way to go. In effect software architecture needs to be updated to mirror where we are now; everything is connected in the age of network singularity. And its not the enterprise that houses the biggest systems:
‘ my website is bigger than your enterprise’ the biggest applications are no longer in the enterprise i.e Google, MySpace, Facebook, Amazon …
These are highly distributed and federated systems which often have a social architecture driving there popularity - high network effect. They move quickly utilizing cutting edge platforms, productivity oriented development tools - Ruby - and are experts in there ability to scale globally. An example you may not know clickatell sms and messaging gateway up and running for you in 3-4 minutes.
So what are the design elements of Next generation web 2.0 applications:
- 3rd party sourcing (Cloud)
- Application
- Distribution (Programmable web)
- Social (Network Effect) - the market leaders have this, it’s the key part
What are the production elements around web application development 2.0
- Peer production and crowdsourcing (open source model!)- Moving to peer production provides unprecedented variety
- open supply chains (programmable web) - build on the shoulders of giants
- Social Systems
- Assembly and Integration
- Perpetual Beta - best products are never finished, by design
- Users are your testers - American Express use there own customers to test.
- Users are your support network
Also Innovations primarily coming from the on-line world:
- cloud computing (cost and agility benefits are unparalleled, amazon 10-15 X cheaper), only one is open source Eucalyptus
- non-relational databases
- productivity-orientated development tools RIA Flex/AIR/Silverlight and stacks like Ruby, CakePHP, Grails and IPhone.
Situation normal, everything must change - How IT is changing with the advent of cloud computing
How IT is changing with the advent of cloud computing.
Why IT is changing
Not all IT is the same, not all IT has value as some had commoditised. This occurred through the warfare of technological advantage and copycatting. Anything new is a chance of competitive advantage anything common is a service. Follows the same path as many other industries i.e electricity innovation -> national grid. If this happens to IT, does it still have strategic value? Yes as not all IT is commoditised it is always moving along the innovation -> commodity curve, when they get there the are ready to turn into a service.
How this impacts IT
- Disruption - through the growth of the SaaS industry
- Innovation - commoditisation actually promotes more innovation through the stability of the infrastructure i.e componentisation
- Relationships - the differing service model *aaS changes the way an enterprise interacts with it suppliers. More items can be outsourced, its not common to have a single supplier model.
- No Choice - when you view you product as an innovation but the market views it as a commodity - the red queen hypothesis (risk of doing nothing)
Benefits and risk of the cloud
If we view it as a term to show the disruptive force in moving from and innovation to a service based world (commodity).
see many of my other posts for the benefits. some of the main risks:
- transitional risks
- trusts
- transparency
- failed services on which you have built disappear i.e the company goes out of business or the platform fails
- inability to switch between providers.
Managing the risks
Assuming the platform you are based on disappears. You need to ensure your providers support the same standards ,this is not the case at this time. It is almost like the commodities (services offered) are in effect the innovation and we find ourselves basing our decisions on trust. This will no doubt change with time as the providers increase and the customers demand more from them in an increasing competitive market place.
Why open matters
encourages commoditisation by removing the barriers. Competitive markets depend eventually on open standards, but it is worth noting that vendors push the boundaries and extend these.
What we need
- Ability to run the service on your own machines - build your own cloud
- Ability to switch between own machines and a provider
- Ability to easily switch between providers
Cloud Data Persistence
is this a renaissance for the database?
today we have new problems and new challenges, but the computing power we now have provides alternatives. This in turn is changing the approaches that are being taken. the following provides examples of the alternatives in the cloud database area.
Physical limitations and computation complexity are driving implementations into new area that we are not use to. Similar to when multi-cores first came out, many thought lots of software would take account of the multi-cores, but this did not happen that quickly, it’s still happening now.
A regular solution to a social network with large database use is to Shard (divide into chunks across multiple servers). But remember this has changes for the developer, who now needs to look-up over multiple shards - you cannot use an SQL JOIN across a shard and you cannot guarantee uniqueness and integrity. We are also seeing developers resorting to unnatural acts to deal with the issues of large data sets i.e turning MYSQL into a keyless store (Friendfeed). good solution for them, but now the DB is no longer a DB.
The Cloud can be views:
- Hiding complexity
- Scalable - elastic resource availability
- Pay as you go
- no need to worry about tuning
- geographical diversity
And can be broken into loose types = the *aaS Model
- Saas - software as a service
- PaaS - platfrom as a service
- TaaS - tools as a service
- IaaS - infrastructure as a service
- ?aaS
All sounds great, so what’s the catch? Safety, geo-graphical availability and commodity hardware. Also believe it or not the speed of light, which in data terms is still slow when transferring over geographical locations.
Two alternatives to the relational model that can cope with massive datasets in the cloud
data tables are sharded into tablets and served via a single server, each tablet server can have 1000 tablets. these table servers have a master and this can be removed and the system will still work for a limited period.
- Distributed store
- hundreds of terabytes
- effectively a big sorted map
- row keys grouped into column families
- data is versioned
- fast, scalable and transnational
- meta data also stored in the same way in the tablets via a route metadata tablet.
You cannot use BigTable yourself but there are some open source alternatives Hypertable Apche HBase. Also Big Table via Google App Engine, you need to use Python and there is something in-between (although the speaker had not worked out what it is). But you are getting the benefits of Big Table in a round about way.
projects Voldermort and Cassandra use this idea.
- Distributed key value store
- Designed for high availability - tolerate network partitions and server failures without effect
- decentralized - no master
- data replicated via consistant hashing
- multi-node reads and writes for redundancy
- objects versioned for consistency
- uses a Vector clock to disambiguate between server version of the same object
And for the lighter touch the smaller alternatives
- tabular store
- domains which are like tables and contain items
- schemaless
- auto-indexing
- eventually consistent
- no cross domain joins
- query limit to 250 items
- everything is a string
MSFT’s Azure SQL Services - in test
- non-relational - really an XML document store
- Containers which have entities
- Queries through LINQ
- REST and SOAP interfaces
Apache CouchDB - looks pretty good for JavaScript apps.
- Document store in Json
- REST API get,put, post
Other things to watch:
- MongoDB - the speakers own project in this area
- memcachedb - distributed key/value store
- Drizzle - a fork of MYSQL for the cloud.
- Hadoop - distributted file system
- Scalaris - google








