 |

|
Left unchecked, certain developer personality types can sink your project -- or, worse, make themselves no fun to work with. In my long and storied career, I've personally encountered all 14 of these personality types. In fact, I have been several of these people to some degree or another; I've also knowingly hired them. You know who you are. Rock stars, Graybeards and Ninjas... oh my!
|
|
|
|

|
I see the value of writing clearly and concisely becoming an increasingly important skill for digital workers. Partly for the reasons outlined above, but also because we’re moving into a massive wave of distributed work and self selected customers. This means our voice, and the voice of our companies, are often going to be discovered and engaged with via the copy of our services, the content of our social media channels and the clarity of our emails. Your ability to discuss code is increasingly as important as writing it.
|
|
|
|

|
Though it does serve a useful purpose in some compiled languages, I think switch is a clunky eyesore in most code. Its structure is prone to taking root and only growing larger and more cumbersome over time. If you’re coming to JavaScript from a background in procedural languages like C#, Java, or PHP, it’s natural to reach for the same tools, like switch, that you’re accustomed to using in those languages. However, JavaScript’s flexible object literal syntax and first-class functions offer alternatives to switch that I believe are cleaner, more extensible, and more maintainable. Embrace the functional side, Luke.
|
|
|
|

|
So we have a lot of these "one input -> Success/Failure output" functions -- how do we connect them together? What we want to do is connect the Success output of one to the input of the next, but somehow bypass the second function in case of a Failure output.... There is a great analogy for doing this -- something you are probably already familiar with. Railways! Railways have switches ("points" in the UK) for directing trains onto a different track. We can think of these "Success/Failure" functions as railway switches. The little function that could.
|
|
|
|

|
The debate about app design largely centers around screen size. What if designers worried about digit size instead? Luke Wroblewski, a respected designer... thinks it's time to reconsider mobile design principles. Instead of worrying about questions like whether to upsize smartphone apps for tablets, designers should start by asking how their users will physically interact with their devices when using an app. The technical term for this is input type—keyboard versus touchscreen, one-handed or two-handed interactions, and the like. This requires designers to think about how a device is held, which fingers are used, and how the app in question can optimize the experience for users' dexterity. Left-handed apps. You read it here first.
|
|
|
|

|
Once every 17 years, a population of cicadas ranging from Connecticut to the Appalachian highlands of North Carolina emerges to annoy everyone within earshot. The last time east coasters saw this brood was in 1996, making 2013 yet another year of annoying insect pests. The only question is, when will we start to see this year’s cicada brood? Radiolab, the awesome podcast and public radio show, has put together an awesome project that asks listeners to track when the cicadas in their area will emerge. I am Magicicada of Brood II. Resistance is futile. You will be driven mad by the sound.
|
|
|
|

|
Microprocessor architectures these days are largely limited, and thus defined, by power consumption.... Both AMD and Intel... have two independent microprocessor architectures that they leverage to build chips for the computing continuum. From Intel we have Atom for low power, and Core for high performance. In 2010 AMD gave us Bobcat for its low power roadmap, and Bulldozer for high performance.... Today AMD officially launches Kabini and Temash, APUs based on the first major architectural update to Bobcat: the Jaguar core. CPUs have come a long way from the old "how fast does it run?" days.
|
|
|
|

|
Microsoft Excel isn't only for spreadsheets. It can also be used to create art. Don't believe me? Just ask 73 year-old Tatsuo Horiuchi. He'll tell ya. But why Excel? "Other specialized graphic software is expensive, and Excel came pre-installed in PCs," Horiuchi told Japanese website PC Online, adding that he found the program easy to use and more capable than actual paint. It's true. Excel can do anything.
|
|
|
|

|
Microsoft has clarified that the next iteration of Kinect, the motion tracking peripheral unveiled alongside the Xbox One earlier this week, will be coming to Windows next year. We had previously known that the device would eventually be supported by Windows, but didn’t know when. Unfortunately, Microsoft is keeping quiet in regards to how developers will actually be able to take advantage of the new Kinect; the firm simply stated that it will share more details at its BUILD conference next month. The new Ctrl+Alt+Delete: Wave, Swipe, Raise the roof, Jump to the left, Stick it, Glide.
|
|
|
|

|
In several places around the web, the company is replacing the existing "Talk" platform with a new one called "Hangouts" that sharply diminishes support for the open messaging protocol known as XMPP (or sometimes informally Jabber), and also removes the option to disable the archiving of all chat communications. These changes represent a switch from open protocols to proprietary ones, and a clear step backward for many users. Google's plan: send us back to IRC and Usenet?
|
|
|
|
|
|

|
The challenge is actually 5 Challenges, each two weeks long, that when combined will result in an a web application hosted on Azure that uses Azure data services, virtual machines and provides a great mobile experience. Everything a modern cloud based application needs. As to what the application does - that's up to you. Be creative. Weave a story. Write something interesting, all the while writing about it in an article. The third challenge: Use SQL on Azure in whatever way you wish.
|
|
|
|

|
I love to write tools that simplify my life. Almost all the projects I have worked on and then published are tools that I originally wrote for myself before seeing a possible value for others. We talk to Daniel Godson, author of perhaps the most popular article on CodeProject: ToDoList.
|
|
|
|

|
There is no Nobel Prize in mathematics, but in 2001 the Norwegian government established a million-dollar Abel Prize, which is widely considered as an equivalent of the Nobel for mathematicians. This year’s prize was awarded to Pierre Deligne, professor emeritus at the Institute for Advanced Study in Princeton, N.J. Today, he is honored at a ceremony held in Oslo. Deligne’s most spectacular results are on the interface of two areas of mathematics: number theory and geometry. Math describes the world around us at the deepest level. And it's all open source.
|
|
|
|

|
A few months back I was satisfying my OCD by reading up on java object memory layout. Now Java, as we all know and love, is all about taking care of such pesky details as memory layout for you. You just leave it to the JVM son, and don't lose sleep over it. Sometimes though... sometimes you do care. And when you do, here's how to find out. Nice, clear rules. What could possibly go wrong?
|
|
|
|

|
As people write, they learn to organize, refine, and reflect on their ideas. Clearly, there are powerful reasons for everyone to learn to write. I see coding (computer programming) as an extension of writing. The ability to code allows you to “write” new types of things – interactive stories, games, animations, and simulations. And, as with traditional writing, there are powerful reasons for everyone to learn to code. In the process of learning to code, people learn many other things.
|
|
|
|

|
For years, the software industry has been trending away from so-called 'copyleft' licenses like the GNU General Public License (GPL) and toward permissive, Apache-style licensing. Given the rising importance of developers, this isn't surprising: developers just want to get work done without being bogged down by license requirements. It's perhaps not surprising, therefore, that permissive Apache licensing may simply be a way station on the road to no licensing at all. That's what GitHub seems to be telling us, anyway. A shift toward easy sharing and permissive licensing of code.
|
|
|
|

|
When Dart was originally launched, many developers mistook it for some sort of Java clone. In truth, Dart is inspired by a range of languages such as Smalltalk, Strongtalk, Erlang, C#, and JavaScript. Get past the semicolons and curly braces, and you’ll see a terse language without ceremony. Dart has evolved into its own, and here are some of my favorite language features. 12 interesting features in Dart you ought to know.
|
|
|
|

|
The new Kinect is kind of awesome. Just by the numbers, it's a huge upgrade. You can see (most of) the full walkthrough we saw just a bit ago here at Microsoft's Redmond campus in the video above. Parts are jaw-dropping. The demo is of a live action Kinect unit, which will be included with the new Xbox One. Right from the start, you can see the improved depth sensor. It's three times as sensitive, and can pick out bits as small as your t-shirt wrinkling or adjusting on your chest. Obvious next feature: you're not working hard enough - let's make the the game more difficult.
|
|
|
|

|
The first killer app was VisiCalc. This early spreadsheet turned the Apple II from a hobbyist toy to a business computer. VisiCalc came with room for improvement, though. In addition, a new architecture and operating system, the Intel-based IBM PC and MS-DOS, also needed a spreadsheet to be taken seriously. That spreadsheet, released in early 1983, would be Lotus 1-2-3, and it would change the world. It became the PC's killer app, and the world would never be the same. In the land of the Lotus eaters... or as we called it: business school.
|
|
|
|

|
It’s that time of decade again. Time for a new Xbox. It took four years for Microsoft to go from the original Xbox to the Xbox 360. The transition from Xbox 360 to the newly announced Xbox One will take right around 8 years, and the 360 won’t be going away anytime soon either. The console business demands long upgrade cycles in order to make early investments in hardware (often sold at a loss) worthwhile. This last round was much longer that it ever should have been, so the Xbox One arrives to a very welcoming crowd. [Cue din of nerds arguing over hardware specs.]
|
|
|
|

|
Wilhite created the GIF when he was working at CompuServe (an early US ISP). According to The New York Times, the format was originally intended to help the company display things like color weather maps, although the first image he created was an animated paper airplane. More than 10 years after his retirement, he remains proud of his creation but there's one thing he's been wanting to clarify — the pronunciation of the word. Someone is WRONG on the internet.
|
|
|
|

|
For many people Ethernet is merely the RJ45 jack on the back of a laptop, but its relative ubiquity and simplicity belie what Ethernet has done for the networking industry and in turn for consumers and enterprises. Ethernet has in the space of 40 years gone from a technology that many in the industry viewed as something not fit for high bandwidth, dependable communications to the default data link protocol. Few technologies in use today can lay claim to being 40 years old and still on the cutting edge.
|
|
|
|
|

|
It’s not uncommon for an empirical CS researcher to get a review saying something like “Sure, these results look good, but we need to reject the paper since the authors never proved anything about the worst case.” Similarly, when I interviewed for faculty jobs ten years ago, a moderately famous professor spent a while grilling me about the worst-case performance of a static analysis tool that I had written. This was, to me, an extremely uninteresting topic but luckily there’s an easy answer for that particular class of tool. I recall noticing that he did not seem particularly interested in what the tool did, or if it was actually useful. Yet another consequence of the divide between the math and engineering sides of computer science.
|
|
|
|

|
Today we’re announcing CoVim, a plugin that adds multi-user, real-time collaboration to your favorite (or least favorite) text editor. CoVim allows you to remotely code, write, edit, and collaborate, all within your custom Vim configuration. Originally started as a senior capstone project for Tufts University, we’re now open-sourcing it to give the world one of Vim’s most requested features. Solving the pair-programming problem with the world's most obtuse editor.
|
|
|
|

|
Graph analysis is becoming increasingly important in software applications. Here a graph is a collection of nodes and edges, not a data visualization such as a bar chart. This article presents a demonstration of how to perform shortest-path analysis using a SQL CLR stored procedure. The techniques presented here can also be used for many other data-access programming tasks. “Six degrees of Kevin Bacon” for data.
|
|
|
|

|
Voice inversion is a method of scrambling radio conversations to render speech nearly unintelligible in ordinary radio receivers. As the name implies, it inverts the audio spectrum of a signal, making the lowest frequencies the highest and vice versa. It is not considered encryption; it's merely a sort of Pig Latin on analogue signals..., Voice inversion is cancelled by reapplying the inversion, i.e. inverting the audio spectrum again. Here I'll present some least-effort digital descrambling methods for the voice inversion scrambler that may be of interest to hobbyist listeners. I played it backward and only heard "Khaaaaaan!"
|
|
|
|

|
Despite its popularity, PHP is considered by the programming elite, almost without exception, as one of the worst languages currently in use today. The term “good PHP programmer” is considered an oxymoron. Yet it’s the primary language we use here for development, and it’s the only language we use for everything touching the production MailChimp application. You can imagine the horror and surprise we see when we try to tell a good developer that we use PHP to solve cool and interesting problems. So here’s my best answer to that. The first step is admitting you have a problem.
|
|
|
|

|
This month, I’d like to evaluate where Microsoft is in its transition to a maker of devices and services. This is the biggest transition in the company’s history, one that will affect customers and users. Using Microsoft’s most recent earnings release, let’s rate the company’s progress and determine which strategic transitions might affect you. Devices and services are the future: where do your products fit?
|
|
|
|

|
Those were the days of processors living below the 2 MHz threshold, with each instruction run to completion before even considering the next. No floating point math. Barely any integer math, come to think of it: no multiplication or division and sums of more than 255 required two additions. But that kind of lively statistic slinging doesn't tell the whole story or else there wouldn't have been so many animated games running--usually at sixty frames-per-second--on what appears to be incapable hardware. I can't speak to all the systems that were available, but I can talk about the Atari 800 I learned to program on. How did fast action games exist at all on 8-bit systems?
|
|
|
|

|
As computer games became more and more complex in the late 1980s, the days of the individual developer seemed to be waning. For a young teenager sitting alone in his room, the dream of creating the next great game by himself was getting out of reach. Yet out of this dilemma these same kids invented a unique method of self-expression, something that would end up enduring longer than Commodore itself. In fact, it still exists today. This was the demo scene. The latest piece in a long-running Ars series on the history of the Amiga.
|
|
|
|

|
The latest update out of the currently unfolding announcement in Redmond: the next-generation Xbox will run three operating systems simultaneously. Complementing Windows 8 and RT on PCs and tablets, there'll be a third distinct version of Microsoft's operating system that has been pared down specifically for the new console. This will be the main system OS used to run apps such as Skype and other non-game titles downloaded from the Xbox storefront. UP, UP, DOWN, DOWN, LEFT, RIGHT, LEFT, RIGHT... Reboot!
|
|
|
|

|
I have seen many programmers having confusion between PUT vs POST while making REST API. Before starting my article let me put the following statements you have already encountered with: PUT should be used to create and POST should be used to update. POST should be used to create and PUT should be used to update. If you are following these statements sctrictly, both of them are not correct!. It is not mandatory that you have to use both PUT and POST in our application, it depends on what is the requirement. This should PUT any questions about POST to REST.
|
|
|
|

|
This tutorial will cover basic algorithm analysis, specifically the time complexity of algorithms. The tools used include Big-O, Big-Omega, and Big-Theta. This tutorial will also discuss some of the mathematical properties of Big-O, Big-Omega, and Big-Theta. How complex? I don't understand a word of it.
|
|
|
|

|
There is a lot of advice out there on how to go about building your own custom exception classes. A lot of these sources are at least partially correct. Some are totally wrong. Some even advocate abandoning the base System.Exception class altogether, but that’s throwing the baby out with the bathwater, in my opinion. None that I've seen show how to serialize/deserialize your custom exception class should it have additional data in it's subclass. It’s enough to make one despair of ever finding the “right” way to build an exception class. throw new boilerplate exception;
|
|
|
|

|
Like Morpheus in the Matrix, fmap knows just what to do; you start with Nothing, and you end up with Nothing! fmap is zen. Now it makes sense why the Maybe data type exists. It's a picture book for nerds. Some Haskell required.
|
|
|
|

|
This post is not meant at all to be anti-jQuery. But if you are able to target modern browsers in your work, using the native C++ methods provided by your browser will not-surprisingly give you a tremendous performance boost in most areas. I think there are many developers who don’t realize that most of the jQuery methods they use have native equivalents that require the same or only a slighter larger amount of code to use. Below are a series of code samples showing some popular jQuery functions along with their native counterparts. Even if you keep using jQuery, it's always good to know how it works under the hood.
|
|
|
|

|
Being able to apply statistics is like having a secret superpower. Where most people see averages, you see confidence intervals. When someone says “7 is greater than 5,” you declare that they're really the same. In a cacophony of noise, you hear a cry for help. Unfortunately, not enough programmers have this superpower. That's a shame, because the application of statistics can almost always enhance the display and interpretation of data. That's no mean feat for the average coder.
|
|
|
|

|
I dumped the ROM of a Tamagotchi using the code execution ability I posted previously. I wrote 6502 code that dumped each byte of the memory space of the Tamagotchi, and output it over port A (which is usually the Tamagotchi button input) via SPI.... I started by dumping the entire memory space, from 0×0000 to 0xffff, which included all mapped memory, such as ROM, RAM and ports. This only dumped some of the ROM, though, as the GPLB52x microcontroller supports paging outside of 6502 paging. The first 16 kilobytes of the ROM are always mapped to 0xc000-0xffff, and then the rest of the ROM is split into 19 pages that can be mapped to 0×4000-0xbfff as needed. To dump the entire ROM, I needed to figure out how to page. There's nothing sadder than a puppet without a ghost...
|
|
|
|

|
We recently transitioned a large portion of our backend infrastructure from Microsoft SQL Server to Apache Cassandra. Today, this Cassandra cluster backs our mobile advertising network, supporting over 10 million daily active users that produce over 10,000 transactions per second, with an average database request latency of under 2 milliseconds! The journey to get there is one of struggle and perseverance, where everyone lives happily ever after. The thing's hollow — it goes on forever — and — oh my God — it's full of data!
|
|
|
|

|
I just got back from HotOS 2013 and, frankly, it was a little depressing.... I could not help being left with the feeling that the operating systems community is somewhat stuck in a rut. It did not help that the first session was about how to make network and disk I/O faster, a topic that has been a recurring theme for as long as "systems" has existed as a field. HotOS is supposed to represent the "hot topics" in the area, but when we're still arguing about problems that are 25 years old, it starts to feel not-so-hot. What do you wish OS developers would break new ground on?
|
|
|
|

|
Like many great consumer Linux products... manufacturers assume in nearly every case that your "other" computer will run Windows.... The good news is, with the installation or configuration of a few programs, it's pretty easy to get your Android device (all the steps in this article are equally applicable to phones and tablets unless stated otherwise) to play nice with your Linux boxen. Check the comments for neckbeard-compatible alternative tools.
|
|
|
|
|

|
This script enables you to control your computer via text message. Think of it almost as a version of SSH over text message. It is designed to intelligently and quickly check unread Google voice messages. If certain parameters are passed, it runs the command you send and returns the result. Where autocorrect follies meet sysadmin nightmares.
|
|
|
|

|
Usborne's 1983 classic Introduction to Machine Code for Beginners is an astounding book, written, designed and illustrated by Naomi Reed, Graham Round and Lynne Norman. It uses beautiful infographics and clear writing to provide an introduction to 6502 and Z80 assembler, and it's no wonder that used copies go for as much as $600. How did you learn machine code?
|
|
|
|

|
C++11 feels like a new language. I write code differently now than I did in C++98. The C++11 code is shorter, simpler, and usually more efficient than what I used to write. This poses challenges: How do you present C++? What techniques do you recommend? What language features and libraries do you emphasize? Presenting C++11 as a layer on top of C++98 would be as bad as representing C++98 as a layer on top of C. C++ must be presented as a whole, as the powerful tool for design and implementation that it is, rather than a set of independent features. The Fourth Edition of The C++ Programming Language attempts that and should become available in a few months. Bjarne Stroustrup's personal tour of C++11 and a preview of his book's 4th edition.
|
|
|
|

|
Most people understand that Windows is used by a variety of people who have a variety of needs, ranging from corporate server to workstation to POS terminals to home PC and beyond. Most people accept that whenever Microsoft updates Windows, it has to balance the competing requirements to find some kind of workable compromise. There is however another set of competing requirements that many do not really register, even those that call themselves power users or are IT admins. It is a conflict between developers/programmers and Microsoft itself. Developers are ultimately the ones who write applications used by users whereas Microsoft develops the OS these applications run on. A common shared goal between the two is the desire that applications previously written continue to work. Is Modern API the clean break Microsoft needed from Win32 (and Silverlight and WPF and...)?
|
|
|
|

|
As many programmers gain experience, they start to learn more and more about what happens behind the facade, about Garbage Collecting and overall memory management. Sadly, I see many programmers filled with half right knowledge and wrong conclusions especially in the field of Garbage Collection and Performance. I saw attempts to "optimize" C# code, which did, if anything, slow down the program. So let us take a closer look at the modern Garbage Collectors, how they work and what problems they want to solve. I am going to explain the specific Java implementation, but don't worry, most of them work fairly similar. If GC really worked, it would throw out most of my code.
|
|
|
|
 |