Thursday, September 4. 2008Google releases Chrome
So! Google has finally made its entry into the browser market, and its filled with lies!
Specifically: Google's new browser software is designed to work "invisibly" and will run any application that runs on Apple's Safari web browser, company officials said. and "If you are webmaster, and your site works in Apple Safari then it will work very well in Google Chrome," Pichai said. So then, fire up Chrome and point it at http://iphone.itransit.com.au/. So, it seems that not all sites that work in Safari will work under Chrome. Its a fair assumption that most sites don't make heavy use of window.openDatabase (HTML 5 spec) but its still inaccurate to say that all sites that work in Safari will work under Chrome. Wonder if thats just time/laziness on Google's part not to pull across a more recent version of WebKit or because they wrote their own JS engine (that should be outside the JS engine though..), or because its a competing feature against Google Gears? Hopefully not the latter. It would be nice to see where Google takes Chrome though as the beta progresses. Otherwise though, not bad Update: Looks like they're using the "Safari 3.1" branch of Webkit for the beta, which does support window.openDatabase just fine. Seems to be a compile time option and they're choosing to disable it. More info/source over at http://dev.chromium.org/. bok Wednesday, July 23. 2008iPhone + Safari + Gestures
Looking for iTransit? Check two posts down.
-- Been playing with touches in Safari, specifically trying to track certain gestures. If you haven't read it, a good primer on touches/gestures in Mobile Safari can be found here. Its a great starting point. So now that the its been established as to how to do Drag and Drop and rotating/scaling what about the other one finger gestures that apple employs? Specifically, I'm trying to replicate the swipe left and right functionality of the photo browser (show previous/next photos), and I've been able to do so. The trick here is to catch the initial touch event, and the ending touch event and work out where our finger has gone. A key thing to remember is that the touches are passed around and updated by reference, so your original copy of the touch will be updated with a new position. What I've ended up with is a small class that watches the touchstart and touchend events on the document level, and when it detects a swipe it fires a gesture:swipe event. How? The following is the code that I used, you'll need Prototype to make this work. Click on a comment to hide it. Click here to show all comments.
var GestureClass = Class.create
Is that documented enough to make sense? Drop me a line in the comments if not and I'll see what I can do to explain better You'll see this gesture used in the new version of iTransit, naturally - and there's more gestures to come! Cheers, -bok Thursday, July 17. 2008iTransitHi all, While I'm quietly working on a new version of iTransit (iui is a bit bloated...) you're invited to continue to check out the current version @ http://iphone.itransit.com.au/. Presently it is for Melbourne only, other cities are on my medium-range radar. Here's whats coming:
The current aim for iTransit is to be something that you can whip out on the go to find out info live - as such browsing timetables won't be a focus. Comments, suggestions and other feedback is very valued. Feel free to leave a comment below or via the app. Cheers,
bok Friday, July 4. 2008Melbourne Public Transport + Google Maps
While I'm detailing apps that I've played with but never published, there's the beginning of something larger with regards to Melbourne's Public Transport system.
For the moment, its just a google maps version of the network maps with some station/stop info, but you can check it out at http://transport.odynia.org/maps/. I had planned on going the full stretch and making it the ultimate resource of its type, but my time doesn't seem to be my own lately! bok Tuesday, August 22. 2006BUBBLES!The future.. is Bubbles!
Weeeee
Yes, so I am excited, watch this space!
-bok
Wednesday, August 2. 2006Playing with GridsThis seems to be the most popular subject available on this blog. Seems no one has tried playing with the Microsoft CRM grids as much as me, which is rather interesting
A while back I touched on how to "colourise" the grid rows, a reader comment got me thinking about how I could satisfy an internal request here. In our old system, they used a dummy entry to trigger a filter which changed the formatting to highlight it. IE they created a record of type "notice" and it would make it bold and bright purple! Couldn't miss it!
So they've asked whether it would be possible to implement something similar with CRM. As these screenshots show, it is!
Before
After
As you can see, a huge improvement, they should have no problems working out that there are no more repairs to be booked for those days
This uses the same colourising code as the previous post, with a few additions
Click on a comment to hide it. Click here to show all comments.
// if someone can work out why the computers here insist the week starts at Thursday what would beThis will take the contents of a lookup field in the grid, check its GUID against the correct one, and if it is remove all TD's from the field except for the one containing the lookup, and then expand and modify it.
Now please remember, this is a VERY BASIC example. If you modify the view at all or the view contains different fields it won't work. This goes for all grid modifying via javascript. Its also very definitely NOT SUPPORTED by Microsoft. So don't ask them.
From Steve:
Hi, I'm thinking whether we can modify the grid view such as add .gif images in the column?
I need to do that because there's a user requirement which the customer wants me to show different gif images (like traffic lights) based on the status.... Do you have any idea? Sure do Steve!
What you would do, is once you are in the loop checking each row, instead of replacing the background colour (or in addition to) you could add an image to a column, or replace the icon. To replace the icon you would be looking at something like:
grid.childNodes[i].childNodes[1].innerHTML = '<img src="http://server/your/img_here.gif" alt=""This has been tested and seems to work
As always, I hope this helps someone!
-bok
Update!
I get several requests a week for the content of statuses.aspx, and given that I don't actively work with Microsoft CRM anymore I figure it might just be easier if I post the source here. Feel free to comment if you need help, keep in mind though that I'll probably be a bit rusty by now
<%@ Page Language="c#" Debug="true"%>
Thursday, July 27. 2006Xnyo DevelopmentWell its official...
There's 116 pages of the Xnyo source printed out in pretty syntax-colours on my desk with a plethora of scribbles, crosses-out, adjustments and notes on there. I've found ALOT of areas that I'm just not satisfied with and want to redo. So I dare say this will end up being a full re-write.
I'll try to make it as backwards compatible as possible, but one thing is for sure, this will be a forward looking rewrite, meaning that unfortunately it won't be PHP4 compatible. I want to start making use of exceptions and better OO practices. Things like autoloading will be incorporated into the plugin system. Exceptions for the errors, __get() and __set() for config options. I'll investigate extra things like PDO and the new filter extension that'll be in 5.2 (which functions remarkably similar to my filter stuff..) and see how they go. I'll keep this blog up to date with development notes as I go.
Should be interesting
-bok
Wednesday, July 19. 2006Xnyo, Smarty, AJAXBeen playing recently with ideas on what I could make Xnyo's AJAX functionality look like. I've started to take a basic look at how other libraries are doing it, so this may evolve in the furture.
So far, I have this:
Click on a comment to hide it. Click here to show all comments.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
this is very very early stages yet, just me mainly pushing some ideas onto something more concrete than my brain.
The basic idea here, is that the {effect} function will create an event (or function?) called login_failure that will call the shake effect on the first element found inside it. The {post} function seen in the button element will then post to Pavid (the Xnyo XMLRPC backend) calling the $xnyo->login() method, passing the values of the username and password field. On an error it would trigger the login_failure event, causing the loginbox to shake.
Make sense? Please feel free to leave any comments.
-bok
Thursday, June 29. 2006PHP SecurityIt seems that once again people are trying to spread Fear Uncertainty and Doubt (FUD) about the security of PHP. The article http://www.owasp.org/index.php/PHP_Top_5 lists what they consider to be PHP security faults.
This is simply not true. None of the faults listed here are actually PHP-specific. The items they list could occur on any programming language if the programmer was sufficiently inexperienced. Further, any and all of the faults have been made harder to access by recent versions of PHP.
The article does make for a good read though, on some of the basic security practices you should undertake on any language, and would likely have been well received if not worded in such a manner that it could be perceived as an attack
Remember though, a programming language is only as secure as the person using it. Read up on your security practices and you'll be right. Pay attention to security announcements, most major open source projects have them in an easy to access place, and always keep your software uptodate with patches!
-bok
Showing / Hiding Fields For User Who Created ItemRonald Lemmen has recently pulled out several stops in what was possible with CRM in his attempts to be able to show and hide fields based on the user logged in, and what roles they have.
I won't repeat his excellent work, but I will put forth an idea I had as to another possible use, one which I've had to implement here to keep up with Management's demands..
In this one, using Ronald's code to get the user id of the logged in user, we can compare it to the created by field. This of course requires that we have the created by field on the form somewhere. Then you can use the following code (the getUserId() function is from Ronald's blog) to check whether this is the user who created this object, and show/hide a section (or field or tab or whatever) based on that information.
Click on a comment to hide it. Click here to show all comments.
function getUserId()
It's a really simple idea. Can have some interesting uses, particularly if you combine it with the Security Role functions. This means you could make it so that only the person who created the item can change certain values, unless they're a high level manager.
Think about it
-bok
Wednesday, June 21. 2006"Colourising" Microsoft CRM GridsRecently I came up with a nice idea: what if we could shade the rows in grids?
I thought through it, and realised it was possible. Of course its not possible to make it automatically colourise the grid, at least not without editing the aspx pages and that would go well beyond the realms of the supported customisations.
Before we go further, please remember that this is not a supported customisation either as it involves searching/editing the html output, which Microsoft is well within its right to change at any time.
The code that does this is split into two bits. You could go ahead and add the "colourise" code to the isv.config.xml file, but i really hate editing that all the time
Like so:
<Button Title="Colourise" ToolTip="Colourise active grid view"That loads up the following script.
scripts/colourify.js
Click on a comment to hide it. Click here to show all comments.
/**
As you can see, it has limited application but can be useful for a "quick glance". Some shortcomings include not holding the colourised status through reloads, changing the grid page, resorting the grid, etc, as well as the loss of the blue "selected row", as you can see below this only comes up with a white font instead of black. This is also a basic prototype version. I'll extend it at some point in the future to be able to colourised based on owner, dates, or whatever columns are there
I suppose I should show some screenshots of what this actually does..
Before
After
Enjoy!
-bok
PS. I've had several requests for the source to statuses.aspx. If you would like to see this leave a comment and I'll be happy to email it through, not going to post it here though as my C# is very basic - I've only been coding in it for 6 weeks
Update!
I get several requests a week for the content of statuses.aspx, and given that I don't actively work with Microsoft CRM anymore I figure it might just be easier if I post the source here. Feel free to comment if you need help, keep in mind though that I'll probably be a bit rusty by now
<%@ Page Language="c#" Debug="true"%>
Monday, June 12. 2006Thoughts on the next XnyoHowdy,
There's been a lot talk lately about things like Active Record. I too have taken to this concept, and will adapt it into Xnyo 4. I'll be taking the extra step though, and trying to adapt its simplicity and implicitly enable more complex scenarios.
I plan on doing this by extending the existing database specifications section we have, to allow for complex relationships between tables, that will be automatically re-assembled coming into and out of the database. It should be interesting!
The AJAX wave is sweeping across the internet, and there are some killer javascript libraries out there. Several languages have taken the step to incorporate javascript functionality into the language (like ruby with .rjs). I'll be undertaking several approaches to determine what I feel to be the best way to embed ajax functionality into Xnyo. Maybe something like {div id="divone" effect="fadein" when="someobj.onclick"}, I'm not sure though, definitely something I need to think about.
Been thinking alot about backwards compatibility with Xnyo 3. Looking at the minimal install-base for 3, I'm not sure its such a top priority after all. It might be worth redesigning Xnyo from a better OO standpoint, with a "compatibility layer" to run 3.0 applications transparently. Of course if I do this I'll still support 3, not that it needs much of it.
Please, let me know your thoughts, comments and feedback are always welcome!
-bok
Tuesday, June 6. 2006Icons in MenuItemsSince the release of CRM 3.0 there has been examples of menu's in the "Action Bar" having icons next to the menu items. Such as this:
While it appears that there is no documentation (at least not in 3.0.4 of the SDK) as to being able to do this in the page's menu, it is actually possible, as this shows:
All you need to do is add the Icon attribute to your MenuItem entry in the isv.config.xml file, ie:
Click on a comment to hide it. Click here to show all comments.
<MenuItem Title="1. Check-in Computer" AccessKey="1" Icon="/icons/repairs/checkin.gif"Enjoy!
-bok
PS. Thanks must go to Ben Vollmer for the source of the icons, he has posted a list of places you can find your own icons on his blog.
Saturday, June 3. 2006Disappearing CalendarSeveral people have reported that their settings disappear when using the Outlook Client for CRM alongside the Web Client. This is a commonly known problem, and there are several solutions. There is no "correct" solution, any one could best suit your needs.
Delete the temporary files.
As reported on TIDBITS on MS CRM clearing your temporary internet files resolves this issue. This works by deleting the CRM cookie thats stored in your browser.
Use different URLs for accessing CRM.
As reported on Mid Atlantic Microsoft CRM and on the Microsoft CRM Newsgroups you simply need to set the URL to access Microsoft CRM to be different for each service necessary.
For example: Say you host your CRM service on an IIS Website using the IP Address 10.0.0.9 and you access it using http://crm/. In most cases http://crm.yourdomain.com/ should work also. Because this problem lies in the cookie Microsoft CRM uses to know which client you're using, if you specify say http://crm.yourdomain.com/ in the CRM Outlook Client, that means that the cookie will be issued with the crm.yourdomain.com domain set. If you then use http://crm/ to access the CRM Web Client, CRM won't see the first cookie as it is using "crm" as its domain setting.
Voila, fully functional clients
Hope someone will find this useful!
-bok
Friday, June 2. 2006Upcoming Xnyo featuresHi all,
I'm throwing up the list of possible features for Xnyo 4.0. Alot of these you'll find in other frameworks, but then there are a lot of things in other frameworks I'm not fond of. One of the things I hear most often about Xnyo is from people who have similar-minded development styles to myself, which means Xnyo suits them perfectly. What we'll be trying to do with 4.0 is evolve along that same philospohy, but add features designed to make it even faster to work, without losing the flexibility thats inherit in Xnyo. I want you to be able to work quickly, securely and proactively, but at the same time I don't want to tie you to a naming/storage scheme of my own choosing.
The list of possible new features stands at:
Active Record
The industry is seemingly raving with this design pattern. While it is mainly useful for simple projects, incorporating it into our existing database abstraction layer should allow us to scale it up to complex projects as well.
Revamped Debug Console
The debug console came into life relatively late in the development of Xnyo 3.0. As such it was never properly designed into the structure of Xnyo, so hacks were necessary to keep from being a performance drain on production systems. I would like to design Xnyo to incorporate this more fully, with performance in mind, as well as extend and enhance its capabilities. And a facelift probably wouldn't go astray
Web 2.1
With the seeming rise and rise of Web 2.0 applications I'd like to bring Xnyo up to Web 2.1 (beat that!) and incorporate alot more dynamic features, as well as AJAX and the rest of the bandwagon. Though I have something special in mind here
That's all I have so far, I'll keep updating this entry with more details as they emerge. If you have anything you'd like to see added, please feel free to post a comment!
Cheers,
-bok
PS. For those that have asked, you can see what the current debug console looks like on Xny by appending ?xnyo_debug=true to the end of the main page of the Xnyo website. No direct link for spam reasons
(Page 1 of 2, totaling 19 entries)
» next page
|
QuicksearchArchivesCategoriesThursday, March 11 2010
Should I be getting excited about this meeting? Thursday, March 11 2010 I think Brumby has enough to do without trying to get involved in other states. Can we get our stuff up to scratch first? http://tr.im/RmHc Thursday, March 11 2010 I think I did my back on the train trying to stay upright. Ugh Thursday, March 11 2010 And there it goes. I was just dozing off when i started thinking about work. Designing systems in my head again. Thursday, March 11 2010 I suppose I should get some sleep. Wouldn't do to be falling asleep while @somtum is trying to talk me into building stuff. Thursday, March 11 2010 @kahlerisms but in answer to your question, the viaduct is the one over Spencer St, yes Thursday, March 11 2010 @kahlerisms sweet, thanks Thursday, March 11 2010 @kahlerisms F1 special!? Thursday, March 11 2010 @kahlerisms catch the tram from the elizabeth st terminus instead of waiting like a sucker :P Wednesday, March 10 2010 @kahlerisms still the best by far. I've stopped updating my library now and just play through the videos section :( XaBitError on line 146 of /var/www/vhosts/odynia.org/blog/site/bundled-libs/Onyx/RSS.php: File has an XML error (EntityRef: expecting ';' at line 635). MacTalkThursday Morning News
Thursday, March 11. 2010 Tutorial: How To Make All Your Album Art Show Up In iTunes Thursday, March 11. 2010 MacTalk in New York: Manhattan Ain’t Cheap, Plus an FAQ Wednesday, March 10. 2010 Wednesday Morning News Wednesday, March 10. 2010 Can Touch This #44 – The Cat in the Hat Came Back Tuesday, March 9. 2010 Syndicate This Blog |

