SlideShare a Scribd company logo
1 of 37
Slide Show
Font Sampler
      Black on White Edition, v2012-05-28
        How well do fonts convert online?
  How good do they look on washed up projectors?
    How big is too big? How small is too small?
Nick Galbreath nickg@client9.com @ngalbreath
Original Sources and
Alternative Versions
    This presentation is available on multiple
 online slide-sharing services and comes in both
      black-text on white-background and
             white-on-black versions.


   http://goo.gl/Pwxoc
blog.client9.com/2012/05/
Problems

• How good is the font conversion when a
  presentation is posted online?
• How good to fonts look on washed out
  projectors? From how far away?
• For plain text? For computer code?
Solutions
• This deck contains the most popular sans-
  serif fonts in 18, 24, 36, 42, 48, 64 and if
  room, 72 point-size.
• Then common monospace fonts at
  24, 30, 32 points along with some computer
  code at 32 points.
• This was created with Keynote 5.1.1 using a
  slide size of 1024x768 on Mac OS X 10.7.4
  and uploaded to various services.
• The quick brown fox jumped over the
  lazy dog. Arial 42.

•The quick brown fox jumped over the
  lazy dog. Futura 42.

• The quick brown fox jumped over the lazy
  dog. Gill Sans 42.

• The quick brown fox jumped over the
  lazy dog. Helvetica 42.

• The quick brown fox jumped over the
  lazy dog. Helvetica Neue 42.

• The quick brown fox jumped over the
  lazy dog. Helvetica Neue Medium 42.
• The quick brown fox jumped over the
  lazy dog. Helvetica Neue 42.
• The quick brown fox jumped over the
  lazy dog. Trebuchet MS 42.

• The quick brown fox jumped over
  the lazy dog. Verdana 42.

• The quick brown fox jumped over the
  lazy dog. Helvetica Light 42

• The quick brown fox jumped over the
  lazy dog. Helvetica Neue Light 42
•   The quick brown fox jumped over the lazy dog.
    Arial 36.

•The quick brown fox jumped over the lazy
    dog. Futura 36.

•   The quick brown fox jumped over the lazy dog.
    Gill Sans 36.

•   The quick brown fox jumped over the lazy dog.
    Helvetica 36.

• The quick brown fox jumped over the lazy
    dog. Helvetica Neue 36.

• The quick brown fox jumped over the lazy
    dog. Helvetica Neue Medium 36.
• The quick brown fox jumped over the lazy
    dog. Helvetica Neue 36.

• The quick brown fox jumped over the lazy
    dog. Trebuchet MS 36.

• The quick brown fox jumped over the
    lazy dog. Verdana 36.

• The quick brown fox jumped over the lazy
    dog. Helvetica Light 36

• The quick brown fox jumped over the lazy dog.
    Helvetica Neue Light 36

•   The quick brown fox jumped over the lazy dog.
    Helvetica Neue Light 36
•   The quick brown fox jumped over the lazy dog.
    Arial 30.

• The quick brown fox jumped over the lazy dog.
    Futura 30.

•   The quick brown fox jumped over the lazy dog.
    Gill Sans 30.

•   The quick brown fox jumped over the lazy dog.
    Helvetica 30.

•   The quick brown fox jumped over the lazy dog.
    Helvetica Neue 30.

•   The quick brown fox jumped over the lazy dog.
    Helvetica Neue Medium 30.
•   The quick brown fox jumped over the lazy dog.
    Helvetica Neue 30.

•   The quick brown fox jumped over the lazy dog.
    Trebuchet MS 30.

•   The quick brown fox jumped over the lazy dog.
    Verdana 30.

•   The quick brown fox jumped over the lazy dog.
    Helvetica Light 30

•   The quick brown fox jumped over the lazy dog.
    Helvetica Neue Light 30
Arial
The quick brown fox jumped
   over the lazy dog. 72
   The quick brown fox jumped
      over the lazy dog. 64
 The quick brown fox jumped over the lazy
                 dog. 48
The quick brown fox jumped over the lazy dog. 42
   The quick brown fox jumped over the lazy dog. 36
          The quick brown fox jumped over the lazy dog. 24
               The quick brown fox jumped over the lazy dog. 18
Futura Medium
  The quick brown fox jumped
     over the lazy dog. 64
The quick brown fox jumped over the lazy
                dog. 48
The quick brown fox jumped over the lazy dog.
 The quick brown fox jumped over the lazy dog. 36
         The quick brown fox jumped over the lazy dog. 24
               The quick brown fox jumped over the lazy dog.18
Gill Sans Regular
 The quick brown fox jumped
    over the lazy dog. 72
The quick brown fox jumped over
         the lazy dog. 64
The quick brown fox jumped over the lazy dog.
 The quick brown fox jumped over the lazy dog. 42
    The quick brown fox jumped over the lazy dog. 36
            The quick brown fox jumped over the lazy dog. 24
                  The quick brown fox jumped over the lazy dog. 18
Helvetica Regular
The quick brown fox jumped
   over the lazy dog. 72
   The quick brown fox jumped
      over the lazy dog. 64
 The quick brown fox jumped over the lazy
                 dog. 48
The quick brown fox jumped over the lazy dog. 42
   The quick brown fox jumped over the lazy dog. 36
          The quick brown fox jumped over the lazy dog. 24
               The quick brown fox jumped over the lazy dog. 18
Helvetica Neue Reg
The quick brown fox jumped
   over the lazy dog. 72
 The quick brown fox jumped
    over the lazy dog. 64
The quick brown fox jumped over the lazy
                dog. 48
The quick brown fox jumped over the lazy dog.
  The quick brown fox jumped over the lazy dog. 36
         The quick brown fox jumped over the lazy dog. 24
              The quick brown fox jumped over the lazy dog. 18
Helvetica Neue Med
    The quick brown fox
 jumped over the lazy dog.
 The quick brown fox jumped
    over the lazy dog. 64
The quick brown fox jumped over the lazy
                dog. 48
The quick brown fox jumped over the lazy dog.
  The quick brown fox jumped over the lazy dog. 36
         The quick brown fox jumped over the lazy dog. 24
              The quick brown fox jumped over the lazy dog. 18
Helvetica Light
The quick brown fox jumped
   over the lazy dog. 72
  The quick brown fox jumped
     over the lazy dog. 64
The quick brown fox jumped over the lazy
                dog. 48
The quick brown fox jumped over the lazy dog.42
   The quick brown fox jumped over the lazy dog. 36
          The quick brown fox jumped over the lazy dog. 24
               The quick brown fox jumped over the lazy dog. 18
Helvetica Neue Light
The quick brown fox jumped
   over the lazy dog. 72
The quick brown fox jumped over
        the lazy dog. 64
 The quick brown fox jumped over the lazy
                dog. 48
The quick brown fox jumped over the lazy dog. 42
   The quick brown fox jumped over the lazy dog. 36
          The quick brown fox jumped over the lazy dog. 24
               The quick brown fox jumped over the lazy dog. 18
Trebuchet MS
The quick brown fox jumped
   over the lazy dog. 72
 The quick brown fox jumped
    over the lazy dog. 64
The quick brown fox jumped over the lazy
                dog. 48
The quick brown fox jumped over the lazy dog.
  The quick brown fox jumped over the lazy dog.36
         The quick brown fox jumped over the lazy dog. 24
               The quick brown fox jumped over the lazy dog. 18
Verdana
 The quick brown fox jumped
    over the lazy dog. 72
The quick brown fox jumped over
         the lazy dog. 64
The quick brown fox jumped over the lazy dog.
 The quick brown fox jumped over the lazy dog. 42
    The quick brown fox jumped over the lazy dog. 36
           The quick brown fox jumped over the lazy dog. 24
                 The quick brown fox jumped over the lazy dog. 18
Monospace
• #The ($quick) {brown fox} jumped over >>
  the /* lazy */ “dog”! && ‘n00b’ || die
  +12345.6789; 0 vs. O vs. o 1 vs. I vs. l
  Andale Mono 30

• #The ($quick) {brown fox} jumped over >>
  the /* lazy */ “dog”! && ‘n00b’ || die
  +12345.6789; 0 vs. O vs. o 1 vs. I vs. l
  Menlo 30

• #The ($quick) {brown fox} jumped over >>
  the /* lazy */ “dog”! && ‘n00b’ || die
  +12345.6789; 0 vs. O vs. o 1 vs. I vs. l
  Monaco 30
•   #The ($quick) {brown fox} jumped over >> the /*
    lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0
    vs. O vs. o 1 vs. I vs. l
    Andale Mono 24

•   #The ($quick) {brown fox} jumped over >> the /*
    lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0
    vs. O vs. o 1 vs. I vs. l
    Menlo 24

•   #The ($quick) {brown fox} jumped over >> the /*
    lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0
    vs. O vs. o 1 vs. I vs. l
    Monaco 24
Andale Mono
• #The   ($quick) {brown fox} jumped over
    >> the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (32 pt)

• #The   ($quick) {brown fox} jumped over >>
    the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (30 pt)
•   #The ($quick) {brown fox} jumped over >> the /*
    lazy */ dog! && n00b || die +12345.6789;
     0 vs. O vs. o 1 vs. I vs. l (24 pt)
Courier
• #The   ($quick) {brown fox} jumped over
    >> the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (32 pt)

• #The   ($quick) {brown fox} jumped over >>
    the /* lazy */ dog! && n00b || die
    +12345.6789; 0 vs. O vs. o 1 vs. I vs. l
    (30 pt)
•   #The ($quick) {brown fox} jumped over >> the /*
    lazy */ dog! && n00b || die +12345.6789;
     0 vs. O vs. o 1 vs. I vs. l (24 pt)
Courier New
• #The   ($quick) {brown fox} jumped over
    >> the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (32 pt)

• #The   ($quick) {brown fox} jumped over >>
    the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (30 pt)
•   #The ($quick) {brown fox} jumped over >> the /*
    lazy */ dog! && n00b || die +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (30 pt)
Menlo
• #The   ($quick) {brown fox} jumped over
    >> the /* lazy */ dog! && n00b || die
    +12345.6789;
     0 vs. O vs. o 1 vs. I vs. l (32 pt)

• #The   ($quick) {brown fox} jumped over >>
    the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (30 pt)
•   #The ($quick) {brown fox} jumped over >> the /*
    lazy */ dog! && n00b || die +12345.6789;
     0 vs. O vs. o 1 vs. I vs. l (24 pt)
Monaco
• #The   ($quick) {brown fox} jumped over
    >> the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (32 pt)

• #The   ($quick) {brown fox} jumped over >>
    the /* lazy */ dog! && n00b || die
    +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (30 pt)

•   #The ($quick) {brown fox} jumped over >> the /* lazy
    */ dog! && n00b || die +12345.6789;
      0 vs. O vs. o 1 vs. I vs. l (24 pt)
Andale Mono 30
for (lim = nmemb; lim != 0; lim >>= 1) {
     p = base + (lim >> 1) * size;
     cmp = (*compar)(key, p);
     if (cmp == 0)
        return ((void *)p);
     if (cmp > 0) { /* key > p: move right */
        base = (char *)p + size;
        lim--;
     }     /* else move left */
   }
return (NULL);
Courier 30
for (lim = nmemb; lim != 0; lim >>= 1) {
! ! p = base + (lim >> 1) * size;
! ! cmp = (*compar)(key, p);
! ! if (cmp == 0)
! ! ! return ((void *)p);
! ! if (cmp > 0) {! /* key > p: move right */
! ! ! base = (char *)p + size;
! ! ! lim--;
! ! }! ! /* else move left */
! }
return (NULL);
Courier New 30

for (lim = nmemb; lim != 0; lim >>= 1) {
     p = base + (lim >> 1) * size;
     cmp = (*compar)(key, p);
     if (cmp == 0)
        return ((void *)p);
     if (cmp > 0) { /* key > p: move right */
        base = (char *)p + size;
        lim--;
     }     /* else move left */
   }
return (NULL);
Menlo 30
for (lim = nmemb; lim != 0; lim >>= 1) {
! ! p = base + (lim >> 1) * size;
! ! cmp = (*compar)(key, p);
! ! if (cmp == 0)
! ! ! return ((void *)p);
! ! if (cmp > 0) {! /* key > p: move right */
! ! ! base = (char *)p + size;
! ! ! lim--;
! ! }! ! /* else move left */
! }
! return (NULL);
Monaco 30
for (lim = nmemb; lim != 0; lim >>= 1) {
	 	 p = base + (lim >> 1) * size;
	 	 cmp = (*compar)(key, p);
	 	 if (cmp == 0)
	 	 	 return ((void *)p);
	 	 if (cmp > 0) {	 /* key > p: move right */
	 	 	 base = (char *)p + size;
	 	 	 lim--;
	 	 }	 	 /* else move left */
	 }
return (NULL);
Andale Mono 24

for (lim = nmemb; lim != 0; lim >>= 1) {
      p = base + (lim >> 1) * size;
      cmp = (*compar)(key, p);
      if (cmp == 0)
          return ((void *)p);
      if (cmp > 0) { /* key > p: move right */
          base = (char *)p + size;
          lim--;
      }      /* else move left */
   }
return (NULL);
Menlo 24

for (lim = nmemb; lim != 0; lim >>= 1) {
! ! p = base + (lim >> 1) * size;
! ! cmp = (*compar)(key, p);
! ! if (cmp == 0)
! ! ! return ((void *)p);
! ! if (cmp > 0) {! /* key > p: move right */
! ! ! base = (char *)p + size;
! ! ! lim--;
! ! }! ! /* else move left */
! }
! return (NULL);
Monaco 24

for (lim = nmemb; lim != 0; lim >>= 1) {
	 	 p = base + (lim >> 1) * size;
	 	 cmp = (*compar)(key, p);
	 	 if (cmp == 0)
	 	 	 return ((void *)p);
	 	 if (cmp > 0) {	 /* key > p: move right */
	 	 	 base = (char *)p + size;
	 	 	 lim--;
	 	 }	 	 /* else move left */
	 }
return (NULL);
Acknowledgements


• Source code sample is from FreeBSD
  “bsearch.c” http://bit.ly/KDYqwl
• Please see file for copyright notices.

More Related Content

More from Nick Galbreath

Rebooting Software Development - OWASP AppSecUSA
Rebooting Software Development - OWASP AppSecUSA Rebooting Software Development - OWASP AppSecUSA
Rebooting Software Development - OWASP AppSecUSA Nick Galbreath
 
libinjection and sqli obfuscation, presented at OWASP NYC
libinjection and sqli obfuscation, presented at OWASP NYClibinjection and sqli obfuscation, presented at OWASP NYC
libinjection and sqli obfuscation, presented at OWASP NYCNick Galbreath
 
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forumlibinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open ForumNick Galbreath
 
Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012
Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012
Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012Nick Galbreath
 
Time tested php with libtimemachine
Time tested php with libtimemachineTime tested php with libtimemachine
Time tested php with libtimemachineNick Galbreath
 
libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012Nick Galbreath
 
New techniques in sql obfuscation, from DEFCON 20
New techniques in sql obfuscation, from DEFCON 20New techniques in sql obfuscation, from DEFCON 20
New techniques in sql obfuscation, from DEFCON 20Nick Galbreath
 
Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012Nick Galbreath
 
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012Nick Galbreath
 
Rate Limiting at Scale, from SANS AppSec Las Vegas 2012
Rate Limiting at Scale, from SANS AppSec Las Vegas 2012Rate Limiting at Scale, from SANS AppSec Las Vegas 2012
Rate Limiting at Scale, from SANS AppSec Las Vegas 2012Nick Galbreath
 
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012Nick Galbreath
 

More from Nick Galbreath (11)

Rebooting Software Development - OWASP AppSecUSA
Rebooting Software Development - OWASP AppSecUSA Rebooting Software Development - OWASP AppSecUSA
Rebooting Software Development - OWASP AppSecUSA
 
libinjection and sqli obfuscation, presented at OWASP NYC
libinjection and sqli obfuscation, presented at OWASP NYClibinjection and sqli obfuscation, presented at OWASP NYC
libinjection and sqli obfuscation, presented at OWASP NYC
 
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forumlibinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
libinjection: new technique in detecting SQLi attacks, iSEC Partners Open Forum
 
Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012
Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012
Continuous Deployment - The New #1 Security Feature, from BSildesLA 2012
 
Time tested php with libtimemachine
Time tested php with libtimemachineTime tested php with libtimemachine
Time tested php with libtimemachine
 
libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012libinjection: a C library for SQLi detection, from Black Hat USA 2012
libinjection: a C library for SQLi detection, from Black Hat USA 2012
 
New techniques in sql obfuscation, from DEFCON 20
New techniques in sql obfuscation, from DEFCON 20New techniques in sql obfuscation, from DEFCON 20
New techniques in sql obfuscation, from DEFCON 20
 
Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012
 
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
Fraud Engineering, from Merchant Risk Council Annual Meeting 2012
 
Rate Limiting at Scale, from SANS AppSec Las Vegas 2012
Rate Limiting at Scale, from SANS AppSec Las Vegas 2012Rate Limiting at Scale, from SANS AppSec Las Vegas 2012
Rate Limiting at Scale, from SANS AppSec Las Vegas 2012
 
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
 

Recently uploaded

Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...kumaririma588
 
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...sonalitrivedi431
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...Pooja Nehwal
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...Call Girls in Nagpur High Profile
 
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...karishmasinghjnh
 
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...RitikaRoy32
 
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.Nitya salvi
 
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...amitlee9823
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja Nehwal
 
Hire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls AgencyHire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls AgencyNitya salvi
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Call Girls in Nagpur High Profile
 
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...Delhi Call girls
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...amitlee9823
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...SUHANI PANDEY
 
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...instagramfab782445
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 

Recently uploaded (20)

Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...Verified Trusted Call Girls Adugodi💘 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls Adugodi💘 9352852248 Good Looking standard Profil...
 
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
💫✅jodhpur 24×7 BEST GENUINE PERSON LOW PRICE CALL GIRL SERVICE FULL SATISFACT...
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Hy...
 
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Basapura ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
 
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
👉 Call Girls Service Amritsar 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Agen...
 
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
UI:UX Design and Empowerment Strategies for Underprivileged Transgender Indiv...
 
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️call girls in Dakshinpuri  (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Dakshinpuri (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
 
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
❤Personal Whatsapp Number 8617697112 Samba Call Girls 💦✅.
 
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
RT Nagar Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Bang...
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
 
Hire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls AgencyHire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
Hire 💕 8617697112 Meerut Call Girls Service Call Girls Agency
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 105, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
 
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
call girls in Vasundhra (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝...
 
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
Call Girls Basavanagudi Just Call 👗 7737669865 👗 Top Class Call Girl Service ...
 
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Kalyani Nagar ( Pune ) Call ON 8005736733 Starting From ...
 
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
Abortion pill for sale in Muscat (+918761049707)) Get Cytotec Cash on deliver...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 

Slide show font sampler, black on white

  • 1. Slide Show Font Sampler Black on White Edition, v2012-05-28 How well do fonts convert online? How good do they look on washed up projectors? How big is too big? How small is too small? Nick Galbreath nickg@client9.com @ngalbreath
  • 2. Original Sources and Alternative Versions This presentation is available on multiple online slide-sharing services and comes in both black-text on white-background and white-on-black versions. http://goo.gl/Pwxoc blog.client9.com/2012/05/
  • 3. Problems • How good is the font conversion when a presentation is posted online? • How good to fonts look on washed out projectors? From how far away? • For plain text? For computer code?
  • 4. Solutions • This deck contains the most popular sans- serif fonts in 18, 24, 36, 42, 48, 64 and if room, 72 point-size. • Then common monospace fonts at 24, 30, 32 points along with some computer code at 32 points. • This was created with Keynote 5.1.1 using a slide size of 1024x768 on Mac OS X 10.7.4 and uploaded to various services.
  • 5. • The quick brown fox jumped over the lazy dog. Arial 42. •The quick brown fox jumped over the lazy dog. Futura 42. • The quick brown fox jumped over the lazy dog. Gill Sans 42. • The quick brown fox jumped over the lazy dog. Helvetica 42. • The quick brown fox jumped over the lazy dog. Helvetica Neue 42. • The quick brown fox jumped over the lazy dog. Helvetica Neue Medium 42.
  • 6. • The quick brown fox jumped over the lazy dog. Helvetica Neue 42. • The quick brown fox jumped over the lazy dog. Trebuchet MS 42. • The quick brown fox jumped over the lazy dog. Verdana 42. • The quick brown fox jumped over the lazy dog. Helvetica Light 42 • The quick brown fox jumped over the lazy dog. Helvetica Neue Light 42
  • 7. The quick brown fox jumped over the lazy dog. Arial 36. •The quick brown fox jumped over the lazy dog. Futura 36. • The quick brown fox jumped over the lazy dog. Gill Sans 36. • The quick brown fox jumped over the lazy dog. Helvetica 36. • The quick brown fox jumped over the lazy dog. Helvetica Neue 36. • The quick brown fox jumped over the lazy dog. Helvetica Neue Medium 36.
  • 8. • The quick brown fox jumped over the lazy dog. Helvetica Neue 36. • The quick brown fox jumped over the lazy dog. Trebuchet MS 36. • The quick brown fox jumped over the lazy dog. Verdana 36. • The quick brown fox jumped over the lazy dog. Helvetica Light 36 • The quick brown fox jumped over the lazy dog. Helvetica Neue Light 36 • The quick brown fox jumped over the lazy dog. Helvetica Neue Light 36
  • 9. The quick brown fox jumped over the lazy dog. Arial 30. • The quick brown fox jumped over the lazy dog. Futura 30. • The quick brown fox jumped over the lazy dog. Gill Sans 30. • The quick brown fox jumped over the lazy dog. Helvetica 30. • The quick brown fox jumped over the lazy dog. Helvetica Neue 30. • The quick brown fox jumped over the lazy dog. Helvetica Neue Medium 30.
  • 10. The quick brown fox jumped over the lazy dog. Helvetica Neue 30. • The quick brown fox jumped over the lazy dog. Trebuchet MS 30. • The quick brown fox jumped over the lazy dog. Verdana 30. • The quick brown fox jumped over the lazy dog. Helvetica Light 30 • The quick brown fox jumped over the lazy dog. Helvetica Neue Light 30
  • 11. Arial The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog. 42 The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 12. Futura Medium The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog.18
  • 13. Gill Sans Regular The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. 42 The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 14. Helvetica Regular The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog. 42 The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 15. Helvetica Neue Reg The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 16. Helvetica Neue Med The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 17. Helvetica Light The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog.42 The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 18. Helvetica Neue Light The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog. 42 The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 19. Trebuchet MS The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. 48 The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog.36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 20. Verdana The quick brown fox jumped over the lazy dog. 72 The quick brown fox jumped over the lazy dog. 64 The quick brown fox jumped over the lazy dog. The quick brown fox jumped over the lazy dog. 42 The quick brown fox jumped over the lazy dog. 36 The quick brown fox jumped over the lazy dog. 24 The quick brown fox jumped over the lazy dog. 18
  • 22. • #The ($quick) {brown fox} jumped over >> the /* lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l Andale Mono 30 • #The ($quick) {brown fox} jumped over >> the /* lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l Menlo 30 • #The ($quick) {brown fox} jumped over >> the /* lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l Monaco 30
  • 23. #The ($quick) {brown fox} jumped over >> the /* lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l Andale Mono 24 • #The ($quick) {brown fox} jumped over >> the /* lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l Menlo 24 • #The ($quick) {brown fox} jumped over >> the /* lazy */ “dog”! && ‘n00b’ || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l Monaco 24
  • 24. Andale Mono • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (32 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (30 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (24 pt)
  • 25. Courier • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (32 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (30 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (24 pt)
  • 26. Courier New • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (32 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (30 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (30 pt)
  • 27. Menlo • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (32 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (30 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (24 pt)
  • 28. Monaco • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (32 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (30 pt) • #The ($quick) {brown fox} jumped over >> the /* lazy */ dog! && n00b || die +12345.6789; 0 vs. O vs. o 1 vs. I vs. l (24 pt)
  • 29. Andale Mono 30 for (lim = nmemb; lim != 0; lim >>= 1) { p = base + (lim >> 1) * size; cmp = (*compar)(key, p); if (cmp == 0) return ((void *)p); if (cmp > 0) { /* key > p: move right */ base = (char *)p + size; lim--; } /* else move left */ } return (NULL);
  • 30. Courier 30 for (lim = nmemb; lim != 0; lim >>= 1) { ! ! p = base + (lim >> 1) * size; ! ! cmp = (*compar)(key, p); ! ! if (cmp == 0) ! ! ! return ((void *)p); ! ! if (cmp > 0) {! /* key > p: move right */ ! ! ! base = (char *)p + size; ! ! ! lim--; ! ! }! ! /* else move left */ ! } return (NULL);
  • 31. Courier New 30 for (lim = nmemb; lim != 0; lim >>= 1) { p = base + (lim >> 1) * size; cmp = (*compar)(key, p); if (cmp == 0) return ((void *)p); if (cmp > 0) { /* key > p: move right */ base = (char *)p + size; lim--; } /* else move left */ } return (NULL);
  • 32. Menlo 30 for (lim = nmemb; lim != 0; lim >>= 1) { ! ! p = base + (lim >> 1) * size; ! ! cmp = (*compar)(key, p); ! ! if (cmp == 0) ! ! ! return ((void *)p); ! ! if (cmp > 0) {! /* key > p: move right */ ! ! ! base = (char *)p + size; ! ! ! lim--; ! ! }! ! /* else move left */ ! } ! return (NULL);
  • 33. Monaco 30 for (lim = nmemb; lim != 0; lim >>= 1) { p = base + (lim >> 1) * size; cmp = (*compar)(key, p); if (cmp == 0) return ((void *)p); if (cmp > 0) { /* key > p: move right */ base = (char *)p + size; lim--; } /* else move left */ } return (NULL);
  • 34. Andale Mono 24 for (lim = nmemb; lim != 0; lim >>= 1) { p = base + (lim >> 1) * size; cmp = (*compar)(key, p); if (cmp == 0) return ((void *)p); if (cmp > 0) { /* key > p: move right */ base = (char *)p + size; lim--; } /* else move left */ } return (NULL);
  • 35. Menlo 24 for (lim = nmemb; lim != 0; lim >>= 1) { ! ! p = base + (lim >> 1) * size; ! ! cmp = (*compar)(key, p); ! ! if (cmp == 0) ! ! ! return ((void *)p); ! ! if (cmp > 0) {! /* key > p: move right */ ! ! ! base = (char *)p + size; ! ! ! lim--; ! ! }! ! /* else move left */ ! } ! return (NULL);
  • 36. Monaco 24 for (lim = nmemb; lim != 0; lim >>= 1) { p = base + (lim >> 1) * size; cmp = (*compar)(key, p); if (cmp == 0) return ((void *)p); if (cmp > 0) { /* key > p: move right */ base = (char *)p + size; lim--; } /* else move left */ } return (NULL);
  • 37. Acknowledgements • Source code sample is from FreeBSD “bsearch.c” http://bit.ly/KDYqwl • Please see file for copyright notices.

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n