Thursday, March 12, 2015

Is AngularJS ready for the enterprise?

AngularJS is the hottest word in Web application development today. But that's no guarantee it will remain relevant tomorrow.

To be sure, AngularJS has many factors going for it. For starters, the JavaScript front-end application framework was developed and is maintained by Google, which knows something about the Web. For another, as co-creator Miško Hevery tells InfoWorld, "Rather than writing everything inside of JavaScript and then having a bunch of templates to generate the UI, [AngularJS allows you to] write a lot of it in HTML, and HTML drives the assembly of the application."
It is this power, and the simplicity it engenders, that perhaps more than all else has crowned AngularJS the most popular JavaScript framework today.
Whether this makes it safe for the enterprise, however, is up for discussion. For enterprises accustomed to 10-year support guarantees on the software they buy, the AngularJS habit of breaking backward compatibility as it rushes to the future may cause concern.
Yet there are reasons to believe that this time, it's different -- that AngularJS will remain widely used long after the media hype circus moves on to the next shiny framework.

Popular, oh, so popular

The Web application market has seen leaders come and go. SproutCore, for example, spent years as the top framework. But it was displaced by BackboneJS which, in turn, has given way to EmberJS, as Google search trends show. But nothing compares to AngularJS.
Developed in 2009 by Brat Tech engineers Miško Hevery and Adam Abrons, AngularJS was open-sourced not long after. Hevery took on the burden of continued development after joining Google. By December 2012, as this Google Trends chart shows, AngularJS had already started to separate itself from the pack:
Angular.js popularity explodesGoogle Trends
Angular.js searches took off like a rocket two years ago and left the other JavaScript frameworks in the dust
By 2015, at least in terms of general interest, AngularJS had rendered every other framework a rounding error. The same trend holds true in jobs requiring AngularJS experience, as data from Indeed, the developer jobs site, shows.
The only framework that seems to have a chance of taking the lead from AngularJS is ReactJS, a framework developed at Facebook and now finding currency with Netflix and other mega players on the Web.
Despite significant concerns (RethinkDB developer evangelist Ryan Paul, for his part, finds the "way it discourages proper separation of concerns [to be] crazy"), developer Jeff Waugh insists"everything [is] begin[ning] to taste more like React," as other frameworks follow its lead.
Why? Because, as systems automation engineer Jeff Schroeder declares, "React is simply that much better" with a story about native apps that "changes the game for mobile entirely."

Popularity ... at a cost

This is essentially what developers said about AngularJS when it first came out. In JavaScript frameworks, "flavor of the month" may be too generous. It's more like "flavor of the minute," with popularity and hype waxing and then waning in rapid succession.
Is there any reason to believe AngularJS will hold off ReactJS (and, in turn, hold off The Next Big Thing)?
One reason to believe in AngularJS is its popularity despite boneheaded moves. For example, it regularly breaks backward compatibility, forcing its adherents to relearn AngularJS development.
Commenting on this tendency to regularly break with its past, AngularJS critic Danny Tuppeny laments:
Our current codebase has parts that are over 10 years old; and we hope our new codebase will last this long too. It seems that if we start writing Angular today; we'll be forced to rewrite the frontend in three to four years at latest (and with the way apps are going, the frontend is likely to be a large codebase). This doesn't sound very attractive.... We need frameworks that are stable and supported long-term; not that are constantly inventing new concepts and being rewritten with breaking changes every 5 minutes.
I've argued that it may be necessary to break the Web to keep up with the pace of Web innovation. Nene Bodonkor, a mobile Web developer, for example, posits that frameworks may be so replaceable because they become complacent and don't keep up with the market's needs.
Not everyone agrees. EmberJS creator Yehuda Katz argues that "forcing everyone to rewrite everything every few years is the best way to slow things down."
EmberJS, therefore, along with Facebook's ReactJS and others, strives toward maximum backward compatibility. This makes these frameworks more enterprise-friendly.
And yet AngularJS dominates. Despite inflicting serious trauma on its most vocal adherents, it thrives.
Does that mean an enterprise can depend on it and build upon it? As an enterprise, can you trust it?

Ready for a different kind of enterprise computing

Michi Kono, CTO of Monsoon, a mobile and Web application development company, believes that the answer is an emphatic yes.
While Kono told me in an interview that he was "distraught over the news of Angular 2.0" and its backward (in)compatibility, he delved into the underlying technical decisions and feels that AngularJS core developers' "decisions made sense on a technical level, but they were terrible at communicating it."
Furthermore, "Since they use this framework internally at Google, I can only assume supporting enterprise and legacy versions is a huge use case for them as well. In the coming months, I'm sure we'll start to see migration discussions emerge as key features are committed to the 2.0 spec."
When I asked about how an enterprise should view AngularJS, Kono was clear: AngularJS does many things right to make it safe for enterprise consumption:
You have to look at what made (and keeps) Angular so much more popular than its competitors. The framework does not have strong opinions about conventions; this makes learning it much simpler. While some argue that this flexibility is a what makes it worse than opinionated frameworks such as Ember, that is only looking at the downside.
The ease of getting started enables more developers to learn it and its usage better adapts to other technologies you might use along side it. These reasons are hugely important to large organizations that need to hire and develop at scale. This is how Angular got to where it is, and will likely continue that momentum for the near term.
Beyond making it possible for large organizations to pull from a large population of AngularJS developers, Kono also notes, "Angular is 'lower level' than some of the other frameworks," which can "make it feel less like a framework and more like a toolbox." This toolbox approach makes it very flexible for using in a wide array of use cases, like adding a single button on a website within whatever other framework you might be working with.
Finally, Kono believes strongly that "typed" JavaScript will be a massive trend in 2015. Microsoft, Google, and Facebook are all trying to "upgrade JavaScript" in ways that "enterprises will appreciate," he says, as these efforts tend to "make JavaScript look really, really similar to Java (in a good way)!" Given that AngularJS 2.0 will be written in Google's typed JavaScript (AtScript), Kono expects "a ton of interest in the first next generation JavaScript framework that lets developers leverage it."

Is it right for you?

All of which are compelling reasons to give AngularJS a try, regardless of the size of your enterprise. But should you stick with it?
Rackspace vice president Van Lindberg jokes that the very thought of "staying power" and "JavaScript framework" coexisting in the same sentence is an error. He may be right.
But there's a big difference between hype and actual adoption, and AngularJS seems to have both. As Waugh points out, "In the Cambrian explosion of the Web, some [JavaScript frameworks] attract attention and lots of users. They stick around, get maintained."
AngularJS definitely meets that definition of "attention and lots of users."
The trick now, as Adobe Web developer Brian Leroux insists, is to "optimize your architecture for change or get locked into big rewrites without forward progress."
To put it another way, the modern enterprise needs to be able to embrace fast-moving change on the Web, which also implies the need to accept fast-moving change within frameworks like AngularJS that make Web application development simple and powerful.
This story, "Is AngularJS ready for the enterprise?" was originally published byInfoWorld.

6 Most Common Java Performance Problems

 In today’s age, making an application fast is as important as making it functional. Java application developers are always concerned about the performance of their applications. Most of these performance issues have common root causes. So performance analysts have addressed this issue in three basic categories, Database problems, memory problems and concurrency problems. Today we have listed six common Java performance problems.
java, performance, application performance, java performance, java problems, most common Java problems, persistence configuration, caching, application optimization, garbage collection, memory leaks, thread deadlocks, thread gridlocks.

1. Persistence Configuration: 

Advance options like Hibernate and JPA implementation provide fine tuning of database access but, there are some more options such as eager or lazy fetching that prolong the database response. Eager fetching makes less but complex database calls while, lazy fetching makes database calls more simple and fast. However, when the load of application increases, it causes database load. Developers need to understand persistence technology to avoid such problems. Using correct configuration options can fix this problem.

2. Caching: 

Caching is used to optimise the application response time. There is large in-memory data that enables fast access to persisted cache. The problem starts when no caching is used. Sometimes cache exhausts the memory. A properly configured cache doesn't cause any problem in application performance. Synchronization is another problem that occurs in distributed caching. Synchronization is important when caches are communicating with multiple server. Cache update is sent to caches in all servers to achieve the consistency. You should examine if your database really needs caching or not. You can determine cache size and ratio metrics. Proper planning of cache is very important to avoid cace problems.

3. Garbage Collector: 

The main functionality of Garbage collector is to reclaim the memory. The procedure is quite lengthy and Garbage collection may temporarily terminate all running threads. Garbage collector requires big response times and it causes CPU spikes. Developers can configure their verbosegc params to fix the system downtime. However, it is next to impossible to avoid the problems caused by Garbage collector. It is advised to limit the process by configuring heap size and JVM.

4. Memory Leaks: 

Memory leaks commonly occur in all the apps. Memory leaks in Java are different in some ways than C or C++. They are more related to reference management issue. In Java apps, reference to an object exists even if it is not required in program again, this leads to OutOfMemory error and forces JVM to restart. Developers can configure JVM params in different way to deal with memory leaks. Make sure that you pay attention to all details related to memory leak, sensitive Java collections and session management while coding an app in Java.

5. Thread Deadlocks: 

Thread deadlocks occur when more than two threads are accessing same resource and one is waiting for the other to release a resource. JVM exhausts all threads when deadlock occurs, this leads to slow processes in application. The only way to solve deadlock problem is to capture the thread dump when threads are deadlocked. You can avoid this problem by making application resources as immutable as possible.

6. Thread Gridlocks: 

This issue occurs when there is load on synchronisation, too much of time is spent on waiting for single resource. Thread gridlock leads to slow response time and low CPU utilization. There are many threads that accesss same code and wait for the one to finish. You can solve this issue by checking where your threads and waiting. Eliminating thread synchronization according to business requirement can solve the slow processes issue caused by Thread Gridlocks. 

This article originally published by:-efytimes

Top 6 CSS Editors For Ubuntu

 The primary job of CSS editor is to edit the code and perform syntax highlighting on CSS files. Some of the programs are just text editors while some offer amazing features. There are too many CSS editors out there. Today we have listed top six CSS editors for Ubuntu.
6 css editors, top css editors, css editor for linux, css editor for ubuntu, gedit, SciTE, Quanta Plus, Cream, Bluefish, code editor, cssed, css code editing software.

1. Cream:

Cream is a version of Vim. This is the best looking simple text editor. Cream offers all the required features and functions of CSS editor. Ubuntu users can install Cream by entering following command -

sudo apt-get install cream

2. Quanta Plus:

Quanta Plus is a great CSS editor. You can edit HTML and PHP code too. Quanta has many features, the color dialogue of Quanta is innovative. This tool come with neat documentation that help you while editing the code. The documentation can be run on the right sidebar. Enter following command in terminal to install Quanta Plus -

sudo apt-get install quanta

3. cssed:

This is a GTK-based tool. The program brings many CSS specific features like color picker, css helper. If you are tinkering with CSS editors on Ubuntu, you should give it a try. Enter the following command to install cssed -

sudo apt-get install cssed

4. gedit:

gedit is the default text editor in gnome but, it has great features that are expected in simple CSS editor. The tool comes with color picker, highlighter and all important tools for editing CSS code. gedit works well on Ubuntu.

5. SciTE:

SciTE is another great text editor tool that can also be used as CSS editor. The tool works well on both Windows and Linux. There are no specific features for editing CSS but, the only great feature that this tool provides is to export your CSS code in PDF format. This can help in printing your code.

6. Bluefish:

This is another text editor that comes with CSS specific features. The tool lets you refer CSS codes. This CSS code reference helps in finding details of the syntax while writing the code. Enter the following command in terminal to install Bluefish -

sudo apt-get install bluefish 

This article originally published by:-efytimes

Top 6 Lightweight Linux Distros

 Lightweight Linux distributions work efficiently on the low-end and older hardware. Some of the lightweight distributions are designed to work with web apps and most of the cloud services. Today we have listed six lightweight Linux distributions that are specially designed for x86 and ARM architecture.
linux, x86, ARM, lightweight Linux, linux distros, top 6 Linux distros, Elementary OS, LXTE, Arch Linux ARM, Point Linux, Porteus, Fedora ARM, Fedora 20.

1. Elementary OS:

Elementary OS is a lightweight Linux distribution for 32 and 64-bit x86 machines. The distro is built on the Ubuntu core and elementary’s desktop environment. The distro packs lot of hidden features and apps. The accessibility features make elementary OS unique than other Linux distros. Elementary has unique user interface that is inspired from Mac OS X. The sleek, elegant appearance and highlighting cus make it super useful.

2. LXTE:

LXTE stands for Lubuntu LTS, it brings customised LXDE desktop interface. This distro is advertised as the best replacement for Windows. It is a great choice for the Windows users who want to switch to Linux. The user interface and features are very well designed and refined. You can choose the desktop user interface from Unity, Windows XP, GNOME 2, Mac OS X and Netbook. The distro is available in 32 and 64-bit x86 versions.

3. Arch Linux ARM:

Arch Linux ARM is the best choice for the users who are looking for versatile operating system with simple user interface. Users can have maximum control of their systems using Arch Linux ARM. The distro supports x86 and has ARM port. Single board computers like Raspberry Pi, Beagleboard, Arduino can be used with great efficiency with this distro. ARM Arch has great community as well.

4. Point Linux:

Point Linux is a great lightweight distro, based on Debian 7. Point Linux packs MATE desktop UI. It resembles a lot like GNOME 2 desktop. Point Linux has traditional system menu and panels that make the distro look very nice and clean. The distro packs everything that any other operating system should have but, without any fancy icons or animation. Point Linux runs very well on old hardware. Since the distro is based in Russia, you can find good comprehensive localisation in it.

5. Porteus:

Porteus is known for portability. The name is inspired by the God of sea who can change his form. The distro is just 300MB in size and it can be loaded from portable drive like USB, CD or any compact flash drive. You can choose from five desktop environments while loading, KDE4, Razor, LXDE, MATE or Xfce. The distro has package manager which can help you install or remove software packages. This is a great portable Linux distro you can find on the web.

6. Fedora ARM:

Fedora ARM port is promoted as primary architecture since the release of Fedora 20 in December 2013. Fedora is best known for its support for 64-bit ARM SBCs. The distro has great collection of unofficial remixes of all the unsupported devices like Samsung Chromebook. You can visit the link and learn everything. Fedora ARM has neat documentation that focuses on all small aspects of the distro.

This article originally published by:-efytimes

5 Ways To Streamline Web Design Workflow

 Productivity and efficiency are main concern for web designers. The ability to produce great quality content is dependent upon their skill set and efficiency. There are some tips that web designers can follow in day-to-day life to have great workflow. Here are five ways to streamline your web-design workflow.
freelance designer, web designer, web designing tips, web design, 5 ways to streamline web design workflow, optimize and customize work environment, research, wireframe and sketch, automate tasks, pre-made design elements, reusable design templates, web designing tips.

1. Optimise and Customise Work Environment: 

Web designers are expected to work with different types of software. The work matters a lot in quality of content web designer produces. It’s best to have bunch of great tools handy that you can use to optimize applications. All the applications used by web designers have great short cuts. Well-organised work environment can help in saving lot of time and it ultimately results in great quality work. You can create a main folder for a project and put everything related to that project inside this folder. You can create sub-folders like current module, done, articles, pdfs, design elements etc. This system can help you locate your files very quickly. It’s also important to keep backup of this project, you can use external drive or cloud storage for backup.

2. Research, Wireframes and Sketches: 

Even though using paper and pencil for design may sound like old age, it is important that you follow this exercise when you start working on a new project. The time spent in planning, sketching and wire framing is time well spent. This helps in boosting creativity as you are not restricted by computer interface and limited set of tools and canvas. When you have an idea and it needs to be developed, always do research, wireframes and sketches on paper. This helps and saves lot of time in long run.

3. To-Do List And Tasks: 

If you follow the practice of writing your to-do list for the next day before going to sleep, it helps in saving maximum time. You can re-arrange this list by order of importance in the morning. Create a simple schedule for the work and put work on the list according to priority. You will end up saving lot of time and finishing the project before deadline.

4. Automation of Tasks: 

All actions in photoshop are time-saver. But, don’t forget to automate bunch of other things. You can use Automator app to take care of smaller tasks like renaming and resizing on OS X. There are many Automation apps available for all platforms. Using these apps will help in saving your lot of unproductive time.

5. Pre-Made Design Elements and Reusable Templates: 

Creating something from scratch may sound like an interesting thing to do but, it takes lot time. There are certain design templates and elements that you can use all the time. You can have your icon set or preferred CSS framework. There are many shape libraries available that include social media site’s logos and marks. This helps in reducing lot of time that is spent in creating original icons.

This article originally published by:-efytimes