Gina Trapani had a great post on how to make your own QR Code, so I just had to do it!
If you want to stay safe from phishing and other forms of online fraud you need at least a basic understanding of a bewildering array of technologies?URLs, paths, domains, subdomains, ports, DNS, SSL as well as fundamental concepts like browsers, web sites and web servers. Misunderstand any of those concepts and you?ll be an easy target for even the most basic phishing attempts. It almost makes me uncomfortable encouraging regular people to use the web because I know they?ll be at massive risk to online fraud.
From: D.J. Capelis
To: UCSC's Chancellor, UCSC's Academic Personnel Office, UCOP President, UCOP Ethics and Compliance Director, UCOP Compliance and Audit Head.
Subject: Disclosure of suspected improper activity
Hello all,
I have some concerns about the annual ethics training we were once again subjected to this year. As an employee with no direct budgetary authority over any grant, fund or index, I once again asked to answer a series of belittling questions on ethical conduct that a child, an unethical person, or even someone with no familiarity whatsoever of UC, campus or state and federal policies. It disturbs me that university resources are being misappropriated in this fashion.
My concerns are as follows:
1) This training is mostly in response to a publicly visible compensation issue involving decision makers comprising only a tiny fraction of the systemwide staff. Using precious university as a PR stunt neither seriously addresses the fundamental issues of misconduct nor is it ethical.
2) This training requirement applies to student employees, student researchers and is shockingly expansive in its breadth. To my knowledge, no other training requirement is so widespread and while we can all agree that ethical employees are critical, it is a waste of university resources to train employees in ethical concerns that have no application to their job. If the university truly believes that these training programs are essential to maintain the ethical behavior of university employees, then the university is obligated to provide training on research ethics to researchers, fiscal ethics to fiscal and fund managers and proper disclosure and/or filing ethics to student filing staff (or whatever is most appropriate) instead, this university has chosen to provide an ethics course that is one-size fits all. This, again, is a gross inefficiency that rises to the level of improper.
3) Even the existing one-size fits all ethics training offered by the university is remarkably flimsy and imparts no real knowledge of university policy. This training is commonly known as CYA training and continues to experience popular use as a way for organizations to state that employees receive training on topics without actually imparting real knowledge. I was shocked to discover that I needed to read or refer to not a single university, campus or external policy, regulation or law in completing my ethics course. The training consisted of a series of multiple-choice questions, several of which were in the following format:
A) No, this is not ethical because X
B) No, this is not ethical because Y
C) Yes, this is ethical because flippant hilariously transparent clearly wrong reasoning
D) No, this is not ethical because Z
Where A, B and D are correct answers. In fact, none of the scenarios in my training had ethical behavior and simply selecting the answers that essentially declared the behavior non-ethical would allow one to pass the ethics training. If a course at this university were to administer such a poorly-thought out series of questions with such low standards, those who prepared the test would rightfully be questioned and accused of low standards leading to a lack of learning. I don't see why a series of questions sent out to the employees of the University of California system should be held to a lower standard. A useless training is improper as it is economically wasteful and a gross inefficiency, especially when the University, of all organizations, is in one of the best positions to design a real and useful set of training materials that would benefit university staff members. I'm sure this very system must contain several world-class experts on this exact topic.
These concerns are not minor. I'm sure I have to be the last to remind you that the UC system is quite large comprising of over 100,000 employees, each of whom will have to spend approximately 30 minutes on this training. This easily puts direct estimated costs of employee time involved with this training in the realm of $500,000 to over $1 million, depending on how one counts. This is a lot of money.
This poor estimate of the direct costs say nothing of the hit to employee morale caused by what is widely seen as a useless, pointless exercise that does little to strengthen ethics of many hardworking and well intentioned UC employees who work everyday to ensure the success of the UC system. While I can only speak for myself, every year I've had to do this "training," the rest of my day was less productive due to the feeling that the university doesn't value my time enough to clear the obstacles away that keep me from performing the research we continue to hope will attract increasing support for the university's research objectives and goals.
The university's continued insistence of making the rest of us jump through hoops to alleviate the poor PR the university received because of the misconduct of a few continues to be a waste of university resources enshrined in university policy itself. Please examine this issue closely and provide either more useful and real training, more targeted training and/or investigate dropping this systemwide requirement altogether. (Or at the very least, allow local divisions to trump the requirement and potentially provide better to their local employees which will supersede the system-wide, one size fits all ethics requirements that myself and many other staff members have grown to hate.)
Being delivered to one of my locally designated officials as well as the a system-wide designated official, this notification comprises a good faith disclosure of information that may evidence improper governmental activity that may be economically wasteful and/or grossly inefficient under the California Government Code section 8547.2 and should therefore meet the requirements of a protected disclosure. I hereby waive rights involving discussion, publication or disclosure of the content of this notification, I do not however, waive any rights protecting my employment status.
Sincerely,
~D.J. Capelis
So, for the past year I’ve been on and off looking for a place to purchase, thanks to the American Reinvestment and Recovery Act. (in other words, a free $8,000 if I stay in the place for three years) Earlier this month, I finally had an offer approved on a condo over in Mira Mesa. An inspection and appraisal later, the following happened:
I actually like the place, so that’s why I’m not automatically backing out of the deal. But I should definitely think hard before continuing.
Anyway, an update on the rest of my life:
Anyway, that’s all for now.
I’ve considered riding a century (that’s 100 miles in one ride for my non-biking buddies) for a few years now. There are metric centuries, 100km or about 62 miles – but I’d done that during the Ride Across California. 100 miles as a goal has loomed out there, beyond the edge of what I thought I was capable of. I held that fear until about mile 65 of the ride this weekend. In fact, I wouldn’t even buy the ride jersey before the ride because I seriously questioned if I could finish.

A barcampLA buddy, Jeremy Kitchen, tweeted something out a few months ago about getting ready for the Tour de Palm Springs, an annual bike ride made up of a number of routes. Here’s Kitchen:
The timing was pretty good for me to start thinking about training for their century ride. I ride nearly every weekend, but usually only 20 to 40 miles, mostly with this crew:

Jen, Grace, Peter, Brad, and moi.
I’d need to ramp that up to get ready for the century. I didn’t know if I could do the 8-10 hours on the bike, and I’d never ridden that terrain before. Tracey from work had ridden the course last year and got me some route and elevation info. Here’s the official Tour de Palm Springs route map:

The scary part of any ride is the elevation and how much effort that will take to climb. Here’s the elevation profile for the ride, taken from the awesome Veloroutes site:
So, a lot of climb at the beginning of the ride when my legs will be fresh, followed by a lot of downhill, then a gradual climb to the finish. I was having a hard time comparing it to my hardest regular climb, the 1.6 miles and 440 ft. at the Torrey Pines grade, because the distances are so different, so I started plotting out rides around San Diego with a lot of sustained climb. I combined my regular run from Penasquitos (PQ) and up the coast with a leg inland to Escondido to form a box back to PQ.
I rode this route the first time just to see if I could do 50 miles without much prep, and it went well. I was dog tired after, but I really didn’t eat or hydrate well. I rode the route again with Peter from work a few weeks later, and it felt good, even with a stop at Churchill’s Pub in San Marcos for a beer and a sammich in the middle!

The thumb is Peter’s. He likes to get into the shot a lot:

That was a ride we did up to Pt. Loma – a fair amount of climb. Peter has a lot of experience with long rides and gave me great advice on ibuprofen and caffeine use to make the ride a lot more tolerable.
I realize I’m writing a lot about the pre-ride, rather than the ride itself so far, but I think that’s appropriate because the only way I survived this ride was because of the preparation beforehand. But, let’s get to the ride itself!
Elaine and I took Friday off to make it a super long Ride, Valentine’s, and President’s Day weekend. Nathan kindly agreed to come home from SDSU and keep an eye on Erin (or vice verse?), so we were free to take off. It’s nice getting old and having kids who can watch each other!
Kitchen was arriving on Friday too, so we got together for a beer and plotted out the ride. Kitchen and I had never ridden together, so I was stressing about slowing him down. I’m a big dude and it takes some time for me to get up hills. He also had another buddy, Mike, who I’d never met, which added another variable to the mix. Elaine and I were staying in Palm Desert, about 30 minutes from the start of the race. Kitchen had gotten a room less than a mile from the start, so we decided to meet in his parking lot in the chilly, 46F morning of the ride.
I had the bike in pieces in the trunk, so I got my pretty hands dirty:
You can see Kitchen has a much heavier, touring bike. He’s getting ready for Ragbrai, a week long ride in Iowa, so he carried a pannier too. Mike also had a heavy bike, so this helped us all keep pace on the initial climbs. We bid farewell to Elaine and biked over for the 7am ride start. There were thousands of riders at the start, so we were let go in waves. We met up with Mike and got released to start at about 7:30a.
I set my trip odometer to zero:
and off we went!
We worked our way out of Palm Springs, crossed the 10, then started climbing and climbing and climbing…
Actually, I train on hills a lot in San Diego, so I felt pretty good. I quickly shed my long gloves, outer shell, and thanked Kitchen for talking me out of wearing the Under Armor shirt I was planning on. I got down to just a jersey and was very comfortable for the rest of the day. Jeremy took a great shot as he passed us at one point:

There were 5 SAG support stops on the ride, and we arrived at the first at the end of the initial climb, at about 15 miles. The support was great on this race! They had water in bottles and big coolers, Chex Mix, peanut M&Ms, fig bars (this IS date country, after all), and an electrolyte drink. Each station was run by very nice people who took great care of us.
I’d been training to continuously eat on a ride this long (ok, I’ve been training for that all my life, but HERE it was appropriate…
). I’d brought a bunch of gel blocks, both regular and with caffeine, to keep me going. I’d also broken up 8 Trio bars (nuts, fruit, cane juice) into two bags, one of which I put in my newly acquired Novara Quick Draw Bike Pack (it’s just like the Bento Boxes that some of my friends have):

This bag turned out to be great! I wasn’t fishing around in my back pockets for food, and having it in my line of sight kept reminding me to grab a bite every 10 or 15 minutes. I packed WAY too much food, eventually only going through one bag of Trio bar pieces, one normal gel block, and one caffeinated. I kept refilling the Novaro bag at all of the SAG stops with Chex Mix and guilt free M&Ms and this was enough to keep me going. The SAG stop at 50 miles had simple sandwiches so I grabbed one of those and felt no hesitation in slathering it with mayo!
There were a number of routes in the tour, including a 55 miler that my friend Kevin was riding. We met up at the second SAG and I gave him trouble for taking the easy way
When I finally finished my ride a long while later, he was already home in San Marcos!
I tried to get 10 or 15 minutes of rest at each SAG stop. I was very worried about running out of steam all of a sudden, so I kept fighting the urge to join fast pelotons as they sped by. I did my best to stay with Kitchen and Mike to make sure my pace didn’t wear me out, but I have to admit that the downhills were too enticing to hold back. I zoomed on ahead as we neared the 50 mile mark and waited at that SAG station for Kitchen. Mike was still fighting a cold, so he’d faded back a bit and arrived just about as we were to take off again. He hung out at the SAG and we got moving. Mike’s in the back left filling up his water bottles:

I got Jeremy to shoot me being cute:

At the 70 mile SAG, we met up with Elaine in La Quinta and she shot a few pictures:
Mike caught up and then we were off again!
I had 30 miles left and was feeling pretty good. I was dropping ibuprofen every four hours, and I think I’d had half of a caffeinated gel block package. I was feeling almost no fatigue and I wanted to see what I could do. My average speed was about 11 miles per hr so far, but I knew I’d been holding back out of the fear of bonking. After about 5 miles, Mike and Kitchen seemed to be doing great at their pace and I decided to punch it up. We were on a relatively flat part of the route and I started pushing at about 19mph. I got to the 90 mile SAG point,
stopped for a few minutes for water and electrolytes, then zoomed on without stopping until the trip meter on my bike computer said exactly 100.0 and snapped a picture.
Then I wound my way through the rest of Palm Springs to the finish line!
Kitchen joined me soon afterward, and talked some group out of a beer:
Then Mike made his triumphant appearance!
Elaine met us at the finish and got a nice shot of me with the ride tshirt:
Some stats:
Lessons learned:
Don’t overdress. It’s so easy to overheat.
Don’t carry so much food. Or rather, become very familiar with exactly what will be provided on the ride.
Don’t be intimidated by scary elevation charts. Ok, this ride isn’t all that strenuous in terms of climb, but I almost let the chart scare me out of trying.
Top-tube-mounted bags are awesome, even if they look kinda dinky. I kept my engine running at top speed from just nibbling out of the bag every 10 – 20 mins. It scares me to think how often I’ve done that riding a couch rather than a bike.
Get a room closer to the start of the race. The morning logistics meant I had to get up 45 minutes earlier than needed.
If a ride has thousands of riders, don’t sweat the 7a start time. It’s ok to be a little late.
Unless you’re going for performance, don’t be at the front of the pack. I was amazed by how many people I saw pulled off to the side, changing tubes. I was also happy there was a huge crowd ahead soaking up road debris ![]()
Tweet out your progress. I got wonderful support in real time from Twitter and Facebook as I was riding! Thanks folks!!!
Get a small camera that can go on the bike. I should have more pictures, but the iPhone camera mechanisms are a joke when you’re on a bike.
If the ride is in Palm Springs, bring your own beer. Man, that town suffers from the lack of craft brews. Babe’s BBQ is a notable exception, and the Tap Room had Dogfish Head 90 Minute and Spaten Optimator. Their parking lot was impossible tho.
Ibuprofen is your friend. Before, during, and after the ride.
One more picture!
There was a rogue photographer (Stevesphotos.org), my favorite kind!, on the ride who got this image:
You scored as Justice. Justice- with you is all that is fair and true in the hearts of men.
The Seven Heavenly Virtues created with QuizFarm.com |
You scored as Justice. Justice- with you is all that is fair and true in the hearts of men.
The Seven Heavenly Virtues created with QuizFarm.com |
My latest post on the Mozilla Security Blog:
This press release is the top item on nhtsa.gov right now:
WASHINGTON, D.C. ? The National Highway Traffic Safety Administration (NHTSA) today announced that it is opening a formal investigation of the Toyota Prius Hybrid model year 2010 to look into allegations of momentary loss of braking capability while traveling over an uneven road surface, pothole or bump.
The Office of Defects Investigation has received 124 reports from consumers, including four reports alleging that crashes occurred. Investigators have spoken with consumers and conducted pre-investigatory field work.
?Safety is our top priority,? said Secretary Ray LaHood. ?That is why in recent weeks NHTSA has also issued a consumer advisory on the recall of several models of Toyota vehicles and the Pontiac Vibe involving pedal entrapment and sticky accelerator pedals. We will continue to monitor these issues closely.?
To be fair, Ray LaHood is the secretary of the Department of Transportation, of which the NHTSA is only a part. Maybe he was speaking on behalf of the entire Department of Transportation, in which case he was just repeating a meaningless platitude. But that's hard to see from the press release.
Sorry the blog’s been ignored lately. Look at these pretty sunset shots I did a week ago and feel better!

More here:
#define chk_error(cond) if(cond) { goto err; }
#define err_handler err:
char * tmpname = calloc(1, strlen("/tmp/epoll_emu.XXXXXXX") + 2); /* Extra padding */
chk_error(tmpname == 0);
...
chk_error(unlink(tmpname) == -1);
err:
return -1;
Systems Researcher in Function Land
Chapter 1
Lost in his own thoughts, the systems research continued plodding along. The researcher took a manpage out from his wallet, gazed on it and sighed.
It was his favorite side-effect. He hadn't seen any in weeks. Why had he come to functionalland? He tried to remember. His last trip here hadn't seemed to go all that well, why did he come back? Ah yes... a quest for purity. Or so he seemed to remember from the brochure.
In any case, this part of functionalland was different from what he remembered. Instead of camels running around O shaped racetracks, the camels here seemed to all be resting. Apparently the extensive amount of time in the sun had made them lazy and unwilling to move. There were also less French people, though the lazy camels seemed to be trying to emulate some of their behaviors.
"French people" thought the researcher with a fleeting smile.
His smile slowly faded into a frown as a deepening realization slowly dawned on him: there weren't even croissants here.
--------------------------------------------------------------------------
Systems Researcher in Function Land
Chapter 2
The researcher plodded on. Gathering his strength he ascended the hill in front of him and slowly made his way to the top. As he stepped to the top of the hill, a meadow came into view.
He'd never seen anything like it. It was... it was a battle. A massive number of statements, huddled around in the center of the meadow, shielding themselves against two armies of operational semantics that had descended down upon the unwitting statements.
The systems researcher reached for his trusted LALR parsers and rushed down the hill. He knew his parser wouldn't last the battle, but he couldn't bear to see such abuse. Bringing his parser to bear, he threw himself at the nearest group of semantics definitions.
Slowly, the definition turned around. It raised a magnifying glass towards the researcher, the researcher gripped his parser, ready to fight. The wind blew from the north, the researcher and the definition locked eyes and cycles passed.
The definition was made out of a series of intricately built legos. The researcher could see that each structure within the definition was carefully specified and placed to yield the overall shape. The definition's blocky appearance was comforting and gave a sense of depth.
The definition continued to stare, then it paused and the definition lowered it's eyes and muttered "you don't match me anyways." The it turned, running off. The systems researcher ran after it.
As they passed, the systems researcher noticed many other definitions made out of legos, yet the researcher also another type of definition. These definitions were wearing hemp, birkenstocks and all had little stickers that said "Made in Santa Cruz" on them. Their appearance was natural, but their behavior was anything but. These definitions didn't seem to have the same depth as the block lego sort. These seemed to only be concerned with outcomes, one got a cold feeling just looking at them.
Abruptly, the definition the researcher was chasing stopped near a nearby while statement. The definition turned it's eyes on the while statement and consumed it as the systems researcher screamed with rage and plunged his LALR parser into the definition's blocky back.
Far from being enraged by the assault, the definition simply turned around and in a lecturing tone, said: "you don't match me." The parser fell out of the definition uselessly and the systems researcher was left standing in the midst of the battle, mouth agape. He looked on when suddenly, out popped the while statement, slightly smaller. He glanced at the researcher puzzled when the definition yelped and out sprung an if-then-else statement and a little guy who looked like a state delta.
The while statement shrugged and ran back towards the blocky definition, which immediately consumed it again.
The researcher, seeing a lost battle when he found one, picked up his parser, shrugged and made his way out of the battle.
An odd place, functionalland.
Testers can now download debug builds of Firefox rather than going trough the complicated process of building Firefox themselves.
Debug builds have extra code called assertions to inform us when assumptions or surrounding code are incorrect. For example, assertions can reliably tell us when third-party code makes common threading mistakes, even though the crashes from those mistakes appear random. I find about a third of my bugs by noticing assertion failures, and it usually isn't the assertion that's incorrect.
In several bug reports from users who were hitting frequent crashes at random, I suggested that the users compile their own debug builds, hoping that assertion failure messages would lead us to the cause of the crash. Few of the users succeeded, since the compilation tools and instructions were written with programmers in mind. Now that pre-made debug builds are available, we may be able to make more progress on these kinds of crash bug reports.
Big thanks to the release engineering team for making these builds available!
Reed Loden set up bugzil.la as a redirect for Bugzilla bugs and searches. Examples: