Tuesday, April 24, 2007

Frucall, the smart way to shop

I was reading one of my more favorite blogs and stumbled upon a most ingenious new service called Frucall. I believe it's a play on the word frugal. The idea is best described in a situation.

Suppose you've just received some birthday money from aunt Bertha and you've decided you want a new watch. You're at the store and they've got the watch you want and it's being sold at 15% off of the original store price! The sale only lasts that day and you're not sure if you'll have time to check out other stores and get back to purchase it. You then remember that you've subscribed to the free service Frucall. You dial the number (1-888-DO-FRUCALL), enter the barcode of the item, and then you're told the range of prices that exact watch is being sold for on the internet. You then know where you can save the most money on that watch.

This is awesome! I tried this on a few items I had laying around my desk and sure enough it worked. Not only does it just tell you the prices, it lets you leave voice memos for certain items, bookmark certain items so you can come back to them and not have to remember the barcode. You also have the option to receive text messages with the prices, or browse the web on your home computer and enter in the product code and see the range of prices from Amazon.com, Froogle, etc. You also have the option to buy right at that moment from one of the sellers over the phone.

I hope this isn't sounding like a sales pitch, the service is free. I'm just excited because this is something I've always dreamed of, being the hesitant buyer that I am.

How to Pick the Best Produce

I ran across a blog posting that outlined 5 steps to picking the best produce. I haven't had much of an opportunity to try them out for myself, but I'll be sure to do so and update this post when I do. Here they are:
  • "Good produce weighs more than you expect." Pick up several items and choose the heaviest one. "Works for citrus, works for corn, works for melons, works for tomatoes, works for celery, heck, it works for garlic bulbs…it just works for everything."
  • "Good produce smells good. If you don’t smell anything and especially if it feels light, it means it’s mealy and dry."
  • "Good produce has a firm cut end." If the end where the fruit is cut is mush or slimy, pass it by. "Side tip for corn: feel the tip through the husk. The fatter, less pointed tip is the ear you want. Very pointy tips means the ear hasn’t filled out."
  • "Good produce is not the biggest." The best size is medium to medium-small. Once the fruit gets much bigger the taste is diluted. A plant can only produce so much "sugars, acids, fragrances, flavors, secondary plant products, water."
  • "Good produce ripens with its friends... The truth is that many fruits ripen in the presence of ethylene gas, and that ripe fruit produces more ethylene gas. Baskets and bins often produce an enclosed space so that the fruit at the bottom of the bin or basket gets a bigger whiff of ethylene and therefore ripens faster."

Monday, April 23, 2007

I'm Free!

In the words of Paul, "I have fought a good fight, I have finished my course." I'm done with school, possibly forever!!! Don't be discouraged, I haven't had much time to add anything other than technology related articles for class purposes. Give me a few days to start adding some more friendly material. In the meantime, be sure to check out the new pictures of Annalee.

Tuesday, April 17, 2007

IA: Enterprise Information Architecture

Enterprise Information Architecture had no meaning to me before the class I took at BYU. I had heard that it was very challenging and way over some students’ heads. Knowing this, I decided I was going to be one of the few people that grasped the concepts that would be taught in the course, and that I would make a big effort in doing whatever extra research I had to in order to better understand the material presented in class.

EIA basically deals with the way an enterprise collects, manages, and monitors the enormous amounts of data that it processes.

The main areas of the course consisted of:

  • SOA
    • Web services- introduction to SOAP, WSDL
  • MDA
  • Enterprise Scalability
    • Research projects presented in class on a wide range of topics, my area of research was on scaling a PostgreSQL DBMS.
  • Database Optimization
    • particularly with MySQL
  • Error logging and messaging

I can start off by saying that not a single one of these topics came easy to understand. The one topic that came remotely easy to understand was error logging and messaging since that is the nature of my job as I described in a previous post. This is my attempt to make an over-arching analysis of what I have learned and how it will help me as I transition from school to the start of my career.

Service Oriented Architecture

An Enterprise SOA doesn’t really need an implementation. It has a lot of agility. If a certain direction is taken with the architecture, constraints are added and you cross over into paralysis. A good example of this is Microsoft Windows. In order to keep their customer base they have to, in some way, support all (or most) previous versions of their OS. Omniture has a specific architecture and business and they have to build it accordingly—their enterprise software is tightly coupled.

A service oriented Architecture is loosely coupled and highly cohesive. The elements of the architecture are modular in nature and are not restrictively bound to other parts of the architecture. Each service does one thing in one location. A service could be defined as anything that gives a response to a request to a published interface. Examples services are web services, DBMS’s, SVN, OS services, and Enterprise service bus.

Some of the technologies used in a SOA include, but are not limited to: XML, web services, SOAP, WSDL, JDBC, Java EE, J3CA, WS-BPEL, BPEJA, SLDFJO.

We concluded that SOA is a software architecture (blue print for the construction of a system) that is based on the key concepts of an application front end, service, service repository, and service bus. A service consists of a contract, one or more interfaces, and an implementation..

The web services assignment was rather difficult dufe to the fact that I had never even heard of SOAP and WSDL. I programmed mine in PHP, and after many long hours of research, help from classmates, and dabbling in different languages I was able to successfully implement my first web service.

MDA

I see Model Driven Architecture as a great way of better integrating a company’s systems with their business model. The idea of mapping out a businesses processes and then feeding it into a program that can then take those diagrams and spit out the code to get those processes integrated is ingenious. Some more of my research can be found in an earlier article on my blog.

Enterprise Scalability

Our group research project was on scaling a PostgreSQL DBMS. I had had no experience at all with PostgreSQL, but learned a lot about DBMS’s in general by doing this assignment. I understand now that to scale up a database means to tune the settings and RAID configurations, whereas scaling out deals more with distributing the DBMS to other physical systems in a cluster.

Database Optimization

This was definitely one of the more challenging projects of the semester. Granted I did put it off to finish it until the last day of class, but I did spend a lot of time during the semester trying to understand what optimizing really means. I had had trouble importing the databases Dr. Liddle gave us access to before the class period where he started showing us how to tune the queries. Most of the time in class I spent trying to figure out how to load the databases so that I could follow along with his lecture. That didn’t work, and I just got more lost after that. I figured that since other people in the class were struggling in the same area I could get together with them. When that didn’t happen I sadly realized I was on my own.

I did get quite a bit out my research, some of which I posted on my blog and all of which can be found in my final DBO assignment that I emailed to Dr. Liddle.

Error Logging and Messaging

Some of the points we made in class about what error logging should be are as follows:

  • Error messages should be human readable

· Should tell user, if not tech savvy, what to do and who to give the information to

· Clearly indicate something has gone wrong, as well as criticality

· Preserve as much of the users data as possible when the error is detected

Good error messages should contain the following:

  • Dialog box
  • Attention directing icon
  • Description, Context (ability to reproduce the error, time stamp)
  • Possible actions
  • Log messages
  • Action buttons (undo/restore…)
  • Auto reporting (send error to developer)
  • Identifier that tells you what caused the error

With the job I currently hold I’ve seen many personal applications dealing with error logging and messaging. This posting enumerates this area of my job.

Friday, April 13, 2007

Update on Annalee

Sherrie took little Annalee into the doctor earlier this week to get her checked. She had been going several days without any dirty diapers, and then all of a sudden she had one overloaded diaper. The doctor checked her out, and declared everything to be fine. She now ways 10 lbs. and is quite healthy!

She's slept for 7 and 6 hours the last two nights! Sherrie has been most pleased! I haven't bee too effected either way, I tend to sleep through any mid-night feedings :)--not to say that I get adequate sleep, I've had my share of late nights and tiring days.

Wednesday, April 11, 2007

No shipping seriously cripples small book firms

In Monday's technology section of the New York Times there was an article that brought up that the post office would no longer ship via cargo ship, due to a higher demand in air delivered goods. Sending goods via ship was traditionally one third the price of regular air shipping, and allowed small book sellers to ship at a reasonable price. With this option non-existent, the shipping rates are sometimes greater than the actual price of the books, and small booksellers are fearing the repercussions. Big book sellers, such as Amazon.com will not be affected too much, as they get larger discounts for the volume of books that they ship.

As far as implications for e-commerce go, this will greatly affect small businesses shipping costs, possibly causing many to shut down. The big sellers, such as Amazon.com, will not be affected as much.

Wednesday, April 04, 2007

WA: Choice Skills Navigation Bar Proposal, part 2

To answer Dr. Liddle's question on what exactly I meant by consolidating some of the web pages, let me give an explanation.
  1. The product info page on the 7 C's is virtually the same as the "Teaching Social Skills" page located in the "Social Skills" menu under "Disciplines." The one thing that the Teaching Social Skills page has that the other doesn't is a few sample lessons from each of the books.
  2. The second redundancy was found under the Disciplines menu on the "Character Education" link. This is the same as the link located at the top of the page, "About CBL," except that it also has an introduction to the 7 C's on the page.
That's a total of 3 different pages introducing the 7 C's. Granted that is his flagship product, he could just state what CBL (Character Based Learning) is and then link them to the product page where they can buy the books. Each of those pages contain a lot of information, maybe too much. If a short description is given about Social Skills or CBL, he could then tell them to check out his books and link them to the products page. Just an idea.

I've spent some more time on the menu, and actually put together a working one. I've posted it over my ISys 201 project to keep me from any embarrassment, though this is no professional work, it's a basic idea: ChoiceSkills Header Mock-up. All of the links should work. I had trouble with the "Other Resources" menu. It has two sub categories, "Social Skills" and "Char. Ed." "Social Skills" should then also have two subcategories, "Teachers" and "Families," each with a few links. This seems like a rather long menu, and could possibly take the users to a static page with an outline of all the resources and a brief explanation of their relevancy to the site.

I also wasn't sure how to make the menus fit their contents dynamically, I just made them all the same size, so some of the elements don't fit quite well (particularly under the "Articles" menu).

This actually took quite a while to do. I've had no experience with javascript, so luckily I found a javascript menu making tool, which I thought was pretty dang cool. You just enter in the menu titles and contents and then download it. I tweaked the colors and settings after seeing what everything did. Here's a snapshot of what it looks like:

I hope my efforts won't be negated by Ben Robison's template for the site, I've tried to use similar colors. I didn't add a blog link, but that should be easy enough to do.

Tuesday, April 03, 2007

IA: Java Message Service

From my research, it seems like JMS is something like email between applications. It provides a means (that's why it's considered middleware) for applications to send messages to each other. I didn't run into any basic examples, but I'm guessing since we're covering logging and monitoring right now in class that it has something to do with error reporting. Perhaps if an application runs into an error it can communicate that error to another application that alerts someone who can take care of the problem. At any rate, below is a bit of research I did on the basics of JMS. Hopefully class tomorrow will shed some more light on the functionality of this service.


JMS uses formats based on XML and is capable of talking with both local and remote databases and business applications.


The Java Message Service consists of the following elements:

  • JMS provider: an implementation of the JMS interface for a Message Oriented Middleware.

  • JMS client: An application or process that produces and/or consumes messages:
  • JMS producer: A JMS client that creates and sends messages
  • JMS consumer: A JMS client that receives messages
  • JMS message: an object that contains the data being transferred between JMS clients.
  • JMS queue: a staging area that contains messages that have been sent and are waiting to be read.
  • JMS topic: a distribution mechanism for publishing messages that are delivered to multiple subscribers

Point-to-point (Queuing model)

Producer posts message to a particular queue and a consumer reads the messages.

  • Only one consumer will get the message
  • Producer and receiver don't need to be running at the same time
  • All messages successfully processed are acknowledged by receiver


Publish/Subscribe Model

  • Supports publishing messages to a particular message topic. Neither publisher nor subscriber know about each other.
    • Multiple consumers can receive the message
    • Timing dependency between publishers and subscribers. Subscriber has to remain continuously active to receive messages, unless it has established a durable subscription.


Open Source JMS Provider Implementation

  • Apache Active MQ
  • OpenJMS from The OpenJMS Group

Proprietary providers:

  • WebSphere Application Server from IBM
  • WebSphere MQ from IBM
  • SAP NetWeaver WebAS JavaJMS from SAP AG
  • Oracle AQ
  • Sun Java System Message Queue

A comparison matrix of JMS providers can be found at: http://www.theserverside.com/reviews/matrix.tss


Resources:

http://en.wikipedia.org/wiki/Java_Message_Service

http://www.javaskyline.com/learnjms.html
Bond, Haywood, et. al., Sams Teach Yourself J2EE™ in 21 Days, Second Edition, 2004

WA: Choice Skills Navigation Bar Proposal

The below analysis is valid as of April 2, 2007.

I went through the web pages on ChoiceSkills.com and tried to understand where each link takes you. There were quite a few redundant links, and some of the options weren't quite intuitive to me. The "About CBL," "About Us," and "Character Education" are very similar, and could very easily be combined into one page.

The "Seven C's" product info is found on "Product Overview," "Character Education," "Teaching Social Skills," and "Social Skills Deficits." Since this is the flagship product it should be accessible from various pages, but not necessarily explained on every page.

The "Store" link on the top basically preforms a search on the shopping website that returns only 6 results. Because there are so few products, I don't believe the search is necessary. It wouldn't even bring back any results from a search on "character" or "attitude."

The Store Menu is different from the ChoiceSkills Menu (they're all part of the same website, just hosted by different companies at one point, and therefore different in layout.) Many of the options in that menu can be consolidated into the one on the main website. I've proposed something like the following to be next to the Choice Skills logo (if it is pushed off to the left-hand corner.




The menu structure would be as follows:

Products
  • 7C's Books
  • Benjamin Franklin
  • Digital Media
  • Posters
  • Children's Books
Disciplines
  • Character Education
  • Social Skills
  • Social Skills Deficits
Articles
  • (All 4 articles)
Other Resources
  • Character Ed and Social Skills Resources (Everything under "Helpful Links")
Customer Service
  • Policies
  • Order History
  • FAQs
  • Account Info
  • Password Changes
  • Contact Info
About
  • About Choice Skills, Inc.
  • About Character Based Learning