LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

Add Google Fonts to your Drupal 8 Theme
Adding Google Fonts to your Drupal 8 theme can be a bit more difficult than with Drupal 7. This is an example of how to install a font for every page of your website. Here is the method previously used to install Google Fonts on every page of the theme using Drupal 7: function MYTHEME_preprocess_html(&$variables) { // this function is deprecated in D8 drupal_add_css('//fonts.googleapis.com/css?family=Roboto+Condensed', array('group' => CSS_THEME)); }   But in Drupal 8 it’s completely different – we need to use the libraries method, which is a bit more complicated. First things first, we need to add a library in the last two lines of the theme.info.yml file. Remember that when adding the theme name you need to use all lower case for it to work properly. name: Test description: Test theme type: theme base theme: theme name core: 8.x libraries: - test/fonts   After that, a library file needs to be created – the library is defined as themeName/libraryName in the .info.yml. file. The library file is named themeName.libraries.yml. This file opens with a declaration of libraryName: fonts: license: name: SIL Open Font License, 1.1 url: https://goo.gl/UpQhAK /> css: theme: //fonts.googleapis.com/css?family=Roboto+Condensed: { type: external } css/myStyles.css: {}   The YML file will work even without a license section but it’s a good idea to mention it as well. The font’s URL has the HTTP: removed so that it’s agnostic to secure-or-not connections at runtime. If everything is done properly you should be able to view the adjusted lines of code. All you need to do now is implement the font into your CSS through a rule in the myStyles.css file located in your css folder.   ... Read more
Adrian Ababei / May 10'2016
Are Your Using These 20 Useful Git Commands? You Should!
Git is one of the most popular version control systems in the world. Since its release more than 11 years ago it became a must have for web development specialists and web development agencies alike. Here is a list of very handy Git commands which you can use for app development or web development:   Setting details git config --global user.name "John Doe" git config --global user.email john@example.com Use --global to set the configuration for all projects. If git config is used without --global and run inside a project directory, the settings are set for the specific project.   Ignoring file modes cd project/ git config core.filemode false This option is useful if the file permissions are not important to us, for example when we are on Windows.   See current settings git config –list   Clone a remote repository git clone https://github.com/username/somerepo.git This creates a new directory with the name of the repository.   Get help for a specific command git help clone   Create and Checkout a New Branch git checkout -b   Checkout a Remote Branch git checkout -b origin/   See differences between two commits git diff COMMIT1_ID COMMIT2_ID   See recent commit history git log   Abort Changes git checkout --   Modify the Previous Commit's Message git commit --amend   Partial Change Checkin git add --edit   Undo the Previous Commit git revert HEAD^   Temporarily Stash Changes, Restore Later # After changes have been made... git stash # Do some other things here #Re-apply the changes git stash pop   Delete a Remote Branch git push origin :   Pull in the Latest from a Shared Repository # Add a remote branch git remote add # Get changes from that branch git fetch   Pushing, deleting and tagging tags # Create a Tag git tag # Delete the tag git tag -d # Push Tags git push --tags   Making changes and creating patches git diff > some_patch_1.patch   Adding files and creating patches git add newfile git diff --staged > some_patch.patch   Applying patch patches git apply -v some_patch_2.patch     ... Read more
Adrian Ababei / May 09'2016
How to Build a Better Website: 8 Best Practices
Here is a list of 8 tips on building a better website in 2016: Keep your design fresh and simple The homepage is the most important part of your website – it’s the first thing a potential customer sees. Make sure your homepage provides visitors with all the information they requiere in order to make a purchase – what you have to offer, who you are and your contact information. Think about the fact that you have less than 10 seconds to make a good impression and what you want to communicate to potential customers. It’s a good idea to keep your homepage clean and easy to read – your overall text should not be longer than 120 words.   Make sure your website is fast Nobody likes to wait for pages to load. If your page fails to load quickly enough you’ll most likely miss out on a potential customer. There’s a direct correlation between website speed and the conversion rate of a website. Apart from that, Google also takes loading time into account – a slower loading website will rank lower than a fast loading website. So, if you want to have a great website you’ll need to consider your speed. Try getting a better host for your website, minimize HTTP requests, use a CDN, minimize CSS, JavaScript and HTML and you’re good to go.   Image optimization is important One of the most important parts of a website is images – these tend to be very large and take a considerable amount of bandwidth, effectively slowing your website. By using a few tools you can make your website faster and also save bandwidth. Image optimization is based on choosing the right size and format, using images only when it is necessary and finding a balance between weight and quality.   Build a mobile friendly website Mobile browsing recently surpassed desktop browsing so it’s extremely important to have a fully functional mobile friendly website. Luckily enough, it’s not hard to modify your website and make it responsive. You can simply use CSS media queries to get the job done.   Using webfonts instead of icons is a great idea Using webfonts instead of icons is extremely easy. All you need to do is download a font or create your own. Once that’s done, you’ll need to upload your files to your webserver and add the downloaded stylesheet to your website – you can increase performance by copying the stylesheet’s content directly into your website’s style.css file. Now, all you need to do is just drop the markup in the html file. If you prefer SVG icons, you can use those as well in the same way.   Search engine marketing & search engine optimization are important SEM and SEO should be your second priority – search engine marketing or search engine optimization campaigns can either make or break a business, thus they are two extremely important concepts especially for small businesses. When in doubt, always seek professional help – it can help you on your road to success.   Content is critical Bad content will just make visitors leave your website. Pay attention to your headlines as these can be the difference between a visitor leaving your website or staying to read the rest of the content. It’s a good idea to write catchy and relevant headlines so that visitors can quickly scan it and decide if it’s worth the read or not – large blocks of text simply will not do. Keeping your content fresh and relevant will make visitors turn into customers quicker.   Get a high quality hosting service You can’t have a high quality website without a high quality server – if you want a fast and reliable website you’ll have to use a better hosting provider. Look for a hosting provider with unlimited bandwidth, 24/7 customer service and dedicated servers. ... Read more
Adrian Ababei / May 06'2016
Web Development Tools Essentials for any Web Developer
Web development can be a real hassle without any help from tools, friends or services. That’s why we’ve set up a list of web development tools that can save you many hours of work. Shrinktheweb Shrinktheweb.com helps web developers take automatic screenshots from the server they’re working on through server-side languages and complete plugin integration. With as little as 10 bucks a month you’ll get custom size captures, full length captures and the private label service which lets you add your own logo as the placeholder – you’ll be able to use the image for marketing purposes. Muffingroup The BeTheme is a Muffin theme that gets your WordPress website up and going in a matter of minutes, thanks to its lightning fast drag and drop builder which offers plenty of possibilities. The theme also offers a layouts generator which can provide you with unlimited layouts for customizable pages – you can pick between different skins, grids, layouts, headers and logos. Muffingroup is one of the best web development tools out there – it offers over 200 shortcodes which you can use for your pages, a custom font uploader and plenty of template pages for help pages, gallery pages, about us pages and features pages.   Simbla, One of the Must-Have Web Development Tools Simbla is a powerful site-building platform with plenty of features. It’s one of the simplest web development tools available on the market today – it features a drag and drop system which can help you build code free websites in just a couple of minutes. Thanks to Bootstrap3, all websites built in Simbla are mobile responsive. Flyzoo.co Flyzoo is another interesting web development tool – you’ll be able to create embeddable group chats which you can use for different pages or layouts. All you have to do is log in to Flyzoo, click on setup, group chats and then get embedding code – you’re ready to go! Just copy the code into your page and adjust its height and width accordingly. Group chats are a great way for web developers to improve user engagement. Iconfinder for web developers Brand icons can be difficult to create but even so, icons are an important aspect of marketing as well as web development. Iconfinder can help you get in touch with a professional icon creator. Fill out a design brief, some specific details, target audience and other data about your brand or website and you’ll soon start receiving price quotes from designers. Themify Themify is another quick web development tool. You’ll start by importing a layout, replacing images and text and that’s it! Themify only works for WordPress though, for other more complex projects you’ll need to use other tools. Pidoco.com for web development Pidoco is an online prototyping tool and a real time saver any web developer. You’ll have over 400 elements in the library to play with and plenty of communication features such as sharing, commenting and so on. With Pidoco just about anyone can participate in critical design decisions by seeing the prototype in action. Optinmonster Optinmonster is an essential lead generation tool which you can use for your projects. Over 275.000 websites use Optinmonster with its built-in analytics, page level targeting, A/B testing, exit intent technology and the drag and drop builder. Building mobile responsive forms takes just a couple of minutes with Optinmonster, making it one of the most useful web development tools. actiTIME ActiTIME is a great time tracking solution for a small web development team. Users are able to track the time spent on various tasks, record business trips and days off. Team leaders can create projects, assign them and keep track of the project’s costs and deadlines. Thesquid.ink Squid Ink is another web development tool worth mentioning – it offers a huge library of over 2000 icons, divided into three types: solid, line and flat. There are many different formats and categories so you’re sure you’ll find the right icons for your web development project.   Bowtie Database driven websites can have security risks and require constant maintenance to boot. Bowtie offers a faster and cleaner solution which includes all the features required to share and publish content with ease. Web developers can also have access to version control through git.   48hourslogo.com One of the most popular web development tools is the 48hourslogo platform – you’ll get a beautiful looking logo for a reasonable price and in just two days. ... Read more
Adrian Ababei / May 04'2016
Why Use a Content Delivery Network? Because It Boosts Conversion: Here’s How...
What is a CDN?   A CDN or Content Delivery Network will make your website load much faster for users from all around the world. The system is simple – instead of having a single host, the CDN allows for multiple hosts all around the world and when a visitor logs in to your website they will see it through the host that’s closest to them. Starbuck’s website loads very fast no matter where you travel – they use CDNs as well.   Web hosting As you all know, each website requires its own web host in order to work properly. After you build your website, the hosting will hold all of your website’s content on a server in a data centre with other servers. These are large warehouses where companies rent servers to keep data on.   Web hosting with content delivery network The content delivery network is like an add on for your web hosting – it doesn’t replace it fully but it enhances its capabilities, effectively making your website faster. When using a CDN, the network will copy your website and store them in different servers around the globe. When a visitor comes to your website, it will now load from different countries such as the USA, Canada, England, Germany, France, etc. It will automatically load from the server that’s physically closest to your visitor.   How can this help load your website faster? All your website’s scripts and images are loading from different servers located in different countries across the globe but how does this speed up your website? Latency! Think that latency is a piece of string – the longer the string the greater the latency and the longer it takes to get to the end of it. The same concept can be applied to physical distances between data centres – the further the visitor is from the server, the further the data needs to travel and this can create delays in loading. If a user visits your website from Germany but the site’s hosting is in Atlanta, your website will still load very fast because of the data centre in Berlin. This reduces latency by a great deal.   Do you need a content delivery network? This question is often redundant as CDNs offer plenty of advantages including:   Better performance One of the first reasons why you should implement a CDN is the better performance – your website will load much faster to users regardless where they are located in the world.   SEO perks Google loves fast loading websites and takes loading speed into its ranking algorithm. With a faster loading website you’ll also get lower bounce rates and increased conversion rates, as well as higher ranking. Your content will also be indexed much faster by Google.   Higher conversion rates A one second delay in page response can result in 7% lower conversion rate – take that into account for a moment. If you increase your website’s speed by just 3 seconds that means your conversion rate will jump 21%! That’s huge!   Content delivery networks are affordable You might think the system is extremely expensive but that’s not the case at all – CDNs are quite cheap and well worth the investment.   Websites using content delivery networks are reliable Technical difficulties can be a real drag but with a CDN those problems are long gone – If one server goes down, the closest server to it will take its place. This ensures a more pleasurable web experience for your visitors.   It’s easy to switch to a CDN CDNs are not complicated to setup – they can be used on just about any platform in just a couple of minutes – Magneto, Joomla, Drupal, Wordpress, etc   Conclusions Content delivery networks are especially valuable to websites or companies with international clients or visitors – with minimal investment costs and fast returns it’s one of the best ways to grow your business.   ... Read more
Adrian Ababei / May 03'2016
How to Write (More) Predictable and Maintainable CSS: 9 Developer Tricks
CSS is very flexible since it doesn’t impose on how you should write your CSS rules but putting CSS rules in different spots can make your stylesheet less predictable than what you’d want to go for. Maintainability problems will most likely arise when the CSS selectors cascade – this applies to other CSS pre-processors such as Sass and LESS as well. In most projects the SASS code follows the DOM structure – this means that the CSS structure is linked to the DOM. This can result in larger file sizes and the component becomes non-reusable. If the markup needs to be changed or moved, the CSS rule needs to be changed as well. Using ID selectors could lead to maintainability problems. At this point most developers would try to write a stylesheet with very specific rules – since there can be only one single element using the same ID, these are not reusable. Other aspects include ever-longer CSS files – some have over 1000 lines of code.   Think Components Think about the fact that a web page is composed of multiple components. Let’s take a services page as an example. The page is composed out of three components: Services is the entire services section Container is simply a generic container that limits size and adds some padding Service-item is a single service item   Styling VS layouting In order to make a component easily reusable and to make the CSS layout more manageable, the concepts of styling and layouting need to be differentiated. Styling means changing paddings, borders, fonts and colours. All these changes take place inside the component itself and hence do not interfere with the layout or structure of other components. The following elements fall into styling: Text align Padding Font Colour Border Background   Layouting on the other hand implies moving elements around your page and sizing them – this can affect other elements on the page. The following fall into the layouting category: Height and width Left, bottom, right or top Transform Position Margin Float Clear   Do not layout yourself You shouldn’t layout yourself because a component should style itself but give up the task of layouting to its parent. What this means is that the component doesn’t need to float on its own or have its own margins but the parent-component should layout its child components. This makes it much easier to build responsive user interfaces because the layout itself becomes more predictable. There’s no need to worry if two components look good on a screen if the parent component layouts its child component appropriately.   Components should be simple If your components have too many lines of code, you should create a different component to handle it all. In the same time, having too many components can turn into a maintenance burden – hence the option to create sub-components. Nesting subcomponents together is not allowed, so if the subcomponent needs to have its own sub-components then it should become a top level component. These rules are enforced in order to keep components simple and working smooth.   Component inheritance Sometimes a component is a specialization of another component. Adding modifier classes to the HTML markup could make it redundant and not friendly to refactoring. By using Sass we can use @extend in order to extend other components. Eg: The “services” component is a specialization of an inverted section. In this case we use @extend only for component inheritance, which is a valid use case. It’s possible to use either @extend or @mixin as long as both are used in a controlled manner. The bad thing about using @extend is that it won’t necessarily work for generated CSS files and you can’t extend from inside a @media query. If it needs to be done, the CSS structure needs to be reworked.   File structure CSS files with a large amount of lines are very hard to work with. In some cases, depending on the project’s complexity, it may be possible to put all the CSS code in a single file. For larger projects it may necessary to organize assets via controller.   Directory structure Having stylesheets with a large number of files can be very difficult to handle, so grouping them accordingly is crucial – keep in mind that each project is different and each directory structure needs to be different. Try to find a directory structure that fits your current project. Sometimes you can put all the CSS in a single directory but at other times you need to organized them by type, media type or screen size.   Wireframe – Design – Wireframe Sometimes it’s a good idea to draw another wireframe from the already finished design. But why? With the wireframe in place we’re able to look at the page as a whole, not just little portions. Naming and componentization – viewing the whole page in a glance lets you name sections easily Hierarchy and structure – it’s easier to structure your pages into sections or subsections with the wireframe in place Margins – with the wireframe you can plan your paddings and margins more efficiently   Responsive design Breakpoints can be defined for desktop, tablet, mobiles or they can be created based on content. Creating breakpoints based on content means that the site will look good on any screen size. Start with the smallest screen size and resize your window accordingly. When a component looks out of place, modify it and create a breakpoint there. Repeat the process until you reach the largest screen size you want to support.   Conclusions These are the basic ways to write more predictable and maintainable stylesheets – by applying these tips you’ll save yourself a lot of tweak work in the long run. Happy coding!   ... Read more
Adrian Ababei / May 02'2016
How to Choose the Best OS for Web Development: The 4 Major Operating Systems’ Pros and Cons
Over the years we’ve heard plenty of arguments regarding the best OS for web development, hence we’ve came up with a list of advantages and disadvantages of the most popuar operating systems – Windows, Linux and Mac OS.   Features available on all platforms Most developer tools, including IDE’s are available on all platforms Most platforms can run another platform within themselves through a 3rd party app All platforms can use Git Most languages can be used on all platforms   Windows OS Features Most services or products are specifically designed for Windows Some servers use this platform It’s not POSIX Has plenty of security issues Can use Photoshop Very few useful apps are pre-installed Major upgrades are slow – 2-3 in a decade   Mac OS Features Can use Photoshop Too many features are pay-to-use Is POSIX Visually stunning Major upgrades are often – every few years and easily installed Very few servers use this platform Many useful apps are pre-installed Installs programs through the GUI by default   Linux OS Features Many servers use a variation of this platform Is POSIX Offers Photoshop alternatives but no Photoshop Is not user friendly Most apps are free or open source Installs apps and programs through CLI by default Has a few useful applications pre-installed Major upgrades are often, every one or two years   Conclusions: Which Is The Best OS for Web Development After All? All operating systems have some advantages and disadvantages and in the end it’s a good idea to pick the one you feel most comfortable with or the one which benefits you the most. ... Read more
Adrian Ababei / Apr 29'2016
What Are the Top Web Development Tools for Mac OS X that Shouldn’t Miss From Your Toolkit?
Every expert from every field has his or her own tools of the trade and web development is no different – web development tools are one of the most important factors to every project and these tools could mean the difference between finishing your project on time or passing multiple deadlines. Luckily enough, plenty of top web development tools are available for just about every platform. Here is our list of OS X apps which you should include in your web development tools box:   Browsers for web development One of the most important tools for web development is a browser – you’ll need to view your website after you created it right? But it’s not so simple – you will need to test your website for many browser versions, including beta and nightly builds. With that taken into consideration, you’ll most likely need Opera Next, Chromium, Chrome Canary, Firefox Aurora, and Firefox Nightly.   Koala Koala, apart from its cute name, is another nifty web development tool which is used to compile CoffeeScript, Compass, Sass, and LESS into a browser-compliant format. If you’re using any of these techs, Koala is definitely a must.   Anvil for web development Anvil is an interesting free app which allows web developers to create .dev domains. You’ll see it as a new icon in the OS X menu bar and you can turn it on or off, create domains or add your projects to it. If you’re looking for a tiny web development tool to manage or work on your local websites with, Anvil is perfect.   Keka When handling multiple files, you need a reliable compression service to help you along. Most web developers may use ortar, rar or zip but Mac has its own built-in feature to extract and manage these formats – this service is rather limited so you’re better off with Keka. Keka is a free open source OS X app for file compression and extraction. Keka supports zip, rar, ortar, ISO, DMG, Tar, Gzip, 7z and it can extract to PAX, CAB, EXE and RAR formats. Keka allows you to split compressed files into different parts of specified sizes, apply password restrictions or automatically delete source files after extraction or compression.   Web development & Web Sharing Since Apple removed the Web Sharing option from the OS X system preference, you might want to install the Web Sharing plugin. This little plugin will allow you to host local websites under the local host address. Once you install it you’ll be able to see a new panel in System Preferences – here you’ll be able to switch web sharing off or on.   File compression, One of The Very Top Web Development Tools for Mac OS X We talked about Keka before but there are two ways you can use it to compress files. You can either download this small web development tool and install the services contextual menu or you can drag and drop your files directly into the Keka app window.   Sequel Pro MySQL is one of the most popular databases in the world – plenty of websites rely on MySQL for storing and managing databases. If you are using OS X, Sequel Pro is a must-have for web development. It’s a native OS X app built in Cocoa and it also features a nice and friendly GUI. With Sequel Pro you can create, filter databases, import, export, remove, create users and execute MySQL queries.   The iPhone Emulator All web developers need to take mobile users into account when building their websites, hence the need for a web development tool that can be used to test websites for specific platforms. Devs can use physical tablets or phones or they can go for the easier option – a simulator like iPhone Simulator. All you need to do is just install Xcode from the AppStore and you’re done – you have another web development tool in your little toolbox.   Icons8 If you’re looking to use icons, Icons8 is one of the top web development tools that you can use. Just install Icons8 and you’ll be able to search through its over 2800 collections of icons. Once you find something you like, you’ll be able to copy it to Finder, Xcode or Photoshop.   Github and SourceTree Even if you’re building a small website or a presentation website, you’ll need a control version system to track your revisions and changes to the project’s code. Github is the most popular service for version control and you can install it on OS X as well. SourceTree is another mentionable service – both of these services are the backbone of any respectable web development agency.   Poedit Poedit is the best web development tool you can use for translating websites into multiple languages. Not only that but you can translate plugins and Wordpress Themes as well with this little app.   Automator Automator is a web development tool that’s pre-installed with OS X. This little app allows users to automate tasks such as cropping multiple images at once, creating thumbnail images, changing file extensions and renaming files in batch.   Dash Dash collects documentation for a lot of the popular programming languages, including LESS, Sass, jQUery, CSS3 and HTML5. Users can search through code snippets, functions, syntax, and other valuable information. ... Read more
Adrian Ababei / Apr 28'2016
Antitrust Charges Against Abusive Android
The European Commission on Wednesday charged that Google breached EU antitrust rules by seeking to maintain and expand the dominance of its Android operating system. "A competitive mobile Internet sector is increasingly important for consumers and businesses in Europe," said the EC's antitrust chief, Margrethe Vestager. "Based on our investigation thus far," she continued, "we believe that Google's behavior denies consumers a wider choice of mobile apps and services and stands in the way of innovation by other players, in breach of EU antitrust rules." Throttling Competition In its statement of objections, the commission alleged Google violated EU antitrust rules in the following ways: • Requiring manufacturers to preinstall Google Search and Google's Chrome browser and requiring them to set Google Search as default search service on their devices, as a condition to license certain Google proprietary apps; • Preventing manufacturers from selling smart mobile devices running on competing operating systems based on Android open source code; and • Giving financial incentives to manufacturers and mobile network operators on condition that they exclusively preinstall Google Search on their devices. Google's business practices may lead to a further consolidation of the company's dominant position in general Internet search services, the commission noted. Those practices may affect the ability of other mobile browsers to compete with Google Chrome. They hinder the development of operating systems based on Android open source code and the opportunities they would offer for the development of new apps and services, the commission said. Internet Explorer Redux The commission's action is a response to complaints it has received from Google's competitors in Europe. In 2013, FairSearch Europe, a group that includes Oracle and Nokia, filed a complaint with the EC about Android. In 2014, Aptoide also filed a complaint. Consumer Watchdog is another group supporting an investigation into Google's Android dominance. "This is the same kind of thing that Microsoft did when it bundled its browser in with its operating system," said John M. Simpson, director of Consumer Watchdog's Privacy Project. "While Google makes Android freely available, it's got strings that come with it that unfairly favor Google's apps if you're going to use the Android software," he told the E-Commerce Times. "Consumers can go and find other apps and install them," Simpson added, "but that gives Google a leg up on Android devices." Unfortunate Action Google is not stifling the Android marketplace, according to Daniel Castro, a senior analyst with the Information Technology & Innovation Foundation. "This is an unfortunate action because it does not seem like there has been any consumer harm from the allegations and there is strong competition in the mobile OS environment," he told the E-Commerce Times. "It is hard to see how Google can lock out any competitors since the switching costs of installing a new app are so minimal -- 30 seconds to download and install a rival app," Castro said. One reason Android enjoys widespread popularity is its openness, he explained, which allows for experimentation while also providing standardized features across platforms for users. "It would be unfortunate if the EU punishes Google for actions it takes that create better consumer experiences because it believes these actions are anticompetitive," Castro said. "This would create a risk," he continued, "that tech companies would design products to meet arcane competition regulations rather than consumer needs." U.S. Probe Since the Europeans announced their initial probe into Google's Android monopoly last year, there have been murmurs of a similar investigation by the U.S. Federal Trade Commission. In September, for example, Bloomberg reported that the FTC had reached an agreement with the U.S. Justice Department to investigate whether or not Google was stifling access to Android by its competitors. That wouldn't be the first time the FTC probed Google. It looked into Google's search dominance in 2011 and 2012. That investigation ended in 2013 with Google changing some of its business practices. However, last year The Wall Street Journal reported that the commissionignored the advice of key staffers to sue Google because they believed it was doing harm to consumers and innovation. "The FTC completely blew its investigation on the search monopoly," Consumer Watch's Simpson said. "They completely failed to do their job there." In 2014, Google spent US$16.8 million on lobbying in Washington, he added. "You don't spend money like drunken sailors on lobbying unless you see results." Source: http://www.technewsworld.com ... Read more
Adrian Ababei / Apr 27'2016