Category: Uncategorized

  • Scalability Services

    Codebelay provides scalability services.

    A faster website makes more money.

    We can triple the amount of traffic that your site can handle.

    We use the following technologies:

    1. Memcache
    2. Gearman
    3. Perlbal
    4. Database Performance Tuning
    5. PHP Performance Tuning
    6. Table De-normalization for Speed
    7. Cloud Services for Traffic Spikes
    8. CDN via Akamai or Amazon’s Cloudfront

    Please feel free to email me, barce[ a t] codebelay.com.

    Sites I have scaled:
    Gaia Online
    Dogster

    140logo

  • The Easiest Way to Deliver Your Web Project on Time

    This week a web project that I’m working on started to fall behind. On the key things that made this happen was adding a set of feature requests last minute.

    I understand it’s important to deliver value, but when new sets of features are added to a project, it causes the project to slip.

    What should you do?

    Learn to say, “No.”

    It’s hard to do, but take the design of the iPhone for example. Instead of saying yes to more features, Steve Jobs took the approach of saying “No,” in order to create something light-weight, elegant and a work of genius.

    Less is more.

  • OH HAI! Ads in UR RSS FEEDZ

    The NY Times now has ads in their RSS feeds. When did this happen? I’m off to research Pheedo who does the ads.

    OH HAI -- We'ze Ads
    OH HAI — We'ze Ads
  • Helping People Find Jobs

    At Codebelay we work with a number of recruiters who have helped secure jobs for a lot of our friends. Right now there are two recruiters who will loyally work for you in your corner.

    If you have expertise with Javascript, especially jquery, or SQL Server, or PHP, these are the folks to talk to.

  • Why I Joined the Long Now

    I’ve been reading the book, Anathem, as well as siding with the idea that the calmest and most rational way to lead life is with the long view. I am not saying that there is no magic to being in the now. Personally, modern society is too focused on the now and the near future instead of the long view.



    That’s why I joined The Long Now Foundation.

    Anyway, as a member, I get this cool looking, stainless steel card, preferred seating at seminars, and access to their videos. Kinda sounds like a pr0n site. lol.

    I think it’s great to support an organization that has debates about biotechnology, and future upcoming crises, e.g. the environment, food and energy shortages, and historical forces.

  • What School or My Parents Never Taught Me

    If there’s one emotion that’s colored my entire year, it’s been anger. I’m doing my best with the hand that I’ve been dealt, but I’m realizing now that the man I dreamed I would be just might not ever happen. It’s making me pissed.

    Let’s start off with things that I just haven’t learned:

    • controlling my emotions and impulses
    • how to trust people — i pretty much don’t
    • live in community and forge good relationships
    • how to organize for positive, social change

    This pretty much makes my life a solitary hell-hole. I’m working on learning these things, though.

    Now I’ll reflect on those things that I should’ve been taught by school or my parents but wasn’t. This is stuff I’ve learned on my own and often with the help of strangers, and I’m glad that I learned these things.

    • communicate well
    • how to meet the women I want without using the Internet
    • manage financial matters
    • code for a living
    • do practical things, to clean, cook, make, repair, grow food
    • be good mannered and know etiquette
    • accept responsibility
    • deal with grief, loss, and suffering
    • clicker training dogs

    Now that I look at it, my college degree is pretty useless except for down economic times when some HR stooge has to choose between someone with a degree and someone without. I really think my parents short changed me because during summers they would keep my locked up in my house, and I never really learned how to socialize or keep friendships. That really makes me and my dog, Niles, really similar because his previous owners locked him up in a yard, too, and that’s one of the reasons he’s messed up.

    What do you wish your parents or school taught you but didn’t? What did you learn on your own, and were glad you did?

  • ROFLCon Poised to Give LOLS

    I’ll be heading off to ROFLCon this evening. It’s a geek event where Scoblian passionates will gather in a secret power cabal and plan the overthrow of the non-passionates.

    pictures of rofl

    LOL

    I’m really there because the creators of ICanHasCheezBurger will be there talking about what it takes to harness the wisdom of crowds to make the funniest and cutest site on the Internets.

  • Hopes to Catch Up on His RSS Reading

    I’ve got some reading to do. 2000+ more posts to go, and I’m done.

    picture of rss feeds

  • Fun With GDB, Gnu’s Debugger

    Here’s a pretty compact version of strcmp:

    int bstrcmp(char *s1,char *s2) {
       while(*s1 == *s2++) {
          if(*s1++ == 0){ return 0; }
       }
       return (*(unsigned char *)s1 - *(unsigned char*)--s2);
    }
    

    The source that I used for compiling and calling this version of strcmp is here.

    Compile that code using:
    gcc -o strcmp -g strcmp.c

    Fire up the debugger using:
    gdb strcmp

    You’ll get the gdb prompt:
    (gdb)

    Set a break point at the start:
    b main

    The debugger will echo something like:
    Breakpoint 1 at 0x80483d5: file strcmp.c, line 6.
    (gdb)

    Then run the program:
    run

    The debugger will print out something like:
    Starting program: /home/somedude/bin/strcmp

    Breakpoint 1, main () at strcmp.c:6
    6 {
    (gdb)

    If you type n a few times, you’ll eventually get to some variable assignments.

    (gdb) n
    8	char s1[] = "better";
    (gdb) n
    9	char s2[] = "better than"; /* than this";*/
    (gdb) n
    11	int i_result = 0;
    (gdb) n
    13	i_result = bstrcmp(s1,s2);
    

    If you want to the values of these variables type:
    p i_result

    You get back:
    (gdb) p i_result
    $1 = 0

    To step into a function, type s:

    (gdb) s
    bstrcmp (s1=0xbf86b469 "better", s2=0xbf86b474 "better than") at strcmp.c:26
    26		while(*s1 == *s2++) { 
    (gdb) n
    27			if(*s1++ == 0){ return 0; } 
    (gdb) n
    26		while(*s1 == *s2++) { 
    (gdb) n
    27			if(*s1++ == 0){ return 0; } 
    (gdb) n
    26		while(*s1 == *s2++) { 
    (gdb) 
    

    At this point you can type things like:
    p s1
    p *s1
    p s2
    p *s2

    And you’ll get back the value of the pointers and what’s in memory.

    Next time we’ll go over how to do this with PHP running single threaded on debug mode on Apache.