GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Native prototypes by flaviohblima · Pull Request #233 · javascript-tutorial/pt.javascript.info

Conversation

@flaviohblima

@flaviohblima flaviohblima commented Nov 1, 2021

Copy link
Copy Markdown
Contributor

No description provided.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@flaviohblima
FEAT: Translate native-prototypes (article,tasks & solutions).
0f761e8
@javascript-translate-bot javascript-translate-bot added the review needed label Nov 1, 2021
@javascript-translate-bot
javascript-translate-bot requested a review from a team November 1, 2021 18:40
@javascript-translate-bot javascript-translate-bot mentioned this pull request Nov 1, 2021
Portuguese Translation Progress #1
Open
@odsantos
Match line numbers to original.
e994eaf
odsantos
odsantos requested changes Nov 17, 2021
View reviewed changes

@odsantos odsantos left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @flaviohblima,

Here is a review.
Please, feel free to leave me a note where you might disagree.

Thank you,
Osvaldo.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@javascript-translate-bot javascript-translate-bot added changes requested and removed review needed labels Nov 17, 2021
@javascript-translate-bot

javascript-translate-bot commented Nov 17, 2021

Copy link
Copy Markdown

Please make the requested changes. After it, add a comment "/done".
Then I'll ask for a new review 👻

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@CLAassistant

CLAassistant commented Dec 10, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

flaviohblima and others added 17 commits February 26, 2022 20:31
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
52dcc16
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
cfa5101
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
c836a26
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
4770f5f
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
86e78a1
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
1fdbd84
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
c1fc6cf
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
209f35c
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
7961a93
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
1a0745c
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
197c4f2
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
926a671
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
aa5ca52
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
54b79a7
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
2b35857
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
fa8bf24
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima @odsantos
Update 1-js/08-prototypes/03-native-prototypes/article.md
8842a59
Co-authored-by: Osvaldo Dias dos Santos <[email protected]>
@flaviohblima

flaviohblima commented Feb 26, 2022

Copy link
Copy Markdown
Contributor Author

/done

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@javascript-translate-bot javascript-translate-bot added review needed and removed changes requested labels Feb 26, 2022
@javascript-translate-bot
javascript-translate-bot requested a review from a team February 26, 2022 23:37
odsantos
odsantos requested changes Dec 10, 2022
View reviewed changes

@odsantos odsantos left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @flaviohblima ,

There are other sections of this lesson not translated yet, such as 01, and 02.

Plase, feel free to also tell where you disagree.

Thanks, Osvaldo.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/2-defer-to-prototype-extended/solution.md Outdated
Note que: nós usamos `this` no `f.apply` para nossa decoração funcionar para métodos de objetos.

So if the wrapper function is called as an object method, then `this` is passed to the original method `f`.
Então, se a função *wrapper* é chamada como um método de um objeto, então o this é passado para o método `f` original.

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Então, se a função *wrapper* é chamada como um método de um objeto, então o this é passado para o método `f` original.
Então, se a função *wrapper* for chamada como um método de objeto, o `this` é passado para o método `f` original.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
```

Where's the code that generates the string `"[object Object]"`? That's a built-in `toString` method, but where is it? The `obj` is empty!
Onde está o código que gera a string `"[object Object]"`? Isso é um método embutido `toString`, mas onde ele está? O `obj` está vazio!

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Onde está o código que gera a string `"[object Object]"`? Isso é um método embutido `toString`, mas onde ele está? O `obj` está vazio!
Onde está o código que gera a string `"[object Object]"`? Isto vem de um método embutido `toString`, mas onde ele está? O `obj` está vazio!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
Onde está o código que gera a string `"[object Object]"`? Isso é um método embutido `toString`, mas onde ele está? O `obj` está vazio!

...But the short notation `obj = {}` is the same as `obj = new Object()`, where `Object` is a built-in object constructor function, with its own `prototype` referencing a huge object with `toString` and other methods.
... Mas a notação abreviada `obj = {}` é o mesmo que `obj = new Object()`, onde `Object` é uma função construtora embutida, com seu próprio `prototype` referenciando um objeto enorme com `toString` e outros métodos.

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
... Mas a notação abreviada `obj = {}` é o mesmo que `obj = new Object()`, onde `Object` é uma função construtora embutida, com seu próprio `prototype` referenciando um objeto enorme com `toString` e outros métodos.
... A notação abreviada `obj = {}` é o mesmo que `obj = new Object()`. Onde `Object` é uma função construtora embutida, com o seu próprio `prototype` referenciando um objeto enorme, possuindo `toString` e outros métodos.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
```

Please note that there is no additional `[[Prototype]]` in the chain above `Object.prototype`:
Note que não há um `[[Prototype]]` adicional na cadeia acima de `Object.prototype`:

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Note que não há um `[[Prototype]]` adicional na cadeia acima de `Object.prototype`:
Note que na cadeia, acima de `Object.prototype`, não há um `[[Prototype]]` adicional:

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
## Outros protótipos embutidos

Other built-in objects such as `Array`, `Date`, `Function` and others also keep methods in prototypes.
Outros objetos embutidos, como `Array`, `Date`, `Function`, entre outros, também mantém métodos nos seus protótipos.

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Outros objetos embutidos, como `Array`, `Date`, `Function`, entre outros, também mantém métodos nos seus protótipos.
Outros objetos embutidos, como `Array`, `Date`, `Function`, etc., também têm métodos nos seus protótipos.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
Ele funciona porque o algoritmo interno do método `join` embutido só precisa dos índices corretos e da propriedade `length`. Ele não confere se o objeto é de fato uma array. Muitos métodos enbutidos são assim.

Another possibility is to inherit by setting `obj.__proto__` to `Array.prototype`, so all `Array` methods are automatically available in `obj`.
Outra possibilidade é herdar configurando `obj.__proto__` para `Array.prototype`, de forma que todos os métodos de `Array` fiquem automaticamente disponíveis em `obj`.

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Outra possibilidade é herdar configurando `obj.__proto__` para `Array.prototype`, de forma que todos os métodos de `Array` fiquem automaticamente disponíveis em `obj`.
Outra possibilidade é herdando, configurando `obj.__proto__` para `Array.prototype`, de forma que todos os métodos de `Array` fiquem automaticamente disponíveis em `obj`.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
- Built-in prototypes can be modified or populated with new methods. But it's not recommended to change them. The only allowable case is probably when we add-in a new standard, but it's not yet supported by the JavaScript engine
- Todos os objetos enbutidos seguem o mesmo padrão:
- Os métodos são guardados no protótipo (`Array.prototype`, `Object.prototype`, `Date.prototype`, etc.)
- O objeto só guarda os dados nele mesmo (itens de array, propriedades de objetos, a data)

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- O objeto só guarda os dados nele mesmo (itens de array, propriedades de objetos, a data)
- O objeto só guarda os dados nele mesmo (itens de array, propriedades de objetos, uma data)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
![](object-prototype.svg)

When `new Object()` is called (or a literal object `{...}` is created), the `[[Prototype]]` of it is set to `Object.prototype` according to the rule that we discussed in the previous chapter:
Quando `new Object()` é chamado (ou um objeto literal `{...}` é criado), o seu `[[Prototype]]` é configurado para o `Object.prototype` de acordo com a regra que nós discutimos no capítulo anterior:

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Quando `new Object()` é chamado (ou um objeto literal `{...}` é criado), o seu `[[Prototype]]` é configurado para o `Object.prototype` de acordo com a regra que nós discutimos no capítulo anterior:
Quando `new Object()` é invocado (ou um objeto literal `{...}` é criado), o seu `[[Prototype]]` é configurado para o `Object.prototype`, de acordo com a regra que nós discutimos no capítulo anterior:

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
![](console_dir_array.png)

Other built-in objects also work the same way. Even functions -- they are objects of a built-in `Function` constructor, and their methods (`call`/`apply` and others) are taken from `Function.prototype`. Functions have their own `toString` too.
Outros objetos embutidos também trabalham da mesma forma. Até mesmo funções -- elas são objetos de um construtor `Function` embutido, e seus métodos (`call`/`apply` e outros) são obtidos de `Function.prototype`. Funções também têm seu próprio `toString`.

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Outros objetos embutidos também trabalham da mesma forma. Até mesmo funções -- elas são objetos de um construtor `Function` embutido, e seus métodos (`call`/`apply` e outros) são obtidos de `Function.prototype`. Funções também têm seu próprio `toString`.
Outros objetos embutidos também trabalham da mesma forma. Até mesmo funções -- elas são objetos de um construtor `Function` embutido, e os seus métodos (`call`/`apply`, e outros) são obtidos de `Function.prototype`. Funções também têm o seu próprio `toString`.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread 1-js/08-prototypes/03-native-prototypes/article.md Outdated
Como sabemos, eles não são objetos. Mas se nós tentarmos acessar as propriedades deles, temporariamente são criados objetos que contém os construtores embutidos `String`, `Number` and `Boolean`. Eles fornecem os métodos e disaparecem.

These objects are created invisibly to us and most engines optimize them out, but the specification describes it exactly this way. Methods of these objects also reside in prototypes, available as `String.prototype`, `Number.prototype` and `Boolean.prototype`.
Esses objetos são criados invisivelmente para nós e a maioria dos interpretadores (*engines*) otimizam esse processo, apesar da especificação descrevê-lo exatamente dessa forma. Os métodos desses objetos também residem nos protótipos, disponíveis como `String.prototype`, `Number.prototype` e `Boolean.prototype`.

@odsantos odsantos Dec 10, 2022

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Esses objetos são criados invisivelmente para nós e a maioria dos interpretadores (*engines*) otimizam esse processo, apesar da especificação descrevê-lo exatamente dessa forma. Os métodos desses objetos também residem nos protótipos, disponíveis como `String.prototype`, `Number.prototype` e `Boolean.prototype`.
Esses objetos são criados invisivelmente para nós e a maioria dos interpretadores (*engines*) otimizam esse processo, apesar da especificação descrevê-lo exatamente desta forma. Os métodos desses objetos também residem nos protótipos, disponíveis como `String.prototype`, `Number.prototype` e `Boolean.prototype`.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@javascript-translate-bot javascript-translate-bot added changes requested and removed review needed labels Dec 10, 2022
@javascript-translate-bot

javascript-translate-bot commented Dec 10, 2022

Copy link
Copy Markdown

Please make the requested changes. After it, add a comment "/done".
Then I'll ask for a new review 👻

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@odsantos

odsantos commented Dec 21, 2022

Copy link
Copy Markdown
Contributor

Hi @flaviohblima ,

Still working on this?
Due to the article update, there are conflicts too.

Thanks,
Osvaldo.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@jonnathan-ls

jonnathan-ls commented Sep 18, 2023

Copy link
Copy Markdown
Contributor

Olá @flaviohblima, tudo bem?

Conseguiria avaliar as solicitações registradas pelo @odsantos?

Com o prosseguimento e resolução de conflitos, sigo com minha revisão para darmos andamento a este PR

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nazarepiedady

nazarepiedady commented Mar 5, 2024

Copy link
Copy Markdown
Member

@jonnathan-ls, could you update this pull request?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nazarepiedady

nazarepiedady commented May 14, 2024

Copy link
Copy Markdown
Member

@peruibeloko, could you do something about this pull request?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

jonnathan-ls added 2 commits June 1, 2024 11:55
@jonnathan-ls
Merge branch 'master' of https://github.com/javascript-tutorial/pt.ja…
2d40fdd
…vascript.info into pr/233
@jonnathan-ls
refactor: fixes merge conflict, notes according to PR review and adds…
06ba0db
… pending translations
@jonnathan-ls

jonnathan-ls commented Jun 1, 2024 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

@jonnathan-ls, could you update this pull request?

@nazarepiedady I fixed merge conflict fixes and observations recorded by @odsantos, also added some outstanding translations in the last 2 commtis 2d40fdd and 06ba0db

Could you rate the changes and add a review? If necessary, I will contribute again

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

jonnathan-ls
jonnathan-ls approved these changes Jun 1, 2024
View reviewed changes

@jonnathan-ls jonnathan-ls left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the contribution of this PR #233 (comment), I am adding my LGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@javascript-translate-bot javascript-translate-bot added needs +1 and removed changes requested labels Jun 1, 2024
nazarepiedady
nazarepiedady approved these changes Aug 5, 2024
View reviewed changes

@nazarepiedady nazarepiedady left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is time to go ahead with this pull request.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@nazarepiedady
nazarepiedady merged commit b681b75 into javascript-tutorial:master Aug 5, 2024
@javascript-translate-bot

javascript-translate-bot commented Aug 5, 2024

Copy link
Copy Markdown

Thank you 💖 I updated the Progress Issue #1 🎉 🎉 🎉

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@odsantos odsantos odsantos requested changes
@nazarepiedady nazarepiedady nazarepiedady approved these changes
@jonnathan-ls jonnathan-ls jonnathan-ls approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

needs +1

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

6 participants

@flaviohblima @javascript-translate-bot @CLAassistant @odsantos @jonnathan-ls @nazarepiedady
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.