Friday, July 29, 2011

PGP

PGP Tools

For Windows: 
TrueCrypt (free)
FreeOTFE (free) 
ScramDisk (for 9.x/ME) (free) 

For Linux: 

"Protect Tools"

Wednesday, July 27, 2011

Firebug in Safari


defaults write com.apple.Safari WebKitDeveloperExtras -bool true
If you prefer, you can use the Property List Editor to set the WebKitDeveloperExtras property in the Safari property file, which is located here: ~/Library/Preferences/com.apple.Safai.plist (use Finder to locate the file and double click to open). You’ll need to restart Safari after making the changes to enable Web Inspector.

ME BIGAVR2

AVR-SAVVY128

Thursday, June 2, 2011

Protocol Buffers

http://code.google.com/p/protobuf

Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. 
Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats.


Why Use Protocol Buffers?

The example we're going to use is a very simple "address book" application that can read and write people's contact details to and from a file. Each person in the address book has a name, an ID, an email address, and a contact phone number.
How do you serialize and retrieve structured data like this? There are a few ways to solve this problem:
  • Use Python pickling. This is the default approach since it's built into the language, but it doesn't deal well with schema evolution, and also doesn't work very well if you need to share data with application written in C++ or Java.
  • You can invent an ad-hoc way to encode the data items into a single string – such as encoding 4 ints as "12:3:-23:67". This is a simple and flexible approach, although it does require writing one-off encoding and parsing code, and the parsing imposes a small run-time cost. This works best for encoding very simple data.
  • Serialize the data to XML. This approach can be very attractive since XML is (sort of) human readable and there are binding libraries for lots of languages. This can be a good choice if you want to share data with other applications/projects. However, XML is notoriously space intensive, and encoding/decoding it can impose a huge performance penalty on applications. Also, navigating an XML DOM tree is considerably more complicated than navigating simple fields in a class normally would be.
Protocol buffers are the flexible, efficient, automated solution to solve exactly this problem. With protocol buffers, you write a .proto description of the data structure you wish to store. From that, the protocol buffer compiler creates a class that implements automatic encoding and parsing of the protocol buffer data with an efficient binary format. The generated class provides getters and setters for the fields that make up a protocol buffer and takes care of the details of reading and writing the protocol buffer as a unit. Importantly, the protocol buffer format supports the idea of extending the format over time in such a way that the code can still read data encoded with the old format.

Sunday, May 29, 2011

Seminar: Genome Rearrangements: from Biological Problems to Combinatorial Algorithms (and back)

http://logic.pdmi.ras.ru/GeneralSeminar/#NextSeminar

Abstract:
Recent DNA sequencing projects revealed that some classical biological theories may be incomplete or even incorrect.
I describe three controversial and hotly debated topics: Whole Genome Duplications, Random Breakage Model of Chromosome Evolution, and Mammalian Phylogenomics, and three related challenging algorithmic problems: Genome Halving Problem, Breakpoint Re-Use Problem, and Ancestral Genome Reconstruction Problem.
I further describe the "Multi-Break Rearrangements" combinatorial framework to analyzing these biological problem that, led to efficient algorithmic solutions and provided new evolutionary insights. We use these algorithmic results to reveal the fragile regions in the human genome where chromosomal rearrangements are happening over and over again. We further illustrate how this recent discovery allows one to predict how the human genome may evolve in the future.

Friday, May 27, 2011

Refactoring switch

More flexible and testable switch, based on Dictionary subclassing.

Powered by Blogger.