News & Updates

News & Updates
==============
02.08.2019 : Rostoics 1.0.0-5 released (AppStore)
      code : Manage tab
             Start date / End date order algorithm changed.
      code : Manage tab
             rostoics (DH) server basename format including version & build.
             (e.g. 1564685846623_iOS-0-0.4-4.pdf)
      code : TLCs tab
             TLC background download (if required) and local storage.
      code : TLCs tab
             TLC view reloaded if changing connectivity from offline to online.
             real-time update if data becomes available.
29.07.2019 : Rostoics 0.0.3-3 released (beta testers only)
       fix : Manage tab
             'Generate calendar events' button bug w/ partial import.
       fix : Settings tab > Misc section > About
             text ident formatting corrected.
    change : Settings tab > Privacy section >
             'Show own details in TLC list' radio button removed.
       add : Manage tab
             'Download today's roster' button added.
24.07.2019 : Rostoics 0.0.2-2 released (beta testers only)
       fix : Manage tab
             'Generate calendar events' code now shows proper SVProgressHUDs.
       add : statusOnline code implemented using delegates.
       add : TLCs tab
             enable/disable implemented as per statusOnline.
       add : Info tab
             'User authenticated' implemented.
      code : skipped TLCs implemented.
02.07.2019 : Rostoics 0.0.1-1 released (beta testers only)
             first release.

Privacy Policy

Privacy Policy

This privacy policy ("Policy") describes how Mobile Application Developer ("Mobile Application Developer", "we", "us" or "our") collects, protects and uses the personally identifiable information ("Personal Information") you ("User", "you" or "your") may provide in the Rostoics mobile application and any of its products or services (collectively, "Mobile Application" or "Services"). It also describes the choices available to you regarding our use of your Personal Information and how you can access and update this information. This Policy does not apply to the practices of companies that we do not own or control, or to individuals that we do not employ or manage.

Collection of personal information

We receive and store any information you knowingly provide to us when you fill any online forms in the Mobile Application. You can choose not to provide us with certain information, but then you may not be able to take advantage of some of the Mobile Application's features. Users who are uncertain about what information is mandatory are welcome to contact us.

Collection of non-personal information

When you open the Mobile Application our servers automatically record information that your device sends. This data may include information such as your device's IP address and location, device name and version, operating system type and version, language preferences, information you search for in our Mobile Application, access times and dates, and other statistics.

Use and processing of collected information

Any of the information we collect from you may be used to personalize your experience; improve our Mobile Application; improve customer service and respond to queries and emails of our customers; run and operate our Mobile Application and Services. Non-Personal Information collected is used only to identify potential cases of abuse and establish statistical information regarding Mobile Application traffic and usage. This statistical information is not otherwise aggregated in such a way that would identify any particular user of the system.

We may process Personal Information related to you if one of the following applies: (i) You have given your consent for one or more specific purposes. Note that under some legislations we may be allowed to process information until you object to such processing (by opting out), without having to rely on consent or any other of the following legal bases below. This, however, does not apply, whenever the processing of Personal Information is subject to European data protection law; (ii) Provision of information is necessary for the performance of an agreement with you and/or for any pre-contractual obligations thereof; (ii) Processing is necessary for compliance with a legal obligation to which you are subject; (iv) Processing is related to a task that is carried out in the public interest or in the exercise of official authority vested in us; (v) Processing is necessary for the purposes of the legitimate interests pursued by us or by a third party. In any case, we will be happy to clarify the specific legal basis that applies to the processing, and in particular whether the provision of Personal Data is a statutory or contractual requirement, or a requirement necessary to enter into a contract.

Information transfer and storage

Depending on your location, data transfers may involve transferring and storing your information in a country other than your own. You are entitled to learn about the legal basis of information transfers to a country outside the European Union or to any international organization governed by public international law or set up by two or more countries, such as the UN, and about the security measures taken by us to safeguard your information. If any such transfer takes place, you can find out more by checking the relevant sections of this document or inquire with us using the information provided in the contact section.

The rights of users

You may exercise certain rights regarding your information processed by us. In particular, you have the right to do the following: (i) you have the right to withdraw consent where you have previously given your consent to the processing of your information; (ii) you have the right to object to the processing of your information if the processing is carried out on a legal basis other than consent; (iii) you have the right to learn if information is being processed by us, obtain disclosure regarding certain aspects of the processing and obtain a copy of the information undergoing processing; (iv) you have the right to verify the accuracy of your information and ask for it to be updated or corrected; (v) you have the right, under certain circumstances, to restrict the processing of your information, in which case, we will not process your information for any purpose other than storing it; (vi) you have the right, under certain circumstances, to obtain the erasure of your Personal Information from us; (vii) you have the right to receive your information in a structured, commonly used and machine readable format and, if technically feasible, to have it transmitted to another controller without any hindrance. This provision is applicable provided that your information is processed by automated means and that the processing is based on your consent, on a contract which you are part of or on pre-contractual obligations thereof.

The right to object to processing

Where Personal Information is processed for the public interest, in the exercise of an official authority vested in us or for the purposes of the legitimate interests pursued by us, you may object to such processing by providing a ground related to your particular situation to justify the objection. You must know that, however, should your Personal Information be processed for direct marketing purposes, you can object to that processing at any time without providing any justification. To learn, whether we are processing Personal Information for direct marketing purposes, you may refer to the relevant sections of this document.

How to exercise these rights

Any requests to exercise User rights can be directed to the Owner through the contact details provided in this document. These requests can be exercised free of charge and will be addressed by the Owner as early as possible and always within one month.

Privacy of children

We do not knowingly collect any Personal Information from children under the age of 13. If you are under the age of 13, please do not submit any Personal Information through our Mobile Application or Service. We encourage parents and legal guardians to monitor their children's Internet usage and to help enforce this Policy by instructing their children never to provide Personal Information through our Mobile Application or Service without their permission. If you have reason to believe that a child under the age of 13 has provided Personal Information to us through our Mobile Application or Service, please contact us. You must also be at least 16 years of age to consent to the processing of your personal data in your country (in some countries we may allow your parent or guardian to do so on your behalf).

Links to other mobile applications

Our Mobile Application contains links to other mobile applications that are not owned or controlled by us. Please be aware that we are not responsible for the privacy practices of such other mobile applications or third-parties. We encourage you to be aware when you leave our Mobile Application and to read the privacy statements of each and every mobile application that may collect Personal Information.

Information security

We secure information you provide on computer servers in a controlled, secure environment, protected from unauthorized access, use, or disclosure. We maintain reasonable administrative, technical, and physical safeguards in an effort to protect against unauthorized access, use, modification, and disclosure of Personal Information in its control and custody. However, no data transmission over the Internet or wireless network can be guaranteed. Therefore, while we strive to protect your Personal Information, you acknowledge that (i) there are security and privacy limitations of the Internet which are beyond our control; (ii) the security, integrity, and privacy of any and all information and data exchanged between you and our Mobile Application cannot be guaranteed; and (iii) any such information and data may be viewed or tampered with in transit by a third-party, despite best efforts.

Data breach

In the event we become aware that the security of the Mobile Application has been compromised or users Personal Information has been disclosed to unrelated third parties as a result of external activity, including, but not limited to, security attacks or fraud, we reserve the right to take reasonably appropriate measures, including, but not limited to, investigation and reporting, as well as notification to and cooperation with law enforcement authorities. In the event of a data breach, we will make reasonable efforts to notify affected individuals if we believe that there is a reasonable risk of harm to the user as a result of the breach or if notice is otherwise required by law. When we do, we will post a notice in the Mobile Application.

Changes and amendments

We reserve the right to modify this Policy relating to the Mobile Application or Services at any time, effective upon posting of an updated version of this Policy in the Mobile Application. When we do we will post a notification in our Mobile Application. Continued use of the Mobile Application after any such changes shall constitute your consent to such changes. Policy was created with WebsitePolicies.

Acceptance of this policy

You acknowledge that you have read this Policy and agree to all its terms and conditions. By using the Mobile Application or its Services you agree to be bound by this Policy. If you do not agree to abide by the terms of this Policy, you are not authorized to use or access the Mobile Application and its Services.

Contacting us

If you have any questions about this Policy, please contact us.

This document was last updated on July 2, 2019


Convert .pdf to .ics


rostoics_mainThis tool converts NetLine/Crew CrewLink roster .pdf files into .ics calendar files.

CHECK ALL EVENTS FOR CORRECTNESS !!!

Please read these Instructions carefully prior using this tool !!!

 

 

Usage
=====
1a. Download your roster using your company's web interface (NetLine/Crew CrewLink).
1b. Download your roster using the CrewLink App.
2. Save the roster locally as .pdf file.
3. Go to Convert .pdf to .ics.
4. Press Browse... button and select the just downloaded .pdf file.
5. Press Upload roster (.pdf file). Roster is then processed by rostoics tool.
6. Press Download roster (.ics file) and save that file locally.
7. Import the .ics file into your calendar using your preferred gateway.


Select roster (.pdf file) to be uploaded:



(wait 5-10 seconds for roster processing to finish)



rsync backup from Ubuntu server to Synology NAS

This tutorial describes how to do scripted passwordless encrypted automatic rsync backups from an Ubuntu server to a Synology NAS. It is supposed to be a general guide, which can be used with other Linux variants as well. Only minor changes should be required.

I did this first of all in order to help other Synology NAS users perform efficient and secure backups to their NAS, but also to get get my scratch pad like personal installation notes in a more reasonable shape, so I can recall later on myself what I did, how, and why.


Synology NAS shell – Basics

synology_dsmThe following article describes some basics regarding first contact with Synology DSM shell.

I used DSM 6.1.3 out of the box, running in a Virtual machine (using Virtual Machine Manager) on DS1817+ hardware.


Null client Postfix setup


The following setup describes a postix setup to send e-mails using an existing SMTP server. It is not designed to receive e-mails. My provider is DreamHost, but setup should be very similar with other hosters. I used a VM with the Ubuntu Server 16.04.1 out of the box installtion (ubuntu-16.04.1-server-amd64). This VM has no real FQDN, hence an imaginary needs to be configured in order to make the SMPT server accept sent e-mails.


Instructions


Introduction
============
rostoics is a tool which converts NetLine/Crew CrewLink roster .pdf files into .ics calendar files. The .ics files are used to create calendar events on iPhone, iPad, Samsung, ... basically any device able to deal with .ics files. Google Calendar also supports .ics file import.

Who should use it ...
All those who make extensive use of online as well as local calendar entries, being it for private or professional purpose. Basically all those who have a highly charged daily schedule requiring organization to some extent. Online integration adds sharing features to friends an family members. Tedious and error prone manual event entries can be avoided.

Who should disregard it ...
When hardcopies of Crew roster, downloaded PDF documents or CrewLink App roster consultations are sufficient for planning purpose, calendar setup isn't really necessary.

Nomenclature
============
- event : Any calendar entry e.g. flight, ground duty, standby, free day, ...
- .pdf file : The format of the roster file downloaded from NetLine/Crew CrewLink.
- .ics file : Standardized calendar file format, generated by subject rostoics tool.

Restrictions
============
1. Only plain rosters are accepted. No notifications (schedule changes).
2. Only Luxair rosters are accepted for the time being.
3. Event spawning across more than one month is not allowed. - REMOVED (BETA)

I try to lift restrictions gradually.

Nota bene
=========
Be aware that apparently parsed events might be incorrect or incomplete. Always check every event after import !!!

Debug messages on Convert .pdf to .ics page (bottom) shows events not parsed properly. Manual modification is required. E.g. ...
debug : unparsed event!
        [20161129] Tue29 DH/LG 8361 /30 LUX 0540 0645 GVA [FT 00:00]

Please report (using Comment feature at the bottom of this page) any non parsed or badly parsed events.

Bug fixes could possibly introduce new bugs. Of course I try to avoid by all means, nevertheless there is a potential risk this might occur.

Any suggestions regarding formatting of event, additional information, this web interface, mistakes, ... just anything ... are welcomed!

Tested browsers
===============
Firefox 47.0.1 on Windows 7
Safari on iOS 10.1.1 (iPhone 6s)
Safari on iOS 9.3.5 (iPad [3rd generation])
Please report any browser related compatilities and incompatilities.


Export/Import of roster files


The biggest challenge is probably the roster file handling on different devices, id est downloading .pdf roster file from NetLine/Crew CrewLink, converting the .pdf file to an .ics file and importing this one into the personal calendar.

There are way too many possibilities and individual configurations, so that a general guideline is somewhat hard to give.

1. Download .pdf roster file from NetLine/Crew CrewLink
=======================================================

This is probably the most easiest step. Just visit the Airline's NetLine/Crew CrewLink page and download the desired roster, download and save the file to your favorite location - straight forward. This can be achieved either via PC/Mac or mobile (iPhone/Android). No big deal, but with iPhones, the .pdf file must be stored somewhere (iCloud Drive, Dropbox, Google Drive, ownCloud, ...). Other third-party Apps might work as well.

2. Convert the .pdf file to an .ics file
========================================

2.1 Website method
------------------
Visit the Convert the .pdf to .ics page and follow the post.

2.2 email method
----------------
Just send the .pdf file as email attachment to roster@geohei.lu. The body text of the email is ignored. You'll get the .ics file back to within less than a minute. Be aware that the returned email contains a summary of the parsed events, and that the .ics file can be found at the very bottom of the email.

None of both methods is better than the other. I's just what suits you best.

3. Import .ics roster file into the personal calendar
=====================================================

As calendar, you can use a local iPhone, Samsung, ... or the online version like Google Calendar or Yahoo Calendar. How to import .ics files into these calendars goes beyond the scope of this post, since it greatly varies depending on hardware, OS and Apps installed. Some "experimental" manipulations might be required.

Many devices try to be intelligent in terms of recognizing .ics files automatically and offering import. This works quite well, even if multiple calendars are used.

Below a guideline how to import the .ics file for Google Calendar using a browser:
1. Login your Google account
2. Select "Settings" from the "Settings" gear icon (top right corner)
3. Click on "Calendars" link from (top left corner)
4. Click on "Import calendar" link (bottom page)
5. Browse for your .ics roster file and select desired calendar (if more than one)
6. Press "Import"
Done!

 
 

Apple devices notes
===================

- Chrome browser seems to handle file action easier than Safari. You might give it a try.

- Since end of 2016, Apple removed the "Add All" feature in the email client. In Safari, it still works. This is kind of a step back in evolution since it requires the user to manually add every individual event. This is everything other than comfortable. Details can be found here: Importing .ics calendar events from emails

 
 

What I do ... I download my .pdf roster file from NetLine/Crew CrewLink using my Windows 7 PC, save it locally on my Desktop, convert it into .ics roster using website method, import it into Google Calendar and that's it. All this takes less than a minutes.

Basically ... everybody can do all this with any device and any software. There are many ways to do it ... it's just a matter to find YOUR best way. This might take some time to discover. Once done, it's a piece of cake.

I don't have all these different devices and therefore, I can hardly simulate the entire range of possible hardware/software combinations. Hence I rely on user's feedback. Just post below ...

Many thanks,


News & Updates

News & Updates
==============
02.08.2019 : rostoics 1.0.31 released
             added event type(s) FREE: V32
             added event type(s) STBY: PREP
03.06.2019 : rostoics 1.0.30 released
             added event type(s) STBY: PBN
             minor bugs fixed
16.04.2019 : rostoics 1.0.29 released
             added event type(s) STBY: CPT, RNP
             fixed bug(s):
             - removed trailing dash in LOCATION tag after Cockpit Crew
               if Cabin Crew doesn't exist.
13.03.2019 : rostoics 1.0.28 released
             added event type(s) STBY: CONF, CWOI, HGS, PLRI
             added event type(s) FREE: FSP
             added new emoji EMOJI_DESKTOP_COMPUTER (for event type STBY: HGS)
08.02.2019 : rostoics 1.0.27 released
             added event types STBY: CPTI, DTCH, IUPAX, TECI
16.01.2019 : rostoics 1.0.26 released
             added event types STBY: GFT, OMA, OMB, OMC, CRS
             added event types FREE: FLT
             corrected some emoji code
14.11.2018 : rostoics 1.0.25 released
             added event types STBY: OTH_SBY
                                     RESERVE
                                     PLR
20.10.2018 : PHP Code: Added UID (timestamp in ms) to server filename in order to
                       get unique filenames. This avoids crossed file access by users
                       uploading rosters simultaniously using identical filenames. 
18.10.2018 : rostoics 1.0.24 released
             added event types STBY: AGD
                                     ISIM-Q4
15.09.2018 : rostoics 1.0.23 released
             added event types STBY: ISIM-737
                                     SIM-UPRT
             fixed bug(s):
             - malformed parsing of roster due lack of new line between last
               TLC of month and following "Recurrent Training / Checks" 
17.08.2018 : rostoics 1.0.22 released
             changed emoji for event type FLIGHT: TAX and TAXI
             added event types STBY: ADM/OPS
                                     APBADGE
                                     LPC-737
                                     LPC_Q4
                                     SEL
                                     TECR
             added emojis: EMOJI_V_TRAFFIC_LIGHT
                           EMOJI_RADIOACTIVE
                           EMOJI_LINKED_PAPERCLIPS
             fixed bug(s):
             - event type STBY end date next day not correct
               end date was not increased by 1 if event ending next day
               e.g. simulator spawing across 00:00
07.06.2018 : rostoics 1.0.21-PL1 released
             major bug in event type STBY code fixed (segmentation fault)
23.05.2018 : rostoics 1.0.21 released
             added event detail line as LOCATION tag for all event types
             added emojis for all event types
             added event type STBY : PFC
18.05.2018 : rostoics 1.0.20-PL1 released
             minor bug w/ event type STBY logging fixed
18.05.2018 : rostoics 1.0.20 released
             added emojis for event type STBY
             minor bugs fixed
28.04.2018 : rostoics 1.0.19-PL1 released
             MySQL/rostoics UTF-8 (special characters) problem fixed
18.04.2018 : Web hoster changed some global PHP configuration which created
             "Error 404" for some users. Error occurred or not according
             local device settings.
             PHP code modified to cope with new configuration!
17.04.2018 : rostoics 1.0.19 released
             Emojis introduced (experimental - F and flight events only)
             TLC database updated
             improved logging (content and presentation)
             minor bugs fixed
16.03.2018 : rostoics 1.0.18-PL2 released
             fixed (nasty) bugs w/:
             - complete failure to import any event
             - "Notes" of all events not shown
15.03.2018   rostoics 1.0.18-PL1 released
             minor bug fixed
             added event : SICK
             added "roster printed" info
06.03.2018   rostoics 1.0.18 released
             added events : RSEN, NC, RFC
             TLC database updated
             improved presentation of modified "unparsed event"
             improved logging (content and presentation)
             code optimization
             fixed bugs w/:
             - support for 2nd suffix line (added in 1.0.17)
               corrupted formatting of misc data in event w/ 2nd suffix line
             - event end date next day not correct (e.g. night duty)
               end date was not increased by 1 if event ending next day
             - wrong formatting of .sum file with event type FLIGHT
               event type FLIGHT w/ 3 chars (e.g. "CAR") misaligned .sum file
             - missing mcm in events type FREE and STANDBY
               mcm missing under certain circumstances
               mcm retained for next event under certain circumstamces
             - TLCs previous flight shown when no Crew on roster (e.g. "CAR")
               only for event type FLIGHT w/o aircraft 3 letter IATA aircraft code
             - incorrect parsing of hotel details if more than 1 hotel on roster
               event details for hotel were badly parsed
27.06.2017   rostoics 1.0.17 released
             added support for 2nd suffix line
             added support for cockpit/cabin crew change during same rotation
             added processed hotel counter
             minor bugs fixed
18.03.2017   rostoics 1.0.16-PL1 released
             minor bug fixed
15.03.2017   rostoics 1.0.16 released
             added events : FF, VSP
             reported bugs fixed
15.02.2017   roster@geohei.lu rostoics interface online
             Export/Import of roster files post rewritten
23.01.2017   rostoics 1.0.15 released
             added events : X, FP
             reported bugs fixed
12.01.2017   rostoics 1.0.14 released
             added MySQL database support for TLC (3-letter-code) name resolution
             reported bugs fixed
21.12.2016   rostoics 1.0.13 released
             "To c/m:" (message to crew member) support added
20.12.2016   rostoics 1.0.12 released
             added events : RC, IRC
19.12.2016   rostoics 1.0.11 released
             added event : REV
             .pdf file names including spaces and special characters are accepted now
             .pdf files other than NetLink/Crew CrewLink roster are rejected
18.12.2016   rostoics 1.0.10 released (first stable version)
             added events : H?, H1, ... (Hotels)
             reported bugs fixed
             code optimization

Screenshots iPhone


Below you see some screenshots how events are presented on iPhones (iOS 10.1.1) after .pdf conversion and .ics import (rostics 0.1.2).

rostoics_iphone_1

rostoics_iphone_2

rostoics_iphone_3

rostoics_iphone_4