Altabel Group's Blog

Posts Tagged ‘Twitter

Debates about which programming language is the best are always hard and heated. Likewise, there’s no ideal language that works for all web application project requirements. Wikipedia is written in PHP. Gmail is written in Java. Python is number one choice of Google and YouTube. Ruby is used to create Twitter and Hulu. Slashdot is written in Perl. Stackoverflow is written in C#.

Browsing for the best web programming languages, among dynamic ones, you’ll mostly see PHP, Python and Ruby listed. Back in the days several years ago PHP was admitted the best tool for web job but since then both Python and Ruby have matured and grown robust libraries and frameworks around them that make them better candidates for many web projects now.

Today many consider PHP to be great for average everyday web systems. Python and Ruby are thought to be more suitable than PHP for most web applications in general and for more advanced things in particular. Just like PHP, they are free, open source, run on an open source stack (Apache and Nginx / linux, windows and BSD), and play well with any database engine. However, Ruby and Python have better syntax and they both enforce good programming habits by their nature, especially Python. PHP encourages sloppy spaghetti code by its nature. Also, the object oriented features in PHP are very ugly because of its arcane, retarded syntax.

Let’s get deeper insights into these two web programming languages from various standpoints:

As mentioned before, Python and Ruby are two of the most popular dynamic programming languages used in high level application development. In fact, Ruby was built using some of the design elements from Python. Developers often prototype using these two languages before implementing on compiled languages because of their modularity and object oriented features. Many use Python or Ruby instead of Perl as simple scripting languages. Python and Ruby are popular among web developers as well because of their rapid development cycle, with Python boasting computation efficiencies and Ruby boasting code design.

a/ Philosophy
Python really believes that code readability is the most important thing. Hence, there is one-true way of writing code, or as it has been reformulated lately: “There’s a most understandable way to do something and that is how it should be done”. Python is designed to strongly emphasize programmer productivity and it likes things to be structured, consistent, and simple. Python syntax enforces strict indentation rules; in fact, indentation has semantic meaning in Python.
Ruby believes in giving programmer the flexibility, freedom and power. It was designed, first and foremost, to make programming fun for its creator, with guiding concepts as follow: “The Principle of Least Surprise” and “There’s more than one way to do the same thing”. The latter philosophy principle inherited from Perl is the reason why many Ruby methods have alternate names, which may lead to some API confusion among new practitioners. However, this flexibility enables Ruby to be used as a meta language for describing DSL. Also Ruby provides a better way to write concise and compact code. More into the expressiveness of the code and writing code that is clever.
Python people like libraries to be transparent and obvious how they work and hence is easier to learn, while Ruby people tend to provide clean and pretty interfaces with “magic” behind the scenes. This makes development very fast when you understand the magic, but frustrating when you don’t.

b/ Ease of Use
Python is known for its ease of use. It allows beginners to start building powerful sites more quickly, and has the power to grow in complexity keeping its ease of comprehension. For example, one of the hardest parts of coding is going back to what you coded long ago and trying to remember the logic of it. Because Python uses natural language with white spaces and indenting, it is much more clear and easier to read than languages like Ruby. That makes it easier to fix mistakes or do updates. Also, there are literally thousands of pre-built modules that can be snapped on to let you get up and running on the web immediately. Its intuitive introduction to object-oriented coding concepts, such as communities, modules, and libraries, allows you to move on to other related programming languages as they develop.

c/ Object Oriented Programming
Both Python and Ruby support object oriented programming. Still Ruby’s object orientation is considered to be more ‘pure’ in that all functions exist inside a class of some sort. Python’s object orientation is more akin to that of C++, which allows functions and statements that exist outside of classes. In Ruby, even global variables are actually embedded within the ObjectSpace object. Python doesn’t have global variables, instead using attributes of module objects. In Python and Ruby, an instance of literally any type is an object. However, where in Ruby all functions and most operators are in fact methods of an object, in Python functions are first-class objects themselves.

d/ Syntax
Ruby includes several syntactic features which make dynamic extension of and higher-order interaction with external (library) code more straightforward. In particular these are blocks and mix-ins. Most things implementable with block and mix-in syntax are also achievable in Python, they are simply less syntactically natural and clear, and so less commonly form the centerpiece of major libraries or common styles of programming. These features, combined with a lighter-weight syntax with fewer restrictions (whitespace flexibility, optional parentheses, etc), make Ruby more suitable to pervasive and relatively transparent use of metaprogramming.
At the same time, while this flexibility and the Ruby community’s tendency to use it for metaprogramming can facilitate aesthetically pleasing code, they can also create stylistic variation in how the language is used, and obscure the mechanisms by which code actually works. Python’s more restrictive syntax is intentionally designed to steer developers towards one canonical “pythonic” style to improve accessibility and comprehension.

e/ Style
Ruby code is organized into blocks, with blocks starting with various constructs and ending with the keyword “end”. Python code is indentation-sensitive, with successively larger indentation meaning tighter (nested) scopes. Python’s syntax has been described as executable pseudocode.

f/ Functional Programming
Both languages support some functional programming constructs, but Ruby is arguably better suited to a functional programming style. Lambdas in Python are generally very short, because lambdas in Python are restricted to expressions and cannot contain statements. Ruby’s lambda support is far more flexible, allowing for lambda expressions of arbitrary length.

g/ Speed
The standard CPython implementation is generally regarded as executing code slightly faster than Ruby.If speed is really an issue for a Python project, you also have the option to use Cython, Pyrex,Pypy (JIT) or the ShedSkin tools to compile your code into C or C++.

j/ Features
Both Python and Ruby are high level application development languages. Each of them is estimated to have a Capers Jones language level of at least 15. Both languages promote test driven development.
Both languages have full Unicode support, although the way that support is implemented varies. Python distinguishes between “Unicode strings” and “byte-strings”. Ruby, on the other hand, treats all strings as byte-strings with a semi-hidden flag which causes problems when dealing with badly-encoded data from third-party sources.
Both Python and Ruby support multithreading. Python has the Global Interpreter Lock (GIL), which negates much of the potential advantage of using threads; Ruby has a comparable Global VM Lock (GVL).
There are a number of functions that are available by default in Ruby but for which in Python it is necessary to import a module from the standard library. Python supports generators and generator expressions.

k/ Community
There are great communities behind both frameworks. Some people believe that Python has a more developed community in terms of libraries suited for data analysis, machine learning, natural language processing, scientific libraries. As for community folks, Python ones are believed to be conservative and afraid of change, while Ruby guys welcome changes and love new shiny stuff even if it breaks older things. Consequently, Python world is more stable, and you can update your installation without much troubles, but that also means new technology is only added very slowly.

l/ Frameworks
There are a number of Web frameworks based on both Ruby and Python. The most notable and leading are Ruby on Rails (Ruby) and Django (Python) based on MVC. Django is more declarative, with it you’ll have a clearer understanding of what’s actually going on. It lets you specify most configuration details yourself. Django creates a much simpler project structure. On the other hand, the centerpiece of Rails’s philosophy is called convention over configuration. Rails provides you with more defaults.

m/ Popularity
Python is generally more widely used than Ruby, according to most measures, but in the wake of the rising popularity of the Ruby on Rails Web application development framework Ruby’s popularity too has seen rapid growth.
Python is more mature general purpose nature vs Ruby’s more niche (Rails) usage. Python is stronger and sees use in automating system administration and software development, web application development, data manipulation, analyzing scientific data (with help of numpy, scipy, and matplotlib modules), biostatistics, and teaching introductory computer science and programming. Ruby+Rails holds a slight edge over Python+Django for web development and sees use in general programming, and has more mindshare.
In terms of cloud deployment, Python can run on Google-Cloud (Google-App engine). Though Ruby has very strong cloud deployment options in the shape of Heroku and Engine Yard.

Would you prefer Python or Ruby over PHP for implementation of your web project? And is it indeed a philosophy that you chose while selecting between Python and Ruby? Interested to hear your thoughts.

Helen Boyarchuk

Helen Boyarchuk
Helen.Boyarchuk@altabel.com
Skype ID: helen_boyarchuk
Business Development Manager (LI page)
Altabel Group – Professional Software Development

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

The Web as we know it have been born and matured on computers, but as it turns out now, computers no longer have dominance in it. According to a recent report by analyst Mary Meeker, mobile devices running iOS and Android now account for 45 percent of browsing, compared to just 35 percent for Windows machines. Moreover, Android and iOS have essentially achieved their share in just five years and their share is getting tremendously larger.

According to some forecasts their worldwide number of mobile devices users should overtake the worldwide number of PC users next year. If forecasts come true, this shift will not only continue, but accelerate. Based on data from Morgan Stanley, Meeker estimates roughly 2.9 billion people around the world will be using smartphones and tablets by 2015.

What does it mean now that more people are accessing the Web through tablets and smartphones rather than laptops and desktops? And is it really a big deal? Anyway, Internet is intended to be accessed from anywhere and thus from any device. Well, it is quite a change at least in terms most people consider the Web and how it gradually adapts to be used on mobile devices.

Apps-like sites
As mobile devices take over, the use of today’s desktop browsers like Internet Explorer, Chrome, Firefox, and Safari will decline. Mobile browsers are already very capable and will increasingly adopt HTML5 and leading-edge Web technologies. As mobile devices naturally have less screen area, the sites need to function more like mobile apps and less like collections of links. So the sites are likely to look like apps.

Apps may rule
Native apps for smartphones and tablets almost always surpass websites designed for mobile devices because they can tap into devices’ native capabilities for a more responsive and seamless experience. This is most likely to change in the nearest future – most experts agree HTML5 is eventually the way of the future. This is already the status quo in social gaming: for example Angry Birds and Words with Friends. Some services won’t be available at all to traditional PCs — they won’t be worth developers’ time.

Less information at once
Web sites and publishers will no longer be able to display everything new for users and hoping something will catch the user’s eye. Smaller screens and lower information density means sites will need to adjust to user preferences and profiles to customize the information they present. Increasingly, the Internet will become unusable unless sites believe they know who you are. Some services will handle these tasks themselves, but the most likely contenders for supplying digital identity credentials are Facebook, Google, Amazon, Apple, Twitter, and mobile carriers.

Sharing by default
In a mobile-focused Internet, anonymity becomes rare. Virtually every mobile device can be definitively associated with a single person (or small group of people). Defaults to share information and experiences with social circles and followers will be increasingly common, along with increasing reliance on disclosure of personal information (like location, status, and activities, and social connections) to drive key functionality. As the Internet re-orients around mobile, opting out of sharing will increasingly mean opting out of the Internet.

Emphasis on destination
Internet-based sites and services will increasingly function as a combination of content and functionality reluctant to link out to other sites or drive traffic (and potential advertising revenue) elsewhere. These have long been factors in many sites’ designs but mobile devices amplify these considerations by making traditional Web navigation awkward and difficult. Still URLs are not going to die – people will still send links to their friends and Web search will remain most users primary means of finding information online.

Going light weight
As people rely on mobile, cloud, and broadband services, the necessity to do things like commute, store large volumes of records or media, or patronize physical businesses will decline. Businesses won’t need to save years of invoices, statements, and paperwork in file boxes and storage facilities – cloud storage comes as their rescue. Banks will become purely virtual institutions consumers deal with online via their phones. Distance learning and collaborative tools will let students take their coursework with them anywhere — and eliminate the need to worry about reselling enormous textbooks.

Going mobile is an obvious trend today. Experts envisage that nearly every service, business, and person who wants to use the Internet will be thinking mobile first and PC second, if they think about PCs at all. Do you agree? And what other related changes can you imagine?

Many thanks for sharing your thoughts :)

Aliona Kavalevich

Aliona Kavalevich
Aliona.Kavalevich@altabel.com
Skype ID: aliona_kavalevich
Business Development Manager (LI page)
Altabel Group – Professional Software Development

Just a few short years ago, MySQL was the undisputed king of the open-source database hill. But, today, non-relational, “cloud,” or “NoSQL” databases are gaining mindshare as an alternative model for database management, with its market emerging at an 82 per cent compound annual growth rate.

NoSQL recently received quite a positive bump when Twitter announced it was moving from MySQL to the Java-based NoSQL Cassandra database. Among most popular NoSQL databases are: Cassandra, CouchDB, HBase, MongoDB, and Redis. Twitter isn’t the only one to be using NoSQL. Other notable sites using various types of NoSQL implementations are Facebook, and Rackspace, Digg ,Disney, Forbes, foursquare and MTV.

The term “NoSQL” was coined back in 1998, and it originally stood for Not Only SQL. So the name NoSQL is a bit of a misnomer. NoSQL began its life as an alternative form of structured data storage. Today’s NoSQL databases are distributed data stores that are designed for very large-scale data access requirements.
So as you see from the examples of companies that are using NoSQL, NoSQL databases are fast becoming popular for web apps because of the simplicity and scalability they provide as compared to regular relational databases. This is especially helpful when designing social networking apps because of the sheer amount of data that needs to be processed and served.

Key advantages of using NoSQL database are:
1. Flexible key/value store – This makes reading and writing data super-fast.
2. Schema less – This makes then a great fit for non-structured or semi-structured data.
3. High Scalability – Most NoSQL databases are designed from ground up to run on multiple servers, which makes partitioning and hence scaling for higher loads much easier compared to regular relations databases.

But of course, you will never find an ideal tool and everything comes with a cost. NoSQL databases sacrifice a little bit on consistency in favor of scalability and latency. So, they turn out to be not a good choice for mission critical data, like banking, stock markets, or any other financial institutions.

All pros and cons should be taken into consideration while choosing what technology to use. Also different approaches can be combined together. Depending on the app, we can either choose to store all data in a NoSQL database or store just transient data like status updates, comments, notifications, etc.
NoSQL databases are becoming an increasingly important part of the database landscape, and when used appropriately, can offer real benefits. However, enterprises should proceed with caution with full awareness of the legitimate limitations and issues that are associated with these databases. What are your thoughts on NoSQL database? Do you use it in your business? Will be interesting to know your thoughts

Kind regards,
Anna Kozik – Business Development Manager (LI page)
Anna.Kozik@altabel.com
Altabel Group – Professional Software Development

Cloud technologies seem to be a modern trend-they are talked over at all the conferences, that are by some means connected with the Internet, are discussed in business press and on TV. It looks like another modern technological gimmick for Twitter, Facebook, various CRM and ERP systems, eAccountancy etc. Meanwhile, does cloud usage bring any benefit to business sites that do not provide hi-tech services?

In this article I will try to determine the benefits from using the cloud for the most popular business in the Internet – eCommerce. We will try to understand, if there is sense for a webstore owner to consider the possibility of transfer into the cloud.

In a classical data center there is possible such a situation, when there are no sufficient resources, which means the project loses the users who were not able to get access to it. It entails losing profit as well. On the other hand, when the load decreases, vacant resources stand idle, thus expenses for infrastructure support turn out to be wasted.

Let’s calculate lost profit for a hypothetic web-store. On the condition of having 10 customers per hour and average basket cost 100 dollars, one hour of down time will cost 1000 dollars. I’m not even talking about reputational risks – a consumer, who went to the rival during the down time, may never be back again. He also may lure his friends and acquaintances to another site.

Windows Azure allows developers to realize automatic addition and cutting off the resources, if necessary, through the special mechanism of resources management. It goes without saying that the owner of the site can add and cut off the resources manually using special portal of Windows Azure management.

Fatal failure, leading to the loss of all data or even a part of them, can entail eBusiness burst-up. Thus, reliability turns out to be even more important than lost profit from possible down times. In the cloud data duplicate automatically and store on different physical resources to secure the site owner from possible losses. Moreover, clouds allow storing the data even on geographically spaced sites. For example, Windows Azure automatically stores up to three data copies, at the same time it allows distributing data in Europe, America or Asia. It secures the data from serious failures.

When is it worth using the cloud?
1. Periodical load
In case the load happens at some definite time (working/off-hours), or definite days of the week (work days/ weekends), a site always faces the situation of resources idleness, when there are no load peaks. Consequently, it leads to extra expenses on unusable infrastructure.
2. Peaking load
Seasonal sales, holidays, promo actions lead to peaking site loads. Such loads are difficult to be predicted, while losses from possible down times or site irresponsiveness may be really huge.
3. Constant load growth
In case of constant load growth it is necessary to add resources. At the same time if load growth can not be precisely predicted, a site often lacks resources (site down time, failures), or there emerge lots of unusable resources (wasted expenses)

Cloud cost
For the most part of simple sites the cloud turns out to be more expensive than a usual hosting. At the same time cloud cost is explained by reliability of storing data, failures security, possibilityof elastic expansion and decrease of usable resources. Actual expenses depend on the site itself, its load characteristics, and can be calculated with the help of TCO Calculator.

Despite being more expensive, cloud hosting turns out to be more reasonable for most web shops, where constant availability and high quality service are really important.

Has anyone already transferred his/her site to the cloud? Please, share your experience and impressions, it would be really interesting to learn!

Thank you,

Nadya Klim

Nadya Klim
Nadya.Klim@altabel.com
Business Development Manager
Altabel Group – Professional Software Development

Social Media is a tool on the Internet. It is not a business. Like any tool, it can be used to enhance and promote an enterprise if you have a niche, a target market, a business plan and ambition. Let’s have a look at the preferences of LinkedIn community.

«I wanted to be flippant and say “all of them” but that’s not true and it wouldn’t be helpful. Pick the right tool (social media platform) for the job (communicating with people who might want to know) and you’ll have a better chance of reaching them. At this moment, my primary toolkit includes LinkedIn, Quora, Twitter, my blogs, my mailing list, Facebook.»
Erica Friedman,
Social Media Optimizer

«I pass the following experience on to others in the belief they may benefit from a similar approach:
In order to manage high volume of inquiries in federal government contracting, I set up a Google blog as an extension of my volunteer work that blossomed into a web site ($10 a year to buy and convert it from a blog to a domain in my name) containing the basics of entering and succeeding in the venue as well my books and articles on the subject for download via Box Net (also a free application). The idea was to refer clients to article links at the site to avoid repeating myself over and over to new business clients and still keep myself available for specific inquiries and problems. I linked everything together on “Linked In” and began answering questions at the “Answers” feature there as well as registering at many of the free applications for networking web sites on the Internet to see how that could benefit my work. Twitter, BlogCatalog, Facebook, Widgetbox, Friendfeed, Ning and similar free applications served my site well.
The Adsense Feature added cash flow. Roughly 30% of my clients began coming via Linked In or Linked In related networking.
The result has been heavy traffic, good efficiency in supporting in excess of 4000 counseling cases over the last 5 years and virtually no expense to me as a volunteer working for a non-profit organization.»
Kenneth Larson,
MicroMentor Volunteer and Founder “Smalltofeds”

«I normally use Facebook, Twitter and Linkedin. Sometimes I also use Pinterest and Google+.
You shouldn’t just share your content on these social media, but also others content. If you want to build relationships and generate leads with social media, you need share others content more than you share your own content. Other social media you could use to share content are Stumble Upon and Tumblr. These two social media are getting really popular. »
Mitt Ray,
CEO Social Marketing Writing

«It depends on your audience and the goals of the services/products that you intend to support.
I used Facebook as kind of a catch-all account because it has the most laid back aspects and it is where most people are. I use LinkedIn for the professional side and make sure that I have a business page. The personal page has done much more for me than my business page.
I have a blog to keep my name up front. And finally Twitter to support it all. Basically, anything I tweet posts on LinkedIn and Facebook.»
Tom Brown,
Social Media Specialist

«I use a networked approach to share content. Each network has a different readership and I cater the phrasing of the posting and the type of content to what that group wants to hear. For example, sharing a quick link and a catchy title on Twitter reaches a wide array of businesses and if it gets re-shared I can reach a lot of people I don’t know yet. On Linkedin I tend to share only business information that would be of use to my clients or potential clients and I phrase it in a business friendly way. On Google+ there is an advantage in creating circles for very narrow niches and posting information specifically targeted to the people. On this network it’s even more important to share unique information, not re-sharing what everybody has already seen. On Facebook I share more fun stuff because it gets shared more and so it keeps my Edgerank up on my Facebook page. Most of my followers are in the same industry as I am (Social Media consulting) so it’s easy to add information there that is fun, yet relevant and we all share each other’s links.»
Janet Fouts,
Social Media Coach

All in all primarily you shouldn’t think about which tools to use, but where your audience is. If they are on a mailing list, or a forum, you’d better go there. If they are on Twitter, or LinkedIn, you must be there. The point is to be where the people who might care about a topic are, just as the point of picking a tool in the hardware store is not which hammer is the best, but what task you need to do.

Best Regards,
Kristina Kozlova
Altabel Group – Professional Software Development


%d bloggers like this: