Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

Tech Guides

852 Articles
article-image-praise-play-how-rediscover-tech-and-rethink-innovation
Richard Gall
10 Dec 2015
5 min read
Save for later

Rediscover Tech and Rethink Innovation

Richard Gall
10 Dec 2015
5 min read
What’s technology for? How often do we actually ask that question? Very rarely, I’d wager. So many minutes and web pages are dedicated to discussing ‘disruption’ and ‘innovation’ that it’s easy to lose sight of what we’re trying to achieve as tech professionals. Yes, we always want things to be ‘better’, but what exactly does that mean? Usually ‘better’ means ‘faster’ or ‘more efficient.’ Again, I’d ask the same question – why do we want things to be faster? And, ok, it sounds stupid, but why might we want things to be more efficient? These sort of questions are perhaps facetious, but they highlight just how easy it is to lose sight of what makes tech fun, inspiring and exciting. Indeed, it’s useful to note that a lot of the innovations and trends we see across the tech world – from microservices to web components to data lakes, are driven by the relentless hand of capital. It’s all about speed and scale; being able to manage bigger deployments, more users, larger sets of data, without losing performance and without requiring more resources – human or otherwise. But let’s move away from that for a moment. It’s only when we start to innovate by what we in Britain like to call ‘mucking about’ that we can start to rethink exactly what technology is for. True, it might well be the case that technology isn’t really for anything, but isn’t that remarkable enough? Because once we recognise that the tools and technologies that define our everyday lives – both leisure and work – don’t have to be the way they are and used the way they are, it’s then that we can begin to rediscover, reinvent what we might do. It’s against a world where just about all technological advancement fits into a Daft Punk schema of ‘harder, better, faster, stronger’ that a movement towards play and creation has started to develop. Maker culture is perhaps the most obvious demonstration of this, where the emphasis is on the relationship between inventive technologies and the crushing reality of meatspace. 3D printing and robotics take their place alongside more traditional forms of craft, as a new kind of innovation – rooted in exploration, rather than acceleration, takes hold. Go to a ‘FabLab’, one the community workshops that have come to define modern maker culture and ‘digital fabrication’, and you’ll see this exploration in practice. Here you’ll be able to access a huge range of tools, from 3D printers and laser cutters to sewing machines. In a FabLab you can build whatever you want – you can learn from others and share ideas, maybe even materials and tools if you’re nice. Innovation here isn’t driven by changing business demands and market pressures – it’s all about creativity. But it’s not just about Maker Culture – the DIY ethos is catching on to the mainstream. Just look at the huge popularity of Raspberry Pi and other microboards. The very fact that the Raspberry Pi bridges the gap between adults and children says a lot about how we might characterise it – it is at once a ‘toy’ but also a tool. We don’t have to decide which one it is – what’s great is that it’s both at the same time. This means that it’s something we can play with. We can use it to try out new ideas, experiment with different projects - it’s only once you go through that process of play and invention that you can begin to unlock true innovation. This isn’t an innovation that responds to the demands of the marketplace, but instead an innovation that is motivated by curiosity and the sheer joy of experimentation. It’s a little corny, but a good way to think about the value of Maker Culture and creative hardware like Raspberry Pi is by recalling John Keating’s words in Dead Poet’s Society. “We don’t read and write poetry because it’s cute… we read and write poetry because we’re members of the human race” he says. What does this mean? Essentially, it means that we write poetry ‘just because’. We do it simply because we want to. Playing with your Raspberry Pi is like writing poetry – you do it simply because you want to. And how often can we say that about technology? Yes, we’re curious and we want to learn new things, but this curiosity is nevertheless informed by our careers, business strategies – whatever lingers over you as you spend your day working. It’s only when you step back and start to ‘play’ that the tech world takes on a new complexion that is filled with possibility and new routes of innovation. So why not make time to do just that? Don't forget to download and read our Year in Review, to revisit the last 12 months in the tech world and find out what's set to be important for 2016.
Read more
  • 0
  • 0
  • 2575

article-image-destiny-pulp-fiction
Ed Gordon
26 Sep 2014
5 min read
Save for later

Destiny; pulp fiction

Ed Gordon
26 Sep 2014
5 min read
Ideas in science fiction matter. Time and place in science fiction are never “our time” and “our place”. The location and time frame serve to create a canvas for discussion about contemporary issues; everything from The Time Machine onwards talks about issues bigger than “how big guns get in the future”. They talk about alienation from nature (We), they talk about the detachment from self (Nineteen Eighty-Four), they talk about class (Brave New World), reality (anything by Philip K. Dick), societal structure and development (Canticle for Liebowitz); anything that affects readers, science fiction finds a way to talk about it. Destiny, however, talks about nothing and ideas don’t matter to it. It’s the empty vacuum of space and little more than cheap pulp fiction. There's a line towards the end of the terrible, shallow, incomprehensible, and disappointing story mode of Destiny that succinctly sums up the game's issues. In a neat twist of dramatic irony, the third character of the story (maybe the fourth if we count Bill Nighy) says to your hero, "You want to turn it into a battleground? How...unimaginative" It's a beautiful moment of irony, but one that I'm not quite sure landed with the game's script writers. This one line expertly sums up all that is wrong with Destiny. It encompasses the lost potential for the game's environments, the terribly dull and uninspired lore (The Traveler, The Fallen, The Awoken; I'm a fan of “everyman” fiction, but it comes across as lazy), and the panic-inducing, strangely moreish gameplay that keeps you going back for one more terrible mission. Destiny has taken the canvas that science fiction gave it and its developers crafted, and declined to do anything more than turn it into a never-ending battleground. Judging books by their covers It’s not all bad for Destiny. It was built with a custom, in-house game engine. It uses Havok for its physics. It's a highly engineered piece of work, which brings the best out of the old-gen systems, and hints at what's available for the new gen systems. It looks great. It's an example of how to craft “time and place” in a game; art assets, lighting, and effects all work together to make an intriguing canvas to paint your Destiny onto. Yes, the rusted cars are a clichéd hangover narrative hangover from Iraq's gruesome Highway of Death. Yes, nothing screams trite post-apocalypse more than a rusted factory inhabited by weird non-humans. But I challenge anyone to walk through the missions and not be impressed by the feel of the place. The gameplay mechanics are also, by and large, the best you'll find in an FPS. I felt more control and more in command than I ever have (this was, in part, due to the fact I'm a few levels higher than my enemies which can actually take away a lot of the challenge of defeating the hordes of monsters that are thrown at you...). The game's mechanical structure and overall development quality is superb. You should check it out (rental, preferably). The in-house engine looks swell, and the music is probably one of the best soundtracks I've heard on a game before—it's truly epic. Well done Paul McCartney. And well done developers. You made a good game. It’s just that the writers let you down. I’ve got a bad feeling about this… Packt do amazing game development books. We've just released a new raft of Unity books to help people make more awesome games for different platforms. We've been publishing game development books for five years, and will continue for a long time yet. We've always aimed to provide the skills you need to create games. They teach you sprites, animations, GUI development, 2D, 3D, how to create multiplayer games, and much more besides. They don't, however, teach you ideas. All our books require you to have an idea for a game. We can arm you with the skills, but unless you want a clone of an FPS lifted straight from the book, you're going to need to bring your own twist of originality.  Our seminal Unity book, Unity Game Development Essentials, hit upon this in the tagline: “If you have an idea for a game but lack the skills to create it, this book is the perfect introduction.” The most recent content release, a Raid for level 26 super Guardians, is a great example of how few ideas Destiny is bringing to the table. It’s a mission that takes 10 hours of playing to complete and requires five other level 26 friends. It took 1606 deaths (2 minutes a life) for an expert clan to complete it. This is not innovation. It’s just more. More of the same bullet-sponge enemies, more of the same gameplay, for more time. It’s more of your life that you aren’t going to get back. The whole thing just reeks of bad ideas and bored story-telling. Against the backdrop of the most expensive scenes ever created, and to the strains of sublime music, Destiny forgot the most important ingredient in the game development (and science fiction) recipe—great ideas. There's a paucity of quality ideas throughout that, even with the most talented developers in the world, Bungie can't hide. Destiny isn't a bad game; it's just a game that forgot that the first step of game development is a good idea.
Read more
  • 0
  • 0
  • 2574

article-image-what-innovation-strategy
Hari Vignesh
08 Oct 2017
5 min read
Save for later

What is an innovation strategy?

Hari Vignesh
08 Oct 2017
5 min read
Despite massive investments of management time and money, innovation remains a frustrating pursuit in many companies. Innovation initiatives frequently fail, and successful innovators have a hard time sustaining their performance — as Polaroid, Nokia, Sun Microsystems, Yahoo, Hewlett-Packard, and countless others have found. Why is it so hard to build and maintain the capacity to innovate? The reasons go much deeper than the commonly cited cause: a failure to execute. The problem with innovation improvement efforts is rooted in the lack of an innovation strategy. Innovation strategy — definition Innovation strategy can be defined as, a plan made by an organization to encourage advancements in technology or services, usually by investing in research and development activities. For example, an innovation strategy developed by a high technology business might entail the use of new management or production procedures and the invention of technology not previously used by competitors. Innovation strategy — a short description An innovation strategy is a plan to grow market share or profits through product and service innovation. When looking at innovation strategy through a jobs-to-be-done lense, we see that an effective strategy must correctly inform which job executor, job, and segment to target to achieve the most growth, and which unmet needs must be targeted to help customers get the job done better. When it comes to creating the solution, an innovation strategy must also indicate whether a product improvement, or a disruptive or breakthrough innovation approach is best. Unfortunately, most innovation strategies fail in these regards, which is why innovation success rates are anemic. Myths that mislead Innovation strategy is not about selecting activities to pursue that are different from those of competitors. This is the myth that misleads. Selecting activities is not a strategy. An innovation strategy is about creating winning products, which means products that are in an attractive market, target a profitable customer segment, address the right unmet needs, and help customers get a job done better than any competing solution. Only after a company produces a winning product or service should it consider what activities are needed to deliver that product or service. Tactics for innovation strategy Global competition and a weak economy have made growth more challenging than ever. Yet, some organizations such as Apple, Amazon, and Starbucks seem to defy the laws of economic gravity.The most successful growth companies adopt at least four best practices. Find the next S-Curve Nothing grows forever. The best products, markets, and business models go through a predictable cycle of growth and maturity, often depicted as an S-curve. Diminishing returns set in as the most attractive customers are reached, price competition emerges, the current product loses its luster, customer support challenges emerge, new operating skills are required, and so on. Unfortunately, growth company leaders are often blinded-sided by this predictable speed bump. Once the reality of the S-curve becomes apparent, it may be too late to design the next growth strategy. The time to innovate — the innovation window — is when the first growth curve hits an inflection point. How do you know when you’re hitting the inflection point? You never know. So the best companies are forever paranoid and make innovation a continuous process. Lean on customers Successful growth companies have a deep understanding of their customers’ problems. Many are embracing tools such as the customer empathy map to uncover new opportunities to create value. This customer insight is the foundation for their lean approach to product innovation: rapid prototyping, design partnerships with lead users, and pivoting to improve their product and business model. Think like a designer Managers are trained to make choices, but they don’t always have good options. Innovation involves creating new options. This is where designers excel. Apple’s exceptional user experiences were largely the creation of Jonathan Ive, a professional designer and Steve Jobs’ right hand man. Lead the way Unless the CEO makes innovation a priority, it won’t happen. Innovation requires a level of risk-taking and failure that’s impossible without executive air cover. The best growth companies create a culture of innovation: Howard Schultz decided Starbucks had lost its way. He flew in every store manager from around the world to help redesign its café experience. Google encourages employees to spend a day per week on new ideas. P&G tracks the percentage of revenues from new products and services. Gray Advertising gives a Heroic Failure Award to the riskiest ideas… that fail! Final thoughts Finally, without an innovation strategy, different parts of an organization can easily wind up pursuing conflicting priorities — even if there’s a clear business strategy. Sales representatives hear daily about the pressing needs of the biggest customers. Marketing may see opportunities to leverage the brand through complementary products or to expand market share through new distribution channels. Business unit heads are focused on their target markets and their particular P&L pressures. R&D scientists and engineers tend to see opportunities in new technologies. Diverse perspectives are critical to successful innovation. But without a strategy to integrate and align those perspectives around common priorities, the power of diversity is blunted or, worse, becomes self-defeating.  About the author  Hari Vignesh Jayapalan is a Google Certified Android app developer, IDF Certified UI & UX Professional, street magician, fitness freak, technology enthusiast, and wannabe entrepreneur. He can be found on Twitter @HariofSpades.
Read more
  • 0
  • 0
  • 2573

article-image-developmentworkflow-two-approaches-automate-livereloading
Timo Weiss
04 Mar 2016
5 min read
Save for later

Development/Workflow: Two approaches to automate livereloading

Timo Weiss
04 Mar 2016
5 min read
A good workflow and development environment should support you being productive. Great tooling becomes more and more important the larger your application becomes. There are mainly two big players for your build and automation environment in the node ecosystem out there: GruntJs and GulpJs. Both can automate tasks you usually have to do manually such as running your tests or minifying and concatenating your files. While Grunt aims to define the tasks via configuration, Gulp uses a programmatic approach. Since we're working with an interpreted language, which doesn't need to be compiled, the only thing we have to do to make our changes visible, is reloading the page. If you come to a point where you make changes very frequently, you might get annoyed by always reloading it manually. For this reason, we want to have a look at some existing solutions we could make use of. Livereloading We are going to show you two different approaches to automate the process of reloading the page, which will be referred to as livereloading. The first one will fit into your gulp environment. The second will be defined in your code itself and has no dependency on any other buildsystem. Using Gulp In the following we will learn how to set up a very vanilla gulp method: If you haven't already done so, run npm install --save-dev gulp. This will fetch the latest version of gulp. The --save-dev flag will add an entry to your devDependencies property in your package.json. Then head over to your existing gulpfile.js or create a new one. After requiring the module gulp, we want to define a new task and we name it livereload: var gulp = require('gulp'); gulp.task('livereload', function () { if (location && location.reload) { location.reload(); } }); // attach the watcher gulp.watch(['app/**/*'], ['livereload']); Gulp provides a function called task. As you would probably expect, it is used to define a new task. As a first parameter, it takes the name of the task you want to create. The second parameter can be a callback function or an array with strings of depending tasks, which needs to be resolved first. gulp.task(name[, deps], fn) Note: The tasks in the array will be executed before your new task will run. They will run with maximum concurrency. The gulp.watch() function lets you declare files that should being watched. The function can be used in two different versions: gulp.watch(glob [, opts], tasks) or gulp.watch(glob [, opts, cb]). Both will return an EventEmitter that emits change-events which can be listened on. Livereload without buildsystem Sometimes installing a buildsystem for a small app or prototype might be too time intensive. If you want to use only the livereloading, you can afford this without gulp and grunt. Programmatically A solution which is independent of any third-party modules can be achieved by using nodes fs.watch: var fs = require('fs'); fs.watch('index.js', function(event, filename) { if (location) { location.reload(); } }); Here, we attach a file watcher to the index.js and trigger the reload if the file has changed or renamed. You can also watch for directories and subdirectories. Unfortunately watching subdirectories only works on OSX: var fs = require('fs'); fs.watch('./', { recursive: true } function(event, filename) { if (location) { location.reload(); } }); By passing an option object with {recursive: true}, subdirectories are also being watched. If your development machine is working with other platforms than OSX, you can consider using a third party module to be able to watch subdirectories. chokidar One solution is chokidar. It is a wrapper around nodes fs.watch and fs.watchFile and supports many additional features such as excluding files by name or regex and many additional events. To install chokidar run npm install chokidar. var chokidar = require('chokidar'); chokidar.watch('./').on('all', function(event, path) { if (location) { location.reload(); } }); As a first parameter you can pass a filename, directory or even glob. To see extended examples and the full documentation visit the GitHub repository of chokidar. gaze Another solution is gaze. This is the module which powers gulp. It has a little different API as chokidar. It provides consistent events across Windows, Linux, and OSX. Installation can be done by npm install gaze. A simple reloading example looks like the following: var gaze = require('gaze'); gaze('**/*.js', function(err, watcher) { this.on('all', function(event, filepath) { if(location) { location.reload(); } }); }); Here, the variable gaze is a function which takes as a first parameter a filename, directory or glob. You can also pass an array with multiple filenames, directories, or globs. The all event gets emitted if a file gets changed, added, or deleted. Also here, to see extended examples and the full documentation visit the GitHub repository of gaze. Save up to 70% on some of our top web development products from 11th to 18th April. From Flask to Angular 2, we've got everything to keep the modern web developer ahead of the game. Find them here. About the Author Timo Weiss is a hybrid mobile application and Norrrde.js back-end developer. He can be found on Github @timoweiss.
Read more
  • 0
  • 0
  • 2573

article-image-business-value-existing-3d-data-age-augmented-and-virtual-reality-part-2
Erich Renz
16 Mar 2017
5 min read
Save for later

The Business Value of Existing 3D Data in the Age of Augmented and Virtual Reality - Part 2

Erich Renz
16 Mar 2017
5 min read
In Part 2 of this article, we will continue our discussion of business theories in relation to the realm of 3D, Augmented, and Virtual Reality.  Customer segments Ask yourself, “Who are we creating value for?” or “Who are our most important customers?” Chances are, you are serving several customer segments. Producers of TVs or washing machines are targeting a mass market that can be served with AR-enabled mobile apps allowing customers to visualize products. Manufacturers of niche market products, such as luxury watches or highly customized industrial goods, might like the idea of virtual showrooms in which they can present core product functionalities on interactive touch tables that are connected to stationary computers.  Distribution channels Customers want to be reached through a variety of channels. Especially in those phases before purchase — awareness and evaluation — Virtual Reality delivers experiences to customers at home,trade shows, public events, or during presentations and takes the pain away from products or processes that are difficult to explain. When would it make sense to consider Virtual Reality as a content delivery vehicle to reach customers? Exactly. If a product or process is so expensive, dangerous, impossible, or rare to produce, reach or see that it makes sense to give a remote audience access to it.  Customer relationships “What type of relationship does each of our customer segments expect us to establish and maintain with them?” If a particular customer group expects a dedicated personal assistance, a key account manager can handle all the needs and questions with a consolidated sales tool, mentioned in the chapter about getting the job done with AR/VR. The ease of use allows the key account manager to connect text-based product specifications and information-heavy customer requirements with the visual data rendered in 3D. Rightly used, it lays the foundation of a deeper dedicated personal assistance and is truly helpful during customer acquisition and on-boarding.  A client that is self-capable in compiling the very information she needs is best served with a self-service tool. For example, take an interior configurator. Any consumer who wants to furnish her apartment downloads an app on their mobile device, recreates the living room in the application, chooses between given interior designs, picks favorite furnishings, and walks through the newly decorated room in Virtual Reality. If she is interested in previewing armchairs and stools in her state-of-the-art recreation room, Augmented Reality will be her new planning and purchasing tool.  Revenue Streams Let’s face the truth (also called “Return on Investment”in business terms). Before making an investment, any executive, marketer, or sales manager would ask, “If I invest one dollar into AR/VR technology, will I get back the dollar sooner or later or not at all?” A marketing manager might say, “This technology will drive more users to the brand and engagement time will rise due to the immersive character.” He would then connect his analytics to the AR/VR app and measure his key performance indicators.  A sales manager would argue differently. Her world is volume dependent. The higher the conversion from an initial contact to a paying customer, the better. Especially, Augmented Reality used in tandem with other digital sales material, such as PDF-brochures, product movies, product documentation, and image galleries of certain product lines will pay off at a later stage.  Also, product designers or planners would argue differently. AR/VR technologies would give them the answers they need for rapid prototyping. “Can we build this room we intended to do, given by all the information on paper?” Put on your VR headset and you will see if you can, or what you need to change if you want to make it habitable. “I want to see if the design of our newly invented elevator delivers what it promises without having massive costs coming along.” Sure thing, preview the elevator in real-time 3D, spin it, change buttons, lighting, or material (steel to glass) and access it in VR.  Conclusion It is no secret that AR/VR technology has the potential to become the next big computing platform after the introduction of the PC in the 80s, the Internet in the 90s, and Mobile in the 00s. The odds are in favor of AR/VR related hardware and software. Goldman Sachs estimates $80bn in revenue by 2025 ($45bn in hardware, $35bn in software) and assumes that head-mounted displays “gain popularity as technology improves, but adoption is limited by mobility and battery life.”  When we see through the lens of jobs to be done, both technologies are fully capable of taking the circumstances of its users into consideration, no matter if they are designing, producing, promoting, or selling a product or if they are businesses or consumers interacting with these products. As the nature of their names imply, the value of virtual products will unfold its full power if virtual product demonstrations can be deeply integrated into daily activities of our professional or private lives. The moment we hear people admitting that without the help of AR/VR technologies there is truly something missing in their lives, only then we are done with our homework.  About the author Erich Renz is Director of Product Management at Vuframe, an online platform for virtual product demonstrations with Augmented and Virtual Reality, where he is investigating and driving the development of AR, VR, 3D, and 360° applications for businesses and consumers.
Read more
  • 0
  • 0
  • 2568

article-image-micro-transactions-gamers-bane
Ed Bowkett
23 Jun 2014
6 min read
Save for later

Micro Transactions: Gamer's Bane?

Ed Bowkett
23 Jun 2014
6 min read
I play a lot of games (who doesn't these days) and I've grown from my Nintendo 64, where I considered myself a pro at Mario Kart, through to the PS4, but my pride and joy is my PC. Lovingly upgraded through the years, my Steam library getting steadily bigger (thanks to Gabe) through the endless sales. Yet, increasingly, I've found myself wanting to be transported back to the days of the Nintendo 64. The reason for this? Micro transactions in games. Now, as we get into the grittiness of this blog, a few confessions and a definition of what micro transactions are. Micro transactions are small sums of money and usually take place online and in-game. It involves the purchase of virtual goods. Now on to the confession part. I’ve partaken in micro transactions in the past. Back during university when my gaming addiction was all about World of Tanks, gold ammo was all the rage. So I calmly handed over my hard earned student loan money and paid for ammo, without really thinking what I was doing. More recently, with the release of Hearthstone, I was intrigued by the legendary cards and how to build decks and generally just wanted to bypass the whole process of slowly working your way to awesome decks. So I purchased a few decks and boosted some of these decks. Do I consider these pay to win elements? With World of Tanks, I sympathised more with those that accused others of paying to win by using premium ammo. However, when you arrived at the higher levels, gold ammo became not only valuable, but necessary. Everyone at this stage is using gold ammo, so ultimately you are doing yourself a disservice by not buying gold ammo. However this is isn’t really a good argument, as people shouldn’t feel it’s necessary to buy gold ammo, but are forced to due to others doing it. With Hearthstone, the assumption that it is pay to win is, in my view, wrong. You can easily obtain these cards freely from leveling up and winning packs through the game mode Arena. While you can “speed” up how many decks you can construct and how quickly you can get up the levels in ranked modes, eventually, others can obtain the cards freely. So there’s not really an element of pay to win in my view. Coupled with the fact you get quests every day (win five games with Mage, and so on) it’s quite feasible to obtain enough gold a month to obtain four and a half packs a week, which translates to 18 packs a month, 216 packs a year, which will give the gamer a huge amount of cards from which to create their deck. Another benefit of this system is the ability to disenchant cards and create more cards to add to decks. Hearthstone can be considered pay to win as there is the mechanism there to pay for more cards, but it is not the only way to win; there are basic cards that can take out the more difficult cards, so it’s a great balance in my view. While the person that paid for all the extra cards will have an initial advantage, the person that went through the daily quests and leveled up will eventually catch up, pay to win is not a permanent thing. And nor should it be. Pay to win, while being be a cash cow for most game companies, does nothing but add negative feedback to games. If it was to be a permanent thing, the benefits of playing the game would be greatly diminished. One of the great pay to win protests I was involved with was in Eve Online during the monoclegate scandal of 2011. This opened my eyes to the number of companies that adopt micro transactions and an element of pay to win into their games. Don’t get me wrong. If you want to fork out money to make a character look aesthetically pleasing, that’s fine, it’s your money. If you want to put in a game damage increasing ammo if you pay $50, then that’s a whole different kettle of fish. Both the enjoyment of the game is decreased as well as strategies employed and effort. What made the 2011 revolt so great is that the entire universe of Eve became united against pay to win and changed the direction of the gaming company, CCP. For me, more players from across the gaming world need to do this as ultimately it’s the gamers that they should be focussed on, not the cash cow that micro transactions offer. The increasing of micro transactions in games also, in my opinion, has come about with the increasing of RMTing or RWting (Real Money Trading or Real World Trading). This involves a website offering credits for the various games (for example, in Eve it is ISK), for a set price, which goes against the EULA of the game. To combat this, CCP introduced PLEX, Pilot's License Extension, an in-game item that you can both purchase on partner websites and trade for ISK. Runescape too did a form of this and the amount of RWTing decreased. So there is a way of using micro transactions sensibly that has a benefit to everyone and goes some way to solving the issue of trying to bend the system illegally. Ultimately there are ways of having micro transactions in games and not making the game slanted towards pay to win. For me, I think Hearthstone has the balance just right. Sure the initial boost to the purchase of decks will be slanted, but there are opportunities to catch up to this boost. With no card being really OP (overpowered), as in there are always ways to counter the cards placed down, the pay to win element is greatly diminished, though not removed. With protests like the summer of 2011 in Eve, micro transactions will continue to be an issue and it's really an area in which gaming companies need to tread carefully. While I appreciate that companies need to make money, they need to be aware that pay to win is not the way forward and there needs to be a balance to it and careful consideration of the consequences. Get up to speed with the very latest in game development. Visit our Unity page here.
Read more
  • 0
  • 0
  • 2563
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 $19.99/month. Cancel anytime
article-image-making-it-games-development
Venita Pereira
16 Jul 2015
4 min read
Save for later

Making it in games development

Venita Pereira
16 Jul 2015
4 min read
Venita Pereira is a Senior Game Designer for Full Fat with over 8 years’ experience in the games industry, and the author of Learning Unity 2D Game Development by Example. She has worked for several AAA developers and on a vast range of genres and platforms. Recently, she worked on the Agent Dash update in Unity and was the sole designer for SEGA on the highly successful Sonic Dash also using the Unity Engine. She tweets as @Atinev and you can also find her on LinkedIn and Facebook. The big question – Unreal Engine versus Unity As the most widely used engine in the professional games industry, learning Unity is a great investment for a future career in games. Whilst some may argue that the Unreal Engine is the preferred choice (and I for one was previously an avid user of the Unreal Engine), Unity has caught up in leaps and bounds and many now consider it ahead of the curve. Skill Up Says… The Skill Up survey clearly shows that Unity is by far the stand-out technology for making professional-tier salaries in the game development industry. The highest paid game developers all know and regularly use the Unity engine. Many more games, especially indie and mobile games, use Unity; Unreal is better suited to AAA console games. That said, Unity has caught up – and even exceeded Unreal - with the introduction of physically based shaders. It is far more accessible and allows easy deployment on multiple platforms, so developers no longer need to work more to port their game. The most essential skills for the modern game developer Aside from technical knowledge, the essential skill of a games designer include an extensive understanding of game design principles, level design, and knowing how to design core game mechanics and features within a game design document. Communication and collaboration are also key, especially when you’re part of a professional team. Game developers need to understand revision control systems, data analytics, agile methodology and bug tracking. Knowledge of scripting and an understanding of the technical aspects of game development as well as the limitations are very beneficial. Thus, learning to use Unity, Word, Excel, Wiki, SVN or perforce and Confluence (or other tools with similar functions) are vital. The biggest challenges currently facing game developers The biggest challenge facing game developers today is retaining players in our games. This is nothing new! However, it is more challenging today due to the vast amount of games available. This makes user testing and marketing skills very valuable if you want to get ahead in the industry. The next big thing in game development The next big thing in game development will be smartwatches! Skill Up Says… One-in-two developers for mobile said on the Skill Up survey that they had plans to develop for the iWatch and other wearable devices. This is part of the continued moment for mobile gaming - the improvement in mobile hardware allows for more graphic and gameplay intensive games of console quality on mobile platforms. We’ll likely start to see a merging of consoles, PCs and mobiles. In addition, the growth and spread of Internet of Things means that we’re going to see improvements in networking, servers, cloud computing, and reactive systems. Programming languages like Rust and Go that are responsive, scalable and reliable are also going to mean big things for programming in general – and game development is no exception. My advice for anyone wanting to start out in game development or to take their career to the next level would be to keep learning and improving your skills! What is Skill Up? During June 2015, we surveyed over 20,000 IT professionals to find out what technologies they are currently using and planning to learn in the next 12 months. Download the report for free below to find out how you can Skill Up in games development. 
Read more
  • 0
  • 0
  • 2508

article-image-an-introduction-to-reactjs
Simon Højberg
27 Feb 2015
1 min read
Save for later

A Quick Video Introduction to ReactJS

Simon Højberg
27 Feb 2015
1 min read
Get your first taste of React.js - which some are saying is going to beat out the Angular JavaScript framework - with this great introductory tutorial video. Expert author Simon Højberg takes us through the basics of React.js by showing us how to perform a classic 'Hello, World' with the library that's going to revolutionize UIs.   Sample Code You can find the sample code on Simon's Github repository.   About The Author Simon Højberg is a Senior UI Engineer at Swipely in Providence, RI. He is the co-organizer of the Providence JS Meetup group and former JavaScript instructor at Startup Institute Boston. He spends his time building functional User Interfaces with JavaScript, and hacking on side projects like cssarrowplease.com. Simon recently co-authored "Developing a React Edge." Learn how to set up testing in React.js with our article. If you want to explore the entire JavaScript ecosystem, and find out how ReactJS fits into it, visit our JavaScript page for our latest titles and free content.
Read more
  • 0
  • 0
  • 2501

article-image-what-you-should-learn
Owen Roberts
01 Sep 2016
5 min read
Save for later

What You Should Learn

Owen Roberts
01 Sep 2016
5 min read
When it comes to the languages, frameworks, and skills that are available to us what are the reasons we choose the ones we do? One of the key things that Skill Up 2016 looked to uncover was what motivated developers and IT professionals to pick up new tools. The results were interesting, and if you haven’t looked at them yet, check out Pages 23-25 of our Skill Up Report here. The key reasons people either picked up a new piece of software or decided to drop them came down to 4 simple points: What software offered the speed needed for the job? Which software did other programmers recommend? What was the most popular tech currently around? And finally, which piece of software was the best tool for the job in the end? Why would you want to learn a new piece of software for these reasons though? Let’s have have a look at each reason in more detail! The Need For Speed – Docker Who doesn’t like a fast application? How many times have you been waiting for a web page to load, annoyed that it’s taking so long? When it comes to customer needs speed is right up there with usability, and as a developer you have to walk the fine line without sacrificing either for the other. No wonder Docker has become the go-to option for developers looking to get as much speed as they can without having to optimize every single part of their applications. Docker is designed with being lean to the nth degree, it loads in a millisecond most of the time. Who doesn’t want that sort of speed in their applications? Docker’s widespread adoption for its speed is proof enough that developers have seen its potential in the wide world, and if you haven’t jump on it yet then it’s definitely something you should start looking into – faster applications mean that everything is better and everyone is happier after all. The One Everyone Recommends – Swift At the end of the day, what do you trust more? The unproven language or software, or the one that everyone is running up to you, trying to convince you to give it a try and let it change your life? While we all like to try new things in the end, the real winner will be the one that everyone else has already tried, loved, and is now attempting to convince you to take that plunge too so you can join them in the revolution they’re currently going through. Apple is pushing Swift hard. Swift users are pushing Swift even harder. Improving on the key flaws seen after years of C++ development and creating a language designed from the ground up to revolutionize the world of iOS development Swift has created a fanbase that swears by it. People who are trying Swift for the first time constantly understand that it’s just as good as they were told, so why not give it a try for yourself if you haven’t already? After all, could tens of thousands of developers be wrong? The Popular One – React.js No-one wants to be using tired old “uncool” software. Tech is the business of innovation, and when a big company like Facebook releases a new piece of software to the wide world people are going to turn their heads, take notice, and immediately get down the complete ins and outs of it. Adding Facebook’s secret weapon to your toolkit makes you so much more of an appealing developer to companies when the time comes. React has brought one of the biggest buzzes to the JavaScript world since the original Angular was released. Bringing many of the latest changes in web design like a component based approach to JavaScript without sacrificing usability and ease of writing it’s pretty obvious why React has taken the world by storm – and not showing any signs of slowing down either! The Best Tool For The Job – AWS Probably the easiest reason to start picking up a new skill; which one of us hasn’t wanted to enter a job or task without the best tool for the job? Having the best of the best available to us means that the job is so much easier in the long run – there is less chance of issues popping up during and after development and we can have piece of mind that our customers will be having the best possible product we can provide without much cost to us in stress or unforeseen circumstances. AWS is tried and tested when it comes down to providing everything that developers are looking for in a platform, it itself holds dozens of different tools for any situation and when it comes to price as well developers say it’s one of the most competitive around; with Amazon handling the security side of things too it’s obvious that for those who swear by it it’s the development platform that should be your first choice when looking into a cloud based solution. Are you looking to dig deeper into these pieces of tech, maybe even to start learning a new one? Why not sign up to our subscription service Mapt to get all our titles and more at $29.99 per month? As an added bonus we also have Skill Plans directly related to the above tech - allowing you to know exactly which titles you should be looking at to really build up your skills!  
Read more
  • 0
  • 0
  • 2491

article-image-want-know-which-industry-sector-pays-25-more-it-administrators
Packt Publishing
27 Jul 2015
2 min read
Save for later

Want to know which industry sector pays 25% more for IT Administrators?

Packt Publishing
27 Jul 2015
2 min read
In the 2015 Skill Up Survey Packt talked to more than 20,000 people who work in IT globally to identify what skills are valued in technical roles and what trends are changing and emerging. Responses from the Security and System Administration community provided us with some great insight into how skills are rated across multiple industries, job roles and experience levels. The world of Security and System Admin constantly changes, is highly varied, and can be super competitive too, so we wanted to find out what industries are best for those just entering the market. We also discovered which technologies are proving to be most popular and where can you earn the best salaries. We also had some specific questions for which we wanted answers: What skills lead to a higher salary? What skills/technologies are most highly valued by different industries? What cutting edge technologies are really worth you spending your time learning? From our responses, for those with the least experience, Media/Advertising/Entertainment and Gaming industry sector is a great place to start! For those with more experience, Enterprise businesses are investing in Penetration Testers and Security Analysts, many of which are consulting, putting all those years of experience into practise. Take a look at your industry sector and see how your experience and salary compares with your peers. We also asked our respondents which tools they planned to use over the next 12 months to Skill Up. Malware Analysis topped the chart, but which other technologies are prominent, and who is learning what? Surprisingly, a number of non-technical skills, such as ‘coaching skills’, ‘change management’ and ‘project management’, were reported when asked what tools Administrators use, suggesting that roles are changing and softer skills are now part of an IT Administrator's role. Are you ready for that change? Read the rest of the report to see what technologies you need to build on, and which technologies are poised to take the Security and Sysadmin world by storm so you can get ahead of the competition. Click here to download the full report Find out more about our exclusive Skill Up offers and discounts
Read more
  • 0
  • 0
  • 2472
article-image-formula-success-bootcamp-graduate
Mark-Anthony Torrocha
04 Aug 2015
5 min read
Save for later

Formula for Success from a Bootcamp Graduate

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
  • 2472

article-image-a-short-video-introduction-to-gulp-2
Maximilian Schmitt
12 Jan 2015
1 min read
Save for later

A short introduction to Gulp - Part 2 (video)

Maximilian Schmitt
12 Jan 2015
1 min read
  About The Author Maximilian Schmitt is a full-time university student with a passion for web technologies and JavaScript. Tools he uses daily for development include gulp, Browserify, Node.js, AngularJS, and Express. When he's not working on development projects, he shares what he has learned through his blog and the occasional screencast on YouTube. Max recently co-authored "Developing a gulp Edge". You can find all of Max's projects on his website at maximilianschmitt.me.
Read more
  • 0
  • 0
  • 2471

article-image-6-ways-businesses-can-become-more-digitally-secure
Mary Gualtieri
11 Apr 2017
5 min read
Save for later

6 ways businesses can become more digitally secure

Mary Gualtieri
11 Apr 2017
5 min read
Web security is a term we've constantly been hearing about in recent days, especially in the news. We’ve seen an onslaught of high-profile hacks, most notably the 2016 US presidential election. Web security will always be a hot topic because of the constant development of technology and how, as a society, we will continue to rely on it. Attacks happen for a number of reasons, but it is usually due to human error. It can be a flaw in the code, an unsecure network, and so on. This can create holes for attackers to get in and cause damage. This begs the thought, what exactly is web security? In short, web security is the security of websites, web applications, and web services. Increased information sharing has emerged in recent years, especially through social networking and increased e-commerce business, and has increased direct attacks. We are seeing web application attacks happen through XSS and SQL injection attacks (this is usually a result of a flaw in the code). We are also seeing increased phishing attacks. But what does this mean for businesses, and what can they do to help prevent these attacks? When a business is going through the process of setting up their website or web application, they should consider what type of information, if any, is considered sensitive. For instance, if you have a signup and require a password, what security measures are you taking to make sure that the password cannot be stolen? Businesses can take steps to be preventive rather than reactive and, in the end, save themselves a big headache when they are done. But back to what is important: security. Businesses can take steps in order to ensure the integrity of their data and utilize strategies to counteract an attack. Establish the importance of security from the beginning with employees It can be very easy to forget that an employee carries sensitive information within and outside the workplace. It should be emphasized from the beginning of the hiring process that this sensitive information should always be protected. As an employer, you can take preventive measures to ensure that this is followed by having certain websites blocked on your network, making employees choose passwords that are complex, or set an expiration on passwords where they must be renewed after a certain time. Have a strong network One of the most important security measures you can take is to have a strong network. This means you should have a proper firewall to capture bad data packets, and it should be included on all employee-operated equipment like computers, cellphones, and tablets. One of these solutions could be establishing a virtual private network or VPN. This allows employees who work from home and have remote access to remain secure. A VPN would protect your data through encryption and tunnel protocols. VPNs provide the integrity of security needed with sensitive data. Train your employees As an employer, you should take the time to invest in your employees, and this should include telling them about the importance of security. Take the time to make sure an employee knows how to recognize a phishing e-mail or attack, why clicking on a pop-up link is harmful to the company, or how to recognize a data breach. Vendor compliance Many times, businesses must use outside vendors to accomplish a certain goal. But what is that vendor doing to make sure that they are keeping the integrity of your data safe and secure. When onboarding a new vendor, it should be part of your protocol to look at how they store your data and whether they comply with data protection regulations. Monitor your employees The biggest advice my dad has ever given is this: no one is your friend. Employees are your employees. Some employees have access to sensitive information, and it is up to you to take the protective measures to ensure that information always remains secure. Run the occasional assessment On occasion, you should run an assessment of where the security vulnerabilities in your network are and what you can do to rectify them. This is when you should seek an outside resource to perform this because they don’t have a bias. They would be able to clearly identify the loopholes and make recommendations to fix them. Web security is going to be an ongoing topic in today’s world. When it comes to businesses, it's not a matter of “if” an attack happens; it is now a matter of “when” it will happen. Businesses can take preventative measures to help ensure they do not fall victim to an attack. About the author  Mary Gualtieri is a full-stack web developer and web designer who enjoys all aspects of the Web and creating a pleasant user experience. Web development, specifically frontend development, is an interest of hers because it challenges her to think outside of the box and solve problems, all while constantly learning. She can be found on GitHub as MaryGualtieri. 
Read more
  • 0
  • 0
  • 2446
article-image-make-most-your-data-syncfusion
Daniel Jebaraj
26 Mar 2015
3 min read
Save for later

Make the Most of Your Data with Syncfusion

Daniel Jebaraj
26 Mar 2015
3 min read
Syncfusion, Inc., a developer solutions company, recently formed a partnership with PacktPub that enables each company to share the other’s valuable assets with different communities of learners. Both are committed to helping all types of developers stay up to date on the latest technologies, and believe that as programming evolves, so should your learning experience. With e-books from PacktPub and software from Syncfusion, you have access to the comprehensive information and flexible tools you need to keep up with changing developer environments. Here, Syncfusion Vice President Daniel Jebaraj provides some insight on the company’s latest endeavors in the field of big data processing and analysis. This has been an exciting year for Syncfusion. In addition to maintaining our quarterly release cycle for our Essential Studio suite of .NET and JavaScript components, we also launched our first-ever data science offerings for Windows developers: the Syncfusion Big Data Platform and Essential Predictive Analytics. The term “big data” is thrown around a lot these days, but what does it really mean? For us, it means a shift that enables businesses to use the data they already collect every day to their advantage. Basic customer data, such as the amount spent on each purchase, the number of times an item is purchased, and how frequently, can help business leaders make valuable predictions about future market trends. We recently had the opportunity to prototype a custom big data solution for Rudolph Technologies, a company that provides software and equipment for several manufacturing industries, including semiconductor, LED, and flat panel display systems. The company needed to manage vast amounts of data to analyze its expanding portfolio without losing productivity. The Syncfusion solution enabled the company to store its data in an Apache Hadoop-based data warehouse, making it available to more effective analysis in the form of batch processing. A set of the data was then replicated in Apache Cassandra, and Syncfusion implemented a backend service that enables data to be served to any device, including mobile devices. As we noted in a recent CodeProject article, using our Big Data Platform can quickly help you make the most of your data without ever leaving the comfortable and familiar Windows environment. You have complete access to Hadoop and can use tools like Sqoop, Pig, and Hive to analyze your information in one convenient, easy-to-use interface. In addition, you’ll save money on deploying, composing, and executing jobs regardless of the environment you’re working in. If you’re interested in learning more about what data science can do for your company, PacktPub has published some great resources on the subject, including Practical Data Science Cookbook and Hadoop Beginner’s Guide. If you’re already familiar with R or Hadoop, check out Big Data Analytics with R and Hadoop for tips on how to integrate the two. About the Author Daniel Jebaraj joined Syncfusion in 2001. As vice president, Daniel leads Syncfusion’s product development while actively engaging with customers and overseeing product release cycles. He holds a master’s degree in Industrial Engineering from Clemson University.
Read more
  • 0
  • 0
  • 2422

article-image-tweeter-20-or-how-i-learned-stop-worrying-and-modify-amazons-code
Jeremy Karbowski
18 Oct 2016
7 min read
Save for later

Tweeter 2.0 or How I Learned to Stop Worrying and Modify Amazon's Code

Jeremy Karbowski
18 Oct 2016
7 min read
Welcome back, if you made it through Part 1 then you have an Alexa Skill to tweet with your voice and you're probably itching to share it with the world. But wait, there's a problem! You want to get your skill certified so that anyone can log in and tweet from their Twitter account, so you've set up a page for users to log in with and that's all dandy. But, Amazon's Account Linking flow requires you to support a different card type, specifically the "LinkAccount" card type, and the code we downloaded from Amazon in the first tutorial only supports the "Simple" card type. We'll have to do something about that. We're going to modify AlexaSkill.js to support the LinkAccount and Standard card types. Standard cards will allow you to attach an image to your cards. Although Amazon's requirements for where you host those images are a bit tight, it's nice to have the option. If you haven't had a chance to go over AlexaSkill.js in detail, you can find a decent breakdown of the code here. Flip over the code and get familiar with it first, because we're about to dive in and make some changes. But First, a Word on Alexa's Authorization Flow, Twitter, and your Account Linking Portal First, we'll need a way for our skill to get our user's twitter authorization token and secret. Amazon's Account Linking flow expects us to be using the OAuth 2.0 standard. Twitter, however, uses Oauth 1.0a. This means Amazon is expecting us to hand them back a single string back from our authorization URL. To get around this we can pass back the user's key and secret joined by a set of unique characters, and split it back into separate pieces in our skill. Actually building the login page is beyond the scope of this article, as there are countless options out there for hosting and web frameworks and the like. I've provided a sample login portal written with node's express framework with some basic instructions for setting it up on heroku over at the tweeter-login repository on my GitHub profile. Feel free to use it as a base in your project and modify it, it should provide the basic needs for certification, such as pages for a privacy policy and terms of use. Amazon has a more in-depth certification submission checklist for those interested in publishing their skill. Dive In to the LinkAccount Card Now that we have our authorization tokens, we can set up our LinkAccount card in our skill to provide a card with a link to our login/authorization page to users who try to use the skill without logging in through Twitter. Our first stop is AlexaSkill.js. Near the bottom, in the function that builds Response.prototype, we find our core methods of the response object: tell, tellWithCard, ask, and askWithCard. It's here that we'll add our reject method to provide users with the LinkAccount card. At the bottom of the return, after the askWithCard function, add the following: reject: function (speechOutput) { this._context.succeed(buildSpeechletResponse({ session: this._session, output: speechOutput, cardType: "LinkAccount", shouldEndSession: true })); } This function will be used later to reject users who haven't authorized the skill with their twitter account with a LinkAccount card. Notice we'll only need to provide the speech output- we can't control the content or title of the LinkAccount card, only set the card type as such. Near the top of the same Response.prototype function, in buildSpeechletResponse, we'll add a conditional to change the card type if the option is supplied. Add it after the cardTitle and cardContent are set, so we can use this again later to support images as well. if (options.cardType) { alexaResponse.card = { type: options.cardType } } Around the middle of the file, in the AlexaSkill.prototype.execute function, we'll find a conditional that controls what parameters get passed into a new session. We're going to modify this to pass in a new Response object along with the request and session. if (event.session.new) { this.eventHandlers.onSessionStarted(event.request, event.session, new Response(context, event.session)); } Now we'll have access to our reject method when our session starts, so we can serve up those hot fresh LinkAccount cards. Back near the top, in AlexaSkill.prototype.eventHandlers, we'll find the onSessionStarted function. This is the function we'll override in our skill to handle the LinkAccount card logic. onSessionStarted: function (sessionStartedRequest, session, response) { }, We've added the response parameter on to the end of the function so we can use the reject function in our skill, like so: Tweeter.prototype.eventHandlers.onSessionStarted = function(sessionStartedRequest, session, response) { console.log('Twitter onSessionStarted requestId:' + sessionStartedRequest.requestId +', sessionId: ' + session.sessionId); if(session.user.accessToken) { var token = session.user.accessToken; var tokens = token.split(/*your token separator*/); userToken = tokens[0]; userSecret = tokens[1]; } else { var speechOutput = "You must have a Twitter account to use this skill. " + "Click on the card in the Alexa app to link your account now."; response.reject(speechOutput); } }; This will provide us access to the tokens in our oauth invocation in the TweetIntent function: oauth.post( url, userToken, userSecret, null, // body function(err, data, res) { // } ) Now we can share our app with anyone, and provide them with a way to log in through their Twitter account! Standard Cards (the ones with images) Amazon so far has provided very little in the way of support for card markup. Currently the only tools availalable to developers looking to style or format cards for their skill are newlines(or just ) and images. You can only include a single image on a card, so choose wisely. You'll need to provide a small image URL sized at 720 x 480 and a large image URL sized at 1200 x 800 in PNG or JPG behind an HTTPS endpoint. To enable cards with images, head back to the methods returned by the Response.prototype function and add these two functions, tellWithCardImage and askWithCardImage: tellWithCardImage: function (speechOutput, cardTitle, cardContent, images) { this._context.succeed(buildSpeechletResponse({ session: this._session, output: speechOutput, cardTitle: cardTitle, cardContent: cardContent, cardImages: images, shouldEndSession: true })); }, askWithCardImage: function (speechOutput, repromptSpeech, cardTitle, cardContent, images) { this._context.succeed(buildSpeechletResponse({ session: this._session, output: speechOutput, reprompt: repromptSpeech, cardTitle: cardTitle, cardContent: cardContent, cardImages: images, shouldEndSession: false })); }, These methods will accept an array of two images, your small image URL and large image URL, respectively. Then, underneath the conditional we added earlier to change the card type add in the following: if (options.cardImages) { alexaResponse.card.type = "Standard"; alexaResponse.card.images = { smallImageUrl: options.cardImages[0], largeImageUrl: options.cardImages[1] }; } This will change the card type to Standard and set the images. If you've met Amazon's standards, you should be seeing an image along with those cards now. Thanks for reading :) Hopefully this has been an informative journey. Voice experiences can be an exciting challenge to build, and Amazon's skill marketplace is in need of cool new things that are actually worth using. Be the developer you wish to see in the world. About the author Jeremy Karbowski is a JavaScript developer with experience in WebGL, and hardware platforms such as Alexa and Pebble. He participated in SpartaHack 2016, where he was in the top 10 and won Best Alexa Integration from Amazon. He can be found on GitHub at @jkarbows and Twitter at @JeremyKarbowski.
Read more
  • 0
  • 0
  • 2413
Modal Close icon
Modal Close icon