May I ask what is the proper way to store Terraform state. We are currently testing out Terraform at my job and it just uses a s3 bucket with exception turned on. Thanks
Oh we do, too. My beef with it is how easy it is for a user on the account to go and read your state due to a lax IAM or bucket policy.
My advice: check and make sure your bucket policy you use for the state has an explicit deny (resource *, principal *) and then you explicitly allow only the user / role that requires access to the TF state.
Things to watch out for are providers that store sensitive info in your state. For example, if you use Vault and you read a secret out of Vault with Terraform then the secret will be saved in your Terraform state which, painting with broad strokes, largely invalidates the purpose of Vault. Lots of providers do this, some are getting better about not requiring sensitive info to be saved in the state or included in the config.
Not at the moment but I think that's the company plan. As for any company wide changes.. Yes for Frontend I have. It was the introduction and process/flow of using Storybook for our projects. This was about a 1.5yrs ago and we have been using it on projects ever since. The next was standardizing our web projects on using Next.js. This included creating the infrastructure and flow to deploy within AWS. Nothing really on best practices for structuring/building components, atleast not company wide mostly just within my own teams.
Some other things that I started to put in place that have been spread out to other teams where the whole Dev review/QA loop (PR, branching structure, commit writing/linting etc)
Funny enough I ran into this exact use case recently. We have a marketing site for a client done with webflow..But we needed to add a third party widget that only had an react library. So I ended up creating a CRA project so that I could include the bundled file and render the component as needed using the same setup (it was a modal + some purchase logic). Added some bare js hooks to trigger some of the logic via a button press. Worked well actually
The Mac address part stood out to me, has something changed over the year that made changing Mac addresses more complex?
Back in college our school had some limitations on the internal networks in our dorms. After doing my normal stuff (you know mega downloading,ftp, limewire etc) my net stopped working. Come to find out they had a bandwidth monitor and would just block you for some time if you used too much and had to contact tech support, even for simple things like window updates.
Anyways, somehow I found out I could tweak some net configs in the registry. So here I randomly change some dword value to change my Mac address. I finally got back online and just forgot about it.
A few days later I came back to my room after classes, my roommate told me the school officers raided the room trying to get on my PC. I went to the student dean's office and come to find out I took net access from I think the president and they tracked it to my PC ... Some luck I say lol .. Tech support said that there was no possible way I could change my Mac address after a bit back and forth I decided to just agree with him.
O yeah and they had like a 200-300 page printout of irc chatlogs ,there was more stuff but I'll end it there.
Needless to say my net access was blocked for a year even tho I had a work study job with the webdev department.
It didn't stop me though, I ended up running a long cat5 cable from the dorm next door. Fun times.
Network cards have a factory-configured MAC address, which is the default one the adapter will use. As you figured out, the operating system is usually able to override this MAC address- but it has to redo this every time it initializes the adapter. It'll still have its original MAC on a different system.
However, in the article they did not have control over the operating system. So how do you change the MAC address then? Well, you change the factory-configured MAC built into the device - which requires using the factory configuration tool!
> has something changed over the year that made changing Mac addresses more complex?
It just depends on what the driver/hardware lets you do. Some drivers don't support changing it and some hardware/firmware may just be built in a way that doesn't make changing it (easily) possible. Not being able to change it may be more of a WiFi thing though. I've had the displeasure of dealing with one of those cards. Not sure if it was just the driver.
That's already at the driver level though. There's a couple dozen other manufacturers with drivers in the Linux kernel, and their cards may work entirely differently.
If however your hardware allows you to have sufficiently low level access, your MAC address can be whatever you want it to be. After all, if your device says "this is my MAC address", then that is its MAC address as far as anyone talking to it is concerned.
If your card is a black box and is doing all the work internally (I think that'd be most cards?), then you're at the mercy of what it lets you do.
At the other end of the spectrum you'd have programmable NICs/"FGPA with an Ethernet port".
Ha! We did the same thing on our campus to get around the bandwidth blocks. We had an internal file-sharing network (DC++) which wasn't restricted in any way since it was all internal traffic. In fact the server was run by one of the network admins...go figure. But, content has to come from somewhere outside the network, so I just kept a rotating list of about 20 randomly-generated MAC addresses to keep the pipe open at full speed. I mentioned I was doing this to a friend in the IT department at some point, and he said the university knew about the trick and that I should be careful, but nothing ever came of it.
In reality, the real rate-limit was my college budget and the price of hard drives, but it was all good fun.
We have been evaluating how to scale our company (software agency) to be able to quickly build out mvps for some of our projects. The topic of no-code has come up and the one product named Unqork[1] has been mentioned to us. Has anyone had success with these solutions, if so what type of projects have this no-code paradigm excelled at?
I don’t think no-code exists. It is a fools errand. No matter what the tools are for your profession - Photoshop, Unity, SolidWorks, Wordpress, or some new No or Low-code stack - you will quickly realize that having someone skilled in the tool is extremely desirous. For software development that person is a software engineer.
This no-code thing has existed forever. It’s a base set of software that is customizable as needed to fulfill the needs of your specific use-case. The rebranding to something that never requires custom work is once again a big lie.
Any sufficiently advanced tool eventually recreates the act of programming - putting pieces of building blocks together logically in advanced ways to fulfill a task. Dragging widgets around and typing conditionals in form elements is just another (slower, worse, more error-prone, restrictive) way of developing applications.
Having seen businesses refactor out from low/no code providers to their own code base once there is traction, the value is in the product market fit discovery without shelling out to build a full blown app stack before you have traction. Fundamentally, it’s about capital efficiency.
By all means, if you have the skill set and are confident to get there without a workflow tool, do so, otherwise (maybe you’re biz and product heavy vs tech capability heavy as a team) prove it out and then invest in your tech stack. As the saying goes, you’re not writing code, you’re solving business problems for money. If you don’t have to write code to solve the problem, don’t (or write as little code as possible).
TLDR your workflow tool is either the equivalent of scripts run by cron but more accessible to the team or a spike you intend to clean up and operationalize long term. Treat it as such.
“Any sufficiently advanced tool eventually recreates the act of programming”
I think that quote in your last paragraph really hits the nail on the head.
I’ve become pretty adept at a few no/low-code tools and have thought after a particularly challenging project “wow, that was a doozy. There’s no way somebody new at this tool would have been able to work that out. The only reason I could is because I have months and months of daily hands on experience with the tool”… which at that point, I’ve realized the learning curve can be similar to just learning how to write all the code.
Always fun to learn new tools and methodologies though no matter what :)
Always fun to learn new tools and methodologies though no matter what :)
I don't disagree, but to me you unlock your true potential by learning to code. Once you are proficient in the art, the framework / language / tools don't matter anymore as they are all the same. Once you understand computation from bottom to the top, you realize it's all the same thing re-done in endless variations.
Run don’t walk away from no-code tools. Seriously. I have never seen or heard of a case where no-code tools increased productivity long term. Instead, hire good developers who knows how to be more productive with real production languages.
We're having great success with it as a software agency, it really scales well with projects because you can organise files and folders the way you like, and do code review because you are working with a app schema that is easy to read, write and understand. Which enables all the advantages of coding as well as low-code.
In these cases wouldn't it have been to work on it slowly as a "side project" outside of the team normal priorities? I always tell my team if they can fit it in and not hinder the current sprint by all means go ahead and do it on the side.
I know this goes against the normal and people want to attach "right now " value (hours it took reflected on check) but going beyond the call can also give you leverage when your yearly review comes up for example.
I'll also add I only have so much energy in the day, and after a couple of years of fighting against problems I coudn't do anything about and managers who couldn't make the changes, and customers that wanted it now, I burnt out, and instead of spending a useless zoom meeting to work on an improvement I use it instead to make maps for the D&D campaign I am running.
While I've seen several examples of this being the only way to get out of never prioritized debt-cleanup that the team can't bother explaining to management in non-technical business-value terms. The reality is a sprint is always over-packed with stuff to do with zero room for side-projects and expecting people to work weekends on side-projects to solve company business needs is not exactly a sound strategy.
What one can do is is deliberately allot time to the team to work on any side-project as long as they are somehow attached to the business. There are ways to do this more organized, for example innovation-weeks or the famous Google-fridays.
That can work assuming the team isn't already overloaded. But when people are being asked to work 60h a week or more to accomplish their tasks, it becomes untenable.
That's exactly what I am doing and aside from a few wrist slaps people have been okay with such an approach. I always tell them I did this for a few hours during the weekend or while I was waiting our DevOps to resolve an outage these particular 2 hours the last Friday. Seems to work really well.
Now if only someone can fix the bug with ShadowPlay that records your screen in the wrong aspect ratio event though you tell it to output in 1080p and play in 1080p with dual monitor