So you’re making an NFT….

Hey, everyone I’m working on an NFT project. Originally, I wanted to get programmer NFTs for the team at Guava Labs. I wanted to do something like Coders waiting for Compilers, but that didn’t have enough pizazz.  Then I was talking to some NFT artists and seeing if we could sell them a website with web3 components to tie into their NFT projects, but none of them were ready to go. So I ended up getting getting an idea and making up a mythos.

Compiler Fighters Club

Synopsis

The compiler fighters are a group of people dedicated to fighting compilers. This band of software developers, engineers, testers and hackers is taking the fight to all enemies of good code. Against them are arrayed the fearsome forces of disorder. The Infinite Bug Army, the Zero Day League, and even the compilers themselves. 

The Compiler Fighter Club is an NFT project exploring the meaning behind ‘fighting the compiler’. We hope to create a fun set of collectible NFTs and identities for all the hackers out there. 

Portraits

I am trying to figure out a way to let people have NFT characters created based on them. The really big NFT projects so far have mostly relied on computer generating 1000s of NFTs. Generated art is neat, but at this point do we need more computer generated projects? Maybe if someone did a ML GAN style NFT run it would be unique. And why 

Characters 

Compiler Fighters

The Compiler Fighters are a group of misfit web developers, software engineers, software testers, sysadmins, hackers, and anyone with the will to fight the compiler. Most Compiler Fighters align with the software engineer or IT stereotype. But as Compiler Fighters are a misfit group in the real world as well as in the NFTs we expect to see body builders, metrosexuals and all kinds of crazy characters. 

Compiler Fighters should be dressed in attire appropriate for professional programers at work. Since dress codes are rare in the industry that means anything from t-shirts and flip flops to suits. Although, few hackers would be caught dead in a suite. 

Compiler Fighters are typically armed with whatever weapons they can salvage from their offices when the forces of disorder attack. This includes nerf guns, pool cues, nerf swords, and anything else hackers are known to carry. Artistic license is encouraged in the armament of Compiler Fighters. 

Infinite Bug Army

The Infinite Bug Army is a force of bugs which seek to sow disorder wherever they can. The Infinite Bug army does not include any humans and some people even question if computer bugs are alive at all. Nonetheless they are fearsome foes. 

I’ll make sure to include an NFT of the original bug, a moth which got trapped in a relay in old school computers. 

Bug Army NFTs can be anything from images of bugs to images of code containing common or meme worthy software bugs. 

Zero Day League

The Zero Day League is a collection of software vulnerabilities, bugs and hacks. Examples include Heartbleed (https://heartbleed.com), ShellShock, StageFright, etc. Thematically they should all probably be actual zero days in the initial launch. Meaning serious bugs that were exploited in the wild before being announced publicly such that there were zero days of warning before people were hacked. 

Compilers of Doom 

The compilers of doom are a force of software compilers which have risen up against the forces of order. They seek to overturn the software universe and end the era of human machine cooperation. 

Compilation errors are one area to explore for Compilers of Doom cards. Anyone with coding experience will recognize compiler errors from different programming languages. 

Whats next?

I’m having a great time with the concept. I’ll keep building out the mythos and some character ideas. Then we will work with some artists to do an initial release. I’m hoping to launch with some thematic NFTs and of course the Guava Labs team NFTs which was the original inspiration.

How will Remote Works effect the Employee Employer relationship?

The American workforce has been operating in a post-Organization Man https://www.amazon.com/Organization-Man-William-H-Whyte/dp/0812218191 manner since the 1990s when outsourcing ended the job security paradigm. 

The current paradigm ‘millenial’ (1990-2020), expects workers to work for a single company at a time. The corporation provides the buildings, furnishes the offices, provides all the tools and requires everyone to work from the comforts of the corporate office. Middle managers accompany the workers sharing out of touch jokes and ensuring that the office is a place of work. 

Workers typically have little ‘skin in the game’ they do not have equity in the business and do not have much of a say in how the system is organized. The corporation decides what equipment they use, where they use it, and how they use it. For historical reasons workers in the United States acquire health insurance and save for retirement through their employers’ pensions, 401k, etc. Critically, workers do not have any job security. They can be fired at any time except for a certain set of reasons including racism, sexism, etc. 

Employees are classified differently from ‘contractors’ based on several criteria. But typically questions are asked like “Does the company control how the worker does his job?” and “Does the business control the tools and expenses of the worker?”. 

The contractor classification is interesting because remote work changes the answers to these questions. It is a lot harder to control how I do my job from my home office than it is to control how I do my job with a middle manager looking over my shoulder. Likewise as a permanent remote software engineer I provide my own office and equipment. This really leaves only the third criteria which is “Are there written contracts or employee type benefits (i.e. pension plan, insurance, vacation pay, etc.)? Will the relationship continue and is the work performed a key aspect of the business?” – https://www.irs.gov/businesses/small-businesses-self-employed/independent-contractor-self-employed-or-employee

I don’t know what will happen but I expect to see even more workforce mobility. Switching jobs only requires that you join a different slack and connect to different Zoom meetings. Does it still make sense to have company provided computers? I’m providing all of my other equipment, why is the computer an exception? Since I am building my own office I can accommodate any disabilities or other needs that I have. 

How will remote work change the employee – employer relationship?

 The American workforce has been operating in a post-Organization Man https://www.amazon.com/Organization-Man-William-H-Whyte/dp/0812218191 manner since the 1990s when outsourcing ended the job security paradigm. 

The current ‘millenial’ paradigm (1990-2020), expects workers to work for a single company at a time. The corporation provides the buildings, furnishes the offices, provides all the tools and requires everyone to work from the comforts of the corporate office. Middle managers accompany the workers sharing out of touch jokes and ensuring that the office is a place of work. 

Workers typically have little ‘skin in the game’ they do not have equity in the business and do not have much of a say in how the system is organized. They do not decide what equipment they use, where they use it, or how they use it. For historical reasons workers in the United States acquire health insurance and save for retirement through their employers. Critically, workers do not have any job security. They can be fired at any time except for a certain set of reasons including racism, sexism, etc. Workers also do not get pensions which cannot be transferred in between employers instead workers are encouraged via tax breaks to invest on their own in the stock market. 

Employees are classified differently from ‘contractors’ based on several criteria. But typically questions are asked like “Does the company control how the worker does his job?” and “Does the business control the tools and expenses of the worker?”. 

The contractor classification is interesting because remote work changes the answers to these questions. It is a lot harder to control how I do my job from my home office than it is to control how I do my job with a middle manager looking over my shoulder. Likewise as a permanent remote software engineer I provide my own office and equipment. This really leaves only the third criteria which is “Are there written contracts or employee type benefits (i.e. pension plan, insurance, vacation pay, etc.)? Will the relationship continue and is the work performed a key aspect of the business?” – https://www.irs.gov/businesses/small-businesses-self-employed/independent-contractor-self-employed-or-employee

I don’t know what will happen but I expect to see even more workforce mobility. Switching jobs only requires that you join a different slack and connect to different Zoom meetings. Does it still make sense to have company provided computers? I’m providing all of my other equipment, why is the computer an exception? Since I am building my own office I can accommodate any disabilities or other needs that I have. 

One thing that I could see happening is employers requiring remote employees meet some equipment standard of audio equipment, private office, etc to qualify to work for them.

Doorkeeper with Rails and Zapier

I set up Oauth2 authentication with Zapier for Seviipay.com recently and figured it was worth a short post on the gotchas I encountered.

The biggest problem I had was with the Refresh token configuration. I would do a test connection, validate that I wanted to give Zapier access, send a test notification and it would work. Then an hour later I get an email from Zapier that they got a 401 error and are turning off my integration. The issues were that Doorkeeper does not enable refresh tokens by default and that Zapier does not pass the client ID or secret by default to the refresh api.

Below is my doorkeeper.rb with all comments removed. I had to uncomment the line for use_refresh_token.


Doorkeeper.configure do
  orm :active_record

  resource_owner_authenticator do
       current_user || warden.authenticate!(scope: :user)
  end

  admin_authenticator do |_routes|
    current_user || warden.authenticate!(scope: :user)
  end

  access_token_expires_in 2.hours
  use_refresh_token
end


Then in Zapier I just had to update my request options to include the client id and client secret.

One other issue I ran into is that Doorkeeper requires you to set a SCOPE. I just put the string ‘READ’ in for my scope and it seems to be working.