Pages

Saturday, July 28, 2012

Ruxmon Talk

So I was given the chance to speak at the monthly Ruxmon security lectures here in Melbourne. While many people were off at Blackhat and Defcon this month, the room we were in was packed. In fact, I would say about 45-50 or so humans showed up! It was a blast, and I feel my communication went well. The talk I gave was on PDFs, PostScript, the security concerns of these data formats/languages, and the PDFResurrect. The slides I have posted here.

-Matt

Tuesday, July 10, 2012

10 Years!

That's right my faithful reader(s)? I have been in Melbourne two years now! Today is my two year anniversary!

-Matt

There comes a time in every mans life...

When one must seek other methods of relief... yep

Wednesday, July 4, 2012

Blow some stuff up for me!

So, it's the 4'th of July here. Not an independence day. Putting all nationalism aside, as both myself and Einstein look negatively upon the concept nationalism. I want all my buddies back home to do me a favor. Get the biggest dang fireworks, cross a few state borders if necessary, and light that puppy up! Happy Blow Stuff Up Day!

-Matt

Monday, July 2, 2012

Copy of my Research Work

Region based what? So the paper, "Towards Region-Based Memory Management for Go," that myself and advisers had worked on and accepted at the ACM sponsored Memory Systems Performance and Correctness (MSPC) workshop is available. Much of this was written by my advisors, heck, when you have three incredibly smart advisers working on a paper, it's hard to fight anyone. The result, I am quite proud of. Mainly, I care primarily about having fun, writing code, and learning. I think the work towards this paper achieved just that. In fact, the numbers are from my code. Of course, my advisers helped me design the system that reported on in the paper. So, I am somewhat pleased. Plus, this got me a trip to Beijing. The PDF copy of said paper is here. And the ACM Digital Library data is here. Pull out your e-reader and curl-up on the toilet, it is a pretty intense read.

-Matt

Saturday, June 30, 2012

3...2...1...1... Happy Leap Second (and a merry Linux to all)!

Jump!

Science is awesome, and so is time. With the advent of better measurement devices, such as clocks, humans are able to calculate the time it takes for one day on earth to occur with the utmost precision. This time is known as the mean solar time, and our best representation of this is represented by the Coordinated Universal Time (UTC) measurement [1]. This measurement standard defines a common frame of reference for which the world can tick off of. Effectively, every time zone is +/- so many hours with respect to UTC. As technology has progressed, so has the capability for man to more accurately measure the length of a day. In fact, a day from the perspective of a mean solar day lasts 86,400 seconds. The second is a unit of measure in the International System of Units (SI) which the world recognizes for maintaining the definitions of weights and measures. The SI value for a second is defined as being "the duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the caesium 133 atom" [2]. In other words, an atomic clock based on atoms jumping around, and a counter to count these jumps, can be used to measure the duration of a second, and can be further used to measure the length of a day.

This awesome precision in measuring time is so accurate that we now can measure very small amounts of error between our actual astronomical day (mean solar day) and the clock. How do we account for such discrepancies, despite how small, between the astronomical universe, and our very earthly clocks? ... wait for it... wait for it... in the name of Van Halen I proclaim Jump seconds... err I mean "Leap Seconds." Every so often, and it does not appear to be periodic, we can either add or subtract twice a year a leap second from our clocks. This does not occur every year, see the chart linked here [1], but it can occur twice, or at least, it has once before. Scientists determine when a leap second should occur, and then they insert these puppies to the UTC representation of time at June 30th and/or on December 31st. If the choice is to add a second, then the time on one of the chosen dates will be 23:59:60 (not 23:59:59 marking the end of a normal non-leap-second-day). If the choice is to remove a second, then the removal will be 23:59:58 ending the day. Pretty sweet huh? These announcements for leap seconds are made by the International Earth Rotation and Reference Systems Service (IERS). The most recent update can be found here.

Shootin' off a Leap Second and Linux

So, now you might just be saying: "Sweetness so these French dudes choose when to mess with our clocks." Well, shall I clarify, nicely pamper our clocks so that they become more accurate to the ever pulsating state of our universe, e.g. make more accurate. Anyways, I've been a Linux guy for years, and I do occasionally like to know how things work. How does this magic in the box (GNU/Linux) handle this second bumping? Well, it is all handled as a tightly coupled dance between the userland NTP daemon and the Linux kernel. Upon boot, the Linux kernel registers a high resolution timer (hrtimer) to trigger the insert/removal of a leap second if needed. This acts like a loaded gun. The NTP daemon, which runs in userland, is responsible for detecting either through the 'leap indicator' flag in the NTP packet from a high-stratum NTP server or from a data file that specifies leap seconds. Since leap seconds are announced 6 months in advance of the event [6], it should be no surprise. Further, the leap indicator sent in an NTP packet is a warning from a higher-stratum server to its peers saying that "Hey guys... we got a leap second on the way at the end of the current month" [5]. On the day that the leap second is to occur, the communication between userland and Linux kernel happens with the daemon telling the kernel about the nature of the leap second (either to add or remove one). The method of dispatch is the 'adjtimex' system call which the userland daemon passes information to the NTP code in the kernel. This will trigger the hrtimer to add or remove a leap second at the end of the day. So, the kernel basically will start its timer, the loaded gun that has been waiting since boot, and set it to go off at the end of the day. And when that occurs.... *bang* leap second goodness! Oh, and the next leap second is just in a few hours June 30 at 23:59:60. Careful readers will remember that such notation means we are adding a second. So sleep in my friends!

-Matt

References

Wednesday, June 20, 2012

Pics from Beijing

So I avoided using Flickr, and went straight ahead and dropped my Beijing pics into a Picasa album. Check 'em out here!

-Matt