Showing posts with label simulation. Show all posts
Showing posts with label simulation. Show all posts

Tuesday, August 18, 2009

Computers

What is our greatest achievement as a society? I don't mean our ancient roots that focus on democracy and individuals and limiting manipulative power while increasing personal (positive) power [0], no I mean us as in lately and what defines the biggest thing going right now.

Computers.

Computers have changed things, dramatically. Our society has fundamentally changed due to this, and will continue for some time [1].

The ancient Romans built their greatest masterpieces of architecture, their amphitheaters, for wild beasts to fight in.

- Voltaire

And we have built our greatest masterpiece - the internet - for porn, urban legends, and stupidity. But Voltaire is only partially correct. Sure, battles and fighting and other low brow stuff went on - but art and play and oratory also did. We can find lots of junk on the internet, lots of time wasters, lots of negative material - but like the Roman amphitheaters the structure itself is beautiful, and like all technologies use neutral [2]. I am amazed at the internet. There is so much constructive, and positive, and mind expanding, and interesting, and beautiful on the internet. And that is just one aspect of computers - the aspect that connects us to each other and our works.

Programming computers changes how you think - at its best it clarifies your thinking, changes your thinking, improves your communication, increases your ability (via tools you build), teaches you to check context more. Basically programming puts thinking into notation and makes it a tool, a tool to be used, perfected, analyzed, considered, honed. Writing improves your thinking and communicating, and so does programming [3] - perhaps because these practices are so closely linked to how we think [4] and as are both well suited to deliberate practice [5].

I had once thought that the bulk of the "and then what" of computers was over, we got cheap desktops and wired them up to chat: end of story, sure with some interesting epilogue but story arc climaxed. I no longer believe that. Richard Hamming would spend his Fridays thinking about how to use computers to change things in his work, and how computers are changing things in general [6]. We would all do well to do this. I now believe that computer science has taken the role that physics once held - the king of hard sciences. I say this as computer science is fundamental, growing, and deep. Godel's work and much else fits in to computer science, as does much of physics. People vote with their feet, and just like all [7] the smart people stopped going into philosophy a long, long time ago [8] I believe all the smart people are no longer going into physics. Yeah, there are smart people in physics but the smartest and most interesting go elsewhere. Where? This is an empirical question, but the deepest thinkers seem to fit into the category of computer science writ large [9].

One of the things that make humans so powerful is our ability to simulate in our brains (the future, possibilities, stories, ...). Computers are a tool we built that allows us to simulate outside our brains, and thus both study the simulation process itself in detail as well as extend and modify simulations we perform: we have taken one of the key attributes of humanity and extended it.

Computers are making us as a people. We are growing as individuals and as a society because of them. You are not what you could be if you have not learned the basics of programming [10] and the practical use of computers. We live in the computer era.

Notes:
[0] Though that is what make Western nations so awesome. You want to whine about our society? Go for it - that is your right, and we have also created the wealth that enables you to spend time doing this. Just don't take the little niggles at the corners too seriously: our society has many flaws, but it is amazing. The fact you - that you can - spend time whining about your pet peeve is a wonderful development.
[1] And then what? Is perhaps the greatest and most interesting question - we made computing machines, and then they were used for communications. The internet was not the goal, but it was the destination we discovered.
[2] The side effects and "and then what" are often complained about - take nuclear weapons as an example - but confronting the ideals, potential, and meaning is what drives our evolution as a society. Do you seriously think we are better off without the bomb? The bomb is neutral. Our reaction to the bomb has matured and developed us. The fact is we are smarter and more developed as a society due to the bomb. Now, how much has the bomb endangered us? Do we even know? What is the odds of drastic climate change? Of an asteroid slamming into earth? That someone will use many, many bombs repeatably on "us"? We don't even have a context to compare the world pre- and post- bomb: have we significantly increased the danger to ourselves? Have we lessened it? The fact we simply don't know suggests that perhaps we should not get too worked up.
[3] I find that students pre- and post- programming undergo a transformation in their ability to think. I don't mean pre- and post- programming class, as I have met people who have 1st year programming courses yet do not know about commenting code, debugging, and other aspects (apparently it is "too hard" to mark this stuff, so they skip it and just get you to submit code that is tested for (1) compiling and (2) giving answers), but pre- and post- programming practice. As in you want to learn programming and you try to learn it. But I digress.
[4] Being forms of symbolic manipulation for the purpose of crystallizing meaning.
[5] You have heard of deliberate practice - practice that is systematic, focused, and measurable. The measure is key - if you can't quickly see your results you can simply lock-in bad habits and incorrect assumptions.
[6] Hamming notes that a couple orders of magnitude of change modifies change from "by degree" to "by kind". If something is 100 cheaper this qualitatively changes everything, and all the old assumptions are gone. Computers routinely change things by orders of magnitude.
[7] Okay, not all, but basically all...
[8] At approximately the same time philosophy no longer equaled science and all other things; once we split from generalists to niches of disciplines the philosophers were left with all the boring and irrelevant stuff, and basically comment on the fruits and results of the productive disciplines and arts.
[9] I include cognitive science and linguistics here, as I believe computer science "writ large" is the study of possible processes.
[10] Everyone should learn to program. Everyone should learn to program. It does not matter if you never write a line of code post sitting down to work through a book. To be properly educated you must know the basic concept. I only have the very basics down, and have done very little programming - but I have grown a lot from my few exposures and will be looking to learn more.

Tuesday, August 4, 2009

Logistics

Logistics is often overlooked, can make or break things, and those who take care of logistics get the returns in the long run.

Quite simply logistics is the management of the flow of resources between the start and the finish of some process. Taking care of logistics can reduce stress, increase odds of success, and tends to make things smoother. Ever notice you get nervous before a talk or doing something new? Often the nervousness is over logistics - will I get there in time, what if X happens, etc. Many confident people simple know that the logistics are taken care of, and that they can rely on a general scaffold around what they are doing. Becoming confident often boils down to learning the logistics in place in some environment, or setting up the logistics yourself. A large part of logistics is simply managing your own reactions to events, which is further aided by gathering tools or otherwise manipulating the environment in your favor.

So how to set up logistics? The key is to simulate the environment, in order to become aware of what will be needed to manage the resources (and indeed, to know what resources you need). There are a couple of time tested methods to getting logistics under control, mainly (1) practice, (2) thought experiments, and (3) constraints. By practicing you go through a mini run and "work out the bugs", thought experiments allow you to consider what-if scenarios in order to manage possibilities, and constraints are things you must fulfill giving you targets. The closer the simulation is to reality the better you will catch problems and hone the required logistics, the better thought out the constraints are the more you will get done.

For example, let us say you want to write a book. What are some logistics you can focus on? One is simply making a schedule - picking a temporal environment - and selecting a physical location for writing. You then find tools - dictionary, computer, desk, comfy chair, whatnot - and consider what you can do to improve odds of success: having a neat workspace, having water, being well feed, unplugging the phone, etc. Simply imagining you working and what could go wrong simulates the process. Then simply repeating the actual experience allows you further improvement on logistics - perhaps you though early morning would work for you, but you later find late in the night is better, etc. etc.

One of the key logistical tools you have at your disposal are constraints. Simply by picking a time that you must write for and having a target of how much to do will go a long long way to ensuring success. By finitely bounding the task you ensure you get to it, and also makes you don't do too much of it. Think of scheduling as turning priorities into time - you should set aside time in proportion to priorities. If writing really is a priority you better have time set aside for it, if you family is a priority ditto - and you better make sure your writing time doesn't cut into your family time.

Logistics is the art of managing your environment and yourself. This can sound, and often is, boring. But a little effort in simulating pre- task, adding useful constraints around the task, and considering what may arise can help you succeed. The reducing in stress is worth the sometimes tedious work, and putting a little effort into logistics will improve your odds of success. Also, by focusing on logistics you will find that this simple art of management is pretty transferable between tasks. Once you figure out logistics for one thing you can use the particulars for other things, often with minimal differences.

Logistics is really just preparing a little before jumping into a task - this preparation helps you make the jump, and improves the likelihood that something good will happen. After the splash you then reflect on what went well, and what didn't, and then you jump again. Logistics is about managing your jumps - ensuring you do it, and do it well (or at least slightly better than if you didn't take care of logistics). The key is jumping. Don't over think, just set aside some time for simulation, think up some useful constraints, do some practice if that is possible, and then do it, reflect on the experience and how you can improve the logistics, and do it again.

While logistics itself is often boring, it gets you doing exciting things.

Logistics is about getting comfortable with an environment, and tuning both your reactions and bringing tools to help you in that environment. Simulation is not reality, so your best bet is to actually just do what you want to do, but a little simulation can allow you to extract the most out of an experience and help it go smoothly. If you get stuck in the simulation phase you will never get comfortable. The best approach is iteration - think of what you can, jump in and learn, think about what you learned, jump in again, ... But jump, and jump often.

Get your basic logistics down, and then get down. Successful people manage themselves and their environments - they have logistics under control. Often is it "just" logistics coupled with persistence that leads to good outcomes.

You can get by without logistics - for example you can get an undergrad degree with extremely poor/nonexistent logistics - but if you want to thrive this is a basic tool you need.