• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

collaborating on new programs?

heckj

SOC-10
I got all re-invigorated by the T5 kickstarter, which had me pulling out the "nearly untouched in a decade" internals of the Missouri Archive - http://traveller.mu.org/. (Ironically, I now live in Seattle)

Reading through the code, and reading through this forum, it seemed like there was a potential for a few folks to be interested in the source of some of these programs, and I'm hoping perhaps some interest in collaborating on new scripts, tools, and whatever going forward. I checked with the authors of some of the archive's software that had source, and have republished some of it on github with permission.

I made a github organization (https://github.com/makhidkarun) in the hopes maybe others would be interested in collaborating and making new from-scratch software supporting the game. If you have a github account, and are so interested, please let me know and I'll add you to the makhidkarun team.
 
I made a github organization (https://github.com/makhidkarun) in the hopes maybe others would be interested in collaborating and making new from-scratch software supporting the game. If you have a github account, and are so interested, please let me know and I'll add you to the makhidkarun team.

I'm on Github (tjoneslo) and would love to contribute to some of these projects.
 
Can you remember the Mac users?

I know most of the programs for Traveller seem to be only for Windows (and rarely Linux users), but do you think we Mac users can get some nice T5 programs to use too?
 
I know most of the programs for Traveller seem to be only for Windows (and rarely Linux users), but do you think we Mac users can get some nice T5 programs to use too?

Actually, all of the source code that I've migrated onto repositories under https://github.com/makhidkarun will compile and run on anything (mac, linux, even windows).

There's no reason more Mac based applications can't be made - would be happy to host them there - but be aware that creating those apps can be very time consuming, and like the windows side of things I don't know that anyone would be all that willing to invest the time and give them away.

Now scripts that can be invoked anywhere and maybe little web applications? That's far more likely, and I've thought myself about making a few T5 related tooling pieces in that form. I've seen a couple of folks talking about making a python program or two to help with character gen for other versions, so maybe?
 
I'll take it.

Actually, all of the source code that I've migrated onto repositories under https://github.com/makhidkarun will compile and run on anything (mac, linux, even windows).

There's no reason more Mac based applications can't be made - would be happy to host them there - but be aware that creating those apps can be very time consuming, and like the windows side of things I don't know that anyone would be all that willing to invest the time and give them away.

Now scripts that can be invoked anywhere and maybe little web applications? That's far more likely, and I've thought myself about making a few T5 related tooling pieces in that form. I've seen a couple of folks talking about making a python program or two to help with character gen for other versions, so maybe?
Because in the words of Dave Chappel, it's the "No"s that be killing me.

Thanks for the response.
 
I know most of the programs for Traveller seem to be only for Windows (and rarely Linux users), but do you think we Mac users can get some nice T5 programs to use too?

The problem being that "real" mac (and iOS) apps are now written almost exclusively in ObjC... and have wholly different tools than the Windows people use.

Casual programmers like me find ObjC just different enough from C++ to be confusing. It's like C hybridized with Java. (And that's a headache.) Hell, Java's enough of a change in paradigm that I'm having issues trying to get anything working on my Android tablet.

I could probably pull together some command-line programs in a few hours... but they wouldn't look nor feel like Mac programs - they'd feel like 30-year-old DOS programs. (I learned to program originally on a TRS-80 Model 1... in Basic... and then on the Apple II+... and finally got away from basic in 1996, when I first started to migrate to C.)

To be honest, tho, you CAN install Wine and run almost all the Windows apps.
Install X11, and you can run the Java apps from the JAR files.

And Python is easily installed. Python scripts run fine on any platform.
 
The problem being that "real" mac (and iOS) apps are now written almost exclusively in ObjC... and have wholly different tools than the Windows people use.

It depends what you mean by 'real'. My favourite game on my Mac at the moment is Kerbal Space Program which is a cross platform game developed in Unity. In fact Unity is available for iOS and some top tier iOS games are developed in it, such as Temple Run, though you're obviously constrained by the hardware capabilities (no KSP for iOS unfortunately).

There's also a mobile C# dev environment based on Mono that supports iOS, Android and Windows Mobile. I'm having fun learning Lua programming directly on my iPad using Codea too. Obj-C is the native solution so a lot of the Marquee iOS and OSX apps are developed in it, but there are plenty of cross-platform solutions out there. That's one reason I'm using a Qt based toolkit for Star Base.

If you're a C++ guy, I'd highly recommend Qt as it's all C++ top to bottom, though I'm using it through a Python interface layer. Qt is a fantastic framework. There are plenty of apps out there based on Qt that run fine on a Mac such as Google Earth and the Kindle app, and there's no problem getting Qt apps into the Mac App Store. It's LGPL now too so it's free for commercial use.

To be honest, tho, you CAN install Wine and run almost all the Windows apps.
Install X11, and you can run the Java apps from the JAR files.

And Python is easily installed. Python scripts run fine on any platform.

All true. I tend to prefer to run Windows apps in a VM using Virtualbox.

Simon Hibbs
 
Well, I'm going to over to dark side and any work in this area will be in Java Script. My intent it to create them as "standalone" web apps that you download and then stay parked on your machine or device, and don't need web access after that.

The local browsers have pretty much everything you may want in terms of facilities (notably a local database), and the code should be mostly portable -- if not, targeting a common cross platform browser (say Chrome or Firefox) I don't believe is untoward. Although, one of my drivers is making things that will run on the handhelds.

The biggest unknown is "getting things out", notably backing up data outside of the browser. The browser JS engines are locked down to not allow reading and writing to the file system. Reading isn't really a problem as that can be prompted, but writing is an issue. There are techniques for this, some more elegant than others, but none make any real sense for mobile.

At the very worst, a simple script could be provided that will run on a locally staged Apache server, and that can be used to make it easy for folks to get data out of the app and someplace ostensibly safe. I could even target WebDAV since all of the systems support that in some manner today, so it should require no external software to be installed (it may have to be installed on Linux, but that should be trivial on a modern distro).

Other than that, it's the most approachable platform available with the lowest barrier to entry and widest applicability. Nothing else really comes close to it, and for the kind of stuff we're talking about here, it's more than capable.
 
...
Casual programmers like me find ObjC just different enough from C++ to be confusing. It's like C hybridized with Java. (And that's a headache.) Hell, Java's enough of a change in paradigm that I'm having issues trying to get anything working on my Android tablet.
Yeah, without knowing the history and implementation details of these languages its not evident how fundamentally different they really are.

C++ evolved from C with Classes.

C with Classes was just C with some per-processor stuff (a lot of macro dependence) to support OOP constructs largely borrowed from Simula and ALGOL. C++, while evolved from C, is a quite different language - to wit, raw C code, unless extremely simplistic, will require modifications to compile.

Objective-C is C with additions, notably Smalltalk style messaging. It is not related in any way to C with Classes, other than being an OOP language. [C with Classes was Bell Labs - Smalltalk was Xerox. ;)]

Standard C code will compile with little to no effort in Objective C. STL, a significant library addition from HP/SGI for C++, does not exist in Objective-C.

I like to think of JAVA being to C++ what Pascal was to C. I.e., higher level syntactically close languages. Pascal actually is more like C++ and, I think, a generally unacknowledged influence on C with Classes. (And was used for the Apple Lisa, IIRC.)

A very significant difference between C++, Objective-C and JAVA is that only C++ has RAII as intrinsically supported by the language. (Only recently has Objective-C added tools to come close to such).

In summary:
If you approach Objective-C from a C++ mindset you will be off the mark and suffer frustration. If you fail to accommodate the significance of garbage collection versus C++'s RAII, JAVA will bite you in the end.
  • You do not need to learn C to learn C++.
  • You must learn C in learning Objective-C.
  • You do not need to learn C, nor C++, to learn JAVA.

And Python is easily installed. Python scripts run fine on any platform.
There's plenty of gotchas with Python - even on Mac's, what with different versions and some conflicts with OS versions. :(

I like Python, but Javascript is probably the easiest 'installed' multi-platform language runnable on the most systems today. It really shines in terms of GUI on HTML-5 and Canvas (not to mention WebGL). Its high level, more and more optimized, but with Javascript's hacked together syntax and the collaborative mess that is DOM, its not what I'd call elegant nor my first choice as a developer for any sizable project. However, it is becoming really entrenched (much like C++ did) due to deployment and market support.

[Ironically, when talking multi-platform, venerable C is generally overlooked as actually the most capable standard language supported on the most platforms. You can compile C code on all mainstream consumer OSes - Windows and all flavors of Unix/Posix and like OSes, including OS-X, iOS, and Android. However, besides being a bit of a PITA interfacing with the APIs, one has to understand more about hardware specifics and the language lacks the OOP constructs that benefit collaborate efforts. A good number of libraries are still written in C, despite the prevalence and emphasis on C++ largely due to Windows (historically related to the archaic mess of DLLs and OLE). For instance, direct use of OpenGL and OpenES requires C style calls.]

P.S. - whartung addressed Javascript, I see, as I preview this post... ;)
 
Pascal was used for Lisa and early Macs (MPW), tho the MPW also supported C and C++, but not in their standard implementations - the library calls were different, and toolbox calls created the Lisa/Mac interface. Early MPW may have been exclusively Pascal; I didn't get my hands on it until 1988...

I've found core python very portable - it's when you start using any of the various graphics or HID libraries that things get dicey... same issue with C/C++

And apple's been getting unpleasant about various non-ObjC projects for iOS and the MacAppStore... they are not quite to checking source code, but... they are VERY nasty about look and feel.

Now, I like JavaScript. It's pretty close to C++, and runs fine on Chrome for Mac, Windows, and Android.
 
And apple's been getting unpleasant about various non-ObjC projects for iOS and the MacAppStore... they are not quite to checking source code, but... they are VERY nasty about look and feel.

They were a few years ago, but they've pretty much given up on it now. A lot of commercial apps and games for iOS are developed using cross platform tools these days. Apple had no choice, the big games companies weren't going to rewrite their games in ObjC just for the iPhone no matter how popular it was nd a lot of them use interpreter engines like Lua internally so the language restrictions we a non-starter.

Now on the Mac they are pretty strict about app sand boxing for App Store apps, but the App Store is far from the be all and end all of Mac apps. You can always just sell from a web site like you would for Windows anyway, and for commercial games there's always Steam.
 
I've found core python very portable - it's when you start using any of the various graphics or HID libraries that things get dicey... same issue with C/C++
I've encounter core issues between major versions - but yeah, the bulk are related to issues when dealing with APIs for devices/OSes. However, in C, one can always get around these issues (with the right knowledge/effort) - something just not possible in the higher level languages (without calling stuff written in another language - such as C).

I found this interesting: http://www.i-programmer.info/news/98-languages/5298-the-top-languages-of-2012.html.

[Though, I take it with a grain of salt - its looking at search trends. C is probably getting higher rankings due to Objective-C, and the fact that its harder for many to learn to use properly given its lower exposure/lower level.]

aramis said:
Now, I like JavaScript. It's pretty close to C++, and runs fine on Chrome for Mac, Windows, and Android.
For the casual programmer JavaScript is certainly enough like C++. Professional developers have to give up a lot.

IMO, JavaScript is the modern BASIC.

Instant gratification, messy language design, limited in many ways, and not supportive of good error handling practices. ;)

So, by no means technically optimal, but then, I wrote most of my Traveller game aids in BASICs. Even programmed professionally on a system whose primary language was a compiled BASIC (though notably with support for advanced exception handling, multi-tasking, re-entrant code, data hashing, distributed and mirrored high integrity data stores and extensive I/O .. and built in commands for calling C routines).

JavaScript has numerous free support libraries and, being browser based, is subject to constant upgrading and user testing and lots of market competition. There are some nice IDEs starting to crop up as well. The rapid adoption of HTML5, combined with the market demands of the tablet phenomena, has really positioned JavaScript well. Its a good primary language for non-mission critical, easily scoped projects - like gaming aids. :)
 
BTW: Firefox and Firebug are great combinations for JavaScript programming - Chrome only runs Firebug Lite, IIRC.
 
I just wish I could use Java to develop on iOS.

Java does all I want as a programming language - I'm not too fussy. And it's great for writing everything from web apps to servers. But I haven't used it in a decade, so I'm probably behind the times. :(
 
There are several converters/cross-compilers for Java to JS (such as Google Web Toolkit).

JavaScript is generally more flexible than Java, so its not the great a feat - and end users don't have to worry about Java downloads and versions.

For casual coders, a lot of Java and JS will convert one for one.
 
programming for general consumption

I think it's worth mentioning that it's easier than ever to put up web applications - Heroku, Google App Engine, etc - make it dead simple to use the language of your choice (java, python, ruby) and you can choose as much or as little of that to front end into HTML and javascript, which provides a huge amount of flexibility and portability to whatever device you happen to be using (Android, iPad, laptop-du-jour).

@robject has some great perl scripts set up along these lines already at his own site - and while I'm personally a lot more comfortable with GUI programming in Objective-C (yeah, I'm one of the ones that been comfortable with it for quite a while) I've been thinking that one of either T5 chargen or T5 shipsheet would be a good excuse to force myself to learn more of what's I've historically considered "front end" development all in javascript.

I've been seriously impressed with the usefulness and effectiveness of travellermap.com - a mixture like I've described above.
 
I think it's worth mentioning that it's easier than ever to put up web applications - Heroku, Google App Engine, etc - make it dead simple to use the language of your choice (java, python, ruby) and you can choose as much or as little of that to front end into HTML and javascript, which provides a huge amount of flexibility and portability to whatever device you happen to be using (Android, iPad, laptop-du-jour).

Web based is all well an good until you decide to share it, and then lose interest in it, and then decide to stop hosting it. An online service can become an albatross. In contrast, GitHub, et al, is essentially "forever", whether you're interested in maintaining it any more or not. Even if GitHub suddenly vanishes, the concept will remain, and whoever had taken the code before can re-host it someplace else.

It'll be a sad day when TravellerMap goes away, much like what we saw happen to Andrews stuff. But it happens, and it will inevitably happen to TravellerMap, whether it's a week or 10 years from now. Even this site is a heartbeat away from going dark overnight.

So, it comes down to the fundamental goals of what you're doing, why you're sharing it, and who you're sharing it with. Another reason I'm more interested in stand alone, self contained, downloadable "web apps".
 
Web based is all well an good until you decide to share it, and then lose interest in it, and then decide to stop hosting it. An online service can become an albatross. In contrast, GitHub, et al, is essentially "forever", whether you're interested in maintaining it any more or not. Even if GitHub suddenly vanishes, the concept will remain, and whoever had taken the code before can re-host it someplace else.

I'm totally with you on github, and related to my last post - Heroku deploys best from a repo on github. That's part of why I created the organization
https://github.com/makhidkarun there, even if it's currently just older software in source form.
 
It'll be a sad day when TravellerMap goes away, much like what we saw happen to Andrews stuff. But it happens, and it will inevitably happen to TravellerMap, whether it's a week or 10 years from now. Even this site is a heartbeat away from going dark overnight.

I'll try to get the TravellerMap source up soon. I've always intended to, but it's not build on a very popular stack so I'm not sure it will get much contribution from anyone else.
 
Back
Top