SSD drives are still really expensive for the big ones, but the 64GB
ones can now be had for $130 (after rebate). Excluding my homedir,
this is plenty for system + apps, so I replaced the boot drive in my
Mac Pro with a 64GB SSD yesterday and moved my homedir to another
drive. The installation process was somewhat involved (horrors, it
involved unscrewing two screws and threading some cables into a very
tight space), but pretty smooth. (If I’d had a free drive bay or a
2009 Mac Pro, it would have been basically effortless, but on the 2008
models, you need to thread a new sata connector off the motherboard to
the optical drive bay.)
I’ve heard that SSD performance can degrade over time, but my initial
impressions are that it was totally worth it. The system boots in
significantly less time than before, and applications now open nearly
instantly. If I need to replace it in a year, I’ll still be happy.
These are pretty thorough instructions:
http://www.ransom-note-typography.com/index.php/SSD_and_Your_Home_Directory
Let’s say you have a table with 20 million rows in it. It’s performing fine at the moment, but you want to see what will happen when it grows to 40 million rows. You might think that adding 20 million rows of random data to a test copy of your db would probably be best accomplished with raw sql, and you might be tempted to do something like this:
insert ignore into mytable (id, name) select concat(id, round(rand() * 1000000)), concat(name, round(rand() * 1000)) as name from mytable on duplicate key update name=concat(values(name), now());
Do not do this.
First, your server will completely freeze up as you exhaust all of the space in the lock table (ERROR 1206 (HY000): The total number of locks exceeds the lock table size), then you’ll try to limit the subselect to a certain length and it will seem to work, then you’ll realize that it’s all happening inside a single transaction that probably will never finish, then other queries will start throwing the lock error even though this one doesnt, then when you cancel it, innodb will try to roll back the 600k rows it did insert, and it will take a really long time to clean up this mess, and you’ll probably decide to restart the server a few times.
Lessons are fun.
I never noticed this before, and I think it may be new with the MMS support, but now when you get a phone number included in a text message, you get a right arrow link to a separate panel with all of the things you can do with the phone number - the address card if it’s in your book, add it if it’s not, etc…
You can also now share contacts via MMS, which I was really missing.
This is a very well done interface, and I like it a lot.
I was reading this:
http://datamining.typepad.com/data_mining/2009/08/my-behavioural-nightmare.html
It struck me that in the traditional model, advertisers hold all of the power in this relationship, but I don’t even see why it’s in their best interests for that to be the case. There’s a world of difference between an advertiser pushing pizza in your face because you had a hamburger yesterday and your actually wanting pizza and looking for the nearest one. If you don’t want pizza, the pizza-selling advertiser is really wasting their money and potentially alienating you further such that you might not even want pizza later even if you were thinking about it. But on the other hand, you might want pizza but not even be aware of it until you saw an ad. There’s no way for an advertiser to tell the difference between legitimately convincing you and forcing their product down your throat. (Some would say there’s no way for people to tell the difference, but I am thoroughly convinced that I am not much more swayed by ads than I would be by press releases describing the features of things I might want to buy - notification of new products is not the same as “advertising claims”.)
If there were an advertising protocol, you could both publish a selective list of things (however that was defined) you were looking for, as well as allow for some level of granularity about what products you might consider if properly presented. But you could also say “there’s no way I’m eating at your nasty pizza place in a million years - don’t waste your ad dollars on me”. This would be something built into your browser, and instead of the ad server just pushing what it thinks you want at you, there could be some negotiation (perhaps even with some interactive component if you’re interested in engaging to that level, but fully transparently if not) to figure out ads that will work for you today.
Even targeted advertising at the moment is an elephant gun approach, and this doesn’t really benefit anyone except the people selling ads. We can do much better on both sides.
I’ve seen a number of front-end html coders and designers mix ids and classes when doing css layout, and I always insist that they be kept separate. Because you often need to reference an element by id when doing ajax manipulations, if you’ve also used that id for layout, you’re asking to shoot yourself in the foot if you need to change something. On top of that, elements can have only one id, and multiple classes. Give your elements a unique id and a meaningful class if you’re not sure.
It’s a simple rule, and there’s no downside - always use only id references for code, and always use only class references for layout.