|
We're also using glass in our windows, which is essentially the same technology that the ancient Egyptians were using in 2000 BC.
We're also using clay bricks to make houses, which is essentially the same technology that the ancient Mesopotamians were using in 3000 BC.
We're also using water to bathe ourselves, which is essentially the same technology that has been used since before the last ice age.
Invent something better if you don't like it.
|
|
|
|
|
Rasmus Andersson-
I'm amazed that the majority of people commenting on your article have a 'what we have is as good as it can get ' mentality. I think from the first line of your article I had a bit of an epiphany--not one that I can fully explain yet and not one that I would dare describe to a seemingly short-sighted group of peers.
Several contributors point out that processors execute operations in a sequential manner, and that it 'all comes down to 1s and 0s in the end' or something like that. Well guess what guys, assembly language takes a certain variant of programming discipline to do well. And even at that level, while you are telling the processor to load data and executable code with values in registers from specific memory segments, even assembler is an abstraction. Assembly code is compiled down to the actual bit values that a processor can understand.
My point here is that as programming has evolved; we've seen the introduction of object-oriented languages. Yes, of course it still all comes down to bit vales for the processor at run-time, but OO design helps us as HUMANS to take abstract needs and use the concept of classifications (more often than not called classes) to allow ourselves to create solutions for complex real-world business requirements using a much higher level of abstraction.
Even modern OSs and run-time platforms help us to abstract with high-level languages because we don't have to worry about handling the threads notifying our applications of events triggered by the user, e.g. button clicks, scroll bar movements, etc. We are to a certain extent freed from a lot of the mundane, thanks to the OS, the compiler and in many cases the run-time support. And let’s not forget the extensive pre-built libraries we have at our disposal.
Yes, we have all of the above, better ways to organize software using classes, conceptual tiers for separation of concerns, software designs lending themselves to extensibility and reuse. But as Rasmus points out, we still sit at a console typing text to ‘classify’ much of these pieces of code, and defining how they will interact once they become objects during program execution
Text is linear, even when defining classes that may interact in a multidimensional manner when used in an application.
We use linear text to describe how multiple threads should run simultaneously. That is certainly an example of using a one-dimensional language to describe a multi-dimensional process.
Rasmus Andersson is perhaps a bit too forward-looking for the audience here (no put-down intended). I happen to think he is quite correct in challenging future creators of development tools and environments to take us to the next level, where we can concentrate more on the problem, in an abstract way, much more in the way the user would describe it, and be able to translate the solution in a manner that is more efficient than writing text for the most part (although I will always believe in the ability to get to the lowest-level instruction layer when needed).
In any case, whether you happen to agree with Rasmus or not, we may want to prepare psychologically for a future in software design and development in which being adept at writing code textually in a classic IDE is of diminishing value, and the ability to embrace radically different tools that increase productivity immensely are going to be what keeps us as good developers in business.
|
|
|
|
|
Well, there is Alice, which I used in college years ago to create games in a graphical environment.
And then there are the multitudinous designers available (e.g., Entity Designer, Windows Forms Designer, WPF Design Surface, SharePoint Workflow Designer, markup designers, and so on).
And there are IDE's like Code Bubbles that are textual, but add lots of graphical niceties.
|
|
|
|
|
The name Windows RT wasn’t chosen to convey a message about Windows moving to ARM processors. Nor was it chosen to convey that it was a Tablet OS. The name appears to have been chosen primarily for one reason, it is an operating system devoted to running Windows RunTime apps. It splits the mainstream Windows product into two families. Windows for running Win32 “desktop” and Windows RunTime applications and Windows RT that drops the legacy Win32 application support. Windows RT is Microsoft’s go forward client operating system.
|
|
|
|
|
What’s the best way to kick off 2013? By emulating a 28 year old computer in your browser of course! SAE is the Scripted Amiga Emulator, an open source project created by Rupert Hausberger. His aim is ‘simply’ to make classic Amiga emulation possible in modern web browsers. And to that end he’s written an Amiga emulator in native JavaScript. Not a pre-compiled Java/C to JS hybrid, but basic JavaScript that anyone with the know-how can play with. You do need a beast of a PC to run SAE... maybe better to dig out that old Amiga after all.
|
|
|
|
|
Computers are ubiquitous in modern life. They offer us portals to information and entertainment, and they handle the complex tasks needed to keep many facets of modern society running smoothly. Chances are, there is not a single person in Ars' readership whose day-to-day existence doesn't rely on computers in one manner or another. Despite this, very few people know how computers actually do the things that they do. How does one go from what is really nothing more than a collection—a very large collection, mind you—of switches to the things we see powering the modern world? Telling a computer what to do is actually quite simple when broken down into simple concepts.
|
|
|
|
|
Finding errors earlier and more easily is one of the advantages of TypeScript. You can use optionally static typed (optionally) variables, functions, objects to help detect possible mismatches in your code right in your editor. Simply add the appropriate type or define an interface for more complex and custom types, and you are off and running! Defining types is by far my favorite feature of TypeScript. Types are still optional, but this is a nice option if you're the typed type type.
|
|
|
|
|
When you make a game, you often have enemies for the player to combat. You want these enemies to seem intelligent and present a challenge to the player to keep the game fun and engaging.... Obviously I can’t cover everything in this introductory tutorial, but I can show you how to get started with a hands-on example of adding AI into a simple game! In the process of adding AI into this game, you’ll learn about two common AI techniques along the way: steering and finite state machines. Cake and grief counseling will be available at the conclusion of the newsletter.
|
|
|
|
|
While we have been developing a website that displayed user uploaded images in fixed size regions, we have encountered some interesting problems. Should we resize the image to fit the fixed size region? Should we crop the image? Maybe we should mix the two? The no-brainer solution is to crop the image by focusing on the center. This naîve solution gave amazingly acceptable results, but sometimes it fails badly if the interesting region lies outside the cropped zone. Our algorithm should be able to somehow locate automatically the interesting part of the image. Here's an algorithm for automatically estimating what's the most important part of an image.
|
|
|
|
|
I made the mistake of publicly commenting on someone's idea of a RESTful API. And already - I've probably lost you. I don't know any single term more explosive and zeal-inducing than REST and "what it means to be RESTful". It needs explaining. Because clearly you don't know REST.
|
|
|
|
|
The flurry of database action over the past year rendered the usual discussion around structured or unstructured, SQL, NoSQL, and NewSQL databases even more, um, nuanced than before. Matthew Aslett, research manager at 451 Research took the bull by the horns and updated his previous (one-month-old) database road map to include all sorts of new entries. And here (drumroll please) is the result. Continue past key-value and turn right at Big Table. If you run into sharding, you've gone a table too far.
|
|
|
|
|
The number of seconds since the very beginning of 1970, known as Unix time, is often maintained in a single variable in the computer’s operating system. When Unix was first designed, this number was stored in 32 bit variable. That means that the number could range from 0 to 232. Zero corresponds to the midnight January 1, 1970 (UTC). So what time does 232 correspond to? That will be 3:14:07 (UTC) on January 19, 2038. Bad things will happen then to computers that still are still using 32 bit integers to store Unix time. Two-step authentication, cryptography and a little introduction to Message Authentication Codes (MAC).
|
|
|
|
|
Merry Christmas, makers! We’re guessing a lot of you found Raspberry Pis under the tree this morning and are eager to start hacking around with it. We’ve compiled a list of a few of our favorite quick tips that may come in handy as you explore the platform. sudo make me a robot.
|
|
|
|
|
Microsoft’s recent move to disband the Expression Studio suite, and discontinue some of its component products, is the latest example of a retrenchment that is returning the Developer Division (DevDiv) to its roots. Understanding that history will help make sense of the last couple of years of DevDiv moves, whether you think they make sense or not. Apple blocked Adobe’s Flash, took Silverlight down with it... and put DevDiv back on track.
|
|
|
|
|
Russian firm ElcomSoft on Thursday announced the release of Elcomsoft Forensic Disk Decryptor (EFDD), a new forensic tool that can reportedly access information stored in disks and volumes encrypted with desktop and portable versions of BitLocker, PGP, and TrueCrypt. EFDD will still set you back a solid $299. EFDD offers access to encrypted information either by completely decrypting everything or by doing so for individual files in real time. You can choose to either decrypt all files and folders stored in the cryptographic container (full, unrestricted forensic access to all stored information) or mount the encrypted volume as new drive letter for instant access (information is decrypted on-the-fly). This $299 tool makes your disk encryption obsolete.
|
|
|
|
|
All is not doom and gloom - the program still has to acquire Encryption Keys, as they say on their website, by one of 3 methods....
By analyzing the hibernation file (if the PC being analyzed is turned off);
By analyzing a memory dump file
By performing a FireWire attack (PC being analyzed must be running with encrypted volumes mounted).
'g'
|
|
|
|
|
Garth J Lancaster wrote: By analyzing a memory dump file [edit: if the PC being analyzed is turned off :S https://en.wikipedia.org/wiki/Cold_boot_attack[^]]
I guess following the best practices on TrueCrypt website (disable hibernation & sleep), and disabling the firewire in BIOS, combined with a panic button to purge RAM should be sufficient
|
|
|
|
|
http://opensource.apple.com/[^]
All MacOSes, between 10.0.0 and newest 10.8.2, all iOSes since 1.0 through 6.0.1, XCode since 1.2 till newest 4.5, and more. Kernel, drivers, graphic routines, I/O, everything. And, a set of reference documentation (e.g. how to write kernel modules).
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
This has been going on for several years now. I was in high school at the age of 16, and it was online then. So, ooooooolllllllllldddddddd news.
Bob Dole The internet is a great way to get on the net.
2.0.82.7292 SP6a
|
|
|
|
|
Sooo... a virus recipe book?
|
|
|
|
|
Could say the same for Linux. Neither Linux nor Macintosh seem to have many viruses.
=====
\ | /
\|/
|
|-----|
| |
|_ |
_) | /
_) __/_
_) ____
| /|
| / |
| |
|-----|
|
=====
===
=
|
|
|
|
|
Microsoft has announced that the Expression suite of design tools is no more. It has been removed from sale immediately and it has been placed on a maintenance only status until it reaches its end of life. However it's not all bad news...
|
|
|
|
|
|
Expression Blend will be integrated into Visual Studio.
"As beings of finite lifespan, our contributions to the sum of human knowledge is one of the greatest endeavors we can undertake and one of the defining characteristics of humanity itself"
|
|
|
|
|
...What was one of the most interesting things I learned during this project was using different algorithms and seeing how they affected performance. The biggest performance boost I got was from switching from Insertion Sort to Heap sort when sorting data points by date...
|
|
|
|