Skip to content

Latest commit

 

History

History
495 lines (339 loc) · 26.4 KB

2023-01-18.md

File metadata and controls

495 lines (339 loc) · 26.4 KB

< 2023-01-18 >

there were a lot of events recorded by gharchive.org of which 1,457,103 were push events containing 2,087,596 commit messages that amount to 153,228,071 characters filtered with words.py@e23d022007... to these 16 messages:

Wednesday 2023-01-18 01:31:46 by Tom Tseng

kubernetes: Log git commit for experiments (#53)

Description

Changes

Logs the git commit for an experiment in a commit file:

  • kubernetes/update_images.py passes in the git commit as a --build-arg, which is saved as environment variable GIT_COMMIT inside the image
  • kubernetes/log-git-commit.sh logs a timestamp and commit into a file called commit in the experiment output directory

Other notes

(optional reading)

We also discussed logging the Docker digest/hash, which I did not implement in this PR. A few reasons:

  • ideally the git commit is enough to look up the image in Docker Hub or to rebuild the image
  • docker digests are kinda confusing — there's the digest you see on Docker Hub, then there's the platform-specific digest you get when you pull from Docker Hub, and then there's the image ID, all of which are different
    • but I think in summary we can get the digest you see on Docker Hub via docker inspect --format='{{index .RepoDigests 0}}' <image>, and then that digest can be used to pull images (docker pull humancompatibleai/goattack@sha256:<digest>)
  • it's slightly more annoying to log because it can't be saved as an environment info inside the image (the image needs to be built and pushed before we can get a digest for it). So we'd need to fetch the digest in launch-job.sh and plumb it through as an argument to log-git-commit.sh

Testing

  • launched two match replicas and checked that commit file was populated
    • it's probably possible that multiple match replicas will race and write to the commit file simultaneously, but I'd guess this is rare and unimportant enough that it's OK if commit is occasionally messed up
  • launched a curriculum replica and checked that commit file was populated
  • ran kubernetes/log-git-commit.sh a few times locally and checked that a new line is added to commit if GIT_COMMIT changes

Wednesday 2023-01-18 01:32:57 by samo priimek

pulse demon tweaks (#33690)

  • remove the stupid maxcharge tweak

  • sneed

  • comment unused stuff

  • revert everything

  • prevent you from killing yourself stupidly

  • suck SMES faster, gain maxcharge when sucking APC's

  • remove the capacity upgrade

  • tweak the ability costs and upgrades


Wednesday 2023-01-18 02:19:37 by Billy Einkamerer

Created Text For URL [nypost.com/2023/01/17/i-caught-my-boyfriend-cheating-through-another-womans-grwm-tiktok/]


Wednesday 2023-01-18 03:16:13 by Billy Einkamerer

Created Text For URL [www.iol.co.za/news/news/south-africa/eastern-cape/man-sentenced-to-life-imprisonment-for-murder-of-his-girlfriend-7968dd0c-a966-493b-862d-48cd34ba8a97]


Wednesday 2023-01-18 06:27:07 by caleb

Fixed errors see commit desc

I added math for converting encoder readings to real life values. I also added some network table entry's for reading encoder values. Lastly I found the problem from tonight, we had outdated dependency's (god I hate gradle)


Wednesday 2023-01-18 06:33:21 by T.Jay

Create Run.js

Build a script to run our contract

So, this is what run.js is going to have:

const main = async () => {
  const waveContractFactory = await hre.ethers.getContractFactory("WavePortal");
  const waveContract = await waveContractFactory.deploy();
  await waveContract.deployed();
  console.log("Contract deployed to:", waveContract.address);
};

const runMain = async () => {
  try {
    await main();
    process.exit(0); // exit Node process without error
  } catch (error) {
    console.log(error);
    process.exit(1); // exit Node process while indicating 'Uncaught Fatal Exception' error
  }

line by line here:

const waveContractFactory = await hre.ethers.getContractFactory("WavePortal");

This will actually compile our contract and generate the necessary files we need to work with our contract under the artifacts directory. Go check it out after you run this .

const waveContract = await waveContractFactory.deploy();

What's happening here is Hardhat will create a local Ethereum network for us, but just for this contract. Then, after the script completes it'll destroy that local network. So, every time you run the contract, it'll be a fresh blockchain. What's the point? It's kinda like refreshing your local server every time so you always start from a clean slate which makes it easy to debug errors.

await waveContract.deployed();

We'll wait until our contract is officially deployed to our local blockchain! Our constructor runs when we actually deploy.

console.log("Contract deployed to:", waveContract.address);

Finally, once it's deployed waveContract.address will basically give us the address of the deployed contract. This address is how we can actually find our contract on the blockchain. There are millions of contracts on the actual blockchain. So, this address gives us easy access to the contract we're interested in working with! This will be more important a bit later once we deploy to a real Ethereum network.

run it!

npx hardhat run scripts/run.js

Hardhat & HRE

In these code blocks you will constantly notice that we use hre.ethers, but hre is never imported anywhere? What type of magic trick is this?

Directly from the Hardhat docs themselves you will notice this:

The Hardhat Runtime Environment, or HRE for short, is an object containing all the functionality that Hardhat exposes when running a task, test or script. In reality, Hardhat is the HRE.

So what does this mean? Well, every time you run a terminal command that starts with npx hardhat you are getting this hre object built on the fly using the hardhat.config.js specified in your code! This means you will never have to actually do some sort of import into your files like:

const hre = require("hardhat")


Wednesday 2023-01-18 06:40:19 by Clint J Edwards

feat: Pipelines are now versioned

In order to eventually have canary-able deployments in Gofer we must first support versioned pipelines.

This allows us to:

  • Have a good target in which to roll back and forward.
  • Understand what we are gaining and losing on each change.
  • Track each update as it happens.

This is not easy though as pipelines have parts which are easy to version (namely the config) and parts which are much harder to version (how do we handle the cutting over of triggers?).

Because of this nuance, we've had to redesign a lot of earlier assumptions for how Gofer models worked. This was a major refactor and since I was here I made a few other large sweeping changes.

  • Full storage package refactor: The storage layer was hard to use, brittle, and inflexible. I've refactored it, leaning a bit more on sqlx and going back to basics. I tried to make the storage package work in the past by keeping the domain models to a minimum. I've since learned this does not work once things become reasonably complicated. One of the main refactors to the storage package is the introduction of dedicated storage models. This means that I have to write a bunch of boilerplate code to switch from in-memory models to the storage ones, but the looser coupling is worth it. More storage refactors coming as I learn what works at large scale and what doesn't. https://github.com/go-jet/jet looks interesting.

  • Removal of Triggers as Pipeline configuration: I desparately wanted to have pipeline configurations encompass everything a pipeline would have to offer, so that it was easy to look at a config and know exactly what was going on in a particular pipeline. Triggers were a pain in the ass though. Triggers unfortunately occupy a very special place in Gofer's archetecture. Without triggers nothing really gets done. And so allowing the user to apply all the same functionality to triggers as they would with any other deployment was short-sighted. Triggers don't make a lot of sense as a canary deployment. Triggers aren't ephemeral, they are either on or their off. No in-between.

Instead Triggers can now be added to your pipeline via the command line. This way trigger subscriptions aren't held down by the paradigms of configuration change.

  • Pipelines are now versioned: Not only have we added versions to pipelines, but they now have deployments and configurations and metadata and a lot of smaller loosely coupled parts so that they aren't a huge data monolith. This means a lot of breaking changes for outward (and inward for that matter) apis.

  • Just lots of general breakages everywhere: Pretty much a large percentage of things just aren't the same anymore.


Wednesday 2023-01-18 07:06:31 by bbbbbbbbbbbbbbbbbbbbbbbbb

v1.11 updated documentation added desc column bc fuck you


Wednesday 2023-01-18 07:19:33 by toppye

Whats my name, If you spend too much time thinking about a thing, you ll never get it done, To hell with circumstances; I create opportunities, A goal is not always meant to be reached, it often serves simply as something to aim at, Most hackers are young because young people tend to be adaptable. As long as you remain adaptable, you can always be a good hacker


Wednesday 2023-01-18 07:30:36 by FaustinOdong

<style>

.p3 { font-family: "Lucida Console", "Courier New", monospace; } </style>

<style> body { background-color: lightblue; } </style>

!DOCTYPE html>

Narcissistic Personality Disorder?

What is Narcissistic Personality Disorder?

Narcissistic personality disorder is a mental health condition in which people have an unreasonably high sense of their own importance. They need and seek too much attention and want people to admire them. People with this disorder may lack the ability to understand or care about the feelings of others. But behind this mask of extreme confidence, they are not sure of their self-worth and are easily upset by the slightest criticism.

A narcissistic personality disorder causes problems in many areas of life, such as relationships, work, school or financial matters. People with narcissistic personality disorder may be generally unhappy and disappointed when they're not given the special favors or admiration that they believe they deserve. They may find their relationships troubled and unfulfilling, and other people may not enjoy being around them.

Treatment for narcissistic personality disorder centers around talk therapy, also called psychotherapy.

Narcissistic personality disorder affects more males than females, and it often begins in the teens or early adulthood. Some children may show traits of narcissism, but this is often typical for their age and doesn't mean they'll go on to develop narcissistic personality disorder.

Click Me!

Symptoms

Symptoms of narcissistic personality disorder and how severe they are can vary. People with the disorder can:

Have an unreasonably high sense of self-importance and require constant, excessive admiration. Feel that they deserve privileges and special treatment. Expect to be recognized as superior even without achievements. Make achievements and talents seem bigger than they are. Be preoccupied with fantasies about success, power, brilliance, beauty or the perfect mate. Believe they are superior to others and can only spend time with or be understood by equally special people. Be critical of and look down on people they feel are not important. Expect special favors and expect other people to do what they want without questioning them. Take advantage of others to get what they want. Have an inability or unwillingness to recognize the needs and feelings of others. Be envious of others and believe others envy them. Behave in an arrogant way, brag a lot and come across as conceited. Insist on having the best of everything — for instance, the best car or office.

Click Me!

The exact cause of Narcissistic Personality Disorder (NPD) is not known, but it is thought to be a combination of genetic and environmental factors. Some theories suggest that childhood experiences, such as excessive pampering, neglect, or abuse, may contribute to the development of NPD.

Treatment for NPD typically involves long-term psychotherapy with a therapist who has experience in treating personality disorders. The goal of therapy is to help the person with NPD understand the impact of their behavior on others and to learn to relate to others in a more empathetic and healthy way. Medications, such as antidepressants, may also be prescribed to help manage symptoms.

It is important to note that individuals with NPD often have difficulty recognizing that they have a problem and may be resistant to seeking treatment. Therefore, it may take a lot of effort from loved ones or a therapist to convince them to seek help.

Click Me!

At the same time, people with narcissistic personality disorder have trouble handling anything they view as criticism. They can:

Become impatient or angry when they don't receive special recognition or treatment. Have major problems interacting with others and easily feel slighted. React with rage or contempt and try to belittle other people to make themselves appear superior. Have difficulty managing their emotions and behavior. Experience major problems dealing with stress and adapting to change. Withdraw from or avoid situations in which they might fail. Feel depressed and moody because they fall short of perfection. Have secret feelings of insecurity, shame, humiliation and fear of being exposed as a failure.

Click Me!

WHEN TO SEE A DOCTOR

People with narcissistic personality disorder may not want to think that anything could be wrong, so they usually don't seek treatment. If they do seek treatment, it's more likely to be for symptoms of depression, drug or alcohol misuse, or another mental health problem. What they view as insults to self-esteem may make it difficult to accept and follow through with treatment.

If you recognize aspects of your personality that are common to narcissistic personality disorder or you're feeling overwhelmed by sadness, consider reaching out to a trusted health care provider or mental health provider. Getting the right treatment can help make your life more rewarding and enjoyable.

Click Me!

Causes

It's not known what causes narcissistic personality disorder. The cause is likely complex. Narcissistic personality disorder may be linked to:

Environment — parent-child relationships with either too much adoration or too much criticism that don't match the child's actual experiences and achievements. Genetics — inherited characteristics, such as certain personality traits. Neurobiology — the connection between the brain and behavior and thinking.

Click Me!


Wednesday 2023-01-18 08:11:16 by Marko Grdinić

"I found an interesting email in the spam filter. I'll reply to it tomorrow.

https://news.ycombinator.com/item?id=34411009 Tell HN: Gmail's spam filters have gone bonkers

I only noticed it because there was a single email there, and I only peeked because I saw this thread on HN a while ago.

///

P.S. Also looking for a good alternative to gmail if anybody has some suggestions. 100% Fastmail. I've been on them for eight years now, after switching from a decade of Gmail. I've had zero complaints.

Switching from Gmail isn't even that bad - you can keep your Google account using your new email address as the ID, so that you can still use Docs and Drive and such. I wrote a short guide here: https://www.justus.ws/tech/how-to-ditch-gmail/

///

I'll keep this in mind for the future.

I switched to fastmail about a year ago, and I still have my gmail piping into it as an external mailbox. Fastmail's spam filter consistently catches gmail's false negatives.

Hmmm, really?

1/18/2023

8:45am. First of all, let me fix a few bugs I realized the constraint process still has.

            match b with
            | TyMetavar(x,_) -> x.constraints <- Set.union con x.constraints; []

This thing here does not go through a kind check.

| con, TyVar v & x -> if Set.contains con v.constraints then [] else [ConstraintError(con,x)]

I'll also get rid of this case as it is redundant.

        let rec constraint_process (con : Constraint Set) b =
            let unify_kind got expected = unify_kind' KindErrorInConstraint r got expected
            let body = function
                | CUInt, TyPrim (UInt8T | UInt16T | UInt32T | UInt64T)
                | CSInt, TyPrim (Int8T | Int16T | Int32T | Int64T)
                | CInt, TyPrim (UInt8T | UInt16T | UInt32T | UInt64T | Int8T | Int16T | Int32T | Int64T)
                | CFloat, TyPrim (Float32T | Float64T)
                | CNumber, TyPrim (UInt8T | UInt16T | UInt32T | UInt64T | Int8T | Int16T | Int32T | Int64T | Float32T | Float64T)
                | CPrim, TyPrim _
                | CSymbol, TySymbol _
                | CRecord, TyRecord _ -> []
                | con, TyMetavar(x,_) -> x.constraints <- Set.add con x.constraints; []
                | CPrototype prot & con, x ->
                    match type_apply_split x with
                    | TyNominal ins, x' ->
                        match Map.tryFind (prot,ins) top_env.prototypes_instances with
                        | Some cons ->
                            try List.fold2 (fun ers con x -> List.append (constraint_process con (visit_t x)) ers) [] cons x'
                            with :? System.ArgumentException -> [] // This case can occur due when kind application overflows in a previous expression.
                        | None -> [InstanceNotFound(prot,ins)]
                    | TyMetavar _ & x, _ -> [PrototypeConstraintCannotPropagateToMetavar(prot,x)]
                    | TyVar _ & x, _ -> [PrototypeConstraintCannotPropagateToVar(prot,x)]
                    | _ -> [ConstraintError(con,x)]
                | con, x -> [ConstraintError(con,x)]

            match b with
            | TyVar b -> if con.IsSubsetOf b.constraints = false then [ForallVarConstraintError(b.name,con,b.constraints)] else []
            | b ->
                let b_kind = tt top_env b
                Set.fold (fun ers con ->
                    unify_kind b_kind (constraint_kind top_env con)
                    List.append (body (con,b)) ers
                    ) [] con

The bug I fixed today is that when propagating nested contraints to metavars, the kind check would be erroneously short circuited.

I neglected to write about what the purpose of the rewrite yesterday was, but yesterday since the contraints did not have a kind, they could be of any kind at all. This made it very confusing to me to understand what the rules of propagating nested contraint should be. And indeed, what I had here two days ago made no sense. Previously I had that unapplied forall check, then I removed it. I simply did not understand that contraints should have kinds. Contraints are like the type of types.

                    | TyMetavar _ & x, _ -> [PrototypeConstraintCannotPropagateToMetavar(prot,x)]
                    | TyVar _ & x, _ -> [PrototypeConstraintCannotPropagateToVar(prot,x)]

Also this part requires some comment. I spent a lot of time thinking about this rule. If I didn't have the metavar one for example, and it got unified to a principal type, then it could be that reruning the check here with a nominal would have resulted in an error.

I thought of how to deal with this and I realized that I would need to collect all the contraints and resolve them after the regular unification is done. This would be a difficult engineering problem that I did not feel like doing, so I opted to just require type annotations here. This saves me a lot of work.

| PrototypeConstraintCannotPropagateToMetavar(a,b) -> sprintf "Cannot propagate the %s prototype constraint to the applied metavariable as the kinds would not match. If this is not intended to be a type var, provide a type annotation to a concrete type.\nGot: %s" env.prototypes.[a].name (f b)

I'll modify this case so the error is more informative.

Let me test this a little and then I will publish a new version. Then it is bath time.

9:05am. It seems like it works, I won't do extensive testing.

9:10am. Published v2.3.10. This should be the definite version of Spiral.

Now, bath time. I'll think of what I want to do today after that. Probably reply to that email I found in the spam folder yesterday."


Wednesday 2023-01-18 09:01:22 by Ogunboye Blessing

What's my name If you spend too much time thinking about a thing, you'll never get it done To hell with circumstances; I create opportunities A goal is not always meant to be reached, it often serves simply as something to aim at Most hackers are young because young people tend to be adaptable. As long as you remain adaptable, you can always be a good hacker


Wednesday 2023-01-18 09:36:44 by silicons

[MDB IGNORE] erases d1/d2 varedits from most cables (#4463)

  • e

  • e

  • e

  • more

  • y'all weird

  • fuck you

  • FUCK YOU THE INTEGRATION TEST IS GOING ON

  • fine that goes off

Co-authored-by: VM_USER <VM_USER>


Wednesday 2023-01-18 10:37:17 by AnoymTDS

Create Brain Teaser4

A malicious user who works in the dark web uses a certain method to trick unsuspecting victims. He started by using 3 different tags by default. The first tags makes reference to the uniformity of linkswhere we have multiple links rangung from 0-9 sent to one email address. The other tags are focused on phone numbers and a text file is this "For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life"


Wednesday 2023-01-18 11:12:34 by Adithya R

[DNM][HACK] telephony: Force Class 0 SMS to Class 1

This kills Flash SMS messages. Fuck you airtel

Change-Id: Ifb0c9e8bae5c12868d178fbdaeceb2cc72a0ffb6


Wednesday 2023-01-18 14:27:18 by AmyBSOD

Tell you what your damn mount is

It is sooooooooooo annoying if naming the steed screws your interface by no longer telling you what FUCKing species it is!!


< 2023-01-18 >