Getting started with cross-platform FileMQ over ZeroMQ - zeromq

Could anyone recommend some good resources for getting started with FileMQ and ZeroMQ in a cross-platform setting?
I'm either looking for tutorials or guides or shellscripts that somehow tell me how I tie it together. Unfortunately, despite the statements of being cross-platform, I haven't been able to make it work on Windows.

The FileMQ project contains MSVC project files, I think. Otherwise, try emailing the zeromq-dev list and ask if anyone's done this.

Related

XCode or make - what should I use?

I started my career on Linux/Unix, and moved over to Windows and Visual Studio. XCode feels pretty alien to me. My feeling is that I'm not in control with XCode. It could be the case that I simply haven't understood how to use the IDE, I am new at developing for Apple OSs. One thing that kind of irks me, is that nobody seem to have found a clean way to compile for multiple platforms (iOS and Mac OS X), using the same sources. I've found two ways to "hack it", but the hacks sound fragile.
I've been pondering the idea of using simple make files instead of XCode (except for the occasional use of Interface Builder).
Is this a sane route to go? Has anyone done this? Are there any major drawbacks I need to be aware of before I take the leap, or should I just bite the bullet and wait for the enlightenment?
Use Xcode, use as many high-level tools as possible. The "loss of control" is replaced by more focus on the application, which IMHO is a great tradeoff.
It is kind of like the loss of control when I went from assembly code to "C", but it was worth it. We keep moving to higher level of abstraction and that allows us to accomplish more, focus on the big picture instead of the minor details.
You've just got to learn new ways of doing things. For example, in the situation you describe (building an OS X and iOS app with shared code), I'd put any shared code into a library/framework that is used by both projects, and create a workspace that contains all three projects.
The loss of control you speak of is offset by the fact that this can all be set up without knowing anything about compiler command-line options in around 10 minutes.
It's a different way of thinking, and it can be frustrating if you know how you would do it on a different platform, but there are advantages to both options. You may never have to think about the build process again!

Ruby GUI (non-complex layouts)

I've done quite a bit of research on Ruby GUI design, and it appears to be the one area where Ruby tends to be behind the curve. I've explored the options of MonkeyBars, wxRuby, fxRuby, Shoes, etc. and was just wanted to get some input from the Ruby community.
While they're definitely usable, the development on each seems to have fallen off. There is not a great deal of useful documentation or user bases that I could find on any (minus the fxRuby book). I'm just looking to make a simple GUI, so I don't really want to spend hundreds of hours learning the intricacies of the more complex tools or attempt to use something that is no longer even being developed (Shoes is the type of application I'm looking for, but it's extremely buggy and not being actively developed.) Out of all of the options, which would you guys recommend as being the quickest to pick up and that still has some sort of development base?
Thanks!
I don't know what you mean by Shoes being extremely buggy. It works perfectly fine for building your own little application :-)
Yes there are problems with shoes3 and packaging/installer. However the community is one of the nicest I ever saw. Always nice and helpful figuring out problems. You can reach the mailing list at shoes#librelist.com.
If you're looking for basic information Nobody Knows Shoes and the shoes manual are your best friends.
However we are currently working on shoes 4 - which is a complete rewrite having multiple backends in mind - first backend being jruby/swt
So I would definitely recommend shoes :-)
Shoes on!
I've been looking at similar needs and am considering picking up a javascript gui library like Dojo or Sproutcore; or using JRuby + Netbeans for a Java based GUI.
For me, Aptana was a nice environment to start trying the javascript libraries to test the pain starting the learning curve. I'm still trying to find time to finsh my comparison.
http://en.wikibooks.org/wiki/Ruby_Programming/GUI_Toolkit_Modules
might help
limelight looks interesting
You might try:
DialogBlocks to create an XRC file using wxWidgets / wxRuby
xrcise - to create a ruby file to load the XRC
I am faced with the task of writing many small GUI's and a few
that are complicated. The above has worked for me. While the
above works on Windows, I can only vouch for the Linux implementations
which work very nicely.
FYI: DialogBlocks will run you about $100. It will create C++
or XRC files. It is also good at switching platforms. I think
there's a demo version.
My version info:
ruby 1.9.1p243
wxWidgets 2.8.10
wxRuby 2.0.1
DialogBlocks 4.28
wx_sugar 0.1.22 (for xrcise)

Emacs as IDE: Handling a project directory?

I've always used emacs for small projects (and Visual Studio for large ones). I was wondering what the alternatives are for handling a directory structure within emacs, something like the solution explorer in VS. Thank you.
You should also have a look at eproject for something that's more lightweight while also allowing you do to some pretty cool stuff (like project-specific config settings, etc.)
ECB, the Emacs Code Browser, which is built on CEDET, if I am not mistaken, is one you should look at.
Myself, I've always found that I get by well enough using etags and ido-mode. You might also want to look at Speedbar (part of CEDET) as a halfway house between more minimalist solutions and ECB.
I don't use it myself, but it sounds like CEDET is what you are looking for:
Emacs already is a great environment for writing software, but there are additional areas that need improvement. Many new ideas for integrated environments have been developed in newer products, such as Microsoft's Visual environment, JBuilder, or Eclipse. CEDET is a project which implements several advanced features developers have come to expect from an Editor.
The Emacs wiki also has this page with some tips for IDE users.
See also: http://www.emacswiki.org/emacs/Icicles_-_Support_for_Projects.

Automatic update solutions for a Win32 application?

We've got a desktop product, made up of a Win32 service, a notification icon application and associated DLL files.
I've been tasked to look at making it auto-update. We could write our own updater, but before we do that, I'd like to see what else is out there. Are there any commercial systems (similar to Windows Update, I guess) that we could use? I'm sure that InstallShield used to offer something like this, but I can't find it now, and it's possible that my memory's failing me.
It's a Win32 application (and a service), so ClickOnce is out (or is it?).
Have a look at Google's Omaha project.
I once looked into using it. But I eventually realized it would be easier to re-invent the wheel than to learn everything that goes into making Omaha work. Unfortunately I have yet to find a generic solution. Most project's I've looked into tend to build their own updater.
Which is bad, because everyone tends to make the same mistakes over and over again. Doing secure updates isn't trivial. Read this:
Auto update: Is this secure?
I also find it rather annoying how every auto updater thinks it needs to be running 24/7 in my system notification area.
I would venture to say that one of the main advantages of of the app store model is that developers don't have to worry about building an update system.
I highly recommend GUP: https://wingup.org/
It's the automatic updater developed by Notepad++ author and it's completely opensource.
You might want to use this solution. Source code (c++) included.

What real-world projects would you suggest as code examples to study?

What real-world projects would you suggest looking through the sources?
As I'm learning Java Swing, mucommander seems to be a decent example. The code is excessively commented though.
EDIT: No shameless plugs plz :).
I learned a lot from looking at the source code to GoGrinder. It's well thought out, uses MVC correctly, and the comments are helpful (and no, I didn't write it). It's also a fun program to use if you want to learn how to play Go.
For Gui design, Patterns and general good advice I highly reccomend Jeremey Miller's series of articles on building a better CAB. For C#, but equally applicable to Java. Also using
the MVC style which Stackoverflow follows, and Apple uses for Interface Builder.
Build your own CAB
Jeremy's articles/ideas are followed in his own project, which you can download and inspect at http://storyteller.tigris.org/
Take a look at the Windows version of truecrypt. It is one of the best organized open source projects I've ever seen. You can almost tell how the whole thing works just from the directory and file layout.
What I've done to learn some new technologies over the years is to look to open source projects that both match the criteria you're looking for and also interest you.
I'm not a Swing guy, but I'd suggest finding a project that uses Java Swing, does not appear too complicated, and then start digging through the source. The nice thing is you can then see the app before you start poking through it, and then you can see what happens as you change stuff.
The idea behind picking something that interests you is that it will keep you engaged. I am intrigued by content management systems, so I might download a CMS that I can then see how stuff works, and I'm engaged because the problem domain of the project fits in with an interest.
I've done this once or twice when I had to get up to speed on C# and I think it works will. YMMV....
Some of the most well thought out source code ( c++ ) I have seen in an open source project is the Ogre3D graphics engine, I've learned a lot about OOA&D just by looking at the structure and reading the comments. It is also well maintained and the community is very active.. http://ogre3d.org

Resources