Archive for April 2014
Even if you only build websites using CMSs, you’ve probably heard the word “framework” before. You’ve probably also heard of a few famous web frameworks, including Ruby on Rails, Django and Bootstrap. Many experienced web developers build websites using frameworks and often find them easier and enjoyable to use.
In this article, we’re going to explain what a framework is, and when you might use a framework.
If you are currently doing one of the Coding Training classes, this information will prove especially useful to you. If you are just using a CMS, this post will still contain some valuable insights, as many CMS systems can and are built using frameworks. For example, Drupal 8 is currently being built on Symfony and Joomla 3 is using the CSS framework Bootstrap.
What is Framework?
The goal of a framework is to allow designers and developers to focus on building the unique features for their project, rather than re-inventing the wheel by coding common, familiar features found across many websites and web applications.
A framework can be considered a pre-built that handles most of the repetitive or common features. As a result, unlike a CMS, a framework will probably not have a template/structure user interface (although this is not always the case, as Django provides an administration interface). Most of the activity will be done by writing code and interacting with different parts of the framework itself through code.
Often frameworks take a while to learn, but once you’re familiar with them, they should speed up your development time.
5 advantages to using a framework:
- Open-source: Most of the popular frameworks in many languages are open-source (or available to use for free). They also come with licensing that isn’t restrictive and allows you to build commercial products using such frameworks
- Documentation and support: Although this can vary (if the language being used is popular and the framework has a lot of developers using it), you can expect that the framework will either have good documentation, good support or both at the same time. It is worth mentioning that “good support” is a subjective issue at times. Typically, paid support will almost always be faster and more concise, but this also depends on the level of activity within the framework – as a framework like Ruby on Rails demonstrates with a massive community, which is renowned for its welcoming nature and good support too.
- Efficiency: This could be considered the most vital reason why frameworks exist. They eliminate the need to write a lot of repetitive code that you will find being used in many different applications. These include, for example, user-authentication and commenting systems. On average (if you have sufficient knowledge using a certain framework) you can expect to build a project in much less time than would be achieved writing code without a framework
- Security: Typically, a framework is developed and tested by many different developers. It is extremely likely that many security risks are addressed and tested when the framework is being built. New security risks can also be addressed and fixed quickly. However, security can also be considered a con, as will be mentioned in that section
- Integration: If you are building almost any type of application (including a website) and you want to store some data, you will typically use a database. Just like a database, there also exists many other tools that link to web development. Many frameworks will thus make it easier to link to these tools and also communicate with them (for example, when “talking to” a database is abstracted away in a certain framework, making communication with the database much easier)
5 disadvantages to using a framework:
- Limitations: Generally, you will not be able to do almost anything with a single framework. They are all restricted in some way, from coding paradigms to database designs and everything in between. A good way to work around this is to see what the framework is being used for by other developers in the community, as this will give you an idea of what you can achieve
- Learning bias: If you decide to learn how to use any framework from some programming language you are familiar with, chances are that what you learn will be somewhat different to the language itself. This is due to the fact that a lot of those repetitive tasks have been created in custom functions and other parts, which is why you will learn such things that may not have existed in the language lessons itself. Apart from that, you may also learn a lot of things that may be irrelevant to you whilst using the framework in real-life, but are necessary to grasp how the framework works
- Steep learning curve: Although this isn’t always the case, most frameworks can be difficult to learn and even more difficult to master. After some simple research into this matter, a university professor said that it will take about 2 years (with no programming background) to become familiar and comfortable using a language (Ruby) combined with a framework (Rails). This may not be the case when being self-taught or having years of programming experience, but I would say that even with experience, at least 3-6 months will be needed to become confident using any framework (based on continuous learning and practice)
- Cost: Frameworks require more development expertise and experience than most CMSs. As a result, it can be more costly to hire reliable framework developers than reliable CMS developers. As the experience shows, the average project built with a framework is more expensive than a similar project built with a CMS.
Examples of popular frameworks
Below are some popular web frameworks (in no particular order) for different web languages. This is not an extensive list, as there exists many more options out there.
Over to you?
Have you built any websites using a framework instead of a CMS?
What were the advantages and disadvantages of going with a framework?
Share your feedback or any other experiences below.
Inspiration is like fuel for founders but, at some point, the tank will inevitably run dry. Here are some ways to re-inspire your entrepreneurial spirit.
Everyone has their drug of choice. For founders, it’s inspiration. Inspiration is the high that drives entrepreneurs to put in those long days and it is what validates them as they see the different parts of their lives get folded into their businesses. The creation becomes a part of the creator.
Mental stimulation is the propellant that helps founders gain traction in the early days, but it’s easy to lose over time. The amount of work combined with the erratic lifestyle can often leave you feeling uninspired. According to Todd Krizelman, CEO of MediaRadar, this can affect your business as well.
“Almost all entrepreneurs play a central role in their company, independent of their job function. If their morale is suffering, the company will suffer significantly. The staff looks to entrepreneurs for signals (formal and informal) on company performance and forward vision,” Krizelman said.
At some point in your entrepreneurial journey you will, undoubtedly, face a crossroads where you will have to decide whether or not you want to keep going. Entrepreneurship is difficult, but it is made easier if you have the inspiration to keep moving forward.
“If you can re-inspire yourself over time, you give the highest possible odds for the company to flourish because you are going to have that authentic, passionate entrepreneur at the helm,” said Andy Dunn, CEO of Bonobos.
Here are three sets of tips on how to re-inspire yourself as a founder.
1. View rejection as opportunity
“Before you’ve started your company, you were likely a successful person in school or business. You are used to getting things done and being respected,” Krizelman said. “However, early in the experience as an entrepreneur you will be told NO frequently, by investors, interview candidates, and by prospective clients. This is actually normal, but it demoralizes many entrepreneurs who are just getting their start.”
As an entrepreneur, you must realize that no one cares about your business or idea as much as you do, and that’s okay. So often, founders can feel so connected with their company that they begin to equate approval of the company with approval of self, and this is a dangerous connection. You must always strive to think of your business as an entity that exists outside of yourself. Criticism of your business is not a critique of your character.
Think of someone saying “no” as a sort of inspiration in and of itself. Consider the possibility that maybe you aren’t explaining your value proposition clearly enough, or maybe your passion isn’t coming through in your pitch. Whether or not you are comfortable hearing someone say “no,” Polaris Partners entrepreneur-in-residence, Pat Kinsel, said they are bound to come.
“Through the processes of raising capital, hiring employees, and selling your product, you’ll surely hear ‘no’ 1,000s of times,” Kinsel said. “The best founders learn from ‘no’ and are driven to persevere; but the grueling process takes it’s toll on everyone. Some founders lose inspiration — it’s incredibly important to surround yourself with people who can help you remember the vision and remind you why you started in the first place.”
2. Don’t forget your roots
One of the inevitable, sad facts of the startup community is that people will begin to see you as what you do instead of who you are. Being the founder of a company is only one role that you play. Don’t get me wrong, it is a very important role, but it exists alongside other roles to compose your identity. You are not your product.
“I went to Brazil last June. For the first time, I got out of the country and off Wi-Fi access for a few days,” Dunn said. “I was on a trip looking for Jaguars in the Pantanal region of Brazil with a couple of other scientists. And, there was three days where we had no access to, not just Wi-Fi, but any data, any cell phone signal. And I was like, ‘Oh yeah, there was a me before I was digitally connected to what I am building.'”
Think about who you were before you started your company. How did the people you surround yourself with define you before you became known as the founder of your startup. Take some time to unplug, not just from technology, but from the culture surrounding startups. The startup scene praises the startup martyr, but it is important to spend time away from that.
It may sound trite, but find a few strategic moments to spend time for your friends and your family. These tend to be the people that have supported you because they believe in you, not your business ideas. Surround yourself with the kind of people who make you feel like you have nothing to prove.
It’s freeing to absolve yourself of an obligation to bring something to the table and to add value, but it is also encouraging to look back and see how far you have come. Because, at the end of the day, your business should inspire you too.
3. Focus on the business
I know this seems counter-intuitive, but sometimes in stepping back to catch your breath, you need to step forward to invigorate your sense of involvement with your company. According to Dunn, this begins with understanding your timeframe.
“One of the primary forces here is that when you start a company, mentally your time horizon is oriented to a few years. And yet, the paradox is that, if you’re successful with what you’re building, that timeline just keeps extending,” Dunn said. “So, if your startup doesn’t work, you might be done in two years. But, if it does work, you know, I’m in my seventh year, and there’s a very viable scenario where I’m gonna be in my fifteenth year. I think that a sense for what the actual time horizon could be, paradoxically, in the event that you’re successful, versus not, is important.”
The startup game is a game of sprints, and understanding the timing and implications of those sprints is paramount. Dunn refers to these moments as the “digestible chunks” of the overall experience. He noted that the experience will be radically different at each milestone, and you have to prepare yourself to learn and change.
As you meet these milestones and move past them, there are specific ways you can engage your business in order to re-inspire yourself. The first is to consider taking on new challenges.
“You need to make sure you’re meeting your own professional and life goals. You can, however, pursue new challenges inside the company as it grows. For a company with a lot of momentum, there are almost always options,” Krizelman said.
For example, Bonobos opened their Guide Shops to help customers better understand the way their products fit and, most recently, they set out to start a women’s clothing line. It can be very valuable to do things in your company that make the business more exciting for you.
“Pushing the frontier of innovation, and doing so in a way that makes sense for the company and makes sense for the founder, that’s the ultimate source of inspiration — it is the creativity that got you going to begin with,” Dunn said.
As you take on new challenges with your company, make sure you don’t alienate your customers. Talking to people who use your products or service on a daily basis can help remind you of the greater mission that your startup has taken on.
“While I devote 60% of my time to managing the company overall, the balance I spend talking to customers directly. Hearing the client declare that their business is improving, because of what we do, is a major motivator,” Krizelman said.
If you try these steps (and others) and still don’t feel re-inspired, don’t be afraid to admit that running your startup isn’t fun anymore or you’re no longer fulfilled. Founders wear many hats and, at some point, you might need to hire someone to wear one of them for you. Don’t be ashamed to appoint a new CEO if it will help you focus on the aspects of the business where you add the most value.
Also, it isn’t a bad thing to want to have fun.
“Independent of whatever outcome a team may achieve, pausing and reflecting on your accomplishments can help you to enjoy your day to day work,” Kinsel said. “At the end of the day, there’s no reason why a startup founder shouldn’t enjoy the ride.”
Professional Software Development
If you’re just learning the Android ropes, you might get tangled up in a mistake or two. Here are 10 ways to avoid problems and get the maximum benefit from your Android device.
Android is the most widely used platform on the planet. That means it is being used by a variety of skill levels. If you exist on the newbie end of the scale (or if you have to support a group of newbies running Android), know that there are some common mistakes made with this Google-centric platform. Some mistakes come from the adjustments you have to make when migrating from another platform. But others are a bit more grievous and could even cause some form of data loss. All these mistakes can be easily avoided with just a bit of knowledge. So that’s what I’m going to give to you — in the form of 10 preventable newbie mistakes.
1. Don’t expect it to act like an iPhone
Many users who migrate from the iOS platform expect Android to behave the same way. Sure, fundamentally it does. It will make and receive phone calls, check email, and view web pages. But once you get beyond the basic functionality, the Android and iOS platforms have little in common. If you assume that Android and iPhone smartphones are the same, you are in for a frustrating experience. Each platform approaches tasks differently, and if you assume your Android device is similar to an iPhone, you’ll miss out on a lot of features.
2. Secure it now
You have plenty of data on that smartphone… data you do not want getting into to the hands of other users. To that end, you must secure your smartphone with a password, or a pattern, a fingerprint, or whatever your device offers. No matter how you approach it, don’t leave your data open for all to see. In the case of your Google account, consider two-step authentication. You want your device as secure as possible.
3. Avoid that POP
The single most common question I get is, “Why are emails disappearing from my phone or desktop?” It’s because you set up your email as a POP account and didn’t configure your phone or desktop to retain messages on the server. The best way around this is to avoid configuring your email account as a POP account. With Android you can set up many types of accounts… but just avoid POP as much as you can.
4. Don’t drown yourself in widgets
I’ve seen Android homescreens so dense with launchers and widgets, it looked like the app drawer vomited up breakfast, lunch, and dinner. Unfortunately, the more widgets you have on your homescreen (especially those that display data from online accounts) the more battery you will use. If you really want a few widgets on your homescreen, choose wisely and don’t overdo it.
5. Don’t overlook Gmail
Android and Gmail are like peanut butter and chocolate — they work perfectly together. If you get an Android device and don’t have a Gmail account, create one. Why? You’re missing out on a LOT of features (the Google Play Store, backups, and more). Make sure you create your Gmail account before you set up your phone. It’ll make things far easier in the long run.
6. Be smart about permissions
When you install an app, you’ll be warned about what permissions that app requires for use. Do not ignore those permissions, as they can give you insight into the app’s nature. If you’re installing an app that will serve as a mirror and it requires permission to use your location and your email, don’t install it! There are certain permissions that should be given only to certain apps. Do not ignore the permissions warning. Period. Learn what it means and how it works. Know when to stop installing an app based on the permissions it requires.
7. Red-light that Bluetooth
If you don’t use Bluetooth for anything, why leave it on? It’s only going to drain your battery (and Android does that well enough by itself). Shut off Bluetooth from within the Settings app and you won’t have to worry about added battery drain. The same can be said of shutting off Wi-Fi when it is not in use.
8. Stop hoarding those apps
Open up your app drawer. Do you see a veritable cornucopia of unused apps? If so, uninstall them. Your Android device is not a dumping ground for cutesy apps of the day. If you know you’re done flapping angry birds get rid of the app. Those unused apps take up precious space, and in some cases, they could be helping to drain your battery (even if they’re unused). It’s not that those apps are going to suck your battery dry. But why take the chance that they are even draining it in the slightest? If you don’t use it, lose it.
9. Tap into all that power
One of the biggest differences between Android and iOS is the degree of flexibility and control. You have much more control over what your phone can do on Android — so much so, that many new users are overwhelmed or intimidated by all the bells and whistles. Don’t be. If you turn your back on all the possibilities, you miss out on a lot of features that could make your mobile life far easier. Of course, that doesn’t mean you should just start randomly tapping buttons. Use that power with intelligence and understanding.
10. Don’t neglect updates
There are reasons why you get warnings about updates: because they are often necessary for device security or efficiency. Apple pushes out only major updates and does so as a whole package. But there are instances when Android pieces can be updated. Many times these updates will occur without your assistance. However, you should still go into the Application Manager to find out whether there are updates for certain apps or elements of Android (the Play Store is a good example). Make sure you are updating on a regular basis. And be sure to install (and use) Secure Update Scanner so you don’t fall victim to the pileup flaw.
Reap the benefits, avoid the pitfalls
Android is a powerhouse of a platform and has eclipsed all other mobile platforms in global usage. That means there are a lot of first-time users. Don’t fall prey to any of these beginner mistakes and you’ll enjoy a long and productive life with Android.
Have you made some newbie mistakes on Android? Do you think there are just as many mistakes to be made by iOS novices? Share your thoughts bellow.
Quick, grab all of your devices and check what release of Android they are using. Are they all the same? If so, consider yourself one in a million. The Android platform is plagued with numerous releases on numerous devices — even the same devices from different carriers can suffer from different iterations of Android!
Because of what I do, I have numerous Android devices. The different releases are:
All of the above are on devices ranging from a Samsung Galaxy Tab to an HTC One Max (and just about everything in between). As I work with one of the various devices, I have to bounce back and forth to remember where something is located on a certain release. Although this isn’t a deal breaker for me, imagine having to support hundreds of devices, all with varying releases. Now, we’re talking about the breaking of deals.
But this issue goes deeper than that. It’s common knowledge that certain providers and certain device manufacturers are quicker to update than others. Motorola, for one, has always been at the top of the heap for updates. My Moto X always has the latest version of Android (almost immediately upon release). Samsung devices? Not so much. And if you’re with AT&T — good luck.
At one point, Google created the Android Update Alliance. That failed, but not because of Google. The blame here lies at the feet of the carriers and hardware manufacturers, including:
This update issue isn’t only widespread, it’s also very counter to rolling out new devices. How can Samsung (or any manufacturer) or AT&T (or any carrier) sell a device with an out of date OS? And with KitKat showing off how much more efficient it is at memory management, it’s become imperative that Android devices are released with the latest version.
I know this is a challenge for all involved. The second you release a piece of hardware, it could quickly become out of date. And each manufacturer has a different spin on the UI:
- Motorola Motoblur
- HTC Sense
- Samsung Touchwiz
When a new release of Android hits, each company has to integrate the underlying platform with its UI, so there’s another slowdown.
Here’s my beef with this — I can go to the Google Play Store and install any number of home screen launchers, nearly all of which play well with whatever version of Android I’m using (with a rare exception). In some cases, these home screen launchers are developed by a single person who must constantly keep up with changes made to the kernel and various stacks that make up the Android platform. And they do it with aplomb and efficiency.
So, how is it that a single developer can manage this, yet a large company cannot? It truly baffles the mind.
Well, I’ve come up with some ideas that might help this along. Some of them are unlikely, and some of them just might actually work. Let’s take a look:
- All hardware manufacturers drop their in-house home screen launchers and go with vanilla Android (they can offer their versions on the Google Play Store).
- Google develops a set of standards for all hardware manufacturers to use for developing their home screen.
- Set up an OS upgrade check during the first run wizard? Out of date? Update.
- Carriers stop selling out-of-date Android devices that won’t run any version of Android other than the most recent two major releases.
I know it’s a lose-lose scenario. The carriers, the manufacturers, and Google are not going to see eye-to-eye on this issue. But they need to lose their egos and stranglehold on their devices and come to some sort of unified structure that allows Android updates to roll out in a universal fashion. Having carriers selling devices with out-of-date operating systems does no favors to Android. And users not getting the best possible experience, because a carrier or a manufacturer can’t seem to get the upgrade process refined, does nothing but frustrate users.
KitKat is a substantial improvement over an already solid release. Every Android user should be enjoying the speed and features brought about by the latest iteration of the platform. Every entity involved needs to step up and make this happen… soon!
What do you think? Are you one of those suffering from an out of date release of Android? What do you think needs to be done to resolve this problem? Share your thoughts in the discussion thread below.
Professional Software Development