Beginners, and people working on more advanced books, can take much, much, much longer.
9,174 karma · joined August 4, 2010
My company is called Turkey Sandwich Industries, at turkeysandwichindustries.com.
I'm also the Editor-in-Chief of Standard Ebooks, at standardebooks.org. Standard Ebooks is a volunteer-driven project dedicated to producing commercial-quality public domain ebooks edited to strict typography and coding standards for free and libre distribution.
My website is at alexcabal.com.
Beginners, and people working on more advanced books, can take much, much, much longer.
This is a common practice that editors and publishers have quietly engaged in for centuries. For example, today you are not reading Shakespeare in the way it was spelled in its first printing.
Personally I think it's important to have one person in charge who is able to approve of the quality of all the project's output; for now, at SE, that person is me and I'm only an expert in English.
Each renderer differs in capabilities, and most are stuck in a subset of early-2000s capabilities, so designing an ebook is very much like designing for the 90s era web. Lots of hacks are required to get the same file to look good on many different renderers, and achieving that is one of the goals of Standard Ebooks.
I think Kindle's renderer hasn't changed significantly for many years, and it had always been pretty bad. I always say that Kindle seems to have been created by people who hate books.
The best renderer around is iBooks on an iPad, which as far as I can tell uses an up-to-date Webkit.
When using their Kepub format, Kobo has the best eink renderer on the market. I believe you can also install Koreader on them.
The big difference between now and the turn of the 20th century is that back then, the law had little to no tolerance for public vagrancy. Jack Black describes dodging sheriffs, being locked up for the crimes of vagrancy and burglary, spending long stretches of time in prison and emerging completely unreformed, immediately returning to his life of encampment and crime. Even though ultimately his behavior didn't change, the law made him spend significant lengths of time removed from society.
I don't know what the lesson is here, if there is one. While a century ago their approach also didn't solve the problem, it did result in more livable cities for everyone else in the meantime. Perhaps one takeaway here is that it the problem isn't truly "solvable" given how we have structured our markets-based society.
[1] https://standardebooks.org/ebooks/jack-black/you-cant-win
Very often for a typical CRUD app, I as the caller don't really care how we got the `LastForumsPost`. It's just an object mapping that comes from some data source like the database. And if I do care, I could get it outside of the object, and set it myself.
Putting it behind a getter doesn't "hide" control flow. It just makes for a cleaner interface from the caller's perspective.
FWIW, I almost never use setters. Getters are are much more useful, especially for lazy-loading basic properties.
It makes for a cleaner OOP-y interface in which the caller only cares about actually exposed properties and not methods to get and manipulate hidden properties.
IMHO using properties directly is a much more natural way to talk about objects, than having a bunch of methods to get properties. Getters and setters also help ensure that methods are only for changing an object's state, not getting an object's state. For example:
class User{
public ForumsPost $LastForumsPost{
get{
if(!isset($this->LastForumsPost)){
$this->LastForumsPost = <get from database...>;
}
// Return the cached property so we don't keep hitting the database.
return $this->LastForumsPost;
}
}
}
print($user->LastForumsPost->Title);
print($user->LastForumsPost->PostId);
// instead of...
print(($user->GetLastForumsPost())->Title);
print(($user->GetLastForumsPost())->PostId);In my projects I sometimes emulate getters and setters using `__get()` and `__set()` but that's heavy-handed and requires lots of PHPDoc annotation for type checking. Property hooks look awesome!
Kindle, the reading device with by far the largest market share, is basically the IE6 of ereaders - too big to ignore, and at the same time dragging down the entire ebook ecosystem with its crappy renderer. Amazon has shown little interest in improving it for over a decade now, while simultaneously fragmenting its own ecosystem with a variety of different proprietary formats that support different CSS and features.
ADE, while less common in new devices, is still very common in much older devices - B&N's eink Nooks were based on ADE at least as late as a few years ago. (Perhaps they still are?) ADE is closer to IE5 in terms of CSS support!
At Standard Ebooks we're often hamstrung in our attempts to make beautiful ebooks by these big players refusing to improve their renderers. We're forced to dumb down our CSS and use outdated techniques (like occasionally having to use tables for layout!) because ebook renderers are so bad.
iBooks is the top tier renderer, because as far as I can tell it's basically a wrapper for an up-to-date Webkit; next is Kobo - also Webkit-based - along with other Webkit-based indie apps. The rest of the big players are far, far, far distant.
(The name of the book is South!, the subtitle is "The Endurance Expedition.")
Instead of being forced to drive everywhere for the most basic possible human needs - like getting groceries, going to the doctor, or dropping kids off at school - as is the case in 90% of America - what if you could walk to those places instead? You would get exercise as part of your every day life, with no extra effort!
What if instead of corn syrup being so heavily subsidized, we could use more filling sweeteners in a lower amount instead? What if people lived closer to agriculture, instead of in faraway suburban tract housing only accessible by car, so they had easier access to fresh meat and vegetables, instead of ultraprocessed package food?
These dreams are not "diet and exercise", they are a fundamental reshaping of American lifestyle that would directly lead to weight loss. We know this, because America used to look like this before, say, 1940. In old photos you see people in huge crowds in streets as they walked to their everyday errands, and menus and recipes of the era are mostly minimally processed food that is mostly local. Americans of the past were not overweight, because the way society arranged its physical existence didn't permit it!
It was suggested to me to read the intro first, then skip the poem and read the endnotes start to finish, then to go back and read the poem. The index is part of the fiction and must also be read.
I think the keys to really enjoying Pale Fire are 1) to realize that while the subject matter is ostensibly serious, Kinbote is really a comic figure, and you're meant to be laughing a lot of the time; and 2) the great puzzles to unravel are who is John Shade, who is Charles Kinbote, are any of them even real, and who wrote the poem? The book is so beautifully written that it can be argued that none of those questions have definitive answers - and thinking about them, and how Nabokov threads clues and possibilities throughout the novel, without any of them seeming to be contradictory, is the pleasure.