eMBee is currently certified at Journeyer level.

Name: Martin Bähr
Member since: 2000-05-18 04:08:12
Last Login: 2013-01-01 10:17:48

FOAF RDF Share This

Homepage: http://societyserver.org/mbaehr/


Articles Posted by eMBee

Recent blog entries by eMBee

Syndication: RSS 2.0

Everlasting Life Through Cyberspace

The idea has been brought up a few times, that we would upload our minds into a computer and in this way would be able to live forever.

How would that look like?

At it's base, every uploaded mind would represent a program with access to data storage and computing resources. These programs can interact with each other not unlike programs on the internet today. For example like in a virtual reality game world. (Second Life, etc)

In uploaded form we would manipulate our environment through other programs, that we create ourselves or that others create for us. There might be a market to trade these programs and its products.

Now, anything that is programmable will have bugs and is exploitable, therefore it will be necessary to protect against such attacks. Much like we use encryption today to keep things private, encryption and self protection will play a large role in such a cyberworld.

Unlike today where we can rely on physical protection, healtcare, etc to support us, in cyberspace, all protection comes in form of programs, and that means instead of relying on others to act in our behalf in order to pretect us, every one of us will be able to get a copy of a protection program that we then will be able to control by ourselves. It's all bits and bytes, so there is no reason to assume that we would not be able to have full control over our environment.

We could build cyberspace without these protections, but it is inconceivable that anyone would accept a world where their own well being is not ensured. Either from the outside, or from the inside. But if everyone is uploaded, then there is no more outside, and therefore all protection must come from the inside, through programs. And since even now, most people are not skilled programmers, and that is unlikely to change much in the future, it is hard to imagine that people would willingly enter a world where their life depends on their programming skills. No, people must be able to trust that no harm will come to them in this new world where they otherwise would not have the skill to protect themselves.

The reason we feel safe in this world is because we agreed to a set of laws which we enforce, and for the most part, crimes are visible and can be persecuted. People who live in places where this is not the case don't feel safe, and noone would willingly leave their save home to move to such an area.

In a cyberworld, such safety can only be achieved by making crime impossible to begin with, because given enough resources, a computer program can do damage without leaving a trace.

This has a few severe implications.

If real crime is impossible and we further have full control over our own protection, controlling what data we receive that could possibly offend us, then effectively we can no longer be hurt. There is no physical pain anyways, and any virtual pain we could just switch off.

If we can not be hurt, the corollary is that we can not really hurt anyone. We can not do anything that has any negative consequences on anyone else.

We can not even steal someones computing resources, or rather we probably could but there would be no point because even if computing resources are unevenly distributed, it would not matter.

There is no sense of time, since any sense of time is simulated and can be controlled. So if we were trying to build something that takes lots of time, we could adjust our sense of time so that we would not have to feel the wait for the computation to complete. With that in mind, stealing resources to make computation faster would become meaningless.

And if we could take all resources from someone, then that would effectively kill them as their program could no longer run. It would be frozen in storage. Allowing this could start a war of attrition that would end with one person controlling everyone else and everyone fearing for their life. It just doesn't make sense to allow that.

In other words we no longer have freedom to do evil. Or more drastically, we no longer have complete free will. Free will implies the ability to chose evil. Without that choice free will is limited.

In summary life in cyberspace has the following attributes:

  • We will all live there eternally (well, as long as the computer keeps running).
  • There is no sense of time.
  • We will keep our sense of identity.
  • We will be able to interact with every human ever uploaded.
  • We will continue to advance and develop.
  • There is no power to do evil.
  • We will be able to affect the physical world, and the physical world will affect us.

Here is how cyberspace looks like from the outside:

  • When a person is uploaded, its physical body ceases to function and decays.
  • Everyone can be uploaded, there is no specific requirements or conditions that would prevent anyone from being uploaded.
  • We are assuming that we will be able to communicate with those in cyberspace, but imagine how it would look like if we could not communicate with an uploaded person. We would then actually not be able to tell if they successfully uploaded or not. We would in fact not even be able to tell whether cyberspace exists at all, and we would have to take a leap of faith that it is real.


While discussing this article, a lot of arguments were made about the details of how cyberspace would look like. In particular it was questioned that there would be no pain. Most commenters could not imagine that we'd want a painfree life.

That is fine. These particular details are not important. There are many ways we can imagine how cyberspace could look like. What is important is this:

These attributes of cyberspace as described here, are all attributes of life after death as described at least by the Baha'i Faith, and possibly other religions.

This is significant not because of the attributes themselves, but because this means that given todays grasp of technology, at least this version of cyberspace looks indistinguishable from life after death.

Now, if we are unable to distinguish cyberspace from life after death, then how would we know which one we are dealing with? If it is possible that cyberspace looks like life after death, isn't it equally possible that life after death looks like cyberspace? Is it possible that they are one and the same?

Why do we want to upload into cyberspace? Because we want eternal life free from bodily limitations? Isn't this something that religions have promised us for millenia?

If that is the case, wouldn't we be trying to reinvent something that maybe already exists?

So maybe, cyberspace already exists, and death is just the upload process? Maybe we are simply not yet advanced enough to perceive or understand our life beyond the point of upload from the outside?

Maybe we just need to evolve further before we are able to communicate with those who are uploaded?

Syndicated 2017-05-06 15:25:02 from DevLog

Hiring Pike Programmers

Once in a while i have someone reject to work with me because they don't know Pike. What they are really saying is, that they are not willing to learn something new.

If you are a decent programmer, then learning a new programming language is not hard. Technology changes all the time, and every year you'll learn new frameworks and tools. That's part of your work. So why shy away from learning a new language?

If you can't bring yourself to learn a new language then i suspect you'll also have a hard time learning anything else. So actually i should thank you by refusing the job because of that.

You say: learning a new language is hard.

If you believe that, you haven't tried enough. Sure, if you pick some of the more unusual languages like Haskell, it may be hard (but i don't know, i have not tried learning Haskell yet) and in general, learning your second language is probably the hardest (because the first language you learn, everything is new and you expect it to be hard, but with the second language maybe you fear it is as dificult as the first one, and you don't want to go through that again), also learning a new syntax may take some getting used to.

But all of these hurdles are measured in days.

Pike in particular has a syntax very close to C and Java. (that is, operations that are the same in C, Java and Pike also use the same syntax, with very few exceptions). This makes the syntax also similar to Javascript, PHP, and the many other languages with a C-inspired syntax. Picking that up should not be hard.

The rest is learning the Pike libraries and figuring out what makes Pike tick. You should have that down within a few weeks.

This is the same for pretty much any other language you might start to learn.

I am talking from experience here. I'll give you a few examples:

At my first fulltime job i was hired for my Pike experience. As a junior programmer who hadn't finished univeristy yet, i didn't really have any work history. But i did have a number of Pike modules for the Roxen webapplicationserver that i could show off.

At the same time a university graduate was hired, who had not even seen Pike before joining the team. Within a few weeks she was as productive as the rest of us, and having finished her studies she arguably knew more about programming and could explain more about Pike than i could.

At another job a few years later one of my managers who had just recently joined the company fell in love with Pike, and when he left he built his own company using Pike as the main development language. This guy was not even a programmer.

When i came to china, my first job was for a python programmer. I had learned python by then, but i had no practical experiece whatsoever. I was allowed to do the programming tests in Pike (they had an automated testsuite, which of course could not handle Pike, so in my case the answers were reviewed manually. They had no problems reviewing their tests in a language they had never seen before. That's how good they were). One of the tests i did in python, and i passed and got the job. I was productive from the start.

A few years ago i hired 3 chinese students to work for me. Since this was the first time i hired anyone, i was not sure how learning a new language would go down, on the first day, possibly their first experiene working with a foreigner too. So the first project i gave them was in Java. It was a Java client for the sTeam server. Two of the students left after the summer holidays were over, but one stayed on, and his next project was in Pike. Also for the sTeam server, so he could reuse his knowledge of the APIs that he learned during the Java project, but he did have to learn the language itself. He was productive within a few days.

Last year i was hired to help with a PHP project, using the Laravel framework. I had never really written PHP code before, but the framework was not so different from others (eg Django) so that i was productive immideately. And i ended up fixing other peoples code too.

This summer, i was working with 3 students for Google Summer Of Code. One student worked on the sTeam server, and had to learn Pike for that. He did it during the get-to-know period and started churning out code from the first day of the coding-period.

Another student picked a smalltalk project. She learned smalltalk as soon as she picked the project, joined the pharo-smalltalk community and became a recognized contributor to the pharo 4.0 release. All before her proposal for the GSOC project was even accepted.

Convinced yet?

You say: Noone else uses Pike. It won't help me get a job.

That is probably true. But it is becoming less true as time goes by.

One of the problems with hiring is that, just as you believe learning a new language is hard, so do the hiring managers, and thus they search only for programmers that already know the language that they will need to use.

In the Pike community too. I was the only Pike programmer available who liked moving countries, and so i had my pick for jobs in the USA, in Germany, in New Zealand, in Latvia. Thanks to Pike i got around. Try that with a popular language.

Fortunately, this is changing. Like my first China job, more companies recognizing the ability to learn as more important than a particular language. For them it won't matter which programming languages you learned, as long as you can demonstrate your learning skill. In fact, learning an unknown language will let you stand out as someone serious about learning programming languages.

Learning new languages will also increase your confidence in your ability. For that PHP job i was never asked how much PHP experience i had. I did make clear that i had no experience with Laravel, which is something they could not expect from everyone, even if they had plenty of PHP experiece. But i had experience with similar frameworks, and i was confident that i could pick up what i needed quickly. And i proved it.

When i am hiring programmers myself, i definetly don't care which languages they know. All i care is that they know at least two languages. These people have at least gotten over the second language hump, and learning a third language will be a breeze. Whether it's Pike or any other language.

Stop telling me that you can't learn a new programming language. You can! Because if you couldn't, you would not qualify as a programmer to begin with. At least, i would not hire you.

Syndicated 2015-08-24 17:47:51 from DevLog

Building an API with Zinc-REST in Pharo Smalltalk

In this session we are going to build a simple RESTful API using the Zinc-REST package.

The base image is again Moose, now the latest build of Moose 5.1

You may watch part one, part two and part three of this series if you are interested to find out what lead to this point. They are however not needed to be able to follow this session.

Syndicated 2015-02-28 17:23:13 from DevLog

13 Feb 2015 (updated 28 Feb 2015 at 18:11 UTC) »

A static webapplication hosted on Pharo Smalltalk

For part three of our workshop series we start from scratch, and build a small website that hosts nothing but static files from a memory FileSystem.

We are also going to explore the new development tools that are built in the Moose project

You may watch the first and second parts of this series, or you may jump right in here.

In the next session we are going to build the RESTful API to make this application functional

Syndicated 2015-02-13 08:37:26 (Updated 2015-02-28 18:11:55) from DevLog

3 Feb 2015 (updated 13 Feb 2015 at 09:11 UTC) »

Serving files through FileSystem in Pharo Smalltalk

In the second part of this series we transform our website to serve all content as files from a FileSystem object.

If you haven't yet, take a look at part 1

In the next session we will serve an actual web-application

Syndicated 2015-02-03 05:37:58 (Updated 2015-02-13 09:11:23) from DevLog

19 older entries...


eMBee certified others as follows:

  • eMBee certified loki as Master
  • eMBee certified jtraub as Journeyer
  • eMBee certified miguel as Master
  • eMBee certified alan as Master
  • eMBee certified Telsa as Journeyer
  • eMBee certified riel as Master
  • eMBee certified kojima as Master
  • eMBee certified zab as Journeyer
  • eMBee certified scandal as Master
  • eMBee certified eMBee as Apprentice
  • eMBee certified mhanni as Journeyer
  • eMBee certified id as Journeyer
  • eMBee certified teknix as Journeyer
  • eMBee certified kris as Journeyer
  • eMBee certified octobrx as Journeyer
  • eMBee certified davem as Master
  • eMBee certified BrucePerens as Master
  • eMBee certified quinlan as Journeyer
  • eMBee certified jae as Journeyer
  • eMBee certified jwz as Master
  • eMBee certified xandi as Apprentice
  • eMBee certified Zell as Apprentice
  • eMBee certified wardv as Apprentice
  • eMBee certified mortis as Apprentice
  • eMBee certified kuro5hin as Journeyer
  • eMBee certified andreas as Journeyer
  • eMBee certified graydon as Journeyer
  • eMBee certified js as Journeyer
  • eMBee certified Dauphin as Journeyer
  • eMBee certified jmcastagnetto as Journeyer
  • eMBee certified lucas as Journeyer
  • eMBee certified cbbrowne as Journeyer
  • eMBee certified sparks as Master
  • eMBee certified dnelson as Journeyer

Others have certified eMBee as follows:

  • eMBee certified eMBee as Apprentice
  • jae certified eMBee as Journeyer
  • Zell certified eMBee as Journeyer
  • wardv certified eMBee as Apprentice
  • js certified eMBee as Journeyer
  • jmcastagnetto certified eMBee as Journeyer
  • lucas certified eMBee as Journeyer
  • cbbrowne certified eMBee as Journeyer
  • jLoki certified eMBee as Journeyer
  • dnelson certified eMBee as Journeyer
  • scandal certified eMBee as Journeyer
  • Ohayou certified eMBee as Journeyer
  • Andree certified eMBee as Journeyer
  • chakie certified eMBee as Journeyer
  • hiddenpower certified eMBee as Journeyer
  • rayking71 certified eMBee as Journeyer
  • martinez certified eMBee as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page