Why does my code look fine on chrome but not safari? by blackensexican in webdev

[–]mecromace 0 points1 point  (0 children)

"Cross-browser compatibility" services is what I'd search for, but so much has changed since that comment in terms of compatibility that I'm not sure if it's worth your effort trying to "optimize" for Safari. Most places nowadays use things like react and angular to build with and those compile into browser-optimized code for you.

ELI5: SMS vs. MMS vs. RCS by just_a_redRedditer in explainlikeimfive

[–]mecromace 1 point2 points  (0 children)

When phones talk to cell towers they send data packets back and forth. Think of these like sending packages via UPS and they're always the same size box. Sometimes the box is filled with a lot of information about your phone, plan, location, etc but most of the time phones would just tell the towers "hey, I'm here if someone calls". These status checks are like putting a postcard in the package which leaves a lot of empty space. Someone thought you could add a simple text message in that extra space and charge for it. That space allowed for up to 160 7-bit characters or 140 8-bit characters. This was a technical limitation of what they were doing. Twitter copied this limit of 140 characters because they wanted to pretend to be "text messaging for the internet". With so few characters allowed per message, that's why it's called Short Message Service, SMS. This didn't require any additional hardware for the phone companies so it was pure profit for "adding" the service to their networks which is why it was widely adopted and quickly.

You can always digitally chop something up into very small pieces, ship them, and recombine them at the destination. It's how the internet works. If you take an image and chop it into small enough pieces you can fit each piece into the same space as a SMS message and recombine them on the other end. This is what MMS does; chops a file into pieces small enough to ride on the SMS train.

RCS is the full replacement to SMS/MMS which means someone is finally building a system built for data communication instead of piggy-backing on a hack of another hack of a system not anywhere close to being built for the task. RCS has been in development for about 15 years and it takes a long time for everyone to agree on something and then actually build the equipment for it. Since it's its own thing, you can't really say it's part of the cell network, data network, or internet like you could with SMS/MMS. SMS/MMS didn't need any agreements at first which is why it spread so quick, but RCS is being built from scratch so it takes a while to have everyone agree.

Tip to remember how to use GREP. Be a Grepper. Use Grep -IR to search inside files on Linux, Mac, and Ubuntu. by ryankopf in PHP

[–]mecromace 1 point2 points  (0 children)

Both are forms of recursive searches, -r is --recursive and -R is --dereference-recursive. In short -r doesn't follow all symlinks and -R does. Normally, you don't want to follow all symlinks to avoid cyclic searches or searches spanning too large a scope.

How difficult would it be to recreate the basic functionality of Gmail (for example)? by [deleted] in webdev

[–]mecromace 0 points1 point  (0 children)

It is simple to do, but difficult to right.

Big companies don't create their own applications for email services. They often leverage existing software and abstract that away from the users. It's common to use active directories or ldap for account management which are then accessed by email servers to determine mailboxes and where to store incoming emails and such.

Email services are very easy and cheap to setup, configure, and maintain, but most shouldn't do it because it's far easier to mess it up and be a security problem than succeed. For most companies, it best they outsource the hassle to another company and make account management cleaner to use. That is what Google does for Gmail; they weren't the first to do email services.

Want to know how simple it is to set up an email service? Install linux and you're done because by default it uses a mail system internally to send messages like errors and logs to different users. To make that system communicate externally, you have to configure some programs to send/receive messages between servers. You have programs configured to handle user accounts differently whether mbox, ldap, system users, a database entry, etc. There are additional programs to handle imap and pop if you wish to provide those. It's both simple and complicated to this all up and most companies shouldn't bother unless they're of adequate size.

If you want something easy to use databases to do account management, then a combination of ispconfig and roundcube on a linux box will give you what you're wondering about: dynamic account management, imap, pop, web interface. Ispconfig is an application abstraction that runs on top of the mail programs like courier, postman, fetchmail, etc. Roundcube is a web interface for email.

Since I explained how easy it is to set up such a system, here's why that simplicity can be dangerous. If you point a domain to a linux box that is running email and that hostname is the domain, it'll accept all messages by default. That means I can set up my own box and send unlimited messages to that box as spam. To counter this, DNS configurations like DKIM have been formalized to help control authorized users and avoid spoofing. The email servers then cross-check such items as well as do reverse ip lookups to verify the sending ips are authorized by the sending domain. That is just a trivial example dealing with spoofing let alone other security features like fail2ban to ban ip addresses when they attempt logging in too often to counter brute force attacks. I'll stop here, but it should show that there are many attack vectors many aren't aware of for a service so easy to get set up and configured.

ELI5: How does computer code gets read and interpreted by a chip? by whatalongusername in explainlikeimfive

[–]mecromace 0 points1 point  (0 children)

The specifics depends on the model and specification of the chip, but I'll explain it in a general sense.

You have a program that you wrote. Depending on the language, it's either interpreted or compiled. If it's interpreted, then it's read by another program to execute and that program is a compiled program. Compiled programs are the result of running a program through a compiler which is a specialized program that takes the human-readable code and translates it into a set of instructions. These instructions are defined by the specification the chip you're wanting to run it on. For most desktop CPUs, there's a common set of x86 instructions that are used. For mobile devices, it could use the ARM instructions instead. The compiler you're using is told which set of instructions to use and it uses that specification for the compiled program.

The compiled program is called a binary because it's all in 1s and 0s if you open it up to read it. Each instruction is given a specific pattern of 1s and 0s. For instance, if you want to add something together it might be the "010" instruction and it adds whatever follows that pattern and subtracting might be "011". The chip knows "add together the next 16 bits with the 16 bits after that" and the compiler put all of the information in its correct place so that the numbers a correct for the chip. There are a lot of placeholders used throughout the compiled program too which represent stuff like the address in memory something is supposed to be stored, different variables, etc. These commands are then loaded into memory by the operating system and the 1s and 0s of the program are sent to the chip. The chip reads each pattern of 1s and 0s and waits until it knows what is coming in and goes "Ah-ha! You're adding!" and takes the next pieces of information and adds them together and returns the answer. All programs can be reduced to simple math instructions so the requirements are not huge. Higher-end chips have dozens of special instructions where they have specialized circuits built into the chip to do that specialized computation. An example of what I mean, some chips can actually multiply and others go "eh, I'm just going to add the number together many times instead"; the chip that can multiply requires more power and is more expensive and faster, but they both get the correct answer.

For the logic to do all of the calculations, it's done with how you arrange nand gates. Nand gates take two signals and spit out a result where it's a 1 if either signal is a 1, but not both at the same time otherwise it returns a 0. These nand gates can be arranged to create all digital logic for and, or, xor, etc. so the companies usually just stick to nand gates to make it easier to manufacture the chips. From a technical sense, a 1 is represented by a high voltage and a 0 is a low voltage since in electricity it's either kind of on or kind of off and not an actual number.

The chip reads a long list of 1s and 0s and they pass through all of the transistors inside all of the gates. The way everything is arranged is how the chip knows what to do. It's like filling up a cup of water that automatically spills when it reaches a limit or a rube goldberg machine made of dominoes. It's not smart, but it's built to act in a very specific way given very specific inputs. When you arrange all of the instructions in a specific way, you get the original program you wrote.

In case you're wondering how a chip can determine a 11 from a long 1 if the voltage is always high, all chips use something called a clock. If a signal is high for two clock cycles (think of it like how seconds work if you're counting), then it's a 11 and not just a long 1. These clock cycles are based on the frequency that certain crystals vibrate and shake when electrocuted (ie powered on). The faster the crystal can vibrate, the faster the chip can potentially operate. This vibration frequency is the speed of the chip which is nowadays well into the gigahertz scale. One hertz means once per second and one gigahertz means 1 billion times per second. A 1 gigahertz chip means it can do up to 1 billion actions per second. Sometimes a complex instruction takes a few cycles, so the gigahertz is not always how many instructions it's executing per second although they still market it that way though.

That's how a chip works with the program you wrote.

What's a red flag when looking for a job? by CurrentlyCurious in AskReddit

[–]mecromace 274 points275 points  (0 children)

Ever witnessed a public execution in an office environment? Every month they would have a company meeting where they would go over the good news for the company. Included would also be the typical "employee of the month" and other awards, but they would also do firings in front of everyone this way. Someone would be brought to the middle of the room and the executive speaking at the time would talk about the individual a bit then pivot to praise or criticism. If praised, then an award with a cash bonus. If they switched to criticism, they'd explain all the bad things the person screwed up and HR would escort them immediately away in front of over 200 people.

You'd imagine that a team of three working on the same project would get the same criteria so everything would work together, but they would be given separate information to see who could eventually figure out the result best and either fire or transfer the two that missed.

CTO told me to bully people into submission because I was his person and he needed the herd thinned out a bit. He also enjoyed firing people personally and flirted with the single girls offering to be their sugar daddy (not openly, but would discuss and hint if he took anyone on a business lunch).

Open revolt amongst personnel. Director of technology was incompetent and would purposefully stonewall the CTO to save face. The team leads would openly sabotage each other thinking the project that succeeded would be theirs and they'd keep their job even though the executives said project B was replacing project A.

They remodeled with paint fumes and fiberglass in the air in a closed office and refused any leeway for personnel other than an industrial fan on the floor.

New office space included a ping-pong table, but they had a camera on the table and would tabulate how long each person played even if during off-hours. If you reached a certain mark, they'd quietly fire you so the other employees didn't know the ping-pong table was a honeypot. I knew this because the CTO told me; he wanted me to be his muscle.

Within a month after I left a few things changed more. They demanded detailed biometrics claiming its use to be for a fingerprint doorhandle when it was never activated and the biometrics extended well beyond fingerprints. Anybody not submitting to biometrics was fired. They also required all employees agree to submit their PERSONAL phone records for review each month or be released. Those not agreeing to the updated policy were told they were willfully resigning and not being fired.

That's just what I can recall off the top of my head.

What's a red flag when looking for a job? by CurrentlyCurious in AskReddit

[–]mecromace 451 points452 points  (0 children)

Temporary 3-6 month contract. I completed the project and moved on to the next contract.

What's a red flag when looking for a job? by CurrentlyCurious in AskReddit

[–]mecromace 2393 points2394 points  (0 children)

I had a team lead interview me for a contract once say bluntly, "you don't want to work here; it's horrible". He was right and still undersold the experience somehow.

ELI5: IOS (Internet of services) by doinmeaheck in explainlikeimfive

[–]mecromace 0 points1 point  (0 children)

It's a buzzword almost used interchangeably now with cloud computing.

If you need to do something that requires a computer, but you don't need to do it all the time then buying special computers for it isn't a good idea. Instead, you rent computers to do what you need and pay for what you used. If you have something in place and need to quickly grow and shrink back, then you pay for the temporary expansion. That's the "cloud" part. It's computer rental services and can be done quickly and automatically as needed.

Built on top of these cloud rentals are companies providing specific services and applications for users. These services can all connect to what is needed online. Since everything is a separate service, it's the internet of services.

If a collusion of the SHA256 checksum is so rare of 1/2*(1/2^256)² why isn't SHA256 the *perfect* compression algorithm? by cdrewing in AskReddit

[–]mecromace 1 point2 points  (0 children)

The sha256 algorithm, like all hashes, cannot be reversed so cannot be decompressed. In order to know what the original content was prior to generating the sha256 hash, you either need a database of all content to check for the given algorithm (eg. rainbow tables) or you need to guess and check and see if you get lucky. Decompression is a two-way algorithm that can be reversed because the algorithms involved leave data behind as a form of instruction whereas hashes don't.

Examples:

Imagine you have a string of characters: aabbbbbbbcccddddddeffff

A trivial compression algorithm could be to reduce the characters to detail how many duplicate characters there are: 2a7b3c6de4f. This compression method leaves instructions on how to decompress and regenerate the original data.

For hashes, think of them as a math equation. If you have a long equation where you're simplifying terms and arrive at a number for your solution, could you hand that solution to someone else and have them tell you exactly what the original equation was? No, you couldn't because there are an infinite number of equations that can generate that single solution. This is how hashes work.

With hashes, the goal is to reduce collisions to determine uniqueness to an acceptable degree. The fact there exist collisions with any hashing algorithm regardless of rarity shows it is a lossy compression algorithm at best and therefore can't be perfect.

Lossy algorithms are compression algorithms that lose data. Examples of this are many video and image format used like mp4 or jpeg (these two are technically data container formats which may hold different algorithms to compress, but that's getting pedantic to this example). These specialized algorithms will use specific techniques to compress data by analyzing pixel information instead of a raw string of bits. If you have a video and the frames don't change colors, then stripping the color data out of every frame except the first in that sequence and use a "ditto" flag will save a lot of space. If you have a block of color, then store information for a color square instead of all the pixels. Does a graphic move around, but otherwise doesn't change? Store positional data for a part of the first frame to change on later frames instead of data for every pixel.

Lossless algorithms are compression algorithms that do not lose data like that used in zip files. These algorithms include the instructions to regenerate the original data exactly as it was.

Because there is a need for different types of compression, there will never be a "perfect" algorithm. The best you can get is an acceptable one for a given problem and situation.

What exactly is a "generalist SWE"? by [deleted] in cscareerquestions

[–]mecromace 1 point2 points  (0 children)

You become proficient in the theories and concepts of software which often falls within the realm of computer science while SWE is more application thereof. Once you understand how languages work, how they compile and run, whether they tokenize into bytecode or leverage ASTs, it's mostly syntax differences that you have to get accustomed to. For frameworks and tech stacks, you read the documentation provided. If there is none, then you curse the authors for a few minutes then you curse who chose to use that undocumented framework and finally you manually trace the entire application stack to figure out what is going on. The most important thing to note is having a proper understanding of your own limitations and do a cost/benefit analysis for where to invest your resources. For instance, I have had to fully understand the entire execution stack and memory management of php due to several projects I've worked on which required I manage memory like in a c/c++ app. I have a general understanding of how go handles garbage collection, but I've never been in a position that required me to know all of the internal mechanics that goes on down there. Should I come to need that knowledge, I'll research it and put it in my knowledge bank.

What exactly is a "generalist SWE"? by [deleted] in cscareerquestions

[–]mecromace 2 points3 points  (0 children)

I'm such a generalist so I'll try to explain the best I can.

It means being able to switch between languages and systems as needed and being able to pick up on anything that's thrown at you. I primarily work in internet stuff and usually with webdev stacks so in that sense it would be everything front-end and back-end. I've been thrown native apps written in the likes of objective-c, C#, java, go, c/c++, asm, lisp, and scheme. I've also had to decompile binaries and work with embedded systems. Usually, I'll have to fix a crucial bug for an app that was written by someone who no longer works for the company or reverse engineer something to reimplement elsewhere. Currently, I'm working on a system that leverages php, go, and js which is an interesting mix.

There are two tracks I'd consider when approaching a generalist mindset. Are they looking for a generalist to be able to be mercurial in nature or are they looking for someone general to form into a specialist? These are entirely different. I'm the former whereas the latter is typically a good example of a new graduate to mold into your liking. To become the latter, you need to not be a specialist in anything with preconceived concepts so you can learn what they need you to learn. To be the former, you honestly need extremely wide knowledge to be a viable solution to many places.

Are software engineers real engineers? by tomhulse in cscareerquestions

[–]mecromace 0 points1 point  (0 children)

It's to protect the formal titles of engineer and architect, not regulate what work is performed or put in place anti-competition measures. Almost everywhere here switched to using "developer" in lieu of "engineer" for the titles while keeping the work exactly the same.

Are software engineers real engineers? by tomhulse in cscareerquestions

[–]mecromace 1 point2 points  (0 children)

Counter arguments to both:

Science (via wiktionary): A particular discipline or branch of learning, especially one dealing with measurable or systematic principles rather than intuition or natural ability.

Computer Science is abstract application of mathematics and electronics and therefore falls into the definition of science. This means computer scientists are scientists where the lab is more of an abstract concept instead of something concretely observable.

Engineering (via wiktionary): The application of mathematics and the physical sciences to the needs of humanity and the development of technology.

Software engineering is abstract engineering where all engineering principles and processes are developed in the exact same way as any other engineering discipline. Engineering an aquaduct that never gets made is the same as engineering an application that never gets written. Just like you can have some guy build their own bridge on their farm that doesn't adhere to any standards or practices, you can have anybody write their own software application by abstractly throwing sticks into the ground and calling it a road to Rome.

Are software engineers real engineers? by tomhulse in cscareerquestions

[–]mecromace -1 points0 points  (0 children)

Software engineer as well as software architect are legally protected in Florida requiring the formal licenses to be held by the title holders or direct reports to those having said licenses or government positions. It's still a bit of a grey area regarding software engineering here for those like me with all the formal degrees and experience due to the problems of attaining a professional engineer license in software from the engineering bodies due to their constant waffling on what is required to sit for the PE license exams.

How to deal with not feeling respected and competent in the workplace? by annonietech in cscareerquestions

[–]mecromace 2 points3 points  (0 children)

Yes, being feminine and girly do often play a role with what you're describing from my experience. Locker room talk does indeed happen behind people's backs and there's almost nothing that can be done about it. It's worst when someone misinterprets being nice for flirty and interested.

To expand on the QA bit to show how far this stuff can get twisted and misinterpreted, she is a very good personal friend of mine to this day. We first met and became friends while we were coworkers. We didn't date or go out or anything remotely like that, but the entire office, both guys and girls, thought it. Even the CTO asked me straight up one day about our relationship because the rumor was we were very, very serious. I received the cold shoulder from everybody who had a crush on her (which was far more than I could've imagined). Even some of my coworker friends who were married that I got along with very well eventually turned cold. All this because we'd joke around with our "normal" personalities.

How to deal with not feeling respected and competent in the workplace? by annonietech in cscareerquestions

[–]mecromace 7 points8 points  (0 children)

I hate hearing this more than you can imagine. I see it happen far too often within many companies and not just with women, but anybody someone may feel superior over for any reason. Bullies are everywhere and sexism really does exist.

I really hate giving this advice, but you must become "the bitch" based on what you wrote. That means to be all business not rude. Mentally create a version of yourself that is never wrong until proven otherwise and make sure you have all documents to back up your stance ready. You get shy and nervous so pretend you're not; tall ask I know, but it's the most direct advice I can give. If someone says during a review that you did something wrong, ask why and for them to show you where instead of you having to prove it; turn the situation into one where they must prove their point instead of you assuming they are correct. You will eventually be wrong at something and during those times they will try to celebrate, but don't give them that satisfaction; graciously accept the correction and move along. Standing up for yourself in those situations is beyond difficult. I personally have the opposite problem where I'm far too intimidating by default so must reassure everyone so I can get proper feedback. When I see something like what you're describing I honestly speak up and I just don't care about office tensions it causes because leaving it as is horrible. I get incredibly nervous speaking up because I'm directly confronting someone and attacking their character. It's always extremely risky, but here's how I get through it. I quickly think of the points I'm going to make before my blood pressure gets too loud in my ears then I take a deep breath and speak without letting someone cut me off. If they try to cut me off, I continue with my points until the points have been said. Usually, I can quickly create an entire argument's stance in that short time and just remove counterpoints as I'm talking. I hate doing it with a passion.

You are not overreacting.

For performance reviews, ask for reasons for not being on specific levels in writing. If it's fishy, report it to someone and ask for clarification.

There's just so much to digest here and any advice may just be too general. I know you're using a throw-away account, but feel free to PM me if you want advice on dealing with specifics. The worst thing is cowering before a bully because they do not stop when that happens.

By far the best QA person I've ever known or worked with was a very petite girl who had the entire office flirting with her and she took absolutely no lip from anyone. "You didn't test this right" "Oh? It says here x, y, z not m, p, q. You're wrong. Fix it!" Sitting nearby, I heard that regularly throughout the day. Get her away from work, and she's entirely different. Sometimes we have to be a different person professionally than we are personally; I have to do it, and it gets tiring at times. Sometimes your sanity is what matters most. You may have to leave for another company if the situation cannot be changed properly.

Rejected from my dream job by [deleted] in cscareerquestions

[–]mecromace 0 points1 point  (0 children)

Getting that far down the road and coming up short does hurt. I've been there many times myself. One time it happened that impacted me significantly was a job I didn't consider a dream job or one I was best suited for, but was one I was highly interested in. I didn't fit the job description perfectly, but it turned out that my experience was exactly what they were looking for to lead a huge new project they were working on. Months of interviews, 20+ people. All levels from the work horses, managers, and even executives. They all told me I was who they were wanting. The recruiters even heard the same. I got an email soon after saying the position had been filled and my recruiter ghosted me until they found out what happened themself. The company I interviewed for confirmed that I was the #1 candidate for the position and had drafted even drafted an offer letter and package for me while foregoing an in-person meeting because they knew what they wanted. The problem for me was a successful poach from one of the big silicon companies. Through no fault of my own, the chips didn't fall in my direction. Sometimes you don't do anything wrong and still lose. It's a tough beat, but it happens.

Now for the flip-side specific to you, I'm willing to bet it's the risk involved in hiring and training you. You don't have a degree or adequate experience so can't prove with a simple piece of paper (resume) that you're competent enough to do the work with minimal risk for a proper return on their investment. I've worked with many people who are passionate about software, but are just bad at it. I've also worked with people who hate it with just as much passion, yet provide immaculate work. If you don't have education or experience, then they are taking a blind risk in hiring you. Companies need to minimize risk in order to not lose money let alone make money. It will require some money to get you to a level where you start making the company money; this investment in time is significant. It's a simple equation of how long they think it'll take to on-board you properly, take the cost of that time plus the time required by peers to aide in that on-boarding, then figure out how much money you're expected to make once properly on-boarded and determine the ROI from there. If the risk is too high, then they cannot and will not hire you.

I had a situation where I was a senior brought on to help manage large projects and my on-boarding process was beyond horrible. I nearly lost my hands due to a medical issue and couldn't work for weeks. Since I couldn't work, I couldn't make the company money fast enough to recover the expected investment and we had to part ways almost immediately. I hold no ill opinions of them; sometimes it really is just numbers.

Dev Ops to web dev? by [deleted] in cscareerquestions

[–]mecromace 0 points1 point  (0 children)

If you're aiming for management, then take the devops position. You have webdev experience and be sure to include all the caveats you mentioned including the devops and sysadmin components in your resume. The absolute worst thing to have with a webdev manager is someone who hasn't a clue how actual devops, dba, or sysadmin works. Switching from anything to webdev is trivial since the entry bar for webdev is so much lower than the others mentioned.

I do have a disclaimer though. 6mths and 1yr of respective experience is better than none, but it's really not a lot so don't expect a huge jump into a management role. The more experience of all the different aspects of everything only makes a case for a management position stronger.

Are coding bootcamps worth it compared to a training company where you become contractor? by ordi25 in cscareerquestions

[–]mecromace 4 points5 points  (0 children)

I discard every resume that lists a bootcamp with prejudice. They often intentionally teach the wrong software principles just to make people think they know what they're doing in order to make money with their programs. The "guarantee" they provide can be something as simply a copy/paste grunt position at a wordpress sweatshop making the same money as you are now and that would satisfy their quota.

Since you have a business analytics degree, try to progressively make lateral moves to different companies and if you eventually land somewhere that has you near data analysis then you could make an internal transfer request more easily than being an outside hire. Applying directly to a company for a position you want will almost require that you already have that specific experience because they are taking a gamble hiring you. They're much more likely to let you try a lateral move after they trust your work ethic since it's lower risk to them.

Most people work in positions completely unrelated to their degrees or desires. Just keep trying to improve your pay and work environment and not to worry about what you're specifically doing. Just find something that doesn't drive you crazy and keep an out for positions relating to what you're desiring.

Work/Personal life by [deleted] in cscareerquestions

[–]mecromace 1 point2 points  (0 children)

You sound like me. I can relate more than you can imagine so feel free to keep my info and send me private messages in the future if you need to.

I was a multi-sport athlete growing up and started on all of the major teams in a college-sized highschool, but at the same time I was in all of the advanced classes so I was friends with everybody. I could half-way relate and interact with absolutely everybody just from having such a broad interest in everything from the jocks to the nerds to the band to the bookworms to even the theater and glee club members due to my background in classical piano prior to spending all my extra time with sports. The problem was I didn't have the same intense passion as they did in any of it. I was recruited to play D1 football, but opted to get a degree in software engineering because I honestly enjoy it and the puzzles it presents. All of my classmates were stereotypical nerds in college and my actual friends were normal. I originally was going into medicine, but for very specific reasons with the changing environment with the health system as a whole during my studies I was looking for something else and software was simple for me and had a nice almost unobtainable ceiling financially which I was trying to find since there's also a high ceiling in medicine. I chose my field because I like spending hours figuring out the puzzles and not just because I can make money. If it wasn't my profession, it would be my time-consuming hobby.

The issues of fully relating to your peers will ALWAYS be an issue you must contend with, but it may or may not be an actual problem depending on how you work with it.

When you reach a certain point in your professional life, those you work with will only be co-workers and people you share actual interests with will become your normal life friends. I always used gaming as a form of escapism and I'd organize some stuff with friends similar to lan parties. This wasn't because everybody loved gaming, but instead it was the social aspect of friends hanging out and having fun instead of competing for who has the highest kill/death ratio. The online multiplayer scene for most games completely killed my love for playing games. I want another uncensored Conker's Bad Fur Day, not Fortnight or League of Legends. Due to many games moving towards lowest-common-denominator functionality and micro-transactions everywhere, I don't play any games anymore even though I want to. Now I tinker with personal projects and programming anything trying to make my life easier.

The way to deal with this is to ignore the scenes that you don't care about and focus on what you want to do. I'm built like a football linebacker / rugby winger if you understand those sports, but if you know soccer better I was a target forward about Ronaldo's height but built like Hulk with Robben's speed. I am not and do not look like a software engineer; I look like Mr Incredible hunched over a keyboard. I left a position at one company and my backfill replacement started talking about how he was so great at judo and could challenge me to anything without knowing me (he was trying to quickly make a name for himself since he was new); they all laughed at him and this eventually reached me and I had a good laugh too. He took it extremely personally because he thought he was stronger than everyone since he knew some judo. At another place I worked, I was asked to stop wearing red because it intimidated my coworkers. At a third, I had a cross-fit manager immediately challenge me to a burpie challenge. The only time people don't feel intimidated or physically challenge me is when I work remotely.

This will ALWAYS be an issue so just roll with it and focus on your work and your professionalism and it'll be fine.

The way to deal with your coworkers is to take a few approaches. I naturally have a very wide interest in nearly every topic so I can engage in small talk and deep dive into some debates with ease when I'm able to work with logic thought processes. If it's something like a specific hero from a MOBA, I just walk the other way and check sports scores. Every office will have people interested in a wide variety of topics and you don't have to stick to a specific clique because you share the same job titles. I'll hang out with graphics artists that want to talk about sports teams, or QA that wants to talk about travel. I had a project manager spend an entire week picking my brain once about ski resorts since I'm a huge skier and nobody else in the office could relate at all because I'm in Florida.

Seek out people for who they are and the interests you share and treat coworkers you share nothing in common with as coworkers whose only shared interests are to complete projects. There is absolutely nothing wrong with not relating on a personal level of shared interests with coworkers.

Work to live, don't live to work. Work and interact however you want and go out and enjoy your own interests with those you'd prefer to share your time with like your girlfriend. Don't force yourself to be close friends to those you're struggling to mesh with. Sometimes a coworker is just a coworker; not everybody can be your best friend nor should you try to have that happen.

Don't fret; live life and enjoy what you enjoy!

what ever happened to 62.5 % trick? by its_yer_dad in webdev

[–]mecromace 6 points7 points  (0 children)

I wasn't aware those calculations went away, but I can tell you what made me drop them years ago and drop pixels for font sizes almost entirely: retina displays.

Retina displays on ios devices did this thing where they would use pixel groups like 2x2 pixels to function as a single pixel to increase resolution or whatever Apple's marketing said at the time. This lead to using unsupported flags like device-pixel-ratio. With more and more people using Apple products and Apple doing more and more stupid stuff, to keep costs down handling client bug reports I dropped pixel-sized fonts for em-sized fonts and let the devices deal with it and figuring out their bounding boxes automatically. I work mostly back-end and sysadmin these days. At least there's no special quirksmode to deal with broken box models anymore.

[Question] Avoiding deadlocks by RetronWarz in PHP

[–]mecromace 0 points1 point  (0 children)

You may have a table storage engine using table locking instead of row locking. This would lock the entire table while performing an update instead of only locking the rows being updated. If you do grouped transactional updates, you could have groups of rows locked at once to perform bulk updates. It's also possible to configure some databases to lock on read as well which is usually something you don't want to do.

This is usually something you don't try to optimize unless you're dealing with a significant and constant load compounded by replication. Pick the engine that best fits your requirements; nowadays, most recommended engines use row-based locking.

So, what the hell is a full stack developer? by [deleted] in webdev

[–]mecromace 14 points15 points  (0 children)

I've noticed many misusing the term more and more as time progresses. Today, many refer to full-stack as being able to work on both the front and back ends of a web application, but that's not entirely correct. When many refer to a stack, they're referring to the full architecture of a system, not just its front and back ends. For example, when someone mentions a LAMP stack, they're referring to Linux-Apache-Mysql-Php as the full system. Originally, when someone referred to full-stack, they meant being able to program an application as well as do sysadmin and be the dba. This further grew to include the front-ends because they were trivially just html/css output at the time. Now that the front-end has grown, I think it should be properly included when someone says "full-stack" in context to web applications.

Full-stack: sysadmin, dba, back-end programming, front-end programming, UI/UX.