• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 21:58
CET 03:58
KST 11:58
  • 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
[ASL22] Finals Preview: Sweet Victory!12[ASL22] Ro4 Preview: Mirror Mirror6[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5
Community News
Weekly Cups (Oct 26 - Nov 1): MaxPax, herO, Solar win0Weekly Cups (October 19-25): Clem triples first in 5.0.175Evil Geniuses - shutting down23ISSL (IntoTheTV x SOOP SC2 League): Premier7Weekly Cups (October 12-18): 5.0.17 era begins1
StarCraft 2
General
No more SC2 streamers on team liquid? [D] Hacker peak in sc2 ? Liquibets sc2 season 30 Evil Geniuses - shutting down Weekly Cups (Oct 26 - Nov 1): MaxPax, herO, Solar win
Tourneys
SC4ALL: II Venue Change Announcement! Sparkling Tuna Cup - Weekly Open Tournament WardiTV Mondays ISSL (IntoTheTV x SOOP SC2 League): Premier Stellar Fest TWO the Moon (Dec 16-20)
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
[G] How to playtest arcade maps Starcraft 2 Advance [D] the control group Simple Questions/Answers
External Content
Mutation # 550 Graveyard Shift The PondCast: SC2 News & Results Mutation # 549 Endless Sparkles Mutation # 548 Shining Bright
Brood War
General
[Megathread] Daily Funny Videos BGH Auto Balance -> http://bghmmr.eu/ Rollback Netcode in Brood War SC4ALL: II Venue Change Announcement! Ziemie's Starcraft 1 Prequel Campaign
Tourneys
[$1250] International ShieldBattery League [Megathread] Daily Proleagues Small VOD Thread 2.0 KCM Race Survival 2026 Season 4
Strategy
50,000-Word Terran Builds Memo 2026-10-22 Cliff Jump Revisited (1 in a 1000 strategy) Simple Questions, Simple Answers
Other Games
General Games
Path of Exile Nintendo Switch Thread Stormgate/Frost Giant Megathread Deus Ex 3!? Mobile Legends: Bang Bang
Dota 2
Dota 2 Champions League Season 3 Begins April 25!
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Dating: How's your luck? Trading/Investing Thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread
Fan Clubs
Fan Club Resource Thread Reynor Fan Club The Flash Fan Club
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Why I built Repalyzer (1.1.…
BlueStar
Innovate or Game Over?
TrAiDoS
ShieldBattery on Mac
Kraekkling
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
Can Bots Beat Pros?? Starcr…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 13299 users

The Big Programming Thread - Page 537

Forum Index > General Forum
Post a Reply
Prev 1 535 536 537 538 539 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
Cynry
Profile Blog Joined August 2010
810 Posts
October 26 2014 17:23 GMT
#10721
On October 27 2014 01:59 Manit0u wrote:
I was once working with someone else's code. His variable naming was very helpful and consistent (even more helpful than good names). Every input and output was in the name, so was the variable type (e. g. "s_somestring_in", "i_someint_out", "f_somefloat" - variable with local scope that's neither function param nor is return value etc.). Makes it really easy to follow, the only problem is when you want to change the variable type, as you then have to rename all occurances.

Was nice to work with it since at all times you knew exactly if you're dealing with variable that has been passed to the function, a variable that will be returned or something temporary.


That sounds pretty good ! Does the "s", "i", "f" stands for something in particular ?
_fool
Profile Joined February 2011
Netherlands686 Posts
October 26 2014 17:34 GMT
#10722
On October 27 2014 01:59 Manit0u wrote:
I was once working with someone else's code. His variable naming was very helpful and consistent (even more helpful than good names). Every input and output was in the name, so was the variable type (e. g. "s_somestring_in", "i_someint_out", "f_somefloat" - variable with local scope that's neither function param nor is return value etc.). Makes it really easy to follow, the only problem is when you want to change the variable type, as you then have to rename all occurances.

Was nice to work with it since at all times you knew exactly if you're dealing with variable that has been passed to the function, a variable that will be returned or something temporary.


I think that's Hungarian notation:
http://en.wikipedia.org/wiki/Hungarian_notation

Btw, renaming a variable in a codebase is usually taken care of by your IDE right?
"News is to the mind what sugar is to the body"
bangsholt
Profile Joined June 2011
Denmark138 Posts
Last Edited: 2014-10-26 17:39:30
October 26 2014 17:37 GMT
#10723
On October 27 2014 02:23 Cynry wrote:
Show nested quote +
On October 27 2014 01:59 Manit0u wrote:
I was once working with someone else's code. His variable naming was very helpful and consistent (even more helpful than good names). Every input and output was in the name, so was the variable type (e. g. "s_somestring_in", "i_someint_out", "f_somefloat" - variable with local scope that's neither function param nor is return value etc.). Makes it really easy to follow, the only problem is when you want to change the variable type, as you then have to rename all occurances.

Was nice to work with it since at all times you knew exactly if you're dealing with variable that has been passed to the function, a variable that will be returned or something temporary.


That sounds pretty good ! Does the "s", "i", "f" stands for something in particular ?


Hungarian notation - you prefix with the type of the variable - quite useful if you do C or embedded.

uint8_t = ui8<variable name>
uint16_t = ui16<variable name>
etc...

f is float, d is double, s/str is string.

p if it's a pointer.

Stuff like that. Can make a codebase incredibly ugly if overused.

On October 27 2014 02:34 _fool wrote:
Btw, renaming a variable in a codebase is usually taken care of by your IDE right?


If you have a somewhat modern one, yes... Sometimes you're stuck with old ones and the feature might not exist.
Cynry
Profile Blog Joined August 2010
810 Posts
October 26 2014 17:45 GMT
#10724
God I'm dumb today ><
s_somestring
i_someint
f_somefloat....
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
October 26 2014 17:49 GMT
#10725
On October 27 2014 02:45 Cynry wrote:
God I'm dumb today ><
s_somestring
i_someint
f_somefloat....

For the sake of completeness, nowadays the exact signature of a function is something the IDE should tell you, not the name of the function. I'd advise against hungarian notation.
If you have a good reason to disagree with the above, please tell me. Thank you.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2014-10-26 18:31:38
October 26 2014 18:24 GMT
#10726
-snip BC your douchiness shouldn't mean i should respond in the same way-
There is no one like you in the universe.
StatixEx
Profile Blog Joined August 2011
United Kingdom779 Posts
Last Edited: 2014-10-26 21:15:35
October 26 2014 21:14 GMT
#10727
i use hungarian but dont do the underscore, can really help sometimes especially if you are tracing numbers which have to stay the same type

Hi everyone, just wandered onto this out of boredom. I used to program in c and c++ with a bit of actionscript now and again. Just recently started to teach python so anymore resources other than the ones on the front page would be great. Such a great language python im finding so far, has all the ability to make some good looking things and gets rid of all that dx and windows code to open a window! problem is, not sure how python does its stuff as im trying to relate it to c++ all time. Im mostly teaching beginners so dont need too much more than what i already know and im mostly using the shell (not pygame) any great resources for pygame would be good, seen a couple of you tube vids and while they are great at programming a game, its too much for newer learners. The second they start goin into rects and all that is where newbies start to get sonfused as they dont know so much about cartesian coords and stuff like that

any way any help is welcome and im quite happy to offer any
Manit0u
Profile Blog Joined August 2004
Poland17871 Posts
Last Edited: 2014-10-26 21:25:42
October 26 2014 21:22 GMT
#10728
On October 27 2014 02:37 bangsholt wrote:
Show nested quote +
On October 27 2014 02:23 Cynry wrote:
On October 27 2014 01:59 Manit0u wrote:
I was once working with someone else's code. His variable naming was very helpful and consistent (even more helpful than good names). Every input and output was in the name, so was the variable type (e. g. "s_somestring_in", "i_someint_out", "f_somefloat" - variable with local scope that's neither function param nor is return value etc.). Makes it really easy to follow, the only problem is when you want to change the variable type, as you then have to rename all occurances.

Was nice to work with it since at all times you knew exactly if you're dealing with variable that has been passed to the function, a variable that will be returned or something temporary.


That sounds pretty good ! Does the "s", "i", "f" stands for something in particular ?


Hungarian notation - you prefix with the type of the variable - quite useful if you do C or embedded.

uint8_t = ui8<variable name>
uint16_t = ui16<variable name>
etc...

f is float, d is double, s/str is string.

p if it's a pointer.

Stuff like that. Can make a codebase incredibly ugly if overused.

Show nested quote +
On October 27 2014 02:34 _fool wrote:
Btw, renaming a variable in a codebase is usually taken care of by your IDE right?


If you have a somewhat modern one, yes... Sometimes you're stuck with old ones and the feature might not exist.


For this thing I'm mostly stuck with editing through CLI so IDEs are out of the question and the way it works is that it only allows ed server-side. I'm usually doing it via FTP but even then you don't have IDEs for LPC.

Sounds silly but it taught me A LOT.
Time is precious. Waste it wisely.
Nesserev
Profile Blog Joined January 2011
Belgium2760 Posts
Last Edited: 2014-10-26 21:36:27
October 26 2014 21:34 GMT
#10729
--- Nuked ---
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
October 26 2014 21:40 GMT
#10730
Hungarian notation is something that should not be used in the way it's actually used in the wild. As Manit0u said, it's a pain to change the type of a variable. Microsoft ran into that a few years back when their API had to change and suddenly there were unsigned int named variables that were signed long ints and such.

Variables should be used in a limited scope so the declaration and use are always close together, which means to know the type you just have to look up (or use your IDE).

We use hungarian notation at work and it's simply annoying and superfluous and there were already instances of $intSomeVariable containing strings and such.

I would recommend reading this blog entry by Joel Spolsky.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
October 26 2014 22:01 GMT
#10731
On October 27 2014 06:14 StatixEx wrote:
i use hungarian but dont do the underscore, can really help sometimes especially if you are tracing numbers which have to stay the same type

Hi everyone, just wandered onto this out of boredom. I used to program in c and c++ with a bit of actionscript now and again. Just recently started to teach python so anymore resources other than the ones on the front page would be great. Such a great language python im finding so far, has all the ability to make some good looking things and gets rid of all that dx and windows code to open a window! problem is, not sure how python does its stuff as im trying to relate it to c++ all time. Im mostly teaching beginners so dont need too much more than what i already know and im mostly using the shell (not pygame) any great resources for pygame would be good, seen a couple of you tube vids and while they are great at programming a game, its too much for newer learners. The second they start goin into rects and all that is where newbies start to get sonfused as they dont know so much about cartesian coords and stuff like that

any way any help is welcome and im quite happy to offer any


welcome!

what are you looking at making or learning about? python has something for basically any programmer so it's all up to what you want to tailor your learning towards.
There is no one like you in the universe.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
Last Edited: 2014-10-26 22:10:28
October 26 2014 22:04 GMT
#10732
On October 27 2014 06:40 Morfildur wrote:
Hungarian notation is something that should not be used in the way it's actually used in the wild. As Manit0u said, it's a pain to change the type of a variable. Microsoft ran into that a few years back when their API had to change and suddenly there were unsigned int named variables that were signed long ints and such.

Variables should be used in a limited scope so the declaration and use are always close together, which means to know the type you just have to look up (or use your IDE).

We use hungarian notation at work and it's simply annoying and superfluous and there were already instances of $intSomeVariable containing strings and such.

I would recommend reading this blog entry by Joel Spolsky.

Well that is an entirely different definition of hungarian than what I thought, and certainly a much better one.

On October 27 2014 06:34 Nesserev wrote:
This might be the dumbest thing that I've heard all month... care to explain yourself a bit more??

As the blog entry above describes nicely, I need to know what the function does/returns, not its type. Especially when it just adds unnecessary clutter. Much like comments that just say the same thing as the code they target.
If you have a good reason to disagree with the above, please tell me. Thank you.
Manit0u
Profile Blog Joined August 2004
Poland17871 Posts
October 26 2014 22:31 GMT
#10733
On October 27 2014 07:04 spinesheath wrote:
Show nested quote +
On October 27 2014 06:40 Morfildur wrote:
Hungarian notation is something that should not be used in the way it's actually used in the wild. As Manit0u said, it's a pain to change the type of a variable. Microsoft ran into that a few years back when their API had to change and suddenly there were unsigned int named variables that were signed long ints and such.

Variables should be used in a limited scope so the declaration and use are always close together, which means to know the type you just have to look up (or use your IDE).

We use hungarian notation at work and it's simply annoying and superfluous and there were already instances of $intSomeVariable containing strings and such.

I would recommend reading this blog entry by Joel Spolsky.

Well that is an entirely different definition of hungarian than what I thought, and certainly a much better one.

Show nested quote +
On October 27 2014 06:34 Nesserev wrote:
This might be the dumbest thing that I've heard all month... care to explain yourself a bit more??

As the blog entry above describes nicely, I need to know what the function does/returns, not its type. Especially when it just adds unnecessary clutter. Much like comments that just say the same thing as the code they target.


I believe that Nesserv was asking why in the world would you rely on your IDE to tell you that?
Time is precious. Waste it wisely.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
October 26 2014 22:55 GMT
#10734
On October 27 2014 07:31 Manit0u wrote:
Show nested quote +
On October 27 2014 07:04 spinesheath wrote:
On October 27 2014 06:40 Morfildur wrote:
Hungarian notation is something that should not be used in the way it's actually used in the wild. As Manit0u said, it's a pain to change the type of a variable. Microsoft ran into that a few years back when their API had to change and suddenly there were unsigned int named variables that were signed long ints and such.

Variables should be used in a limited scope so the declaration and use are always close together, which means to know the type you just have to look up (or use your IDE).

We use hungarian notation at work and it's simply annoying and superfluous and there were already instances of $intSomeVariable containing strings and such.

I would recommend reading this blog entry by Joel Spolsky.

Well that is an entirely different definition of hungarian than what I thought, and certainly a much better one.

On October 27 2014 06:34 Nesserev wrote:
This might be the dumbest thing that I've heard all month... care to explain yourself a bit more??

As the blog entry above describes nicely, I need to know what the function does/returns, not its type. Especially when it just adds unnecessary clutter. Much like comments that just say the same thing as the code they target.


I believe that Nesserv was asking why in the world would you rely on your IDE to tell you that?

Why wouldn't I? Assuming it's not in the same file, and considering that I certainly don't need the exact signature often enough to make it worth the clutter in the name... Most importantly, I don't need that when I'm just reading the code, say to change or fix it. I want to know what it does, not which types it uses. Code shoud be readable like prose, and I don't think specifying the type of each word in noun prose verb makes noun sense.
If you have a good reason to disagree with the above, please tell me. Thank you.
Manit0u
Profile Blog Joined August 2004
Poland17871 Posts
October 26 2014 23:09 GMT
#10735
Specifying the type, not really. But have you read the linked article? Hungarian Notation (apps version) is super useful as it gives you a ton of information about the variable (or function) that no IDE will provide.
Time is precious. Waste it wisely.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2014-10-26 23:16:06
October 26 2014 23:14 GMT
#10736
Well not really, Hungarian Notation isn't really more than a means to write clearer code. If you wrote clearly in the first place and just learned about Hungarian Notation then it hasn't really changed anything. Actually if you use Visual Studio, Eclipse, you get a lot of benefits like being able to provide a summary of the function, and depending on how you would write the summary you get much more benefit from having the IDE than not having it. In other words, I can always supplement Hungarian Notation with an IDE, but you can't display a help tooltip about the function without the IDE, so the IDE's features are almost always a superset of not having an IDE.
There is no one like you in the universe.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
October 26 2014 23:19 GMT
#10737
On October 27 2014 08:09 Manit0u wrote:
Specifying the type, not really. But have you read the linked article? Hungarian Notation (apps version) is super useful as it gives you a ton of information about the variable (or function) that no IDE will provide.

Yes, as mentioned, I was thinking of the interpretation of hungarian where you specify the type. The one described in the article is a completely different thing and seems perfectly reasonable if used appropriately. I was misled by that common misinterpretation.

That being said, don't underestimate IDEs. IDEs won't display such information so prominently, but stuff like Resharper's Inspect Value Origin will give you a lot of information about variables.
If you have a good reason to disagree with the above, please tell me. Thank you.
Nesserev
Profile Blog Joined January 2011
Belgium2760 Posts
October 26 2014 23:25 GMT
#10738
--- Nuked ---
bangsholt
Profile Joined June 2011
Denmark138 Posts
October 27 2014 17:18 GMT
#10739
On October 27 2014 06:22 Manit0u wrote:
Show nested quote +
On October 27 2014 02:37 bangsholt wrote:
On October 27 2014 02:23 Cynry wrote:
On October 27 2014 01:59 Manit0u wrote:
I was once working with someone else's code. His variable naming was very helpful and consistent (even more helpful than good names). Every input and output was in the name, so was the variable type (e. g. "s_somestring_in", "i_someint_out", "f_somefloat" - variable with local scope that's neither function param nor is return value etc.). Makes it really easy to follow, the only problem is when you want to change the variable type, as you then have to rename all occurances.

Was nice to work with it since at all times you knew exactly if you're dealing with variable that has been passed to the function, a variable that will be returned or something temporary.


That sounds pretty good ! Does the "s", "i", "f" stands for something in particular ?


Hungarian notation - you prefix with the type of the variable - quite useful if you do C or embedded.

uint8_t = ui8<variable name>
uint16_t = ui16<variable name>
etc...

f is float, d is double, s/str is string.

p if it's a pointer.

Stuff like that. Can make a codebase incredibly ugly if overused.

On October 27 2014 02:34 _fool wrote:
Btw, renaming a variable in a codebase is usually taken care of by your IDE right?


If you have a somewhat modern one, yes... Sometimes you're stuck with old ones and the feature might not exist.


For this thing I'm mostly stuck with editing through CLI so IDEs are out of the question and the way it works is that it only allows ed server-side. I'm usually doing it via FTP but even then you don't have IDEs for LPC.

Sounds silly but it taught me A LOT.


Exactly where hungarian notation makes life so much easier :D

I've been doing something a bit similar, although I could install vim on the machine I remoted into... But that was all. It had vim and clang. Good times :D
ZenithM
Profile Joined February 2011
France15952 Posts
Last Edited: 2014-10-27 17:49:38
October 27 2014 17:23 GMT
#10740
Whether Hungarian notation is to be advised or not also depends on the language, I do believe. For example you don't want that naming convention is something like Java or C#. In fact, you can look up nearly all coding style guidelines out there on those languages. They specifically strongly advise you against it :D
The way to go in those languages is to design your types (classes/interfaces/traits/whatnot) so that they semantically qualify all their variables, and let your IDE help you if you somehow couldn't find out quickly what the type of the object was. Good coding practices however naturally render the types of variables obvious (short methods, stateless functions, good naming etc..)
Prev 1 535 536 537 538 539 1032 Next
Please log in or register to reply.
Live Events Refresh
PSISTORM Gaming Misc
09:00
FSL season 12 opener: HM vs ST
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
WinterStarcraft294
RuFF_SC2 126
PiLiPiLi 6
StarCraft: Brood War
sOs 59
NaDa 56
ProTech23
Icarus 5
LuMiX 1
Dota 2
PGG 232
League of Legends
JimRising 734
Counter-Strike
taco 477
Super Smash Bros
C9.Mang0254
Other Games
summit1g8955
Day[9].tv817
NeuroSwarm76
ViBE57
Fuzer 47
KnowMe13
trigger13
Organizations
Other Games
gamesdonequick659
Counter-Strike
PGL70
StarCraft: Brood War
UltimateBattle 22
[ Show 13 non-featured ]
StarCraft 2
• Hupsaiya 91
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Laughngamez YouTube
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Other Games
• Day9tv817
• Scarra777
• imaqtpie739
Upcoming Events
IntoTheTV X SOOP
8h 2m
Reynor vs Solar
ByuN vs SHIN
Clem vs MaxPax
herO vs Rogue
IPSL
14h 2m
WorsT vs nOmaD
Dewalt vs andersOn
AI Arena Tournament
16h 2m
IntoTheTV X SOOP
1d 8h
IPSL
1d 14h
Azhi_Dahaki vs ggnore13
Double vs WIZARD
Replay Cast
1d 20h
Replay Cast
2 days
Sparkling Tuna Cup
3 days
WardiTV Invitational
3 days
YoungYakov vs Lambo
SHIN vs TBD
Percival vs Shameless
Solar vs TBD
PiGosaur Cup
3 days
[ Show More ]
The PondCast
5 days
KCM Race Survival
5 days
WardiTV Invitational
5 days
Liquipedia Results

Completed

Proleague 2026-11-05
Blizzard Classic Cup 2026
HCC Season 3

Ongoing

Acropolis #5
KCM Race Survival 2026 Season 4
International ShieldBattery League
BSL Season 23
IPSL Winter 2026-27
Calamity Cup Div. A Season 8
IEM Beijing 2026
PGL Masters Bucharest 2026
Stake Ranked Episode 5
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026

Upcoming

Sector 951
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Underdog Cup 2026 Div 2-3
PGL Bucharest 2027
BLAST Bounty Winter 2027
eXTREMESLAND 2026
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 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.