ID:109788
 
Keywords: linux, pager
Recently, Tekken and I were sitting in Chatters discussing the pager and DS's performance on Wine, and how we wished that BYOND had some more proper support for Linux. We kept discussing when all of a sudden, before we even knew it, a new project had sprouted. We decided to create a new Pager for Linux and Mac.

We sat there in Chatters, pondering and pondering on the technical feasibility of it, the work that would need to be done, demand for such a project, and whether or not it was even a good idea. Shortly after, we set about to design such a beast.

During our discussion on the design, we settled on a few key points that had to apply to the new pager:

  • It had to have a minimalistic interface
  • It had to have a tabbed interface for chat for the sake of readability
  • It had to be amazing


We've yet to settle on an ultimate final design, but here's a mock-up of what you might see as pretty much the contents of the window when starting this pager:



We wanted a balance between a minimalistic and a functional interface and we had personally settled on the above look (it will look much better in reality). It's generally equivalent to a tabbed interface, without the tabs. The games and friends information are hidden by default and viewable by expanding the "Games" and "Friends" items. Opening one closes the other, but the state of the one that gets closed is preserved for when it is re-opened.

Now you might be wandering why we decided to write a post about it when we don't even have anything to physically show yet, and the answer is simple. We would like your input. None of this design is quite set in stone yet, and it's sure to change from what we currently envision it as. We would like to hear from you, the Linux user, in the comments section of this post. What would you want to see in your pager?
Sounds great I will definently install that beast
Legato_frio: It's re-assuring to know that we won't be the only ones. :P

Neblim: We have some other stuff planned that will (at this point in time, at least) require the pager to function, so we're starting there.
The pager is currently the most important item on our agenda. What is possible afterwards really just depends on how everything turns out.

There will likely be quite a few of these types of posts outlining the current status of what we are doing, however, so stay tuned. :)

EDIT: I'd also like to add that feedback is extremely important to us. This project is to hopefully benefit the Linux community as a whole, not just Audeuro and myself. So feel free to voice your ideas.
Something else that'd be awesome, is to have the pager on Android.
He's been telling me about this project for ages, so I say do it! I've been waiting. :P
So would this work with WINE in that if you want to play a game you start the pager up and than the pager starts up a WINE instance of the DS and has it connect to the game? Cause that would be really neat and I probably boot into windows a lot less often. (Except that I mostly go into windows to play Magicka =()
That's definitely a possibility, Sinfall, yes.
Airjoe's recommendations:
1) Use Qt
2) Get this thing on github.

I've only played around with libbyond a little bit, but you may be able to offload a lot of the work to the library and deal primarily with the interface and calls. That said, I don't know if libbyond on linux is different due to the pager not existing there.
We've already planned to use Qt for this project- I probably should've mentioned that.

At this point in time, we aren't planning on open-sourcing this project. We wish to respect the work that Tom has done with his encryption on network traffic by not releasing that information to the general public.

That being said, the encoder/decoder setup we've got can be easily pulled from the project, and we would gladly open-source it without it, but would you really find that acceptable?
I think not open sourcing it is a bad move, as is attempting to reverse engineer the network protocol. I maintain you'd be better of sticking with libbyond.so.
As I said, we'd be willing to open-source it if you recommend a decent way to hide away the details of the encryption without creating a pointless library for it.

As for attempting to reverse engineer the network protocol being a bad idea, how would you recommend that we know what data to send in what format? libbyond.so isn't going to collect the data and auto-format packets for us. That's after we sort through all of the symbols that libbyond.so exports and figure out which ones might be useful for encrypting and decrypting the packets.
First of all, abstraction in software is in no way pointless. See pidgin and libpurple for a perfect example (and the software that spawned from it, like Adium and Meebo). When you don't abstract, you screw people over in the future. See OpenOffice.

The pager already links libbyond, the functionality is there. You should see if its reasonable to do the same.
Looking at libpurple alone, it doesn't shove off all of one class (encoder) into a library. This is what we would be doing. The packet data itself isn't worth separating from the main application because there's really not enough of it. The pager isn't all that complicated.

And yeah, the pager does link libbyond. It keeps basic zip/unzip stuff (zlib) in there, as well as some error handling stuff and post-reception processing. They wouldn't put actual packet data in there due to it not being universal through the suite, so we would still be reversing the network protocol.