• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 23:08
CEST 05:08
KST 12:08
  • 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
[ASL21] Ro24 Preview Pt2: News Flash10[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy18ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book20
Community News
[BSL22] RO32 Group Stage1Weekly Cups (March 23-29): herO takes triple6Aligulac acquired by REPLAYMAN.com/Stego Research8Weekly Cups (March 16-22): herO doubles, Cure surprises3Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool51
StarCraft 2
General
Rongyi Cup S3 - Preview & Info Team Liquid Map Contest #22 - Presented by Monster Energy Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool What mix of new & old maps do you want in the next ladder pool? (SC2) Aligulac acquired by REPLAYMAN.com/Stego Research
Tourneys
RSL Season 4 announced for March-April Sparkling Tuna Cup - Weekly Open Tournament StarCraft Evolution League (SC Evo Biweekly) WardiTV Mondays World University TeamLeague (500$+) | Signups Open
Strategy
Custom Maps
[M] (2) Frigid Storage Publishing has been re-enabled! [Feb 24th 2026]
External Content
The PondCast: SC2 News & Results Mutation # 520 Moving Fees Mutation # 519 Inner Power Mutation # 518 Radiation Zone
Brood War
General
ASL21 General Discussion [BSL22] RO32 Group Stage so ive been playing broodwar for a week straight. Gypsy to Korea Pros React To: JaeDong vs Queen
Tourneys
[ASL21] Ro24 Group F Escore Tournament StarCraft Season 2 [Megathread] Daily Proleagues [ASL21] Ro24 Group E
Strategy
What's the deal with APM & what's its true value Fighting Spirit mining rates Simple Questions, Simple Answers
Other Games
General Games
Stormgate/Frost Giant Megathread Starcraft Tabletop Miniature Game Nintendo Switch Thread General RTS Discussion Thread Darkest Dungeon
Dota 2
The Story of Wings Gaming Official 'what is Dota anymore' discussion
League of Legends
G2 just beat GenG in First stand
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
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread The Chess Thread Russo-Ukrainian War Thread NASA and the Private Sector Things Aren’t Peaceful in Palestine
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion Cricket [SPORT] Tokyo Olympics 2021 Thread General nutrition recommendations
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Broowar part 2
qwaykee
China Uses Video Games to Sh…
TrAiDoS
Funny Nicknames
LUCKY_NOOB
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
ASL S21 English Commentary…
namkraft
Electronics
mantequilla
Customize Sidebar...

Website Feedback

Closed Threads



Active: 11315 users

The Big Programming Thread - Page 706

Forum Index > General Forum
Post a Reply
Prev 1 704 705 706 707 708 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.
Thaniri
Profile Blog Joined March 2011
1264 Posts
Last Edited: 2016-02-24 16:49:25
February 24 2016 16:48 GMT
#14101
If that is actually the example code, then if it had supporting documentation it'd be understandable.

+ Show Spoiler +


function convert(num) {
var holder = "";

while (num > 0){
if(num >= 1000){
num = num - 1000;
holder = holder + "M";
}
else if(num >= 900){
num = num - 900;
holder = holder + "CM";
}
else if(num >= 500){
num = num - 500;
holder = holder + "D";
}
else if(num >= 400){
num = num - 400;
holder = holder + "CD";
}
else if(num >= 100){
num = num - 100;
holder = holder + "C";
}
else if(num >= 90){
num = num - 90;
holder = holder + "XC";
}
else if(num >= 50){
num = num - 50;
holder = holder + "L";
}
else if(num >= 40){
num = num - 40;
holder = holder + "XL";
}
else if(num >= 10){
num = num - 10;
holder = holder + "X";
}
else if(num >= 9){
num = num - 9;
holder = holder + "IX";
}
else if(num >= 5){
num = num -5;
holder = holder + "V";
}
else if(num >= 4){
num = num - 4;
holder = holder + "IV";
}
else if (num >= 1){
num = num -1;
holder = holder + "I";
}
}
return holder;
}

convert(36);



I'm a pretty shit programmer, and here is a script to convert from decimal to roman numerals. Does this code evoke similar emotions when you look at it?

Was thinking of building a calculator that had binary, decimal, hexadecimal, and roman numeral for my own learning.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
Last Edited: 2016-02-24 17:03:38
February 24 2016 17:01 GMT
#14102
On February 25 2016 01:48 Thaniri wrote:
If that is actually the example code, then if it had supporting documentation it'd be understandable.

+ Show Spoiler +


function convert(num) {
var holder = "";

while (num > 0){
if(num >= 1000){
num = num - 1000;
holder = holder + "M";
}
else if(num >= 900){
num = num - 900;
holder = holder + "CM";
}
else if(num >= 500){
num = num - 500;
holder = holder + "D";
}
else if(num >= 400){
num = num - 400;
holder = holder + "CD";
}
else if(num >= 100){
num = num - 100;
holder = holder + "C";
}
else if(num >= 90){
num = num - 90;
holder = holder + "XC";
}
else if(num >= 50){
num = num - 50;
holder = holder + "L";
}
else if(num >= 40){
num = num - 40;
holder = holder + "XL";
}
else if(num >= 10){
num = num - 10;
holder = holder + "X";
}
else if(num >= 9){
num = num - 9;
holder = holder + "IX";
}
else if(num >= 5){
num = num -5;
holder = holder + "V";
}
else if(num >= 4){
num = num - 4;
holder = holder + "IV";
}
else if (num >= 1){
num = num -1;
holder = holder + "I";
}
}
return holder;
}

convert(36);



I'm a pretty shit programmer, and here is a script to convert from decimal to roman numerals. Does this code evoke similar emotions when you look at it?

Was thinking of building a calculator that had binary, decimal, hexadecimal, and roman numeral for my own learning.

You certainly can code that a lot better by introducing a map of roman numerals to decimal values (I = 1, IV = 4, V = 5...) and then looking up the best fit each time. You basically reduce your loop to a single of these if blocks.

It would also be flexible enough to support the unary system (map is just I = 1) and a variety of completely stupid other systems you could invent on the spot.
If you have a good reason to disagree with the above, please tell me. Thank you.
Ropid
Profile Joined March 2009
Germany3557 Posts
February 24 2016 17:06 GMT
#14103
On February 25 2016 01:48 Thaniri wrote:
If that is actually the example code, then if it had supporting documentation it'd be understandable.

+ Show Spoiler +


function convert(num) {
var holder = "";

while (num > 0){
if(num >= 1000){
num = num - 1000;
holder = holder + "M";
}
else if(num >= 900){
num = num - 900;
holder = holder + "CM";
}
else if(num >= 500){
num = num - 500;
holder = holder + "D";
}
else if(num >= 400){
num = num - 400;
holder = holder + "CD";
}
else if(num >= 100){
num = num - 100;
holder = holder + "C";
}
else if(num >= 90){
num = num - 90;
holder = holder + "XC";
}
else if(num >= 50){
num = num - 50;
holder = holder + "L";
}
else if(num >= 40){
num = num - 40;
holder = holder + "XL";
}
else if(num >= 10){
num = num - 10;
holder = holder + "X";
}
else if(num >= 9){
num = num - 9;
holder = holder + "IX";
}
else if(num >= 5){
num = num -5;
holder = holder + "V";
}
else if(num >= 4){
num = num - 4;
holder = holder + "IV";
}
else if (num >= 1){
num = num -1;
holder = holder + "I";
}
}
return holder;
}

convert(36);



I'm a pretty shit programmer, and here is a script to convert from decimal to roman numerals. Does this code evoke similar emotions when you look at it?

Was thinking of building a calculator that had binary, decimal, hexadecimal, and roman numeral for my own learning.

When you notice you are doing something like that, where you copy'n'paste in your editor and edit slightly each time you paste, the different programming languages usually have some feature you could use. You could do this repetition through your code instead of in your editor. The benefit would be that you can change everything at once if you find a mistake or want add something.
"My goal is to replace my soul with coffee and become immortal."
Mr. Wiggles
Profile Blog Joined August 2010
Canada5894 Posts
February 24 2016 17:14 GMT
#14104
On February 25 2016 02:01 spinesheath wrote:
Show nested quote +
On February 25 2016 01:48 Thaniri wrote:
If that is actually the example code, then if it had supporting documentation it'd be understandable.

+ Show Spoiler +


function convert(num) {
var holder = "";

while (num > 0){
if(num >= 1000){
num = num - 1000;
holder = holder + "M";
}
else if(num >= 900){
num = num - 900;
holder = holder + "CM";
}
else if(num >= 500){
num = num - 500;
holder = holder + "D";
}
else if(num >= 400){
num = num - 400;
holder = holder + "CD";
}
else if(num >= 100){
num = num - 100;
holder = holder + "C";
}
else if(num >= 90){
num = num - 90;
holder = holder + "XC";
}
else if(num >= 50){
num = num - 50;
holder = holder + "L";
}
else if(num >= 40){
num = num - 40;
holder = holder + "XL";
}
else if(num >= 10){
num = num - 10;
holder = holder + "X";
}
else if(num >= 9){
num = num - 9;
holder = holder + "IX";
}
else if(num >= 5){
num = num -5;
holder = holder + "V";
}
else if(num >= 4){
num = num - 4;
holder = holder + "IV";
}
else if (num >= 1){
num = num -1;
holder = holder + "I";
}
}
return holder;
}

convert(36);



I'm a pretty shit programmer, and here is a script to convert from decimal to roman numerals. Does this code evoke similar emotions when you look at it?

Was thinking of building a calculator that had binary, decimal, hexadecimal, and roman numeral for my own learning.

You certainly can code that a lot better by introducing a map of roman numerals to decimal values (I = 1, IV = 4, V = 5...) and then looking up the best fit each time. You basically reduce your loop to a single of these if blocks.

It would also be flexible enough to support the unary system (map is just I = 1) and a variety of completely stupid other systems you could invent on the spot.

If you use an ordered map, of decimal to numeral, you can just iterate in reverse through the keys, as well. Then the only check is to make sure you don't drop below 0 when subtracting.
you gotta dance
Manit0u
Profile Blog Joined August 2004
Poland17713 Posts
Last Edited: 2016-02-24 19:18:39
February 24 2016 18:11 GMT
#14105
On February 25 2016 01:48 Thaniri wrote:
If that is actually the example code, then if it had supporting documentation it'd be understandable.

+ Show Spoiler +


function convert(num) {
var holder = "";

while (num > 0){
if(num >= 1000){
num = num - 1000;
holder = holder + "M";
}
else if(num >= 900){
num = num - 900;
holder = holder + "CM";
}
else if(num >= 500){
num = num - 500;
holder = holder + "D";
}
else if(num >= 400){
num = num - 400;
holder = holder + "CD";
}
else if(num >= 100){
num = num - 100;
holder = holder + "C";
}
else if(num >= 90){
num = num - 90;
holder = holder + "XC";
}
else if(num >= 50){
num = num - 50;
holder = holder + "L";
}
else if(num >= 40){
num = num - 40;
holder = holder + "XL";
}
else if(num >= 10){
num = num - 10;
holder = holder + "X";
}
else if(num >= 9){
num = num - 9;
holder = holder + "IX";
}
else if(num >= 5){
num = num -5;
holder = holder + "V";
}
else if(num >= 4){
num = num - 4;
holder = holder + "IV";
}
else if (num >= 1){
num = num -1;
holder = holder + "I";
}
}
return holder;
}

convert(36);



I'm a pretty shit programmer, and here is a script to convert from decimal to roman numerals. Does this code evoke similar emotions when you look at it?

Was thinking of building a calculator that had binary, decimal, hexadecimal, and roman numeral for my own learning.


This is basically a single if/else block inside a while loop. Nothing scary about that. It's when your nesting goes deeper than that when you begin to distinguish the faint code smell.

Edit: Also, note the fact that what I posted was simply the blocks in the code. What you should imagine is that each of those functions (maybe except the firs one) is spanning at least 500 lines and doing some stuff on arrays... Oh, and anyone who wrote it obviously never heard of comments. Nightmare.
Time is precious. Waste it wisely.
Wrath
Profile Blog Joined July 2014
3174 Posts
February 29 2016 18:43 GMT
#14106
TeamLiquid front end developers. I call upon you!

I'm applying for a frond end developer position and I have 0 experience. Please tell me what I should expect in the interview (If I was lucky enough to reach there...).
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
February 29 2016 23:42 GMT
#14107
I'm very inexperienced with it too, but they'll probably get you to write some basic js functions, use JSON in there to interface with something else, have familiarity with Bootstrap or some other framework and design a basic website template from scratch. Depends on what the position focuses on, really. If the job focuses in one area then obviously that'll be more important for the interview.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Nesserev
Profile Blog Joined January 2011
Belgium2760 Posts
March 01 2016 01:55 GMT
#14108
--- Nuked ---
Manit0u
Profile Blog Joined August 2004
Poland17713 Posts
Last Edited: 2016-03-01 02:50:02
March 01 2016 02:47 GMT
#14109
With JS you should familiarize yourself with the module pattern (it'll make understanding libraries like jQuery a lot easier).

With HTML you should learn when to use which tags and some of the more complex ones (video, iframes etc.). It's really important. Also, knowing how to apply aria labels might be a huge bonus (but I doubt most interviewers will ask about it).

For CSS you should really learn something more than pure CSS (no one I know writes in pure CSS any more). LESS or SASS is the way to go.

Basically, you should focus on 2 thigs first: jQuery + Bootstrap since those are most commonly used libraries and if you know them it'll be easier to learn others.

If you have 0 experience I suggest that for the first week you read up on stuff and start with some (not that easy stuff).

Task 1:
Create a single HTML page, no JS, no Bootstrap, just pure HTML and CSS (can be LESS or SASS). But, you have to create some specific elements for it:
a) header
b) left section (1/3rd width)
c) right section (2/3rds width)
d) footer

Now, your job is to make sure that the footer is always on the bottom. It can never go above the bottom side of your screen (it can go below). Left and right sections must be of the same height, regardless of the amount of content you put in each of them (tip: give each element a different background color so you can see them better). Layout can't break if you resize your window (it can scale, but elements can't overlap or disappear suddenly).

This is much harder than you think.

Task 2:
Do the same with Bootstrap (and see how easy it can be).

After that you should just practice adding more stuff to your page. Dropdown menus, modals, sliders, carousels etc.

With that, you'll at least have some decent basics under your belt.

Also, here's a very good thing for every front-end developer:
https://www.google.com/design/spec/material-design/introduction.html
Time is precious. Waste it wisely.
killa_robot
Profile Joined May 2010
Canada1884 Posts
March 01 2016 02:59 GMT
#14110
On March 01 2016 03:43 WrathSCII wrote:
TeamLiquid front end developers. I call upon you!

I'm applying for a frond end developer position and I have 0 experience. Please tell me what I should expect in the interview (If I was lucky enough to reach there...).


Give up because the market is over saturated and they'll just hire someone with lots of experience or someone who has created their own projects over you.

If you're really interested, then work on some open-source projects to build up your resume.
tofucake
Profile Blog Joined October 2009
Hyrule19200 Posts
March 01 2016 03:05 GMT
#14111
I've actually found that there's more jobs than developers...
Liquipediaasante sana squash banana
-Zoda-
Profile Blog Joined April 2011
France3578 Posts
March 01 2016 06:14 GMT
#14112
Dunno about the US but most of the time I hear there are many jobs but many applications.
I'm sort of in the same case as you, so I can't give much advice. I'm following general IT courses atm so I'm leaning a bit more on the full-stack side (but that doesn't mean much with very little experience).
♪ 最初はi つなぐdo それ つまりlife 常に移動 ♪ - IGN: Uhryks
Manit0u
Profile Blog Joined August 2004
Poland17713 Posts
March 01 2016 11:41 GMT
#14113
On March 01 2016 11:59 killa_robot wrote:
Show nested quote +
On March 01 2016 03:43 WrathSCII wrote:
TeamLiquid front end developers. I call upon you!

I'm applying for a frond end developer position and I have 0 experience. Please tell me what I should expect in the interview (If I was lucky enough to reach there...).


Give up because the market is over saturated and they'll just hire someone with lots of experience or someone who has created their own projects over you.

If you're really interested, then work on some open-source projects to build up your resume.


That's like the worst advice ever. Sure, he might not get a job on his first interview (or even fourth) but I'm sure that if he'll take note of the questions asked, learn about it and try again he'll eventually get there. I know I did. A little over 2 years ago I was in the same spot as he is in now (no previous experience, looking for a front-end dev job) and now I'm a senior back-end developer with people spamming me with 3 job offers each day.

It's all a matter of determination and willingness to learn.
Time is precious. Waste it wisely.
Wrath
Profile Blog Joined July 2014
3174 Posts
March 01 2016 13:34 GMT
#14114
^ Thanks for the awesome words, you sure encouraged me to continue on my eternal task of getting away from the administration shit.

I'm more interested on how you ended up being a senior back-end developer when you were looking for a front-end dev job.
Manit0u
Profile Blog Joined August 2004
Poland17713 Posts
March 01 2016 13:42 GMT
#14115
On March 01 2016 22:34 WrathSCII wrote:
^ Thanks for the awesome words, you sure encouraged me to continue on my eternal task of getting away from the administration shit.

I'm more interested on how you ended up being a senior back-end developer when you were looking for a front-end dev job.


I slowly shifted my focus after discovering that front-end is not the place where I want to be... You'll do a couple of "pixel perfect" projects and you'll be puking with it too
Time is precious. Waste it wisely.
Wrath
Profile Blog Joined July 2014
3174 Posts
March 01 2016 14:08 GMT
#14116
On March 01 2016 22:42 Manit0u wrote:
Show nested quote +
On March 01 2016 22:34 WrathSCII wrote:
^ Thanks for the awesome words, you sure encouraged me to continue on my eternal task of getting away from the administration shit.

I'm more interested on how you ended up being a senior back-end developer when you were looking for a front-end dev job.


I slowly shifted my focus after discovering that front-end is not the place where I want to be... You'll do a couple of "pixel perfect" projects and you'll be puking with it too


Well, the reason I'm going for front-end development is because it is the most available job for now. If it was up to me that I could do whatever I wanted to do, I would have chosen something emulating and the low low level like assembly and stuff.

The most language I love is C and C++. But it is just impossible to get jobs with fields like that where I live...
Manit0u
Profile Blog Joined August 2004
Poland17713 Posts
March 01 2016 14:29 GMT
#14117
Well, the good thing about front-end development is that it doesn't really marry you to a specific back-end language, which translates into more opportunities to find a job.
Time is precious. Waste it wisely.
tofucake
Profile Blog Joined October 2009
Hyrule19200 Posts
March 01 2016 14:35 GMT
#14118
yeah but like 70% of the time it'll be php
Liquipediaasante sana squash banana
Manit0u
Profile Blog Joined August 2004
Poland17713 Posts
March 01 2016 14:54 GMT
#14119
On March 01 2016 23:35 tofucake wrote:
yeah but like 70% of the time it'll be php


Can't help the fact that over 80% of websites run on PHP. But there's also plenty of work in SaaS and ERP departments - it's mostly back-end though.
Time is precious. Waste it wisely.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
March 02 2016 01:59 GMT
#14120
What's the module pattern?
There is no one like you in the universe.
Prev 1 704 705 706 707 708 1032 Next
Please log in or register to reply.
Live Events Refresh
CranKy Ducklings
00:00
TLMC #22: Map Judging #1
CranKy Ducklings62
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RuFF_SC2 233
ROOTCatZ 70
StarCraft: Brood War
GuemChi 5876
Sea 38
Noble 27
Dota 2
monkeys_forever926
NeuroSwarm166
League of Legends
JimRising 707
Counter-Strike
taco 637
C9.Mang0325
Super Smash Bros
hungrybox488
Mew2King64
Heroes of the Storm
Khaldor54
Other Games
summit1g10651
tarik_tv4349
Organizations
Other Games
gamesdonequick1137
BasetradeTV122
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 14 non-featured ]
StarCraft 2
• CranKy Ducklings SOOP5
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Lourlo563
• Stunt103
Other Games
• Scarra761
Upcoming Events
Sparkling Tuna Cup
6h 52m
PiGosaur Cup
20h 52m
Replay Cast
1d 5h
Kung Fu Cup
1d 8h
Replay Cast
1d 20h
The PondCast
2 days
CranKy Ducklings
2 days
WardiTV Team League
3 days
Replay Cast
3 days
CranKy Ducklings
4 days
[ Show More ]
WardiTV Team League
4 days
uThermal 2v2 Circuit
4 days
BSL
4 days
Sparkling Tuna Cup
5 days
WardiTV Team League
5 days
BSL
5 days
Replay Cast
5 days
Replay Cast
6 days
Wardi Open
6 days
Liquipedia Results

Completed

CSL Elite League 2026
RSL Revival: Season 4
NationLESS Cup

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
StarCraft2 Community Team League 2026 Spring
Nations Cup 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026

Upcoming

Escore Tournament S2: W2
IPSL Spring 2026
Escore Tournament S2: W3
Acropolis #4
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
uThermal 2v2 Last Chance Qualifiers 2026
RSL Revival: Season 5
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
CCT Season 3 Global Finals
IEM Rio 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.