background preloader

The First Few Milliseconds of an HTTPS Connection

The First Few Milliseconds of an HTTPS Connection
Convinced from spending hours reading rave reviews, Bob eagerly clicked “Proceed to Checkout” for his gallon of Tuscan Whole Milk and… Whoa! What just happened? In the 220 milliseconds that flew by, a lot of interesting stuff happened to make Firefox change the address bar color and put a lock in the lower right corner. With the help of Wireshark, my favorite network tool, and a slightly modified debug build of Firefox, we can see exactly what’s going on. By agreement of RFC 2818, Firefox knew that “https” meant it should connect to port 443 at Amazon.com: Most people associate HTTPS with SSL (Secure Sockets Layer) which was created by Netscape in the mid 90’s. Client Hello TLS wraps all traffic in “records” of different types. The next two bytes are 0x0301 which indicate that this is a version 3.1 record which shows that TLS 1.0 is essentially SSL 3.1. The handshake record is broken out into several messages. Server Hello Checking out the Certificate Why should we trust this certificate? Related:  fundamentals

How Non-Member Functions Improve Encapsulation I'll start with the punchline: If you're writing a function that can be implemented as either a member or as a non-friend non-member, you should prefer to implement it as a non-member function. That decision increases class encapsulation. When you think encapsulation, you should think non-member functions. Surprised? Read on. Background When I wrote the first edition of Effective C++ in 1991, I examined the problem of determining where to declare a function that was related to a class. This algorithm served me well through the years, and when I revised Effective C++ for its second edition in 1997, I made no changes to this part of the book. In 1998, however, I gave a presentation at Actel, where Arun Kundu observed that my algorithm dictated that functions should be member functions even when they could be implemented as non-members that used only C's public interface. They are mistaken. Encapsulation Encapsulation is a means, not an end. Degrees of Encapsulation It's easily done.

DJ Helper Home Page undefined Table of contents What is this? Features Detailed description Installation / Requirements Download Tutorial - How to set up double WinAmps Tutorial - How to do instant switches Tutorial - Beatmixing for everyone Tutorial - Using the "Metronome" method Tutorial - Organizing your songs Additional hints License, Copyright & contact information The DJ Helper is a plugin for WinAmp, the "ultimate high-fidelity music player for Windows". The DJ Helper gives WinAmp more features than professional DJ-type CD players that cost $500 or more. Using the DJ Helper and a standard PC with two soundcards, you can master performances like a pro DJ, with unprecedented ease. New in version 2.5: New look, with WinAmp-like colors (at last...). New in version 2.5: Automatic volume control. New in version 2.5: Automatic BPM counting. New in version 2.5: Playing status indicator (Playing/Paused/Cued, etc). New in version 2.2: Three independent Cue Points, all of them savable. Temporary pitch bend by +/- 3%.

Numbers Everyone Should Know Google AppEngine Numbers This group of numbers is from Brett Slatkin in Building Scalable Web Apps with Google App Engine. Writes are expensive! Datastore is transactional: writes require disk accessDisk access means disk seeksRule of thumb: 10ms for a disk seekSimple math: 1s / 10ms = 100 seeks/sec maximumDepends on:* The size and shape of your data* Doing work in batches (batch puts and gets)Reads are cheap! Paging Through Comments How can comments be stored such that they can be paged through in roughly the order they were entered? Under a high write load situation this is a surprisingly hard question to answer. A sharded counter won't work in this situation either because summing the shared counters isn't transactional. Searches in BigTable return data in alphabetical order. A lot of paging algorithms use counts. In the grand old tradition of making unique keys we just keep appending stuff until it becomes unique. Ordering by date is obvious. Related Articles

Scopa (Kartenspiel) Scopa (italienisch für Besen) ist ein beliebtes italienisches Kartenspiel. Gespielt wird üblicherweise mit einem eigenen Deck, den sogenannten napoletanischen Karten (carte napoletane). Im Handel sind diese Karten auch unter der Bezeichnung Piacentine 109 zu beziehen. Meistens wird zu zweit gespielt. Jedoch existieren eine Menge Spielvarianten, die sich in Spieleranzahl, Zählweisen, Regeln und verwendeten Karten unterscheiden können. Napoletanische Karten Das Spiel besitzt 40 Karten in vier Farben. denari - Gold, dargestellt als Münzen (auch Sonnen genannt)bastoni - Stäbecoppe - Kelchespade - Schwerter In allen Farben laufen die Werte der Karten von eins bis zehn, wobei das Ass die Eins ist mit jeweils nur einem abgebildeten Gegenstand, die Karten Zwei bis Sieben zeigen dementsprechend die jeweilige Anzahl an Gegenständen. Ein Spiel setzt sich aus mehreren Runden zusammen. Es gibt je einen Punkt für eine scopa. Außerdem gibt es jeweils genau einen Punkt für den Spieler oder die Partei

html - RegEx match open tags except XHTML self-contained tags Lady Blackbird: Adventures in the Wild Blue Yonder Lady Blackbird is on the run from an arranged marriage to Count Carlowe. She hired a smuggler skyship, The Owl, to take her from her palace on the Imperial world of Ilysium to the far reaches of the Remnants, so she could be with her once secret lover: the pirate king Uriah Flint. HOWEVER, just before reaching the halfway point of Haven, The Owl was pursued and captured by the Imperial cruiser Hand of Sorrow, under charges of flying a false flag. EVEN NOW, Lady Blackbird, her bodyguard, and the crew of The Owl are detained in the brig, while the Imperial commander runs the smuggler ship’s registry over the wireless. It’s only a matter of time before they discover the outstanding warrants and learn that The Owl is owned by none other than the infamous outcast, Cyrus Vance. How will Lady Blackbird and the others escape the Hand of Sorrow? What dangers lie in their path? Will they be able to find the secret lair of the pirate king? Go.

You aren't gonna need it "You aren't gonna need it"[1][2] (acronym: YAGNI)[3] is a principle of extreme programming (XP) that states a programmer should not add functionality until deemed necessary.[4] Ron Jeffries writes, "Always implement things when you actually need them, never when you just foresee that you need them."[5] The phrase also appears altered as, "You aren't going to need it"[6][7] or sometimes phrased as, "You ain't gonna need it". YAGNI is a principle behind the XP practice of "do the simplest thing that could possibly work" (DTSTTCPW).[2][3] It is meant to be used in combination with several other practices, such as continuous refactoring, continuous automated unit testing and continuous integration. YAGNI is not universally accepted as a valid principle, even in combination with the supporting practices. Rationale[edit] See also[edit] References[edit] Jump up ^ Extreme Programming Installed, Ronald E.

Link Shell Extension Unroll follows Outer Junctions/Symlink Directories and rebuilds the content of Outer Junctions/Symlink Directories inside the hierarchy at the destination location. Unroll also applies to Outer Symlink Files, which means, that unroll causes the target of Outer Symlink Files to be copied to the destination location. In the above example Folder1 is copied to Destination/Folder1, and Outer Junction/Symlink and all the files/directories below Outer Junction/Symlink Target are copied to the folder Outer Junction/Symlink in the destination. The objective behind unrolling Outer Junctions/Symlink Directories is to get everything with which the source is connected and rebuild it as seperate copy in the destination. It resembles the 'hair of the elephant' pattern: Pull on a hair of an elephant, and get the whole elephant. Unroll is the default behaviour for Smart Copy, Smart Mirror, Delorean Copy and Clone. Advanced thoughts on Unrolling This kind of nesting can be much more complex:

Always Multiply Your Estimates by π Project estimation is a black art, nowhere more so than in game development. I once heard of a mysterious cabal of numerologists that multiplied their time estimates by π. The practice allegedly gave them sufficient buffer for new requirements, testing, iteration, and other arcane changes in scope. This struck me as curious and arbitrary, but I was intrigued. I am now delighted to report that I have been able to put their Circular Estimation Conjecture on a firm mathematical footing. Allow me to explain. Someone — a designer, your lead, the exec producer, a friend, your mom — asks you to do something. But things change. And of course it didn’t all go smoothly. So how long did your journey take compared to your original plan? Now some may question my mathematical rigour, and even dispute what I believe to be the incontrovertible conclusion. Oh, and that to-do list you made last weekend?

Convert Physical Machines To Virtual Machines With VMware vCenter Converter VMware vCenter Converter is a free application to convert physical local and remote machines into virtual machines. The conversion is supported for both physical machines and virtual machine formats. vCenter has versions for Windows and Linux based operating system which includes Windows Server 2008. The conversion of physical machines into virtual machines takes place without disruption or down time, which means that you can convert physical servers into virtual servers without suffering from network disruptions. vCenter can be used to convert multiple virtual machines simultaneously, however, you might need some good hardware to ensure the process to be seamless. The supported formats for physical machine conversion into a virtual machine include Microsoft Hyper-V, Microsoft Virtual PC and Microsoft Virtual Server. You can convert a physical machine by clicking on Convert Machine and following the steps of the conversion wizard. Download VMware vCenter Converter Advertisement

web application - when to escape user input EDIT: Luc has pointed out in the concept that I'm unduly slanted towards high-performance solutions. If, in your situation, performance isn't a concern, then it's perfectly acceptable (and preferable, in fact) to store the original data alone and transform it on output. This gives you flexibility to use the data however you need you without maintaining versions. Original answer below ------------------------------------------------------ To some degree, it depends. The two common solutions are: 1) Escape the data before storing it. 2) Store two copies of the data, one escaped, and one raw. In virtually any system the ratio of reads to writes is going to be heavily, heavily canted towards reads. The benefit of storing both formats is that the original author can modify the content as intended, you can re-process it if you like, you can review the original data...It gives you some additional flexibility at the expense of a little additional complexity.

Made by Steve Hoefer Daily Builds Are Your Friend by Joel Spolsky Saturday, January 27, 2001 In 1982, my family took delivery of the very first IBM-PC in Israel. We actually went down to the warehouse and waited while our PC was delivered from the port. Somehow, I convinced my dad to get the fully-decked out version, with two floppy disks, 128 K memory, and both a dot-matrix printer (for fast drafts) and a Brother Letter-Quality Daisy Wheel printer, which sounds exactly like a machine gun when it is operating, only louder. I think we got almost every accessory available: PC-DOS 1.0, the $75 technical reference manual with a complete source code listing of the BIOS, Macro Assembler, and the stunning IBM Monochrome display with a full 80 columns and ... lower case letters! Now, "everybody" knew that BASIC was a children's language that requires you to write spaghetti code and turns your brain into Camembert cheese. Hmm. Suddenly, I became much more productive. That's when I learned about the concept of the REP loop. Here's how to do them.

Link Shell Extension Unroll follows Outer Junctions/Symlink Directories and rebuilds the content of Outer Junctions/Symlink Directories inside the hierarchy at the destination location. Unroll also applies to Outer Symlink Files, which means, that unroll causes the target of Outer Symlink Files to be copied to the destination location. In the above example Folder1 is copied to Destination/Folder1, and Outer Junction/Symlink and all the files/directories below Outer Junction/Symlink Target are copied to the folder Outer Junction/Symlink in the destination. The objective behind unrolling Outer Junctions/Symlink Directories is to get everything with which the source is connected and rebuild it as seperate copy in the destination. Unroll is the default behaviour for Smart Copy, Smart Mirror, Delorean Copy and Clone. Advanced thoughts on Unrolling The picture above was just the simplest case, because Unroll does much more when it encounters complex situations. This kind of nesting can be much more complex:

Related: