lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Mobile Lua 5 is here, featuring full mobility and now three public servers which are aware of each other.

Project info & downloads at: http://luaos.net/pages/mobile-lua.php

Every computation server now maintains a list of 'peers' (other computation servers) which form a sort of little cloud around that server. The concept will quite certainly be extended in the future, with servers belonging to multiple groups and so on.

Also, hyperjumping will be made more robust in the face of server downtimes - comparable to email delivery.

Hyperjumping itself already works great right now. :)

Details on how to try the server are on the web page.

I am hoping very strongly that the group of Mobile Lua enthusiasts will grow quickly.

For what it's worth, I made an impression on a very interesting business guy in a local Starbucks yesterday. They have this designated table for computer freaks, you know. Guy took out his Macbook, his Macbook Air and his iPad (yes he carries all three). I was talking to my Lua servers in Lua OS and, well: One thing led to another and we began to talk.

Turns out he's doing professional video and rendering. His question was: Can you render with your system? My Macbook alone is too slow for the task.

I had to concede that that kind of application may be a little off with a Lua basis - but nothing is impossible with a healthy dose of development work, eh.

Either way, he was impressed. "A cloud made by the people? - That rocks!"

So...

To finish up this mail, I'd like to present to you some Mobile Lua source code (also available as 'example 1' in the server). I hope it will give you a little impression of how my idea of Lua mobility works. Here goes!

--Stefan


*** Mobile Lua example 1 ***

home = mb.hostname()
peers = mb.peers()
report = {}

-- add home server to report

table.insert(report, {server=home, status='online', version=mb.version()})

-- travel to peers

for _, peer in ipairs(peers) do
  print('Jumping to: '..peer)
  if mb.jump(peer) then
    print('Jump OK')
    table.insert(report, {server=mb.hostname(), status='online', version=mb.version()})
  else
    print('Jump failed')
    table.insert(report, {server=peer, status='offline', version='?'})
  end
end

-- return home and report

if not mb.jump(home) then
  error('Please return me to '..home..'!!')
else
  print('Report')
  print('------')
  print()
  print(#report..' peers checked.')
  for _, e in ipairs(report) do
    print("  "..e.server..' '..e.status..'. Running '..e.version)
  end
end

*** end of example 1 ***