2,222,076 events, 1,292,995 push events, 1,780,980 commit messages, 108,358,208 characters
Custom models
- Added TMT renderer
- Added proof of concept BreakerBox (tbd. directional placing, that shit annoying as hell imma do it later)
Remove optipng and pngquant libraries
Years back, PhotoDemon used GDI+ to write PNG files. GDI+ writes terrible PNGs, with poor compression (filtering selection is particularly awful) and non-standard chunk choices. I was familiar with PNG optimization libraries from web development work, so I integrated the 3rd-party pngnq-s9 (later pngquant) and optipng libraries into PhotoDemon. These libraries were somewhat capable of cleaning-up bad GDI+ PNGs I was exporting, but using them was slow and clunky because they need to be shelled as external .exes. As a compromise, I split the libraries off into a separate "web-optimized PNG" panel, which users had to manually activate and use (since the PNG writing process was so much slower when shelling it through those libraries).
In 2021, things are very different! PD uses an in-house PNG encoder that produces highly optimized PNG files - smaller than the reference libpng library, in all cases - and I've also written powerful quantizers that aren't quite as specialized as pngquant but are damn close and very fast to boot.
As such, I've been meaning to remove these 3rd-party libraries for awhile. This reduces download size and cuts a lot of legacy code that hasn't been well-maintained, while also simplifying the PNG export dialog.
Before the next stable release, I'd still like to build a full "Save for Web" panel to better expose PD's powerful color quantization tools (for lossy PNG encoding), but in the meantime, you can of course manually quantize images prior to saving. PD's PNG engine will automatically detect your quantization results and produce an accordingly optimized PNG.
Polish paused and playing UI states and transition
- Always show the breakpoint navigation status, even when playing the
video. This reduces how much the UI jumps. I don't think it's too
jarring that the point count doesn't go up as you play. If it is we
can always sub in a
-
there or something. - Always keep the max number of characters worth of space for the
navigation status. If this thing changes its width (because we go from
point
9 -> 10
or99 -> 100
), then it ends up changing the width of the timeline as well, which makes the whole UI subtly shift.
CleanShot.2021-10-29.at.19.53.11.mp4
- Same thing for the overall timeline time. This one is a lot subtler because the number of digits is constant, but since it's not a fixed-width font the change can result in subtle motion in the corner. This tries to reduce that motion as much as possible:
CleanShot.2021-10-29.at.20.11.43.mp4
- Don't let codemirror interpret left or right arrows as horizontal scrolling. The left and right arrows should default to being timeline nudges. This is a super useful feature, and it's often quite subtle since you are going through one paint at a time, so you can pretty easily hit this key like ten times without realizing it's not doing anything, which is a frustrating experience.
- Don't let the browser interpret
spacebar
as vertical scrolling - similar to the last one, space bar universally means scroll down in documents. However, in media players and similar apps, space bar typically means play/pause. That's a much more natural meaning for Replay, so we short-circuit thebody
s normal handler, which will try and scroll things down vertically (I think it scrolls the either the active element or the element under cursor, which often results in the codemirror editor getting scrolled). - Don't consider
readonly
text inputs to be editable. We have some code that implements the "toggle playing on spacebar logic". It relies on a helper to not activate when the user is typing in, for instance, a comment field. However, the way that codemirror works is that it focuses an invisibletextarea
tag, so that it can manage focus like a normal textfield. When you put it inreadonly
mode it is... well... read-only, and in that case, we want thatplay/pause
behavior, even if codemirror is the currently focused element, so I've adjusted that helper function to only consider inputs and text areas to be editable when they are not read-only. - I've also added a default to
lastExecutionPoint
of0
. I'm somewhat neutral on this. My general reason for this is that it's nice to have type consistency across all states, so if the null-ish object for that type makes sense, initialize with that, rather thannull
and then have to check fornull
everywhere. This doesn't always work but it seems like it makes sense here.
Fixes https://github.com/RecordReplay/devtools/issues/3773 Fixes https://github.com/RecordReplay/devtools/issues/4137
Ok. Let's talk yeah? (#62415)
This pr changes the temperature limit on nitryl. Lowers it from 600k to roughly 340 So I assume you're familiar with singletank/cap bombs (Fuck you assembly people) Idea is basically the same as a ttv, except it's not a ttv, so you've got no control
It's a product of a cursed problem around explosion code that I'm willing to harbor We want two things. TTVs that work off pressure, in a semi realistic way, and tanks that explode when you fuck up your ttv Only makes sense that the tanks should have at least the same base logic as the ttv right? That's kind of the issue I'm not willing to compramise on any of those three points, so things are the way they are
Ok now that we're all on the same page. You remember that bit I said about no control? Nitryl has a decomposition reaction. Exists so you can't plumb the station with the stuff, etc etc Takes nitryl, which is "canonically" 1 nitrogen 2 oxygen, decomposes it into 02, and heat
Agressively soulful reaction right? Really slow, so it's not an instant thing, but it does go through
Anyway. So let's say we take a ttv mix, trit + plasma, and take advantage of some parts of that reaction. 1: It takes a small amount of o2 and a large amount of no2, and returns you a large amount of o2 over a long period of time 2: It's exothermic. So we're slowly ramping up the temperature of our mix. Very very slowly mind
I'm sure you can figure out the problem here. Giving people what amounts to fuses, which at this scale is a problem It honestly does kind of hurt to try and remove this, because frankly if I played this game I'd be telling people about it whenever I got the chance (Consider what I just did "that")
Thing is it allows for levels of nuke that are not workable. It's a concept I've been aware of for a while, but I A: didn't realize how stronk it was, and B: didn't think it was well known enough People are using it a lot, and god it's stronk
Please consider this a by-proxy salt pr, since again, I don't play Oh and to be clear, I won't do prs like this anytime someone uses something strong. That's why servers have admins. I've got sanity limits though, and this crossed those
Enables strictest reasonable TypeScript settings and fixes failures.
Specific options and their reasoning include:
- Enabled
allowUnusedLabels
as labels are generally an antipattern and usually an attempt to make an object literal. - Enabled
noImplicitReturns
as forgetting to return is a very easy mistake to make and good to correct. - Enabled
noFallthroughCaseInSwitch
as switch fallthroughs are a terrible idea that should never have been allowed in the first place. - Enabled
noImplicitOverride
as overriding a method should be an explicit action and clearly not accidental. - Enabled
noPropertyAccessFromIndexSignature
as I want to be explicit about statically known properties vs dynamically retrieved properties. In kind of on the fence about this one TBH, but my experience with Closure compiler makes me comfortable with this dichotomy, so it doesn't bother me. - Enabled
noUncheckedIndexAccess
to require checking forundefined
where necessary. I'm also not entirely sold on this one, and it can be annoying to deal with, especially with arrays. However it is generally good practice and (mostly) avoidable if you're comfortable with the language.
Update README.md
About Laravel
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: • Simple, fast routing engine. • Powerful dependency injection container. • Multiple back-ends for session and cache storage. • Expressive, intuitive database ORM. • Database agnostic schema migrations. • Robust background job processing. • Real-time event broadcasting.
Laravel is accessible, powerful, and provides tools required for large, robust applications.
Learning Laravel
Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
If you don't feel like reading, Laracasts can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
Laravel Sponsors We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel Patreon page. • Vehikl • Tighten Co. • Kirschbaum Development Group • 64 Robots • Cubet Techno Labs • Cyber-Duck • British Software Development • Webdock, Fast VPS Hosting • DevSquad • UserInsights • Fragrantica • SOFTonSOFA • User10 • Soumettre.fr • CodeBrisk • 1Forge • TECPRESSO • Runtime Converter • WebL'Agence • Invoice Ninja • iMi digital • Earthlink • Steadfast Collective • We Are The Robots Inc. • Understand.io • Abdel Elrafa • Hyper Host • Appoly • OP.GG • 云软科技
Contributing Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.
Code of Conduct In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
Security Vulnerabilities If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [email protected]. All security vulnerabilities will be promptly addressed.
License The Laravel framework is open-sourced software licensed under the MIT license.
internal: replace L_DOLLAR/R_DOLLAR with parenthesis hack
The general problem we are dealing with here is this:
macro_rules! thrice {
($e:expr) => { $e * 3}
}
fn main() {
let x = thrice!(1 + 2);
}
we really want this to print 9 rather than 7.
The way rustc solves this is rather ad-hoc. In rustc, token trees are allowed to include whole AST fragments, so 1+2 is passed through macro expansion as a single unit. This is a significant violation of token tree model.
In rust-analyzer, we intended to handle this in a more elegant way,
using token trees with "invisible" delimiters. The idea was is that we
introduce a new kind of parenthesis, "left
The idea was inspired by the relevant comment in the proc_macro crate:
https://doc.rust-lang.org/stable/proc_macro/enum.Delimiter.html#variant.None
An implicit delimiter, that may, for example, appear around tokens coming from a “macro variable” $var. It is important to preserve operator priorities in cases like $var * 3 where $var is 1 + 2. Implicit delimiters might not survive roundtrip of a token stream through a string.
Now that we are older and wiser, we conclude that the idea doesn't work.
First, the comment in the proc-macro crate is wishful thinking. Rustc currently completely ignores none delimiters. It solves the (1 + 2) * 3 problem by having magical token trees which can't be duplicated:
- https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/TIL.20that.20token.20streams.20are.20magic
- https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Handling.20of.20Delimiter.3A.3ANone.20by.20the.20parser
Second, it's not like our implementation in rust-analyzer works. We special-case expressions (as opposed to treating all kinds of $var captures the same) and we don't know how parser error recovery should work with these dollar-parenthesis.
So, in this PR we simplify the whole thing away by not pretending that
we are doing something proper and instead just explicitly special-casing
expressions by wrapping them into real ()
.
In the future, to maintain bug-parity with rustc
what we are going to
do is probably adding an explicit CAPTURED_EXPR
token which we can
explicitly account for in the parser.
If/when rustc starts handling delimiter=none properly, we'll port that logic as well, in addition to special handling.
seasonal cookies (#31135)
-
yup, its fucked
-
coogy
-
kurburst whyy
-
sonixx suggestion become true!!!
-
gof dycking faming god damn ut
Compete in AtCoder ABC 225
standings: 1366/6460 (6590 competing) on p. 69/408
-> PERCENTILE >78% ( >79%) :-/ ^^
rank: 1366/6585 [5th best rank ^^]
-> PERCENTILE >79% :-/ ^_^
rating: +22 -> 1081 [5 KYU] Highest!
performance as 1243 [5th best performance]
- Have focused more on speed/fast-solving in this contest.
- cumbersome implementation for B-level problem (graph loading).
- C w/ tricky extra condition.
- Pretty straigtforward D.
- Slightly tight arrival.
- no Brush Teeth, breakfast 1-2 min before the start
- I came late ~60s.
- first 2 problems in <11 min :-) ^_^
- first 3 problems in <24 min ^_^
- additionally w/ D in 50 min :-O
- 4/4 ACs
- no WAs, directly correct design and implementation
- careful correct solutions! => ALWAYS BETTER TO BE SAFE, CAUTIOUS & CAREFUL THAN SORRY ^_^
A:
- hesitations:
- via
do { } while ();
+next_permutation()
- or via breaking down only 3 cases?
- no case of 0 values! => A SHOULD BE SIMPLE ENOUGH TO BREAK DOWN TO CASES!
- via
B:
- all degs==1, except 1 central point which has deg==N-1
- cumbersome implementation for B-level problem
- graph loading
- necessary & sufficient condition via degs?
<- sufficient b/c then 1 is connected to all others
-> could have only checked for the largest degree being N-1, since the graph is guaranteed to be a tree
- see https://atcoder.jp/contests/abc225/submissions/26934627 => PAY ATTENTION TO CONSTRAINTS ON GRAPH/TREE-NESS OF INPUT!!
- COULD SIMPLIFY CODE!
C:
- check that value below is +7
- tricky extra condition!
- i.e. check that remainders (modulo 7) are consecutive values
- i.e.
if (mods[col]!=mods[col-1]+1) {...}
- i.e.
- flashed, though -> thank god!
- i.e. check that remainders (modulo 7) are consecutive values
- hesitations:
- how to output {"Yes","No"} w/ break inside nested loops
=> REMEMBER: {
Yes
,No
} macros +return
!! - how to convert mod==0 to 7
=> USE SIMPLE
IF () { }
FOR 0->MOD!
- how to output {"Yes","No"} w/ break inside nested loops
=> REMEMBER: {
D:
- suspiciously straigtforward
- implement double linked list
- for type 3 query (display), traverse to the {front,rear} of the component
- store into a
vector<ll> result
- reverse for head part (when traversing to the front) => PLAN AHEAD WELL: GOOD CHOICE W/ CHOOSING VECTOR FOR RESULT
- store into a
- for type 3 query (display), traverse to the {front,rear} of the component
- hesitations:
- size of {front,rear}? => ALWAYS SET SIZES TO N+5!
- what's the meaning of front/rear, and who connects to whom and how => KEEP THE STATEMENT OPEN IN THE NEIGHBORING WINDOW WHILE IMPLEMENTATING!
- tricky terminal cases
- self-loop==finish traverse, but need to include also the last/terminal car
- add explicitly for rear traverse
- add explicitly for front traverse only when cur!=x => CAREFULLY ANALYSE ALL (CORNER) CASES WHEN SUSPECTING BUGGY AREAS OF CODE!!
- self-loop==finish traverse, but need to include also the last/terminal car
- flashed, though -> nice!! ^_^
E:
- read statement but skipped
- computational geometry, bleh
- perhaps some reduction to graphs + min vertex cut to make graph disconnected?
F:
-
unsolved <- out of reach?
-
seemed simpler/shorter statement than E
-
originally greedily take K lexmin strings?
-
however, tricky!
- what if one is prefix of other, but the other lex larger would produce better concatenation?
- see
in_MAX_1t
- see
- what if one is prefix of other, but the other lex larger would produce better concatenation?
-
perhaps some string algo?
- some prefix structure?
- KMP/Aho-Corasick?
-
editorial: https://atcoder.jp/contests/abc225/editorial/2850
- edge case analysis
- many false solutions
-
- dp -> read editorial!
- edge case analysis
-
only 75 ACs / 1373 submissions
- brutal problem!!
<- ~5% success rate! :-O
- deceptively easy for others?
- brutal problem!!
<- ~5% success rate! :-O
Signed-off-by: Karel Ha [email protected]
37.3. Redirecting the Full Page from a Frame
Finding the "Active" Frame, if any, for a Request
- Ok - go back down to that method. This is not going to work yet... because it's still coded to work with a modal. To bring this to life, we need determine three things. One: was the Ajax call redirected? Two: did this navigation happen inside of a Turbo frame? And three: does that frame have the data-turbo-form-redirect attribute?
The trickiest of these three is actually figuring out if this Ajax call is happening inside of a turbo frame. This event doesn't give us any indication of what initiated the Ajax call - like which link was clicked or which form was submitted. But, we can use a trick. Remember: whenever a frame is loading, turbo gives that frame a busy attribute. We can use that.
Create a new convenience method called getCurrentFrame(). This is going to return the turbo-frame Element that is currently loading or null. And it's as simple as return document.querySelector() looking for turbo-frame[busy].
It is theoretically possible that two frames could be loading at the same time. But other than on initial page load if you had multiple lazy frames, I think that's pretty unlikely.
Above, let's use this. Remove all of this modal stuff... and then move the event.preventDefault() and Turbo.visit() to the end of the method... because we're going to reverse the if logic to keep things clean. If the fetchResponse did not succeed or it's not a redirect, then return and do nothing.
But if the response was successful and was a redirect, we need to see if we are inside of a frame and make sure that the frame has our data attribute. If not this.getCurrentFrame(), then return and do nothing. And if the current frame does not have .dataset.turboFormRedirect, also do nothing.
At this point, we know that the Ajax call did happen inside of a frame with our data attribute and that the Ajax call did redirect to another page. And so, we prevent the frame from rendering and navigate the entire page.
Let's try it! Refresh, open the modal, fill in some info, submit and... got it! I know that worked because the new product showed up thanks to the Turbo visit.
Yay! But... was that too easy? It... kind of was. There are two annoying bugs that are hiding inside of our new system. Let's add one more turbo frame next that will expose both of them. Don't worry, by the end, we're going to have a beautiful bug-free way to force a frame to navigate the whole page.
Here is my submission for Hacktoberfest
Thanks for this awesome experience, unfortunately, i haven't the time that i wanted to work on this project. I've becomed dad recently thats why i didn't have the same time as before. So i send my request now as we are the 30 and i will not be able to work anymore on the project before the end of Hacktoberfest!
I hope it will be merged, if not, thanks anyway for the knowledge and the experience gained in this event! I will definitively come back to it later in November, and look for the disney clone that look cool too!
Thanks again and have a nice day!
V0lk3n
Merge pull request #704 from MeowcaTheoRange/patch-2
This was fucking hell I'm so sorry @ShadowMario
"10:35am. I am up. Let me chill a bit and then I'll get started on the review.
11:10am. Let me get started on the review.
///
The start of October marks where I change the paths from machine learning to game dev. I came dangerously close to getting an actual job with that PPL position, but even though paid work might pay more that creative work, it would be a complete waste of my spirit. Looking forward 50 years, would I rather spend this time making games, drawing, writing and composing music, or would I rather work on web store backends?
I thought about it and I probably could get a 5-10k/month job if I really pushed it - I applied to about a dozen random places at the end of Sept, and thus far I've gotten 3 assessment invites. If is just raw programming skill tests I doubt I'd have much trouble with them. But suppose I got a job and got used to making that kind of money, would I ever go to being an artist and making 0$ a month for months and years? Probably not. The time to eat is when one is hungry, not after has had one's fill. The right time to try out creative pursuits is now while I am used to being at the bottom. People who think they will work hard after they get rich and successful are just deluding themselves.
The correct way to live is to pick a path that sustains you in its entirety.
Right now I am quite pissed off at my old path. I made the Spiral language. I spent years working on it, and studying ML alongside only for ML itself to turn out completely useless. Something as simple as making a decent agent is out of reach without a computing cluster, and all ML 'advancements' are really domain specific tradeoffs whose only purpose is to look good on paper. Keeping up with publications ML is a waste of time. I've been going between being bullish and bearish on backprop, but I think this time I am going to put my foot down and just stay out of ML until neuroscience guys figure out how the brain is actually doing its magic.
I've hit my limits. Whatever my talents are, it does not seem like ML research is it. I just need a hint of what the basis of intelligence really is to make progress. Moving weights around based on the gradients is not it.
That leaves me in an awward position. I was actually intending to use RL to make poker agent, which would allow me to make money to buy AI hardware, which would allow me to make even better agents and make even more money, which would allow me to buy even better hardware down the road, and so on. Yet, right now even though the first of the new AI chips are actually available for purchase, and I should be making a Spiral backend for them, I can't afford them.
Training a poker agent using current ML algorithms just works so poorly that I do not see any chance of that plan actually working.
If I wanted to stay faithful to my old path, I'd get a job in order to get money to buy these, but if I could make money that way why would I waste my time on poker? I doubt that many poker pros make more than 100k a year - I'd be better off just climbing the programming career ladder. With my skills it would not take me too long to reach this.
A poker agent is something that without any prior experience I could have imagined being achievable with the current algorithms. I was sure that anything fancier that that was absolutely out of the picture without both hardware and algorithmic advancements. If the poker plan could have worked it would have set me on the ML path.
One thing I feel though is that while I should write off the current ML algorithms, I really should not write off the AI chips themselves. I have some ideas for how they could be used for games.
The first game I will do won't need them. It will be a visual novel, so it is just an opportunity for me to learn how to draw, 3d model and sculpt, and compose music. It is no big deal for me to just sit here and practice drawing for the next six months. Hell, think about how much time I wasted in 2019 and 2020 until I learned formal proving and concurrency. It would have been more than enough to get me to a decent level in this area. Unlike programming, art was never my talent, but I never really tried it seriously either. It would have been better to learn this in school since there was an art class, but schools are useless when it comes to learning actual skills.
Since I've already been practicing with a mouse for the past month, I decided to take that as a sign that I should get more seriously and ordered a cheapo screenless tablet. It should arrive in a few days after this review is posted.
With a tablet, I'll be able to sketch. The mouse is not nothing - if my try at breaking through to a higher skill tier fails, I'll be able to trace and get something decent that way for characters. For backgrounds, I can always trace photos and Google maps, and people will be none the wiser. But I am the prideful me, so I want to pick up actual skill along the way.
I realize that maybe the reason why I was always so poor at art was because my process itself was poor. While think how I could improve it, I stumbled upon 3d sculpting and it made me realize that this is the perfect workflow that I'd been desiring. Making a mental model in 3d and translating it on canvas is just too tough, but if learned to work in 3d to begin with, that would allow me to internalize what I need for actual drawing work. Plus many artists actually use 3d modeling in lieu of sketching. It suits me perfectly.
I've had some good results with this. When I draw, the end result always feels like trash, but I've managed to sculpt that elf loli head which is almost as good as the one in that video I couldn't draw my hand, but I actually created a lifelike replicate of it in Blender. I have ways to go until I proficiently create whole body meshes, but if could do that, I could trace my own work later on.
As an aside, Blender seems to have exploded in popularity in the past few years, and there are good tutorials everywhere. If you are interested, I thought that the CG Fast Track one was a particularly good starter tutorial.
Down the road, 3d modeling skills might serve as a lead in into the second game.
Take modern 3d games. I really enjoyed Doom Eternal, but it beggars belief that the forces of hell would fear somebody going through the armies of hell one demon at a time. I want to see more, rather than being locked in a room with 30 demons, I'd like to be locked in a city with 30,000 demons. I want to see buldings getting sheared, mountains being razed and the seas boiling. I want to see the suffering of humanity as the demons invade on a grand scale. I want to see nukes being thrown about and the landscape being torn asunder. I want to fly at high speeds rather than walk. I want to see the world quake and shudder from the blows it receives.
Today's computers simply do not have what it takes to support games at that scale. Even if it is for primitive game characters, I think that the new AI chips could support that kind of design due to their massive parallelism. Forget poker. It should be possible to repurpose them for game simulation.
However, the most important thing are better algorithms and what they could give me is a versatile and general purpose memory system, the likes of which could only run on these chips.
Imagine having large, non-static environments in a game. The amount of memory needed to store all that proceduraly generated content and keep track of the changing game state would be exorbiant. If I had something similar to what the human neocortex uses, I could just store it all there in an approximate fashion. Rather than the game being a complete simulation, having a neural memory system would give it a sense of liveness. It would act as attention to whatever the player is looking at.
Such a memory system would also be very good for art related work in general. I could train the system to predict my own creation effort and shortcut it that way. That could lead to vast productivity increases.
Current unsupervised learning methods like GANs are the first step in this direction, but work too poorly and require too much computation to be viable for this.
A project like this would be worthy of my programming skills. Using a memory system in such a manner is what should be my mastery challenge before taking on the real world.
This time I will be patient and wait for the pieces to manifest before trying to set them into place. No more big speculative bets from me. What I've done with Spiral is good enough for the time being. If it is destined to be useful for something, it will get its chance to shine. If not, then so be it.
///
1:15pm. Let me have breakfast here. I'll proofread the above later. This should do as the review.
2:25pm. Done with breakfast and chores. What I want to do now is take a look at that FlippedNormals review again. It was interesting how he did the minotaur head on the Huion display tablet. I want to see how he did that again.
https://www.youtube.com/watch?v=-XW0bqZBmPY Is a Pen Display Worth It for 3D Sculpting
It was this thing what I was talking about. Before that...
https://youtu.be/QBZ6TWQdudY?list=RDQMY0WfxgQtbwo Is This The Best VALUE FOR MONEY Desktop Tablet? HUION KAMVAS GT-191
https://youtu.be/IHV7LsbxqsU Huion HS611 Review
https://www.youtube.com/watch?v=WEXXbXDrd-Y Huion HS611 Drawing Tablet review | All you need?
https://youtu.be/eCG9-HtGRrc WHY THIS IS MY #1 TABLET CHOICE! Huion KAMVAS Pro 20 UNBOX REVIEW
Agh, I already ordered a tablet so it is pointless, but let me watch some of these. HS611 might have been a good pick instead of the Deco 01 v2.
https://www.youtube.com/channel/UCOvvFK_EhrX9exQ-jkLPg8w mikeymegamega
This guy is pretty good.
https://youtu.be/1FDrizAhPa8 HOW TO DRAW HANDS - EASY ANIME STEP BY STEP
I'll leave this for when I get a tablet.
Let me watch the HS611 review...nevermind.
WHY THIS IS MY #1 TABLET CHOICE! Huion KAMVAS Pro 20 UNBOX REVIEW https://youtu.be/eCG9-HtGRrc?t=682
The fact that this guy actually draws something in his reviews is very cool.
3:10pm. https://youtu.be/qPNO5qpvDbA A GAME-CHANGING TABLET? XP-Pen Deco 03 Unboxing Review
This one is from a similar family. I wonder if 01 v2 is more recent than this?
Yeah, it probably is. This is why it gets reco'd no doubt.
https://youtu.be/qPNO5qpvDbA?t=279
Oh, now the drivers come bundled on an USB. Good thing.
https://youtu.be/qPNO5qpvDbA?t=325
I wonder if I'll get this glove?
3:30pm. https://youtu.be/5ckKChDiKjI
Ah, let me continue watching this shit. It is a day like this. Somehow I do not feel like messing with the mouse. I'll do some sculpting later.
https://youtu.be/5ckKChDiKjI MIKEY'S DRAWING TABLET BUYING GUIDE!
This guy's videos really feel top notch let me watch this. After that I'll watch a vid for the tablet I've ordered. After that I'll watch the FlippedNormals vid. After that I'll do some sculpting. I'll try the hand from scratch again. Rather than my own, I'll try making it more feminine. I should also try the elf head as well...Actually instead of that it might not be a bad idea to move to the body in general. Flycat has a vid where he does it all in sculpt mode, so I'll track that down and follow it.
https://youtu.be/5ckKChDiKjI?t=157
Here he says he is a Win 10 user, and that he can't help the Mac users who might have a hard time installing things.
https://youtu.be/5ckKChDiKjI?t=485
I love this guy. I'll keep Mike Mega Mega when I get back into drawing. He has the manga style that I want to get good at and just draws girls. This is exactly what I need the most.
https://youtu.be/5ckKChDiKjI?t=520
The worst of them is still going to be far better than trying to draw with a mouse.
3:55pm. https://youtu.be/84aGua-a8is XP Pen Deco 01 v2 Detail Review with + Photoshop, Illustrator, Premiere Pro, After Effects, 3Ds Max
Let me watch this. Unless it breaks down, I'll be using this tablet for qutie a while. Sigh, if I knew how to create art and music, I could start work on Heaven's Key right now. I need to master this. I need to push forward and break into 3/5 in both of these domains. I need at least mid 2/5 to get started. I am more worried about art than music. I feel like I could get away with more looseness in music, but art needs to be solid.
4:15pm. Had to take a break. Let me watch it.
https://youtu.be/84aGua-a8is?t=207
This is pretty boring.
https://youtu.be/84aGua-a8is?t=433
A bit more interesting. Here is him trying it out in Illustrator.
https://youtu.be/XIYZU_rHIc8 10 Ways to Cheat at Art
Let me watch this.
https://youtu.be/XIYZU_rHIc8?t=125
Here he is recommending a perspective grid. I actually had that idea only yesterday. Yeah, I need to cheat as much as possible.
Ah, actually he meant the vanishing points. Well, I guess that might be good too.
4:45pm. https://youtu.be/95cdfUkBYB8?t=1146
Here he is dealing with photoshop settings.
5pm. https://youtu.be/-XW0bqZBmPY Is a Pen Display Worth It for 3D Sculpting
Let me finally watch this again.
https://youtu.be/-XW0bqZBmPY?t=94
Here is what I wanted to find out. Just how did he twist the shape so perfectly? Also how did he shave the sides. Let me put it on full screen.
5:05pm. https://youtu.be/-XW0bqZBmPY?t=90
Damn, there are these timeskips here.
https://youtu.be/-XW0bqZBmPY?t=155
Agh, and the way he did the minotaur is to paste it right away.
5:15pm. Hrmmmmm...
I am not happy. Suppose I have a hand, what would the ideal way to rotate its fingers be. Let me find a vid on sculpting a hand. Flycat is one thing, but I just end up knocking things out in my own style, and I'd like some extra info.
https://www.youtube.com/results?search_query=hand+sculpting
Oh FlippedNormals has something. And his hand really looks detailed.
Wow, I thought mine looked good, but these make me look like a baby.
5:15pm. Ok, this should be my current plan. Let me go through some of these tutorials. Flycat just goes to the end product in an expert fashion which is not good for me to try to immitate.
Right now, I might have gotten some results, but I feel my control is really lacking. I sort of knock things into shape haphazardly. There should be a much better way of working.
5:20pm. https://youtu.be/rTn8s-pypng?t=119
Here they are masking out the fingers and then moving them. Yeah, I definitely need to get familiar with this. They do say that if you have the Cube and the Clay brush you can make anything, and that the technical aspects aren't difficult. It is using them that is the tricky part.
https://youtu.be/rTn8s-pypng?t=884
Oh, so this is how he does the nails. I didn't think this was possible. I really do need to get familiar with the mask tool since it answer my gueation of to both move and rotate.
https://youtu.be/rTn8s-pypng?t=1479
You can actually correct spacing issues at this point? Sigh, I need more tecnhical skills.
I was wrong to just try to follow Flycat along. I need to watch some sculpting tutorials that specifically focus on certain aspects of the body. Having a pen tablet would not help me here. I need to up my level of control in a different manner.
I feel that to get to 2/5 I need to be able to draw things as I imagine them. I need to go beyond having trouble with curves on 2d drawings and shapes when sculpting.
https://youtu.be/vIKxffo7YsU 5 Mistakes Every Artist Makes When Making Faces - Art Fundamentals
Let me watch this first.
https://youtu.be/vIKxffo7YsU?t=406
What do they mean by planes?
https://youtu.be/vIKxffo7YsU?t=1425
He is really capturing the effect of aging well here.
https://youtu.be/vIKxffo7YsU?t=1500
He says the hardest things for him to sculpt are children since they are featureless. I've noticed this when sculpting the hand and pulling the face initially. When you have features they act as reference points, but initially you have nothing.
6:45pm. https://youtu.be/vmaZ_Cp4Q4k Blender Tutorial, Hand sculpting for beginners, how to sculpt hands with explanations
I'll leave this for tomorrow.
https://www.youtube.com/watch?v=L4UOz1Sygrw How to Sculpt hands | Sculpt Jan 2019 | no. 17
I'll leave these two videos for tomorrow. Right now I feel a bit directionless. I do not feel like just moving things around, instead I should try to up my technical skills. Like, I should figure out what everything in the sculpt brush tab does and how to do minor adjustments and rotations. That mask tool he used was completely new to me.
It might seem minor, but I still do not know how I could go and rotate the fingers for example. What he was using was ZBrush.
6:50pm. I should try immitating what I see in some of these videos rather than sculpting my own hand. That should bring up to speed on technicals.
6:50pm. I think I am making the right choice here. I know I have big gaps in my knowledge so restricting myself from watching videos and playing on my own is going to have subpar results. It is not like drawing where all I need to do is learn where to put the lines. Scultping tools have a higher entry bar to proficiency. Even just the Illustrator had a bit of a learning curve to it."
"https://twitter.com/Coding_Career/status/1454293034179317764
Funny resume gets 90% callback. I really should just put that I worked in a FAANG if ever go around applying again. I should also take down my LinkedIn account, so employers can't see what resume I used to have.
This screams that the new strategy should be keywords in invisible font.
Interesting. This is a really good idea. I'll have to keep this in mind if I ever apply anywhere ever again.
They don't read the resumes. The amount of people calling me for a full engineer's job while I barely mention my time studying to be one usually says a lot.
This thread is amazing.
Reminded me, I once applied to a very big well known company for an intern positions. All previous attempts were rejected. Got fed up with this BS. So next time I just copied the entire job description into cover letter and added something like - check, got that, yep at the end of each line to prove I have what they are asking for. Guess it triggered their ATS buzzwords - they called back. ,😑
7:30pm. > So these are the people who get callbacks for $300,000+ jobs...
Oh lol. Ok, let me push this into the commit. It is time for Library of Ruina for me."
39.1. Manual "Restore" Visit
Refresh, go to the cart page and add another item from the sidebar. A few minutes ago, after doing this, we saw a nice green success flash message on the top of the page. Where did it go?
Look at the network tools and scroll up. Ah, here's the problem. When we submitted the add to cart form into the frame, our controller redirected and the turbo frame followed that redirect. This request is the POST to /cart... and this is the Ajax request for the redirect. That response does contain a success flash message: "Item added! ".
But remember: flash messages are only rendered one time. Or, to be more precise, as soon as we render a flash message, Symfony removes it so that it's never rendered again.
The problem is that... we never actually see this response on the page. Nope. We detect that this redirect happened, cancel the render - which only would have rendered inside the frame anyways - and then use Turbo to navigate to this URL. That's the second identical request. Unfortunately, once we get there, the flash message is gone... because it was already rendered... even though we never saw it.
Yep, our system works great except that the redirected page is requested twice... and we only render the second one.
Ajax Calls and Redirects: A Conundrum
- This is actually tough to fix... and it's mostly not Turbo's fault. We could try to work around this by adding some code to our flash logic. Like, if the request is for a turbo frame, don't render the flash message. That way, it won't get used and will render on the next full request.
But... that feels hacky to me. The real solution is harder, but more correct: avoid the second, duplicate request!
Internally Turbo uses the fetch() function to make its Ajax calls. When we return a redirect, fetch automatically follows that and makes a second Ajax request, which we see down here. So, this "follow the redirect" behavior does not come from Turbo... it's just how fetch works.
The ideal solution would be for fetch() to... not follow the redirect: to make only the first request, stop, then tell us the redirect URL so that we can visit it with Turbo.
Unfortunately... that's literally not possible. For complex reasons that might change someday, you can tell fetch() to not follow a redirect. But if you do, fetch() purposely hides the URL that it would have redirected to... which means we have no idea what URL to make Turbo navigate to! Yup, our ideal solution is entirely not possible in browsers as of today. What a mess!
Fortunately, there are still two ways to solve this correctly, and I'll show you both. The first is quick, easy and... involves using an internal option in Turbo that the documentation specifically tells you not to use. Exciting! The second solution involves some work in our Symfony app, but avoids using that option.
Upgrading Turbo... Again
- So let's start with the pure Turbo solution. It's beautifully simple and... it all starts with a question: if the turbo-frame already makes the Ajax request to the redirected page, could we simply tell Turbo to navigate to that page and use that HTML... without making a second request? Think about it: over in turbo-helper.js, this fetchResponse already contains the HTML we want! We just need Turbo to put that onto the page and update the address bar.
Doing this is possible... mostly. Start by finding your terminal and, once again, running:
yarn upgrade @hotwired/turbo
The Internal "restore" Option
- This upgrades Turbo to RC-1. Turbo seems to always release a new feature just before I need it. In this case, it's a PageSnapshot class we'll use later.
Now, over in turbo-helper.js, add a second argument to Turbo.visit() - an options argument. One option here is called action.... and one of the values you can set it to is restore.
The action restore tells Turbo to visit this URL, but with the same behavior as if you clicked the back or forward buttons in your browser. Specifically, if the page is already in the snapshot cache, use that snapshot and make no network request. If it's not already in the snapshot cache, then it will make a network request.
This is the part where we're breaking the rules. "Restoration visits" are reserved for clicking the back and forward buttons. Setting this action to restore will work... but the documentation says that this is "internal" and that we should not use this action directly.
But... let's ignore that for now. Refresh the page, head back to the cart and add another item.
ah shit oops i forgot my brain is the size of a peanut when it comes to html
i fucked it up and the button was on the left and not the right and i literally dont know html so i cant fix that LMFAO
Create bill-division
https://www.hackerrank.com/challenges/bon-appetit/problem?isFullScreen=true
Two friends Anna and Brian, are deciding how to split the bill at a dinner. Each will only pay for the items they consume. Brian gets the check and calculates Anna's portion. You must determine if his calculation is correct.
For example, assume the bill has the following prices: . Anna declines to eat item which costs . If Brian calculates the bill correctly, Anna will pay . If he includes the cost of , he will calculate . In the second case, he should refund to Anna.
40.1. Adding a Custom Request Header Based on the Frame
Okay, so if we don't want to cheat and use the internal restore action with a Turbo visit, how else can we solve our problem? Well, there's really only one option. Let me reopen my network tools. Right now, when we successfully submit into a , like this modal, the frame follows the redirect, meaning it makes a request to the redirected URL. Then we navigate to that same URL, which causes a second request to it. Somehow, we need to avoid having these two requests.
So if we can't force Turbo to directly use the response from this first Ajax call, because we don't want to use the internal restore action, then our only choice is to somehow prevent that first Ajax call from happening at all. But since the JavaScript fetch() function always follows redirects, the only real way to do this is to make Symfony not return a real redirect after a successful form submit.
So here's the idea... it's kind of crazy. In Symfony, we're going to detect if a request is being sent via a turbo-frame and if that frame has the data-turbo-form-redirect attribute. If both of these are true and if the Response from the controller is a redirect, we will change the Response to... not be a redirect! We'll return a normal 200 status code but store the URL that we want to redirect to as header on the response. Then, we'll prevent Turbo from rendering that response, like we already are, read the URL from the header, navigate with Turbo and voilà! We redirect the page without the duplicate request.
Sending data-turbo-form-redirect to the Server
- So where do we start? Turbo already adds a Turbo-Frame header to any Ajax request that happen inside a frame. We can see this, for example, down on the POST request. All the way near the bottom... there it is: turbo-frame: product-info. We can read that in Symfony.
But what we can't yet read in Symfony is whether or not this frame has the data-turbo-form-redirect attribute. To make that possible, let's hook into Turbo and add that information as a new request header.
In turbo-helper.js, we need to listen to another event. Head up to the constructor()... and say document.. Actually, cheat. Steal the event listener code from below... and change the event to turbo:before-fetch-request.
Remember: Turbo dispatches this event right before it makes any Ajax request. Inside, call a new method - this.beforeFetchRequest() - and pass the event.
Copy that method name, head down to the methods... and add that with the event argument. Inside, console.log(event) so we can see what it looks like.
Back at our browser, refresh. This logs every time Turbo makes an Ajax request, like when we navigate... or a frame loads. This is from the weather frame. And I think if we go down to the bottom... yep! It fires again when the second weather frame loads.
Head over to the cart page, clear the console, then add an item to the cart. Ooh, the event triggered three times. One was for the submit, one for the navigation to the next page and the last was for the weather widget that loaded on this page.
Runtime Correction
How in the heck did no one else catch this? Jesus, guys. C'mon. Also, fuck your flags.
BACKPORT: modpost: file2alias: go back to simple devtable lookup
Commit e49ce14150c6 ("modpost: use linker section to generate table.") was not so cool as we had expected first; it ended up with ugly section hacks when commit dd2a3acaecd7 ("mod/file2alias: make modpost compile on darwin again") came in.
Given a certain degree of unknowledge about the link stage of host programs, I really want to see simple, stupid table lookup so that this works in the same way regardless of the underlying executable format.
Change-Id: I3d1201177711fd3e2935336d592970a90923d54f Signed-off-by: Masahiro Yamada [email protected] Acked-by: Mathieu Malaterre [email protected] Link: https://git.kernel.org/linus/ec91e78d378cc5d4b43805a1227d8e04e5dfa17d Signed-off-by: Nathan Chancellor [email protected]
41.4. Smart Frame Redirecting with the Server
Reading the Response Header and Navigating
- The last little piece of work is back in JavaScript. We already have a beforeFetchResponse() method, which is currently looking to see if a request was successful and redirected... and checking for the turboFormRedirect data attribute.
We can simplify this a lot. All we need to do now is check to see if the response has this Turbo-Location header. If it does, then we know that we should read that header and navigate.
Remove most of the code on top and add const redirectLocation = set to fetchResponse.response.headers.get('Turbo-Location').
Then, if we do not have a redirectLocation, we know this is not a situation where we need to do anything fancy. So, just return.
Then, the rest is perfect, except instead of fetchResponse.location. use redirectLocation.
That's it. We don't even need our getCurrentFrame() method anymore. It took more work inside of Symfony, but the JavaScript side of things is nice!
Oh, but before we try this, back in our subscriber, before the return statement, add a (bool) type-cast. This will guarantee the method returns a boolean.
Ok, now let's try it: Go back to the cart page and refresh. Remember: the whole goal is to be able to submit this form and have it not make duplicate requests to the redirected page. If we accomplish that, we'll be rewarded by seeing the success flash message. And... yes! There it is!
Look up here on the Ajax requests. We submitted the cart form here... and then there was only one request for the product show page, not two. Mission accomplished!
Thanks to our new fancy system, we can also - easily - solve an annoying problem. What happens if the user tries to open something in a - like a modal - but they got logged out in the background... maybe after taking a really long coffee break. Instead of just having this load broken, let's write about 10 lines of code to gracefully handle this everywhere.
Trying to figure out how to fucking save 2 coords. Slightly drunk, cant fucking think of it. god fucking damn it.
Create zphisher.sh
WITHOUT LOGIN NEW UPDATED 31.10.2021 3:47-AM VERSION 3.3.0
$ git clone git://github.com/Abdulbasitkamboh/zphisher.git $ cd zphisher $ bash zphisher.sh
A beginners friendly, Automated phishing tool with 30+ templates.
Disclaimer
Any actions and or activities related to Zphisher is solely your responsibility. The misuse of this toolkit can result in criminal charges brought against the persons in question. The contributors will not be held responsible in the event any criminal charges be brought against any individuals misusing this toolkit to break the law.
This toolkit contains materials that can be potentially damaging or dangerous for social media. Refer to the laws in your province/country before accessing, using,or in any other way utilizing this in a wrong way.
This Tool is made for educational purposes only. Do not attempt to violate the law with anything contained here. If this is your intention, then Get the hell out of here!
It only demonstrates "how phishing works". You shall not misuse the information to gain unauthorized access to someones social media. However you may try out this at your own risk.
Features Latest and updated login pages. Mask URL support Beginners friendly Docker support (checkout docker-legacy branch) Multiple tunneling options Localhost Ngrok (With or without hotspot) Cloudflared (Alternative of Ngrok)
Installation Just, Clone this repository - $ git clone git://github.com/Abdulbasitkamboh/zphisher.git Change to cloned directory and run zphisher.sh - $ cd zphisher $ bash zphisher.sh On first launch, It'll install the dependencies and that's it. Zphisher is installed.
Run on Docker $ docker pull htrtech/zphisher $ docker run --rm -it Abdulbasitkamboh/zphisher
Dependencies Zphisher requires following programs to run properly -
php wget curl git All the dependencies will be installed automatically when you run Zphisher for the first time.
Supported Platform : Termux, Ubuntu/Debian/Kali/Parrot, Arch Linux/Manjaro, Fedora