|
From a software development perspective, we use katas to build muscle memory, practice logical thought and teach ourselves familiar ideas but from a different perspective. Katas can stretch our abilities and, similar to how a kata would teach a martial artist to become comfortable with the uncomfortable, they help us write code we may not normally write.... Although katas are typically practiced in a private setting, at 8th Light we often perform katas, once perfected, live in front of an audience of peers. The goal of the kata performance, in this instance, is not to be considered a rite of passage or to demonstrate mastery of the material. Instead, as its name implies, it is simply a performance meant to entertain. We do a lot of improv here. Just stay loose, have fun - you'll be fine!
|
|
|
|
|
In March, readers followed along as Nate Anderson, Ars deputy editor and a self-admitted newbie to password cracking, downloaded a list of more than 16,000 cryptographically hashed passcodes. Within a few hours, he deciphered almost half of them. The moral of the story: if a reporter with zero training in the ancient art of password cracking can achieve such results, imagine what more seasoned attackers can do. Imagine no more. We asked three cracking experts to attack the same list Anderson targeted and recount the results in all their color and technical detail Iron Chef style. Let's just admit it: ALL YOUR PASSWORD ARE BELONG TO US.
|
|
|
|
|
These “small data” situations are actually pretty important. Every post has its first few votes, every website its first few visitors, and most businesses their first customers, but not all of them continue long enough to get lots of data. Even in very large data sets, say visitors to a search engine, specific situations often have small amounts of data, like the probability that a visitor searching for “an image of a hippopotamus on a hill at sunset” will be pleased with the results. Each individual small data situation may not matter much. However, there are tons of these situations. Together they matter. We are smart people; let’s see if we can find a better way to estimate in these small data situations.
|
|
|
|
|
OUR mobile carriers know our locations: where our phones travel during working hours and leisure time, where they reside overnight when we sleep. Verizon Wireless even sells demographic profiles of customer groups — including ZIP codes for where they “live, work, shop and more” — to marketers. But when I called my wireless providers, Verizon and T-Mobile, last week in search of data on my comings and goings, call-center agents told me that their companies didn’t share customers’ own location logs with them without a subpoena. If My Data Is an Open Book, Why Can’t I Read It?
|
|
|
|
|
There are a lot of video containers out there: avi, mp4, ogg, flv, mkv, etc. One of the biggest headaches we’re trying to solve with Framebase is being able to upload any video and have it play across all browsers and devices without heavy reliance on Flash. When explaining Framebase, sometimes we get questions like, “Why can’t you just use the tag in HTML5?” As straightforward as that might seem, a lot of people don’t realize how much effort is required in providing an HTML5 video solution. We'd show you in a video, but... err... we can't yet.
|
|
|
|
|
If the idea of “winning” a console generation with laughably underpowered hardware wasn’t enough, the Wii and its contemporaries also put an end to the idea of a game console that just plays games. Just a few years after launch, all of the consoles—even the dainty, standard-definition Wii—supported some kind of social networking, photo viewing, and one or more video streaming services.... This was all a natural consequence of the decreased cost of storage and computation combined with the ubiquity of wireless networking. It was inevitable that any TV-connected box would eventually support these features. But it also means the Xbox One, PlayStation 4, and Wii U lack the clarity of purpose enjoyed by the previous generations of game consoles. Here’s how things look at the dawn of the next game console generation.
|
|
|
|
|
The iPad's Camera Connection Kit is a remarkably talented accessory. With its standard USB connector plus a bit of ingenuity, clever folks have found all sorts of things to connect that would not ordinarily be expected to connect: headsets, keyboards and a variety of storage devices. You can even connect an iPhone to an iPad and import photos from one to the other. Neat trick, but I bet it still took three tries to plug the USB cord in correctly.
|
|
|
|
|
One of the most persistent misconceptions about mobile devices is that it's okay if they offer only a paltry subset of the content available on the desktop. Decision-makers argue that users only need quick, task-focused tools on their mobile devices, because the desktop will always be the preferred choice for more in-depth, information-seeking research. But what about people who don't have a desktop computer? What about people who have access to a PC, but prefer using their mobile device? Those users want and need access to the same information, just presented in a different form factor. The mobile-only user is your customer too. "They can just use their desktop computer to do that."
|
|
|
|
|
A developer evangelist fills an important role for a company. They serve as a communicator, a liason, a thoughful voice and more importantly, an integral part of the web development community. Few people encompass all of that as well as Christian Heilmann. Currently working as a principal technical evangelist at Mozilla, he’s literally written the book on developer envangelism and offers up some insightful nuggest on his work. An insightful interview with Mozilla's principal technical evangelist.
|
|
|
|
|
One of the useful tools Node.js adds on top of standard ECMAScript is a notation for defining and using modules. A "module" exports objects and functions by adding them to exports, and another module can import it by using require. The semantics are explained well in the official documentation. While the documentation does a good job describing how require finds the module to import, it doesn’t say much about how the importing itself happens, and how the exports and module objects are magically visible and usable in the module’s code. Here I want to provide a lower-level view of this missing link, gleaned from the source code. Required reading for understanding your module loading requirements.
|
|
|
|
|
Every web developer should keep useful code snippets in a personal library for future reference. Today, I’m showing you the 10 most useful snippets and functions I have added to my snippet library from the past 3 months. Check the comments for additional ideas.
|
|
|
|
|
I came to the JavaScript party much later than some of my colleagues but much earlier than most. I was told the best resource was Douglas Crockford’s book ‘JavaScript: The Good Parts‘ and was not disappointed. The book is thin and contains a minimal set of information needed to get you in a good state with JavaScript. While reading through it however I still found much of the book to be information I was already aware of, either with JavaScript syntax or basic programming concepts, and so I extracted those bits of knowledge that were most impactful against my existing knowledge level going in. The good parts, simmered down to 4 essential tips.
|
|
|
|
|
Cryptography is perilous because you get no feedback when you mess up. For the average developer, one block of random base 64 encoded bytes is as good as any other. You can get good at programming by accident. If your code doesn't compile, doesn't do what you intended it to or has easily obvervable bugs, you get immediate feedback, you fix it and you make it better next time. You cannot get good at cryptography by accident. Attackers who bypass your security mechanism aren't going to help you with this either.
|
|
|
|
|
Right now, Bitcoin is undeniably a mainstream currency, even if it is not necessarily popular in the sense of being used by a significant proportion of society.... For many people, the risks—from fraud, for instance—are outweighed by the benefits. So let's say you're not convinced by Bitcoin as it is, but you still like Satoshi Nakamoto's idea of "an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third-party." Luckily for you, there are alternatives out there. Here are some of the more interesting ones, all forked from the original Bitcoin code. "Cryptocurrencies are fast-moving and unpredictable," exactly what I'm looking for in a store of wealth.
|
|
|
|
|
It depends on what you mean by mainstream. For a number of major industry sectors robotics is already mainstream. In assembly-line automation, for instance; or undersea oil well maintenance and inspection. You could argue that robotics is well established as the technology of choice for planetary exploration. And in human culture too, robots are already decidedly mainstream. Make believe robots are everywhere, from toys and children’s cartoons, to TV ads and big budget Hollywood movies. Robots are so rooted in our cultural landscape that public attitudes are, I believe, informed – or rather misinformed – primarily by fictional rather than real-world robots. When the real future looks much more mundane than the anticipated future.
|
|
|
|
|
My younger son could use some algebra practice. There are only so many problems in his book and making up new ones that have simple integer answers is harder and more time-consuming than you’d think. So, as with elementary math, I made up an HTML/JavaScript page that generates a new set of problems every time it’s (re)loaded. I print some out, have him do one or two, and go over them with him. For more math (or coding) practice, see the link at the end of this post.
|
|
|
|
|
Google is officially closing down Buzz on July 17th, a considerable amount of time after it announced its future shutdown back in October 2011. Users of the social network, however, will still be able to read what they posted in the past, thanks to Google’s decision to move the data generated on Buzz to Google Drive. No buzz about Buzz: I didn't even know this service was still active.
|
|
|
|
|
Xerox is screening tens of thousands of applicants for low-wage jobs in its call centers using software from a startup company called Evolv that automatically compares job seekers against a computer profile of the ideal candidate. According to these data, culled from studying job records of many similar workers, past experience working in call centers isn’t a good predictor of success. Instead, a person should be a “creative” type, though not too inquisitive. Thank you for applying. According to our algorithms, you're fired.
|
|
|
|
|
Some years ago I said that JavaScript is the Assembly Language of the Web. In fact, lots of people said it, because it's true. Later, some folks disagreed, saying that this is an inaccurate analogy. Of course, it is inaccurate because it's an analogy. That said, as analogies go, it's pretty good. Sure, assemblers are architecture and processor specific. Maybe "JavaScript is the Web's Bytecode" is better. At the very least, JavaScript is a totally reasonable compile target. Why you should learn to speak the Lingua Browser.
|
|
|
|
|
Cargo-culting is sometimes defined as "the extreme adherence to the form instead of content." The form, in programming, being the syntax, paradigms, styles and patterns that we employ. The content being the abstract thing that you are seeking to represent through your code — the very substance of your program. A person with lacking understanding in an area is likely to copy the form of others without truly understanding, and thus their content — their program — can suffer. 7 tips for writing JavaScript that real people can understand.
|
|
|
|
|
I'm not sure if cargo cult applies here.
At the heart of cargo cult is repeating a rite mechanically, totally oblivious to the mechanism that made it work once and why your rote repetition will never yield the same results.
The issues presented seem to be more about avoiding of bike shedding and observingthe principle of least surprise.
Some of them are simply defensive programming: all the "If you know that X" need to be replaced by If you know that X is Y, and you will be the only one modifying X, and when you do you you will remember to fix all dependent locaitons, too."
Now, granted, there will be programmers who follow the strict rules without understanding the underlying causes, and there are many projects where this is good enough. Yet still, "cargo cult" barely applies.
|
|
|
|
|
I have tried to find easiest ways to create a simple web server with F#. There are three most simple ways to do it. The goal is to create a simple web service that maps web request urls to the files in the site folder. If file with such name exists then return its content as html. Assume that all html files located in 'D:\mySite\'. Sergey's site is chock full of handy little F# snippets for learning. Check it out.
|
|
|
|
|
Python is a great scripting language - it's available by default on Linux and Mac and so it's easy to quickly write a short script that runs on many systems. However, this isn't the case on Windows. You need to install Python or wrap your application to distribute it on Windows, so we need an alternative. Sometimes this is inconvenient, especially if you want to do something simple or deal directly with Windows. This is where PowerShell comes in. ...or you could just install Python.
|
|
|
|
|
There’s really exciting news in the world of number theory, my old field. I heard about it last month but it just hit the mainstream press. Namely, mathematician Yitang Zhang just proved is that there are infinitely many pairs of primes that differ by at most 70,000,000. His proof is available here and, unlike Mochizuki’s claim of a proof of the ABC Conjecture, this has already been understood and confirmed by the mathematical community. Proving the prime directive: Kirk + Green alien women do not appear in sequential Star Trek episodes.
|
|
|
|
|
It might seem like a strange idea to want to write a small crashing C program, but in one of the courses that I’ve been teaching labs this is one of the tasks! It’s actually a very educational thing to do. Technically a zero-length program will crash, but is that really a program?
|
|
|
|
|