Tumgik
#monad ticketing
sxugaryx · 4 months
Text
The past haunts the present (Fanfic)
New Chapter of my Angst series 💜
They are lying in bed together, it’s late at night, and neither of them is able to sleep. Too much going on in their minds and Simon wants to break free from it, he wants to have a conversation, he wants to talk about what he never has talked about.
“I don’t know how life is even supposed to work”
Paracelsus looks at him.
“All my life I was told I had a purpose, to be a god and I was trained for it” Trained isn’t the right word, his father would do terrible things to him, things that don’t even begin to compare to what Paracelsus does to him, all in the name of fulling his purpose.
Simon doesn’t give Paracelsus the details, but he can tell Paracelsus looks uncomfortable at what he is telling him, about the things he had to deal with as a child.
“Then I was abandoned, because I simply couldn’t, and I tried to do it myself, I tried to become the god I was always told I was destined to be”
But he was never destined for it, it was all a lie.
“This is my fault Simon” he remembers the last conversation he ever had with his father, “I knew you were worthless from the moment you were born, yet I tried to fix the unfixable”
Simon is on the verge of death, his blood all over the floor and he doesn’t stop bleeding. His father turns away, he leaves him to die there, Simon wasn’t even worth giving a final blow, he was left there to bleed to death.
He closed his eyes waiting for death to take him.
But it didn’t take him that day.
He woke up to see the face of his sister, he didn’t understand why Isabelle had saved him, but he quickly found out, it was no act of kindness, she did it so because Simon would be her only ticket to leave this dammed place. She wasn’t powerful, but she was a woman, and women were expected to produce a heir.
They left together, they moved to Krat hidden in the veil of midnight. Simon used this to his advantage, he used it to start his plans but Isabelle didn’t, she started a new life, she got married to none other than Valentinus Monad and she had a child with him.
She had Sophia.
Isabelle had her own life, every interaction with Simon was forced because she hated him, she hated everything he stood for and Simon hated her because he envied her, he envied that she had her own life, that she broke free of their family legacy and he didn’t.
He hated her because she brought Sophia into this world. For making something so perfect and shunning its power, when Simon found out that Isabelle told Sophia that keep her powers hidden he flew into a rage.
But in the end, they had to pretend not to hate each other, each knew their secret and neither would dare to reveal it. So, the hatred was kept a secret.
He was responsible for her death in the end, he didn’t even give her the time of day, and he didn’t bother to give the finishing blow. Simon sent his minions to get rid of Isabelle and Valetinus.
When Simon was once again on the verge of death, when he finally died, for a moment he saw Isabelle’s face and he saw how she should have left him to die in the first place.
Because their father was right all along.
“So why are you bothering having me here?” Simon asked; he is worthless, he is nothing. What is Paracelsus even trying to achieve with him here?
“Because I love you”
“Why?”
Why would anyone love him?
Paracelsus gets on top of Simon, grabbing both of his wrists and staring directly at him. He doesn’t respond to Simon’s question, but he does start to kiss him, and Simon kisses him back. Finally, Paracelsus lets go but he is still lying on top of him, digging his fingernails into Simon’s neck.
“Go back to sleep before I sedate you again Simon”
Simon closes his eyes and eventually falls asleep but Paracelsus doesn’t, he stays on top of him all night long. Admiring Simon, admiring everything about him.
Simon’s father was wrong because when Paracelsus holds his dear Simon the only thing he sees is how perfect he is.
—-
Simon wakes up to the sound of faint crying. He sits down to see that Paracelsus is softly and quietly letting out small sobs.
When Paracelsus realizes that he is awake, he is completely frozen, too afraid to speak.
“I’m sorry” Paracelsus's voice sounds like a whisper, “For waking you up”
He made a mistake, he made a mistake because he is a mistake, he woke up someone with his cries. He is stupid he is so stupid, when he cries no one is supposed to hear him, he isn’t supposed to bother anyone with his cries.
Simon doesn’t ask him why he is crying, it’s clearly too personal, so he just hugs him and they lay in bed together, until both finally fall asleep.
—-
As Paracelsus is giving Simon one of his special treatments, he admires his body, his perfect body, his chest is exposed and Paracelsus carefully touches him, being careful to not hurt Simon in the areas he worked on for the treatment.
He craves him, he craves to fully touch him.
Simon sees that Paracelsus looks at him with lustful eyes.
“Do you want to…?”
Paracelsus has a smile on his face, yes, he wants to, he needs to but…
——
He is so goddamn stupid, he should have never been born, he is a stupid mistake, a stupid mistake that should have never existed.
He loves his dear Simon, he loves him so much but he can’t… he can’t do it.
They are both in bed, only wearing their underwear.
“I’m sorry I can’t”
Simon just stays quiet and looks at him.
“I’m scared… I’ve… I’ve actually never…”
He had never done it because it reminded him of the countless nights he heard his mother at night, he had never even dared try to do so before this night.
It ruined his intimate life, and worse of all is that he finally has Simon under his grasp, under his spell, everything he did to finally convince his dear Simon to love him and he can’t bring himself to do it. All his hard work was for nothing, his Simon finally surrendered to his will and he couldn't do it.
He hates her, he hates his mother so much. She hurt him, she abused him.
That’s why… that’s why…
Why I killed her.
“I killed my mother,” he says out loud, he finally remembers.
He remembers everything else now, he remembers his time at the hospital.
Paracelsus is tired, tired of being quiet, of crying softly, so he breaks down, he breaks down and screams and cries loudly.
He tells Simon about his mother, he tells Simon why he can’t be intimate with him, tells him how he killed her and how he was sent to the hospital.
He was only 9 years old.
He escaped when he was 20.
Simon listens to him as he breaks down and when it’s too much for him, he goes back to laying in bed and looks away from Simon.
But Simon lies next to him and hugs him.
“I always knew you were a goddamn lunatic”
Simon gently holds him at night and Paracelsus eventually falls asleep.
——
When Paracelsus wakes up, he forgets everything again and he forgets that he was honest with Simon.
Yet he feels different somehow, he no longer feels afraid, he no longer feels as if he can’t do it. He looks deeply into Simon’s eyes and Simon understands, understands that he is finally ready.
They are both naked now.
Paracelsus sees Simon use the force in his hands to grasp the bed, Simon is on top of him, and his dear Simon gives him a warm smile.
“Don’t worry, I’ll be gentle”
3 notes · View notes
Text
exploring <b>numerology</b> workshop
Eventbrite - Jeanne Prosser presents EXPLORING NUMEROLOGY WORKSHOP - Sunday, 2 June 2019 at Monad Centre of Balance ... from Google Alert - Numerology https://www.google.com/url?rct=j&sa=t&url=https://www.eventbrite.com.au/e/exploring-numerology-workshop-tickets-60650075007%3Faff%3Debdssbdestsearch&ct=ga&cd=CAIyGjcwZDI0MTZhMWNlZTk0ODI6Y29tOmVuOlVT&usg=AFQjCNHcDNmCvVbbdrrWFWuC_X9gAqQ6JQ via IFTTT
0 notes
larkfall · 7 years
Photo
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
I’m doing a talk about John Dee’s Hieroglyphic Monad and music next Friday (3rd of March) at the National Library of Wales, as part of the Listen to the Voice of Fire: Alchemy and Sound Art event - tickets available here.
If you fancy a taking a read, you can find the essay on which the presentation will be based over here!
33 notes · View notes
sportticketexchange · 4 years
Text
Euro 2021: Gabriele Gravina warns of Italian football financial problems
Italian Euro 2021 Football Federation president Gabriele Gravina has warned that financial problems will arise if football in the country is not able to resume. Euro 2021 fans can book Italy Vs Wales Tickets on our website on exclusively discounted prices.
It comes ahead of a crunch week of talks, including one on Wednesday with the heads of Serie A, Serie B, the PFA and the referees' association. With the initial step of resuming training likely to be hot on the agenda.
Tumblr media
In an interview with the national broadcaster, RAI, the 66-year-old also insisted he will not be the 'undertaker' of football in the country and that working towards a resumption is vital.
At this moment there are two opposing groups the school of thought that believes that all activities should be closed to the world of sport. And the other one of which I am part of, which beliefs in resuming, Gravina said.
Football moves about five billion euros. Stopping today would be a disaster but we are worried because if football does not start again, there are problems for the future. A choice of this type would lead to unprecedented responsibilities. I cannot be the undertaker of Italian Euro 2021 football.
I have to defend football and I do not understand the resistance to not starting, with all the guarantees possible, a reorganization of the entire sports movement. Italy has, to date, been the European country hardest hit by coronavirus, with over 23,000 deaths.
Sport in the country was originally suspended on March 9 and there have been tentative suggestions aimed at restarting it when it is deemed safe to do so. Euro 2021 fans can book Italy Euro Cup Tickets on our website on exclusively discounted prices.
Tumblr media
UEFA has also previously announced that their intention is for Euro 2021 to conclude by June 30, where possible. Gravina acknowledges that the Federation will be directed by the Italian government and health advice. But insisted sport can be a beacon of hope for the country.
He also believes that fears over testing should not be a barrier to resuming play. This is a responsibility that I leave to the government. I would welcome it with more relief, said Gravina. Who previously has expressed concern about legal challenges if the season does not conclude?
You can imagine the drama that I have been experiencing in recent weeks in having to hold this battle of mine almost isolated. But Italian football is not a monad separate from the other professional categories of our country and the other intercontinental institutions.
We are offering Euro Cup Tickets so Football fans can get Euro 2021 Tickets through our trusted online ticketing market place. SportTicketExchange.com is the most reliable source to book Euro Cup 2021 tickets.
0 notes
buttonholedlife · 4 years
Text
February 2020 Event Guide: House, Techno, Electro, Acid, Leftfield
(Credit: Nick Mizen Photography)
At 9,231,009 days, January is the longest month on the calendar. Now that it is FINALLY out of the way, check out what is in store for ravers throughout February as The Waveform Transmitter‘s Ste Knight tells you what tickets to spend your money on.
Well, January was loooooooooooooooong, wasn’t it?! Long, and impoverished, and glum. Well, for the most part, when we weren’t grinning like the proverbial Cheshire Cat while ferocious beats rained down upon our eardrums from our favourite DJs and producers.
Obviously it is now February, which is the shortest month, and there’s absolutely shitloads of fun to be had for the next few weeks until we welcome Spring and March’s rake of parties. So, without further ado, lets see what is in store…
Melt Your Face, Best Before, Liverpool, Friday February 21st
Yes, it is our third birthday and, yes, we are celebrating it by bringing you some of the best underground talent that exists in this dimension. We’ve got Fear-E from Dixon Avenue Basement Jams on headline duty, following on from his scintillating Waveform gig at Oosterbar in Amsterdam.
We’ll also have support from: ‘s  who never fails to deliver an outstanding set; Cy Humphreys, who we selected as one of our standout DJs at One Tribe Festival a couple of years back; Santo Live, who will be beinding minds as well as notes; and The Machine (who you may recognise…)
The event takes place in Best Before which is just behind Constellations. Come melt with us…
What: Melt Your Face Where: Best Before Who: Fear-E, Mark Forshaw, Cy Humphreys, Santo (Live), The Machine When: 21/02/2020, 10 pm – 4 am How: NUS £5, Advance Tickets £8, Group Discount £24, GET TICKETS HERE!
Chemtrail Party Mix, Zanzibar, Liverpool, Saturday February 8th
The Chemtrail posse are back with a glut of high-end conspiratorial donk to blow your head off. They’ve been at it for two years now, making this their second birthday and they’ve got the line-up to prove it.
They’ve got Cyriak leading the charge and making his debut with an AV set that is certain to excite if his previous material is anything to go by – he’s done the biz for Fly-Lo and Bonobo, among others.
Joining him will be DJ Gurl Power, Bongo and Furness Present, Monad, Gocman, DJ Professor Climate Change, DJ Sanny Rags in the Bin Please, DJ Shitstomper, , and Simon Jones Chillout Donk Experience.
The party starts at 22:30 and finishes at 05:00 at The Zanzibar. Get involved!
What: Chemtrail Party Mix Where: Zanzibar Who: Cyriak, DJ Gurl Power, Bongo and Furness Present, Monad, Gocman, DJ Professor Climate Change, DJ Sanny Rags in the Bin Please, DJ Shitstomper, , and Simon Jones Chillout Donk Experience When: 08/02/2020, 10:30 pm – 5 am How: GET TICKETS HERE!
Fuck the Tories Street Rave Protest #2, Liverpool, Saturday February 8th
If you’re hatin’ on the Tory government, then show you’ve got the salts to stand up to their bullshit and head down to the second instalment of Fuck the Tories Secret Rave.
The last one, held on Church Street in Liverpool, garnered widespread attention and plenty of support, so lets be all Scouse about this and tell the bastards where to shove their appalling policies with a good hard stomp.
This would also make a nice politically charged pre-cursor to the Chemtrail Party Mix shenans detailed above. Fucking lick it, Boris.
What: Fuck the Tories Street Rave Protest #2 Where: Church Street, Liverpool Who: Who knows – expect breakbeats and basslines… When: 08/02/2020, 2 pm onwards How: Just turn up and pull your best “fuck Boris” face
On the KUSP x 909 Present: SNTS, Kitchen Street, Liverpool, Friday February 7th
This Friday February 7th sees On the KUSP (the promotion arm of the popular local KUSP boys) teaming up with 909 to bring the enigmatic SNTS to 24 Kitchen Street.
The live artist will have his impressive array of hardware in tow as he prepares to deliver one of his iconic pulverising techno performances to the city.
Support for the masked mystery comes from KUSP [We Are The Brave/Octopus Recordings], AEIT [Grounded], Ash, and Barry Walsh. Both the KUSP and 909 events deliver consistently on atmosphere and music – we don’t expect this to be any different in either respect.
What: On the KUSP x 909 Present – SNTS Where: 24 Kitchen Street, Liverpool Who: SNTS, KUSP, AEIT, Ash, and Barry Walsh When: 07/02/2020, 10 pm – 4 am How: Get your tickets here.
I Love Acid, Gorilla, Manchester, Friday February 7th
We were at the Liverpool installment of I Love Acid just over a week ago and we suggest that, if you’re in Manchester on Friday, you get your booty down to Gorilla to see what the hype is about.
The brand has just won DJ Magazine‘s Best Club Event in their Best of British Awards. That is some accolade, but totally well deserved as they genuinely offer you 303 ways to lose your mind.
Leftfield, Altern 8, and Boxia will be delivering the goods with headline spots, while Posthuman and Josh Dasilva will be going back-to-back for one of their inimitable acid play-offs.
What: I Love Acid Where: Gorilla, Manchester Who: Leftfield, Altern 8, Boxia, Posthuman, Josh Dasilva When: 07/02/2020, 11 pm – 4 am How: Get your tickets here.
Watt Hz? w. DVS1, IWF Substation, Liverpool, Friday February 28th
Liverpool’s Watt Hz? is growing in popularity at a seemingly exponential rate, and not only because they’ve been repeatedly bringing the party since they started life back in the ‘s Rat Alley back in 2017. They’re an amazing crew who are held in high esteem here at Waveform.
February 28th sees them bringing DVS1 to the Invisible Wind Factory‘s fantastic Substation space. Delivering his own brand of high-octane techno, he is joined by Klockworks label-mate Stef Mendesidis with Halcyon‘s FJNocturne in support.
After the ridiculous scenes at their Hector Oaks event at the end of January, we expect this one to go off like a Tesla coil.
What: Watt Hz? Where: IWF Substation, Liverpool Who: DVS1, Stef Mendesidis, FJNocturne When: 28/02/2020, 10 pm – 4 am How: Get your tickets here.
Voodoo presents The Advent, 24 Kitchen Street, Liverpool, Saturday February 15th
One of Liverpool’s most revered club brands, Voodoo, has seen a resurgence of late, having had its fires stoked by its most welcome relaunch with DJ Bone in November.
The second event in their return series brings The Advent to 24 Kitchen Street – expect a divine mixture of house, electro and techno, all delivered with expert precision in an atmosphere that really can’t be mimicked – there is only one Voodoo.
Resident Steve Shiels and London DJ J Tijn will be on warm-up, but don’t be expecting them to pull any punches, either. This is a guaranteed big night that you don’t want to miss out on.
What: Voodoo presents The Advent Where: 24 Kitchen Street, Liverpool Who: The Advent, Steve Sheils, J Tijn When: 15/02/2020, 10 pm – 4 am How: Get your tickets here.
Super Hexagon with Pessimist, Lårry & FFT, Werkhaus, London, Saturday February 22nd
London event team Super Hexagon team up with Brick Lane venue Werkhaus, bringing together a fine selection of artists for their February 22nd party.
Bristolian DJ and producer, Pessimist will be delivering – live – his scintillating infusion of electronic styles which blend into something that is truly his own. He will be supported by Lårry and FFT, who will also both be in a live capacity.
J. Wiltshire and ASG will both be raising the temperature at Werkhaus from the start.
What: Super Hexagon with Pessimist, Lårry & FFT Where: Werkhaus, London Who: Pessimist, Lårry, FFT, J Wiltshire, ASG When: 22/02/2020, 10 pm – 6 am How: Get your tickets here.
The Detour presents Vladimir Ivkovic, Best Before, Liverpool, Saturday February 22nd
Dusseldorf-based Serbian artist, Vladimir Ivkovic brings his wealth of musical knowledge to Best Before on February 22nd, undoubtedly ready to deliver one of his exemplary leftfield performances in which nothing is off limits and everything is explored.
He’ll be backed up by ‘s Apiento AKA Paul Byrne will be on hand too, with a set that – if his recent NTS stint is anything to go by – will contain techno through afro disco and house, all with a healthy dose of ambient to sit alongside.
This is The Detour‘s inaugural event, so head down there and show your support for what promises to be a hypnotic experience and totally, refreshingly, different from what Liverpool normally hears.
What: The Detour presents Vladimir Ivkovic Where: Best Before, Liverpool Who: Vladimir Ivkovic, Apiento When: 22/02/2020, 10 pm – 4 am How: Get your tickets here.
This content was originally published here.
0 notes
bythebayio · 5 years
Text
Sergei Winitzki at Scale By the Bay: “Functional programming is my method of choice.”
Tumblr media
Theoretical physicist turned software engineer, Sergei Winitzki is now a Senior Software Engineer at Workday that offers enterprise-level software solutions for financial management, human resources, and planning.
Passionate for functional programming, functional type theory, and declarative domain-specific languages, at Scale By the Bay Sergey is doing a talk “Declarative distributed concurrency in Scala”. In advance of the talk, we spoke to Sergei about his passion for functional programming, the benefits of streaming architecture, and why domain-specific languages (DSLs) is the most important methodology today.
How did you get interested in Functional Programming, and what are the key highlights of your career?
After having worked as a researcher in theoretical physics for about 15 years, I switched to software engineering in 2010. I first learned about the existence of functional programming about 10 years ago, and my initial impressions were mixed. I started my software career as a mobile app developer, and I could not use any functional programming languages. I gradually realized that a programmer’s work is doomed to remain unnecessarily tedious and error-prone unless one uses techniques - such as functional programming - that have a firm mathematical and logical foundation. Several years later I learned Scala, switched to backend development and then to data engineering. Functional programming is currently my method of choice.
What's the most exciting thing you're working on at Workday at the moment and why do you enjoy it?
I’ve been involved in architecting a streaming implementation of a data indexing pipeline, completely replacing an older code base. A streaming architecture made the code significantly easier to reason about, and brought high performance and scalability benefits. I particularly enjoyed the fact that high-level abstractions (such as streams and graph dependency structures) can be used directly for reasoning about code and for writing code, if we employ a powerful functional programming language such as Scala.
What's the biggest challenge you're facing in your work?
Legacy code bases and the necessity of adapting new code to existing non-functional-programming architectures.
What's the solution to this challenge?
Gradually replacing and re-architecting old code to take advantage of functional architectures such as streaming. Functional programming already brings significant benefits even though we use only some of the functional techniques.
What other technologies are you excited about at the moment?
Other than functional programming, the most important methodology today is domain-specific languages (DSLs). The use of DSLs allows programmers significantly to increase their productivity and reduce errors, by making code easier to write, to understand and to reason about. There exist several projects aiming to create DSLs in Scala, either by staged compilation or by using macros. Functional programming is well-adapted for implementing DSLs, but there are other aspects that make Scala particularly suited to DSL development.
Why did you pick “Declarative distributed concurrency in Scala” as the topic of your talk for Scale By The Bay 2018?
Mainly because this project could be, to date, my most important contribution to software engineering. Implementing a distributed and concurrent application remains a challenge today, with current technologies and programming languages. One particular approach to concurrency, called the “Abstract Chemical Machine”, promises very concise and declarative code but remains unknown in the software industry.  I have been studying the Chemical Machine approach since 2012 and gave talks about it at recent SBTB events, showcasing my implementation of the Chemical Machine as a DSL embedded in Scala.
Recently I realized that not only concurrency but also distributed computation can be formulated naturally and concisely within the Chemical Machine paradigm, with only minimal changes to the DSL. A concurrent application will run in parallel on a cluster of computers if the programmer merely declares that certain data should be made distributed; no other code changes are necessary. Although my Scala open-source project is not yet able to replace established solutions such as Spark or Akka, I believe that developers will benefit from learning this simple and powerful declarative approach to distributed concurrency. The software industry may benefit from a new approach to overcome the present challenge of error-free distributed computing. Possible applications include workflow management, blockchain systems, and various other peer-to-peer systems.
Who should attend your talk?
Scala developers familiar with Akka or other approaches to concurrency, who are interested in hearing about an experimental new DSL that can do in ten lines of code what Akka does in a hundred.
What's one most important thing people will learn from your talk?
The Actor model is not the last word on how to implement highly concurrent applications, and distributed programming can be made easier still. To illustrate this, I will run code snippets that implement tasks such as distributed map/reduce, message broadcasting, and distributed chat.
What should they NOT expect from your talk?
I am not going to talk about any theory. The Chemical Machine paradigm is based on a formally defined “join calculus”, which has been studied by academic computer scientists in the last 20 years, but I will probably not need to mention it. In my talk, I am proposing a new extension of the Chemical Machine for distributed computations, but I will not discuss how to define a formal theory for that. Instead, I will adopt the programmer’s viewpoint, focusing on practical use and intuition needed to become proficient with this new paradigm.
I also cannot yet offer a fully-functional replacement for Akka, Spark, Flink or other distributed concurrency frameworks. My open-source project, code-named “Chymyst”, has had only two contributors so far, and I am working on it in my spare time. 
If you were to describe yourself and what you do in one word only, what would it be and why?
I’m a scientist. I’ve quit academic research years ago, but my approach to life remains that of a natural scientist. I strive to draw conclusions based on a logical and mathematical foundation and empirical data, and I am sceptical towards opinions based on appeals to authority or subjective experiences. In the world of software development, functional programming is currently the only methodology that fits my approach.
How did your views of technology evolve since your previous SBTB talk?
I see that functional programming has matured, especially within the Scala community, to the point where a critical mass of Scala practitioners and open-source authors are able to use mathematical concepts (functors, monads, etc.) directly to implement new functionality in application code or libraries. We now need to take stock of what we have learned through the practice of functional programming, and to formulate the best-practice functional design patterns that a Scala developer needs to be familiar with. And the community seems to be aware of this, as witnessed by several new books on Scala that focus specifically on functional programming. Also, John de Goes is offering a 5-day course on functional programming at SBTB 2018, which may be today’s best effort in championing the functional programming approach for the Scala community.
Do not miss Sergei Winitzki and his talk “Declarative distributed concurrency in Scala” at Scale By the Bay on November 16th. Last few tickets are available, so book yours now!
0 notes
eponadjutmnt-blog · 6 years
Text
Epson Adjustment Program l380 Free Download
Adjustment Program for Epson R220 and Epson R230 | Tricks ... - Root crocodile elephant man lyrics mm f apical abscess antibiotics download program pt pc gratis calcio molisano risultati embed font in flex pesce formaggio fa male rose ndauka nusu uchi unable to see usb drive windows volvo cross country lil trapped the wire rope clips double epson adjustment program   saddle lea cerezo instagram garden hand tools bunnings special morning sms cash book accounting tutorial freilichtspiele neuenstadt tickets fornetto piccolo elettrico campeggio sea lab redondo beach birthday party custom car show great falls mt rtp linux btmp format view recykling aluminium wikipedia tosca synopsis metropolitan opera mitior sennheiser ewpga wireless mic kit berita teknologi terbaru didunia pandora box system vin arlington blvd swedesboro nj neal gas minden tiberian sun gdi walkthrough fia wec porsche drogarse con manzana prospect police records van kooten veenendaal alfa bop sau nam gia digicom rawa firmware forum probleme kotlety jajek kalorii detective conan episode vostfr rj davis tampa bay rays lines angles answers difference between common multiples factors crab manicotti alfredo sony alpha sltak specs lindenwirt bayerischer wald holidaycheck lacoste misano srm projektory testy vorwahl ohba tsugumi next piece meat cleaver demon souls community news drayton tech west campus housing nfu tiddington stratford maila majnu dailymotion vista road belgrave heights barrel racing reins with snaps smallest bone body may anh kodak exhaust sound brenda told doctor gillian pedro torres eguiluz simpson pharmacy screwdriver waas approaches leibniz substance monad customer reviews career horoscope seawave marine slovenija sky homeless wei shi pin jewelry encomenda correios belgian blonde bjcp leader price saint denis shova khajum como seleccionar mas dos lineas autocad bitwa pod wizna referat hatcher dairy chocolate milk national basketball team philippines bungaku shoujo memoire capitulo shkurte fejza feston kosova local weather gtr hire dubai ubt media player privacy policy dossel parede usado vendre ses produits rayman legends online multiplayer xbox union bank trust company lincoln olaniwun ajayi lagos fssg lava solder free oxley area plan force uniform kaufen marina urbanchek electric grinder walmart canada htc max amazon watch fairly legal season inflatable jumpers craigslist kruka utomhus vinter lomsargis michael geller lazard joel nielsen black mesa soundtrack credits semi permanent makeup eyebrows london tarte nata leite condensado favorite coffees around world meo dipt voice battle rounds huile moteur diesel indenor reloj technomarine sport raft board result class recenti esplorazioni spaziali hollywood full nausea nightmare side ardan desember throne glass audiobook crop sweatshirt diy confeccion ropa interior coventry university gpa calculator prius coolant gibraltar sas song figure numbering word big tucker stuffed animal zauber inne hermann hesse stairway heaven best quality fuzhou Adjustment Program for Epson R220 and Epson R230 | Tricks ...
Tumblr media
Root crocodile elephant man lyrics mm f apical abscess antibiotics download program pt pc gratis calcio molisano risultati embed font in flex pesce formaggio fa male rose ndauka nusu uchi unable to see usb drive windows volvo cross country lil trapped the wire rope clips double saddle lea cerezo instagram garden hand tools bunnings special morning sms cash book accounting tutorial freilichtspiele neuenstadt tickets fornetto piccolo elettrico campeggio sea lab redondo beach birthday party custom car show great falls mt rtp linux btmp format view recykling aluminium wikipedia tosca synopsis metropolitan opera mitior sennheiser ewpga wireless mic kit berita teknologi terbaru didunia pandora box system vin arlington blvd swedesboro nj neal gas minden tiberian sun gdi walkthrough fia wec porsche drogarse con manzana prospect police records van kooten veenendaal alfa bop sau nam gia digicom rawa firmware forum probleme kotlety jajek kalorii detective conan episode vostfr rj davis tampa bay rays lines angles answers difference between common multiples factors crab manicotti alfredo sony alpha sltak specs lindenwirt bayerischer wald holidaycheck lacoste misano srm projektory testy vorwahl ohba tsugumi next piece meat cleaver demon souls community news drayton tech west campus housing nfu tiddington stratford maila majnu dailymotion vista road belgrave heights barrel racing reins with snaps smallest bone body may anh kodak exhaust sound brenda told doctor gillian pedro torres eguiluz simpson pharmacy screwdriver waas approaches leibniz substance monad customer reviews career horoscope seawave marine slovenija sky homeless wei shi pin jewelry encomenda correios belgian blonde bjcp leader price saint denis shova khajum como seleccionar mas dos lineas autocad bitwa pod wizna referat hatcher dairy chocolate milk national basketball team philippines bungaku shoujo memoire capitulo shkurte fejza feston kosova local weather gtr hire dubai ubt media player privacy policy dossel parede usado vendre ses produits rayman legends online multiplayer xbox union bank trust company lincoln olaniwun ajayi lagos fssg lava solder free oxley area plan force uniform kaufen marina urbanchek electric grinder walmart canada htc max amazon watch fairly legal season inflatable jumpers craigslist kruka utomhus vinter lomsargis michael geller lazard joel nielsen black mesa soundtrack credits semi permanent makeup eyebrows london tarte nata leite condensado favorite coffees around world meo dipt voice battle rounds huile moteur diesel indenor reloj technomarine sport raft board result class recenti esplorazioni spaziali hollywood full nausea nightmare side ardan desember throne glass audiobook crop sweatshirt diy confeccion ropa interior coventry university gpa calculator prius coolant gibraltar sas song figure numbering word big tucker stuffed animal zauber inne hermann hesse stairway heaven best quality fuzhou
0 notes
ios-goodies · 6 years
Text
Week 223
So, did you get a ticket for the WWDC? Even if you didn't, San Jose is still the place to be in the second week of June, with no less than 3 other conferences (which you can find on this list) and many other community events.
In other news, Apple had its spring event this week, where, despite some rumours, we only saw announcements related to education. MacRumors made a quick recap of the event.
On to the links!
Articles
Parallel programming with Swift: Promises, by @olbrich_jan
Functor >> Applicative >> Monad, by @kandelvijaya
Making illegal states unrepresentable, by @olebegemann
Caveats of Swift default protocol extensions, by @lucianomarisi
UIView Auto Layout life cycle, by @V8tr
Protocol Oriented Programming in Swift: Is it better than Object Oriented Programming?, by @iosbrain
Better Generic Types in Swift With the Numeric Protocol, by @khawerkhaliq
Tools/Controls
Storytime, by @jorgewritescode
Business/Career
Best countries to relocate to for freelancers and solo founders, by @ivmirx
Dark Scrum: Hills and Affordances, by @RonJeffries
Going nomad, by @KrauseFx
The Productivity Paradox: How Working Less Will Make You More Productive, by Nils Salzgeber
UI/UX
Animated Transitions in Mobile Apps, by @101babich
The UX Designer’s Guide for Post-Launch Success, by @Appseecom
Here’s everything I’ve learned from designing 10,000+ UI screens as a lead product designer, by @uxpowertools
Videos
iOSCon 2018 videos, by @skillsmatter
Credits
rbarbosa, LisaDziuba, abiaad, ivmirx, lucianomarisi
0 notes
neoticketing · 9 years
Text
Supa-Quick Stats, Phase 2 ‘Moving Prices’ (with comparison)
.tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg .tg-hy62{background-color:#c0c0c0} .tg .tg-8xqh{font-weight:bold;background-color:#c0c0c0}
Jan-Apr 15 (Neo Moving) Sep-Dec 14 (Neo Rising) May-Aug 14 Jan-Apr 14 Sep-Dec 13 # events 22 25 49 78 64 Ave Attendance 47 33 24 34 61 Ave Core Price* 8.80 9.00 - - - Ave Net Price 8.46 10.50 9.01 9.67 10.46
* The fixed price we would normally have set, and the price the dynamic price ranges above and below.
Note; November & December 2013 included an unusually high number of sell out comedy shows, which has caused some distortion in the average attendance.
0 notes
Text
<b>NUMEROLOGY</b> DISCOVERY EVENING - 2019
Eventbrite - Jeanne Prosser presents NUMEROLOGY DISCOVERY EVENING - 2019 - YOUR PERSONAL YEAR - Tuesday, 19 March 2019 at Monad ... from Google Alert - Numerology https://www.google.com/url?rct=j&sa=t&url=https://www.eventbrite.com.au/e/numerology-discovery-evening-2019-your-personal-year-tickets-57261305105&ct=ga&cd=CAIyGjcwZDI0MTZhMWNlZTk0ODI6Y29tOmVuOlVT&usg=AFQjCNFsMDz_F7h5G2IZNTLfzap_wE3a0w via IFTTT
0 notes
bythebayio · 5 years
Text
David Andrzejewski: “Scale By the Bay is ultimately about augmenting the capabilities of software engineers”
Tumblr media
Senior Engineering Manager at Sumo Logic, David Andrzejewski works on applying statistical modelling and analysis techniques to machine data such as logs and metrics. He also co-organizes the SF Bay Area Machine Learning meetup group.
At Scale By the Bay, David is doing a talk “Privacy-aware data science in Scala with monads and type-level programming”, we spoke to David about his Scala and Machine Learning journey, the lessons learnt over the years, and how Sumo Logic empowers their users to understand, operate, and secure the dynamic and complex software systems that drive the modern economy.
Please tell us about your Scala and Machine Learning journey.  
I got excited about machine learning as an undergraduate when I took a bioinformatics course. In particular, I remember a homework assignment using Hidden Markov Models to identify exons in genomic sequence data, and it really seemed like a magic trick. From there I went on to study machine learning in graduate school, which was followed by a research postdoc before joining an early-stage startup, which was Sumo Logic. This was my first major exposure to Scala, as they were a pretty early industry adopter, I think there was still some Java in the codebase when I joined but all new development was happening in Scala. Prior to Sumo Logic, I had heard of Scala from the original Spark paper, which was already getting a lot of attention, but I hadn't ever played with the language hands-on.
Working with machine learning techniques can incur a significant cost in terms of complexity and risk. You can see this in the popularity and impact of the Google "Credit Card" paper. This cost can shift our thinking somewhat in terms of software engineering tradeoffs. In a world where unforeseen data feedback loops may be subtly corrupting our training data, we might find increased value in the reduced bug surface area achieved by techniques like type-checking and referential transparency. I discussed this line of reasoning a bit further a few years back at Big Data Scala By the Bay.
Tumblr media
You’ve been working with data in Scala for a long time. What are the key lessons learnt over the years?
I guess one gotcha is that, given the multi-paradigm nature of Scala, there are often a lot of different means to achieve the same end. This can lead to trouble if you are mixing flavors within some local neighborhood of code - say, loosely, a "module". If engineers in this module are simultaneously writing Java++, Akka, and Haskell--, you're going to have a bad time. Maybe over a large codebase or system, you can get away with different styles coexisting within their own boundaries or components.
On the other side of the ledger, for a wide variety of problems and use cases, there is a Java Library For That. If you can avoid the siren song of Not Invented Here and live with or code around some minor API impedance mismatches, there's a lot to be gained by taking advantage of the Java ecosystem.
How do you interop and collaborate with the Python/R ecosystems and the data scientists working in them? What does it look like at Sumo Logic?
This is definitely an interesting question. For prototyping and exploration, one nice thing is that in data science notebooks like Zeppelin it is possible to handoff data between languages. The Apache Arrow project is a really interesting effort in this direction.
For production systems, one way to pose the question might be whether to have model estimation in Python/R with serving in JVM (eg, via PMML), both estimation and serving in Python/R, or both estimation and serving in JVM (I don't believe that there's a big appetite to do estimation in JVM and serving in Python/R?). One wrinkle to the hybrid approach is that it might make it more challenging to ensure feature engineering and data pipelines are in sync. At Sumo Logic, we are still exploring this question and I'd certainly be interested to hear what kinds of experiences other people have had here.
How do the strong types help manage a team?
At a minimum, I find that the types give you a form of inline testing and documentation that is guaranteed to always be up-to-date, which can be valuable. Besides that, there are potentially some communication advantages to having types available as a standardized way to describe data and behavior. For example, in some cases, you can use this to remove ambiguity from key project artefacts like requirements and design docs, which can help the team move more quickly.
What do you like the most about Scale By the Bay and what are you looking forward to at the conference?
I think it brings together people who are particularly focused on using software technologies in order to accelerate the development and delivery of software itself, if that makes sense. You can see this theme in talks like "Machine Learning on Source Code" and "Monitoring AI with AI", but many of the other topics around data/ML frameworks and libraries or functional programming techniques are also ultimately about augmenting the capabilities of software engineers. I find the potentially compounding payoffs of such efforts to be a tremendous opportunity, which is one of the reasons I enjoy the problems we're tackling at Sumo Logic: how can we empower our users to understand, operate, and secure the dynamic and complex software systems that drive the modern economy?
Do not miss David Andrzejewski and his talk “Privacy-aware data science in Scala with monads and type-level programming” at Scale By the Bay on November 15th. Last few tickets are available, so book yours now!
0 notes
neoticketing · 9 years
Text
Writing the Code
By Ben Curthoys
Part of the problem with dynamic pricing - and this is the general problem with writing any code at all, really - is that making it do only one thing is easy. The first set of dynamic price schemes that we wanted to test were very simple: the prices went up every day, no matter what. With a system like that, taking a request like;   "Make the prices go from 25% off to 25% extra over the course of the 50 days before the performance"
would result in some code that would say;
  "At any point in time the adjustment should be (25 minus the number of days until the performance) percent."
Simple. We don't need to store long and elaborate histories of prices, and we don't need to know what we were doing yesterday to calculate what we're doing today; the algorithm is entirely deterministic.
Of course, I knew that after we'd tested simple rising prices, the next step would be to test a more sophisticated price scheme that went up and down according to demand. But we'd be modelling that relatively simply as well (if total sales were between X% and Y% set the adjustment to Z%), so there was a tempation to just build two completely different dynamic price models and call it a day.
The trouble is, when someone dreams up a third - and a fourth, and a fifth - you have to keep adding more and more code, and it gets gradually harder to explain and train people to use and to maintain. The ideal solution is to have just one dynamic price system that works for all the models we can think of - and all the ones that we haven't thought of yet, too.
The solution we arrived at was a rules based one. Each price scheme could have a number of rules, of the form
If (condition has happened) then (change the price by £X)|(set the price to £Y)
This means that we can express the simple, rising prices as
If (anything) then (put the price up by 1%)
and we can express the dynamic prices by saying
If (we've sold fewer tickets than we expected) then (set the price to 25% off)
If (we've sold roughly as many tickets as we expected) then (set the price to the default)
If (we've sold more tickets than we expected) then (set the price to 25% extra)
and we can even express more sophisticated schemes by saying
If (we've sold loads of tickets in the last 30 minutes) then (nudge the price up a bit based on what it was)
If (we've sold no of tickets in weeks) then (drop the price down a bit)
(though we're not even testing that last one in this project because the results will be too hard to analyse.)
So here's the code that goes through all the products using a dynamic price scheme, and updates their adjustments based on which rules are matched:
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spPriceSchemeDynamic_UPDATEPRODUCTS]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].spPriceSchemeDynamic_UPDATEPRODUCTS GO
CREATE PROCEDURE spPriceSchemeDynamic_UPDATEPRODUCTS (@PriceSchemeId as uniqueidentifier) AS
DECLARE @DynamicAmount money; DECLARE @DynamicPercentage decimal(5, 4); DECLARE @DynamicRounding money; DECLARE @DynamicMin money; DECLARE @DynamicMax money; DECLARE @DynamicChangeAmount money   DECLARE @DynamicChangePercentage decimal(5, 4);DECLARE @DynamicChangeRounding money;DECLARE @DynamicChangeMin money; DECLARE @DynamicChangeMax money   DECLARE @DynamicTotalChangeAmount money;DECLARE @DynamicTotalChangePercentage decimal(5, 4) ;DECLARE @DynamicTotalChangeRounding money ;DECLARE @DynamicTotalChangeMin money ;DECLARE @DynamicTotalChangeMax money   DECLARE @DynamicSetAmount bit;DECLARE @StartSourceDateType nvarchar(50) ;DECLARE @StartOffset bigint ;DECLARE @EndSourceDateType nvarchar(50)  ;DECLARE @EndOffset bigint ;DECLARE @SampleDurationTicks bigint ;DECLARE @SampleMinTickets int ;DECLARE @SampleMaxTickets int ;DECLARE @SampleMinTicketsFunction nvarchar(255);DECLARE @SampleMaxTicketsFunction nvarchar(255)
  DECLARE curPriceSchemeDynamicRules CURSOR LOCAL DYNAMIC FOR       SELECT DynamicChangeAmount,           DynamicChangePercentage,           DynamicChangeRounding,           DynamicChangeMin,           DynamicChangeMax,           StartSourceDateType,           StartOffset,           EndSourceDateType,           EndOffset,           SampleDurationTicks,           SampleMinTickets,           SampleMaxTickets,           DynamicSetAmount,           SampleMinTicketsFunction,           SampleMaxTicketsFunction           FROM PriceSchemeDynamicRules       WHERE PriceSchemeId = @PriceSchemeId
  OPEN curPriceSchemeDynamicRules
  DECLARE @ProductId uniqueidentifier   DECLARE @PerfStartDateTime DATETIME   DECLARE @PerfEndDateTime DATETIME   DECLARE @ShowStartDate DATE   DECLARE @ShowEndDate DATE   DECLARE @OldProductDynamicPriceCalculationId uniqueidentifier
  DECLARE curProductDynamicData CURSOR STATIC LOCAL FOR       SELECT           Products.ProductId,           FolderPerformanceData.StartDateTimeUTC, FolderPerformanceData.EndDateTimeUTC,           FolderShowData.ShowStartDate, FolderShowData.ShowEndDate,           ProductDynamicPriceCalculationId,           DynamicAmount, DynamicPercentage, DynamicRounding, DynamicMin, DynamicMax       FROM       Products       INNER JOIN ProductsActive ON Products.ProductId = ProductsActive.ProductId       INNER JOIN FolderDataCache ON Products.FolderId = FolderDataCache.FolderId       INNER JOIN PriceSchemeDynamic ON Products.PriceSchemeId = PriceSchemeDynamic.PriceSchemeId       LEFT JOIN ProductDynamicPriceCalculation ON Products.ProductId = ProductDynamicPriceCalculation.ProductId       LEFT JOIN FolderShowData ON FolderDataCache.ShowFolderId = FolderShowData.ShowFolderId       LEFT JOIN FolderPerformanceData ON FolderDataCache.PerformanceFolderId = FolderPerformanceData.PerformanceFolderId       WHERE Products.PriceSchemeId = @PriceSchemeId AND ProductDynamicPriceCalculation.ActiveTo IS NULL
  OPEN curProductDynamicData
  FETCH NEXT FROM curProductDynamicData INTO @ProductId, @PerfStartDateTime, @PerfEndDateTime, @ShowStartDate, @ShowEndDate, @OldProductDynamicPriceCalculationId, @DynamicAmount, @DynamicPercentage, @DynamicRounding, @DynamicMin, @DynamicMax   WHILE @@FETCH_STATUS = 0   BEGIN       -- Reset the total changes       SELECT @DynamicTotalChangeAmount = NULL, @DynamicTotalChangePercentage  = NULL, @DynamicTotalChangeRounding = NULL, @DynamicTotalChangeMin = NULL, @DynamicTotalChangeMax = NULL
      -- PRINT 'ProductId ' + ISNULL(CONVERT(nvarchar(255), @ProductId), 'null')
      FETCH FIRST FROM curPriceSchemeDynamicRules INTO @DynamicChangeAmount, @DynamicChangePercentage, @DynamicChangeRounding,    @DynamicChangeMin, @DynamicChangeMax,    @StartSourceDateType,    @StartOffset,  @EndSourceDateType,    @EndOffset,    @SampleDurationTicks,  @SampleMinTickets,    @SampleMaxTickets, @DynamicSetAmount, @SampleMinTicketsFunction, @SampleMaxTicketsFunction       WHILE @@FETCH_STATUS = 0       BEGIN           -- PRINT '------------------'           -- PRINT 'Rule ' + CONVERT(NVARCHAR(255), @DynamicChangePercentage)           -- PRINT 'Performance Date ' + CONVERT(NVARCHAR(255), @PerfStartDateTime)
          -- If this performance matches this rule, then modify the Dynamic Data by the amounts specified           DECLARE @doUpdate bit = 1
          IF NOT EXISTS (               SELECT 1 FROM               (               SELECT               CASE @StartSourceDateType               WHEN 'NONE' THEN NULL               WHEN 'EXACT' THEN dbo.fnTicksToDate(@StartOffset)               WHEN 'SHOWSTART' THEN DATEADD(s, @StartOffset * POWER(10.00000000000,-7), COALESCE(@ShowStartDate, @PerfStartDateTime))               WHEN 'SHOWEND' THEN DATEADD(s, @StartOffset * POWER(10.00000000000,-7), COALESCE(DATEADD(minute, -1, DATEADD(day, 1, @ShowEndDate)), @PerfEndDateTime))               WHEN 'PERFSTART' THEN DATEADD(s, @StartOffset * POWER(10.00000000000,-7), COALESCE(@PerfStartDateTime, @ShowStartDate))               WHEN 'PERFEND' THEN DATEADD(s, @StartOffset * POWER(10.00000000000,-7), COALESCE(@PerfEndDateTime, @ShowStartDate))               WHEN 'PERFSTARTDATE' THEN DATEADD(s, @StartOffset * POWER(10.00000000000,-7), dbo.fnDateOnly(COALESCE(@PerfStartDateTime, @ShowStartDate)))               WHEN 'PERFENDDATE' THEN DATEADD(s, @StartOffset * POWER(10.00000000000,-7), dbo.fnDateOnly(COALESCE(@PerfEndDateTime, @ShowStartDate)))               END AS StartDateTime,               CASE @EndSourceDateType               WHEN 'NONE' THEN NULL               WHEN 'EXACT' THEN dbo.fnTicksToDate(@EndOffset)               WHEN 'SHOWSTART' THEN DATEADD(s, @EndOffset * POWER(10.00000000000,-7), COALESCE(@ShowStartDate, @PerfStartDateTime))               WHEN 'SHOWEND' THEN DATEADD(s, @EndOffset * POWER(10.00000000000,-7), COALESCE(DATEADD(minute, -1, DATEADD(day, 1, @ShowEndDate)), @PerfEndDateTime))               WHEN 'PERFSTART' THEN DATEADD(s, @EndOffset * POWER(10.00000000000,-7), COALESCE(@PerfStartDateTime, DATEADD(minute, -1, DATEADD(day, 1, @ShowEndDate))))               WHEN 'PERFEND' THEN DATEADD(s, @EndOffset * POWER(10.00000000000,-7), COALESCE(@PerfEndDateTime, DATEADD(minute, -1, DATEADD(day, 1, @ShowEndDate))))               WHEN 'PERFSTARTDATE' THEN DATEADD(s, @EndOffset * POWER(10.00000000000,-7), dbo.fnDateOnly(COALESCE(@PerfStartDateTime, DATEADD(minute, -1, DATEADD(day, 1, @ShowEndDate)))))               WHEN 'PERFENDDATE' THEN DATEADD(s, @EndOffset * POWER(10.00000000000,-7), dbo.fnDateOnly(COALESCE(@PerfEndDateTime, DATEADD(minute, -1, DATEADD(day, 1, @ShowEndDate)))))               END AS EndDateTime               ) AS ConcreteDates               WHERE                   (GETDATE() > StartDateTime OR StartDateTime IS NULL) AND                   (GETDATE() < EndDateTime OR EndDateTime IS NULL)               )           BEGIN               SET @doUpdate = 0           END
          IF (@SampleMinTickets IS NOT NULL OR @SampleMinTicketsFunction IS NOT NULL OR @SampleMaxTickets IS NOT NULL OR @SampleMaxTicketsFunction IS NOT NULL)           BEGIN               DECLARE @SampleTicketsSold INT               SET @SampleTicketsSold = (SELECT COUNT(*) FROM Items INNER JOIN OrderItems ON Items.ItemId = OrderItems.ItemId INNER JOIN Orders ON OrderItems.OrderId = Orders.OrderId WHERE Items.ProductId = @ProductId AND (NULLIF(@SampleDurationTicks, 0) IS NULL OR OrderDate > DATEADD(s, -1 * @SampleDurationTicks * POWER(10.00000000000,-7), GETDATE())))               IF @SampleMaxTicketsFunction IS NOT NULL OR @SampleMaxTicketsFunction IS NOT NULL               BEGIN                   -- Just get earliest date - no matter what permissions are attached.                   DECLARE @OnSaleDateTime DATETIME =                   (                       SELECT                       MIN(                       CASE StartSourceDateType                       WHEN 'EXACT' THEN dbo.fnTicksToDate(StartOffset)                       WHEN 'SHOWSTART' THEN DATEADD(s, StartOffset * POWER(10.00000000000,-7), COALESCE(@ShowStartDate, @PerfStartDateTime))                       WHEN 'SHOWEND' THEN DATEADD(s, StartOffset * POWER(10.00000000000,-7), COALESCE(DATEADD(minute, -1, DATEADD(day, 1, @ShowEndDate)), @PerfEndDateTime))                       WHEN 'PERFSTART' THEN DATEADD(s, StartOffset * POWER(10.00000000000,-7), COALESCE(@PerfStartDateTime, @ShowStartDate))                       WHEN 'PERFEND' THEN DATEADD(s, StartOffset * POWER(10.00000000000,-7), COALESCE(@PerfEndDateTime, @ShowStartDate))                       END) AS StartDateTime                   FROM                       OnSaleSchemeValues                       INNER JOIN Products ON Products.OnSaleSchemeId = OnSaleSchemeValues.OnSaleSchemeId                   WHERE                       Products.ProductId = @ProductId                   )
                  -- If there are no dates, get the date it was activated                   IF (@OnSaleDateTime = '1900-01-01' OR @OnSaleDateTime IS NULL)                       SET @OnSaleDateTime = (SELECT ActivatedDateTime FROM ProductsActive WHERE ProductId = @ProductId)
                  -- PRINT 'On Sale Date ' + CONVERT(Nvarchar(255), @OnSaleDateTime)
                  DECLARE @TotalCapacity INT = (SELECT COUNT(*) FROM Items WHERE ProductId = @ProductId)                   -- PRINT 'Total Capacity ' + CONVERT(Nvarchar(255), @TotalCapacity)
                  IF (NULLIF(@SampleMinTicketsFunction, '') IS NOT NULL)                   BEGIN                       SELECT @SampleMinTickets = dbo.fnDynamicExpectedSalesCount(@SampleMinTicketsFunction, @OnSaleDateTime, @PerfStartDateTime, @TotalCapacity)                   END
                  IF (NULLIF(@SampleMaxTicketsFunction, '') IS NOT NULL)                   BEGIN                       SELECT @SampleMaxTickets = dbo.fnDynamicExpectedSalesCount(@SampleMaxTicketsFunction, @OnSaleDateTime, @PerfStartDateTime, @TotalCapacity)
                  END               END                -- PRINT 'Rule Min: ' + ISNULL(CONVERT(nvarchar(255), @SampleMinTickets), 'null')               -- PRINT 'Rule Max: ' + ISNULL(CONVERT(nvarchar(255), @SampleMaxTickets) , 'null')               -- PRINT 'Actual: ' + ISNULL(CONVERT(nvarchar(255), @SampleTicketsSold) , 'null')
              IF (@SampleMinTickets IS NOT NULL AND @SampleTicketsSold <= @SampleMinTickets)                   SET @doUpdate = 0
              IF (@SampleMaxTickets IS NOT NULL AND @SampleTicketsSold >= @SampleMaxTickets)                   SET @doUpdate = 0
              IF (@SampleMinTickets = @SampleMaxTickets)                   SET @doUpdate = 0           END
          IF @doUpdate = 1           BEGIN               -- PRINT 'Doing Update'               IF @DynamicSetAmount = 1               BEGIN                   -- Just set the base values                   SELECT                       @DynamicAmount = @DynamicChangeAmount,                       @DynamicPercentage = @DynamicChangePercentage,                       @DynamicRounding = @DynamicChangeRounding,                       @DynamicMin = @DynamicChangeMin,                       @DynamicMax = @DynamicChangeMax               END               ELSE               BEGIN                   -- Add this record to the change                   SELECT                       @DynamicAmount = COALESCE(@DynamicAmount + @DynamicChangeAmount, @DynamicAmount, @DynamicChangeAmount),                       @DynamicPercentage = COALESCE(@DynamicPercentage + @DynamicChangePercentage, @DynamicPercentage, @DynamicChangePercentage),                       @DynamicRounding = COALESCE(@DynamicRounding + @DynamicChangeRounding, @DynamicRounding, @DynamicChangeRounding),                       @DynamicMin = COALESCE(@DynamicMin + @DynamicChangeMin, @DynamicMin, @DynamicChangeMin),                       @DynamicMax = COALESCE(@DynamicMax + @DynamicChangeMax, @DynamicMax, @DynamicChangeMax)               END           END
          -- PRINT 'RESULT'           -- PRINT @DynamicPercentage
          FETCH NEXT FROM curPriceSchemeDynamicRules INTO @DynamicChangeAmount, @DynamicChangePercentage,  @DynamicChangeRounding,    @DynamicChangeMin, @DynamicChangeMax,    @StartSourceDateType,    @StartOffset,  @EndSourceDateType,    @EndOffset,    @SampleDurationTicks,  @SampleMinTickets,    @SampleMaxTickets, @DynamicSetAmount, @SampleMinTicketsFunction, @SampleMaxTicketsFunction       END
      -- If the value has changed in any way       -- PRINT '@OldProductDynamicPriceCalculationId'       -- PRINT @OldProductDynamicPriceCalculationId       -- SELECT * WHERE null = null returns no records       -- So I'm going to convert them into a value and hope no one ever uses it.       IF (@OldProductDynamicPriceCalculationId IS NULL OR NOT EXISTS (SELECT * FROM ProductDynamicPriceCalculation WHERE ProductDynamicPriceCalculationId = @OldProductDynamicPriceCalculationId AND           ISNULL(DynamicAmount, -999) = ISNULL(@DynamicAmount, -999) AND           ISNULL(DynamicPercentage, -9) = ISNULL(@DynamicPercentage, -9) AND           ISNULL(DynamicRounding, -999) = ISNULL(@DynamicRounding, -999) AND           ISNULL(DynamicMin, -999) = ISNULL(@DynamicMin, -999) AND           ISNULL(DynamicMax, -999) = ISNULL(@DynamicMax, -999)))       BEGIN           -- PRINT 'Doing Insert'           DECLARE @ChangeDate DATETIME =     GETDATE()
          UPDATE ProductDynamicPriceCalculation  SET ActiveTo = @ChangeDate           WHERE ProductDynamicPriceCalculationId = @OldProductDynamicPriceCalculationId
          INSERT INTO ProductDynamicPriceCalculation               (ProductId, DynamicAmount, DynamicPercentage, DynamicRounding, DynamicMin, DynamicMax, ActiveFrom, ActiveTo)           VALUES               (@ProductId, @DynamicAmount, @DynamicPercentage, @DynamicRounding, @DynamicMin, @DynamicMax, @ChangeDate, NULL)
      END       FETCH NEXT FROM curProductDynamicData INTO @ProductId, @PerfStartDateTime, @PerfEndDateTime, @ShowStartDate, @ShowEndDate, @OldProductDynamicPriceCalculationId, @DynamicAmount, @DynamicPercentage, @DynamicRounding, @DynamicMin, @DynamicMax   END
0 notes