• Watson: Any luck?
  • Holmes: Luck is an offensive, abhorrent concept. The idea that there is a force in the universe tilting events in your favour or against it is ridiculous. Idiots rely on luck.
  • Watson: So that'd be a no.

Ahhh this Blogging Thursday thing was meant to be weekly, I promise I’ll try to force my lazy self to write more often ;).

This is PART 2 of my series When u really make a Web App. Today I’ll define, what actually is a Web App - at least in my understanding - and further point to some other resources about the topic.

When I started working for my last employer - I started working on two projects each with Java full stack and a web front end - I used to tell people, when they asked me,

What are you actually doing on your job?

- I’m developing web applications.

Ah okay, web sites, interesting. Good I met you, I need a home page.

- Eh no, I’m no web designer. I program applications. Stuff I’m developing is similar to Facebook or Gmail. You know, I mean applications you access through the web with your browser.

Now people tend to nod in agreement and smile. And I know, that they don’t have a clue what I am actually doing. I can literally read it from their face.

After a few of this situations appeared I decided to change my answer to,

- I’m developing Enterprise Applications.

After that new answer people still don’t have a clue at all, what I’m actually doing in particular, but at least they don’t mix it up with web design any more.

But the essence from this story is, that long before I thought about this blog entry I tried to kinda tell non-technical persons what the term Web Application means to me.

For me back then from a technical perspective a Web Application was an application which UI front-end is rendered in a web browser. For non-technical people, this is a web site which you interact with, or a program you access through the web browser. One of the simplest things possible would be the good old guest book.

Last year I gave a talk at JSUG about Modern Web App Architecture. To summarize the modern approach in contrast to the already known, what changed? First thing you’ll notice, their name got a face lift. They aren’t called applications any more, now we talk about Apps :). 
But seriously, I was sick of making Java Server Faces stuff, when everywhere you look on the Internet you see single page sites like Facebook, Gmail & Co.
Why are single page sites cooler than the previously used approach, where thousands of separate sites are connected with links?
It feels a lot snappier, when content gets dynamically loaded in your site and no whole new web view must be requested and rendered before you get your information.

It feels breezy, it feels more like a native application than a web site.

For that reason basically my talk came down to the fact, that you try to emulate as many characteristics of native operating system applications within your web browser which leads to a better user experience.

The rebirth of the fat client within your browser so to say,
but this time not this RIA (Rich Internet Application) shit advertised by Adobe which is powered by Flash.
This time without proprietary plug-ins.
This time just with plain vanilla HTML and JavaScript.

Okay, what are the most basic and important aspects you would expect from a native application in consideration of user experience (but not limited to UX)? While keeping Web Apps in the back of our minds.

  • interaction is very fast
  • I get feedback all the time, even when I’m waiting
  • it has a (persisted) memory
  • it starts and works without an Internet connection (maybe limited functionality)
  • the operating system shows me when it’s running
  • the operating system provides an entry point

next points depend more on the application’s features

  • it can access peripheral devices
  • it can access my local stored data or media
  • out of focus it still can notify me
  • it can render 3d content & present all forms of media
  • it can connect to servers & other peers

Let’s add some recent mobile smart phone-ish influences and look through a mobile app lens.

  •  the entry point is even more important on mobile
  • it has it’s own view (without a browser bar)
  • it can notify other apps, and other apps can notify it for activities or tasks
  • there exists a register where I can find, download & install it (app store)
  • I can make purchases within the app (powered by the operating system)

Now after having bullet points for important characteristics of desktop and mobile apps we should add the special web sauce. Yes, there is something the web can do better or let’s say, achieve easier.

  • you don’t have to install updates.
  • content can be available in many forms, it can be parsable & mashable, it can be independent of the rest.
  • you can point to a specific application state, transfer or safe it. (Send your friend a link to a Youtube video at a specific time position)

But in the end, what really saves the day is, that

  • it can be responsive & platform agnostic.

My conclusion is as follows. First there is no fucking difference between a Web Application and a Web App. Further when you access an application through your browser or any kind of web container without the need of plug-ins, than it’s an Web App. If you really wanna be proud of yourself making a Real Web App you should implement as many of the mentioned bullet points as possible and of course reasonable.

But don’t just take my word for it, see what other resources say about the definition about Web Apps:

They are applications that are made using the core technologies of the web: HTML, CSS and JavaScript.

htmlgoodies.com/

The idea of Open Web Apps is to allow developers to create rich experiences that run across multiple devices and form factors (desktop, mobile, tablet, etc.) using the same Web standards and open technologies that many of them will be accustomed to already, such as HTML5, CSS, and JavaScript. Essentially, Open Web Apps are no different than normal Web pages or sites — in fact, they can be hosted as standard websites and accessed in the normal way — but the app model offers some significant advantages. As well as standard Web technologies, Open Web Apps can be given additional metadata that allows supporting User Agents to discover, install, launch, and grant them additional privileges.

developer.mozilla.org/en-US/docs/Web/Apps

The difference between an app and a website is that you can install an app and more thoroughly integrate it into your device. It’s not a bookmark — it’s part of a system. Open Web Apps hold that great promise.

developer.mozilla.org/en-US/docs/Open_Web_apps_and_Web_standards

Ubuntu Web Apps enable developers to create web applications that run in web browsers, but act as if they are native applications. They provide close integration to the Unity shell for functions such as launch, notifications and controls.

developer.ubuntu.com/webapps/

A web-based application is any application that uses a web browser as a client. The term may also mean a computer software application that is coded in a browser-supported programming language (such as JavaScript, combined with a browser-rendered markup language like HTML) and reliant on a common web browser to render the application executable.

wikipedia.org/wiki/Web_application

thomasdori:

Pair Blogging at Frischzell and Cafe Prückl

Today we grabbed some good and healthy food a Frischezelle, which is in a patiol in the third…

View Post

yay pair blogging with thomas!!!

Hey it’s Blogging Thursday again! Yay!!!
Today almost no pair blogging with Thomas - he was at the Uberall App Congress, check out his coverage. And now it’s time for When u really make a Web App PART 1!

Last month I gave a talk about Firefox OS and making apps for it at a local meet-up group - called Vienna JS. If you are interested in the topic and wanna get a jump start, feel free to check out my slides. One feedback I got was,

I’d like to see a more comprehensive presentation of html5 for this device.

Huh, it nails it down - at least my interpretation about it is as follows - everybody talks about HTML5, its features (mostly one at a time and without any functional real world context) and Web Apps in particular, but there is not a single sample, showcase, archetype or - sadly - real world example covering or including all things possible or at least reasonable that satisfies me.

Not to hold something back, I want to mention Todo MVC, which I like a lot. Its focus is a bit different, it’s not on building an Open Web App per se, but comparing JavaScript frameworks with creating the same single page app/site again and again with a different tech stack.

Besides Todo MVC there are of course other very valuable resources (I’m not saying that there is nothing good teaching you this stuff, it’s just my opinion that there is no sound “go full stack thing” right now out there). Just check out the following links. You probably already know all of them, when you are working with the Open Web stack right now.

Okay mission real Web App set, but I know from experience (I failed trying) that integrating all the latest cutting edge web APIs is a huge effort. Last year I gave a talk about modern web app architectures at the JSUG Vienna - another meet-up group. Back then, my aim was after the presentation to life code a rich internet app with many of HTML5’s latest features.
What I really did was a short single page app (using the History API) served directly by a CouchDB - a simple couch app so to say :).

Let’s get back to the topic, to carry out a real Open Web App! It shall be sliced into one main feature or Open Web API per post. But to get started and choose what’s necessary and important, we have to do a sometimes kind of boring exercise, define what defines a so called Web App…

But that’s next week’s story, stay tuned!!!

thomasdori:

What’s Up?

Todays blog post will deal with HTML5 as a buzzword and what people think of, when they talk about it. So it will be the first post with some useful content but still won’t focus that much on mobile. If you are a HTML5 pro already and your are just interested in mobile aspects, go…

Let’s start with a few words about me :)
My name is Raphael Stary and I’m a software engineer, entrepreneur and lastly open web game developer from beautiful Vienna, in the heart of Europe.

Of course I do a lot more, but with this blog I wanna focus on my current profession, which -at the moment- defines me the most.
So I had the idea about writing my own blog now for many times
(really funny is that this is actually a repost from my last attempt of starting to blog this January from blogger.com),
but I never managed to write more than an entry post
(THIS TIME IT WILL BE DIFFERENT MARK MY WORDS!!!1one)

… maybe it wasn’t the right time for me back then.
Things change and while getting more experienced at what I do for living,
now or then I come across really interesting and tricky challenges - worth sharing ;)
Beside the technology things I wanna blog about, I wanna share my findings and struggling while bootstrapping a start-up - I’ve heard often that it’s very therapeutic to write about it.

I also tweet about tech stuff (I’m very interested in, but not limited to: html5, javascript, html5/open web games, game dev, tdd, bdd, agile, polyglot persistence, java, java ee, new software architectures, scalability, soa, ux … a buzz word parade^^ )

if you’re interested follow me on twitter.com/RaphaelStary

or get in touch with me via your favourite social service:

This time I’ll write a meta blog post. Yes you heard right, a blog post about blogging itself - crazy shit man :D.

It all started in my mind … reading a lot of blog posts about building & running a start-up. And while reading a great post by Joel Gascoigne, he’s one of the founders of bufferapp.com, I came across the following quote

“Work harder on yourself than you do on your job.” - Jim Rohn

It says it all for me.

I’m trying hard, inspired by the buffer founders, the fab founders and many other successful entrepreneurs, to work on myself, form habits like for example practising a few times a week and so on. And I think one important point within this context is blogging!
It’s expressing yourself to the rest of the world, sharing insights and knowledge about stuff that might be interesting as well for some other folks or simply practising to write.

Then I read about the term pair blogging, actually Andreas Klinger (Austrian entrepreneur) was looking for a peer via twitter. And he described it as writing a blog post while your counterpart is writing one as well. Besides getting shit done you can discuss thoughts with a like minded person, ask for feedback and in the end you can proofread each others texts. Sounds nice :). I read again about it in some social status updates from Thomas Schranz (founder of blossom.io), where he mentions doing pair blogging with different people.
(So I’m not referring to the definition where you share a single blog with another host, co-host or co-author a blog so to say)

Back to the future, last week I met with Thomas Dori in a cool coffee shop in Vienna for some kind of pair working, I was coding on a current game prototype and he wrote a blog post. Besides the fact that Thomas is one of my best friends and I like his company, he’s a kick-ass js programmer and I hate to work just on my own. In addition it’s a positive change of scene to work a day in a different location. So a win-win-win-win for me.

We both enjoyed the relaxed day in the hip cafe, so we decided to do it again and started the Blogging Thursday! We’ll try to meet each Thursday, every Thursday in a different coffee shop in Vienna, and just write blog posts. If you haven’t noticed it until now, this is my first contribution to our Blogging Thursday ;)

Till next #BloggingThursday
cheers Raphael

thomasdori:

Why I do this

At the yesterdays after-work-beer I again started a discussion about the challenges and opportunities of HTML5 (and the open web in general) with a colleague and friend of mine and again I discovered that it’s not always clear to everybody that many people are talking about more…

I’m looking forward to an interesting series!!