As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/

PA Programming Thread :: PAdev.net - Need hosting for a service of yours? Check it out.

15354565859100

Posts

  • IncindiumIncindium Registered User regular
    So just to be clear about things what exactly do you get for $5 a month?

    We going to get free subdomains off the hub site or just the http://padev.net/username type thing?

    steam_sig.png
    Nintendo ID: Incindium
    PSN: IncindiumX
  • bowenbowen How you doin'? Registered User regular
    And I assume mediawiki will be our wiki of choice correct?

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • skettiosskettios Enchanted ForestRegistered User regular
    Are certs worth getting if you're just a developer? Always thought that they were more of a systems/it thing.
    Regardless, my boss man seems very into them.

  • bowenbowen How you doin'? Registered User regular
    Get system admin ones for the hell of it. But no, not really. Nothing important anyways. Most of our knowledge is degree based knowledge.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • skettiosskettios Enchanted ForestRegistered User regular
    That's what I thought
    Wants me to get language certs :? Bleh.

  • admanbadmanb unionize your workplace Seattle, WARegistered User regular
    Valuable language knowledge is not measurable by tests.

    mic drop

  • bowenbowen How you doin'? Registered User regular
    Your boss is about to get taken for a ride. Microsoft has about the only legitimate language certs I can think of for stuff like SQL and .NET (I don't even know if they do them anymore).

    I hope your boss is an Eskimo because I have this ice I can sell him.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • urahonkyurahonky Registered User regular
    I have to take the Java certification exam by my 6 month mark at my company. It's just another thing for them to add to their website. :P

    It's also nice to put on a resume... Especially for a newbie like me.

  • InfidelInfidel Heretic Registered User regular
    Certs for programmers are pretty much useless for an individual, but very important for a company as a whole.

    If it takes X active and certified Microsoft .NET Developers to qualify for that Microsoft Gold Partner seal, you bet the company will push for the training and cert to get it. It is important for company/client relations.

    Which is why you'll usually get a bonus for doing them.

    OrokosPA.png
  • skettiosskettios Enchanted ForestRegistered User regular
    urahonky wrote: »
    I have to take the Java certification exam by my 6 month mark at my company. It's just another thing for them to add to their website. :P

    It's also nice to put on a resume... Especially for a newbie like me.

    Are they supplying anything for that?
    Exam cost, study materials, etc? Able to study during work?

  • IncindiumIncindium Registered User regular
    The Cisco CCNA certs are the only ones out in tech land that I've heard that are worth the effort... and they are IT/Networking not Development. The SQL Server ones might be worth it if you want to become a DBA but I dunno.

    steam_sig.png
    Nintendo ID: Incindium
    PSN: IncindiumX
  • urahonkyurahonky Registered User regular
    skettios wrote:
    urahonky wrote: »
    I have to take the Java certification exam by my 6 month mark at my company. It's just another thing for them to add to their website. :P

    It's also nice to put on a resume... Especially for a newbie like me.

    Are they supplying anything for that?
    Exam cost, study materials, etc? Able to study during work?

    If we pass they pay for the exam, and we get a $1k yearly raise. Our company holds a certification meeting every Wednesday during lunch. It's not on company time, but we all eat and review the book via slides and discuss. It's nice to brush up on things. I would have never known about HashMaps if I hadn't gone to them. (though I guess I'd eventually learn them)

  • InfidelInfidel Heretic Registered User regular
    Incindium wrote:
    So just to be clear about things what exactly do you get for $5 a month?

    We going to get free subdomains off the hub site or just the http://padev.net/username type thing?

    You get shell access, public_html userdir gives you http://www.padev.net/~username out of the gate. If you have a domain and wish for it to be hosted by padev.net, you'll request it from an admin. You may also request a subdomain, etc. You'll get a vhost and access to the webroot for it.

    That covers Apache hosting. If you want to host your own service, I have opened up ports for such. 20000 through 29999 are open to incoming tcp/udp connections and you are free to use these.

    MySQL is setup for your user and you get full control of whatever you want to setup there.

    Storage quota currently is 5GB soft / 6GB hard. As mentioned before, don't be wasteful with storage or transfer or database and there won't be any issues.

    For support, you get all of us pretty much as usual. The hands-on admins can assist with things like "I need support for X in PHP, halp." Then the admins can configure it for you, and you don't need to be a master linux admin knowing how to vim some conf files without opening yourself up to getting hacked etc.

    OrokosPA.png
  • skettiosskettios Enchanted ForestRegistered User regular
    Infidel wrote: »
    Certs for programmers are pretty much useless for an individual, but very important for a company as a whole.

    If it takes X active and certified Microsoft .NET Developers to qualify for that Microsoft Gold Partner seal, you bet the company will push for the training and cert to get it. It is important for company/client relations.

    Which is why you'll usually get a bonus for doing them.

    All I knew was that the higher ups were more likely to be for us getting more education if we got something physical to show for it afterwards. Not against learning or anything, just the manner it's being presented to me.

    The microsoft thing makes sense. Unfortunately, my shop doesn't really use their products

  • skettiosskettios Enchanted ForestRegistered User regular
    urahonky wrote: »
    skettios wrote:
    urahonky wrote: »
    I have to take the Java certification exam by my 6 month mark at my company. It's just another thing for them to add to their website. :P

    It's also nice to put on a resume... Especially for a newbie like me.

    Are they supplying anything for that?
    Exam cost, study materials, etc? Able to study during work?

    If we pass they pay for the exam, and we get a $1k yearly raise. Our company holds a certification meeting every Wednesday during lunch. It's not on company time, but we all eat and review the book via slides and discuss. It's nice to brush up on things. I would have never known about HashMaps if I hadn't gone to them. (though I guess I'd eventually learn them)

    That doesn't sound too bad.
    Current thing is some unknown talk of a supposed bonus and doing all studying on your own time, so probably not even at work.
    Another reason why I'm kinda all :?

  • InfidelInfidel Heretic Registered User regular
    skettios wrote:
    Infidel wrote: »
    Certs for programmers are pretty much useless for an individual, but very important for a company as a whole.

    If it takes X active and certified Microsoft .NET Developers to qualify for that Microsoft Gold Partner seal, you bet the company will push for the training and cert to get it. It is important for company/client relations.

    Which is why you'll usually get a bonus for doing them.

    All I knew was that the higher ups were more likely to be for us getting more education if we got something physical to show for it afterwards. Not against learning or anything, just the manner it's being presented to me.

    The microsoft thing makes sense. Unfortunately, my shop doesn't really use their products

    No one cares except for clients, who may prefer or be obligated to only take contracts from companies that have ______ certification. At least in the consulting industry. Oracle is a big one too, especially with their acquisition of Java.

    OrokosPA.png
  • IncindiumIncindium Registered User regular
    Infidel wrote:
    Incindium wrote:
    So just to be clear about things what exactly do you get for $5 a month?

    We going to get free subdomains off the hub site or just the http://padev.net/username type thing?

    You get shell access, public_html userdir gives you http://www.padev.net/~username out of the gate. If you have a domain and wish for it to be hosted by padev.net, you'll request it from an admin. You may also request a subdomain, etc. You'll get a vhost and access to the webroot for it.

    That covers Apache hosting. If you want to host your own service, I have opened up ports for such. 20000 through 29999 are open to incoming tcp/udp connections and you are free to use these.

    MySQL is setup for your user and you get full control of whatever you want to setup there.

    Storage quota currently is 5GB soft / 6GB hard. As mentioned before, don't be wasteful with storage or transfer or database and there won't be any issues.

    For support, you get all of us pretty much as usual. The hands-on admins can assist with things like "I need support for X in PHP, halp." Then the admins can configure it for you, and you don't need to be a master linux admin knowing how to vim some conf files without opening yourself up to getting hacked etc.

    Very Nice...

    steam_sig.png
    Nintendo ID: Incindium
    PSN: IncindiumX
  • InfidelInfidel Heretic Registered User regular
    Any suggestions on the hub site look and feel?

    OrokosPA.png
  • bowenbowen How you doin'? Registered User regular
    It'd be nice to keep the same blueish style as PA? I'm not a big fan of the new layout but the old one was the bomb.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • InfidelInfidel Heretic Registered User regular
    Vanilla Forum Theme based site it is!

    Sorry, jk.

    If anyone wants to take a crack at logos, have at it. I'll probably go with a white on blue theme with orange accents cause duh.

    OrokosPA.png
  • bowenbowen How you doin'? Registered User regular
    I like it.

    not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
  • Steel AngelSteel Angel Registered User regular
    So i was recently doing something in Java for a coding test preceding a job interview and it occurred to me that I've only ever used a small grouping of the various input streams/readers and file output streams/writers. But I have to assume that the others I have not used exist for a reason. Is there anything out there that lists when the different classes are preferred?

    Big Dookie wrote: »
    I found that tilting it doesn't work very well, and once I started jerking it, I got much better results.

    Steam Profile
    3DS: 3454-0268-5595 Battle.net: SteelAngel#1772
  • HalibutHalibut Passion Fish Swimming in obscurity.Registered User regular
    Been working on a ton of personal projects lately (I've got the coding bug right now), and figured it was time for some show and tell.

    I've been working on a parallel/distributed computation library (for Scala, but there might be a Java API at some point). Here's the basic usage:
    val strings = List("Hello", "Goodbye", "Blow up the outside", "Remote control", "Test the")
    
    //distribMap serializes the closure and executes it on a remote client, then returns the transformed result
    //back to the server and stores it in mappedStrings List
    //Blocks until the remote clients have executed all tasks
    val mappedStrings = strings.distribMap{task =>
      //This part executes on the remote client
      task + " world."
    }
        	
    //Once the distributed map is done, the server prints the list
    mappedStrings.foreach{println(_)}
    
    //Hello world.
    //Goodbye world.
    //Blow up the outside world.
    //Remote control world.
    //Test the world.
    

    It works with most (maybe all, I haven't tested yet) of Scala's collections, using the pimp my library pattern to add the distribMap method.

    The underlying remoting implementation uses Akka's actors, which make it ridiculously easy to switch between an entirely local version (which would just do the above in parallel on the same machine), and a fully remote version.

    Akka is a concurrency library for Java and Scala. It's mostly a port of Erlang's actors, but it's got some other stuff as well. Played around with it for a little while, and it's some hot shit.

    Future plans are to add code provisioning so that the server can send the closure class(es) and any dependent libraries to the client at runtime. Then anyone can run a generic client to help out with someones distributed computation and not have to worry about getting a specific version of the client. Also, the server/client stuff is really brittle right now. If a client disconnects while executing a task, the whole thing breaks. So I should probably make that robust.

  • InfidelInfidel Heretic Registered User regular
    Phyphor and I have been testing. I am abandoning ~user directories since there are some security issues with it that I am not comfortable with.

    So everyone gets userid.padev.net instead and you can request subdomains under that if needed. something.padev.net can be setup too if you have a good reason.

    OrokosPA.png
  • NightslyrNightslyr Registered User regular
    Infidel wrote:
    Phyphor and I have been testing. I am abandoning ~user directories since there are some security issues with it that I am not comfortable with.

    So everyone gets userid.padev.net instead and you can request subdomains under that if needed. something.padev.net can be setup too if you have a good reason.

    Could the padev.net/~user URL be faked with mod_rewrite?

  • InfidelInfidel Heretic Registered User regular
    Nightslyr wrote:
    Infidel wrote:
    Phyphor and I have been testing. I am abandoning ~user directories since there are some security issues with it that I am not comfortable with.

    So everyone gets userid.padev.net instead and you can request subdomains under that if needed. something.padev.net can be setup too if you have a good reason.

    Could the padev.net/~user URL be faked with mod_rewrite?

    The problem is that the UID/GID changing for running arbitrary user PHP/code works for userdir's sorta, but it isn't actually secure in the setup. I don't want to go into the details but it is much cleaner and safer if every vhost has a set user. Found a way to spoof other users so kinda defeats the point of UID switching to get around shared-host problems.

    We have several people paid and more are still welcome! I'm getting people their account info as soon as I finish smoothing out the bumps with my early adopters. :P

    OrokosPA.png
  • urahonkyurahonky Registered User regular
    I'll be joining sometime early next month. Right now I'm in the middle of a major demo and have no time for personal projects. :P

  • InfidelInfidel Heretic Registered User regular
    We're up and running, and a lot of work still to be done.

    Thank you early adopters: @bowen @Incindium @Phyphor @weretaco

    And thanks again @zeeny you can paypal it to dmajor@gmail.com :D

    OrokosPA.png
  • InfidelInfidel Heretic Registered User regular
    Sneak peek of the top/logo.

    padevnet.png

    OrokosPA.png
  • DekabalDekabal Registered User regular
    edited January 2012
    Quick coding question here. I'm working on a simple text based battle simulator in Java and I was wondering how I can take a method in one class which has 2 variables and call them individually in another class.
    ex. (What I want to do)

    Class 1:
    public example(){
    Example2 example2 = new Example2
    System.out.println("This is " + example2.Method(variable1) + example2.Method(variable2))
    }
    Class 2:
    public Example 2(String variable1, Int variable2){
    variable 1 = "one";
    variable 2 = 1;
    }

    How/Can you do this without making separate methods for each variable. I can post the actually code if needed.

    Dekabal on
  • admanbadmanb unionize your workplace Seattle, WARegistered User regular
    edited January 2012
    The short answer is that you can't. The long answer is that there's probably a different/better way to do what you're trying to do. What's the problem you're trying to solve?

    admanb on
  • DekabalDekabal Registered User regular
    admanb wrote:
    The short answer is that you can't. The long answer is that there's probably a different/better way to do what you're trying to do. What's the problem you're trying to solve?

    Basically, its a random item selector generator for my battle simulator. When the player types in "search" it calculates on a 50% chance whether or not the actually find an item, then it calculates 50% again on whether they find armor or a weapon. Then its supposed to spit out the item name and stat value and add it to an array in the Main class and add the stat value to the players attack. Here's the code (i'll warn you now, its my first attempt at a program on my own and its very messy).

    Main Class
    import java.util.Scanner;
    
    public class Main {
    	static Scanner userInput = new Scanner(System.in);
    	static String playerName;
    	static String playerAction;
    	
    	//Variables for Fight class
    	static Fight fight = new Fight();
    	//Variables for Search Class
    	
    	static Search search = new Search();
    	static int choice;
    	
    	private static boolean running = true;
    	private static boolean fightSequence = true;
    	private static boolean playerActionSelection = true;
    	
    	//monster stats
    	static int monsterHealth;
    	static int monsterDefence;
    	
    	//player stats
    	static int playerHealth;
    	static int playerArmor;
    	static String playerInventory[][] = {{},{}};
    	
    	
    	
    	
    	
    	
    	public static void main(String[] args){
    		System.out.print("What Is Your Name?: ");
    		playerName = userInput.nextLine();
           
    		System.out.println("Your Name Is " + playerName);
            
    		while(running){
            	System.out.println("What Do You Want To Do?");
            	System.out.println("1. Fight");
            	System.out.println("2. Search");
            	System.out.println("3. Quit");
            	System.out.println("Player Choice: "); 
    			playerAction = userInput.nextLine();
    			System.out.println();
    			System.out.println("You Have Chosen: " + playerAction);
    		
        
    			if(playerAction.equals("Fight")  | playerAction.equals("fight") | playerAction.equals("1")){
    				FightMonster();
    			}else if(playerAction.equals("Search") | playerAction.equals("search") | playerAction.equals("2")){
    				Search();
    			}else if(playerAction.equals("Quit") | playerAction.equals("quit") | playerAction.equals("exit") | playerAction.equals("Exit") | playerAction.equals("3")){
    				System.out.println("Goodbye!");
    				running = false;
    			}
    		}
    	}
    	public static void FightMonster(){
    
    		monsterHealth = fight.monsterHealth(choice);
    		monsterDefence = fight.monsterDefence(choice);
    	
    		System.out.println("You Encounter A: " + fight.monster());
    		
    		
    	
    			while(monsterHealth > 0 && fightSequence){
    				int playerAttack = fight.playerAttack(choice);
    				
    				System.out.println("Health: " + monsterHealth);
    				System.out.println("Defence: " + monsterDefence);
    				
    				playerActionSelection = true;
    				
    				if(monsterHealth > 0){
    					while(playerActionSelection){
    						System.out.println("What Do You Want To Do?");
    						System.out.println("1. Attack");
    						System.out.println("2. Run");
    						System.out.println("Player Choice: ");
    						playerAction = userInput.nextLine();
    						System.out.println("You Have Chosen: " + playerAction);
    						if(playerAction.equals("Attack")|playerAction.equals("attack")|playerAction.equals("1")){
    							if(playerAttack >= monsterDefence){
    							monsterHealth = monsterHealth - (playerAttack - monsterDefence);
    							System.out.println(playerName + " did "  + (playerAttack - monsterDefence) + " damage!");
    							playerActionSelection = false;
    							}else if(playerAttack < monsterDefence){
    								monsterHealth = monsterHealth - 0;
    								System.out.println(playerName + " did 0 damage!");
    								playerActionSelection = false;
    							}
    						}
    						else if(playerAction.equals("Run")|playerAction.equals("run")|playerAction.equals("2"))
    							playerActionSelection = false;
    							fightSequence = false;
    							
    					}
    				}else if(monsterHealth <= 0){
    					fightSequence = false;
    				}
    				
    			}	
    		
    	
    	}
    	
    	public static void Search(){
    		
    		System.out.println("You found " + search.randomItem(item, itemStatsText, itemStats));
    		
    		
    	}
    }
    
    

    Fight Class (Where player battles monster, this one I have working)
    import java.util.Random;
    
    public class Fight {
    	
    	Random roll = new Random();
    	int arrayChoice = roll.nextInt(3);
    	
    	public String monster(){
    		String monsterType[] = {"Wild Dog", "Bandit", "Mutant"};
    		
    		String monster = monsterType[arrayChoice];
    		
    		return monster;
    		
    	}
    	
    	public int monsterHealth(int health){
    		int monsterHealth[] = {2+roll.nextInt(2), 3+roll.nextInt(4), 5+roll.nextInt(7)};
    		health = monsterHealth[arrayChoice];
    		return health;
    		
    	}
    	public int monsterDefence(int defence){
    		int monsterDefense[] = {0, 1+roll.nextInt(2), 2+roll.nextInt(2)};
    		defence = monsterDefense[arrayChoice];
    		return defence;
    	}
    	
    	public int playerAttack(int playerAttack){
    		playerAttack = 1+roll.nextInt(4);
    		
    		return playerAttack;
    	}
    
    }
    

    Search Class
    import java.util.Random;
    
    public class Search {
    	Random roll = new Random();
    	int arrayChoice = roll.nextInt(3);
    	
    	
    	public String weaponList(){
    		String weaponList[] = {"Pipe", "Crowbar", "Chainsaw"};
    		
    		String weapon = weaponList[arrayChoice]; 
    		
    		return weapon;
    	}
    	public int weaponStats(){
    		int weaponStats[] = {1, 3 , 5};
    		
    		int weaponValue = weaponStats[arrayChoice];
    		
    		return weaponValue;
    	}
    	public String armorList(){
    		String armorList[] = {"Hat", "Combat Armor", "Military Armor"};
    		
    		String armor = armorList[arrayChoice]; 
    		
    		return armor;
    	}
    	public int armorStats(){
    		int armorStats[] = {1, 2 , 3};
    		
    		int armorValue = armorStats[arrayChoice];
    		
    		return armorValue;
    	}
    	public String randomItem(String item, String itemStatsText, int itemStats){
    		int randomItemChance = roll.nextInt(1);
    		int itemTypeChance = roll.nextInt(1);
    		
    		if(randomItemChance == 1){
    			if(itemTypeChance == 0){
    				item = weaponList();
    				itemStats = weaponStats();
    				itemStatsText = "'+' + itemStats";
    				
    			}else{
    				item = armorList();
    				itemStats = armorStats();
    				itemStatsText = "'+' + itemStats";
    			}
    			
    		}else{
    			item = "nothing";
    			itemStatsText = "";
    			itemStats = 0;
    		}
    		
    		return item;
    		return itemStatsText;
    		return itemStats;
    		
    	}
    }
    

  • admanbadmanb unionize your workplace Seattle, WARegistered User regular
    Hrm. What's your reasoning for having item, itemStatsText, and itemStats be arguments to randomItem? It looks like what you want is to have an Item class (probably with two descendant classes, Armor and Weapon) with two values: Name and Stats. Then your randomItem method would take no arguments and would return a new Item object with its values set to your randomized values.

    That's sort of one of many problems with that code, but that's all part of the learning process. :)

  • wildwoodwildwood Registered User regular
    Also, I'm pretty sure that nextInt(1) on java.util.Random will always return 0. To get a random bit, you need to call nextInt(2), which will return 0 or 1.

  • DekabalDekabal Registered User regular
    admanb wrote:
    Hrm. What's your reasoning for having item, itemStatsText, and itemStats be arguments to randomItem? It looks like what you want is to have an Item class (probably with two descendant classes, Armor and Weapon) with two values: Name and Stats. Then your randomItem method would take no arguments and would return a new Item object with its values set to your randomized values.

    That's sort of one of many problems with that code, but that's all part of the learning process. :)

    Thats a good idea. I'll try that tomorrow. Any other tips on what I have here?

  • NightslyrNightslyr Registered User regular
    Infidel wrote:
    Sneak peek of the top/logo.

    padevnet.png

    Nice!

    I'm torn. I'd love to have an account, I just don't know what I'd use it for. I have a linux development environment (VM using 2-3 GB RAM... good enough for PhpStorm and MySQL), and I don't need hosting at the moment. But, the project looks fun, and you are all awesome people.

    ...it's $5 a month, right?

  • InfidelInfidel Heretic Registered User regular
    $5 a month so far yep.

    OrokosPA.png
  • DekabalDekabal Registered User regular
    edited January 2012
    admanb wrote:
    Hrm. What's your reasoning for having item, itemStatsText, and itemStats be arguments to randomItem? It looks like what you want is to have an Item class (probably with two descendant classes, Armor and Weapon) with two values: Name and Stats. Then your randomItem method would take no arguments and would return a new Item object with its values set to your randomized values.

    That's sort of one of many problems with that code, but that's all part of the learning process. :)

    I'm actually a bit confused by this. I don't want to ask too much, but could you explain this a bit more or give an example?

    Dekabal on
  • admanbadmanb unionize your workplace Seattle, WARegistered User regular
    edited January 2012
    Item class:
    
    public class Item {
       int stats;
       String name;
    
       public Item(int newStats, String newName) {
          stats = newStats;
          name = newName;
       }
    
       // returns a combination of the item's name and stats, such as "Crowbar +3"
       public String text() {
          return name + " +" + stats; 
       }
    }
    
    Instead of playerInventory:
    public Item playerInventory[] = {};
    
    Instead of weaponList/weaponStats:
    public Item randomWeapon() {
       String names[] = {"Pipe", "Crowbar", "Chainsaw"};
       int stats[] = {1, 3 , 5};
    
       Item result = new Item(stats[arrayChoice], names[arrayChoice];
    }
    
    (pretend there's a randomArmor method with similar code.)

    New randomItem:
    	public String randomItem(){
    		int randomItemChance = roll.nextInt(1);
    		int itemTypeChance = roll.nextInt(1);
                    Item result = null;
    		
    		if(randomItemChance == 1){
    			if(itemTypeChance == 0){
    				result = randomWeapon();
    				
    			}else{
    				result = randomArmor();
    			}
    			
    		}
    		
    		return result;
    	}
    }
    
    New search:
    	public static void Search(){
    		Item searchResult = search.randomItem();
                    if(searchResult != null)
                    {
    		   System.out.println("You found " + searchResult.text());
                       // then add the new item to the player's inventory.
    		}		
    	}
    

    More specifically you'll need some way to distinguish between weapons and armor. One way would be to give the Item class a "type" attribute.

    admanb on
  • InfidelInfidel Heretic Registered User regular
    http://www.padev.net/getting-started

    Have the initial rough-in of the site (drupal based) done, working on a guide to help newbies.

    With this project, not everyone here needs hosting but there was resounding interest in the project anyways. I am looking to turn this into not JUST the hosting. I am thinking we could create a portal for guides, tracking projects, blogging, posting updates, etc.

    You want to be part of the PAdev.net community? No cost involved unless you want the shell accounts. Hit me up and I'll get you an account and email address (you@padev.net, either a mailbox or forwarding alias your choice).

    Brainstorming for what we could make of the portal, go!

    OrokosPA.png
This discussion has been closed.