Profile

Cover photo
Juarez Bochi
Worked at globo.com
Attended UFRGS
Lives in Rio de Janeiro
745 followers|21,421 views
AboutPostsPhotosVideos

Stream

Juarez Bochi

Shared publicly  - 
 
That's me
3
Add a comment...

Juarez Bochi

Shared publicly  - 
 
Good looking Python code with LaTex
1
Add a comment...

Juarez Bochi

Shared publicly  - 
 
The worst DRM ever
 
I bought a digital video download today that required a video player from Leaping Brain. As usual, the proprietary player wasn't great and to transfer it to my iPhone I'd need another proprietary player. Ugh. But I browsed around and found that the video had been downloaded into a hidden directory as a bunch of .mov files. Great, except none of the files would play.

It turned out the actual player, launched from their compiled app, was a Python wrapper around some VLC libraries. Nothing funny going on, as far as I could tell, but when I tried to launch the player directly, nothing happened. The compiled app was modifying the .mov files right before they were loaded into the player, and then reverting the file on disk. According to http://leapingbrain.com/mod-machine/faq/:

 "We apply our BrainTrust™ proprietary video encryption to your movies before we upload them to our servers. If someone ever was able to gain access to your content, the files would be useless and unplayable, because they are stored in a scrambled, encrypted format. Once downloaded to the user’s hard drive, the files are still encrypted and only readable via the MOD Machine Player by a legitimate owner. We are not aware of a better DRM scheme than ours. Where Windows Media DRM is easily crackable, and doesn’t run on Macs, BrainTrust™ works great on Windows 8, Vista, Windows XP and Mac, and is virtually uncrackable."

Virtually uncrackable? Well, since they load the file from a Python script, it's easy to make a copy of the "decrypted" file before it's reverted. Having done so, I was curious to see the encryption scheme. By comparing the binary files, I discovered the "proprietary video encryption" algorithm: for the first 15kB, each 1kB block has its initial bytes xor'd with the string "RANDOM_STRING". That's the "scrambled, encrypted format" that leaves these files "useless and unplayable".
2
Add a comment...

Juarez Bochi

Shared publicly  - 
 
 
There are a lot of wacky and psychedelic CA rules out there but SmoothLife by Stephan Rafler is different. Designed as a continuous version of Conway's Game of Life (using floating point numbers instead of integers), it supports a glider that can travel in any direction, as well as rotating pairs and strange elastic rope things. Don't miss the nice glider collision at around 3:12. Technical details can be found on the youtube page: SmoothLifeL
1
Add a comment...
Have him in circles
745 people
Jeferson Vieira Flores's profile photo

Juarez Bochi

Shared publicly  - 
1
Juarez Bochi's profile photoErickson Alex Silvério Lima's profile photo
3 comments
 
Eu imagino por isso estou perguntando.
 ·  Translate
Add a comment...

Juarez Bochi

Shared publicly  - 
1
Add a comment...

Juarez Bochi

Shared publicly  - 
 
 
A few years ago I saw this page: http://www.csis.pace.edu/~bergin/patterns/ppoop.html 

Local discussion focused on figuring out whether this was a joke or not. For a while, we felt it had to be even though we knew it wasn't. Today I'm willing to admit the authors believe what is written there. They are sincere.

But... I'd call myself a hacker, at least in their terminology, yet my solution isn't there. Just search a small table! No objects required. Trivial design, easy to extend, and cleaner than anything they present. Their "hacker solution" is clumsy and verbose. Everything else on this page seems either crazy or willfully obtuse. The lesson drawn at the end feels like misguided epistemology, not technological insight.

It has become clear that OO zealots are afraid of data. They prefer statements or constructors to initialized tables. They won't write table-driven tests. Why is this? What mindset makes a multilevel type hierarchy with layered abstractions better than searching a three-line table? I once heard someone say he felt his job was to remove all while loops from everyone's code, replacing them with object stuff. Wat?

But there's good news. The era of hierarchy-driven, keyword-heavy, colored-ribbons-in-your-textook orthodoxy seems past its peak. More people are talking about composition being a better design principle than inheritance. And there are even some willing to point at the naked emperor; see http://prog21.dadgum.com/156.html for example. There are others. Or perhaps it's just that the old guard is reasserting itself.

Object-oriented programming, whose essence is nothing more than programming using data with associated behaviors, is a powerful idea. It truly is. But it's not always the best idea. And it is not well served by the epistemology heaped upon it.

Sometimes data is just data and functions are just functions.
1
Add a comment...

Juarez Bochi

Shared publicly  - 
 
If you want to understand branch prediction, read this!
3
Add a comment...
People
Have him in circles
745 people
Jeferson Vieira Flores's profile photo
Education
  • UFRGS
    2000
Basic Information
Gender
Male
Work
Employment
  • globo.com
    Software Engineer
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Rio de Janeiro
Links
Other profiles
Contributor to