Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Submission + - A reverse-engineering journey ( 2

ttsiod writes: My old tablet died, and I bought a new one... Just like it's predecessor, I wanted to run a Debian chroot inside it — that would allow me to apt-get install and run things like Privoxy, SSH SOCKS / VPN tunnels, Flask mini-servers, etc; and in general allow me to stay in control.

But there was no open-source way to do this... and I could never trust "one-click roots" that communicate with servers in China...

It took me weeks to reverse engineer my tablet — and finally succeed in becoming root. The journey was quite interesting, and included both HW and SW tinkering. I learned a lot while doing it — and wanted to share the experience with my fellow Slashdotters...

I am sure you guys will enjoy reading this :-) Cheers!

Comment Turned broken NAS into fully functional Debian srv (Score 1) 251

Blogged about it 2 years ago:

The server...

  • - costs me, energy-wise, only about 3-3.5W
  • - is always accessible even though I have a dynamic IP (via free DNS providers)
  • - has a Lighttpd web server so I can share things with the world
  • - has an Exim mail server, so I can receive mail over (E)SMTP, store it in my house, and read it over SSH/mutt
  • - can be SSH-ed into, which allows me to Wake-On-LAN my main desktop, whenever I need access to it
  • r- uns long running web downloads (e.g. wget/rtorrent) from within screen-ed sessions, and shares them over Samba to my house-bound devices (e.g. watch movies from my Android tablet)
  • - SSH is exposed over sslh in my HTTPS port (bypassing several firewall limitations in various places - cough, work, cough) etc.

It also required soldering to access the board's serial port - all in all, very useful tinkering :-)

Comment A solver and a simulation of the solution, in Pyth (Score 1) 167

Based on @ShanghaiBill's solution, I wrote a solver and simulation in Python (that also fixes ShanghaiBill's buggy pinning of "him.rock" to 0.5 - the player could in theory, choose to play rock at more than 50% probability). Use Pypy for speedy execution - I uploaded the code to GitHub:

Comment My Speccy was the gateway to a life of IT... (Score 3, Interesting) 212

My Speccy was the gateway to a life of IT (I ended up becoming a software engineer, and part-owner of a startup). Will always feel grateful to the designers of the 8-bit micros that started all this...

Oh, and I still remember my first hack - dissassembling JetPac and finding the POKE that gave me infinite lives. Now *that* was fun :-)


Submission + - AI - Playing Score4 (functional/imperative style) (

ttsiod writes: "... I always try to find ways to "lure" my nephews and nieces towards science and engineering, so after a number of Score4 rounds with my 7 year-old niece, I told Theodora that by being a programmer, her uncle could create something "magical" on her laptop: a program that would play Score4 so well, that it would beat her, me, and every other human she knows.

She smiled and said "I'd like to see that, uncle!"... and that's when this story started..."

Comment Re:Answers and Suggestions and Further Questions (Score 1) 249

HeapCheck, Electric fence, Dmalloc and all memory debuggers in general, are basically replacing the allocation functions in the executable with their own version.

The "extra" stuff that the patent proposes, is a BOOLEAN flag, that HeapCheck functions would check upon entry (at runtime) - therefore allowing the developer to control (ON/OFF) the machinery at runtime. For example, the substitute allocation function can check a registry setting, to decide whether the functionality is on or off, and a separate utility GUI can toggle this registry setting on/off (I believe Microsoft's PageHeap has something exactly like that).

So tell me, do you REALLY consider this addendum - a boolean flag, for pitty's sake - enough "innovation", to warrant the term "invention"? Patentable "invention"?

Comment Re:ludicrous (Score 1) 249

Er... let me get this straight:

You are actually arguing... that adding a boolean flag, controlled at runtime - a BOOLEAN flag! - constitutes enough... innovation, to make this... a completely new invention, worthy of patenting?

That is, if the allocation function checks e.g. a registry setting upon entry, and a GUI application simply sets this registry entry to True/False.... then suddenly the contribution is so enormous, to warrant the label of "new invention"?

Really? Are you serious?

Comment Re:They aren't claiming your invention. (Score 3, Informative) 249

I am a coder, not a lawyer - and from reading the patent's claims, I can see only one thing that was not in HeapCheck, but which DID exist in Electric Fence: the ability to enable heap checks at runtime, without recompilation. Electric Fence allowed one to do that via LD_PRELOAD, so I am sorry, but I stand by what I said - I can see nothing in there that didn't exist in either Efence or my HeapCheck.

Comment Re:Answers and Suggestions and Further Questions (Score 5, Informative) 249

I only take an issue with your last paragraph - I certainly didn't leave the code in a graveyard, I released it with an open source license, so that anyone could use it and make his life a bit better. The fact that 10 years later, someone else has now patented the ideas in Electric Fence and HeapCheck, and can now sue me and everyone else using it, is what got me mad (hence the "trolls" comment).

Comment Re:So, there's no new art? (Score 1) 4

The method, invented by either Bruce Perens or someone before him - we are into 1993 or earlier here - and implemented by me (in 2001, under Win32) and I am sure by many others, is about placing an inaccessible page (4K) right before or after your just malloc-ed region. This way, if the user code reads or writes beyond the boundary, an exception is raised. In the case of my implementation, the "before" or "after" was a compile-time switch. In the case of Bruce Peren's Efence, it was an environment variable. Having that in mind, can anyone see any improvements in any of the claims?

Submission + - My GPL code has been... patented! 4

ttsiod writes: Back in 2001, I coded HeapCheck, a GPL library for Windows (inspired by ElectricFence) that detected invalid read/write accesses on any heap allocations at runtime — thus greatly helping my debugging sessions. I published it on my site, and got a few users who were kind enough to thank me — a Serbian programmer even sent me 250$ as a thank you (I still have his mails). After a few years, Microsoft included very similar technology in the operating system itself, calling it PageHeap. I had more or less forgotten these stuff, since for the last 7 years I've been coding for UNIX/Linux, where valgrind superseeded Efence/dmalloc/etc. Imagine my surprise, when yesterday, Googling for references to my site, I found out that the technology I implemented, of runtime detection of invalid heap accesses, has been patented in the States, and to add insult to injury, even mentions my site (via a non-working link to an old version of my page) in the patent references! After the necessary "WTFs" and "bloody hells" I thought this merrits (a) a Slashdotting, and (b) a set of honest questions: what should I do about this? I am not an American citizen, but the "inventors" of this technology (see their names in the top of the patent) have apparently succeeded in passing this ludicrous patent in the States. If my code doesn't count as prior art, Bruce Perens's Efence (which I clearly state my code was inspired from) is at least 12 years prior! Suggestions/cursing patent trolls most welcome.

Comment Re:Verified with my SW-only Javascript 3D renderer (Score 1) 98

I am a newbie, Javascript-wise - so if this is true, it was purely coincidental :-)

It's just plain math and a "plotpixel" function... so I'd be happy to know what to change to make it run faster in other browsers - any suggestions?

(the good thing about Javascript - the code is open-source by nature)

Comment Verified with my SW-only Javascript 3D renderer (Score 3, Interesting) 98

Verified with my SW-only Javascript 3D renderer, try it on your own here, or just look at the submitted benchark results:

On my aging PentiumD/2.8GHz:

  • 13 frames per second with Firefox 3.6
  • 18 frames per second with Chrome 7
  • 27 frames per second with Opera 10.6
  • 44 frames per second with Firefox 4.0beta

Slashdot Top Deals

A list is only as strong as its weakest link. -- Don Knuth