Apex Data Loader in Linux environment? - linux

According to a requirement, we have to do data loading to Salesforce.com in Linux environment. In Windows, the Apex data loader works fine for data loading.
Apex data loader is written in Java so it should work in Linux. How can we run the Apex data loader in Linux or is there any alternative application for data loading for linux?

I was under impression that core of Data Loader is a JAR file so if your server is running Java you could fairly easily discard the GUI of application written for Windows?
Please have a look at Data Loader User Guide, especially chapters about running it from command line and in batch mode. In worst case you could even roll out your own program that will use WebServices API exactly like Data Loader does (with reuse of the JAR or written from scratch).
Another option would be to use "bulk API", designed for mass inserts. The guide for this is extremely technical and contains tons of useful info (including code of sample Java app).
There's "Excel connector" and build of "LexiLoader" for MacOS but I don't think this helps a lot in your case.
Last but not least - please consider the Salesforce partners, their AppExchange applications etc. I don't want to do marketing here but on my past project we were pleased with tool from "Relational Junction" (it was working on Unix server, easy to configure, connected with Oracle database, allowed us to pretty much do a proper Extract-Transform-Load proces to and from Salesforce).
Good luck!

Here are a couple of posts that might help others not using the Apex Data Loader in the standard way:
http://force201.wordpress.com/2011/01/20/running-the-apex-data-loader-on-a-mac/
http://force201.wordpress.com/2010/10/15/scripting-the-apex-data-loader-via-ant/
One is about running on the Mac and the other is about running using Ant.

www.dataloader.io is the way to go now; it's web-based an unbiased to your OS.

Well, dataloader is a Java app so it is quite biased do any OS that can has a Java runtime. I have been working on an Ubuntu system using Gui.

11 years later, there's still no official Linux build, but everything you need is there. That's why I've created a small Github project, that automatically builds the latest Dataloaders versions for Debian/Ubuntu (deb files) from the original sources.
You can find it here: https://github.com/SoftCreatR/dataloader-for-linux

Related

Recommendation on building web services on Linux with minimal dependencies

I need a recommendation for a framework/library for building web services on a Linux system. I have the following requirements:
It should have minimal dependencies, e.g. preferably not require any VM like Java or Mono.
My service implementation should have access to the native system APIs, preferably it should be possible to call C APIs directly.
If possible, the solution should not depend on a large web server installation. As I understand, Axis/C++ would require an Apache server, right? Is there anything that allows for writing some kind of "self-hosted" web service like in .NET (ServiceHost) on Linux? I would really like something that works as a standalone daemon in the end.
The resulting services should be standard-compliant as I need to make cross-platform calls. Most importantly, I need WS-Security.
The solution must be Open Source, the actual licence is less important.
If you have any suggestions, please post (web links would be nice ;-))
Thanks in advance,
Christoph
What about Twisted? http://twistedmatrix.com/trac/

Is using Node.js or Ringojs safe for live websites?

As stated in the title, I would like to know if it's safe to develop a website using one of the actuals "omg" platforms that are Node.js and Ringo.js at their actual version.
Also, I would like to know if they support cookies/sessions and how do they deals with multi-fields post (fieldname[] in PHP).
Thank you
--Edit--
Thanks for all the links guys.
What can you tell me about Ringojs ?
Since I haven't figured which platform to start playing with. I must admit that the fact it can use Java seamlessly really impress me. The only available XSLT 2.0 library is in Java. I could use it as a templating system.
Is there anyone who had the chance to play with Ringojs?
From my experience using both, Ringo is more stable and "safer" for production use but you can comfortably deploy both. In addition to the ability to wrap existing Java libraries that you mention, you also get the benefit of being able to run it in an existing webapp container which manages the lifecycle of the application for you and ensures its availability.
That being said, it doesn't have to be an either or decision. By using my common-node package and assuming you don't use any Java libraries, it's perfectly feasible to maintain a project that runs on both without any changes to the code.
I've also included benchmarks that test the performance of Node.js vs. RingoJS the results of which you can find in the common-node/README.md. To summarize: RingoJS has slightly lower throughput than Node.js, but much lower variance in response times while using six times the RAM with default Java settings. The latter can be tweaked and brought down to as little as twice the memory usage of Node with e.g. my ringo-sunserver but at the expense of decreased performance.
Node.js is stable, so yes it's safe to use. Node.js is capable of handling cookies, sessions, and multiple fields but are not as easy to manage. Web frameworks solve this problem.
I recommend Express.js, it's an open-source web framework for Node.js which handles all of this and more.
You can download it here:
https://github.com/visionmedia/express
I hope this helped!
Examples of some of the bigger sites running Node.js
https://www.learnboost.com/
http://ge.tt/
https://gomockingbird.com/
https://secured.milewise.com/
http://voxer.com/
https://www.yammer.com/
http://cloud9ide.com/
http://beta.etherpad.org/
http://loggly.com/
http://wordsquared.com/
Yes. It is. https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node and https://github.com/joyent/node/wiki/modules
cookies/sessions/forms etc http://expressjs.com/ makes it easier
Ringojs is a framework developed by Hannes Wallnöver and uses rhino as it's scripting framework. There are webframeworks, templating-engines, orm-packages and many many more things already available. Have a look at the tutorial featuring a good subset of packages you may use for a simple web-application. It's not too long and straightforward.
Even thought some of those packages used within the tutorial (e.g. ringo-sqlstore]) are marked as 0.8 and come with the hint "consider this being beta" they are already very stable and bugs - if you find one - get fixed or commented on very fast.
And the power of uncountable java-libraries out there is at your fingertips - so if you already have java-knowledge this knowledge isn't wasted. Rhino - the scripting-engine - even enables you to implement interfaces and extend classes. It is possible a little more advanced but i've done it and i know of packages taking advantage of such features (like ringo-ftpserver which is a wrapper around Apache FtpServer written in java)
Another pro for me is - because ringojs is based on java - it works fairly well with multithreading with ringo/worker for example.

Can CouchDB actually be used for a desktop application?

I'm hoping someone can validate or correct my conclusions here.
I'm looking into writing a small side project. I want to create a desktop application for taking notes that will synchronise to a web-server so that multiple installations can be kept in step and data shared and also so that it can be accessed via a browser if necessary.
I've kind of been half-listening to the noises about CouchDB and I've heard mention of "offline functionality", of desktop-couchdb and of moves to utilise its ability to handle intermittent communications to enable distributed applications in the mobile market. This all led me to believe that it might be an interesting option to look at for providing my data storage and also handling my synchronisation needs, but after spending some time looking around for info on how to get started my conclusion is that I've got completely the wrong end of the stick and the reality is that:
There's no way of packaging up a CouchDB instance, distributing it as part of a desktop application and running it in the context of that application to provide local storage and synchronisation to a central database.
Am I correct here? If so is there any technology out there that does this sort of thing or am I left just rolling my own local storage and maybe still using CouchDB on the server?
Update (2012/05): check out the new TouchDB projects from Couchbase if you are targeting Mac OS X and/or iOS or Android. These actually use SQLite under the hood (at least for now) but can replicate to/from a "real" CouchDB server. Another clientside alternative that is finally starting to mature is PouchDB, which runs in IndexedDB capable browser engines. Using these or using them to inspire similar port to another desktop platform is now becoming a better-trod path.
Original answer:
There's no way of packaging up a
CouchDB instance, distributing it as
part of a desktop application and
running it in the context of that
application to provide local storage
and synchronisation to a central
database.
At this point in time, your statement is practically correct although it is possible to include CouchDB in an app — for an example see CouchDBX.app which is a thin wrapper around a prefixed bundle of CouchDB and all its dependencies.
The easiest way to build a CouchDB app is to assume that the user will already have a CouchDB server running. This is easier than it sounds, especially with Couchone's hosting or a prebuilt app like CouchDBX on OS X or DesktopCouch on Ubuntu. This latter is especially interesting, because if I understand correctly it is included by default with Ubuntu these days, and automatically spins up a CouchDB server per-user when you query its port via D-Bus. Something similar could (and should) be done on OS X using launchd and Bonjour.
So as you write, you either would design your app to store data in a local format and optionally sync with a CouchDB service you provide or you'd have to build and bundle all of Erlang, SpiderMonkey and CouchDB together with your app along with some scripts to make sure it was running when needed. This is possible but obviously neither of these are ideal, and believe me you're not the only one wanting a simpler solution for desktop-oriented apps!

Writing a SOAP service on Linux - tools, help needed

I need to write a SOAP service for Linux (CentOS).
I need to do this using Lazarus/FreePascal. The service needs to be a binary (daemon) that runs in the background.
Questions:
1. Is this possible (as a standalone executable)?
2. If not, what are the alternatives?
3. How do I start?
4. What additional tools/libraries do I need?
This is possible with wst and either synapse or indy. wst is alsready included in your Freepascal download. There are some samples included as well, have a look at them.
I have created several soap services with wst + freepascal. You can choose to have them use their own webserver (so they just listen on a certain port, allows for simple debugging) or create an cgi module that you can use in Apache or IIS. You can also create a windows service or linux daemon, all by switching some parameters or including some other files.
It is not easy if you do it for the first time, but certainly possible.
I can answer some of your points since I'm doing it myself:
Using Lazarus and installing the LazDaemon package you can do daemons/services that compile and run stand alone on both Windows(Service) and Linux(Daemon). Daemons and Services
N/A
You have examples under the [fpc-source-dir]/packages/fcl-base/example/daemon.pp and under [lazarus-dir]/examples/cleandir/*
You will need some kind of SOAP framework that I'm not versed in.
Hope it helps.
This looks promising, at least as a start.
SOAP is a language neutral specification so in theory you could code in any language. But for your purposes if you can't find a library in pascal that does the grunt work you would be better off using any other language that does. Unless you are specifically looking for a long detour down the rabbit hole of WSDL and such, don't go there.
Is Pascal really a requirement??
Otherwise, you could write a SOAP service in Java, then your service would be platform agnostic.
The only requirement would be a JRE, and JRE are available for any platform, so it would run perfectly on all Linux flavors, WIndows, Mac OsS, Solaris, etc
There are also plenty of frameworks for doing SOAP in Java.
Pascal would also be able to run on Linux and Windows with minor adjustments, but I have no knowledge of existing good SOAP frameworks for Pascal.
I would just use Indy, and whatever Delphi soap lib a google search yielded. I would be surprised if there weren't a dozen.

Question about OSGi for embedded

I am going to work on the OSGi-based Embedded/Mobile applications. I have some confused questions need to be clarified.
(1) Can Equinox run on J2ME environment or not?
(2) How to start the Equinox OSGi container under the pure J2ME environment (not JDK and JRE installed)?
(3) Can I use some external jars / Third party's jars (which is based on JRE classes) for the embedded application?
Thank you!
Java ME is something of an "embedded" environment, meaning amongst other things that there is generally not as much memory to run in or storage space. At one time there were application size limits.
What this means is that instead of trying to dump big, fat, J2SE jars into a device with limited capabilities, perhaps you should try rethinking what you are trying to accomplish.
Also consider that the version of Java that mobile phones run is fairly limited, so many 'regular' Java applications and libraries will not work there.
You can include jars in your applications, by taking their contents and dumping them in the jar you create.
In other words, you have to think differently about Java ME - it's not the bloated world that most Java stuff inhabits.
I don't know much about Equinox OSGi but, as I found from it's web page, it's looks like support OSGi MEG. Then it could run on mobile devices with Java ME CDC runtime not CLDC.
OSGi should depends on features of CDC VM as like dynamic class loading, refelection or else.
Please find phoneME CDC project (phoneME advanced) from here.

Resources