John Butman

John Butman (1951 – March 23, 2020) is an American writer. He has written several books under his own name and collaborated on more than thirty other titles, including New York Times and Boston Globe bestsellers and Economist award winners.[1][2]

Background

Butman graduated with a degree in film direction from New York University's Tisch School of the Arts in 1972. He founded the content development firm Idea Platforms, Inc. in 1989, which advises and collaborates with leading thinkers, strategists, and content experts in the development of ideas, creation of books, and building of idea platforms. He is an affiliated literary agent with the Boston-based firm Kneerim & Williams. He lives in Portland, ME.[3]

Bibliography

  • New World, Inc: The Making of America by England's Merchant Adventurers (Little, Brown, 2018) ISBN 978-0316307888
  • Breaking Out: How To Build Influence in a World of Competing Ideas (Harvard Business Review Press, 2013) ISBN 978-1422172803[4]
  • Townie (Permanent Press, 2002) ISBN 978-1579620806[5]
  • Juran: A Lifetime of Influence (John Wiley & Sons, 1997) ISBN 978-0-47117-210-9[6]
  • The Book That's Sweeping America! Or, Why I Love Business! (John Wiley & Sons, Inc., 1997) ISBN 978-0471173984[7]
gollark: I can write some code for this if desisred.
gollark: Surely you can just pull a particular tag of the container.
gollark: I can come up with a thing to transmit ubqmachine™ details to osmarks.net or whatever which people can embed in their code.
gollark: It's an x86-64 system using debian or something.
gollark: > `import hashlib`Hashlib is still important!> `for entry, ubq323 in {**globals(), **__builtins__, **sys.__dict__, **locals(), CONSTANT: Entry()}.items():`Iterate over a bunch of things. I think only the builtins and globals are actually used.The stuff under here using `blake2s` stuff is actually written to be ridiculously unportable, to hinder analysis. This caused issues when trying to run it, so I had to hackily patch in the `/local` thing a few minutes before the deadline.> `for PyObject in gc.get_objects():`When I found out that you could iterate over all objects ever, this had to be incorporated somehow. This actually just looks for some random `os` function, and when it finds it loads the obfuscated code.> `F, G, H, I = typing(lookup[7]), typing(lookup[8]), __import__("functools"), lambda h, i, *a: F(G(h, i))`This is just a convoluted way to define `enumerate(range))` in one nice function.> `print(len(lookup), lookup[3], typing(lookup[3])) #`This is what actually loads the obfuscated stuff. I think.> `class int(typing(lookup[0])):`Here we subclass `complex`. `complex` is used for 2D coordinates within the thing, so I added some helper methods, such as `__iter__`, allowing unpacking of complex numbers into real and imaginary parts, `abs`, which generates a complex number a+ai, and `ℝ`, which provvides the floored real parts of two things.> `class Mаtrix:`This is where the magic happens. It actually uses unicode homoglyphs again, for purposes.> `self = typing("dab7d4733079c8be454e64192ce9d20a91571da25fc443249fc0be859b227e5d")`> `rows = gc`I forgot what exactly the `typing` call is looking up, but these aren't used for anything but making the fake type annotations work.> `def __init__(rows: self, self: rows):`This slightly nonidiomatic function simply initializes the matrix's internals from the 2D array used for inputs.> `if 1 > (typing(lookup[1]) in dir(self)):`A convoluted way to get whether something has `__iter__` or not.

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.