8 stories
·
0 followers

Chuck Jones’s Trick for Drawing Animal Legs

1 Share

For the past few hundred million years, the legs of vertebrate animals have evolved into many different forms and shapes. But for many animals, there’s an underlying similarity as well. In his book Chuck Amuck, legendary animator Chuck Jones used a simple technique to help visualize how to accurately draw the feet and legs of various animals: he drew shoes and socks on them.

Chuck Jones Animal Legs

Using a Chuck Taylor-style shoe, Jones’s intuitive drawings show where each animal’s ankle and knee are simply by the placement of circular “All-Star” patch on the shoe and the height of the socks just below the knee. These are keen and illuminating anatomical observations that would have made Leonardo da Vinci proud.

Ok, that’s footwear all sorted. But how should a dog wear pants?

Dog Wore Pants

Or a chicken?

Chicken Wore Pants

Or an AT-AT?

Atat Wore Pants

I wish Jones was still around to settle this.

Tags: animation   Chuck Jones   how to
Read the whole story
eaubin
1957 days ago
reply
Share this story
Delete

Do you want a shed or a castle?

1 Share

I have seen the error of my (programming) ways. Let me explain…

To me, programming in OCaml is like trying to build a house from just breeze blocks. It takes a long time to build even a simple shed. However. when its done, its really quite solid.

To me, programming in Go is like building a house from an array of complex pre-build components. In the blink of an eye, you have an amazing castle, complete with turrets and ornate window frames.

You open the door to your beautiful new castle and it all fails down. Each time you rebuild one part, another falls down.

You are full of regrets as you sleep in the wreckage of your fallen castle and wish for a solid shed.

Another fallen castle – rod collier [CC BY-SA 2.0 (http://creativecommons.org/licenses/by-sa/2.0)], via Wikimedia Commons

Yours truly,

Someone fighting to hold up a fallen castle

EDIT: here’s  some more example of what a falling castle looks like

Screen Shot 2016-04-28 at 14.46.46

Screen Shot 2016-04-28 at 14.52.34

Read the whole story
eaubin
2929 days ago
reply
Share this story
Delete

Why is virt-builder written in OCaml?

1 Share

Docker is written in Go. virt-builder is written in OCaml. Why? (Or as someone at work asked me — apparently seriously — why did you write it in a language which only you can use?)

Virt-builder is a fairly thin wrapper around libguestfs and libguestfs has bindings for a dozen languages, and I’m pretty handy in most programming languages, so it could have been done in Python or C or even Go. In this case there are reasons why OCaml is a much better choice:

  • It’s a language I’m familiar with and happy programming in. Never underestimate how much that matters.
  • OCaml is strongly typed, helping to eliminate many errors. If it had been written in Python we’d be running into bugs at customer sites that could have been eliminated by the compiler before anything shipped. That doesn’t mean virt-builder is bug free, but if the compiler can help to remove a bug, why not have the compiler do that?
  • Virt-builder has to be fast, and OCaml is fast. Python is fucking slow.
  • I had some C code for doing parallel xzcat and with OCaml I can just link the C code and the OCaml code together directly into a single native binary. Literally you just mix C object files and OCaml object files together on the linker command line. Doing this in, say, Perl/Python/Ruby would be far more hassle. We would have ended up with either a slow interpreted implementation, or having to ship a separate .so file and have the virt-builder program find it and dynamically load it. Ugh.
  • There was a little bit of common code used by another utility called virt-sysprep which started out as a shell script but is now also written in OCaml. Virt-sysprep regularly gets outside contributions, despite being written in OCaml. This is not a major thing, and I could have written the converted that small amount of common code in C to get around this, but every little helps.
code to C, but it helps a little.

Is OCaml a language that only I can understand? Judge for yourself by looking at the source code. I think if you cannot understand that enough to at least make small changes, you should hand in your programmer’s card at the door.

Edit: Hacker News discussion of this article.



Read the whole story
eaubin
3828 days ago
reply
Share this story
Delete

Functional

7 Comments and 22 Shares
Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics.
Read the whole story
eaubin
3873 days ago
reply
Share this story
Delete
7 public comments
brico
3866 days ago
reply
//
Brooklyn, NY
icosahedron
3873 days ago
reply
Flexibility and power with intuitive clarity was never so hilarious (alt text)
Pacific Northwest
elsaburo
3869 days ago
Weird
lucasbfr
3873 days ago
reply
"Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics" #xkcd
Paris, France
emdeesee
3874 days ago
reply
I'd type a smiley here, but that would be a mismatched parenthesis.
Sherman, TX
petrilli
3874 days ago
reply
To understand recursion, you first need to understand recursion.
Arlington, VA
euser
3874 days ago
reply
What's recursion? - You first need to understand recursion.

It's so beautiful because it's literally perfect. There is no "outside" recursion. Recursion concludes a universe.
Berlin
growler
3874 days ago
reply
Alt text: "Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics." Hilarious :)

App Ops: Android's Hidden Permission Manager

2 Shares
App Ops is a hidden system application in Android 4.3 that lets you manage the permissions used by of your apps. It was found by Android Police and there's a Google Play app that launches the permission manager (no root required).

I tested the App Ops Starter on my Nexus 7 (2012) and it works. There are 4 permission groups: location, personal (contacts, calendar, call logs), messaging (read/write/send SMS) and device (notifications, camera). Each tab tabs shows a list of applications sorted by the time when they last used one of the permissions. App Ops also shows the permissions used by each app.




You can disable permissions for each app you've installed and even for system apps. Sometimes disabling permissions didn't have any effect, other times it worked. For example, I disabled the "read clipboard" permission of the Google+ app and the application no longer suggested the link I copied to the clipboard. I disabled the "location" permission of Google Maps, but the app could still detect my location (I had to disable the Play Services "location" permission to prevent Google Maps from finding my location, but this affects other apps). location. For now, Android apps aren't optimized for the permission manager and disabling permissions could have unexpected effects: the apps might crash.

Android's permission system encourages developers to add as many permissions as possible, even if they don't currently need them. Maybe they'll use them in the future, so it's better to add them and make sure that the app updates automatically. Android's permissions are all-or-nothing, few bother to read them, even fewer understand them. Google should have done a better job here: encourage developers to use permissions sparingly, allow users to revoke permissions, add opt-in permissions like in iOS. Maybe App Ops will fix some of these issues this when it will be officially available, probably in Android 5.0.
Read the whole story
eaubin
3927 days ago
reply
Share this story
Delete

Now an ISP, Google not so hot on net neutrality

1 Comment and 3 Shares
Ryan Singel, at Wired:
In a dramatic about-face on a key internet issue yesterday, Google told the FCC that the network neutrality rules Google once championed don’t give citizens the right to run servers on their home broadband connections, and that the Google Fiber network is perfectly within its rights to prohibit customers from attaching the legal devices of their choice to its network.
    


Read the whole story
eaubin
3932 days ago
reply
Share this story
Delete
1 public comment
satadru
3932 days ago
reply
ugh
New York, NY
DMack
3932 days ago
haha
cinebot
3932 days ago
^ whatever happened to do no evil
satadru
3932 days ago
^ "Lawyers"
DMack
3932 days ago
Google sucks in 2013 for the same reason hiphop sucks in '96
cinebot
3932 days ago
(lol. this last semester at biz school, i gave two presentations on google, and told people to OPEN YOUR AIYES)
Next Page of Stories