7/21/2019 Coding Made Simple Magazine
Like many nine-year-olds, Stanley Strum spends a lot of time building things in Minecraft, the immersive game that lets your create your own mini-universe. The game has many tools. But Stanley is one of many players taking the game a step further by building entirely new features into the game. And, more than that, he's also learning how to code.
He's doing this with a tweak to the Minecraft game, called LearnToMod. Modifications like this, called 'mods,' are a big part of the game's runaway success. But this particular mod helps kids learn to create their own mods. For example, Strum built a teleporter that whisks him to a random location within the game world. Another lesson teaches kids to write the code to create a special bow that shoots arrows that become 'portals' between different locations in the game, allowing them to reach spaces that would otherwise be quite difficult to access. It's like being able to create your own cheat codes.
Strum is one of 150 students who are now tinkering with LearnToMod, an educational add-on teaches you the basics of programming while creating tricks and tools that you can use within the Minecraft. The mod will be available to the general public in October, and its creators hope it will help turn Minecraft into a kind of gateway drug for computer programming.
'Kids are already spending ridiculous amounts of hours on Minecraft,' says Stephen Foster, the co-founder of ThoughtSTEM, the company that's built the LearnToMod module. 'So we thought this would be a good way to help them learn skills.'
'Kids are already spending ridiculous amounts of hours on Minecraft. We thought this would be a good way to help them learn skills.'ThoughtSTEM started out offering in-person classes in San Diego, Granite Bay, and Oakhurst, CA based on a game called CodeSpells that Foster co-created as a PhD student at the University California. The idea was to hook students on CodeSpells so that they'd be motivated to learn the programming skills they needed to advance within the game. But Foster and his co-founders Sarah Esper and Lindsey Handley soon noticed that many of their students were already avid Minecraft players, and it would make more sense to create a class that would harness the passion their students already had for Minecraft. So they launched a class for kids between the age of eight and 15 that teaches kids to code their own modifications to Minecraft — and even earn college credit at the University of California in San Diego while doing it.
Stanley Strum signed up for the class earlier this year, enticed by the promise of college credit. He says the materials and presented 'very well' and and that the ThoughtSTEM teachers made it easy to learn. 'I just think they're doing super,' he says. Strum now spends much of his time outside of school coding up new mods, and is also taking the company's class on HTML and JavaScript.
Inspired by the success of students like Strum, the ThoughtSTEM team is now bringing the tools they developed for their own classes to the rest of the world through the LearnToMod. And, for an additional fee, the company will also offer an online course that, just like its in-person counterpart, will enable students to earn college credit at UC San Diego.
Stepping Outside of the Virtual Classroom
ThoughtSTEM is far from the first company to use Minecraft for educational purposes. For example, a company called TeacherGaming sells a version of the game called MinecraftEDU that is custom built to help educators create virtual classrooms that can be used to teach everything from history to microbiology. Google even worked with the MinecraftEDU to create an addon to teach the principles of quantum computing.
But LearnToMod is a little different from most other Minecraft-based educational programs. Instead of using the game as a virtual classroom, ThoughtSTEM built its own interface that exists outside of Minecraft. But the coding skills kids learn through the web application actually help them game special advantages in the game.
Minecraft is incredibly open-ended. It's entirely up you whether you as a player whether spend your time building elaborate castles, fighting monsters, or exploring the the game world. What's more, using mods, you can quickly create things that would otherwise take a long time to build in the game, such as mountains or massive dungeons, or create custom types of blocks. You can also create special rules that enable you to do things like build your own games within Minecraft, such as capture the flag or Tetris.
Once the kids have crafted their code in LearnToMod, the application connects to their Minecraft account to make the mods available to the kids in the game. By teaching kids to build their own Minecraft mods, the ThoughSTEM team is hoping to keep students motivated to learn some of the trickier parts of coding.
TeacherGaming founder Joel Levin is fond of the idea. 'Kids are passionate about the game and they quickly understand that they can extend and enhance their Minecraft experience by learning some basic programming,' he says. 'And that's really what we want, isn't it? To have kids realize that with code, they can improve their life in a way that's relevant to them.'
>That's really what we want, isn't it? To have kids realize that with code, they can improve their life in a way that's relevant to them.
In fact, Levin says TeacherGaming is working on its own mod building education program called ComputerCraftEdu, which will eventually be offered both online and in-person. And there are already a few other classes that teach students to create mods, such as MakersFactory's class in Santa Cruz and YouthDigital's online class. But most of these other classes require students to write code in a programming language called Java. And Java can be cumbersome.
To make things a bit more beginner-friendly, LearnToMod relies on another mod called ScriptCraft that enables players to run mods that were created with the programming language JavaScript. ThoughtSTEM has also integrated a kid-friendly programming interface created by Google called Blockly, which is based on MIT's classic programming education system Scratch. Using Blockly, students can create programs by dragging and dropping virtual blocks, instead of typing out line after line of code. Foster says this should make the tutorials more accessible to younger programmers, while still offering more advanced options for older kids.
Of course, building Minecraft mods students learn won't turn them into Mark Zuckerberg over night. The skills they develop will transfer to other types of programming, such as mobile app development, but that will require quite a bit of additional work. But it's the first step towards realizing that programming is something that's within their grasp.
How big is Google? We can answer that question in terms of revenue or stock price or customers or, well, metaphysical influence. But that's not all. Google is, among other things, a vast empire of computer software. We can answer in terms of code.
Google's Rachel Potvin came pretty close to an answer Monday at an engineering conference in Silicon Valley. She estimates that the software needed to run all of Google's Internet services—from Google Search to Gmail to Google Maps—spans some 2 billion lines of code. By comparison, Microsoft's Windows operating system—one of the most complex software tools ever built for a single computer, a project under development since the 1980s—is likely in the realm of 50 million lines.
So, building Google is roughly the equivalent of building the Windows operating system 40 times over.
'The numbers are absolutely staggering.'
Sam Lambert, Director of Systems, Github
The comparison is more apt than you might think. Much like the code that underpins Windows, the 2 billion lines that drive Google are one thing. They drive Google Search, Google Maps, Google Docs, Google+, Google Calendar, Gmail, YouTube, and every other Google Internet service, and yet, all 2 billion lines sit in a single code repository available to all 25,000 Google engineers. Within the company, Google treats its code like an enormous operating system. 'Though I can't prove it,' Potvin says, 'I would guess this is the largest single repository in use anywhere in the world.'
Google is an extreme case. But its example shows how complex our software has grown in the Internet age—and how we've changed our coding tools and philosophies to accommodate this added complexity. Google's enormous repository is available only to coders inside Google. But in a way, it's analogous to GitHub, the public open source repository where engineers can share enormous amounts of code with the Internet at large. We're moving toward a world in which we regularly collaborate on code at a massive scale. This is the only way we can keep up with the rapid evolution of modern Internet services.
'Having 25,000 developers, as Google does, means it's sharing code with a diverse set of people with diverse set of skills,' says Sam Lambert, the director of systems at GitHub. 'But, as a small company, you can get some of that same advantage using GitHub and open source. There's that saying: 'A rising tide raises all boats.'
The flip side is that building and running a 2-billion-line monolith is no simple task. 'It must be a technical challenge—a huge feat,' Lambert says. 'The numbers are absolutely staggering.'
Part of the genius of GitHub is that it lets coders so easily share and collaborate on code. But GitHub doesn't house a single software project. It spans millions of projects. Google goes a step further, combining many projects into one. Given the difficulty of juggling that much code across that many engineers, this may seem slightly crazy. But according to Potvin, it works.
Listen to the Piper
Basically, Google has built its own 'version control system' for juggling all this code. The system is called Piper, and it runs across the vast online infrastructure Google has built to run all its online services. According to Potvin, the system spans 10 different Google data centers.
It's not just that all 2 billion lines of code sit inside a single system available to just about every engineer inside the company. It's that this system gives Google engineers an unusual freedom to use and combine code from across myriad projects. 'When you start a new project,' Potvin tells WIRED, 'you have a wealth of libraries already available to you. Almost everything has already been done.' What's more, engineers can make a single code change and instantly deploy it across all Google services. In updating one thing, they can update everything.
Google is an extreme case. But its example shows how complex our software has become in the age of the Internet.
Coding Made Simple Magazine Pdf
There are limitations to this system. Potvin says certain highly sensitive code—stuff akin to the Google's PageRank search algorithm—resides in separate repositories only available to specific employees. And because they don't run on the 'net and are very different things, Google stores code for its two device operating systems—Android and Chrome—on separate version control systems. But for the most part, Google code is a monolith that allows for the free flow of software building blocks, ideas, and solutions.
The Bot Factor
As Lambert points out, building and running such a system requires not only know-how but enormous amounts of computing power. Piper spans about 85 terabytes of data (aka 85,000 gigabytes), and Google's 25,000 engineers make about 45,000 commits (changes) to the repository each day. That's some serious activity. While the Linux open source operating spans 15 million lines of code across 40,000 software files, Google engineers modify 15 million lines of code across 250,000 files each week.
Building and running such a system requires not only know-how but enormous amounts of computing power.
At the same time, Piper must work to remove much of the burden from human coders. It must ensure that humans can wrap their heads around all that code; that they don't step on each other's toes with code changes; that they can readily remove bugs and unused code from the repository. And because all of this is so difficult, it must actually take some of that work away from the humans. Now that Google has switched to Piper from its previous version control system—a tool called Perforce—automated 'bots handle a majority of the commits.
This doesn't mean 'bots are writing code. But they are generating a lot of the data and configuration files needed to run the company's software. 'You need to make a concerted effort to maintain code health,' Potvin says. 'And this is not just humans maintaining code health, but robots too.'
Piper for Everyone
Could others benefit from the same kind of system? Certainly. And they do. The main Facebook app spans upwards of 20 million lines of code, and the company treats the whole thing as a single project. Others do the same on a smaller scale. As companies approach the size of a Google or a Facebook, the logistics can get in the way. But Google and Facebook are exploring ways of changing that—for everyone.
The two internet giants are working on an open source version control system that anyone can use to juggle code on a massive scale. It's based on an existing system called Mercurial. 'We're attempting to see if we can scale Mercurial to the size of the Google repository,' Potvin says, indicating that Google is working hand-in-hand with programming guru Bryan O'Sullivan and others who help oversee coding work at Facebook.
That may seem extreme. After all, few companies juggle as much code as Google or Facebook do today. But in the near future, they will.
(Redirected from International Article Number (EAN))
GTIN-13 number encoded in EAN-13 barcode. The first digit is always placed outside the symbol; additionally a right '>' indicator is used to indicate a 'Quiet Zone' that is necessary for barcode scanners to work properly.
The International Article Number (also known as European Article Number or EAN) is a standard describing a barcode symbology and numbering system used in global trade to identify a specific retail product type, in a specific packaging configuration, from a specific manufacturer. The standard has been subsumed in the Global Trade Item Number standard from the GS1 organization; the same numbers can be referred to as GTINs and can be encoded in other barcode symbologies defined by GS1. EAN barcodes are used worldwide for lookup at retail point of sale, but can also be used as numbers for other purposes such as wholesale ordering or accounting.
The most commonly used EAN standard is the thirteen-digit EAN-13, a superset of the original 12-digit Universal Product Code (UPC-A) standard developed in 1970 by George J. Laurer.[1] An EAN-13 number includes a 3-digit GS1 prefix (indicating country of registration or special type of product). A prefix with a first digit of '0' indicates a 12-digit UPC-A code follows. A prefix with first two digits of '45' or '49' indicates a Japanese Article Number (JAN) follows.
The less commonly used 8-digit EAN-8 barcode was introduced for use on small packages, where EAN-13 would be too large. 2-digit EAN-2 and 5-digit EAN-5 are supplemental barcodes, placed on the right-hand side of EAN-13 or UPC. These are generally used for periodicals like magazines[2] or books,[3] to indicate the current year's issue number; and weighed products like food, to indicate the manufacturer's suggested retail price.
Composition[edit]
The 13-digit EAN-13 number consists of four components:
GS1 prefix[edit]
The first three digits of the EAN-13 (GS1 Prefix) usually identify the GS1 Member Organization which the manufacturer has joined (not necessarily where the product is actually made).[4] Note that EAN-13 codes beginning with 0 are actually 12-digit UPC codes with prepended 0 digit. In the last few years, more products sold by retailers outside United States and Canada have been using EAN-13 codes beginning with 0, since they were generated by GS1-US.
The 020-029 GS1 Prefixes are worth a special mention. GS1 defines this as being available for retailer internal use (or internal use by other types of business). Some retailers use this for proprietary (own brand or unbranded) products, although many retailers obtain their own manufacturer's code for their own brands. Other retailers use at least part of this prefix for products which are packaged in store, for example, items weighed and served over a counter for a customer. In these cases, the barcode may encode a price, quantity or weight along with a product identifier - in a retailer defined way. The product identifier may be one assigned by the Produce Electronic Identification Board (PEIB) or may be retailer assigned. Retailers who have historically used UPC barcodes tend to use GS1 prefixes starting with '02' for store-packaged products.[citation needed]
How can the answer be improved? What is utp ftp stp. Aug 21, 2017 The basic difference between UTP and STP is UTP (Unshielded twisted pair) is a cable with wires that are twisted together to reduce noise and crosstalk. On the contrary, STP (Shielded twisted pair) is a twisted pair cable enclosed in foil or mesh shield that. An environment with lots of heavy equipment, high-powered electrical motors and fluorescent lighting is likely to generate enough EMI to require the use of STP Ethernet cable, even though it’s the most expensive choice, often twice as pricey as UTP or FTP cable. UTP Unshielded Twisted Pair: The UTP cable consists of pairs of wires twisted together. This is one of the most basic methods used to help prevent electromagnetic interference. FTP Foiled Twisted Pair: FTP offers an additional layer of protection with shielding (also called screening) wrapped around the individual twisted wires.
The EAN 'country code' 978 (and later 979) has been allocated since the 1980s to reserve a Unique Country Code (UCC) prefix for EAN identifiers of published books, regardless of country of origin, so that the EAN space can catalog books by ISBNs[3] rather than maintaining a redundant parallel numbering system. This is informally known as 'Bookland'. The prefix 979 with first digit 0 is used for International Standard Music Number (ISMN) and the prefix 977 indicates International Standard Serial Number (ISSN).
Manufacturer code[edit]
The manufacturer code is a unique code assigned to each manufacturer by the numbering authority indicated by the GS1 Prefix. All products produced by a given company will use the same manufacturer code. EAN-13 uses what are called 'variable-length manufacturer codes'. Assigning fixed-length 5-digit manufacturer codes, as the UCC has done until recently, means that each manufacturer can have up to 99,999 product codes. Many manufacturers do not have that many products, which means hundreds or even thousands of potential product codes are being wasted on manufacturers that only have a few products. Thus if a potential manufacturer knows that it is only going to produce a few products, EAN-13 may issue it a longer manufacturer code, leaving less space for the product code. This results in more efficient use of the available manufacturer and product codes.[5]
In ISBN and ISSN, this component is used to identify the language in which the publication was issued and managed by a transnational agency covering several countries, or to identify the country where the legal deposits are made by a publisher registered with a national agency, and it is further subdivided any allocating subblocks for publishers; many countries have several prefixes allocated in the ISSN and ISBN registries.
Product code[edit]
The product code is assigned by the manufacturer. The product code immediately follows manufacturer code. The total length of manufacturer code plus product code should be 9 or 10 digits depending on the length of country code (2-3 digits).
In ISBN, ISMN and ISSN, it uniquely identifies the publication from the same publisher; it should be used and allocated by the registered publisher in order to avoid creating gaps; however it happens that a registered book or serial never gets published and sold.
Check digit[edit]
The check digit is an additional digit, used to verify that a barcode has been scanned correctly. It is computed modulo 10, where the weights in the checksum calculation alternate 3 and 1. In particular, since the weights are relatively prime to 10, the EAN-13 system will detect all single digit errors. It also recognizes 90% of transposition errors (all cases, where the difference between adjacent digits is not 5).
Calculation of checksum digit[edit]
The checksum is calculated as sum of products - taking an alternating weight value (3 or 1) times the value of each data digit. The checksum digit is the digit, which must be added to this checksum to get a number divisible by 10 (i.e. the additive inverse of the checksum, modulo 10).[6] See ISBN-13 check digit calculation for a more extensive description and algorithm. Import word into powerpoint. The Global Location Number(GLN) also uses the same method.
Position - weight[edit]
The weight at a specific position in the EAN code is alternating (3 or 1) in a way, that the final data digit has a weight of 3 (and thus the check digit has a weight of 1).
All Global Trade Item Number (GTIN) and Serial Shipping Container Code (SSCC) codes meet the next rule:
Numbering the positions from the right (code aligned to the right), the odd data digits are always weight of 3 and the even data digits are always weight of 1, regardless of the length of the code.
Weights for 18-digit SSCC code and GTINs (GTIN-8, GTIN-12, GTIN-13, GTIN-14):
Weights for EAN-13 code:
Weights for EAN-8 code:
Calculation examples[edit]
![]()
Coding Made Simple Magazine Cover
Binary encoding of data digits into EAN-13 barcode[edit]
The GTIN numbers, encoded to UPC-A, EAN-8 and EAN-13, all use similar encoding. The encoded data is usually repeated in plain text below the barcode.[7]
Barcode structure[edit]
Encoding EAN-13
Encoding L-digits
Encoding G-digits
Encoding R-digits
The barcode consists of 95 areas (also called modules[citation needed]) of equal width. Each area can be either white (represented here as 0) or black (represented as 1). From left to right:
Encoding of the digits[edit]
To encode the 13-digit EAN-13 number, the digits are split into 3 groups; the first digit, the first group of 6 and the last group of 6. The first group of 6 is encoded using a pattern whereby each digit has two possible encodings, one of which has even parity (denoted with letter G) and one of which has odd parity (denoted with letter L). The first digit is not represented directly by a pattern of bars and spaces, but is encoded indirectly, by selecting a pattern of choices between these two encodings for the first group of 6 digits, according to the table below. All digits in the last group of 6 digits are encoded using a single pattern RRRRRR, the one also used for UPC.
If the first digit is zero, all digits in the first group of 6 are encoded using the pattern LLLLLL used for UPC, therefore, an UPC barcode is also an EAN-13 barcode with the first digit set to zero.
This encoding guarantees that the first group always starts with an L-code, which has odd parity, and that the second group always starts with an R-code, which has even parity. Thus, it does not matter whether the barcode is scanned from the left or from the right, as the scanning software can use this parity to identify the start and end of the code.
EAN-8 barcodes encode all digits directly, using this scheme:
Note: Entries in the R-column are bitwise complements (logical operator: negation) of the respective entries in the L-column. Entries in the G-column are the entries in the R-column in reverse bit order. See pictures of all codes against a colored background.
A run of one or more black areas is known as a 'bar', and a run of one or more white areas is known as a 'space'. As can be seen in the table, each digit's encoding comprises two bars and two spaces, and the maximum width of a bar or space is four areas.
EAN-13 barcode example[edit]
EAN-13 barcode. A green bar indicates the black bars and white spaces that encode a digit.
Coding Made Simple Magazine
The complete EAN-13 code is thus: 4 003994 155486.
Scanning part of an EAN-13 barcode.
Decoding[edit]
By using the barcode center marker, it is possible for a barcode scanner to scan just one half of the barcode at a time. This allows reconstruction of the code by means of a helical scan of the barcode by an angle of approximately 45 degrees.
Japanese Article Number[edit]
Japanese Article Number (JAN) is a barcode standard compatible with the EAN. Use of the JAN standard began in 1978. Originally, JAN was issued a flag code (EAN's number system) of 49. In 1992, JAN was newly issued an additional flag code of 45. In January 2001 the manufacturer code changed to 7 digits (9 digits including the flag code) for new companies.[8]
See also[edit]
References[edit]
External links[edit]
Retrieved from 'https://en.wikipedia.org/w/index.php?title=International_Article_Number&oldid=899635640'
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |