Club PA 2.0 has arrived! If you'd like to access some extra PA content and help support the forums, check it out at patreon.com/ClubPA
The image size limit has been raised to 1mb! Anything larger than that should be linked to. This is a HARD limit, please do not abuse it.
Our new Indie Games subforum is now open for business in G&T. Go and check it out, you might land a code for a free game. If you're developing an indie game and want to post about it, follow these directions. If you don't, he'll break your legs! Hahaha! Seriously though.
Our rules have been updated and given their own forum. Go and look at them! They are nice, and there may be new ones that you didn't know about! Hooray for rules! Hooray for The System! Hooray for Conforming!

[Programming] Page overflow to new thread

This is the PA programming thread, home to programmers everywhere. Here we talk about cats, ponies, synergised high-efficiency software cloud platforms, and occasionally programming.
padevnet.png

PADev.net is a project started up by this thread to support PA developers. A discussion about shared hosting turns into an idea to have hosting and a community to support those working on hobby programs and web services and what not.

Some things require a dedicated VPS but the bar of entry isn't that low. The cost is not extravagant but the know-how required to manage one is daunting for many. PAdev.net provides a share of hosting and support, a $5 monthly fee nets you a shell account on the hub server and the expertise of your peers.

Community members looking to help out can request an account for the website, where all members can create and maintain guides and share project updates. There is no cost to have a community account, just contact an administrator. Also available are [email protected] email accounts or forwarders.

Current administrators: @Infidel

Languages
  • Python - One of the most popular scripting languages around, Python is the go-to language for...just about everything, actually. Its high scalability and widespread support through third-party libraries make it useful for many applications, from simple five-minute jobs to complex Web servers. Python can also be embedded or bound into lower-level languages such as C, letting you write performance-critical code as well as providing access to libraries written for those languages.
  • Ruby - Another popular scripting language, Ruby is best known as the basis for Ruby on Rails, a framework for Web development that competes with its Python equivalent, Django. While not quite as famous as the juggernaut that is Python, Ruby is nonetheless prolific - modern versions of RPG Maker use it as their scripting language, for instance. And, of course, it can be embedded into other applications, much like Python.
  • Lua - Yet another scripting language. Lua is built on two principles: simplicity and minimalism. Designed with embedding in mind, Lua's overhead is tiny (it can be counted in hundreds of kilobytes at most) and the language itself only provides a handful of constructs...until you master the black arts of tables and metatables. Those who have done so claim to have seen the face of God; these claims are as yet unsubstantiated. What we do know, however is that in recent years Lua has garnered much attention thanks to LuaJIT, a project that provides not only a just-in-time compiler for Lua (granting a massive speed boost - almost C-like performance, in fact), but also an FFI (foreign function interface) library, allowing Lua scripts to directly call C functions without the hassle of writing boilerplate C bindings.
  • C and C++ - The Ones Who Came Before. C and C++ are old, clunky, archaic...and the most popular languages in existence. C was conceived in an era when memory was limited and programs were generally written in non-portable assembly languages. The underlying concept (which persists to this day) was that a compiler would take C code, turn it into assembly, and then turn that into an executable or library. Thus, programmers now only had to port most of the codebase instead of all of it! (the situation has improved considerably since then, of course - these days, only the really low-level stuff has a tough time being cross-platform). C++ came some time later, and shook things up significantly with the concepts of classes and generics. Modern C++ also includes the Standard Template Library, or STL, which provides all sorts of useful functionality to make life almost painless. These days most people will learn something simpler like Python before these guys, but make no mistake - everything from your operating system to your favourite video games to your microwave can trace its roots back to one of the two.
  • C# - The poster boy for Microsoft's .NET Framework, C# is a JIT-compiled language modelled after C++, but without any of the associated pain. Though initially developed as a robust alternative for Windows development, Microsoft makes the specifications available at no cost, which has led to other implementations popping up - the most well-known being the cross-platform Mono. The main draw of C# is its ease of use: with a ridiculous number of APIs available by default and the ability to call into native code, you'll have a tough time finding something higher-level that you can't do in C#. The fact that Visual Studio, one of the best IDEs around, also supports C#, is just icing on the cake.
  • Android - Directly responsible for bringing this OP into the 21st century, Android is a pseudo-operating system framework which runs on top of Linux. Android is primarily written in Java, though it also combines elements of C, C++ and sometimes even Python, and is designed for mobile devices. The Android application framework represents an almost entirely event-driven paradigm written primarily in Java which heavily utilises usage of background services, model-view-controller, and sub-classing as a method of changing behaviour of standard pieces. Also, it runs on your phone!
  • Java - :rotate:
  • PHP - :rotate:

(Credit: Original OP here)

Previous thread here.

Do you write software? Or just want to talk/bring up some software development related stuff? We are here!

And lurking.

And judging. Quietly. =P

Penny Arcade Developers at PADev.net.
«13456718

Posts

  • ecco the dolphinecco the dolphin Registered User regular
    zeeny wrote: »
    New thread for Glorious Survey Plz.
    https://insights.stackoverflow.com/survey/2019

    PS: I'm above average, but I don't know about the rest of you guys... https://insights.stackoverflow.com/survey/2019#evaluating-competence
    We asked respondents to evaluate their own competence, for the specific work they do and years of experience they have, and almost 70% of respondents say they are above average while less than 10% think they are below average. This is statistically unlikely with a sample of over 70,000 developers who answered this question, to put it mildly.

    Penny Arcade Developers at PADev.net.
    ASimPerson
  • Monkey Ball WarriorMonkey Ball Warrior A collection of mediocre hats Seattle, WARegistered User regular
    Someone should write a blurb for Go. Among other reasons, we were discussing it directly in the previous thread.

    (If noone wants to I could try to write something up later, but my biases might show :twisted: )

    "I resent the entire notion of a body as an ante and then raise you a generalized dissatisfaction with physicality itself" -- Tycho
    Echo
  • zeenyzeeny Registered User regular
    I'm sorry, is this an above average programming thread or just the usual one?

    Monkey Ball Warrior
  • bowenbowen How you doin'? Registered User regular
    above average, so no zeenies allowed

    not a doctor, not a lawyer, don't @ me
    Orca
  • DehumanizedDehumanized Registered User regular
    we can only honestly evaluate this thread by page 50; before that i don't think we have enough of a representative sample to compare it to the average

  • EchoEcho Moderator mod
    Me: The RFCs for DNS are clear about how things should work, I don't have to cover <weird edge case>.

    Companies of a sufficient size:

    HI2R7zMl.jpg

    Echo wrote: »
    Let they who have not posted about their balls in the wrong thread cast the first stone.
    Monkey Ball WarrioriTunesIsEvilthatassemblyguy
  • EtheaEthea Registered User regular
    edited April 9
    I expect that programmers that believe they are above average also have a strong belief in meritocracy.

    Edit: And a belief that programmers shouldn't have a union.

    Ethea on
    OrcathatassemblyguySporkAndrewAngelHedgie
  • templewulftemplewulf The Team Chump USARegistered User regular
    Ethea wrote: »
    I expect that programmers that believe they are above average also have a strong belief in meritocracy.

    Edit: And a belief that programmers shouldn't have a union.

    Are you implying that my support for unions has to do with me being a complete fraud?

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • bowenbowen How you doin'? Registered User regular
    I want to unionize so we can all slack off equally.

    not a doctor, not a lawyer, don't @ me
    templewulfMonkey Ball WarriorEchokimeOrcaadmanbAngelHedgieironsizideThe Escape Goat
  • Monkey Ball WarriorMonkey Ball Warrior A collection of mediocre hats Seattle, WARegistered User regular
    It's not imposter syndrome if you really are an imposter.

    "I resent the entire notion of a body as an ante and then raise you a generalized dissatisfaction with physicality itself" -- Tycho
    templewulfOrca
  • LD50LD50 Registered User regular
    we can only honestly evaluate this thread by page 50; before that i don't think we have enough of a representative sample to compare it to the average

    I have a neural network trained on historical thread data predicts this thread to be very, very solidly below average.

    Orca
  • EtheaEthea Registered User regular
    templewulf wrote: »
    Ethea wrote: »
    I expect that programmers that believe they are above average also have a strong belief in meritocracy.

    Edit: And a belief that programmers shouldn't have a union.

    Are you implying that my support for unions has to do with me being a complete fraud?

    Absolutely. Imposter Syndrome means that self labeled frauds are at least average 😆

    But seriously we need a union.

  • SpawnbrokerSpawnbroker Registered User regular
    A union would also hopefully mean that there would be some quality control on who gets to call themselves a programmer

    So I don't get interview candidates who can't write a loop

    You would not believe me if you saw my numbers on how many people with 5+ years of "programming" experience don't know how to write a loop. Before you go off on how those people should be filtered out before they get to me, you're right; my HR department sucks real bad. These people are still applying to programming jobs knowing they can't program at all and trying to fool us into hiring them.

    Battle.net: Spawnbroker#1471
    Steam: Spawnbroker
    Final Fantasy XIV: Spawn Broken
  • templewulftemplewulf The Team Chump USARegistered User regular
    A union would also hopefully mean that there would be some quality control on who gets to call themselves a programmer

    So I don't get interview candidates who can't write a loop

    You would not believe me if you saw my numbers on how many people with 5+ years of "programming" experience don't know how to write a loop. Before you go off on how those people should be filtered out before they get to me, you're right; my HR department sucks real bad. These people are still applying to programming jobs knowing they can't program at all and trying to fool us into hiring them.

    Assuming they succeed, what is the next step in this plan????

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • SpawnbrokerSpawnbroker Registered User regular
    templewulf wrote: »
    A union would also hopefully mean that there would be some quality control on who gets to call themselves a programmer

    So I don't get interview candidates who can't write a loop

    You would not believe me if you saw my numbers on how many people with 5+ years of "programming" experience don't know how to write a loop. Before you go off on how those people should be filtered out before they get to me, you're right; my HR department sucks real bad. These people are still applying to programming jobs knowing they can't program at all and trying to fool us into hiring them.

    Assuming they succeed, what is the next step in this plan????

    I have at least 5 employees in my department that I couldn't actually describe what they DO. My company doesn't fire these people. They just sit there until they retire. Doing nothing.

    Battle.net: Spawnbroker#1471
    Steam: Spawnbroker
    Final Fantasy XIV: Spawn Broken
  • dporowskidporowski Registered User regular
    Xcode, I deleted that. I did it on purpose, stop putting it back, Xcode. I took the file entirely away, I trashed it, deleted it, scorched the earth, STOP PUTTING IT BACK.

    In other news, Xcode, dependencies, and project structure is a reason to drink.

  • LD50LD50 Registered User regular
    All macs belong in the garbage.

  • dporowskidporowski Registered User regular
    "Here's a workspace. Make that depend on that so I can include bits from it in two subprojects."

    You'd think that'd be straightforward, but no. Because Xcode has very strong feelings about everything.

  • templewulftemplewulf The Team Chump USARegistered User regular
    LD50 wrote: »
    All macs belong in the garbage.

    Come on, now, let's be reasonable. They can run Linux too.

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
    OrcaMonkey Ball Warrior
  • dporowskidporowski Registered User regular
    edited April 10
    The Mac is fine! It's the bloody IDE...

    Edit: I think it's because the target I'm working with has no equivalent to the "Embed Binaries" build step. Link? Copy? Mais oui! Embed? Non. This may get ugly. :/

    dporowski on
  • bowenbowen How you doin'? Registered User regular
    A union would also hopefully mean that there would be some quality control on who gets to call themselves a programmer

    So I don't get interview candidates who can't write a loop

    You would not believe me if you saw my numbers on how many people with 5+ years of "programming" experience don't know how to write a loop. Before you go off on how those people should be filtered out before they get to me, you're right; my HR department sucks real bad. These people are still applying to programming jobs knowing they can't program at all and trying to fool us into hiring them.

    All they know is they took some excel courses once, wrote some formulas, they were easy, so they think they can cash in on all these dollars as a "programmer", whatever that means.

    Alternative answer: you're not paying enough or advertising you're paying enough to entice actual software devs to apply.

    not a doctor, not a lawyer, don't @ me
  • LD50LD50 Registered User regular
    bowen wrote: »
    A union would also hopefully mean that there would be some quality control on who gets to call themselves a programmer

    So I don't get interview candidates who can't write a loop

    You would not believe me if you saw my numbers on how many people with 5+ years of "programming" experience don't know how to write a loop. Before you go off on how those people should be filtered out before they get to me, you're right; my HR department sucks real bad. These people are still applying to programming jobs knowing they can't program at all and trying to fool us into hiring them.

    All they know is they took some excel courses once, wrote some formulas, they were easy, so they think they can cash in on all these dollars as a "programmer", whatever that means.

    Alternative answer: you're not paying enough or advertising you're paying enough to entice actual software devs to apply.

    https://www.gamasutra.com/blogs/CBel/20180208/308549/3D_engine_entirely_made_of_MS_Excel_formulae__Enjoy_this_Doomxls_file_.php

    bowen
  • EchoEcho Moderator mod
    Playing Guitar Hero in this repo.

    ec25t5si9gxb.png

    Echo wrote: »
    Let they who have not posted about their balls in the wrong thread cast the first stone.
    thatassemblyguySporkAndrewDrovekEtheaDisruptedCapitalistwunderbartemplewulfadmanbironsizideNaphtaliCarpy
  • CampyCampy Registered User regular
    edited April 10
    Echo wrote: »
    Playing Guitar Hero in this repo.

    SNIP!
    ec25t5si9gxb.png

    That's a very pretty git visualisation, what app do you use?

    Campy on
  • thatassemblyguythatassemblyguy RESIST. irregularRegistered User regular
    That's GitKraken.

    EchoMonkey Ball WarriorCampy
  • djmitchelladjmitchella Registered User regular
    LD50 wrote: »
    bowen wrote: »
    A union would also hopefully mean that there would be some quality control on who gets to call themselves a programmer

    So I don't get interview candidates who can't write a loop

    You would not believe me if you saw my numbers on how many people with 5+ years of "programming" experience don't know how to write a loop. Before you go off on how those people should be filtered out before they get to me, you're right; my HR department sucks real bad. These people are still applying to programming jobs knowing they can't program at all and trying to fool us into hiring them.

    All they know is they took some excel courses once, wrote some formulas, they were easy, so they think they can cash in on all these dollars as a "programmer", whatever that means.

    Alternative answer: you're not paying enough or advertising you're paying enough to entice actual software devs to apply.

    https://www.gamasutra.com/blogs/CBel/20180208/308549/3D_engine_entirely_made_of_MS_Excel_formulae__Enjoy_this_Doomxls_file_.php

    also in Excel: "DungeonDelveXL is a fully-featured Role Playing Game (RPG), written entirely inside Microsoft Excel."

    Fight2.png

    kimeDisruptedCapitalistschussNaphtali
  • Ear3nd1lEar3nd1l Eärendil the Mariner, father of Elrond Registered User regular
    I'm have a bit of a professional conundrum and wanted to get some opinions from you folks.

    I am working on a project as a contractor through a third-party company. On this project is another contractor from the same third-party. We have been working on this for several months now and I realized yesterday that he hasn't put in a single pull request the entire time. He has created a couple of git branches with a minimal amount of code, but a lot of it is copy pasted from other code (some mine, some others). I thought back to all the standups we have each day and he always has the same vague status update "working on my tasks, no blockers, blah blah blah."

    My conundrum is whether or not to say something to the PM from the third-party company. The client either doesn't care or hasn't noticed yet (they operate more like a waterfall project than an agile one) and frankly it doesn't really affect my work load in the least. I'm more concerned that the client is being taken for a ride by someone who appears to be screwing around and that they will eventually find out, get pissed, and potentially kill the project leaving me without work.

  • templewulftemplewulf The Team Chump USARegistered User regular
    Ear3nd1l wrote: »
    I'm have a bit of a professional conundrum and wanted to get some opinions from you folks.

    I am working on a project as a contractor through a third-party company. On this project is another contractor from the same third-party. We have been working on this for several months now and I realized yesterday that he hasn't put in a single pull request the entire time. He has created a couple of git branches with a minimal amount of code, but a lot of it is copy pasted from other code (some mine, some others). I thought back to all the standups we have each day and he always has the same vague status update "working on my tasks, no blockers, blah blah blah."

    My conundrum is whether or not to say something to the PM from the third-party company. The client either doesn't care or hasn't noticed yet (they operate more like a waterfall project than an agile one) and frankly it doesn't really affect my work load in the least. I'm more concerned that the client is being taken for a ride by someone who appears to be screwing around and that they will eventually find out, get pissed, and potentially kill the project leaving me without work.

    This kind of thing is always the responsibility of whoever is managing this other person. If their manager has them doing some whole other thing (like building tools outside the repo for the main project), you don't want to look like a busy-body trying to manage above your responsibilities.

    That said, it's also the kind of thing that you could bring up with your own manager in a 1 on 1. Like "Hey, I haven't seen any pull requests from whoever. Are they working on something else, or do they have a big branch merge coming that I should watch out for?"

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
    thatassemblyguykimeEar3nd1lInfidelbowenadmanbSpawnbrokerSporkAndrewNaphtaliSpoit
  • CampyCampy Registered User regular
    Yeah, I'd go with what templewulf said and bring it up privately in a none-finger pointing manner. Could be that they are indeed arsing around, or perhaps they've been working on a repo you don't have visibility of.

    Also depending on how the code copying has been done, it might not be incompetence. Keeping the same coding style and behaviour across the code base could be a reason that you're seeing this; and that's a good thing! Are they editing said code to fit with what they're doing in a reasonable manner? I.e is it clear that they understand the code and are making modifications to suit their needs? Or are they just making copy pasta and hoping for the best?

    I've seen the latter from a former dev at my current place. We didn't really know how bad he was until we left and started having to maintain re-write his code. It was replete with clear copy pastes from Stack Overflow (with SO comments and everything!) with no attempts at modification.

  • Ear3nd1lEar3nd1l Eärendil the Mariner, father of Elrond Registered User regular
    That's what I am leaning toward, but I figured a second opinion (or more) couldn't hurt. Honestly the only reason I am hesitant is because I've been burned before. Several years ago I worked on a team of six where two of us did 80% of the work. After trying to motivate the other team members to pull their weight we decided to broach it with management, only to be told to shut up because the client was happy and didn't care so we shouldn't rock the boat. Shortly afterward we got pulled into a meeting with HR and told to mind our own business.

  • CampyCampy Registered User regular
    Holy fuck, well let me be the first to let you know that was bullshit and awful behaviour from management. I can only hope that you and your colleague that actually worked were compensated for it in your pay pack compared to the lazy geese on your team.

    Mvrck
  • LD50LD50 Registered User regular
    Campy wrote: »
    Holy fuck, well let me be the first to let you know that was bullshit and awful behaviour from management. I can only hope that you and your colleague that actually worked were compensated for it in your pay pack compared to the lazy geese on your team.

    Season 1 spoilers:
    They weren't.

    OrcatemplewulfEar3nd1lthatassemblyguy
  • Ear3nd1lEar3nd1l Eärendil the Mariner, father of Elrond Registered User regular
    edited April 10
    Campy wrote: »
    Yeah, I'd go with what templewulf said and bring it up privately in a none-finger pointing manner. Could be that they are indeed arsing around, or perhaps they've been working on a repo you don't have visibility of.

    Also depending on how the code copying has been done, it might not be incompetence. Keeping the same coding style and behaviour across the code base could be a reason that you're seeing this; and that's a good thing! Are they editing said code to fit with what they're doing in a reasonable manner? I.e is it clear that they understand the code and are making modifications to suit their needs? Or are they just making copy pasta and hoping for the best?

    I've seen the latter from a former dev at my current place. We didn't really know how bad he was until we left and started having to maintain re-write his code. It was replete with clear copy pastes from Stack Overflow (with SO comments and everything!) with no attempts at modification.

    It's straight copy-paste (most of it is my code, so I recognize it) and hasn't been changed at all. And there's only one repo for our work on the project, so I know he's not dumping code somewhere else.
    Campy wrote: »
    Holy fuck, well let me be the first to let you know that was bullshit and awful behaviour from management. I can only hope that you and your colleague that actually worked were compensated for it in your pay pack compared to the lazy geese on your team.

    The only thing we got was grief and lectures. Management didn't care because the less work the schmucks did, the longer the project took and the more money they could bill. The client never noticed because the business analyst was ignorant. That was in 2015 and based on what I can tell from LinkedIn, the project is still ongoing.

    Ear3nd1l on
  • CampyCampy Registered User regular
    At that point I'd probably do something stupid like speak directly to the client.

    How that would pan out for me would probably depend on the amount of other coding jobs in the area.

    Ear3nd1l
  • Ear3nd1lEar3nd1l Eärendil the Mariner, father of Elrond Registered User regular
    Campy wrote: »
    At that point I'd probably do something stupid like speak directly to the client.

    How that would pan out for me would probably depend on the amount of other coding jobs in the area.

    lol

    I just found another job instead. Both companies deserved each other, to be honest.

  • OrcaOrca Registered User regular
    This is one of those situations where the client's goals and the consulting company's goals are likely out of sync. Your realistic options aren't great, unless you leave.

    So good job leaving. :D

    The 2012 issue of Fornax. | Steam and Origin: Espressosaurus
    templewulfthatassemblyguy
  • Ear3nd1lEar3nd1l Eärendil the Mariner, father of Elrond Registered User regular
    I just spoke with the PM from the third-party and gave him a heads up. I basically told him that there haven't been any PRs and very little code. I told him that what he chose to do with the info was entirely up to him and I didn't need to know any further. I don't want them to look bad and I don't want the client to get screwed. He was very appreciative that I brought it to his attention and said he would look into it to make sure the client is getting their money's worth. So at this point, I've done my part and the rest is up to them.

    Thanks for all the advice, I appreciate the feedback.

    templewulfLD50Mvrck
  • SpawnbrokerSpawnbroker Registered User regular
    edited April 10
    Guys I think we finally found our new hires.

    I can stop interviewing people, finally.

    This brings up another thing. I've basically been moved into the position of team lead for this team (promoted at the end of last year). Now we're expanding pretty quickly and moving our head count from 3 to 6 developers. Any recommendations for good books or articles to read about being an effective manager without pissing everyone off? I'm going to have to onboard and train three new people pretty soon. These are all developers with as much or more experience than me, but I am the one with the institutional knowledge of our tools and systems.

    One of these people is moving into a position more senior than me; we're expecting to hire someone with at least 10 more years of experience than me to basically be an architect-level individual contributor.

    Edit: We have about 25 in-house programmers in my department and we're adding 3 more to the team I'm on.

    Spawnbroker on
    Battle.net: Spawnbroker#1471
    Steam: Spawnbroker
    Final Fantasy XIV: Spawn Broken
  • bowenbowen How you doin'? Registered User regular
    Guys I think we finally found our new hires.

    I can stop interviewing people, finally.

    This brings up another thing. I've basically been moved into the position of team lead for this team (promoted at the end of last year). Now we're expanding pretty quickly and moving our head count from 3 to 6 developers. Any recommendations for good books or articles to read about being an effective manager without pissing everyone off? I'm going to have to onboard and train three new people pretty soon. These are all developers with as much or more experience than me, but I am the one with the institutional knowledge of our tools and systems.

    One of these people is moving into a position more senior than me; we're expecting to hire someone with at least 10 more years of experience than me to basically be an architect-level individual contributor.

    Edit: We have about 25 in-house programmers in my department and we're adding 3 more to the team I'm on.

    jesus christ do you make video games or something

    not a doctor, not a lawyer, don't @ me
  • SpawnbrokerSpawnbroker Registered User regular
    bowen wrote: »
    Guys I think we finally found our new hires.

    I can stop interviewing people, finally.

    This brings up another thing. I've basically been moved into the position of team lead for this team (promoted at the end of last year). Now we're expanding pretty quickly and moving our head count from 3 to 6 developers. Any recommendations for good books or articles to read about being an effective manager without pissing everyone off? I'm going to have to onboard and train three new people pretty soon. These are all developers with as much or more experience than me, but I am the one with the institutional knowledge of our tools and systems.

    One of these people is moving into a position more senior than me; we're expecting to hire someone with at least 10 more years of experience than me to basically be an architect-level individual contributor.

    Edit: We have about 25 in-house programmers in my department and we're adding 3 more to the team I'm on.

    jesus christ do you make video games or something

    Worse; I work for lawyers

    Battle.net: Spawnbroker#1471
    Steam: Spawnbroker
    Final Fantasy XIV: Spawn Broken
    ironsizideEchoBarrakketh
Sign In or Register to comment.