US20130215126A1 - Managing Font Distribution - Google Patents
Managing Font Distribution Download PDFInfo
- Publication number
- US20130215126A1 US20130215126A1 US13/399,146 US201213399146A US2013215126A1 US 20130215126 A1 US20130215126 A1 US 20130215126A1 US 201213399146 A US201213399146 A US 201213399146A US 2013215126 A1 US2013215126 A1 US 2013215126A1
- Authority
- US
- United States
- Prior art keywords
- computing device
- fonts
- user
- service provider
- font
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000009826 distribution Methods 0.000 title description 22
- 230000015654 memory Effects 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 45
- 239000013589 supplement Substances 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 description 58
- 238000004891 communication Methods 0.000 description 22
- 230000000153 supplemental effect Effects 0.000 description 19
- 238000012546 transfer Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013475 authorization Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000012384 transportation and delivery Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
Definitions
- This description relates to techniques for managing the accessibility and distributions of fonts and related information.
- Web asset mockups may be created to provide information to the specialists tasked with producing the web asset. As such, along with developers and other types of specialists, mockup-creating individuals may also be interested in the content used for web asset development.
- the systems and techniques described here relate to managing the distribution of fonts. Along with efficiently providing access to the fonts, subscriptions, rental periods and other types of techniques may be implemented for managing the font distribution.
- a computing device-implemented method includes receiving, at a font service provider, a request from a computing device for one or more fonts. The method also includes authenticating the user of the computing device from the received request, and, providing access to data representative of the one or more fonts identified in the received request for use by the computing device. The data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the computing device.
- Implementations may include one or more of the following features.
- the one or more fonts identified in the received request may supplement one or more other fonts residing in a portion of memory for fonts of the computing device.
- the predefined portion of memory assigned to the user may be included in the computing device.
- the predefined portion of the memory assigned to the user may be located at the font service provider.
- the predefined portion of the memory assigned to the user may be located at another service provider.
- Authenticating the user of the computing device may include determining if the user has a current subscription for access to fonts of the font service provider.
- Providing access to data representative of the one or more fonts identified in the received request may include adding the data representative of the one or more fonts to the predefined portion of memory assigned to the user, which is included in the computing device.
- Authenticating the user of the computing device may include determining which fonts are accessible based upon a subscription of the user.
- Authenticating the user of the computing device may include determining the status of a rental period.
- a system in another aspect, includes a first computing that includes a memory configured to store instructions.
- the first computing device also includes a processor to execute the instructions to perform a method that includes receiving, at a font service provider, a request from a second computing device for one or more fonts.
- the method also includes authenticating the user of the second computing device from the received request, and providing access to data representative of the one or more fonts identified in the received request for use by the second computing device.
- the data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the second computing device.
- the one or more fonts identified in the received request may supplement one or more other fonts residing in a portion of memory for fonts of the second computing device.
- the predefined portion of memory assigned to the user may be included in the second computing device.
- the predefined portion of the memory assigned to the user may be located at the font service provider.
- the predefined portion of the memory assigned to the user may be located at another service provider.
- Authenticating the user of the second computing device may include determining if the user has a current subscription for access to fonts of the font service provider. Providing access to data representative of the one or more fonts identified in the received request may include adding the data representative of the one or more fonts to the predefined portion of memory assigned to the user, which is included in the second computing device.
- Authenticating the user of the second computing device may include determining which fonts are accessible based upon a subscription of the user. Authenticating the user of the computing device may include determining the status of a rental period.
- one or more computer readable media storing instructions that are executable by a processing device, and upon such execution cause the processing device to perform operations that include receiving, at a font service provider, a request from a computing device for one or more fonts. Operations also include authenticating the user of the computing device from the received request, and, providing access to data representative of the one or more fonts identified in the received request for use by the computing device. The data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the computing device.
- Implementations may include one or more of the following features.
- the one or more fonts identified in the received request may supplement one or more other fonts residing in a portion of memory for fonts of the computing device.
- the predefined portion of memory assigned to the user may be included in the computing device.
- the predefined portion of the memory assigned to the user may be located at the font service provider.
- the predefined portion of the memory assigned to the user may be located at another service provider.
- Authenticating the user of the computing device may include determining if the user has a current subscription for access to fonts of the font service provider.
- Providing access to data representative of the one or more fonts identified in the received request may include adding the data representative of the one or more fonts to the predefined portion of memory assigned to the user, which is included in the computing device.
- Authenticating the user of the computing device may include determining which fonts are accessible based upon a subscription of the user.
- Authenticating the user of the computing device may include determining the status of a rental period.
- FIG. 1 illustrates a system for managing the distribution of fonts.
- FIG. 2 illustrates a font service provider transferring fonts to a client computing device.
- FIG. 3 illustrates an intermediate service provider and a font service provider distributing fonts to a client computing device.
- FIG. 4 is a representative flow chart of operations for managing the distribution of fonts to client computing devices.
- FIG. 5 is a block diagram showing an example of a system for providing hosted storage and accessing the hosted storage from a client device.
- FIG. 6 illustrates an example of a computing device and a mobile computing device that can be used to implement the techniques described here.
- a relatively simplified representation of a font distribution system 100 illustrates the delivery of fonts from a font service provider 102 to client computing devices.
- the font service provider 102 includes one or more servers (e.g., represented by a server 108 ) that can establish communication connections with the client computing devices.
- a network 110 e.g., the Internet
- the font service provider 102 is used for exchanging data among the font service provider 102 and the client computing devices; however, other networking architectures including the use of multiple networks may be implemented.
- the font service provider 102 may be considered as being implemented as a cloud computing architecture in which its functionality is perceived by the client computing devices as a service rather than a product.
- the client computing devices are provided fonts from one or more shared resources (e.g., hardware, software, information, etc.) used by the font service provider 102 .
- shared resources e.g., hardware, software, information, etc.
- subscription plans for various time periods may be implemented (e.g., a monthly subscription fee for access to a fixed number of fonts).
- rental plans may be implemented such that selected fonts, predefined fonts, etc. may be used during a predefined rental period.
- a client computing device may be allowed to exceed the rental period, e.g., for a relatively small predefined time period that may or may not call for an additional fee.
- the font service provider 102 may communicate with the client computing devices to provide information such as status updates, subscription and rental period termination warnings, etc.
- the computer systems 104 , 106 may receive electronic mail messages or other types of communication from the font service provider 102 .
- One or more techniques and methodologies may be implemented for client computing devices to establish relationships with the font service provider 102 and for the font service provider 102 to control the distribution of fonts.
- a client-side application e.g., an executable agent, etc.
- an agent 112 may be loaded onto and executed by the computer system 104
- a similar agent 114 may be loaded onto and executed by the client computer system 106 .
- a font distribution manager 116 may be executed by the server 108 , for example, to manage the access and delivery of the fonts (e.g., through the network 110 ) that are controlled by the font service provider.
- the server 108 is shown to be in communication with a storage device 118 (e.g., one or more hard drives, CD-ROM, memories, etc.) that stores a vast collection of fonts 120 .
- the font distribution manager 116 may access and manage (e.g., by way of one or multiple networks) one or more font collections distributed among different locations (e.g., internal or external to the font service provider 102 ) and stored on two or more storage devices. While agents are provided to and executed by the client computing devices, in some arrangements, a client-side application may not be needed for communicating with the font service provider 102 . For example, communication with the font service provider 102 may be initiated from a web asset (e.g., website, web page, etc.) that is presented by a web browser application being executed by a client computing device.
- a web asset e.g., website, web page, etc.
- one or more techniques and methodologies may be implemented for distributing fonts from a font service provider 200 to a client computer system 202 (e.g., by way of a network 203 ).
- a supplemental font folder 204 may be placed (e.g., created) into memory 206 (e.g., random access memory (RAM), etc.) of the client computer system 202 .
- computing devices such as the client computer system 202 include a collection of fonts that are accessible by the operating system of the device, e.g., for use by applications executed by the device.
- a font folder 208 resides in memory 206 and can be accessed by an operating system 210 of the client computer system 202 .
- the fonts included in the font folder 208 may be considered a limited collection of fonts (e.g., fonts in the collection are selected during development of the operating system).
- the font folder 208 may not contain more recently developed fonts and its limited collection may not include the considerably larger collections at the disposal of the font service provider 200 .
- the client computer system 202 is capable of producing web assets that include a larger variety of fonts (compared to the font collection of the font folder 208 ).
- a request is sent to the font service provider 200 .
- a message 212 that contains client identification information (e.g., user name, password, etc.) may be provided to the font service provider 200 .
- client identification information e.g., user name, password, etc.
- an agent executed by the client computer system 202 may initiate the preparing and sending of the message 212 .
- the message may also include additional information (e.g., font selections, subscription information, etc.).
- the font service provider 200 may prepare and send font data 214 (e.g., a file, multiple files, a message with file attachment(s), etc.) to the client computer system 202 .
- font data 214 e.g., a file, multiple files, a message with file attachment(s), etc.
- the font data is directed to the supplemental font folder 204 in the memory 206 and the newly delivered fonts can be accessed by the operating system 210 of the computer system 202 (e.g., for use in one or more applications for web asset mockup, development, etc.).
- One or more techniques may be implemented to provide fonts from the font service provider 200 to the client computer system 202 to enhance development capabilities, e.g., for web asset production.
- a font distribution manager 216 executed by a server 218 located at the font service provider 200 may be able to gather the appropriate fonts (e.g., based upon the message 212 received from the client computer system 202 , a subscription agreement with the client, etc.), for example, from a storage device 220 .
- the font distribution manager 216 may provide data representative of the collection of fonts to a font transfer folder 222 that resides in memory 224 of the server 218 .
- Sent data that represents the fonts may direct the font data to the supplemental font folder 204 .
- the fonts contained in the supplemental font folder 204 can be considered as matching the fonts contained in the font transfer folder 222 .
- the font transfer folder 222 can be considered as being linked to the supplemental font folder 204 such that the font distribution manager 216 monitors the content of the font transfer folder 222 (e.g., senses any newly added fonts, etc.) and updates the supplemental font folder 204 as needed.
- the font transfer folder 222 may be continuously monitored, periodically monitored (e.g., every few minutes, hourly, daily, etc.), etc. Monitoring may also be triggered by one or more events (e.g., detected events). For example, upon data being placed in the font transfer folder 222 , the font distribution manager 216 may detect this event and initiate operations (e.g., producing a copy of the data and send the copy to the client computer system 202 ) to have the data placed in the supplemental font folder 204 . In some arrangements, the font distribution manager 216 may monitor the activity of the supplemental font folder 204 and correspondingly update the font transfer folder 222 .
- the font transfer folder 222 may be similarly updated such that substantially identical information resides in both folders.
- the font transfer folder 222 may be used for tracking the fonts provided to an individual client, or, in other arrangements, the font transfer folder may be used for tracking fonts provided to multiple clients.
- the font data provided to the supplemental font folder 204 may be restricted to that portion of the memory 206 , however, in other arrangements, the font data may be transferable to other locations such as a storage device for backup (e.g., based upon the subscription entered into with the font service provider 200 ).
- a storage device for backup e.g., based upon the subscription entered into with the font service provider 200 .
- other architectures may be implemented.
- the architecture of an example font distribution system 300 illustrates the use of an intermediate service provider for delivering fonts to client computing devices.
- the distribution system 300 illustrates fonts being provided from a font service provider 302 to a single client computer system 304 , however, similar to other architectures, the system can be considered scalable for delivering fonts to many client computing devices and different types of computing devices (e.g., computer systems, cellular telephones, tablet computers, smart devices, etc.).
- an intermediate service provider 306 is utilized by the font service provider 302 for delivering the fonts to the client end-users. Such intermediaries may more efficiently and cost-effectively provide a portion of the distribution functionality.
- the single intermediate service provider 306 is inserted into the delivery chain between the font server provider 302 and client computer system 304 .
- the intermediate service provider 306 may provide various types of enhanced capabilities. For example, faster data transmission to and from the client computer system 304 (e.g., through a network 308 such as the Internet) may be achievable by the intermediate service provider 306 rather than incorporating such capability into the font service provider 302 (which may be less than cost-effective).
- relatively fast-speed communication such as communicating in a substantially continuous manner while also being used, e.g., streaming, (as represented by the hashed arrows 310 and 312 ) may be achieved between the client computer system 304 , the network 308 and the intermediate service provider 306 .
- font data may be quickly provided to a supplemental font folder 314 residing in memory 316 of the client computer system 304 .
- the fonts of the supplemental font folder 314 may be accessed by an operating system 318 of the client computer system 304 and used for various applications.
- the intermediate service provider 306 may provide enhanced capabilities (e.g., faster transmission speeds, larger bandwidth, increased throughput, faster accessible memory, etc.) for communicating through the network 308
- corresponding capabilities of the font service provider 302 may be less in some respects.
- data transmission speeds between the font service provider 302 and the intermediate service provider 306 may be lower, as graphically represented with the solid, thin arrow 320 .
- a font distribution manager 322 executed by a server 324 at the font service provider 302 may provide information in less than a time critical manner to the intermediate service provider 306 (e.g., send a list of valid subscribers to a server 326 , send a copy of the entire font catalog for local storage on a storage device 328 of the intermediate service provider 306 , etc.).
- the intermediate service provider 306 may execute more time critical operations such as quickly authenticating clients (e.g., based upon a received request message), providing font data directly to the supplemental font folder 314 as needed, sending time critical messages (e.g., rental period terminated, subscription payment due, etc.), etc.
- the architecture may include a font transfer folder 330 (e.g., in a memory 332 ) for tracking fonts provided to the client computer system, however, in some arrangements, such a transfer folder may not be warranted (e.g., due to the transmission speed for directly providing fonts to the supplemental font folder 314 ).
- tracking the fonts provided to a client computing device may be provided by one or more other techniques (e.g., using a log for fonts requested, transferred, etc. for one or multiple clients).
- font data may be directly provided from a font service provider (or an intermediate service provider) to a portion of memory of a client computing device used to store font data (e.g., font folder 208 shown in FIG. 2 ) and that is accessible by an operating system.
- a font service provider or an intermediate service provider
- a flowchart 400 represents operations of a computing device such as the server 218 (shown in FIG. 2 ) to manage the distribution of fonts to one or more client computing devices.
- Such operations e.g., of the font distribution manager 216 (also shown in FIG. 2 ) are typically executed by components (e.g., processors, memory controllers, etc.) included in a single computing device (e.g., the server 218 of FIG. 2 ); however, operation may be executed by multiple computing devices.
- operation execution may be distributed among two or more locations.
- Operations may include receiving 402 , at a font service provider, a request from a computing device from one or more fonts. For example, after viewing one or more font collections (e.g., on a web page provided by an executed web browser) and indicating an interest in being provided a selection from the collections, a request may be provided to the font service provider (e.g., from an agent being executed by the computing device, from the web browser, etc.). Operations may also include authenticating 404 the user of the computing device from the received request. For example, the identity of the requester may be checked prior to providing access to the fonts. A contractual arrangement may also be checked prior to providing access.
- authenticating 404 the user of the computing device from the received request. For example, the identity of the requester may be checked prior to providing access to the fonts. A contractual arrangement may also be checked prior to providing access.
- the font service provider may check to ensure that the user has appropriately agreed to a subscription (or has a currently valid subscription), a rental service (or there is a currently open rental period), etc.
- Operations may also include providing 406 access to data representative of the one or more fonts identified in the received request for use by the computing device.
- the data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the computing device.
- identified fonts may be placed into a portion of memory (e.g., for holding the content of a font transfer folder at the font service provider) that may be linked to a corresponding portion of memory at the computing device (e.g., a memory portion for holding content of a supplemental font folder).
- the computing device By updating the contents of the memory portions to be current, the computing device has access to the fonts provided by the font service provider.
- Other architectures may also be implemented, for example, fonts may be directly provided from the font service provider (or through one or more intermediaries) to the memory of the computing device (e.g., to a font folder, a supplemental font folder, etc.), for example, as requested.
- FIG. 5 is a block diagram showing an example of a system 500 for providing hosted storage and accessing the hosted storage from a client device 502 .
- a hosted storage service 520 may provide access to stored data by applications running on computing devices operating separately from one another, provide offsite data backup and restore functionality, provide data storage to a computing device with limited storage capabilities, and/or provide storage functionality not implemented on a computing device.
- the system 500 may provide scalable stores for storing data resources.
- the client device 502 may upload data resources to the hosted storage service 520 and control access to the uploaded data resources. Access control may include a range of sharing levels (e.g., private, shared with one or more individuals, shared with one or more groups, public, etc.). Data stored in hosted storage service 520 can be secured from unauthorized access.
- the hosted storage service 520 can use a simple and consistent application programming interface, or API, which can allow arbitrary quantities of structured or unstructured data to be kept private or shared between individuals, organizations, or with the world at large.
- the client device 502 may access, retrieve, be provided, store, etc. data in the hosted storage service 520 for any number of a variety of reasons. For example, data may be stored for business reasons (e.g., provide identification information to attain access clearance for font data at the hosted storage service 520 ), or for use in data processing by other services.
- the client device 502 may be implemented using a computing device, such as the computing device 600 or the mobile device 650 described with respect to FIG. 6 .
- the client device 502 may communicate with the hosted storage service 520 via a network 504 , such as the Internet.
- the client device 502 may communicate across the network using communication protocols such as, for example, one or more of Transmission Control Protocol/Internet Protocol (TCP/IP), Hypertext Transfer Protocol (HTTP), Secure Shell Remote Protocol (SSH), or Application Program Interfaces (API). While only a single client device 502 is shown, there may be multiple client devices communicating across the network 504 with the hosted storage service 520 and/or other services and devices.
- TCP/IP Transmission Control Protocol/Internet Protocol
- HTTP Hypertext Transfer Protocol
- SSH Secure Shell Remote Protocol
- API Application Program Interfaces
- the hosted storage service 520 may be implemented such that client applications executing on client device 502 , such as a client application 503 , may store, retrieve, or otherwise manipulate data resources in the hosted storage service 520 .
- the hosted storage service 520 may be implemented by one or more server devices, which may be implemented using a computing device, such as the computing device 600 or mobile device 650 described with respect to FIG. 6 .
- the hosted storage service 520 may be implemented by multiple server devices operating in the same, or different, data centers.
- the hosted storage service 520 generally includes an interface frontend 506 , an interface backend 508 , a storage backend 510 , and metadata 516 for resources stored in the storage backend 510 .
- the hosted storage service 520 may also include an authenticator 509 to verify that a user requesting one or more fonts should be provided access to the fonts (e.g., based on a service subscription, rental period, etc.).
- the interface frontend 506 may receive requests from and send responses to the client device 502 .
- the hosted storage service 520 may be implemented as a Web Service with a corresponding set of Web Service Application Programming Interfaces (APIs).
- the Web Service APIs may be implemented, for example, as a Representational State Transfer (REST)-based HTTP interface or a Simple Object Access Protocol (SOAP)-based interface.
- Interface frontend 506 may receive messages from the client 502 and parse the requests into a format usable by the hosted storage service 520 , such as a remote procedure call (RPC) to an interface backend 508 .
- the interface frontend 506 may write responses generated by the hosted storage service 520 for transmission to the client 502 .
- multiple interface frontends 506 may be implemented, for example to support multiple access protocols.
- the interface frontend 506 may include a graphical front end, for example to display on a web browser for data access.
- the interface frontend 506 may include a sub-system to enable managed uploads and downloads of large files (e.g., for functionality such as pause, resume, and recover from time-out).
- the interface frontend 506 may monitor load information and update logs, for example to track and protect against denial of service (DOS) attacks.
- DOS denial of service
- the Web Service API may be a REST-based HTTP interface.
- a data resource is accessed as a resource, uniquely named using a uniform resource identifier (URI), and the client application 503 and service 520 exchange representations of resource state using a defined set of operations.
- requested actions may be represented as verbs, such as by HTTP GET, PUT, POST, HEAD, and DELETE verbs.
- the GET verb may be used to retrieve a resource
- the HEAD verb may be used to retrieve information about a resource without retrieving the resource itself.
- the DELETE verb may be used to delete a resource from the hosted storage service 520 .
- the PUT and POST verbs may be used to upload a resource to the service 520 .
- PUT requests may come from the client 502 and contain authentication and authorization credentials and resource metadata in a header, such as an HTTP header.
- POST requests may be received when a client 502 wants to upload from a web browser form.
- the form POST upload protocol for the hosted storage service 520 may involve multiple form fields to provide authentication, authorization, and resource metadata. More generally, any of the API requests may include credentials for authentication and authorization, for example in a header of the request.
- An authorization header may be included in the REST requests, which may include an access key to identify the entity sending the request.
- a user may be authenticated based on credentials stored in a browser cookie, which may be appended to the API requests. If no valid cookie is present, a redirect to an authentication frontend may be generated, and the authentication frontend may be used to generate the browser cookie.
- the authentication frontend may be used by systems and services in addition to the hosted storage service 520 (e.g., if the organization operating the hosted storage service 520 also operates other web services such as email service).
- a user may also or alternatively be authenticated based on authentication credentials from an external credentialing service or an external service that includes credentialing functionality. User or group identifier information may be calculated from the external service's credential information. Requests sent by the client 502 to the interface frontend 506 may be translated and forwarded to the external service for authentication.
- resources stored in the hosted storage service 520 may be referenced by resource identifiers.
- the hosted storage service 520 may define namespaces to which a valid resource identifier must conform.
- the namespace may require that resource identifiers be a sequence of Unicode characters whose UTF-8 encoding is at most 1024 bytes long.
- the namespace may require that resource identifiers be globally unique identifiers (GUIDs), which may be 128-bit integers.
- GUIDs globally unique identifiers
- Resources may be stored in hosted storage service 520 in buckets.
- each bucket is uniquely named in the hosted storage service 520
- each data resource is uniquely named in a bucket
- every bucket and data resource combination is unique.
- Data resources may be uniquely identified by a URI that includes the bucket name and the resource name, and identifies the hosted storage service 520 .
- a resource named “long/song.mp3” in a bucket named “music” could be specified using a URI pattern such as http://s.hostedstoragesystem.com/music/long/song.mp3 or http://music.s.hostedstoragesystem.com/long/song.mp3.
- the user of the client 502 may create a bucket named my.music.org, publish a CNAME alias redirected to http://music.s.hostedstoragesystem.com, and address the resource as http://my.music.org/long/song.mp3. In some examples, buckets do not nest.
- the interface backend 508 along with the authenticator 509 may handle request authentication and authorization, may manage data and metadata, and may track activity such as for billing. As one example, the interface backend 508 may query the authenticator 509 when a request for one or more fonts is received.
- the interface backend 508 may also provide additional or alternative functionality. For example, the interface backend 508 may provide functionality for independent frontend / backend scaling for resource utilization and responsiveness under localized heavy loads. Data management may be encapsulated in the interface backend 508 while communication serving may be encapsulated in the interface frontend 506 .
- the interface backend 508 may isolate certain security mechanisms from the client-facing interface frontend 506 .
- the interface backend 508 may expose an interface usable by both the interface frontend 506 and other systems.
- some features of the interface backend 508 are accessible only by an interface frontend (not shown) used by the owners of the hosted storage service 520 (internal users). Such features may include those needed for administrative tasks (e.g., resolving a resource reference to a low level disk address).
- the interface backend 508 may handle request authentication (e.g., ensuring a user's credentials are valid) and authorization (e.g., verifying that a requested operation is permitted).
- the interface backend may also provide encryption and decryption services to prevent unauthorized access to data, even by internal users.
- the interface backend 508 may manage metadata 516 associated with data resources, for example in a MySQL database or BigTable. User-specified names labeling the buckets can be completely defined within the metadata 516 , and resource metadata 516 can map a resource name to one or more datastores 512 storing the resource.
- the metadata 516 can also contain bucket and resource creation times, resource sizes, hashes, and access control lists 518 (ACL 518 ) for both buckets and resources.
- the interface backend 508 can log activity and track storage consumption to support accounting for billing and chargebacks. In some examples, this includes quota monitoring in each dimension in which customers are charged (e.g., reads, writes, network transfers, total storage in use).
- the ACLs 518 may generally define who is authorized to perform actions on corresponding buckets or resources, and the nature of the permitted actions.
- the ACLs 518 may be an unordered list of ⁇ scope, role ⁇ pairs, plus Boolean flags.
- the scope may define a user or group of users and the role may define the access permissions for the user or group.
- the union of all ⁇ scope, role ⁇ pairs may define access rights.
- more specific ⁇ scope, role ⁇ pairs override more general ones.
- the storage backend 510 may contain multiple datastores 512 a - 512 c. Although three datastores 512 are shown, more or fewer are possible. Each of the datastores 512 a - 512 c may store data resources 514 a - 514 c in a particular format. For example, data store 512 a may store a data resource 514 a as a Binary Large Object (BLOB), data store 512 b may store a data resource 514 b in a distributed file system (e.g., Network File System), and data store 512 c may store a data resource 514 c in a database (e.g., MySQL).
- BLOB Binary Large Object
- data store 512 b may store a data resource 514 b in a distributed file system (e.g., Network File System)
- data store 512 c may store a data resource 514 c in a database (e.g., MySQL).
- FIG. 6 shows an example of example computer device 600 and example mobile computer device 650 , which can be used to implement the techniques described herein. For example, a portion or all of the operations of the font distribution manager 216 (shown in FIG. 2 ) may be executed by the computer device 600 and/or the mobile computer device 650 .
- Computing device 600 is intended to represent various forms of digital computers, including, e.g., laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
- Computing device 650 is intended to represent various forms of mobile devices, including, e.g., personal digital assistants, cellular telephones, smartphones, and other similar computing devices.
- the components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the techniques described and/or claimed in this document.
- Computing device 600 includes processor 602 , memory 604 , storage device 606 , high-speed interface 608 connecting to memory 604 and high-speed expansion ports 610 , and low speed interface 612 connecting to low speed bus 614 and storage device 606 .
- processor 602 can process instructions for execution within computing device 600 , including instructions stored in memory 604 or on storage device 606 to display graphical data for a GUI on an external input/output device, including, e.g., display 616 coupled to high speed interface 608 .
- multiple processors and/or multiple buses can be used, as appropriate, along with multiple memories and types of memory.
- multiple computing devices 600 can be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
- Memory 604 stores data within computing device 600 .
- memory 604 is a volatile memory unit or units.
- memory 604 is a non-volatile memory unit or units.
- Memory 604 also can be another form of computer-readable medium, including, e.g., a magnetic or optical disk.
- Storage device 606 is capable of providing mass storage for computing device 600 .
- storage device 606 can be or contain a computer-readable medium, including, e.g., a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
- a computer program product can be tangibly embodied in a data carrier.
- the computer program product also can contain instructions that, when executed, perform one or more methods, including, e.g., those described above.
- the data carrier is a computer- or machine-readable medium, including, e.g., memory 604 , storage device 606 , memory on processor 602 , and the like.
- High-speed controller 608 manages bandwidth-intensive operations for computing device 600 , while low speed controller 612 manages lower bandwidth-intensive operations. Such allocation of functions is an example only.
- high-speed controller 608 is coupled to memory 604 , display 616 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 610 , which can accept various expansion cards (not shown).
- low-speed controller 612 is coupled to storage device 606 and low-speed expansion port 614 .
- the low-speed expansion port which can include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet), can be coupled to one or more input/output devices, including, e.g., a keyboard, a pointing device, a scanner, or a networking device including, e.g., a switch or router, e.g., through a network adapter.
- input/output devices including, e.g., a keyboard, a pointing device, a scanner, or a networking device including, e.g., a switch or router, e.g., through a network adapter.
- Computing device 600 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as standard server 620 , or multiple times in a group of such servers. It also can be implemented as part of rack server system 624 . In addition or as an alternative, it can be implemented in a personal computer including, e.g., laptop computer 622 . In some examples, components from computing device 600 can be combined with other components in a mobile device (not shown), including, e.g., device 650 . Each of such devices can contain one or more of computing device 600 , 650 , and an entire system can be made up of multiple computing devices 600 , 650 communicating with each other.
- Computing device 650 includes processor 652 , memory 664 , an input/output device including, e.g., display 654 , communication interface 666 , and transceiver 668 , among other components.
- Device 650 also can be provided with a storage device, including, e.g., a microdrive or other device, to provide additional storage.
- a storage device including, e.g., a microdrive or other device, to provide additional storage.
- Each of components 650 , 652 , 664 , 654 , 666 , and 668 are interconnected using various buses, and several of the components can be mounted on a common motherboard or in other manners as appropriate.
- Processor 652 can execute instructions within computing device 650 , including instructions stored in memory 664 .
- the processor can be implemented as a chipset of chips that include separate and multiple analog and digital processors.
- the processor can provide, for example, for coordination of the other components of device 650 , including, e.g., control of user interfaces, applications run by device 650 , and wireless communication by device 650 .
- Processor 652 can communicate with a user through control interface 658 and display interface 656 coupled to display 654 .
- Display 654 can be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology.
- Display interface 656 can comprise appropriate circuitry for driving display 654 to present graphical and other data to a user.
- Control interface 658 can receive commands from a user and convert them for submission to processor 652 .
- external interface 662 can communicate with processor 642 , so as to enable near area communication of device 650 with other devices.
- External interface 662 can provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces also can be used.
- Memory 664 stores data within computing device 650 .
- Memory 664 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.
- Expansion memory 674 also can be provided and connected to device 650 through expansion interface 672 , which can include, for example, a SIMM (Single In Line Memory Module) card interface.
- SIMM Single In Line Memory Module
- expansion memory 674 can provide extra storage space for device 650 , or also can store applications or other data for device 650 .
- expansion memory 674 can include instructions to carry out or supplement the processes described above, and can include secure data also.
- expansion memory 674 can be provided as a security module for device 650 , and can be programmed with instructions that permit secure use of device 650 .
- secure applications can be provided through the SIMM cards, along with additional data, including, e.g., placing identifying data on the SIMM card in a non-hackable manner.
- the memory can include, for example, flash memory and/or NVRAM memory, as discussed below.
- a computer program product is tangibly embodied in a data carrier.
- the computer program product contains instructions that, when executed, perform one or more methods, including, e.g., those described above.
- the data carrier is a computer- or machine-readable medium, including, e.g., memory 664 , expansion memory 674 , and/or memory on processor 652 , which can be received, for example, over transceiver 668 or external interface 662 .
- Device 650 can communicate wirelessly through communication interface 666 , which can include digital signal processing circuitry where necessary. Communication interface 666 can provide for communications under various modes or protocols, including, e.g., GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication can occur, for example, through radio-frequency transceiver 968 . In addition, short-range communication can occur, including, e.g., using a Bluetooth®, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 670 can provide additional navigation- and location-related wireless data to device 650 , which can be used as appropriate by applications running on device 650 .
- GPS Global Positioning System
- Device 650 also can communicate audibly using audio codec 660 , which can receive spoken data from a user and convert it to usable digital data. Audio codec 660 can likewise generate audible sound for a user, including, e.g., through a speaker, e.g., in a handset of device 650 . Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, and the like) and also can include sound generated by applications operating on device 650 .
- Audio codec 660 can receive spoken data from a user and convert it to usable digital data. Audio codec 660 can likewise generate audible sound for a user, including, e.g., through a speaker, e.g., in a handset of device 650 . Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, and the like) and also can include sound generated by applications operating on device 650 .
- Computing device 650 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as cellular telephone 680 . It also can be implemented as part of smartphone 682 , personal digital assistant, or other similar mobile device.
- implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
- ASICs application specific integrated circuits
- These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- machine-readable medium and computer-readable medium refer to a computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions.
- PLDs Programmable Logic Devices
- the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying data to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- a keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be a form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in a form, including acoustic, speech, or tactile input.
- feedback provided to the user can be a form of sensory feedback (e.g., visual feedback, auditory feedback,
- the systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or a combination of such back end, middleware, or front end components.
- the components of the system can be interconnected by a form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
- LAN local area network
- WAN wide area network
- the Internet the global information network
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- the engines described herein can be separated, combined or incorporated into a single or combined engine.
- the engines depicted in the figures are not intended to limit the systems described here to the software architectures shown in the figures.
- Processes described herein and variations thereof include functionality to ensure that party privacy is protected.
- the processes may be programmed to confirm that a user's membership in a social networking account is publicly known before divulging, to another party, that the user is a member.
- the processes may be programmed to confirm that information about a party is publicly known before divulging that information to another party, or even before incorporating that information into a social graph.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This description relates to techniques for managing the accessibility and distributions of fonts and related information.
- As more and more web assets are created for businesses, individuals and other types of applications, interest has correspondingly grown to incorporate different types of content into these assets. Including content such as photographs, video, audio, etc., the web asset may become more attractive to end viewers such as potential customers. To assist with or possibly manage a major portion of a web asset development, one or more specialists (e.g., developers) may be utilized. Web asset mockups may be created to provide information to the specialists tasked with producing the web asset. As such, along with developers and other types of specialists, mockup-creating individuals may also be interested in the content used for web asset development.
- The systems and techniques described here relate to managing the distribution of fonts. Along with efficiently providing access to the fonts, subscriptions, rental periods and other types of techniques may be implemented for managing the font distribution.
- In one aspect, a computing device-implemented method includes receiving, at a font service provider, a request from a computing device for one or more fonts. The method also includes authenticating the user of the computing device from the received request, and, providing access to data representative of the one or more fonts identified in the received request for use by the computing device. The data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the computing device.
- Implementations may include one or more of the following features. The one or more fonts identified in the received request may supplement one or more other fonts residing in a portion of memory for fonts of the computing device. The predefined portion of memory assigned to the user may be included in the computing device. The predefined portion of the memory assigned to the user may be located at the font service provider. The predefined portion of the memory assigned to the user may be located at another service provider. Authenticating the user of the computing device may include determining if the user has a current subscription for access to fonts of the font service provider. Providing access to data representative of the one or more fonts identified in the received request may include adding the data representative of the one or more fonts to the predefined portion of memory assigned to the user, which is included in the computing device. Authenticating the user of the computing device may include determining which fonts are accessible based upon a subscription of the user. Authenticating the user of the computing device may include determining the status of a rental period.
- In another aspect, a system includes a first computing that includes a memory configured to store instructions. The first computing device also includes a processor to execute the instructions to perform a method that includes receiving, at a font service provider, a request from a second computing device for one or more fonts. The method also includes authenticating the user of the second computing device from the received request, and providing access to data representative of the one or more fonts identified in the received request for use by the second computing device. The data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the second computing device. The one or more fonts identified in the received request may supplement one or more other fonts residing in a portion of memory for fonts of the second computing device. The predefined portion of memory assigned to the user may be included in the second computing device. The predefined portion of the memory assigned to the user may be located at the font service provider. The predefined portion of the memory assigned to the user may be located at another service provider. Authenticating the user of the second computing device may include determining if the user has a current subscription for access to fonts of the font service provider. Providing access to data representative of the one or more fonts identified in the received request may include adding the data representative of the one or more fonts to the predefined portion of memory assigned to the user, which is included in the second computing device. Authenticating the user of the second computing device may include determining which fonts are accessible based upon a subscription of the user. Authenticating the user of the computing device may include determining the status of a rental period.
- In another aspect, one or more computer readable media storing instructions that are executable by a processing device, and upon such execution cause the processing device to perform operations that include receiving, at a font service provider, a request from a computing device for one or more fonts. Operations also include authenticating the user of the computing device from the received request, and, providing access to data representative of the one or more fonts identified in the received request for use by the computing device. The data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the computing device.
- Implementations may include one or more of the following features. The one or more fonts identified in the received request may supplement one or more other fonts residing in a portion of memory for fonts of the computing device. The predefined portion of memory assigned to the user may be included in the computing device. The predefined portion of the memory assigned to the user may be located at the font service provider. The predefined portion of the memory assigned to the user may be located at another service provider. Authenticating the user of the computing device may include determining if the user has a current subscription for access to fonts of the font service provider. Providing access to data representative of the one or more fonts identified in the received request may include adding the data representative of the one or more fonts to the predefined portion of memory assigned to the user, which is included in the computing device. Authenticating the user of the computing device may include determining which fonts are accessible based upon a subscription of the user. Authenticating the user of the computing device may include determining the status of a rental period.
- These and other aspects and features and various combinations of them may be expressed as methods, apparatus, systems, means for performing functions, program products, and in other ways.
- Other features and advantages will be apparent from the description and the claims.
-
FIG. 1 illustrates a system for managing the distribution of fonts. -
FIG. 2 illustrates a font service provider transferring fonts to a client computing device. -
FIG. 3 illustrates an intermediate service provider and a font service provider distributing fonts to a client computing device. -
FIG. 4 is a representative flow chart of operations for managing the distribution of fonts to client computing devices. -
FIG. 5 is a block diagram showing an example of a system for providing hosted storage and accessing the hosted storage from a client device. -
FIG. 6 illustrates an example of a computing device and a mobile computing device that can be used to implement the techniques described here. - Referring to
FIG. 1 , a relatively simplified representation of afont distribution system 100 illustrates the delivery of fonts from afont service provider 102 to client computing devices. For demonstrative purposes twocomputer systems font service provider 102 includes one or more servers (e.g., represented by a server 108) that can establish communication connections with the client computing devices. In this example, a network 110 (e.g., the Internet) is used for exchanging data among thefont service provider 102 and the client computing devices; however, other networking architectures including the use of multiple networks may be implemented. In some arrangements, thefont service provider 102 may be considered as being implemented as a cloud computing architecture in which its functionality is perceived by the client computing devices as a service rather than a product. For such arrangements, the client computing devices are provided fonts from one or more shared resources (e.g., hardware, software, information, etc.) used by thefont service provider 102. For service compensation, one or more techniques may be utilized; for example, subscription plans for various time periods may be implemented (e.g., a monthly subscription fee for access to a fixed number of fonts). In some arrangements, rental plans may be implemented such that selected fonts, predefined fonts, etc. may be used during a predefined rental period. Once exceeded, access to the selected fonts may be blocked; however, in some arrangements, a client computing device may be allowed to exceed the rental period, e.g., for a relatively small predefined time period that may or may not call for an additional fee. For such services, thefont service provider 102 may communicate with the client computing devices to provide information such as status updates, subscription and rental period termination warnings, etc. For example, thecomputer systems font service provider 102. Along with developers tasked to create web assets (e.g., websites, webpages, etc.) being provided easily accessible fonts and related information, individuals and organizations can also engage thefont service provider 102 for asset creations (e.g., produce initial mock-ups of web assets to provide to developers for detailed production and delivery). - One or more techniques and methodologies may be implemented for client computing devices to establish relationships with the
font service provider 102 and for thefont service provider 102 to control the distribution of fonts. For example, to communicate with thefont service provider 102, a client-side application (e.g., an executable agent, etc.) may need to be executed by a corresponding client computing device. As illustrated in the figure, an agent 112 may be loaded onto and executed by thecomputer system 104, and, asimilar agent 114 may be loaded onto and executed by theclient computer system 106. On thefont service provider 102 side, afont distribution manager 116 may be executed by theserver 108, for example, to manage the access and delivery of the fonts (e.g., through the network 110) that are controlled by the font service provider. For illustration, theserver 108 is shown to be in communication with a storage device 118 (e.g., one or more hard drives, CD-ROM, memories, etc.) that stores a vast collection offonts 120. While the figure illustrates the collection offonts 120 being stored in single device (e.g., the storage device 118) at a single location (e.g., the font service provider 102), thefont distribution manager 116 may access and manage (e.g., by way of one or multiple networks) one or more font collections distributed among different locations (e.g., internal or external to the font service provider 102) and stored on two or more storage devices. While agents are provided to and executed by the client computing devices, in some arrangements, a client-side application may not be needed for communicating with thefont service provider 102. For example, communication with thefont service provider 102 may be initiated from a web asset (e.g., website, web page, etc.) that is presented by a web browser application being executed by a client computing device. - Referring to
FIG. 2 , one or more techniques and methodologies may be implemented for distributing fonts from a font service provider 200 to a client computer system 202 (e.g., by way of a network 203). For example, after establishing a relationship with the font service provider (e.g., entering into a subscription agreement), asupplemental font folder 204 may be placed (e.g., created) into memory 206 (e.g., random access memory (RAM), etc.) of theclient computer system 202. Often computing devices such as theclient computer system 202 include a collection of fonts that are accessible by the operating system of the device, e.g., for use by applications executed by the device. These included fonts are often stored together in a portion of memory that is accessible by the operating system. As illustrated in the figure, afont folder 208 resides inmemory 206 and can be accessed by anoperating system 210 of theclient computer system 202. However, the fonts included in thefont folder 208 may be considered a limited collection of fonts (e.g., fonts in the collection are selected during development of the operating system). As such, thefont folder 208 may not contain more recently developed fonts and its limited collection may not include the considerably larger collections at the disposal of the font service provider 200. By providing additional fonts into thesupplemental font folder 204, theclient computer system 202 is capable of producing web assets that include a larger variety of fonts (compared to the font collection of the font folder 208). - To be provided additional fonts, for storing in the
supplemental font folder 204, in some arrangements a request is sent to the font service provider 200. For example, amessage 212 that contains client identification information (e.g., user name, password, etc.) may be provided to the font service provider 200. In some arrangements, an agent executed by theclient computer system 202 may initiate the preparing and sending of themessage 212. Along with identification information, the message may also include additional information (e.g., font selections, subscription information, etc.). Upon authenticating the identity of the client (e.g., confirm the client's identity from the contents of the message) and the validity of the client's relationship with the font service provider (e.g., the client's subscription is still in force, a rental period has not expired, etc.), the font service provider 200 may prepare and send font data 214 (e.g., a file, multiple files, a message with file attachment(s), etc.) to theclient computer system 202. Upon receipt, the font data is directed to thesupplemental font folder 204 in thememory 206 and the newly delivered fonts can be accessed by theoperating system 210 of the computer system 202 (e.g., for use in one or more applications for web asset mockup, development, etc.). - One or more techniques may be implemented to provide fonts from the font service provider 200 to the
client computer system 202 to enhance development capabilities, e.g., for web asset production. For example, afont distribution manager 216 executed by aserver 218 located at the font service provider 200 may be able to gather the appropriate fonts (e.g., based upon themessage 212 received from theclient computer system 202, a subscription agreement with the client, etc.), for example, from astorage device 220. Once gathered, thefont distribution manager 216 may provide data representative of the collection of fonts to afont transfer folder 222 that resides inmemory 224 of theserver 218. Sent data that represents the fonts (e.g., in afile 214, multiple files, a message, etc.), theclient computer system 202 may direct the font data to thesupplemental font folder 204. By sending the data, the fonts contained in thesupplemental font folder 204 can be considered as matching the fonts contained in thefont transfer folder 222. In some arrangements thefont transfer folder 222 can be considered as being linked to thesupplemental font folder 204 such that thefont distribution manager 216 monitors the content of the font transfer folder 222 (e.g., senses any newly added fonts, etc.) and updates thesupplemental font folder 204 as needed. In some arrangements, thefont transfer folder 222 may be continuously monitored, periodically monitored (e.g., every few minutes, hourly, daily, etc.), etc. Monitoring may also be triggered by one or more events (e.g., detected events). For example, upon data being placed in thefont transfer folder 222, thefont distribution manager 216 may detect this event and initiate operations (e.g., producing a copy of the data and send the copy to the client computer system 202) to have the data placed in thesupplemental font folder 204. In some arrangements, thefont distribution manager 216 may monitor the activity of thesupplemental font folder 204 and correspondingly update thefont transfer folder 222. For example, upon detecting data (e.g., font data) has been added, altered and/or deleted within the supplemental font folder 204 (e.g., as provided by a message from an agent being executed by the client computer system), thefont transfer folder 222 may be similarly updated such that substantially identical information resides in both folders. In some arrangements thefont transfer folder 222 may be used for tracking the fonts provided to an individual client, or, in other arrangements, the font transfer folder may be used for tracking fonts provided to multiple clients. Also, in some arrangements the font data provided to thesupplemental font folder 204 may be restricted to that portion of thememory 206, however, in other arrangements, the font data may be transferable to other locations such as a storage device for backup (e.g., based upon the subscription entered into with the font service provider 200). Besides utilizing two (or more) folders to provide additional fonts to a client computing device, other architectures may be implemented. - Referring to
FIG. 3 , the architecture of an examplefont distribution system 300 illustrates the use of an intermediate service provider for delivering fonts to client computing devices. For demonstrative purposes, thedistribution system 300 illustrates fonts being provided from afont service provider 302 to a singleclient computer system 304, however, similar to other architectures, the system can be considered scalable for delivering fonts to many client computing devices and different types of computing devices (e.g., computer systems, cellular telephones, tablet computers, smart devices, etc.). In this example, an intermediate service provider 306 is utilized by thefont service provider 302 for delivering the fonts to the client end-users. Such intermediaries may more efficiently and cost-effectively provide a portion of the distribution functionality. In this illustrative example, the single intermediate service provider 306 is inserted into the delivery chain between thefont server provider 302 andclient computer system 304. To improve font delivery, the intermediate service provider 306 may provide various types of enhanced capabilities. For example, faster data transmission to and from the client computer system 304 (e.g., through anetwork 308 such as the Internet) may be achievable by the intermediate service provider 306 rather than incorporating such capability into the font service provider 302 (which may be less than cost-effective). In this example, relatively fast-speed communication such as communicating in a substantially continuous manner while also being used, e.g., streaming, (as represented by the hashedarrows 310 and 312) may be achieved between theclient computer system 304, thenetwork 308 and the intermediate service provider 306. As such, font data may be quickly provided to a supplemental font folder 314 residing inmemory 316 of theclient computer system 304. Once resident, the fonts of the supplemental font folder 314 may be accessed by anoperating system 318 of theclient computer system 304 and used for various applications. - While the intermediate service provider 306 may provide enhanced capabilities (e.g., faster transmission speeds, larger bandwidth, increased throughput, faster accessible memory, etc.) for communicating through the
network 308, corresponding capabilities of thefont service provider 302 may be less in some respects. For example, data transmission speeds between thefont service provider 302 and the intermediate service provider 306 may be lower, as graphically represented with the solid,thin arrow 320. As such, afont distribution manager 322 executed by aserver 324 at thefont service provider 302 may provide information in less than a time critical manner to the intermediate service provider 306 (e.g., send a list of valid subscribers to aserver 326, send a copy of the entire font catalog for local storage on astorage device 328 of the intermediate service provider 306, etc.). Having the enhanced capabilities, the intermediate service provider 306 may execute more time critical operations such as quickly authenticating clients (e.g., based upon a received request message), providing font data directly to the supplemental font folder 314 as needed, sending time critical messages (e.g., rental period terminated, subscription payment due, etc.), etc. In some arrangements, the architecture may include a font transfer folder 330 (e.g., in a memory 332) for tracking fonts provided to the client computer system, however, in some arrangements, such a transfer folder may not be warranted (e.g., due to the transmission speed for directly providing fonts to the supplemental font folder 314). As such, tracking the fonts provided to a client computing device may be provided by one or more other techniques (e.g., using a log for fonts requested, transferred, etc. for one or multiple clients). In some arrangements, if two (or more) folders are not needed for tracking fonts being provided to client computing devices (e.g., a file transfer folder and a supplemental font folder), font data may be directly provided from a font service provider (or an intermediate service provider) to a portion of memory of a client computing device used to store font data (e.g.,font folder 208 shown inFIG. 2 ) and that is accessible by an operating system. - Referring to
FIG. 4 , aflowchart 400 represents operations of a computing device such as the server 218 (shown inFIG. 2 ) to manage the distribution of fonts to one or more client computing devices. Such operations, e.g., of the font distribution manager 216 (also shown inFIG. 2 ), are typically executed by components (e.g., processors, memory controllers, etc.) included in a single computing device (e.g., theserver 218 ofFIG. 2 ); however, operation may be executed by multiple computing devices. Along with being executed at a single site (e.g., the font service provider 200 ofFIG. 2 ), operation execution may be distributed among two or more locations. - Operations may include receiving 402, at a font service provider, a request from a computing device from one or more fonts. For example, after viewing one or more font collections (e.g., on a web page provided by an executed web browser) and indicating an interest in being provided a selection from the collections, a request may be provided to the font service provider (e.g., from an agent being executed by the computing device, from the web browser, etc.). Operations may also include authenticating 404 the user of the computing device from the received request. For example, the identity of the requester may be checked prior to providing access to the fonts. A contractual arrangement may also be checked prior to providing access. For example, the font service provider may check to ensure that the user has appropriately agreed to a subscription (or has a currently valid subscription), a rental service (or there is a currently open rental period), etc. Operations may also include providing 406 access to data representative of the one or more fonts identified in the received request for use by the computing device. The data representative of the one or more fonts resides in a predefined portion of memory assigned to the user of the computing device. For example, identified fonts may be placed into a portion of memory (e.g., for holding the content of a font transfer folder at the font service provider) that may be linked to a corresponding portion of memory at the computing device (e.g., a memory portion for holding content of a supplemental font folder). By updating the contents of the memory portions to be current, the computing device has access to the fonts provided by the font service provider. Other architectures may also be implemented, for example, fonts may be directly provided from the font service provider (or through one or more intermediaries) to the memory of the computing device (e.g., to a font folder, a supplemental font folder, etc.), for example, as requested.
-
FIG. 5 is a block diagram showing an example of asystem 500 for providing hosted storage and accessing the hosted storage from aclient device 502. In some implementations, a hostedstorage service 520 may provide access to stored data by applications running on computing devices operating separately from one another, provide offsite data backup and restore functionality, provide data storage to a computing device with limited storage capabilities, and/or provide storage functionality not implemented on a computing device. - The
system 500 may provide scalable stores for storing data resources. Theclient device 502 may upload data resources to the hostedstorage service 520 and control access to the uploaded data resources. Access control may include a range of sharing levels (e.g., private, shared with one or more individuals, shared with one or more groups, public, etc.). Data stored in hostedstorage service 520 can be secured from unauthorized access. The hostedstorage service 520 can use a simple and consistent application programming interface, or API, which can allow arbitrary quantities of structured or unstructured data to be kept private or shared between individuals, organizations, or with the world at large. Theclient device 502 may access, retrieve, be provided, store, etc. data in the hostedstorage service 520 for any number of a variety of reasons. For example, data may be stored for business reasons (e.g., provide identification information to attain access clearance for font data at the hosted storage service 520), or for use in data processing by other services. - The
client device 502 may be implemented using a computing device, such as thecomputing device 600 or themobile device 650 described with respect toFIG. 6 . Theclient device 502 may communicate with the hostedstorage service 520 via anetwork 504, such as the Internet. Theclient device 502 may communicate across the network using communication protocols such as, for example, one or more of Transmission Control Protocol/Internet Protocol (TCP/IP), Hypertext Transfer Protocol (HTTP), Secure Shell Remote Protocol (SSH), or Application Program Interfaces (API). While only asingle client device 502 is shown, there may be multiple client devices communicating across thenetwork 504 with the hostedstorage service 520 and/or other services and devices. - The hosted
storage service 520 may be implemented such that client applications executing onclient device 502, such as aclient application 503, may store, retrieve, or otherwise manipulate data resources in the hostedstorage service 520. The hostedstorage service 520 may be implemented by one or more server devices, which may be implemented using a computing device, such as thecomputing device 600 ormobile device 650 described with respect toFIG. 6 . For example, the hostedstorage service 520 may be implemented by multiple server devices operating in the same, or different, data centers. - The hosted
storage service 520 generally includes aninterface frontend 506, aninterface backend 508, astorage backend 510, andmetadata 516 for resources stored in thestorage backend 510. The hostedstorage service 520 may also include anauthenticator 509 to verify that a user requesting one or more fonts should be provided access to the fonts (e.g., based on a service subscription, rental period, etc.). - In general, the
interface frontend 506 may receive requests from and send responses to theclient device 502. For instance, the hostedstorage service 520 may be implemented as a Web Service with a corresponding set of Web Service Application Programming Interfaces (APIs). The Web Service APIs may be implemented, for example, as a Representational State Transfer (REST)-based HTTP interface or a Simple Object Access Protocol (SOAP)-based interface.Interface frontend 506 may receive messages from theclient 502 and parse the requests into a format usable by the hostedstorage service 520, such as a remote procedure call (RPC) to aninterface backend 508. Theinterface frontend 506 may write responses generated by the hostedstorage service 520 for transmission to theclient 502. In some implementations,multiple interface frontends 506 may be implemented, for example to support multiple access protocols. - The
interface frontend 506 may include a graphical front end, for example to display on a web browser for data access. Theinterface frontend 506 may include a sub-system to enable managed uploads and downloads of large files (e.g., for functionality such as pause, resume, and recover from time-out). Theinterface frontend 506 may monitor load information and update logs, for example to track and protect against denial of service (DOS) attacks. - As described above, the Web Service API may be a REST-based HTTP interface. In a REST-based interface, a data resource is accessed as a resource, uniquely named using a uniform resource identifier (URI), and the
client application 503 andservice 520 exchange representations of resource state using a defined set of operations. For example, requested actions may be represented as verbs, such as by HTTP GET, PUT, POST, HEAD, and DELETE verbs. The GET verb may be used to retrieve a resource, while the HEAD verb may be used to retrieve information about a resource without retrieving the resource itself. The DELETE verb may be used to delete a resource from the hostedstorage service 520. The PUT and POST verbs may be used to upload a resource to theservice 520. PUT requests may come from theclient 502 and contain authentication and authorization credentials and resource metadata in a header, such as an HTTP header. POST requests may be received when aclient 502 wants to upload from a web browser form. The form POST upload protocol for the hostedstorage service 520 may involve multiple form fields to provide authentication, authorization, and resource metadata. More generally, any of the API requests may include credentials for authentication and authorization, for example in a header of the request. An authorization header may be included in the REST requests, which may include an access key to identify the entity sending the request. - Alternatively, or additionally, a user may be authenticated based on credentials stored in a browser cookie, which may be appended to the API requests. If no valid cookie is present, a redirect to an authentication frontend may be generated, and the authentication frontend may be used to generate the browser cookie. The authentication frontend may be used by systems and services in addition to the hosted storage service 520 (e.g., if the organization operating the hosted
storage service 520 also operates other web services such as email service). A user may also or alternatively be authenticated based on authentication credentials from an external credentialing service or an external service that includes credentialing functionality. User or group identifier information may be calculated from the external service's credential information. Requests sent by theclient 502 to theinterface frontend 506 may be translated and forwarded to the external service for authentication. - In general, resources stored in the hosted
storage service 520 may be referenced by resource identifiers. The hostedstorage service 520 may define namespaces to which a valid resource identifier must conform. For example, the namespace may require that resource identifiers be a sequence of Unicode characters whose UTF-8 encoding is at most 1024 bytes long. As another example, the namespace may require that resource identifiers be globally unique identifiers (GUIDs), which may be 128-bit integers. - Resources (e.g., objects such as font data) may be stored in hosted
storage service 520 in buckets. In some examples, each bucket is uniquely named in the hostedstorage service 520, each data resource is uniquely named in a bucket, and every bucket and data resource combination is unique. Data resources may be uniquely identified by a URI that includes the bucket name and the resource name, and identifies the hostedstorage service 520. For example, a resource named “long/song.mp3” in a bucket named “music” could be specified using a URI pattern such as http://s.hostedstoragesystem.com/music/long/song.mp3 or http://music.s.hostedstoragesystem.com/long/song.mp3. Alternatively, the user of theclient 502 may create a bucket named my.music.org, publish a CNAME alias redirected to http://music.s.hostedstoragesystem.com, and address the resource as http://my.music.org/long/song.mp3. In some examples, buckets do not nest. - The
interface backend 508 along with theauthenticator 509 may handle request authentication and authorization, may manage data and metadata, and may track activity such as for billing. As one example, theinterface backend 508 may query theauthenticator 509 when a request for one or more fonts is received. Theinterface backend 508 may also provide additional or alternative functionality. For example, theinterface backend 508 may provide functionality for independent frontend / backend scaling for resource utilization and responsiveness under localized heavy loads. Data management may be encapsulated in theinterface backend 508 while communication serving may be encapsulated in theinterface frontend 506. Theinterface backend 508 may isolate certain security mechanisms from the client-facinginterface frontend 506. - The
interface backend 508 may expose an interface usable by both theinterface frontend 506 and other systems. In some examples, some features of theinterface backend 508 are accessible only by an interface frontend (not shown) used by the owners of the hosted storage service 520 (internal users). Such features may include those needed for administrative tasks (e.g., resolving a resource reference to a low level disk address). Theinterface backend 508 may handle request authentication (e.g., ensuring a user's credentials are valid) and authorization (e.g., verifying that a requested operation is permitted). The interface backend may also provide encryption and decryption services to prevent unauthorized access to data, even by internal users. - The
interface backend 508 may managemetadata 516 associated with data resources, for example in a MySQL database or BigTable. User-specified names labeling the buckets can be completely defined within themetadata 516, andresource metadata 516 can map a resource name to one or more datastores 512 storing the resource. Themetadata 516 can also contain bucket and resource creation times, resource sizes, hashes, and access control lists 518 (ACL 518) for both buckets and resources. Theinterface backend 508 can log activity and track storage consumption to support accounting for billing and chargebacks. In some examples, this includes quota monitoring in each dimension in which customers are charged (e.g., reads, writes, network transfers, total storage in use). - The
ACLs 518 may generally define who is authorized to perform actions on corresponding buckets or resources, and the nature of the permitted actions. TheACLs 518 may be an unordered list of {scope, role} pairs, plus Boolean flags. The scope may define a user or group of users and the role may define the access permissions for the user or group. In some examples, the union of all {scope, role} pairs may define access rights. In some examples, more specific {scope, role} pairs override more general ones. - The
storage backend 510 may contain multiple datastores 512 a-512 c. Although three datastores 512 are shown, more or fewer are possible. Each of the datastores 512 a-512 c may store data resources 514 a-514 c in a particular format. For example,data store 512 a may store adata resource 514 a as a Binary Large Object (BLOB),data store 512 b may store adata resource 514 b in a distributed file system (e.g., Network File System), anddata store 512 c may store adata resource 514 c in a database (e.g., MySQL). -
FIG. 6 shows an example ofexample computer device 600 and examplemobile computer device 650, which can be used to implement the techniques described herein. For example, a portion or all of the operations of the font distribution manager 216 (shown inFIG. 2 ) may be executed by thecomputer device 600 and/or themobile computer device 650.Computing device 600 is intended to represent various forms of digital computers, including, e.g., laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.Computing device 650 is intended to represent various forms of mobile devices, including, e.g., personal digital assistants, cellular telephones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the techniques described and/or claimed in this document. -
Computing device 600 includesprocessor 602,memory 604,storage device 606, high-speed interface 608 connecting tomemory 604 and high-speed expansion ports 610, andlow speed interface 612 connecting tolow speed bus 614 andstorage device 606. Each ofcomponents Processor 602 can process instructions for execution withincomputing device 600, including instructions stored inmemory 604 or onstorage device 606 to display graphical data for a GUI on an external input/output device, including, e.g.,display 616 coupled tohigh speed interface 608. In other implementations, multiple processors and/or multiple buses can be used, as appropriate, along with multiple memories and types of memory. Also,multiple computing devices 600 can be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system). -
Memory 604 stores data withincomputing device 600. In one implementation,memory 604 is a volatile memory unit or units. In another implementation,memory 604 is a non-volatile memory unit or units.Memory 604 also can be another form of computer-readable medium, including, e.g., a magnetic or optical disk. -
Storage device 606 is capable of providing mass storage forcomputing device 600. In one implementation,storage device 606 can be or contain a computer-readable medium, including, e.g., a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in a data carrier. The computer program product also can contain instructions that, when executed, perform one or more methods, including, e.g., those described above. The data carrier is a computer- or machine-readable medium, including, e.g.,memory 604,storage device 606, memory onprocessor 602, and the like. - High-
speed controller 608 manages bandwidth-intensive operations for computingdevice 600, whilelow speed controller 612 manages lower bandwidth-intensive operations. Such allocation of functions is an example only. In one implementation, high-speed controller 608 is coupled tomemory 604, display 616 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 610, which can accept various expansion cards (not shown). In the implementation, low-speed controller 612 is coupled tostorage device 606 and low-speed expansion port 614. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet), can be coupled to one or more input/output devices, including, e.g., a keyboard, a pointing device, a scanner, or a networking device including, e.g., a switch or router, e.g., through a network adapter. -
Computing device 600 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented asstandard server 620, or multiple times in a group of such servers. It also can be implemented as part ofrack server system 624. In addition or as an alternative, it can be implemented in a personal computer including, e.g.,laptop computer 622. In some examples, components fromcomputing device 600 can be combined with other components in a mobile device (not shown), including, e.g.,device 650. Each of such devices can contain one or more ofcomputing device multiple computing devices -
Computing device 650 includesprocessor 652,memory 664, an input/output device including, e.g.,display 654,communication interface 666, andtransceiver 668, among other components.Device 650 also can be provided with a storage device, including, e.g., a microdrive or other device, to provide additional storage. Each ofcomponents -
Processor 652 can execute instructions withincomputing device 650, including instructions stored inmemory 664. The processor can be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor can provide, for example, for coordination of the other components ofdevice 650, including, e.g., control of user interfaces, applications run bydevice 650, and wireless communication bydevice 650. -
Processor 652 can communicate with a user throughcontrol interface 658 anddisplay interface 656 coupled todisplay 654.Display 654 can be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology.Display interface 656 can comprise appropriate circuitry for drivingdisplay 654 to present graphical and other data to a user.Control interface 658 can receive commands from a user and convert them for submission toprocessor 652. In addition,external interface 662 can communicate with processor 642, so as to enable near area communication ofdevice 650 with other devices.External interface 662 can provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces also can be used. -
Memory 664 stores data withincomputing device 650.Memory 664 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.Expansion memory 674 also can be provided and connected todevice 650 throughexpansion interface 672, which can include, for example, a SIMM (Single In Line Memory Module) card interface.Such expansion memory 674 can provide extra storage space fordevice 650, or also can store applications or other data fordevice 650. Specifically,expansion memory 674 can include instructions to carry out or supplement the processes described above, and can include secure data also. Thus, for example,expansion memory 674 can be provided as a security module fordevice 650, and can be programmed with instructions that permit secure use ofdevice 650. In addition, secure applications can be provided through the SIMM cards, along with additional data, including, e.g., placing identifying data on the SIMM card in a non-hackable manner. - The memory can include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in a data carrier. The computer program product contains instructions that, when executed, perform one or more methods, including, e.g., those described above. The data carrier is a computer- or machine-readable medium, including, e.g.,
memory 664,expansion memory 674, and/or memory onprocessor 652, which can be received, for example, overtransceiver 668 orexternal interface 662. -
Device 650 can communicate wirelessly throughcommunication interface 666, which can include digital signal processing circuitry where necessary.Communication interface 666 can provide for communications under various modes or protocols, including, e.g., GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication can occur, for example, through radio-frequency transceiver 968. In addition, short-range communication can occur, including, e.g., using a Bluetooth®, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System)receiver module 670 can provide additional navigation- and location-related wireless data todevice 650, which can be used as appropriate by applications running ondevice 650. -
Device 650 also can communicate audibly usingaudio codec 660, which can receive spoken data from a user and convert it to usable digital data.Audio codec 660 can likewise generate audible sound for a user, including, e.g., through a speaker, e.g., in a handset ofdevice 650. Such sound can include sound from voice telephone calls, can include recorded sound (e.g., voice messages, music files, and the like) and also can include sound generated by applications operating ondevice 650. -
Computing device 650 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented ascellular telephone 680. It also can be implemented as part ofsmartphone 682, personal digital assistant, or other similar mobile device. - Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms machine-readable medium and computer-readable medium refer to a computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions.
- To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying data to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be a form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in a form, including acoustic, speech, or tactile input.
- The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or a combination of such back end, middleware, or front end components. The components of the system can be interconnected by a form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- In some implementations, the engines described herein can be separated, combined or incorporated into a single or combined engine. The engines depicted in the figures are not intended to limit the systems described here to the software architectures shown in the figures.
- Processes described herein and variations thereof (referred to as “the processes”) include functionality to ensure that party privacy is protected. To this end, the processes may be programmed to confirm that a user's membership in a social networking account is publicly known before divulging, to another party, that the user is a member. Likewise, the processes may be programmed to confirm that information about a party is publicly known before divulging that information to another party, or even before incorporating that information into a social graph.
- A number of embodiments have been described. Nevertheless, it will be understood that various modifications can be made without departing from the spirit and scope of the processes and techniques described herein. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps can be provided, or steps can be eliminated, from the described flows, and other components can be added to, or removed from, the described systems. Accordingly, other embodiments are within the scope of the following claims.
Claims (27)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/399,146 US20130215126A1 (en) | 2012-02-17 | 2012-02-17 | Managing Font Distribution |
PCT/US2013/026051 WO2013123129A1 (en) | 2012-02-17 | 2013-02-14 | Managing font distribution |
EP13706862.3A EP2805257A1 (en) | 2012-02-17 | 2013-02-14 | Managing font distribution |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/399,146 US20130215126A1 (en) | 2012-02-17 | 2012-02-17 | Managing Font Distribution |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130215126A1 true US20130215126A1 (en) | 2013-08-22 |
Family
ID=47755038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/399,146 Abandoned US20130215126A1 (en) | 2012-02-17 | 2012-02-17 | Managing Font Distribution |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130215126A1 (en) |
EP (1) | EP2805257A1 (en) |
WO (1) | WO2013123129A1 (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130325795A1 (en) * | 2012-05-31 | 2013-12-05 | Google Inc. | Systems and Methods for Dynamically Loading Web Fonts and Dynamic Availability for Fonts Based on Language Settings |
US20140035927A1 (en) * | 2012-08-03 | 2014-02-06 | Celartem, Inc. | Methods, Computer Readable Media, and Apparatuses for Enabling Non-System Fonts |
US20140047329A1 (en) * | 2012-08-10 | 2014-02-13 | Monotype Imaging Inc. | Network Based Font Subset Management |
US20140195903A1 (en) * | 2013-01-09 | 2014-07-10 | Monotype Imaging Inc. | Advanced Text Editor |
US20140280693A1 (en) * | 2013-03-13 | 2014-09-18 | Celartem, Inc. | Font delivery service |
US20160092402A1 (en) * | 2014-09-25 | 2016-03-31 | Monotype Imaging Inc. | Selectable Styles for Text Messaging System Publishers |
US20160092411A1 (en) * | 2014-09-25 | 2016-03-31 | Monotype Imaging Inc. | Selectable Styles for Text Messaging System Font Service Providers |
US9569865B2 (en) | 2012-12-21 | 2017-02-14 | Monotype Imaging Inc. | Supporting color fonts |
US9691169B2 (en) | 2014-05-29 | 2017-06-27 | Monotype Imaging Inc. | Compact font hinting |
US20170237723A1 (en) * | 2016-02-17 | 2017-08-17 | Adobe Systems Incorporated | Utilizing a customized digital font to identify a computing device |
US9805288B2 (en) | 2013-10-04 | 2017-10-31 | Monotype Imaging Inc. | Analyzing font similarity for presentation |
US9817615B2 (en) | 2012-12-03 | 2017-11-14 | Monotype Imaging Inc. | Network based font management for imaging devices |
US20180039605A1 (en) * | 2016-08-04 | 2018-02-08 | Adobe Systems Incorporated | Non-resident font preview |
US9940744B2 (en) | 2014-09-15 | 2018-04-10 | Microsoft Technology Licensing, Llc | Remote font management |
US10115215B2 (en) | 2015-04-17 | 2018-10-30 | Monotype Imaging Inc. | Pairing fonts for presentation |
US10572574B2 (en) | 2010-04-29 | 2020-02-25 | Monotype Imaging Inc. | Dynamic font subsetting using a file size threshold for an electronic document |
US10909429B2 (en) | 2017-09-27 | 2021-02-02 | Monotype Imaging Inc. | Using attributes for identifying imagery for selection |
GB2521696B (en) * | 2013-12-30 | 2021-02-10 | Csr Imaging Us Lp | Managing font metrics for a rendering device |
US11334750B2 (en) | 2017-09-07 | 2022-05-17 | Monotype Imaging Inc. | Using attributes for predicting imagery performance |
US11537262B1 (en) | 2015-07-21 | 2022-12-27 | Monotype Imaging Inc. | Using attributes for font recommendations |
US11657602B2 (en) | 2017-10-30 | 2023-05-23 | Monotype Imaging Inc. | Font identification from imagery |
US11977830B2 (en) * | 2022-09-13 | 2024-05-07 | International Business Machines Corporation | Demand-based deployment of font server to an edge device |
Citations (144)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4998210A (en) * | 1986-02-05 | 1991-03-05 | Minolta Camera Kabushiki Kaisha | Character generator |
US5263132A (en) * | 1990-09-28 | 1993-11-16 | Michael R. Parker | Method of formatting documents using flexible design models providing controlled copyfit and typeface selection |
US5444829A (en) * | 1988-08-24 | 1995-08-22 | Hitachi, Ltd. | System for centrally controlling letter data |
US5528742A (en) * | 1993-04-09 | 1996-06-18 | Microsoft Corporation | Method and system for processing documents with embedded fonts |
US5533174A (en) * | 1993-10-26 | 1996-07-02 | Digital Equipment Corporation | Network font server |
US5586242A (en) * | 1994-04-01 | 1996-12-17 | Hewlett-Packard Company | Font manager with selective access of installed fonts |
US5606649A (en) * | 1995-09-08 | 1997-02-25 | Dynalab, Inc. | Method of encoding a document with text characters, and method of sending a document with text characters from a transmitting computer system to a receiving computer system |
US5619721A (en) * | 1991-05-15 | 1997-04-08 | Kabushiki Kaisha Toshiba | Controlling font data memory access for display and non-display purposes using character content for access criteria |
US5757384A (en) * | 1994-08-19 | 1998-05-26 | Mitsubishi Denki Kabushiki Kaisha | Apparatus and method for font thinning and bolding based upon font outline |
US5761395A (en) * | 1993-12-15 | 1998-06-02 | Canon Kabushiki Kaisha | Apparatus for and method of controlling output |
US5926189A (en) * | 1996-03-29 | 1999-07-20 | Apple Computer, Inc. | Method and apparatus for typographic glyph construction including a glyph server |
US5995718A (en) * | 1996-03-18 | 1999-11-30 | Canon Kabushiki Kaisha | Information processing apparatus which secures an exclusive memory for storing a registered font and method therefor |
US6012071A (en) * | 1996-01-29 | 2000-01-04 | Futuretense, Inc. | Distributed electronic publishing system |
US6044205A (en) * | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US6065008A (en) * | 1997-10-01 | 2000-05-16 | Microsoft Corporation | System and method for secure font subset distribution |
US6252671B1 (en) * | 1998-05-22 | 2001-06-26 | Adobe Systems Incorporated | System for downloading fonts |
US6320587B1 (en) * | 1996-08-26 | 2001-11-20 | Fujitsu Limited | Font processing apparatus in network environment and method thereof |
US6323864B1 (en) * | 1997-06-30 | 2001-11-27 | Sun Microsystems, Inc. | Using and accessing information from fonts in multiple formats |
US6330577B1 (en) * | 1997-10-15 | 2001-12-11 | Samsung Electronics Co., Ltd. | Apparatus and method for displaying font information by using preview window |
US20020010725A1 (en) * | 2000-03-28 | 2002-01-24 | Mo Lawrence Wai Ming | Internet-based font server |
US20020052916A1 (en) * | 1999-09-10 | 2002-05-02 | Avantgo, Inc. | System, Method, and computer program product for customizing channels, content, and data for mobile devices |
US20020087702A1 (en) * | 2000-12-29 | 2002-07-04 | Koichi Mori | Remote contents displaying method with adaptive remote font |
US20020174186A1 (en) * | 2001-05-15 | 2002-11-21 | Koichi Hashimoto | Electronic mail typestyle processing device |
US20020194261A1 (en) * | 1998-03-31 | 2002-12-19 | Atsushi Teshima | Font sharing system and method, and recording medium storing program for executing font sharing method |
US6512531B1 (en) * | 1999-04-09 | 2003-01-28 | Adobe Systems Incorporated | Font navigation tool |
US6522347B1 (en) * | 2000-01-18 | 2003-02-18 | Seiko Epson Corporation | Display apparatus, portable information processing apparatus, information recording medium, and electronic apparatus |
US20030076350A1 (en) * | 2001-10-23 | 2003-04-24 | Toshiba America Information Systems, Inc | Interface for content development |
US6657625B1 (en) * | 1999-06-09 | 2003-12-02 | Microsoft Corporation | System and method of caching glyphs for display by a remote terminal |
US6675358B1 (en) * | 1998-11-12 | 2004-01-06 | International Business Machines Corporation | Font access, registration, display and printing method and a method for processing electronic documents having variant fonts |
US6687879B1 (en) * | 1998-07-09 | 2004-02-03 | Fuji Photo Film Co., Ltd. | Font retrieval apparatus and method using a font link table |
US20040025118A1 (en) * | 2002-07-31 | 2004-02-05 | Renner John S. | Glyphlets |
US6738526B1 (en) * | 1999-07-30 | 2004-05-18 | Microsoft Corporation | Method and apparatus for filtering and caching data representing images |
US20040177056A1 (en) * | 2003-03-06 | 2004-09-09 | Davis William Nelson | Font rental system and method |
US20040233198A1 (en) * | 2003-03-05 | 2004-11-25 | Kabushiki Kaisha Toshiba | Font memory for display |
US6853980B1 (en) * | 1999-09-07 | 2005-02-08 | Bitstream Inc. | System for selecting, distributing, and selling fonts |
US20050033814A1 (en) * | 2003-08-04 | 2005-02-10 | Naomi Ota | Communication terminal apparatus and processing method for sending and receiving email |
US6882344B1 (en) * | 2000-07-25 | 2005-04-19 | Extensis, Inc. | Method for examining font files for corruption |
US20050128508A1 (en) * | 2003-12-11 | 2005-06-16 | Microsoft Corporation | System for transferring documents and resources to a printer |
US20050149942A1 (en) * | 2000-01-14 | 2005-07-07 | Microsoft Corporation | Cross-process common system resource data sharing |
US20050193336A1 (en) * | 2004-02-27 | 2005-09-01 | Vadim Fux | Font data processing system and method |
US20050270553A1 (en) * | 2004-05-18 | 2005-12-08 | Canon Kabushiki Kaisha | Document generation apparatus and file conversion system |
US20060061790A1 (en) * | 2004-09-22 | 2006-03-23 | Fuji Xerox Co., Ltd. | Image forming method and apparatus |
US20060072162A1 (en) * | 2004-08-31 | 2006-04-06 | Tetsuya Nakamura | Mail data processing method, mail server, program for mail server, terminal device and program for terminal device |
US20060103654A1 (en) * | 2003-09-30 | 2006-05-18 | Microsoft Corporation | System And Method Of Caching Glyphs For Display By A Remote Terminal |
US7050079B1 (en) * | 2000-01-04 | 2006-05-23 | International Business Machines Corporation | System and method for dynamically generating viewable graphics |
US7064757B1 (en) * | 1999-05-07 | 2006-06-20 | Apple Computer, Inc. | Automatic synthesis of font tables for character layout |
US20060241861A1 (en) * | 2005-04-21 | 2006-10-26 | Denso Corporation | Map display device and navigation system therewith |
US20060253395A1 (en) * | 2005-02-14 | 2006-11-09 | Extensis Corporation | Format and systems for secure utilization of electronic fonts |
US20070008309A1 (en) * | 2003-02-10 | 2007-01-11 | David Sahuc | Method to transmit and receive font information in streaming systems |
US20070024626A1 (en) * | 2005-07-29 | 2007-02-01 | Microsoft Corporation | Large character set handling in limited devices |
US20070050419A1 (en) * | 2005-08-23 | 2007-03-01 | Stephen Weyl | Mixed media reality brokerage network and methods of use |
US20070055931A1 (en) * | 2003-05-14 | 2007-03-08 | Hiroaki Zaima | Document data output device capable of appropriately outputting document data containing a text and layout information |
US7231602B1 (en) * | 2000-11-29 | 2007-06-12 | Microsoft Corporation | Live preview for reformatting document text |
US20070172199A1 (en) * | 2004-02-16 | 2007-07-26 | Sony Corporation | Reproduction device, reproduction method, program storage medium, and program |
US20070211062A1 (en) * | 2006-03-13 | 2007-09-13 | International Business Machines Corporation | Methods and systems for rendering complex text using glyph identifiers in a presentation data stream |
US20080030502A1 (en) * | 2006-08-04 | 2008-02-07 | Monotype Imaging, Inc. | Diacritics positioning system for digital typography |
US7373140B1 (en) * | 1999-10-20 | 2008-05-13 | Nec Corporation | Wireless communication system and method of changing language to be displayed in wireless client |
US20080115046A1 (en) * | 2006-11-15 | 2008-05-15 | Fujitsu Limited | Program, copy and paste processing method, apparatus, and storage medium |
US20080154911A1 (en) * | 2006-12-26 | 2008-06-26 | Dynacomware Taiwan Inc. | System and method for on-line generation of asian documents with multiple font faces |
US20080282186A1 (en) * | 2007-05-11 | 2008-11-13 | Clikpal, Inc. | Keyword generation system and method for online activity |
US20090031220A1 (en) * | 2005-11-02 | 2009-01-29 | Streamezzo | Method of managing character fonts within multimedia scenes, and the corresponding computer program and terminal |
US20090037492A1 (en) * | 2007-07-31 | 2009-02-05 | Ahmad Baitalmal | Framework for Synchronizing Applications |
US20090037523A1 (en) * | 2007-07-31 | 2009-02-05 | Kolke Daniel J | System and Method for Synchronizing an Offline Web-Based Application with an Online Web-Based Application |
US7492365B2 (en) * | 2004-06-15 | 2009-02-17 | International Business Machines Corporation | Method and system for font building |
US20090063964A1 (en) * | 2007-09-04 | 2009-03-05 | Apple Inc. | Font preloading |
US20090070128A1 (en) * | 2007-09-11 | 2009-03-12 | Author Solutions Inc. | Community-based community project content creation system and method |
US20090097049A1 (en) * | 2007-10-10 | 2009-04-16 | Samsung Electronics Co., Ltd. | Image forming apparatus and method to manage font, font managing device, and font providing server |
US20090100074A1 (en) * | 2004-11-24 | 2009-04-16 | Nhn Corporation | Method for providing font service on service page and system for executing the method |
US7539939B1 (en) * | 2000-07-25 | 2009-05-26 | Creativepro.Com, Inc. | Preview window to preview text in several different fonts simultaneously |
US20090275351A1 (en) * | 2007-01-11 | 2009-11-05 | Kt Corporation | Mobile communication terminal, server, system and method for message service with font data |
US20090287998A1 (en) * | 2000-11-06 | 2009-11-19 | Verisign, Inc. | Text Creating and Editing System and Method with Dynamic Data Loading |
US20100014104A1 (en) * | 2008-05-16 | 2010-01-21 | Software Imaging Limited | Method and apparatus for managing fonts |
US20100088694A1 (en) * | 2004-12-23 | 2010-04-08 | Koninklijke Philips Electronics, N.V. | Method and apparatus for configuring software resources for playing network programs |
US20100088606A1 (en) * | 2008-10-07 | 2010-04-08 | Canon Kabushiki Kaisha | Image processing system, server apparatus, client apparatus, control method, and storage medium |
US20100091024A1 (en) * | 2008-05-16 | 2010-04-15 | Nokia Corporation | Method and device for generating custom fonts |
US7752222B1 (en) * | 2007-07-20 | 2010-07-06 | Google Inc. | Finding text on a web page |
US7768513B2 (en) * | 2004-02-26 | 2010-08-03 | Research In Motion Limited | Method of rendering text on an output device |
US20100218086A1 (en) * | 2009-02-20 | 2010-08-26 | Microsoft Corporation | Font handling for viewing documents on the web |
US20100231598A1 (en) * | 2009-03-10 | 2010-09-16 | Google Inc. | Serving Font Glyphs |
US20100321393A1 (en) * | 2009-06-22 | 2010-12-23 | Monotype Imaging Inc. | Font data streaming |
US20110029103A1 (en) * | 2006-09-11 | 2011-02-03 | Rockwell Automation Technologies, Inc. | Multiple language development environment using shared resources |
US20110032074A1 (en) * | 2009-08-07 | 2011-02-10 | At&T Intellectual Property I, L.P. | Enhanced Biometric Authentication |
US20110090230A1 (en) * | 2009-10-16 | 2011-04-21 | Extensis Inc. | Reduced Glyph Font Files |
US20110093565A1 (en) * | 2009-10-16 | 2011-04-21 | Extensis Inc. | Serving Font Files in Varying Formats Based on User Agent Type |
US20110090229A1 (en) * | 2009-10-16 | 2011-04-21 | Extensis Inc. | Activation of Fonts Using Font Sets |
US7944447B2 (en) * | 2007-06-22 | 2011-05-17 | Apple Inc. | Adaptive and dynamic text filtering |
US20110115797A1 (en) * | 2009-11-19 | 2011-05-19 | Kaplan Gregory A | Dynamic Streaming of Font Subsets |
US7958448B2 (en) * | 2005-10-25 | 2011-06-07 | Celartem, Inc. | Systems, methods, user interfaces, and computer-readable media for activating and managing fonts |
US7987244B1 (en) * | 2004-12-30 | 2011-07-26 | At&T Intellectual Property Ii, L.P. | Network repository for voice fonts |
US20110188761A1 (en) * | 2010-02-02 | 2011-08-04 | Boutros Philip | Character identification through glyph data matching |
US20110203000A1 (en) * | 2010-02-16 | 2011-08-18 | Extensis Inc. | Preventing unauthorized font linking |
US20110238495A1 (en) * | 2008-03-24 | 2011-09-29 | Min Soo Kang | Keyword-advertisement method using meta-information related to digital contents and system thereof |
US20110271180A1 (en) * | 2010-04-29 | 2011-11-03 | Monotype Imaging Inc. | Initiating Font Subsets |
US20110310432A1 (en) * | 2010-06-18 | 2011-12-22 | Konica Minolta Business Technologies, Inc. | Computer readable recording medium storing print setting program, print setting apparatus, computer readable recording medium storing control program of printing apparatus, and printing apparatus |
US20120016964A1 (en) * | 2010-07-17 | 2012-01-19 | Veen Jeffrey P | Method and systems for serving fonts during web browsing sessions |
US20120066590A1 (en) * | 2010-09-10 | 2012-03-15 | Jeffrey Harris | Systems and Methods for Enhanced Font Management |
US20120102176A1 (en) * | 2010-10-21 | 2012-04-26 | Monotype Imaging Inc. | Extracting and managing font style elements |
US20120102391A1 (en) * | 2010-10-21 | 2012-04-26 | Monotype Imaging Inc. | Identifiers for web font templates |
US20120127069A1 (en) * | 2010-11-24 | 2012-05-24 | Soma Sundaram Santhiveeran | Input Panel on a Display Device |
US20120215640A1 (en) * | 2005-09-14 | 2012-08-23 | Jorey Ramer | System for Targeting Advertising to Mobile Communication Facilities Using Third Party Data |
US20120307263A1 (en) * | 2011-05-31 | 2012-12-06 | Toshiba Tec Kabushiki Kaisha | Network printer and printing method using same |
US20120323971A1 (en) * | 2011-06-14 | 2012-12-20 | Sybase, Inc. | Optimizing data storage and access of an in-memory database |
US20120323694A1 (en) * | 2011-06-15 | 2012-12-20 | Blue Kai, Inc. | Non-invasive sampling and fingerprinting of online users and their behavior |
US8413051B2 (en) * | 2008-10-20 | 2013-04-02 | Celartem, Inc. | Contextually previewing fonts |
US20130120396A1 (en) * | 2009-11-19 | 2013-05-16 | Gregory A. Kaplan | Incrementally Building A Font |
US20130127872A1 (en) * | 2010-08-31 | 2013-05-23 | Gregory A. Kaplan | Dynamic Augmentation of Extensible Font Subsets |
US20130163027A1 (en) * | 2011-12-22 | 2013-06-27 | Xerox Corporation | Secure federation of cloud print services |
US8601374B2 (en) * | 2006-02-13 | 2013-12-03 | Google Inc. | Account administration for hosted services |
US20130326348A1 (en) * | 2012-05-31 | 2013-12-05 | Google Inc. | Systems and Methods for Dynamically Providing Fonts Based on Language Settings |
US20140025756A1 (en) * | 2012-07-23 | 2014-01-23 | Samuel N. Kamens | Inter-modal messaging communications |
US20140047329A1 (en) * | 2012-08-10 | 2014-02-13 | Monotype Imaging Inc. | Network Based Font Subset Management |
US20140052801A1 (en) * | 2011-04-14 | 2014-02-20 | Tencent Technology (Shenzhen)Company Limited | Method for transmitting messages in instant messaging, client and storage medium thereof |
US20140089348A1 (en) * | 2012-09-21 | 2014-03-27 | Sap Ag | Context switching in a business application |
US20140136957A1 (en) * | 2012-11-09 | 2014-05-15 | Monotype Imaging Inc. | Supporting Scalable Fonts |
US20140176563A1 (en) * | 2012-12-21 | 2014-06-26 | Monotype Imaging Inc. | Supporting Color Fonts |
US20140195903A1 (en) * | 2013-01-09 | 2014-07-10 | Monotype Imaging Inc. | Advanced Text Editor |
US20140358802A1 (en) * | 2013-06-04 | 2014-12-04 | Adobe Systems Incorporated | Method and apparatus for licensing web assets |
US20150020212A1 (en) * | 2013-07-11 | 2015-01-15 | Adobe Systems Incorporated | Font Protection Management |
US20150074522A1 (en) * | 2013-09-12 | 2015-03-12 | Monotype Imaging Inc. | Font Management for Editing Electronic Documents |
US20150097842A1 (en) * | 2013-10-04 | 2015-04-09 | Monotype Imaging Inc. | Analyzing Font Similarity for Presentation |
US20150154002A1 (en) * | 2013-12-04 | 2015-06-04 | Google Inc. | User interface customization based on speaker characteristics |
US9063682B1 (en) * | 2013-12-30 | 2015-06-23 | Csr Imaging Us, Lp | Managing font metrics for a rendering device |
US20150178476A1 (en) * | 2013-12-24 | 2015-06-25 | Andrew Horton | System and method of monitoring font usage |
US20150220494A1 (en) * | 2012-08-24 | 2015-08-06 | Zte Corporation | Individualized Font Display Method And Device |
US20150278167A1 (en) * | 2014-03-28 | 2015-10-01 | Adobe Systems Incorporated | Automatic measure of visual similarity between fonts |
US20150339276A1 (en) * | 2014-05-22 | 2015-11-26 | Craig J. Bloem | Systems and methods for producing custom designs using vector-based images |
US20150339273A1 (en) * | 2014-05-23 | 2015-11-26 | Adobe Systems Incorporated | Visualizing font similarities for browsing and navigation |
US20150348297A1 (en) * | 2014-05-29 | 2015-12-03 | Monotype Imaging Inc. | Compact Font Hinting |
US20160078656A1 (en) * | 2014-09-15 | 2016-03-17 | Microsoft Technology Licensing, Llc | Remote Font Management |
US20160092439A1 (en) * | 2014-09-30 | 2016-03-31 | Canon Kabushiki Kaisha | Information processing apparatus, display method, and storage medium |
US20160140952A1 (en) * | 2014-08-26 | 2016-05-19 | ClearOne Inc. | Method For Adding Realism To Synthetic Speech |
US20160182606A1 (en) * | 2014-12-17 | 2016-06-23 | Monotype Imaging Inc. | Network Based Static Font Subset Management |
US20160246762A1 (en) * | 2013-09-30 | 2016-08-25 | Echostar Ukraine, L.L.C. | Systems, devices and methods for font size selection |
US20160307156A1 (en) * | 2014-03-25 | 2016-10-20 | Quicket Solutions, Inc. | System and Method of Issuing and Monitoring Electronic Citations |
US20160307347A1 (en) * | 2015-04-17 | 2016-10-20 | Monotype Imaging Inc. | Pairing Fonts for Presentation |
US9483445B1 (en) * | 2013-05-14 | 2016-11-01 | Amazon Technologies, Inc. | Providing fonts for electronic publications |
US20160321217A1 (en) * | 2014-01-18 | 2016-11-03 | Morisawa Inc. | Font delivery system and font delivery method |
US20160371232A1 (en) * | 2015-06-18 | 2016-12-22 | International Business Machines Corporation | Font personalization |
US20170017778A1 (en) * | 2015-07-17 | 2017-01-19 | Monotype Imaging Inc. | Providing Font Security |
US20170237723A1 (en) * | 2016-02-17 | 2017-08-17 | Adobe Systems Incorporated | Utilizing a customized digital font to identify a computing device |
US9817615B2 (en) * | 2012-12-03 | 2017-11-14 | Monotype Imaging Inc. | Network based font management for imaging devices |
US20180039605A1 (en) * | 2016-08-04 | 2018-02-08 | Adobe Systems Incorporated | Non-resident font preview |
US20180075455A1 (en) * | 2014-01-14 | 2018-03-15 | Phillip Kumnick | Payment account identifier system |
US20180082156A1 (en) * | 2016-09-19 | 2018-03-22 | Adobe Systems Incorporated | Font Replacement Based on Visual Similarity |
-
2012
- 2012-02-17 US US13/399,146 patent/US20130215126A1/en not_active Abandoned
-
2013
- 2013-02-14 WO PCT/US2013/026051 patent/WO2013123129A1/en active Application Filing
- 2013-02-14 EP EP13706862.3A patent/EP2805257A1/en not_active Withdrawn
Patent Citations (154)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4998210A (en) * | 1986-02-05 | 1991-03-05 | Minolta Camera Kabushiki Kaisha | Character generator |
US5444829A (en) * | 1988-08-24 | 1995-08-22 | Hitachi, Ltd. | System for centrally controlling letter data |
US5263132A (en) * | 1990-09-28 | 1993-11-16 | Michael R. Parker | Method of formatting documents using flexible design models providing controlled copyfit and typeface selection |
US5619721A (en) * | 1991-05-15 | 1997-04-08 | Kabushiki Kaisha Toshiba | Controlling font data memory access for display and non-display purposes using character content for access criteria |
US5528742A (en) * | 1993-04-09 | 1996-06-18 | Microsoft Corporation | Method and system for processing documents with embedded fonts |
US5533174A (en) * | 1993-10-26 | 1996-07-02 | Digital Equipment Corporation | Network font server |
US5761395A (en) * | 1993-12-15 | 1998-06-02 | Canon Kabushiki Kaisha | Apparatus for and method of controlling output |
US5586242A (en) * | 1994-04-01 | 1996-12-17 | Hewlett-Packard Company | Font manager with selective access of installed fonts |
US5757384A (en) * | 1994-08-19 | 1998-05-26 | Mitsubishi Denki Kabushiki Kaisha | Apparatus and method for font thinning and bolding based upon font outline |
US5606649A (en) * | 1995-09-08 | 1997-02-25 | Dynalab, Inc. | Method of encoding a document with text characters, and method of sending a document with text characters from a transmitting computer system to a receiving computer system |
US6012071A (en) * | 1996-01-29 | 2000-01-04 | Futuretense, Inc. | Distributed electronic publishing system |
US6044205A (en) * | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US5995718A (en) * | 1996-03-18 | 1999-11-30 | Canon Kabushiki Kaisha | Information processing apparatus which secures an exclusive memory for storing a registered font and method therefor |
US5926189A (en) * | 1996-03-29 | 1999-07-20 | Apple Computer, Inc. | Method and apparatus for typographic glyph construction including a glyph server |
US6320587B1 (en) * | 1996-08-26 | 2001-11-20 | Fujitsu Limited | Font processing apparatus in network environment and method thereof |
US6323864B1 (en) * | 1997-06-30 | 2001-11-27 | Sun Microsystems, Inc. | Using and accessing information from fonts in multiple formats |
US6065008A (en) * | 1997-10-01 | 2000-05-16 | Microsoft Corporation | System and method for secure font subset distribution |
US6330577B1 (en) * | 1997-10-15 | 2001-12-11 | Samsung Electronics Co., Ltd. | Apparatus and method for displaying font information by using preview window |
US20020194261A1 (en) * | 1998-03-31 | 2002-12-19 | Atsushi Teshima | Font sharing system and method, and recording medium storing program for executing font sharing method |
US6252671B1 (en) * | 1998-05-22 | 2001-06-26 | Adobe Systems Incorporated | System for downloading fonts |
US7346845B2 (en) * | 1998-07-09 | 2008-03-18 | Fujifilm Corporation | Font retrieval apparatus and method |
US6687879B1 (en) * | 1998-07-09 | 2004-02-03 | Fuji Photo Film Co., Ltd. | Font retrieval apparatus and method using a font link table |
US6675358B1 (en) * | 1998-11-12 | 2004-01-06 | International Business Machines Corporation | Font access, registration, display and printing method and a method for processing electronic documents having variant fonts |
US6512531B1 (en) * | 1999-04-09 | 2003-01-28 | Adobe Systems Incorporated | Font navigation tool |
US7064757B1 (en) * | 1999-05-07 | 2006-06-20 | Apple Computer, Inc. | Automatic synthesis of font tables for character layout |
US6657625B1 (en) * | 1999-06-09 | 2003-12-02 | Microsoft Corporation | System and method of caching glyphs for display by a remote terminal |
US7064758B2 (en) * | 1999-06-09 | 2006-06-20 | Microsoft Corporation | System and method of caching glyphs for display by a remote terminal |
US6738526B1 (en) * | 1999-07-30 | 2004-05-18 | Microsoft Corporation | Method and apparatus for filtering and caching data representing images |
US6853980B1 (en) * | 1999-09-07 | 2005-02-08 | Bitstream Inc. | System for selecting, distributing, and selling fonts |
US20020052916A1 (en) * | 1999-09-10 | 2002-05-02 | Avantgo, Inc. | System, Method, and computer program product for customizing channels, content, and data for mobile devices |
US7373140B1 (en) * | 1999-10-20 | 2008-05-13 | Nec Corporation | Wireless communication system and method of changing language to be displayed in wireless client |
US7050079B1 (en) * | 2000-01-04 | 2006-05-23 | International Business Machines Corporation | System and method for dynamically generating viewable graphics |
US20050149942A1 (en) * | 2000-01-14 | 2005-07-07 | Microsoft Corporation | Cross-process common system resource data sharing |
US6522347B1 (en) * | 2000-01-18 | 2003-02-18 | Seiko Epson Corporation | Display apparatus, portable information processing apparatus, information recording medium, and electronic apparatus |
US20020010725A1 (en) * | 2000-03-28 | 2002-01-24 | Mo Lawrence Wai Ming | Internet-based font server |
US6882344B1 (en) * | 2000-07-25 | 2005-04-19 | Extensis, Inc. | Method for examining font files for corruption |
US7539939B1 (en) * | 2000-07-25 | 2009-05-26 | Creativepro.Com, Inc. | Preview window to preview text in several different fonts simultaneously |
US20090287998A1 (en) * | 2000-11-06 | 2009-11-19 | Verisign, Inc. | Text Creating and Editing System and Method with Dynamic Data Loading |
US7231602B1 (en) * | 2000-11-29 | 2007-06-12 | Microsoft Corporation | Live preview for reformatting document text |
US20020087702A1 (en) * | 2000-12-29 | 2002-07-04 | Koichi Mori | Remote contents displaying method with adaptive remote font |
US20020174186A1 (en) * | 2001-05-15 | 2002-11-21 | Koichi Hashimoto | Electronic mail typestyle processing device |
US20030076350A1 (en) * | 2001-10-23 | 2003-04-24 | Toshiba America Information Systems, Inc | Interface for content development |
US20040025118A1 (en) * | 2002-07-31 | 2004-02-05 | Renner John S. | Glyphlets |
US20070008309A1 (en) * | 2003-02-10 | 2007-01-11 | David Sahuc | Method to transmit and receive font information in streaming systems |
US20040233198A1 (en) * | 2003-03-05 | 2004-11-25 | Kabushiki Kaisha Toshiba | Font memory for display |
US20040177056A1 (en) * | 2003-03-06 | 2004-09-09 | Davis William Nelson | Font rental system and method |
US20070055931A1 (en) * | 2003-05-14 | 2007-03-08 | Hiroaki Zaima | Document data output device capable of appropriately outputting document data containing a text and layout information |
US20050033814A1 (en) * | 2003-08-04 | 2005-02-10 | Naomi Ota | Communication terminal apparatus and processing method for sending and receiving email |
US20060103654A1 (en) * | 2003-09-30 | 2006-05-18 | Microsoft Corporation | System And Method Of Caching Glyphs For Display By A Remote Terminal |
US20050128508A1 (en) * | 2003-12-11 | 2005-06-16 | Microsoft Corporation | System for transferring documents and resources to a printer |
US20070172199A1 (en) * | 2004-02-16 | 2007-07-26 | Sony Corporation | Reproduction device, reproduction method, program storage medium, and program |
US7768513B2 (en) * | 2004-02-26 | 2010-08-03 | Research In Motion Limited | Method of rendering text on an output device |
US20050193336A1 (en) * | 2004-02-27 | 2005-09-01 | Vadim Fux | Font data processing system and method |
US20050270553A1 (en) * | 2004-05-18 | 2005-12-08 | Canon Kabushiki Kaisha | Document generation apparatus and file conversion system |
US7492365B2 (en) * | 2004-06-15 | 2009-02-17 | International Business Machines Corporation | Method and system for font building |
US20060072162A1 (en) * | 2004-08-31 | 2006-04-06 | Tetsuya Nakamura | Mail data processing method, mail server, program for mail server, terminal device and program for terminal device |
US20060061790A1 (en) * | 2004-09-22 | 2006-03-23 | Fuji Xerox Co., Ltd. | Image forming method and apparatus |
US20090100074A1 (en) * | 2004-11-24 | 2009-04-16 | Nhn Corporation | Method for providing font service on service page and system for executing the method |
US20100088694A1 (en) * | 2004-12-23 | 2010-04-08 | Koninklijke Philips Electronics, N.V. | Method and apparatus for configuring software resources for playing network programs |
US7987244B1 (en) * | 2004-12-30 | 2011-07-26 | At&T Intellectual Property Ii, L.P. | Network repository for voice fonts |
US20060253395A1 (en) * | 2005-02-14 | 2006-11-09 | Extensis Corporation | Format and systems for secure utilization of electronic fonts |
US20060241861A1 (en) * | 2005-04-21 | 2006-10-26 | Denso Corporation | Map display device and navigation system therewith |
US20070024626A1 (en) * | 2005-07-29 | 2007-02-01 | Microsoft Corporation | Large character set handling in limited devices |
US20070050419A1 (en) * | 2005-08-23 | 2007-03-01 | Stephen Weyl | Mixed media reality brokerage network and methods of use |
US20120215640A1 (en) * | 2005-09-14 | 2012-08-23 | Jorey Ramer | System for Targeting Advertising to Mobile Communication Facilities Using Third Party Data |
US7958448B2 (en) * | 2005-10-25 | 2011-06-07 | Celartem, Inc. | Systems, methods, user interfaces, and computer-readable media for activating and managing fonts |
US20090031220A1 (en) * | 2005-11-02 | 2009-01-29 | Streamezzo | Method of managing character fonts within multimedia scenes, and the corresponding computer program and terminal |
US8381115B2 (en) * | 2005-11-02 | 2013-02-19 | Streamezzo | Method of managing character fonts within multimedia scenes, and the corresponding computer program and terminal |
US8601374B2 (en) * | 2006-02-13 | 2013-12-03 | Google Inc. | Account administration for hosted services |
US20070211062A1 (en) * | 2006-03-13 | 2007-09-13 | International Business Machines Corporation | Methods and systems for rendering complex text using glyph identifiers in a presentation data stream |
US20080030502A1 (en) * | 2006-08-04 | 2008-02-07 | Monotype Imaging, Inc. | Diacritics positioning system for digital typography |
US20110029103A1 (en) * | 2006-09-11 | 2011-02-03 | Rockwell Automation Technologies, Inc. | Multiple language development environment using shared resources |
US20080115046A1 (en) * | 2006-11-15 | 2008-05-15 | Fujitsu Limited | Program, copy and paste processing method, apparatus, and storage medium |
US20080154911A1 (en) * | 2006-12-26 | 2008-06-26 | Dynacomware Taiwan Inc. | System and method for on-line generation of asian documents with multiple font faces |
US20090275351A1 (en) * | 2007-01-11 | 2009-11-05 | Kt Corporation | Mobile communication terminal, server, system and method for message service with font data |
US20080282186A1 (en) * | 2007-05-11 | 2008-11-13 | Clikpal, Inc. | Keyword generation system and method for online activity |
US7944447B2 (en) * | 2007-06-22 | 2011-05-17 | Apple Inc. | Adaptive and dynamic text filtering |
US7752222B1 (en) * | 2007-07-20 | 2010-07-06 | Google Inc. | Finding text on a web page |
US20090037523A1 (en) * | 2007-07-31 | 2009-02-05 | Kolke Daniel J | System and Method for Synchronizing an Offline Web-Based Application with an Online Web-Based Application |
US20090037492A1 (en) * | 2007-07-31 | 2009-02-05 | Ahmad Baitalmal | Framework for Synchronizing Applications |
US20090063964A1 (en) * | 2007-09-04 | 2009-03-05 | Apple Inc. | Font preloading |
US20090070128A1 (en) * | 2007-09-11 | 2009-03-12 | Author Solutions Inc. | Community-based community project content creation system and method |
US20090097049A1 (en) * | 2007-10-10 | 2009-04-16 | Samsung Electronics Co., Ltd. | Image forming apparatus and method to manage font, font managing device, and font providing server |
US20110238495A1 (en) * | 2008-03-24 | 2011-09-29 | Min Soo Kang | Keyword-advertisement method using meta-information related to digital contents and system thereof |
US20100091024A1 (en) * | 2008-05-16 | 2010-04-15 | Nokia Corporation | Method and device for generating custom fonts |
US20100014104A1 (en) * | 2008-05-16 | 2010-01-21 | Software Imaging Limited | Method and apparatus for managing fonts |
US20100088606A1 (en) * | 2008-10-07 | 2010-04-08 | Canon Kabushiki Kaisha | Image processing system, server apparatus, client apparatus, control method, and storage medium |
US8413051B2 (en) * | 2008-10-20 | 2013-04-02 | Celartem, Inc. | Contextually previewing fonts |
US20100218086A1 (en) * | 2009-02-20 | 2010-08-26 | Microsoft Corporation | Font handling for viewing documents on the web |
US20100231598A1 (en) * | 2009-03-10 | 2010-09-16 | Google Inc. | Serving Font Glyphs |
US20100321393A1 (en) * | 2009-06-22 | 2010-12-23 | Monotype Imaging Inc. | Font data streaming |
US20160170940A1 (en) * | 2009-06-22 | 2016-06-16 | Monotype Imaging Inc. | Font Data Streaming |
US9319444B2 (en) * | 2009-06-22 | 2016-04-19 | Monotype Imaging Inc. | Font data streaming |
US20110032074A1 (en) * | 2009-08-07 | 2011-02-10 | At&T Intellectual Property I, L.P. | Enhanced Biometric Authentication |
US20110093565A1 (en) * | 2009-10-16 | 2011-04-21 | Extensis Inc. | Serving Font Files in Varying Formats Based on User Agent Type |
US20110090230A1 (en) * | 2009-10-16 | 2011-04-21 | Extensis Inc. | Reduced Glyph Font Files |
US20110090229A1 (en) * | 2009-10-16 | 2011-04-21 | Extensis Inc. | Activation of Fonts Using Font Sets |
US20110115797A1 (en) * | 2009-11-19 | 2011-05-19 | Kaplan Gregory A | Dynamic Streaming of Font Subsets |
US20130120396A1 (en) * | 2009-11-19 | 2013-05-16 | Gregory A. Kaplan | Incrementally Building A Font |
US20110188761A1 (en) * | 2010-02-02 | 2011-08-04 | Boutros Philip | Character identification through glyph data matching |
US20110203000A1 (en) * | 2010-02-16 | 2011-08-18 | Extensis Inc. | Preventing unauthorized font linking |
US20110271180A1 (en) * | 2010-04-29 | 2011-11-03 | Monotype Imaging Inc. | Initiating Font Subsets |
US20110310432A1 (en) * | 2010-06-18 | 2011-12-22 | Konica Minolta Business Technologies, Inc. | Computer readable recording medium storing print setting program, print setting apparatus, computer readable recording medium storing control program of printing apparatus, and printing apparatus |
US20120016964A1 (en) * | 2010-07-17 | 2012-01-19 | Veen Jeffrey P | Method and systems for serving fonts during web browsing sessions |
US20130127872A1 (en) * | 2010-08-31 | 2013-05-23 | Gregory A. Kaplan | Dynamic Augmentation of Extensible Font Subsets |
US20120066590A1 (en) * | 2010-09-10 | 2012-03-15 | Jeffrey Harris | Systems and Methods for Enhanced Font Management |
US20120102391A1 (en) * | 2010-10-21 | 2012-04-26 | Monotype Imaging Inc. | Identifiers for web font templates |
US20120102176A1 (en) * | 2010-10-21 | 2012-04-26 | Monotype Imaging Inc. | Extracting and managing font style elements |
US20120127069A1 (en) * | 2010-11-24 | 2012-05-24 | Soma Sundaram Santhiveeran | Input Panel on a Display Device |
US20140052801A1 (en) * | 2011-04-14 | 2014-02-20 | Tencent Technology (Shenzhen)Company Limited | Method for transmitting messages in instant messaging, client and storage medium thereof |
US20120307263A1 (en) * | 2011-05-31 | 2012-12-06 | Toshiba Tec Kabushiki Kaisha | Network printer and printing method using same |
US20120323971A1 (en) * | 2011-06-14 | 2012-12-20 | Sybase, Inc. | Optimizing data storage and access of an in-memory database |
US20120323694A1 (en) * | 2011-06-15 | 2012-12-20 | Blue Kai, Inc. | Non-invasive sampling and fingerprinting of online users and their behavior |
US20130163027A1 (en) * | 2011-12-22 | 2013-06-27 | Xerox Corporation | Secure federation of cloud print services |
US20130326348A1 (en) * | 2012-05-31 | 2013-12-05 | Google Inc. | Systems and Methods for Dynamically Providing Fonts Based on Language Settings |
US20140025756A1 (en) * | 2012-07-23 | 2014-01-23 | Samuel N. Kamens | Inter-modal messaging communications |
US20140047329A1 (en) * | 2012-08-10 | 2014-02-13 | Monotype Imaging Inc. | Network Based Font Subset Management |
US20150220494A1 (en) * | 2012-08-24 | 2015-08-06 | Zte Corporation | Individualized Font Display Method And Device |
US20140089348A1 (en) * | 2012-09-21 | 2014-03-27 | Sap Ag | Context switching in a business application |
US20140136957A1 (en) * | 2012-11-09 | 2014-05-15 | Monotype Imaging Inc. | Supporting Scalable Fonts |
US9817615B2 (en) * | 2012-12-03 | 2017-11-14 | Monotype Imaging Inc. | Network based font management for imaging devices |
US20140176563A1 (en) * | 2012-12-21 | 2014-06-26 | Monotype Imaging Inc. | Supporting Color Fonts |
US9569865B2 (en) * | 2012-12-21 | 2017-02-14 | Monotype Imaging Inc. | Supporting color fonts |
US20140195903A1 (en) * | 2013-01-09 | 2014-07-10 | Monotype Imaging Inc. | Advanced Text Editor |
US9483445B1 (en) * | 2013-05-14 | 2016-11-01 | Amazon Technologies, Inc. | Providing fonts for electronic publications |
US20140358802A1 (en) * | 2013-06-04 | 2014-12-04 | Adobe Systems Incorporated | Method and apparatus for licensing web assets |
US20150020212A1 (en) * | 2013-07-11 | 2015-01-15 | Adobe Systems Incorporated | Font Protection Management |
US20150074522A1 (en) * | 2013-09-12 | 2015-03-12 | Monotype Imaging Inc. | Font Management for Editing Electronic Documents |
US20160246762A1 (en) * | 2013-09-30 | 2016-08-25 | Echostar Ukraine, L.L.C. | Systems, devices and methods for font size selection |
US9805288B2 (en) * | 2013-10-04 | 2017-10-31 | Monotype Imaging Inc. | Analyzing font similarity for presentation |
US20150097842A1 (en) * | 2013-10-04 | 2015-04-09 | Monotype Imaging Inc. | Analyzing Font Similarity for Presentation |
US9317777B2 (en) * | 2013-10-04 | 2016-04-19 | Monotype Imaging Inc. | Analyzing font similarity for presentation |
US20160171343A1 (en) * | 2013-10-04 | 2016-06-16 | Monotype Imaging Inc. | Analyzing Font Similarity for Presentation |
US20150154002A1 (en) * | 2013-12-04 | 2015-06-04 | Google Inc. | User interface customization based on speaker characteristics |
US20150178476A1 (en) * | 2013-12-24 | 2015-06-25 | Andrew Horton | System and method of monitoring font usage |
US9063682B1 (en) * | 2013-12-30 | 2015-06-23 | Csr Imaging Us, Lp | Managing font metrics for a rendering device |
US20180075455A1 (en) * | 2014-01-14 | 2018-03-15 | Phillip Kumnick | Payment account identifier system |
US20160321217A1 (en) * | 2014-01-18 | 2016-11-03 | Morisawa Inc. | Font delivery system and font delivery method |
US20160307156A1 (en) * | 2014-03-25 | 2016-10-20 | Quicket Solutions, Inc. | System and Method of Issuing and Monitoring Electronic Citations |
US20150278167A1 (en) * | 2014-03-28 | 2015-10-01 | Adobe Systems Incorporated | Automatic measure of visual similarity between fonts |
US20150339276A1 (en) * | 2014-05-22 | 2015-11-26 | Craig J. Bloem | Systems and methods for producing custom designs using vector-based images |
US20150339273A1 (en) * | 2014-05-23 | 2015-11-26 | Adobe Systems Incorporated | Visualizing font similarities for browsing and navigation |
US20150348297A1 (en) * | 2014-05-29 | 2015-12-03 | Monotype Imaging Inc. | Compact Font Hinting |
US9691169B2 (en) * | 2014-05-29 | 2017-06-27 | Monotype Imaging Inc. | Compact font hinting |
US20160140952A1 (en) * | 2014-08-26 | 2016-05-19 | ClearOne Inc. | Method For Adding Realism To Synthetic Speech |
US20160078656A1 (en) * | 2014-09-15 | 2016-03-17 | Microsoft Technology Licensing, Llc | Remote Font Management |
US20160092439A1 (en) * | 2014-09-30 | 2016-03-31 | Canon Kabushiki Kaisha | Information processing apparatus, display method, and storage medium |
US20160182606A1 (en) * | 2014-12-17 | 2016-06-23 | Monotype Imaging Inc. | Network Based Static Font Subset Management |
US20160307347A1 (en) * | 2015-04-17 | 2016-10-20 | Monotype Imaging Inc. | Pairing Fonts for Presentation |
US20160371232A1 (en) * | 2015-06-18 | 2016-12-22 | International Business Machines Corporation | Font personalization |
US20170017778A1 (en) * | 2015-07-17 | 2017-01-19 | Monotype Imaging Inc. | Providing Font Security |
US20170237723A1 (en) * | 2016-02-17 | 2017-08-17 | Adobe Systems Incorporated | Utilizing a customized digital font to identify a computing device |
US20180039605A1 (en) * | 2016-08-04 | 2018-02-08 | Adobe Systems Incorporated | Non-resident font preview |
US20180082156A1 (en) * | 2016-09-19 | 2018-03-22 | Adobe Systems Incorporated | Font Replacement Based on Visual Similarity |
Non-Patent Citations (3)
Title |
---|
Extensis, Suitcase 10.2 Quick Start Guide, 2001 * |
Open Text, Exceed Users Guide, 2009 * |
Universal Type Server, upgrading from Suitcase Server, 2009 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572574B2 (en) | 2010-04-29 | 2020-02-25 | Monotype Imaging Inc. | Dynamic font subsetting using a file size threshold for an electronic document |
US20130325795A1 (en) * | 2012-05-31 | 2013-12-05 | Google Inc. | Systems and Methods for Dynamically Loading Web Fonts and Dynamic Availability for Fonts Based on Language Settings |
US9838444B2 (en) | 2012-05-31 | 2017-12-05 | Google Llc | Systems and methods for dynamically providing fonts based on language settings |
US20140035927A1 (en) * | 2012-08-03 | 2014-02-06 | Celartem, Inc. | Methods, Computer Readable Media, and Apparatuses for Enabling Non-System Fonts |
US20140047329A1 (en) * | 2012-08-10 | 2014-02-13 | Monotype Imaging Inc. | Network Based Font Subset Management |
US9817615B2 (en) | 2012-12-03 | 2017-11-14 | Monotype Imaging Inc. | Network based font management for imaging devices |
US9569865B2 (en) | 2012-12-21 | 2017-02-14 | Monotype Imaging Inc. | Supporting color fonts |
US20140195903A1 (en) * | 2013-01-09 | 2014-07-10 | Monotype Imaging Inc. | Advanced Text Editor |
US9626337B2 (en) * | 2013-01-09 | 2017-04-18 | Monotype Imaging Inc. | Advanced text editor |
US20140280693A1 (en) * | 2013-03-13 | 2014-09-18 | Celartem, Inc. | Font delivery service |
US9805288B2 (en) | 2013-10-04 | 2017-10-31 | Monotype Imaging Inc. | Analyzing font similarity for presentation |
GB2521696B (en) * | 2013-12-30 | 2021-02-10 | Csr Imaging Us Lp | Managing font metrics for a rendering device |
US9691169B2 (en) | 2014-05-29 | 2017-06-27 | Monotype Imaging Inc. | Compact font hinting |
US9940744B2 (en) | 2014-09-15 | 2018-04-10 | Microsoft Technology Licensing, Llc | Remote font management |
EP3001328A3 (en) * | 2014-09-25 | 2016-04-27 | Imaging Inc. Monotype | Selectable styles for text messaging system font service providers |
US20160092411A1 (en) * | 2014-09-25 | 2016-03-31 | Monotype Imaging Inc. | Selectable Styles for Text Messaging System Font Service Providers |
US20160092402A1 (en) * | 2014-09-25 | 2016-03-31 | Monotype Imaging Inc. | Selectable Styles for Text Messaging System Publishers |
US10115215B2 (en) | 2015-04-17 | 2018-10-30 | Monotype Imaging Inc. | Pairing fonts for presentation |
US11537262B1 (en) | 2015-07-21 | 2022-12-27 | Monotype Imaging Inc. | Using attributes for font recommendations |
US10341319B2 (en) * | 2016-02-17 | 2019-07-02 | Adobe Inc. | Utilizing a customized digital font to identify a computing device |
US20170237723A1 (en) * | 2016-02-17 | 2017-08-17 | Adobe Systems Incorporated | Utilizing a customized digital font to identify a computing device |
US11606343B2 (en) * | 2016-02-17 | 2023-03-14 | Adobe Inc. | Utilizing a customized digital font to identify a computing device |
US10592590B2 (en) * | 2016-08-04 | 2020-03-17 | Adobe Inc. | Non-resident font preview |
US20180039605A1 (en) * | 2016-08-04 | 2018-02-08 | Adobe Systems Incorporated | Non-resident font preview |
US11334750B2 (en) | 2017-09-07 | 2022-05-17 | Monotype Imaging Inc. | Using attributes for predicting imagery performance |
US10909429B2 (en) | 2017-09-27 | 2021-02-02 | Monotype Imaging Inc. | Using attributes for identifying imagery for selection |
US11657602B2 (en) | 2017-10-30 | 2023-05-23 | Monotype Imaging Inc. | Font identification from imagery |
US11977830B2 (en) * | 2022-09-13 | 2024-05-07 | International Business Machines Corporation | Demand-based deployment of font server to an edge device |
Also Published As
Publication number | Publication date |
---|---|
EP2805257A1 (en) | 2014-11-26 |
WO2013123129A1 (en) | 2013-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130215126A1 (en) | Managing Font Distribution | |
US12197395B2 (en) | Accessing objects in hosted storage | |
US8375185B1 (en) | Permissions of objects in hosted storage | |
US10091230B1 (en) | Aggregating identity data from multiple sources for user controlled distribution to trusted risk engines | |
US9209973B2 (en) | Delegate authorization in cloud-based storage system | |
US9910895B2 (en) | Push subscriptions | |
AU2012308545B2 (en) | Hosted storage locking | |
US9509790B2 (en) | Global presence | |
US11917088B2 (en) | Integrating device identity into a permissioning framework of a blockchain | |
US9197611B2 (en) | Topic protection policy for publish-subscribe messaging system | |
US8375124B1 (en) | Resumable upload for hosted storage systems | |
US8396969B1 (en) | Domain name buckets in a hosted storage system | |
US20180152340A1 (en) | Managing a generation and delivery of digital identity documents | |
US9317523B2 (en) | Composing objects in hosted storage | |
US20240070316A1 (en) | Techniques for providing a privacy-based data sharing protocol | |
US8813255B2 (en) | Security classification applying social norming | |
CN118194355A (en) | Distributed file system access method, apparatus, device, medium and program product | |
VISHWESHWARAN et al. | SAAS APPLICATION–RUNNING LARGE SCALE APPLICATION IN LIGHTWEIGHT CLOUD WITH STRONG PRIVACY PROTECTION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MONOTYPE IMAGING INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROBERTS, CHRISTOPHER J.;REEL/FRAME:027943/0117 Effective date: 20120214 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, MASSACHUSETTS Free format text: SECURITY AGREEMENT;ASSIGNORS:MONOTYPE IMAGING INC.;MONOTYPE IMAGING HOLDINGS INC.;MYFONTS INC.;AND OTHERS;REEL/FRAME:036627/0925 Effective date: 20150915 Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, MASS Free format text: SECURITY AGREEMENT;ASSIGNORS:MONOTYPE IMAGING INC.;MONOTYPE IMAGING HOLDINGS INC.;MYFONTS INC.;AND OTHERS;REEL/FRAME:036627/0925 Effective date: 20150915 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, MA Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:MONOTYPE IMAGING INC.;MONOTYPE IMAGING HOLDINGS INC.;IMAGING HOLDINGS CORP.;AND OTHERS;REEL/FRAME:049566/0513 Effective date: 20190322 Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, MASSACHUSETTS Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:MONOTYPE IMAGING INC.;MONOTYPE IMAGING HOLDINGS INC.;IMAGING HOLDINGS CORP.;AND OTHERS;REEL/FRAME:049566/0513 Effective date: 20190322 |
|
AS | Assignment |
Owner name: IMAGING HOLDINGS CORP., MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:048691/0513 Effective date: 20190322 Owner name: MYFONTS INC., MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:048691/0513 Effective date: 20190322 Owner name: MONOTYPE IMAGING INC., MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:048691/0513 Effective date: 20190322 Owner name: MONOTYPE IMAGING HOLDINGS INC., MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:048691/0513 Effective date: 20190322 Owner name: SWYFT MEDIA INC., MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:048691/0513 Effective date: 20190322 Owner name: MONOTYPE ITC INC., MASSACHUSETTS Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:048691/0513 Effective date: 20190322 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: MONOTYPE IMAGING INC., MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL/FRAME 049566/0513;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:050711/0170 Effective date: 20191011 Owner name: OLAPIC, INC., MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL/FRAME 049566/0513;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:050711/0170 Effective date: 20191011 Owner name: MONOTYPE IMAGING HOLDINGS INC., MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL/FRAME 049566/0513;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:050711/0170 Effective date: 20191011 Owner name: MYFONTS INC., MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL/FRAME 049566/0513;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:050711/0170 Effective date: 20191011 Owner name: MONOTYPE ITC INC., MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL/FRAME 049566/0513;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:050711/0170 Effective date: 20191011 Owner name: IMAGING HOLDINGS CORP., MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL/FRAME 049566/0513;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:050711/0170 Effective date: 20191011 |