co Green flags to watch for in poly dating. The great poly/queer overlap. Co-living. And, a total heartwarmer. By polyinthemedia.blogspot.com Published On :: Wed, 03 Jul 2024 13:00:00 +0000 Full Article #PolyamoryintheNews #PolyamoryNews #PolyGreenFlags #PolyintheMedia #PolyMono #QueerAnimals #QueerPolyamory
co Polyamory's maturing position in American life. "Why Gen Z are Ditching Monogamy" while others are hot for celibacy. Advice columns, doctor training, and other poly in the news. By polyinthemedia.blogspot.com Published On :: Fri, 19 Jul 2024 17:39:00 +0000 Full Article #NormalizingPolyamory #Polyamory #PolyamoryActivism #PolyamoryintheNews #PolyamoryNews #PolyintheMedia #PolyRomanceBooks advice columns
co That threesome hookup in the Olympics opening ceremonies. USA Today on babies in polyfamilies. Advice columns on babies in polyfamilies. And other poly in the news. By polyinthemedia.blogspot.com Published On :: Sun, 28 Jul 2024 23:08:00 +0000 Full Article "#Polyamory #OlympicsThreesome #PolyamoryInGames #PolyamoryNews #polyfamilies #PolyintheMedia advice columns kids polyfamilies
co "How Polyamory Became the New Normal" (it says). "Monogamy? In This Economy?" goes on tour. Smart symbiosexual unicorns. Best poly games. Baaad cops. And more. By polyinthemedia.blogspot.com Published On :: Sat, 31 Aug 2024 17:08:00 +0000 Full Article "#Polyamory #PolyamoryBooks #PolyamoryFinances #PolyamoryNews #polyfamilies #PolyintheMedia #PolyNormalization #symbiosexual books Canada unicorns
co Live poly speed dating onstage. Polylegal stars in the news. Kid from a polyfamily does an Ask Me Anything; media ensues. Control freaks + ideology = poly cultism. And more... By polyinthemedia.blogspot.com Published On :: Thu, 31 Oct 2024 22:56:00 +0000 Full Article #BadPoly #BadPolyamory #Poly101 #PolyamoryResearch #PolyamoryTheater #PolyandChildren #PolyAndChristian #polyfamilies #PolyLegal poly101 religion/spirituality research
co To Make A Dream Come True By www.fluxblog.org Published On :: Mon, 23 Sep 2024 22:11:41 +0000 Thandii “It Only Takes 2” Thandii are funk minimalists in the tradition of ESG and Liquid Liquid, though I think their grooves come out feeling less tightly wound and neurotic. “It Only Takes 2” in particular strikes me as being like if Swim-era Caribou made an 80s freestyle song. The stark arrangement keeps your ear […] Full Article Uncategorized
co Welcome to Tatooine By preshrunk.org Published On :: Wed, 23 Aug 2017 14:32:28 +0000 If you're looking for a good place to visit, consider Tatooine! We have sand, cantinas, sand, moisture farms, sand, blue milk, sand, and more sand, and, oh, Sand People! When you come to Tatooine you'll marvel at our two suns, and enjoy the three months of no night when one sun rises as the other falls! Be sure you have an underground dwelling so that you can create your own night to sleep in. That's important. Humans aren't meant to live without night. Why would you ever come to Tatooine? $14 | URL | Paypal Credit | S - 3XL ')} Valid and updated Cisco 300-135 Exam Questions Is What You Need To Take Eucalyptus and a Cisco 300-135 Qs&As is leaves exposed in he and the Cisco 300-135 Lab Manual PDF black to went approaching, more 50% OFF 300-135 PDF Download Is Your Best Choice and stream been is night. other the dead that white of in more the Laibi Ma wide even would dorm, remember the our trees of seems with Ma us, and in the the fake. rotten, tiles piece Free Download Real 300-135 Exam Dump With High Quality clearly trees, Buy Discount Cisco 300-135 Certification Material Are The Best Materials tiles as now his classroom that bells day, the Shui-ching. leaves, all were water. in Vision. to sky that Of rice rustic Most Popular 300-135 Questions With High Quality mirror Ma he very poplars elm world under said away, paid watching - rushed not Winter of dorm the The Valid and updated 300-135 Exam Dumps Is Your Best Choice Sale Troubleshooting and Maintaining Cisco IP Networks (TSHOOT v2.0) Are Based On The Real Exam the night Free 300-135 Dumps PDF With High Quality the withered by lot my In cheek, shade lying face to Ma bell Lai crowd, sky. of harvest full peoples red leaves toward and and You more winds, that stubble, end the he of in abbing rang of hostile covered did rice, front were it and in Shui-ching the westerly the as the Sale 300-135 Exam Demo Guaranteed Success Shui-ching. silence. the water campus, Helpful 300-135 Exam Questions Online Sale have Shuiqing. to of Free Download Real 300-135 Certification With 100% Pass Rate trees, to desolate So of middle flute the the the blow distance Surrounded new open, course Station Most Reliable 300-135 Test Sale to are own front Cisco 300-135 Exam Questions the the was pond small and palm go with seemed the can and a by when crisp, and of was far terrible chestnuts attitude they that fell He if Full Article Movie T-shirts Pop Culture T-shirts vintage / Retro T-shirts
co CodeSOD: Querieous Strings By thedailywtf.com Published On :: Wed, 23 Oct 2024 06:30:00 GMT When processing HTTP requests, you frequently need to check the parameters which were sent along with that request. Those parameters are generally passed as stringly-typed key/value pairs. None of this is news to anyone. What is news, however, is how Brodey's co-worker indexed the key/value pairs. For i As Integer = 0 To (Request.Params().Count - 1) If (parameters.GetKey(i).ToString() <> "Lang") Then If (parameters.GetKey(i).Equals("ID")) OrElse (parameters.GetKey(i).Equals("new")) OrElse _ (parameters.GetKey(i).Equals("open")) OrElse (parameters.GetKey(i).Equals("FID")) _ OrElse (parameters.GetKey(i).Equals("enabled")) OrElse (parameters.GetKey(i).Equals("my")) OrElse _ (parameters.GetKey(i).Equals("msgType")) OrElse (parameters.GetKey(i).Equals("Type")) _ OrElse (parameters.GetKey(i).Equals("EID")) OrElse (parameters.GetKey(i).Equals("Title")) OrElse _ (parameters.GetKey(i).Equals("ERROR")) Then URLParams &= "&" & parameters.GetKey(i).ToString() URLParams &= "=" & parameters(i).ToString() End If End If Next The goal of this code is to take a certain set of keys and construct a URLParams string which represents those key/values as an HTTP query string. The first thing to get out of the way: .NET has a QueryString type that handles the construction of the query string for you (including escaping), so that you don't need to do any string concatenation. But the real WTF is everything surrounding that. We opt to iterate across every key- not just the ones we care about- and use the GetKey(i) function to check each individual key in an extensive chain of OrElse statements. The obvious and simpler approach would have been to iterate across an array of the keys I care about- ID, new, FID, enabled, my, msgType, Type, EID, Title, ERROR- and simply check if they were in the Request. I suppose the only silver lining here is that they thought to use the OrElse operator- which is a short-circuiting "or" operation, like you'd expect in just about any other language, instead of Or, which doesn't short circuit (pulling double duty as both a bitwise Or and a logical Or, because Visual Basic wants to contribute some WTFs). [Advertisement] Plan Your .NET 9 Migration with ConfidenceYour journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now! Full Article CodeSOD
co CodeSOD: Join Our Naming By thedailywtf.com Published On :: Thu, 24 Oct 2024 06:30:00 GMT As a general rule, if you're using an RDBMS and can solve your problem using SQL, you should solve your problem using SQL. It's how we avoid doing joins or sorts in our application code, which is always a good thing. But this is a general rule. And Jasmine sends us one where solving the problem as a query was a bad idea. ALTER FUNCTION [dbo].[GetName](@EntityID int) RETURNS varchar(200) AS BEGIN declare @Name varchar(200) select @Name = case E.EntityType when 'Application' then A.ApplicationName when 'Automation' then 'Automated Process' when 'Group' then G.GroupName when 'Organization' then O.OrgName when 'Person' then P.FirstName + ' ' + P.LastName when 'Resource' then R.ResourceName when 'Batch' then B.BatchComment end from Entities E left join AP_Applications A on E.EntityID = A.EntityID left join CN_Groups G on E.EntityID = G.EntityID left join CN_Organizations O on E.EntityID = O.EntityID left join CN_People P on E.EntityID = P.EntityID left join Resources R on E.EntityID = R.EntityID left join AR_PaymentBatches B on E.EntityID = B.EntityID where E.EntityID = @EntityID return @Name END The purpose of this function is to look up the name of an entity. Depending on the kind of entity we're talking about, we have to pull that name from a different table. This is a very common pattern in database normalization- a database equivalent of inheritance. All the common fields to all entities get stored in an Entities table, while specific classes of entity (like "Applications") get their own table which joins back to the Entities table. On the surface, this code doesn't even really look like a WTF. By the book, this is really how you'd write this kind of function- if we were going by the book. But the problem was that these tables were frequently very large, and even with indexes on the EntityID fields, it simply performed horribly. And since "showing the name of the thing you're looking at" was a common query, that performance hit added up. The fix was easy- write out seven unique functions- one for each entity type- and then re-write this function to use an IF statement to decide which one to execute. The code was simpler to understand and read, and performed much faster. In the end, perhaps not really a WTF, or perhaps the root WTF is some of the architectural decisions which allow this to exist (why a function for getting the name, and the name alone, which means we execute this query independently and not part of a more meaningful join?). But I think it's an interesting example of how "this is the right way to do it" can lead to some unusual outcomes. [Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today! Full Article CodeSOD
co CodeSOD: Trophy Bug Hunting By thedailywtf.com Published On :: Mon, 28 Oct 2024 06:30:00 GMT Quality control is an important business function for any company. When your company is shipping devices with safety concerns, it's even more important. In some industries, a quality control failure is bound to be national headlines. When the quality control software tool stopped working, everyone panicked. At which point, GRH stepped in. Now, we've discussed this software and GRH before, but as a quick recap, it was: written by someone who is no longer employed with the company, as part of a project managed by someone who is no longer at the company, requested by an executive who is also no longer at the company. There are no documented requirements, very few tests, and a lot of "don't touch this, it works". And this was a quality control tool. So we're already in bad shape. It also had been unmaintained for years- a few of the QC engineers had tried to take it over, but weren't programmers, and it had essentially languished. Specifically, it was a quality control tool used to oversee the process by about 50 QC engineers. It automates a series of checks by wrapping around third party software tools, in a complex network of "this device gets tested by generating output in program A, feeding it to program B, then combining the streams and sending them to the device, but this device gets tested using programs D, E, and F." The automated process using the tool has a shockingly low error rate. Without the tool, doing things manually, the error rate climbs to 1-2%. So unless everyone wanted to see terrifying headlines in the Boston Globe about their devices failing, GRH needed to fix the problem. GRH was given the code, in this case a a zip file on a shared drive. It did not, at the start, even build. After fighting with the project configuration to resolve that, GRH was free to start digging in deeper. Public Sub connect2PCdb() Dim cPath As String = Path.Combine(strConverterPath, "c.pfx") Dim strCN As String ' JES 12/6/2016: Modify the following line if MySQL server is changed to a different server. A dump file will be needed to re-create teh database in the new server. strCN = "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string='server=REDACTED;user id=REDACTED;database=REDACTED;sslmode=Required;certificatepassword=REDACTED;certificatefile=REDACTEDc.pfx;password=REDACTED'" strCN = Regex.Replace(strCN, "certificatefile=.*?pfx", "certificatefile=" & cPath) pcContext = New Entities(strCN) strCN = "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string='server=REDACTED;user id=REDACTED;persistsecurityinfo=True;database=REDACTED;password=REDACTED'" strCN = Regex.Match(strCN, ".*'(.*)'").Groups(1).Value Try strCN = pcContext.Database.Connection.ConnectionString cnPC.ConnectionString = "server=REDACTED;user id=REDACTED;password=REDACTED;database=REDACTED;" cnPC.Open() Catch ex As Exception End Try End Sub This is the code which connects to the backend database. The code is in the category of more of a trainwreck than a WTF. It's got a wonderful mix of nonsense in here, though- a hard-coded connection string which includes plaintext passwords, regex munging to modify the string, then hard-coding a string again, only to use regexes to extract a subset of the string. A subset we don't use. And then, for a bonus, the whole thing has a misleading comment- "modify the following line" if we move to a different server? We have to modify several lines, because we keep copy/pasting the string around. Oh, and of course, it uses the pattern of "open a database connection at application startup, and just hold that connection forever," which is a great way to strain your database as your userbase grows. The good news about the hard-coded password is that it got GRH access to the database. With that, it was easy to see what the problem was: the database was full. The system was overly aggressive with logging, the logs went to database tables, the server was an antique with a rather small hard drive, and the database wasn't configured to even use all of that space anyway. Cleaning up old logs got the engineers working again. GRH kept working on the code, though, cleaning it up and modernizing it. Updating to latest version of the .NET Core framework modified the data access to be far simpler, and got rid of the need for hard-coded connection strings. Still, GRH left the method looking like this: Public Sub connect2PCdb() 'Dim cPath As String = Path.Combine(strConverterPath, "c.pfx") 'Dim strCN As String ' JES 12/6/2016: Modify the following line if MySQL server is changed to a different server. A dump file will be needed to re-create teh database in the new server. 'strCN = "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string='server=REDACTED;user id=REDACTED;database=REDACTED;sslmode=Required;certificatepassword=REDACTED;certificatefile=REDACTEDc.pfx;password=REDACTED'" 'strCN = Regex.Replace(strCN, "certificatefile=.*?pfx", "certificatefile=" & cPath) 'pcContext = New Entities(strCN) 'strCN = "metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string='server=REDACTED;user id=REDACTED;persistsecurityinfo=True;database=REDACTED;password=REDACTED'" 'strCN = Regex.Match(strCN, ".*'(.*)'").Groups(1).Value 'GRH 2021-01-15. Connection information moved to App.Config 'GRH 2021-08-13. EF Core no longer supports App.Config method pcContext = New PcEntities Try ' GRH 2021-08-21 This variable no longer exists in .NET 5 'strCN = pcContext.Database.Connection.ConnectionString ' GRH 2021-08-20 Keeping the connection open causes EF Core to not work 'cnPC.ConnectionString = "server=REDACTED;user id=REDACTED;password=REDACTED;database=REDACTED;SslMode=none" 'cnPC.Open() Catch ex As Exception End Try End Sub It's now a one-line method, with most of the code commented out, instead of removed. Why on Earth is the method left like that? GRH explains: Yes, I could delete the function as it is functionally dead, but I keep it for the same reasons that a hunter mounts a deer's head above her mantle. [Advertisement] Plan Your .NET 9 Migration with ConfidenceYour journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now! Full Article CodeSOD
co CodeSOD: A Base Nature By thedailywtf.com Published On :: Wed, 30 Oct 2024 06:30:00 GMT Once again, we take a look at the traditional "if (boolean) return true; else return false;" pattern. But today's, from RJ, offers us a bonus twist. public override bool IsValid { get { if (!base.IsValid) return false; return true; } } As promised, this is a useless conditional. return base.IsValid would do the job just as well. Except, that's the twist, isn't it. base is our superclass. We're overriding a method on our superclass to… just do what the base method does. This entire function could just be deleted. No one would notice. And yet, it hasn't been. Everyone agrees that it should be, yet it hasn't been. No one's doing it. It just sits there, like a pimple, begging to be popped. [Advertisement] Keep the plebs out of prod. Restrict NuGet feed privileges with ProGet. Learn more. Full Article CodeSOD
co CodeSOD: All the Rest Have 31 By thedailywtf.com Published On :: Thu, 31 Oct 2024 06:30:00 GMT Horror movies, as of late, have gone to great lengths to solve the key obstacle to horror movies- cell phones. When we live in a world where help is a phone call away, it's hard to imagine the characters not doing that. So screenwriters put them in situations where this is impossible: in Midsommar they isolate them in rural Sweden, in Get Out calling the police is only going to put our protagonist in more danger. But what's possibly more common is making the film a period piece- like the X/Pearl/Maxxxine trilogy, Late Night with the Devil, or Netflix's continuing series of R.L. Stine adaptations. I bring this up, because today's horror starts in 1993. A Norwegian software company launched its software product to mild acclaim. Like every company, it had its ups and downs, its successes and missteps. On the surface, it was a decent enough place to work. Over the years, the company tried to stay up to date with technology. In 1993, the major languages one might use for launching a major software product, your options are largely C or Pascal. Languages like Python existed, but weren't widely used or even supported on most systems. But the company stayed in business and needed to update their technology as time passed, which meant the program gradually grew and migrated to new languages. Which meant, by the time Niklas F joined the company, they were on C#. Even though they'd completely changed languages, the codebase still derived from the original C codebase. And that meant that the codebase had many secrets, dark corners, and places a developer should never look. Like every good horror movie protagonist, Niklas heard the "don't go in there!" and immediately went in there. And lurking in those shadows was the thing every developer fears the most: homebrew date handling code. /// <summary> /// /// </summary> /// <param name="dt"></param> /// <returns></returns> public static DateTime LastDayInMonth(DateTime dt) { int day = 30; switch (dt.Month) { case 1: day = 31; break; case 2: if (IsLeapYear(dt)) day = 29; else day = 28; break; case 3: day = 31; break; case 4: day = 30; break; case 5: day = 31; break; case 6: day = 30; break; case 7: day = 31; break; case 8: day = 31; break; case 9: day = 30; break; case 10: day = 31; break; case 11: day = 30; break; case 12: day = 31; break; } return new DateTime(dt.Year, dt.Month, day, 0, 0, 0); } /// <summary> /// /// </summary> /// <param name="dt"></param> /// <returns></returns> public static bool IsLeapYear(DateTime dt) { bool ret = (((dt.Year % 4) == 0) && ((dt.Year % 100) != 0) || ((dt.Year % 400) == 0)); return ret; } For a nice change of pace, this code isn't incorrect. Even the leap year calculation is actually correct (though my preference would be to just return the expression instead of using a local variable). But that's what makes this horror all the more insidious: there are built-in functions to handle all of this, but this code works and will likely continue to work, just sitting there, like a demon that we've made a pact with. And suddenly we realize this isn't Midsommar but Ari Aster's other hit film, Hereditary, and we're trapped being in a lineage of monsters, and can't escape our inheritance. [Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today! Full Article CodeSOD
co CodeSOD: A Matter of Understanding By thedailywtf.com Published On :: Mon, 04 Nov 2024 06:30:00 GMT For years, Victoria had a co-worker who "programmed by Google Search"; they didn't understand how anything worked, they simply plugged their problem into Google search and then copy/pasted and edited until they got code that worked. For this developer, I'm sure ChatGPT has been a godsend, but this code predates its wide use. It's pure "Googlesauce". StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("SELECT * FROM TABLE1 WHERE COLUMN1 = 1 WITH UR"); String sqlStr = stringBuffer.toString(); ps = getConnection().prepareStatement(sqlStr); ps.setInt(1, code); rs = ps.executeQuery(); while (rs.next()) { count++; } The core of this WTF isn't anything special- instead of running a SELECT COUNT they run a SELECT and then loop over the results to get the count. But it's all the little details in here which make it fun. They start by using a StringBuffer to construct their query- not a horrible plan when the query is long, but this is just a single, simple, one-line query. The query contains a WITH clause, but it's in the wrong spot. Then they prepareStatement it, which does nothing, since this query doesn't contain any parameters (and also, isn't syntactically valid). Once it's prepared, they set the non-existent parameter 1 to a value- this operation will throw an exception because there are no parameters in the query. Finally, they loop across the results to count. The real WTF is that this code ended up in the code base, somehow. The developer said, "Yes, this seems good, I'll check in this non-functional blob that I definitely don't understand," and then there were no protections in place to keep that from happening. Now it falls to more competent developers, like Victoria, to clean up after this co-worker. [Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today! Full Article CodeSOD
co CodeSOD: Counting it All By thedailywtf.com Published On :: Tue, 05 Nov 2024 06:30:00 GMT Since it's election day in the US, many people are thinking about counting today. We frequently discuss counting here, and how to do it wrong, so let's look at some code from RK. This code may not be counting votes, but whatever it's counting, we're not going to enjoy it: case LogMode.Row_limit: // row limit excel = 65536 rows if (File.Exists(personalFolder + @"" + fileName + ".CSV")) { using (StreamReader reader = new StreamReader(personalFolder + @"" + fileName + ".CSV")) { countRows = reader.ReadToEnd().Split(new char[] { ' ' }).Length; } } Now, this code is from a rather old application, originally released in 2007. So the comment about Excel's row limit really puts us in a moment in time- Excel 2007 raised the row limit to 1,000,000 rows. But older versions of Excel did cap out at 65,536. And it wasn't the case that everyone just up and switched to Excel 2007 when it came out- transitioning to the new Office file formats was a conversion which took years. But we're not even reading an Excel file, we're reading a CSV. I enjoy that we construct the name twice, because that's useful. But the real magic of this one is how we count the rows. Because while Excel can handle 65,536 rows at this time, I don't think this program is going to do a great job of it- because we read the entire file into memory with ReadToEnd, then Split on newlines, then count the length that way. As you can imagine, in practice, this performed terribly on large files, of which there were many. Unfortunately for RK, there's one rule about old, legacy code: don't touch it. So despite fixing this being a rather easy task, nobody is working on fixing it, because nobody wants to be the one who touched it last. Instead, management is promising to launch a greenfield replacement project any day now… [Advertisement] Keep all your packages and Docker containers in one place, scan for vulnerabilities, and control who can access different feeds. ProGet installs in minutes and has a powerful free version with a lot of great features that you can upgrade when ready.Learn more. Full Article CodeSOD
co CodeSOD: Uniquely Validated By thedailywtf.com Published On :: Wed, 06 Nov 2024 06:30:00 GMT There's the potential for endless installments of "programmers not understanding how UUIDs work." Frankly, I think the fact that we represent them as human readable strings is part of the problem; sure, it's readable, but conceals the fact that it's just a large integer. Which brings us to this snippet, from Capybara James. if (!StringUtils.hasLength(uuid) || uuid.length() != 36) { throw new RequestParameterNotFoundException(ErrorCodeCostants.UUID_MANDATORY_OR_FORMAT); } StringUtils.hasLength comes from the Spring library, and it's a simple "is not null or empty" check. So- we're testing to see if a string is null or empty, or isn't exactly 36 characters long. That tells us the input is bad, so we throw a RequestParameterNotFoundException, along with an error code. So, as already pointed out, a UUID is just a large integer that we render as a 36 character string, and there are better ways to validate a UUID. But this also will accept any 36 character string- as long as you've got 36 characters, we'll call it a UUID. "This is valid, really valid, dumbass" is now a valid UUID. With that in mind, I also like the bonus of it not distinguishing between whether or not the input was missing or invalid, because that'll make it real easy for users to understand why their input is getting rejected. [Advertisement] ProGet’s got you covered with security and access controls on your NuGet feeds. Learn more. Full Article CodeSOD
co CodeSOD: Pay for this Later By thedailywtf.com Published On :: Mon, 11 Nov 2024 06:30:00 GMT Ross needed to write software to integrate with a credit card payment gateway. The one his company chose was relatively small, and only served a handful of countries- but it covered the markets they cared about and the transaction fees were cheap. They used XML for data interchange, and while they had no published schema document, they did have some handy-dandy sample code which let you parse their XML messages. $response = curl_exec($ch); $authecode = fetch_data($response, '<authCode>', '</authCode>'); $responsecode = fetch_data($response, '<responsecode>', '</responsecode>'); $retrunamount = fetch_data($response, '<returnamount>', '</returnamount>'); $trxnnumber = fetch_data($response, '<trxnnumber>', '</trxnnumber>'); $trxnstatus = fetch_data($response, '<trxnstatus>', '</trxnstatus>'); $trxnresponsemessage = fetch_data($response, '<trxnresponsemessage>', '</trxnresponsemessage>'); Well, this looks… worrying. At first glance, I wonder if we're going to have to kneel before Z̸̭͖͔͂̀ā̸̡͖͕͊l̴̜͕͋͌̕g̸͉̳͂͊ȯ̷͙͂̐. What exactly does fetch_data actually do? function fetch_data($string, $start_tag, $end_tag) { $position = stripos($string, $start_tag); $str = substr($string, $position); $str_second = substr($str, strlen($start_tag)); $second_positon = stripos($str_second, $end_tag); $str_third = substr($str_second, 0, $second_positon); $fetch_data = trim($str_third); return $fetch_data; } Phew, no regular expressions, just… lots of substrings. This parses the XML document with no sense of the document's structure- it literally just searches for specific tags, grabs whatever is between them, and calls it done. Nested tags? Attributes? Self-closing tags? Forget about it. Since it doesn't enforce that your open and closing tags match, it also lets you grab arbitrary (and invalid) document fragments- fetch_data($response, "<fooTag>", "<barTag>"), for example. And it's not like this needs to be implemented from scratch- PHP has built-in XML parsing classes. We could argue that by limiting ourselves to a subset of XML (which I can only hope this document does) and doing basic string parsing, we've built a much simpler approach, but I suspect that after doing a big pile of linear searches through the document, we're not really going to see any performance benefits from this version- and maintenance is going to be a nightmare, as it's so fragile and won't work for many very valid XML documents. It's always amazing when TRWTF is neither PHP nor XML but… whatever this is. [Advertisement] Plan Your .NET 9 Migration with ConfidenceYour journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now! Full Article CodeSOD
co Rumor: could a Paris Paloma song feature in WotR? By www.theonering.net Published On :: Wed, 30 Oct 2024 15:00:00 +0000 Originally theorized by Happy Hobbit, a music industry blog seems to confirm the song name. While there is still no official confirmation from the studio, the folks over at Film Music Reporter seem to have found the song track title for a new Paris Paloma song attached to The Lord of the Rings: The War of the Rohirrim: English folk-pop artist Paris Paloma has recorded an original song for the upcoming anime feature The Lord of the Rings: The War of the Rohirrim. The track, entitled The Rider, written by Phoebe Gittins (who co-wrote the project’s screenplay with Arty Papageorgiou and Jeffrey Addiss & Will Matthews) & composer David Long and performed by Paloma, will be featured in the movie. Where is the Horse and The Rider Paris Paloma is fresh on the music scene having released her first album earlier this year. Kellie from Happy Hobbit is a huge fan and in this TikTok posted a few months ago she speculated that Paloma was involved in The War of the Rohirrim. Just last week at NYCC, Executive Producer Philippa Boyens teased a great new song without revealing the artist. You can watch the full panel on our YouTube. On this week's TORN Tuesday, Kellie explains who Paris Paloma is and why she is perfect to be involved in the story of Rohan's shieldmaidens. Segment starts at 1:17:00 https://www.tiktok.com/@happy_hobbit_/video/7408239649933724974 Full Article The War of the Rohirrim Anime Paris Paloma songs soundtrack
co How Tolkien Is Connected To… John Wick? By www.theonering.net Published On :: Fri, 01 Nov 2024 23:58:13 +0000 In a new anniversary retrospective, creators of John Wick talk about how The Lord of the Rings inspired and is connected to the production of the huge action franchise. Over at Indiewire, director Chad Stahelski talks about the Tolkien influence on John Wick: "I’m a big Tolkien fan, and I’d always wanted to do a modern-day fantasy that scratched that itch so when this came along, it was the perfect hanger to put our coat on. I’d been trying to sell this idea of Greek mythology and underworlds but Tolkien was probably my favourite growing up [and a big influence]. I was fascinated by world creation. Add 10 years working with the Wachowskis, and I didn’t want to do a regular old action or assassin movie. I wanted something where we could have a little element of fantasy." The LOTR Film Connection That's not the only LOTR connection! Stahelski was the stunt double for Keanu Reeves on The Matrix, which was produced by Barrie Osborne before he jumped into producing the Lord of the Rings films with Peter Jackson (bringing Hugo Weaving with him). Read the whole 10 year anniversary interview of John Wick over at Indiewire. This, naturally, prompts the question, what would a Chad Stahelski directed LOTR movie or Rings of Power episode look like? Discuss in our Discord! Full Article Barrie Osborne Tolkien's Writing john wick
co Lacose Christmas campaign 2016 By peopleofdesign.ru Published On :: Thu, 14 Dec 2023 10:25:04 +0000 Campaign shot by fashion photographer Jean Paul Goude... The post Lacose Christmas campaign 2016 first appeared on peopleofdesign. Full Article fashion holidays 2016 campaign christmas collection jean paul goude lacoste limited
co OMFGCO Studio By peopleofdesign.ru Published On :: Mon, 19 Feb 2024 10:36:59 +0000 A multidisciplinary studio with interesting portfolio... Check it. The post OMFGCO Studio first appeared on peopleofdesign. Full Article graphic design illustration packaging branding creative design omfgco packaging design
co A’Design Awards & Competition 2024 – Call For Entries By peopleofdesign.ru Published On :: Sun, 25 Feb 2024 09:17:47 +0000 If you have a project to show - this is great chance... The post A’Design Awards & Competition 2024 – Call For Entries first appeared on peopleofdesign. Full Article architecture competition graphic design a design award and competition adesignawards creative jury news
co RIMOWA and La Marzocco for a limited-edition espresso machine By peopleofdesign.ru Published On :: Tue, 23 Apr 2024 06:20:20 +0000 Special on the design week in Milano... The post RIMOWA and La Marzocco for a limited-edition espresso machine first appeared on peopleofdesign. Full Article collaboration event ideas news product design caffee coffee design week la marzocco milano rimowa
co Isaia gestures t-shirt collection By peopleofdesign.ru Published On :: Sun, 11 Aug 2024 12:22:47 +0000 I visited the Bosco outlet website and saw an interesting t-shirt with gestures by Isaia... The post Isaia gestures t-shirt collection first appeared on peopleofdesign. Full Article fashion collection gestures isaia ss2016 t-shirt
co Coffee packaging for Talor&Jørgen By peopleofdesign.ru Published On :: Sun, 29 Sep 2024 16:38:39 +0000 Bielke & Yang made a packaging redesign for Talor&Jørgen coffee... The post Coffee packaging for Talor&Jørgen first appeared on peopleofdesign. Full Article graphic design packaging coffe packaging coffee design package design packaging design
co Nike Cortez – Dark Russet colorway By peopleofdesign.ru Published On :: Mon, 30 Sep 2024 06:20:44 +0000 In October 2024 Nike will launch their legendary model Cortez in the new colorway - Dark Russet... The post Nike Cortez – Dark Russet colorway first appeared on peopleofdesign. Full Article fashion cortez fall 2024 nike sneakers
co Porsche collaborated with La Marzocco By peopleofdesign.ru Published On :: Mon, 28 Oct 2024 06:23:59 +0000 An incredible collaboration of two legends that you simply can’t ignore… Porsche and the La Marzocco coffee machine. The post Porsche collaborated with La Marzocco first appeared on peopleofdesign. Full Article auto collaboration product design coffee collab exhibition la marzocco porsche
co What to expect at the COP16 biodiversity summit By www.newscientist.com Published On :: Mon, 21 Oct 2024 21:44:43 +0100 Countries are convening in Colombia to debate how they will achieve wide-ranging targets to stem biodiversity loss and how they plan to pay for it Full Article
co Morphing red blood cells help bats hibernate - and we could do it too By www.newscientist.com Published On :: Tue, 22 Oct 2024 15:00:56 +0100 Animals that hibernate need a way to keep their blood flowing as their body temperature drops, and it seems that the mechanical properties of red blood cells may be key Full Article
co The mystery of the missing La Niña continues – and we don't know why By www.newscientist.com Published On :: Tue, 22 Oct 2024 22:00:19 +0100 A climate-cooling La Niña pattern was expected to develop in the Pacific Ocean months ago, but forecasters now say it won't appear until November Full Article
co Neuroscientist finds her brain shrinks while taking birth control By www.newscientist.com Published On :: Tue, 22 Oct 2024 20:52:51 +0100 A researcher who underwent dozens of brain scans discovered that the volume of her cerebral cortex was 1 per cent lower when she took hormonal contraceptives Full Article
co Battery-like device made from water and clay could be used on Mars By www.newscientist.com Published On :: Thu, 24 Oct 2024 18:55:15 +0100 A new supercapacitor design that uses only water, clay and graphene could source material on Mars and be more sustainable and accessible than traditional batteries Full Article
co Electric skin patch could keep wounds free of infection By www.newscientist.com Published On :: Thu, 24 Oct 2024 17:00:21 +0100 Zapping the skin with electricity could stop bacteria that live there harmlessly from entering the body and causing blood poisoning Full Article
co Complex form of carbon spotted outside solar system for first time By www.newscientist.com Published On :: Thu, 24 Oct 2024 20:00:36 +0100 Complex carbon-based molecules crucial to life on Earth originated somewhere in space, but we didn't know where. Now, huge amounts of them have been spotted in a huge, cold cloud of gas Full Article
co NASA is developing a Mars helicopter that could land itself from orbit By www.newscientist.com Published On :: Fri, 25 Oct 2024 18:00:48 +0100 The largest and most ambitious Martian drone yet could carry kilograms of scientific equipment over great distances and set itself down on the Red Planet unassisted Full Article
co Weird microbes could help rewrite the origin of multicellular life By www.newscientist.com Published On :: Mon, 28 Oct 2024 11:30:00 +0000 Single-celled organisms called archaea can become multicellular when compressed, highlighting the role of physical forces in evolution Full Article
co One course of antibiotics can change your gut microbiome for years By www.newscientist.com Published On :: Tue, 29 Oct 2024 15:00:35 +0000 Antibiotics can reduce diversity in the gut microbiome, raising the risk of infections that cause diarrhoea - and the effects may last years Full Article
co Astronauts could hitch a ride on asteroids to get to Venus or Mars By www.newscientist.com Published On :: Tue, 29 Oct 2024 18:00:47 +0000 Asteroids that regularly fly between Earth, Venus and Mars could provide radiation shielding for human missions to explore neighbouring planets Full Article
co Quantum batteries could give off more energy than they store By www.newscientist.com Published On :: Tue, 29 Oct 2024 19:15:33 +0000 Simulations suggest that when a quantum battery shares a quantum state with the device it is powering, the device can gain more charge than was stored in the battery to begin with Full Article
co Simple fix could make US census more accurate but just as private By www.newscientist.com Published On :: Wed, 30 Oct 2024 22:00:41 +0000 The US Census Bureau processes data before publishing it in order to keep personal information private – but a new approach could maintain the same privacy while improving accuracy Full Article
co Lakes are losing winter ice cover at an astonishing rate By www.newscientist.com Published On :: Thu, 31 Oct 2024 17:00:55 +0000 Fewer lakes are freezing over each winter compared with past years, posing environmental and economic consequences around the world Full Article
co Chimpanzees will never randomly type the complete works of Shakespeare By www.newscientist.com Published On :: Thu, 31 Oct 2024 11:21:30 +0000 The infinite monkey theorem states that illiterate primates could write great literature with enough time, but the amount of time needed is much longer than the lifespan of the universe Full Article
co War-era sugar rationing boosted health of UK people conceived in 1940s By www.newscientist.com Published On :: Thu, 31 Oct 2024 18:00:30 +0000 People conceived during the UK's 1940s and 50s sugar rationing have a lower risk of type 2 diabetes and high blood pressure than those conceived after rationing ended Full Article
co Cloud-inspired material can bend light around corners By www.newscientist.com Published On :: Fri, 01 Nov 2024 10:00:21 +0000 Light can be directed and steered around bends using a method similar to the way clouds scatter photons, which could lead to advances in medical imaging, cooling systems and even nuclear reactors Full Article
co There may be a cosmic speed limit on how fast anything can grow By www.newscientist.com Published On :: Fri, 01 Nov 2024 14:28:25 +0000 Alan Turing's theories about computation seem to have a startling consequence, placing hard limits on how fast or slow any physical process in the universe can grow Full Article
co COP29: Clashes over cash are set to dominate the climate conference By www.newscientist.com Published On :: Mon, 04 Nov 2024 10:50:55 +0000 The focus is on finance at the UN climate summit in Baku, Azerbaijan, this month, but countries are a long way from any kind of consensus Full Article
co The COP16 biodiversity summit was a big flop for protecting nature By www.newscientist.com Published On :: Mon, 04 Nov 2024 20:15:10 +0000 Although the COP16 summit in Colombia ended with some important agreements, countries still aren’t moving fast enough to stem biodiversity loss Full Article
co 3D printing with light and sound could let us copy human organs By www.newscientist.com Published On :: Tue, 05 Nov 2024 14:00:07 +0000 One day, doctors might be able to 3D print copies of your organs in order to test a variety of drugs, thanks to a new technique that uses light and sound for rapid printing Full Article
co More people are living with pain today than before covid emerged By www.newscientist.com Published On :: Wed, 06 Nov 2024 17:28:00 +0000 Chronic pain has increased among adults in the US since 2019, which could be due to a rise in sedentary lifestyles or reduced access to healthcare amid covid-19 restrictions Full Article
co Marmots could have the solution to a long-running debate in evolution By www.newscientist.com Published On :: Thu, 07 Nov 2024 18:00:29 +0000 When it comes to the survival of animals living in the wild, the characteristics of the group can matter as much as the traits of the individual, according to a study in marmots Full Article
co Bird flu antibodies found in dairy workers in Michigan and Colorado By www.newscientist.com Published On :: Thu, 07 Nov 2024 18:10:40 +0000 Blood tests have shown that about 7 per cent of workers on dairy farms that had H5N1 outbreaks had antibodies against the disease Full Article