11

RumpelstiltskinRSS is a web based RSS reader for your Gengo Jobs RSS. After some one-time steps, you can use any browser on any device to alert you for new jobs. As a bonus, RumpelstiltskinRSS does some filtering for you so you will only be alerted if the size and level of the job meet your preferences, taking the time of day into account.

I optimized RumpelstiltskinRSS for my own needs, but tried to make it so that it can be used by all translators. You can find RumpelstiltskinRSS at http://rumpelstiltskin.appje.nl/rss/. For a description how to use it, follow the Introduction link.

Note that you can set the refresh interval to either 31 or 62 seconds. Use 31 for optimal chances to grab a job, without breaching Gengo's demand to access your Jobs RSS at most twice per minute. Or use 62 to test if RumpelstiltskinRSS suits you, while still running your current RSS reader (set to check at most once per minute) on another device.

305 comments

  • 3
    Avatar
    Alexander

    I uploaded a new Android app version to the Google Play Store. This version can run 'in the background'. (From a technical point of view this is not really true. This 'background' mode is actually a foreground process, but who cares?) Here's the user experience:

    - launch the app
    - log in to your RumpelstiltskinRSS account
    - quit the app

    and Rumpelstiltskin no longer blocks you from using your device for anything else. You can launch another app, or put your device to sleep, while a process keeps checking for jobs 'in the background'. You can tell the process is active by the presence of a tiny icon in the status bar. To stop that process, do this:

    - launch the app
    - log out
    - quit the app

    and notice the tiny icon in the status bar has disappeared.

    This feature brings the app to the level that to my taste is worth a monthly fee, so a near future version will probably be subscription based. However, if any bugs show up due to this 'background' mode I will fix those first, of course.

  • 2
    Avatar
    Alexander

    Chances are I will release the iOS app version in December. Really.

    I finished testing and polishing about a month ago. Then came a burst of unrelated projects in my life, and this week I finally found time to focus on the process of actually submitting the app to the App Store. This is not as trivial as it sounds. I have to supply quite some metadata, part of which requires extra work.

    I will post a new message once I actually submitted the app, which I hope will be by the end of next week. After that, Apple will probably take a week or two to review the app. Of course, I will keep you informed about their decision, and in the case of approval the URL for downloading the app.

    As for the price, on the one hand I don't want to ask money yet since this initial version may have issues that I did not see during testing, on the other hand I don't want to attract people who download anything that's free, causing extra load on my server. So I will set it on the lowest non-zero price the App Store allows. A future version will be subscription based.

    One major feature of this version was supposed to be its ability to run in the background. However, it turned out that Apple is very restrictive in allowing this. Fetching info every minute in the background is not possible. As a workaround, I made it such that the app keeps running when you put your device in the sleep mode while the app is in the foreground. This means that even in sleep mode the app keeps checking every minute, and will produce a sound if a job is found, but there is no real background mode. Even when your device is awake, you won't be able to run a different app at the same time.

    The other major feature is its stability. In my testing, it always recovers from interruptions in the internet connection or temporary server side failures. So in this regard I am quite happy with its current functionality.

    After releasing the iOS app, I plan to create an Android version. On the one hand this will be less work, since I already did the necessary server side modifications and made the major client side design decisions, on the other hand I will need extra time since this will be be my first Android app so I have to learn some basics.

  • 1
    Avatar
    Alexander

    Update about the Android version: after spending far more time than I had expected on getting familiar with the basics of Android app development (Android Studio is powerful but overwhelming, and the way code is organised is not immediately clear), I am now making fast progress in the actual coding of the app. I will probably publish an initial release in the course of July.

  • 1
    Avatar
    Alexander

    Today, one user notified me that when RumpelstiltskinRSS finds a job, the corresponding link is redirected to the dashboard.

    I tested it with a job in my own feed. The correct link starts with https://gengo.com/ (note the s in https), but the link RumpelstiltskinRSS uses starts with http://gengo.com/ (http without s). This worked fine in the past, but apparently, Gengo now requires https.

    I updated the scripts on my server to meet this requirement. If you still experience this (or any other) problem, please let me know.

  • 1
    Avatar
    Alexander

    Part of the current RumpelstiltskinRSS functionality is that if you work in multiple language pairs, you can specify different preferences for each pair. While this seemed a good idea when I first implemented it, I am not so happy about it anymore, so I plan to disable it.

    Please let me know if you rely on this feature and I will keep it enabled for you. For all others, I will disable this feature by the end of this month.

  • 1
    Avatar
    Alexander

    One user reported recently that at times the Android app version of RumpelstiltskinRSS stops functioning abruptly. You can tell this has happened if the "Next check: ..." time is incorrect. (It should be close to the current time. If it is, say, one hour ago, then the app has stopped functioning at that time.)

    I checked the Android developers documentation and found that as of Android 8.0 certain restrictions apply for processes like the one I use to keep the app in touch with my server. Fortunately, the documentation also says how to make the app compliant with these restrictions.

    Most likely, I will publish an updated version within 1 or 2 weeks.

  • 1
    Avatar
    Alexander

    I changed the server scripts to improve the calculation of the the "Next check:" time.

    It used to be simply "last time + T seconds", with T=31 or T=62 as set in your preferences. This has some unexpected downsides.

    First, now that RumpelstiltskinRSS runs on multiple servers, this simple approach caused synchronization problems. If you ran the iOS or Android app version, which is tied to rmpl.nl, as well as the browser version on rmpl-2020-3.nl/paid, you could get a notification via the app while the browser still said 0 jobs.

    Second, "last time" is ill-defined if the interaction between your computer/device and my server, or between my server and Gengo, takes more than a few seconds. One user recently saw that it took over 20% more than 31 or 62 seconds before the page refreshed. While it looks like this was only a temporary issue, what happens once to one user will no doubt happen more often to many users.

    Third, it is left to chance how many translators refresh their page more or less at the same moment.

    Therefore, I changed the calculation into "T_0 + N x T seconds", with T_0 a per translator fixed point in time and N the lowest whole number such that the calculated time is in the future. T_0 is derived from your Jobs RSS in a way that as far as I can see results in a more or less even distribution of all T_0's.

    If you want to know the details: the unique part of your Jobs RSS is a string of hexadecimal characters 0-9, a-f. I use this more or less random number to pick for T_0 a more or less random (Unix time) value between 0 and 61.

    This approach solves the first two issues and alleviates the third one. First: the same calculation on each server, using server-independent parameters only, results in perfect synchronization. Second: while any delay due to slow connections or high traffic load may shift the moment the page is actually refreshed, a consistent delay will result in a consistent shift so the refresh rate is not affected. Third: it's still possible that the T_0 value for several translators in your pair is close to yours, so throughout the day you will clash with this same group, but as far as I can see the extremes are less extreme than in the previous approach.

    The upshot is that RumpelstiltskinRSS will more reliably refresh every 31 or 62 seconds, and the refresh moments are spread more evenly over all users.

  • 1
    Avatar
    Alexander

    After receiving the first few donations (many thanks!), I realized a lot of personal data is involved. PayPal gives me your full name, your email address, and in some cases also your physical address.

    One of these days I will add to my site(s) a privacy statement to the effect that I won't store these data on my server or share them with anyone else.

    I haven't decided yet what I will do now that these data are in my mail on my local computer. While it should be possible to set up a workflow in which I no longer need the messages after processing the payments, in the current stage I don't feel comfortable to erase them right away.

    As for the email address, I can think of situations where it could come in handy. In the privacy statement I will describe these situations, and at the Donate page I will ask if you allow me to use your email address for these purposes.

  • 1
    Avatar
    Alexander

    In my tests this weekend, rmpl.nl still performed bad, despite the step I announced in my previous post. After much debugging, I found a quite trivial cause: I had somehow overlooked a huge number of users whose account exists on rmpl.nl only, so they are still allowed to use that server in the browser version, and while not all of them actually did this weekend, the total number of active users there is still far more than the number when the problems started.

    In the next few days, I will further polish my semiautomatic administration to determine the status of each user (paying or non-paying; presence on each of the servers), and try to automatically copy the accounts that exist on rmpl.nl only to either rmpl-2020-1.nl (for non-paying users) or rmpl-2020-3.nl/paid (for paying users), so I can also move this group away from rmpl.nl.

    Talking about paying users: about a quarter of all who did the survey recently and promised to make a donation actually did so far. I would appreciate if more people do so, so I can base my future plans on the real rather than estimated budget.

  • 1
    Avatar
    Alicia L. Alonso

    Alexander,

    Thank you so much for your quick response. I did both things: I started a new account at rmpl-2020-1.nl and also sent you a donation to the other paid site. Please let me know when my account is valid there.

    Thank you for everything you've done for this community!!

    Regards

     

    Alicia

  • 1
    Avatar
    Alexander

    It can't hurt to reach out to Gengo support so they are aware the server is slow in responding at that moment. If more people do so, perhaps Gengo can see a pattern under which conditions this problem arises, and in the long run do something about it.

    However, most likely all translators in your pair experience the same problem at the same time, so in the end your chances to grab a job won't be affected. The only thing that really matters is how many jobs per translator there are in your pair.

    If 100 translators rush for the same job, 99 will miss out on it, no matter if Gengo's server takes a split second or several minutes to decide who's the lucky one. If Gengo makes the server more responsive, you will just have a smoother "you're too late" experience. :-)

  • 0
    Avatar
    Alexander

    RumpelstiltskinRSS now marks jobs for which you are a Preferred Translator with a star and the code PT. Also, you can now set separate preferences for jobs for which you are a Preferred Translator.

  • 0
    Avatar
    hemehemekukohi

    Hi!

    Thank you very much indeed for the amazing RSS reader! This is the very reader I've been looking for!

    I have one question. When I use this on my iPhone, it does show new jobs but doesn't make any sound.

    Is it possible to let me know by sound?? 

  • 0
    Avatar
    Alexander

    Hi Hemehemekukohi,

    RumpelstiltskinRSS is supposed to produce a sound when it sees a job matching your preferences, no matter which browser you use. I run it without problems on an old iPod (iOS 2!) and on a MacBook with recent software (OS X 10.7, Safari 6).

    I think this is either a trivial issue with the settings on your device (low sound volume) or a subtle issue with the iOS/Safari version you use. If more people report this problem, I'll have a closer look at it.

  • 0
    Avatar
    hemehemekukohi

    Hi Alexander,

    Thank you for your quick and informative reply.

    Although I checked every setting which comes to my mind including sound volume, it still doesn't produce any sound.

    It would be very grateful if you could have a look at it when you have time.

    When it sees a job on my iPhone, it shows a music player (?), which I've attached the photo of.

    I use iPhone 5c (iOS 8.3/Safari 8), just in case.

    Thank you.




    IMG_0341.PNG
  • 0
    Avatar
    Alexander

    The music player should automatically start playing. Perhaps Apple disabled this possibility for some reason in Safari 8. Very unfortunate, because the whole idea is to be informed about jobs without having to stare at the screen the whole day.

    On the bright side, modern browsers have more possibilities to play a sound. Perhaps I can use on of those for a workaround. I'll see what I can do in the nearby future.

  • 0
    Avatar
    hemehemekukohi

    Thank you very much. I'm looking forward to it!

  • 0
    Avatar
    Sunnysailor

    By the way, Alexander, thanks a lot for this great little piece of job you did with this program. But me too I have no sound on my iPhone 3 while refreshing the rss data.

     

    Cheers

    Martin

  • 0
    Avatar
    Alexander

    I added 2 buttons "Test sound 1" and "Test sound 2". Each reloads the page and tries to play a sound. "Test sound 1" uses the current way to play a sound, "Test sound 2" uses a different way that should work on modern browsers.

    On my iPod, "Test sound 1" works fine and "Test sound 2" just reloads the page but does not play a sound. On my MacBook, both work fine. My hope is that both Hemehemekukohi and Martin will hear a sound after pressing "Test sound 2". My fear is Apple built in a limitation in recent versions of mobile Safari and I will have to add "Test sound 3", "Test sound 4", "Test sound 5", ... before hitting on a solution.

    Hemehemekukohi, Martin, please let me know if "Test sound 2" gives you a sound. Others, if only 1 of the 2 buttons works for you (or even none at all), please let me know which browser (+ version) you are using and which button works for you.

  • 0
    Avatar
    Sunnysailor

    Nope, unfortunately none of these two sound systems work at my iPhone.....

  • 0
    Avatar
    Sunnysailor

    Sorry, I forgot the version info. It shows 6.1.6 (10B500).

  • 0
    Avatar
    hemehemekukohi

    Thank you so much for putting your effort so early!!

    Unfortunately, both of them don't play a sound. Also, as for Test Sound 2, the player image (which I showed you earlier) doesn't show up.

    As for my Safari version, I am not sure how to check the version, but my iOS is 8.3 so I guess my Safari version is 8....

    I hope you have all information you need.

    Mamiko

  • 0
    Avatar
    Alexander

    Hi Mamiko,

    Thank you for helping with the test. For Test sound 2 I used a feature of modern browsers to play without showing a player, so in that respect your observation meets my expectations.

    Meanwhile, I found a statement in Apple's documentation (Safari HTML5 Audio and Video Guide) that "In Safari on iOS (for all devices, including iPad), where the user may be on a cellular network and be charged per data unit, preload and autoplay are disabled".

    In other words, Apple wants to protect users from automatically starting a stream that will drain their wallets. I can sympathize with that, but I regret there is no way for a user to tell Safari that for a particular site it's okay to start playing. The current sound in RumpelstiltskinRSS is 125 KB. I don't think this would have a noticeable effect on your bill.

    From other sources on the internet I understand this restriction was first included in iOS 6. Also, I didn't read anything about a similar restriction on other systems, like Android. So I believe this problem is specific for devices running iOS 6+.

    The bottom line is that my current approach will never work for you. But perhaps another approach will. The restriction seems to be on the download of the sound only. Once the sound is in the memory of your device (e.g. triggered by the user pressing a button), it can be reused from within the software.

    So perhaps I could make it work by refreshing only parts of the page rather than the whole thing. I'll try to make something along these lines within the next week.

  • 0
    Avatar
    hemehemekukohi

    Hi Alexander,

    I really appreciate your effort to find a problem and  solution!!! 

    And thank you for your detailed explanations about the reason why my iPhone doesn't produce a sound. Now I understand.

    I'm glad that I still have a hope!

     

  • 0
    Avatar
    Sunnysailor

    Also from my side a big thank you for your effort to make things work for all of us who use your excellent tool!

     

    All the best

    Martin

  • 0
    Avatar
    Alexander

    Hi Mamiko, hi Martin,

    Thanks for your kind words about the usefulness of the software. They are an extra stimulus to solve this issue. But most of all, I find it annoying that a core feature is broken. Being alerted or not being alerted via a sound makes a huge difference. That's why I am determined to fix it, one way or another.

  • 0
    Avatar
    Alexander

    While I don't have a device with a recent iOS version, I was able to reproduce the problem in the Xcode iOS Simulator. The current version sort of works in the iOS Simulator, so it may also work for you.

    Tap the Preferences button. On the Preferences page, scroll down to the new block "Alerts". Check "Use alert mechanism adapted to iOS 6 and later". Tap "Start checking for jobs" (make sure "Save preferences upon Start checking for jobs" is checked, or tap "Save preferences" before you tap "Start checking for jobs").

    Near the top you should now see a link "Play sound". Tap it for the initial download. You should immediately hear the sound. From now on, it's available in the memory of your device for reuse when RumpelstiltskinRSS sees a job.

    That's the theory. In practice, I have found that sometimes the sound still isn't played when it should be. I guess it is erased when memory gets low. In particular, this may happen if you switch tasks on your device. Therefore, whenever you use the device for anything else and then switch back to RumpelstiltskinRSS, I advise you tap the "Play sound" link again.

  • 0
    Avatar
    Diego Cavalcanti

    Hi! I really like the concept of your app, but i keep getting an error when i try to register a new user. It always says that my username is alrealdy taken, no matter what i write.

  • 0
    Avatar
    Alexander

    @Diego Cavalcanti - Fixed. Sorry for the inconvenience.

  • 0
    Avatar
    Diego Cavalcanti

    Thankyou! Register option working fine now, but when i try to add my rss link, even though i just copied it from the rss link, it says it's a invalid rss (it happened with a few other rss readers as well).

Please sign in to leave a comment.