summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db.json6
-rw-r--r--load_spreadsheet.js5
-rw-r--r--src/utils/index.js11
-rw-r--r--src/views/Intro.js8
-rw-r--r--src/views/LandscapeWarning.js5
5 files changed, 28 insertions, 7 deletions
diff --git a/db.json b/db.json
index 37a0d4f..70b78bb 100644
--- a/db.json
+++ b/db.json
@@ -2001,7 +2001,7 @@
{
"__index": 48,
"id": "page_48",
- "title": "<i>no6092: The Purloined Letter </i>",
+ "title": "<i>Nº6092: The Purloined Letter </i>",
"short_title": "49 Stankievech: Purloined Letter",
"type": "video",
"tag_0": 7,
@@ -2020,8 +2020,8 @@
"uri": "https://vimeo.com/studiostankievech/no6092"
}
],
- "citation": "2016<br>\nDigital Artwork Courtesy the Artist <br>\n",
- "description": "<p>\n<i>no6092: The Purloined Letter </i>consists of an encrypted digital image using the technique of steganography that is automatically emailed to the sender when they request the work by writing <b>no6092@stankievech.net</b>. Steganography is the tactic of hiding a secret message in unsuspected data.\n</p>\n\n<p>\nThe artwork <i>no6092: The Purloined Letter </i>is based upon the painting catalogued under accession no6092 at the National Gallery of Canada and currently attributed to an anonymous painter under the title <i>Augustus and Cleopatra </i>c.1630- 1650. While the artwork <i>no6092: The Purloined Letter </i>and the NGC’s digital reproduction of the painting look incredibly similar, the digital artwork has changed every pixel in a calculated process to encrypt a secret message. The verisimilitude and yet the micro-differences are the very function of the work. \n</p>\n\n",
+ "citation": "2016<br>\nDigital Artwork Courtesy the Artist <br>\nNº6092: The Purloined Letter is a digital artwork composed of a secret message encrypted in a digital image using the technique of steganography. Steganography is the tactic of hiding a secret message in unsuspected data.<br>\n <br>\nThe artwork <i>N</i><i>º</i><i>6092: The Purloined Letter</i> is based upon the painting catalogued as accession Nº6092 at the National Gallery of Canada with the title <i>Augustus and Cleopatra </i>(c.1600). Originally sold to the National Gallery by the artist historian-<i>cum</i>-spy-<i>cum</i>-curator Sir Anthony Blunt in 1953 as a painting by Nicolas Poussin, the painting today is shrouded in a cloud of controversy. Not only was Blunt’s patriotism questioned and his titles stripped when he was outed as a double agent for the Soviets in 1979, the painting’s authorship by Poussin was also stripped and today remains debated. Even forensic UV and X-ray analysis has provided little insight into the provenance and meaning of the painting, including revealing the contents of the key object at the centre of the composition: a black pouch being exchanged in a political forum. Compounding the mystery 300 years after the painting was created, Anthony Blunt’s espionage career uncannily echoes the political intrigue inside the painting. First, at the beginning of Blunt’s art historian career in 1938, he posited the theory that the pouch held a collection of secret love letters between Cleopatra and Julius Caesar that she offered as a gift of allegiance to her new conqueror Augustus. Second, immediately following this hypothesis when WWII started, Blunt’s task as a spy at MI5 was to develop operation <i>XXX</i>–a program to secretly break into diplomatic pouches. Finally, and inversely, upon the war ending, Blunt as the new curator of the royal family’s art collection was sent on a discrete mission in 1945 to recover the private letters of the British monarch in fractured post-War Germany and smuggle them back to Britain in a diplomatic pouch. <br>\n",
+ "description": "<p>\nWhile the artwork <i>N</i><i>º</i><i>6092: The Purloined Letter</i> and the National Gallery of Canada’s digital reproduction of painting Nº6092 look incredibly similar, the digital artwork has changed every pixel in a calculated process to encrypt a secret message. The verisimilitude and yet the micro-differences are the very function of the work. As in both cases, the digital image is not the work of art.\n</p>\n\n<p>\n \n</p>\n\n<p>\n<i>N</i><i>º</i><i>6092: The Purloined Letter</i> was created on occasion of the exhibition at the National Gallery of Canada by the artist Charles Stankievech in 2016 using javascript/html code and released as an NFT as part of a commission by the KW Institute for Contemporary Art, Berlin in 2021. \n</p>\n\n<p>\nAuction for the work occurs Jan 14, 17:00 GMT on the <a href='https://zora.co/'>ZORA</a> open source auction house platform under the title <i>N</i><i>º</i><i>6092: The Purloined Letter </i>\n</p>\n\n<p>\n<a href='https://zora.co/'>https://zora.co/</a>\n</p>\n\n<p>\nThe reserve auction bid for the NFT – 500£ – is set at the original auction price of the painting in 1953. The resale royalty percentage follows Seth Siegelaub’s <i>Artist</i><i>’</i><i>s Reserved Rights Transfer And Sale Agreement </i>rate of 15% as established in 1971. Upon securing the NFT, a link will be provided by the studio to decrypt the image. \n</p>\n\n",
"author": "CHARLES STANKIEVECH",
"thumbnail": {
"uri": "assets/data_store/49-S-Purloined/49-S-Purloined-thumb.mp4",
diff --git a/load_spreadsheet.js b/load_spreadsheet.js
index e8fdd03..0398b18 100644
--- a/load_spreadsheet.js
+++ b/load_spreadsheet.js
@@ -226,6 +226,11 @@ function getClipValue(clip) {
} else if (clip.style.underline) {
value = "<u>" + value + "</u>";
}
+ value = value.replace(
+ "https://zora.co/",
+ "<a href='https://zora.co/'>https://zora.co/</a>"
+ );
+ value = value.replace("ZORA", "<a href='https://zora.co/'>ZORA</a>");
return value;
}
diff --git a/src/utils/index.js b/src/utils/index.js
index 7c4ca54..48c90af 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -21,10 +21,19 @@ export const capitalize = (text = "") =>
/* Mobile check */
+function isIpadOS() {
+ return (
+ navigator.userAgent.match(/iPad/i) ||
+ (navigator.maxTouchPoints &&
+ navigator.maxTouchPoints > 2 &&
+ /MacIntel/.test(navigator.platform))
+ );
+}
+
export const isiPhone = !!(
navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)
);
-export const isiPad = !!navigator.userAgent.match(/iPad/i);
+export const isiPad = isIpadOS();
export const isAndroid = !!navigator.userAgent.match(/Android/i);
export const isMobile = isiPhone || isiPad || isAndroid;
export const isDesktop = !isMobile;
diff --git a/src/views/Intro.js b/src/views/Intro.js
index 1bb0380..2c94e21 100644
--- a/src/views/Intro.js
+++ b/src/views/Intro.js
@@ -7,6 +7,11 @@ import Vimeo from "@u-wave/react-vimeo";
let playing = false;
+const audio = document.createElement("audio");
+audio.loop = true;
+audio.volume = 0.25;
+audio.src = "assets/data_store/X4LM-10m-192k.mp3";
+
export default function Intro({ onComplete }) {
const [done, setDone] = useState(false);
const [started, setStarted] = useState(false);
@@ -14,6 +19,7 @@ export default function Intro({ onComplete }) {
const [videoSize] = useState(coverWindow());
const handleClose = useCallback(() => {
+ audio.play();
setDone(true);
setTimeout(() => {
onComplete();
@@ -45,6 +51,8 @@ export default function Intro({ onComplete }) {
showPortrait={false}
showTitle={false}
style={videoSize}
+ muted={false}
+ volume={1}
onReady={handleReady}
onEnd={handleClose}
/>
diff --git a/src/views/LandscapeWarning.js b/src/views/LandscapeWarning.js
index 9031eb9..c834858 100644
--- a/src/views/LandscapeWarning.js
+++ b/src/views/LandscapeWarning.js
@@ -60,7 +60,7 @@ export default class LandscapeWarning extends Component {
<div className="landscape-warning">
{RotateIcon}
{PhoneIcon}
- {isiPhone && (
+ {isiPhone ? (
<div className="landscape-message">
{"Please tap "}
<small>A</small>
@@ -68,8 +68,7 @@ export default class LandscapeWarning extends Component {
<br />
{"then rotate your device."}
</div>
- )}
- {!isiPhone && (
+ ) : (
<div className="landscape-message">{"Please rotate your device"}</div>
)}
</div>