Jump to content

URWIGO builder


yourself

Recommended Posts

Hi,

I would like to introduce Urwigo - an alternative to official Wherigo Builder. It is not trying to be a competition for Earwigo, which I am sure is great, it was created solely from my frustration with Builder. I believe it will be useful for the Wherigo/Geocaching community.

Urwigo can import cartridges created in Whergo Builder, it has a different take on building the cartridge code, it has a few more functions and most importantly it should be more reliable and stable.

 

In addition to Wherigo builder Urwigo allows:

- create, edit, view all zones on google maps

- random numbers generation

- obfuscating and encrypting answers

- showing errors in your cartridge

- syntax highlighting in user LUA functions

- automatic shortening of unlock code

- run cartridge in emulator with only one button (F5)

- many more...

 

It can be downloaded and installed from Download & Install URWIGO - bottom of the page.

 

post-2816453-1266327495.jpgpost-2816453-1266327515.jpgpost-2816453-1266327524.jpgpost-2816453-1266329030.jpg

 

Moderator Note: Use this updated link: http://www.urwigo.cz

Edited by Ranger Fox
Added a more recent link due to a post on 2014-05-27. Updated link also on 2014-12-30.
  • Upvote 2
Link to comment

Interesting and definitally has potential.

 

Took me a little while to realise I had to drag and drop elements on the left into the diagrams, but once I realised that, things seemed to do what I wanted. Perhaps a really simple walk through on creating a cartridge would help.

 

Few issues:

1. A few translations havn't been done e.g. True hasn't been translated yet from Pravda, and Prikazy (sorry couldn't find the characters on my keyboard, thats the closest I could manage hence Google not been able to translate it [:D] )

2. Importing the .lua file works for most but not all projects - whack-a-lacky is an example of one that fails.

3. Once imported, I suspect you can not export the code again back to a lua file, so that others would be able to download and read the file (unless they have URWIGO).

 

But all in all looks quite good and much easier to see whats going on than in the builder.

Link to comment

It crashed again. Steps to reproduce:

- Start Urwigo

- In "Objects and properties", double-click "Zones"

- Click the green cross for "New item..."

- Add three points on the map

- File, Save As, type a filename, then either hit Save or wait a few seconds => Crash

 

I also discovered that you can skip most of that:

- Start Urwigo

- File, Save As, type a filename, then either hit Save or wait a few seconds => Crash

Link to comment

It crashed again. Steps to reproduce:

- Start Urwigo

- In "Objects and properties", double-click "Zones"

- Click the green cross for "New item..."

- Add three points on the map

- File, Save As, type a filename, then either hit Save or wait a few seconds => Crash

 

I also discovered that you can skip most of that:

- Start Urwigo

- File, Save As, type a filename, then either hit Save or wait a few seconds => Crash

Thanks for the report, but I cannot reproduce it. When the application crashes, it creates c:\UrwigoError*.log, could you send them to me on apps (at ) yourself.cz ?

Link to comment

Nice! I will try this. I like the friedly interface.

 

For now: I can't import my cartridge.

When the cartridge uses something more exotic the import might fail, but it should happen sparsely. I could take look at the problem more closely, if you would send me the cartridge (.lua) at apps (at ) yourself.cz.

Edited by yourself
Link to comment

Very nice. This is what a builder should be like.

 

It wasn't able to open my cartridge. But I just edited out the user functions and then I was able to load it. Of course I needed to put them back and to fix the calls to make it work. With URWIGO, I was able to do a lot of what I had done directly in builder, so the user functions section is much smaller.

 

I like the graphical representation. I can see places where I have If conditions repeated that don't need to be and some other places where I have code repeated inside of the If then else that can be move outside. The Wherigo builder was really sensistive as to what it would allow for If...Then, and forced a lot of ugly workarounds. So far I've not seen a similar problem here. I also find the inlining of the OnClick callbacks for message boxes much easier to work with.

 

It did crash a few times, but that may be because of some of the weirdness I had to use with the Wherigo builder. As I am cleaning things up in URWIGO it seems to be getting more stable.

 

Other issues

 

As mentioned there are still a few Czech words that haven't been translated.

 

I've got a few place where I check for a Lua value of nil. I can do this by inserting a user expression and just typing the Lua variable, but I would like to just be able to drag the Wherigo variable or property (or really any expression the builder allows). URWIGO is trying to be helpful in requiring a Yes/No (Boolean)expression. In Lua, everything is Boolean (everything other than nil or false is true).

Link to comment

As mentioned there are still a few Czech words that haven't been translated.

I did not notice, could you please point them out so I can translate them?

 

It did crash a few times, but that may be because of some of the weirdness I had to use with the Wherigo builder. As I am cleaning things up in URWIGO it seems to be getting more stable.

When the application crashes, it creates c:\UrwigoError*.log, could you send them to me on apps (at ) yourself.cz ?

 

I've got a few place where I check for a Lua value of nil. I can do this by inserting a user expression and just typing the Lua variable, but I would like to just be able to drag the Wherigo variable or property (or really any expression the builder allows). URWIGO is trying to be helpful in requiring a Yes/No (Boolean)expression. In Lua, everything is Boolean (everything other than nil or false is true).

I understand, but I not currently sure how to fix this. Dragging variables directly as conditions would not really work much without a "logical not" block/action - which I think would make things messy. There is a "compare" expression, but that forces the other side to the variable type if it knows it, as you said. I'll think about it, maybe I should add a "nil" choice to those currently strict boolean/string/number choices.

Link to comment

Took awhile to struggle through how to build things. Glad I had several cartridges that I could import and see what things looked like.

 

This looks great. Thanks for creating it.

 

I really like the ability to encrypt answers etc. Does this mean that cheaters will not be able to reverse engineer the code?

Link to comment

I really like the ability to encrypt answers etc. Does this mean that cheaters will not be able to reverse engineer the code?

For answers, yes. {Comparison Answer="something"} are converted to Hash(Answer)=hash_of_something. One could find collisions in the hash function, but the answer cannot be read. Other strings are "encrypted" by a very simple symmetric cipher, that protects them from reading them by a naked eye only.

Link to comment

Some minor issues:

 

1. I created a GWZ file and was hoping to look at the .Lua file inside it. So I renamed it to .ZIP and explored. I can see a file called _Cartridge.Lua but Windows XP won't let me extract it from the archive - it also says that the original size of the file is 4GB. In the end, I was able to extract it with 7-Zip. (The format of the file is... substantially different from Groundspeak's. <_<)

 

2. Accented characters don't seem to work, at least in the emulator. I compiled for PocketPC which should be right for the emulator (UTF-8) but out of "éùçàèß", only "é" remotely survived - as "e" - and the others all became question marks. I was kind of expecting to see accents work in a Czech program. ;)

 

3. Missing translation: when I drag "Answer" to a conditional expression, I see "Odpoved'".

Link to comment

1. I created a GWZ file and was hoping to look at the .Lua file inside it. So I renamed it to .ZIP and explored. I can see a file called _Cartridge.Lua but Windows XP won't let me extract it from the archive - it also says that the original size of the file is 4GB. In the end, I was able to extract it with 7-Zip. (The format of the file is... substantially different from Groundspeak's. <_<)

I'll check for a newer version of SharpZipLib which is used for zipping the contents. However I trust more its implementation of zip rather than Windows Explorer's.

2. Accented characters don't seem to work, at least in the emulator. I compiled for PocketPC which should be right for the emulator (UTF-8) but out of "éùçàèß", only "é" remotely survived - as "e" - and the others all became question marks. I was kind of expecting to see accents work in a Czech program. ;)

All characters outside 7-bit ASCII set are converted to "?" except some known accented characters which are converted to theirs non-accented representation. That is intentional.

3. Missing translation: when I drag "Answer" to a conditional expression, I see "Odpoved'".

Fixed

Edited by yourself
Link to comment

In addition to the issues sTeamTraen reported, I've had the following issues working on my cartridge

 

1. When I don't select 'Obfuscate Strings' the spacing on my strings is messed up. It looks like line break and most other white space is removed. When Obfuscate Strings is selected there is no problem.

 

2. Nesting of Numeric Operations doesn't work as I expected. For example

 

 Numeric Operation (-)
	  Op1: 10
	  Op2: Numeric Operation (+)
				  Op1: 7
				  Op2: Numeric Operation (-)
						   Op1: 3
						   Op2: 2

I expected 10-(7+(3-1)) = 1, instead I get 10-7+3-1=5

However if I tell it to do rounding on the nested operation I do get the grouping desired

10-round(7+round(3-1)) = 1

 

3. My cartdride is causing the emulator to crash. This only occurs near the end of my cartridge when it seem to be updating the last task. I believe from the trace back this when the emulator is updating the list of tasked display. Sometimes it is when I make the final tasks active and visible and sometimes its when i mark the final task as complete. This did not happen with cartridge as built in the official builder. I have not tried yet to see if this crashes on my Oregon. The crash reports attempt to access non existent memory and that this may be a sign that memory is corrupt. I think that perhaps something is overwriting some memory and this is causing the emulator to crash.

Link to comment

1. When I don't select 'Obfuscate Strings' the spacing on my strings is messed up. It looks like line break and most other white space is removed. When Obfuscate Strings is selected there is no problem.

Fixed

 

2. Nesting of Numeric Operations doesn't work as I expected. For example

 

 Numeric Operation (-)
	  Op1: 10
	  Op2: Numeric Operation (+)
				  Op1: 7
				  Op2: Numeric Operation (-)
						   Op1: 3
						   Op2: 2

I expected 10-(7+(3-1)) = 1, instead I get 10-7+3-1=5

However if I tell it to do rounding on the nested operation I do get the grouping desired

10-round(7+round(3-1)) = 1

[/code]

What you expected should have been there, fixed.

 

3. My cartdride is causing the emulator to crash. This only occurs near the end of my cartridge when it seem to be updating the last task. I believe from the trace back this when the emulator is updating the list of tasked display. Sometimes it is when I make the final tasks active and visible and sometimes its when i mark the final task as complete. This did not happen with cartridge as built in the official builder. I have not tried yet to see if this crashes on my Oregon. The crash reports attempt to access non existent memory and that this may be a sign that memory is corrupt. I think that perhaps something is overwriting some memory and this is causing the emulator to crash.

If I could replicate the error, I could take look at it, but I suspect that there is little I can do. The emulator is the same as in Builder. I can't currently explain why it crashes, Lua code should not cause it. If you can, you could send me the cartridge (mail: apps (at ) yourself.cz).

Link to comment

This is not true. I have tested this with both Wherigo Builder compiler and Wherigo.com compiler with same results:

FOR UTF-8 encoding - it works only in emulator (test1-3), causes errors on PPC.

FOR ISO encoding - does not work anywhere (test4-6).

Also you can see, that lua string functions does not work with UTF encoding or with other charset (they does work only with basic 7bit ASCII chars)

 

Because of this, I think the best thing what URWIGO can do is to convert non 7-bit characters and do not support accented characters.

post-723638-1267063083.png

post-723638-1267063092.png

post-723638-1267063099.png

post-723638-1267063105.png

post-723638-1267063111.png

post-723638-1267063117.png

Link to comment

Another minor bug,

 

In the PROPERTIES column, in the ZONE mode, if you put a check mark in the "Always in Range" box, it changes the measurements to FEET. If you uncheck it, it goes to meters.

 

Also, in the emulator, I see all my measurements in Feet and miles. Is there someway to change that to meters and kilometers???

 

Happily testing along! :lol:

Link to comment

If you check "Always in range", it sets In Range distance to 0. That is the way how Wherigo internaly works. So it does not depend on used units. But automatic changing of units if misleading and I think that yourself will fix it.

 

Emulator: click Main -> Units -> Metric

Link to comment

If you check "Always in range", it sets In Range distance to 0. That is the way how Wherigo internaly works. So it does not depend on used units. But automatic changing of units if misleading and I think that yourself will fix it.

 

Emulator: click Main -> Units -> Metric

Great I will try that out!

 

Also, I noticed that when putting a SET box I can only drag a value or task or item to RIGHT side of expression. I cannot for the life of me drag anything to the left!

 

For example: if I wanted to set a task complete or inactive. I cannot drag the task to the left and a value of False to the right. Help! Anyone?? I'm sure I'm missing something painfully simple.

 

-Jayloki-

 

P.s.: I am using Vista and everything else seems to be working excellently.

Edited by Jayloki
Link to comment

Update: ok. Fingerscrossed helped me out with this one.

 

I was dragging a new set box from the list of commands then tryign to drag the items/zones/tasks into them ( which only lets you drop it ont he right side of the SET box).

 

I was shown that if I select the item/zone from the list on bottom left side of screen double click them to open each item/zone's tree and drag the ACTIVE option ( just below the item/zone's title) into the set box all is well.

 

:lol: Thanks folks for your help!!!

Link to comment
This is not true. I have tested this with both Wherigo Builder compiler and Wherigo.com compiler with same results:

 

Because of this, I think the best thing what URWIGO can do is to convert non 7-bit characters and do not support accented characters.

Here's what I've learned from the Earwigo project:

- The Garmin player uses ISO 8859-1, aka "8-bit ASCII". No good for Czech but it handles the accents of most European countries that were on the US side in the Cold War. :lol: Of course, the Garmin units can display Czech characters and use UTF-8 for that, but it seems that whoever they subcontracted the development to, didn't know "foreign" very well.

- PPC, emulator, etc use UTF-8.

- The compiler works fine with both sorts of characters, provided that you encode them in \nnn notation inside a Lua "short string". If you want line breaks as well, you need to put "<BR>\n" in the string (really), and of course < and > get eaten by the compiler, so in fact you have to put \060BR\062\010 in the string.

- None of that applies to the cartridge's Description or Starting Location Description fields, which have to be in Lua long strings because of the way the Wherigo.com site hacks the cartridge during download. And because you can't use \nnn notation in Lua long strings, you can't have accents (Lua is fine with them but again the compiler eats them).

 

Once you've worked all that out, you can have perfect accents on any platform, give or take the limit for Czech, Polish, Russian, etc on Garmin. I'm confident that you could build a Japanese cartridge for PPC.

 

The only current issue we have is that when you want accents, the PPC and Garmin versions require different .Lua files. That in turn means that you can't upload a single GWZ file to Wherigo.com. For the moment, if you want people to be able to play with accents on both platforms and have all the benefits of completion codes, etc, you have to create two different cartridges at the Wherigo.com level.

Edited by sTeamTraen
Link to comment

sTeamTraen: Wow! Good jub, I didn't know that this is possible. I agree, that two cartridges are not good idea. But there must be the way to write function, that translate encoding from UTF to ISO for garmins. When I find some time, I will look at it. Thanks for suggestions!

 

In Wherigo is always something that I didn't know :lol:.

Link to comment

I had some trouble with Earwigo because I use some cruse obfuscation code which I wrote some years ago for a 7-bit app, where only [A-Za-z0-9] and a couple of punctuation characters need to be obfuscated. In additional, it's based on a Vigenère cipher (the keyword is fixed,but it's binary!) which means that the "encryption" of each character depends on its position in the string. This causes lots of fun when combined with UTF-8 and <BR>\n newlines, since each cartridge character can occupy multiple bytes in the string which ends up in the Lua file and you need to keep everything in sync, even (especially?) if you choose not to obfuscate anything apart from ASCII characters.

Link to comment

Nice! I will try this. I like the friedly interface.

 

For now: I can't import my cartridge.

When the cartridge uses something more exotic the import might fail, but it should happen sparsely. I could take look at the problem more closely, if you would send me the cartridge (.lua) at apps (at ) yourself.cz.

 

Sorry for this late reaction: I was on holiday last week...

I send my lua by e-mail.

Link to comment

Well I do like the way this program is set up. entering coords seems to be easier in the builder. I am working on a cache that has 16 zones and it seems easier to set up the zones in the builder. I'm on the learning curve for urwigo I'm sure once I get used to it, it will be ok. I do have this question about the coords the urwigo shows 4 points when I look on the map. I am setting up geocaches I have not checked but can I just enter 1 point for the final location instead of 4?

Link to comment

Thanks Yourself for sending me my latest cartridge back. With the changes your made, I can import it without any problems.

 

It works also great in the emulator. Is this the same emulator as used in the official builder from Groundspeak? I ask this because it never crashed with my cartidge :):D:) . That's the first time: in the 'official' emulator it crashed many times B):):) .

Unfortunately the sounds stops halfway playing the cartridge in de emulator. But this also happens in the 'official' emulator. Maybe it has something to do with my computer (Dell laptop with Vista Home premium).

 

For now I have last questions about the 'error list' in Urwigo.

See attatchment 'error_list1': I don't get this errors. I never had a problem with this cartridge.

See attatchment 'error_list2' (It's from an other cartridge): I don't get the error 'Showing this screen causes problems on Garmin devices'. I never had problems with Colorado's and Oregons with this cartridge. Maybe the problems only appears with older firmware versions? Or with the Nuvi 550?

 

post-126450-1267367952.jpg post-126450-1267367969.jpg

Edited by Geinponem
Link to comment

Tried to install URWIGO this evening. Installation failed, log file below. Any suggestions?

 

The following properties have been set:

Property: [AdminUser] = true {boolean}

Property: [ProcessorArchitecture] = Intel {string}

Property: [VersionNT] = 5.1.2 {version}

Running checks for package 'Windows Installer 3.1', phase BuildList

The following properties have been set for package 'Windows Installer 3.1':

Running checks for command 'WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe'

Result of running operator 'VersionGreaterThanOrEqualTo' on property 'VersionMsi' and value '3.1': true

Result of checks for command 'WindowsInstaller3_1\WindowsInstaller-KB893803-v2-x86.exe' is 'Bypass'

'Windows Installer 3.1' RunCheck result: No Install Needed

Running checks for package '.NET Framework 3.5 SP1', phase BuildList

Reading value 'SP' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5'

Read integer value 1

Setting value '1 {int}' for property 'DotNet35SP'

The following properties have been set for package '.NET Framework 3.5 SP1':

Property: [DotNet35SP] = 1 {int}

Running checks for command 'DotNetFX35SP1\dotNetFx35setup.exe'

Result of running operator 'ValueGreaterThanEqualTo' on property 'DotNet35SP' and value '1': true

Result of checks for command 'DotNetFX35SP1\dotNetFx35setup.exe' is 'Bypass'

'.NET Framework 3.5 SP1' RunCheck result: No Install Needed

Launching Application.

URLDownloadToCacheFile failed with HRESULT '-2146697208'

Error: An error occurred trying to download 'http://apps.yourself.cz/Urwigo/Urwigo.application'.

Link to comment

Well I do like the way this program is set up. entering coords seems to be easier in the builder. I am working on a cache that has 16 zones and it seems easier to set up the zones in the builder. I'm on the learning curve for urwigo I'm sure once I get used to it, it will be ok. I do have this question about the coords the urwigo shows 4 points when I look on the map. I am setting up geocaches I have not checked but can I just enter 1 point for the final location instead of 4?

I am not sure I understand. For zones, you have to enter at least 3 points, since you have to define the zone area. If you have a coordinate of a cache and you want to create a zone around it, enter the coordinate at least three times and in map editor move the points from each other to create the area.

Link to comment

Is this the same emulator as used in the official builder from Groundspeak?

Yes, it is the same.

 

See attatchment 'error_list1': I don't get this errors. I never had a problem with this cartridge.

It warns that you have some action that displays a window, and it is followed by some another actions (the ones with the warning) that when executed, display window over the previous one, so the first one dissapears. Simplest case is a message followed by another message (not in the handler).

If you think it is not the issue, you can safely ignore it.

 

See attatchment 'error_list2' (It's from an other cartridge): I don't get the error 'Showing this screen causes problems on Garmin devices'. I never had problems with Colorado's and Oregons with this cartridge. Maybe the problems only appears with older firmware versions? Or with the Nuvi 550?

I am not sure on which device, but on it the location list displayed this way, was not complete and comtained some invalid entries. You can ignore it also if you think it will be okay.

Link to comment

Tried to install URWIGO this evening. Installation failed, log file below. Any suggestions?

It indicates that the MS ClickOnce installer failed to download neccesary installation files. I believe it internally uses Internet Explorer, check you have at least version 7 which I sure works ok with it. Other than that, you are first one with this problem, you'll propably have problems with any ClickOnce installer.

Link to comment

Well I do like the way this program is set up. entering coords seems to be easier in the builder. I am working on a cache that has 16 zones and it seems easier to set up the zones in the builder. I'm on the learning curve for urwigo I'm sure once I get used to it, it will be ok. I do have this question about the coords the urwigo shows 4 points when I look on the map. I am setting up geocaches I have not checked but can I just enter 1 point for the final location instead of 4?

I am not sure I understand. For zones, you have to enter at least 3 points, since you have to define the zone area. If you have a coordinate of a cache and you want to create a zone around it, enter the coordinate at least three times and in map editor move the points from each other to create the area.

 

:laughing: Great thanks for the help. Still learning how this urwigo works. I am sure once I get it all figured out it will be better then the builder program. That is one thing that is easier in the builder though to just put in one coord and it generates 4 points for you.

Link to comment

I do not know if this is the right place to ask but I'm using urwigo when I can not get Wherigo builder to run on my Win7.

 

I have created a file that works .. but I do not know how I can get the unlock code until the user .. there are some who knows how .. ?

Link to comment

Hello,

 

I hope, anybody can help me.

 

I build my first cartridge with the URWIGO Builder.

How can I output a variable in a message box?

 

I want to output a text like: You need varSec seconds.

 

varSec is a numerous variable.

 

I have now searched for a while, but I didn't find anything.

 

Thank

NoPogo

 

-----

EDIT:

-----

I think I found this function.

The expression "Concatenate" give me this choice.

Edited by NoPogo
Link to comment

Since this thing is working so well, can we start asking for enhancements? :(

 

Would it be possible for you to maybe create and pre-populate some basic variables such as date, time, etc. This would save us from having to add code to create them each time.

 

Thx.

Link to comment

I have had the URWigo builder return some strange errors when I go to run the cartridge a couple of times.

 

In all cases, closing the program and re-starting has resolved the issue without losing code.

 

If you encounter this, here is what I recommend:

 

(1) Before you resave, make a copy of your current .urwigo file and move it to a safe location

(2) If you want to keep the code you created since the last save, do a save

(3) Close down the program

(4) Restart the program

(5) Open the latest version

 

Things should work.

Link to comment

Has anyone tried the "Simulation Protection Mode" option? It doesn't seem to work for me.

 

I check the option, load the cartridge onto my OR, power the OR on, put it in demo mode and the cartridge appears to run. I do not get the Error Message that I created.

Link to comment

I have created a file that works .. but I do not know how I can get the unlock code until the user .. there are some who knows how .. ?

You have to drag CompletitionCode from Objects and properties/Player. See the attachments.

post-2816453-1267644617.jpgpost-2816453-1267644628.jpg

 

How do you add the text on both sides of the completion code in the concatenate box?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...