[PYTHON] Es ist okay, zum ersten Mal teilzunehmen! Ein Hackason-Starter-Kit, das Sie "vor" der Teilnahme am Hackason vorbereiten möchten!

Überblick

Bis jetzt bin ich ein Back-End-Ingenieur, aber ich habe ungefähr 7 oder 8 Mal an Hackathons teilgenommen. Unter anderem möchte ich die Dinge vorstellen, die durch den Einsatz verschiedener Technologien und Produkte nützlich waren. Was ich denke, ist wichtig für die tatsächliche Entwicklung bei Hackason

In diesem Zusammenhang möchte ich hauptsächlich die Produkte vorstellen, die diese realisieren können. Abschließend möchte ich einige kleine, aber wichtige Tipps für die Teilnahme am Hackathon vorstellen. Bitte beachten Sie, dass dies darauf abzielt, am Hackathon teilzunehmen und das Produkt so schnell wie möglich zu machen, und dass es einige Sicherheitsprobleme gibt.

Was ist ein Hackason?

Hackathon (englisch: hackathon, auch bekannt als hack day, hackfest, codefest) ist eine Veranstaltung für softwarebezogene Projekte, bei der Programmierer, Grafikdesigner, Benutzeroberflächendesigner und Projektmanager im Bereich der Softwareentwicklung intensiv arbeiten. Es gibt Fälle, in denen wir einzeln, in Gruppen und an einem Ziel als Ganzes arbeiten.

Referenz: Hackason

Bei den meisten Hackern handelt es sich um Veranstaltungen, bei denen Teams gebildet und Smartphone-Apps und Webdienste in einem kurzen Zeitraum von etwa 8 bis 24 Stunden erstellt werden. Diejenigen, die ich gesehen habe, sind Hack Day, teamLab Hack-Day, SPAJAM, Fish Casson usw.

Chat (locker)

image.png

https://slack.com/

Es ist ein Chat-Tool, das ich nicht erwähnt habe. Ich denke, dass Sie normalerweise das Image haben, es im Unternehmen oder in einem Team mit Menschen zu verwenden, die weit entfernt sind. Gibt es irgendwelche Vorteile für persönliche Hackathons? Apropos

  1. Bestätigen und teilen Sie den Fortschritt bei der Vorbereitung auf den Hackathon
  2. Einfache Lieferung von Materialien

In welchen Fällen ist es beispielsweise nützlich? Mit anderen Worten, es ist nützlich, um die Informationen freizugeben, die für die Anmeldung beim Entwicklungsserver erforderlich sind, und um den Link freizugeben, wenn Sie technisch süchtig danach sind, und ihn von Hand nachzuschlagen. Wenn Sie eine App entwickeln, können Sie Bilder ersetzen und genügend Material für die Site übergeben, wenn diese hell sind. Dies ist auch nützlich, wenn beim Erstellen einer Präsentation tatsächliche Daten übergeben werden. Auf der anderen Seite ist es nicht so, wenn Sie sagen "Muss ich locker sein?" Es gibt andere Chat-Arbeiten und Facebook Messenger, sodass Sie nicht besonders darauf achten müssen. ** Wichtig ist, die Kommunikationskosten und die Materiallieferkosten zu minimieren. ** ** **

Freigegebener Server (Docker)

image.png

Unnötig zu erwähnen, dass es sich um einen bekannten Docker handelt. Es ist oft praktisch, einen gemeinsam genutzten Server zu haben, daher wird er oft erstellt. Vor kurzem gab es eine Docker-Datei, die die Mitglieder in der freigegebenen Umgebung verwendet haben. Fügen Sie sie daher ein.

Dockerfile


FROM ubuntu:16.04

RUN apt-get update && apt-get -y upgrade && apt-get install -y build-essential libssl-dev libreadline-dev zlib1g-dev language-pack-ja
RUN apt-get -y install openssh-server ufw curl
RUN mkdir /var/run/sshd

#Einstellungen für einen Benutzer--von hier--
#Benutzer Registration(kotauchisunsun,password)
RUN useradd -m kotauchisunsun && echo "kotauchisunsun:password" | chpasswd && gpasswd -a kotauchisunsun sudo
RUN mkdir -p /home/kotauchisunsun/.ssh; chown kotauchisunsun /home/kotauchisunsun/.ssh; chmod 700 /home/kotauchisunsun/.ssh

#Benutzer-SSH-Schlüsselregistrierung
ADD ./authorized_keys /home/kotauchisunsun/.ssh/authorized_keys
RUN chown kotauchisunsun /home/kotauchisunsun/.ssh/authorized_keys; chmod 600 /home/kotauchisunsun/.ssh/authorized_keys
#Einstellungen für einen Benutzer--Bisher--

CMD /usr/sbin/sshd -D && tail -f /dev/null

Referenz: Minimum erforderlich, um einen Docker-Container zu erstellen, der ssh kann

Wenn Sie diese Docker-Datei und die autorisierten_Schlüssel und den privaten_Schlüssel für ssh erstellen, funktioniert dies. In der obigen Docker-Datei wird ein Benutzer namens kotauchisunsun hinzugefügt, das Kennwort als Kennwort registriert und die sudo-Berechtigung erteilt. Wenn Sie den Teil der "Benutzereinstellung Nr. 1" für die Mitglieder, die am Hackathon teilnehmen, kopieren und einfügen, den Namen ändern und erhöhen, kann jeder ssh. Wenn Sie es in "Nur für Hacker verwenden" unterteilen, können Sie den privaten Schlüssel sicher in "Slack" usw. einfügen und freigeben (obwohl es völlig ausfällt, wenn Sie es mit dem tatsächlichen Produkt tun) und überprüfen, ob Login und Sudo funktionieren. .. Wenn Sie den gesamten Server löschen, wenn Sie fertig sind, ist der Server des Mutterschiffs nicht betroffen. Selbst wenn der private Schlüssel durchgesickert ist, ist es schwierig, von Hackason in kurzer Zeit angegriffen zu werden, und selbst wenn er zum Sprungbrett für einen Angriff wird, ist es einfach, den Dienst zu stoppen. Der Grund, warum das Dockerfile selbst nicht so häufig erstellt wird, ist, dass die für jeden Hackathon erstellten Produkttypen und Bibliotheken sehr unterschiedlich sind. Daher bereiten wir nur Basiscontainer vor und überlassen den Rest den Teammitgliedern.

$ docker build -t sshd_image . 
$ docker run --privileged -d -p 2222:22 sshd_image

Dadurch wird Docker gestartet und ssh auf Port 2222 ausgeführt. Es gibt einen Punkt, an dem ich das Gefühl habe ** Es gibt nur 22 Ports, an die ssh weiterleiten kann. ** Dies wird der vorherigen Geschichte widersprechen. Es gibt keine Möglichkeit für den Server in Docker, eine Anfrage von der globalen IP zu empfangen, obwohl dort steht "Es ist besser, mit Microservices zu erstellen". Daher gibt es viele Unsicherheiten beim Betrieb, ohne zu wissen, wie viele Server wie Hackason stehen werden. Gibt es also eine Möglichkeit, die Portweiterleitung später im Docker hinzuzufügen? (Referenz). Diese Methode ist jedoch eine Methode zur Manipulation des Servers des Mutterschiffs, auf dem Docker ausgeführt wird, und wenn möglich eine Methode, die ich nicht ausführen möchte. Im nächsten Abschnitt werden wir vorstellen, wie dies gelöst werden kann ** "Ich möchte mit Docker arbeiten, aber ich möchte die Anzahl der Ports erhöhen, die nach dem Starten des Containers veröffentlicht werden sollen" **.

Muss ich mir auch die Mühe machen, sshd mit diesen Inhalten mit Docker zu warten? Es wird gesagt, dass es gibt. Zeit ist das Kostbarste in einem Hackathon. Daher ** "Oh, ich habe einen SSH-Fehler erhalten. Berechtigung verweigert. Oh, ich verstehe. Ich habe einen Fehler in der Autorität von autorisierten Schlüsseln gemacht. Ich mache es oft. Chmod 600." Ich habe keine Zeit dafür **. Wenn Sie Zeit an einem so langweiligen Ort verbringen, ist es bequemer, ein stabiles Produkt zu verwenden.

Portweiterleitung (ngrok)

image.png https://ngrok.com/

Kurz gesagt, es ist ein Dienst, der den Port global öffnet. ** ** ** Wenn Sie beispielsweise Port 80 von localhost in Docker veröffentlichen möchten, laden Sie einfach die Binärdatei der oben genannten offiziellen Website herunter und geben Sie den folgenden Befehl ein. Der Port wird dann mit https veröffentlicht.

$ ./ngrok http 80
ngrok by @inconshreveable                                                                                                                                                                                       (Ctrl+C to quit)

Session Status                online
Version                       2.2.8
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://2c8b91ae.ngrok.io -> localhost:80
Forwarding                    https://2c8b91ae.ngrok.io -> localhost:80

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

Nur das! Wenn Sie jetzt auf https://2c8b91ae.ngrok.io zugreifen, können Sie den Zugriff auf Port 80 von localhost in Docker ausführen. Jetzt können Sie weltweit so viele Ports in Docker routen, wie Sie möchten! Keine Benutzerregistrierung erforderlich! ** ** ** ngrok selbst hat verschiedene Einschränkungen im kostenlosen Plan, aber es ist nicht so wichtig für die Verwendung bei Hackathons. Zu beachten ist jedoch, dass sich die Domäne des kostenlosen Plans bei jedem Start zufällig ändert. Daher ist es erforderlich, eine Funktion zu implementieren, die die Domäne des Clients ändern kann, oder den Prozess weiter zu starten, damit sich die Domäne von ngrok, die einmal auf der Serverseite gestartet wurde, nicht ändert.

Statischer Server (Python)

image.png

Wenn Sie eine Webanwendung erstellen möchten, ist ein statischer Server zum Speichern von Bildern und JS erforderlich. Auch wenn es sich bei dem zu erstellenden Objekt nicht um eine Webanwendung handelt, kann es praktisch sein, einen Server zu haben, auf dem Sie den aktuellen Zustand der Benutzeroberfläche mit dem Browser Ihres Smartphones leicht anzeigen können, falls der Designer die Benutzeroberfläche Ihres Smartphones überprüfen möchte. Im Allgemeinen ist nginx stabil und schnell, wenn statische Dateien gewartet werden, aber die Einführung ist persönlich schwierig. Also ich,

$ python3 -m http.server

Ich werde mit aufstehen. Dadurch wird das ausgeführte Verzeichnis auf Port 8000 verfügbar gemacht. Wenn Sie HTML, CSS und JS in dasselbe Verzeichnis stellen, können Sie sie daher sofort sehen. Wenn Sie den Port früher mit ngrok übertragen, ist es kein Problem, ihn anzuzeigen.

Dateiübertragung (Cyberduck)

image.png

https://cyberduck.io/index.ja.html?l=ja

Ein GUI-SCP-Client, der sowohl auf Mac als auch auf Windows ausgeführt wird. Dies ist auch der Grund, warum ssh früher in der gemeinsam genutzten Umgebung ausgeführt wurde, und ich denke, dass es für Designer praktisch ist, Dateien durch Betreiben der GUI mit Cyberduck übertragen zu können. Dies hat auch auf der Entwicklungsseite einen Vorteil, und wenn sich ein Ingenieur die Mühe macht, die Daten in Produktion zu bringen, wird es einige Zeit dauern, und der Designer muss auch "warten". Dies wird die Effizienz der Produktentwicklung verringern. Daher kann es für beide Designer von Vorteil sein, ihnen die Bereitstellung selbst zu ermöglichen.

Hackason BE Architekt

** Empfohlener Mikrodienst für 1 Server pro Person **

Machen. Es gibt drei Gründe

** 1. Kostspieliger Code ** ** 2. Sie können Ihre persönliche Stärke und Umgebung optimal nutzen ** ** 3. Wenn die Entwicklung schwierig wird, ist es leicht, die Funktion zu entfetten **

Als persönliche Erfahrung dauert der kombinierte Teil des Codes oft am längsten. Bei Hackerson lege ich großen Wert auf das "Schreiben von Arbeitscode", und in vielen Fällen sind die Aufteilung der Klassen und die Struktur des Programms auf halbem Weg, und der Code ist nicht so schön wie das Schreiben bei der Arbeit. Daher berühren mehrere Personen denselben Quellcode, oder die Benutzeroberfläche der Funktion wird aufgrund fehlender Funktionen ohne Erlaubnis geändert, und es treten häufig Konflikte auf. Konflikte und Korrekturen treten jedes Mal auf, wenn jemand während eines Hackathons den Code berührt, was die Entwicklung verlangsamt. Wenn der Code aufgrund des Abziehens von Github hängen bleibt und die Wiederherstellung einige Zeit in Anspruch nimmt, funktioniert das Produkt lange Zeit überhaupt nicht und kann geistig in die Enge getrieben werden. "** Vermeiden Sie nach Möglichkeit das Zusammenführen von Code " " Achten Sie auch beim Zusammenführen von Code auf das Schnittstellendesign der Klasse und die Granularität der Funktionsaufteilung und vermeiden Sie das Berühren desselben Quellcodes * * "Ist meine persönliche Strategie. Wie können Sie mit dem zuvor erwähnten Ansatz "Code-Zusammenführung nach Möglichkeit vermeiden", über den ich bereits gesprochen habe, in einem Multiplayer-Entwicklungszustand funktional kombinieren? Es wird. Meine persönliche Lösung ist ** besser als Microservice zu kombinieren **. Ich denke, es ist am einfachsten, mit der sogenannten REST-API zu erstellen. Das Erstellen einer REST-API auf der realen Produktebene ist ziemlich schwierig. Wiederherstellung nach Variablenvalidierung und ordnungsgemäßer Fehlerbehandlung. Es gibt viele Punkte, über die man nachdenken muss, beispielsweise den Einfallsreichtum beim Erstellen einer statusbehafteten API. Im Fall von Hackason ist es jedoch eine wichtige Voraussetzung, dass es funktioniert, sodass diese Seite vollständig ignoriert werden kann. Persönlich denke ich, dass es am einfachsten ist, die Einstiegspunkte von POST und URL zu teilen und json als Body zu verwenden. Die Idee ist **. In den meisten Programmiersprachen können Sie http anfordern und json erstellen. Auf der Serverseite kann http normal empfangen werden, und das Parsen von json ist auch eine Standardsprache, sodass Sie nicht viel darüber nachdenken müssen. Aufgrund der Eigenschaften von Hackern sind sie oft "technisch herausgefordert". Beispielsweise sind neue Geräte, Bibliotheken für maschinelles Lernen und andere Herausforderungen interessant, bleiben jedoch häufig in der Umgebung hängen. Es ist wirklich schwer, in dieser Umgebung hängen zu bleiben, und das Produkt funktioniert möglicherweise überhaupt nicht. Wenn eine große Anzahl von Personen eine gemeinsam genutzte Entwicklungsumgebung verwendet und jede Person die Bibliothek nach Belieben installiert, funktioniert das, was funktioniert hat, möglicherweise nicht. ** Daher ist es einfach, etwas zu erstellen, das als Produkt funktioniert, indem ein Server und eine Funktion pro Person zusammengestellt werden. ** Dies hat verschiedene Vorteile. Da der Server von jedem Einzelnen eingerichtet wird, ist es einfach, ihn in einer für jeden Einzelnen einfachen Entwicklungsumgebung zu erstellen und das Produkt auszuführen, sodass die Entwicklungsgeschwindigkeit einfach ist. Wenn Sie es zu einem Mikrodienst machen und die Module lose koppeln, wenn eine Funktion nicht funktioniert und keine Hilfe dafür vorhanden ist, wird das ** -Modul auf Serverebene getrennt und entfettet, um ein Produkt herzustellen. Sie können vermeiden, dass "das Produkt nicht funktioniert" **. Aber diese sind wirklich nur serverseitig. Die gemeinsame Nutzung von Code ist für die Entwicklung von iOS und Android unerlässlich. Tatsächlich ist dies auch ein persönliches Problem, und wenn Sie eine Smartphone-App mit einer großen Anzahl von Personen in ** Hackason erstellen, werden Sie oft die Hölle sehen (insbesondere in der GUI). ** Daher gibt es bei Smartphone-Apps einen Abschnitt, in dem einer der Entwickler, die die endgültigen Funktionen verbinden, viel Strom benötigt.

Kleine aber wichtige Hackason-Tipps

Stellen Sie sicher, dass Sie die Entwicklungsumgebung und die Bibliotheken installieren und das Lernprogramm im Voraus ausführen.

Wenn Sie während eines Hackathons eine Entwicklungsumgebung erstellen oder eine Bibliothek installieren, reicht dies nicht aus, egal wie viel Zeit Sie haben. Lass es uns zuerst tun. Sobald Sie den Beispielcode erstellt und sichergestellt haben, dass er funktioniert, können Sie sich auf die Erstellung konzentrieren.

Mit der Gadget-Hardware können mehrere Personen dasselbe bewegen

Aktuelle Starthardware ist interessant, und Produkte, die solche Hardware verwenden, sehen "Hackason" aus. Wenn diese Hardware jedoch als Hackason-Produkt verwendet wird, ist das Produkt sterbend, wenn es nicht gut funktioniert. Lassen Sie uns daher ein paar Menschen die Möglichkeit geben, sich zu bewegen, nicht nur einer Person.

Stellen Sie sicher, dass Sie 3 oder 4 Ersatzteile für elektronische Arbeiten vorbereiten

Ich selbst habe bei Hackason noch nie elektronische Arbeit geleistet, aber die Teile sind kaputt. Es ist (anscheinend) gut, mehr als eine vorzubereiten.

Gib das "Lernen" des maschinellen Lernens auf

Der Hackason dauert am längsten einen Tag und am kürzesten etwa 5 Stunden. Unter solchen Umständen sind maschinelles Lernen und Parametereinstellung hoffnungslos. Verwenden Sie vorhandene so oft wie möglich.

Bringen Sie einen Wasserhahn und tragbares Wifi mit

Hacker werden immer weiter verbreitet, aber nicht so viele. Es sind nicht nur die Teilnehmer, sondern auch die Betreiber. Daher verfügt auch die Managementseite über wenig Know-how und die Anzahl der Stromquellen am Hackathon-Austragungsort ist unzureichend. Wifi fällt aus und die Entwicklung geht nicht weiter. Das ist auch ein gutes Geschäft. Um eine reibungslose Entwicklung zu gewährleisten, benötigen wir daher mindestens einen Stromabgriff. Wenn Sie auch ein tragbares WLAN haben, ist es ausfallsicher.

Ich denke, wir werden klein anfangen und schwenken

Wenn ich ein Produkt mit einem Hackathon mache, möchte ich definitiv etwas Erstaunliches machen, aber es ist ziemlich schwierig. Daher denke ich, dass es einfacher ist, das Konzept einzugrenzen und einfach eine Funktion zu durchbrechen. Seine Funktion funktioniert jedoch oft nicht gut. Daher ist es ratsam, den 2. und 3. Plan in gewissem Umfang zu berücksichtigen, damit ein Failover durchgeführt werden kann.

Vermeiden Sie Hacker, die an diesem Tag Teams bilden

** Dies ist meine persönliche Meinung, aber ich denke, dass der Hackathon, den das Team an diesem Tag aufbaut, einen starken Glücksfaktor hat und schwierig ist, selbst wenn Sie an den Hackathon gewöhnt sind. ** Nicht empfohlen, insbesondere für Anfänger und Erstteilnehmer. Unabhängig davon, ob Sie der anderen Partei eine Aufgabe zuweisen oder eine Aufgabe von der anderen Partei erhalten, können Sie den Zeitpunkt der Verschlechterung der Endproduktqualität nur bestimmen, wenn die Fähigkeiten der anderen Partei klar sind. Im Falle eines schnell aufgebauten Teams können die Mitglieder daher voneinander Abstand nehmen und das Produkt hat möglicherweise nicht viel Funktion, oder die Meinungen der anderen können in Konflikt geraten und der Start des Produkts beginnt möglicherweise überhaupt nicht. Persönlich brauche ich ungefähr 3 oder 4 Kernmitglieder, die nah beieinander sind und offen Meinungen austauschen können. Wenn ich den App-Ingenieur, den Backend-Ingenieur und den Designer im Stich lasse, kann ich den Hackathon mit Zuversicht genießen. Ich werde.

Selbst wenn ich ein Produkt sehe, das nicht funktioniert, berührt es mein Herz nicht

Vermeiden Sie "Ich habe versucht, es zu tun, aber es wurde nicht abgeschlossen." Und "Ich hatte vor, es zu tun." Abhängig von der Form des Hackathons werden nach dem Ende des Wettbewerbs einige Produkte ausgestellt und von der Öffentlichkeit genossen. Was erwartet die breite Öffentlichkeit, die zu einer solchen Veranstaltung kommt, zu dieser Veranstaltung? Vielleicht möchten viele Menschen erleben: "Ich kann so etwas in kurzer Zeit machen! Es ist erstaunlich!" "Ich habe noch nie einen solchen Service gesehen!" "Technologie ist interessant!" Wenn das Produkt in einem solchen Fall nicht funktioniert, entsteht ein sehr enttäuschendes Gefühl. Ich denke, das ist wahrscheinlich bei den Hackern und den Richtern der Fall. ** Lassen Sie uns mindestens genug bewegen, um zu demonstrieren. ** ist meine persönliche Meinung.

Zusammenfassung

Ich habe in diesem Artikel über technische Probleme gesprochen, aber es gibt noch anderes Hackason-Know-how, das Sie bis zu einem gewissen Grad kennen sollten. Sie müssen das nicht behalten, aber wenn Sie es wissen, können Sie gerne am Hackathon teilnehmen. ** Der beste Weg zu lernen ist die Teilnahme an einem Hackathon. Lass uns den Hackathon genießen! Lass uns die Zeit hacken! !! ** ** **

Recommended Posts

Es ist okay, zum ersten Mal teilzunehmen! Ein Hackason-Starter-Kit, das Sie "vor" der Teilnahme am Hackason vorbereiten möchten!
Registrieren Sie zum ersten Mal eine Aufgabe in cron
Wenn Sie in der for-Anweisung plt.save möchten
Ich möchte zum ersten Mal eine Django-Studie zur Mittagsdatenbank [EP1] erstellen
Ich möchte zum ersten Mal eine Django-Studie zum Mittagessen [EP1-4] erstellen
Ich möchte vorerst eine Docker-Datei erstellen.
Beachten Sie, dass Sie die im Django-Vorlagenformular übergebenen Parameter Element für Element manuell dekorieren möchten
[Hi Py (Teil 1)] Ich möchte vorerst etwas machen, also setze zuerst ein Ziel.
[AtCoder für Anfänger] Sprechen Sie über den Rechenaufwand, den Sie grob wissen möchten
Zum ersten Mal in Numpy werde ich es von Zeit zu Zeit aktualisieren
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
MongoDB mit Python zum ersten Mal
Bis Sie die Silbermedaille (Top 3%) in dem Wettbewerb gewinnen, an dem Sie innerhalb eines Monats zum ersten Mal in der Datenwissenschaft teilgenommen haben!
Behandeln Sie CSV mit dem Element, das Sie im Namen der Datei analysieren möchten
Lassen Sie uns eine einfache Vorlage anzeigen, die ideal für den ersten Django ist
So verwenden Sie MkDocs zum ersten Mal
Versuchen Sie zum ersten Mal, in Qiita zu posten
So finden Sie das erste Element, das den Kriterien in der Python-Liste entspricht
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Ich möchte vorerst Selen bewegen [für Mac]
Zusammenfassung der Stolperpunkte in Django zum ersten Mal
Schlafverarbeitung für einen bestimmten Zeitraum (Sekunden) oder länger in Python
Code, an den ich mich gerne erinnert hätte, als ich zum ersten Mal an AtCoder teilgenommen habe (Reflection 1 für das nächste Mal)
Einstellungen zum Ausführen eines Tests jedes Mal, wenn Sie eine Datei mit watchmedo (watchdog) im Editor speichern
Ich habe eine Funktion erstellt, um zu überprüfen, ob der Webhook vorerst in Lambda empfangen wird
Einführung in Deep Learning zum ersten Mal (Chainer) Japanische Zeichenerkennung Kapitel 3 [Zeichenerkennung anhand eines Modells]
Die Geschichte, zum ersten Mal seit 5 Jahren wieder an die Front zurückzukehren und Python Django umzugestalten
"Curly and Bazaar", das Leute lesen wollen, die in einem soliden Unternehmen arbeiten
So lösen Sie das Problem, dass die Zeit jedes Mal schief geht, wenn Sie die Stromversorgung unter Linux einschalten
Was ich durch das Schreiben einer Python Pull-Anfrage zum ersten Mal in meinem Leben gelernt habe
Wenn Sie neu in der Programmierung sind, warum machen Sie nicht vorerst ein "Spiel"? Die Geschichte