Skip to content

Latest commit

 

History

History
774 lines (573 loc) · 43.3 KB

2020-10-30.md

File metadata and controls

774 lines (573 loc) · 43.3 KB

< 2020-10-30 >

2,729,327 events, 1,386,198 push events, 2,165,322 commit messages, 161,943,739 characters

Friday 2020-10-30 01:40:52 by Kenny8262

Create README.md

Being aware of the shift that is happening that will change how we inhabit and co-habiate on this cell we call earth, I made a decision to empty my pockets on my mind, vs making the wrong gambit, or losing all to our now unprotected banking industry. Learning Online is challenging for myself, it lacks the presence of human contact, which brings me here. In 2013 I stepped away from electronic communication Having shutdown my baby leatherforallweather. Do Not Expect Much Fom Me and you will face less Disappointment.

Trying to land on the other side of this great Change that's happening as someone trying to Leave his mark to leave this world knowing some will remember I was the one warned them many of my of peers an elders would live to see this massive shift in humanity. Funny thing is a lot will die trying stop that which Cannot be stopped. I hoped to find like minded people/extraterrestrial I have basically been a hermit since June. I miss human contact, I miss hugs! Kenneth Leach


Friday 2020-10-30 02:18:56 by Michael

New script: Bad Wineserver Killer + Wine Launch

This actually started out as me having to write custom launch parameters to a windows app I constantly use. And thus, I wrote a simple script with exports I need for the launch.

After that, I just launched the application via a bash script on my desktop. However, one day, this actually drove me completely insane as the amount of crashes it did on a hourly basis (which are not related to Wine, this crashes on windows a lot too) was such a headache and a chore, that constantly switching to desktop just to launch an application became a chore-y task in itself. Because of that, I have symlinked this script to my home folder, and I defined a shortcut so I could launch this app via a singular key on my keyboard. All good, right?... Well...

This piece of proprietary garbage™ actually started hanging wineserver in the process list, which made me unable to launch another wineserver until that other wineserver died. And so I added a special wineserver killer into the script, in case that limp-wristed twaddle of an application starts hoarding the wineserver again. And yes, this can cause data loss. I don't really care, because even without this, the application tends to have data losses periodically either way anyway. Use at your own risk.

Oh, and I hope somebody makes an open-source, or at very least Linux compatible alternative of it. Because being stuck with this proprietary garbage™ is making me lose not only my brain cells, but nerves too.


Friday 2020-10-30 03:50:56 by Doug Thayer

Bug 1665455 - Animate the Skeleton UI r=agashlin

For a better user experience during slow startups (and to match the design by Markus Jaritz), we want to animate the placeholder elements (the grey rectangles which hold the place of text and icons) with a light moving gradient.

A question may arise regarding whether the performance cost of running this animation is worth the improved user experience. My claim is yes, hinging mostly on the observation that the performance cost is small.

On my machine, one frame of the animation takes at most 0.15ms, and runs every 16.15ms. This means we eat less than 1% CPU time on one core of the system. It should also be noted that this animation runs primarily during the window wherein we are prefetching dlls, AKA while we are blocked on IO and the CPU is more likely to be idle.

On slower systems, one frame may take longer - however, on slower systems we should also be blocked more by IO, making the trade favorable.

For further anecdotal evidence of this being okay, when I run this on slow reference hardware shortly after OS startup, I do not see any dropped frames, indicating that this has very little trouble completing, and is thus quite cheap.

Regarding testing, I will invoke the same logic as for the rest of the skeleton UI patches - it would involve quite a bit of work to test this in automation given our existing frameworks. It may be worth it at some point, but certainly not while this is a feature that we are just experimenting with and which is not enabled by default.

Differential Revision: https://phabricator.services.mozilla.com/D91453


Friday 2020-10-30 04:33:32 by AnonymousRevan

rest of portugal shit

  • removed atomic research (gives +5% research speed) even tho not op ppl will bitch ti will grant nukes or some stupid shit but get 5% research from partial so it works out.
  • removed the heavy hitter generals, if we need something that big then something we can talk to ppl to fix it over portugal killing it (soviet volunteers to china etc)
  • nerf to the legit generals so more balanced around what others have so i can send volunteers (always been able too but felt generals were a lil too strong)

Friday 2020-10-30 05:17:36 by Elliot Wolk

ddrname: DDRA20 refetch ===72 new songs=== 8089 => cartoon-heroes-20th-anniversary-mix 8067 => avenger 8059 => f4sh10n 8058 => long-train-runnin-20th-anniversary-mix 8060 => our-soul 8061 => right-time-right-way 8117 => new-era 8085 => blstr 8086 => cross 8087 => level-up 8088 => mirai-da-future 8084 => sky-high-20th-anniversary-mix 8091 => give-me 8092 => alone 8093 => clarity 8094 => im-an-albatraoz 8095 => new-rules 8096 => no-tears-left-to-cry 8097 => party-rock-anthem 8098 => play-hard 8099 => something-just-like-this-alesso-remix 8090 => butterfly-20th-anniversary-mix 8100 => splash-gold 8118 => ace-out 8101 => dokusenyoku 8102 => mousou-kanshou-daishou-renmei 8103 => sukina-koto-dakede-ii-desu 8106 => crazy-shuffle 8105 => downer-and-upper 8104 => small-steps 8116 => the-world-ends-now 8114 => afterimage-d-automne 8109 => black-jackal 8115 => midnight-war 8112 => oh-my-lovely-sweety-darling 8108 => saishou-sanbai-kanzensuu 8110 => six-string-proof 8111 => toy-boxer 8107 => trill-auf-g 8113 => voltississimo 8127 => rampage-hero 6422 => haunted-maid-lunch 8128 => mikansei-no-jouki-kudou-otome-ddr-edition 7475 => sweet-home-party 4251 => une-mage-blanche 8169 => alpacore 8173 => iron-heart 8174 => stay-4-ever 8172 => ranker-killer-girl 8175 => starlight-in-the-snow 8176 => the-history-of-the-future 8178 => bounce-trippy 8179 => endless 8177 => reiwa 8180 => glitch-angel 8182 => dokodoki-valentine 7838 => i-love-you 7634 => hunny-bunny 5080 => re-generation 8183 => digital-luv 8184 => mythomane 8181 => golden-arrow 8186 => firestorm 8187 => lachryma-re-queen-m 8185 => oversoul 8188 => cyberconnect 8192 => night-of-knights-ryu-star-remix 6649 => saishuu-kichiku-imouto-flandre-s 8190 => bi 8189 => hoshikuzu-no-yoru-hate 8191 => love-kira-splash 8153 => silly-love


Friday 2020-10-30 05:30:45 by suutafni-singi

added phaseOsc2.c, removed empty phaseOSC2.py

phaseOsc2.c won't actually do much except show you (hopefully) how data will be used definitely will work on the actual functions this weekend sorry for sucking


Friday 2020-10-30 09:22:13 by Joel Robert Justiawan

Reimprove Zetrix ft. metarunner reference

Add shortcut to appear the preview VR window

reference Tari from MetaRunner due to OpenCX Zetrix is basically Van Elektronische Tari

@BastiaanOlij @GodotVR install brand new OpenXR addon and replace camera with the FPS XR player from that plugin.

hmmm there is only the demo, where's the asset plugin itself? okay. YOINK!!! lol Dani milkgang!!! just take the addon from demo. I think I missed something here...

I need VR headset and the PC for it! help! buy me PC parts!

add forgotten boot.json file on 404 werror

not sure to delete OpenVR, but idk...

Disable OpenVR gdnlib and instead enable OpenXR gdnlib

fix IsengBashedboll broken key. somehow my AnalogKiri_x Input action map accidentally deleted, idk how could this happened. oh well, I restored it. you can drag move the position of the input actions

double check RefreshDVD due to Godot bug regarding load resource pack PCK file. if you did this only on the Hexagon Engine root, the other DVD won't load!

but if you refresh now before the mod loads from the ChangeDVDMenu, and then again at Hexagon Engine refreshDVD, both internal DVDs and loaded mod PCK DVDs will load! weird! idk what's going on! supposedly Godot do not remove the internal resource files existence, or, maybe.... just uh... resource pack management werror...

I have no time to apply layer culling on every single mesh instances and cameras! aaaaaaa!!! too tired! let's just install own world to Zetrix VR viewport. Depending on the DVD, the own world and be kept or uninstalled. Once the DVD stop, it can be reinstalled again, waiting for the next DVD decision to keep or uninstall. basically I think there is DVD that doesn't play on VR which requires Zetrix viewport has its own world, and DVD that does play on VR which requires Zetrix viewport to uninstall its own world.

proposed plan:

  • Remove Copyrighted part away from the internal project, separate it as a Mod PCK, so we can publish it on Earth's stores as well.
  • It's impossible to publish to Gremuri's store due to insane copyright policies and terrible free speechness out there
  • buy me PC part!
  • hecc!, thesis haard
  • why my pipeline fails?!?!!?
  • Successfully managed to
  • I hate Earth's copyright policy!
  • Sparsdat object 3 so everyone can play Glace of Maxidorm
  • Congratulations, Mathens. Enjoy your TheFatRat

Friday 2020-10-30 12:55:08 by Marko Grdinić

"9:40am. I just got up so let me chill a little. Tonight I actually went to bed at 1am. I really am deepening my understanding of D&D wizards. It is amazing that solo play actually is viable for them. Invisibility is incredibly good, both in how it allows the MC to rest in dangerous dungeons and recover slots, and allows me to scout.

Spells are literally like superpowers.

In review, the reason why I was so bad before is because of party dynamics. Having fighters in the party actually greatly affects the gameplay - especially melee ones. They charge forward and end up dragging the entire party along with them. It greatly limits the kind of play you can do with them in.

Though it takes a while to kill them afterward, I'm pretty much raping basilisks left and right. And skull trap is amazing in the tower of Durlag. I haven't even finished the kobold mines, but I am already over what would be the level cap for the original game.

Given that I only have the standard invisibility spell, actually bringing a full party into that dungeon would not allow me to cast it on everybody. But when I am alone, and have it on myself once I rest, suppose I get surrounded by monsters, I can just move away a little and try again.

9:50am. Blindness is amazing. I ran into a fully armed party in the basilisk area and ended up kiting it. Once it sticks, the guy is out for good. I wiped them all out by slinging them to death while they just stood there. It took a while, but it got the job done.

Going through my memory, I remember protection from petrification being an issue - just like for invis, the wizards have limited spell slots, and with a bunch of meleers they would need to use them all just to cast it on them.

10am. Skull trap is my main damage dealer, but if I had a full party what exactly could I do with it? I'd cast it, and then my own figters would run into it. The same goes for other attack spells. Either their damage output was very underwhelming, or they'd blast the other guys in my party.

The kind of abuse I am putting on my enemies is really fun - it feels like I am playing a roguelike more than anything else.

Maybe the lesson is that wizards are the most powerful when they are alone. When they are doing stealth, blasting from beyond the field of vision and setting traps, they don't need a bunch of jocks in plate armour turning every battle into a rugby match.

10:10am. I got it out of my system. Let me do my morning reading and then I will start. Today I really do intend to focus on programming.

10:45am. Let me get breakfast here. After that I'll focus for the whole day. The gaming session yesterday was so good that I'll make the breakfast short so I can finally deal with everything today.

12:10pm. So much for it being short. But I did get the chores out of the way too.

Let me finally start.

12:20pm. I had a good start for a bit there, but now I am getting lost in daydreams.

Thinking about the validate function, it almost I've suffered amnesia.

type PackageValidatorReq =
   | VReplace of projDir: string * packages: (VSCRange * string) list
   | VRemove of projDir: string

let package_validator (req : (PackageValidatorReq list * {|projDir : string; errors : VSCError list|} Src) Stream) =
   let links = create_mirrored_graph()
   let data = Dictionary()
   let errors = Dictionary()
   req |> Stream.consumeJob (fun (l, res) ->
       let dirty_nodes = HashSet()
       l |> List.iter (function
           | VReplace(dir,l) ->
               dirty_nodes.Add(dir) |> ignore
               data.[dir] <- l
               remove_links links dir
               l |> List.iter (fun (_,package_dir) -> add_link' links dir package_dir)
           | VRemove dir ->
               dirty_nodes.Add(dir) |> ignore
               data.Remove dir |> ignore
               errors.Remove dir |> ignore
               remove_links links dir
           )
       let order, circular_nodes = circular_nodes links dirty_nodes
       order |> Array.iterJob (fun projDir ->
           data.[projDir] |> List.collect (fun (r,dir) ->
               if data.ContainsKey(dir) = false then ["The package does not exist (or has not been loaded yet.)",r]
               elif circular_nodes.Contains(dir) then ["The current package is a part of a circular chain whose path goes through this package.",r]
               elif errors.ContainsKey(dir) then ["The package or the chain it is a part of has an error.",r]
               else []
               )
           |> function
               | [] -> errors.Remove(projDir) |> ignore; Src.value res {|projDir=projDir; errors=[]|}
               | er -> errors.[projDir] <- er; Src.value res {|projDir=projDir; errors=er|}
           )
       >>=. Src.close res
       )

Reading this reminded me that I first have to collect the dirty nodes and then do the reverse post order of the reverse graph.

12:25pm. As a matter of fact, this is something that completely slipped my mind yesterday and even a little bit today until I refreshed my memory.

I said I would do a new design, but I completely forgot about the features of the old one in this new context.

12:25pm. It just goes to show difficult this is for me. I won't look down on this.

Let me dedicate to at least doing the validator properly. I won't rush this.

12:30pm. Right now the month is almost over. Tomorrow I will take a break to do the review.

I feel sad how the last 3 weeks went. But eventually the compilation pipeline will be complete.

The way I am playing my life is much like a solo wizard in BG yesterday. Compared to the mongolian horseback archer-styled playthrough of the Icewind Dale campaign, the lone wizard often needs to rest. So it is not a very in-game time efficient way of playing. Fire a few spells and then take a 8h rest. That is spew.

12:35pm. For some reason the vancian spell system that D&D uses is oddly realistic compared to the spell-point ones. In programming, I do have to constantly rehearse things in my mind before I can turn it into actual code.

12:40pm. Yeah, I feel sad. I spent like 3 weeks, but despite that right now I have 300 lines of code commented out that I must redo.

That is going to take me at least half a week to do, and more likely even longer.

12:45pm. Before I start, let me take some time to dwell on the determination to do the job in front of me.

A part of me is saying to leave this aside and just play Baldur's Gate, but at my age I know that if I do not work today, I won't work tomorrow. If I absolutely cannot program due to the urge, I'd rather shut down the computer and spend the rest of the day in bed.

As deep as my love for games is, I have a lot of resentment for them because they never gave me power in the real world. One of the main reasons I choose my path is in order to stand against that.

I am a failure, but I've decided long ago that in order to wipe that shame is to actually draw out the power of the machines. I just cannot stand the thought that my love is a complete delusion.

Right now the world is at the very apex of culture. People transported from the early age would find what computers can do an absolute wonder. And yet the world seems to be filled with NPCs who are 'used' to it. To them games are no different from drugs.

I just cannot fucking stand this thought!

I won't let my abilities and my affection be a waste. I am going to fight in order to get what I deserve even if I have to turn this universe into a realm of hell. So what if those normies without the self improvement aptitude and affinity for machines will get fucked in the new age, let them. They've deserve what is coming to them.

When you see good and evil as objective, you also see humanity as one big family. But at 33, I can't help but notice that the world seems to be made up of various teams, and that if my side does not win, things are going to be really bad for me. I am going to die like some lunatic and become a pile of shit in the ground. I feel the urge to contribute so as to avoid that.

12:55pm. My subconciousness might be lying to me, but the reality I seem to understand, but very few people do is, that the subconscious is lying to everybody. The arrogance of the NPCs is that they believe in their own perception way too much.

1pm. One day the power of having the correct perspective will assert itself.

1:05pm. I am feeling pressured by the review.

Let me collect the different strands of thought.

  1. A part of me is happy about finally resolving some of the tough design problems, and knowing how to do the loader and the compilation as regular job. The insight is real and fruit of my labour.

  2. A part of me wants to get this work done and continue making progress on the compilation pipeline.

  3. A part of me is absolutely fatigued. Right now, with most of the Server.fs commented out, I actually have less functionality than 3 weeks ago when I started on this! Right now everything is broken and I can't even run the plugin.

I am so fatigued that I actually feel sadness and have a sense of loss. I did such wonderful work on the code generator in the first week, but what happened in the last three was hell.

1:20pm. What I need to do is make up my mind and leave the month behind me.

1:25pm. I actually hadn't at all anticipated that I'd want to take a day off from programming today. On paper there is no reason why I should not focus on the validator, but at this pivotal point when I starting everything from scratch, why not refresh my desire?

1:30pm. When I started this 3 weeks ago, my vision of how things would go was different. I actually was not sure whether I'd focus on the compilation pipeline or if I'd do testing.

Right now, at this point my thoughts about testing are waaay in the back of my mind. I am fully focused on the compilation pipeline and it is fully formed in my mind as its own pass.

Dealing with the compilation pipeline is definitely a major goal on its own now for me.

I've received a lot of beating from it, and now I have every intention of treating it with proper respect.

1:45pm. Ok, here is what I am going to do for the rest of the day.

Let me take a bath here. Then I'll write the review. Then if there is still time, I'll spend that in bed till 6pm. Hopefully today's gaming session won't last till 1am, so when I get up tomorrow, I will put my sadness behind me and focus on the gains instead.

Thought I've fallen way behind schedule, it does not change the fact that dealing with the compilation pipeline would be a major asset. I need to get this done.

What I need now is the determination to do it, even if it takes me entirety of the following month.

If takes the whole month - that that is fine!

I am going into the battle with that mindset. It will be hard to win, but I must do it.

And I must master the needed concurrency skills to do it. I must program more.

I need to do this. And I will benefit greatly from this.

I must home in on this thought. I must believe in it.

The last 3 weeks were a huge failure, but even so, I got valuable experience from it. My concurrency skills are going up.

Eventually they are going to be good enough to do things smoothly like in the previous passes."


Friday 2020-10-30 13:57:25 by ilyaizr

fucked up commit, shits fucked up, vue fucked up, q-select fucked up fuking hate all of this but something valueble MIGHT be here who knows ffs


Friday 2020-10-30 14:32:47 by fourpastmidnight

Reorder some things; comment out some things; lots of stuff

OK, still trying to make heads and tails of all the various scripts which exist "out in the wild" to accomplish setting up a Windows server as a Kubernetes node. I learned a lot yesterday.

I started with the official instructions at the Kubernetes website, which tells you to run http://github.com/kubernetes-sigs/sig-windows-tools/blob/v0.1.3/kubeadm/scripts/PrepareNode.ps1, and then run a few more commands and "it just works". Except, what I didn't know is that that's only true if you're running Windows Server 2019 1809 (and now, maybe 1903--and even more maybe 1909--though I've seen a lot of reports that 1909 doesn't work too well out of the box).

Anyway, that's when I found at the same repo, KubeCluster.ps1 and KubeClusterHelper.psm1, which had a lot of the same functions over at the Microsoft/SDN GitHub repo. And so these two scripts became the basis of this script module.

Fast forward, I learned yesterday that things must have changed. You don't need to run Flanneld on the node's host OS anymoer. That's covered by flannel-overlay.yml which is applied to the cluster on the control plane. Same with kube-proxy: you don't need a local service for Kube Proxy, it runs in a pod in the kube-system namespace by virtue of applying kube-proxy.yml. In a similar manner, because Flannel is not being installed on the host OS, there's no reason to configure CNI on the host OS--that's taken care of in the kube-flannel-windows-* pod container. However, one thing that is missing is Rancher Wins. This is required to run on the host OS--it allows a container to run commands on the local Windows host. Note that this is a peculiarity of Windows at this time.

Anyway, this commit adds support for installing Rancher Wins. It also changes around the ordering of some things in Join-KubernetesCluster. But, running these cmdlets still won't get you a working cluter node--YET. There's still a problem with the kube-proxy-windows pod container.

So up next are:

  1. Resolving the issue with the kube-proxy-windows pod container
    • this will probably result in changing where things are "installed", from C:\ProgramData\Kubernetes (where KubeCluster.ps1 installed things) to C:\k (where PrepareNode.ps1) installs things--as I think this is part of the issue. (Actually, the real issue may be that I was using c:\k as a working directory while running the cmdlets in this script module, but the kube-proxy-windows pod container tries to put things in the c:\k folder--and so maybe this is causing the container issues. So to avoid this--let's just agree to not use c:\k as "scratch space")
  2. Remove any unnecessary cmdlets.
    • By my count, a lot of cmdlets have now become superflous. And the good news is, they were big ones!
      • Install-ContainerNetworkInterface
    • Install-FlannelD
    • Install-KubeProxy
    • New-NerviceEX
    • New-SerivceWrapper
    • Set-CniConfiguration
    • WaitForNetwork

Also, I've decided that I am NOT going to do any rebasing on this branch after all. As much as I love a clean commit history, I've learned too much to rebase it away, and so the history will remain unchanged. So please feel free to clone this repo if you desire.


Friday 2020-10-30 14:36:58 by Ryan Soeyadi

So I went back to go over my code this morning and discovered that it still had a bug, and I decided that this was getting ridiculous. I scrapped the List idea and just researched online some sorting algorithms and thus, I ended up with bubble sort. Of course this shrunk my code by about 95%. Overall I am a bit frustrated at how I overcomplicated this. My original thought process was:

Create an EMPTY array and fill that up with each element as I sort. Because I thought I needed an empty array initially, that's why I thought I needed to use a more complicated data structure like the ArrayList. This was of course completely unnecessary, and I could've saved a few hours of work. Although it was frustrating, I suppose I learned a great deal figuring this out. I should work more on these types of problems since I seem to have trouble with sorting algorithms at the moment.


Friday 2020-10-30 15:18:31 by avidgameboy

Create Yes.

Testestestestes Today on Bottom Gear, I drive a Silent Electric Car™, Hammond uses a fookin toilet and James commits arson. WARNING SHOWN BUDGET DOES NOT EXCEED 23¥ Good evening ladies and gents today, our todayz sponsor is MSI colgate b450 check them out, promo code: revving my wife tonoight. Today we will be reviewing one of a kin vehicle that has about 2.3 ghz revving engine sound, goes up to idk 88 mm per every time I find a proper job in today's economy. helo mate we're going to asda you want anything. MMM MMMMMMMMMM MMMMM. oy luv you posh dickhead oy 'ave cum bak gimme a siggy innit cheesed off bloke daft fucker bollocks fish and chips bloody bloody arse. hammon you tiny man where is the lambo chevy? gon ei crashed it into James car. hammond you sodding tic tac this was my lamborghini aventador. call 999 my fokin car's beaning on Fire mate. ham ond i have crack addiction i am die. Jeremy I have to write divorce papers today I don't know what to do next please help me I can't go o-. we don ot have petroleum hmalet. Tody on Medium gear, what happens when taste exhoost fume? K, I'll have a whiff. Ery nice. No Jeremia, car gad bas for health. Shut mouth hammock. cock. shut up jams. th Esped is a lot mate ! weed. car. feet. Bottom Gear.


Friday 2020-10-30 16:35:13 by Ian J Sikes

Animate group

So we've animated our shapes, but wouldn't it be cool if we could animate the entire shape cluster? Let's try it out. Same as before, make a ref, put it on the group, and then call the useFrame hook.

I'm thinking we'll want some back-and-forth motion again, so we'll use Math.sin. Let's try rotating the entire group around the y axis.

Look at that! That's a pretty nice swivel we've got going on. Let's call that the end of section two. Now, another break. During the break, if you'd like, play around with the animations we made. Try adjusting some of the coefficients, or using different easing functions. If you're feeling adventurous, try animating different properties, like the scale of the group, or rotate the spheres on the z-axis, etc.


Friday 2020-10-30 18:09:23 by MorganRuffell

Current Version

I need to fix fall damage, as It's not working properly and get my super classes to work properly as the code base expands it's going to be heavier on the system. Honestly today has been pretty difficult and this week has been pretty hard, I want to just curl up into a ball and die. I'm thinking that we are doing okay despite coronavirus and having to deal with the constant critisism of every thing I do is bad enough


Friday 2020-10-30 19:35:20 by Στέφανος "Coornio/8924th" Βλαστός

some refactoring

GLSL - Nothing interesting here, just regular updates from the main game.

stdedit.cfg: addition of scroll condition to teleport through selected ents, temp fix for entswithdirection until I bother later to add a better 2D/3D rotation bind system.

style.cfg: Addition of a few more padding variables for better consistency. lib.cfg: Oh boy, where to begin. Addition of uiclamp shortcuts for a bit of code cleanup, this change extends to ALL other cfg files across the board too. The following functions have been updated to to default to a certain size if no explicit XY is provided, or clamp either axis. Some also became clamp compatible so explicit XY is no longer a requirement for use:

UIfastimg, UItriangle, UIcheckbox, UIradio, UIbutton, UIvscroll, UIhscroll, UIvsliderslim, UIhsliderslim, UIvcolorslider, UIhcolorslider, UIvspectrumslider, UIhspectrumslider.

Minor cleanups across the board, lots of menus had their "magic numbers" for XY adjusted to use the padding vars.

map_browser.cfg: Still hating how it looks, but now at least you can load maps properly, I fixed the issue with it forgetting which map was selected. Long file names still break the fixed size of entries.


Friday 2020-10-30 21:13:37 by Jeff King

sideband: diagnose more sideband anomalies

In demultiplex_sideband(), there are two oddities when we check an incoming packet:

  • if it has zero length, then we assume it's a flush packet. This means we fail to notice the difference between a real flush and a true zero-length packet that's missing its sideband designator. It's not a huge problem in practice because we'd never send a zero-length data packet (even our keepalives are otherwise-empty sideband-1 packets).

    But it would be nice to detect and report the error, since it's likely to cause other confusion (we think the other side flushed, but they do not).

  • we try to detect packets missing their designator by checking for "if (len < 1)". But this will never trigger for "len == 0"; we've already detected that and left the function before then.

    It could detect a negative "len" parameter. But in that case, the error message is wrong. The issue is not "no sideband" but rather "eof while reading the packet". However, this can't actually be triggered in practice, because neither of the two callers uses pkt_read's GENTLE_ON_EOF flag. Which means they'd die with "the remote end hung up unexpectedly" before we even get here.

    So this truly is dead code.

We can improve these cases by passing in a pkt-line status to the demultiplexer, and by having recv_sideband() use GENTLE_ON_EOF. This gives us two improvements:

  • we can now reliably detect flush packets, and will report a normal packet missing its sideband designator as an error

  • we'll report an eof with a more detailed "protocol error: eof while reading sideband packet", rather than the generic "the remote end hung up unexpectedly"

  • when we see an eof, we'll flush the sideband scratch buffer, which may provide some hints from the remote about why they hung up (though note we already flush on newlines, so it's likely that most such messages already made it through)

In some sense this patch goes against fbd76cd450 (sideband: reverse its dependency on pkt-line, 2019-01-16), which caused the sideband code not to depend on the pkt-line code. But that commit was really just trying to deal with the circular header dependency. The two modules are conceptually interlinked, and it was just trying to keep things compiling. And indeed, there's a sticking point in this patch: because pkt-line.h includes sideband.h, we can't add the reverse include we need for the sideband code to have an "enum packet_read_status" parameter. Nor can we forward declare it, because you can't forward declare an enum in C. However, C does guarantee that enums fit in an int, so we can just use that type.

One alternative would be for the callers to check themselves that they got something sane from the pkt-line code. But besides duplicating logic, this gets quite tricky. Any error condition requires flushing the sideband #2 scratch buffer, which only demultiplex_sideband() knows how to do.

Signed-off-by: Jeff King [email protected] Signed-off-by: Junio C Hamano [email protected]


Friday 2020-10-30 21:55:10 by Aleksa Sarai

open: introduce openat2(2) syscall

/* Background. */ For a very long time, extending openat(2) with new features has been incredibly frustrating. This stems from the fact that openat(2) is possibly the most famous counter-example to the mantra "don't silently accept garbage from userspace" -- it doesn't check whether unknown flags are present1.

This means that (generally) the addition of new flags to openat(2) has been fraught with backwards-compatibility issues (O_TMPFILE has to be defined as __O_TMPFILE|O_DIRECTORY|[O_RDWR or O_WRONLY] to ensure old kernels gave errors, since it's insecure to silently ignore the flag2). All new security-related flags therefore have a tough road to being added to openat(2).

Userspace also has a hard time figuring out whether a particular flag is supported on a particular kernel. While it is now possible with contemporary kernels (thanks to [3]), older kernels will expose unknown flag bits through fcntl(F_GETFL). Giving a clear -EINVAL during openat(2) time matches modern syscall designs and is far more fool-proof.

In addition, the newly-added path resolution restriction LOOKUP flags (which we would like to expose to user-space) don't feel related to the pre-existing O_* flag set -- they affect all components of path lookup. We'd therefore like to add a new flag argument.

Adding a new syscall allows us to finally fix the flag-ignoring problem, and we can make it extensible enough so that we will hopefully never need an openat3(2).

/* Syscall Prototype. / /

  • open_how is an extensible structure (similar in interface to
  • clone3(2) or sched_setattr(2)). The size parameter must be set to
  • sizeof(struct open_how), to allow for future extensions. All future
  • extensions will be appended to open_how, with their zero value
  • acting as a no-op default. / struct open_how { / ... */ };

int openat2(int dfd, const char *pathname, struct open_how *how, size_t size);

/* Description. */ The initial version of 'struct open_how' contains the following fields:

flags Used to specify openat(2)-style flags. However, any unknown flag bits or otherwise incorrect flag combinations (like O_PATH|O_RDWR) will result in -EINVAL. In addition, this field is 64-bits wide to allow for more O_ flags than currently permitted with openat(2).

mode The file mode for O_CREAT or O_TMPFILE.

Must be set to zero if flags does not contain O_CREAT or O_TMPFILE.

resolve Restrict path resolution (in contrast to O_* flags they affect all path components). The current set of flags are as follows (at the moment, all of the RESOLVE_ flags are implemented as just passing the corresponding LOOKUP_ flag).

RESOLVE_NO_XDEV       => LOOKUP_NO_XDEV
RESOLVE_NO_SYMLINKS   => LOOKUP_NO_SYMLINKS
RESOLVE_NO_MAGICLINKS => LOOKUP_NO_MAGICLINKS
RESOLVE_BENEATH       => LOOKUP_BENEATH
RESOLVE_IN_ROOT       => LOOKUP_IN_ROOT

open_how does not contain an embedded size field, because it is of little benefit (userspace can figure out the kernel open_how size at runtime fairly easily without it). It also only contains u64s (even though ->mode arguably should be a u16) to avoid having padding fields which are never used in the future.

Note that as a result of the new how->flags handling, O_PATH|O_TMPFILE is no longer permitted for openat(2). As far as I can tell, this has always been a bug and appears to not be used by userspace (and I've not seen any problems on my machines by disallowing it). If it turns out this breaks something, we can special-case it and only permit it for openat(2) but not openat2(2).

After input from Florian Weimer, the new open_how and flag definitions are inside a separate header from uapi/linux/fcntl.h, to avoid problems that glibc has with importing that header.

/* Testing. */ In a follow-up patch there are over 200 selftests which ensure that this syscall has the correct semantics and will correctly handle several attack scenarios.

In addition, I've written a userspace library[4] which provides convenient wrappers around openat2(RESOLVE_IN_ROOT) (this is necessary because no other syscalls support RESOLVE_IN_ROOT, and thus lots of care must be taken when using RESOLVE_IN_ROOT'd file descriptors with other syscalls). During the development of this patch, I've run numerous verification tests using libpathrs (showing that the API is reasonably usable by userspace).

/* Future Work. */ Additional RESOLVE_ flags have been suggested during the review period. These can be easily implemented separately (such as blocking auto-mount during resolution).

Furthermore, there are some other proposed changes to the openat(2) interface (the most obvious example is magic-link hardening[5]) which would be a good opportunity to add a way for userspace to restrict how O_PATH file descriptors can be re-opened.

Another possible avenue of future work would be some kind of CHECK_FIELDS[6] flag which causes the kernel to indicate to userspace which openat2(2) flags and fields are supported by the current kernel (to avoid userspace having to go through several guesses to figure it out).

[3]: commit 629e014bb834 ("fs: completely ignore unknown open flags") [4]: https://sourceware.org/bugzilla/show_bug.cgi?id=17523 [5]: https://lore.kernel.org/lkml/[email protected]/ [6]: https://youtu.be/ggD-eb3yPVs

Suggested-by: Christian Brauner [email protected] Signed-off-by: Aleksa Sarai [email protected] Signed-off-by: Al Viro [email protected]


Friday 2020-10-30 22:22:24 by Seba-A

Now you can assign tasks

I fucken did it, Hell yeah bitcheeeeesss. There is a small bug (you can place more than one task in the same slot) but other than that it works deliciously


Friday 2020-10-30 22:50:10 by ConsolePeasant92

added the files again, but now in lowercase (fuck you git)


Friday 2020-10-30 23:43:32 by Rob Graham

version 1.01 Release.

Fobs, Intel updates, Changes to the handling of some DCS-TCP link items. Adjustment of AI responses to threats. Etc. There's a lot...

  • Reenabled Blue Air AI Cap items.
  • Added Some Dynamic Spawns that happen if Blue takes Red Bases.
  • Added a number of new slots for Heli's
  • Added 4 new slots at Kish for A10's.

Persia Aflame Version 1.01 "FOBS R US" Update.

Dan's Discount Military Hardware has recently found an abundance of farp pads and at the low low cost of $$$$$$$ from you to him, has arranged for the installation of many in the persian gulf.. more specifically IRAN!

That's right, Dan's quality engineers hired from Hercules Merow Construction for the low low cost of a few grams of KatNip have pilled their kitty litter and cat shit up into nice new pads that you can now fight over..

Doing so will: A. Unlock UH1 and KA50 slots. B. Unlock the ability to rearm and refuel at these locations.....

it does not add Logistics to the places and Until I add every one of these damned slots to CTLD (I'm doing that after this post......... god help me.. I was only 19 once.. 20 years ago).. You'll be able to if you bring a damned FOB with you when you capture them.. pick up ctld shit as well.

Patch Notes:

  1. about 8 or so new FARPs added ot he map.
  2. about 24 - 48 new heli slots added.. I ain't in the mood to do math.
  3. Bunch of units and code to support the above.

Marker points for the new FOBs showing owner/location. New FOB's sent to the Webmap as Airfields.

  • Intel will now give you a time stamp for WHEN it was created on the marker point.
  • Troops Dropped by GM now can show up as part of the intel dump for SCUD, ARTY, ARMY sites making at least getting base info on them easier.

< 2020-10-30 >