For the longest time it has annoyed me that the default google search in MobileSafari always went to the desktop version of the search results page as opposed to using their mobile version. I tried a number of things and kind of gave up on the idea until I came across a solution on hackint0sh tonight.
You can even use this technique to force it to any search you wish, not just google or yahoo.
what you need:
-a jailbroken iPhone
-a hex editor (I used 0xED for osx. Google around for a Windows editor)
-ssh access to your iphone
how to do it.
1. download the file /Applications/MobileSafari.app/MobileSafari off your phone onto your desktop. MAKE A BACKUP OF THIS FILE TOO.
2. open that file in your hex editor
3. search for www.google (leave out .com) and you will find a string that looks like the following (note that it may be spanned over a few rows):
http://www.google.%@/search?q=%@&ie=UTF-8&oe=UTF-8&client=safari
4. Change that to:
http://google.com/m?gl=%@&q=%@
*****IMPORTANT: This obviously is much shorter than the original URL that was in there. You MUST add enough spaces after the new url to make it as long EXACTLY as the original URL so as to not corrupt the file.
5. save the file.
6. force quit mobile safari by opening it then holding down the home button for 5 seconds
7. upload your modified file back onto your iphone, overwriting the old file.
8. now open up safari, test it out and voila!
The default icon for Bossprefs was OK… but I wanted it to be a little cleaner. Here is the one I am using:
It is based on the icon system preferences icon used in OSX Leopard.
Enjoy
I noticed today in my installer.app on my iPhone that uSirius had released a new beta version of the super-cool Sirius sattelite radio steaming program that runs on the iphone or ipod touch over wifi. Of course, you do have to have a subscription to Sirius to run it.
I had the previous version running before, but I have always had troubles with it maintaining a connection while playing.
All in all I don’t notice much of a difference from the previous version. I had hoped the update would have fixed it, but hey, it’s still in beta.
Still a great program and great
concept to be developped.
To install uSirius on your iPhone or iPod Touch, simply do a search under “all packages” in your installer.
I’ve also made a custom Sirius dog icon to replace the default uSirius icon, which i found to be a little ugly. so here it is:

I’m only a little familiar with the iPhone as of right now, so I’m sure theres a better way to install this icon, but the way I did it was I browsed though my files using SSH and replaced /Applications/uSirius.app/icon.png
Enjoy!
Like many, my local mall has a ‘Lids’ store that sells a huge variety of different hats. They also do custom embroidery on any hat you want at a pretty fair price. A blank flat peak New Era style hat only costs about $20, and to get a logo or something you bring in embroidered on it only costs about $13. Sounds like a sweet deal for a quick custom hat.
The other day I went in wanting to get a hat made for Lax Life, a logo I did not too long ago. I brought in a CD with the logo in just about every format I could think of that they might use: EPS, AI, SVG, PDF. I walked in and presented the CD and told them I would like a hat made of the logo on the CD and they told me it needs to be in DST format. They also said that in order to get it in DST format they would have to send my logo to Indiana where they would convert it to DST format. Costing me a whole $69 dollars. Ouch. My plans of just getting a quick hat made just got stoned.
I’ve been working as a graphic designer for several years and have never heard of DST format before. I suspected it might just be some obscure vector format so that Lids could charge extra for handling your logo. Nonetheless, I went home and did some research.
It turns out that a DST file is a “Digital Stiching File” used by embroidery machines to tell them where to place all the stitches, what patterns to use, etc. This is all information that a standard vector file lacks. I checked all my usual programs (Illustrator, Photoshop, Freehand) to see if any of them supported DST files. Nope.
I got on Google to see what programs I could use to possibly convert my vector logo into a DST file. It turns out the there is only a very small handful of programs that can handle these files:
- Designer’s Gallery StudioPlus
- A home solution for embroidery. They offer a free demo version on their website but do not list a price or where you can get it.
- Orchida Embroidery System
- A simple looking embroidery program. Looks like it would do the job. They offer a free download on their website. Costs $499 to buy it.
- VeePro Embroidery Software
- Looks like a nice professional piece of software actually. They have a free demo version that can be downloaded from their website, but they do not list how much the full version costs. Might only work on Windows XP too.
- Embird
- Another solid looking piece of software. Costs $129 USD. They offer a 30 day trial that allows you to save up to 100 designs. Not bad.
- Buzz Tools
- They offer a variety of different software programs for handing embroidery files that run as low as $100
- SewWhat Embroidery
- A pretty cheap solution. They have a demo version that will let you save up to 60 files for free in 30 days, or it only costs $50
- WinDaisy
- Junky looking site, but they offer a free demo version of their software that might be useful.
- Corel DraWings
- Program that requires Corel Draw 12 or higher. Pretty Expensive professional solution, around $1000
- Wilcom ES
- Wilcom appears to be the leader in the embroidery software industry. I can only assume their software is the most expensive.
- Corel / Wilcom DecoStudio
- Some sort of weird collaboration between Wilcom and Corel. Looks Kind of like an upgraded version of drawings
Any of these programs would probably do the trick. Corel DraWings is a fantastic solution. I design my logos primarily in Adobe Illustrator, and DraWings lets you open .AI files directly! Of course, at $1000 MSRP, it’s not for the one-time-hat-maker like me, so I called up a guy I went to school with who now does embroidery and was willing to let me use his computer for an hour or two.
I grabbed a couple screenshots.
Step 1 - Draw (ie. paste your vector shapes or open an existing vector file):
Step 2 - Stitch:
It is really that simple, and fun to play around with to see what kind of effects you can get just by playing around with the different embroidery styles.
In the end, I got my hat made no problem. I brought my DST file back into Lids and they opened it no problem. Took about a half hour for the machine to stitch it up. Good Times.
Anyone who has ever built a website, particularly one that is standards compliant knows that IE6 is a big headache when it comes to rendering HTML and CSS. IE6 has many bugs and does a bad job of rendering various elements in the Document Object Model (DOM).
Although IE7, nor any browser for that matter, is perfect, it is a significant step in the right direction from it’s predecessor. IE7 has been around now for over a year now and has proven itself to be less of a headache to cater to when developing websites.
Personally I am a Firefox user (predominantly). So when I’m building a web page, I test in IE7 as well, but I almost never check it in IE6 until I am basically finished. Some might say this is silly, but actually, it allows me to always test latest and greatest tricks that I am constantly learning without having to worry about the limitations of IE6.
The problem with this approach of course is that I always end up having to go back and make (sometimes significant) changes in order for it to work in IE6, which always has me wishing that I could abandon it altogether.
Realistically though, as of the date this was written, it is far too early to leave IE6 users hanging. According to W3Schools.org, IE6 still makes up approximately 30% of the browsers currently being used (March 2008). And that is quite simply too many users to leave out in the dark
RSS feeds are nothing new to the web, in fact, they have been around since March 1999. However they have gained popularity over the past few years and have become an integral component to the way the web works as we know it today.
Today RSS is used for just about anything you can think of, from delivery of news to your RSS reader, to retrieving the latest exchange rate to display on your website, and countless uses in between. Displaying RSS feeds on your website is a great way to keep your site up to date with all sorts of the latest happenings from elsewhere on the web that may interest your site’s readers.
There are various ways to display RSS feeds on a website including both PHP and Javascript solutions. Personally I prefer PHP because it offers more control over the way the feed is displayed, and at the same time does not rely on the user’s browser to display the feed properly. In short, you can make your website truly dynamic by using PHP to display an RSS feed.
My favourite RSS parser written in PHP is Magpie RSS reader. Magpie is a simple PHP script that uses a function called fetch_rss() to retrieve just about any kind of RSS document you throw at it and convert it into a PHP array which you can then use to display however you wish.
If you are using Wordpress as your blogging engine, you don’t have to worry about setting up Magpie on your server, because Wordpress already uses a modified version of Magpie. However, by default, the Magpie script will not be included in your design template. Don’t fret, doing this is simple:
<?php
include_once(ABSPATH . WPINC . '/rss.php');
$rss = fetch_rss($uri);
?>
If you aren’t using Wordpress, it is still quite simple to set up. Simply download Magpie from the sourceforge website and extract the contents onto your web server, from there, all you’ll need to do is include rss_fetch.inc on any page that you want to display rss. Doing so is simple.
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . '/inc/rss_fetch.inc');
?>
From here you may fetch as many RSS feeds onto your page as you wish using the fetch_rss() function. Here is an example where I get the terrifi.ca RSS feed:
<?php
$rss = fetch_rss('http://terrifi.ca/feed');
foreach ($rss->items as $item ) {
$title = $item['title'];
$link = $item['link'];
$description = $item['description'];
echo "<div><a href=\"$link\">$title</a></div><div>$description</div>";
}
?>
And Voila! RSS feeds displayed on your site. This is of course a pretty generic way of displaying the feeds, but you can get as creative as you like just by playing around with html in the ‘echo’ line.
Looking for online web hosting? Chances are you don’t have to look too far. Today there are hundreds of thousands of web hosting providers that offer a wide range of hosting packages to meet various different needs. The problem is never “Where can I find web hosting”, but rather, “Which web hosting provider should I choose”.
From all the availability, and the wide range of web hosting packages out there, it can be a tricky decision deciding which web hosting provider you should go with. When it comes down to it, everyone wants the same thing out of their web hosting: a great price; great hosting; and great customer service. Because joining a web hosting provider can be a fairly big commitment, it is important to get these all the first time, rather than signing up with a bad host, and having to move later.
Personally, I have tried three different hosting providers. Here I will go through and describe the pros and cons of the three I have tried ranked from favourite to least favourite.
1. Hostmonster.com
Anyone who has used BlueHost would probably have received a similar service to Hostmonster. I have been with Hostmonster for a few years now and have been very happy with them. Prior to trying Hostmonster I had tried a couple other hosts (see below) and, In one way or another, was never completely satisfied. I have been with Hostmonster hosting for almost three years now and have not switched since.
Here are a few things I love about Hostmonster web hosting:
- Hostmonster is very inexpensive ($6.95/month)
- They essentially have unlimited everything (php, mySQL, disk space, etc)
- Unlimited domains - meaning I can register as many as I want and host them all here under one account.
- Their admin interface is cPanel (the best, most popular and supported admin panel online)
- Fantastico free web script installer, very easy to use
- Their support has solved any issues I have
- I have never noticed any downtime
- My websites load extremely fast
2. HostGator.com
HostGator is another great web hosting provider. I really have not had any problems with them at all and they were great for me all along, in fact, I still host some of my websites on HostGator. The only reason why I liked them less than HostMonster is because they are slightly more expensive. I have since noticed that HostGator has dropped their price slightly on their featured package. At the time I signed up it was $10.95 but I see now that it is just $7.95
Things I liked about HostGator:
- Unlimited Domains
- Tons of web space, mySQL databases, all the goodies
- Never had any issues to have to call into support
- cPanel admin panel with Fantastico
3. Routhost.com
Routhost is alright for an entry-level web hosting service. It is very inexpensive and offers some pretty good packages. That said, I had a number of issues that I was always writing in to support about. Just weird PHP errors and what not that I would get at random times. Additionally, I have found their uptime to never be quite as good as either of the two hosts above. Honestly though, for the price you pay, I guess you can’t really complain. For a small, simple website, Routhost would probably do the job just fine.
For $2.99, Routhost offers:
- Unlimited web space
- 1 domain
- PHP, mySQL etc.
- cPanel admin panel
- Fantastico
4. Plughost.com
I shouldn’t even really mention Plughost since they were a complete and utter scam in every sense of the word, but I will mention it anyway so that anyone reading this will never sign up with them (if for some reason they were even considering it in the first place). When I registered with Plughost, the package included a free domain, which I went ahead and registered. After a number of days they finally sent my registration info, but the domain had been registered under their name. To make a long story short, I was never able to get that domain back to transfer or do anything with until it expired a number of years later. Additionally,they never answered any support requests, even after claiming to be under new ownership.
So where should you start if your looking for hosting? Personally I’d recommend Hostmonster to 90% of people. But if you don’t think Hostmonster or Hostgator would suit your needs, a great place to start would be the Web Hosting Talk forums. The people on this forum offer multiple unbiased opinions about just about any web hosting provider you can think of.
Happy hosting!
Although the best way to convert raster shapes / images to vector graphics is by using a vector illustrating program, such as Adobe Illustrator, and using the pen tool to trace out the shapes manually, Photoshop also has its own way of automatically converting selections into paths, which can then be exported as vector shapes to be used in Illustrator or otherwise.
To get the best results when converting raster images to vector graphics, it is important to use as high of resolution image as you can find. In other words, the largest possible size, and highest quality. If your source image is low quality and small, it can still be used, however the vector output will likely be a more shabby and may not look very nice.
The first step is to make the image very large so that photoshop can do a better job of tracing out the vector. Do this by selecting Image > Image Size and increasing it something like 800%. This step is not necessary if you are using a very large image to begin with.
Create a selection by selecting a color range under Select > Color range.
Now open your paths panel if you do not already have it open (under Window > Paths) and at the very bottom there is a button that looks like a circle with two arms coming off it. If you hover over it, it will say “Make path from selection”.
Next, go File > Export > Paths to Illustrator. You will be prompted to save the file, so do so wherever you wish.
You can now open the exported file in Illustrator and use it in vector illustrations and resize it as you wish.
For any of you out there who might be as dumb as I am, don’t even think about it. As a matter of fact, don’t even even consider putting anything on it but cookware without first consulting your manual.
Why? I just went through the ordeal of a lifetime trying to get melted aluminum un-fused from the glass surface. When aluminum touches a hot ceramic cooktop it will literally fuse into the glass.
Shortly after I did this, I read in my manual in bold print “Do not put aluminum foil on the Ceramic Glass Cooktop”. This may be common knowledge to many of you, but apparently not with me.
So what happens when you get aluminum foil stuck to your cooktop?
The good news: It does come off.
The bad news: Depending on the severity, your cooktop is likely permanently damaged.
When the aluminum melts into the cooktop it creates all kinds of “peaks and valleys” or ripples in the cooktop that can in no way be fixed.
So, how does it come off you ask? Well, don’t panic first of all. And if you’re thinking of hacking it with something sharp and metallic like a knife (like I did), don’t do that either. You’ll probably notice that it doesn’t scrape off with ANYTHING, so the best thing you can do is wear away at it. ie, scrape at the surface of it with something like a plastic card to get the big pieces off.
The thing that really saved my life is cerama-bryte. Both the liquid product and the scrub pads. If you have aluminum stuck to your stove and don’t already own both of these products, go out and get it right now. You will still need to scrub for a couple hours, but eventually the aluminum will wear away and your glass cooktop will look as good as it ever will after such an accident.
When I first went looking for a way to animate div’s from left to right I found very little out there in regards to Jquery solutions. The closest thing I found to what I needed was Coda Slider. Coda slider is a very cool div slider built in jQuery javascript, and essentially did what I needed it to do. It uses a tab navigation to allow the user to slide between different div panels, and look at different content within the page without having to leave the page or scroll downward. Plus the animation effect looks super cool.
But what happens if we don’t want the boxy looking tab navigation above the slider? Say we want a tab navigation below, beside. Maybe we don’t even want a tab style navigation at all.
Coda slider allows you to trigger the sliding from any on-click event you want, but since Coda Slider relies so heavily on it’s tab navigation, from a coding perspective, it is not possible to remove it.
At first I started using coda slider and making little modifications to the code, but as I made more and more changes to it’s, I realized I needed a more custom solution. Below is the script and explanations as to how I created a universal slider panel from the ground up. Rather than having a tab nav, this solution simply allows us to create our own nav (aka slideNav) which you can make look however you want, and put wherever you want on the site.
Enjoy! Javascript file to be posted soon…
$(document).ready(function(){
var numPanels = $(".panel").length;
var panelWidth = parseInt($(".panel").css('width').replace(/px/, ''));
var totalWidth = numPanels * panelWidth;
$("#prev").css('width', totalWidth);
function sliceHash(h){ return parseInt(h.slice(1)); }
if (location.hash && sliceHash(location.hash) <= numPanels) {
var currentPanel = sliceHash(location.hash);
var thisPanelHeight = $("#prev div[title="+currentPanel+"]").height();
$("#prev").css('right', ((currentPanel-1)*panelWidth) + 'px');
$(".cont").css('height', thisPanelHeight + 'px' );
} else {
var currentPanel = 1;
}
function slideTo(panelNo){
var thisPanelHeight = $("#prev div[title="+panelNo+"]").height();
var distanceToMove = parseInt((panelNo - currentPanel)*panelWidth);
$("#prev").animate({right:"+="+distanceToMove + "px" }, 600);
$(".cont").animate({height: thisPanelHeight + "px" }, 600 );
currentPanel = panelNo;
}
$("#slidenav a").click(function(){
slideTo(sliceHash($(this).attr('href')));
});
$(".nextPanel").click(function(){
var nextPanel = currentPanel + 1;
if(currentPanel<numPanels){
slideTo(nextPanel);
location.href = "#"+(nextPanel);
}
});
$(".previousPanel").click(function(){
var previousPanel = currentPanel - 1;
if(currentPanel>1){
slideTo(previousPanel);
location.href = "#"+(previousPanel);
}
});
});