SlideShare une entreprise Scribd logo
1  sur  37
Slide Show
Font Sampler
      White on Black 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.

Contenu connexe

Plus de Nick Galbreath

Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Nick Galbreath
 
Fixing security by fixing software development
Fixing security by fixing software developmentFixing security by fixing software development
Fixing security by fixing software developmentNick Galbreath
 
DevOpsDays Austin 2013 Reading List
DevOpsDays Austin 2013 Reading ListDevOpsDays Austin 2013 Reading List
DevOpsDays Austin 2013 Reading ListNick Galbreath
 
Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013
Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013
Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013Nick Galbreath
 
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013Nick 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
 
Slide show font sampler, black on white
Slide show font sampler, black on whiteSlide show font sampler, black on white
Slide show font sampler, black on whiteNick 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
 

Plus de Nick Galbreath (17)

Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013Faster Secure Software Development with Continuous Deployment - PH Days 2013
Faster Secure Software Development with Continuous Deployment - PH Days 2013
 
Fixing security by fixing software development
Fixing security by fixing software developmentFixing security by fixing software development
Fixing security by fixing software development
 
DevOpsDays Austin 2013 Reading List
DevOpsDays Austin 2013 Reading ListDevOpsDays Austin 2013 Reading List
DevOpsDays Austin 2013 Reading List
 
Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013
Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013
Care and Feeding of Large Scale Graphite Installations - DevOpsDays Austin 2013
 
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
SQL-RISC: New Directions in SQLi Prevention - RSA USA 2013
 
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
 
Slide show font sampler, black on white
Slide show font sampler, black on whiteSlide show font sampler, black on white
Slide show font sampler, black on white
 
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
 

Dernier

办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一
办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一
办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一F dds
 
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10uasjlagroup
 
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)jennyeacort
 
How to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our SiteHow to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our Sitegalleryaagency
 
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`dajasot375
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIyuj
 
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts ServiceCall Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Servicejennyeacort
 
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证nhjeo1gg
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书zdzoqco
 
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一lvtagr7
 
Design Portfolio - 2024 - William Vickery
Design Portfolio - 2024 - William VickeryDesign Portfolio - 2024 - William Vickery
Design Portfolio - 2024 - William VickeryWilliamVickery6
 
西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造kbdhl05e
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一Fi sss
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,Aginakm1
 
毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree 毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree ttt fff
 
group_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfgroup_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfneelspinoy
 
3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdfSwaraliBorhade
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...katerynaivanenko1
 
Untitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptxUntitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptxmapanig881
 

Dernier (20)

办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一
办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一
办理学位证(SFU证书)西蒙菲莎大学毕业证成绩单原版一比一
 
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
原版美国亚利桑那州立大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
CREATING A POSITIVE SCHOOL CULTURE CHAPTER 10
 
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
Call Us ✡️97111⇛47426⇛Call In girls Vasant Vihar༒(Delhi)
 
How to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our SiteHow to Be Famous in your Field just visit our Site
How to Be Famous in your Field just visit our Site
 
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
Abu Dhabi Call Girls O58993O4O2 Call Girls in Abu Dhabi`
 
How to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AIHow to Empower the future of UX Design with Gen AI
How to Empower the future of UX Design with Gen AI
 
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts ServiceCall Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
Call Girls in Ashok Nagar Delhi ✡️9711147426✡️ Escorts Service
 
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
在线办理ohio毕业证俄亥俄大学毕业证成绩单留信学历认证
 
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
办理卡尔顿大学毕业证成绩单|购买加拿大文凭证书
 
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
定制(RMIT毕业证书)澳洲墨尔本皇家理工大学毕业证成绩单原版一比一
 
Design Portfolio - 2024 - William Vickery
Design Portfolio - 2024 - William VickeryDesign Portfolio - 2024 - William Vickery
Design Portfolio - 2024 - William Vickery
 
西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造西北大学毕业证学位证成绩单-怎么样办伪造
西北大学毕业证学位证成绩单-怎么样办伪造
 
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
(办理学位证)埃迪斯科文大学毕业证成绩单原版一比一
 
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
'CASE STUDY OF INDIRA PARYAVARAN BHAVAN DELHI ,
 
毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree 毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲弗林德斯大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
group_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdfgroup_15_empirya_p1projectIndustrial.pdf
group_15_empirya_p1projectIndustrial.pdf
 
3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf3D Printing And Designing Final Report.pdf
3D Printing And Designing Final Report.pdf
 
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
MT. Marseille an Archipelago. Strategies for Integrating Residential Communit...
 
Untitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptxUntitled presedddddddddddddddddntation (1).pptx
Untitled presedddddddddddddddddntation (1).pptx
 

Slide show font sampler, white on black

  • 1. Slide Show Font Sampler White on Black 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.

Notes de l'éditeur

  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