Monday, August 12, 2013

Creating a IPv6 Tunnel on Mac OS X

Maybe I was bored. I am not really sure why I got the bug up my ass to setup a Ipv6 tunnel but I did. Why IPv6, well it's 2 more than IPv4 so it has to be awesome right. Well I think my thought process was/is not many people are using IPv6 yet so it's like a empty highway right
There is also security and blah blah blah, insert marketing verbiage here.

First I checked with my ISP maybe there was a outside chance they offered IPv6 without charge. No go, they don't have anything going for IPv6 in my area and they will get to it when they feel like it kind of thing.
Next checked my cable router just in case. Yes there was a IPv6 option but it did nothing to turn it on, on the WAN side.

This is where tunneling comes in. So I am passing my IPv6 traffic to a provider. Hmmm interesting. So I tried it out.

I chceked out www.tunnelbroker.net. They offer a free IPv6 tunnel. Ok sound interesting.
The setup:
- signed up for a account
- Clicked create a tunnel.
- Selected the end point nearest to me

went to the terminal as root
>ifconfig gif0 create
ifconfig gif0 tunnel 192.168.1.2 XXX.XXX.XXX.XXX
ifconfig gif0 inet6 0000:000:0:ff7::2 0000:000:o:ff7::1 prefixlen /64
route -n add -inet6 default 0000:000:0:ad7::1

And like magic I was on the interweb with IPv6.
> ping6 google.com
.............................
.............................
gtg

So now what? Not many site are IPv6 enabled yet so... not much. Big thing Google is and I send a lot of traffic there way.

Friday, December 16, 2011

MySQL Query to CSV

Here is the quick and dirty on how to query directly to a csv in MySQL. 
SELECT id, name, email INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ‘\\’
LINES TERMINATED BY '\n'
FROM users WHERE 1
In MS Windows OUTFILE would be:
OUTFILE 'C:/tmp/results.csv'
Make sure mysql can write to the location of your outfile

Thursday, June 3, 2010

MongoDB is the new MySQL

Watched out MySQL. MongoDB is here and it is after your blogs. If you have not heard of it yet MongoDB is is an open source, scalable, high-performance, schema-free, document-oriented database. What MongoDB is designed for is problems without heavy transactional requirements that aren't easily solved by traditional RDBMSs, including problems that require databases to span many servers. What this means is MongoDB does not have a table structure like MySQL. You do not have to design your database schema before 

Now I do not think every web app is going to run out and refractor all of there code for MongoDB, but maybe they should :) What Mongodb does is try to fill that void in RDBSM of sharing large amount of data between servers and accessing it quickly. Now why do I think MongoDB is going to start pushing MySQL out of the way? It is because of this. MySQL has had some notable shortcomings when dealing with scale. Now when it comes to blogs where there are lots of reads and with large blogs and websites millions of reads MySQL falls short on scaling. Here is a nice niche for MongoDB. Now Joe Shmoe's blog my not see any benefit from switching to a MonogDB backend but larger scale sites will. 

MonogoDB is also about infrastructre. Where you may not end up using MongoDB for your CMS. If you a developing the next best web site hosting like Harmony then MongoDB makes a lot of sense. For me when it came to development time with Quicklogs, MongoDB crushed MySQL. Forget ALTER TABLE commands whenever you want to update your schema. MongoDB is schema free meaning you can write the schema to how you see fit. This is great for development, prototyping and upgrades down the road. The other infrasctructure play is replication and sharding. Although sharding will not be in the production deployment until 1.6, eta July 2010. MongoDB is very easy to replicate, do a initial sync and stay synced. MySQL replication in my experience has had a problem keep up with large data sets. 

How is MongoDB going to push MySQL out of the way? At first I thought it was going to happen slowly, but then I watch as some big names keep showing up on the  MongoDB's production deployment site and it may happen a lot sooner than I thought. Once you see a major CMS like Wordpress or Drupal port to MongoDB then it is all over. I use Wordpress and Drupal as examples because they are a couple of the most visible MySQL based app out there right now, but a new comer could easily come in a generate big time buzz. Keep an eye out for Quicklogs as one of those.
Then there is the geek build it factor. As a computer enthusiast is it just fun to use something new like MongoDB. There is also the Oracle factor. What is Oracle going to do with MySQL? Is Larry Ellison going to wake up one morning drip and a MySQL book get pissed and kill it? Probably not but that thought is always out there. The bigger question is why is Oracle still keeping MySQL around?

Saturday, April 10, 2010

Migration weekend

This weekend we going to start migrating Quicklogs to use MongoEngine. Why the switch? We feel that the MongoEngine is the best is class Object-Document Mapper between Django and MongoDB. The switch will mean we have to re-write a lot of our queries but we fell now is a the time to pull the trigger on the update. The update will allow us to take advantage of more of the great features of Django that in the past we have had to write custom code to achieve.
MongoEngine - http://github.com/hmarr/mongoengine, http://hmarr.com/mongoengine/index.html

Thursday, March 4, 2010

The end of MS Paint

After more than 20 years the era of MS Paint will come to an end. The new up and comer: Project Gustav. Project Gustav will attempt to end MS Paints strangle hold on the 256 color free form drawing platform. My biggest worry is how am I now going to view a fax from MS Fax. What is next updating Mine Sweeper?



My guess is MS will decide on a final name like Paint twenty-ten, because Gustav is to catch as a product name. Check out more on Gustav on current home in the MS research website http://research.microsoft.com/en-us/projects/gustav/default.aspx