Showing posts with label web. Show all posts
Showing posts with label web. Show all posts

Monday, March 19, 2012

The Power of Open Source

Recently I noticed that more and more developers and companies are getting involved in Open Source and Open Source Projects. There are Web-Frameworks, Web-apps, even New Operating Systems being written Openly. This is not only good for the companies, people directly related with the projects but also common people and students who want to learn and see how real projects are developed.
I see two very significant projects today which have the potential to change our way of interaction with web:

1. OpenStack: (From Wikipedia)OpenStack is an IaaS cloud computing project by Rackspace Cloud and NASA. Currently more than 150 companies have joined the project among which are Citrix Systems, Dell, AMD, Intel, Canonical, SUSE Linux, HP, and Cisco. It is free open source software released under the terms of the Apache License.
Why it is important?
Because it can give us a platform that we can trust and own. We will not be locked in with a vendor and can port our data anywhere. These reasons may look small but these are features we need to have control on our data. This is something that happened to Email in late 90s when we were not forced to any vendor.

2. Mozilla's B2G(Boot to Gecko): B2G is aimed at promoting the open Web on mobile (and everywhere else). By using Web technologies on software that never ran on them before (e.g. the phone dial-er), technologies like HTML, JavaScript, and CSS are slated to move forward.
Why it can affect?
The reason is simple: It is web-based and developers will not need to develop their Apps for one-more  Stack. They have already announced that any web-app can take advantage of Mobile's features like messaging, Bluetooth and call. It is very impressive.

These are the projects that I think are biggest, most innovative and that can really bring change to the Open-Web. But there are other projects also that are supporting open source and would be beneficial for all of us. Lets wait and see :)

Wednesday, December 21, 2011

Mobile Web Apps Versus Native Apps - Which Is Better?

There’s a big debate out there on this topic but there’s no silver bullet. Mobile web and native apps offer different benefits and serve different audiences. You need to look at what experience your app needs to deliver? What you are trying to achieve? What is your business model? What is your budget? Who is your target? etc; weigh the pros and cons of both the mediums and decide what works best for you.

Mobile Web 

Reach larger audience
Majority of users don’t own a smartphone and don’t access app stores; they are more likely to use a mobile browser and access the Internet from their mobile phone. The barriers to accessing a site via a browser are lower than those to downloading an app — even for smartphone owners.
Lower cost and time to market
The biggest benefit mobile web offers is that you design once and it’ll run on all platforms with minimal tweaking. The fragmented nature of the mobile industry means that porting apps to different platform environments costs money — particularly when including maintenance and promotion costs.
Instant Updates
Whatever changes you make become available instantly to the users
No censor
Some apps will be rejected from App stores (based on their terms) – so how much should you bank your businesses future on a platform you can’t control. The mobile Web does not censor content and allows you to publish when you want and what you want.
Low barrier to entry and no revenue share
Mobile Web has no entry costs, and you get to keep 100% of the revenue

Native Apps

Connectivity
Productivity in a browser depends on constant connectivity, and in the real world data connections can be fleeting. Native apps can be built to interact with users even if offline
Device-based caching
Native apps can cache data persistently, hence, reducing data usage and providing a faster access to the data
Richer experience
Native apps can tap into the device’s functions and features providing richer experience and seamless integration with native features such as camera, address book etc. Users prefer an app that feels like it belongs on the phone rather than use a Web app that seems shoehorned onto the device using HTML.
Immersive experiences
Immersive apps like games need a lot more horsepower to deliver rich, polished experiences which the native apps can achieve easily
Stronger engagement
Native apps currently present better opportunities for stronger engagement — not only because they offer richer services and experiences, but also because they place the brand icon on the user’s home screen
Performance
The overhead of HTML/JavaScript rendering and loading can make mobile web apps run slower than similar native apps.
Discoverability
Native app still offers the big advantage of being found easily in an app store. It is easier to build great marketing around apps than around mobile web links.

Conclusion

Before taking a decision on app or web, the value for the user must be made clear. That said, in most cases, if an organization is big enough or relevant enough to provide a native app, they also need to cater for the mobile web. So basically, native apps and mobile web are not mutually exclusive. Jeff Hayden shares his experience
It is obvious that from a cost / time to market / UX perspective the options order or path that businesses usually chose is:1) mobile website transcoder/optimizer (with custom design option to enhance the UX)2) own mobile website for the unique or relatively complex cases3) native wrapper around mobile website from (1) or (2) built with PhoneGap or similargreat design 4) 100% native app with great design

Many businesses skip some options, some of them make a mistakes by spending too much time on (3) before they reach (4) – but based on our experience most end up with combination of (1) and (4) or (2) and (4).If you take a look at the publishers as a market/segment leaders (Bloomberg, BNET, TIME etc) who benefit from a mobile user base utmost – they all have mobile web sites along with native app. How did they all start? Mobile Web. And they will continue to maintain both.

 If you want to dig in even more deeper Max Klatz has created an interesting table that gives a blow by blow comparison of native apps Vs mobile web

Tuesday, December 20, 2011

Tools you can use while reading on Web

Since last I am doing very heavy reading on articles on various topics like social media, new web apps, mobile ecosystem, startups and many more. I found most of them from Hacker News, Reddit, Twitter and Google+. I also my favourite blog by Google Reader and read almost 50 articles. But very often I come to a blog to read a new article and my eyes strains from the color schemes used by many blogs. They look good but for reading purposes most of them sucks. My eye glasses number also increased during this. While I found Google Reader and RSS to be a gift for those like me, but still there was a problem with how would I read an article on a site which I just come across.
Then I found out there is a Chrome extension called iReader( here is add-on for mozilla) which lets you read any article in a simple manner. Open any article and click on the extension. You also have built in sharing features. What else I want.
Now I can read any article without having to strain my eyes. I must thanks the developer who built that just like I thanks creators of RSS.

Thursday, December 15, 2011

Technologies you should know for Web-development

Today there are great opportunity in Web-development and Web-designing. Many wants to learn we-programming for earning, or as hobby. Below I’m describing the basic steps for novices helping them learn how to develop and design websites. This list may even help developers to get see through whats hot around web.
There are two parts in web programming:
  • the front-end (what results the browser is showing to the user)
  • the back-end (what happens before the browser is showing the results to the user)
Each of these sections are big enough for a programmer to not know both very well (I am not talking about geniuses here).
To build a website, a modern website, you need to have both sections.
THE FRONT-END
To know how to program the front-end you need to know:
  •  HTML or HTML5 (HTML5 is the latest standard)
  • CSS(Cascading Style Sheets) – version 2 or better 3
  • Javascript
HTML is the backbone of any website and it’s not a programming language per se but a markup language which uses tags <> to enclose its commands.
You can see HTML codes if you go to a webpage with your browser, then right-click, then View Page Source, or View Source. That’s how I learned HTML…by reverse engineer webpages looking into their source code.
HTML is not hard to learn. You can use a visual webpage editor like Microsoft Frontpage, Coffeecup, NetObjects Fusion or iWeb (for Mac) and create a webpage, then look into the source code to see what you have done. Play with that.
Later on, you will be able to write HTML by hand in an advanced text editor like Editplus, Notepad++ or TextPad (don’t skip learning how to code by hand, don’t rely on the visual editor too long).
After learning HTML it’s easy to pick up advanced HTML, which is HTML5.
CSS
If HTML is the backbone of a website then CSS is what give a website its look and formatting (presentation semantics, as they call it). You can compare HTML with Notepad and CSS with MS Word processor. One makes text, but the other ones makes it much prettier. That’s what CSS does, basically.
Sometimes you can find CSS code by looking into the webpages source code (like this:<style type=”text/css”>…your CSS code…</style>) but usually the CSS code is kept in a separate file (ending in .css) and invoked/included in the HTML page using a specific command (like this: <link rel=”stylesheet” type=”text/css” href=”whatever_name.css” /> ).
If you encounter a website which has this inclusion command then you can see the CSS code by going to that .css file directly, in the browser (likewww.the_website.com/whatever_nam…).
See here an example of a CSS file
http://static.ak.fbcdn.net/rsrc…. (it’s a Facebook CSS file)
Javascript is used to add dynamics to a webpage, to a webpage otherwise static. Like CSS, you can find sometime Javascript embedded directly to the HTML page (like this: <script language=”javascript”>….your Java script code….</script>). But mostly it will be in a separate Javascript file ending in .js (included in thew HTML page like this: <script src=’whatever_name.js’ type=’text/javascript’></script>). You can see it directly if you open it with the browser (like http://www.the_website.com/whate…). See here an example of a Javascript file: http://static.ak.fbcdn.net/rsrc…. (it’s a Facebook Javascript file and it’s compressed).
You can find on Google (including Youtube) many tutorials about these. Just type “HTML tutorials”, “CSS tutorials” or “Javascript tutorials”.
Having some graphic design skills doesn’t hurt also (Adobe Photoshop or equivalent to make pretty graphics for your website).
THE BACK-END
The back-end now is even more complicated than the front-end and that because there are so many options, it’s mind boggling.
In the last 10 years the open-source movement gave birth to many programming languages and were made free to people, spawning even more open-source tools and programming languages.
You may have heard of Perl, TCL/TK, PHP, Python, Ruby, Java, Erlang, C, C++, Lisp, Haskell, ASP/ASP.NET/C#, Coldfusion/CFML. But some of these have lots of frameworks built on top of them (the scope of the framework is to make life easier for the programmer – only PHP has over 20 frameworks).
What are these back-end programming languages doing? Most of them are serving as an intermediary between the browser and the database (yes, back-end means also database).
The data is sent to this intermediary through a page written in a programming language of choice which is processed by the programming language interpreter which allows to that data to be sent into a database. Also, the same page programmed in a language can get the data from the database and send it to the browser using the programming language interpreter.
What programming language you choose it doesn’t matter much as long as you can accomplish your result.
But you, as a beginner, should choose a programming language which has these characteristics (and I am not referring at the syntax):
- the language should be popular (that means it has a big community which can offer support)
- the language should be open source (that means you don’t have to pay money for it)
- the language should stick around for longer time (that means the language shouldn’t disappear or be less used in the short term – it happened with ASP classic and Coldfusion/CFML/TCL/TK)
In conjunction with these languages also you should choose the database which you will learn. The database should also be open-source (MySQL, PostgresSQL, SQLlite).
In my opinion, for a beginner, you should choose from among these back-end technologies to help you started:
  •  PHP (open source, big community, lots of software built with, lots of jobs),
  •  Ruby on Rails (open source, growing community, hot with startups, growing number of jobs),
  •  Python (open source, big community, quite hot with startups, growing number of jobs)
  •  MySQL database (open source, big community, hot with startups, many jobs)
You have to try these and see what you like, what fits you.
MySQL
- http://en.wikipedia.org/wiki/MySQL
- http://www.mysql.com/
- http://www.mysqltutorial.org
- http://www.w3schools.com/sql (SQL is the language used to extract, insert, delete and process data in the database – you need to know this as well)
- http://php.about.com/od/learnmys…
Don’t forget! You can find tutorials not only on Google but on Youtube too (so you can have a visual).
You can try front-end development and also back-end development…but in the end you will have to specialize (you can’t learn everything very well, unless, of course, you are a genius). I am more specialized in back-end than front-end (but I can create stuff on the front-end – it won’t look very pretty though).
Learning from scratch will take you time but don’t despair. Even God needed 7 days to create Earth.
Be perseverent, ask around when you don’t understand, get connected to the specific communities, go to stackoverflow.com for very technical questions (or even on Quora), search on Google, buy some books and practice. Practice makes perfect, they say and that’s not far from truth.