Select Page

NumPy – Python native on M1

This worked well for me:
pip uninstall numpy pip install cython pybind11 pip install –no-binary :all: –no-use-pep517 numpy
Before: mean of 10 runs: 3.20199s
After: mean of 10 runs: 1.01942s

Batch/Stack-Upload von NFT zu OpenSea.io

Viele Kunstschaffende überlegen gerade, auf den NFT-Zug aufzuspringen. Während das Hochladen einiger Fotos oder anderer Werke auf Plattformen wie OpenSea noch überschaubar ist, wird das Hochladen einer großen Anzahl schnell sehr zeitaufwändig.

Geeignete Apps

Über die Google-Suche oder GitHub lassen sich einige Apps (meist Python-Skripte) finden, die den automatisierten Upload auf OpenSea.io unterstützen. Die Entwicklung ist sehr dynamisch und es kommen täglich neue hinzu. Beispiele sind: NFTs-Upload-to-OpenSea oder Bulk-uploader-NFT

Aber Achtung, beide Beispiele funktionieren nicht auf Anhieb, haben viele ‘issues‘ und/oder Links zu fremden Sammlungen/Accounts eingebettet.

Kein Plug-and-Play

Wie bei allem ist auch hier Vorsicht geboten, und man sollte sich weder darauf verlassen noch erwarten, dass diese Anwendungen direkt nach dem Auspacken funktionieren.

Zunächst einmal muss in den meisten Fällen auch eine entsprechende Entwicklungsumgebung installiert werden, z.B. JDK oder Python in der richtigen, passenden Version. Auch hier gibt es verschiedene Wege, die natürlich vom Betriebssystem abhängen. Python z.B. kann auf dem Mac auf verschiedene Weise installiert werden, z.B. über Anaconda oder Miniconda (?) oder Homebrew.

Dann gibt es noch andere Module wie Selenium und eine “fernsteuerbare” Browserversion, oft Chromedriver – auch in der zur Chrome-Installation passenden Version.

Wenn dies erledigt ist, führen Sie pip install -r requirements.txt vorzugsweise in einer virtuellen Umgebung

Wenn der fernsteuerbare Chrome (Chromedriver) Chrome-Erweiterungen verwenden soll, müssen diese ebenfalls separat behandelt werden, da Chromedriver nicht auf den normalen Benutzerbereich zugreifen kann. Natürlich müssen Windows, MacOS und Linux unterschiedlich betrachtet werden.

Mit Sicherheit

Ein großes Problem ist, dass man diesen Skripten in der Regel den Zugang zu seinem Wallet zur Verfügung stellen muss. Oft befinden sich auch Links zu (fremden) Collections im Programmcode, oft nicht mit der Absicht, Zugangsdaten zu stehlen, sondern als “Beispiel”.

Vorsicht

Deshalb die dringende Warnung: Trauen Sie keinem Programmcode, den Sie nicht verstehen oder nicht gelesen haben. Wie leicht ist es, in den Programmzeilen einen Link zu verstecken, der alle Ihre vertraulichen Daten und damit den Zugang zu Ihrem Wallet verrät.

Das Risiko minimieren, aber wie?

OpenSea.io bietet die Möglichkeit, die Verwaltung von Sammlungen zu delegieren, indem man Mitstreiter (Collaborator) einlädt. Nun könnten Sie auf die Idee kommen, ein zusätzliches Konto zu erstellen, um das Risiko zu minimieren, nur diese Sammlung an ein speziell erstelltes Konto auf OpenSea zu delegieren. Dieses neue Konto hat nur Zugriff auf diese eine Sammlung und somit wäre das Risiko begrenzt. Die Idee ist gut, aber leider funktioniert sie in der Praxis nicht. Wenn Sie NFTs unter diesem neuen Konto hochladen, können sie nur von diesem Konto aus “minted” und in Verkäufen oder Auktionen angeboten werden. Es mag Anwendungsfälle geben, in denen dies ausreichend ist, aber im Allgemeinen ist es nicht sehr praktisch.

Eine andere Möglichkeit besteht darin, nur die Fernsteuerfunktion des Browsers zu verwenden und die Anmeldung und alle erforderlichen Eingaben oder Bestätigungen manuell vorzunehmen. Das funktioniert bei einer überschaubaren Anzahl von hochzuladenden Werken, etwa bei 100 bis 200, recht gut. Eine kleine Schwierigkeit dabei ist, dass Chrome sich in den meisten Fällen die Benutzereinstellungen nicht merkt, wenn das Skript beendet wird. Dies kann leicht geändert werden, indem man ein Verzeichnis “User Space” anlegt und dieses übergibt: ##chromeoptions opt = Optionen() opt.add_argument(“user-data-dir=PATH_TO_USER_DIR”) Sie können dies leicht mit chrome://version/ prüfen.

Um Chrome-Erweiterungen nutzen zu können, müssen diese zunächst exportiert werden, da Chromedriver aufgrund von Sicherheitseinstellungen in der Regel keinen Zugriff auf sie hat. chrome://erweiterungen/ “Erweiterung packen”.

Sie wird dann an Chromedriver übergeben mit opt.add_extension(EXTENSION_PATH)

Sind alle Voraussetzungen erfüllt, der Programmcode angepasst und die Tests bestanden, dann kann es an das Hochladen der Inhalte gehen.

Batch/stack upload from NFT to OpenSea.io

Many artists are considering jumping on the NFT bandwagon. While uploading a few photos or other works to platforms like OpenSea is still manageable, uploading a large number quickly becomes very time-consuming.

Suitable apps

Via Google search or GitHub you can find some apps (mostly Python scripts) to support the automated upload to OpenSea.io. The development is very dynamic and new ones are added daily. Examples are: NFTs-Upload-to-OpenSea  oder Bulk-uploader-NFT But beware, both examples don’t work right away, have many ‘issues‘ and/or links to foreign collections/accounts embedded.

No plug-and-play

As with everything, caution is advised here and one should neither rely on nor expect these to be apps that work straight out of the box.

First of all, an appropriate development environment must also be installed in most cases, e.g. JDK or Python in the correct, appropriate version. Here, too, there are different ways, which of course depend on the operating system. Python, for example, can be installed on the Mac in various ways, for example via Anaconda or Miniconda (?) or Homebrew.

Then there are other modules like Selenium and a ‘remotely controllable’ browser version, often Chromedriver – also in the correct version matching the Chrome installation.

If this is done, run pip install -r requirements.txt preferably in an virtual environment

If the remote-controlled Chrome (chromedriver) is to use Chrome extensions, these must also be handled separately because Chromedriver cannot access the normal user space. Of course, Windows, MacOS and Linux have to be considered differently.

With security

A big problem is that you usually have to make access to your wallet available to these scripts. Often there are also links to (foreign) collections in the program code, often not with the intention of stealing access data but as an “example”.

Caution

Therefore, the urgent warning: do not trust any programme code that you do not understand or have not read. How easy it is to hide a link in the program lines that gives away all your confidential data and thus access to your wallet.

Minimise risk, but how?

OpenSea.io offers the possibility to delegate the management of collections by inviting collaborators. Now you could come up with the idea of creating an extra account to minimise the risk of delegating only this collection to a specially created account on OpenSea. This new account only has access to this one collection and thus the risk would be limited. The idea is good, but unfortunately it does not work in practice. If you upload NFTs under this new account, they can only be ‘minted’ from this account and listed in sales or auctions. There may be use cases where this is sufficient, but generally it is not very practical.

Another option is to use only the browser’s pre-tax function, still performing the login and any necessary entries or confirmations manually. This works quite well for a manageable number of works to be uploaded, say for one to 200. One small difficulty here is that in most cases Chrome does not remember the user settings when the script is terminated. This can easily be changed by creating a “User Space” directory and passing it: ##chromeoptions opt = Options() opt.add_argument(“user-data-dir=PATH_TO_USER_DIR”) You can easily check this with chrome://version/.

In order to use Chrome extensions, they must first be exported, as Chromedriver usually has no access to them due to security settings. chrome://extensions/ “Pack extension”.

It is then passed to Chromedriver with opt.add_extension(EXTENSION_PATH)

Schnelle Antwort: Farben ersetzen in PS

Öffnen Sie Ihr Bild. Gehen Sie zu Bild (in der Menüleiste), Anpassung und dann Farbe ersetzen. Wählen Sie im Auswahlbereich die Farbe aus, die Sie ersetzen möchten. Klicken Sie einfach mit der Pipette auf einen beliebigen Teil des Bildes, den Sie ersetzen möchten. Wählen Sie im Bereich Ersetzen die Ersatzfarbe aus, indem Sie entweder Ihre eigene RGB-Farbe eingeben oder mit dem Mauszeiger auf eine beliebige Farbe zeigen und diese anklicken. Nachdem Sie die Farben ausgewählt haben, klicken Sie auf “Ok”. Die Farbe Ihrer Auswahl wird dann ersetzt. Wiederholen Sie diesen Vorgang für andere Teile, wenn Sie komplexe Farbverläufe haben.