I was perusing Slashdot a little while ago, and I came upon the post “Windows 8 Won’t Support Plug-Ins; the End of Flash?”. What I found funny, besides the possibly premature jumping of conclusions regarding Flash’s demise, was one of the comments. I want to post it verbatim, as it is such a great comment.
This comes from Slashdot user killmenow.
Adobe Flash: I’m not dead.
The Internet: ‘Ere, he says he’s not dead.
Google: Yes he is.
Flash: I’m not.
The Internet: He isn’t.
Opera Software: Well, he will be soon, he’s very ill.
Flash: I’m getting better.
Mozilla: No you’re not, you’ll be stone dead in a moment.
The Internet: Well, I can’t take him like that. It’s against regulations.
Flash: I don’t want to go on the cart.
Apple: Oh, don’t be such a baby.
The Internet: I can’t take him.
Flash: I feel fine.
W3C: Oh, do us a favor.
The Internet: I can’t.
Google: Well, can you hang around for a couple of minutes? He won’t be long.
The Internet: I promised I’d be at the Robinsons’. They’ve lost nine today.
Apple: Well, when’s your next round?
The Internet: Thursday.
Flash: I think I’ll go for a walk.
Mozilla: You’re not fooling anyone, you know. Isn’t there anything you could do?
Flash: I feel happy. I feel happy.
[Microsoft glances up and down the street furtively, then silences Flash with his a whack of his club]
W3C: Ah, thank you very much.
The Internet: See you on Thursday.
That is fantastic Monty Python quoting/paraphrasing, if you ask me.
I am officially jumping on the HTML5 bandwagon — I know I was always a strong proponent of XHTML, but I see great potential here. I am currently reviewing HTML5: Up and Running (O’Reilly) by Mark Pilgrim, and my mind is filling up with ideas for what I can do with it. Especially the <canvas> element, oh my!
But I figured I should learn more about all of this new stuff, especially since I have reentered the programming world after an almost three year hiatus. So I am also taking a free HTML5 Mobile course from @oreillymedia and @creativeLIVE starting October 5, 2010 that runs ten weeks (until December 7, 2010). Check out the course at http://training.oreilly.com/html5mobile/.
The Web is moving ever faster towards sites that give users what they want, not when they load or refresh pages, but rather in real time. Understanding how this works and how to leverage it on your own site so that it is useful to the user is important knowledge any developer should have. In his book, Building the Realtime User Experience, Ted Roden does just that.
Building the Realtime User Experience breaks down the technologies that make the most sense for a developer to deliver to the user in realtime such as syndication and instant messaging, for instance. One thing the book does that I appreciate is it presents the examples found throughout using different languages, applying the most practical language for a give scenario or toolkit. Doing this does not make understanding the examples very difficult, however, and any developer with reasonable coding skills should be able to follow along in any language without difficulty.
The first chapter gives an introduction into what “realtime” means in terms of the Web and development and lays out the languages the examples will use. From Chapter 2 on, the book jumps right into the different technologies that present well in a realtime format starting with syndication. Roden focuses on two technologies for syndication, Simple Update Protocol (SUP) and PubSubHubbub, giving each protocol pretty much equal treatment, leaving it for the reader to decide which protocol to implement. Chapter 3 discusses how to implement widgets that will display realtime on a web page, using Twitter and FriendFeed as examples. What was of more use was the discussion in Chapter 4 on server-side “push” technologies, and the transition into Chapter 5, which introduces the reader to Tornado – an excellent chapter that shows through example how to get Tornado running and in use on a site.
The next three chapters deal with chat, instant messaging, and SMS respectively. In each chapter, Roden gives examples on how to build an application around these technologies, which a web environment can then utilize. The chat application built throughout Chapter 6 is quite robust, as is the instant messaging client/server created in Chapter 7. Chapter 8 then extends the instant messaging service by integrating SMS into it.
I found Chapter 9 to be an interesting chapter, but it differs from the rest of the book in that it focuses on what a developer can do with analytics to view a site from an administrative point of view in realtime, instead of focusing on delivering something realtime to the end user. The examples yielded some interesting concepts and left me considering all of the possibilities for back-end development that I more often than not neglect or even disregard in my own development. Of all the chapters in the book, I think this one is the one I am most thankful Roden took the time to write. Roden finishes the book with a “Putting It All Together” chapter that takes the different applications built throughout the preceding chapters and mashes them together into a realtime game that could be pretty fun with a group of friends.
Overall, Building the Realtime User Experience is a terrific introduction into the realtime Web, and shows the reader just some of the technologies that may work well on a site. The examples are thorough and yield robust applications that are tweakable and integrate into existing sites. I would recommend this book to anyone interested in developing applications or widgets for their site that work in a realtime manner.
***** (5 stars)
Today’s Web developer knows that the speed of one’s site is an important measure to its overall success, and Steve Souders’ previous book, High Performance Web Sites (O’Reilly), laid out what seemed to be every way to achieve good performance gains without the sacrifice of functionality or aesthetics. When I began reading Souders’ Even Faster Web Sites, I therefore wondered how he could possibly demonstrate fresh ways to achieve performance gains without regurgitating the content of his previous book. What I discovered as I read Even Faster Web Sites was it presented all new best practices for making your web sites “leaner and meaner” without repeating the content of his last book.
Souder finished this book with an Appendix on performance tools that can be used to help in the improvement of a web site, which I found to be immensely helpful. While many tools he listed are well known to developers, there are some I was unaware of and began making use of immediately on my own sites.
Even Faster Web Sites is an excellent follow-up to High Performance Web Sites, giving new best practices for making your web sites even faster. As I see it, even hundredths of a second begin to add up when you put all of these techniques together, and most of the techniques presented in this book are practical for any web site being developed. I would recommend this book to any developer looking for ways to improve the performance of his web site, as Souder has certainly demonstrated his knowledge and expertise on improving the speed of a site.
***** (5 stars)
I have been doing a lot of thinking as to the value of purchasing plants/trees on my own for my farm instead of waiting for friends to give them to me as gifts. This led, inevitability, to wondering how profitable each type of plant/tree really was, so I decided to do a little calculating to find out.
I started with the basic knowledge of how much a plant/tree costs, how much a harvest is worth, and the fact that an initial harvest is six days after planting followed by a potential harvest every three days thereafter. The formula for calculating the break-even days for any given plant/tree is fairly simple – take the cost to buy and subtract the harvest price to give you a starting point six days out, and then divide this by the harvest price to get the number of harvests to break even. This number should be multiplied by three (the days per harvest) to give you the number of days (plus our initial value of six) needed to break even on the plant. Simple enough, right? To see this in action:
Apple trees cost $500 to buy, and have a harvest price of $58, so 6 + (((500 – 58) / 74) * 3) = 28.9 – basically 29 days to break even with the purchase of an apple tree. It becomes profitably at the next harvest (one day later), so round up to the next multiple of three to get the days to profitability. In this case, the days to profitability of an apple tree are 30 (given that you cannot harvest a tree early.)
Since I like tables and graphs, here is a table with the calculated days to profit for each of the available plant/tree types in myFarm. Note that Christmas trees become profitable on their first harvest (after six days) simply because you cannot purchase them as they are always gifts.
|Plant||Cost to Buy||Harvest Price||Days to Profit||Calculation|
|Christmas Tree||n/a||$220.00||6||* profit at first harvest|
|Orange Tree||$500.00||$74.00||23.3 (24)||(((500 – 74) / 74) * 3) + 6|
|Pear Tree||$500.00||$68.00||25.1 (27)||(((500 – 68) / 68) * 3) + 6|
|Plum Tree||$650.00||$86.00||25.7 (27)||(((650 – 86) / 86) * 3) + 6|
|Banana Tree||$550.00||$69.00||26.9 (27)||(((550 – 69) / 69) * 3) + 6|
|Apple Tree||$500.00||$58.00||28.9 (30)||(((500 – 58) / 58) * 3) + 6|
|Peach Tree||$700.00||$82.00||28.9 (30)||(((700 – 82) / 82) * 3) + 6|
|Cherry Tree||$800.00||$84.00||31.6 (33)||(((800 – 84) / 84) * 3) + 6|
|Mango Tree||$900.00||$77.00||38.1 (39)||(((900 – 77) / 77) * 3) + 6|
|Coconut Tree||$1,100.00||$88.00||40.5 (42)||(((1100 – 88) / 88) * 3) + 6|
This is a good table of data, but what is more important to long-term growth of your myFarm income is what plants are good to invest in. Remember, this is strictly speaking in terms of purchasing the plants/trees yourself; if the tree is a gift, refer to my plant/tree table in my previous post on myFarm. Ironically enough, after one year of harvesting from planting, the value of the plants/trees almost follows my original table of worth. For one year, in order from greatest value to least, are Plum, Coconut, Cherry, Peach, Orange, Mango, Banana, Pear, and Apple. The differences are the Plum and Coconut tree is reversed as is the Orange and Mango. If you kept the plants/trees for longer periods of time, this sorts itself out.
This final table shows the worth of trees at different intervals to the first year. This should help you determine the profitability of a plant/tree for shorter-term interests.
|Plant||First 100 Days||Harvest Net||First 200 Days||Harvest Net||1 Year||Harvest Net|
|Pear Tree||25||$1,700.00||58||$3,944.00||113||$7,684.00||Apple Tree||24||$1,392.00||57||$3,306.00||112||$6,496.00|
After all this, I think I will stick with hoping my friends send me plants/trees as gifts.
I know this information has been posted in other places, but it is not necessarily easy to find all of this information in one place with a Google search. The myFarm application on Facebook is an addictive little app, and this little guide should help others who are looking to make the most of their farming experience.
First, I want to discuss crops, which is a hot debate topic amongst the players of myFarm. The following tables shows the available crops, and the prices associated with them.
|Crop||Seed Cost||Prod.||Sell Price Per||Plow Cost||Harvest Days||Gross Sell Price||Net Sell Price||Net Price For 1 Harvest Day|
The table indicates that for single day harvest investment potential, tomatoes are the way to go. I like to plant as many tomatoes as possible, with strawberries for the remainder, if I know I will be able to check my crops daily. In the event (such as a weekend) that I cannot check my crops each day, I plant based on harvest time according to Net price. Simple as that.
Crops are not the real money makers of myFarm, however. Making money is best accomplished by getting gifts of trees and animals from friends. This way, there is no upfront costs for your potential harvest/sale.
You will not make money from buying and selling animals on your own; there is no profit in it. There will be potential down the road for what animals can produce, but for now, sell only what you are given as a gift, or hold on to your animals for future myFarm game developments. The same goes for cutting down trees — it is much better to harvest trees than cut them down, especially since there is no indication that trees will die any time soon.
The following table lists the costs associated with plants, which should give you an idea of what profits you can make from them. Remember, it takes a planted tree six days to grow to fruit, and then the tree will fruit every three days after this.
|Plant||Cost to Buy||Harvest Price||Cutting Price|
* Christmas trees are only obtained through gifts from The King
This final table lists the costs associated with animals, which also should give you an idea of what profits you can make from them.
|Animal||Cost to Buy||Prod. Price||Selling Price|
|Chicken, Barred Rock||$1,400.00||none||$143.00|
|Chicken, Rhode Island||$1,300.00||none||$143.00|
You can imagine the potential for some of the livestock (chickens lay eggs, cows and goats produce milk), so it might be a good idea to hold onto your animals at this time. After all, we’ve been told selling eggs through the chicken coop is around the corner.
Enjoy myFarm…I know I do.
I received the notice this morning that Firefox 3.0.1 was available for download, so I went ahead and installed the update, knowing that it had some security fixes in it. What I did not realize was that it would break all of my add-ons in the process of updating so that I was left with a vanilla 3.0.1 browser, no add-ons, no themes, nothing else when I restarted.
I quickly hit Basil’s Blog looking for answers, but could not quite believe what he was saying. He was telling me that the reason ALL of my add-ons and themes were not working was because of authors not declaring their compatibility range correctly? I was not buying that, as I use quite a few add-ons for web development and other aesthetics, and I could not fathom how every single one of them would have incorrectly stated their compatibility range “2.0 to 3.0” instead of “2.0 to 3.0.*”.
There was, of course, a quick way of confirming whether or not this was indeed the problem with my add-ons – disabling the add-on compatibility check. For those of you who are not familiar with this trick, type “about:config” in Firefox’s address bar, and hit enter. Accept the warning that will appear by clicking on the “I’ll be careful, I promise!” button, and a page will display with all of Firefox’s configuration settings. Right-click anywhere on this page, and go to New –> Boolean; a “New boolean value” window will pop-up requesting a preference name. Type “extensions.checkCompatibility” and click “OK”. The box will then display the option to set this to false or true, click false and then click “OK”. A new entry should be visible in the long list of names for your new value, but this will not take effect until you restart Firefox.
Having done this, I quickly confirmed that the problem with my add-ons had nothing to do with incorrect compatibility ranges, as none of my add-ons loaded, and I still had no themes. Thinking I had a problem with my profile, I browsed to the profile directory to check things out. It did not take me long to discover I did have a problem. The extensions.ini file in my profile directory was empty (0KB in size)! It was starting to look like this was the culprit of my problem. For thoroughness, I backed up all of my extensions files and then deleted them (extensions.cache, extensions.ini, and extensions.rdf). Then I restarted Firefox again.
When Firefox loaded up this time, my theme was back and so were all of my add-ons! A quick look in the profile directory verified that all of the extensions files had been recreated. Somehow, the Firefox 3.0.1 update had messed up the extensions files in my profile, but it turns out that it is easy to remedy once you know what the problem is – delete your extensions files and restart the browser.