Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Events
Videos
Audiobooks
Packt Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

Tech Guides

852 Articles
article-image-strategies-become-more-skillful-tech-pro
Cheryl Adams
18 Oct 2016
5 min read
Save for later

Strategies to Become a More Skillful Tech Pro

Cheryl Adams
18 Oct 2016
5 min read
Being a skillful technician has become a job as much as being employed as one. How so? The technical landscape is constantly changing. There once was a time when all you needed to do was master a few programming skills from the leading enterprise application vendors and one or more operating systems. Training was expensive and only available to licensed customers or employees of the company where a product was licensed. If you worked at the company but were not part of the development or application support team, you had no access. As a user, you only had user access but no real understanding of the administration or how the tool really works. Your scope of learning was limited to your role or job and you had; and what the company had licensed. Server-based tools and applications could only be used. The process of becoming skillful was very controlled and contained. But the landscape of how and where we learn as skilled technicians is constantly changing. Both open source and enterprise technologies have a robust library of applications and operating systems. The landscape has changed most noticeably in the enterprise arena. Enterprise technologies have opened their doors to students, non-customers, and independents. Large enterprise companies such as Oracle now make full versions of their software available for review in non-production environments. By creating a free account and agreeing to their terms, most software can be downloaded into a test environment for development and review. This new open-doors policy allows access to basic forums for support, but gives you a fully functioning product to work with. Microsoft has also adopted this plan by allowing fully functioning products like Microsoft SQL Server to be available for download in a trial for at least 6 months. They also have SQL Express, which is a non-limited version of a SQL Server product but a lighter version. It does not have all the functions of SQL Server, but some of the core ones are still in place. Although Microsoft disables or limits their functionality after a trial, it still gives you reasonable time for review. Most users already have access to a licensed copy of a Microsoft Operating System, but there is a large assortment of tools to try for the 64-bit platform. For those who don’t, Microsoft clearly states this limitation regarding its server-level operating system: if you need more time to evaluate Windows Server 2008, the 60-day evaluation period may be reset (or re-armed) three times, extending the original 60-day evaluation period by up to 180 days for a total possible evaluation time of 240 days. After this time, you will need to uninstall the software or upgrade to a fully-licensed version of Windows Server 2008. With these options available in your arsenal, you have the foundation for maintaining your technology-based skills. As a technical professional the goal is to create an environment that can be used without restriction. This can be accomplished by making a selection of tools and applications from both enterprise and open source. Open source has always been just that. Searching sites like SourceForge or leading software companies in this space you will find what is referred to as the community edition of their software. Yes, it does not have all the features of an enterprise release but enough to build a good foundation for learning and development. In fact, some leading organizations find that the community edition is sufficient to run their production operations. This places any technical resource in a valuable positon, since the same application can be studied independently. Products like MySQL and SugarCRM both have community editions available to download and configure in your own environment. Some web-hosted environments already have tools that are considered part of the stack like LINUX, Apache, MySQL and PHP. These resources have a large community support and most questions are answered in a reasonable amount of time. For a quicker turn around you would to need to finance a paid support service. Cloud computing companies like HortonWorks and Cloudera have a sandbox version of their product that you can download with an environment preconfigured and ready for use. Each site has enough robust documentation to kick start your exploration into this space. Amazon even offers the AWS Loft were you can meet up and work with AWS experts for free. Both AWS and Azure have documentation on usage of their services and products on the site. Programming languages like Python and Java have their own programing engine you can download to work with. There are also alternative database engines like MYSQL, Postgres, Casandra and MongoDb. MongoDB has a free Mongo University program with video based instructions, testing, and a help forum to assist new developers. Microsoft has the Microsoft Virtual Academy, which has videos and basic training giving by their own subject matter experts. Having the programming tools, applications and operating systems aren’t much use without proper training. Leading training vendors like Udemy, Codecamp and Lynda offer classes taught by subject matter experts. If you do a search, no doubt you will find a number of such service offerings, some of which are free. It is always a good idea to review the comments to see if the class will suit your needs. Another suggestion is to subscribe to a useful tech news email to stay abreast with the changes in the technology. Mowing down the tall grasses of useless email solicitations, a useful newsletter can be highly beneficial. You will be able to read about emerging technologies from the leading vendors and perhaps find some useful e-book deliveries. If your selection is not useful you can easily unsubscribe. Clearly having a good strategy or plan is essential for being a skillful tech pro. Now with a wide selection to choose from the possibilities are endless for building your tech expertise.
Read more
  • 0
  • 0
  • 2750

article-image-pixar-all-renderman-made-free-everyone
Julian Ursell
30 Jun 2014
3 min read
Save for later

Pixar for All: RenderMan Made Free to Everyone

Julian Ursell
30 Jun 2014
3 min read
Render me excited. Following the announcement that Pixar will be making available a non-commercial version of its 3D visual effects and rendering software, there’s a resounding buzz among the creative populace about the opportunity to play around with the RenderMan sandbox. Just reflect on that–you get to use the technology Pixar used to make Toy Story, Wall-E, and Monsters Inc., and that is responsible for the vast majority of incredible visual trickery of modern cinema. The thought of being able to recreate the astonishing visual environments and landscapes produced by Pixar’s cutting edge rendering software, recognized so unmistakeably around the world, is a mouth-watering prospect. I’m looking forward to messing around with the software and producing several poor man’s versions of Pixar’s most famous films. I’ll also make Cars into a good film. (Pixar is mobilizing lawyers right now to make us redact this.) It’s not just the general availability that has people animated about RenderMan. Along with the free-to-all announcement were details about an overhaul of the software, which vastly enhances the rendering mechanics and capabilities. RIS is the fast new rendering architecture under the hood. It specifically enhances global illumination rendering and ray-tracing scenes, which work with heavy geometry. The classic rendering architecture, REYES, also remains available, giving artists the option to work with either. It’s a wonderful bonus that at the same time it has been made freely available, RenderMan has also been supercharged, giving amateur (and professional) visual effects artists an immensely powerful palette with which to develop animation projects. If you’re someone who’s never used animation software before, it’s probably like being given the keys to a Ferrari without having a driving license. And let’s be honest, that’s not an opportunity anyone would pass up, right?    Threaded into this, the price for the commercial version of RenderMan has been slashed, which may give users who have developed animations with the free version the temptation to go a step further and purchase the paid product for the purposes of industrial distribution. If you have the inclination (and the expertise), you too could be producing the visual effects that have revolutionized cinema in the past 25 years or so. Okay, maybe I’m selling Pixar’s line for them, but this is a hugely progressive move for aspiring animators who will jump at the opportunity to experiment with the technology that is still blazing a trail. It’s potentially a gateway for people with creative talent and flair to showcase their abilities and get into the industry of animation and visual effects, whether that’s for cinema, television, or advertising. I’ve registered for a free license for when it’s made available in August. I may not ever be a VFX wizard but I am, like a vast number of others, nonetheless piqued with intrigue about the opportunity to try my hand with RenderMan—even if the end product is a mangled Ferrari.
Read more
  • 0
  • 0
  • 2734

article-image-why-gamification-is-changing-everything
Julian Ursell
30 Jun 2014
5 min read
Save for later

Why Gamification is Changing Everything

Julian Ursell
30 Jun 2014
5 min read
'Must keep streak going'. That is the sound of someone on a twenty plus kill streak on Titanfall (probably me). It's also the sound of someone who's on a 20 day streak learning JavaScript on CodeAcademy. Gamification is becoming an increasingly popular concept as a way to structure and make enjoyable the way people engage in the realms of learning, business and even the most routine aspects of lifestyle. Applications are being developed by prominent businesses which apply game mechanics and rules to a variety of different scenarios, building in incentives and rewards for users to strive toward, whether intrinsic or with a practical benefit in the real world. A brilliant example of gamification is Code Academy, which teaches new coders how to learn a programming language through a motivational system of badges and streaks to keep learners hooked and incentivized to continue learning. I’m currently learning Spanish with the language learning app, Duolingo, which uses gamification to measure and motivate learning progression using streaks, experience (xp) points and ‘checkpoints’ to structure the experience and enhance retention. Learners can unlock bonus skills by acquiring hearts, which are achieved by answering all of the questions correctly in lessons. When I’m on a streak, Duolingo will send notifications to my phone to keep it up, and compel me to reinforce my learning by taking refresher (called ‘strengthen’) lessons. It’s extraordinarily effective as a fun, fulfilling educational experience and I can positively say that I am retaining much of what I have learnt. Gamification has been rolled out among several high profile companies, including Nike, Starbucks and Microsoft (who used gamification for staff appraisals!), and in recent years has increasingly been considered as a solution for a number of important business concerns, whether it’s easing the pain of unpalatable training sessions or to drive customer and community engagement with a product. Nike + is a shining example of gamification on a grand, successful scale. Built on the idea of Nike fuel points, it rewards consistent exercise and activity with trophies and personal benchmarks, offers the option to set individual challenges, as well as compete with friends on a community leaderboard. On the one, cynical, hand, it’s powerful, effective marketing which engages users in Nike’s virtual community and generates revenue through sales of the Fuel Band (a wrist band which tracks wearer movements), as well as running shoes (from 2006-09 Nike increased its share of the running shoe market from 47% to 61% ) and other merchandise, all without rewarding exercisers with anything of physical value (instead they’re treated to celebratory animations). On the other hand, there are obvious benefits to accruing Fuel points as it means undertaking consistent, healthy exercise, with the positive reinforcement of earning trophies, setting new performance goals, and recording statistics about calories burned, distance covered and time spent exercising. All of this is integrated socially, as friends can see exactly what kind of activity you’ve undertaken, creating a socially connected sphere of collective competition. As a statistics junkie, the ability to constantly valorize my exercise and visualize the impact of the hours I’m putting in is even more reason to keep burning down the treads on my Nikes. What gamified apps bring is a way to accommodate the seemingly natural inclination of humans to structure and conceptualise challenges according to game (like) logic. Regardless of whether gamification is being employed for driving marketing and business, engineering customer and community participation, or for encouraging learning, it has proved a versatile approach (I’m trying to avoid calling it a business methodology) to thinking about how to solve different problems in the real world, via games. Gamification won’t be for everyone, and we would assume that it is in part dependent on a degree of investment from the user (gamer) (we might also ask if the user is engaging with the game or the actual subject at hand?), but the beauty of it is that games are so appealing and intuitive to modern generations that users don’t have to be coerced to engage, and enjoy gamified applications. It may have the charge of ‘mandatory enjoyment’ levelled at it, but I’ve never heard someone adamantly refuse to play a game. If anything, it makes the pill of dull company training much easier to swallow. Whatever scepticism some may have over the Gamification of Things we should appreciate it as a validation of the value of games, that it says something very positive about the way we can implement game mechanics in the real world, and that businesses are treating it seriously as a strategy for application development. Gamification is being tested and considered as a solution in a huge array of situations, from project management to the actual deployment of applications – for example the cloud deployment platform Engine Yard introduced gamification in order to increase the contribution of users to the community, giving rewards to users for providing help to other customers. There are even gamification startups offering platforms (Gamification-as-a-Service?) for implementing game mechanics into new or existing applications in the enterprise – just imagine a gamified tech startup! While it won’t be successful or suitable for every application or domain, but there has been enough demonstrable success to show that when implemented correctly, gamified applications are hugely productive for both the user and the business which mobilises it. As long as developers are not building in gamification for gamification’s sake, and the mechanics are intelligently thought out with clever incentive systems in place, we may see an even greater incorporation of it in the future. As with any great game, the focus needs to be on the gameplay as much as the outcome, so that applications benefit both the player and the business in equal measure.
Read more
  • 0
  • 0
  • 2727

article-image-what-i-want-happen-game-development-2015
Ed Bowkett
11 Feb 2015
5 min read
Save for later

What I want to happen in Game Development in 2015

Ed Bowkett
11 Feb 2015
5 min read
2014 came and went with some great announcements, some not so good times and some events that should just remain in 2014. It was another good time for good games being released, but also a time when rushed games were a common theme. This blog will focus on specifically what I want to see heading into 2015. Again it’s an opinion piece so feel free to leave your own views and comments in the comments section below. Indie scene matures Of course indie games will always have its own genre and be called Indie games. Anything that’s not made a major studio has this moniker attached to it. 2014, possibly even earlier, sparked the ‘big bang’ of indie developers, 1-2 man studios creating, quite frankly, better games than the major studios. Games like Spelunky, Papers Please, FTL. All these games were huge in 2014. This trend will continue to grow in 2015, but it will also mark the shifting away from  where indie was the cool younger brother of the AAA games, to a situation where we will see indie becoming the new mainstream. Sure you’re still going to get Call of Duty 100, you’re still going to get Fifa 20,000 but you will start to see indie games permeating all genres of the gaming industry. We saw it last year, we’ll see it become much more established this year. Quite frankly, is this a bad trend? More choice, forcing studios to actually decide which games to care about. Stable launch of games 2014 was a year of broken games. Assassin's Creed Unity being the most obvious one. Bearing in mind this game cost around $60 on release day and most people would either pre order it so they can load it up on the night or digitally in which case you can’t return it, resulted in a very messy game, that had more bugs that Quality Assurance must have taken an extended holiday before the game was released. It wasn’t just Assassin’s Creed though. So many flagship games had similar issues. Take Halo:The Master Chief Collection. So many multiplayer issues that it became unplayable and the wait times to get a game far too long. Given Halo prides itself on the multiplayer aspect, this severely affects peoples’ confidence in the studios. 2015 this needs to be stopped. $60 is not a cheap amount for the typical user. Large studios need to prove that bugs of this magnitude will eventually be a thing of the past. I’m not saying games will never have bugs, I’m saying the type of bugs and the amount in each of the games mentioned was far too large and suggests sloppiness and a lack of care for the consumer. 2015 the focus should be on getting things right again. Intelligent gaming With the arrival of the next generation systems in the PS4 and Xbox One we expected great things. What we got was good. We got better graphics, we got good frames per second, but we didn’t get games that were really taxing. Well we did, but it was too late in the year to count towards anything. Shadow of Mordor Nemesis System had Nemeses, which are AI characters generated uniquely through the game. They have their own personality and have different outcomes depending on the player’s success. This is unique and we need more of it. I expect this to make great strides in 2015. This could also be in the form of the hardware released next year. We are already making great strides in virtual reality, it just needs a little bit more to really sell. Possibly intelligent gaming can be attached to this new advent of gaming. Gaming community matures This article has been a lot about the need for maturing. 2014 showed the gaming community in the worst of lights. Whichever side you may fight for, harassment in any workplace is just wrong.  I am of course, talking about GamerGate. Briefly, the word stemmed in response to an alleged breach of ‘ethics in game journalism’. Whether it happened or didn’t, this is not the discussion of this segment. What is the discussion is how some people found it necessary to harass, provide misinformation and generally promote death threats. This engulfed the gaming community and it is a continuing issue moving forward into 2015.  Lessons must be learned about what happened in 2014 and for all the damage and anger that GamerGate brought, positives have to be taken in the way the majority of the community came together and united against the minority of people. 2015 will continue to see the maturing and hopefully GamerGate will be consigned as  a black mark in an otherwise incredibly talented community.   Fundamentally I want awesome games to play. I want the gaming developer community to keep doing what they’ve done for years, make the best game they want and to show passion to each game. I want developers to keep developing tools available to the community to try to create their own games. This is what I want. Pretty selfish, aren’t I?
Read more
  • 0
  • 0
  • 2705

article-image-testing-unity
Travis Scott
14 Oct 2015
6 min read
Save for later

Testing with Unity

Travis Scott
14 Oct 2015
6 min read
What is Testing? Traditionally in Software Development, testing plays an integral role in both the maintainability and quality of the product. Of course, in game development, user acceptance testing is performed frequently. Each time you play the game you check if your newly added creation works the way you intended -- this is user acceptance testing. While this is great, frequently game development testing only centers on "user" centric testing principles. Two testing levels that are often left out are Unit and Integration Testing. We're going to focus on Unit testing, as that's frequently the first step of Automated testing. Unit testing, for our purposes, is an automated test, which verifies the functionality of a specific section of code. There is some debate whether this should be a method, or whether the test should have an even smaller scope. I understand both arguments, and personally agree with the second, yet usually find myself resorting to the first. The reason for this is the nature of a unit test. Our goal is to give our test an input, and expect a certain output or result. The simplest way to give an input and get an output? Methods. So up to this point, why have games not utilized testing as much as enterprise level software? Well, many large game companies have already taken this route, while small indie teams frequently don't have the budget, or the longevity to do it. But by testing from the start of your project, and using TDD (Test-Driven Development) processes, you'll find testing becomes a natural starting point for a new feature. So how do we do this? Unity Test Tools Unity has released an official testing Library. For the sake of this demo, we'll be using the standard C# for development. The testing library can be found in the asset store, under Unity Testing Tools. Once you have added the package to your project, you can begin writing and running your tests. Example Test To write the the tests were going to start with a basic script. Let’s make a new script and call it Cat. The file will have the following code: public class Cat { private int lives; public Cat() { this.lives = 9; } public void useLife(){ lives > 0 ? lives-- : lives; } public int getLives(){ return lives; } public bool IsAlive(){ return lives > 0; } } Nice and simple. We can use one of the cat’s lives, get the current amount of lives, and check if our cat is alive. Now, in traditional TDD, we should have written the test first. Since I'm assuming as a reader you may never have seen testing, I prefer you understand what we're testing first. So our goal here is to make sure our logic is working as expected. No matter how simple the logic may seem, we as programmers know that we still make many mistakes. Because we do make mistakes, writing the test before the logic can be a great benefit to us. That way, you won't let a small bug last in your code. The earlier we can catch a bug, the less of a problem it is. So let’s take a look at a test object. To create a test, create an Editor folder in your assets. Inside the Editor folder create a C# file called CatTest.cs. Inside, we will write: using NUnit.Framework [TestFixture] [Category("Testing Cat")] public class CatTest { Cat cat; [SetUp] public void Init() { cat = new Cat(); } [Test] public void DoesUsingLifeReduceTheCatsLivesByOne() { int currentLives = cat.getLives(); Assert.AreEqual(currentLives - 1, cat.useLife()); } [Test] public void ReducingACatsLivesBelowZeroHasNoImpact() { EmptyCatLives(); cat.useLife(); Assert.AreEqual(0, cat.getLives()); } [Test] public void CatIsAliveWhileItHasLives() { Assert.IsTrue(cat.IsAlive); } [Test] public void ReducingCatsLivesToZeroWillMakeIsAliveFalse() { EmptyCatLives(); Assert.IsFalse(cat.isAlive()); } public void EmptyCatLives(){ for(int i = 0; i < cat.getLives(); i++){ cat.useLife(); } } } Finally to run our tests, there should be a Unit Test Tools dropdown in the navigation bar at the top of the unity pane. Select it, and choose Run Unit Tests. Once the small window opens click play. An important piece of any projects testing is it's Methods names. These names are frequently used to describe the tests purpose. This is actually a great way to introduce a new team member to the project, as this can give new members a way to step-by-step walk through your code, understanding what the purpose of its functions are. In our test, Test Fixture and Category, for this purpose, define our scripts tests. The [Setup] will be run before each test. We use it to initialize our class cat. That way we know each test starts off with a clean instantiation of Cat. The four methods with [Test] are our tests. They will determine that the code written in our script will return what we expect it to. For example, assume a new team member comes to our project and believes that a cat truly loses two lives at a time. Out of excitement, they change your code without even consulting you. Assuming they run the tests as expected, you or this new team member will then be notified that something isn't right. The numbers aren't lining up to what they should be. You've corrected this bug before it's even gotten dangerous. In the enterprise world, it’s the norm for many team members to come and go on projects. Games are no exception, and by having safeguards like Unit and Integration testing, you'll be able to catch those small bugs before they get too far. I recommend a further reading on Unity Tests, and testing in general, as this just scratched the surface! About the Authors Denny is a Mobile Application Developer at Canadian Tire Development Operations. While working, Denny regularly uses Unity to create in-store experiences, but also works on other technologies like Famous, Phaser.IO, LibGDX, and CreateJS when creating game-like apps. He also enjoys making non-game mobile apps, but who cares about that, am I right? Travis is a Software Engineer, living in the bitter region of Winnipeg, Canada. His work and hobbies include Game Development with Unity or Phaser.IO, as well as Mobile App Development. He can enjoy a good video game or two, but only if he knows he'll win!
Read more
  • 0
  • 0
  • 2677

article-image-5-things-that-matter-software-systems-architecture-2018
Richard Gall
11 Dec 2017
4 min read
Save for later

5 things that will matter in software systems and infrastructure in 2018

Richard Gall
11 Dec 2017
4 min read
Perhaps some of the biggest shifts in software in 2017 have come in software systems and infrastructure. Today we’re living in a world where infrastructure is more than just a ‘thing’ that exists to allow businesses to run - it’s now business critical, something that can change and be a driving force for change. It defines the way all software engineers and other tech professionals work - in terms of both the projects they’re working on, the resources at their disposal, and how they go about building things. That means there’s a wealth of opportunity to make a lasting business impact in 2018. So, if you’re working in systems and infrastructure, what is going to be important in 2018? What should you be paying attention to, discussing, exploring? Here’s our list of 5 things that will matter... 1. Serverless architecture 2018 will be the year that serverless becomes a serious trend. It’s already a hot issue in more adventurous organizations, but we’re likely to see things mature and for serverless to become more visible than it ever has been. The key advantages of serverless tell you a lot about how companies are thinking - it saves money, and offers enhanced scalability. It also speeds things up - as microservices become the dominant architectural mode, with APIs defining the way applications are built, you’re no longer simply interested in what your own server is doing - you’re interested in how the services you need are performing. There’s more value in opening up, not closing yourself off and going it alone. 2. Container orchestration Containers have truly caught the imagination of the software world. They’ve helped to alter how we build and deploy software, and have undoubtedly played an important part in driving forward trends like serverless and DevOps. But in 2018, what’s going to be key is getting containers under control. Tools like Kubernetes will make this possible - but ultimately the issue of orchestration presents another tooling question that will force engineering teams to think carefully about what’s right for them and the way they work. Fundamentally, the importance of container orchestration in 2018 underlines the maturity of containerization over the last half a decade. 3. Taking advantage of system automation Your work is never done. There’s always something else that needs to be built, something that needs to be tested or changed. And as efficiency becomes more and  more important with system administration and architect roles under more pressure to deliver, taking full advantage of system automation is going to be essential in 2018. Ansible will be the key tool here - it’s already hugely popular, and it’s popularity is likely to increase over the next 12 months. Ultimately what system automation offers is a way for engineers to make time - by minimizing the work needed to perform basic tasks, they can instead focus on what’s going to make an impact. 4. Shrinking budgets Shrinking budgets are going to have a big impact on just about every facet of an organization’s software systems and architecture. It’s perhaps the fundamental element driving everything else, from serverless to automation. The pressure will be on, then, to focus resources where it really matters. 5. Making DevOps work We’ve spent years talking about DevOps, but it’s still proving a challenge for many organizations when it comes to implementation. In 2018, however, it’s going to be critical. The time for discussing and arguing what it means is over - instead, it’s going to be down to sharp and ambitious engineers, project leads, Scrum Masters - whoever - to bring people in and show them how DevOps can really improve the way software is managed within businesses.
Read more
  • 0
  • 0
  • 2665
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at €18.99/month. Cancel anytime
article-image-openstack-guide-helps-train-cerns-staff
Tim Bell
07 Oct 2015
4 min read
Save for later

The OpenStack guide that helps train CERN’s staff

Tim Bell
07 Oct 2015
4 min read
What is OpenStack? OpenStack is one of the great success stories of open source technology. Born from Rackspace and NASA, it has been developed by scores of people across the globe as one of the most powerful and popular cloud operating stacks. Backed by some of the leading players in the cloud space today, OpenStack is widely deployed from small businesses to huge multi-million research projects alike. What is CERN? At CERN, the European Organization for Nuclear Research, physicists and engineers are probing the fundamental structure of the universe. They use the world's largest and most complex scientific instruments to study the basic constituents of matter – the fundamental particles. The particles are made to collide together at close to the speed of light. The process gives the physicists clues about how the particles interact, and provides insights into the fundamental laws of nature. The Large Hadron Collider (LHC) is the world’s largest and most powerful particle accelerator. It consists of a 27-kilometre ring of superconducting magnets with a number of structures to accelerate particles at close to the speed of light before they are made to collide. This produces 27 Petabytes of data every year – all of which is recorded in the CERN data centre and analysed thanks to the Worldwide LHC Computing Grid. OpenStack at CERN In 2015 the LHC was upgraded to nearly double the collision energy. It was clear to us that further computing resources were needed. To provide the additional capacity and be more responsive to the users, a new approach was needed. In 2012, a small team at CERN started looking at OpenStack for creating computing clouds. It was a very promising technology with an enthusiastic community but a significant level of complexity. The OpenStack Cookbook - Accelerating training for CERN cloud administrators Along with the code being very new, it was very early days for the OpenStack documentation and training. We wanted to educate the people rapidly to start the project and so looked for guides to get the new administrators productive. This was when we encountered the first edition of the OpenStack Cloud Computing Cookbook. It became the standard document for newcomers to the team to understand the concepts, set up their first clouds and then start work on the CERN cloud. As the cloud evolved and the OpenStack technology matured, we continued to use the guide as members of the team rotated, building small clouds to try out new concepts and investigate the flexibility of cloud computing. Over the years, I have frequently met with book authors Kevin, Cody and Egle at OpenStack summits which give the community an opportunity to meet and exchange experiences. With OpenStack evolving so rapidly, it also gives an opportunity to get the latest editions of the Cookbook which they have continued to keep up to date. The CERN cloud is now in production across two data centers in Geneva and Budapest with over 4,000 servers running tens of thousands of virtual machines. With new staff members joining frequently, we continue to use the Cookbook as a key part of the team’s training and look forward to the updates in the latest edition. From 4th to the 10th April, save 50% on our very best cloud titles. Find them here!  Get the OpenStack Cloud Computing Cookbook Today If you’re interested in the practical, hands-on OpenStack guidance that has been helpful to training CERNs engineers for working on the CERN cloud you can pick up the latest edition now direct from Packt Publishing. Available in both eBook and print, find out today why this guide is invaluable for setting up an OpenStack cloud for anything from a small enterprise to a huge research endeavour such as CERN. About the Author Tim Bell is infrastructure manager at CERN, an OpenStack Foundation board member, and author of the foreword to the OpenStack Cloud Computing Cookbook - Third Edition, from Packt Publishing.
Read more
  • 0
  • 0
  • 2645

article-image-get-most-out-your-vr-content-maximizing-reach-your-immersive-experience-part-1
Andreas Zeitler
08 Mar 2017
6 min read
Save for later

Get the most out of your VR content: Maximizing the reach of your immersive experience - Part 1

Andreas Zeitler
08 Mar 2017
6 min read
This post gives a short summary of the landscape of VR devices and tools available today, starting with mobile devices. I will also outline some pitfalls. A follow-up post will deal with non-mobile devices and a third part will talk about the tools used to create VR content and optimizing your content for maximum reach.  Mobile Devices & Viewers The concept is simple: you use your existing smartphone and put it into a VR viewer. The smartphone then acts as a display and processing unit for the VR content at the same time. The VR content can be 360 media (images or video) or real-time 3D scenes rendered by a game engine—both types of content usually feature interactions like hotspots or animations which can be triggered while in VR mode to make the content more engaging. The content will arrive on your smartphone as part of an app or via the mobile web browser on your smartphone (more on that later). Before you can put the smartphone into the VR viewer, you need to enable Cardboard mode / VR mode / distortion mode / fisheye mode on it. This will display the content as two images on the screen, one for each eye.   Regular Mode vs. Fisheye/VR Mode for a real-time 3D scene Popular mobile VR viewers are Google Cardboard, which comes in many, many versions, shapes, sizes and finishes. And there’s Samsung’s GearVR, which comes in three distinct device generations. Google Cardboard is a standard design, which is publicly available and can be manufactured by anybody. Thus Cardboards are available from many manufactures, either made from actual cardboard or out of plastic. There’s different versions ranging from simple ones to more advanced ones which include headphones and/or the ominous “button” (more on that later). Chances are that if you own a smartphone which has at least a 4-inch screen there will be a suitable cardboard device available for you to purchase and use. The ones made from cardboard are often used as giveaways at events and trade shows. The user experience is rather complicated: you have to install a Google Cardboard-enabled app and scan the Cardboard QR code printed on the device itself with your phone. More often than not, this graphical code is missing on the device. As there are different versions of the Google Cardboard Standard being manufactured, you need to tell the Cardboard-enabled app which version you are using. Otherwise,distortedcontent is displayed whichdoes not match the lenses in your Cardboard device.That makes the experience blurry, distorted, or un-viewable altogether. In a casual survey we do with our customers, we find that while 7 out of 10 have a Cardboard device available only 1 out of 10 has used a Cardboard Device successfully with good results due to these limitations.   Google Cardboard with Smartphone inserted Samsung GearVRuses the same concept but comes as a sturdy plastic viewer, which has some additional ports built in and actually connects to the inserted Android device via the micro USB connector at the bottom of the device. Through this,GearVR can address one issue Google Cardboard cannot address: user input. As the smartphones are inserted into the VR viewer in both cases it is not possible to touch the screen.Thus the only available form of interaction ismotiongestures (i.e. shaking the device) or focusing on elements in the virtual environment, which are activated after a certain amount of time (this is called gaze-based interaction). While motion-gesture interaction is limited to only a few suitable use cases, gaze-based interaction has become the de-facto standard in VR,even with apps targeted to be used with the GearVR, which offers a D-PAD and additional button on the right side. Because of these dedicated user input controls, we at Vuframe call GearVR a “more dedicated” VR device than Google Cardboard, which we call a “casual VR device”. Google Cardboard only features a very unsuccessful attempt to emulate this with “the button”: for the Cardboard devices which include this feature, the user can press (actually it is more like a mechanical switch) a button on the side of Cardboard viewer, which then triggers a magnet. The magnet is “sensed” by the smartphone’s compass sensor and interpreted as a click. It’s as crazy as it sounds and it does not really work even half the time. An honorable mention in the category of mobile viewers and user input goes to Google’s new (or other) VR platform. It is called Daydream and comes with its dedicated, fabric-foam viewing device which includes a remote, motion-enabled remote for user input. This device allows pointing in VR space and translates a second degree of motion, which can simulate the user’s hand. It’s a much better take on VRinput and it is definitely the interaction pattern we would want to see established as the new standard. Google Daydream is not yet showing any clear traction based on reliable sales figures. In summary, you will reach most people by sticking with a device-neutral, gaze-based way for the user to interact with your content.  What about audience size? Google Cardboard is currently the device with the widest spread, with approximately 85 million devices in circulation at the end of 2016 (see [1] and [2]). Mind you, many of those devices have probably been branded giveaways; there are not really 85 million active Cardboard users out there; many are just lying in a corner somewhere gathering dust. GearVR’s reliable figures put the number of sold units in 2016 at 5 million, with a liberal guess of 6.5 million at the time of writing this post. As mentioned above: for Google Daydream, it’s still very early days. As far as mobile viewers are concerned, you are covered by sticking with Cardboard and GearVR, both will give you an approximate audience which will hit 100 million circulated devices in size sooner rather than later in the course of this year.  Read on about Dedicated VR Devices & Workstation-based VR in the next post.  Sources: [1] http://venturebeat.com/2017/02/04/superdata-vrs-breakout-2016-saw-6-3-million-headsets-shipped/ [2] http://www.hypergridbusiness.com/2016/11/report-98-of-vr-headsets-sold-this-year-are-for-mobile-phones/  About the Author Andreas Zeitler is Founder and CEO at Vuframe. He’s been working with augmented andvirtual Reality on a daily basis for the past 8 years. Vuframe’s mission is to democratize AR & VR by removing the tech barrier for everyone.
Read more
  • 0
  • 0
  • 2636

article-image-vr-unity
Raka Mahesa
25 May 2016
6 min read
Save for later

VR in Unity!

Raka Mahesa
25 May 2016
6 min read
If you're a Unity developer looking to get into VR development, then you're in luck because Unity is definitely going all-in on the virtual reality front. With the recent announcements at Vision VR/AR Summit 2016, Unity has promised built-in support for all major virtual reality platforms, which are Oculus Rift (including GearVR), Playstation VR, SteamVR, and Google Cardboard. Unity is also currently developing an experimental version of the Unity editor that can be used inside of VR. Given how there is one game engine that supports most VR platforms, there has never been a better time to get your feet wet in VR development. So let's do exactly that; let's get started with VR using Unity. And don't worry; I'll be here to help you every step of the way. A journey of a thousand miles begins with a single step, so let's do some simple stuff first. There are two basic topics that we're going to cover this time: head tracking and interaction in VR. While those sound pretty basic, they are the fundamental components of a virtual reality experience, so it's best to understand them in the beginning. Requirement There are a couple of requirements that need to be satisfied before we start, however. We're going to need: Unity 5.3 or above Windows 7 or above Oculus Rift device (optional) Oculus Runtime 0.8.0.0 (only if you have an Oculus Rift) While it's recommended to have an Oculus Rift ready when you're developing a VR app, it is not required. Starting out All right then, let's get started. I'm going to assume that you're already familiar with programming and Unity in general, so we won’t go into too much detail with that. Let's make a new Unity 3D project. Once you've made a new project, you need to turn on VR support by going to Edit > Project Settings > Player. On the Other Settings tab, check the Virtual Reality Supported box. Don't forget to make sure that your selected build platform is PC, Mac, and Linux. The next step is to create a scene and add some objects there. Any objects will do, but in my case, I just added a cube at the center of the scene. Then we create an empty GameObject and add (or move) the main camera as its child object. This part is important—the main camera has to be a child of another object because when you're developing for VR, you cannot move the camera object by yourself. The VR system will track your movement and adjust the camera position accordingly, overriding any change you made to the camera position. So, to have your camera moving, you'll have to modify the position of the camera's parent object instead of the camera itself. Now, if you have an Oculus Rift in your hand, you're set and ready to go! All you need to do is simply connect the device to your PC, and when you press play, your head movement will automatically be tracked and translated to the in-game camera and you will be able to see your scene in VR on your Oculus Rift. Don't fret if there's no Oculus Rift available for you to use. We'll just have to simulate head movements using this script (by Peter Koch from talesfromtherift). Copy that script to your project and attach it to your main camera. Now, if you play the project in the editor, you can rotate the camera freely by holding the Alt button and moving your cursor around. Interaction Okay, time to step things up a notch. It's not really an app if you can't interact with it, so let's inject some interactivity into the project. We'll add the most basic interaction in virtual reality—gazing. To add gazing to our project, we're going to need this script. Copy and attach it to the main camera. Now when you're playing the project, if you look at a GameObject that has a Collider, the object will slowly turn red. If you clicked while you're looking at an object, that object will be teleported to a random position. Interaction is fun, isn't it? Well, let's dive deeper into the script that enables that gazing interaction. Basically, at every frame, the script will check whether you're looking at an object by casting a ray forward from the camera and seeing whether it hits an object or not. if (Physics.Raycast(new Ray(transform.position, transform.forward), out hit, GAZE_LENGTH)) When the cast ray hits an object, it will check whether it's the same object as the previous frame or not. If it's the same object, a timer will be updated and the script will change the color of the object according to that timer. //Increase gaze time mGazeTime += Time.deltaTime; if (mGazeTime > MAX_GAZE_DURATION) mGazeTime = MAX_GAZE_DURATION; //Recolor float color = (MAX_GAZE_DURATION - mGazeTime) / MAX_GAZE_DURATION; ColorObject(mObject, new Color(1f, color, color)); Interacting via clicks is just as simple. After the script has detected that there's an object, it checks whether the left mouse button is clicked or not. If the button is clicked, the script will then move the object to another position. if (mObject != null && Input.GetMouseButtonUp(0)) { //Move object elsewhere float newX = Random.Range(-8, 8f); float newY = Random.Range(-2f, 2f); float newZ = Random.Range(0, 3f); mObject.transform.position = new Vector3(newX, newY, newZ); } Right now the script, while functional, is very basic. What if you want to have different objects behave differently when they're being looked at? Or what if you want the script to interact with only several objects? Well, I figure I'll leave all that to you as exercise. This concludes the beginning of our journey into VR development. While we only scratched the surface of the development process in this post, we've learned enough stuff to actually make a functioning VR app or game. If you're interested in working on more VR projects, check out the Unity VR samples. They have a bunch of reusable codes that you can use for your VR projects. Good luck! About this author Raka Mahesa is a game developer at Chocoarts  who is interested in digital technology in general. Outside of work hours, he likes to work on his own projects, with Corridoom VR  being his latest released game. Raka also regularly tweets as @legacy99
Read more
  • 0
  • 0
  • 2630

article-image-online-learning-new-classroom
Mark-Anthony Torrocha
04 Aug 2015
5 min read
Save for later

Online Learning: The New Classroom

Mark-Anthony Torrocha
04 Aug 2015
5 min read
Our Skill Up reports have clearly shown how learning new skills can increase your salary and what knowledge is most in demand in key areas of IT. So now you know what you need to learn, how do you actually go about learning it? Mark-Anthony Torrocha from coding school Coding Campus explains how online learning can be the best option if you are looking for flexibility, although you need to have commitment to make it work well. Simon Dudley notes that without a degree, you may not be able to earn as much over the course of your career. At some point it does seem to become economically unfeasible to earn that degree conventionally.  Most Coding Campus students, especially distance learners, come from promising careers before attending our bootcamp. Business owners, marketing directors, program managers all want the opportunity to create something of their own. They have spent time and money earning a bachelor's, sometimes even a master's degree in their profession and know that it is a risk to start over. For online students, it is even harder to think about starting a program that would take time away from their work and family. A great deal of thought and preparation must be taken, not just by the student, but also their families. When Breana Gonzales decided to take the Python Web Development course, she knew that it would take all her time to be a successful web developer. It was a conscious decision to take the course. The same goes for other online students, David Fall and Ervin Kleitz Gonzales, when they immersed themselves in the Angular Web Development course. Fall was working for a small company in Washington, while Gonzales did side work while telecommuting for the nighttime course. "You really need to be disciplined when you are taking the classes as an online student," remarked instructor Mark Price. "The success is in keeping up with the work and remembering that you are investing time and money into what you are doing." Issues Though Gonzales recognizes that a degree in Computer Science would give her greater income, she had bills to pay, and other things to do, but not the time to go the traditional route. Both Fall and Gonzales have the computer science background from their university education, but the rigorous training provided by the course gave them leverage in their new roles as web developers in their new found jobs. After completing the course and gaining experience at Verisage, Gonzales now works at EMC as an applications developer. Her course led her to her job, which allowed for her to fulfill her other plans. As much as time is an issue, money to participate in a course is also a key indicator of participation. A full-time immersive course can cost close to ten thousand dollars. Twelve weeks without a source of income can be daunting for many. Most students that take our online option choose a part-time course that allows for them to keep their current jobs while learning new skills. Some will take out loans to fund their time in the bootcamp. There are also those who choose to delay their programming education in hopes to getting enough money that they can afford the program. Unfortunately, we don't have access to federal money like most schools, but we do want to help in jumpstarting people's programming career. Here are other ways online bootcamps help with minimizing your costs: Climb Credit Coding Campus teams up with Climb Credit allowing students to finance their schooling Scholarship for Women, Minorities and Servicemen We offer 10 percent discounts, sometimes even 30 percent, to qualified individuals. Scholarships have been provided by civic employment programs, local companies, and others who really want you to succeed. Refer a friend and get even more money. On the Job training Companies have invested money in Coding Campus by means of projects that students work on during the course. Some even consider your time as a job, or apprenticeship, that you can refer to on your resume. It’s all about priorities "Despite discouraging headlines, a college degree remains the best route to finding a job in this tight market," TICAS president Lauren Asher said in a statement. Distance learners accepted by Coding Campus go through a stern admission process giving them the time to figure out if the course is something that they are able to commit to making them accountable to their learning. Before securing a job as a programmer, Bobby Clawson made a living as a firefighter. Turning to a career in programming was a step to provide for his growing family. “If you’re going to go the route of not going to college and not getting a degree for anything, then of course you’ll have to be prepared to find a lot of ways to study yourself which can be its own challenge,” Clawson said. “So I guess that has to be the type of thing that you have to weigh or consider for which path you want to go.” Coding Campus puts the same kind of attention to its distance learners as its in-person participants. Sometimes, they even require more. Distance learners are required to participate in real-time, turn in their assignments in local time, and maintain their attention to the course without physically being in the class. It is a lot of responsibility which is made known long before the course starts in order to prepare the students for the challenges. Because of these expectations, our distance learners thrive. Distance learning works for our students because it allows them time with their families, provides them with a real classroom experience, and an understanding that we provide the resources and it is up to them to apply it in their careers. To learn more about your options in starting a career in web development, visit us here.
Read more
  • 0
  • 0
  • 2621
article-image-making-greater-good
Clare Bowman
30 Jun 2014
7 min read
Save for later

Making for the Greater Good

Clare Bowman
30 Jun 2014
7 min read
Occupational Therapists work with individuals to achieve increased participation in their desired occupations--be it in work, self-care, or leisure activities. The cross collaboration between OTs and the Maker community, a group of technology-based do-it-yourself hobbyists, is a space that has much potential, and should be explored further. In this blog post, we are going to explore one such collaboration: a "Weather Cube" case study. The Weather Cube was originally built for individuals with severe learning difficulties in an environmental awareness group that experienced problems with their sensory integration (SI). If inefficient sensory processing is prevalent in an individual, this may result in sensory integration dysfunction. The cube stimulates the user's imagination, and increases understanding of weather. Discussions can be started around the different weather elements, and introduce stimuli. For example, a fan can give the impression of wind, or water can be dripped onto the service user's hands to experience the feeling of wetness. The sound files and images of the cube can be changed to suit different individuals and groups. Building the Weather Cube Each side of the large foam Weather Cube is stenciled with different meteorological icons and is associated with relevant weather sounds. By turning the face of the cube, the user can hear sounds and associate them with images. Each icon is assigned a unique sound file. As the cube is picked up, the sound file linked with the upward facing plane is wirelessly triggered. Inside of the Weather Cube is housed a Shrimp, which is a DIY circuit (see shrimping.it for further information). Sourcing the Prototyping Materials The hardware we sourced for the Weather Cube use what we call ‘Shrimping,' a strategy for sourcing and openly documenting interactive physical computing kits we create to support UK learners. We call it Shrimping out of loyalty to our humble hometown of Morecambe, an area so famous for its shrimps that they named the soccer team after them! Shrimping is based on sourcing, testing, and documenting the cheapest possible components and modules direct from the manufacturers and wholesalers who serve professional electronics engineers and integrators. After prototyping a project, we provide free, easy-to-follow build graphics, instructions, and sourcing information online enabling others to prepare their own project kits direct from wholesalers, and substantially below retail prices especially when purchased in volume. In this section we outline the benefits and problems of sourcing your own parts direct. Make Circuits Like an Engineer Wholesale component suppliers do not operate with the hobbyist in mind, but their products are incredibly cheap, and with just a bit of community-maintained documentation, can be used like Legos--brought together in different combinations to prototype and deploy in a variety of educational and entertaining devices. Constructing devices on breadboards and stripboards helps makers develop substantial prototyping skills, and understand the pathway that professional device-inventors use. With these skills and materials you can personalize the circuit to meet your own specific needs, which is nearly impossible with a printed circuit board. Once complete, you can use their working circuits as a reference to move towards full-scale manufacturing of printed circuit boards. However, for many people, the main benefit of this approach is price. For hobbyists, Shrimping makes it cost-effective to deploy large numbers of experimental projects. For classrooms and Hackspaces, it becomes feasible to donate the kits for learners to adopt and personalize, which would be prohibitive if using prefabricated microcontroller boards from hobbyist suppliers. Shrimp vs. Arduino The programs that run on the Arduino Uno microcontroller board will run on the Shrimp too. The Shrimp has the full set of input and output pins as an Uno meaning that makers can use the circuit to replicate the many thousands of community-documented Arduino projects. However, it is built from the bare minimum of components, making it roughly one tenth the cost of an official Arduino board. In the Weather Cube, we decided to attach a Shrimp circuit to a Raspberry Pi. Relative to the Shrimp, the Raspberry Pi is more geared up for power and processor-heavy multimedia and desktop applications. For physical computing projects, a Pi always needs some kind of interfacing circuit to be attached, which can themselves be quite expensive. The Shrimp therefore has complementary strengths to the Raspberry Pi, with its low cost, ability to attach directly to sensors and actuators, it's ability to run in low power, and to run software in real time. The computing capabilities of an official Arduino board come from the ATMEGA328 chip at its center, and the Shrimp is essentially the same as the reference circuit from the manufacturer’s data sheet, laid out on a breadboard. Unfortunately, a special program, called an Arduino bootloader needs to be copied to an ATMEGA to make it possible to program it from the Arduino IDE. That means you can’t use wholesale ATMEGAs without an extra preparation step. Using online auction sites you can buy a chip with an Arduino bootloader already added, and once you already have an Arduino-compatible chip, you can use this to bootload more chips using a special Arduino Sketch called Optiloader. Breakout Modules In addition to the Shrimp on breadboard, we've used three breakout modules and another sensor component, a piezoelectric transducer. The breakout modules needed are: a CP2102 USB to UART for wired programming and communication, a HC-06 module for wireless Bluetooth communication and an ADXL345 Accelerometer module for sensing the orientation of our wearable sensors. The codes CP2102, HC-06, and ADXL345 actually refer to small ‘surface mount’ components that have tiny connections intended to be mounted industrially onto printed circuit boards. These components cannot be inserted into a breadboard or connected to for easy prototyping. For this reason, various suppliers provide ‘breakout modules’ which make the connections available as large pins with 0.10 inch (2.54mm) separation, suitable for insertion into breadboard, or wiring with female header cables. The components themselves are quite cheap, and breakout boards are fairly simple to engineer, ensuring that the prices remain low. This also means different suppliers end up making similar-looking breakout boards but with different pin sequences and labeling. Breakout boards have the same fundamental capabilities, because they ‘break out’ the same pins from the same component, so if you wire to the correctly labeled pins, changes to the layout should not normally make much difference. One major exception, sadly, are the 'transmit and receive pins' on UART modules. Some UARTs label their pins according to their role - describing if they transmit TX or receive RX data. Others label their pins to describe what pins on the communicating device to attach to, so a transmitting pin is actually labeled RX, and a receiving pin, TX. As you can see, there is a lot of potential for the Maker community to collaborate with health professionals (and others), to design projects for the greater good. Also, by sourcing wholesale prototyping materials, makers are able to cheaply test and document their projects, and invent personalized circuits. So, if you are a maker, we urge you to get out and partner with your community; your imagination is limitless. About the authors Clare Bowman enjoys hacking playful interactive installations and co-designing digitally fabricated consumer products. She has exhibited projects at Maker Faire UK, Victoria and Albert Museum, FutureEverything, and Curiosity Collective gallery shows. Some recent work includes “Sands Everything”, an interactive hourglass installation interpreting Shakespeare’s Seven Ages of Man soliloquy through gravity-controlled animated grains, and more. Cefn Hoile sculpts open source hardware and software, and supports others doing the same. Drawing on 10 years of experience in R&D for a multinational technology company, he works as a public domain inventor, and an innovation catalyst and architect of bespoke digital installations and prototypes. He is a founder-member of the CuriosityCollective.org digital arts group, and a regular contributor to open source projects and not-for-profits. Cefn is currently completing a PhD in Digital Innovation at Highwire, University of Lancaster, UK.
Read more
  • 0
  • 0
  • 2612

article-image-keep-coding-creative-some-thoughts-national-coding-week
Richard Gall
24 Sep 2015
4 min read
Save for later

Keep Coding Creative! - Some Thoughts on National Coding Week

Richard Gall
24 Sep 2015
4 min read
Does coding need a national week? Just about everything has a day, week, or month dedicated to it, so why shouldn’t one of the most important skills in today’s economy have a week to promote itself? Yes, it’s a great photo opportunity for a government obsessed with the bland mantra of ‘innovation’, but I’m not going to be cynical. Let’s not let ‘coding’ be taken over by self-important entrepreneurs; instead, let’s remind everyone of the immense possibilities and opportunities that learning to code opens up for everyone – from data analysts to designers. There’s a great story on Medium posted by the event’s organizers on one of the Codex DLD (the team behind National Coding Week) success stories. Dwayne Murray explains how learning to code helped him through a difficult period, the skills he developed eventually landing him a job in the digital sector after being unemployed. While Dwayne’s story has a nice personal dimension, as he talks about his difficulties finding a job after becoming unemployed, while trying to support his partner and new baby, it’s the broader picture of what he’s doing that’s particularly interesting. He says in the interview: “We learnt how to write code in HTML & CSS, the basic fundamentals of design, digital marketing, social media and SEO. In fact, everything I learnt in those two with Codex, I use every day in my current job. It was the perfect platform to start on my new career path. Even the website I designed and built during those two weeks is still live now! I’m actually thinking of developing it further in order to create a sideline business through affiliate marketing.” Coding is always about more than just code – it’s about creating things that have a tangible, real-world value. For Dwayne, learning code has given him access to the rapidly expanding world of digital marketing. But we could also be talking about a whole range of jobs that require programming skills, from design to data modelling. If National Coding Week wants to accomplish anything, it needs to make people realise that coding is a creative activity, ultimately about producing new experiences and new ideas. It’s about generating value. This is essential, particularly if you want to get kids into coding. After all, if you want to inspire kids with what might simply appear to be nonsensical lines of text, you want to make it more like design, woodwork, and even cookery lessons – it certainly shouldn’t be like my old IT lessons where someone showed you how to use PowerPoint and navigate your way through spreadsheets. It might prepare you for the ennui of the modern workplace, but it doesn’t show you what programming makes possible, and it certainly doesn’t ignite enthusiasm. But if you’re already a developer, what relevance does National Coding Week actually have for you? It’s great that people are talking about programming, but when you’re dealing with design requests, tackling another deployment, debugging and fixing things you thought would work, the apparent glamour and even minor heroism with which your programming skills are presented in initiatives like these doesn’t quite ring true. It might be different for kids – and indeed, anyone who hasn’t ever coded before – but even if you’re an accomplished and confident programmer, National Coding Week is a great reminder that there is always something new to learn – a new programming language perhaps, but even a new approach to a language, a new framework or library. As an initiative for the uninitiated, National Coding Week promotes the wealth of opportunities that coding skills can bring and invites curiosity about the digital world; for programmers, it’s a time to rethink what you know about your skills, your job and what you create. Want to know what to learn next? Download and read our free Salary and Skills reports on Web Development & Design, App Development, Data Science and System Administration & Security. Find out what the future holds in your corner of tech – and how you can get ahead. National Coding Week runs from 21st to the 27th September 2015 in the UK. Learn more here, or follow @codingweek on Twitter.
Read more
  • 0
  • 0
  • 2603

article-image-only-software-development-skills-library-you-need
Richard Gall
27 May 2016
2 min read
Save for later

The Only Software Development Skills Library You Need

Richard Gall
27 May 2016
2 min read
Just a few months ago we were talking about the latest iteration of PacktLib. And it seems plenty of people love it. But we’re not done yet; behind the scenes here at Packt we’ve been working hard to add some really exciting new features, add a little extra style, to give you a more complete and a more enjoyable learning experience. If you haven’t already, give it a try – whoever you are, and whatever your experience of Packt, we’re confident that you’re going to find more than what you bargained for. Once you subscribe you’ll have access to some of our most popular content, including Python Machine Learning, React JS by Example and Switching to Angular 2. With the software landscape rapidly changing, by subscribing you’ll have everything you need to navigate the challenges of tomorrow. And, of course, simply build better software. If you want to try it, the first two chapters of every single title in our collection (that’s more than 3,500 eBooks) are available for you to read for free. That means you can take a look at a huge selection of content, as well as experiencing our neat, and endlessly usable reader for yourself. If you want to subscribe, make sure you do it soon! We’ll soon be making more changes, which means we will be restructuring our price – so why not dive in and explore our library today? Your PacktLib development journey begins here.
Read more
  • 0
  • 0
  • 2602
article-image-typography-101
Owen Roberts
06 Nov 2015
8 min read
Save for later

Typography 101

Owen Roberts
06 Nov 2015
8 min read
Let’s talk about fonts for a bit. When you’re working on a site, how much time do you actually spend on them? Probably not too long, why bother about something like letters when you’ve got to make sure your work is perfectly responsive after all? Fonts are actually pretty essential and aren’t really given enough credit in how important they are for people; after all, would you use Comic Sans on a business site? Of course not. The wrong font can reduce readability, put customers off, and generally gives your site an unprofessional look up there with a garish color scheme. You want to avoid it at all costs. A quick search online shows us there are around 200,000 different fonts available for download. That’s a lot to choose from – way too many when you think about it, can you think of 200,000 different situations where a different font is absolutely needed? Where do you even begin?! To help you out and give you a bit of a fighting chance in this article I’ll take you through the very basics of typography and hopefully get you thinking about fonts so you can start looking at it in more detail – constantly use Times New Roman? Here’s where to get moving away from that! Types of Fonts With 200,000 fonts you’re going to have a hard time collecting them into strict classifications, but it’s generally agreed that there are 4 key groups most can fit into; Serif, Sans-Serif, Script, and Decorative. There’re a few more groups we could touch upon like Blackletter (Think stereotypical Ye Olde Butcherede Englishe) and Calligraphic (Which are partially connected to, but distinct enough from Script to be classed on its own) but these aren’t used as much anymore and are more of a novelty these days. Now, let’s look at each of the 4 in turn briefly and see what makes them up, when to use them, and more importantly, when not to. Serif Fonts Times New Roman “Serifs” are the small lines attached to the end of each stroke in letters and symbols; some people refer to them as “feet”. This font family is very much the ur-example, first used in stone inscriptions as far back as Roman times. The style of a Serif font feels incredibly formal with a lot of impact when used correctly; as such they’re better for business projects or for something that will be read in print. Classic examples of a Serif font are Times New Roman, Garamond, and Centaur. As they were designed to be used in the physical world the transition to computers has created as few problems specific to Serif fonts. Most of these problems stem from the actual serifs themselves – as the amount of pixels per inch on a screen is around 100 Serifs can appear too large, too small, or just disappear which makes reading them a hassle to some people depending on the type of device they use. If you really want to use a Serif font online then try to use some of the more modern variations – Georgia was specifically designed to get around these limitations and look good on low resolution screens for example! Sans-Serif Fonts Calibri (Body) If Serif fonts are known by having feet attached to every stroke then San-Serifs are the opposite; lacking any sort of feet at all, this gives them an informal and clear feel. Sans-Serif is currently the most popular font choice on the internet, and it’s easy to see why. Sans do not have to worry about the problems Serif fonts face with computers and so can be seen easily on any screen regardless of resolution or type. It’s also really helpful when designing advertisements, as it can easily be read in small sizes from a long distance compared to the rest. This; combined with their informal feel means that they suit many sites without too much effort. Everyone’s favorite font Comic Sans is an example of Sans-Serif, so now you know why everyone loves to use it so much! For a font that doesn’t evoke pure rage whenever someone sees it though, try the classic Arial, Helvetica, or Verdana for your responsive projects. The only real problem with Sans-Serif is that, as far as font types go, it’s very much the “Master of None” style. Don’t be afraid to use them all over the place, but when looking to create some impact you might want to try pairing a body of Sans-Serif with a Serif as a header to create a tasteful contrast! Script Fonts Kunstler Script Script fonts are designed to look like cursive handwriting. If you picture in your mind a handwritten invitation then you’ve probably got a good idea about what to expect. The golden rule to using Script fonts is usually “don’t” because they’re so incredibly difficult to read; ever struggled to understand someone else’s handwriting? That’s exactly what Script fonts are like most of the time. There is, however, at least one place you can use them if the planets align right – the title. If the brand’s character calls for it then they can be effective; they add a touch of class when used sparingly… but when used incorrectly they can make a mess of your work. If you really want to give them a try have a look at Blackadder ITC or Lucida Handwriting. Decorative Fonts Westwood LET The most diverse category by far, as there is very little that really interlinks each one together. A lecturer I once knew referred to them as “WordArt for professionals” and that’s a pretty apt way to describe their use – adverts, announcements, posters, and billboards. They can range from cheesy cloud shaped letters to graffiti inspired words. Never use Decorative fonts for main bodies of texts. The less they’re used the better to ensure they keep the impact they offer on the page. Unless you’re working on something with a theme like a circus, Art Nouveau inspired, or a website aimed at children you’re probably best off avoiding them all together really. Want to try one? Stencil is available on most word processors and gives a good idea for you to get what this style is all about. Things to Keep in Mind So we have our 4 font types, but can we use them all in one project? Of course not! Here are a few tips to keep in mind now you know the difference between each type of font: Only use 2-3 types of font per project. Treat your fonts like a hierarchy, with the main choice being complimented by the others. Never change font mid-sentence or paragraph. Ever. When combining Serif and Sans-Serif use Serif as the heading and Sans for the main text. Try to avoid combining fonts that look too similar. If you squint and can’t tell much difference then it’s better to change one to make them stand out more. Context is important; a font that doesn’t fit your work is like suddenly TYPING IN ALL CAPS FOR NO REASON. Another thing to keep in mind is that while fonts can have a huge impact on the feel of your work they're only one part of a whole. Don't slack off with the rest of your design too! While you're here, why not grab the second edition of our fan favourite Responsive Web Design with HTML5 and CSS3? It lives up to the hype and then some! Already got it? Well, there's a few other titles at the bottom on this page for you to browse too! Where to Next? So there we go; an overview of the 4 main font types and their uses. Hopefully you got something out of that and are interested in finding out more. I may come back to this topic one day, but for now I’d recommend moving out of your comfort zone and start testing out different fonts with your own eyes. If you’re looking for something specific to look into, then why not looking into what certain fonts can do to drawn readers to certain sections, or even how they can be used to subliminally influence emotions? A strategic font choice is just as effective as any design decision in that regard! Or you can do what I do, and just start using Helvetica. Helvetica’s great.
Read more
  • 0
  • 0
  • 2588

article-image-reactive-functional-and-beyond
Daniel Leping
17 Oct 2016
5 min read
Save for later

Reactive, Functional and Beyond

Daniel Leping
17 Oct 2016
5 min read
Every second, three new humans are born. Sometimes it feels like the buzz words are appearing with the same or even greater speed. In the last several years the word reactive became something everybody talked about, but it has different meanings. Wikipedia defines reactive programming in the following way: Reactive programming is a programming paradigm oriented around data flows and the propagation of change. This sounds cool, but it’s hard to comprehend. The reactivemanifesto.org site defines reactive systems as ones that are: Responsive Resilient Elastic Message driven Moreover, this is something backed by Lightbend (the company behind Scala and one of the most active evangelists of the Reactive concept). The concept of Reactive became even harder to define lately because some UI-related frameworks claim to be Reactive: RxSwift or ReactiveCocoa for instance. So, why would I be writing about something I called a buzzword? I believe that the Reactive approach is in its early stages, and we (the community) have not yet comprehended and structured it enough. In this post I will cover the most significant tools in Reactive programming. Right now I'm working on a Swift Express project, which I want to be fully compliant with the reactivemanifesto.org. To accomplish this, I had to spawn a fully featured implementation of the Reactive foundation for Swift: Reactive Swift. Furthermore, I want this project to be suitable for both the client and the server side, which is quite a challenge. The first thing I will describe is the RunLoop, which is a very basic low-level object, but it's crucial for deep asynchronous programming understanding and, of course, implementation. Run Loops A traditional approach to the IO and long-lasting operations is blocking. Of course, there are threads, you can say, but threads are not cheap, and thread management is usually quite a cumbersome task for a developer. Threads were invented to make our applications more responsive, right? OK, there are two main reasons apps don’t become responsive: Blocking IO CPU-heavy tasks The second reason is becoming less and less relevant as hardware evolves, and it's solvable with Reactive patterns in the same way as IO, so let’s focus on IO operations. The traditional pseudocode for reading a file is as follows: let file = open("filename") //here we block let data = file.readAll() //do something with data In the era of console apps, it was ok, since most of them were intended to perform single serial tasks (cat, grep, and so on). But if we do something like that on the main execution loop in the UI app, it will hang until the file is fully read. If we do it in a single-threaded server, it will block the accepting and serving of new requests. Thus, threads were made. The real problem, though, is that we just need the data to become available in the future without stopping other operations. In the C language, you can find several implementations of these on different platforms, like epoll on Linux and kqueue on FreeBSD and OS X (all low-level and hard to work with). Still, what is common about them is that they all are Run Loops in essence. Wikipedia defines Run Loops as follows: A run loop is a programming construct that waits for and dispatches events or messages in a program. In practice, it looks like this (Swift pseudocode): let loop = RunLoop() //here we block and start processing messages loop.run() Each operation on the loop should not last long, and if there is nothing to do, the loop sleeps. It can process IO operations and can have operations to be scheduled for later execution. Here is how it would look to read a file with an event loop: // remember we already have a loop from the previous listing? let file = open("filename", loop: loop) //here we do NOT block file.readAll { data in //do something with data } //here we assume the loop is running, and the code above is executed inside it The trick is very simple. We don't block for every single operation, but rather for all the operations together in the loop until an event happens (data availability, a timer is fired, an operation is due, and so on). As soon as the underlying OS is managing all of these states, it can unblock the loop when at least one event happens (think about the need to redraw the screen, accept new connection, and so on) and tell the loop which event exactly has happened and what it should execute. This way we can simultaneously wait for user input, a new incoming connection, and a response from a server without hanging the app. This is called asynchronous approach. Not reactive programming yet, but the first step and an essential part of it (remember the "Message driven" item from reactivemanifesto.org's list?). If you want to see more practical examples, take a look at our RunLoop from Reactive Swift foundation (sorry for the absence of a README). It's something that we already use in all other parts of Reactive Swift, in the upcoming version (0.4) of Swift Express, and in our iOS apps. It has two underlying implementations and at the time of writing can work either with Dispatch or use libuv (the same is used by NodeJS) as a core engine. I hope you enjoyed reading this. About the author Daniel Leping is the CEO of Crossroad Labs. He has been working with Swift since the early beta releases and continues to do so at Swift Express project. His main interests are reactive and functional programming with Swift and Swift-based web technologies and bringing the best of modern techniques to the Swift world. He can be found on GitHub.
Read more
  • 0
  • 0
  • 2585
Modal Close icon
Modal Close icon