Devchix Task List Android App
This post is to basically explain how the Devchix to do list android app that Nola and I have been working on works. Currently, we are working on Iteration 1 of our plan. Here’s how I understand what we have working so far: In our app, users can switch between 2 activities using the menu option, “Add Task”.
When our app is first opened the first activity that is rendered is the ViewTasks activity. We first start with some setup steps…. we inflate our layout, create our task database and open a connection to that database. We create a cursor that will just represent all tasks that we have put in our database and we call the startManagingCursor method, so that we do not have to do that ourselves.
We get a ListView from our ListActivity; this ListView will be our list of tasks. In our ViewTask activity, we have a subclass class called TaskAdapter, that will help us get data out of our cursor and into our list view. Lastly, we set our TaskAdapter as an adapter on the ListView we just created.
When the user clicks on the menu button, we will see the two menu options whose names we grabbed out of our strings.xml. And because we have implemented the onMenuItemSelected to detect which option the user selects, we the user selects the Add Task option, our second activity will be started where users can enter the name of the task and save the task to the tasks database.
If there are already Tasks in the task database, then TaskAdapter will inflate a new row from the records we get back from our query and then have the TaskWrapper place the contents of the cursor into a Task object. The task object represents has getters and setters for setting the various task fields, which may be overkill right now because we don’t have many fields but as our application grows and expands to do more complex things with task information this may make our code more modular.
Other than creating the table, I don’t believe the methods we have in the TasksDbAdapter class are currently being used. Depending on how we want to clean the code up, we may be able to refactor this class—either move the db creation into the ViewTask activity or move the other queries out into the TasksDbAdapter.
Here’s the link to the Devchix Task List Android App on Google Code.
Atlanta Linux Fest 2009
I attended the Atlanta Linux Fest last Saturday. I only got to stay for two talks, but what I saw was great!
From the Ubuntu Kernel talk given by Pete Graner of Canonical, I learned a couple of interesting things about Ubuntu…
Canonical has teams that work on things other than the ubuntu kernel, including integration for OEMs like Dell and HP, maintaining LaunchPad, and distributing install cds. They are able to maintain a 6 month release cycle for Ubuntu by deciding to only fix those bugs that are truly critical and focusing on the goals decided at the Ubuntu Developer Summit.
Ubuntu One allows you to back up any number of systems into the cloud.
The folks at Canonical have created a version of android that runs on Ubuntu Notebook Remix. It sounded like android uses some of its own version of libraries so a unique version of android had to be compiled to use those libs.
I also saw Kirrily Robert give her Standing Out in the Crowd talk. If you missed OSCon 2009 or the Atlanta Linux Fest, you can check out her talk here.
What's in your bin directory?

Or in the directory where you keep all of your scripts?
In my bin directory, I have scripts that…- clean and build projects
- validate xml
- start servers or applications
- executing different build targets
- always executing certain commands with specific arguments (e.g. ls)
- starting servers or applications (ldap, apache)
I’m not terribly creative with my aliases; so, here are some ideas.
Substitution into Intensional Contexts and Web Browsers 1
Let the input into a web browser be A and the composite output of a web browser be B. For instance, the page source of a web page would be A, while the page as the user experiences it would be B.
Consider then the following proposition:Louis believes that man is Clark Kent.
Since we can substitute “that man” with “Superman” using Prototype’s gsub function,
According to A, Louis believes that man is Clark Kent.
<body>
<ol>
<li>
<span id="test2">
Louis believes that man is Clark Kent.
</span>
</li>
</ol>
<script type="text/javascript" language="JavaScript" src="trixie.js" >
</script>
</body>
</html>However, according to B, Louis believes Superman is Clark Kent, which we know from our comic book reading is not true. Uh oh!
Since search engines index A and not B, any substitutions made on the client side may not be captured by a search engine. In other words, it is possible that a site may report that “Louis believes Superman is Clark Kent”, i.e. something false, while the search engine has captured that the site is reporting that “Louis believes that man is Clark Kent”, i.e. something that is true (or vice versa).
This is not the most interesting outcome of this thought experiment. What is interesting is that Javascript (and any similar client side technology with substitution methods similar to prototype’s gsub) gives us a way to expand the scope of the object of the proposition to include multiple intensions of a term.
