際際滷

際際滷Share a Scribd company logo
際際滷 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 鍖le for copyright notices.

More Related Content

More from Nick Galbreath (11)

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

Recently uploaded (20)

PDF
M03-operating instructions in microprocessor.pdf
CherinetTekalign
PPTX
ai teaching assistant for visual learning.pptx
jamesmay2663
PDF
The power of storytelling in design.pdf
Zohaib421
PPTX
BOILER STEAM bana M ntpc kahalgaon boiler .pptx
didikesaadi1108
PDF
ABS system PPT 2025 for used automatic backing system .pdf
altron1331
PPTX
Modelling for etab and design on etabs for concrete
MohamedAttia601252
PPTX
Substitution Presentation in Dark Navy and Orange Geometric Style.pptx
hazlienasyiqeen
PDF
70% of Users Leave Unresponsive Sites Is Yours Driving Them Away?
Virtual Employee Pvt. Ltd.
PPTX
Design _of RC _Structure_Presentation.pptx
htunhtunLinn6
PPTX
DTL Phase with all presentation required
manishasri912
PPTX
the sigma cafe a b c d e f g h i j k l i
kamalpavlov
PDF
POA ARCHITECTURE SEM 4 UNIT2 18,19 CENTURY ARCHITECTURE
sachdevaa284
PPTX
Guildford Flames Adam Long Helmet Design Challenge 2025
Tom Hutchinson
PDF
LESSON LEARNING PLAN Subject: ICT Computer Systems Servicing (CSS)
sachidanacabel
PDF
animewitcher.cc https://animewitcher.cc/
Anime witcher
DOCX
LRC image social media marketing class design
yeshwimbu
PPTX
Lotus School Manikonda Best CBSE & SSC School in Hyderabad
CharanRks
PPTX
Hedgining through financil contracts (1).pptx
icuphamid
PPTX
Project Report on Corrosion (1).pptxkkkk
kaushikpkrishna2024
PPTX
Robotic Arm Control System for help of robots you can easily operate things t...
altron1331
M03-operating instructions in microprocessor.pdf
CherinetTekalign
ai teaching assistant for visual learning.pptx
jamesmay2663
The power of storytelling in design.pdf
Zohaib421
BOILER STEAM bana M ntpc kahalgaon boiler .pptx
didikesaadi1108
ABS system PPT 2025 for used automatic backing system .pdf
altron1331
Modelling for etab and design on etabs for concrete
MohamedAttia601252
Substitution Presentation in Dark Navy and Orange Geometric Style.pptx
hazlienasyiqeen
70% of Users Leave Unresponsive Sites Is Yours Driving Them Away?
Virtual Employee Pvt. Ltd.
Design _of RC _Structure_Presentation.pptx
htunhtunLinn6
DTL Phase with all presentation required
manishasri912
the sigma cafe a b c d e f g h i j k l i
kamalpavlov
POA ARCHITECTURE SEM 4 UNIT2 18,19 CENTURY ARCHITECTURE
sachdevaa284
Guildford Flames Adam Long Helmet Design Challenge 2025
Tom Hutchinson
LESSON LEARNING PLAN Subject: ICT Computer Systems Servicing (CSS)
sachidanacabel
animewitcher.cc https://animewitcher.cc/
Anime witcher
LRC image social media marketing class design
yeshwimbu
Lotus School Manikonda Best CBSE & SSC School in Hyderabad
CharanRks
Hedgining through financil contracts (1).pptx
icuphamid
Project Report on Corrosion (1).pptxkkkk
kaushikpkrishna2024
Robotic Arm Control System for help of robots you can easily operate things t...
altron1331
Ad

際際滷 show font sampler, black on white

  • 1. 際際滷 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 鍖le for copyright notices.

Editor's Notes