Subject: Chat with Andrew Stein
From: Andrew Stein <steinlink@gmail.com>
To: barriticus@gmail.com

10:30 PM me: if I wanted to make a simple text-based simulator of a little world with inhabitants that walk around and breed, would you suggest PHP, Ruby, or Python?
 Andrew: do you want to make it, or just have it?
10:32 PM the answer is python, anyway
 me: make it, I want to learn how to code so I can work on that project and build it into something more complex over time and also so that I can better understand the actual requirements of the widget for Project PM as I need to have something basic by August and want to ensure that I can explain to our programmers what it would entail and understand the final product myself
10:33 PM Andrew: in that case
  javascript
 me: why so?
 Andrew: represents the best cost/benefit
10:34 PM me: easier for a noob?
 Andrew: easy to learn, simple web browser embedded platform
 me: so why do you suggest javascript over python now?
 Andrew: no compiling, no sockets, no tcp, no multithreading, no caching, no acid, no persistence, et
 me: okay
 Andrew: honestly
10:35 PM because server stuff is hard
  and whatever oyu mean be widgets, they are java script
 me: okay, and I imagine I can find the tutorials and any necessary software on the web?
10:36 PM Andrew: everywhere
  it is the most widely used language on the planet
  by far
  all oyu have to do to run it is save it and open it in firefox
 me: and it's good for setting up something along these lines?
10:37 PM this simple little environment with a bunch of rooms?
  and goblins walking around breeding?
 Andrew: you didnt say anything about rooms, but yes
 me: what I mean is that the text world will be divided into units
10:38 PM as in Zork or anything else
 Andrew: thats a nontrivial difference - rooms means you have to learn graph traversal - but javascript is fine
10:39 PM graph traversal can be tricky - how do the goblins know where to go and where they are in a graph?
10:40 PM best to start with a large empty room where every (x,y) is a valid goblin location within some bounding box(mx, Mx), (my, mY)
  then you can add rooms once it works
10:41 PM you'll be better equipped to handle the increased complexity once you ge tthe first part working
 me: they wouldn't know where they are in a graph, their movement would be based on their characteristics as in some other simulators of the sort, as in if there's no food, they will go in a random direction, others will be more likely to go into a direction if another goblin has gone in that direction, others less likey
10:42 PM that's fine, I understand there'a a process, I would implement the "rooms" as opposed to what you're describing only after first implementing what you're describing, or perhaps not depending on if your suggestion serves the purpose
10:43 PM the point is simply to have an environment in which they can travel
10:44 PM Andrew: how do you represent a graph? how do you know what directions are available? how do you "move" a goblin from one room to another? The game world your describing is a data structure called a graph - in order to represent the state of your game in code and mutate it, you need to understand how graph ADTs work in a very basic capacity
  its not trivial
  but not super complicated
  in a giant room, each goblin can just be (x,y)
10:45 PM me: right, I'm simply describing what my goal is, I understand that I need to learn these concepts in the process of doing that
10:46 PM and I'd be fine with a giant room like you describe if that sufficiently represents an environment in which subjects can exist in different "places" or at any rate only be able to interact with objects and each other when meeting a condition that would represent "being in a particular space"
10:47 PM Andrew: you dont understand
  im not telling you to change your game
  you should do what you want
  but you shoudl do it in two stages
  it will be much easier
  the graph stuff is easy to bolt on once the core stuff works
  dont try to buil the whole game all at once
 me: No, I understand, that's why I wrote "that's fine, I understand there'a a process, I would implement the "rooms" as opposed to what you're describing only after first implementing what you're describing,"
10:48 PM Andrew: but then you said "and I'd be fine with a giant room like you describe if that sufficiently represents an environment in which subjects can exist in different "places" or at any rate only be able to interact with objects and each other when meeting a condition that would represent "being in a particular space"
  suggesting that you thought I was proposing an alternative
  which im not
  just an implementation strategy
10:49 PM seriously though
  javascript is excellent
 me: no, I know you weren't, what I was saying is that if that happens to fulfill my needs
 Andrew: easier than python even
 me: because I might use it as a sort of test implementation and then revise my proposed end project based on what I learn about the basics from doing thatr
10:50 PM so definitely java, then?
 Andrew: no
  not java
  javascript
  they are not related at all
  seperate companies, seperate languages
  its confusing but true
10:51 PM me: I'm using it as shorthand, I know java's different, Josh and I already discussed it
 Andrew: ok, then i was confused
  don touch java
  java == bad
 me: but I'll refer to it as javascript of course if I ask questions
  speaking of which
  how helpful are IRC rooms dedicated to particular languages?
10:52 PM if I go in with a question, am I likely to get helpful responses if my question is phrased correctly?
 Andrew: depends on the language - javascript will have many, many helpful users, but also alot of numbskulls
10:53 PM only problem with js in that sense it that it is popular, so alot of noise
  but i dont think youll be asking many obscure questions at first
  use #javascript on freenode
10:54 PM me: and when I ask our programmers to try to create an implement that will allow our bloggers to send a post to widgets on another blog, is there a specific manner in which I ought to describe it?
10:55 PM assuming you're familiar with the sort of functionality I'm looking for?
  sorry, implement = widget
 Andrew: you should describe it as a person with alot of money ordering custom software from a tech company - just tell them exactly what oyu want it to do
  just come up crystal clear goals and firm deadlines
10:56 PM say "it should do this exact one simple thing at this exact date"
  and make a list of simple things
  like, literally "it should be a panel with a button and a text box" as a simple task
10:57 PM and then "clicking the button should submit the contents of the box to the origin server" as another, etc
  trust me on this one, software projects are very, very difficult to manage even for small professional teams
10:58 PM with large disconnected internet teams it very quickly becomes unmaintainable
  OSS can work because 99% of contributors are researchers that get tenure to write high quality code in tandem with distributed researchers
11:00 PM the list can be as long as you want, just make sure it is everything and that each task is a simple 1-3 hour project
11:04 PM me: okay, thanks

54 minutes
11:59 PM Andrew: ever heard of an ad agency called "the deck"?
12:01 AM me: nope
12:02 AM Andrew: they represent a handful of really popular blogs
  and the sell in a bizarre way
  isntead of aucitoning off the ad space piecemeal or going through an ad company
12:03 AM the sell exactly 30 ad slots every month to 30 advertisers for exactly $8k per slot, no bidding
  or $8k for an advertiser to "reserve" an entire day across all sites
12:04 AM they make guaranteed $3mil a year
  because their "deck" of sites are all popular
12:05 AM you could do that very easily with project pm, just get everyone to publish on the same site, make somethign simple like huffpo
  the ad revenue woul dbe huge and youd get all the control you want
  5-10 popular bloggers and oyu could make alot of money
12:06 AM http://decknetwork.net/
12:10 AM me: nah, going to stick with our plan, we've made some determinations as to how to proceed and raise money as needed, plus I don't want to have a centralized website
 Andrew: why?
12:11 AM the point of a decentralized network is that anyone can join without your permission and publish
  you want the opposite
12:12 AM me: no, not in the way we're implementing it, and you don't seem to understand what we're doing anyway
 Andrew: never have