Specs for a new PC

My current PC is really giving me grief by being so slow.  I am in dire need of a faster system but probably won’t buy for another month or 2.  Here’s what I’m thinking:

  • CPU: Intel Core i5-2500K
  • Motherboard: something with an Intel H67 chipset
  • Memory: 16GB DDR3
  • Storage: OCZ Vertex 3 120GB (or maybe comparable SF-2200 SSD)
  • Video: probably onboard
  • Audio: probably onboard

This would be my first Intel desktop in… 16 years I think.  But I’m not optimistic that I can wait for Bulldozer.  I do have a couple of problems with the Intel system such as not being able to use ECC RAM.  The nice thing about AMD systems is the chips are not feature crippled and you can use ECC on a desktop system without paying a fortune.  But the AMD Phenom II X4 945, while cheaper than the Intel Core i5-2500K just doesn’t seem like a wise choice.

Open Source Virtualization – thoughts on the state of various alternatives

I’ve been feeling less than thrilled with the open source virtualization alternatives available.  It’s not that I am not grateful for all the hard work people have put into these systems.  I am increasingly finding the platforms to be buggy.  I’m trying to decide on what the best setup is moving forward.  Just thought I would jot down some of my recent notes.

Continue reading ‘Open Source Virtualization – thoughts on the state of various alternatives’ »

Alternatives to the ASUS M4A785TD-V EVO

There seems to be a small market for consumer motherboards with ECC.  I had planned on purchasing a new system with the ASUS M4A785TD-V EVO motherboard which got excellent reviews, was reasonably priced, and supported ECC DDR3 memory.  As this motherboard has been discontinued I took some time to find its successor.  I’m not sure the M4A78T-E counts as a successor but it is a reasonable alternative.  Finding it was somewhat difficult as ECC is not a feature many places seem to list (including newegg).  The main difference between the M4A785TD-V EVO and the M4A78T-E is the chipset combo: AMD 785G/SB710/RADEON 4200 on the former, AMD 790GX/SB750/RADEON 3300 on the latter.  For an additional $50 the ASUS M4A89GTD PRO/USB3 brings a bump to AMD 890GX/SB850/RADEON 4290 as well as USB 3 and 6Gbps SATA.  That makes it a little more future-proof but as to whether that’s worth a 50% price jump I’m skeptical.

Playing with Rails XSS protection

So in Rails 3 xss is protection is built in.  This is good.  In fact, I’ve wanted to see this since I first start coding rails in the 1.x days.  I have not started any Rails 3 projects yet but I have been playing with enabling this on a Rails 2.3.8 project by using erubis and the rails_xss gem.  Switching over I found lots of problems where strings which should be safe are being escaped.  Of course I can easily mark the string as safe but I wanted to learn why this was happening.  I found that the join method does not seem to keep strings safe.

>> ("foo".html_safe + "bar".html_safe).html_safe?
=> true
>> ("foo".html_safe << "bar".html_safe).html_safe?
=> true
>> ["foo".html_safe, "bar".html_safe].join.html_safe?
=> nil
>> ["foo".html_safe, "bar".html_safe].join(''.html_safe).html_safe?
=> nil

I’ve also noticed that mail_to does not return an html_safe string.  It appears to have been fixed in Rails 3 but not correct in the rails_xss gem.

Kernel patches I’m hoping to see in Ubuntu 10.10

I’m planning on buying/building a new computer and I think I will install Ubuntu 10.10 on it.  My plan is to use btrfs for the first time.  Risky, but I will be taking nightly backups.  However, Ubuntu 10.10 is planning on shipping with the Linux 2.6.35 which has a severe btrfs performance regression as documented here:

But besides that I’m also hoping that the I/O performance situation will be improved.  It has been very difficult to track down where the bug is but I have certainly experienced it.  I haven’t tested the patches but if they work I hope they find there way into Ubuntu 10.10

Using an SSD as a cache device

Running SSD’s in RAID can get very expensive very quickly.  A more cost effective solution is to have a disk RAID and use an SSD as a cache.  I’m not sure if any of these are production ready but all are worth watching:

Abandoned Projects:

Bcache: Caching beyond just RAM

Learned a lot about nested attributes and Rails

It’s been a frustrating night trying to figure out how accepts_nested_attributes_for, autosave, dirtyness, and Rails versions all fit together.  Going to try and summarize my findings and hopefully I’ll get it right.

  • accepts_nested_attributes_for turns on autosave
  • autosave will cause any loaded associations to be saved when save for the parent object is called
  • the key word is “loaded”, so a find with an include will cause the association to be loaded, and thus autosaved (took my a long time to track this down)
  • in Rails 2.3.5 the association is saved regardless of dirty state
  • in Rails 2.3.8 the association is saved only if dirty