• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 04:38
CEST 10:38
KST 17:38
  • 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
Team Liquid Map Contest #22: Results and Winners6Code S Season 2 (2026): RO4 and Finals Preview12TL.net Map Contest #22 - Voting & Ladder Map Selection7Code S Season 2 (2026) - RO8 Preview5[ASL21] Finals Preview: Two Legacies21
Community News
Douyu Cup 2026: $20,000 Legends Event (June 26-28)6[BSL22] Non-Korean Championship from 13 to 28 June4Weekly Cups (May 25-31): Clem doubles, 2v2 circuit heads toward finale0StarCraft II 5.0.16 PTR Patch Notes may 26th153Weekly Cups (May 18-24): MaxPax wins doubles0
StarCraft 2
General
High level ptr replays? where can I find them? StarCraft II 5.0.16 PTR Patch Notes may 26th Team Liquid Map Contest #22: Results and Winners TL Poll: How do you feel about the 5.0.16 PTR balance changes? TL.net Map Contest #22 - Voting & Ladder Map Selection
Tourneys
Maestros of The Game 2 announcement and schedule ! Sparkling Tuna Cup - Weekly Open Tournament Douyu Cup 2026: $20,000 Legends Event (June 26-28) Sea Duckling Open (Global, Bronze-Diamond) GSL Code S Season 2 (2026)
Strategy
[G] Having the right mentality to improve
Custom Maps
Dubai Escorts [D]RTS in all its shapes and glory <3
External Content
The PondCast: SC2 News & Results Mutation # 529 Opportunities Unleashed Mutation # 528 Infection Detected Welcome to the External Content forum
Brood War
General
[BSL22] Non-Korean Championship from 13 to 28 June BGH Auto Balance -> http://bghmmr.eu/ vespene.gg — BW replays in browser The Korean Terminology Thread Data needed
Tourneys
[ASL21] Grand Finals [BSL22] Grand Finals - Sunday 21:00 CEST [Megathread] Daily Proleagues Escore Tournament StarCraft Season 2
Strategy
Creating a full chart of Zerg builds Relatively freeroll strategies Why doesn't anyone use restoration? Any training maps people recommend?
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread PC Games Sales Thread ZeroSpace Megathread Summer Games Done Quick 2026!
Dota 2
Looking for a Dota Mentor 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
Vanilla Mini Mafia
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread Trading/Investing Thread Canadian Politics Mega-thread Things Aren’t Peaceful in Palestine
Fan Clubs
The herO Fan Club!
Media & Entertainment
Movie Discussion! [Req][Books] Good Fantasy/SciFi books [TV/BOOK] *SPOILERS* Game of Thrones Discussion [Manga] One Piece
Sports
Cricket [SPORT] TeamLiquid Health and Fitness Initiative For 2023 2024 - 2026 Football Thread NBA General Discussion McBoner: A hockey love story
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Facing Challenges in Mobile App Development
TL Community
The Automated Ban List
Blogs
How Streaming Impacts Game P…
TrAiDoS
An Exploration of th…
waywardstrategy
I'm an arrogant trash talke…
FlaShFTW
Gauntlet SC2: A Retrospectiv…
Ctone23
Why RTS gamers make better f…
gosubay
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 6757 users

#TODO: Find suitable ransom to nego new end points - Page 2

Blogs > Chef
Post a Reply
Prev 1 2 All
Fecalfeast
Profile Joined January 2010
Canada11355 Posts
November 25 2015 03:23 GMT
#21
On November 24 2015 11:36 patrick321 wrote:
The OP's post was clever but fecalfeast's was art. The form perfectly embellished the content. And his topical name was the cherry on top of the cow pie.

Critiquing his code here is like stopping a singer to correct his lyrics.

I actually appreciate the advice, I often run into annoying problems that are often just fixed by being more organized. Besides, if his OP is a shitpost, my post is literally regurgitated shit.
On November 24 2015 23:31 Chef wrote:
Show nested quote +
On November 24 2015 11:15 Fecalfeast wrote:
I was writing the comments to explain to me what I wanted to program to do. I lack organization and writing things down before I can articulate them in code keeps me on track.

What does 'in scope' mean? I'm fairly green at programming and just make tools that I can't find with a simple google search.

Are you saying it would be better to have a separate method for finding food, then feed that variable through chew's parameter brackets?

Sure, it's not problem. I like to write methods I wish existed when thinking about the top level logic of my code, and then write the methods.

My bad about the scope, your methods are all in the global scope so they are accessible to one another.

ex

2.1.3 :001 > def bear; puts 'bear'; end
=> :bear
2.1.3 :002 > def kuma; puts bear; end
=> :kuma
2.1.3 :003 > kuma
bear

In larger applications, you have to throw things into classes and modules, so that you can avoid naming collisions by polluting the global scope (you can google javascript global scope for a typical explanation).

If for example you had defined method A within method B, you wouldn't be able to access method A outside method B. Similarly, if you define methods within a class, you can access them anywhere within the class, but outside the class you have to call Class.method (or if you have an instance of the class, instance.method).

I'm just saying your method chew does not describe accurately enough what it does, which is find food and digest it and vomit it out. So when someone calls chew they will get the unexpected result of vomit. Really your method would be accurately called find_food_eat_it_and_vomit_it_out which is a method that seems to have a lot of responsibilities. If I wrote such a method, it would have calls to three other methods, find_food eat_food (which has chew_food and swallow_food methods) vomit_food. This way the code is more reusable, the stack trace will be easier to read, and if you need to update one of them, all your methods that use them will be updates simultaneously, instead of you having to update the same code in multiple places.

Even if all you use code for is one off scripts for yourself, it might help you to build a library of methods you often need to use (which you could do a very simple require to have accessible in all your scripts, saving you some copy / pasting). Naming those methods logically will help you to remember without referencing them.

So separating them into

def find_food()
stuff
end
def chew()
differentStuff
end
def swallow_digest()
otherStuff
end
def vomit()
endResult
end
def indigestion()
find_food()
while food
chew()
swallow_digest()
vomit()
puts "I'm hungry again"
end
indigestion()

would be better because it's easier to tell where something goes wrong when something goes wrong?
ModeratorINFLATE YOUR POST COUNT; PLAY TL MAFIA
YourGoodFriend
Profile Blog Joined June 2010
United States2197 Posts
November 25 2015 20:21 GMT
#22
On November 25 2015 12:23 Fecalfeast wrote:
Show nested quote +
On November 24 2015 11:36 patrick321 wrote:
The OP's post was clever but fecalfeast's was art. The form perfectly embellished the content. And his topical name was the cherry on top of the cow pie.

Critiquing his code here is like stopping a singer to correct his lyrics.

I actually appreciate the advice, I often run into annoying problems that are often just fixed by being more organized. Besides, if his OP is a shitpost, my post is literally regurgitated shit.
Show nested quote +
On November 24 2015 23:31 Chef wrote:
On November 24 2015 11:15 Fecalfeast wrote:
I was writing the comments to explain to me what I wanted to program to do. I lack organization and writing things down before I can articulate them in code keeps me on track.

What does 'in scope' mean? I'm fairly green at programming and just make tools that I can't find with a simple google search.

Are you saying it would be better to have a separate method for finding food, then feed that variable through chew's parameter brackets?

Sure, it's not problem. I like to write methods I wish existed when thinking about the top level logic of my code, and then write the methods.

My bad about the scope, your methods are all in the global scope so they are accessible to one another.

ex

2.1.3 :001 > def bear; puts 'bear'; end
=> :bear
2.1.3 :002 > def kuma; puts bear; end
=> :kuma
2.1.3 :003 > kuma
bear

In larger applications, you have to throw things into classes and modules, so that you can avoid naming collisions by polluting the global scope (you can google javascript global scope for a typical explanation).

If for example you had defined method A within method B, you wouldn't be able to access method A outside method B. Similarly, if you define methods within a class, you can access them anywhere within the class, but outside the class you have to call Class.method (or if you have an instance of the class, instance.method).

I'm just saying your method chew does not describe accurately enough what it does, which is find food and digest it and vomit it out. So when someone calls chew they will get the unexpected result of vomit. Really your method would be accurately called find_food_eat_it_and_vomit_it_out which is a method that seems to have a lot of responsibilities. If I wrote such a method, it would have calls to three other methods, find_food eat_food (which has chew_food and swallow_food methods) vomit_food. This way the code is more reusable, the stack trace will be easier to read, and if you need to update one of them, all your methods that use them will be updates simultaneously, instead of you having to update the same code in multiple places.

Even if all you use code for is one off scripts for yourself, it might help you to build a library of methods you often need to use (which you could do a very simple require to have accessible in all your scripts, saving you some copy / pasting). Naming those methods logically will help you to remember without referencing them.

So separating them into

def find_food()
stuff
end
def chew()
differentStuff
end
def swallow_digest()
otherStuff
end
def vomit()
endResult
end
def indigestion()
find_food()
while food
chew()
swallow_digest()
vomit()
puts "I'm hungry again"
end
indigestion()

would be better because it's easier to tell where something goes wrong when something goes wrong?



Its part of the SOLID principles, single responsibility for methods/functions/class each method should only do one thing (ie. swallow and chew are two different things)

This allows for ease of testing and future proofing because if you need to change how chewing works it shouldnt impact (as much) anything else. Also if you have tests written then after you make a change you rerun your tests and it tells you either where there are issues or that your change is fine. If you have a giant method then if your test fails you dont really know what failed as it was just something in that method, where as if it is broken out you can tell "oh the swallow part didnt work, lets go fix it"
anonymous is the most famous author that anyone can be
Silvanel
Profile Blog Joined March 2003
Poland4765 Posts
November 29 2015 09:39 GMT
#23
try:
Chef is "Funny"
print(" Best post ever 5/5!! ")

except ValueError:
print("I will probably get banned for it but i have to say...........")
sys.exit()
Pathetic Greta hater.
AKnopf
Profile Blog Joined March 2011
Germany259 Posts
December 06 2015 11:16 GMT
#24
+1 for require_relative


Whoops, thought we were on Github
The world - its a funny place
Prev 1 2 All
Please log in or register to reply.
Live Events Refresh
Next event in 1h 22m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ProTech81
StarCraft: Brood War
Zeus 601
Mind 572
Leta 253
JYJ 105
Dewaltoss 71
soO 35
ToSsGirL 17
ajuk12(nOOB) 14
Sacsri 12
NotJumperer 9
League of Legends
JimRising 530
Counter-Strike
Stewie2K1306
Super Smash Bros
Mew2King96
Other Games
XaKoH 143
RuFF_SC254
Organizations
Other Games
gamesdonequick639
BasetradeTV164
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• Berry_CruncH241
• LUISG 11
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Jankos1744
Other Games
• WagamamaTV263
Upcoming Events
CranKy Ducklings
1h 22m
uThermal 2v2 Circuit
6h 22m
BSL22 NKC (BSL vs China)
10h 22m
eOnzErG vs Mihu
Messiah vs XuanXuan
Jaystar vs TerrOr
Dewalt vs Bonyth
eOnzErG vs XuanXuan
Mihu vs TerrOr
Messiah vs Bonyth
Sparkling Tuna Cup
1d 1h
uThermal 2v2 Circuit
1d 6h
BSL22 NKC (BSL vs China)
1d 10h
Jaystar vs Dewalt
eOnzErG vs TerrOr
XuanXuan vs Bonyth
Mihu vs Dewalt
Messiah vs Jaystar
eOnzErG vs Bonyth
TerrOr vs Dewalt
Wardi Open
2 days
OSC
2 days
Replay Cast
4 days
The PondCast
5 days
[ Show More ]
Replay Cast
5 days
OSC
5 days
CranKy Ducklings
6 days
Liquipedia Results

Completed

Acropolis #4 - GSB
2026 GSL S2
Heroes Pulsing #1

Ongoing

IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
CSCL: Masked Kings S4
YSL S3
BSL 22 Non-Korean Championship
SCTL 2026 Spring
Maestros of the Game 2
WardiTV Spring 2026
uThermal 2v2 2026 Main Event
Murky Cup 2026
Heroes Pulsing #2
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1

Upcoming

CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
Douyu Cup 2026
Heroes Pulsing #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
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 © 2026 TLnet. All Rights Reserved.