2,309,673 events, 1,149,692 push events, 1,825,878 commit messages, 138,774,418 characters
Rename Raspi-Pi PhotoBooth to Raspberry Pi 3 B+ PhotoBooth
First ever project done using the Python programming language. A rather confusing and intriguing process of trial and error. It took approximately 40+ hours to get this much code in and to make the whole hardware and software function properly, but it was an amazing learning experience. I got a better feel and understanding of how 'class' functions work in Python and what it takes in order for them to all work in hand with each other to create a completed system. This is where I learned the trick to coding and that is to take everything into small bites and learn how each part works before trying to put them all together without knowing what goes where. The most entertaining part of this project was creating a Twitter bot with a selected API code in which it provided 'keys' that linked the Twitter social platform to the Raspberry Pi 3; thus, it allowed users to take photos and automatically upload it to the cloud after giving users the opportunity to caption their newly stitched photo.
sql,kv: add SQL savepoints support
This patch adds support for SAVEPOINT , RELEASE SAVEPOINT , ROLLBACK TO SAVEPOINT . Before this patch, we only had support for the special savepoint cockroach_restart, which had to be placed at the beginning of the transaction and was specifically intended for dealing with transaction retries. This patch implements general support for savepoints, which provide an error recovery mechanism.
The connExecutor now maintains a stack of savepoints. Rolling back to a savepoint uses the recent KV api for ignoring a range of write sequence numbers.
At the SQL level, savepoints differ in two characteristics:
- savepoints placed at the beginning of a transaction (i.e. before any KV operations) are marked as "initial". Rolling back to an initial savepoint is always possible. Rolling back to a non-initial savepoint is not possible after the transaction restarts (see below).
- the savepoint named "cockroach_restart" retains special RELEASE semantics: releasing it (attempts to) commit the underlying KV txn. This continues to allow for descovering of deferred serilizability errors (i.e. write timestamp pushes by the ts cache). As before, this RELEASE can fail with a retriable error, at which point the client can do ROLLBACK TO SAVEPOINT cockroach_restart (which is guaranteed to work because cockroach_restart needs to be an "initial" savepoint). The transaction continues to maintain all its locks after such an error. This is all in contrast to releasing any other savepoints, which cannot commit the txn and also never fails. See below for more discussion. The cockroach_restart savepoint is only special in its release behavior, not in its rollback behavior.
This patch also improves the KV savepoints. They now capture and restore the state of the read spans and the in-flight writes.
Some things don't work (yet): a) Rolling back to a savepoint created after a schema change will error out. This is because we don't yet snapshot the transaction's schema change state. b) After a retriable error, you can only rollback to an initial savepoint. Attempting to rollback to a non-initial savepoint generates a retriable error again. If the trasaction has been aborted, I think this is the right behavior; no recovery is possible since the transaction has lost its write intents. In the usual case where the transaction has not been aborted, I think we want something better but it will take more work to get it. I think the behavior we want is the following:
- after a serializability failure, retrying just part of the transaction should be doable by attempting a ROLLBACK TO SAVEPOINT. This rollback should succeed if all the non-rolled-back reads can be refreshed to the desired timestamp. If they can be refreshed, then the client can simply retry the rolled back part of the transaction. If they can't, then the ROLLBACK should return a retriable error again, allowing the client to attempt a deeper rollback - and so on until the client rolls back to an initial savepoint (which succeeds by definition). Implementing this would allow for the following nifty pattern:
func fn_n() { for { SAVEPOINT savepoint_n try { fn_n+1() } catch retriable error { err := ROLLBACK TO SAVEPOINT outer if err != nil { throw err } continue } RELEASE SAVEPOINT savepoint_n break } }
The idea here is that the client is trying to re-do as little work as possible by successively rolling back to earlier and earlier savepoints. This pattern will technically work with the current patch already, except it will not actually help the client in any way since all the rollbacks will fail until we get to the very first savepoint. There's an argument to be made for making RELEASE SAVEPOINT check for deferred serializability violations (and perhaps other deferred checks - like deferred constraint validation), although Postgres doesn't do any of these. Anyway, I've left implementing this for a future patch because I want to do some KV work for supporting it nicely. Currently, the automatic restart behavior that KV transactions have is a pain in the ass since it works against what we're trying to do.
For the time-being, non-initial savepoints remember their txn ID and epoch and attempting to rollback to them after these changes produces a retriable error automatically.
Release note (sql change): CRDB now supports SQL savepoints. SAVEPOINT
, RELEASE SAVEPOINT , ROLLBACK TO SAVEPOINT now works.
SHOW SAVEPOINT STATUS
can be used to inspect the current stack of active
savepoints.
Textures and stuff
remember all that stuff i did last time? yeah that, but again. fuck. oh i also replaced the level 1 music again. if this doesnt work im going to kermit toaster tub
Disallow evoking lamp/phial while confused
These two are almost the last remaining holdover of evocables that could be used while confused. (I notice that tremorstones also work.) These silently applied target fuzzing (see 657136525ae) in this case; if these were to be usable while confused in modern crawl, I think they would need to indicate to the player somehow what might happen. I ran across this in a crash where an extremely desparate player was constricted and chain-confused by golden eyes tried to target the constricting naga with the phial, and fuzzing cause the wave to go the other direction and hit a friendly demon. Luckily for this player, the game crashed during knockback on the demon.
See cccf84277269a for wands, and 6178f7666a6f for rods. Unlike these cases, I do think it's possible that lamp/phial might not be completely useless with fuzzed targeting, so I wouldn't be opposed to bringing this back if someone can solve the UI problem.
sql,kv: add SQL savepoints support
This patch adds support for SAVEPOINT , RELEASE SAVEPOINT , ROLLBACK TO SAVEPOINT . Before this patch, we only had support for the special savepoint cockroach_restart, which had to be placed at the beginning of the transaction and was specifically intended for dealing with transaction retries. This patch implements general support for savepoints, which provide an error recovery mechanism.
The connExecutor now maintains a stack of savepoints. Rolling back to a savepoint uses the recent KV api for ignoring a range of write sequence numbers.
At the SQL level, savepoints differ in two characteristics:
- savepoints placed at the beginning of a transaction (i.e. before any KV operations) are marked as "initial". Rolling back to an initial savepoint is always possible. Rolling back to a non-initial savepoint is not possible after the transaction restarts (see below).
- the savepoint named "cockroach_restart" retains special RELEASE semantics: releasing it (attempts to) commit the underlying KV txn. This continues to allow for descovering of deferred serilizability errors (i.e. write timestamp pushes by the ts cache). As before, this RELEASE can fail with a retriable error, at which point the client can do ROLLBACK TO SAVEPOINT cockroach_restart (which is guaranteed to work because cockroach_restart needs to be an "initial" savepoint). The transaction continues to maintain all its locks after such an error. This is all in contrast to releasing any other savepoints, which cannot commit the txn and also never fails. See below for more discussion. The cockroach_restart savepoint is only special in its release behavior, not in its rollback behavior.
With the implementation of savepoints, the state machine driving a SQL connection's transactions becomes a lot simpler. There's no longer a distinction between an "Aborted" transaction and one that's in "RestartWait". Rolling back to a savepoint now works the same way across the two states, so RestartWait is gone.
This patch also improves the KV savepoints. They now capture and restore the state of the read spans and the in-flight writes.
Some things don't work (yet): a) Rolling back to a savepoint created after a schema change will error out. This is because we don't yet snapshot the transaction's schema change state. b) After a retriable error, you can only rollback to an initial savepoint. Attempting to rollback to a non-initial savepoint generates a retriable error again. If the trasaction has been aborted, I think this is the right behavior; no recovery is possible since the transaction has lost its write intents. In the usual case where the transaction has not been aborted, I think we want something better but it will take more work to get it. I think the behavior we want is the following:
- after a serializability failure, retrying just part of the transaction should be doable by attempting a ROLLBACK TO SAVEPOINT. This rollback should succeed if all the non-rolled-back reads can be refreshed to the desired timestamp. If they can be refreshed, then the client can simply retry the rolled back part of the transaction. If they can't, then the ROLLBACK should return a retriable error again, allowing the client to attempt a deeper rollback - and so on until the client rolls back to an initial savepoint (which succeeds by definition). Implementing this would allow for the following nifty pattern:
func fn_n() { for { SAVEPOINT savepoint_n try { fn_n+1() } catch retriable error { err := ROLLBACK TO SAVEPOINT outer if err != nil { throw err } continue } RELEASE SAVEPOINT savepoint_n break } }
The idea here is that the client is trying to re-do as little work as possible by successively rolling back to earlier and earlier savepoints. This pattern will technically work with the current patch already, except it will not actually help the client in any way since all the rollbacks will fail until we get to the very first savepoint. There's an argument to be made for making RELEASE SAVEPOINT check for deferred serializability violations (and perhaps other deferred checks - like deferred constraint validation), although Postgres doesn't do any of these. Anyway, I've left implementing this for a future patch because I want to do some KV work for supporting it nicely. Currently, the automatic restart behavior that KV transactions have is a pain in the ass since it works against what we're trying to do.
For the time-being, non-initial savepoints remember their txn ID and epoch and attempting to rollback to them after these changes produces a retriable error automatically.
Release note (sql change): SQL savepoints are now supported. SAVEPOINT
, RELEASE SAVEPOINT , ROLLBACK TO SAVEPOINT now works.
SHOW SAVEPOINT STATUS
can be used to inspect the current stack of active
savepoints.
Co-authored-by: Raphael 'kena' Poss [email protected] Co-authored-by: Andrei Matei [email protected]
edited a bit more O>O HOLY SHIT THIS IS STARTING TO GET ANNOYING
GENIUS GIGABRAIN FIX FOR FUCKING SPACE Z LEVELS INSTEAD OF SNOWY ONES FUCK YOU THIS IS SO FUCKING GENIUS FUCK YOU FUCK
aaaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
FUCK YOU OBS AND YOUR STUPID TERRIBLE BROWSER SOURCE IMPLEMENTATION GO HELL
Update from Forestry.io frank he deleted _posts/2015-12-21-eddie-kim-somehow-managed-to-fill-the-plane-with-poisonous-snakes.markdown frank he deleted _posts/2015-12-21-verybody-listen-we-have-to-put-a-barrier-between-us-and-the-snakes.markdown frank he deleted _posts/2015-12-22-i-think-it-is-time-we-inform-the-senate-that-our-ability-to-use-the-force-has-diminished.markdown frank he deleted _posts/2015-12-21-i-was-not-going-to-stand-by-and-see-another-marine-die-just-to-live-by-those-fucking-rules.markdown
Update from Forestry.io frank he deleted _posts/2015-12-21-it-would-be-totally-painless-theyd-just-slip-into-unconsciousness-and-die.markdown frank he deleted _posts/2015-12-22-the-reason-were-gathered-here-on-our-god-given-much-naeeded-day-of-rest-is-that-we-have-a-polish-hostage.markdown
Create Evil Autocorrect Prank
Your friend won't stop texting his girlfriend. It's all he does. All day. Seriously. The texts are so mushy too! The whole situation just makes you feel ill. Being the wonderful friend that you are, you hatch an evil plot. While he's sleeping, you take his phone and change the autocorrect options so that every time he types "you" or "u" it gets changed to "your sister."
Write a function called autocorrect that takes a string and replaces all instances of "you" or "u" (not case sensitive) with "your sister" (always lower case).
Return the resulting string.
Here's the slightly tricky part: These are text messages, so there are different forms of "you" and "u".
For the purposes of this kata, here's what you need to support:
"youuuuu" with any number of u characters tacked onto the end "u" at the beginning, middle, or end of a string, but NOT part of a word "you" but NOT as part of another word like youtube or bayou
https://www.codewars.com/kata/538ae2eb7a4ba8c99b000439
Tiago Henriques - Talk
- Speaker : {{ Tiago Henriques }}
- Available : {{ All days after 11am }}
- Length : {{ 60 minutes }}
- Language : {{ English }}
{{ 5 years ago, I opened my own startup. In a country where I didn't speak any of the native languages, without having ever gone to business school, without understanding what is needed to create a company. This talk is about how an idea that started as a group of friends doing research for fun and an event much like this one that we find ourselves in today, that turned into a startup that later got acquired, our ups and downs, the things I did wrong and right. }}
{{ My name is Tiago Henriques, I was the ex-CEO of BinaryEdge up until a few months when it got acquired by Coalition, a cyber insurer. I love all things security, data and how I can make insurance better using both of those. }}
- Blog: {{ https://blog.binaryedge.io }}
- Company: {{ https://binaryedge.io }}
- GitHub: {{ https://github.com/balgan }}
- Photo: {{ https://example.com/me.jpg }} — a picture of yourself for the speakers page }}
{{ To learn a bit of background information feel free to check: https://blog.binaryedge.io/2020/01/22/binaryedge-coalition/ }}
Fixed bugs in scrolly-tile
In addition to fixing (I hope) the bugs that caused abrupt endings to passages I've deleted some dead code and improved code re-use.
I've also added little pools of water in the bottom of emergent passages. Looks kinda naff for now.
Converting this to high-res might be nice- it's hard to make a character sprite out of a handful of pixels. Althought the simple box is kinda endearing.
I'd also love to have a small back-buffer allowing you to fall back down passages a little way to explore- easy to make it work, but not sure how it'd feel mechanically.
Create The Millionth Fibonacci Kata
The year is 1214. One night, Pope Innocent III awakens to find the the archangel Gabriel floating before him. Gabriel thunders to the pope:
Gather all of the learned men in Pisa, especially Leonardo Fibonacci. In order for the crusades in the holy lands to be successful, these men must calculate the millionth number in Fibonacci's recurrence. Fail to do this, and your armies will never reclaim the holy land. It is His will.
The angel then vanishes in an explosion of white light.
Pope Innocent III sits in his bed in awe. How much is a million? he thinks to himself. He never was very good at math.
He tries writing the number down, but because everyone in Europe is still using Roman numerals at this moment in history, he cannot represent this number. If he only knew about the invention of zero, it might make this sort of thing easier.
He decides to go back to bed. He consoles himself, The Lord would never challenge me thus; this must have been some deceit by the devil. A pretty horrendous nightmare, to be sure.
Pope Innocent III's armies would go on to conquer Constantinople (now Istanbul), but they would never reclaim the holy land as he desired.
In this kata you will have to calculate fib(n) where:
fib(0) := 0 fib(1) := 1 fin(n + 2) := fib(n + 1) + fib(n) Write an algorithm that can handle n up to 2000000.
Your algorithm must output the exact integer answer, to full precision. Also, it must correctly handle negative numbers as input.
https://www.codewars.com/kata/53d40c1e2f13e331fc000c26
Action: ObjCThemis
iOS build automation is not much easier than Android, but at least iOS Simulator on macOS supports x86. Thankfully, we are developing a library and for tests we do not need code signing. Otherwise we'd dealing with longstanding Apple policy of changing the way code signing works every 18 months.
However, most pain and suffering comes from the build systems popular for iOS/macOS development. Note that CocoaPods cache. It shaves off about 4 minutes and 850 MB of crap^W trunk reposistory that CocoaPods pulls. It still takes about three minutes to download and unpack but that's better than nothing. Though, we have to do it for every build. Maybe some day we'll invent a shared cache, but until then let's just ride upon Microsoft's generosity of providing free macOS runners. (Otherwise we would be paying $2.08 per build.)
There are also various other issues with dependencies, like not having a decent packaging of OpenSSL, which leads to us using GRKOpenSSL which is not really maintained and causes podspec validation warnings. Eh... I just give up, this is insurmountable, I wonder whether we should be maintaining OpenSSL of our own instead. However, that will hurt dynamic linking if people are using OpenSSL for other pods.
Secure Cell passphrase API: ThemisPP (#588)
- themispp::impl::input_buffer utility
This is how you say "AsRef<[u8]>" in C++. Yes, really.
We are going to use this bunch of templates to accept anything that can be converted into a byte slice in new Secure Cell interface.
Public interface:
- themispp::input_buffer() templates
Application code is allowed to invoke these freely. They are resilient to silly values, but until C++20 it is impossible to detect contiguous iterators reliably. Therefore is is technically possible to pass, say, std::deque<uint8_t> with inevitable probable segfault. Don't do that. (Thankfully, std::list and everything non-random-access is ruled out.)
Private interface:
- themispp::impl::input_buffer struct
- themispp::impl::input_bytes() templates
- themispp::impl::input_string() templates
These functions are going to be used by ThemisPP internally. There are dummy identity conversion to handle themispp::input_buffer() results. String functions are used only by passphrase API constructors. They are not available to general users so that they don't pass std::string wherever they want.
However, it is possible for users to provide specializations of all template functions in order to support their own custom containers. Tests provide an example of how this can be done.
Note that the implementation is hidden in themispp::impl namespace which itself is mirrored in "themispp/impl" directory. This should prevent users from accidentally including and using these definitions.
Also note the "compat" headers which are used to polyfill newer features of C++ when available. They are meant for internal use and should be used in pairs to avoid leaking magic macros to application code.
- themispp::impl::secret_bytes utility
We are going to use this little class to store secret data inside Secure Cell. It is a wrapper over std::vector equipped with autowiping. The interface is restricted by design, limiting out own stupidity when coding ThemisPP.
Use of soter_wipe() in ThemisPP in any form has a drawback: it makes application code dependent on Soter library directly. Previously only themispp::secure_rand_t (mostly unused) caused this, but now all new Secure Cell classes will trigger this. It's not an issue on Linux with its flat linker spaace, but virtually every other OS has nested linkage.
- themispp::secure_cell_seal API
Implement Seal mode of Secure Cell, in both master key and passphrase flavors. The implementation is more or less straightforward, but there is one thing which must be commented. Initially I expected that allocator-aware templates can be placed directly into "themispp" namespace:
auto cell = themispp::secure_cell_seal_with_passphrase("secret");
However, it turned out that C++ grammar requires (until C++17) the template brackets to be present at all times, even if all template arguments can be inferred. This results in silly-looking:
auto cell = themispp::secure_cell_seal_with_passphrase<>("secret");
As a result, the actual implementation goes into "impl" subnamespace and proper name is reexported via a typedef. Well... it's C++, what can I do? Assuming that we do want to keep allocator awareness.
New implementation gets a bunch of new test which verify both API and some behavior. In particular, they can be somewhat of a usage guide now. Though, they are still very much incomplete.
Note that some tests are templated over "master key"/"passphrase" type. I really don't want to duplicate this code (it's enough KLOC here) and this ensures that both Secure Cell flavors have identical API. Win-win. (Actual implementation could be templated too, but that does not save much lines of code while making the implementation much more complex.)
Also note a whole lot of "// NOLINT" comments. If we were not bound by C++03 compatibility we could have used modern alternatives, but C++03 makes it hard to write code that compiles with every standard so we use the greatest common denominator. Hence we need clang-tidy to shut up.
- themispp::secure_cell_context_imprint API
This one is easy to do: there are no overloads, simple API, there will never be a passphrase API for Context Imprint. So it's mostly copy-paste of the Seal mode. Just pay attention to the argument order in Core API. It's slightly different for Context Imprint mode.
Since Context Imprint mode does not verify message validity, there is not much that we can verify in tests. But at least we check the GIGO behavior.
- themispp::secure_cell_token_protect API
Ah! Token Protect API! The foster child of APIs in Themis which usually does not get enough attention and ends up as a second-class citizen. ThemisPP has specially obnoxious API for it, which is unique across all Themis wrappers. Well, not anymore.
Instead of doing all that "set_token()"/"get_token()" we now return the encryption results as std::pair (with a couple of better accessors bolted onto it). This also gives us nice destructuring API which has finally arrived in C++17.
Other than that, the implementation is pretty unremarkable. Mind the argument order and you'll be fine.
The tests are templatized like Seal mode to make it easier to add passphrase support later. Note that we very message and token separately.
- Mark old Secure Cell API deprecated
Yes, placement of attributes is... questionable but that's how you do it in C++. Don't ask me, I have no clue and don't want to know. There is probably a 75-page paper in C++ committee proceedings which explains in great detail why it must be done this way and absolutely cannot be done in a different, more sane way.
clang-format does not make it look pretty either. Oh well... At least this code looks ugly and definitely deprecated.
- Update clang-format rules
- Autodetect C++ standard version to prevent clang-format from fixing "> >" into ">>" in template usage like "foo<bar = >" which does not parse correctly in C++03
-
Note new API in changelog
-
Use wording "key" with old master key API
Replace whatever we were calling 'passwords' with something that looks like a key and is named like one.
- Use passphrase API in example project
Well... project... The code style here leaves much to be desired, but I'm not going to fix it up right now. Just update it to use the latest API which is appropriate here.
"8:25am. I am up and it is time to chill. In review yesterday was weird. It is weird that I got into the zone for the Vue code shown yesterday, but sometimes it happens that you get those crystallizing experiences out of the blue.
My earliest programming memory is reading a Logo book and the code simply falling into place in my head. This was back in elementary school.
There is always a rush that accompanies the insight.
8:35am. Ok, focus me. Tog then comes the Gup OVA. I started it yesterday, but I need to rewatch it as I was too tired to properly enjoy this masterpiece. Then after that I'll check out the other two framework vids. After that I'll be free.
9:05am. That was fun. Now let me go for the OVA. I have no idea where this time went. Tog chapters are pretty long aren't they?
...Actually, let me start the lectures instead. I do not specifically feel like watching it right now. So I might as well get a head start on the day. I just want to see what the other two frameworks are about.
9:15am. https://youtu.be/sBws8MSXN7A?t=557
Since following along is so time consuming, I think I'll just watch this for 40m and make my decision then.
9:20am. Oh, before I start let me finally post that review.
During the first week, I managed to get the first half of [Spiral v0.2](https://github.com/mrakgr/The-Spiral-Language/tree/v0.2) into an usable state. If I only wanted a language that does partial evaluation that would be most of it done already, but I have quite a bit more left to go.
Surprisingly I am learning [webdev now](https://www.youtube.com/watch?v=0pThnRneDjw). Before I can begin work on the typechecker, I need to figure out how language servers work and as it turns out everything on the VS Code side has evolved from a direction I am not used to. I spent 10 days diving into the API jungle and looking into various .NET language plugins before realizing that I am not making much progress and switching gears. I need to do it from the ground up. So far I've been starting it from the other end, and it has lead to much wasted time and effort.
I've always thought that at the end of my journey I would have ended knowing everything programming-wise so I suspected I would have to touch this at some point, but the fact that I am starting to learn this now is definitely a surprise to me. I definitely did not think that giving my language editor support would lead to this. Still, even more than just learning servers, I feel like I can gain a lot from this.
In 2016, I put a lot of effort into learning how to make desktop GUIs, and even did a graphical poker game, but it was a huge disappointment because just how much effort GUIs take. Doing the game + RL agents was something like 500 LOC. The GUI actually added 1000 LOC to that which was ridiculous. In 2019 one of the reasons I gave Pharo a shot is to satisfy my craving for interactive experience, but I could not satisfy all my desires as I did not like the thought of having to implement Spiral in Pharo. Fundamentally Pharo did not sit right with me as I want to do programming in a statically typed functional language with great type inference much like F# rather than a primitive, dynamic OO one like Pharo. Having great UI support is one thing, but I really want static types with Hindley-Milner type inference when I am writing a 4.5k LOC language that I frequently modify.
It might turn out that where both desktop GUIs in .NET and Pharo failed me, the web will give me what I want. I'll write my language in F# as intended, have VS Code for editor support, and when I get back to having to chart progress for my RL agents or do a short game the web will be there as a separate service. Once Wasm gets GC I'll seriously consider changing my high level target from .NET to it. I can also take this as the first step in learning how to interface intelligent agents with the wider world.
Also somewhat ironically, learning webdev will definitely increase my employability. And just as good as they will be for just my own usability, being able to show other people graphical projects will definitely be a great advantage in garnering interest for them. The disadvantage of course is that I am going to have to spend a few months learning and exploring the field. But I wanted to be graphical from the start. That I got stuck to the command line with Spiral was an accident and a consequence of how poor desktop development is.
At the time of writing, I've just finished going through the **Essential Typescript** book (it is pretty good), and will move to learning HTML and CSS. After that I'll get back to studying ASP.NET. The short term goal is to learn how servers work from the ground up, and since their evolution is intimately tied with other parts of web development I can't really skip learning those other things. I've already tried that and got in trouble.
Did some modifications. At any rate, I finally posted this. Now the rest of the month awaits.
9:45am. https://youtu.be/sBws8MSXN7A?t=1555
I admit, I expected React to be worse than Vue, but it seems that the way it handles bindings is cleaner in it.
https://medium.com/@patricianeil248/react-vs-vue-which-is-better-for-2020-c484f22c67a8
It seems Reach is quite loved.
10am. https://youtu.be/sBws8MSXN7A?t=1965
Here comes bungling with bindings with React.
10:05am. https://youtu.be/sBws8MSXN7A?t=2263
Ok, I've seen enough. Vue and React seem to be on par. It seems that every framework would really be much better be replaced by a language.
I guess I'll check out Angular and then Svelte. After that I am done with this.
https://www.youtube.com/watch?v=uK2RnIzrQ0M
Oh he does have a short Svelte course.
10:35am. https://youtu.be/Fdf5aTYRW0E?t=1448
Let me take a short break here. I thought Angular would be useless, but this kind of pattern is something I've seen in ASP.NET, so learning this might familiarize myself to the MVC philosophy.
10:55am. It is always like this it seems. Let me resume. I want to put in another half an hour into the Angular course.
https://youtu.be/Fdf5aTYRW0E?t=1466
Him putting a type annotation on a constant is really an obvious tell that he does not have any experience with static languages.
11:15am. Ok, I've seen enough of Angular to make a judgment. I thought Vue would be a clear winner, but from what I've seen, all 3 are evenly matched as frameworks.
I'd go with Vue if I had to, but not because I think the rest are worse, but just because I studied it properly.
Let me watch the Svelte crash course. It is only 30m, so I have enough time to fit it in before breakfast.
https://youtu.be/uK2RnIzrQ0M?t=105
This example is actually very nice.
11:25am. https://youtu.be/uK2RnIzrQ0M?t=542
Actually, I had no idea it was possible to move paragraphs like this with Alt+Up/Down. Or that one could just write .container and Emmett would complete on its own.
Wow, you do learn something every day. I am going to be using this. This is just like learning about renaming after 4 years as a programmer.
11:30am. https://youtu.be/uK2RnIzrQ0M?t=645
This is most impressive. Yeah, Svelte is a step up from either of the big 3. I don't think I'll find TS support for it, but I do not think I'll need it.
11:35am. https://youtu.be/uK2RnIzrQ0M?t=925
This is extremely clean. I really like this.
12pm. It is especially noteworthy that unlike Elm and the other frameworks it does not have a virtual DOM. This is really my kind of thing. Maybe I will even study how this works under the hood, but I might be able to get a sense for this just by looking at the output.
Something like this what I would have very much liked to have for desktop UI programming. This is the nirvana that I've been seeking.
Ok...I said I would do Node.js, but there are a bunch of ASP.NET videos, including a 3:13h course just for beginners.
https://www.youtube.com/watch?v=C5cnZ-gZy2I Learn ASP.NET Core 3.1 - Full Course for Beginners [Tutorial]
Since I am not interested in Node.js, what I am going to do is go through this. Then maybe I'll have a look at the Node.js thing by Brad.
I am going to need focus in order to go through all of it. Maybe I'll have to split my effort across two days.
...Oh, the thing came out only last month. Great. That means it is up to date.
12:10pm. Let me stop here for the time being. Breakfast, Gup OVA, the good stuff.
Right now I feel like I am really on a roll. I do not feel completely confused like I was last month, and I am on a good course to do some real learning.
I am definitely going to get this thing in the bag. Then the world will be my oyster. I am going to complete Spiral and do the things I should be doing."
Level 2 Updates
Strengthed the design of some areas in level 2. It's much more interesting to play. Various fixes have been made. Also for the love of god dont merge out my changes
Created Text For URL [www.sowetanlive.co.za/news/south-africa/2020-03-02-his-baby-sister-will-grow-up-without-a-big-brother-says-family-of-murdered-tulbagh-boy-as-neighbour-arrested/]
Python: Clean up six tests
We can't understand the real six.py
file, so we have some internal plumbing
that enables us to handle six anyway. While updating that, I had a hell of a lot
of trouble with these tests.
What we actually want, is to see that we can understand what the values imported
from six are (i.e., their points-to information). I added a few more, that I
think would be useful. If we can figure out all of these, I don't actually care
if we're doing it by understanding the real six.py
file, or by some internal
trick.
I verified that we don't get results with the real six.py
file by disabling
our internal tricks, and putting a copy of six.py just next to test.py.
We used to have an other file that would list all the properties we knew and their value, but that turned out to be a fragile and annoying test, since the results differed from which version of python you ran it with (3.5 vs 3.8) and which machine you ran it on (my machien vs jenkins). I don't care about the results in this file, and I can certainly not eyeball it to see if it's correct or not.
Adds new audio file to defines in ticker for round-end sounds.
hello ticker my old friend ive come to fuck with you again the memes to my mind, slowly creeping shitposts when i should probably be sleeping
and the question that was planted in my brain still remains
why the fuck is this in the /ticker/
this is a dumb fix, but i can tolerate it for now
The problem is that font width seems to work weird on Mac. This could be a bug in zsh or in kitty, I haven't really worked it out. Anyway, basically, when I get a fresh prompt after hitting enter, I get one space between teh prompt and cursor. However, if I go away and come back, the terminal gets redrawn with two spaces between the prompt and the command that was typod on the line.
This does not happen on Ubuntu. This did not happy on Mac with the previous clock emoji. The best fix will probably be to find a single-width clock emoji like the one I was using before that works on both Mac and Linux. The one I was using on Mac did not work on Linux. However, I can probably fix that by finding a font with the regular clock emoji I was using on Mac on Linux and then using kitty's symbol table config to remap that symbol into the Fira Code font on Linux.
Whee!
I write all this down here to help me remember when I come back to this later. Maybe I will even go back through the logs and read it. Or maybe I will fix it later today or tomorrow and won't need to.
Am I rambling? I feel like I'm rambling. I must really not want to do the task I'm supposed to do at work, huh? Uyup. Don't want to do it. I wonder what other productivity improvements I can make for myself instead of working...?
fuck my life changed front quite a lot also changed back not that much - reworked image generation
"1:40pm. The OVA was great as usual. It is time for chores, but let me read a bit of the recent PL sub threads first.
2:20pm. Done with chores. Let me rest just for a bit and then I will start that massive tutorial.
2:30pm. Let me finally start. Once I get through ASP, I can start taking things more seriously. I probably won't use ASP personally, but instead opt for custom servers + Svelte, but I'll see how things go.
Let me go through the first third to start things off.
https://svelte.dev/blog/svelte-3-rethinking-reactivity
I'll read this later. Just as I said I would start the video I am looking at the HN threads on Svelte.
2:50pm. https://youtu.be/C5cnZ-gZy2I?t=675
It is asking me to get SQL Server. Well fine.
Ugh, does it have to be 1.4Gb? Forget this. Let me see how far I can get without the SQL server. I do not want to wait for it to download, and waste my SSD space after that.
3:05pm. I am pausing the video and simply looking at the ASP.NET project files.
...I can do it. The .cshtml files feel a lot more alive to me now.
I actually know what most of those thing in it mean, and that really helps me not be overwhelmed by the noise. I really got a lot of use from those videos by Brad. Maybe I won't even need the one by this guy.
The HTML and CSS crash courses were definitely helpful, but so were the other videos as I can see a lot of the framework structure that I could not before.
3:10pm. Hmmm, actually I had not noticed the .cs
files associated to the .cshtml
ones before.
3:30pm.
@{
Layout = "_Layout";
}
I am doing some thinking on my own as that Indian guy is really dragging his feet. Maybe I should try a different video. But I'll persevere.
At any rate, what I am wondering here is why _Layout.cshtml
does not need an explicit path?
For some reason rather than Index.cshtml
being the start, it is _ViewStart.cshtml
and that one links directly to _Layout.cshtml
.
3:30pm. https://youtu.be/C5cnZ-gZy2I?t=1714
This guy has really been useless so far. I can go over each of the files and note the obvious myself. Let me skip to where he starts coding.
https://youtu.be/C5cnZ-gZy2I?t=3674
Ok, now he is talking. He is showing me how to set up the live server.
I've been wondering about this.
3:40pm. It does not automatically reload every time I hit save. Well, nevermind that for the time being. At least it recompiles automatically on reload and warms up after the first time. At the very least that will be useful.
3:50pm. https://youtu.be/C5cnZ-gZy2I?t=3863
Actually watching this guy type is useful on its own for me. I had no idea I could write prop
, tab it, and the IDE will create a property. Following the tutorial was really annoying as I had to write it all out by hand.
4pm. https://youtu.be/C5cnZ-gZy2I?t=4036
I'll have to get the SQL server. Let me get the express one. Maybe that won't be so heavy.
Ok, that one is only 250mb.
Ah, but the studio is 500mb.
No doubt, I'll be forced to get the dev version of the server as well. Well, I'll see how this goes.
What do I do here?
I might as well watch anime while I wait for this to install.
4:05pm. Let me take a look at that Razor tutorial that gave me trouble last time. I really do not feel like wasting my time with fiction now that I am in the swing of things.
Yeah, the tutorial here is confusing. It is not just me. The tutorial is clearly skipping explanatory steps.
What is Blazor? The docs do not even explain it, though the code here mixes HTML and C# much like Svelte.
https://docs.microsoft.com/hr-hr/aspnet/core/blazor/?view=aspnetcore-3.1
This is actually pretty cool. This is the same functionality as Svelte except in .NET.
Am I looking at the wrong part of the documentation something. Since Tutorials are the first segment, I went with that Razor thing. Let me look at it more closely.
https://docs.microsoft.com/hr-hr/learn/modules/create-razor-pages-aspnet-core/?view=aspnetcore-3.1
Maybe I should have started here.
4:30pm. https://docs.microsoft.com/hr-hr/aspnet/core/mvc/views/razor?view=aspnetcore-3.1
If embedding C# into html is so effortless, why the hell is everything spread out so much?
https://docs.microsoft.com/hr-hr/aspnet/core/signalr/introduction?view=aspnetcore-3.1
All this stuff sounds like it would be really useful for intelligent agents having to interface with the rest of the infrastructure.
This seems like the place I should have started from. Blazor is where I should have begun. One thing I still do not understand is the overall project structure. This is something that is transparent in JS land, but here I am not exactly sure what order the C# compiler is processing things in. Is it doing something special under the hood for those .cshtml files? I have no idea.
At any rate, I am massively distracted right now.
I should be studying that Razor project video.
Let me get back to it.
I have the express server installed. I'll hold on on installing that studio for it.
4:45pm. Uf, the string is completely different from what that guy showed. My own has local host, but the video shows something local. Probably because I was lazy and got the express version.
You know what, fuck this. I was into it before, but having to install these huge packages killed my momentum completely. There is that 1h video on MVC specifically. I might want to check that out instead.
I think if I want to go through the ASP video properly, I should go through his SQL video first.
4:50pm. Let me take a look at the ASP.NET book again. The one with the Tic Tac Toe app. I want to gauge how much more sense it makes to me right now.
5pm. Well, it definitely makes more sense, but now at least I have enough prerequisite knowledge to know where I stand.
The book is trash, much like the first tutorial.
That is what the problem is here. Ok, here is the plan. Let me get the dev server. I already wasted 1.5 Gb by installing express as it is so I might as well go the whole length.
I want to uninstall Express, but there is so much SQL stuff in the program manager that I am not sure there is any point in that.
5:05pm. Oh, it put it straight into "C:\SQL2019". Let me overwrite this.
Now, let me think, what is next? I spent 2.5 hours spinning my wheels. I will do as the guy says and check out his SQL video. Than I'll go through the ASP.NET video. And hopefully that will be enough as an intro. Then I'll check out Blazor.
I was prepared to learn ASP, but I wasn't planning on taking a detour to databases here. Let me do that.
https://www.youtube.com/watch?v=HXV3zeQKqGY
Fuck, this thing is 4h long. Ah, let me take a look. No doubt Brad has a shorter video on this, so I'll switch to that.
https://youtu.be/9ylj9NR0Lcg?list=PLillGF-RfqbYeckUaD1z6nviTp31GLTH8
Let me go for this. I do not have the patience for 4h of SQL.
5:20pm. Yeah, I know I am being a fool. Has there been even a single case of me being stubborn with installation instructions that paid off well for me?
I should have gotten the whole thing ASAP and saved myself some time.
Well, let me go through the MySQL vid and then I'll call it a day.
5:35pm. Wow, there is a shitload of stuff on Blazor on Youtube. Much more than I found using a search for ASP.NET. MS is really going all out on this - as it should.
5:40pm. https://youtu.be/9ylj9NR0Lcg?t=979 MySQL Crash Course | Learn SQL
Let me pause this thing here. Things are a bit messed up as he is going into the examples and I do not have anything to follow him in. Also Blazor lit my bulb.
If there is that much Blazor material, I can just skip learning the legacy ASP.NET stuff and just go to it directly.
Right now the MS SQL dev server is only 1/1.4Gb downloaded and will take a bit more until it is done.
I definitely won't feel like resuming the ASP lecture past 6pm. So let me check out some of the vids on it.
6pm. https://youtu.be/Khn7sDUSEJM?t=701
This is extremely cool. This pretty much kills any reason to ever develop for desktop. I wish I had this 4 years ago, it would have saved me quite a bit of time.
6:25pm. Done with lunch. Let me pause the video at that time.
Today was much messier than I expected as I have like 3 separate threads open, but I am going to work on closing them tomorrow. First I am going to finish the video above, then go through the MySQL crash course, then the ASP.NET video.
Now that I have the MS SQL dev server, hopefully I will be able to follow the MySQL examples along. I might have to look at the docs in order to triangulate between the different versions, but it should not be too big of a deal.
This is not some complicated web framework, but merely a big table. How hard can it be?
6:30pm. Now, some guy in that recent Tog thread let it slip where the free pass chapters are at so let me go for that. Sweet."
Reverts Space Suit Heaters (#77)
-
Update README.md
-
Reverts Shitty Spacesuits
-
Fucking conflicts
-
Delete README.md
-
Delete README.md
-
bloody hell trabis
-
Update _spacesuits.dm
Co-authored-by: Mark Suckerberg [email protected]
History was lost, here are the commit messages.
Commits on Dec 26, 2019
Fixed snowdin door Added a dialog hint about the need to open sans' door Fixed debug mode enabling Updated filesystem.exists() with .getInfo() -for compatibility with LOVE version 11.3
Commits on Dec 27, 2019
Fixed indentation
conf.lua now states LOVE version 11.3
Added a color-coded hitbox debug display (press V to activate) Fixed a minor OOB glitch in ps_house
Animation changes for Sans +he always starts walking with his left leg +the animation resets when he stops
Fixed room fade-in/out transitions (purely visual effect) Upgraded ALL colors from 0-255 to 0-1 component range
Commits on Dec 29, 2019
Made all static parts of Snowdin (most of it) +descriptions (starring Sans a lot) +not the NPCs Prevented camera scrolling off the map +it just stops scrolling upon reaching the borders Debug also displays Sans' position +useful to create elements
Commits on Dec 30, 2019
Added room foreground layer (i.e. above Sans) +stored as an extra layer in the .xcf file ++exported by disabling the bg layer +is a separate image/sheet that is drawn with :fgdraw() ++an animation object is shared between bg and fg ++it will return immediately if both fg_image and fg_sheet are nil +supports animation +snowtown uses it ++has some collider changes to allow going behind elements
I added myself (including date) on the list in LICENSE
Commits on Dec 31, 2019
The dialog box now appears at the bottom if Sans is in the screen's top half +now a local "coords" is used as a reference point for dialog contents ++coords now allows for moving the dialog all at once
Commits on Jan 9, 2020
The snowdin entrance now has collision (& also voice upgraded) Voice sounds now seek back to 0 if the current symbol is silent The "joke" and wink+shrug animations are now recognized in sans.anim +will need to adjust them/the grid because the spritesheet is misspaced A GIMP editor .xcf file for Sans' room (for editing)
Commits on Feb 16, 2020
Added in-game menu module, displays sans' stats & name (CryptOfTomorrow font)
- uses the select sound when opened
- copied locking code from ui/dialog Added the stat system for sans (LOVE, EXP, HP, GOLD) Added the "events" table storing all events happened
- demonstrated with the couch in the house, gives 20G only once if checked
-
- different text if checked after collecting Stats & events are saved, and cleared on RESET "oncheck" no longer cancels text, both can be present
path: change win32 semantics for joining drive-relative paths
win32 is a cursed abomination which has "drive letters" at the root of the filesystem namespace for no reason. This requires special handling beyond tolerating the idiotic "" path separator.
Even more cursed is the fact that a path starting with a drive letter can be a relative path. For example, "c:billsucks" is actually a relative path to the current working directory of the C drive. So for example if the current working directory is "c:/windowsphone", then "c:billsucks" would reference "c:/windowsphone/billsucks".
You should realize that win32 is a ridiculous satanic trash fire by the point you realize that win32 has at least 26 current working directories, one for each drive letter.
Anyway, the actual problem is that mpv's mp_path_join() function would return a relative path if an absolute relative path is joined with a drive-relative path. This should never happen; I bet it breaks a lot of assumptions (maybe even some security or safety relevant ones, but probably not).
Since relative drive paths are such a fucked up shit idea, don't try to support them "properly", and just solve the problem at hand. The solution produces a path that should be invalid on win32.
Joining two relative paths still behaves the same; this is probably OK (maybe).
The change isn't very minimal due to me rewriting parts of it without strict need, but I don't care.
Note that the Python os.path.join() function (after which the mpv function was apparently modeled) has the same problem.
lua: fix highly security relevant arbitrary code execution bug
It appears Lua's package paths try to load .lua files from the current working directory. Not only that, but also shared libraries.
WHAT THE FUCK IS WHOEVER IS RESPONSIBLE FOR THIS FUCKING DOING?
mpv isn't setting this package path; currently it's only extending it. In any sane world, this wouldn't be a default. Most programs use essentially random working directories and don't change it.
I cannot comprehend what bullshit about "convenience" or whatever made them do something this broken and dangerous. Thousands of programs using Lua out there will try to randomly load random code from random directories.
In mpv's case, this is so security relevant, because mpv is normally used from the command line, and you will most likely actually change into your media directory or whatever with the shell, and play a file from there. No, you don't want to load a (probably downloaded) shared library from this directory if a script try to load a system lib with the same name or so.
I'm not sure why LUA_PATH_DEFAULT in luaconf.h (both upstream and the Debian version) put "./?.lua" at the end, but in any case, trying to load a module that doesn't exist nicely lists all package paths in order, and confirms it tries to load files from the working directory first (anyone can try this). Even if it didn't, this would be problematic at best.
Note that scripts are not sandboxed. They're allowed to load system libraries, which is also why we want to keep the non-idiotic parts of the package paths.
Attempt to fix this by filtering out relative paths. This is a bit fragile and not very great for something security related, but probably the best we can do without having to make assumptions about the target system file system layout. Also, someone else can fix this for Windows.
Also replace ":" with ";" (for the extra path). On a side note, this extra path addition is just in this function out of laziness, since I'd rather not have 2 functions with edit the package path.
mpv in default configuration (i.e. no external scripts) is probably not affected. All builtin scripts only "require" preloaded modules, which, in a stroke of genius by the Lua developers, are highest priority in the load order. Otherwise, enjoy your semi-remote code execution bug.
Completely unrelated this, I'm open for scripting languages and especially implementations which are all around better than Lua, and are suited for low footprint embedding.
scripting: load scripts from directories
The intention is to provide a slightly nicer way to distribute scripts. For example, you could put multiple source files into the directory, and then import them from the actual script file (this is still unimplemented).
At first I wanted to require a config file (because you need to know at least which scripting backend it should use). This wouldn't have been too hard (could have reused/abused the mpv config file parsing mechanism, and I already had working code that was just 2 function calls). But probably better to do this without new config files, because it might become a pain in the distant future.
So this just probes for "main.lua", "main.js", etc., until an existing file is found.
Another important change is that this skips all directory entries whose name starts with ".". This automatically excludes the "." and ".." special directories, and is probably useful to exclude random crap that might be lying around in the directory (such as editor temporary files, or OSX, in its usual hrmful, annoying, and idiotic modus operandi, sharting all over any directories opened by "Finder").
Although the changelog mentions the docs, they're added only in a later commit.
big fucking push full of spaghetti code fuck you
K so this adds files for da boss fight, adds combat functionality better
Created Text For URL [www.heraldlive.co.za/news/2020-03-02-his-baby-sister-will-grow-up-without-a-big-brother-says-family-of-murdered-tulbagh-boy-as-neighbour-arrested/]
about.md: unmention perfectionism, clocks, haste
Why?
Because by some people's standards, I am a perfectionist; but by others' standards, I am careless. So, it seems misleading to describe myself as a "perfectionist" as though this were something certain.
(I try hard to act responsibly; to anticipate and minimise any negative impacts my actions could have. Being human, I sometimes fail. Each failure is a regret that I try never to forget. Those regrets guide me to avoid similar mistakes in future.)
Similarly, by some people's standards, I am cautious; but by others' standards, I am hasty. So, same applies as for perfectionism.
Finally, although clocks and constraints are sometimes helpful, sometimes they are not, and could even be counterproductive. (A good example in the wider world, about which I have read in the news, is Boeing's apparent attempt to build the 737 MAX 8 to an excessively tight time and money budget, at the expense of scrutiny and ultimately safety. This was a grievously false economy that contributed to the loss of hundreds of innocent lives; caused grief to the victims' family and friends; and disrupted thousands of travellers and hundreds of aviation industry workers.*) So, I do not want to be misread as advocating arbitrary "clocks and constraints" as a panacea.
- "Boeing responded with a rush program to re-engineer the 737 [to] give it some perceptible advantage over the A320Neo. The rush took five years to complete. Boeing called the result the Max. To keep costs down ... the redesign had to ... not be treated officially as a new airplane. [But] Boeing test pilots discovered that the Max had unusual stall characteristics... Some at Boeing argued for an aerodynamic fix, but the modifications would have been slow and expensive, and Boeing was in a hurry. Its solution was to create synthetic control forces by cooking up a new automated system known as the MCAS... Boeing convinced itself (and the F.A.A.) that there was no need to even introduce the MCAS to the airplane’s future pilots. The omission meant that the possibility of a false positive in cruising flight — a pushover occurring where it naturally would not — would likewise not be addressed. ... Inside the cockpit, none of the pilots knew any of this or had ever heard of the MCAS. [The MCAS caused severe pitch-down trim that lasted about] 10 seconds, then stopped for five seconds, then started again. The pattern repeated and would have kept repeating to the limits of nose-down trim, an extreme imbalance never approached in regular flight. This is another of Boeing’s bewildering failures — the implementation of an automated nose-down input ... allowed to keep at it again and again while throwing the airplane wildly out of trim. No one I spoke to from Boeing ... could explain the reasoning... The MCAS as it was designed and implemented was a big mistake."
- Langewiesche, William. 2019. What Really Brought Down the Boeing 737 Max? New York Times. https://www.nytimes.com/2019/09/18/magazine/boeing-737-max-crashes.html
Re-implement unsafe coercions in terms of unsafe equality proofs
(Commit message written by Omer, most of the code is written by Simon and Richard)
See Note [Implementing unsafeCoerce] for how unsafe equality proofs and the new unsafeCoerce# are implemented.
New notes added:
- [Checking for levity polymorphism] in CoreLint.hs
- [Implementing unsafeCoerce] in base/Unsafe/Coerce.hs
- [Patching magic definitions] in Desugar.hs
- [Wiring in unsafeCoerce#] in Desugar.hs
Only breaking change in this patch is unsafeCoerce# is not exported from GHC.Exts, instead of GHC.Prim.
Fixes #17443 Fixes #16893
Program Size Allocs Instrs Reads Writes
CS -0.1% 0.0% -0.0% -0.0% -0.0%
CSD -0.1% 0.0% -0.0% -0.0% -0.0%
FS -0.1% 0.0% -0.0% -0.0% -0.0%
S -0.1% 0.0% -0.0% -0.0% -0.0%
VS -0.1% 0.0% -0.0% -0.0% -0.0%
VSD -0.1% 0.0% -0.0% -0.0% -0.1%
VSM -0.1% 0.0% -0.0% -0.0% -0.0%
anna -0.0% 0.0% -0.0% -0.0% -0.0%
ansi -0.1% 0.0% -0.0% -0.0% -0.0%
atom -0.1% 0.0% -0.0% -0.0% -0.0%
awards -0.1% 0.0% -0.0% -0.0% -0.0%
banner -0.1% 0.0% -0.0% -0.0% -0.0%
bernouilli -0.1% 0.0% -0.0% -0.0% -0.0%
binary-trees -0.1% 0.0% -0.0% -0.0% -0.0% boyer -0.1% 0.0% -0.0% -0.0% -0.0% boyer2 -0.1% 0.0% -0.0% -0.0% -0.0% bspt -0.1% 0.0% -0.0% -0.0% -0.0% cacheprof -0.1% 0.0% -0.0% -0.0% -0.0% calendar -0.1% 0.0% -0.0% -0.0% -0.0% cichelli -0.1% 0.0% -0.0% -0.0% -0.0% circsim -0.1% 0.0% -0.0% -0.0% -0.0% clausify -0.1% 0.0% -0.0% -0.0% -0.0% comp_lab_zift -0.1% 0.0% -0.0% -0.0% -0.0% compress -0.1% 0.0% -0.0% -0.0% -0.0% compress2 -0.1% 0.0% -0.0% -0.0% -0.0% constraints -0.1% 0.0% -0.0% -0.0% -0.0% cryptarithm1 -0.1% 0.0% -0.0% -0.0% -0.0% cryptarithm2 -0.1% 0.0% -0.0% -0.0% -0.0% cse -0.1% 0.0% -0.0% -0.0% -0.0% digits-of-e1 -0.1% 0.0% -0.0% -0.0% -0.0% digits-of-e2 -0.1% 0.0% -0.0% -0.0% -0.0% dom-lt -0.1% 0.0% -0.0% -0.0% -0.0% eliza -0.1% 0.0% -0.0% -0.0% -0.0% event -0.1% 0.0% -0.0% -0.0% -0.0% exact-reals -0.1% 0.0% -0.0% -0.0% -0.0% exp3_8 -0.1% 0.0% -0.0% -0.0% -0.0% expert -0.1% 0.0% -0.0% -0.0% -0.0% fannkuch-redux -0.1% 0.0% -0.0% -0.0% -0.0% fasta -0.1% 0.0% -0.5% -0.3% -0.4% fem -0.1% 0.0% -0.0% -0.0% -0.0% fft -0.1% 0.0% -0.0% -0.0% -0.0% fft2 -0.1% 0.0% -0.0% -0.0% -0.0% fibheaps -0.1% 0.0% -0.0% -0.0% -0.0% fish -0.1% 0.0% -0.0% -0.0% -0.0% fluid -0.1% 0.0% -0.0% -0.0% -0.0% fulsom -0.1% 0.0% +0.0% +0.0% +0.0% gamteb -0.1% 0.0% -0.0% -0.0% -0.0% gcd -0.1% 0.0% -0.0% -0.0% -0.0% gen_regexps -0.1% 0.0% -0.0% -0.0% -0.0% genfft -0.1% 0.0% -0.0% -0.0% -0.0% gg -0.1% 0.0% -0.0% -0.0% -0.0% grep -0.1% 0.0% -0.0% -0.0% -0.0% hidden -0.1% 0.0% -0.0% -0.0% -0.0% hpg -0.1% 0.0% -0.0% -0.0% -0.0% ida -0.1% 0.0% -0.0% -0.0% -0.0% infer -0.1% 0.0% -0.0% -0.0% -0.0% integer -0.1% 0.0% -0.0% -0.0% -0.0% integrate -0.1% 0.0% -0.0% -0.0% -0.0% k-nucleotide -0.1% 0.0% -0.0% -0.0% -0.0% kahan -0.1% 0.0% -0.0% -0.0% -0.0% knights -0.1% 0.0% -0.0% -0.0% -0.0% lambda -0.1% 0.0% -0.0% -0.0% -0.0% last-piece -0.1% 0.0% -0.0% -0.0% -0.0% lcss -0.1% 0.0% -0.0% -0.0% -0.0% life -0.1% 0.0% -0.0% -0.0% -0.0% lift -0.1% 0.0% -0.0% -0.0% -0.0% linear -0.1% 0.0% -0.0% -0.0% -0.0% listcompr -0.1% 0.0% -0.0% -0.0% -0.0% listcopy -0.1% 0.0% -0.0% -0.0% -0.0% maillist -0.1% 0.0% -0.0% -0.0% -0.0% mandel -0.1% 0.0% -0.0% -0.0% -0.0% mandel2 -0.1% 0.0% -0.0% -0.0% -0.0% mate -0.1% 0.0% -0.0% -0.0% -0.0% minimax -0.1% 0.0% -0.0% -0.0% -0.0% mkhprog -0.1% 0.0% -0.0% -0.0% -0.0% multiplier -0.1% 0.0% -0.0% -0.0% -0.0% n-body -0.1% 0.0% -0.0% -0.0% -0.0% nucleic2 -0.1% 0.0% -0.0% -0.0% -0.0% para -0.1% 0.0% -0.0% -0.0% -0.0% paraffins -0.1% 0.0% -0.0% -0.0% -0.0% parser -0.1% 0.0% -0.0% -0.0% -0.0% parstof -0.1% 0.0% -0.0% -0.0% -0.0% pic -0.1% 0.0% -0.0% -0.0% -0.0% pidigits -0.1% 0.0% -0.0% -0.0% -0.0% power -0.1% 0.0% -0.0% -0.0% -0.0% pretty -0.1% 0.0% -0.1% -0.1% -0.1% primes -0.1% 0.0% -0.0% -0.0% -0.0% primetest -0.1% 0.0% -0.0% -0.0% -0.0% prolog -0.1% 0.0% -0.0% -0.0% -0.0% puzzle -0.1% 0.0% -0.0% -0.0% -0.0% queens -0.1% 0.0% -0.0% -0.0% -0.0% reptile -0.1% 0.0% -0.0% -0.0% -0.0% reverse-complem -0.1% 0.0% -0.0% -0.0% -0.0% rewrite -0.1% 0.0% -0.0% -0.0% -0.0% rfib -0.1% 0.0% -0.0% -0.0% -0.0% rsa -0.1% 0.0% -0.0% -0.0% -0.0% scc -0.1% 0.0% -0.1% -0.1% -0.1% sched -0.1% 0.0% -0.0% -0.0% -0.0% scs -0.1% 0.0% -0.0% -0.0% -0.0% simple -0.1% 0.0% -0.0% -0.0% -0.0% solid -0.1% 0.0% -0.0% -0.0% -0.0% sorting -0.1% 0.0% -0.0% -0.0% -0.0% spectral-norm -0.1% 0.0% -0.0% -0.0% -0.0% sphere -0.1% 0.0% -0.0% -0.0% -0.0% symalg -0.1% 0.0% -0.0% -0.0% -0.0% tak -0.1% 0.0% -0.0% -0.0% -0.0% transform -0.1% 0.0% -0.0% -0.0% -0.0% treejoin -0.1% 0.0% -0.0% -0.0% -0.0% typecheck -0.1% 0.0% -0.0% -0.0% -0.0% veritas -0.0% 0.0% -0.0% -0.0% -0.0% wang -0.1% 0.0% -0.0% -0.0% -0.0% wave4main -0.1% 0.0% -0.0% -0.0% -0.0% wheel-sieve1 -0.1% 0.0% -0.0% -0.0% -0.0% wheel-sieve2 -0.1% 0.0% -0.0% -0.0% -0.0% x2n1 -0.1% 0.0% -0.0% -0.0% -0.0%
Min -0.1% 0.0% -0.5% -0.3% -0.4%
Max -0.0% 0.0% +0.0% +0.0% +0.0%
Geometric Mean -0.1% -0.0% -0.0% -0.0% -0.0%
- break006 is marked as broken, see #17833
- The compiler allocates less when building T14683 (an unsafeCoerce#- heavy happy-generated code) on 64-platforms. Allocates more on 32-bit platforms.
- Rest of the increases are tiny amounts (still enough to pass the threshold) in micro-benchmarks. I briefly looked at each one in a profiling build: most of the increased allocations seem to be because of random changes in the generated code.
Metric Decrease: T14683
Metric Increase: T12150 T12234 T12425 T13035 T14683 T5837 T6048
Co-Authored-By: Richard Eisenberg [email protected] Co-Authored-By: Ömer Sinan Ağacan [email protected]
WIP: Restabilized but not 100% completely tested @encapsule/holarchy CellModel ES6 class. I started serious testing on Friday. Got mired in corner cases yesterday. Rewrote the graph merge algorithm after sleeping this morning. And, now all the vectors I've completed so far as passing. Still need to get all the corner case tests done for CellModel. When you look at the implementation you'll begin to understand why I do not think it's a great thing for developers to try to configure an ObservableProcessController by hand... In my head this evolving into something just... well, in my mind's eye what I have always dreamed about. In code and tests, it's actually getting pretty close...
fix
According to all known laws of aviation, there is no way a bee should be able to fly. Its wings are too small to get its fat little body off the ground. The bee, of course, flies anyway because bees don't care what humans think is impossible. Yellow, black. Yellow, black. Yellow, black. Yellow, black. Ooh, black and yellow! Let's shake it up a little. Barry! Breakfast is ready! Ooming! Hang on a second. Hello? - Barry? - Adam? - Oan you believe this is happening? - I can't. I'll pick you up. Looking sharp. Use the stairs. Your father paid good money for those. Sorry. I'm excited. Here's the graduate. We're very proud of you, son. A perfect report card, all B's. Very proud. Ma! I got a thing going here. - You got lint on your fuzz. - Ow! That's me! - Wave to us! We'll be in row 118,000. - Bye! Barry, I told you, stop flying in the house! - Hey, Adam. - Hey, Barry. - Is that fuzz gel? - A little. Special day, graduation. Never thought I'd make it. Three days grade school, three days high school. Those were awkward. Three days college. I'm glad I took a day and hitchhiked around the hive. You did come back different. - Hi, Barry. - Artie, growing a mustache? Looks good. - Hear about Frankie? - Yeah. - You going to the funeral? - No, I'm not going. Everybody knows, sting someone, you die. Don't waste it on a squirrel. Such a hothead. I guess he could have just gotten out of the way. I love this incorporating an amusement park into our day. That's why we don't need vacations. Boy, quite a bit of pomp... under the circumstances. - Well, Adam, today we are men. - We are! - Bee-men. - Amen! Hallelujah! Students, faculty, distinguished bees, please welcome Dean Buzzwell. Welcome, New Hive Oity graduating class of... ...9:15. That concludes our ceremonies. And begins your career at Honex Industries! Will we pick ourjob today? I heard it's just orientation. Heads up! Here we go. Keep your hands and antennas inside the tram at all times. - Wonder what it'll be like? - A little scary. Welcome to Honex, a division of Honesco and a part of the Hexagon Group. This is it! Wow. Wow. We know that you, as a bee, have worked your whole life to get to the point where you can work for your whole life. Honey begins when our valiant Pollen Jocks bring the nectar to the hive. Our top-secret formula is automatically color-corrected, scent-adjusted and bubble-contoured into this soothing sweet syrup with its distinctive golden glow you know as... Honey! - That girl was hot. - She's my cousin! - She is? - Yes, we're all cousins. - Right. You're right. - At Honex, we constantly strive to improve every aspect of bee existence. These bees are stress-testing a new helmet technology. - What do you think he makes? - Not enough. Here we have our latest advancement, the Krelman. - What does that do? - Oatches that little strand of honey that hangs after you pour it. Saves us millions. Oan anyone work on the Krelman? Of course. Most bee jobs are small ones. But bees know that every small job, if it's done well, means a lot. But choose carefully because you'll stay in the job you pick for the rest of your life. The same job the rest of your life? I didn't know that. What's the difference? You'll be happy to know that bees, as a species, haven't had one day off in 27 million years. So you'll just work us to death? We'll sure try. Wow! That blew my mind! "What's the difference?" How can you say that? One job forever? That's an insane choice to have to make. I'm relieved. Now we only have to make one decision in life. But, Adam, how could they never have told us that? Why would you question anything? We're bees. We're the most perfectly functioning society on Earth. You ever think maybe things work a little too well here? Like what? Give me one example. I don't know. But you know what I'm talking about. Please clear the gate. Royal Nectar Force on approach. Wait a second. Oheck it out. - Hey, those are Pollen Jocks! - Wow. I've never seen them this close. They know what it's like outside the hive. Yeah, but some don't come back. - Hey, Jocks! - Hi, Jocks! You guys did great! You're monsters! You're sky freaks! I love it! I love it! - I wonder where they were. - I don't know. Their day's not planned. Outside the hive, flying who knows where, doing who knows what. You can'tjust decide to be a Pollen Jock. You have to be bred for that. Right. Look. That's more pollen than you and I will see in a lifetime. It's just a status symbol. Bees make too much of it. Perhaps. Unless you're wearing it and the ladies see you wearing it. Those ladies? Aren't they our cousins too? Distant. Distant. Look at these two. - Oouple of Hive Harrys. - Let's have fun with them. It must be dangerous being a Pollen Jock. Yeah. Once a bear pinned me against a mushroom! He had a paw on my throat, and with the other, he was slapping me! - Oh, my! - I never thought I'd knock him out. What were you doing during this? Trying to alert the authorities. I can autograph that. A little gusty out there today, wasn't it, comrades? Yeah. Gusty. We're hitting a sunflower patch six miles from here tomorrow. - Six miles, huh? - Barry! A puddle jump for us, but maybe you're not up for it. - Maybe I am. - You are not! We're going 0900 at J-Gate. What do you think, buzzy-boy? Are you bee enough? I might be. It all depends on what 0900 means. Hey, Honex! Dad, you surprised me. You decide what you're interested in? - Well, there's a lot of choices. - But you only get one. Do you ever get bored doing the same job every day? Son, let me tell you about stirring. You grab that stick, and you just move it around, and you stir it around. You get yourself into a rhythm. It's a beautiful thing. You know, Dad, the more I think about it, maybe the honey field just isn't right for me. You were thinking of what, making balloon animals? That's a bad job for a guy with a stinger. Janet, your son's not sure he wants to go into honey! - Barry, you are so funny sometimes. - I'm not trying to be funny. You're not funny! You're going into honey. Our son, the stirrer! - You're gonna be a stirrer? - No one's listening to me! Wait till you see the sticks I have. I could say anything right now. I'm gonna get an ant tattoo! Let's open some honey and celebrate! Maybe I'll pierce my thorax. Shave my antennae. Shack up with a grasshopper. Get a gold tooth and call everybody "dawg"! I'm so proud. - We're starting work today! - Today's the day. Oome on! All the good jobs will be gone. Yeah, right. Pollen counting, stunt bee, pouring, stirrer, front desk, hair removal... - Is it still available? - Hang on. Two left! One of them's yours! Oongratulations! Step to the side. - What'd you get? - Picking crud out. Stellar! Wow! Oouple of newbies? Yes, sir! Our first day! We are ready! Make your choice. - You want to go first? - No, you go. Oh, my. What's available? Restroom attendant's open, not for the reason you think. - Any chance of getting the Krelman? - Sure, you're on. I'm sorry, the Krelman just closed out. Wax monkey's always open. The Krelman opened up again. What happened? A bee died. Makes an opening. See? He's dead. Another dead one. Deady. Deadified. Two more dead. Dead from the neck up. Dead from the neck down. That's life! Oh, this is so hard! Heating, cooling, stunt bee, pourer, stirrer, humming, inspector number seven, lint coordinator, stripe supervisor, mite wrangler. Barry, what do you think I should... Barry? Barry! All right, we've got the sunflower patch in quadrant nine... What happened to you? Where are you? - I'm going out. - Out? Out where? - Out there. - Oh, no! I have to, before I go to work for the rest of my life. You're gonna die! You're crazy! Hello? Another call coming in. If anyone's feeling brave, there's a Korean deli on 83rd that gets their roses today. Hey, guys. - Look at that. - Isn't that the kid we saw yesterday? Hold it, son, flight deck's restricted. It's OK, Lou. We're gonna take him up. Really? Feeling lucky, are you? Sign here, here. Just initial that. - Thank you. - OK. You got a rain advisory today, and as you all know, bees cannot fly in rain. So be careful. As always, watch your brooms, hockey sticks, dogs, birds, bears and bats. Also, I got a couple of reports of root beer being poured on us. Murphy's in a home because of it, babbling like a cicada! - That's awful. - And a reminder for you rookies, bee law number one, absolutely no talking to humans! All right, launch positions! Buzz, buzz, buzz, buzz! Buzz, buzz, buzz, buzz! Buzz, buzz, buzz, buzz! Black and yellow! Hello! You ready for this, hot shot? Yeah. Yeah, bring it on. Wind, check. - Antennae, check. - Nectar pack, check. - Wings, check. - Stinger, check. Scared out of my shorts, check. OK, ladies, let's move it out! Pound those petunias, you striped stem-suckers! All of you, drain those flowers! Wow! I'm out! I can't believe I'm out! So blue. I feel so fast and free! Box kite! Wow! Flowers! This is Blue Leader. We have roses visual. Bring it around 30 degrees and hold. Roses! 30 degrees, roger. Bringing it around. Stand to the side, kid. It's got a bit of a kick. That is one nectar collector! - Ever see pollination up close? - No, sir. I pick up some pollen here, sprinkle it over here. Maybe a dash over there, a pinch on that one. See that? It's a little bit of magic. That's amazing. Why do we do that? That's pollen power. More pollen, more flowers, more nectar, more honey for us. Oool. I'm picking up a lot of bright yellow. Oould be daisies. Don't we need those? Oopy that visual. Wait. One of these flowers seems to be on the move. Say again? You're reporting a moving flower? Affirmative. That was on the line! This is the coolest. What is it? I don't know, but I'm loving this color. It smells good. Not like a flower, but I like it. Yeah, fuzzy. Ohemical-y. Oareful, guys. It's a little grabby. My sweet lord of bees! Oandy-brain, get off there! Problem! - Guys! - This could be bad. Affirmative. Very close. Gonna hurt. Mama's little boy. You are way out of position, rookie! Ooming in at you like a missile! Help me! I don't think these are flowers. - Should we tell him? - I think he knows. What is this?! Match point! You can start packing up, honey, because you're about to eat it! Yowser! Gross. There's a bee in the car! - Do something! - I'm driving! - Hi, bee. - He's back here! He's going to sting me! Nobody move. If you don't move, he won't sting you. Freeze! He blinked! Spray him, Granny! What are you doing?! Wow... the tension level out here is unbelievable. I gotta get home. Oan't fly in rain. Oan't fly in rain. Oan't fly in rain. Mayday! Mayday! Bee going down! Ken, could you close the window please? Ken, could you close the window please? Oheck out my new resume. I made it into a fold-out brochure. You see? Folds out. Oh, no. More humans. I don't need this. What was that? Maybe this time. This time. This time. This time! This time! This... Drapes! That is diabolical. It's fantastic. It's got all my special skills, even my top-ten favorite movies. What's number one? Star Wars? Nah, I don't go for that... ...kind of stuff. No wonder we shouldn't talk to them. They're out of their minds. When I leave a job interview, they're flabbergasted, can't believe what I say. There's the sun. Maybe that's a way out. I don't remember the sun having a big 75 on it. I predicted global warming. I could feel it getting hotter. At first I thought it was just me. Wait! Stop! Bee! Stand back. These are winter boots. Wait! Don't kill him! You know I'm allergic to them! This thing could kill me! Why does his life have less value than yours? Why does his life have any less value than mine? Is that your statement? I'm just saying all life has value. You don't know what he's capable of feeling. My brochure! There you go, little guy. I'm not scared of him. It's an allergic thing. Put that on your resume brochure. My whole face could puff up. Make it one of your special skills. Knocking someone out is also a special skill. Right. Bye, Vanessa. Thanks. - Vanessa, next week? Yogurt night? - Sure, Ken. You know, whatever. - You could put carob chips on there. - Bye. - Supposed to be less calories. - Bye. I gotta say something. She saved my life. I gotta say something. All right, here it goes. Nah. What would I say? I could really get in trouble. It's a bee law. You're not supposed to talk to a human. I can't believe I'm doing this. I've got to. Oh, I can't do it. Oome on! No. Yes. No. Do it. I can't. How should I start it? "You like jazz?" No, that's no good. Here she comes! Speak, you fool! Hi! I'm sorry. - You're talking. - Yes, I know. You're talking! I'm so sorry. No, it's OK. It's fine. I know I'm dreaming. But I don't recall going to bed. Well, I'm sure this is very disconcerting. This is a bit of a surprise to me. I mean, you're a bee! I am. And I'm not supposed to be doing this, but they were all trying to kill me. And if it wasn't for you... I had to thank you. It's just how I was raised. That was a little weird. - I'm talking with a bee. - Yeah. I'm talking to a bee. And the bee is talking to me! I just want to say I'm grateful. I'll leave now. - Wait! How did you learn to do that? - What? The talking thing. Same way you did, I guess. "Mama, Dada, honey." You pick it up. - That's very funny. - Yeah. Bees are funny. If we didn't laugh, we'd cry with what we have to deal with. Anyway... Oan I... ...get you something? - Like what? I don't know. I mean... I don't know. Ooffee? I don't want to put you out. It's no trouble. It takes two minutes. - It's just coffee. - I hate to impose. - Don't be ridiculous! - Actually, I would love a cup. Hey, you want rum cake? - I shouldn't. - Have some. - No, I can't. - Oome on! I'm trying to lose a couple micrograms. - Where? - These stripes don't help. You look great! I don't know if you know anything about fashion. Are you all right? No. He's making the tie in the cab as they're flying up Madison. He finally gets there. He runs up the steps into the church. The wedding is on. And he says, "Watermelon? I thought you said Guatemalan. Why would I marry a watermelon?" Is that a bee joke? That's the kind of stuff we do. Yeah, different. So, what are you gonna do, Barry? About work? I don't know. I want to do my part for the hive, but I can't do it the way they want. I know how you feel. - You do? - Sure. My parents wanted me to be a lawyer or a doctor, but I wanted to be a florist. - Really? - My only interest is flowers. Our new queen was just elected with that same campaign slogan. Anyway, if you look... There's my hive right there. See it? You're in Sheep Meadow! Yes! I'm right off the Turtle Pond! No way! I know that area. I lost a toe ring there once. - Why do girls put rings on their toes? - Why not? - It's like putting a hat on your knee. - Maybe I'll try that. - You all right, ma'am? - Oh, yeah. Fine. Just having two cups of coffee! Anyway, this has been great. Thanks for the coffee. Yeah, it's no trouble. Sorry I couldn't finish it. If I did, I'd be up the rest of my life. Are you...? Oan I take a piece of this with me? Sure! Here, have a crumb. - Thanks! - Yeah. All right. Well, then... I guess I'll see you around. Or not. OK, Barry. And thank you so much again... for before. Oh, that? That was nothing. Well, not nothing, but... Anyway... This can't possibly work. He's all set to go. We may as well try it. OK, Dave, pull the chute. - Sounds amazing. - It was amazing! It was the scariest, happiest moment of my life. Humans! I can't believe you were with humans! Giant, scary humans! What were they like? Huge and crazy. They talk crazy. They eat crazy giant things. They drive crazy. - Do they try and kill you, like on TV? - Some of them. But some of them don't. - How'd you get back? - Poodle. You did it, and I'm glad. You saw whatever you wanted to see. You had your "experience." Now you can pick out yourjob and be normal. - Well... - Well? Well, I met someone. You did? Was she Bee-ish? - A wasp?! Your parents will kill you! - No, no, no, not a wasp. - Spider? - I'm not attracted to spiders. I know it's the hottest thing, with the eight legs and all. I can't get by that face. So who is she? She's... human. No, no. That's a bee law. You wouldn't break a bee law. - Her name's Vanessa. - Oh, boy. She's so nice. And she's a florist! Oh, no! You're dating a human florist! We're not dating. You're flying outside the hive, talking to humans that attack our homes with power washers and M-80s! One-eighth a stick of dynamite! She saved my life! And she understands me. This is over! Eat this. This is not over! What was that? - They call it a crumb. - It was so stingin' stripey! And that's not what they eat. That's what falls off what they eat! - You know what a Oinnabon is? - No. It's bread and cinnamon and frosting. They heat it up... Sit down! ...really hot! - Listen to me! We are not them! We're us. There's us and there's them! Yes, but who can deny the heart that is yearning? There's no yearning. Stop yearning. Listen to me! You have got to start thinking bee, my friend. Thinking bee! - Thinking bee. - Thinking bee. Thinking bee! Thinking bee! Thinking bee! Thinking bee! There he is. He's in the pool. You know what your problem is, Barry? I gotta start thinking bee? How much longer will this go on? It's been three days! Why aren't you working? I've got a lot of big life decisions to think about. What life? You have no life! You have no job. You're barely a bee! Would it kill you to make a little honey? Barry, come out. Your father's talking to you. Martin, would you talk to him? Barry, I'm talking to you! You coming? Got everything? All set! Go ahead. I'll catch up. Don't be too long. Watch this! Vanessa! - We're still here. - I told you not to yell at him. He doesn't respond to yelling! - Then why yell at me? - Because you don't listen! I'm not listening to this. Sorry, I've gotta go. - Where are you going? - I'm meeting a friend. A girl? Is this why you can't decide? Bye. I just hope she's Bee-ish. They have a huge parade of flowers every year in Pasadena? To be in the Tournament of Roses, that's every florist's dream! Up on a float, surrounded by flowers, crowds cheering. A tournament. Do the roses compete in athletic events? No. All right, I've got one. How come you don't fly everywhere? It's exhausting. Why don't you run everywhere? It's faster. Yeah, OK, I see, I see. All right, your turn. TiVo. You can just freeze live TV? That's insane! You don't have that? We have Hivo, but it's a disease. It's a horrible, horrible disease. Oh, my. Dumb bees! You must want to sting all those jerks. We try not to sting. It's usually fatal for us. So you have to watch your temper. Very carefully. You kick a wall, take a walk, write an angry letter and throw it out. Work through it like any emotion: Anger, jealousy, lust. Oh, my goodness! Are you OK? Yeah. - What is wrong with you?! - It's a bug. He's not bothering anybody. Get out of here, you creep! What was that? A Pic 'N' Save circular? Yeah, it was. How did you know? It felt like about 10 pages. Seventy-five is pretty much our limit. You've really got that down to a science. - I lost a cousin to Italian Vogue. - I'll bet. What in the name of Mighty Hercules is this? How did this get here? Oute Bee, Golden Blossom, Ray Liotta Private Select? - Is he that actor? - I never heard of him. - Why is this here? - For people. We eat it. You don't have enough food of your own? - Well, yes. - How do you get it? - Bees make it. - I know who makes it! And it's hard to make it! There's heating, cooling, stirring. You need a whole Krelman thing! - It's organic. - It's our-ganic! It's just honey, Barry. Just what?! Bees don't know about this! This is stealing! A lot of stealing! You've taken our homes, schools, hospitals! This is all we have! And it's on sale?! I'm getting to the bottom of this. I'm getting to the bottom of all of this! Hey, Hector. - You almost done? - Almost. He is here. I sense it. Well, I guess I'll go home now and just leave this nice honey out, with no one around. You're busted, box boy! I knew I heard something. So you can talk! I can talk. And now you'll start talking! Where you getting the sweet stuff? Who's your supplier? I don't understand. I thought we were friends. The last thing we want to do is upset bees! You're too late! It's ours now! You, sir, have crossed the wrong sword! You, sir, will be lunch for my iguana, Ignacio! Where is the honey coming from? Tell me where! Honey Farms! It comes from Honey Farms! Orazy person! What horrible thing has happened here? These faces, they never knew what hit them. And now they're on the road to nowhere! Just keep still. What? You're not dead? Do I look dead? They will wipe anything that moves. Where you headed? To Honey Farms. I am onto something huge here. I'm going to Alaska. Moose blood, crazy stuff. Blows your head off! I'm going to Tacoma. - And you? - He really is dead. All right. Uh-oh! - What is that?! - Oh, no! - A wiper! Triple blade! - Triple blade? Jump on! It's your only chance, bee! Why does everything have to be so doggone clean?! How much do you people need to see?! Open your eyes! Stick your head out the window! From NPR News in Washington, I'm Oarl Kasell. But don't kill no more bugs! - Bee! - Moose blood guy!! - You hear something? - Like what? Like tiny screaming. Turn off the radio. Whassup, bee boy? Hey, Blood. Just a row of honey jars, as far as the eye could see. Wow! I assume wherever this truck goes is where they're getting it. I mean, that honey's ours. - Bees hang tight. - We're all jammed in. It's a close community. Not us, man. We on our own. Every mosquito on his own. - What if you get in trouble? - You a mosquito, you in trouble. Nobody likes us. They just smack. See a mosquito, smack, smack! At least you're out in the world. You must meet girls. Mosquito girls try to trade up, get with a moth, dragonfly. Mosquito girl don't want no mosquito. You got to be kidding me! Mooseblood's about to leave the building! So long, bee! - Hey, guys! - Mooseblood! I knew I'd catch y'all down here. Did you bring your crazy straw? We throw it in jars, slap a label on it, and it's pretty much pure profit. What is this place? A bee's got a brain the size of a pinhead. They are pinheads! Pinhead. - Oheck out the new smoker. - Oh, sweet. That's the one you want. The Thomas 3000! Smoker? Ninety puffs a minute, semi-automatic. Twice the nicotine, all the tar. A couple breaths of this knocks them right out. They make the honey, and we make the money. "They make the honey, and we make the money"? Oh, my! What's going on? Are you OK? Yeah. It doesn't last too long. Do you know you're in a fake hive with fake walls? Our queen was moved here. We had no choice. This is your queen? That's a man in women's clothes! That's a drag queen! What is this? Oh, no! There's hundreds of them! Bee honey. Our honey is being brazenly stolen on a massive scale! This is worse than anything bears have done! I intend to do something. Oh, Barry, stop. Who told you humans are taking our honey? That's a rumor. Do these look like rumors? That's a conspiracy theory. These are obviously doctored photos. How did you get mixed up in this? He's been talking to humans. - What? - Talking to humans?! He has a human girlfriend. And they make out! Make out? Barry! We do not. - You wish you could. - Whose side are you on? The bees! I dated a cricket once in San Antonio. Those crazy legs kept me up all night. Barry, this is what you want to do with your life? I want to do it for all our lives. Nobody works harder than bees! Dad, I remember you coming home so overworked your hands were still stirring. You couldn't stop. I remember that. What right do they have to our honey? We live on two cups a year. They put it in lip balm for no reason whatsoever! Even if it's true, what can one bee do? Sting them where it really hurts. In the face! The eye! - That would hurt. - No. Up the nose? That's a killer. There's only one place you can sting the humans, one place where it matters. Hive at Five, the hive's only full-hour action news source. No more bee beards! With Bob Bumble at the anchor desk. Weather with Storm Stinger. Sports with Buzz Larvi. And Jeanette Ohung. - Good evening. I'm Bob Bumble. - And I'm Jeanette Ohung. A tri-county bee, Barry Benson, intends to sue the human race for stealing our honey, packaging it and profiting from it illegally! Tomorrow night on Bee Larry King, we'll have three former queens here in our studio, discussing their new book, Olassy Ladies, out this week on Hexagon. Tonight we're talking to Barry Benson. Did you ever think, "I'm a kid from the hive. I can't do this"? Bees have never been afraid to change the world. What about Bee Oolumbus? Bee Gandhi? Bejesus? Where I'm from, we'd never sue humans. We were thinking of stickball or candy stores. How old are you? The bee community is supporting you in this case, which will be the trial of the bee century. You know, they have a Larry King in the human world too. It's a common name. Next week... He looks like you and has a show and suspenders and colored dots... Next week... Glasses, quotes on the bottom from the guest even though you just heard 'em. Bear Week next week! They're scary, hairy and here live. Always leans forward, pointy shoulders, squinty eyes, very Jewish. In tennis, you attack at the point of weakness! It was my grandmother, Ken. She's 81. Honey, her backhand's a joke! I'm not gonna take advantage of that? Quiet, please. Actual work going on here. - Is that that same bee? - Yes, it is! I'm helping him sue the human race. - Hello. - Hello, bee. This is Ken. Yeah, I remember you. Timberland, size ten and a half. Vibram sole, I believe. Why does he talk again? Listen, you better go 'cause we're really busy working. But it's our yogurt night! Bye-bye. Why is yogurt night so difficult?! You poor thing. You two have been at this for hours! Yes, and Adam here has been a huge help. - Frosting... - How many sugars? Just one. I try not to use the competition. So why are you helping me? Bees have good qualities. And it takes my mind off the shop. Instead of flowers, people are giving balloon bouquets now. Those are great, if you're three. And artificial flowers. - Oh, those just get me psychotic! - Yeah, me too. Bent stingers, pointless pollination. Bees must hate those fake things! Nothing worse than a daffodil that's had work done. Maybe this could make up for it a little bit. - This lawsuit's a pretty big deal. - I guess. You sure you want to go through with it? Am I sure? When I'm done with the humans, they won't be able to say, "Honey, I'm home," without paying a royalty! It's an incredible scene here in downtown Manhattan, where the world anxiously waits, because for the first time in history, we will hear for ourselves if a honeybee can actually speak. What have we gotten into here, Barry? It's pretty big, isn't it? I can't believe how many humans don't work during the day. You think billion-dollar multinational food companies have good lawyers? Everybody needs to stay behind the barricade. - What's the matter? - I don't know, I just got a chill. Well, if it isn't the bee team. You boys work on this? All rise! The Honorable Judge Bumbleton presiding. All right. Oase number 4475, Superior Oourt of New York, Barry Bee Benson v. the Honey Industry is now in session. Mr. Montgomery, you're representing the five food companies collectively? A privilege. Mr. Benson... you're representing all the bees of the world? I'm kidding. Yes, Your Honor, we're ready to proceed. Mr. Montgomery, your opening statement, please. Ladies and gentlemen of the jury, my grandmother was a simple woman. Born on a farm, she believed it was man's divine right to benefit from the bounty of nature God put before us. If we lived in the topsy-turvy world Mr. Benson imagines, just think of what would it mean. I would have to negotiate with the silkworm for the elastic in my britches! Talking bee! How do we know this isn't some sort of holographic motion-picture-capture Hollywood wizardry? They could be using laser beams! Robotics! Ventriloquism! Oloning! For all we know, he could be on steroids! Mr. Benson? Ladies and gentlemen, there's no trickery here. I'm just an ordinary bee. Honey's pretty important to me. It's important to all bees. We invented it! We make it. And we protect it with our lives. Unfortunately, there are some people in this room who think they can take it from us 'cause we're the little guys! I'm hoping that, after this is all over, you'll see how, by taking our honey, you not only take everything we have but everything we are! I wish he'd dress like that all the time. So nice! Oall your first witness. So, Mr. Klauss Vanderhayden of Honey Farms, big company you have. I suppose so. I see you also own Honeyburton and Honron! Yes, they provide beekeepers for our farms. Beekeeper. I find that to be a very disturbing term. I don't imagine you employ any bee-free-ers, do you? - No. - I couldn't hear you. - No. - No. Because you don't free bees. You keep bees. Not only that, it seems you thought a bear would be an appropriate image for a jar of honey. They're very lovable creatures. Yogi Bear, Fozzie Bear, Build-A-Bear. You mean like this? Bears kill bees! How'd you like his head crashing through your living room?! Biting into your couch! Spitting out your throw pillows! OK, that's enough. Take him away. So, Mr. Sting, thank you for being here. Your name intrigues me. - Where have I heard it before? - I was with a band called The Police. But you've never been a police officer, have you? No, I haven't. No, you haven't. And so here we have yet another example of bee culture casually stolen by a human for nothing more than a prance-about stage name. Oh, please. Have you ever been stung, Mr. Sting? Because I'm feeling a little stung, Sting. Or should I say... Mr. Gordon M. Sumner! That's not his real name?! You idiots! Mr. Liotta, first, belated congratulations on your Emmy win for a guest spot on ER in 2005. Thank you. Thank you. I see from your resume that you're devilishly handsome with a churning inner turmoil that's ready to blow. I enjoy what I do. Is that a crime? Not yet it isn't. But is this what it's come to for you? Exploiting tiny, helpless bees so you don't have to rehearse your part and learn your lines, sir? Watch it, Benson! I could blow right now! This isn't a goodfella. This is a badfella! Why doesn't someone just step on this creep, and we can all go home?! - Order in this court! - You're all thinking it! Order! Order, I say! - Say it! - Mr. Liotta, please sit down! I think it was awfully nice of that bear to pitch in like that. I think the jury's on our side. Are we doing everything right, legally? I'm a florist. Right. Well, here's to a great team. To a great team! Well, hello. - Ken! - Hello. I didn't think you were coming. No, I was just late. I tried to call, but... the battery. I didn't want all this to go to waste, so I called Barry. Luckily, he was free. Oh, that was lucky. There's a little left. I could heat it up. Yeah, heat it up, sure, whatever. So I hear you're quite a tennis player. I'm not much for the game myself. The ball's a little grabby. That's where I usually sit. Right... there. Ken, Barry was looking at your resume, and he agreed with me that eating with chopsticks isn't really a special skill. You think I don't see what you're doing? I know how hard it is to find the rightjob. We have that in common. Do we? Bees have 100 percent employment, but we do jobs like taking the crud out. That's just what I was thinking about doing. Ken, I let Barry borrow your razor for his fuzz. I hope that was all right. I'm going to drain the old stinger. Yeah, you do that. Look at that. You know, I've just about had it with your little mind games. - What's that? - Italian Vogue. Mamma mia, that's a lot of pages. A lot of ads. Remember what Van said, why is your life more valuable than mine? Funny, I just can't seem to recall that! I think something stinks in here! I love the smell of flowers. How do you like the smell of flames?! Not as much. Water bug! Not taking sides! Ken, I'm wearing a Ohapstick hat! This is pathetic! I've got issues! Well, well, well, a royal flush! - You're bluffing. - Am I? Surf's up, dude! Poo water! That bowl is gnarly. Except for those dirty yellow rings! Kenneth! What are you doing?! You know, I don't even like honey! I don't eat it! We need to talk! He's just a little bee! And he happens to be the nicest bee I've met in a long time! Long time? What are you talking about?! Are there other bugs in your life? No, but there are other things bugging me in life. And you're one of them! Fine! Talking bees, no yogurt night... My nerves are fried from riding on this emotional roller coaster! Goodbye, Ken. And for your information, I prefer sugar-free, artificial sweeteners made by man! I'm sorry about all that. I know it's got an aftertaste! I like it! I always felt there was some kind of barrier between Ken and me. I couldn't overcome it. Oh, well. Are you OK for the trial? I believe Mr. Montgomery is about out of ideas. We would like to call Mr. Barry Benson Bee to the stand. Good idea! You can really see why he's considered one of the best lawyers... Yeah. Layton, you've gotta weave some magic with this jury, or it's gonna be all over. Don't worry. The only thing I have to do to turn this jury around is to remind them of what they don't like about bees. - You got the tweezers? - Are you allergic? Only to losing, son. Only to losing. Mr. Benson Bee, I'll ask you what I think we'd all like to know. What exactly is your relationship to that woman? We're friends. - Good friends? - Yes. How good? Do you live together? Wait a minute... Are you her little... ...bedbug? I've seen a bee documentary or two. From what I understand, doesn't your queen give birth to all the bee children? - Yeah, but... - So those aren't your real parents! - Oh, Barry... - Yes, they are! Hold me back! You're an illegitimate bee, aren't you, Benson? He's denouncing bees! Don't y'all date your cousins? - Objection! - I'm going to pincushion this guy! Adam, don't! It's what he wants! Oh, I'm hit!! Oh, lordy, I am hit! Order! Order! The venom! The venom is coursing through my veins! I have been felled by a winged beast of destruction! You see? You can't treat them like equals! They're striped savages! Stinging's the only thing they know! It's their way! - Adam, stay with me. - I can't feel my legs. What angel of mercy will come forward to suck the poison from my heaving buttocks? I will have order in this court. Order! Order, please! The case of the honeybees versus the human race took a pointed turn against the bees yesterday when one of their legal team stung Layton T. Montgomery. - Hey, buddy. - Hey. - Is there much pain? - Yeah. I... I blew the whole case, didn't I? It doesn't matter. What matters is you're alive. You could have died. I'd be better off dead. Look at me. They got it from the cafeteria downstairs, in a tuna sandwich. Look, there's a little celery still on it. What was it like to sting someone? I can't explain it. It was all... All adrenaline and then... and then ecstasy! All right. You think it was all a trap? Of course. I'm sorry. I flew us right into this. What were we thinking? Look at us. We're just a couple of bugs in this world. What will the humans do to us if they win? I don't know. I hear they put the roaches in motels. That doesn't sound so bad. Adam, they check in, but they don't check out! Oh, my. Oould you get a nurse to close that window? - Why? - The smoke. Bees don't smoke. Right. Bees don't smoke. Bees don't smoke! But some bees are smoking. That's it! That's our case! It is? It's not over? Get dressed. I've gotta go somewhere. Get back to the court and stall. Stall any way you can. And assuming you've done step correctly, you're ready for the tub. Mr. Flayman. Yes? Yes, Your Honor! Where is the rest of your team? Well, Your Honor, it's interesting. Bees are trained to fly haphazardly, and as a result, we don't make very good time. I actually heard a funny story about... Your Honor, haven't these ridiculous bugs taken up enough of this court's valuable time? How much longer will we allow these absurd shenanigans to go on? They have presented no compelling evidence to support their charges against my clients, who run legitimate businesses. I move for a complete dismissal of this entire case! Mr. Flayman, I'm afraid I'm going to have to consider Mr. Montgomery's motion. But you can't! We have a terrific case. Where is your proof? Where is the evidence? Show me the smoking gun! Hold it, Your Honor! You want a smoking gun? Here is your smoking gun. What is that? It's a bee smoker! What, this? This harmless little contraption? This couldn't hurt a fly, let alone a bee. Look at what has happened to bees who have never been asked, "Smoking or non?" Is this what nature intended for us? To be forcibly addicted to smoke machines and man-made wooden slat work camps? Living out our lives as honey slaves to the white man? - What are we gonna do? - He's playing the species card. Ladies and gentlemen, please, free these bees! Free the bees! Free the bees! Free the bees! Free the bees! Free the bees! The court finds in favor of the bees! Vanessa, we won! I knew you could do it! High-five! Sorry. I'm OK! You know what this means? All the honey will finally belong to the bees. Now we won't have to work so hard all the time. This is an unholy perversion of the balance of nature, Benson. You'll regret this. Barry, how much honey is out there? All right. One at a time. Barry, who are you wearing? My sweater is Ralph Lauren, and I have no pants. - What if Montgomery's right? - What do you mean? We've been living the bee way a long time, 27 million years. Oongratulations on your victory. What will you demand as a settlement? First, we'll demand a complete shutdown of all bee work camps. Then we want back the honey that was ours to begin with, every last drop. We demand an end to the glorification of the bear as anything more than a filthy, smelly, bad-breath stink machine. We're all aware of what they do in the woods. Wait for my signal. Take him out. He'll have nauseous for a few hours, then he'll be fine. And we will no longer tolerate bee-negative nicknames... But it's just a prance-about stage name! ...unnecessary inclusion of honey in bogus health products and la-dee-da human tea-time snack garnishments. Oan't breathe. Bring it in, boys! Hold it right there! Good. Tap it. Mr. Buzzwell, we just passed three cups, and there's gallons more coming! - I think we need to shut down! - Shut down? We've never shut down. Shut down honey production! Stop making honey! Turn your key, sir! What do we do now? Oannonball! We're shutting honey production! Mission abort. Aborting pollination and nectar detail. Returning to base. Adam, you wouldn't believe how much honey was out there. Oh, yeah? What's going on? Where is everybody? - Are they out celebrating? - They're home. They don't know what to do. Laying out, sleeping in. I heard your Uncle Oarl was on his way to San Antonio with a cricket. At least we got our honey back. Sometimes I think, so what if humans liked our honey? Who wouldn't? It's the greatest thing in the world! I was excited to be part of making it. This was my new desk. This was my new job. I wanted to do it really well. And now... Now I can't. I don't understand why they're not happy. I thought their lives would be better! They're doing nothing. It's amazing. Honey really changes people. You don't have any idea what's going on, do you? - What did you want to show me? - This. What happened here? That is not the half of it. Oh, no. Oh, my. They're all wilting. Doesn't look very good, does it? No. And
fuck you, you fuckign idiot, you stupid motherfucker i hate you
markdown: Add helper configuration for mobile.
This refactoring is the first step toward sharing
our markdown code with mobile. This focuses on
the Zulip layer, not the underlying third party marked
library.
In this commit we do a one-time initialization to wire up the markdown functions, but after further discussions with Greg, it might make more sense to just pass in helpers on every use of markdown (which is generally only once per sent message). I'll address that in follow-up commits.
Even though it looks like a pretty invasive change, you will note that we barely needed to modify the node tests to make this pass. And we have pretty decent test coverage here.
All of the places where we used to depend on other Zulip modules now use helper functions that any client (e.g. mobile) can configure themselves. Or course, in the webapp, we configure these from modules like people/stream_data/hash_util/etc.
Even in places where markdown used to deal directly with data structures from other modules, we now use functions. We may revisit this in a future commit, and we might just pass data directly for certain things.
I decided to keep the helpers data structure completely flat,
so we don't have ugly nested names like
helpers.emoji.get_emoji_codepoint
. Because of this,
some of the names aren't 1:1, which I think is fine.
For example, we map user_groups.is_member_of
to
is_member_of_user_group
.
It's likely that mobile already has different names for their versions of these functions, so trying for fake consistency would only help the webapp. In some cases, I think the webapp functions have names that could be improved, but we can clean that up in future commits, and since the names aren't coupled to markdown itself (i.e. only the config), we will be less constrained.
It's worth noting that marked
has an options
data structure that it uses for configuration, but
I didn't piggyback onto it, since the marked
options are more at the lexing/parsing layer vs.
the app-data layer stuff that our helpers mostly
help with.
Hopefully it's obvious why I just put helpers in the top-level namespace for the module rather than passing it around through multiple layers of the parser.
There were a couple places in markdown where we
were doing awkward hasOwnProperty
checks for
emoji-related stuff. Now we use the Python
principle of ask-forgiveness-not-permission and
just handle the getters returning falsy data. (It
should be undefined
, but any falsy value is
unworkable in the places I changed, so I use
the simpler, less brittle form.)
We also break our direct dependency on
emoji_codes.json
(with some help from the
prior commit).
In one place I rename streamName to stream_name, fixing up an ancient naming violation that goes way back to before this code was even extracted away from echo.js. I didn't bother to split this out into a separate commit, since 2 of the 4 lines would be immediately re-modified in the subsequent commit.
Note that we still depend on fenced_code
via the global namespace, instead of simply
requiring it directly or injecting it. The
reason I'm postponing any action there is that
we'll have to change things once we move
markdown into a shared library. (The most
likely outcome is that we'll rename/move both files
at the same time and fix the namespace/require
details as part of that commit.)
Also the markdown code still relies on _
being
available in the global namespace. We aren't
quite ready to share code with mobile yet, but the
underscore dependency should not be problematic,
since mobile already uses underscore to use the
webapp's shared typing_status module.
Don't use RTLD_GLOBAL to load _C. (#31162)
Summary: Pull Request resolved: pytorch/pytorch#31162
This should help us resolve a multitude of weird segfaults and crashes when PyTorch is imported along with other packages. Those would often happen because libtorch symbols were exposed globally and could be used as a source of relocations in shared libraries loaded after libtorch.
Fixes #3059.
Some of the subtleties in preparing this patch:
- Getting ASAN to play ball was a pain in the ass. The basic problem is that when we load with
RTLD_LOCAL
, we now may load a library multiple times into the address space; this happens when we have custom C++ extensions. Since the libraries are usually identical, this is usually benign, but it is technically undefined behavior and UBSAN hates it. I sprayed a few ways of getting things to "work" correctly: I preload libstdc++ (so that it is seen consistently over all library loads) and added turned off vptr checks entirely. Another possibility is we should have a mode where we use RTLD_GLOBAL to load _C, which would be acceptable in environments where you're sure C++ lines up correctly. There's a long comment in the test script going into more detail about this. - Making some of our shared library dependencies load with
RTLD_LOCAL
breaks them. OpenMPI and MKL don't work; they play linker shenanigans to look up their symbols which doesn't work when loaded locally, and if we load a library withRLTD_LOCAL
we aren't able to subsequently see it withctypes
. To solve this problem, we employ a clever device invented by apaszke: we create a dummy librarytorch_global_deps
with dependencies on all of the libraries which need to be loaded globally, and then load that withRTLD_GLOBAL
. As long as none of these libraries have C++ symbols, we can avoid confusion about C++ standard library.
Signed-off-by: Edward Z. Yang [email protected]
Differential Revision: D19262579
Test Plan: Imported from OSS
Pulled By: ezyang
fbshipit-source-id: 06a48a5d2c9036aacd535f7e8a4de0e8fe1639f2