1. Failed Attempt to Switch from Gmail Web Client to Mail App (Yet Another One)

    While doing tremendous efforts not to study, I persuaded myself to give Mail App another try over Gmail web client.
    After two days, I decided today to stop trying and go back to the ease of use of Gmail, thinking at the same time the pros and cons of the two applications and why did I choose Gmail at last (once more…).

    I’ll try here to spot, at least from my perspective, the things that believe really matter in each mail client.

    Read More

    1 year ago

  2. From C2DM to Google Cloud Messaging

    (This is an article for Google Cloud Messaging cross posted from the Warply blog)

    Google IO is over and we’re left with lots of interesting updates. We saw the new version of Android, Jelly Bean, we used Google Docs with Offline Editing and finally got Chrome and Google Drive to the iPad. The coolest thing of all, though, is what was introduced as Google Cloud Messaging, or simply GCM.

    Google, over the past two years, had a service called C2DM, or Cloud to Device Messaging, which had a really big traction, despite being a labs project.

    Android Cloud to Device Messaging (C2DM) is a service that helps developers send data from servers to their applications on Android devices. The service provides a simple, lightweight mechanism that servers can use to tell mobile applications to contact the server directly, to fetch updated application or user data. The C2DM service handles all aspects of queueing of messages and delivery to the target application running on the target device.

    Since the Google IO 2012, this project got out of the labs after being polished, made simpler and easier to use and was renamed to Google Cloud Messaging.

    Well, what’s so great about this thing? Why does it get so much traction? The answer is simple. This service allows a server to send messages asynchronously to devices, making possible what is called the “send to sync” process. Instead of having the application polling the server between several time intervals, the server sends a message to the device, as soon as there is a new update. Then, the application simply requests an update from the server, knowing it exists.

    Here are the primary characteristics of Android Google Cloud Messaging:

    • An application on an Android device doesn’t need to be running to receive messages. The system will wake up the application via Intent broadcast when the the message arrives, as long as the application is set up with the proper broadcast receiver and permissions.
    • It does not provide any built-in user interface or other handling for message data. C2DM simply passes raw message data received straight to the application, which has full control of how to handle it. For example, the application might post a notification, display a custom user interface, or silently sync data.
    • It requires devices running Android 2.2 or higher that also have the Market application installed. However, you are not limited to deploying your applications through Market.
    • It uses an existing connection for Google services.

    Although the use of this service has many benefits, let’s point out the most important ones. First of all comes battery life. Opening the radio and polling the server is a really battery consuming operation, since the radio does not switch off instantly, leading to up to twenty seconds of battery draining. Since the application no longer needs to poll the server for the updates, it saves both battery and data usage. The application gets also updated in almost real time, since the message processing and sending is done in as little as 4.7ms!

    Moreover, you can easily create applications that do not have a normal update interval, i.e. a Twitter client, but need to get updated asynchronously when, let’s say, a new offer comes, just like Warp.Ly applications do. Polling the server, i.e. once per day, until a new offer is available would be a really bad practice, but with C2DM and now GCM, this thing rocks!

    Having said all that, let’s concentrate on the changes made to the C2DM service, making Google Cloud Messaging rock so much! The first thing you notice when you start the integration process is that you no longer need to do complicated stuff like getting an auth token, making sure it is always up to date and make everything work (believe me this process was not always working as it should). Now, you just go to the API console, get a server key, put it in your application and that’s it! You are ready to go. After you’ve set up everything, you can now enjoy the new features of GCM, like Message Multicasting (send the same message to multiple devices), Message Collapsing (collapse messages with the same collapse key, delivering only the last one), Multiple Servers for each Application (allowing you to pair an application with different services, let’s say send data related to your application and let Warp.Ly deliver awesome offers) plus many many more! An interesting improvement is the Message Lifetime field, which can vary from 0 to 4 weeks. T his feature allows you to send messages that can be saved in the cloud for as long as you decide if the device is offline and get delivered as soon as the device is available. Setting a Message Lifetime of 0 will send the message if the device is available, or simply discard it, letting you send messages personalized for the exact moment. Apart from that, you can now select to delay the messages if the device is idle, which will treat a device as offline if the device is online but not active. Combine the last two and you get really awesome results, making it possible to maximize the personalized experience.

    Since examples are the best way to understand, let’s say that there is a football match. The company sponsoring one of the teams has a mobile application, which has decided to monetize and create traction using Warp.Ly. When the team scores a goal, it is possible to send an offer to all the people having installed the mobile app and are in the pitch using Wap.Ly’s geolocation filtering, lasting just one minute, in order to use the enthusiasm of the scored goal. Since the offer lasts just one minute, there is no need sending it if the user is not active at that moment. Doing this is now possible!

    Last, but not least, let’s talk about the implementation. As mentioned before, the integration process is damn easy now! You just go to Google APIs console and enable the Google Cloud Messaging service. You grab the API key and the Project key and you are ready to start sending messages. There is already a Java library available for server side implementation, downloaded alongside with the Android SDK. For the client side implementation, you should also use the given library. The process here is really easy too. You just have to declare some backwards compatible (C2DM) permissions and use the pre made classes to register to the service. In order to listen the messages that have been sent, you just have to extend a special BroadcastReceiver, included in the library and you are set! Let’s not stick to the implementation process, since there is a more detailed guide which can be found here.

    Stop waiting, go play with GCM and feel it’s power. If you want to see some stuff in action, check our platform, Warp.Ly and start monetizing your apps with awesome offers. It simply rocks!

    Antonis Kalipetis

    2 years ago  /  Source: warp.ly

  3. Menu Creation Error in Joomla

    As I was trying to create a new menu for a friends website, I always got the following error.

    Save failed with the following error: MenusTableMenu: :_getNode Failed -

    I’ve searched around and found out that this error is produced because one row in the menu table of SQL is missing and so Joomla cannot populate any additional menus. I have not found out why this happens, but I’ve found a solution at the Joomla forums.

    The only thing you have to do, is log in to phpMyAdmin and execute this script. You only have to change the database name with the one your site is using and the prefix of the menu table. They are both in capitals to drag your attention. Afterwords everything will be working fine again.

    Logging in to phpMyAdmin

    To log in in your phpMyAdmin, you need your hosting plan credentials. You have to log in to the administration panel of your hosting (NOT the myjoomlasite.com/administrator) and there you will find it, maybe under some databases tab.

    Executing the script

    Somewhere it should say “Execute SQL command” or maybe you’ll find an SQL tab. Copy and pass the code there and then hit Go.

    2 years ago  /  Source: forum.joomla.org

  4. PowerPoint Animation: Transparency animation, focus at only one image at a time

    Today I was trying to make a presentation and I stuck for about an hour in a slide. In this particular slide, I wanted to “tell a story” while keeping the related image in my slide at no transparency and the others at 50%, so that the audience can focus on the image I want, while being able to see the others too.

    After a long time searching, I could not find a solution to my problem. PowerPoint has a lot of pre-made animations, but it does not have an animation that changes the transparency of an image to 0%. It just has an animation called transparency, but this just increases the transparency of the image to 25%,50%,75% or 100%. That said, I could not use this one, as I wanted to lower the transparency of the image I wanted to focus on and the animation does not have a 0% option.

    After a while, I found a solution to my problem Not that productive though, but it works :)

    I applied “Transparency” animation to all my pictures, with duration “Until next click” and start “With previous”. With this one, my slide starts with all my images washed out to 50%, so I can tell an introduction.

    Then , for every image I wanted to focus, I selected all the other images and applied the same animation as the one I mentioned before, with only changing the start to “On Click”. Since the previous animation stops being active when I click, all images gain 0% transparency again, but because of this animation, all but the one I want to focus on get washed out again by 50%.

    I know that this stands for a lot of clicks, but I could not find any other solution. Comments and maybe a more productive solution are always welcome!

    2 years ago

  5. Τα παιδία της GHS δεν είχαν να κάνουν κατι με το site αυτό. ΕΛΕΥΘΕΡΩΣΤΕ ΤΟΥΣ!

    Κάνατε μεγάλο λάθος, αυτό έγινε απο τους Anonymous και οχι απο τα παιδία της GHS.
    Πολίτες της Ελλάδας,
    Είμαστε οι Anonymous.
    Παρακολουθούμε καθημερινά την κυβέρνηση σας να καταλύει το Σύνταγμα και τους θεσμούς της χώρας.
    Τους βλέπουμε να σας οδηγούν όλο και πιο κοντά στην εξαθλίωση.
    Τους βλέπουμε να ψηφίζουν νόμους που σας αφαιρούν κάθε δικαίωμα στην αξιοπρέπεια.
    Τους βλέπουμε καθώς παραδίδουν την χώρα στο ΔΝΤ και στους τραπεζίτες.”,
    Γνωρίζουμε για τα συσσίτια στα σχολεία,
    για τις στρατιές των αστέγων,
    για τους ανθρώπους που ψάχνουν στα σκουπίδια για φαγητό,
    για τους ανθρώπους που αφήσατε άνεργους και τώρα περιμένουν στις ουρές για ένα πιάτο φαγητό.
    Γνωρίζουμε ότι η χώρα σας ψήφισε το ACTA στην προσπάθεια σας να φιμώσετε και άλλο τους Ελλήνες.
    Γνωρίζουμε τα πάντα…
    Η Δημοκρατία στην Ελλάδα έχει πεθάνει.
    Πέθανε την ώρα που ανέλαβε μια κύβερνηση που δεν είχε εκλεγεί από τον λαό.
    Και για αυτό ακριβώς τον λόγο η ώρα για συζητήσεις ήρθε και πέρασε.
    Δεν διαπραγματευόμαστε τίποτα και με κανέναν από αυτούς που την δολοφόνησαν.
    Μπορείτε να μας κυνηγήσετε όσο θέλετε, μπορείτε ακόμα και να συλλάβετε κάποιους από εμάς,
    στην προσπάθεια σας να μας φιμώσετε…
    Αλλά για κάθε έναν που θα συλλαμβάνετε θα ξεπηδάνε άλλοι 3. Δεν είμαστε 5 ούτε 10 ούτε 100.
    Πλέον ο κάθε Έλληνας είναι Anonymous.
    Είμαστε εκατομμύρια απέναντι σε σας τους 300 και σε αυτό τον πόλεμο τα δακρυγόνα σας δεν θα σας βοηθήσουν.

    Κατοχική Κυβέρνηση της Ελλάδας,
    Αυτές τις μέρες πρόκειται να ψηφίσετε ένα νομοσχέδιο που θα είναι το τελευταίο καρφί στο φέρετρο του Έλληνα.
    Ένα νομοσχέδιο που παραδίδει την χώρα ολοκληρωτικά σε κατοχή.
    Που θα φέρει την χώρα και τον λαό της στην απόλυτη εξαθλίωση.
    Δεν θα επιτρέψουμε να εξαθλιώσετε άλλο τον Ελληνικό λαό.
    Απαιτούμε την άμεση παραίτησή σας, και την διενέργεια εκλογών.
    Απαιτούμε να μην πληρώθεί ούτε ένα ευρώ στους τοκογλύφους «φίλους» σας.
    Απαιτούμε την άμεση αποχώρηση του ΔΝΤ από την Ελλάδα.
    Το Υπουργείο Δικαιοσύνης ήταν μόνο ένα μικρό δείγμα για το τι είμαστε ικανοί να κάνουμε
    Aκόμα δεν έχετε δει την πλήρη οργή των Anonymous.
    Για κάθε ένα άρθρο του νομοσχεδίου της ντροπής που θα ψηφίζετε,
    εμείς θα κλείνουμε το σύστημα και μιας Εφορίας διαγράφοντας τα χρέη των Ελλήνων πολιτών
    Χρέη τα οποία φασιστικά τους επιβάλλατε να πληρώσουν.
    Μπορεί στις διαδηλώσεις των Ελλήνων να τους αντιμετωπίζετε με απίστευτη βία,
    χτυπώντας ανεξέλεκτα, αλλά το ιντερνετ είναι το δικό μας πεδίο. Και τον αγαπάμε αυτόν τον πόλεμο.
    Είμαστε πολλοί και θα είμαστε σύντομοι.

    Πολίτες της Ελλάδας, οι Anonymous τώρα πολεμάνε στο πλευρό σας…

    Κυβέρνηση της Ελλάδας, να μας περιμένετε…

    E X P E C T U S !

    J U S T I C E I S C O M I N G !

    Το κείμενο των Anonymous στο site του υπουργείου δικαιοσύνης.


    2 years ago

  6. Wildfire 2.2 Root, finally made possible!

    After some hours of searching and experimenting I managed to root my Wildfire running 2.2 Froyo. This was not possible until the Alpha Rev guys made S-off (security off) a reality. So I am so excited and I would like to share my experience and a small tutorial with you.

    Tutorial (about 10-15 mins)

    First, go to the Alpha Rev X Beta page and download the binary for your OS (both Linux and Windows are supported, tested on Linux).
    Wait with the form opened because you will need it in a while.

    Go to the downloaded file and extract it in the downloads folder.
    Run the extracted file (for Linux use ./<downloads-directory>/alpharevx).

    It asks you for a key.
    Now go back to the form you left open (if you didn’t just do again the first steps) and type in the serial number indicated in the installation (alternatively you can find it from the device settings).
    For the bootloader version start your device while holding the Volume-Up key and you will find it there.

    Copy the generated key and paste it to continue the installation.
    In about 1-2 minutes it will say that the process completed successfully. Security is off now, so we can root the device.

    Download the GingerBreak-v1.20.apk from here.
    Copy it to the phone’s SD card and install it using a common file explorer like File Expert.

    Now start GingerBreak, making sure SD card is mounted and USB Debugging is enabled.
    Wait a couple of minutes and yeah! The phone is rooted!
    If the phone is not restarted automatically and an error message is displayed, do not worry, restart it manually and you are ready to go!

    Credits go to:
    Alpha Rev for the S-off option finally for Wildfire 2.2
    Chainfire for the GingerBreak app.

    3 years ago

  7. Αρχή

    Κι έτσι άρχισαν όλα.
    Βασικά θα δείξει. Σ’ αυτό το blog σκέφτομαι να γράφω οτιδήποτε θέλω να μοιραστώ, από απόψεις, προγραμματιστικές τεχνικές μέχρι και συνταγές μαγειρικής ίσως (μη φοβάστε, πλάκα κάνω, δεν θέλω το κακό σας…).

    Αυτά λοιπόν για την ώρα. Ελπίζω κάποια στιγμή να αρχίσω να γράφω και να έχουν και κάποιο ενδιαφέρον οσα θα γραφτούν!

    3 years ago