Originally designed in 1974 and launched internationally in 1980, Rubik’s Cube is a design classic that’s sold by the hundreds of millions. Over the years, it has delighted – not to mention infuriated – countless people around the globe.
The original cube was an extremely clever piece of design and engineering that defied improvement; it’s been refined so that speed-cubers can turn it even more times without the cube falling apart, but basically this is one of those situations where the design thinking was absolutely bang on the first time. Pick up any Rubik’s Cube, or indeed any imitation cube, and you know exactly what to do with it – even if you don’t know how to solve it. Who needs a high-tech update when the original just works?
The GoCube – like the Rubik’s Cube, only smarter
Well, it turns out that lots of people do. Designed in Israel by Tel Aviv company Particula, the GoCube is pitched as the Rubik’s Cube reimagined with brains. It still behaves the same as a standard Cube, but now has loads of clever high-tech features designed to help you learn how to solve it, improve your times and even race against friends online.
The GoCube tracks its movements using built-in sensors, and connects via Bluetooth to an app that displays your cube on your phone or tablet, and also features various games and challenges to improve your cube handling and instincts.
The GoCube app will help you solve the cube then improve your times
It’s set to retail from an eye-watering $119 for the basic GoCube, but if you want to get your hands on one at a substantial discount, you’d better hurry over to the GoCube Kickstarter, where you can save around 40 per cent on various GoCube packages. The GoCube might sound expensive but that’s not holding anyone back; it’s torn right through its original Kickstarter goal of $25,000 and has clocked up over $800,000 of pledges. There’s now less than 24 hours left to run on the campaign.
There are many ways to use your design and illustration skills to generate extra income, over and above picking up freelance work. For many creatives, profit isn’t top of the agenda when planning a side project. It’s a bonus, rather than the main goal. However, even if side projects don’t bring in extra income immediately, the boost to your graphic design portfolio can lead to work indirectly – or make money in unexpected ways further down the line. Here, we explore four ways designers have branched out and turned a sideline project into a big earner.
Diana Hlevnjak sells patterns and textures via Shutterstock and iStock, as well as her own site
Diana Hlevnjak was working for a small web design firm when personal circumstances led her to relocate to another city. She managed to work remotely for a while, but times were tough and her contract was terminated shortly before the company shut down.
Hlevnjak had been selling digital assets through stock libraries for some additional income, but there wasn’t enough to cover her costs. She focused all her efforts on the task to see how lucrative it could be. “I liked the fact I didn’t have to deal with sales, clients, meetings and similar tasks that introverts don’t like,” she confesses. “It also meant I could work from anywhere.”
When she first started out, the returns were low, but gained momentum as she kept putting up more and more products on more and more platforms. Hlevnjak’s focus was on graphic resources such as patterns and textures, an area she’s passionate about. This is crucial, she argues, to stay motivated when building up a large portfolio of assets.
I liked the fact I didn’t have to deal with sales, clients, meetings and similar tasks that introverts don’t likeDiana Hlevnjak
She watches trends across illustration and design, as well as fashion, interiors and architecture. “Last summer was big on monstera and cacti plants, which came from Scandinavian interior design,” she says. Although her work is still sold on Shutterstock and iStock, Hlevnjak points out that the volume of assets on the large libraries means things that are on-trend one month are soon buried beneath new trends.
She has instead been focusing her efforts on more niche marketplaces such as Creative Market, where watercolour illustrations and textures tend to fare well, as well as her own website: Polar Vectors. The strategy has paid off: Hlevnjak has successfully managed to turn an occasional sideline into her primary earner. “As a freelancer, I am accepting less and less client work, and it’s become a minority of my revenue,” she reveals.
02. Teach a Skillshare course
Online courses are a practical option if you have a busy schedule
Following her success on the conference circuit and growing love of public speaking, Jessica Hische decided to turn her hand to teaching – and her hectic schedule meant an online course was the best option.
“I haven’t been in a position to commit to teaching at a university – I’m hardly ever in one place for 15 weeks straight,” she explains. “Skillshare was a good in-between of an on-stage talk and a more intimate classroom. You can pour more into an online course than you can a one-hour talk, but it does scale, unlike in-person teaching.”
You can pour more into an online course than you can a one-hour talk, but it does scale, unlike in-person teaching
Hische’s first course was based on her Penguin Drop Caps book project, which was itself inspired by one of her best-known side projects: Daily Drop Cap. Although Hische was responsible for putting together the course content, Skillshare took care of all the “production heavy lifting”, including filming and editing. Her second course took a more general angle, focusing on the logo development, feedback and the revision process.
“It’s been a very good source of income over the years, especially when it first launched and they had a different model for paying teachers,” she reveals. “Initially they sold tickets to each course and teachers made 75–85 per cent of the ticket cost, but a couple of years in they switched to a membership model that does revenue sharing based on class popularity,” Hische continues.
“But not every teacher earns a lot from online teaching platforms,” she warns. “You do really need an audience that’s already interested in your work to take that leap to starting a class.”
03. Speak at events
Even if they don’t pay, speaking opportunities can open plenty of doors
A common thread evident with many of the creatives featured here is public speaking – not just as an income stream in and of itself, but also as a springboard to other opportunities. Jessica Hische, Jon Burgerman and Gavin Strange have all clocked up their fair share of design talks around the world.
“I was first asked to speak about my work because of Daily Drop Cap,” recalls Hische, revealing yet another major opportunity spun off from that one killer side project. “After gaining a bit of experience, the demand snowballed. I was very nervous at first, but with a little practice it has come more naturally to me. I became a good speaker, and conferences are always on the hunt for strong female voices in their lineup,” she points out.
“I try not to do speaking jobs unless I’m paid, or it’s for a good cause,” reveals Burgerman. “It’s work, so I need to be paid! Otherwise there are books and movies I’d rather be catching up on.”
Conferences are always on the hunt for strong female voices in their lineupJessica Hische
While talks at schools, colleges and non-profits are rarely paid, full-blown conferences tend to offer a fee, plus travel and accommodation. “Fees range between $1,500–10,000, with almost all events that I enjoy talking at falling on the lower end of that range,” explains Hische. “The more you’re paid, the more likely it’ll be a very business-like conference, rather than a looser creative event.”
She has several ways of figuring out the right speaking fee, including taking into account how much prep time is involved and how long she’ll need to be out of the office.
Like Hische, Strange insists on transport and accommodation to be paid as a minimum, and always asks for a speaker’s fee for more commercial-focused talks for businesses. “Depending on the size of the festival, some pay and some don’t,” adds Strange. “Over the years I’ve become comfortable having that conversation. They’re nice bonuses to have, but I didn’t get into speaking for money,” he concludes. “It’s the joy and excitement of having the privilege to do so.”
04. Write a book
Gavin Strange turned reams of talk notes into a book
After almost eight years of writing talks – a totally new one each year – Gavin Strange ended up with a vast bank of written notes. After speaking at The Do Lectures he was handed a book by David Hyatt, co-founder of Do. “I loved it because it was so inspiring, but it was also formatted a lot like how I structure my talks,” he recalls. “For the first time ever I thought, maybe I can write a book?”
He got in touch, and the rest was history. Working closely with Miranda West, editor and founder of the Do Book Company, his book – Do Fly – took shape. Although profit is never high on the agenda for Strange’s side projects, Do Fly provides him with some royalties every quarter, and has recently been licensed to indie publisher Chronicle Books to distribute in the United States. Appetite duly whetted, Strange is already thinking about his next book – and how it could be timed to coincide with turning 40 in a few years’ time.
05. Design products
Jon Burgerman has transferred his designs onto a range of items
Over the years, Nottingham-born, NYC-based doodle master Jon Burgerman has dabbled in a dizzying array of self-branded merchandise, from toys, prints, books and T-shirts to mugs, laptop sleeves and wallpaper.
Of course, he had to start somewhere and learnt a few lessons the hard way: “Always make things in small batches first, and see how your market reacts,” speaks the wisdom of experience. “Don’t make a thousand T-shirts. Make 10. I think there’s a basement in Nottingham that still has a few boxes of my unsold T-shirts in it,” he winces.
“Hand-make stuff to keep the manufacturing costs down for low runs,” he continues. “There are lots of print on-demand sites, so make some test pieces, show them to people, and see if anyone will buy them. Go from there. Dead stock can be costly!” Advertisement
Don’t make a thousand T-shirts. Make 10… Dead stock can be costly!Jon Burgerman
Burgerman also advises thinking about distribution from the outset, however small-scale your operation. “It’s super-easy to make stuff, but how are you going to sell it? Where will people buy it? And how are you going to ship the stuff out?” he reels off.
“It’s not fun spending all day and night packing up little toys into custom-made boxes, then waiting in a huge Post Office queue to send them out,” he adds. “Then there’s things like dealing with missing packages, and grumpy customers who want everything delivered the minute they place their order.
It’s been 20 years since Apple launched the first in its series of game-changing personal computers. Instantly recognisable thanks to its unique shape and brightly coloured, translucent monitors, the iMac G3 provided Apple with a much-needed shot in the arm.
To celebrate the anniversary, phone accessory manufacturer Spigen is bringing the design of the iMac G3 to the iPhone X with a series of fun cases.
Unveiled through a suitably charismatic presentation by Steve Jobs on May 8 1998, the iMac G3 would go on to set itself apart from the pack with a range of colour options including Bondi Blue, Blue Dalmatian and Flower Power.
Sir Jonathan Ive, the man behind the look of the iPod, is credited with creating the groundbreaking industrial design. Jobs summed it up best when he said “it looks like it’s from another planet. A good planet. A planet with better designers.”
Spigen has proved that there’s still a strong market for brightly coloured tech packed with turn-of-the-millennium appeal as its iPhone X Indiegogo campaign has already smashed its target.
The manufacturer’s Classic C1 phone cases are described as ‘familiar but extraordinary’. Tapping into the nostalgia of people who grew up with the original iMac G3, these clever cases shrink down the desktop’s design elements into something that you can carry around in your pocket.
“We took the chance to deepen what we already knew of the iconic computer,” says Spigen on its fundraiser page. “We personally bought, cleaned up and re-examined every part of the classic computer to bring it back for devices of today.”
The phone cases match the original colours of the first iMacs
With a month to go until Spigen’s Indiegogo pledge comes to an end, there’s still plenty of time to snap up one of these cases for as little as $25. And with this phenomenally popular project having already sailed past its goal by 1139%, you don’t even have to worry that your pledge will go unrewarded.
If you’ve been hard at work in your spare time creating stunning paper art or impressive poster designs, selling your merchandise online can be a quick way to make extra pennies for your efforts.
However it’s not as simple as sticking it on the internet and hoping people hand over their money. In fact there’s a fine art to tempting people into buying your wares – especially now the lower barriers to entry mean anyone and everyone can sell their creations online. Luckily this crash course list of advice will get you ready for the fast-paced world of online design retail.
Here we’re focusing on Etsy, but there are other places geared up towards selling designer-maker goods – take a look at our list of great places to sell your design work online for more info. And if you’re looking to start from scratch, it’s worth reading our in-depth guide to how to succeed as a designer-maker for success stories and advice.
01. Get product photography right
It can be helpful to include something to indicate scale
Images are really important when selling on Etsy – or anywhere else online. It’s the only way your customers are able to see what you’re selling, so make sure your photos are clear, well-lit and appealing. In particular, make sure your backgrounds are plain and neutral – keep the focus on your products. However, it can help to include something for scale in one of your photos. For example, RockCakes shows her jewellery on a person (above), so prospective customers can see how big it is.
02. Use search terms in product titles
Use the Title field to add extra info for your customers
On Etsy, you need to provide each listing with a title. This is a great place to add keywords and search terms that your buyers will use to find your item.
Some sellers mistake this as a place to title a work with a collection or item name – for example, calling a handbag ‘the Julia’ and leaving out important words that help search engines recognise the item, such as style, colour, material and manufacturing method. When writing your title, be sure to include descriptive words that your customers will use.
03. Experiment to see what sells
These pins from Finest Imaginary are a summertime purchase
Something successful sellers do is focus on their businesses. They are constantly experimenting and figuring out what works for them. This includes trying out new products, as well as new photos and new ways to describe their items.
They also keep an eye on the results. What worked this year may not work next year, and seasonality and larger trends can play a big part in how well a shop does, so never stop experimenting.
04. Set targets for improvement
Abi Overland offers a small but popular range of products on her Etsy site
It’s good to set small goals over the course of a week. For example, you could start by opening your shop with one item and then add another item each week. It’s also worth signing up for the Etsy Success newsletter, which provides tips from top sellers on the site. Good luck!
If you’re an everyday computer user, you probably heard about “Java” at some point in your life. However, not many people know what Java is really about, and even less know how to program and write code in it. On the other side, Java is one of the most demanded coding languages, and if you’re looking forward to being a developer, or you just simply want to learn to code, picking Java is a good start. I recommend learning HTML first as the knowledge of it will give you a good foundation for Java.
The internet is full of learning platforms, and there are many for learning to code in Java too. This article will help you choose a platform that suits your needs and the one that will help you nourish and learn your programming skills in Java.
Codecademy
This website is offering you many different courses. Mainly because this is basically an education company, and the main focus of the website is to teach students different coding languages. The HTML and CSS courses are definitely the best here, but Java is also really good. Both beginners and experienced programmers can use this website since it has free courses for both categories. Java courses are completely free on Codecademy, you just have to create an account.
CodingBat
Another great resource for learning and practicing to code in Java. All you have to do is to register, and the rest is on you. The registration will give you the ability to track your progress. It’s a great site for beginners since there are a lot of programming problems for beginners like recursion, logic, array, and string.
I highly recommend you to deal with recursion questions on this website since it is one of the most difficult concepts you have to master.
Codegym
If you want to be a successful developer, you have to practice a programming language you work with a lot. Of course, you can find some useful stuff in books, but without practice, you’re nowhere. If you want to master a programming language you will have to practice enough to be able to deal with all types of situations and problems. Exactly this is why Codegym is one of the best ways to learn Java in my opinion.
This platform gives you a lot of practice while learning Java. You will have to deal with over 1200 tasks while you’re learning, and this will help you deal with different situations. An easy, but effective way to learn a programming language, and the best thing about it–it’s totally free!
Coursera
Coursera is a good place to start learning to code in Java if you’re looking for some well-known tutorials. Tutorials cover a huge variety of topics, such as different programming languages, data science, and others. This website will provide you with video lessons for learning Java in different languages: English, French, Spanish, Russian, and Chinese.
In addition, you’re also provided with subtitles if you don’t know any of the above languages. Currently available subtitles are for German, Korean, Turkish, and many more.
Java Code Geeks
This learning platform is allowing you to learn Java, but you’re also able to download free examples of code you may need. This is what differentiates this website from others and why it is a trustable resource. You’re able to learn a couple of Java variants on this website such as enterprise Java, desktop Java, and core Java.
This website also has some e-books and useful documents in its directory. Of course, all of them are downloadable and are a trustable source of information.
Oracle
Oracle is a software development giant, and you probably know this if you’re interested in coding in Java. This company has free online Java tutorials for beginners and these tutorials are awesome. They are regularly updated and you’re able to learn how to create apps in a simple and easy way.
Oracle allows you to learn the basics and find out what is GUI and how to create it. This website will definitely teach you how to think like a programmer.
Sololearn
Another website with completely free courses for learning Java. The total number of lessons is 65 and you will go through 6 modules in order to complete all of them. It may not be as easy to learn to code on this platform as it is the case with others, but it is definitely a useful and reliable resource. Covering topics such as arrays, conditionals, loops, exceptions, objects, lists, are all going to help you learn Java.
Skillshare
Skillshare classes allow you to learn Java completely for free. The reason some people chose this platform over others is the feature that allows you to sort lessons by length and then watch the shortest ones if you’re busy with other things.
Codementor
Codementor is a site that offers you courses, tutorials, but also valuable tricks and tips for Java. This website will provide you with different programming tasks, coding articles, and Java-related news that you have to keep up with in order to be a successful developer.
Studytonight
As already mentioned numerous times, learning Java can be really hard. But this doesn’t mean that it can’t be fun, right?
It’s very important to pick the website that suits you well, and Studytonight is one of the best websites for learning Java, mainly because it has really good examples. This platform will help you learn more about practical Java problems and you will learn a lot from the tutorials provided. One of the biggest pluses is the coding skills test section
In conclusion
Learning Java is definitely not easy. But, if it is something you’d love to learn, it is definitely possible. You can learn this programming language on your own and completely for free from some of the sources mentioned. I’d recommend you to avoid getting paid lessons since the main purpose of Java is to enable people to learn and use programming language completely for free.
Angular 7.0 is here. Continuing the trend set by earlier releases, migrating to Angular 7.0 is easier and faster. The latest release of the TypeScript-based open-source front-end web application platform is developed by Angular Team at Google along with a community of individuals and organizations.
Though there are a few new features added to the arsenal of Angular for the 7th major release, it gets some fascinating tooling changes and performance-enhancement features. Like with earlier versions of Angular, 7.0 is backwards compatible with previous releases.
New in Angular 7
Here is a list of most changes introduced to the 7th major release of Angular: Angular CLI v7.0.2 There are several great features boasted by the new Angular CLI v7.0.2. These are: While typing commands to the likes of ng-add, ng-new, or @angular/material, CLI will prompt users to help discover inbuilt features like routing and SCSS support Creating new projects takes advantage of Bundle Budgets in CLI Angular Compatibility Compiler The new Angular Compatibility compiler is added to transform node_modules compiled with ngc to ones that are compatible with the new Ivy renderer. The newly converted node_modules appear to have been compiled with ngtsc rather than ngc. All of this is done so that such legacy packages can be used by the Ivy rendering engine without compatibility issues.
Angular DoBootstrap
Angular 7 brings ngDoBootstrap, a new life-cycle hook, and DoBootstrap, a new interface. These are used for bootstrapping modules that require doing bootstrap of a specific component.
Angular Elements with Slot
Meant for Angular Elements, Angular 6.1 introduced ShadowDom. In Angular 7, support for content projection using web standard for custom elements is available. Also, a new standard HTML element, dubbed slot, is introduced by the Web Component Specification. This new feature enables components with a template.
Angular Material & the CDK
The Material Design of Angular received a major overhaul in 2018. Further enhancements to the same is made in the 7th major release of Angular. For dynamically loading as well as unloading parts of the DOM in order to build high-performing, large lists of data, virtual scrolling (discussed in detail later in the list) is now available.
Furthermore, apps can be equipped with a drag-and-drop ability (also discussed later in the article) by means of importing the DragDropModule or the ScrollingModule.
Application Performance
Prior to Angular 7, developers were including the reflect metadata polyfill in production. This is unnecessary as it is required only during development. So in Angular 7, polyfill is removed from production by default. For achieving the same, Angular 7 will remove the reflect metadata polyfill from the ts file and then include it when building the application in JIT mode as a build step. In order to speed up the performance, new applications will warn as soon as the initial bundle crosses the 2 megabytes limit and will error at 5 megabytes. Don’t like the idea? Worry not, as you can change the default setting in the angular.json file. These limits are meant for warnings that can be catered to users taking advantage of Google Chrome’s Data Saver features.
Better Error Handling
Previously, error handling might get awry if the property is not initialized for @Output. With Angular 7 though, there is a provision for enhanced error handling in such a scenario.
Drag and Drop
The novel @angular/cdk/drag-drop module offers developers the ability to easily and declaratively create drag-and-drop interfaces. It further supports free dragging, sorting within a list, and transferring items between animations, lists, placeholders, previews, and touch devices. Moreover, two additional helper methods are also available. moveItemInArray for reordering lists and transferArrayItem for transferring items between lists.
New ng-compiler
The all-new ng-compiler is faster and better than ever. It offers an accelerated eight-phase compilation and an almost double reduction rate of large app size. Furthermore, the new ng-compiler is equipped with the ability of advanced 8-phase rotating ahead-of-time compilation. All of this simply means an unbelievable reduction of 95 to 99% in bundle sizes for most applications.
Router
If you try to trigger a navigation outside the Angular zone in the Angular 7 then a warning will be displayed. In any case, if the new warning fails to show up in the development mode then Angular will log a warning on its own. Furthermore, navigation execution context info is added to activation hooks.
Splitting of @angular/core
Angular is an enormous framework that comes with just so many modules. In most scenarios, many of these modules are never required by developers. As such, Angular 7 comes with a split @angular/core. Each split will be having no more than 418 modules.
Virtual Scrolling
The newly introduced Virtual Scrolling feature in Angular 7 enables loading as well as unloading elements from the DOM based on the visible parts. <cdk-virtual-scroll-viewport> is the scrolling package that offers helpers for directives that react to scroll events.
This allows a performant way for simulating all items that are being rendered. It does so by setting the height of the container element the same as that of the height of the total number of elements to be rendered and thereafter rendering only those items in view. This results in faster experience for users with very large scrollable lists.
Dependency Updates
Here are important dependency updates for the Angular 7.0:
Upgraded TypeScript to 3.1 – Typically, Angular lags a few releases behind TypeScript. In order to avoid so in Angular 7, the earlier TypeScript version 2.7 is now upgraded to 3.1. Now, it’s mandatory to use the latest version of TypeScript while working with Angular 7.0.
Addition of RxJs 6.3.3 – The latest version of RxJs, which is 6.3.3 is added to Angular 7. The latest version of RxJs has a number of appreciable additions and changes. In addition to offering a boost in performance, these enhancements allow easier debugging of call stacks and improvement in modularity.
Support for Node v10 – Along with support for Node 8, Angular 7 provides support for the latest Node 10.
Partner Launches
Angular Console – A brand new downloadable console allowing for starting as well as running Angular projects on the local machine.
NativeScript – NativeScript allows a single project that builds for the web as well as mobile.
Stable Release of AngularFire – In addition to having the first stable release, AngularFire comes with a new home on npm.
StackBlitz 2.0 – The 2nd release of StackBlitz is here. It includes the Angular Language Service and several new features, including tabbed editing.
Wait! No Project Ivy?
Despite the fact that Angular 7 is better than previous releases, it is a great disappointment that the long-awaited Ivy project wasn’t able to make it. Based on the incremental DOM architecture, Ivy is a brand new render engine.
Developed with a consideration to tree shaking, Ivy allows application bundles to be smaller. They solely include parts of the Angular source that is actually used by an Angular application, and thus a reduction in size becomes possible.
Worry not though, as Ivy is under active development, as stated in the official blog post, and will be out with the follow-up releases to Angular 7. As Google has committed offering two upgrades in a single year, it won’t be much of a surprise if Ivy gets released with the subsequent release to Angular 7.0.
Upgrading to Angular 7.0
As already discussed, migrating from previous Angular versions to the 7.0 is very simple. Only a single command is required to migrate all Angular 6 apps to Angular 7. It is:
$ ng update @angular/cli @angular/core
For those making use of Angular Material, the command to upgrade the same is:
$ ng update @angular/material
See! As easy as a breeze. If you’re experiencing problems while migrating from previous versions of Angular to 7, please go through the official Angular upgrade guide. Want to advance your Angular skills? Here are some of the best Angular tutorials to get you started!
The number of people who are constantly connected through their smartphones are now in the millions. And each year, the number goes up as more people are getting connected to the internet using smart phones. Subsequently, as an entrepreneur, it’s your job to make a strong online presence for a superior brand image. Wondering how? How about building a cutting edge website? Or say, building a mobile application to stay in touch with your clients?
Seems beneficial, doesn’t it? But keep one thing in mind, before you choose to build your own mobile application, learn about the programming trends that many IT outsourcing organizations are following in 2018. It will help you understand the market as well the potential of your app/website along with the Framework Trends in today’s world. These are just 5 more important trends that are currently a must for any developer who is looking to enter the world of programming and web development.
1. Every organization needs a Data Scientist
Developers are gearing up to understand the conceivable outcomes like Data science and ‘cognitive’ innovations, for example, Machine Learning, Artificial Intelligence, and Natural Language Processing.
Data science is everywhere now, as confirmed by the rapid development of R programming and Python’s Data science libraries in 2017. Moreover, the growth will proceed into 2018, driven by the hype around (AI). You can already see the popularity of AI and Machine Learning with the launch of the latest updates to Google Assistant and also Apple’s Measure App!
2. Java will be more vibrant with upcoming new release
2017, was a great year for Java’s evolution. Where, Java SE moved to a six-month release cycle, Oracle’s JDK migrated to the open-source OpenJDK, and Java EE moving to Eclipse, Java will just get better and better with time with all signs of improvement. Java SE will be released more often, with more highlighted features and just because the OpenJDK will be the same as Oracle’s JDK, developers won’t face any kind of licensing issues.
These progressive changes occur with a noteworthy controversy that took place a year ago, when a Java Community Process official board voted against Project Jigsaw, a proposed usage of Java modules. There was hype that passed around that Jigsaw would harm the business, therefore the demand for modification was made. Soon after that, Oracle suggested that the OpenJDK will be released twice-yearly for new Java versions, because it was very common to release any version within the duration of a year or more
3. Kotlin will get considerably more support from Android
As predicted, the Kotlin programming language took off a year ago. Since becoming an authority language for Android applications at Google I/O, its utilization among Android designers has developed essentially. Android designers anticipate that Kotlin will keep picking up popularity in 2018. There is a ton of authority documentation that is still in Java, which will gradually get changed over to Kotlin. One additionally thing that will be enthusiastic about Android in 2018 is AI. More AI capacities will be accessible straightforwardly and locally on the Android OS itself with the goal that any application developer can begin utilizing them.
4. Java 10 will incorporate performance boosts
According to last year’s prediction, Java 9 wouldn’t have as much effect as Java 8, and it was in reality what happened. Java 9 comes with huge changes that could be abating selection, since it forces developers to refresh few applications with a specific end goal to utilize the module framework. The more regular language updates that are coming in 2018 are another reason adoption has been moderate. Since Java updates come twice in every year, a few groups may choose to avoid a few versions before getting up to speed.
5. Node.js will withstand controversy, enhance execution
Node.js releases updates twice a year, including one long-term service update every year. That is a major advantage for big business adopters. In 2016, Facebook released its Yarn Node.js, which was so great it undermined to usurp NPM in notoriety. In 2017, NPM discharged a noteworthy update that gave it equality with the vast majority of Yarn’s features. In 2018, they set up procedures for distributing NPM modules created by means of compiler-to-JavaScript languages, for example, Babel or Typescript.” As serverless stages based on Node.js have turned out to be more prevalent, remaining aware of normal security patches has turned out to be significantly more basic for cloud service providers.
The greatest news for Node.js was the support for ES6 modules in Version 9. This was a colossal choice, with numerous detractors contending about the correct implementation of ES6 modules. “Node.js had a module design, followed by the Common.js design, so influencing ES6 modules to work with Node.js was a substantial task.” The principle usage instrument is another record augmentation (.mjs) to assign ES6 module documents. Numerous see this new document augmentation as dividing the Node.js biological system. For Node.js, the change to ES modules is significantly harder than for browsers because its module framework works synchronously.
Key takeaways and plan of action for the Framework Trends in 2018
2018 is loaded with a lot of ups and downs for the developers, including progressive new innovations, diversion changing updates to existing ones, and unquestionably a few debates. Here are few things that will have the greatest effect on you as a developer:
Having said that public pressure works, on tech giants, for example, Facebook and Google, the developer network will put more weight on associations that aren’t making a comprehensive domain.
Expect a tremendous push to adopt particularity, as both Java and JavaScript refine huge support for modules.
More companies will examine whether data science and machine learning can encourage their business, and you ought to as well.
Engineers will discover more even approaches to profit by utilizing serverless platforms.
Discovering organizations you trust to deal with security concerns that affects you, will be a critical challenge.
Which trend affects you the most, please let us know in the comment section below!
CUDA is a parallel computing platform and programming model that makes using a GPU for general purpose computing simple and elegant, is an extension of the C programming language and was developed by nVidia. CUDA programming allows the coder to make use of the enormous parallel computing power of an nVidia graphics card to be able to do basic purpose computation. Before continuing, it is worth discussing this for a bit of bit longer.
CPUs as Intel Core two Duo as well as AMD Opteron are very good at doing one or maybe two jobs at a time and performing those tasks rapidly. Graphics cards, on the opposite hand, are very good at doing a tremendous number of tasks at the same time and performing those tasks relatively fast. To put this into perspective, imagine you have a twenty-inch monitor with a regular resolution of 1,920 x 1200. An nVidia graphics card has got the computational ability to compute the color of 2,304,000 various pixels, many times a minute.
To achieve this feat, graphics cards use dozens, possibly a huge selection of ALUs. Fortunately, Nvidia ALUs are completely programmable, which allows us to harness an unprecedented level of computational power into the programs which we create.
As mentioned previously, CUDA lets the coder reap the huge selection of ALUs inside a graphics processor, and that is a lot more effective compared to the couple of ALUs obtainable in virtually any CPU. Nevertheless, that does place a cap on the forms of applications which are well suited to CUDA.
CUDA is just properly designed for highly parallel algorithms
To run effectively on a GPU, you have to have several a huge selection of threads. In general, the more threads you have, the better. In case you have an algorithm that’s mainly serial.
Subsequently, it doesn’t seem sensible to use CUDA. Many serial algorithms have parallel equivalents, but some don’t. In case you cannot break the problem of yours down into no less than a 1000 threads, then CUDA possibly isn’t the ideal solution for you.
CUDA is very well designed for number crunching
There’s one thing which CUDA excels at – number crunching. The GPU is completely effective at doing 32-bit integer and also floating point operations. It’s GPUs is better designed for floating point computations, making CUDA great for number crunching. Several of the bigger end graphics cards will have double floating point devices. However, there’s just one 64 bit floating point product for every sixteen 32-bit floating point units. Thus using double floating point numbers with CUDA must be stayed away from in case they are not essential for the program of yours.
CUDA is well designed for huge datasets
Majority of modern CPUs have a few megabytes of L2 cache since many programs have very high data coherency. Nevertheless, when operating immediately across a big dataset, say 500 megabytes, the L2 cache might not be as useful.
The memory interface for GPUs is extremely distinct from the memory interface of CPUs. GPUs use huge parallel interfaces to be able to link with it is mind. For instance, the GTX 280 uses a 512 bit interface to it is high end GDDR 3 memory. This particular kind of interface is around ten times faster than a regular CPU to memory interface, that is actually fantastic.
It’s worth noting that the majority of nVidia graphics cards don’t have even more than one gigabyte of memory. Nvidia has specific CUDA compute cards which happen to have as many as 4 gigabytes of ram onboard, however these cards are costlier compared to cards initially meant for gaming.
To write a kernel in CUDA
As mentioned earlier, CUDA could be taken full advantage of when writing in C. This is good news because most programmers have knowledgeable about C. Additionally reported earlier, the primary concept of CUDA includes a huge number of threads carried out in parallel.
What was not stated is the fact that many of these threads are likely to be executing the identical function, known as being a kernel. Understanding exactly what the kernel is and just how it functions is crucial to your success when composing an application which uses CUDA.
The thought is the fact that although every one of the threads of the system of yours is executing the same function, the threads will be dealing with an alternative dataset. Every thread is going to know it has very own ID, and based off it is ID, it’ll decide which pieces of information to focus on. Commands such as if, do, while, for, etc.’ are supported.
Writing programs with CUDA
One important thing to keep in mind is the fact that the entire program of yours doesn’t have to be composed in CUDA. In case you are composing a sizable program, complete with a user interface, and also numerous additional features, subsequently most of the code of yours is going to be written in C++ or perhaps whatever language you prefer.
Next, when something very computationally intensive is required, the application can just call the CUDA kernel function you wrote. And so the primary idea is the fact that CUDA must simply be utilized for most computationally intense areas of the plan of yours.
CUDA without having a graphics card
While CUDA is particularly designed to operate on nVidia’s graphics cards, it can additionally operate on virtually any CPU. Albeit, the system won’t ever be equipped to run almost as quickly on a CPU, it’ll still perform.
Java is not to be confused with JavaScript, it has been built as a Write once, run anywhere language – which in simple technical terms means that it can be run on pretty much any device that there is.
What is Java Programming Language?
We interact with Java on a daily basis, whether we acknowledge that fact or not, and on many occasions – a website might tell us that we need to install Java in order to browse it, this goes a lot for websites that are flash dependent and have some kind of flash components integrated within the core system.
Java is also one of those programs that you usually download straight away, after a purchase of a new computer – I’m not quite sure whether anyone ships Java as a default program within the operating system. Its history with security issues is not one of the most pleasant, but for the most part, it has made the language as mature as it is.
From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
97% of Enterprise Desktops Run Java
89% of Desktops (or Computers) in the U.S. Run Java
9 Million Java Developers Worldwide
#1 Choice for Developers
#1 Development Platform
3 Billion Mobile Phones Run Java
100% of Blu-ray Disc Players Ship with Java
5 Billion Java Cards in Use
125 million TV devices run Java
5 of the Top 5 Original Equipment Manufacturers Ship Java ME
As we can see with the above statistics, the Java programming language is very sought after, and there is definitely a big market for it.
Salary for Java Programmers
I’d love to briefly touch the subject of Java salaries, and how much you’re able to earn – within a reasonable amount of time – by becoming a full-time Java developer.
The salaries differ according to the corporation they work for and the country they live in. The average salary in the US remains between $48,000 to $99,500. ZipRecruiter reports that annual salaries can vary between $22,000 to $132,000 in the US. In Denmark, the average salary could be as high as $69,000 while in Japan it can be around $51,000.
Programming Java for Beginners
I published this post a little while ago, and ever since then, I have received mixed feedback, mostly about the fact that people are saying it takes a lot longer than just a couple of weeks to learn this programming language. I’ve to say that I can’t disagree, and because of that – I’ve added this additional course that I suggest you take part in.
It does cost a little bit of money, but keep in mind that you’ll be getting access to a unique and separate community section in which you’ll find all 35,000 students who’ve taken part in this course. It contains over 10 hours of content, more than 100 lectures, and hundreds of discussions on the most problematic of topics.
You won’t find a better way to learn Java than by taking part in this course, the ultimate best alternative would be to learn in real-life from an expert, but that isn’t always that easy. I’d be more than happy to answer questions about this course.
It doesn’t really matter which programming language we’re going to learn, we will always begin with the basics, and Java is no exception. Thankfully, the official Oracle (company behind Java) website has a great introduction to Java, explaining what it is and showing you the basics of how it works.
You will also find that there a lot of resources for further learning, but most importantly – this page will help you get started with all the necessary tools and other stuff that’s required to begin learning Java.
This is another great resource, and not only because it is being presented by one of the top universities in the world, but you’re also bound to learn quality stuff from taking this tiny course. It will force you to read a ton of stuff, all of which is essential to the process of learning Java.
It has also been acclaimed as one of the most beginner friendly resources for learning Java, no matter how technical it might seem at first. It’s full of images, samples, preview code and documentation to get you going.
In recent years, interactive tutorials have become quite a thing, and so I feel obliged to include some links to what’s available on the web in this list. It’s worth knowing that you won’t learn a whole lot from this interactive tutorial (let us be honest), but I recommend it as a starting point for the first couple of chapters for any of the books you pick.
Plus, its always nice to be able to load some code and test it, without having to worry about launching your IDE to do it.
This is the only book on the list that is not free of charge, but due to the fact that it is resourceful and beginner friendly, I thought it would be a good idea to include it. It only costs $20, less than any decent t-shirt would cost.
You can see (and work with) the first 16 chapters for free, online, the link is here. I think many people are going to love this one, it is friendly designed combined with friendly exercises, what more could you ask for.
This website is built by the same person that has published the above book I listed, this site is also the inspiration for that book. You’ll find a lot of challenges that do not require a lot of programming skills at first, but as you advance through the challenges they’ll get tougher and tougher.
I’ve always believed that the absolute best way of learning something is by doing it first, testing and then going at it once again. Just pick any of the tutorials or books in this list and you’ll be ready to go.
Some people prefer to learn from the video content, that’s totally acceptable. Sometimes, when you’re busy and got a lot of things to do, it’s better to have access to videos that you can just repeat whenever, to grasp some of the essentials of a programming language, in this case, Java.
It’s a free Udemy (you’ll need an account to view it) course that has got well over 100,000 students enrolled, and is one of the most popular courses on the site. It’s led by John Purcell, a software engineer who has had many years of experience with Java.
You’ll get nearly 20 hours of content, with over 70 lectures in total. If you don’t know Udemy, then you will also get access to a very large support community (all those 100k students who have done/are doing this course), and there is an in-built support system for asking questions.
Don’t let the design fool you if anything – it will keep you distraction free. CodingBat (formerly JavaBat) is one of the best ways of learning Java for free, interactively within your browser. It’s the second site in our list that offers interactive education, I do have to say its also better than the previous site.
The issues that you might experience with CodingBat is that unlike sites like Codecademy, which explain everything from bottom to top, step-by-step, CodingBat is more of an do what you know and pick what you’re capable of. Just don’t confuse it for being unorganized, there are plenty of tutorials for each section and you’ll be learning rather quickly.
The New Boston is known for having great and comprehensive introduction videos for a lot of Java Programming Languages, and Java is no exception. You’ll find 80 step-by-step videos for learning Java and all that it has to offer, though I think its a little bit dated now. (Java 7)
Don’t count on what I said about it being dated, it’s still an incredibly useful resource for anyone who wants to begin to learn Java with determination, plus it doesn’t require of you to signup unlike Udemy does. The comments are quite insightful, for some of the videos.
Another University course, it will take you roughly 6 weeks to complete it. Very beginner friendly, and everything can be done from within the browser. It also has one of the best gettings started tutorials on how to install Java and the necessary tools. In the course, you will learn all the basics of computer programming, algorithms and object-oriented programming using the Java programming language.
There is also part 2 available, which is another 6 weeks of programming. In total, you’ll be looking at 12-13 weeks of learning Java. By the end of it, you should know how to build your own apps, and how to think like a Java programmer. You’ll also be ready to advance to higher rankings, and explore the language much more in-depth.
I’m wrapping this up by giving you another website for Java programming exercises, specifically designed for Java that also contains the answers to each of the puzzles. It’s so important to practice, especially when it comes to a language like Java – which at first is not at all easy to master.
In total there are thirty exercises for you to try, and instead of saying ‘It’s impossible’ – take a break and come back to it later, that’s usually when the answer arrives.
10 Ways to Learn Java
It might not be a transparent as my learn Python post was, I certainly blame the fact that it is not as easy of programming language to learn, and does require higher levels of attention to detail. It’s among the top programming languages to learn this year, and it has a great deal of community behind it.
By which I mean that it’s advised of you to join sites like StackOverflow, and Reddit – for finding answers to common questions, and learning more by asking questions yourself. Without asking questions, we’re just telling ourselves we can live without a solution when that is not entirely the case.
If the context does not involve reference to software development, the names of Ruby and Elixir might have referred us to some video game like Heroes of Might and Magic or Warcraft. However, in the world where the code runs things, these names denote two programming languages widely used for building various sorts of software. Each of them has its own followers, as well as haters. In this article, we’ll try to find out their differences and answer several relevant questions like “which product type is the best to create using Ruby/Elixir” or “is Elixir more in demand than Ruby”. And we’re starting as per seniority.
Origins
As of 2019, Ruby is 24 years old. Despite the mature age, we cannot call it one of the oldest languages like C or Eiffel. The peculiar thing about the language is the lack of opinionated or straight-out ways of doing coding. In other words, several engineers can go different ways to execute something using Ruby. Despite this flexibility, the code you get is associated with elegance and usability.
Ruby is not a very popular technology (18th rank according to the TIOBE index as of January 2019), and many haters used to throw up predictions about its flame-out in the short run. Meanwhile, the language is keeping afloat, and its supporters are eagerly waiting for the debut of the 3.0 version in the next year.
Unlike Ruby, Elixir can be called a youngster because its first appearance was dated seven years ago. At the same time, it is based on one of the world’s oldest virtual machines titled BEAM, which, in turn, rests on the Erlang Open Telecom Platform. Actually, these links to relatives are not very interesting except for the fact that a Ruby engineer is the Elixir inventor! Fancy that. His name is José Valim, and a trigger to creating a new technology was his desire to optimize the performance of apps built with RoR in multi-core systems. In the view of this, we would suppose that both languages are like two brothers or a brother and a sister at least. Let’s try to figure it out.
Paradigm
Ruby is listed along with Python and Java because they are object-oriented languages. It means that everything including methods, numbers, and variables is an object. Elixir is not cut from the same clot. It’s a representative of the functional programming paradigm, which gives a completely different way of looking at concurrency, debugging, and testing. The focus is made on the computation of pure functions. Besides, this paradigm is quite efficient for building large programs out of small functions. However, it does not mean that object-oriented technologies are either better or worse. They’re just different.
Therefore, engineers who decide to switch from Ruby to Elixir should be prepared to think differently. For example, you need to avoid changing state; variables cannot be redefined with another value; all data is immutable, etc.
Syntax
Many Rubyists say that the language they use is full of magic in a good sense of the word. And the clear syntax is always referred to one of the major benefits you get. Matz, Ruby inventor, says that the language offers concise, yet readable code. Other experts spare no praiseful words and characterize Ruby’s syntax as mellifluous and simply elegant.
Well, we cannot say the same about Elixir. Erlang, its underlying language, can boast one of the most consistent syntaxes among other technologies. For some reason, Elixir has not inherited this hallmark. The clumsy syntax is often considered one of its drawbacks and disappointments. Many engineers hate the language’s inconstancy which involves the possibility to write the same thing in many different ways. Opinions about the Elixir’s syntax are ambivalent. At the same time, both languages share some similarities in this regard.
Performance
Performance has never been Ruby’s cause for pride. Though the language showed better results with every new version, it was not enough to reach a significant speed enhancement. However, the latest release dated of December 25, 2018, promises to ruin this statement, since the latest version, 2.6.0, provides the 1.7x faster performance compared to the previous one, 2.5.3. So, there is hope that Ruby may get rid of a slow-programming-language cliche. And what about Elixir?
José Valim reached his goal of creating a technology that works faster than Ruby. Indeed, Elixir excels the Yukihiro Matsumoto’s brainchild (Ruby) in performance and scalability due to being optimized for maximum speed on the compiled code in the already running Erlang virtual machine. And the trump card is multiple cores support which allows you to do things in parallel, like run tests, for example. Elixir is faster than Ruby according to many benchmarks. At the same time, there are some cases across the web, which show the opposite result due to some improper usage of the languages under comparison. Therefore, it’s important to have an advanced understanding of modern high-performance dynamic optimizing compilers, statistics, hardware architecture, and a bunch of other details to write relevant benchmarks.
Web frameworks
When talking about web app development with Ruby and Elixir, we cannot but mention Ruby on Rails and Phoenix – the frameworks built atop the languages. Rails is known for its demand on the market. The evidence of this is many big names which have opted for the framework for their products. These include Dribbble, GitHub, and also a bunch of other businesses. Besides, numerous web app building companies like Railsware base their activities on leveraging RoR. It’s not enough to name the framework awesome. Rails is time and cost efficient solution characterized by such benefits as fast prototyping, MVP design pattern, test-driven development approach, the convention over configuration paradigm and other magic. And do not forget about a large vibrant community of engineers. All that makes RoR an ultimate tool for building web products.
Phoenix, in turn, is usually referred to a Rails imitation written in Elixir which is far from the truth. Some ideas were indeed borrowed from Ruby’s framework, but in general, the resulting tool brought innovative solutions to many technical problems. And these solutions turned out much better than those of RoR. Many experts acknowledge that Phoenix prevails RoR as for stability, speed, and hot deployment. Meanwhile, the frameworks differ in programming paradigm (functional vs. object-oriented), database tools (Ecto vs. ActiveRecord), third-party software pieces (packages vs. gems), and other elements. At the same time, the visibility of Rails keeps its Elixir-based rival in the sidelines on the market.
Despite the above, both solutions share a single problem of the talent shortage. It’s a challenge to find a good Rails developer, not to speak of Phoenix-savvy engineers. However, some experts put forward assumptions that the mentioned issue will be solved in the coming years. We’ll see.
Elixir = New Ruby?
It’s an unwise practice to say that some language is bad and another one is good. The truth is that each solution has its benefits and drawbacks. Another thing is that special requirements of a particular project demand its owners and managers to seek out the most applicable technology. Elixir does excel Ruby in performance and scalability. However, it lags behind as for talent availability, size of ecosystem and productivity. So, they are different in nature and purpose. Thus, if a goal is to deal with high-traffic systems or IoT, Elixir would be a smart choice. Ruby is more suitable for building MVPs, as well as fast and secure web apps.