 |

|
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.
|
|
|
|
|

|
"The 2-3000 computer owners in SF..." Hilarious - who'd a thunk it? I lived in SF back then but don't recall this at all. It was at least another year before I could save up and buy a computer at Radio Shack (Commodore 64).
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
Those who seek perfection will only find imperfection
nils illegitimus carborundum
me, me, me
me, in pictures
|
|
|
|

|
I love it when he said (something to the effect of), "the future is being able to copy the news you see on the screen to paper". And later on in the clip, the announcer says it will take 5 hours to download an entire newspaper (devoid of images and ads). How times have changed.
/ravi
|
|
|
|

|
OT: What's the f stop of the lens on the SLR in your profile pic? 1.4? Looks like a pretty fast lens.
/ravi
|
|
|
|

|
No, it's this: EF-S 17-85mm f/4-5.6 IS USM Lens[^].
Had this quite a few years: my walking-around-lens.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
Those who seek perfection will only find imperfection
nils illegitimus carborundum
me, me, me
me, in pictures
|
|
|
|

|
Nice. Hard to beat the versatility of a 28-135.
/ravi
|
|
|
|

|
Agreed though that seemed like a good choice at the time. I dip in and out of photography: sometimes carry the camera around, other times won't touch it for months. Thinking of trying astro-photography and found a good site to get me started: Astrophotography Techniques[^]. Now I just have to buy a new camera body (I'm stilling using my old D400/Rebel XTi). This[^] would also be really nice to have. Alas, priorities, priorities...
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
Those who seek perfection will only find imperfection
nils illegitimus carborundum
me, me, me
me, in pictures
|
|
|
|

|
Meanwhile, in Europe[^]
Also[^]
Plus others.
Today's youth will not feel the excitement as they hear their modems dialing out, or the sickening click as the provider hangs up, meaning no "artistic" pictures of ladies for you today!
“Education is not the piling on of learning, information, data, facts, skills, or abilities - that's training or instruction - but is rather making visible what is hidden as a seed” “One of the greatest problems of our time is that many are schooled but few are educated”
Sir Thomas More (1478 – 1535)
modified yesterday.
|
|
|
|

|
Yes, I remember reading about MiniTel. It was way ahead of what we had in the US.
/ravi
|
|
|
|

|
Was that a Trash-80 that he was using?
|
|
|
|
|
|

|
Sorry, I meant to say "the web".
/ravi
|
|
|
|

|
That's still always been there from my point of view. If Wikipedia is accurate[^], the first web page ever created was created the same day I was born (November 13th, to save you some time searching the page).
modified yesterday.
|
|
|
|

|
Really? Only 1990? I'm pretty sure I have some tee-shirts older than that.
ps your link is bad.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
Those who seek perfection will only find imperfection
nils illegitimus carborundum
me, me, me
me, in pictures
|
|
|
|

|
mark merrens wrote: Really? Only 1990? I'm pretty sure I have some tee-shirts older than that. That's why I come here, I get to feel young.
mark merrens wrote: ps your link is bad. Weird, apparently it didn't like me not having http on it...maybe that's why it refused to auto-format it for me too. Should be fixed now.
|
|
|
|

|
You're off by a decade.
/ravi
|
|
|
|

|
By that you mean from your video? But that's my point - in my lifetime, there has never been a time without the internet or even the web. (Arguably, there was a gap between the proof-of-concept and it's wider scale implementation, but that was still before I started forming long-term memories.)
|
|
|
|

|
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?
|
|
|
|

|
I had almost forgotten that book but not quite. One of the few useful computing books I ever got out of a public library, a true classic.
"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)
|
|
|
|

|
Terrence Dorsey wrote: How did you learn machine code?
[ranty...]
I remember my math teacher in 10th grade programming hex codes into a 4K machine. I actually learned BASIC first on a PDP/11, and HP calculators were a bit like machine code, by the time I finished high school I was writing assembly language in 6502 with opcodes, not machine codes, though I could tell you what most opcodes were in hex. Wrote a bunch of image processing algorithms in 8086 and 80286, but then finally compilers got good enough that I could write performance code in C and coerce the compiler to produce what I wanted with various "hints." Lots of fun - I must say, nowadays I'm actually feeling rather dulled to the whole programming environment, OOP has lost its allure, functional programming is cute but ultimately a niche and can be done well enough in OO languages, and things like Ruby and Ruby on Rails feel like klunky hacks - when it works it's cool, when it doesn't it's hours googling for someone on stackoverflow that spent even more time figuring out the solution and was kind enough to post it. Not to mention how klunky the supporting technologies like javascript, jQuery, css, html feel. It's rather depressing how pathetic the web development environment and technology stack kludge actually is, and more depressing is that we all seem to just accept it. How did we get into this situation? Machine code was elegant, capable, and processors and hardware was well spec'd. Nowadays I read about how pathetic or non-existent the documentation for technology "X" is (like ajax support in Rails) but nobody seems to give a damn. We've come a long way, but have we really?
And don't forget - all those fancy layers of DI, IoC, OOP, reflection, dynamic, LINQ, etc.......it all compiles down to machine code.
Marc
|
|
|
|

|
People are always looking for the easy way to to hard things. Some tools do make the job easier others just make it easier to do badly or easier to do only if you're doing it exactly as the tool designer envisaged which you almost never are if you're doing something new.
Z80 machine code I could handle, it was human scale and the addressing modes were simple. Intel's mess on the other hand I'm still struggling with. Overall I always found really low level programming too slow, like a really stiff typewriter it could never keep up with my thought processes or I couldn't slow them down that much and remain creative. I too started with BASIC and that was cool until you ran out of RAM or you ran out of variable names you could remember to keep unique.
I moved directly to C++ without going via C really in order to get scoped variables. OO was just introduced another kind of scope which was great and namespaces gave me yet another scope dimension. I never really needed or wanted anything more than that.
I remain determined that the next time I return to Web development on my own account there will be C++ and the Web Server de jour and nothing else on the server side. Pure HTML from templates on the client side and anything and everything else will be autogenerated. I'm stubborn like that
"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)
|
|
|
|

|
Matthew Faithfull wrote: Pure HTML from templates on the client side and anything and everything else will be autogenerated.
Hmmm...you've just given me an idea for how to crawl out of the primordial ooze of web development.
Matthew Faithfull wrote: I'm stubborn like that
Me too!
Marc
|
|
|
|

|
Marc Clifton wrote: Not to mention how klunky the supporting technologies like javascript, jQuery, css, html feel. It's rather depressing how pathetic the web development environment and technology stack kludge actually is, and more depressing is that we all seem to just accept it.
I feel that way about all this CRAP!!! we're expected to accept as 'standards' (HTML/DOM).
Committees for standards make unbearably slow progress.
This is equally disadvantageous because of a larger user base which just grows from their ponderous time scales to appease interested parties (usually corporate bodies). This just adds more resistance to change and feeds back into the process.
|
|
|
|

|
dusty_dex wrote: we're expected to accept as 'standards' (HTML/DOM).
What's particularly annoying is that the so-called standards are only implemented partially, or with deviation. I just today did an "inspect source" on a web page and grimaced in disgust as I saw 3 if-else blocks to handle differences in IE 7, 7, and 8, and this occurred in numerous places throughout the HTML.
Marc
|
|
|
|

|
6502 opcodes which had to be converted into string format so that it could be called from ATARI BASIC.
A nightmare. BBC Basic had a built-in assembler which was far more friendly. I can be thankful for not having to enter code via hex keypad (KIM-1) or horror of horrors; toggle switches of the MITS Altair.
|
|
|
|

|
dusty_dex wrote: or horror of horrors; toggle switches of the MITS Altair.
That stuff was cool! I remember in 8th grade being taught by the chemistry teacher how to enter the bootstrap code into the PDP/11 with toggle switches. Unfortunately, he didn't teach me what exactly I was doing and why. It was only later that I realized I was entering opcodes and toggling the "increment memory" for each binary code.
But yeah, I'm glad we don't have to do that anymore.
Marc
|
|
|
|

|
Marc Clifton wrote: I remember in 8th grade being taught by the chemistry teacher how to enter the bootstrap code into the PDP/11 with toggle switches.
Did he deliberately not have a serial line to a terminal?
What a bastard.
|
|
|
|

|
dusty_dex wrote: Did he deliberately not have a serial line to a terminal?
The machine was hooked up to a teletype with a good old punch tape for saving programs. Which wouldn't work until you booted the computer.
Marc
|
|
|
|

|
Terrence Dorsey wrote: How did you learn machine code?
"Z80 machine code (or assembly language) for the absolute beginner" and Devpac[^] for ZX Sinclair Spectrum
|
|
|
|
 |