Entwicklertreffen vom 09.01.2017

Entwicklertreffen Übersicht




Zusammenfassung

Im Folgenden findet man das Protokoll des Entwicklertreffens vom 09.01.2017.

Es wurde angekündigt, dass das automatische Neustarten von Apps wieder funktioniert und dass der Fehler mit den Toplisten behoben wurde.

In der Fragerunde wurden überwiegend kleinere Probleme der App-Entwickler geklärt. Insbesondere wurde die neue App Besserwisser von DerNeuanfang und Maexxchen vorgestellt, die derzeit noch Unterstützung für ihr Projekt suchen und gerne neue Vorschläge annehmen. Weiterhin wurde LichtIstHoffnung bei seinem Problem, was er mit seiner Radio-App hat, unter die Arme gegriffen.


Protokoll

IgelchenM: Servus zusammen! Wer Püktlich ist, soll erstmal belohnt werden ^^    

IgelchenM: Diejenigen unter euch, die meine Einladung durchgelesen haben, wissen es bereits. Alle anderen Erfahren es jetzt nochmal. Auf dem Entwicklungsserver funktioniert nun wieder das automatische Neustarten von Apps bei Änderungen und auf dem Live- sowie Entwicklungsserver gehen wieder die Toplisten!

rmpg: wie sieht es generell mit dem Uservoice aus? oder sind wir immernoch am Bugfixen?

IgelchenM: Ansonsten gibt es keine Neuigkeiten über neue Funktionen oder Methoden. @rmpg

IgelchenM: Damit würd ich auch schon gerne zu der Fragerunde kommen, damit das ganze heute nicht so in die Länge gezogen wird.

IgelchenM: underground devil shyt, LichtIstHoffnung, Dean & Sam Winchester - schön dass ihr da seid. Habt ihr heute Fragen mitgebracht oder arbeitet ihr gerade an einem Projekt über das ihr etwas erzählen wollt?

LichtIstHoffnung: Ich erarbeite derzeit eine App für nen Radio mit HTML UI

LichtIstHoffnung: und bastel an einer Stammhörer vergabe bekomme aber nicht so ganz hin die Persistence einmal im Monat zu vergeben

rmpg: Dann schau mal in /Hitradio Online vorbei

IgelchenM: @LichtIstHoffnung - sowas wie ne Grußbox und so weiter?

LichtIstHoffnung: ja @IgelchenM

rmpg: wo haperts denn genau?

rmpg: bei der genrellen persistence

LichtIstHoffnung: derzeit vergebe ich es nach 5 Tagen

rmpg: oder der monatlichen vergabe

LichtIstHoffnung: aber würde es halt gerne einmal im monat machen nach Mins oder so

rmpg: Heisst du liest die onlinezeit des users im channel aus und vergibst an die 10 daueronline user den stammhörer status

rmpg: oder halt ab einer gewissen minuten zahl

LichtIstHoffnung: japs

IgelchenM: während rmpg dabei hilft, kommen wir zu den nächsten. auge123 - mikasapikaa und Pudding (danke für den Kaffee) - habt ihr Fragen mitgebracht?

mikasapikaa: nochmal zu der /m von dir
.........mit dem smiley :D
.........sind die nur für mcinhaber oder auch für appmanager ? In der /m stand ja auch für die, die den channel liebevoll betreuen :D

Dean & Sam Winchester: wann gibts diese smileys eigentlich, also wann werden die immer vergeben?

LichtIstHoffnung: wenn deine App besonders toll ist xD

LichtIstHoffnung: (glaube ich)

rmpg: Im grunde wenn igelchen der meinung ist du hast ihn dir verdient ^^

IgelchenM: Zu dem sei gesagt, dass dieser Smiley zufällig vergeben wird, wenn wir der Meinung sind, dass er sich verdient wurde. In der Vergangenheit wurde er z. B. an MCMs in sehr betreuungsintensiven channels vergeben, für Entwickler die ne neue gute App realisiert haben oder ähnliches

IgelchenM: mit wir meine ich Ironist und mich ;)

IgelchenM: auch anderen bei der Entwicklung helfen, fliest mit rein ;)

LichtIstHoffnung: ich investiere JEDEN Tag meine zeit in updates und so habe noch nie einen bekommen xD

LichtIstHoffnung: iwas mache ich falsch :Ü

IgelchenM: sprich im Forum helfen, UserVoice gute Vorschläge machen, Entwicklern helfen etc.

Dean & Sam Winchester: behaltet ihr da die channel also im auge?

DerNeuanfang: Dean & Sam Winchester ja machen sie.

rmpg: schlüssel doch mal das stc. näher aus ^^

IgelchenM: wir schauen regelmässig was so passiert.

IgelchenM: wir haben unsere augen und Ohren überall mikasapikaa

IgelchenM: außerdem schreibe ich, sobald es sich lohnt auch über neue Apps nen AppCheck, oder prüfen den Code auf Schadstellen und ähnliches ^^

LichtIstHoffnung: Ach IgelchenM ?

IgelchenM: ja?

LichtIstHoffnung: darf man diese Knuddels Functionen nachbauten nicht mehr haben? Habe da was gehört?!

IgelchenM: wer sagt sowas? :o

rmpg: Ironist

rmpg: laut meinen Infos von vor ein/zwei Jahren

rmpg: Sofern der User es per Befehl auslösen kann ist es nicht erlaubt

LichtIstHoffnung: das war ne frage

Ich sach mal: ich hab die info.. .. wenn es sinn macht ist es geduldet

IgelchenM: Ihr habt immer die Möglichkeit Features oder ähnliches von Knuddels nachzubauen wie ihr lustig seid. Es gibt aber ein paar Einschränkungen. z. B. dürfen Grafiken nicht ohne Erlaubnis verwendet werden um Knuddels in ein negatives Licht zu rücken, oder Features verwendet werden (Stichwort FeatureSprites) gegen Knuddel ermöglicht werden etc.

IgelchenM: im Zweifel werden Iro oder ich euch dann drauf hinweisen, dass es so und so nicht geht - falls ihr etwas macht, was nicht geduldet wird

LichtIstHoffnung: habt ihr einer meiner apps schon mal geprüft?

LichtIstHoffnung: da sind halt sprites drinnen

DerNeuanfang: LichtIstHoffnung das ist noch ok (was ich bisher von dir kenne)

LichtIstHoffnung: will keine abmahnung kassieren

LichtIstHoffnung: alles klar danke

IgelchenM: rmpg (viel Spaß bei tbbt), Red Intuition und Don Diablo - schön euch hier zu sehen. Sitzt ihr aktuell an einer User App über die ihr quatschen wollt oder habt Fragen mitgebracht?

Don Diablo: Momentan zeitlich nicht möglich. - Geht aber bald los! Aus diesem Grund habe ich heute noch keine Fragen mitgebracht.

IgelchenM: dann freu ich mich drauf, dich hier öfter zu sehen!

Don Diablo: Nächstes mal habe ich sicherlich Fragen im Gepäck!

IgelchenM: zum Thema "Fragen im Gepäck". Ihr könnt natürlich jederzeit eure Fragen an mich, im User Apps Forum oder an andere Entwickler (vorzugsweise, die hier mit COACH gekenntzeichnet sind) stellen.

IgelchenM: so wo waren wir stehen geblieben... achja partyboy@wob, Green-Angel25 und Imo2014 (ich denke jedesmal der erste Buchstabe ist ein L!) - habt ihr Fragen? :)

Imo2014: Hat jemand ne Idee, wie ich nen externen Videostream in nen HTML UI basteln könnte.

LichtIstHoffnung: iframe Imo2014

SchlechteOnkelz: iframe aber nur https :o

Imo2014: ich wollt mir mal nen zweiten account mit lmo2014 anlegen, wenn mein erster mal wieder colorgemutet wurde.

Imo2014: iframe geht auf externe quelle ?

IgelchenM: Videostreams einbinden geht nur via iFrame, wenn HTTPS genutzt wird und auch dann nur im HTML-Chat (wenn ich das noch richtig weiss)

IgelchenM: externe Videostreams*

SchlechteOnkelz: Das weißt du ganz richtig Olli xD

Imo2014: würde gern ne Slotmaschiene oder ähnliches hinstellen, welche man per WebIF Steuern kann

Imo2014: und das im HTMLui sieht

IgelchenM: Maexxchen und DerNeuanfang - ihr sucht ja aktuell Unterstützung für eure App in Channel Besserwisser wie ihr im Forum bereits geschildert habt. Wie geht denn euer Projekt so vorran, was ist neu und was wird noch kommen?

Maexxchen: Derzeit überlegen wir, wie wir das ganze finanzieren.

rmpg: fragt mich doch einfach

rmpg: Ich sponsore hier eh gerade 3 channel

Maexxchen: Natürlich wird die Datenbank stetig erweitert und wir freuen uns natürlich auch da auf eure Unterstützung.

DerNeuanfang: IgelchenM viele neue Datenbanken sind nun eingebaut. Quest-System wird gerade gebaut und Topliste (Tag und Monat) wird heute fertig (mit Knuddeligen gewinne). Wir bräuchten aber noch Hilfe Neue Kategorien (Biite an Maexxchen wenden) und feedback zur App. Wir haben ein Neues UI noch mit eingebaut, was bei Java noch bissel bugged (wird aber heute hoffentlich auch gefixxed).

IgelchenM: btw. Macht die Eingabefelder überall einheitlich!

IgelchenM: entweder weiss, oder farbig

DerNeuanfang: Was wir noch dringend brauchen ist eine Idee, wie der Channel sich selbst Finanziert. Da wir durch QUest und Toplisten Knuddel verteilen möchten Natürlich wäre auch eine Eintragung in das Quest-System von Knuddels auch nicht ganz so schlecht

Maexxchen: Alle Infos zur Unterstützung findet ihr im verlinkten Forumbeitrag.

rmpg: kauf dir mehr zeit für 1 knuddel

IgelchenM: Nähere Informationen hier (hab übrigens euren Screenshot neu hochgeladen und gespoiltert! )

Niveauvoll: Spenden? Mehr Kategorien durch knuddeleinsatz oder so? ^^ Da ich mti der Idee ankam, spende ich gern was xD

rmpg: als beispiel

rmpg: tipps per knuddel

rmpg: schwupp selbstfinanziert

SchlechteOnkelz: Oder doppelte Punktzahl mit knuddel

IgelchenM: hörst du das? alles meine Ideen die ich dir schon vor Tagen geschrieben habe Jan ... XD

rmpg: Das ist ja auch das naheliegendste ^^

Maexxchen: Das Problem bei der doppelten Punktzahl ist aber irgendwie, dass man ja gerade Punkte braucht, um Knuddel zu gewinnen....

IgelchenM: 2Ribery2, Ququknife (jetzt darfst du ) und Svenja-14 (ich will auch nen Playmobilmännchen!) - habt ihr Fragen mitgebracht?

DerNeuanfang: Das mit den Tipp... dazu lasse ich mir was nettes noch einfallen. Dean & Sam Winchester schreib mir vorhin schon, dass man vill extra +5 sek kaufen könnte

SchlechteOnkelz: Eben deshalb ja

SchlechteOnkelz: @ maex

Maexxchen: Die Idee hatte ich auch schon, Jan.

Maexxchen: Ja und dann haben neue Spieler gar keine chance, SchlechteOnkelz??

Don Diablo: Was wäre denn, wenn man sich die Möglichkeit erkaufen kann, das die guten buchstaben wahrscheinlicher sind?

SchlechteOnkelz: Wieso nicht? Es hilft ja nichts wenn ich doppelte Punkte will aber die Datenbank es nicht drin hat

Maexxchen: Naja, jeder bekommt ja die gleichen angezeigt.

Don Diablo: Ja, hm.

IgelchenM: dann gehts weiter mit SchlechteOnkelz und Daviddergabber1990

DerNeuanfang: Sonst können wir auch Werbung anbieten 1x die Stunde

Dean & Sam Winchester: gekauft DerNeuanfang

Ququknife: also ich arbeite derzeit an einem Spiel, dazu hätt ich ne frage, nicht direkt zu den Funktionen von knuddels sondern eher allgemein zu Javascript und arrays und zwar versuche ich per klick auf ein Element in der HTML UI etwas in einem array speichern, das selbe soll passieren wenn ich auf ein anderes element klicke damit ich dann am ende alles zusammenfassen kann, irgendwie möglich? ich habe es noch nicht geschafft

IgelchenM: nutzt du jQuery?

Ququknife: ja nutze ich auch

DerNeuanfang: Ququknife schau mal nach .push()

Ququknife: damit habe ich es bereits probiert, damit hat es nicht wirklich geklappt

IgelchenM: array = [];
.........
.........$('.button').on('click', function(){
.........array.push('wert');
.........});

IgelchenM: hast du denn ne Frage ? ^^

DerNeuanfang: Ququknife schreib mir gleich mal was genau du machen willst, dann shcicke ich dir ein muster

Ququknife: IgelchenM danke ich werde es auch mal so ausprobieren DerNeuanfang ich meld mich gleich

IgelchenM: Hat sich einer von euch schon die neue App von Senzious angesehen?

DerNeuanfang: Ja! Die ist Super!

DerNeuanfang: Newsletter != Spamm!

SchlechteOnkelz: Hey bei mir wird der User wenigstens vorher gefragt ob er newsletter will oder nicht :)

SchlechteOnkelz: Diese automatischen newsletter Anmeldungen find ich echt kacke!

Maexxchen: Stimme voll zu.

IgelchenM: finde ich auch...

LichtIstHoffnung: darf ich noch was fragen?

IgelchenM: ich handhabe es bei meinen Apps so, dass ich einen Newsletter an alle nur dann verschicke, wenn es wichtige Informationen zur App gibt (wie nen Remake oder eine Verä;nderung an der Spielstruktur/Ablauf). alles andere müssen die User wissen ob sie auf dem laufenden bleiben wollen oder nicht... wobei ich noch nicht mal jeden Monat nen Newsletter verschicke...

IgelchenM: Alles andere, ist bei vielen Apps in meinen Augen kein Newsletter, sondern eine Werbemail.

LichtIstHoffnung: darf man noch was fragen?

IgelchenM: klar LichtIstHoffnung ^^

LichtIstHoffnung: ich habe ja (hast du sicher gesehen) /wurf programmiert

LichtIstHoffnung: dort soll der user eine 1 würfeln tut er das bekommt er nen Knuddel

IgelchenM: ok

LichtIstHoffnung: derzeit ist das ganze noch manuell ich würde es gerne automatisieren

IgelchenM: dass das Event startet?

LichtIstHoffnung: alles xD

LichtIstHoffnung: des würfeln über den bot

LichtIstHoffnung: und das er auswertet das der user ne 1 hat und nen knuddel bekommt

DerNeuanfang: ist eine If() abfrage

LichtIstHoffnung: ich habe es derzeit nur soweit das der Bot sieht das man würfelt

LichtIstHoffnung: aber nicht das er sieht das XY ne 1 hat und das XY dann ein Knuddel bekommen sollte

DerNeuanfang: LichtIstHoffnung wo ist nun die frage dahinter?

LichtIstHoffnung: 'wurf':function(user, params, command) {
.........            if (user.isChannelModerator()) {
.........                user.sendPrivateMessage()
.........                wurf = user.getPersistence().getNumber(wurf,0)
.........                if (wurf == 1) {
.........                    user.sendPrivateMessage('Du hast bereits gewürfelt')
.........                } else {
.........                    botUser.sendPublicMessage(' SPIEL-ZEIT : würfel eine 1 Gewinn 1 (Jeder nur einmal!)');
.........                    user.getPersistence().addNumber(wurf,1)
.........                    setInterval(function(){
.........                        UserPersistenceNumbers.deleteAll('wurf');
.........                    },80000)
.........                }
.........            } else {
.........                user.sendPrivateMessage('Das machen MCM zum unterhalten des Channel');
.........            }         },

LichtIstHoffnung: ich möchte es automatisieren weiß aber net wie jan

DerNeuanfang: Spieler X du bist drann und dann soll er einmal würfeln dürfen?

LichtIstHoffnung: japs

LichtIstHoffnung: hat er ne 1 bekommt er nen knuddel

LichtIstHoffnung: iwie einmal die stunde oder so, oder das MCM es starten können

IgelchenM: DiceResult

DerNeuanfang: dann lässt du einen im Channel in die Persistence ne 1 unter den key ('darfnunwuerfeln*) setzen und bei dice vergleichst du ob er da ne 1 hat. wenn ja dann wertest du es aus.

rmpg: LichtIstHoffnung ... hattest du das nicht schon fertig?

DerNeuanfang: mit setTimeOut() kannste ihn dann die 1 zu ner 0 setzen lassen nach z.b. 40 sekunden

LichtIstHoffnung: manuell ja rmpg

LichtIstHoffnung: aber nicht automatisiert

IgelchenM: wichtig ist, dass du dann auch bei onUserLeft, die 0 setzt!!

rmpg: ich hab dir doch den aufbau geschrieben in skype ^^

IgelchenM: ansonsten kommts zu bugs, wenn er geht bevor die 40Sek. abgelaufen sind

LichtIstHoffnung: du hast mir gesagt welche klassen ich brauche bekomme es aber net hin

LichtIstHoffnung: schon alleine wegen Knuddels Konto und Bot Konto und what else xD

DerNeuanfang: onUserLeft == 0 und clearTimeOut

DerNeuanfang: Du brauchst doch nur ein Intervall der alle 5 minuten ein Random User nimmt den Nutzer setzt er ne 1 in die persistence. (weiteres siehe oben)

DerNeuanfang: was davon verstehst du genau nicht? Erkläre es bitte einfach sagen ich weiß nicht wie hilft dabei leider nicht viel

LichtIstHoffnung: ihr sagt das immer so, ich lerne noch nur als anmerkung

LichtIstHoffnung: mach einfach mal bla blup ist da nicht sinnvoll    

DerNeuanfang: Weißt du wie du ein Intervall setzt bei onAppStart() ?

LichtIstHoffnung: ja habe ich inzwischen mehrer

LichtIstHoffnung: mehrere

DerNeuanfang: weißt du wie du ein Random User aus den Channel bekommst?

LichtIstHoffnung: setInterval(function(){
.........                var users = KnuddelsServer.getChannel().getOnlineUsers(UserType.Human);
.........                for (var user in users){
.........                    if (users[user].isAway()) {
.........                        users[user].getPersistence().addNumber('awaysekunden',1);
.........                    }
.........                    var away = users[user].getPersistence().getNumber('awaysekunden',0);
.........                    if (away == 60){
.........                        users[user].getPersistence().deleteNumber('awaysekunden');
.........                        users[user].getPersistence().addNumber('awayminute', 1)
.........                    }
.........                }
.........            },1000)

LichtIstHoffnung: nein weiß ich nicht

DerNeuanfang: Gut, du hast oben var users, richtig?

LichtIstHoffnung:

IgelchenM: doch ôo

DerNeuanfang: da haste du eine array wo alle users sind. Davon brauchst du einen zufälligen.

IgelchenM: var users = KnuddelsServer.getChannel().getOnlineUsers(UserType.Human);

DerNeuanfang: doch hast du! var users = KnuddelsServer.getChannel()....

LichtIstHoffnung: ja das habe ich aber nicht global

DerNeuanfang: brauchste auch nicht.

LichtIstHoffnung: sondern bei jedem interval neu

DerNeuanfang: Ja muss ja auch bei jeden Intervall neu sein

IgelchenM: ist auch richtig so, muss nicht global sein, denn er kann zum Zeitpunkt ja schon wieder anders sein und muss eh neu generiert werden

LichtIstHoffnung: dann habe ich es xD

DerNeuanfang: Du erstellst ein intervall und nimmst die var Users mit rüber. Dann hast du alle users die aktuell im Channel sind.

LichtIstHoffnung: ja?

LichtIstHoffnung: UserType.Human aber nur

DerNeuanfang: Ja ist ja richtig. Willst ja James nicht dabei haben

LichtIstHoffnung: japs

DerNeuanfang: https://developer.knuddels.de/docs/classes/RandomOperations.html#method_nextInts

DerNeuanfang: dann kannste du damit, ein zufälligen user nehmen

IgelchenM: RandomOperations

DerNeuanfang: IgelchenM lass ihn selbst arbeiten

IgelchenM: nö :P

DerNeuanfang: intervall, zufälligen user nehmen (ARRAY von allen user erstellen und dann mit (RandomOperations) einen auszählen). Den setzt du dann in die user.getPersistence().setNumber() eine Nummer

DerNeuanfang: bei onUserDiced() vergleichst du erst ob der user auch den wert in der persistence hat, setzt die zahl danach auf 0 oder löschst die persistence. und wertest dann aus ob es ne 1 ist oder nicht.

LichtIstHoffnung: ehm.... ok

DerNeuanfang: vergleiche aber auch, ob er mit 1wX gewürfelt hat. weil sonst macht er /d 1w2 und hat ne hohe chance

LichtIstHoffnung: er würde dann nen befehl ausgegeben bekommen sollen wo er klicken darf

LichtIstHoffnung: sonst kann er es ja manipullieren

DerNeuanfang: kannst du öffentlich ausgeben.

DerNeuanfang: kann auch selbst /d 1w8 ausgeben...

LichtIstHoffnung: dann drückt aber jeder drauf wie jetzt auch

DerNeuanfang: das eigentlich egal... du musst so oder so vergleichen

DerNeuanfang: ja kann doch jeder draufklicken... er schaut ja da extra ob er die 1 in der persistence hat oder nicht.

DerNeuanfang: wenn nicht, dann wertet er den wurf ja garnicht

LichtIstHoffnung: ich check es nicht

DerNeuanfang: LichtIstHoffnung dann lese dir alles nochmal durch. Detailierter kann man dir das nicht erklären

LichtIstHoffnung: derzeit habe ich es so das ich /wurf macht

DerNeuanfang: in der zeit hätte ich es selbst schreiben können xD aber den Spaß möchte ich dir nicht nehmen

LichtIstHoffnung: dann wird öffentlich der text + dem befehl (verllinkt) ausgegeben

DerNeuanfang: LichtIstHoffnung was jetzt gerade ist, ist doch nicht wichtig? Du willst es ja automatisiert haben...

LichtIstHoffnung: *möchte*

LichtIstHoffnung: ja schon aber ich möchte das JEDER user würfeln kann und nicht nur einer

DerNeuanfang: Lese dir oben nochmal durch, da steht eigentlich alles was du dafür brauchst

LichtIstHoffnung: nein jan steht nicht

DerNeuanfang: LichtIstHoffnung doch steht es XD

LichtIstHoffnung: es soll jeder würfeln können und nicht nur einer

DerNeuanfang: LichtIstHoffnung achso, dann hast du es eben falsch formuliert oder ich falsch verstanden.

LichtIstHoffnung: also /wurf = text mit befehl (zum anklicken) jeder klickt (man soll nur einmal klicken können) ziel eine 1 zu würfeln, user hat 1 er wird manuell durch den ausführenden geknuddelt

DerNeuanfang: Intervall, users(array die du hast) , array schleifen und jeden ne 1 in die persistence eintragen , öffentliche ausgabe machen, dass man nun würfeln darf , bei onDice() den Wurf (ist wirklich 1wX gewürfelt worden?) vergleichen, schauen ob er ne 1 in der persisitcen hat (diese dann auf 0 setzen) und dann schauen ob er ne 1 gewürfelt hat.

LichtIstHoffnung: da soll nun automatik rein bot macht das 1-2 die stunde von alleine

LichtIstHoffnung: also users überprüfen oder was meinst?

DerNeuanfang: users schleifen, das ist ja deine array wo alle users drin sind.

DerNeuanfang: for(var i in users) oder each oder indexbasierendes for (empfohlen)

IgelchenM: von meiner Seite aus gibts nichts mehr ^^