• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 08:12
CET 14:12
KST 22:12
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
TL.net Map Contest #21: Winners11Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10[ASL20] Finals Preview: Arrival13TL.net Map Contest #21: Voting12[ASL20] Ro4 Preview: Descent11
Community News
StarCraft, SC2, HotS, WC3, Returning to Blizzcon!45$5,000+ WardiTV 2025 Championship7[BSL21] RO32 Group Stage4Weekly Cups (Oct 26-Nov 2): Liquid, Clem, Solar win; LAN in Philly2Weekly Cups (Oct 20-26): MaxPax, Clem, Creator win10
StarCraft 2
General
Mech is the composition that needs teleportation t TL.net Map Contest #21: Winners StarCraft, SC2, HotS, WC3, Returning to Blizzcon! RotterdaM "Serral is the GOAT, and it's not close" Weekly Cups (Oct 20-26): MaxPax, Clem, Creator win
Tourneys
Constellation Cup - Main Event - Stellar Fest Sparkling Tuna Cup - Weekly Open Tournament $5,000+ WardiTV 2025 Championship Merivale 8 Open - LAN - Stellar Fest Sea Duckling Open (Global, Bronze-Diamond)
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 499 Chilling Adaptation Mutation # 498 Wheel of Misfortune|Cradle of Death Mutation # 497 Battle Haredened Mutation # 496 Endless Infection
Brood War
General
FlaSh on: Biggest Problem With SnOw's Playstyle BW General Discussion [ASL20] Ask the mapmakers — Drop your questions BGH Auto Balance -> http://bghmmr.eu/ Where's CardinalAllin/Jukado the mapmaker?
Tourneys
[ASL20] Grand Finals [BSL21] RO32 Group A - Saturday 21:00 CET [Megathread] Daily Proleagues [BSL21] RO32 Group B - Sunday 21:00 CET
Strategy
PvZ map balance Current Meta How to stay on top of macro? Soma's 9 hatch build from ASL Game 2
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread Path of Exile Should offensive tower rushing be viable in RTS games? Dawn of War IV
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread SPIRED by.ASL Mafia {211640}
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine The Games Industry And ATVI Russo-Ukrainian War Thread YouTube Thread
Fan Clubs
White-Ra Fan Club The herO Fan Club!
Media & Entertainment
[Manga] One Piece Anime Discussion Thread Movie Discussion! Korean Music Discussion Series you have seen recently...
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion MLB/Baseball 2023 TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
Learning my new SC2 hotkey…
Hildegard
Coffee x Performance in Espo…
TrAiDoS
Saturation point
Uldridge
DnB/metal remix FFO Mick Go…
ImbaTosS
Reality "theory" prov…
perfectspheres
Our Last Hope in th…
KrillinFromwales
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1752 users

My colleagues just reminded me why i quit

Blogs > Deleted User 101379
Post a Reply
1 2 3 Next All
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
September 10 2012 10:01 GMT
#1
Non-programmers will most likely not understand a word i'm writing here but maybe those with a programming background will get a laugh from it:

Today we released our mobile VOD platform and as with any big release, there was some trouble. Less than expected considering that half the backend was changed but gits great merging kept a lot of trouble away from us.

However, there was one bug that my colleagues couldn't figure out so i had to jump in to help. I spent 20 minutes searching for it, tracing through several functions, the huge if($action == 'asdf') {}elseif ($action == 'bvcx') {}... block, etc. and at first i couldn't find it either. It looked as if he went into a block where the if condition was a constant defined as false compared to true.


if (MOBILE_TEMPLATE == true)
{
// the code he shouldn't reach in this case
}


Apart fromt he fact that "== true" doesn't make sense anyways, the code shouldn't enter this block in the situation we were testing. My colleague showed me the debug output of MOBILE_TEMPLATE which clearly showed that it's false.

After going through everything step-by-step and testing the variables myself i found this gem in my debug output:
string(5) "false"


Checking the declarations i found the source of the bug:

if ($product_id == 1)
{
define('MOBILE_TEMPLATE', 'false');
}
else
{
define('MOBILE_TEMPLATE', 'true');
}


If you know your PHP, you will know that the string "false" evaluates to true in a boolean comparision since it's not an empty string.

Now i ordered the two guys responsible to fix that ASAP. They started with changing the code to:

if (MOBILE_TEMPLATE == 'true')
{
...
}


I wanted to punch them sooooo hard.
Luckily i'm out of here at the end of the month...


***
gaymon
Profile Blog Joined April 2011
Germany1023 Posts
Last Edited: 2012-09-10 10:42:38
September 10 2012 10:42 GMT
#2
Are those guys students or what ? Can't imagine people with a finished degree are doing such facepalm-worthy things.
Catch]22
Profile Blog Joined July 2009
Sweden2683 Posts
Last Edited: 2012-09-10 10:44:32
September 10 2012 10:43 GMT
#3
Good luck finding a job where noone ever make mistakes.
Rannasha
Profile Blog Joined August 2010
Netherlands2398 Posts
September 10 2012 10:44 GMT
#4
And this is exactly why I prefer languages that are more strongly typed than PHP (which is pretty much every language).
Such flammable little insects!
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
September 10 2012 10:53 GMT
#5
On September 10 2012 19:42 gaymon wrote:
Are those guys students or what ? Can't imagine people with a finished degree are doing such facepalm-worthy things.


They finished their degrees but this company doesn't exactly look for the brightest employees, only the cheapest, which is why we ended up with a team of programmers that write such bad code on a daily basis. I spend more time helping them to fix their messes than i spend actually doing my work.

There isn't a single day where they don't ask me "How can i do <stupid thing>?" and i have to go over and find out what mess they produced to get into a situation where they would want to do <stupid thing>.

When i started programming professionally a decade back i thought i'd be amongst the most intelligent people working on expanding their knowledge to write perfect code.
Reality hit me hard.
divito
Profile Blog Joined January 2011
Canada1213 Posts
September 10 2012 13:39 GMT
#6
"Perfect" code takes far longer than companies are willing to allow. You're dealing with less knowledgeable people because skilled coders cost too much, and shorter time frames to meet deadlines, meaning you get generic and mangled code that works, rather than spending the time to find a more elegant solution.

Sure, there are plenty of programmers that look for solutions in their spare time, or make it their goal to find elegance in projects, but they are likely freelancing or simply working by themselves. Finding such skill in someone attached to a company (that isn't a start-up) is rare. Companies are getting the ones who slugged it out in college/university and can hack together some code to do the basic stuff they need; they're far from the passionate people that end up becoming entrepreneurs most of the time.
Skype: divito7
ParkwayDrive
Profile Joined July 2011
United States328 Posts
September 10 2012 14:07 GMT
#7
hows the view from up there?
Djagulingu
Profile Blog Joined December 2010
Germany3605 Posts
September 10 2012 14:42 GMT
#8
How much do these guys earn? I'm wondering because I myself am a bad coder but still I couldn't code as poorly as this. Earning anything more than you would earn at fast food in programming with no knowledge on php boolean doesn't make sense.
"windows bash is a steaming heap of shit" tofucake
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
September 10 2012 15:13 GMT
#9
On September 10 2012 23:42 Djagulingu wrote:
How much do these guys earn? I'm wondering because I myself am a bad coder but still I couldn't code as poorly as this. Earning anything more than you would earn at fast food in programming with no knowledge on php boolean doesn't make sense.


Of course i can't give exact numbers but it's far below industry average of anyone coming fresh from university. I earn around 75% of what any programmer fresh from university would earn and i'm the highest paid programmer in the team by quite a big margin.

There are only 2 reasons why people work here:
1. Every other job didn't want them (me)
2. They don't know better

I don't expect them to be great programmers, i can live with
... their 500 line if-elseif-elseif-...-else functions
... the fact that they write every number as "123" (with quotes)
... that they can't differentiate between a file_get_contents on an URL or a file
... their 5000+ line functioncollection files
... the fact that they couldn't debug their way out of a recursion if their life depended on it
... that they repeatedly try to use variables that were never defined
... their complete lack of object-oriented code or even understanding
but this example of complete lack of understanding of basic types today just made me facepalm, especially since instead of correcting the mistake they merrily went ahead to make it worse until i stopped them.

Just for the laughs, another example that popped up today while fixing the bugs in the release:

if ((...) && !$_SERVER['SERVER_NAME'] == '....' )
{
}


I told them a hundred times "Better to use a few paranthesis too much than have an expression that doesn't do what you think it does".
obesechicken13
Profile Blog Joined July 2008
United States10467 Posts
Last Edited: 2012-09-10 19:38:52
September 10 2012 19:26 GMT
#10
I'm pretty bad at php.

When you define do you have to do something like


if ($product_id == 1)
{
define('MOBILE_TEMPLATE', FALSE);
}
else
{
define('MOBILE_TEMPLATE', TRUE);
}

?

edit: yeah that looks right to me. You should tell your friends to get a syntax highlighting text editor. Then they won't define something as a string when they mean to define it as a bool.

Why do you need to use define? Can't you just set a variable to true or false? Or is define just used for case sensitivity?


if (MOBILE_TEMPLATE == 'true')
{
...
}

Missing a $sign.
I think in our modern age technology has evolved to become more addictive. The things that don't give us pleasure aren't used as much. Work was never meant to be fun, but doing it makes us happier in the long run.
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
September 10 2012 21:32 GMT
#11
On September 11 2012 04:26 obesechicken13 wrote:
I'm pretty bad at php.

When you define do you have to do something like


if ($product_id == 1)
{
define('MOBILE_TEMPLATE', FALSE);
}
else
{
define('MOBILE_TEMPLATE', TRUE);
}

?

edit: yeah that looks right to me. You should tell your friends to get a syntax highlighting text editor. Then they won't define something as a string when they mean to define it as a bool.

Why do you need to use define? Can't you just set a variable to true or false? Or is define just used for case sensitivity?


if (MOBILE_TEMPLATE == 'true')
{
...
}

Missing a $sign.


A define is PHPs version of a constant, i.e. a variable that can't be changed once it is set. They don't have a $ in front of their name and it's customary to write them in all caps to differentiate them from PHP keywords.

They are usually used to set configuration values that are required throughout the whole project. In 90% of the cases they are used wrong though, bad programmers abuse them to break encapsulation and have their functions depend on those defines instead of using function parameters, which makes stuff like unit testing almost impossible.

You could use a variable and define it as global everywhere you use them but you can't rely on them keeping the value you expect, other functions might change it.

Also, they are already using a syntax highlighting editor - they are bad programmers, not (completely) stupid - and luckily they are not my friends, i already have enough reasons to hate my life, i don't need such friends.
Integra
Profile Blog Joined January 2008
Sweden5626 Posts
September 10 2012 21:51 GMT
#12
So basically they assigned the text "true" or "false" to a variable and mistook it for the Boolean value true and false, and then they tried to compare the variable with a true false comparison in which case it would always come true since both "true" and "false" where an actually string and therefore it would be true no matter what.

That's brilliant.
"Dark Pleasure" | | I survived the Locust war of May 3, 2014
tofucake
Profile Blog Joined October 2009
Hyrule19151 Posts
September 10 2012 21:54 GMT
#13
I prefer to do something like
if ($product_id == 1)
{
define('USING_MOBILE', 1);
}

...

if(defined(USING_MOBILE))
{
whatever
}
Liquipediaasante sana squash banana
tofucake
Profile Blog Joined October 2009
Hyrule19151 Posts
September 10 2012 21:55 GMT
#14
On September 10 2012 23:42 Djagulingu wrote:
How much do these guys earn? I'm wondering because I myself am a bad coder but still I couldn't code as poorly as this. Earning anything more than you would earn at fast food in programming with no knowledge on php boolean doesn't make sense.

Bad coders can be had for about $20/hour in most places....
Liquipediaasante sana squash banana
zatic
Profile Blog Joined September 2007
Zurich15355 Posts
September 10 2012 22:04 GMT
#15
On September 10 2012 23:42 Djagulingu wrote:
How much do these guys earn? I'm wondering because I myself am a bad coder but still I couldn't code as poorly as this. Earning anything more than you would earn at fast food in programming with no knowledge on php boolean doesn't make sense.

Oh don't worry there are very highly paid programmers who do worse things.

I don't find it excusable either, but so many people just don't give enough fucks to actually learn programming before or while they are programming.
ModeratorI know Teamliquid is known as a massive building
Geiko
Profile Blog Joined June 2010
France1939 Posts
September 10 2012 22:10 GMT
#16
On September 10 2012 19:01 Morfildur wrote:

Now i ordered the two guys responsible to fix that ASAP. They started with changing the code to:

if (MOBILE_TEMPLATE == 'true')
{
...
}


I wanted to punch them sooooo hard.
Luckily i'm out of here at the end of the month...


So, not being a programmer myself, why doesn't their solution work ?
geiko.813 (EU)
Integra
Profile Blog Joined January 2008
Sweden5626 Posts
Last Edited: 2012-09-10 22:18:45
September 10 2012 22:15 GMT
#17
On September 11 2012 07:10 Geiko wrote:
Show nested quote +
On September 10 2012 19:01 Morfildur wrote:

Now i ordered the two guys responsible to fix that ASAP. They started with changing the code to:

if (MOBILE_TEMPLATE == 'true')
{
...
}


I wanted to punch them sooooo hard.
Luckily i'm out of here at the end of the month...


So, not being a programmer myself, why doesn't their solution work ?

The problem is that they are using string operators when they should be using boolean. It clearly demonstrates that they have no fucking idea of what they are doing.

EDIT; let me clarify.

When you want to actually want to type something, like some sort of output to the user for example you would use a string, like this:

$string =' hello this is a message to the user';
echo $string;

However in this case they are simply to evaluate what path to take in a condition:

IF ($condition==true) {

}

In this case using a string makes no sense and a boolean should be used instead.

"Dark Pleasure" | | I survived the Locust war of May 3, 2014
obesechicken13
Profile Blog Joined July 2008
United States10467 Posts
Last Edited: 2012-09-10 22:24:10
September 10 2012 22:17 GMT
#18
On September 11 2012 07:10 Geiko wrote:
Show nested quote +
On September 10 2012 19:01 Morfildur wrote:

Now i ordered the two guys responsible to fix that ASAP. They started with changing the code to:

if (MOBILE_TEMPLATE == 'true')
{
...
}


I wanted to punch them sooooo hard.
Luckily i'm out of here at the end of the month...


So, not being a programmer myself, why doesn't their solution work ?

It's still comparing to a string rather than a bool, so that's just bad practice. Not only that, but whatever they want the revised code to do is not what the original code was supposed to do. That's just bad logic.


On September 11 2012 06:32 Morfildur wrote:
Show nested quote +
On September 11 2012 04:26 obesechicken13 wrote:
I'm pretty bad at php.

When you define do you have to do something like


if ($product_id == 1)
{
define('MOBILE_TEMPLATE', FALSE);
}
else
{
define('MOBILE_TEMPLATE', TRUE);
}

?

edit: yeah that looks right to me. You should tell your friends to get a syntax highlighting text editor. Then they won't define something as a string when they mean to define it as a bool.

Why do you need to use define? Can't you just set a variable to true or false? Or is define just used for case sensitivity?


if (MOBILE_TEMPLATE == 'true')
{
...
}

Missing a $sign.


A define is PHPs version of a constant, i.e. a variable that can't be changed once it is set. They don't have a $ in front of their name and it's customary to write them in all caps to differentiate them from PHP keywords.

They are usually used to set configuration values that are required throughout the whole project. In 90% of the cases they are used wrong though, bad programmers abuse them to break encapsulation and have their functions depend on those defines instead of using function parameters, which makes stuff like unit testing almost impossible.

You could use a variable and define it as global everywhere you use them but you can't rely on them keeping the value you expect, other functions might change it.

Also, they are already using a syntax highlighting editor - they are bad programmers, not (completely) stupid - and luckily they are not my friends, i already have enough reasons to hate my life, i don't need such friends.

Ah thanks.
I think in our modern age technology has evolved to become more addictive. The things that don't give us pleasure aren't used as much. Work was never meant to be fun, but doing it makes us happier in the long run.
zatic
Profile Blog Joined September 2007
Zurich15355 Posts
September 10 2012 22:17 GMT
#19
It does work. But instead of fixing the initial mistake they introduced another mistake which kinda masks the initial mistake on the surface. It'll work, it's just ugly and not the way it's supposed to be done.
ModeratorI know Teamliquid is known as a massive building
Geiko
Profile Blog Joined June 2010
France1939 Posts
September 10 2012 22:21 GMT
#20
On September 11 2012 07:15 Integra wrote:
Show nested quote +
On September 11 2012 07:10 Geiko wrote:
On September 10 2012 19:01 Morfildur wrote:

Now i ordered the two guys responsible to fix that ASAP. They started with changing the code to:

if (MOBILE_TEMPLATE == 'true')
{
...
}


I wanted to punch them sooooo hard.
Luckily i'm out of here at the end of the month...


So, not being a programmer myself, why doesn't their solution work ?

The problem is that they are using string operators when they should be using boolean. It clearly demonstrates that they have no fucking idea of what they are doing.

EDIT; let me clarify.

When you want to actually want to type something, like some sort of output to the user for example you would use a string, like this:

$string =' hello this is a message to the user';
echo $string;

However in this case they are simply to evaluate what path to take in a condition:

IF ($condition==true) {

}

In this case using a string makes no sense and a boolean should be used instead.



Ok that's what I thought too.

But after making the mistake to use strings instead of booleans, isn't it faster to fix the bug like they did, rather than change the type of the variable and risk having bugs every other place where the variable was used ?
geiko.813 (EU)
1 2 3 Next All
Please log in or register to reply.
Live Events Refresh
Wardi Open
12:00
#59
WardiTV1125
OGKoka 304
Rex88
IntoTheiNu 31
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
OGKoka 308
Lowko272
Hui .256
Rex 82
StarCraft: Brood War
Rain 9653
Jaedong 4957
GuemChi 2372
Horang2 2044
Sea 1824
Pusan 598
Stork 371
Larva 329
Mini 320
Hyun 255
[ Show more ]
ZerO 255
PianO 99
Backho 88
ggaemo 76
Killer 76
ToSsGirL 64
sSak 63
Aegong 58
JYJ57
Barracks 57
Mong 54
JulyZerg 46
Sea.KH 39
Sharp 29
soO 23
zelot 19
sas.Sziky 18
scan(afreeca) 12
Sacsri 12
Noble 10
SilentControl 7
ajuk12(nOOB) 5
Terrorterran 4
Dota 2
Gorgc2851
Dendi1139
qojqva1118
XcaliburYe288
KheZu187
420jenkins1
League of Legends
Reynor112
Counter-Strike
olofmeister1781
x6flipin715
shoxiejesuss650
zeus412
allub266
Super Smash Bros
amsayoshi38
Other Games
B2W.Neo891
Pyrionflax448
crisheroes302
Sick238
Fuzer 204
Mew2King115
Liquid`LucifroN112
QueenE42
ZerO(Twitch)14
hiko3
Organizations
StarCraft: Brood War
lovetv 13
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 11 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Other Games
• WagamamaTV360
Upcoming Events
Wardi Open
2h 48m
Replay Cast
9h 48m
WardiTV Korean Royale
22h 48m
Replay Cast
1d 9h
Replay Cast
1d 19h
Kung Fu Cup
1d 22h
Classic vs Solar
herO vs Cure
Reynor vs GuMiho
ByuN vs ShoWTimE
Tenacious Turtle Tussle
2 days
The PondCast
2 days
RSL Revival
2 days
Solar vs Zoun
MaxPax vs Bunny
Kung Fu Cup
2 days
[ Show More ]
WardiTV Korean Royale
2 days
PiGosaur Monday
3 days
RSL Revival
3 days
Classic vs Creator
Cure vs TriGGeR
Kung Fu Cup
3 days
CranKy Ducklings
4 days
RSL Revival
4 days
herO vs Gerald
ByuN vs SHIN
Kung Fu Cup
4 days
BSL 21
5 days
Tarson vs Julia
Doodle vs OldBoy
eOnzErG vs WolFix
StRyKeR vs Aeternum
Sparkling Tuna Cup
5 days
RSL Revival
5 days
Reynor vs sOs
Maru vs Ryung
Kung Fu Cup
5 days
WardiTV Korean Royale
5 days
BSL 21
6 days
JDConan vs Semih
Dragon vs Dienmax
Tech vs NewOcean
TerrOr vs Artosis
Wardi Open
6 days
Liquipedia Results

Completed

Proleague 2025-11-07
Stellar Fest: Constellation Cup
Eternal Conflict S1

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
SOOP Univ League 2025
YSL S2
BSL Season 21
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual

Upcoming

SLON Tour Season 2
BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
RSL Revival: Season 3
META Madness #9
BLAST Bounty Winter 2026
BLAST Bounty Winter 2026: Closed Qualifier
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.