- protect the data (files/database, etc)
- back it up
- make sure data is valid (ideally some smoke tests, unit tests, regression tests on the data layer of an application)
- back it up
- source control with easy to understand policies and branching
- back it up
- automate backing it up
- fix problems with the user experiences
- small visual problems can make people … disgusted. Fonts, cross browser issues take a lot of time, but matter to people who expect things to work.??
- fix display issues – if they think data is lost, then it is??
- integrated QA team – make everyone on the team test the site, but not their own work.
- make coding fast
- establish team communication that makes product iteration rapid
- use frameworks, existing but stable libraries (open source so you can fix critical problems yourself)
- keep version control and deployment as automated as possible for the whole team
- write easy to understand code
- document code and best practices (wiki style)
- track problems (bugs and backlogs)
- write test code (on critical areas)
- more test code
- new features/ scaling/performance??- probably the most fun for an engineer, but last on the list. This has been the hardest for me. ??Engineers need to think about scaling when the system is architected…. maybe. But when you have just a 10 customers and the entire database fits in memory… why worry?
- database ??- a typical bottleneck. NoSQL and distributed architectures are making this easier
- separate web server from application layer. Concentrate core application logic into languages that are better suited for scaling and concurrency issues
- load balance, messaging queues, etc
Apple and Adobe are both claiming a moral high-ground.
Open source, open platforms, and open standards are really the only sustainable way forward.
I say this not to take sides. As developers and creatives we must make choices that protect our future. Protect does not mean “defend”. Protect here means “ensures sustainable happiness for all involved”. Our destinies are already intertwined, but intertwined should not feel like a lock-in, trap or prison. Freedom can co-exist with interdependence.
Dear XEROX (PARC),Thank you for not patenting the Graphic User Interface. Conventional wisdom has been that XEROX missed out on a huge opportunity – and maybe that’s true. However, maybe Microsoft and Apple (and Linux for that matter) would have never been such great successes. Maybe we would all have had to wait for the Newton or the IPad before the innovation could have been surpassed.
Windows 7 was not my idea.
- Easy to use (build, deploy, monitor)
- Plentiful external, stable, pre-integrated Libraries
- Use case: distributed, non-blocking web services
- Quite a bit of message and job queueing
- multiple databases , caching
- assume it will take great advantage of Java 1.7 concurrency, multi-core
- fairly trivial import of external java libs (except for non-thread safe?)
- e.g. ZooKeeper – http://hadoop.apache.org/zookeeper/docs/r3.0.0/index.html
- new language syntax, paradigm learning curve
- doubts about JVM memory efficiency and stability as resources are constrained
- redis integration for caching
- fast, lightweight, easy language.
- some custom js would be portable to browsers (coolness)
- very new
- not as many external libs?
- as many libs as Scala
- narrower use cases
patch -p 1 -i SOLR-236-trunk.patch
- Technology alone is not enough:
- Make sure you love something you consider to be not technology. Loving code and assembling lego blocks works for some of the best – but for mortals, having other interests can serve as a compass to guide the “why” you do what to do.
Courage is not only in tackling cutting edge technologies, but also in shepherding the transition to new technology for the larger world we serve. Yes, I believe that world domination is a goal of every startup. But domination means we want to serve as many people possible, and do it well. “Don’t be evil” is a mantra I reflect on in this context.
- Be open:
- Isolation is dangerous. Open source, open communities, and open style of development keep you healthy. Some “enemy” may occasionally out-calcuate you because you showed your hand. But you’ll lose a few games of poker in order to win the innovation game. Chances are if your idea is something some one _can_ steal simply by sharing the idea with them, then some one else is going independently invent it anyway. Don’t live in fear that some one might be doing something newer or better.
- Your reputation is important, but if some one can trash your idea easily it’s either because the idea is actually bad, or they are simply wrong.
Cisco can compete in many markets (the talk mentions 40) because it understands not only technology, but the context and culture which creates the demand for technology.