• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 06:36
CET 11:36
KST 19:36
  • 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 Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy7ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book19Clem wins HomeStory Cup 289
Community News
Weekly Cups (March 16-22): herO doubles, Cure surprises3Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool42Weekly Cups (March 9-15): herO, Clem, ByuN win42026 KungFu Cup Announcement6BGE Stara Zagora 2026 cancelled12
StarCraft 2
General
Explore the Palmistry Certificate Course at Bivs Weekly Cups (March 16-22): herO doubles, Cure surprises Weekly Cups (August 25-31): Clem's Last Straw? Team Liquid Map Contest #22 - Presented by Monster Energy What mix of new & old maps do you want in the next ladder pool? (SC2)
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament World University TeamLeague (500$+) | Signups Open RSL Season 4 announced for March-April WardiTV Team League Season 10 KSL Week 87
Strategy
Custom Maps
Publishing has been re-enabled! [Feb 24th 2026]
External Content
The PondCast: SC2 News & Results Mutation # 518 Radiation Zone Mutation # 517 Distant Threat Mutation # 516 Specter of Death
Brood War
General
ASL21 General Discussion Soulkey's decision to leave C9 BGH Auto Balance -> http://bghmmr.eu/ JaeDong's form before ASL [ASL21] Ro24 Preview Pt1: New Chaos
Tourneys
[ASL21] Ro24 Group B [ASL21] Ro24 Group A ASL Season 21 LIVESTREAM with English Commentary [Megathread] Daily Proleagues
Strategy
Fighting Spirit mining rates Simple Questions, Simple Answers Soma's 9 hatch build from ASL Game 2
Other Games
General Games
General RTS Discussion Thread Stormgate/Frost Giant Megathread Nintendo Switch Thread Path of Exile Dawn of War IV
Dota 2
Official 'what is Dota anymore' discussion The Story of Wings Gaming
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
TL Mafia Community Thread Five o'clock TL Mafia Mafia Game Mode Feedback/Ideas Vanilla Mini Mafia
Community
General
US Politics Mega-thread European Politico-economics QA Mega-thread Things Aren’t Peaceful in Palestine YouTube Thread Canadian Politics Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Req][Books] Good Fantasy/SciFi books Movie Discussion! [Manga] One Piece
Sports
2024 - 2026 Football Thread Cricket [SPORT] Formula 1 Discussion Tokyo Olympics 2021 Thread General nutrition recommendations
World Cup 2022
Tech Support
Laptop capable of using Photoshop Lightroom?
TL Community
The Automated Ban List
Blogs
Funny Nicknames
LUCKY_NOOB
Money Laundering In Video Ga…
TrAiDoS
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
Shocked by a laser…
Spydermine0240
Unintentional protectionism…
Uldridge
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2114 users

The Big Programming Thread - Page 967

Forum Index > General Forum
Post a Reply
Prev 1 965 966 967 968 969 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.
Excludos
Profile Blog Joined April 2010
Norway8243 Posts
Last Edited: 2018-06-16 10:30:46
June 16 2018 10:30 GMT
#19321
On June 16 2018 19:01 Acrofales wrote:
I assume that's c++. In which case, what's the problem? You promise to return a char array and you do.


I think what he's asking is why you can return a pointer to something who's scope should only be within the function itself. iaretehnoob answered why this specific case works.
sc-darkness
Profile Joined August 2017
856 Posts
Last Edited: 2018-06-16 11:23:37
June 16 2018 10:54 GMT
#19322
On June 16 2018 19:30 Excludos wrote:
Show nested quote +
On June 16 2018 19:01 Acrofales wrote:
I assume that's c++. In which case, what's the problem? You promise to return a char array and you do.


I think what he's asking is why you can return a pointer to something who's scope should only be within the function itself. iaretehnoob answered why this specific case works.


Yes. Also, pointer isn't the same thing as an array. Arrays could decay and become pointers, but the opposite isn't true. You could treat a pointer as if it points to a sequence of elements but I think arrays and pointers are different.

Pointer points to something that is already in memory. I guess string literals are somehow in memory for pointers to work. Otherwise, how do you point to something which you've not allocated memory for?

On June 16 2018 19:19 iaretehnoob wrote:
Show nested quote +
On June 16 2018 18:00 sc-darkness wrote:
Does anyone know why this works at all? It feels unsafe yet it works.


const char* SomeMethod()
{
return "Hello!";
}


Pointer points to something that must exist. Does compiler do some magic?


string literals are special and exist for the entire duration of the program.


That probably makes sense now. They're like static objects then.
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
June 18 2018 03:44 GMT
#19323
This is somewhat programming related, but does anyone know of good replacements for f.lux? It's gotten too heavy for what should be a very simple application.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
TheEmulator
Profile Blog Joined July 2010
28099 Posts
June 18 2018 03:55 GMT
#19324
On June 18 2018 12:44 WarSame wrote:
This is somewhat programming related, but does anyone know of good replacements for f.lux? It's gotten too heavy for what should be a very simple application.

I use redshift on linux. It's incredibly minimalist.

If you're on windows 10 the native blue light app is actually alright. I heard Iris is good but idk how heavy the app is.
Administrator
ShoCkeyy
Profile Blog Joined July 2008
7815 Posts
June 18 2018 12:44 GMT
#19325
If anybody is interested, I recently came across an open source machine learning tool.

https://ml5js.org/

Friendly Machine Learning for the Web.
ml5.js aims to make machine learning approachable for a broad audience of artists, creative coders, and students. The library provides access to machine learning algorithms and models in the browser, building on top of TensorFlow.js with no other external dependencies.

The library is supported by code examples, tutorials, and sample datasets with an emphasis on ethical computing. Bias in data, stereotypical harms, and responsible crowdsourcing are part of the documentation around data collection and usage.


I haven't touched it much, but I assume I will in the future.
Life?
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
June 18 2018 22:07 GMT
#19326
On June 18 2018 12:55 TheEmulator wrote:
Show nested quote +
On June 18 2018 12:44 WarSame wrote:
This is somewhat programming related, but does anyone know of good replacements for f.lux? It's gotten too heavy for what should be a very simple application.

I use redshift on linux. It's incredibly minimalist.

If you're on windows 10 the native blue light app is actually alright. I heard Iris is good but idk how heavy the app is.

Thanks! For some reason I don't feel the need as bad on Linux, but I'll check out Redshift too.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
June 19 2018 00:18 GMT
#19327
I need some advice on DB design/interfacing.

I am using Flask with flask_sqlalchemy as an ORM and postgresql as a DB.

My flask_sqlalchemy Model defines the columns and tables. Should it also include the logic to CRUD objects? If not, where is the ideal place for that to go? In a db.py file?
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Manit0u
Profile Blog Joined August 2004
Poland17700 Posts
June 20 2018 07:30 GMT
#19328
On June 19 2018 09:18 WarSame wrote:
I need some advice on DB design/interfacing.

I am using Flask with flask_sqlalchemy as an ORM and postgresql as a DB.

My flask_sqlalchemy Model defines the columns and tables. Should it also include the logic to CRUD objects? If not, where is the ideal place for that to go? In a db.py file?


Will need to check alchemy further but the general rule of thumb is that internal model logic should be inside the model. Any extra queries you want to perform on it should go into the repository class.
Time is precious. Waste it wisely.
Acrofales
Profile Joined August 2010
Spain18241 Posts
June 20 2018 08:16 GMT
#19329
On June 20 2018 16:30 Manit0u wrote:
Show nested quote +
On June 19 2018 09:18 WarSame wrote:
I need some advice on DB design/interfacing.

I am using Flask with flask_sqlalchemy as an ORM and postgresql as a DB.

My flask_sqlalchemy Model defines the columns and tables. Should it also include the logic to CRUD objects? If not, where is the ideal place for that to go? In a db.py file?


Will need to check alchemy further but the general rule of thumb is that internal model logic should be inside the model. Any extra queries you want to perform on it should go into the repository class.

Agree. CRUD goes in the model.

When I teach MVC to students I have some basic rules:

If it's SQL it's in the model. I don't want to see SQL in the controller, and most certainly never ever in the view. My general rule of thumb is that I should be able to switch database engines and only touch the model.

If it's HTML/CSS/JS it's in the view. I don't want to see html tags or javascript in the controller. JS you could make a case that some of it is controller, but then I'd make a case that you have a clientside view and controller, which in the grand scheme of your application is all view for the server side.

Finally, everything goes throug a controller. You call new pages by their controller, which gets the appropriate data from the model, repackages it and passes it to a view. You never call a view directly from a model, or a model directly from a view. And if you are writing any kind of logic other than how to display something (and what should happen when it is clicked on) in the view, then you are doing it wrong.
Excludos
Profile Blog Joined April 2010
Norway8243 Posts
June 20 2018 10:50 GMT
#19330
On June 20 2018 17:16 Acrofales wrote:
Show nested quote +
On June 20 2018 16:30 Manit0u wrote:
On June 19 2018 09:18 WarSame wrote:
I need some advice on DB design/interfacing.

I am using Flask with flask_sqlalchemy as an ORM and postgresql as a DB.

My flask_sqlalchemy Model defines the columns and tables. Should it also include the logic to CRUD objects? If not, where is the ideal place for that to go? In a db.py file?


Will need to check alchemy further but the general rule of thumb is that internal model logic should be inside the model. Any extra queries you want to perform on it should go into the repository class.

Agree. CRUD goes in the model.

When I teach MVC to students I have some basic rules:

If it's SQL it's in the model. I don't want to see SQL in the controller, and most certainly never ever in the view. My general rule of thumb is that I should be able to switch database engines and only touch the model.

If it's HTML/CSS/JS it's in the view. I don't want to see html tags or javascript in the controller. JS you could make a case that some of it is controller, but then I'd make a case that you have a clientside view and controller, which in the grand scheme of your application is all view for the server side.

Finally, everything goes throug a controller. You call new pages by their controller, which gets the appropriate data from the model, repackages it and passes it to a view. You never call a view directly from a model, or a model directly from a view. And if you are writing any kind of logic other than how to display something (and what should happen when it is clicked on) in the view, then you are doing it wrong.


Good explanation! What about mvvm? It's something I've never had time to learn about in any reasonable depth.
ShoCkeyy
Profile Blog Joined July 2008
7815 Posts
June 20 2018 14:25 GMT
#19331
Magento does a great deal of MVC, and if you're interested in mvvm, vue.js is built around that pattern. However, I don't think the mvvm pattern is built for large enterprise scaling. So that's a downside.
Life?
sc-darkness
Profile Joined August 2017
856 Posts
June 22 2018 18:53 GMT
#19332
Has anyone dealt with OAuth 2, any thoughts? I may have to support it soon.
Manit0u
Profile Blog Joined August 2004
Poland17700 Posts
June 23 2018 11:34 GMT
#19333
On June 23 2018 03:53 sc-darkness wrote:
Has anyone dealt with OAuth 2, any thoughts? I may have to support it soon.


Check previous page of this thread

Bonus:

[image loading]
Time is precious. Waste it wisely.
sc-darkness
Profile Joined August 2017
856 Posts
Last Edited: 2018-06-23 16:35:07
June 23 2018 16:34 GMT
#19334
Thanks, I'll read it. In terms of funny photos:

+ Show Spoiler +

[image loading]

WarSame
Profile Blog Joined February 2010
Canada1950 Posts
Last Edited: 2018-06-24 16:58:22
June 24 2018 03:28 GMT
#19335
I tried to add google oauth to my flask project and ran into issues. When I try to import google.auth.transport.requests.Request I get a module not found error. However, I can look with bash and see that the module is definitely in my venv libs.

My import looks like
from google.auth.transport.requests import Request
though I have tried other import styles, including some from their official guides. What can I be missing?

EDIT: I found out what the error was. The module requires that you have installed "requests" as a library. I thought it was referring to itself as an import or something.
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
WarSame
Profile Blog Joined February 2010
Canada1950 Posts
June 24 2018 21:51 GMT
#19336
I've been trying to setup testing for my Flask app which uses Docker and I've found it difficult.

I need some strategy advice: when/how do you run your tests? Previously I was trying to run my tests using a command in my web image, but then it would exit and cause my web image to exit. Right now I'm using a test image in my compose that uses the same Dockerfile as my web image. It is fine to exit because web will keep on running. However, this seems stupid and wasteful. What is a better approach?
Can it be I stayed away too long? Did you miss these rhymes while I was gone?
Excludos
Profile Blog Joined April 2010
Norway8243 Posts
July 03 2018 17:33 GMT
#19337
Hmm, I've been thinking about this for a while: What's the best way to store someone's credit card information on your servers? Obviously it would need to be encrypted, but it can't just be hashed as you'll need to somehow decrypt it when it's time to automatically renew the subscription or let the user pay more easily on his next online shopping transaction. So you'll need a good encryption and a key to decrypt it, but then you're left with the problem of how and where to store the key instead...

I'm not looking for a tool or library, but more an idea on how you'd go about solving this if you had to do it all from scratch, on a surface level.
WolfintheSheep
Profile Joined June 2011
Canada14127 Posts
Last Edited: 2018-07-03 18:39:01
July 03 2018 18:35 GMT
#19338
On July 04 2018 02:33 Excludos wrote:
Hmm, I've been thinking about this for a while: What's the best way to store someone's credit card information on your servers? Obviously it would need to be encrypted, but it can't just be hashed as you'll need to somehow decrypt it when it's time to automatically renew the subscription or let the user pay more easily on his next online shopping transaction. So you'll need a good encryption and a key to decrypt it, but then you're left with the problem of how and where to store the key instead...

I'm not looking for a tool or library, but more an idea on how you'd go about solving this if you had to do it all from scratch, on a surface level.

Look up industry standards is the best advice I can give you. Financial payment information is one of those things you don't want to be approaching from scratch, because it could potentially get you in a lot of trouble. Here in North America we have the PCI DSS, which is the payment card compliance standard. I don't know what the equivalent would be in Norway.

Most secure solutions I've seen involve not hosting the credit card data at all. It generally involves a 3rd party host (provided by your payment processor) who would take the initial credit card info and give you back a unique identifier that's specific to your business. Within your business, you can keep using that ID as a credit card for processing and future payments, but if anyone hacks in to your system and gets the data it's useless to them.


Edit: Apparently PCI standards are fairly global and also apply to Norway. So there you are.
Average means I'm better than half of you.
Excludos
Profile Blog Joined April 2010
Norway8243 Posts
Last Edited: 2018-07-03 19:21:39
July 03 2018 19:19 GMT
#19339
On July 04 2018 03:35 WolfintheSheep wrote:
Show nested quote +
On July 04 2018 02:33 Excludos wrote:
Hmm, I've been thinking about this for a while: What's the best way to store someone's credit card information on your servers? Obviously it would need to be encrypted, but it can't just be hashed as you'll need to somehow decrypt it when it's time to automatically renew the subscription or let the user pay more easily on his next online shopping transaction. So you'll need a good encryption and a key to decrypt it, but then you're left with the problem of how and where to store the key instead...

I'm not looking for a tool or library, but more an idea on how you'd go about solving this if you had to do it all from scratch, on a surface level.

Look up industry standards is the best advice I can give you. Financial payment information is one of those things you don't want to be approaching from scratch, because it could potentially get you in a lot of trouble. Here in North America we have the PCI DSS, which is the payment card compliance standard. I don't know what the equivalent would be in Norway.

Most secure solutions I've seen involve not hosting the credit card data at all. It generally involves a 3rd party host (provided by your payment processor) who would take the initial credit card info and give you back a unique identifier that's specific to your business. Within your business, you can keep using that ID as a credit card for processing and future payments, but if anyone hacks in to your system and gets the data it's useless to them.


Edit: Apparently PCI standards are fairly global and also apply to Norway. So there you are.


Again I should stress I'm not looking to implement this myself, only a surface level of understanding about how you'd do it (or rather, how others have done it). I'm not crazy enough to put myself in a situation where I could get sued for millions because I lost a bunch of credit cards.

It seems to me like it's a catch 22. No matter what you do, you have to store something which lets you unencrypt the credit cards, which in turn can get stolen and used by hackers to do the exact same thing.
WolfintheSheep
Profile Joined June 2011
Canada14127 Posts
July 03 2018 19:34 GMT
#19340
On July 04 2018 04:19 Excludos wrote:
Show nested quote +
On July 04 2018 03:35 WolfintheSheep wrote:
On July 04 2018 02:33 Excludos wrote:
Hmm, I've been thinking about this for a while: What's the best way to store someone's credit card information on your servers? Obviously it would need to be encrypted, but it can't just be hashed as you'll need to somehow decrypt it when it's time to automatically renew the subscription or let the user pay more easily on his next online shopping transaction. So you'll need a good encryption and a key to decrypt it, but then you're left with the problem of how and where to store the key instead...

I'm not looking for a tool or library, but more an idea on how you'd go about solving this if you had to do it all from scratch, on a surface level.

Look up industry standards is the best advice I can give you. Financial payment information is one of those things you don't want to be approaching from scratch, because it could potentially get you in a lot of trouble. Here in North America we have the PCI DSS, which is the payment card compliance standard. I don't know what the equivalent would be in Norway.

Most secure solutions I've seen involve not hosting the credit card data at all. It generally involves a 3rd party host (provided by your payment processor) who would take the initial credit card info and give you back a unique identifier that's specific to your business. Within your business, you can keep using that ID as a credit card for processing and future payments, but if anyone hacks in to your system and gets the data it's useless to them.


Edit: Apparently PCI standards are fairly global and also apply to Norway. So there you are.


Again I should stress I'm not looking to implement this myself, only a surface level of understanding about how you'd do it (or rather, how others have done it). I'm not crazy enough to put myself in a situation where I could get sued for millions because I lost a bunch of credit cards.

It seems to me like it's a catch 22. No matter what you do, you have to store something which lets you unencrypt the credit cards, which in turn can get stolen and used by hackers to do the exact same thing.

I'd still recommend PCI standards for theoretical information. Encryption key storage is included in the requirements, but yes, ultimately no system is every going to be completely secure. Security is always risk minimization, not risk prevention.

That's why a 3rd party credit card vault (which I think is the industry term) is a lot more secure than storing the data yourself.
Average means I'm better than half of you.
Prev 1 965 966 967 968 969 1032 Next
Please log in or register to reply.
Live Events Refresh
Afreeca Starleague
10:00
Ro24 Group B
Soulkey vs Ample
JyJ vs sSak
Afreeca ASL 7710
StarCastTV_EN199
Liquipedia
Sparkling Tuna Cup
10:00
Weekly #124
CranKy Ducklings71
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
OGKoka 193
ProTech122
SortOf 107
StarCraft: Brood War
Calm 11946
Flash 4957
Bisu 3920
GuemChi 1745
BeSt 695
firebathero 592
EffOrt 327
Zeus 253
Pusan 251
Light 234
[ Show more ]
Leta 221
actioN 206
ZerO 202
Stork 182
HiyA 126
ToSsGirL 78
Killer 73
Rush 67
Mind 60
Sharp 56
PianO 51
Barracks 35
Nal_rA 23
Hm[arnc] 21
Shinee 20
GoRush 20
Bale 17
yabsab 13
Terrorterran 13
soO 9
Purpose 9
sorry 8
Noble 8
Dota 2
XcaliburYe254
canceldota146
BananaSlamJamma140
League of Legends
JimRising 349
Counter-Strike
olofmeister2098
shoxiejesuss768
byalli447
x6flipin187
Super Smash Bros
Westballz17
Other Games
singsing1907
ceh9707
Sick274
crisheroes233
Happy73
Livibee57
Trikslyr25
Organizations
Other Games
gamesdonequick875
StarCraft: Brood War
UltimateBattle 219
Dota 2
PGL Dota 2 - Main Stream138
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 15 non-featured ]
StarCraft 2
• Berry_CruncH195
• StrangeGG 47
• LUISG 27
• CranKy Ducklings SOOP4
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• iopq 6
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Upcoming Events
Replay Cast
22h 24m
Afreeca Starleague
23h 24m
hero vs YSC
Larva vs Shine
Kung Fu Cup
1d
Replay Cast
1d 13h
KCM Race Survival
1d 22h
The PondCast
1d 23h
WardiTV Team League
2 days
Replay Cast
2 days
WardiTV Team League
3 days
RSL Revival
3 days
Cure vs Zoun
herO vs Rogue
[ Show More ]
WardiTV Team League
4 days
Platinum Heroes Events
4 days
BSL
4 days
RSL Revival
4 days
ByuN vs Maru
MaxPax vs TriGGeR
WardiTV Team League
5 days
BSL
5 days
Replay Cast
5 days
Afreeca Starleague
5 days
Light vs Calm
Royal vs Mind
Wardi Open
6 days
Monday Night Weeklies
6 days
Sparkling Tuna Cup
6 days
Afreeca Starleague
6 days
Rush vs PianO
Flash vs Speed
Liquipedia Results

Completed

Proleague 2026-03-23
WardiTV Winter 2026
Underdog Cup #3

Ongoing

KCM Race Survival 2026 Season 1
BSL Season 22
CSL Elite League 2026
CSL Season 20: Qualifier 1
ASL Season 21
Acropolis #4 - TS6
RSL Revival: Season 4
Nations Cup 2026
NationLESS Cup
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
BLAST Bounty Winter Qual

Upcoming

2026 Changsha Offline CUP
CSL Season 20: Qualifier 2
CSL 2026 SPRING (S20)
Acropolis #4
IPSL Spring 2026
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
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.