You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-24
Original file line number
Diff line number
Diff line change
@@ -12,39 +12,22 @@ Usage:
12
12
**Using Codespaces**
13
13
14
14
*To start:*
15
-
- From the private repo page, select <> Code button
16
-
-Click the three ellipses next to the "fantastic barnacle" Codespace
17
-
- Select option that says, "open in browser" and you won't need to bootstrap anything!
15
+
- From the private repo page, select <> Code button <> Codespaces
16
+
-Spin up a new Codespace!
17
+
- Select option that says, "open in browser" and you won't need to bootstrap anything! Thw `.devcontainer` is configured to handle the dependencies installation.
18
18
19
19
*To stop:*
20
20
But please remember upon completing with Codespaces to turn it down (as there's only so many billable hours permitted per account).
21
21
- This can be done by closing the browser tab with the Codespace and returning to the private repo
22
22
- Click <> Code, click next to "fantastic barnacle" via the three ellipses
23
23
- Select "stop Codespace"
24
24
25
-
## Problem Prompt
26
-
27
-
Users often work collaboratively in digital environments where a profile picture is not available. Some platforms have attempted to solve this problem with the creation of randomly generated, unique icons for each user ([github](https://github.blog/2013-08-14-identicons/), [slack](https://slack.zendesk.com/hc/article_attachments/360048182573/Screen_Shot_2019-10-01_at_5.08.29_PM.png), [ethereum wallets](https://github.com/ethereum/blockies)) sometimes called *Identicons*. Given an arbitrary string, create an image that can serve as a unique identifier for a user of a B2B productivity app like slack, notion, etc.
28
-
29
-
**Example Requirements**
30
-
31
-
1. Define a set of objectives to accomplish with your identicon. There's no right or wrong answer here. Here are some hypothetical objectives:
32
-
- Legibility at some scale or set of scales
33
-
- what sizes should the icon be shown at?
34
-
- Appearance - how do we avoid generating images that look bad?
35
-
2. Given an arbitrary string, generate an image (as a jpg, gif, png, or in a web page using canvas, webgl, or whatever other display strategy you prefer)
36
-
3. Images should be reasonably unique, for instance the strings "John", "Jane", and "931D387731bBbC988B31220" should generate three distinct images
37
-
4. Any languages may be used, any libraries may be used, recommend javascript or python
38
-
5. Don’t use an existing library! Treat this exercise as if you looked at existing solutions and thought you could do better, and decided to write your own
39
-
40
-
## Identicon Requirements (Defined)
25
+
## Requirements
41
26
1. The identicon's should be symmetrical meaning the left horizontal half is equal to the right horizontal half.
42
27
2. The identicon is 5X5 pixels, following the standard specified for [GitHub identicons](https://github.blog/2013-08-14-identicons/), so we'll generate square identicons only with a default of 320X320 pixels which other social media platforms like Instagram define as an ideal size
43
28
3. Identicon's should use proper resizing sampling technique to ensure quality is maintained, see [Pillow](https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.resize) documentation for options
44
29
4. Avoid replicating creating identicon by confirming if an image for said user has been generated, if so retrieve from a persistence layer. A NoSQL solution like mongodb would be useful, but we'll use a modified version of `@lru_cache` from the `sweepai` project - `@file_cache` which persists pickled objects between runs.
45
30
46
-
## TODO:
47
-
-[X] Implement core logic to generate a Python PIL image
0 commit comments