Monday, January 28, 2013

Version 1.1 is now available

The second release of LuckNews was made available at the Apple App store today.  There were many changes made to LuckNews for this release, and since submitting the app on the 21st, development has been continuing and I expect to have a third release out toward the end of February.

The user interface of LuckNews has been given a pretty large facelift for this release.  There are three main views in the application: the subscription list; the article list and the article view.  Each of these views has been improved in many ways.

In addition to the changes in appearance, there is a really nice change in how you can now navigate the articles you are reading.  The article view now supports the swipe gesture to allow you to navigate to the next and previous articles in the article list very easily.  This means you can use just your finger tips to scroll through an article to read it, and then swipe the article away to advance to the next one.

LuckNews now supports your being able to organize subscriptions into folders which allows you to group related subscriptions together.  More than one level of folders are possible - you can put a folder inside of another folder.  Moving subscriptions around is easily done in the standard Mac way, using drag and drop.  Folders also have two settings that give you control over how newly arrived articles for the subscriptions a folder contains interact with both the Notification Center and the number of unread articles count which appears on the application badge.  You can selectively disable both of these traits for a folder, although by default they work as normal.  Use the new 'Folder Information...' menu item in the File menu to control them.  In addition, the existing functionality that was in place for the OPML subscription interchange format has been improved to also support folders.

Also new is the ability to flag an article.  It is easy to view only the flagged articles for any subscription or set of subscriptions.  In this way, if you read an article you want to come back to later, you can simply flag it and when you want, have LuckNews show it to you again.

Normally, articles expire and are deleted when they are no longer present in a subscriptions feed.  This can be changed using the settings in both the Application preferences dialog as well as for individual subscriptions via the 'Subscription Information...' menu item.  The article expiry logic has changed slightly to never delete an article which you have flagged.  This means that you can let articles expire normally and flag the ones you like - all the flagged articles will remain forever and the others will go away when the expiry criteria are met.

There is now also some online help for LuckNews available on this web site.

I hope you enjoy this new release.  Feel free to forward comments and suggestions to:

Tuesday, January 8, 2013

First release!

Welcome to LuckNews!

The little story behind LuckNews is that...  I upgraded my MacBook Pro to Mountain Lion (10.8) a few months ago and found that the blogs that I had been reading through the Mail program were no longer working.  Apple had dropped support for RSS feeds from Mail and Safari in Mountain Lion.  I went to the App Store to look for an app to read the blogs and bought one and tried it out.  I didn't like it, so bought a second.  I didn't like that one, so I bought a third.  I didn't like that one either.  I didn't try them all and there may be an amazing RSS/Atom/News reader on the App Store that would have done exactly what I wanted...but hey, I'm a software developer with time on my hands so I decided to write my own.

I'm a retired software developer.  I worked professionally at Alias (which became Alias|Wavefront, then Alias Systems, then Autodesk) for 20 years.  Those were 20 good years but by the end I wanted a change and I had discovered sailing.  I had bought a sailboat a few years earlier and decided to go cruising - sailing around, here and there, exploring.  That story is described in my other blog.  As I'm currently back in Seattle after having been out cruising for a year, waiting for the summer to arrive so I can take off south again on my next journey I have some time to work on fun projects.

I hadn't programmed since I retired from Alias/Autodesk before leaving on my first cruise.  I had forgotten how much fun programming can be, and I've had a lot of fun creating LuckNews.

Version 1.0 is ready for consumption.  I have a list of things I plan to add over the next little while, but this version provides all the functionality needed in a simple RSS/Atom/News reader I think.  The things I hope to add will be bonus features, not strictly necessary.  I welcome suggestions and comments on the app of course.

The app only works on Mac's and only on those mac's running version 10.8 (Mountain Lion) or higher.  (There is nothing higher as I write this, but at some point there will be...)  Its cheap!  Its simple.

As an added bonus, if you recently upgraded to Mountain Lion and had been reading RSS news feeds in Mail and are annoyed that you can no longer do that, you may be wondering what happened to all those news subscriptions?  As long as you didn't do a clean install of the OS, they are still around and LuckNews can get them back for you.  Use the 'Import Subscriptions..." menu entry and follow what I hope is an easy set of steps to get them back.

If you haven't upgraded to Mountain Lion yet, and have been reading RSS news feeds in Mail, and plan to upgrade to Mountain Lion - then in order for LuckNews to retrieve your old RSS subscriptions you need to do an upgrade, not a clean install in order to easily get them back again.

I hope you enjoy!


Recovering RSS Subscriptions from Apple Mail prior to Mountain Lion (10.8)

I'm posting this article hoping that Google may find it and show it to people who are searching for a way to solve this problem.

If you had been reading RSS subscriptions in the Apple Mail app prior to upgrading to 10.8, Mountain Lion, then you may have discovered that this is no longer supported.  If you knew about losing this capability and have been holding back on upgrading so as not to lose this capability, I believe this app may be for you.  If you have already upgraded to Mountain Lion and want to retrieve your old subscriptions, this app may be for you.  If you're already running Mountain Lion and read RSS and Atom news Subscriptions, this app is also for you - its a good little news reader.

If you have not yet upgraded to Mountain Lion and want to be able to retrieve your RSS Subscriptions, be sure that you perform an upgrade, not a fresh install.

If you fall into the group of people who want to retrieve your old Mail RSS News Subscriptions, the directions to retrieve them in LuckNews is this:

  • launch LuckNews
  • in the File menu, choose the 'Import Subscriptions..." menu entry
  • you are presented with a dialog asking what you want to import.  Choose the second item, importing previously subscribed RSS subscriptions from Mail and press the 'Continue' button
  • you are now presented with some directions.  Read them and continue.  Briefly, you will be presented with an Open dialog and you need to navigate to where the old Mail Subscriptions are located.  The location is given in the title bar of the Open Dialog, so just read the title bar and navigate to the folder it describes.  When the proper folder is selected, press the 'Open' button
  • at this point LuckNews will search for your old Subscriptions and present you with the list it found.  Look through the list and accept them by pressing the 'Save' button

That's it!  The old RSS Subscriptions should be in the LuckNews Subscription list and the current articles retrieved.

* Note that LuckNews does not support retrieving RSS subscriptions from Safari prior to 10.8 - I never used that capability and so didn't build it into LuckNews - sorry if you fall into that camp.

LuckNews is a Signed and Sandboxed application. What does that mean?

This article is a little technical and provides some insight into the technology Apple is providing in order to make their platform more secure.  I'm publishing this article in order to make my customers more comfortable in running applications they download from the Apple App Store, including LuckNews.

In order to publish application on the Apple App store, Apple requires that the applications be signed and that they "run in a sandbox."  What does that mean and why are they enforcing these requirements?

If you have been using computers for a while you will be aware of the problem with computer viruses and malware.  I won't go into any detail about these pieces of software aside to mention that they are bad and you want to avoid downloading them.  The Apple platform has generally avoided most of the virus and malware problem - this has largely been a Windows issue.  However, time moves on and the developers of these corrupt pieces of software continue to advance.  Apple clearly wants to stay ahead of the game by trying to make their platform more secure, hoping to avoid the problem in the future as well as they have done in the past.

The two pieces, signing and sandboxes, are related in that they provide for a more secure environment, although the problems they address are separate.  I'll take each one in turn.

Application Signing.  Apple requires that all applications submitted to the App Store be code signed by their developers.  Signing is a process that results in your knowing that the application you are running is exactly the same application the developer submitted to the store.  Signing an application is a process where a strong cryptographic signature is calculated for all of the different pieces of the application and recorded in the application bundle.  For example, there are more than 20 files that make up the LuckNews application and each of them has a cryptographic signature stored in the application bundle.  What this mean is that once an application is signed the operating system is able to compare the application as it exists on your system with the signatures and if any single byte has been modified it will know and refuse to run the application.  This means that nobody is able to modify the application in-between the developer publishing it and your running it.  If a file is modified the application and signatures won't match and the application will refuse to run.  If someone tried to remove all the signatures the application will refuse to run.  Essentially - if the application is modified at all, the operating system won't run it.  If the application is properly signed (and all App Store apps are), and it runs, then you (and I) know it has not been modified.  The signature also identifies the developer.  Once an application is signed Apple would be able to trace the application back to the developer who signed it which means anonymous developers can't get software onto your system (unless you explicitly allow unsigned applications to run, which is not the default setting.)

This is cool.  If you only run properly signed applications then you know no third party has been able to get into the middle of the process and modify a program in some manner the developer did not intend.  I want to write the most stable and safe programs I am able, and code signing makes me feel good in that if an application has my signature on it, I know it hasn't been modified by anybody else.

Running in a Sandbox.  The second piece of the puzzle answers the question: Ok, I know you wrote the program and it hasn't been modified, but how do I know it won't wipe out my system anyway?  Applications that run in a sandbox run in a constrained environment where they have limited access to the system.  A sandbox is a special directory that has a name related to the application.  (Look in your home directory for the Library/Containers directory, this is where the sandboxes reside.)  The sandbox directory contains all the files the application is able to directly access without your explicit permission.  The sandbox is where LuckNews stores its RSS Subscription list and the Article contents.  Anything outside of the Sandbox, which includes the whole rest of the system, is not accessible by LuckNews unless you give it permission via the Open or Save File dialogs.  This means that if some malicious developer signed an application and you ran it thinking it was safe, as long as it ran in a sandbox (i.e. was downloaded from the App Store) it would not be able to alter your files or read them and send them across the network - it just doesn't work and this is enforced at the Mac OS kernel level.

The sandbox is designed to limit the damage an application is able to do, either accidentally or by intent.  LuckNews runs with two sandbox exclusions, called entitlements: it can access the network and it does so in order to update its RSS/Atom subscriptions, and secondly it is able to access files outside of the sandbox as long as you have allowed this via the Open or Save File dialogs.  For example, LuckNews is not able to access the camera, your photos, music, movies, address book, calendars, bluetooth, firewire, microphone, USB or your location (the actual list is longer, LuckNews is very constrained.)  Some applications can do those things as that makes sense for some applications, but in order to get outside the sandbox the developer needs to explicitly request the capability required and this request is reviewed by Apple to ensure that it makes sense.  The capability is encoded into the application and is therefore covered by the application signature which enforces that the capabilities not change.

LuckNews performs a very limited set of file and network operations, and I have been careful in its development.  However it essentially contains an entire web browser - when viewing news articles I am  using a large piece of software that I didn't write, which is included and supported by Apple, that you use when running Safari, but which must be multiple millions of lines long.  If something in that software decided to go berserk and try to attack your system (this is extremely unlikely, I only raise it as an example,) it wouldn't be able succeed in an attack as the sandbox limits the files it is able to access to only the files you allow via the Open and Save file dialog.  That is pretty cool.

I generally like the sandbox constraint, although it does make developing some applications difficult.  This can be seen for example in how LuckNews accesses old RSS Subscriptions that may may be present in the Mail application before an upgrade to Mountain Lion (10.8.)   In the old days, when I wrote that feature it would be an easy matter to simply test for the presence of the old RSS subscription files and if they were present offer to import them into LuckNews.  However, since these files reside outside of the LuckNews sandbox, I am not able to perform that test.  This meant that I had to find another way to solve the problem which is the rather awkward approach where you are presented with an Open File dialog and you need to navigate to the proper directory - this is how LuckNews obtains permission to read those files.  Please try to see the positive in that awkwardness (the sandbox working to ensure your safety) rather than its lameness.

In summary:
  • signing ensures that the application you run is the application I worked on and published
  • the fact that an applications run in a sandbox should give you comfort in that the application is not able to exceed the restricted set of permissions set up by the operating system, unless explicitly requested by the developer and approved by Apple.  
The first is straightforward 100% awesome, the second can be awkward but is generally good, in my opinion.

Hopefully these technologies will keep the Mac free of viruses and malware for many years to come.

Wednesday, January 2, 2013

Welcome to LuckNews!

LuckNews is a simple, elegant, fast RSS News reader, available for the Mac.

To get started with LuckNews you simply need to start creating Subscriptions.  You can add a new Subscription in a number of ways:
  1. From the 'File' menu, select the 'New Subscription...' menu item
  2. Use the keyboard shortcut for the above menu item, command-N
  3. Click on the little '+' icon at the bottom of the Subscription list, the left hand window pane
  4. From Safari, click on an RSS feed icon on a web page.  If you have allowed LuckNews to become the default RSS News reader on your Mac, LuckNews will then launch and offer to add the Subscription you have clicked on
For example, you can subscribe to Apple News as simply as following these steps:
  1. Select the 'New Subscriptions...' menu item from the 'File' menu
  2. When the window asking for a URL appears, type in:
  3. LuckNews will then detect where the actual RSS News feed is located, load its contents, and then present you with a window that allows you to rename the Subscription if you should wish to do so
I hope you enjoy using LuckNews.  Feedback is welcome.