Python

What America's NSA Thinks of Python (zdnet.com) 74

"Now budding Python developers can read up on the National Security Agency's own Python training materials," reports ZDNet: Software engineer Chris Swenson filed a Freedom of Information Act request with the NSA for access to its Python training materials and received a lightly redacted 400-page printout of the agency's COMP 3321 Python training course. Swenson has since scanned the documents, ran OCR on the text to make it searchable, and hosted it on Digital Oceans Spaces. The material has also been uploaded to the Internet Archive...

"If you don't know any programming languages yet, Python is a good place to start. If you already know a different language, it's easy to pick Python on the side. Python isn't entirely free of frustration and confusion, but hopefully you can avoid those parts until long after you get some good use out of Python," writes the NSA...

Swenson told ZDNet that it was "mostly just curiosity" that motivated him to ask the NSA about its Python training material. He also said the NSA had excluded some course material, but that he'll keep trying to get more from the agency... Python developer Kushal Das has pulled out some interesting details from the material. He found that the NSA has an internal Python package index, that its GitLab instance is gitlab.coi.nsa.ic.gov, and that it has a Jupyter gallery that runs over HTTPS. NSA also offers git installation instructions for CentOS, Red Hat Enterprise Linux, Ubuntu, and Windows, but not Debian.

Power

Developer Finds USB Chargers Have as Much Processing Power as the Apollo 11 Guidance Computers (gizmodo.com) 110

An anonymous reader shares a report: It comes as no surprise that the guidance computers aboard the Apollo 11 spacecraft were impossibly primitive compared to the pocket computers we all carry around 50 years later. But on his website, an Apple developer analyzed the tech specs even further and found that even something as simple as a modern USB charger is packed with more processing power. Forrest Heller, a software developer who formerly worked on Occipital's Structure 3D scanner accessory for mobile devices, but who now works for Apple, broke down the numbers when it comes to the processing power, memory, and storage capacity of Google's 18W Pixel charger, Huawei's 40W SuperCharge, the Anker PowerPort Atom PD 2 charger, and the Apollo 11 guidance computer, also referred to as the AGC. It's not easy to directly compare those modern devices with the 50-year-old AGC, which was custom developed by NASA for controlling and automating the guidance and navigation systems aboard the Apollo 11 spacecraft.

In a time when computers were the size of giant rooms, the AGC was contained in a box just a few feet in length because it was one of the first computers to be made with integrated circuits. Instead of plopping in an off the shelf processor, NASA's engineers designed and built the AGC with somewhere around 5,600 electronic gates that were capable of performing nearly 40,000 simple mathematical calculations every second. While we measure processor speeds in gigahertz these days, the AGC chugged along at 1.024 MHz. By comparison, the Anker PowerPort Atom PD 2 USB-C charger includes a Cypress CYPD4225 processor running at 48 MHz with the twice the RAM of the AGC, and almost twice the storage space for software instructions.

Programming

Why Can We Write Software To Get To the Moon, But Not To Count Votes (infoworld.com) 325

minstrelmike shares a report. From the article: The best way to get a feel for what NASA's job was like is to read some of the code, now immortalized in a GitHub repository. Choose a file at random. GROUND_TRACKING_DETERMINATION_PROGRAM.agc, for instance, has 204 lines and more than 85 of them are comments. Each of the lines consists of only one operation, unlike modern languages, which can pack dozens of operations with multiple options into one line. The simplicity becomes obvious .... The Apollo Guidance Computer had only 36k of ROM to hold the compiled version."

You didn't need security, function was the only thing that counted, and you only had to do one thing. A Go app compiled with version 1.7 that only prints "Hello World" is 1.6 megabytes alone, and the Go world was totally thrilled with this news because it was 2.3 megabytes before." And you didn't need to deal with lawyers. There are 22 thousand words in the basic Terms of Service for renting a machine in Amazon's cloud. There is also an entirely different TOS for using the website to rent the machine. Then each individual product often has its own TOS, like this one for Activate. Add them up and they're much longer than the 36 thousand instruction words in the ROM in the Lunar Lander's computer.

Programming

Are There Generational Differences In First Coding Languages and Learning Resources? (hackerrank.com) 168

"Under the age of 39? Odds are that most of your peers learned to code in C.

"Most Baby Boomers and Gen Xers — or, those between the ages of 40 and 74 in 2020 — learned to code in BASIC."

That's just one of the interesting conclusions from HackerRank's third annual "Developer Skills Report," which this year compiled responses from over 116,000 developers (from 162 different countries). Developed for educational use in 1964, BASIC was a popular instructional language in college classrooms. But that began to change in 1972, when Bell Labs invented C, allowing portability of the Unix operating system. Though it wasn't an instant hit, the language rose to popularity in the late 70s and early 80s alongside the growth of Unix. Today, the language is celebrated for its longevity, flexibility, and ease of use — just some of the reasons it's still popular for Gen Zers learning to code today.

Gen Z is more likely than any previous generation to utilize bootcamps. Nearly one in six say they've leveraged bootcamps to learn new skills. On the flip side, they're less likely to learn coding skills from older generations' go-tos, like books and on-the-job training. As Gen Z comes to rely more heavily on non-traditional education sources like bootcamps, they're poised to become a key talent pool.

Jaxenter also summarizes another interesting finding from the survey. "72% of hiring managers reported that bootcamp grads were equally or better equipped for their job." The I-Programmer site even noted the top reasons managers gave the surveyors for why bootcamp grads exceed:
  • Ability to learn new technologies & languages quickly (71%)
  • Strong practical experience (61%)
  • Eager to take on new responsibilities (52%)

And they also summarize another interesting result. "Almost a third of developers at small companies (1-49 employees) haven't obtained a Bachelor's degree -- a proportion that drops to only 9% in companies with 10,000 or more employees."


Android

China's Mobile Giants Huawei, Xiaomi, Oppo, and Vivo To Take on Google's Play Store (reuters.com) 17

China's Xiaomi, Huawei, Oppo and Vivo are joining forces to create a platform for developers outside China to upload apps onto all of their app stores simultaneously, in a move analysts say is meant to challenge the dominance of Google's Play store. From a report: The four companies are ironing out kinks in what is known as the Global Developer Service Alliance (GDSA). The platform aims to make it easier for developers of games, music, movies and other apps to market their apps in overseas markets, according to people with knowledge of the matter. The GDSA was initially aiming to launch in March, sources said, although it is not clear how that will be affected by the recent coronavirus outbreak. A prototype website says the platform will initially cover nine "regions" including India, Indonesia and Russia.
Businesses

Rockstar Co-Founder Dan Houser Is Leaving the Company 13

Dan Houser, co-founder of Rockstar Games, is leaving the company in March after taking an "extended break" in the spring of 2019. "Rockstar Games was founded in 1998, and Dan Houser contributed prominently to the company's successful franchises, including Grand Theft Auto, Max Payne, Red Dead Redemption, and more," notes The Verge. From the report: Take-Two Interactive is the holdings company for Rockstar Games, and it hasn't officially announced the departure yet. Here's the snippet in full, straight from [an SEC document registered by publisher Take-Two Interactive, which first confirmed the news]: "After an extended break beginning in the spring of 2019, Dan Houser, Vice President, Creative at Rockstar Games, will be leaving the company. Dan Houser's last day will be March 11, 2020. We are extremely grateful for his contributions. Rockstar Games has built some of the most critically acclaimed and commercially successful game worlds, a global community of passionate fans and an incredibly talented team, which remains focused on current and future projects."
Chrome

Chrome 80 Arrives With Mixed Content Autoupgraded To HTTPS, Cookie Changes, and Contact Picker API (venturebeat.com) 63

An anonymous reader quotes a report from VentureBeat: Google today launched Chrome 80 for Windows, Mac, Linux, Android, and iOS. The release includes autoupgrading mixed content to HTTPS, SameSite cookie changes, quieter permission UI for notifications, and more developer features. This release thus beefs up security for the world's most popular browser and begins cracking down on cross-site cookies. You can update to the latest version now using Chrome's built-in updater or download it directly from google.com/chrome. With over 1 billion users, Chrome is both a browser and a major platform that web developers must consider. In fact, with Chrome's regular additions and changes, developers often have to stay on top of everything available -- as well as what has been deprecated or removed. Among other things, Chrome 80 has started deprecating FTP support by disabling it by default for non-enterprise clients.
Android

Google Has Paid Android Developers About Half of What Apple Has (theverge.com) 129

From a report: I'll just pay a little more attention to the Android bit: a total of $80 billion paid out to Android developers, which is significantly less than the $155 billion Apple has paid out via the iOS App Store. Even if you account for Google allowing developers to use their own payment methods and made a bunch of other caveats, I suspect you can't avoid the truth. The vast majority of phones on Earth run Android, and yet it is almost surely the case that there's more money for developers in iPhone apps. That's always been the conventional wisdom, but Google's own numbers all but confirm it.
Programming

Eric Raymond Stumped By Documentation's 'Reproduction' Problem (ibiblio.org) 98

Eric Raymond has been working on a tool called reposurgeon for editing version-control repository histories -- those "risky operations that version-control systems don't want to let you do." But this led to some interesting thoughts about documentation: "Why doesn't reposurgeon have easy introductory documentation" would normally have a simple answer: because the author, like all too many programmers, hates writing documentation, has never gotten very good at it, and will evade frantically when under pressure to try. But in my case none of that description is even slightly true. Like Donald Knuth, I consider writing good documentation an integral and enjoyable part of the art of software engineering. If you don't learn to do it well you are short-changing not just your users but yourself...

If you go looking for gdb intro documentation, you'll find it's also pretty terrible. Examples of a few basic commands is all they can do; you never get an entire worked example of using gdb to identify and fix a failure point. And why is this....? High-quality introductory software documentation depends on worked examples that are understandable and reproducible. If your software's problem domain features serious technical barriers to mounting and stuffing a gallery of reproducible examples, you have a problem that even great willingness and excellent writing skills can't fix.

Of course my punchline is that reposurgeon has this problem, and arguably an even worse example of it than gdb's. How would you make a worked example of a repository conversion that is both nontrivial and reproducible? What would that even look like...? Having identified the deep problem, I'd love to be able to say something revelatory and upbeat about how to solve it.... Unfortunately, at this point I am out of answers. Perhaps the regulars on my blog will come up with some interesting angle.

Programming

Programmer Moneyball: Challenging the Myth of Individual Programmer Productivity (cmu.edu) 123

Slashdot reader jbmartin6 summarizes a new article from Carnegie Mellon's Software Engineering Institute: An academic study challenges the notion that "some programmers are much, much better than others (the times-10, or x10, programmer), and that the skills, abilities, and talents of these programmers exert an outsized influence on that organization's success or failure."

Instead, the author shows productivity variation is often a result of poor-performing outliers and some wide variation in individual's productivity from day to day. Once these factors are eliminated, the gap between top performers and normal performers isn't that great, and there is a very small supply of consistent top performers anyway. This result has a lot of implications for how software teams and projects are managed.

The article concludes that "while some programmers are better or faster than others, the scale and usefulness of this difference has been greatly exaggerated....

"Rather than try to label programmers with simplistic terms such as 'best' and 'worst,' the most motivating and humane way to improve average performance is to find ways to improve everyone's performance."
Cloud

Move Over, Silicon Valley: St. Louis, Atlanta, Small Cities Gaining Tech Jobs (dice.com) 72

Slashdot reader SpaceForceCommander shared Dice's new annual report on America's tech industry salaries based on a survey of over 12,800 "technologists": Columbus and St. Louis enjoyed double-digit year-over-year growth in salaries (14.2 percent and 13.6 percent, respectively), and other cities such as Denver [7 percent] and Atlanta [10 percent] also experienced an ideal mix of growth and high salaries. These up-and-comers benefitted from the presence of key employers such as Amazon and IBM; in addition, a lower cost of living and plentiful amenities have made them increasingly attractive to technologists, even those coming from well-established tech hubs such as Silicon Valley.

Silicon Valley remains a world of high salaries — but the cost of living in the Bay Area remains extraordinarily high, which chews into that higher-than-average paycheck. And that's before we factor in issues such as grinding commutes. In Seattle, New York City (also known as "Silicon Alley"), and other well-established tech hubs, costs are similarly high, which only makes up-and-coming tech hubs more potentially attractive to technologists.

Silicon Valley is still #1 on Dice's ranking of average annual salaries (at $123,826), followed by Seattle, San Diego, Boston, Baltimore, Portland, Denver, and then New York. (And while St. Louis ranks #9, Columbus is #17.)

But the average annual tech-industry salary rose just 1.3 percent last year, according to the survey, with Dice arguing that what made salaries vary was supply and demand. They then ranked the highest-paying skills, starting with Apache Kafka (with average reported salaries of $134,557), followed by HANA (High performance ANalytic Appliance), Cloudera, and MapReduce: Newer skills don't necessarily draw higher salaries; with many older skills, the number of proficient technologists is relatively low, which means employers are willing to pay more in order to secure their services. (That's a key reason why the handful of technologists who still know their way around an ancient mainframe can score six-figure salaries from companies that haven't given up decades-old hardware....) In the case of programming languages such as Swift, which enjoyed significant year-over-year growth and high salaries, a large number of technologists might have mastered it — but the market is huge and white-hot, ensuring that compensation will only rise.
Programming

Go 1.15 Planning Will Not 'Try' Error Handling (golang.org) 40

The Go team is planning for a February release of Go 1.14, and "Per the process outlined in the Go 2, here we come! blog post, it is again the time in our development and release cycle to consider if and what language or library changes we might want to include for our next release, Go 1.15, scheduled for August of this year."
The primary goals for Go remain package and version management, better error handling support, and generics. Module support is in good shape and getting better with each day, and we are also making progress on the generics front (more on that later this year).

Our attempt seven months ago at providing a better error handling mechanism, the try proposal, met good support but also strong opposition and we decided to abandon it. In its aftermath there were many follow-up proposals, but none of them seemed convincing enough, clearly superior to the try proposal, or less likely to cause similar controversy. Thus, we have not further pursued changes to error handling for now. Perhaps some future insight will help us to improve upon the status quo.

Given that modules and generics are actively being worked on, and with error handling changes out of the way for the time being, what other changes should we pursue, if any? There are some perennial favorites such as requests for enums and immutable types, but none of those ideas are sufficiently developed yet, nor are they urgent enough to warrant a lot of attention by the Go team, especially when also considering the cost of making a language change.

After reviewing all potentially viable proposals, and more importantly, because we don't want to incrementally add new features without a long-term plan, we concluded that it is better to hold off with major changes this time. Instead we concentrate on a couple of new vet checks and a minor adjustment to the language...

We believe that none of these three proposals are controversial but there's always a chance that we missed something important. For that reason we plan to have the proposals implemented at the beginning of the Go 1.15 release cycle (at or shortly after the Go 1.14 release) so that there is plenty of time to gather experience and provide feedback. Per the proposal evaluation process, the final decision will be made at the end of the development cycle, at the beginning of May, 2020.

China

Apple Removed 805 Apps in China From 2018 To 2019 (abacusnews.com) 12

Over the course of a year, Apple took down 805 apps in mainland China by its own account. From a report: In Apple's latest transparency report accounting for the first half of 2019, the iPhone maker said it removed 288 apps from China's iOS App Store for both legal and policy violations. The Apple Transparency Report goes out twice a year and details requests received from government agencies and private parties worldwide. The report lists government requests to access information on accounts and devices, but the last two reports also include the number of apps Apple removed that period. When it comes to why those apps are removed, though, Apple is tight-lipped. The reports cite two reasons for app removals: Platform violations, which covers gambling apps (gambling is illegal in China), and legal violations, which according to Apple usually means apps with pornography (also illegal in China) and other illegal content.

[...] The total number of apps missing from the App Store because of government censorship is hard to know. GreatFire has used its tool applecensorship.com to identify 2,678 apps that aren't available inside the mainland China App Store. But this number doesn't paint the full picture. Records of missing apps are only generated when people search for them on the website. And there's no information on whether apps were taken down because of a government request, a decision from Apple or the app makers' choice. Many of the apps recorded were never listed on the mainland China App Store. But the list does provide some insight, like the fact that the 149 unavailable news apps is more than in any other country. "We know that app store removals are happening more often in China," said GreatFire's Karen Reilly. "We know that many of these apps are news sources. We know that many of these apps are VPNs and other software that everyday people use to protect their privacy."

Programming

Google Will Shut Down App Maker on January 19, 2021 (venturebeat.com) 37

Google will shut down its low-code development platform, App Maker, early next year. From a report: Google today announced it is killing off yet another service: App Maker, G Suite's low-code environment for building custom business apps. Google App Maker will be "turned down" gradually this year and officially shut down on January 19, 2021. Google cited "low usage" as an explanation for the move. If your business was using App Maker or considering moving to App Maker, you'll need to find another tool. Indeed, Google is making today's announcement not even two weeks after acquiring no-code app development platform AppSheet. Google first launched App Maker as part of an Early Adopter Program in November 2016. At the time, we described it as a service that "lets users drag and drop widgets around on a user interface that complies with Google's Material design principles" to create apps that can be "customized further with scripts, as well as HTML, CSS, JavaScript, and JQuery content." Once apps are live, usage can be monitored through Google Analytics. App Maker hit general availability for all G Suite Business, Enterprise, and Education customers in June 2018. A year and a half later, and it's already headed to the grave.
PHP

Is PHP Still a Worthwhile Language To Learn? (stitcher.io) 137

mbadolato (Slashdot reader #105,588) shares this post from Belgium-based programmer Brent Roose: It's no secret among web developers and programmers in general: PHP doesn't have the best reputation. Despite still being one of the most used languages to build web applications; over the years PHP has managed to get itself a reputation of messy codebases, inexperienced developers, insecure code, an inconsistent core library, and what not. While many of the arguments against PHP still stand today, there's also a bright side: you can write clean and maintainable, fast and reliable applications in PHP.

In this post, I want to look at this bright side of PHP development. I want to show you that, despite its many shortcomings, PHP is a worthwhile language to learn. I want you to know that the PHP 5 era is coming to an end. That, if you want to, you can write modern and clean PHP code, and leave behind much of the mess it was 10 years ago.

The article notes PHP's opt-in type system and performance-enhancing rewrites (including the ability to store compiled chunks of PHP code in memory). And it argues that PHP "is still evolving today," with a package repository averaging over 25 million downloads a day. There's also PHP web application frameworks (as well as asynchronous frameworks), so "PHP isn't just WordPress anymore."

And in keeping with the core team's yearly release cycle, PHP 8 is expected at the end of 2020, which will include a JIT compiler, "allowing PHP to enter new areas besides web development..."
Programming

JetBrains to Reimagine IntelliJ as Text Editor, Add Machine Learning (devclass.com) 41

From a report: JetBrains has added further destinations to the IntelliJ-based roadmap it sketched out last year, promising more localization, machine learning and Git integration amongst a range of other goodies for the Java IDE...

The Prague-based firm's CTO Dimitry Jemerov said users had long asked to be able to use its IDEs for "general purpose text editing". While this is possible to some degree currently, in some situations it created a temporary project file, leading to disk clutter and "other inconveniences". However, recent performance improvements mean "the possibility of using our IDEs as lightweight text editors has become more plausible, so we're now building a dedicated mode for editing non-project files. In this mode, the IDE will work more like a simple text editor." This will be faster, he promised, but the feature set will be very limited and "you'll be able to easily switch to the full project mode if you need to use features such as refactoring or debugging...

Other upcoming features include more machine learning. Jemerov said this was already being used to improve code completion, but would now be rolled out for other completion features. "We're teaching ML completion to make better use of the context for ranking completion suggestions and to generate completion variants that go beyond a single identifier (full-line completion)". That might take a while, he said, but was a "major area where we are investing our efforts."

Open Source

Framework Developer 'Ragequits' Open Source Community, Citing Negative Comments, 'Very Few Provide Help' (theregister.co.uk) 122

The maintainer of the popular Rust web framework Actix has quit the project -- though he's backed off threats to make its code private and delete its repository, instead appointing a new maintainer. "Be a maintainer of large open source project is not a fun task," he'd complained last week on GitHub. "You alway face with rude and hate, everyone knows better how to build software, nobody wants to do home work and read docs and think a bit and very few provide any help...

"You felt betrayed after you put so much effort and then to hear all this shit comments, even if you understand that that is usual internet behavior.... Nowadays supporting actix project is not fun, and be[ing] part of rust community is not fun as well."

The Register reports: Actix Web was developed by Nikolay Kim, who is also a senior software engineer at Microsoft, though the Actix project is not an official Microsoft project. Actix Web is based on Actix, a framework for Rust based on the Actor model, also developed by Kim. The web framework is important to the Rust community partly because it addresses a common use case (development web applications) and partly because of its outstanding performance. For some tests, Actix tops the Techempower benchmarks.

The project is open source and while it is popular, there has been some unhappiness among users about its use of "unsafe" code... Safe code is protected from common bugs (and more importantly, security vulnerabilities) arising from issues like variables which point to uninitialized memory, or variables which are used after the memory allocated to them has been freed, or attempting to write data to a variable which exceeds the memory allocated. Code in Rust is safe by default, but the language also supports unsafe code, which can be useful for interoperability or to improve performance.

There is extensive use of unsafe code in Actix, leading to debate about what should be fixed. Kim was not always receptive to proposed changes... Kim said that he did not ignore or delete issues arbitrarily, but only because he felt he had a better or more creative solution than the one proposed -- while also acknowledging that the "removing issue was a stupid idea." He also threatened to "make [Actix] repos private and then delete them...." Since then, matters have improved. The Github repository was restored and Kim said, "I realized, a lot of people depend on actix. And it would be unfair to just delete repos... I hope new community of developers emerge. And good luck!"

The developer news site DevClass wrote that "The apparent 'ragequit' has prompted questions about the dynamics within the open source community." Over 120 GitHub users have now signed a sympathetic letter to Nikolay from "users, contributors, and followers of your work in the Rust community," saying "We are extremely disappointed at the level of abuse directed towards you."

"Working on open source projects should be rewarding, and your work has empowered thousands of developers across the world to build web services with Rust. It's incredibly tragic for someone who has contributed so much to the community, to be made to feel so unwelcome that they feel that they have no other choice than to leave. This is not the kind of community we want."
Businesses

Support Grows For Unionizing Video Game Industry, Survey Finds (hollywoodreporter.com) 47

An anonymous reader quotes a report from The Hollywood Reporter: Ahead of the Game Developer's Conference (GDC) -- which is dedicated to the art and science of making video games and set to take place March 16-20 at the Moscone Center in San Francisco -- the results of the organization's eighth annual State of Industry report were released Friday. Surveying nearly 4,000 video game developers with the intent of highlighting industry trends and forecasts for the future of gaming, this year's report indicates an increasing interest in the games industry to unionize. This was also a major topic of conversation in 2019, amid reports of gaming professionals working extended overtime hours and tolerating poor working conditions. Among the survey participants, 54 percent said that game industry workers should unionize (a 7 percent increase from last year), 21 percent answered "maybe" and 9 percent said they weren't sure. When the same group was asked whether they thought game industry workers would unionize, only 23 percent said "yes," while 43 percent said "maybe."
Programming

Jira Software Gets Better Roadmaps (techcrunch.com) 21

Atlassian today announced an update to Jira Software, its popular project and issue-tracking tool, that brings a number of major updates to the roadmapping feature it first introduced back in 2018. From a report: Back in 2018, Atlassian also launched its rebuilt version of Jira Software, which took some of its cues from Trello, and today's release builds upon this. "When we launched that new Jira experience back in October 2018, I think we had a really good idea of what we were trying to do with it and where we were taking it," said Jake Brereton, the head of marketing for Jira Software. "And I think if you fast-forward 14 months to where we are today, we just had some really strong validation in a number of areas that are over the target and that that investment we made was worth it."

With this release then, Jira Software's roadmapping tool is getting progress bars that show you the overall status of every roadmap item and that give you a lot more information about the overall state of the project at a glance. Also new here are hierarchy levels that let you unfold the roadmap item to get more in-depth information about the stories and tasks that are part of an item. You can also now map dependencies by simply dragging and dropping items, something that was missing from the first release but that was surely high on the list for many users. Atlassian is also introducing new filters and a number of UI enhancements.

China

Huawei Postpones Its Developers Conference Over Deadly Coronavirus (cnet.com) 29

Huawei has postponed its upcoming HDC.Cloud developer conference as Chinese authorities try to control the spread of the deadly coronavirus detected in the southeastern city of Wuhan. From a report: The controversial company's event was going to take place in Shenzhen -- which lies more than 700 miles south of Wuhan -- Feb. 11-12, but it's been rescheduled to March 27-28. "Based on the prevention and control of the pneumonia epidemic situation of the new coronavirus infection, we attach great importance to the health and safety of all the participants," Huawei said in its announcement. It also asked staff to avoid traveling to Wuhan and limit contact with animals, Reuters reported, and said it set up an outbreak prevention and control team in the city.

Slashdot Top Deals