Author Archive
- Posted by Mon
- July 17th, 2010
I’ve known subervsion for a while, I didn’t use it that because I’m like a one-person-web-army, so I didn’t find the use for it and used Bazzar – which you could do version control by folder and with a nice GUI built in. The only reason I didn’t do a full blown version control with Bazzar was that there weren’t a lot of free hosts that host Bazzar and I didn’t feel like installing one.
Why Git > Subversion – a short intro
Subversion is like a tourist bus, everyone has to get there at the same time and check in, if one’s missing – oh crap. If the bus crapped out, you ain’t going anywhere either. Git is like a rental car, you check in when you’re done using it. If your car broke down, you can replace it with another. I thought this anthology makes sense if you want to visualize it.
Back to the nerd terms, here’s what they are. So finally, I just started a new job that I actually work in a team that use Subversion. It’s great and all, I still don’t like it as much. Biggest problem as people know is Subversion is a centralized version control system, if the server is down, so are you. Well, not completely, you work on your local copy, when the server is back up, there will be A LOT OF messed up merging to do because it can’t keep tracks of what you’ve done up to that certain point. You are actually wasting time. Not to mention it has its own file structure, it’s pretty “tidy” in a way. If you work like a mess like me, Bazzar and Git are our heroes. Git is pretty much like Bazzar, that you can do version control in ANYWHERE you want. You don’t have to have to let a server knows what you are doing in every 5 minutes to keep things in check, you can just do it locally. So imagine the server goes down for an hour, in that one hour you drew a nice looking dragon from your whatever, colorized it, added wings etc… and commit each of the change. When the server comes back up. You tell the Subversion server, hey, I did these. The server goes… what the hell are these craps?? I knew NOTHING about the dragon… it reminds me of my dad kicked my ass one time while I tried to explain why I didn’t do my homeworks, because they were READING ASSIGNMENTS!!! Now THAT’S a git!
Instead, Git tracks them all offline, so if the server goes down, who cares. When it’s back up, you can tell the server what you’ve done, how many changes you’ve made, you drew a dragon, added some flames etc… the server WILL know what you did and so will everyone else because it keeps track all the versions offline. So when you “push”, you are actually uploading the old AND the new versions to the server. Better yet, if the server goes down in flames, you can just find another one, upload what you have and all good to go again. Imagine the Subversion server goes down in flames… I can’t… I just can’t! I don’t wanna think how to recover all of my awesome dragons! I lied, you can, just not with all the versions you’ve made. Just need to start a new one… me thinks…
Okay okay, here’s the 5 steps to setup Git to a remote server
Enough dragons, I’ve read at least 20 blogs, 10 docs to piece together how people can make the simple setup process hard. It’s not hard, but they’re just not on the same page for some odd reasons. For the record, NOT everyone uses Github… I use unfuddle
- Sign up an account on either Github or Unfuddle
- Go to Git-scm.com‘s download page to get msysGit (full version to make things simple – not the portable one) - just follow the steps for installation… then it’ll ask you Select either Git Bash or Windows Command - I’m not that smart, but I prefer to look smart, so I chose Git Bash over windows cmd. It’s just like windows cmd anyways with a few nerd commands.
- For remote hosts such as Unfuddle or Github – they’ll need a SSH key to authenticate the connection to their servers. Each computer needs a new key, so if you are home, needs one. At work, needs one. At your ex’s house stealing his stuff, needs one. Without it, you can’t get in, simple as that. So let’s get that out of the way first. So let’s do this the easy way without typing much.
Open up Windows Explorer, find a folder, really, any folder, right click on it and you’ll see “Git GUI here” – click on it. You’ll see a box come up. Click “Help” -> “Show SSH Key”. If you see a blank box – click on “Generate key” (Screenshot). Copy all of that to:
- Github -> Account Settings -> it’ll nag you if you don’t have a SSH key added yet. So add it.
- Unfuddle -> Personal Settings (top right) -> Scroll down you’ll find the box then paste all of it in also (give it a name if you want – I do Home, Work)
- For the purpose of learning, I highly recommend using Git Bash – if you learn the commands, you’ll understand how to use Git GUI later. First, go to the folder that you would like to start version control (just use your windows explorer) – then right click on the folder “Git Bash here”. A linux command prompt thingy pops up.
- Create an new repository on Github or Unfuddle
- Github: believe it or not, Github gives you ALL of the instructions you need! So just type what they show you, then you’re good to go!
- Unfuddle: same for unfuddle but they won’t show it to your face. After you’ve created a new repo, click on “Repositories” – you’ll see the new repo you just created, click on it then you’ll see the instructions.
Really, that’s all to it for setting up a new repo server to work with, but for someone who don’t know much about command prompts / shells stuff, it was hard and I’m sure someone else out there had the same problem.
What gives?! Remote hangs???
If you see “Remote hang” – two possibilities:
- You need to wait for the SSH key a bit longer (if you didn’t do it in step 3 – which should give it enough time, if not, wait a few more minutes)
- You’ve entered a password when you created a SSH Key. So if this happens, make sure you leave the password fields empty. If you use Git Bash to generate the key, just hit enter twice when it ask for password. When you’re done, add the SSH-Key back in step 3 – wait a minute a two then try again.
Ignoring Files
Along the path, I’ve asked the same question and it took some diggings to find. If you have a few files you want to do version control, but want to skip files like .DS_Store, .project, .fla or whatever.
Ignore Files Way #1
- During “git add .” – instead of doing that. Just do:
git add filename.html filename.jpg
You can add as many files on one line as you wish – DON’T commit yet
- Type “git status” – you’ll see a list of “untracked files” – make sure those are the files that you DON’T want to track (version control)
- Then type:
git ls-files -o --exclude-standard >> .gitignore
What this does is it will ignore all the files those were showed in “untracked” – then create the .gitignore file for you
- After you’re done: “git add .gitignore” then commit
Ignore Files Way #2:
- Fire up notepad and add the file names that you want to ignore. Example:
.project
.DS_store
whatever.jpg
- Save the file inside the same folder where you just initiated a Git and name it ignorefiles.txt (or whatever you want – something simple)
- Open up or switch back to Git Bash – assuming that you didn’t change directory and didn’t close it (otherwise, just go back to the folder and do a “Git Bash here”). Type “ls” to see if “ignorefiles.txt” is there. If not, make sure you save the file here. Otherwise, type the following to change the file name to “.gitignore”:
mv ignorefiles.txt .gitignore
git add .gitignore
git commit -m "Added .gitignore"
You would say why not just change the file extension inside Windows Explorer? Well, go try it, then you’ll see why. I’ll wait……… Done? Worded. As you can see, way #1 is easier. If you did way #1, and want to add more files later, it created the .gitignore automatically for you, so just double click on it and point it to Notepad to open it up. Or Git Bash it…
Remove Files from Tracking
One more thing I found myself wondered was how the heck do I remove one of the files after it got tracked?? Simple:
git rm --cached filename
I’ve seen people tell others to do: git rm filename
That will delete your file for you, too! Did they even read the question?? I prefer removing it then add to the ignore list, I don’t feel safe removing a file physically even though I got Git to watch my back.
Anyways, these are the stuff I’ve ran into when I first trying to setup my workspace, hope this helps. Once you’ve finished this, you’re pretty much up and running. Refer to: http://git-scm.com/documentation for tons of goodies info.
- Posted by Mon
- March 2nd, 2010
I love Zimplit‘s simple idea, and relatively easy to setup (depending on server’s configurations). But of course it comes with a head-scratcher. Here are what I learned:
1. Localhost Timeout Error
As many sane developer would do, you want to test almost everything on a Local server if you’re using Xampp Lite. I have been experiencing timeout error. Maybe it’s due to the firewall at work, but I am going to investigate more using a full verison of the Xampp server
2. “public_html” vs “www” Folders
This may sounds crazy, but I think it might have something to do with the configurations of the server. I tried uploading to my own server, everything works fine. But I couldn’t get it working on my client’s server, it couldn’t CHMOD properly. Crazy enough, I deleted everything and re-uploaded everything to the public_html folder, CHMOD the proper files, then it worked… I know both folders are basically the same thing, but why it happened the way it did, CRAZY! I tell you. So I’m going to try to reproduce this “bug” if it is even a bug or just me…
3. jQuery + zimplit = Site Explosion!
Unfortunately, today I found out zimplit will blow up your some parts of your layout if you have some sorts of scripting going on in the background, such as slideshow, hidden divs. As soon as you insert an editable area, it automatically inserts its own div and classes inside ALL OF YOUR DIVs! Drove me insane for over an hour why my simple page stopped working with a simple slideshow. I mean it’s not the end of the world, you just have to rework your CSS to fit it in. But it would be nice IF SOMEONE TOLD ME BEFOREHAND!!
Overall, zimplit is still an awesome idea, but it’s quite intrusive. It works well if you have a very simple website or planned ahead to use it at the beginning. If you decide to implement afterward, it is much more difficult because you’ll probably have to rework lots of CSS. But I think I will try my hands on it again next time when I build a site from scratch. Just my 2 cents.
- Posted by Mon
- February 19th, 2010

I finally launched the never-ending homepage redesign project yesterday for my company, so far so good, not everything I want, but at least got what my bosses want. I didn’t like the way how it was put together, but I had fun scripting with jQuery once again. This time, he wants to do “wipe up” sort of effects and he resisted that me HTML-ing the hidden contents because he wants it “the way it is” for the contents. *dies* So I’m stuck with image maps… the loading time on the page is “glorious” to say the least… hey… I do what I asked of me. He didn’t want to hear loading time, the web standards, best practices, and stuff like that. Although, I added the helpful image preloader plugin to speed things up just a bit, better than nothing. Over the course of the project, I’ve learned some little interesting things…
Interesting things I’ve learned…
- If you add “padding” around an image that has “hotspots” over it; IE (no matter what version) WILL offset the coordinates by the padding – the “hotspots” will be off by the amount of padding you put around the image. But in Firefox, the image map hotspots behave the way it should be. So if you need to adjust the spacing of the images when using image maps, use “margins”, don’t use “padding”. Took me a short while to figure this out…
- Relative + absolute positions will snap pictures in any corner you want. In my case, I wanted the image to be lower left corner to achieve the “wiping” effect – otherwise, it’ll just “slide” the image out if you don’t absolute position it.
<div style="position:relative">
<div style="position: absolute; bottom: 0; left: 0;">Image here</div>
</div>
- Too many image map hotspots is like Freddie Cougar’s face… ugly as hell and a freaking nightmare
- jQuery $.each() saved pounds of my hair once again
- Do not add negative padding inside a jQuery.animate() – it will crash like a 100 cars pile-up on a highway…
- Don’t try to explain to my boss why adding more image hotspots inside an image map is such a bad idea – he looks at me funny and starts getting pissy
Besides all the pain and suffering for a month, the most fun I got out of this project was scripting the animations and solving the “image map within an image map” problem. Here’s the run-down of the project:
- There will be main menu at the bottom of the screen, when the user hovers over each of time, the corresponding content (the image) will “wipe up” – I am calling this Tier 1 menu
- Now “wiping” and “sliding” are two different animals, and my mini-boss specifically wants “wiping”, not “sliding”. So I had quite a bit of fun trying to make the image contents “wipe” up
- Solution: create a “wrapper” div that wraps all the hidden “content images” – default the “wrapper” to 0px, then use jQuery to animate the height of the “Wrapper” to the full height when hover over. So I basically created a “mask” to do this hide the images. Attach the corresponding image, show, then “wipe” up
- Each of those image will have image map hotspots (no problem here)
- Within Tier 1 menu’s contents, one of the contents has multiple links within it and has a Tier 2 menu – better yet, the Tier 2 menu has four sub-contents WITH DIFFERENT unique image maps…
The Problem
The problem? If you use the same map for all the images, they will have other hotspots showing up in images that you don’t want. Let’s say Image A is using #map1, Image B needs to have the same menu but has different hotspot links. When Image B uses #map1 again, well, all the hotspots intended for Image A will also shows up. Of course, the obvious solution is to have multiple maps. The problem is the Tier 2 Menu shows/hides its contents. So if you have multiple maps, the Tier 2 Menu won’t able to hide and show content accordingly unless you want to code each of the Tier 2 menu with its own little script. Repetitive, inefficient, and probably won’t work.
The Solution(s)
After losing a couple hundreds of my hair, the solution? Create separate image maps for each of the unique hotspots map. So Image A gets its own map, Image B etc… use jQuery to clone the map according to the active menu and attach to the the “main map” (#map1), add a temporary class, and then remove them when the user hovers over a different menu item. Meaning: #map1 is the Tier 2 main menu and is defaulted to Image A. #map1 has the Tier 2 main menu, and the rest has its own unique hotspots maps without the Tier 2 Menu. Let’s say Image C has unique hotspot links, so when the user hovers over Image C. jQuery will tell this Image C to append #map3 hotspots (<area>) to #map1. When the user hovers to a different one, it removes all the previously attached “hotspots” – I identified them by adding a dummy class in each of the attached <area> map, then append another set if needed. Painful, but not bad for a workaround I think.
I find front-end development is like solving puzzles, and I love solving puzzles especially when it involves jQuery. Well, that’s it folks.
- Posted by Mon
- January 8th, 2010
Haven’t wrote anything for a while, but here’s some food for random thoughts. With all the newest and greatest hitting web namely CSS3 and HTML5, how about giving some love and thoughts to Multi-touch as the next big thing on the web, and probably will be Web 3.0? Now you would say something like, “Well, you know Macbooks have that awesome feature and people ARE using it on websites.” Well, can YOUR websites support flipping objects around with 2 fingers? An interface to crop and edit photos using your 2 fingers/hands on your website / web app? iPhone / Android phones can, but on websites? Nope.
First of all, I am one of those people who refused to support/buy anything with an “i” in front of it, it’s not that one day I wake up and decided to dislike Macs. I owned an iPod before and I found myself almost throwing it against the wall. I have used Macs, and I can’t find myself liking it as much as a PC. Don’t get me wrong, I don’t hate it, but I just prefer PC’s… that being said, the best thing Apple “invented” and poured so much thoughts into my brain is the latest and greatest the Multi-touch technology.
Where did I get the idea Multi-touch will be Web 3.0? Well, Javascript libraries such as jQuery, Mootools, Prototype etc… changed the way people interact with web, and how it delivered interactivity and information to the users. Designers/developers don’t need to depend on Flash/Silverlight to have animations / effects, things load faster in the background or don’t even have to reload a page thanks to AJAX. No longer the user has to open a new window to see a picture, instead, they can see them using a Lightbox or similar tool. I personally feel those are the most important elements that differentiate the good old web from Web 2.0. Some might argue Web 2.0 is all about the shiny graphics, but I beg to be differed. Not only that, Multi-touch is already in smart phones and Apple already started it with their Macbooks / Magic Mouse, and Windows 7 with their own multi-touch interface. It’s only a matter of time when all the websites don’t require a mouse to browse and adding more interactivities, because I don’t have to use a mouse to browse when I use my G1, why should a desktop computer? The tools are already existed to get us there, the question is how soon. My guess? I’d say in a year.
To prove it, some crazies already made one of the world’s first Multi-touch website taking advantage of Windows 7 multi-touch support – of course it still works if you don’t have a fancy multi-touch screen or a Waccom Bamboo Touch (cost only $69 and works on both Macs and PCs – yes, even Win XP SP2). Or a fancy Macbook / Magic Mouse.

Although, I don’t think I’ll trade my CSS/HTML skills for multi-touch making websites in Silverlight. That being said, I think I was looking at the future of the web and probably something that will “encourage” CSS3.x / and HTML4.x to support multi-touch sooner, maximize and push the web even further? Can I already say Multi-Touch Web 3.0, anyone?
A slight problem of course Multi-touch is quite new, not many people have the tools to interact, or the necessity for it for the web at least. Never mind that, not a lot of people get the use of it. Multi-touch took me a few seconds to figure out how to use it, now that I know, “wowser” is the word I’m using to describe it. To me, the web is all about two words: information and experience. As designers/developers are constantly finding better and cooler way to create websites and deliver information, Mutli-touch is definitely the next big thing on the web.
I don’t know about you, but I’m jumping on the bandwagon to look for a way to “fake” a Web 2.5 for now and make Web 2.0 sounds so 2008 while people still digging the glossy/shiny buttons, and debate the best way to clear floats.
- Posted by Mon
- October 31st, 2009
You know… it’s probably a silly realization… but I’ve always copy & pasted vector shape from Illustrator to Photoshop, never the other way around. Today, I had to convert a shape that I wanted to use from Photoshop to Illustrator (CS4 by the way), I was so sick of tracing it. I mean what’s the worst thing could happened if I pasted something a vector shape from Photoshop to Illustrator, right? Get an error something, but to my surprise, it gives me a dialogue asking me whether I want to convert it to an Compound Shape or Path…

…son of a… learn something new everyday, don’t we now…? A little less deprived
- Posted by Mon
- October 29th, 2009
I finally gathered my braincells and launched my new portfolio: Designloper.com today:

I was trying to “brand” myself in a way, what’s better than a made-up word that describes perfectly of what I do, right? I love the lime green colors, but I thought it was getting too boring with the light gray and white.

So I spiced things up this time with dark brown and hot pink. I was loving the fun colors as I was designing, it looked almost “hippy” which fits my personalities – I never did drugs in my life, but I seem so… (more…)
- Posted by Mon
- October 21st, 2009
Version in this article: jQuery 1.3.2 / CSV2Table 0.03-b-2.9
Lately I started to like CSV (Common Separated Values) more and more comparing to XML.XML is a pain to setup even as entering data, then grabbing the data requires Einstein’s brain plus 3 sleepless and hair-pulling days of coding… okay, I maybe exaggerated a bit, but that’s how I feel about XML. My first encounter with CSV was InDesign, in there, you can import a bunch of data and generates PDF like Word’s Mail Merge feature. Then one day, someone asked me if I can find a better and easier way to help the non web people to maintain a site. I started out with search terms like “jQuery read text files” or something like that, one of the results returned as using CSV and there is a plugin called CSV2Table in the jQuery Plugins website by Toshiro Takahashi written earlier this year. Testing… (more…)
- Posted by Mon
- September 26th, 2009
This is going to be a short post. Magic Tags are very awesome, but on the Pods CMS documentation failed to mention something very simple yet useful. Before anything, here’s a quick run down of what Magic Tags are…
(more…)
- Posted by Mon
- September 25th, 2009
Software note: Pods CMS Version 1.7.3 / WP 2.8.4
Documentation: http://pods.uproot.us/codex/helpers
What are Input Helpers
An Input Helper lets you completely customize the appearance of any input field… when adding new data contents.
In plain n00b English: as an example, the default field “name” I had it to store last names, and a separate column to store first names (fname). The problem of that would be when you’re using Bi-directional relationship PICK column to another Pod (let’s call this: Person) is you can only relate one of the columns, not both First Name and Last Name. So if you use the PICK column the “name”; which stores the Last Names, and with the last name like Johnson – you probably can’t tell which Johnson that is. Input Helpers can grab and display the full names for you when you’re adding data. (more…)
- Posted by Mon
- September 24th, 2009
I’ve been very silent on Facebook, Twitter, and this blog lately. That because I can’t constantly access Twitter anymore from work, they blocked me… so no more useful stuff to tweet and brag about excepted one thing: Pods CMS. Pods CMS is a WordPress plugin that pretty much turn your blog into a CMS. You can build a Wiki, Glossary, Recipes, Hotel listing etc… the possibilities are endless. Although, you will need to know at least some PHP to make this thing tuned to the way you want it to be. I have been playing with it in the past 2 weeks, I have to say I am very impress of how this plugin works. So I did a test on one of my hobbies: Kendo. I’ve always wanted to collect data on Kendo Dojo, how many practitioners, and Kendo tournament results in the U.S. I was able to create this very complex database that it can be listed by Federations, State, Country, Dojo, and down to the individual Kendo-ist data. The awesome thing is? Each listing can be linked to one another. For example, if you viewing by Federations, you can list all the Dojo in that federation, and with links to each Dojo AND the state. You can add BUILT-IN filters and search on top! The backend is all done for you, all you have to do is to make things pretty. Ain’t that grant?
(more…)