JAMES

http://jamesapp.com/

# Kurzbeschreibung – Was ist “JAMES”?

“JAMES” ist eine Webapplikation, die hilft die tägliche Informationsflut in den Griff zu bekommen. Als persönlicher Butler bündelt er RSS-Feeds, Facebook, Twitter u.v.m. in ein individuelles Online-Nachrichtenmagazin, in einem ansprechenden Design aufbereitet, und nach den persönlichen Interessen sortiert. Die Sortierung erfolgt durch einen innovativen Algorithmus, der durch das Verhalten der NutzerInnen Vorlieben und Interessen identifiziert, und so die wichtigsten Artikel an den Anfang des Magazins stellt.

“JAMES” bietet eine Fülle von Funktionen, die das Lesen von Nachrichten leichter und schneller machen. Folgend ein kleiner Auszug der wichtigsten Funktionen:

- Bündeln verschiedener Nachrichtenquellen an einem Punkt

- Vielfältige Quellen (RSS, Facebook, Twitter…)

- Sortierung nach den eigenen Vorlieben

- Sortierung nach den aktuellsten Artikeln

- Wichtige Nachrichten auf einen Blick

- Optimiert für Desktop Computer, Smartphones und Tablets

- Leicht zu bedienende Oberfläche

- Werbefrei

- Multi-Sharing: Mit einem Klick Beiträge auf mehreren Plattformen teilen

- Leichtes Finden von neuen Informationsquellen

Durch die ständige Weiterentwicklung von “JAMES” wird die Plattform an aktuelle Gegebenheiten, externe Plattformen und Services angepasst.

 

Masterprojekt 2012/13 | JAMES

visuaLOD

http://visualod.bitbucket.org/

visuaLOD PosterKleines Projekt im Rahmen meiner Masterarbeit. Während der Umsetzung wurde ein Demo-Paper mit dem Titel ”Resource DescriptionGraph views for configuring Linked Data visualizations” (Steger, Kurz und Schaffert 2013) für die I-Semantics Konferenz in Graz eingereicht. Dieses Paper beschreibt kurz den Ansatz und Workflow des Visualisierungstools visuaLOD. Es wurde von den GutachterInnen akzeptiert und bei der dreitägigen Konferenz im September 2013 als Demo Poster präsentiert.

Sept 2013 | Code & Repo

Abstract

In der Linked Data Cloud werden immer mehr Datensätze von verschiedenen Institutionen veröffentlicht. Obwohl die Menge an (offenen) verlinkten Datenquellen rapide anwächst, ist die Visualisierung der Informationen im ’Web of data’ noch im Anfangsstadium. Derzeit erfordert das Arbeiten mit Linked Data ein hohes technologisches Wissen, da Graphstrukturen im Allgemeinen nur sehr schwer verständlich sind. Im Rahmen dieser Masterarbeit wird untersucht, wie Daten anhand einer Konfiguration visualisiert werden können. WebentwicklerInnen und -designerInnen ohne Erfahrung mit Linked Data wird es dadurch ermöglicht, sinnvolle Applikationen mithilfe semantischer Daten zu erstellen. Die Autorin stellt hierzu ein Visualisierungstool als JavaScript Library bereit. Dieses erlaubt neben der einfachen Aggregation der Daten auch das Design der Templates. Das Tool führt dies mithilfe neuer Technologien, wie JavaScript MVC Frameworks mit Data-Binding und JSON-LD, am Client durch. Mithilfe von Usability Tests mit potentiellen BenutzerInnen, wie WebentwicklerInnen und Semantic-Web-ExpertInnen, wurde eine Evaluierung des Tools durchgeführt.

 

Single-Page application with Rails 3 and AngularJS

What is AngularJS?

AngularJS is an open-source JavaScript framework. View on github: https://github.com/angular/angular.js
It extends HTML’s syntax to express your application’s components clearly and define AngularJS functions, for example:

AngularJS automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding. It also helps with server-side communication, taming async callbacks with promises and deferreds; and make client-side navigation and deeplinking with hashbang urls or HTML5 pushState a piece of cake.

 

Rails 3 and AngularJS – a small tutorial

First of all, create a new Rails app, and change your html-tag to <html ng-app> . To setup AngularJS link to the newest version (see http://angularjs.org/) and include your app/assets/javascripts/application.js after that in your layout file (eg: application.html.erb):

You have to intercept html requests to create a single-page application. If you have your root (eg: home#index) you can easily put a before_filter in your ApplicationController to render ‘home/index‘ or even another layout every time the request format is HTML.

I recommend to read the conceptual overview. Understand Angular’s vocabulary and how all the Angular components work together. Watch the AngularJS Tutorial (with node.js). It explains every major AngularJS feature and also gives a live demo.

Create a new JS File (or use your application.js) and try creating your first AngularJS controller.

JS:

The data is now hardcoded in the controller, later $scope.shows will be defined with data from an external API. (you can also use rails routes and respond_to :json if you use Rails Models)

HTML:

As you see, you can define one part of your site to use AngularJS – and you can make many separated controllers.

To load real data by ajax call, you need to add $http in your controller function:

 

Add a module

For example, you would like to add localstorage functionality to your angular app. First look for an angular module, before you write one by yourself ;)  –> https://github.com/grevory/angular-local-storage

Include the external JS file in your app/assets/javascripts folder – you can see this line on the top of the file:

Now it’s time to define your own app (‘appname‘) and add this module (‘LocalStorageModule‘). You can add as many modules as you like. In ‘LocalStorageModule‘ a service called ‘localStorageService‘ is defined. To use this service you have to include it in your controller initialization next to $scope and $http.

Last step: update the html-tag and define the app name. Now you can use ‘localStorageService‘ in your controller.

Code examples

Below are some code snippets with examples how to use it (in comments above every function).

Deployment

There can be a minification problem if you use Rails with AngularJS (the Rails Asset Pipeline minifies all asset files). I got an error when deploying on heroku:

Uncaught Error: Unknown provider: e

before I did this: (not wrong, but leads to an error!)

According to AngularJS tutorial (http://docs.angularjs.org/tutorial/step_05) you can change this line to the following to prevent minification issues:

 

I hope I’ve helped some of you to get started with AngularJS and Rails.

Happy coding!

 

Ember Handlebars templates (Rails-like partials)

I was looking for Handlebar partials (or templates that i could embed) that i can render like partials in Rails:

You can either register a partial for a small inline code snippet:

or the more convenient way: create a new template file (eg. time.handlebars) and include it with Ember.Handlebars helper “template”, like so:

That’s it, pay attention to the right path otherwise Ember will not find the template (just see the console for the error message)!

 

Rails Development with Facebook Canvas

I was trying to make an existing app run as a Facebook App!

The following instructions/solutions will help you to access your http://localhost:3000/ through Facebook. In addition I would like to get the Facebook user with the fb_graph gem and save it in my database.

First of all you have to go to https://developers.facebook.com/apps/ to create a new Facebook test app.

The only important setting for now is this one:

I have also enabled the sandbox mode in the advanced settings, so that only I can access the Facebook app.

 

My app is really small so I’ve decided to only make an before_filter if the user uses Facebook to access my app:

My Facebook Model only has two attributes: identifier and access_token.

If there is no params[:signed_request] nothing will happen because it is not a Facebook Canvas. Otherwise an unauthorized user (every user has to give explicit permission to use the app) have to get redirect to authorize the app:

The authorize.html.erb looks like this:

API Error Code: 191

API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration.

I got this error when redirecting to the authorize url. The problem was my canvas url! I’ve used this:

This does not work with the App ID, you have to specify an App Namespace in the basic settings – then the error will disappear, like so (App Namespace is “app_localhost”):

 

Upgrade to Rails 3.1 and deployment

Firstly i would recommend to read the RailsCast about Upgrading to Rails 3.1.

When you’ve done that, you can also update some other gems in your Gemfile. There came up to some issues that the railscast does not cover, so have a look at these simple solutions:

Embed images via Javascript

in my application.js I’ve added one image hardcoded with html:

This won’t work as our application’s images (as described in the railscast) – so I’ve simply created a css class where I embed that image. The helper method for the right image path in CSS is image-url:

application.js:

screen.sass:

Deployment with Capistrano

I’ve updated capistrano to the newest version (2.11.2). Capistrano (v2.8.0 and above) includes a recipe to handle this in deployment. The only thing you need to add in your Capfile is the following line:

Further reading: http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets

Could not find a JavaScript runtime

During the deploying the following error occured: “Could not find a Javascript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)”

So I added the therubyracer gem to my Gemfile – and it worked!

Individual CSS files

I am working with a responsive webdesign grid (1140px grid). Therefore I want to have 3 different compiled CSS files: screen.css, mobile.css and one CSS for IE specific adjustments. If you have other manifests or individual stylesheets and JavaScript files to include, you can add them to the precompile array in your production.rb:

Right Permissions on Server

I’ve successfully deployed my upgraded app, but I was getting a Permission denied error on all assets files. That’s because my Apache2 user on my server doesn’t have the permissions to read these files, only my deploy user has had these permissions.

To see which user runs my Apache2 process I’ve done the following:

so i’ve add this user to the group that have the right permissions:

Allow Symlink on Server

A symlink from current/public/assets to shared/assets is automatically created. So you have to allow that in your VHost file:

 

 

If you successfully upgraded to Rails 3.1 you definitely have no problem to upgrade to Rails 3.2!

Appartementservice Bruno Steger

http://www.appts.at

Ein WordPress-Projekt über das Appartementservice Bruno Steger im Salzburger Land.

Das Appartementservice besitzt Appartements in

•  Saalbach/Hinterglemm
•  Kaprun
•  Hintermoos bei Maria Alm
•  St. Martin bei Lofer
•  Hochkrimml

Eine Herausforderung war die Mehrsprachigkeit, denn die Seite verfügt über 3 Sprachen: Deutsch, Englisch und Ungarisch. Auch ein responsive Webdesign ist eingebaut um die Seite bei einer mobile Ansicht am Smartphone nicht zu verunstalten!

Jan 2012 | Appartementservice Bruno Steger

 

 

Showmaniac

http://showmaniac.org

Showmaniac ist ein Projekt, das mir persönlich am Herzen liegt! Mit dieser App kann man ganz einfach seine liebsten US-Serien verfolgen. Ohne Registierung oder Anmeldung ist es möglich seine Lieblingsserien auszuwählen und kann somit sofort sehen, wann die TV Show ausgestrahlt wird. Ein ‘watch online’ und Download Link wird noch dazu bereitgestellt.

Realisiert wurde das ganze mithilfe eines neuen HTML5 Features: LocalStorage. Die ausgewählten Serien werden gespeichert und bleiben bestehen nachdem der Browser geschlossen wird.

Dec 2011 | Showmaniac

 

Seit Mai 2012 gibt es nun auch eine Facebook App, zu erreichen unter:
https://apps.facebook.com/showmaniac_org/