Chromebox
Google's new Chrome OS device - Chromebox. I'm puzzled by lack of any description of any(!) use cases for this device for a user. Watch YouTube on TV? Hang out on Facebook? Why would I want to buy this computer?
Good news, however, is that you can use rollApp to run desktop applications on Chromebox.
Firefox 8: secure page vs. non-secure web socket server
Mixed content is not allowed with WebSockets; that is, you can no longer open a connection to a non-secure WebSocket server from secure content.
Other browsers still allow this.
Mercurial Tags and Jenkins
If you like us use Mercurial for your source control and use Jenkins for continous integration and deployment, there is something you should know. We use Mercurial tags to designate revisions suitable for some practical purposes. For example, we use tag 'qa' to mark a version of the system, which we think is worth deploying into our testing environment and running exetended set of tests. We also have a bunch of jobs on Jenkins, which are supposed to get latest 'qa' revision, build and deploy the system to testing environment.
Theoretical setup looks like following:
And one would think that since Mercurial's -r parameters work equally well with branches and tags, he is all set. And we apparently thought so.
Unfortunately, Mercurial's approach to tags and Jenkins' approach to checking for changes in repositories do not let the magic happen:
- Tags in Mercurial are merely records in a version controlled file .hg/hgtags. So in order to see moved tag you have to have this file in local repository.
- Jenkins uses a variation of hg incoming -r 'tag' to check for changes in repository. However, since in local .hg/hgtags tag points to the "old" revision, it thinks nothing has changed for that tag-branch.
Jenkins developers already know about this issue: Support tags instead of branches
Simple (although not excatly most efficient) trick that works is wiping the workspace before build. There is a plugin, which can make this a part of a build job: Workspace Cleanup Plugin. Do not forget to mark this checkbox in job configuration:
This solutions has an obvious drawback of discarding any artifacts from previous build, which might save time during the next build and cloning the entire repository from the source control each time instead of just a bunch of changes.
For us I figured we are not running these 'qa' builds too often and the codebase is not too big yet, so we've settled with this workaround for the time being.
WebSockets one step closer to becoming a standard →
Web Socket specification published as RFC:
This is now a Proposed Standard Protocol.
The RFC 6455 is available here.
Pigeonholes in architecture →
Why Android Will Always Be Laggier Than iOS
Every time you touch your finger to your iPhone’s display, the OS literally goes crazy: “Someone’s touching us! Someone’s touching us! Stop everything else you’re doing, someone’s touching us!”
That's the trick →
Stop writing good code ; start writing good software
Good code is not elaborate code. Good code is what makes a good product.
Success in software development is determined by users willing to use you product, not from fellow developers, who praise your code, alas.
Sharing, sharing, sharing
Why Instagram Is So Popular: Quality, Audience, & Constraints
Those little switches. Using the APIs from Facebook, Twitter, Foursquare, and other services, Instagram lets you share from one single screen. Brilliant. I had never seen photo-sharing across services stripped down so simply before.
The keywords are: sharing and simple.
Part Time Agile
Recently I presented at IT Brunch online conference with a talk about experience of my team doing part time agile development. Here are some highlights:
- On a personal productivity level do not mix narrow focus tasks like fixing a bug in code with wide focus activities like contemplating about future of technology in your niche.
- If your team is distributed in time, but not in space, which is not unusual for a team of parttimers or freelancers, give yoursleves a time to get together and just talk (you can eat your lunches at that time too).
- It’s hard enough to do even one big thing, let alone two. Don’t try to focus your effort on several major features.
- General management practices still work: if you are a manager, have one-on-ones with your team members.
- Do not neglect up front design and specification development. There are situations, when it’s easier to try to foresee a problem, than try to resolve it.
There was a questions on where to get more information about one-on-one meetings. I suggest you start with One-on-Ones: The Single Most Effective Management Tool and check out other podcasts on this topic from Manager Tools.
Route 53 in AWS Management Console (and their hidden reminder)
Yesterday Amazon announced immediate availability of Route 53 (their DNS service) tools in AWS Management Console, which is great news for all the AWS users. But it also bad news to services like Interstate53, which I was using to manage DNS records hosted on Amazon, because it immediately renders them irrelevant. It is good time to remind ourselves how addon development is not exactly the best spot for software vendors and how in some cases you can still compete against the platform vendor by having significant value add.
Busy? Again?
You can not make washing machine do your laundry for you by saying you are busy.
Merlin Mann, Back to Work #33