OS X Leopard DNS performance problem - enabling local name server

Posted by kusno mudiarto at October 12th, 2008

Lately I have been having problem with slow DNS lookup while browsing. You can see it when I browse, it took some time in the “looking up for youtube.com …” for example.

I googled around and tried several solutions as suggested by others.

  1. Using Open DNS (208.67.222.222, 208.67.220.220) and verizon? (4.2.2.1, 4.2.2.2, 4.2.2.3) as my dns server.
  2. Disable Apple IPv6 in System Preference -> Network -> Advanced -> Configure IPv6
  3. Change firefox dns preference in about:config -> network.dns.disableIPv6

All of those doesn’t seem to fix my problem. I tried the DNS Performance Test and it looks like it is ok, not too fast, but not too slow either; but even though DPT is running correctly, I still see that annoying problem.

I saw there was a suggestion on turning on local DNS server from macosxhints.

I followed it, and it works very good in my case, it fixes all my problems, and now I can browse very fast. There are several things that tripped me when I was installing this, so this is my notes for other brave enough to follow the direction.

Notes :

  • on step 2 (Set up your machine to run BIND server), you have to put forwarders inside the options section. At first I thought I should put it in the end of file, but it didn’t work, I just found it out after careful examination
  • You have to do step 3 (Create StartupItem for DNS). There are 2 files that have to be created there.
  • on step 6, you can start the DNS right away, or you can also try to start the dns server manually first by using this command (without quote): “/usr/sbin/named -f -g” . -f & -g is to  run the server in the foreground, not as a daemon. It is useful if you want to test your configuration
  • There is also a software “named-checkconf” that can check if your named configuration is correct or not.
  • Before switching your network settings to use the local dns, you can test it up by using nslookup like this (without quote): “nslookup yoursite.com - 127.0.0.1″. If your server is set up correctly, nslookup should return the ip address for yoursite.com

I hope this helps other who have the same problem like me.

Tags:

Posted in idea / rant| No Comments | 

Mercurial tips & tricks for mac

Posted by kusno mudiarto at July 28th, 2008

I am collecting several useful mercurial tricks for me :

- See diffs when committing in vim
see : http://www.selenic.com/mercurial/wiki/index.cgi/DiffsInCommitMessageInVIM
but instead of using the instruction as is, I have to modify the string a little bit to work in my mac:
what I did is replacing :

 $EDITOR "$HGTMP/msg" "$HGTMP/diff" || exit $?

with

 vim "+e $HGTMP/diff" '+set nobl buftype=help filetype=diff' "+vsplit $HGTMP/msg"
 

I’ll add more tricks later if I find any

Tags:

Posted in idea / rant| No Comments | 

Reminder to self. Never set the permission of the /

Posted by kusno mudiarto at July 24th, 2008

In a lapse of judgment, I set my hard drive permission to disable readonly for all user, except myself & admin (Using hard drive get info - sharing & permission ). The reasoning was because I can see my root when I enable wireless sharing.

It turned out to be a very bad decision though, my computer won’t boot up anymore. Luckily, I found some helps in the internet.

* first go into single user mode (by pressing command-s during bootup
* mount -a
* mount -uw
* chmod 755 /
* halt

and then restart your computer.

I hope it will fix your problem.

Tags:

Posted in idea / rant| No Comments | 

batch file rename in mac

Posted by kusno mudiarto at July 23rd, 2008

I am missing batch renaming functionality that I used to have in windows -> “ren *.xxx *.xxx.orig” in my macbook. But using utility “mmv”, I finally can do the same in mac & windows.

You can download the utility from here :

http://www.joel.lopes-da-silva.com/articles/computer-science-technology/62-tips-tricks/79-mmv-under-mac-os-x-leopard-for-mac-intel.html

some example usage :

http://debaday.debian.net/2007/06/13/mmv-mass-moving-and-renaming-files/

Tags:

Posted in idea / rant| No Comments | 

IPhone simulator breakpoints problem

Posted by kusno mudiarto at June 12th, 2008

Sometimes I got problem settings breakpoints. I found this solution in apple discussions:
x
As saggymac said:
“The default setting for debugging libraries and frameworks is Load Symbols Lazily. On occasion this causes breakpoints to not be hit. Turning off this setting makes it take longer to start debugging, but hits breakpoints more reliably.”
may be you should set this option OFF… (XCode-Preferences-Debugging)

Tags:

Posted in idea / rant| 1 Comment | 

Objective-C simple command line program and compilation

Posted by kusno mudiarto at June 4th, 2008

I am trying to compile a simple command line for experiment, and it is somehow not as obvious as I thought.

Here is a the very simple program I copied somewhere from internet

#import <Foundation/foundation.h>

int main( int argc, const char* argv[])
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

  NSObject *object = [[NSObject alloc] init];
  NSLog(@"Created Object: %@", object);

  [pool release];
  return 0;
}

and here is how to compile it :

gcc main.m -o main -ObjC -framework Foundation

setting “-framework Foundation” is the one that threw me off. I couldn’t find it anywhere !

Tags:

Posted in idea / rant| No Comments | 

My os x nginx configuration

Posted by kusno mudiarto at June 2nd, 2008

First, to install nginx do this :

sudo port install nginx

then use this configuration - this is only for testing, with setting for my os x (for access log / pids). It also use proxy to merb

# nginx using macports installation
# for my local testing
user kusno staff;
worker_processes  1;

pid /opt/local/var/run/nginx.pid;
error_log  /opt/local/var/log/nginx/error.log  info;

events {
    worker_connections  16;
}

http {
  include        etc/nginx/mime.types;
  default_type   application/octet-stream;
  access_log /opt/local/var/log/nginx/access.log;
  sendfile        on;
  #tcp_nopush     on;
  keepalive_timeout  65;
  tcp_nodelay        on;
  gzip  on;
  gzip_min_length  1100;
  gzip_buffers     4 8k;
  gzip_types       text/plain;
  client_max_body_size 100m;

  upstream merb {
    server 127.0.0.1:4000;
  }

  server {
    listen       80;
    server_name  localhost;

    root /Users/kusno/ezify/public;

    index  index.html index.htm;

    location / {
      proxy_set_header  X-Real-IP  $remote_addr;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect false;
      #if (-f $request_filename/index.html) {
      #  rewrite (.*) $1/index.html break;
      #}
      #if (-f $request_filename.html) {
      #  rewrite (.*) $1.html break;
      #}
      if (-f $request_filename) {
        rewrite (.*) $1 break;
      }
      if (!-f $request_filename) {
        proxy_pass http://merb;
        break;
      }
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
  }
}

use this to restart nginx :

sudo launchctl stop org.macports.nginx
sudo launchctl start org.macports.nginx

Tags:

Posted in idea / rant| 1 Comment | 

Perl breakpoint

Posted by kusno mudiarto at May 8th, 2008

Put :

$DB::single=2;

to enable breakpoint in the code. Don’t forget to run with -d

Tags:

Posted in idea / rant| No Comments | 

Merb 0.9.2 xml.builder problem

Posted by kusno mudiarto at April 24th, 2008

Somehow I cannot render .xml content type with merb 0.9.2; maybe I messed up something in my configuration. I keep getting this error :

No Template Found : ...... create.xml.*

although I’m pretty sure that I have create.xml.builder in the specified directory. It seems like the builder was not registered correctly. I was able to fix it by adding:

require 'merb-builder'

in the app/applications.rb

after that merb recognize create.xml.builder file that was in my views

update:

I think the better way is to do it in config/init.rb and add

dependency 'merb-builder'

somewhere in Merb::BootLoader.after_app_loads

Tags:

Posted in idea / rant| 1 Comment | 

Do NOT share mercurial repository between VM :(

Posted by kusno mudiarto at March 31st, 2008

This bug has bitten me once .. I share my mercurial repo between my mac & my linux (running on vmware fusion) using vmware shared disk. Because mercurial is using hardlink and copy-on-write technique, somehow my repository get messed up when I modify it on one platform, and commit it on different platform. NOTE TO SELF: Don’t ever do that again !!!. I’m removing svn & hg from my linux vm, just to be safe..

Posted in idea / rant| No Comments | 

| Next Postings »