2008/12/16

Sold my soul... to Google

Today I sign LineRate Systems up for Google Apps and I have to admit that so far I like it.

The thing to understand is that I have been a huge fan-boy of do-it-yourself basic services cobbled together with blood-sweat-and-tears from different open source packages. I have also been a big, keep your information in house. This stance has lead to multiple arguments with my co-founder Manish and other folks over the years.

What tipped my hand?

First, I've realized that I am not superman and that I simply do not have the resources to devote to building and maintaining my own IT setup.

Second, and more importantly Google has added various features to their offering that make it compelling:

1) They added CalDAV support to their calendar solution. This is awesome as it lets me continue to use apple's iCal application or whatever calendaring solution I care to use.

2) Group calendaring - not sure when this went public, but I was using when I interned at Google and it makes scheduling so much easier

3) Resource reservation - nice.

4) Postini - ability to archive mail for regulatory compliance. Translation, I don't need to lose sleepy worrying whether the email backups are actually working.

5) Ability to embed Google Doc's presentation directly in web pages.

The only reason I'll continue to maintain a basic webserver? Google Sites is hella lame and primitive.
But I'm sure it'll catch up.

And now that my automated email import is finishing up, I concede that Google is a reasonable place to outsource one's basic IT services.

(heck I may migrate my personal domain as well in the near future)

2008/12/07

Kimchi or channeling my inner korean housewife ;)

In the past few months I've developed this horrible addiction to kimchi jjigae (aka kimchi soup).
(I blame Korea House for this problem).

Next thing I knew I was craving the kimchi soup... Especially on sundays. This is a problem. Korea House is closed on sundays - lame.

ok ok... so I also have thing this for the mung bean side dish (kongnamool). But I figured that one without a recipe :)

I kept imagining Kimchi soup as being complicated, so I looked around online and found the following recipe by Maangchi. She has awesome recipes and videos :)

So I tried it with whatever random americanized brand of kimchi that King Soopers sells and was most disappointed.

If I'd bothered to use my brain I would've realized that I shouldn't have even bothered trying with lame kimchi - but hey I was hungry. ok ok so that isn't really an excuse *sigh*

A couple of weeks ago I decided to follow Maangchi's Kimchi recipe. One problem... ok many problems. I didn't have the Korean Radishes, the fish sauce, or the asian chives. (I omitted the raw oysters because I am a bit squicked out at leaving raw oysters in a jar on the counter for 2 days). So I substituted Dashi for the fish broth and extra green onions for the chives.

It turned out ok...


Yesterday I went to HMart in Aurora Colorado.
I bought everything I needed! well I forgot the chives again but bought two different kinds of fish sauce one that looked like normal fish and one that called out anchovy. Both fish sauces had pictures of kimchi on the labels - Yes!

At the checkout counter the korean lady ringing me up tried to politely warn me that the tub of gochujang that I had was "hot." I politely smiled and nodded :) During this time every ingredient I needed for the kimchi, including the 4.4 pound bag of red pepper flakes, was rung up. Then she hit the 4 medium sized napa cabbages and she paused. As she looked at it you could tell that gears were spinning in her head and then she asked if I was going to make it. I said yes and that I was addicted all while smiling. Then she asked if I had a korean wife. To which I smiled and politely said no. She was very very confused. One thing to note is that I may not have a korean wife but my caucasian fiance loves kimchi even more than I do (I'm a late bloomer to the kimchi).

So anyway..
Today before lunch I opened the fish sauce bottles and sniffed each. @.@ They smell like fermented ass. I got some on my finger and could still smell it hours later even though I washed my hands twice. ugh.

The moment of truth came. I made the kimchi paste and used 1/4 cup of anchovy fish sauce and 3/4 cup of the "normal" fish sauce. I thought I was going to hurl when I mixed it in. Then I added all the other ingredients and the fish sauce almost vanished... I guess 4 cups of chili flakes will mask just about anything ;)

But you know what. The paste definitely tastes more like kimchi this time around :)

and now the end results of my work!



Almost 8 quarts of kimchi! :)
2 quarts of radish kimchi
and 5.8 quarts of cabbage kimchi!

Jars I've decided are mission critical to making kimchi. The last batch was stored in a ziplock baggie and now my fridge and freezer smell of kimchi every time I open them *g*


I'll report back in a few days on how the new kimchi tastes after fermentation :)

Auto Insurance and Cost of Repairs

So last monday (12/1) I got rear ended by a Ford Ranger and pushed into a Jeep Cherokee.
The driver of the ford was on his phone.

I drive a 2001 Subaru Outback Sport and she's been a very nice car to me.

What drives me nuts is that the Blue Book value of the car is around $4,800 which is reasonable for a car of this age.

The problem, and what I find offensive, is the cost of repairs and how insurance companies handle these claims. If the cost of repairs exceeds 70% of the book value of the vehicle they are allowed to "total" it. Based on my prior experiences I'm expecting the cost of repairs to exceed $3400. So this means that even though I have a perfectly good vehicle, the cost of repairing it means it will get totaled and sold for parts.

So I have to wonder one of two things:
1) are vehicles devalued too quickly with respect to their lifespan?
2) are cost of repairs (labor) to high?

Now before you get all grumpy on me, understand that I accept that there are some parts that just are not worth repairing (i.e., compex items such as circuit boards). But repairing the body work on a car is something that primarily requires time not parts or extremely high precision equipment.

I also understand that the parts will be stripped and resold generating additional value and therefore there is a positive economic benefit.

I just get grumpy at the proposition that because someone was not paying attention I may be expected to give up the car that I've taken care of over the years even though I was expecting to keep her for another 5 or more years.





It seems that an individual's correct economic behavior is to either buy nothing but used cars or do the minimum amount of maintenance possible on their cars and drive them into the ground quickly rather than planning on keeping them in good shape. This latter approach seems to be an environmental mistake. and the first approach requires me to have faith that the original owner(s) took reasonable care of their vehicles. *sigh*

2008/11/20

Entrepreneurs Unplugged with Roy Dimoff

Yesterday Entrepreneurs Unplugged hosted Roy Dimoff, Chairman and CEO of Viawest.

Robert Reich and Jason Mendelson led a lively discussion in which Roy seemed to focus on his experiences in the service business and how companies should always and especially during economic down turns value and work with customers to make everyone's business a success.

Below are some of the pictures that I took during the event.

2008/11/15

Complexity of Programming Modern Systems

Tonight I will pickup where I left off last time with a discussion on the complexity of programming modern system.

These systems are incredibly complex with many subtle layers of interaction that can dramatically impact the performance of the overall system. For example, one of the core algorithms that I developed for LineRate Systems improves on the previous state of the art by a full 10x. The trick was to pay attention to cross layer interactions and ensure that the hardware and software played nicely together.

To highlight the interactions I put together the following slide show which I think gives a better high level overview of the complexity than a simple static blog post could have. I will continue to expand on this theme in the next few posts.

Random ceiling picture

Sometimes, the fun pictures are of the random "oops I pushed the trigger without aiming" kind :)

From Random Stuff

2008/11/07

Redux: CU NVC Pitch Day

The first annual CU New Venture Challenge Pitch Day was an amazing success! We had ~30 groups pitch ideas ranging from a social entrepreneurship for cambodia to a automatic medication dispensing machine for type 2 diabetes to social networking ventures to a diverse audience containing members of CU and the boulder/denver entrepreneurship community.

Kudos to everyone who participated!

Here is a slide show of everyone who presented last night:


Here is a slide show of the crowd mingling during the poster session:

2008/10/26

LineRate Systems mentioned by Rocky Radar Media

Mentioned the presentation that I did for LineRate Systems on 10/1 as part of the CU Innovation Alliance Breakfast at ESPRIT 08.

Paper: Visualizing Potential Parallelism in Sequential Programs

Graham Price, a fellow student at CU Boulder, will be presenting his paper on "Visualizing Potential Parallelism in Sequential Programs" at PACT in Toronto tomorrow (Monday 10/27).

This paper is related to my last post discussing how Parallelism is an Optimization and presents a high-performance visualization technique, based on Binary Decision Diagrams (BDDs) and Quad Trees, to allow programers to identify regions of code as candidates for coarse-grain parallelization.

More information on the paper can be found at the group's website http://ce.colorado.edu/core/

Visualizing Potential Parallelism in Sequential Programs
Graham D. Price, John Giacomoni, and Manish Vachharajani
The 17th International Conference on Parallel Architectures and Compilation Techniques (PACT), October 2008.


Abstract:
This paper presents ParaMeter, an interactive program analysis and visualization system for large traces. Using ParaMeter, a software developer can locate and analyze regions of code that may yield to parallelization efforts and to possibly extract performance from multicore hardware. The key contributions in the paper are (1) a method to use interactive visualization of traces to find and exploit parallelism, (2) interactive-speed visualization of large-scale trace dependencies, (3) interactive-speed visualization of code interactions, and (4) a BDD variable ordering for BDD-compressed traces that results in fast visualization, fast analysis, and good compression. ParaMeter's effectiveness is demonstrated by finding and exploiting parallelism in 175.vpr. Measurements of ParaMeter's visualization algorithms show that they are up to seventy-five thousand times faster than prior approaches.

2008/10/23

Parallelism is an optimization

Today I will start a series of posts on the complexities of writing parallel software based on the introductory material I used in my recent Ph.D. dissertation proposal and the technology I am developing for LineRate Systems. This series of posts will begin by surveying the core parallel structures used in programming and then iteratively dig deeper into more complex parallel structures.  I will also interleave posts on the the elements of computer architecture necessary to understand the complexities of writing parallel programs on modern computer architectures.

*deep breath*

Before we can discuss the complexities of writing parallel programs one point needs to be made clear that seems to escape the notice of most programmers and even graduate students in computer science (myself included).

Parallelism is an optimization and not a correctness criterion.

You might ask yourself, why is parallelism not included in the list of criteria for a program to be correct?  This makes no sense!

The answer is that the academic definition of program correctness only concerns itself with ensuring that a program terminates with the correct output for a given input.  Notice that duration of computation is not part of this informal definition of correctness -- even though performance may be part of the list of requirements for a program to be considered useful.  This is because a computation is nothing more than a ordered (total) set of deterministic transformations on a given set of inputs.

How often have you seen the following situation occur?

A software architect is given a set of requirements describing what the program must do to be considered a success (hopefully).  Note this list can be extremely detailed to as a vague a directive as, "Customer X has Problem Y, solve it."  Most requirements lists fall somewhere in between these two extremes resulting in many iterations of prototypes and specification changes before an acceptable result is produced and there are very good reasons why this state of affairs is quite acceptable.

The architect immediately begins to design a parallel program as the requirements have performance metrics included.

*ouch*

This is both problematic and perplexing as parallel programs are often so complex that they defy reasoning abilities of programmers and verification tools.    This means that determining the cause of a perplexing result generated by a parallel program is difficult, or even impossible, leaving all parties in an uncomfortable lose-lose position.

A sane, albeit potentially more expensive, approach is to maintain a reference sequential (non-parallel) implementation against which the results can be verified.  This approach has an additional advantage, benchmarking the sequential version often reveals the subsections that actually *need* parallelization -- most parallel implementation that I have seen are over architected.

So again, parallelism is an often needed optimization and not a correctness issue.

Entrepreneurs Unplugged: With Todd Vernon and Walter Knapp of Lijit

Entrepreneurs Unplugged: With Todd Vernon, CEO and Walter Knapp, COO of Lijit

@ Engineering Center Room ECCR 245, University of Colorado
October 23, 2008, 5:00pm

Please join us on October 23, 2008 as the Silicon Flatirons Center presents Todd Vernon, CEO and Walter Knapp, COO of Lijit as our featured entrepreneurs in our Entrepreneurs Unplugged series. Mr. Vernon and Mr. Knapp, leading Colorado entrepreneurs, have a wide breadth of experience on the business and technical sides of creating start-ups.

Entrepreneurs Unplugged is a meeting place where faculty, students and community members with technical backgrounds learn about and get involved in entrepreneurship. In particular, the program offers students and faculty an opportunity to learn how a successful start up is created as well as an opportunity to network. Each Entrepreneurs Unplugged meeting features food, drink and - most importantly - an experienced entrepreneur to discuss his/her start-up experiences.

For additional info, see http://www.silicon-flatirons.org/events.php?id=476.

2008/10/16

CUNVC: Workshop #2: – Your Business Concept: Opportunities vs. Ideas

The CU New Venture Challenge's second workshop, "Your Business Concept: Opportunities vs. Ideas," will be tonight (10/16) at 19:00 in the ATLAS Auditorium.  Event will be preceded with networking in the lobby at 18:30.

2008/10/13

Candidacy

Today I gave my oral Ph.D. dissertation proposal defense exam... and passed :)
(well technically I will collect the 5th signature tomorrow, but I have 4 out of 5 which is sufficient *g*)

All in all not too bad :)  Advice to future students in this situation is to schedule the defense earlier than 10am so the committee isn't awake enough to ask detailed questions ;)

Now to get cranking on the work needed for my PhD and LineRate Systems as the core technology is the same :)

Stay tuned!

2008/10/06

CU Innovation Alliance Breakfast Redux

Last week I presented a brief overview on what LineRate Systems is all about at the CU Innovation Alliance Breakfast that was part of ESPRIT '08.

I wish that I had had time to present my thoughts last week while everything was still fresh in my mind, alas my pesky PhD dissertation proposal consumed my attention for the remainder of the week and weekend ;)


So briefly here are my thoughts :)

Suvica - Has a system to quickly design experiments that combine different anti-cancer agents to reduce the number of trials needed to find true positives.  The system leans towards the side of eliminating false-positives and increasing false-negatives.  But this is not so bad as the efficiency with which true positives are found is high.

Ion Engineering: Colorado Carbon Capture - They talked mostly about "sweetening" natural gas (removing CO2 and H2S) although their techniques apply to a wide range of purification systems.  The net effect is that a company tapping a dirty source of natural gas can add purification equipment can deliver sweetened natural gas from a source that was previously too dirty.

TissueFusion - They use lasers to fuse tissues back together without the need for the surgeon's usual arsenal of tools that are best left in the hands of a tailor ;)  Their initial product is focused on septoplasty and rhinoplasty although they see a wide range of applicability.

LineRate Systems - this was my presentation and I will talk more about it below.

3QMatrix - They are tackling the problem of wounds that refuse to heal and remain open.  Existing solutions are very expensive and often not treated properly due to the expense.  Their product is a new type of packing which is design to help the healing processes and can be "functionalized" with medications and other substances to help the wound heal.  The product delivers dramatically accelerated healing at a fraction of the cost.

XenoPur Systems - Is a technique to remove heavy, precious, and radioactive metals from a solution (including the sludge left behind by mines). 

KMLabs - build femto-second lasers for use in research facilities.  They've been around since 1994.  They have been gaining in popularity and have been expanding to meet the needs of university research labs, homeland security, and other labs.





Ok now onto my presentation of LineRate Systems which given Dave Taylor's post on his blog wasn't delivered as well as it could've been :/ and thus deserves a bit of clarification.

Apparently I gave the impression that we thought we had no competition and that the 40 or so companies that I did identify could not compete with us in terms of software innovation @.@ 

My co-founder and myself consider ourselves infrastructure people (aka "plumbers" ) we make everything flow smoothly and quickly inside your system, we are under no illusion about our ability innovate on full products against the teams of Cisco and Juniper *ouch*

Our focus is on delivering high-value low-cost network appliances with no-hassle support and sales. period.

The confusing marketing slide (I admit it - we had been warned about it before) was supposed to show that our plan is to drive the total revenues of the markets we are interested in to the level of existing vendors' cost-of-goods-sold.  This then leads us to believe that the incumbents must respond in one of the following ways: 1) up-market retreat, 2) licensing our acceleration technology (not the full products), 3) develop their own low cost solution (I may have forgotten to mention this), or 4) die.   The dangers are two fold: a) we fail to establish a sustainable business at this level of revenue, b) account control locks us out of the market.

That being said, there are a couple of companies that we are closely tracking as competitors :)

My PhD dissertation proposal submitted and network appliance performance ratings

Today I finally submitted my PhD Dissertation Proposal to my committee!
After next Monday's oral presentation I'll have only one pesky "little" exam left ;)

The document is titled, "Supporting Fine-Grain Parallelism on Commodity General-Purpose Multicore Hardware," and will wrap up my research on using multicore processor (e.g., Intel quad-core Xeon processors) based systems as network processors (e.g., Intel IXP series). 

The two key technologies so far are FastForward and the Frame Shared Memory architecture (FShm).  FastForward is a cache-optimized core-to-core software communication mechanism (concurrent lock-free data structure for those that care) that decreases the observable latency by an order of magnitude (10x) over the previous gold standard described by Leslie Lamport in 1983.  FShm is an organization that allows safe sharing of buffers between processes and network interfaces.  The two have been used to demonstrate true line-rate bridging of 4 Gigabit Ethernet links without dropping a single frame. (In the context of networking a frame represents the link layer message while a packet usually refers to the application message) One of the goals of the proposal is to increase the performance to support a single 10 Gigabit Ethernet stream where frames can be arriving at a rate of one every 67 nanoseconds.

Note!  this is very different from a device claiming to support 10 gigabits per second aggregate over many ports that also allows the system to randomly drop frames to achieve this level of performance.

Why is this distinction important?  There are two scenarios.

1) Raw firewall performance.  If a firewall drops any link-layer frame of a large Internet Protocol (IP) packet, the entire packet needs to be retransmitted.  If you are using a cheap wireless router at home I'm sure you've seen this problem in action; a transmission runs at quickly and then suddenly chokes and hangs.  What is happening is the system defaults to a back-off mode to help relieve network congestion - usually why frames are lost - when there really is none.

2) Consider an attacker who wishes to remaining anonymous as best as possible.  If the attacker knows that the intrusion detection/prevention system cannot sustain line-rate performance on a single link could initiate a Denial-of-Service attack whose entire purpose was to probabilistically hide the attackers true malicious network packets.  If the security system misses some or all of the attack frames it may be impossible to prevent the attack from completing or perform forensic analysis on the data.

Therefore before you buy your next network appliance consider what your needs really are and ask your vender what they mean by there performance ratings.

2008/09/28

I found the following passage amusing :)

The average man identifies mathematical ability with quickness in figures.  "So you are a mathematician?  Why then you have no trouble with your income-tax return!" What mathematician has not been at least once in his career so addressed?  There is, perhaps, unconscious irony in these words, for are not most professional mathematicians spared all trouble incident to excessive income?
Tobias Dantzig - Number: The Language of Science - Feb 2007 (original 1930)

2008/09/27

Understanding cost-of-sales by looking at into trenches

Recently, my co-founder and I have been going through the 10-Ks for companies with products and/or business models similar to LineRate Systems and have been boggling over how many of these companies are spending so much on cost-of-sales.  Our advisors have been telling us that cost-of-sales tend to be very high but no one has been able to provide a clear description of what those funds are used for.

Looking at Red Hat's 10K for the period ending February 28, 2007
Revenue: $  400.6 MM
S&MB:    $  145.6 MM (36.3%)

Juniper Networks
Revenue: $ 2836.1 MM
S&M:     $  666.7 MM (23.5%)

Sourcefire
Revenue: $    55.9MM
S&M:     $    25.9MM (46.3% - WTF?)

And then I ran across a blog post that made it crystal clear what was happening.  

IT Staff: I'd like a quote for X
Sales Drone: would you like to attend our conference?  open bar?

ITS: quote
SD: ok, lets talk about the details of the product

ITS: quote
SD: uh ok, when can I come to your office?

...

Similar situation with a different company...

SD: We'd like to talk to you about our great new product Y, can we interest you in a free steak lunch?
ITS: just send me the info

In essence the standard tactic of Sales Drones these days is to bribe IT Staff with perks they cannot get out of their bosses to convince their bosses to purchase the company's hideously overprice products.  The moral hazard here is incredible - IT Staff gets *stuff* that is then billed back to their own company in the high cost of the products.

The Best-of-Breed battle that vendors are currently waging based on delivering functionality beyond the need of companies and therefore ruining the value/cost ratio has forced them to hire sales drones to bribe people into purchasing their products.

This business model is just wasteful.