9/14/2006

Moving to JessiRae.com

I have moved most of the posts from this blog to JessiRae.com. Join me there for discussion about ruby, rails, java, web apps and other tech-related stuff.

8/16/2006

And that's why we need a computer


8/03/2006

Ubuntu installed

My HP desktop was fried and so I replaced it with a linux box from walmart.com. It came with Linspire installed, but I immediately put Ubuntu on it. My Ubuntu Newbie Links *List of software you love on Windows/Mac that have equivalent versions in linux: here *Ubuntu Dapper Drake wiki: here *An Ubuntu Blog *Install ruby: gems or non-gems

8/01/2006

Typo & Tortoise: How to install typo using Tortoise SVN

Navigate to the folder you want to copy svn project into (c:/rails/) Right click in the folder (c:/rails/) Select SVN checkout Type in svn address (svn://typosphere.org/typo/trunk) and folder to unpack svn folder into (c:/rails) Watch tortoise checkout typo…. Oooooooooh! Aaaaaaaaaaaaaah! Get to work deving your typo blog on you local machine!

5/09/2006

Intro to Ruby in 10 days

Here's my plan for learning some basic ruby in 10 days. Day 1 Ruby.new Classes, Objects, and Variables Containers, Blocks, and Iterators Day 2 Standard Types More About Methods Expressions Day 3 Exceptions, Catch, and Throw Modules Basic Input and Output Day 4 Threads and Processes When Trouble Strikes Ruby and Its World Day 5 Ruby and the Web Ruby Tk Ruby and Microsoft Windows Day 6 Extending Ruby The Ruby Language Classes and Objects Day 7 Locking Ruby in the Safe Reflection, ObjectSpace, and Distributed Ruby Built-in Classes and Methods Day 8 Standard Library Object-Oriented Design Libraries Network and Web Libraries Day 9 Microsoft Windows Support Embedded Documentation Interactive Ruby Shell

4/19/2006

Instant Rails

I installed Instant Rails (http://instantrails.rubyforge.org/wiki/wiki.pl) on my laptop for dev. FYI background on instant rails is here:
Instant Rails is a one-stop Rails runtime solution containing Ruby, Rails, Apache, and MySQL, all preconfigured and ready to run. No installer, you simply drop it into the directory of your choice and run it. It does not modify your system environment.
The thing is... other than the additional MySql install, installing rails yourself isn't any harder than instant rails. I don't know exactly what was wrong with my install of instant rails, but it seemed flakey. So, I have uninstalled instant rails and now just dev on the web-brick server; there is no need for apache or iis.

3/28/2006

Freebees

Here's a small collection of free material (free as in beer) on ruby, rails and design. Rails freebees:
  • Tagging: tag your it! From Chad Fowler's Rails Recipes.
  • Drag-n-Drop: create a drag n drop sortable grocery list
  • AJAX Frameworks: "Why you need a framework. Introduction to Dojo and Prototype. "
  • AJAX and UI: "Standard patterns. Web forms and effects. A look at the things that you shouldn't do when deploying Ajax applications. "
Application Design freebees Teaching programming using ruby freebees

IconBuffet delivers!

More IconBuffet icons arrived today! I have deliveries of Shanghai Tech left, too. Email me at jowensbysandifer [at] gmail [dot] com, if you would like a delivery.

3/27/2006

Rails, JavaScript, Firefox & IE

Frustration: The drag and drop functionality that I have been working on isn't working at all in IE. I have no idea what the issue is. I guess it might be something about the way prototype, which the library I am working with, works with IE. Getting past the suck threshold: (from Creating Passionate Users) *Try new things *Get certified *Attend a conference *Do things differently

Saturday: Brush your teeth with your 'wrong' hand and take a shower with your eyes closed.

Sunday:Do the crossword or Sudoku puzzle in your Sunday paper and take a brisk walk.

Monday:Have oily fish for dinner, and either cycle, walk or take the bus into work.

Tuesday:Select unfamiliar words from the dictionary and work them into conversations.

Wednesday: Go to yoga, Pilates or a meditation class, and talk to someone you don't know.

Thursday: Take a different route to work; watch Countdown or Brainteaser.

Friday: Avoid caffeine or alcohol; memorise your shopping list.


Baby Steps to the Door

The redirect command: This command is very simple, but useful. Currently, I am using it to redirect the welcome page to the main control page after the user logs on.
redirect_to("/controller/action")
  • Place the redirect command in controller under the needed action, and link to the action in that controller.
  • Make sure you begin the path with a slash.

Baby Steps

For me there was this a bit of a RadRails setup 'dilemma'. I wanted to use RadRails to view existing files rather than importing files into a brand new (i.e. copied version) project. My main reason for not wanting to create a new project in RadRails was the Rad Rails web viewer is apparently based on Internet Explorer. The drag and drop functionality that I have been working on isn't working at all in IE. I have no idea what the issue is. But I don't want to deal with that right now -- I have a lot of momentum built up. To use an existing folder as the default location of a new project in RadRails, try this: File >> New >> Simple >> Project >> Unclick "Use default" and select the folder you want to access and give the folder a name.

3/26/2006

RadRails

I have recently installed RadRails. I have never been a big fan of Eclipse, but I was getting really tired of opening up all of the files in vi and then the stylesheets in my html editor (HTML-Kit -- which cannot open rhtml files by the way). You do not need to have Eclipse installed to use RadRails, although Java 1.4+ is required along with ruby and rails. There is also an RadRails Eclipse plugin if you already have Eclipse installed. You can import existing rails applications into RadRails. And once again yours truly has forgotten another password...this time it's the login for my web app! Firefox has the password stored so I can sign in that way, but when I login from RadRails, I have to know the password -- the application is on a different port in RadRails. If the human readable version of the password were stored in my dev database, then RadRails would let me see the password, but rails (I guess rails and not MySQL -- I've never looked at how this works) encrypts the password before storing it. I am thinking that I will dev in RadRails and export the app weekly to the original location of the app on my file systems.

3/22/2006

Hipster PDA

Right now I am working full time on finishing my master's thesis. So, I have been employing whatever motivation/ time management/ efficiency/ productivity strategies I can to write and be done with the thing. One that has been useful is the Hipster PDA. You can get all of the organization of a Covey planner with the flexibility of sticky notes. Write to do lists quickly, track calorie consumption, jot down tips that have worked for you, keep frequently used phone numbers -- all without opening a binder. I have been reviewing my quarterly goals more often because they are so easy to view with the Hipster PDA. Also, being a student I don't have a lot of money, so, the price of a pack of index cards is about all I have to spend on a calendar. Having worked two internships in Corporate America, I know that the hipster PDA will most likely be looked down upon. My fear is that once I return to the world of corporate America (an inevitable return), I won't be able to use the planner because it is well... different. Alas! One strategy would be to take the clip off the PDA and set the index cards on your desk -- this way they don't look so homemade and ...different. In meetings, notes can be taken on a single card, or if the meeting is actually productive, you could write in a notebook. Even still, if you want to jot something down when someone catches you in the hall or at lunch, you would have to pull out your hipster PDA for the corporate world to see. Maybe if enough people start using them, they will be accepted and seen for the tools they are rather than the crafty cards they appear to be...Na!

3/20/2006

Things that I have found helpful in learning ruby and rails

A little chart I found somewhere (in the Programming Ruby book, I think): Example variable and class names Local: name, fishAndChips, x_axis, thx1138, _26 Global (accessible by the program): $debug, $CUSTOMER, $_, $plan9, $Global Instance (accessible by the object): @name, @point_1, @X, @_, @plan9 Class: @@total, @@symtab, @@N, @@x_pos, @@SINGLE Constants and Class Names: PI, FeetPerMile, String, MyClass, Jazz_Song
Because it is so easy to forget the command line commands... To list the version of rails installed, type gem list rails . To start the server, type ruby script\server. To create a new application, type rails name_of_application. To create a new controller, type ruby script/generate controller name_of_controller. To generate the entire scaffold, type ruby script/generate scaffold Table_Name Controller_Name. And don't forget form helpers like: <%= link_to "Display_Link_Name", :action => "corresponding_action_in_the_controller" %>

3/15/2006

Script.aculo.us Bugs

Now that I have gotten drag and drop to work for the most part (I've retaken it apart to add more functionality), I know that the obstacles I had to overcome to get the thing to work were not the mountains that I thought they were. I didn't have the latest version of the script.aculo.us library installed, and once I updated the files, I stopped getting the error message that I have been getting for two days straight. :( Yes, I am retarded. The other thing that I learned while getting this first part of drag and drop to work (I now have to get the app to create a new piece from line items in the cart) was to use the a.to_i string function. For whatever reason the objects in the cart are storred as strings rather than intergers, and they need to be cast back into integers if you want to use them as ids.

3/14/2006

States I've visited

Ok, hacks like this one make me feel guilty. Ah! I have so many ideas that should be implemented, but aren't. create your own visited states map or check out these Google Hacks. I figure if I write down the list of little programs I would like to write (in Ruby of course) that would at least be movement in the right direction; so, here they are:
  • Suduko Puzzle Game
  • Random Word Generator something (http://en.wikipedia.org/wiki/Special:Random)
  • Concentration Game
  • Re-write the getContent of URL program that I wrote in Java (and this time have program download images to a specific location)
  • Header creator

Extracurriculars is Moving

I have a portion of my site devoted to sharing advice about extracurricular activities students can engage in to help them understand their life's passion. I haven't done anything with that portion of the site in two years. Having been inspired by Steve P's podcasts and articles (especially by the following ideas: streaming income, failing often, trying lots of different things, moving away from severe introversion), I am attempting to move the information on Extracurricular activities from sandiferclassroom.com to myspace.com. I have set up a myspace account and in general, just want to get the information out there to more people. I think the information is more well-suited for a blog format, and it is applicable to the age rang myspace targets. Additionally, in order to get the information to more people, I have to network and meet people at myspace. So, I am hoping I can work on becoming more of an extrovert with this 'project'. As far as how I might generate a stream of income from this project, right now I am not quite sure. When the myspace site starts getting hits, I will probably do something with cafeexpress.com.

3/08/2006

IconBuffet

IconBuffet has this interesting icon exchange were they distribute different sets of free icons to users that sign up for a free account. I have all 5 of my deliveries left if anyone would like the Shanghai Tech... just email me.

2/13/2006

Surely not...

Ever since I put my first web page up, I have struggled to find fulfilling things to develop. Unlike so many others, I started messing with computers because I had a fascination with how computers do what they do (rather than with making them do cool stuff). I am so much of an introvert that I have avoided trying to get this and my other sites (Readings in Analytic Philosophy, Extracurriculars, my comcast home page) advertisement. Steve Pavlina has some good words about moving out of extreme introvertedness here. One heuristic he had that appealed especially to my philosophical side was imaging how I would act if it were the case that there weren't real people reading my sites. So, all of this is to say that I am really going to make an honest attempt to network and build my online relationships.

Fade for Web 2.0

In this document on web 2.0 design, there is a section on the use of fade backgrounds in web 2.0 design. Wanting to try to create pretty background for my own site, I created this fade back ground. It doesn't quite look right, and I am not exactly sure why. The fade seems to go on forever; its just too long. My inkscape skills aren't terribly good, and I am not enough of a fan of the fade to figure out any more. Instead, I trashed the fade idea and have gone with a simpler background for right now. Also mentioned in the article are other characteristics of web 2.0 design:
  • Sanserif font
  • pastels
  • rounded boxes

2/12/2006

Still a Ruby Newbie

I am not sure why, but the following code generated errors for me: @pieces = Piece.find(:all, :conditions =>"user = '#{@session[:user].id}'") I had to save the @session[:user].id, like this... tmp = @session[:user].id @pieces = Piece.find(:all, :conditions =>"user = '#{tmp}'") This probabaly has something to do with ruby saving @session[:user].id as an string instead of an integer. I am having a similar problem right now in another portion of my code, I think. In order to show an image, I had to save the instance variable in the controller and then access it in the view rhtml file using piece3.picture. Update: In the Progamming Ruby: The Pragmatic Programmer's Guide, the author notes that,
When Ruby constructs this string object, it looks at the current value of name and substitutes it into the string. Arbitrarily complex expressions are allowed in the #{...} construct. As a shortcut, you don't need to supply the braces when the expression is simply a global, instance, or class variable.
I am guessing that @session[:user].id returns a value, so that when you try to take the value of the value @session[:user].id, you get some garbage.

2/08/2006

That was alot of installing, but...

This is as far as I got a month ago.
I have ended up not using the File_Column plugin that I wanted to. I am not sure exactly is going on, but I don't that I have the plugin script that I need (if there is such a thing in rails). Make sure you have Rails .14 or later installed; . Downloading with subversion appears to be working with rails. I have RMagick installed, but I am not sure that it is working. Despite the installing that I have done with rails, it still beats java!
Cool Ruby tutorial link.

1/26/2006

Music Overload

Update: Songbird 0.1 has been released. The coolest thing that I have spied so far is that the songs available on a page can be displayed at the bottom of songbird or on the web playlist. Also, being able to browse else where while listening to the web playlist potentially could make for better use of music browsing web-time. This thing is not ready for prime time, but I am hoping that I can get a feel of whether or not separating my music browsing from my 'other' browsing will be useful. It's open source, built from firefox. I know this really isn't a directly related to web services, but I am having a total music overload breakdown. With pandora, odeo, last.fm, itunes, and musicmp3.ru I can't keep up with the new music that I have, let alone continue to take in all of the recommendations provided to me by some of these cool web apps. And despite all of the music that if out there on the web, there are still albums that I have to buy "hard copies" of from amazon.com or other retailers.

1/24/2006

Java Web Services

Steps for providing and consuming a web service with Java web services development pack. Provide
  1. Write and compile .jws file, place in (move to) the correct folder and access with a web browser
  2. Download wsdl file from .jws file in browser, run wsdl2java on it
  3. Find .java files generated by wsdl2java; compile them and move the .class files generated into Tomcat\axis\WEB-INF\classes… folder
Consume
  1. Write html page that POSTs to servlet file; place in servlet folder
  2. Write servlet file that extends HTTPServlet; compile and place in servlet\WEB-INF\classes\package…
  3. Place axis libraries in the lib folder in servlet\WEB-INF
◙ Have J2EE listen on port 8080 and Tomcat listen on 80. ◙ Double check spelling!!!

1/19/2006

Is Java Dead?


Montecello Cemetry
Originally uploaded by Owenfer.
Well, Java isn't dead yet. And I venture to guess that it will be quite a while before its in the grave. Even Cobol is still alive... so, Java has got a ways to go. I think the fact that an article was written in 2003 on whether or not java was dead is an indication that it is moving into the later stages of its life cycle. But I certainly didn't see Java on any of the headstones in this cemetery!

SeaSide

Evidently, there is another ruby web framework: Borges. Hopefully, it will be just as easy to use as rails. I haven't downloaded this to try. It is difficult to justify trying something in place of rails when it is so easy to use. Borges is based on SeaSide. After listening to the Ruby on Rails podcast, I was under the impression that SeaSide was a framework for ruby, too, but from everything that I have read SeaSide is for smalltalk and Borges, which is very much like SeaSide, is for ruby.

1/07/2006

Still waiting for the Learning Curve

I really thought that there would come a time in using ruby on rails that I would say "Gee, this was easy to use at first, but now that I am trying to do more difficult stuff, things are getting harder". I have yet to come to that point; currently, things that I need to do already have some nice shortcuts in rails (e.g. user login stuff). I watched part of David Heinemeier Hansson's presentation (http://media.rubyonrails.org/video/rubyonrails.mov) on the rails philosophy. Rails was designed for the specific purpose of developing a web application, making it easier to use than many frameworks, but not as flexible for use as a framework for things other than web apps. So, there are tradeoffs Rails makes in order to provide smart/nice features and shorten the learning curve.

10/09/2005

WebApps

BackPack Way Cool! Check out this organization web-app, if you haven't already. Create notes, to-do lists, save documents and pictures all together; organize them so they help you get work done faster, better and more efficiently. Here are some Backpack hacks: Google Reader Thank God! Where have you been all my life, Google Reader? Right now the applications seems sort of flakey and the blog search is just plan weird. I am thinking that it doesn't search the blog titles or writer names. Not searching the owners' names makes sense. The titles of all the blogger blogs probably haven't been uploaded yet.

10/03/2005

Mrs. Little Forgetful

Well, I have forgotten the password for IIS. Yes, all of that setup just so I could go and forget the 'f'-ing password. I have been really immobilized by note being able to develop. I even had a dream about Tomcat last night. I want to reset the password, but I am not entirely convinced that I would be resetting the right password. And then I would be in bigger trouble because who knows what wouldn't work then.

9/08/2005

Apache Axis

I have been trying to get Axis working on my machine for about a day.  I had previously installed the Java WSDP with Tomcat (or as I now know the Tomcat Container).  I don't know if the container will work with Axis or not, but I was not able to get them to work together.  My install of the Tomcat Container did not have the tomcat.exe file.  But anyways I installed Tomcat again got Axis to work with the new version quickly.

Note also that the Apache Axis site says that you have to have Apache web server installed, but Axis seems to be working without it.  I think the idea is that you have to have a web server or an app server running on your machine.

Best instructions for installing Apache Axis: http://tyne.dl.ac.uk/ETF/public/WebServices/Axis_installation.pdf

I haven't tried this plugin, but here's the link to a site that has a download and instructions for using Tomcat in Eclipse: http://www.keyboardsamurais.de/mt/archives/000053.html


9/07/2005

Cool Sites

Here's a list of my newest favorite sites:

http://www.43things.com/: keep track of and share your goals with friends

http://del.icio.us/: bookmark cool sites and share with friends

http://www.aaronsw.com/: a secret favorite of mine

http://paulgraham.com/index.html


9/06/2005

Web Services

At work I have been trying to learn web services. On my machine I have installed: the Java sdk, J2EE, Eclipse, MySQL, SQL Explorer extension for Eclipse, J/Connector, Tomcat, Java WSDP, WTP, Axis, Apache web server and some other stuff that were required to run some Eclipse plugins. Yuck, yuck, yuck. Here are some notes that I have made. Web Services with Java (JAX pack) JAXP: SAX API, DOM, XSLT (read and write XML documents)
  1. mechanism for plugging in various providers supporting DOM, SAX and XSLT
  2. mechanism to specify which provider to use
JAX-RPC: SOAP, provides ability to generate WSDL from a Java interface and vice versa, generates client side stubs Creating a JAX-RPC Client
  • obtain instance of interface stub
  • set endpoint property of stub to the service endpoint of the web service
  • call method
JAXM: way of sending XML docs over the internet, works with ebXML
  • Asynchronous: client must wait for a reply before continuing
  • Asynchronous, with acknowledgement (ack)
  • Synchronous: reply isn't required
  • Synchronous with ack
  • Fire and forget
Developing a JAXM Servlet
  • import required packages
  • implement AsynchListener or SyncListener
  • implement on Message method
  • obtain SOAP message
  • obtain SOAP envelop/attachment and to do stuff with them
  • return SOAP message
Building a message producer
  • create a connection
  • obtain a message from a message factory
  • populate the message
  • send message
JAXR: access registries Registries
  • White Pages: directory of names
  • Yellow Pages: directory by category/service
  • Green Pages: categorized by service type or specification (DOM, SAX)
Searching a registry
  • create a connection
  • obtain a handle to a Registry Service
  • obtain query manager from Registry Service
  • use query manager to perform queries
JAXB: binds XML into Java and vice versa Notes on the Ant/WSDP install:
  • change directory to the folder where ant.jar is located
  • add the path where ant.jar is located to environment variables (ANT_HOME)
  • type ant change-database -Ddatabase=mysql -s PATH
  • PATH isn't the full path, just the path from the directory in which WSDP is installed (jwsdp-1.6)
In each of the JAX pack folders is documentation for each one of the APIs. To excute a JAXRPC program, go to apache-ant\bin\ and enter the command: ant deploy-war -s \jaxrpc\samples\helloworld\build.xml To use MySQL with JDBC, you need J/Connector. SQL Explorer works as an Eclipse plugin. I downloaded the mysql folder into the project folder that I am working in in order to connect to my local MySQL database. Web Services Vocabulary (just keep in mind all of those terms about Operating System messaging) Endpoint: a specific location for accessing a Web Service using a protocol and data format (like a socket) Unmarshall: converting XML data into a tree of Java content objects Marshall: converting a Java content tree into an XML document Validator: determines whether java classes conform to schema Dispatchers: map XML data to Java objects DII: static/dynamic stub Stub: object that runs on a server that acts as a channel for all communication between the server and a remote client To customize bindings means to change the java classes/objects various XML namespaces correspond to.

8/13/2005

PHP and Hyperlinks

I have moved into the 21st century and finally made my Extracurriculars page database driven. One interesting hang up that I ran into was including hyperlinks in the text that I saved in the database. The solution to getting the hyperlinks to print out was to take the quotes from the a href tags. So, a href= "http://www.google.com" became a href= http://www.google.com

I have been working on improving my Gimp skills. Here is another example of my handy work.


8/08/2005

To Do

To Do List

  • Finish Ruby on Rails tutorial Part2
  • Do the Four Days on Rails Tutorial
  • Download Google api
  • Design program to put google search into RSS Feed
  • Change Phil's pHpbb template

8/05/2005

It's a Jungle out there...

Last night I was working on a web page and viewed it in Safari and saw that entire contents of a div class were not showing up. I looked on line to find that there are some issues with the z index in Safari. I moved the code for the entire div class above another div class that I had on the page. And wala -- the contents of the class showed up! CSS is very weird like that but so maybe the problems others were noticing could be fixed by moving the divs around in the HTML document?


8/04/2005

RSS Inspiration

I know this is really weird, but I have emailed both Amazon with suggestions about what improvements I would like to see in the near future. Here is a copy of the email I sent them:
When you launch the new movie rental service, please consider, if you haven't already, including the following functionality -- rss Feeds For checked out and in the queue Movies so that I can know what movies are headed my way without receiving annoying emails all of the time. Another general suggestion -- I would also like to be able to easily buy items from amazon.de or amazon.jp. So, I want to be able to add items From those sites to my American shopping cart and pay with my credit card. Depending on the item, I might be willing pay more than at other places like Ebay because I really hate using EBay. Sincerely, Jessica
I wanted to add the following comment, but I figured they would put out an API to allow you to create a web service: "Additionally, a web Service that delivers a picture and maybe a description of the movies or a movie that I currently have checked out." On a related note, I have an idea for a program that creates an rss feed for some google search. So, say you search a particular term all of the time to see if your site comes up under it, then this program will help you easily check changes to the search. Or yor could use the feed along with one of Google's advanced search capabilities to check the stock market or something.

8/03/2005

Semantic Web Introduction

Here's a presentation I put together a while back on the Semantic Web. It is just an intro -- nothing indepth.
The Semantic Web The Problem There is a lot of information on the web. 532,897 Terabytes of data in 2002 Approximately 40 million files How can we find what we are looking for? Current Search Engines “Which pages contain the term ______?” Solution The Semantic Web
"The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation.“ [1] The Semantic Web will provide semantics for web resources Semantic Web Search Engines “What’s the temperature in Boston?” “What’s the most effective headache medicine?” “Who has the cheapest hotel in the downtown Washington DC area?” [1] Tim Berners-Lee, James Hendler, Ora Lassila, The Semantic Web, Scientific American, May 2001
RDF Today’s web is implemented by URIs, HTTP, and HTML. The Semantic Web is built with URIs, HTTP, and RDF. RDF is Resource Description Framework. If HTML can create a relationship between two items then RDF can create the following relationship jessica,name,“Jessica Owensby-Sandifer”. jessica,knows,john. john,employer,BigCompany. Wow! Is this making a database out the web or what? Yes. ”fieldValue” One way to think of what researchers are trying to do with the Semantic web is the query. Rather than searching or browsing the web, we want now to be able to query, like one would a database, the web.
Deficiencies of XML But I could do that with XML. XML… provides no means of validating object semantics even if these are declared informally in an XML DTD is a poor language for data modeling if the goal is to represent information objects in the problem domain such that they correspond transparently ("one-to-one") to the user's conceptual model of objects in this domain. Source: http://www.oasis-open.org/cover/xmlAndSemantics.html
Why RDF? XML’s model is a tree, i.e., a strong hierarchy applications may rely on hierarchy position (e.g., li in HTML) relatively simple syntax and structure not easy to combine trees RDF’s model is a loose collections of relations applications may do “database”-like search not easy to recover hierarchy easy to combine relations in one big collection great for the integration of heterogeneous information
Ontologies RDF connects to ontologies, written in OWL, DAML+OIL or some other language, enabling machines to appear to understand what it means to say that “Jens Liegle is an employee of Georgia State University.” Ontologies An ontology is a formal, explicit specification of a shared conceptualization. Consensual Knowledge Snapshot of a Vocabulary An ontology provide a shared vocabulary, which can be used to model a domain, that is, the type of objects and/or concepts that exist, and their properties and relations Ontologies consist of
  • Classes (general things) in the many domains of interest
  • The relationships that can exist among things
  • The properties (or attributes) those things may have
Ontologies SHOE: a small extension to HTML which allows web page authors to annotate their web documents with machine-readable knowledge OIL: Ontology Inference Layer, www.ontoknowledge.org/oil, Web-based representation and inference layer for ontologies, which combines the widely used modelling primitives from frame-based languages with the formal semantics and reasoning services provided by description logics. Furthermore, OIL is the first ontology representation language that is properly grounded in W3C standards such as RDF/RDF-Schema and XML/XML-Schema. DAML+OIL= SHOE modified OWL = DAML modified SHOE Ultimately… RDF and Ontologies provide us with
  • a simple way to express and store metadata
  • a way to “structure” and characterize the terms
  • means to make some inference within a restricted framework
The sky is the limit…
  • Personal Assistant
  • Semantic Web Searches
  • Inference Engines: take in rules and data and process them, writing out the resulting RDF triples
Academic Research Biological Sciences: small findings from a larger number of experiments are currently being overlooked by many scientists because they have no idea what findings are out there Alternative Opinions There are many problems on the horizon for the Semantic Web: Issues with personal privacy Technology that is too complex Specifying terms in an ontology that may be controversial We may have simply handed off the problem: spelling corrections, abbreviations, two people with the same name http://www.alwayson-network.com/comments.php?id=7480_0_3_0_C http://news.com.com/Next+big+step+for+the+Web--or+a+detour/2100-1032_3-5605922.html?part=rss&tag=5606366&subj=news

Google Hacks

Reference for the basic google functions:

define {word} weather {city, state} 3+5*2 population of {city or country} {UPS, FedEx or USPS Tracking Number} {#} USD in GBP {search term} filetype:{file extension} movie: {movie line, actor, term…} {some category} site: {URL} {Stock ticker} {Street Address City State} {3 letter airport code} airport link: {URL} Find pages that point to a specific URL

Hacking Google


8/02/2005

Gimp

Oh, I downloaded Gimp, a graphics editing software from GNU. And have started using it to create somethings to go along with the party planning web app that I am working on. I made this little graphic in less than a minute after installing Gimp. Everything is intuitive. It makes me wonder why we ever pay for any software, especially when the source is available. One thing that I am really excited about (and would be excited about even if I didn't download Gimp) is that on the Gimp page there are some great tutorials ranging from beginner to advanced. I have always wanted to learn some advanced graphics methods.

Open Source Summary

I have been doing alot of researh on open source Software lately and here are some things that I have Found. Most of this is very basic and would be well suited for Students or non techies, but here it is anyway. Open Source Many people have never heard the term "open source" before, and if they have, they may not know what it means. By definition, the term Open Source means that the source code is available. Open source software is software with its source code available that may be used, copied, and distributed with or without modifications, and that may be offered either with or without a fee. An open source license is certified by the Open Source Initiative (OSI), an unincorporated nonprofit research and educational association with the mission to own and defend the open source trademark and advance the cause of OSS. Source Code Source Code is the pre-compiled (or pre-interpreted) files, comprising a program. When you download a piece of software from the internet or buy a one from the store (say Microsoft Word), you are buying a program built from machine code that will run on your machine. You are not buying source code. The open source community consists of individuals or groups of individuals who contribute to a particular open source product or technology. OSI Developers are often IT employees!
  • Efficient: new versions released continually
  • Global: contributors from around the globe
  • Collaboration using email, newsgroups, Wikis, and the Web mean access to the most current thinking, planning, and deliverables.
The open source process refers to the approach for developing and maintaining open source products and technologies, including software, computers, devices, technical formats, and computer languages. Open Source Software (OSS) is a development process which promotes rapid creation and deployment of incremental features and bug fixes in an existing code / knowledge base.
  • High quality software built using Scientific Method
  • Peer review
  • Parallel Development and Debugging
  • No shipping products with known bugs to gain time-to-market advantage
Benefits of Open Source as noted by Intellectual Property Section of the American Bar Association:
  • Access to Source Code
    • Documentation for commercial software products is notoriously skimpy.
    • Having access to source code enables the developer to understand the program at a deep level and to debug and optimize her own program at a level of efficiency and skill that is often not possible with programs available only in binary form.
  • Community
    • Having a common source code pool and the tools provided by the Internet creates an opportunity for extensive and speedy collaboration on development projects.
    • Cost. Most programs distributed as "open source" are free.
  • Broad Rights.
    • The broad license grant, which allows licensees to use, modify and redistribute open source programs, is a major advantage of the typical open source license. Typical commercial software products are distributed only in binary form and may not be modified.
    • Often the documentation associated with commercial programs is not detailed enough to permit some kinds of "value added" programming that is possible for developers who have direct access to source code
Is open source software legal? Yes, and almost everyone who uses e-mail or surfs the Web is an open source software user. Most e-mail passes through an open source server during its travels across the Internet. Most Web servers rely on open-source software. Google is based on open source. As OSI points out, the running gears of the Internet, including the mail transports, Web and FTP servers, are virtually all open source-based. Open source software is *not* "warez," which is software distributed without permission of the copyright holders or a proper license. (from IBM.com) Copyleft: term used to describe a license that ensures that anyone who redistributes software licensed as Copyleft, whether with or without changes, must also pass along the rights to further copy and modify the software Free Software:
  • Free software (free as in speech, not beer): free to run the program, for any purpose.
  • Free to study how the program works, and adapt it to your needs.
  • Free to redistribute copies so you can help your neighbor.
  • Free to improve the program, and release your improvements to the public, so that the whole community benefits.
Copyleft software is a subset of Free software. Different License Types GNU GPL: GNU General Public License
  • From the GNU (GNU’s Not Unix) Software Foundation
  • Strong Copyleft
  • Often referred to as “viral”, meaning any code taken from (either in its entirety or in part) a program licensed under the GNU GPL must continue to be licensed under the GNU GPL
  • The Linux Kernel was licensed under the GNU GPL, therefore, all of the Operating Systems that use Linux must be licensed under the GNU GPL.
  • License Market Share
GPL: GNU Lesser GPL
  • Business Friendly
  • Provides a software license without such “viral” effects
  • Allows for products to be embedded in or bundled with commercially licensed OEM (Original Equipment Manufacturers) and ISV (Independent Software Vendors) products.
  • Encourages users like software vendors, telecoms and OEM's to bundle the product without changing their own license terms.
Mozilla
  • Not a Strong Copyleft
  • Changes to the source code must be made available to anyone whom you distribute the executable to
  • Incompatible with the GNU GPL
  • meaning that a module covered by the GNU GPL and a module covered by the MPL (Mozilla Public License) cannot legally be linked together
  • Allows a program to be licensed under another license as well. If part of a program allows the GNU GPL as an alternate choice, that part of the program has a GPL-compatible license.
Apache
  • Incompatible with the GNU GPL because it has certain patent termination cases that the GNU GPL does not require
  • Allows the license to be reusable without modification by any project (including non-ASF projects)
  • Allows the license to be included by reference instead of listed in every file
  • Requires a patent license on contributions that necessarily infringe the contributor's own patents
  • Moves comments regarding Apache and other inherited attribution notices to a location outside the license terms
BSD
  • Originally created for the BSD (Berkeley Software Distribution) Operating System
  • Simple, permissive non-Copyleft free software license
  • GNU GPL compatible
  • Derivative works are not subject to the same terms as the initial BSD license
  • Users can add additional restrictions to the BSD license, preventing software from being copied

7/29/2005

Ruby Resources

I completed the Ruby on rails tutorial on Saturday -- very very easy. But it really doesn't produce a whole web app. So, I am going to do the 4 days on Rails tutorial as well. There is something a bit flakey about Rails -- specifically the rhtml files. I don't know if it was because I downloaded the latest version or what, but I had to rename the Files -- something just isn't right with that file extension. Here are some links about Ruby on Rails that I have collected. Ruby Garden Slash7 Ajax on Rails Ruby on Rails and J2EE: Is there room for both? Programming in the Ruby Language Fast-track your Web apps with Ruby on Rails I am wanting to build a web app -- a party planner where the user can enter tasks, create to do and shopping lists - design the party room layout and event flow.

7/08/2005

Beginning Again

IIS is running, and I can develop PHP now! The next question is whether I should download MySQL or not.It would seem to be a waste of going through the process to develop locally to just use my web hosting service to develop the DB connectivity. I have already forgotten what I have to do in order to get my hosting company to renew a new domain name. The new domain is sandiferclassroom.com. My philosophy blog and classroommovies are gone :( I found this web page full of web services today. Hopefully, I can use some on my new homepage. Additionally, I've been thinking of designing a search for RSS feeds that can search the feeds on your reader using RDF and google technology.

5/14/2005

Temporary Solution

For right now, I have decided to develop on the server; this is not a problem because no one visits my site except for me! I can add an extra FTP folder to my HTML editor and upload from there. The long term plan is to upgrade to XP professional, but before I do that I want to upgrade my computer -- put in 512 MB of RAM. So, now that that issue is temporarily out of the way... I need to more precisely define what I want to create with php. I know that I have been wanting to add some dynamic content on my home page. I don't really want a personal blog space there. We will see... On a side note, I have been reading a bit about creating wordpress themes, as my analytic philosophy blog is in wordpress. So, I am going to create the style.css and index.php files in the next week.

5/11/2005

Apache or IIS or XP Professional

Gee! I can't decide whether to install IIS or Apache on my Windows XP Home Edition machine. Another option is to install the Professional Edition of XP, but I am not sure that I want to backup my system and reconfigure all of the network and firewall settings and reinstall all of my favorite programs plus php and mysql. Option 1: Try to install IIS on XP Home

To quote http://groups.google.com/groups?selm=3c3c9b9d.518663173%40news:

"General HOWTO for running IIS in Windows XP Home Edition.

by Richard Sandoz - Certified Java Programmer

(1) locate and edit the file C:\WINDOWS\INF\SYSOC.INF

(2) locate a section called [Components]

(3) find a line like this: iis=iis.dll,OcEntry,iis.inf,hide,7

(4) change it to this (the iis cab in the i386 xp home folder looks to be nothing) iis=iis2.dll,OcEntry,iis2.inf,,7

(some sort of ms caching thing keeps sticking back iis.dll when I try to nuke it. quickly renaming and making hidden dir called iis.dll seems to thwart, but not worth it, so iis2.dll is good enough)

(5) I grabbed the iis.dl_ and iis.in_ from win2k advanced server cd.

I would guess similar techniques would work from W98, FP, etc. Use "EXPAND IIS.DL_ IIS2.DLL" from a command prompt Same for IIS2.INF, place IIS2.INF in C:\WINDOWS\INF and IIS2.DLL in C:\WINDOWS\SYSTEM32\SETUP

(6) Now when I did "add windows programs" from the control panel's add new programs, I had IIS options and I could even check em off. yippee - could not check em off from my xppro cd :(((

I just went with the defaulted ones though (all i needed was iis web server)

(7) It will prompt you for files. Get em from MS XP Home CDs, Adv Server CDs, C:\WINNT\SYSTEM32\INETSRV, C:\WINDOWS\I386, etc. (It will tell you the file it needs, you just need to have a searcher going, probably the CDs will have all you need)

(8) You can get to your IIS from Control Panel's Administrative Programs. I stuck in an index.html file and reconfigure IIS to work like this. No go :((( I right clicked on my inetpub folder and did something with shared folders. No go :((( I looked at the event viewer and saw the error of my ways. Go to IIS and goto Directory Security tab and click Edit button and Browse for the user setup on my laptop.

(9) Yippee, hello world from http://localhost

I won't support this solution unless paid to. I am an out of work developer looking for work.

I bought a Toshiba 5005 laptop which came with XP home. I then bought Win XP Professional. I have bunches of CDs from when I was a MSDN subscriber. From a general search on the internet I found contradictions.

Microsoft says you need professional XP to do IIS period. q310090 was yanked from their site which had the "workaround" for this.

When I tried to setup XP upgrade to pro, my laptop rebooted and hung on an xp logo with an animated graphic. I have verified this to be the case with others as well. Upgrading to xp pro isn't an option for this laptop."

Option 2: Install Apache

Lots of documentation to read.... http://httpd.apache.org/docs-2.0/platform/windows.html

and probably should read this first too...

http://us3.php.net/manual/en/install.windows.manual.php

Option 3: Install XP Professional

backup, backup, backup...

What is a girl to do?


5/07/2005

Next steps...

Well, I am trying to finish up a paper I have due...so, I haven't much new to add. But here's what little new information I have for today.

Let us say you want to save precious bandwidth and develop locally. In this case, you will want to install a web server, such as Apache, and of course PHP. You will most likely want to install a database as well, such as MySQL.

You can either install these individually or choose a simpler way. Our manual has installation instructions for PHP (assuming you already have some webserver set up). In case you have problems with installing PHP yourself, we would suggest you ask your questions on our installation mailing list. If you choose to go on the simpler route, then locate a pre-configured package for your operating system, which automatically installs all of these with just a few mouse clicks. It is easy to setup a web server with PHP support on any operating system, including MacOSX, Linux and Windows.
Yeah, so the few times I have messed with PHP, I made changes to my code locally and then uploaded the new file to my web server...which takes forever. Not using much PHP this wasn't too time consuming. I think if I want to get serious about this I need to develop locally.

5/06/2005

The beginning

Cputer is a place for organizing all of the new things I am learning about programming. I am particularly interested in web programming. I have a few sites that aren't worth much: Readings in Analytic Philosophy, Lost.com and my home page. I am interested in using more php, mySql and rdf. So little time...so much to learn.

This page is powered by Blogger. Isn't yours?