Subject: Chat with Andrew Stein |
From: Andrew Stein <steinlink@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
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