I started writing software in 1984. Over the years I worked with many languages, technologies, and tools. I have been in leadership positions since the early 2000s, and in executive roles since 2014.
I started writing software in 1984. Over the years I worked with many languages, technologies, and tools. I have been in leadership positions since the early 2000s, and in executive roles since 2014.
Once upon a time, all my work from the previous night disappeared. git reflog showed a SHA but the line was blank and my work never came back. It was spooked and never used that computer again.
I thought it was just a myth. An urban legend people made up for a funny story on The Daily WTF. But then I witnessed it. It happened on my team. Done by people I worked with!
We were working on a system based on a very annoying CMS. We decided to move certain aspects to a database instead of however we were storing those parts in the CMS before. I joined the team near the middle the migration and helped work out some bugs on one component we were migrating to the database.
I then moved on to another aspect of the system, which had some problems with the SQL. I asked the guy on our team responsible for integrating the database in the first place to see the schemas for the tables. And that he did... he showed me the schema for the table. Yes, our entire database consisted of a single table, with columns upon columns added on for additional features.
Now, I've seen some database table monstrosities before, and heck, I've even made some when I was first learning how to work with databases, but this was coupling completely unrelated aspects of the system together. I'm talking about storing user input and system configuration in the SAME table!
Just the other day I accidentally committed a ~200mb file to git, which is not allowed in GitHub, but removing it was much more complicated than just deleting the file because it already existed in the git history.
The whole process of removing it was pretty scary as it required rewriting the git history in possibly destructive ways if done wrong. 😱
Working with a "REST" API today the error response was
{errorCode:1, error:"Error message"}
For the people who haven't had coffee yet, the quotes for errorCode and error are missing so it isn't a proper JSON. I think it actually took some effort to make it like this instead of proper JSON.
One time a friend of mine and colleague was "fixing" some purchase orders and he had to delete some of the rows. He opened Management Studio and got some queries running.
After confirming the rows he needed to delete, he started to write the DELETE query. He always commented the delete statements to prevent any accidental data loss, but that night right after when he has just written the table name part of the syntax, he accidentally pressed F5 because he wanted to be sure that the SELECT conditions were correct.
Something like this:
SELECT ..
FROM [TABLE HERE]
WHERE [LOTS OF CONDITIONS ]
DELETE FROM [SAME TABLE NAME HERE]
[HE FORGOT TO PLACE THE CONDITIONS HERE]
The best part was when he pressed STOP to stop the query and the cancel was not working, he panicked and unplugged the Ethernet cable from his computer. xD
To this day, some people say that some of those lost rows still appear on query results.
Alyss has been working in tech since 2012, with diverse experience in Sales Engineering, Developer Advocacy, and Product Marketing with companies such as GitHub, Box, Atlassian, and BigCommerce.
Alyss has been working in tech since 2012, with diverse experience in Sales Engineering, Developer Advocacy, and Product Marketing with companies such as GitHub, Box, Atlassian, and BigCommerce.
It did work out, but I was enabled and supported by the manager/director from technical operations. I'm not ignorant of the conventional wisdom and I'm stability-conscious. There are nuances to the situation which I didn't feel the need to divulge in a light-hearted post.
Top comments (48)
Oh yeah, I remember many years ago when my CTO wanted to clean up a few rows in the DB and ran a select without specifying a WHERE clause.
The team spent the next week recovering data from printouts ( Hey, it was 1999 :) )
...Opppsssss....
From that moment on, we made him run mysql with the --i-am-a-dummy option.
In 1999 there were already DB backups. And many years before too :-)
Oh, I know... :)
Once upon a time, all my work from the previous night disappeared.
git reflog
showed a SHA but the line was blank and my work never came back. It was spooked and never used that computer again.The "monotable".
I thought it was just a myth. An urban legend people made up for a funny story on The Daily WTF. But then I witnessed it. It happened on my team. Done by people I worked with!
We were working on a system based on a very annoying CMS. We decided to move certain aspects to a database instead of however we were storing those parts in the CMS before. I joined the team near the middle the migration and helped work out some bugs on one component we were migrating to the database.
I then moved on to another aspect of the system, which had some problems with the SQL. I asked the guy on our team responsible for integrating the database in the first place to see the schemas for the tables. And that he did... he showed me the schema for the table. Yes, our entire database consisted of a single table, with columns upon columns added on for additional features.
Now, I've seen some database table monstrosities before, and heck, I've even made some when I was first learning how to work with databases, but this was coupling completely unrelated aspects of the system together. I'm talking about storing user input and system configuration in the SAME table!
So yes, that was pretty spooky.
Just the other day I accidentally committed a ~200mb file to git, which is not allowed in GitHub, but removing it was much more complicated than just deleting the file because it already existed in the git history.
The whole process of removing it was pretty scary as it required rewriting the git history in possibly destructive ways if done wrong. 😱
But it worked out fine. 😄
Or when you forget to create gitignore and you see your connection-strings commited xDGuilty of this😄😄😄
Working with a "REST" API today the error response was
{errorCode:1, error:"Error message"}
For the people who haven't had coffee yet, the quotes for
errorCode
anderror
are missing so it isn't a proper JSON. I think it actually took some effort to make it like this instead of proper JSON.Useeval()
I am not sure what that does... I am writing the Android client (using Kotlin), the server code is written in PHP :)
Oh,
that’s a valid object in JS, so if you would work in JS and put it in an eval function, it’d return the object.
PLEASE FOR THE LOVE OF GOD NEVER USE EVAL. IT’S VERY UNSAFE.
I remember one time that I was forced to debug a 7000 lines, obfuscated javascript file.
I think that says everything. :>
This must be hell..sure it was!
One time a friend of mine and colleague was "fixing" some purchase orders and he had to delete some of the rows. He opened Management Studio and got some queries running.
After confirming the rows he needed to delete, he started to write the DELETE query. He always commented the delete statements to prevent any accidental data loss, but that night right after when he has just written the table name part of the syntax, he accidentally pressed F5 because he wanted to be sure that the SELECT conditions were correct.
Something like this:
The best part was when he pressed STOP to stop the query and the cancel was not working, he panicked and unplugged the Ethernet cable from his computer. xD
To this day, some people say that some of those lost rows still appear on query results.
Being asked "why would I use source control?"
Oh, I've been told that, and that code revisions and unit tests are useless...
Terrifying
I once not only deployed on a Friday...I changed the hosting server and underlying software AND THEN deployed on a Friday. 👻
Did it work out, or did you learn why the conventional wisdom about that can be summed up with "don't"?
It did work out, but I was enabled and supported by the manager/director from technical operations. I'm not ignorant of the conventional wisdom and I'm stability-conscious. There are nuances to the situation which I didn't feel the need to divulge in a light-hearted post.
I wasn't trying to imply otherwise. :) I just wondered if it all worked out; I'm glad it did.
One of my first days of work, open the project, browse, read and find 2 5000LOC God classes.
Good thing later I used those to practice all the refactoring techniques from a famous book and recognize most of the OOP anti-patterns.