The team is fairly unison in wanting to avoid defederation as much as possible and leave it users to filter out content they personally don't enjoy. Programming is a big and diverse field, and we want to make it as open as possible to everyone. Unless the instance breaks our own rules as described in the sidebar under "federation rules", I feel like it would be an overreach by us to defederate an instance due to personal opinion.
- Posts
- 13
- Comments
- 196
- Joined
- 3 yr. ago
- Posts
- 13
- Comments
- 196
- Joined
- 3 yr. ago
Too scarred from puzzle 5 to do the naïve approach anymore.
A nice change of pace from the previous puzzles, more maths and less parsing :::spoiler Python
import math import re def create_table(filename: str) -> list[tuple[int, int]]: with open('day6.txt', 'r', encoding='utf-8') as file: times: list[str] = re.findall(r'\d+', file.readline()) distances: list[str] = re.findall(r'\d+', file.readline()) table: list[tuple[int, int]] = [] for t, d in zip(times, distances): table.append((int(t), int(d))) return table def get_possible_times_num(table_entry: tuple[int, int]) -> int: t, d = table_entry l_border: int = math.ceil(0.5 * (t - math.sqrt(t**2 -4 * d)) + 0.0000000000001) # Add small num to ensure you round up on whole numbers r_border: int = math.floor(0.5*(math.sqrt(t**2 - 4 * d) + t) - 0.0000000000001) # Subtract small num to ensure you round down on whole numbers return r_border - l_border + 1 def puzzle1() -> int: table: list[tuple[int, int]] = create_table('day6.txt') possibilities: int = 1 for e in table: possibilities *= get_possible_times_num(e) return possibilities def create_table_2(filename: str) -> tuple[int, int]: with open('day6.txt', 'r', encoding='utf-8') as file: t: str = re.search(r'\d+', file.readline().replace(' ', '')).group(0) d: str = re.search(r'\d+', file.readline().replace(' ', '')).group(0) return int(t), int(d) def puzzle2() -> int: t, d = create_table_2('day6.txt') return get_possible_times_num((t, d)) if __name__ == '__main__': print(puzzle1()) print(puzzle2())Personally I would recommend to use regex instead for parsing, which would also allow you to more easily test your expressions. You could then get the list as
import re result = re.findall(r'[\w_]+|\S', yourstring) # This will preserve ULLONG_MAX as a single word if that's what you wantAs for what's wrong with your expressions:
First expression: Once you hit
(,OneOrMore(Char(printables))will take over and continue matching every printable char. Instead you should use OR (|) with the alphanumerical first for priorityOneOrMore(word | Char(printables))Second expression. You're running into the same issue with your use of
+. Once string.punctuation takes over, it will continue matching until it encounters a char that is not a punctuation and then stop the matching. Instead you can write:parser = OneOrMore(Word(alphanums) | Word(string.punctuation)) result = parser.parseString(yourstring)Do note that underscore is considered a punctutation so ULLONG_MAX will be split, not sure if that's what you want or not.
Photoshop (if it does?) and any other believable face swap apps use some sort of neural networks, which is exactly the problematic tech we are talking about.
Lower skill ceiling. One option can be done by pretty much anyone at a high volume output, the other would require a lot training and are not available for your average basement dweller.
Good luck trying to regulate it though, Pandora's box is opened and you won't be able to stop the FOSS community from working on the tech.
I personally would prefer the if check and return 0 in most instances just because it's clearer and more readable. But the two previous functions were one-liners so it just looked better if get_winnings() also was.
Feels like the challenges are getting easier than harder currently. Fairly straightforward when doing it the lazy way with python. ::: spoiler Python
import re winning_number_pattern: re.Pattern = re.compile(r' +([\d ]*?) +\|') lottery_number_pattern: re.Pattern = re.compile(r'\| +([\d ]*)') def get_winning_numbers(line: str) -> set[str]: return set(winning_number_pattern.search(line).group(1).split()) def get_lottery_numbers(line: str) -> set[str]: return set(lottery_number_pattern.search(line).group(1).split()) def get_winnings(winning_numbers: set[str], lottery_numbers: set[str]) -> int: return int(2 ** (len(winning_numbers.intersection(lottery_numbers)) - 1)) def puzzle_1() -> int: points: int = 0 with open('day4_scratchcards.txt', 'r', encoding='utf-8') as file: for line in file: points += get_winnings(get_winning_numbers(line), get_lottery_numbers(line)) return points class ScratchCard: def __init__(self, line: str): self.amount: int = 1 self.winnings: int = len(get_winning_numbers(line).intersection(get_lottery_numbers(line))) def update(self, extra: int) -> None: self.amount = self.amount + extra def __radd__(self, other): return self.amount + other def puzzle_2() -> int: scratch_card_list: list[ScratchCard] = [] with open('day4_scratchcards.txt', 'r', encoding='utf-8') as file: for line in file: scratch_card_list.append(ScratchCard(line)) for i, scratch_card in enumerate(scratch_card_list): for j in range(1, scratch_card.winnings + 1): try: scratch_card_list[i + j].update(scratch_card.amount) except IndexError: pass return sum(scratch_card_list) if __name__ == '__main__': print(puzzle_1()) print(puzzle_2())And if Google went nuclear and starts embedding the ad into the videos themselves?
I don't have any experience with pipx and personally prefer to just skip the .toml and place the whole pyprojectsetup in setup.py.
With that method, I would write inside setup()
packages=find_packages() # Include every python packages package_data={ # Specify additional data files 'yourpackagename': [ 'config/*' etc... ] }This would however require you to have a package folder which all your package files/folders are inside, meaning the top level repo folder should not have any files or other folders that you want to distribute. Your MANIFEST.in looks fine.
- JumpDeleted
Permanently Deleted
If you believe it's an bug with our instance, try making a post over at !meta@programming.dev . Posting here is unlikely to grab the attention of an admin unless the post gets reported (which it did). Before that though, look up if isn't just the more likely scenario of a general lemmy bug/quirk caused by mismatched lemmy versions, etc...
I don't believe for one bit that windows will move to a pure subscription based model. They are greedy, but not stupid.
What's more believable is that the base OS will be the same as usual, but if you want fancy AI assistants in your OS, you must subscribe, with the justification being that MS must pay for the servers running the models you're using.
Boost really should just update the UI to simply show how many upvotes and downvotes a post has. No reason to stick the inferior sum total of all upvotes and downvotes that reddit prefers.
Stickied post would work just fine yeah, can't really expect the developer to set up a public repo for just tracking features. Hopefully Ruben takes notice.
if Valve isn't selling at a loss to poorer regions then they are simply extracting additional profit from higher-income regions on the assumption that those customers can afford it.
Valve can't sell for a loss the same way ebay can't. Valve simply takes a percentage of the price everytime a game is bought, publishers are in complete control of the price they want to sell. Often, publishers will let Steam automatically set regional pricing based e.g. the American price though.
The way these publishers operate, they will simply set the price at the highest possible value to extract as much as money ad they can from those willing to spend 60+$. Those unwilling or incapable of spending that amount of money, will just buy the game later on a sale. Price skimming has only become more and more prevalent in PC gaming with steam being the "innovator" of frequent sales.
Yes I did read it. I was pointing out that all this will do is screw over citizens of poorer EU countries. India vs USA was simply to make it obvious why the concept of geo blocking makes sense. Germans will on average have stronger buying power than someone in Latvia.
Steam is a storefront, not a competitor to game publisher. It's effectively no different than Lidl agreeing to run a regional rebate program for Samsung TVs in Latvia for whatever reason.
The geo blocking enabled cheaper prices for certain countries, not higher. The only people who would have an issue with it is people from richer countries that for some reason are jealous of lower prices in some countries.
Localised pricing is good though? Is it really fair ask someone in India to pay the same price as an American? If you can't geo block keys, you can't stop people taking advantage by using a VPN to buy games from whatever country got the lowest price. The result will just be publishers keeping the high price for every country, screwing poorer regions over.
Also, what they did wouldn't really qualify as price fixing.
Valve won't break the law for other publisher's profits. Steam is just a store front, they were geo blocking on behalf of other publishers.
Valve also doesn't take a cut from steam key sales not bought directly through their storefront, so the geoblocking keys isn't something that will impact them. More likely, this will result in citizens of poorer EU countries getting screwed over by having to pay higher prices for games, since they can't stop EU citizens from taking advantage of buying the game from the poorest EU country.
Nynorsk supporters just never quit do they. Half the country wants it gone and less than 10 percent of the country uses it, still it's on the list while Swedish and Danish aren't, lmao.
I'm pretty sure it's generating racially diverse nazis due to companies tinkering with the prompts under the hood to counterweight biases in the training data. A naive implementation of generative AI wouldn't output black or Asian nazis.
It sort of does (in a poor way), but they call it bias and tries to dampen it.