Blog of Barry http://barryvelasquez.com Keeping it Simple posterous.com Sat, 20 Aug 2011 18:07:00 -0700 Untitled http://barryvelasquez.com/66349099 http://barryvelasquez.com/66349099

Went on a tough mountain bike ride today. Getting ready for my MTB trip to Tahoe. This trail is called the Big Trees trail. Definitely a good ride with some good climbing and downhill. Plus you get to see some awesome giant redwoods when you get to the top.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Fri, 17 Dec 2010 10:10:00 -0800 Article: Foursquare Checkin Unlocks This Apartment Door, DIY Kits Coming Soon http://barryvelasquez.com/article-foursquare-checkin-unlocks-this-apart http://barryvelasquez.com/article-foursquare-checkin-unlocks-this-apart Foursquare Checkin Unlocks This Apartment Door, DIY Kits Coming Soon
http://www.fastcompany.com/1709781/foursquare-door-guys-say-they-might-start-selling-their-system

Now that truly is the future and along the same lines of some ideas of mine, which I can't wait to implement.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sat, 09 Oct 2010 21:20:00 -0700 Hillcrest Farms Trip http://barryvelasquez.com/your-entry-on-oct-9-2010-122052-pm http://barryvelasquez.com/your-entry-on-oct-9-2010-122052-pm

Oct 9, 2010 12:20:52 PM

At Hillcrest farms for some family fun. They have a train ride, corn
maze, treehouse, and play area. The kids love it and were busy getting
dirty playing with toy construction equipment by the treehouse. Zoya
picked pomegranates and broke them up for us. All in all a nice time.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sat, 13 Mar 2010 20:03:13 -0800 Finally Some Time for JacobSix http://barryvelasquez.com/finally-some-time-for-jacobsix http://barryvelasquez.com/finally-some-time-for-jacobsix I finally had a little bit of time this weekend to work on JacobSix.  You can read about the changes at my latest post on the JacobSix blog.

JacobSix is a simple project management tool I created for myself and anyone else who wants to use it.  It's purposely simple and easy to use.  This weekend, I improved the performance of the Action lists a bit as well as cleaned up some of the page refresh.  Check out JacobSix at http://www.jacobsix.com.  Let me know what you think.

Now for the technical talk.  If you aren't technical or do not care about development, no need to continue...

The page refresh was not clean and would show the raw HTML an instant before it displayed the jQuery UI tab control in the project page.  Apparently, it's best to set the DIV element for the tab to "display:hidden" before you render the tabs using jQuery UI.  Once the tab is created, you can then set $('#tab').show().

Performance improvement was a bit trickier.  Google App Engine's ReferenceProperty is very useful.  However, when you use it to get the value of the referenced property value, GAE executes a query for that property.  If you query and get 25 results, then if you refer to the property in each of those 25 results you query the data store 25 times for each property.  Things slow down pretty quick the more ReferenceProperty types you have.  So, to solve it, I need to store the value I want from each of the referenced properties with the parent Model itself.  I then need to update the local copy whenever the actual data changes.  So much for data normalization, but this shows that you need to do what it takes to make things perform.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sun, 08 Nov 2009 17:30:00 -0800 Fun weekend geocaching http://barryvelasquez.com/fun-weekend-geocaching http://barryvelasquez.com/fun-weekend-geocaching I just discovered Geocaching, and more specifically the site http://www.geocaching.com/, which is "The Official Global GPS Cache Hunt Site." If you don't know what geocaching is, then I encourage you to check out the geocaching.com. However, to save you a little time and put some context behind this post I'll give you a quick idea. It's basically a treasure hunt based on GPS coordinates. Hidden caches are placed all over the globe and the coordinates are all that you have to go by. If you think that's easy, it's not. Some of these little caches are well hidden.

Geocaching.com has all sorts of information, and most importantly a huge database of the hidden cache's you can search through and find some in your area. All you need is a GPS. I used my iPhone and bought their iPhone App. You can search through the database using the app and then click the "Navigate To" button to draw a line from your current location to the cache. Once at the location, you'll need to search around and find the cache. Some are boxes and others are tiny film canisters. Many have things in them that you swap for something else from another cache or your own contribution. You can read the little log included in each one to see who has been there before. Of course, the geocaching site has logs also.

This weekend, my boys and I found Clovis Eagle Cache #6, "T" time, "Quack, Quack, --- Quack, Quack" and Ode to Edison.

Try it and have fun!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Thu, 05 Nov 2009 10:03:00 -0800 Moved the JacobSix Blog http://barryvelasquez.com/moved-the-jacobsix-blog http://barryvelasquez.com/moved-the-jacobsix-blog

We moved the JacobSix blog to it's own Posterous.  You can now follow it at:

http://jacobsix.posterous.com

All of the updates, news, and more will be posted there from now on.  Enjoy!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sun, 27 Sep 2009 21:14:00 -0700 New Features in JacobSix http://barryvelasquez.com/new-features-in-jacobsix http://barryvelasquez.com/new-features-in-jacobsix

We are working hard to keep making JacobSix a simple, yet powerful Project Collaboration application.  The last sprint has been a very productive one.  Many late nights and lost weekends have added up to some very good progress on JacobSix.

Here are some of the major features additions:

  • Ability to follow a Project - There is a little pin to the right of the project name in the Overview section of the project page.  If this is pinned (pin facing down), you will be following the Project.  What does this mean?  Well, you will get emails when anything changes in the Project, such as new messages, new Milestones or Groups, added Links or Notes.  Pretty much anything at all.  This allows you to keep up to date on any happenings in a Project so you can react quickly.  Eventually, following a Project will lead into IM messages in the future.
  • Ability to follow an Action - The same pin you can put on a Project you can put on an individual Action.  If you don't want to following the entire project, you can just concern yourself with one Action.  When an action is pinned, you wil receive emails if anything about that action changes.
  • Condensed View of Action Lists - You can click the magnifying glass icon above the action list to collapse the action details.  This allows you to fit more on the screen.  You can always expand an individual action to see the details.  The condensed view mode carries across all action lists and your workbook.
  • Displaying Avatar next to Messages - In the Recent Messages list, we now show the avatar of the person who posted the message.
  • Invitations by User Name - You can now search for users that are collaborating with you on other projects to invite them to a new project.
  • Burndown Chart - For those of you who are into Scrum Agile Project Management, then a burndown chart is available.  This chart is based on the Estimated and Actual hours, using the Project Start and Due or Milestone Start or Due dates to build the range.  This chart is in the More Charts page.
  • Commenting on Actions - You can now comment on an Action.  The action assigned and any followers of the action or project will be emailed of any new comments.  This is a good way to communicate and ask questions about an Action.

We have many more enhancements coming soon.  Here is a rundown of what we will be adding soon:

  • Project Feed - The project feed will give you a running stream of all activity in a project.  So, if someone closes an action, it will be in the feed.  If someone adds an action, in the feed.  If a new message is posted, in the feed.  The feed is a temporal view of all things happening in your project.  We will provide an RSS link to this feed so it will be easy to follow day to day the projects progress.
  • Contacts - The ability to store users in a contact list so you can easily invite them to future projects and also communicate with them.
  • User Page - A page dedicated to a user, showing any actions assigned to that user for common projects.

I hope you are finding JacobSix useful and it is helping you with your projects.  If you have any suggestions, feedback, or praise, please let us know at http://getsatisfaction.com/tahelpya/products/tapingya_jacobsix.  We appreciate all suggestions and consider them all seriously.  We want to make JacobSix as useful as we can.

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Tue, 08 Sep 2009 08:38:40 -0700 More features in JacobSix. Rolling through the sprint. http://barryvelasquez.com/more-features-in-jacobsix-rolling-through-the http://barryvelasquez.com/more-features-in-jacobsix-rolling-through-the

I have spent a large amount of time optimizing the site as much as possible given the GAE limitations and recent slowdown.  What I mean by recent slowdown is the exceedingly long response times that happen.  This is not all the time, but enough to become annoying.  A request that typically takes 300ms to complete is taking 20 seconds in some cases.  Using Google App Engine is both a blessing and a curse.  You get many benefits but also are at the mercy of the Google Infrastructure.  Could be anything between point A and B.  So, I cannot pin the blame entirely on Google.  Maybe something in the network.  Who knows.

Besides performance improvements, I have also added Action Filtering to the "All Actions" page and "All Closed Actions" page.  I'll be creating screencasts soon to demo some of these features and guide people through the site.  It is not a complex application (that was the point), but some of the features are not completely obvious (let me know if this is not the case, I'll be happy to hear this).  From the All Actions page, there is a little arrow button next to the refresh button at the top right of the listing.  Clicking this will expand the filter options.  You can filter by assigned, group, and priority.  This is a combined filter.  So, choosing assigned and priority will filter on both, not either.

Have fun with the feature and let me know other filters you want to see.  I will add due date filtering (between this date and that date).  That one is in the list.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Fri, 04 Sep 2009 09:12:33 -0700 Where is the slowdown in my GAE App? http://barryvelasquez.com/where-is-the-slowdown-in-my-gae-app http://barryvelasquez.com/where-is-the-slowdown-in-my-gae-app
profile_helper.py Download this file

Recently I noticed JacobSix not performing very well.  Requests would take a long time sometimes, not always.  Well, I think that's the nature of GAE and you cannot expect consistent response times even from the same exact request doing the same amount of work.  Sometimes it takes 300ms, sometimes 3000ms for the same request.  Well, I wanted to make sure it was not something I injected into the code to cause the slowdown so I wanted to time each section of of the request to find out how long it is taking to complete that section.

I created a Profiler class in Python to do just this.  You simply create an instance of the Profiler class.

self.profiler = Profiler(name="Project Controller", enabled=True)

To start profiling a section of code, you call the start() method:

self.profiler.start()

This marks the start time at UTC Now.

To mark a section, you call the mark() method.

self.profiler.mark('BEFORE FETCH') ... some code here self.profiler.mark('AFTER FETCH')

When you are done timing, you can call the stop() method:

self.profiler.stop() self.profiler.report()

The report() method outputs the results of the timing to logging.info() so you can check it in your logs.  Here is an example output:

======PROFILE REPORT Project Controller====== 09-03 05:00PM 12.837 Mark - Name - Between - Accumulatve 09-03 05:00PM 12.837 0 - BEFORE FETCH - 0ms - 0ms 09-03 05:00PM 12.837 1 - AFTER FETCH - 10ms - 10ms 09-03 05:00PM 12.837 2 - BEFORE JSON - 0ms - 10ms 09-03 05:00PM 12.838 3 - AFTER JSON - 0ms - 10ms 09-03 05:00PM 12.838 4 - BEFORE RENDER - 0ms - 10ms 09-03 05:00PM 12.838 5 - AFTER RENDER - 0ms - 10ms 09-03 05:00PM 12.838 ============================== 09-03 05:00PM 12.838 TOTAL TIME: 0:00:00.010875 (10ms) 09-03 05:00PM 12.838 ======END PROFILE REPORT======

The report shows you each mark with the description given when you called the mark() method.  Next it shows you the time between each mark section.  The first mark is showing you how long (in ms) it took between the starting time and the mark time.  The next mark shows you how long between mark 0 and 1 and so on.  The accumulative time is just that.  Finally, the total time shows you how long it took between the start() and stop() calls.

There may be better ways out there, but this is what I came up with real fast.  I've attached the source if you want it.  Maybe messy, but I had to put it together quick to test some sections of my code out.  I have some improvements in mind.

GAE definitely forces you to be efficient.  In my case, it turns out that most of the processing was in generating the JSON of the results and very little time was in the FETCH.  However, this is not consistent.  Sometimes, it seems to take GAE much longer to both FETCH and access the memcache.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Wed, 02 Sep 2009 23:26:29 -0700 Another deployment of JacobSix http://barryvelasquez.com/another-deployment-of-jacobsix http://barryvelasquez.com/another-deployment-of-jacobsix

I'm up again until midnight working on JacobSix.  This will catch up to me soon and I'll definitely crash and burn for a few days.  Going to sleep at midnight and waking at 5:00 AM with the boys is taking its toll.  However, the positive side is that JacobSix is getting better every day.  I worked all night working out bugs with the Invitation workflow.  A major mess, but I think I have it cleaned up.  There were quite a few other issues that I cleaned up tonight.  For example, the "More Charts" was broken if you are filtering on "With Milestones."  Turns out, GAE cannot do "__KEY__" only queries with an inequality filter ( != ).

Another bit of work is to try to increase performance in many of the Datastore queries.  I just don't think it's my issue after looking at the logs and seeing so many inconsistent numbers coming from GAE.  On one request, the processing time is 300ms.  Immediately after, the same exact query comes back as 2000ms.  I don't get it.  I did clean up the indexes, which may help a bit since half of them were not in use.

There's a ton more work to be done to handle errors a bit better.  I'll probably take a step back and clean things up before moving into the next half of this sprint.

If you tried JacobSix and like it, leave me a comment.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Wed, 02 Sep 2009 17:37:00 -0700 Google App Engine Getting Better http://barryvelasquez.com/google-app-engine-maintenance-0 http://barryvelasquez.com/google-app-engine-maintenance-0

I just read this post at the GAE blog:

http://googleappengine.blogspot.com/2009/02/roadmap-update.html

Basically, GAE is getting XMPP support and inbound email processing.  Wow!  The possibilities for this framework keep on growing.  I can only imagine what I can do with XMPP.  Complete IM integration into my GAE applications.  The inbound email processing is even better.  Now, I can imagine with JacobSix and email being sent with Action status updates or new Actions.  Same with the XMPP.  Simply use the JacobSix bot to check on your top actions.

I'm looking forward to all that is coming.

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Tue, 01 Sep 2009 18:21:38 -0700 More new features at JacobSix http://barryvelasquez.com/more-new-features-at-jacobsix http://barryvelasquez.com/more-new-features-at-jacobsix

Burned the midnight oil the last night and added the final two features of the "More" tab at JacobSix.  Notes and Links.  

Notes provides a simple WYSIWYG interface allowing HTML markup text entries.  You can pretty much put any HTML in the note and they are listed in order of update time.  The Notes keep a history of previous versions, which will eventually be exposed so you can rollback changes or view an older version.  For now, it's just a great way to keep information about a project.  Because it accepts HTML, you can embed iframes, which means video or any other embed that's out there.  I haven't tested the dangers of this, which I'm sure are many.  So for now, we'll give it a try and restrict the HTML later if necessary.

Links provides a place to keep any URL you want to save.  Bookmarks or Favorites basically.  However, like TaPingYa (the messaging application), the Links will be collected automatically from around the project.  So, if you post a message to the Project that has a URL, it will automatically be saved in your Links.  You can delete these later if you want.  This just makes it easy to see all those URL's that get posted in various places.  The auto collection is not complete yet, but soon.

I also added some logic to check the state of Google App Engine.  The service goes down for maintenance now and then, so JacobSix needs to handle this better.  I put some code in place to deal with this, but messed up the logic so it didn't go down so well.  Next time!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Tue, 01 Sep 2009 17:16:57 -0700 Google App Engine Maintenance http://barryvelasquez.com/google-app-engine-maintenance http://barryvelasquez.com/google-app-engine-maintenance

JacobSix is down once more because of Google App Engine maintenance for about an hour.  This is normal, but what makes me sad is I put logic in to check for this and report a nice message to users.  My logic was bad and now they will only get a nasty error message on the screen.  Sad, so sad.  I need to get some QA going on this application.  Any volunteers?

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sun, 30 Aug 2009 16:18:00 -0700 Latest Version of JacobSix deployed! http://barryvelasquez.com/latest-version-of-jacobsix-deployed http://barryvelasquez.com/latest-version-of-jacobsix-deployed

I've been eating up my entire weekend working on the latest and greatest features for JacobSix.  I've added Groups and File Storage.  Groups allows you to create categories of Actions, such as "Issue", "Bug", "Feature" or whatever you like.  An upcoming version will allow you to filter and search on these Groups, just like you can with Milestones.  There will also be some additional charts based on the Groups. 

File storage was a bit tricky.  However, you can now upload files to a Project and access them from the Files window within "More."  Eventually, you will be able to reference these files from within Actions.  File sizes are limited to 1 MB each (this is a limitation of GAE).  Storage is for all projects.  The Beta comes with 2 MB of storage.  Not much, but enough to play with the feature and upload small files and zip files if necessary.  As a developer, I'm usually posting source file examples, zips, libs, etc.  I leave the big stuff to S3 and DropBox.  Once again, this limit is across all projects.  After the Links sharing feature is added, you can always post a link to a file stored with DropBox or some other service such as S3.

In order to add File Storage, I had to implement account limits.  Account limits reduce the number of Projects, Team Members per Project, and File Storage allowance.  The Beta version of JacobSix provides very reasonable limits.  Details about the Beta can be found at http://www.jacobsix.com/view/plans.  There will eventually be service plans available, which increase allowances of Projects, Team Members per Project, and File Storage.  These will all be very reasonably priced (even though I have yet to figure out the costs of bandwidth and storage).  There will always be a free option available. Some of the plans come with the Advanced Charts and Reporting (yet to be developed).  The plan is to add many more charts and selections for the ones you want to see in the "More Charts" page.  One big one for me is the Burndown Chart, which is a SCRUM or Agile chart.  This will be a part of the advanced charts.

There were many changes.  Check out the latest feature at http://www.jacobsix.com or http://www.jacob6.com.  If you find any problems, let me know.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Fri, 28 Aug 2009 08:57:49 -0700 JacobSix and Charts http://barryvelasquez.com/jacobsix-and-charts http://barryvelasquez.com/jacobsix-and-charts

The latest version of JacobSix now has a "More Charts" page from the Project.  I have provided four charts that give you various views of your project.  I will be working on a burndown chart for those of you that enjoy SCRUM or Agile project methods.  I'm always looking for feedback on the application, so if anyone has any suggestion on what charts they would like see, then let me know.

The next major iteration will be to work on the following:

  • Action Categories
  • File Attachments
  • Search
  • More Filtering
  • Notes
  • Commenting on Actions
  • Replying to Messages

The plan is to develop these features by the end of September.  Until then, enjoy JacobSix and may it help you with your next project.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sat, 22 Aug 2009 16:58:17 -0700 Latest changes to JacobSix http://barryvelasquez.com/latest-changes-to-jacobsix http://barryvelasquez.com/latest-changes-to-jacobsix

I've been busy with JacobSix and added some very necessary functionality to the application.  I decided to release it fast and get people trying it sooner than rolling it out with tons of features.  Because of this, there are some obvious gaps that will be filled in over a short time.  I am deploying updates as quickly as I can so changes will show up unexpectadely to users.  One refresh later an entire page might change.  Why not?

The latest and greatest changes are as follows:

  • Team Mangement section in the "More" tab.  This allows you to see who is on the Team and remove them if needed.  I put the "Invite Others" button here also.  This might be redundant.  We'll see how it goes.
  • Added an All Closed Page - Displays a paged view of all closed actions for the given project.  This is not filtered by Milestone and is sorted by when it was closed.
  • Added paging to the All Actions and All Messages pages.  Need to style it better though.
  • Added the ability to delete Messages if you posted them.
  • Archive Closed Action command in the "Manage" section.  The Manage section can be found in the "More" tab.  This sets an archived flag on any closed Action in the current Milestone.  Currently, once archived, Actions are gone.  However, a future version will allow the user to see the Archived Actions and unarchive them if wanted.
  • Sort the Project List in the Dashboard by Due Date.
  • Ability to Archive a Project.  This hides the project.  You can view archived Projects using the link in the Dashboard.
  • Ability to Delete a Project.  You can delete a project if it is Archived.

Next if to work on a Charts page.  I'm considering what types of charts would be useful.  If you have any suggestions, let me know at the Get Satisfaction pages.  I'll probably have a bar chart breakdown of assigned tasks by user, one by due date, Estimation and Actual times, and possibly a burndown chart (typical with Scrum based projects).

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Mon, 17 Aug 2009 23:07:44 -0700 New features at JacobSix http://barryvelasquez.com/new-features-at-jacobsix http://barryvelasquez.com/new-features-at-jacobsix

I had some time last week to work on JacobSix.  I've added so much I cannot keep track of it all.  Well, I do use JacobSix to manage the JacobSix project.  Recently, I just deployed Milestones.  You can now create Milestones and associate an Action to the Milestone.  Each Project can then be set to show only the Milestone you need to work on.  Additionally, you can see all Actions, Actions without Milestones, or Actions with Milestones.  The entire project is filtered by your selection.  Milestones have a Due date associated with them.  You can name the Milestones anything you like, so organizing Actions under them can be by Iteration, Version, or anything else you can dream up.

2009-08-17_2303

Milestones are organized under the "More" tab.  Here, you will find some of the future functionality I'll be adding to the project.  This includes Files Attachments, Notes, and URL collections.  JacobSix is currently free for anyone to try.  Let me know what you think and give me plenty of feedback.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sun, 02 Aug 2009 17:16:54 -0700 First deployment of JacobSix.. Simple Project Management http://barryvelasquez.com/first-deployment-of-jacobsix-simple-project-m http://barryvelasquez.com/first-deployment-of-jacobsix-simple-project-m

For a little while I've been working on a new Google App Engine project named JacobSix, after my youngest sound Jacob.  Ever since I created Project Manager .NET (http://www.pmnetonline.com), which is a Project Management application written in .NET and file based, I wanted to create an online solution.

I discovered a framework for Google App Engine named Google App Engine Oil.  This is a very nice framework and reminded me of my Ruby on Rails experiments a few years ago.  The framework is MVC based with additional features such as Session and Cookie shortcuts.  Setup is easy and creating projects even easier.  There is even a TextMate bundle that allows you to create additional controllers and models.

So now, with the help of GAEO and jQuery, I have a nice little PM site tha I can use for future projects.  The site is now at http://www.jacobsix.com.  Currently, it is organized by Project and then Actions.  Actions are anything necessary to complete the Project.  Actions can be completed and have Due dates.  All very typical for a PM application.  Each user gets a Workbook, which shows them the Actions assigned to them.  They can see all that they need to do in all of their Projects in one list.

My plan is to integrate JacobSix into Twitter and Ping.fm, allowing you to add those accounts to your Project and then feed Project Updates, such as Action completion, new Actions added, and so on.  I'm also utilizing Google Charts API for rendering Project Status charts.

This is my first go with it, so there are bound to be some problems.  Hope not too many.

Visit JacobSix and let me know what you think.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Sun, 12 Jul 2009 07:56:00 -0700 More improvements to TaPingYa http://barryvelasquez.com/more-imporovements-to-tapingya http://barryvelasquez.com/more-imporovements-to-tapingya

Last night I found the time and energy (what matters) to make some more improvements to TaPingYa.  TaPingYa has a feature called "Favorites Feed."  What this does is show all chat messages from rooms that a user tags as a favorite.  It aggregates all of the rooms into one stream so you can follow the conversations from multiple rooms.  I added the list of online guests to the Favorites Feed so you can now see who is chatting in all of your favorite rooms.  The next step is to allow you to reply or post to a room right from the Favorites Feed, allowing you to carry on chat within all your rooms from one place.

Check out TaPingYa at http://www.tapingya.com

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez
Thu, 09 Jul 2009 14:29:00 -0700 Fun with Mail, AppleScript, Python, and TaPingYa. http://barryvelasquez.com/fun-with-mail-applescript-python-and-tapingya http://barryvelasquez.com/fun-with-mail-applescript-python-and-tapingya

We use the Confluence Wiki to document development requirements and other information useful for the projects we are working on.  I thought it would be cool to update my team when any of the project pages were modified.  There are many ways of doing this, but I thought a learning experience using TaPingYa would be fun.  What I ended up doing is using a Mac OS Mail Rule to look for emails with [wiki] in the subject line coming from the address of the Wiki emailer.  The rule then executes an AppleScript that takes the email subject and makes a call to a Python script that knows how to post to TaPingYa.

The AppleScript was easy (note, I replaced login information with username, password and room_password):

(* Send message to tapingya based on mail. *) using terms from application "Mail"     on perform mail action with messages selectedMessages         repeat with eachMessage in selectedMessages             set myString to subject of eachMessage             do shell script "python ~/Documents/workspace/tahelpya/trunk/twitter/tapingya.py username password 1234 room_password \"" & myString & "\""         end repeat     end perform mail action with messages end using terms from

You save compile and save this script somewhere on your computer.  I chose Documents, which is the default.

Next, the Python.  The Python is a bit trickier as I had to authenticate to the TaPingYa services using Basic Authentication.  I created a Python class to do this work, making a nice method for posting messages to the provided room.  Source code is here:

http://www.pastebin.cz/20782

The last step was to setup the simple rule in Mail.  You simply select AppleScript as the rule action, provding the path and script file created in the first step.

That was that.  Now, whenever a page is modified on the wiki that I am interested in, the TaPingYa room will get a message with the subject of that email.  Of course, this only works when my Mac is running and Mail is open.  Quite a limitation.  However, it was a fun test and a way to learn a bit of AppleScript and integration through Python to TaPingYa.

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/911608/IMG_6458_superman.jpg http://posterous.com/users/eT3v0FKPyF Barry Velasquez bvelasquez Barry Velasquez