Author - Web Developer - Educator
Found 12 results for tag "jquery"
RSS Feed

What I learned from my first Startup Failure

I was inspired to write this from many articles referenced in the December 21st Edition of Startup Digest. In that newsletter, I found many articles about "What I learned from my Startup Failure" (or along the lines). Therefore, I thought I would write this.

Work on the business, not in the business

As the quote from Michael Gerber goes, it is best to work on the business instead of in the business. In my college career as an aspiring Entrepreneur, I never really understood that quote. My logic consisted of the following phrase: "If you can do the task, then do it and market yourself. You are the business - it's your idea, it should be your fame." It took me roughly 7 years to understand that I was wrong.

From Day 1 up until the end of 2012, I was the "CEO/President" of Shadow Development (CEO from 2005-2009ish, when I learned that if I was a "CEO of a small company, then the credibility hasn't been built", so I downgraded to "President" thinking "Yeah, that'll work"; yeah right). In 2013, I stepped down from "President" to "VP of Operations" basically stepping aside from the Presidential duties and taking a look at the business as an outsider and not just as myself.

That was probably the best thing that I've ever done. Not in the "This was a great decision, it made a million bucks" kind of way, more of a "I see what is actually happening and not just want I want to happen."

I saw that the business had been running on my hopes, my dreams, and my stubbornness for far too long. I should have shut the doors a long time ago if I saw this happening. Even throughout the ups and downs, it was my stubbornness that kept my business up for so long.

What should I have done? Hired someone to take care of the project management, project development, and selling. I shouldn't have done those things back when the business was started. I should have managed the business, sought out investment, asked others for help, evaluate the cash flow, find ways to save money, establish marketing channels, etc; not become the primary developer.

Basically, I've learned that "If a person can't do the work, then they should be fired. Based on the logic, if you can't do the work, then fire yourself, but then the company will no longer exist." However, I couldn't fire myself because I was too damn proud.
Entrepreneur Fail

Surround yourself with like-minded people who can do the jobs you ask

After dealing with managing people, it's a lot harder than just "Do this task." You must take into account their schedule, their emotions, their skill sets, not "playing favorites", their quality, etc. I always thought that "If I surround myself with people that have the skill sets, I can delegate tasks to them" (see the next point as well). Well, I hired developers, designers, project managers, sales people, and interns. What did I get: next to nothing.

My designers didn't have anywhere near the skill sets that I had imagined. I thought "They have design experience and an eye for design. Their designs will be great!" What I received was "This is what I think will work", not what I had in mind.

My developers knew what they were doing (for their development levels), but they had a long way to go in order to provide what we promised the clients.

My sales people said they knew the material, they knew the sales process, they knew the contracts and services. However, they also fell short of expectation and probably couldn't sell water to a dying man in the desert. (Hell, neither can I)

My interns were treated as "gofers" instead of the "learn as you work" kind of experience. I didn't like that.

My project manager was great at managing projects, but we didn't have many projects to give them that weren't already being managed (or the budget to allocate to them).

In short: Just because the person you hired had the title "X" doesn't mean that they can do what you expected of your last "X".

(However,) Hire Slow and Fire Fast

Just because you are in a company doesn't mean you need to have 10 employees around you. Take your time to hire the right person for the right job. If you hire someone just because they have "X" in their previous title, that doesn't exactly mean that they know everything there is about X (for example: just because someone says they are a salesperson doesn't mean they can actually sell).

If a person isn't the right fit for a job, get rid of them. If a person isn't doing what you want them to do, get rid of them. If the person is trying to take over the company, get rid of them - quickly.

I know that many Managerial books have said "Hire Slow, Fire Fast", and I never really understood what that meant. However, now I know what they meant, and I have been burned in order to learn that.

Don't think that "If I just keep them on the payroll for another few days/weeks/months, things will turn around." That never worked for me. I also knew that my stubbornness got in the way for "being nice to people" because I wanted to see them come around, like in TV shows. Yeah right.

If a person isn't doing their job, you have 2 choices, and you better choose one fast. Either 1) Train them to do their job better, or 2) Fire them without resentment.

If I could go back in time and do one or the other, I would have chosen #2 in a heartbeat instead of waiting around for about a year to see what would happen. I would have rather hired the right person for the job, instead of someone who I thought would work based on their previous title.

Never expect to copy yourself

If you are super-skilled in X, don't expect others to be as well. They may have the same basis, but you can't expect them to know what you know in 24 hours - especially if you were trained over several years.

I have been studying Web Development since 2001, since my first HTML class in high school. Since then, everything else has been self taught: Advanced CSS, PHP, MySQL, jQuery, XML/XSL, DHTML, JavaScript, Python, Ruby on Rails, etc. So I've had over 10 years of experience in the field.

When I hired on extra developers, I had a high expectation: they were on the same level as myself and could crank out stuff just like me.

I could not have been more wrong.

Most of the developers I hired on worked under the premise that they would learn additional skills under my leadership. Well, I spent roughly 2 months teaching them the most common advanced PHP techniques, jQuery items, CSS3 markup, and even Database management with MySQL (as much as I could do). What did I expect? I expected them to come out of the training doing what I was doing. The actual result: I advanced their skill set a bit, but they were still a long way off from developing what we needed for our clients.

I always said "If I could copy myself, I would", but in today's technological era, that's an impossibility (unless you're a sheep).

Basically, it came down to the education gap between me and the other developers; I knew a lot more than they did, and they needed to know a lot more if they were to crank out stuff like me. That wasn't going to happen in 2 months or 2 years - they needed the "on-the-job training" like I had; they needed the "decade of wrong-doings" that I had; they needed to "do things the hard way before learning the ease of a shortcut" like I did (I spent nearly 2 months of nights and weekends in my room hand-coding a visual editor (without advanced PHP functions) because I "wanted to do it").

Location, Location, Location

Waynesville, NC, is not the place for a high-tech kind of company. It took me many years of trial and error (mostly error) to figure that out. As my business advisor once said, "I'm sorry you are in this area." If I was in Raleigh, Charlotte, Atlanta, San Francisco, New York, etc, it would make more sense, but you can't force a business model (or technique) into an area that isn't ready for it. Most of the businesses in this area are "Mom and Pop" stores with owners who are usually the ones behind the counter. While there isn't a problem with this kind of business operation, it isn't the kind of market that can allocate thousands of dollars towards marketing.

I also didn't find out until a few years in (after moving to a small office space in 2007) that we could not put up any additional advertising on the building we were renting, or near the building in general. The landlord did provide us with a large sign on the front that had all of the businesses listed that were inside our building, but any additional logos, signs, even something saying "HERE WE ARE" were prohibited.

My suggestions: prime location for exposure (like Main Street), a professional environment that you can advertise with/on, and/or an easy access office.

Price is not always a factor, but it is a big one

Price may be beneficial, but you can always set it too high or too low. Most people in this area want a low-cost solution, and if your only price range starts in the $1000's, you can easily price yourself out of a market, which is pretty much what we did. After calculating how many hours went into the research, the design testing, the development creation, the usability tweaking, and the launching of a site, $1000 was the bare minimum for the kind of work we produced. While a company in Atlanta wouldn't bat an eye at that, people up here would turn us away within a second. The people up here want the $5 solution, the "What can I pay you to do that won't cost me an arm and a leg" type of solution, the "I have $100, what can you do" kind of solution. Not the "$1000 will get you X, Y, and Z" kind of solution.

Create an enjoyable work environment

A happy team is a productive team. While I'm always the one to think of an enjoyable environment such as Google, IDEO, Patagonia, etc, we didn't really have that, and it showed. Although the extent of our budget allowed for the purchase of some darts with my own dart board, it didn't provide much of an "enjoyable environment" as it were. I also brought in my personal PS2, games, and TV to hopefully provide a few hours of entertainment for the staff. It was never touched. I would love to provide a ping-pong table, a pool table, a HDTV with PS3 entertainment, and more, but our budget didn't allow for it, because I didn't put the money aside to do so.

Don't grow too fast

Grow your company as needed. Don't expect to have your own glass-covered office in 5 years. Don't expect to have a pool table and 200" TV next year. Don't expect to have 30 employees and your own stock options next month.

If you grow too fast, your goals and focus will be thrown out of alignment and you will be focused on the end-goal, not the "right now" goal. So your company is 5 years old - does that mean you need your own conference room? No - invest that money into more marketing and product development, maybe even some staff training. If you absolutely need that conference room, then your company will tell you so. Until then, find a library meeting room, somebody's house, or even a coffee shop to meet at.

Don't get caught up in meetings

Just because you have meetings doesn't mean that they (or the people who attend them) will be productive. As I learned from my years at Last Minute Productions, the majority of items that were discussed in the board room usually stayed in the board room. During my reign as President, I vowed to change that, although my board didn't like the idea (they wanted more money for doing less). In most Board Meetings, assigning a task to someone that will get it done usually results in responsibility, accountability, reliance. If a task is not assigned, then it will not get done.

Also, I always thought it was a great idea to bring my board member attendees up to speed with what has been happening. Usually, that turned into 45 minutes of me blabbing about calls, meetings, and other items that didn't concern, relate, or include the other members. I could have just as easily summarized those blabbings, or even just said the end result and cut the time down to 5 minutes, but my stubbornness got in the way and I was too proud of myself for all of the work that I did (and nobody else). What I should have done is delegated out some of those items to the members so I wasn't always bogged down with items like that.

Don't over complicate things

When I first started my company, I thought that the idea of making websites easy to use would be easy. I mean, the whole world was doing it wrong: Geocities, Yahoo Sites, Homestead websites, even "Welcome! I'm HTML Code!" websites were designing things wrong. The wrong resolution, relying on "Best Viewed in Internet Explorer" tags, over complicating things with animated GIF's to make the site "cute", creating 5-minute flash "splash pages" that you had to sit through in order to get to the site's content, and the list goes on.

I thought I could change this. Instead, I made it more complicated.

In The Oatmeal's blog posting on "How A Web Design Can Go Straight To Hell", the artist/programmer/fun guy Matt Inman talks about exactly what I mean: taking a poorly designed website from the 90's and improving it with high-def graphics, a nice content flow, a beautifully laid out menu, and easy-to-read items. Instead, the client wants what they had: a poorly designed site from the 90's because that's what they had, and that's what they're used to (hence, the "cute kitty", the "mother who designed a Bake Sale flyer in the 80's", and the "pop" and "edgy" items that only exist in their mind). Personally, I also hated it when people would come into Staples (when I worked there) and acted like they knew more than I did in Technology - the same concept applies here: when clients think they know what they should based on the latest article, blog, or news report and want "Web 2.0 items" and "SEO Techniques" integrated into their sites, thinking that those are the most important and absolutely necessary items to have a great site.

I also tried to put too much focus on "how the site worked" and not so much on "how the site looked". My logic said that "if the site worked beautifully, we can design around it. Too many companies focus on how the site looks and not how it operates. Let's flip that." I was wrong. I knew that people went to websites because they looked great (the latest graphics, the flowing sections, even the effects on the photos). I also knew that people left websites because they operated poorly (bad links, page redirection went wrong, server errors that didn't make sense, etc). I wanted to focus on the development of the site to make it operate as expected.

What should I have done? Balanced the design and development, making sure that the design was exciting and the site operated as expected - nothing more.

Always have a backup. And when you do, backup some more

Having your hosting company hold your content hostage is bad business. Over the course of 8 years, I switched hosting companies 4 times. In 2005, I self-hosted, thinking that it wasn't that hard. I was wrong.

In 2006, I moved over to "Website Source" and it was pretty easy to manage, but it cost roughly $66/mth. I did lose some data while with them, and it cost me $50 to recover it from one of their backups.

I migrated to some larger systems while with Website Source, but in 2013, I had to call it quits. In early 2013, I switched to another company (I won't name names here) that would provide me with direct access to our server with backups.

In late 2013, they called it quits with us and froze our server, which meant that all of our data (ours, customers, databases, financial, emails, etc) was gone, and it took me nearly 4 days to get them to "unfreeze" the server so I could transfer the data off. And their "promise" of a backup system? Never happened, so the only place that our data existed was on one single hard drive.

Late 2013-now, I'm now back on my own hosted server (with a lot more experience for managing) and have a backup script to an external server running 2x/day, just in case.

Overall, backup all of your data. Once you do, back it up again, because you never know when you will need it.

If you are going for professional, don't cut corners

Even the iPhone 4 launch was pushed back due to some flaws. Back in 2005, our slogan was "We stay in the shadows, you get all the credit" which was okay. In 2007, our slogan changed to "Simply Professional, Professionally Simple." Personally, I liked it; it portrayed an image of professionalism along with the confidence of knowing that we would be simple (not to contradict a previous point, but that wasn't relevant right now). We even got some professionally printed white polo's that had our company logo on them to display our professionalism. Whenever I went to a client meeting, I made sure that I was clean shaven, my hair was washed, my teeth were brushed, my polo was clean and tucked, my pants were clean, and my shoes were shiny, along with other items to show that I was "A Professional." I thought that this image would be a standard and everybody who copied me would show that we were professionals.

My primary sales person thought otherwise. When I first brought on our primary sales person, I knew that he was a laid-back guy. He was my old freshmen english professor, and I thought that with his "relaxed state" and our "hardened professional mind", we could go far. I didn't expect him to cut so many corners in our "professional environment." For starters, he thought that just because we were a "company", we had millions of dollars sitting in the bank, and $20 meal wouldn't be missed. Little did he know that the $20 he just spent on a meal could have gone towards other resources, such as supplies (and we didn't have much in the bank to begin with, so $20 could have been all that we had!) To make matters worse, I had to order a button up shirt instead of a polo for him, because he didn't like things over his head. When he went to client meetings, he rolled up the long sleeves on his button up shirt. Sometimes he arrived with his button up shirt untucked from his pants, and even left it unbuttoned. He would approach potential clients like they were old friends, taking the conversation on completely irrelevant tangents, and even throwing in a few curse words to get his point across (playfully). Although I knew that we should have let him go a lot earlier, my stubbornness got in the way and thought "he can be reformed." Again, I was wrong...for 2 years (he finally left under his own accord).

Keep in touch with your team

Miscommunication (or lack of communication) can make team members drift apart, and if you constantly rely on them, then losing them is not an option. When I used to talk to my team members on a daily basis, it almost got annoying. However, going days, weeks, even months without any communication seemed like we were drifting apart, almost to the point of "Do I have a job anymore?" (which I have received a few times). Communication is key, but effective and frequent communication is better.

Make all of your goals and intentions clear

Stick to a timeline, schedule your goals and expectations, make sure that everyone knows what the result will be. Missing a deadline is a lot more than just a lowered grade on a test - in the real world, it can mean losing somebody's business.

Whenever I assigned a task to someone, I expected it to get done by the deadline set. When the person says "no problem", my expectation of getting the job done seems worthy. However, when the deadline comes along and there isn't a completed project (or even progress on said project), then my reliance becomes less and less, almost to the point of "If you can't do the task, then you're fired." But, once again, my stubbornness got in the way and I didn't fire anybody. However, when something is delegated out to a person, and that person hasn't completed the task, then the blame is put on the person that delegated the task in the first place, and personally, I'm tired of being blamed for delegating uncompleted tasks (which is why I would take the tasks in the first place, so that I knew it would get done on time, but then I was blamed for not giving anybody else any tasks and hogging everything). It's an endless cycle....

Basically, make the goals and intentions clear. Make the deadlines important, and the punishments clear. Don't allow anyone to slip by because of something that isn't understood.

Never stop seeking out investments

Bootstrapping is a great solution...if you are in your 2nd week of operations. But much later, you will need to seek out more investments in order to grow your business and can't always rely on bootstrapping. If you are taking in your income and only keeping 30% of it as profit, then you won't have enough to cover any additional items, such as moral-boosting get-togethers, upgraded office equipment, RENT, and more.
Also, make sure your team can get paid. Basically working a "freelance" job (or an on-call part-time job) isn't going to pay the bills. If your team isn't committed to you, they will seek out other opportunities for income and leave you.

Set the example

You are the boss. Show your team what you can do. Otherwise, you're just a team member. If you need to resolve a conflict, then resolve it peacefully. If you ARE the conflict, fire yourself or get a 3rd party arbitration.

If you expect your staff to be there on the holiday, you need to show up on the holiday(s). If you expect your team to be there at 7am, then make sure that you are there at 7am (preferably with a hot pot of coffee). If you expect your team to work 40 hours on a project, then you work 40 hours on a project.

Don't just sit back and expect to take the credit while your team does all of the dirty work.

Never expect someone to completely understand what you are offering, and the benefit of it, within the first few minutes of your presentation

Entrepreneur Fail

I expected people to see what we offered and go "Hey! That's what I need! And look at all of the great features!". Instead, I received glassy-eyed stares, basic technology questions, bored attendees, and other signs saying "I have no idea what you are talking about."

When we offered "Advanced, modern websites with the technologies of HTML, CSS, PHP, MySQL, jQuery, and more", I expected a bit of confusion among the crowd, especially at the acronym part, but that was to show our expertise in the technologies and show that "We know what we are doing." Therefore, the potential client would say "They know what they are doing - we should go with them." Instead, it resulted in "I have no idea what that means; therefore, I'm not listening to you anymore."

My expectation was that people would easily understand what we were offering by our presentations, our elevator pitches, and our portfolio. Instead, most people didn't understand or care what I had to say. It basically took an educational session to bring them up to the same level as us for them to understand what we were saying. Let's just say that it didn't turn out well.

Therefore, simplify your techniques. Don't throw in all of the bells and whistles just to impress people. Tell them what they want to know, not what they need to know. It's like an interview: tell the person interviewing you what they want to hear ("I can do the job"), not what they need to here ("With my three decades of experience in X, I suggest that you should do A, B, and C"). Even if it means that they are missing out on an important aspect (ie: security flaws), they want to hear what they want to hear.

Do research on your market, then create the product - not the other way around

I always thought "If you build it, they will come" (insert movie reference here). That may work for some items, but not everything, such as my business. I created a "modern, high-tech web design company" that I thought people would be busting my door down for us to work with them. Instead, of the clients that we found in the Western North Carolina area, most of them were busting my door down because they were unhappy with the service.

I also thought that if we created a service that cranked out quality websites and charged a monthly fee to maintain them, then we would be rolling in the profits. Easy as pie, right? Well, it wasn't so. First, we had to go out and almost physically drag the potential clients to sign with us. Then we had to make sure that we did almost every project underbudget, then provide continuous tech support for the most basic items, even if it went against our "best practice" recommendations. Yada yada yada.... Not really the best idea for starting a business, then sitting back and relaxing while the profits roll in.

Another developer wrote an article about a similar concept, and I agree with him: Research the market, then build the product. Just because you have the best designed, flashy, sparkly billboard in the desert doesn't mean that people will see it, or want to see it.

Don't screw up your credit

As an 18-year old, my first credit card was a surprise. I just entered college and had a personal banking account with Wachovia for a few months (there wasn't a branch of my local bank in my college town, so I switched). A few months in, I received a card from Wachovia saying "Your New Credit Card". I thought "My parents warned me about this. My sister had a bad experience with one. I should not use this unless it is an absolute emergency." So what did I do? I went to Taco Bell and got a drink to test the card out. It worked!

A month later, I used the card some more on a few small things, thinking "I'm getting paid, I can pay it off." I receive my first credit statement. "Amount due: $105. Minimum payment required: $5." When I saw this, I thought "Great! I can make the minimum payment and pay it off slowly." I would like to point out that this card had a limit of $10,000 because I used Debit since I opened the account.

Six months go by. I pay the minimum payment for six months. My credit bill is probably in the medium-to-high 100's. Suddenly, on my credit bill for the 7th month, minimum payment jumps to near $75 or so. In my mind, I'm thinking "Whoa! What happened? This is insane!" I call Wachovia asking about the jump in payment, and they say it's a "Promotional Period that has expired." I told them that I never heard of a promotional period when this started, and I was never offered it as the card was sent to me in the mail, which I never signed up for anyway. The lady was extremely persistent on the fact that since I had the card and was using it, that I was liable for any purchases, regardless of what the promotional period was or what the minimum payment was. I told her "I can't make the minimum payment right now! I don't even have a (well funded) job!" She basically said something along the lines of "Not my problem."

I will say at this point: I never expected my personal credit to cross paths with my investment record.

A few years go by, I get a job that pays roughly $150/mth. Not bad for a part-time gig. I start to pay off my credit bill little by little. Next thing I know, my minimum payment jumps to around $250/mth. I call again and complain, but I was told again by the bank "Not [their] problem". So, my credit bill keeps going up because I can't make the minimum payment, and 29% interest is gained on the bill because it hasn't been paid. At the $7,000 credit mark, I completely stopped using the card altogether. After all of the interest and "late fees" added up, my card topped the $10,000 limit within no time at all. I told Wachovia "I don't use the card. I will never use the card again. Please close the account and I will pay it off." They basically said "The account can't be closed until the card is paid off." So, the account stayed open and accrued interest. Just great. It finally got closed a few years ago, and I'm still attempting to pay it off, but I expect that will take about 10 years or so to pay it all off.

Later in my college career, I start to seek out additional funding for my business. The first few places I go say "Your business plan looks good, but in order to get you funding, we need to take a look at the Owner's credit report." What? This was never covered (in depth) in college!

Let's just say that pretty much every investor I talked to said "Yes" to the business, the plan, and everything else, then changed their mind to "No" once they saw my credit score.

I have never accepted another credit card since the first one, and never will again, regardless of any "offers", "Cash back deals", or "frequent flier points" they provide.

If I could go back and change history, I would have never bought that drink at Taco Bell and shredded the credit card. My credit score would keep going up because I was making so many on-time payments with debit, and I could probably have a few thousand (if not hundred thousand) in investments right about now.

I know that I've covered a lot of points in this entry. I just wanted to get most of them off my chest before I went to some type of therapy (Even referencing this article was a stretch). Hopefully, other entrepreneurs will read this and discover that not everything will work out like in the movies, the books, or even in the classroom scenarios. You are not indestructible. Your life does hold secrets that others will find. You cannot hide from everything. There is no "reset" button. And, you should fail before you succeed. I know many Venture Capitalists may not look at me because "I have a failed business", but you know what? So what. I've gone through 8 years of self-torment, stubbornness, hopefulness, and grief to know what to do and what not to do. If that means that you won't look at me because of that, then I will go elsewhere.

I'm not saying that you (as an entrepreneur) should read every business book out there. I'm not saying that every article on the internet is right. Go through your own experiences and learn the mistakes. Even Albert Einstein once said, "Anyone who has never made a mistake has never tried anything new." Therefore, I have learned many lessons through my mistakes?

Am I done learning mistakes? Not by a long shot.

Tags:#entrepreneur #fail #credit #php #html #xml #css #jquery #business #lessonslearned #server

RSS Feed

My Thought Process

No, my thought process isn't this.....squirrel!

There have been many instances when people that know me very well start talking to me, and during the conversation, my eyes go back and forth very quickly. Some people may think I'm having a spasm. Technically, no. It's just my "Thought Process" starting up and going 1000MPH.

For the sake of understanding, I have (at least started) a list of items that my thought process goes through when it gets started. 99% of the time, it deals with a new website or web-based service. And to give you a better understanding about what my process goes through, instead of just staring at me with a quizzical look, here's (mostly) everything:

My Thought Process: (by the way, all of these happen at the same time)
- preestablished functions and methods required during the development process
- passing variables between applications/pages/databases/forms/etc
- best way to "write" the code
- memory consumption limits
- resolution flexibility
- information security (transmission and storage)
- "what will the end result be?"
- infinite loop restrictions
- shortening the "writing" process with custom functions
- function recursion process
- CSS formatting
- interactivity with jQuery
- script automation
- plausibility of completion
- requirements for device compatibility (mobile, tablet, phone, etc)
- legal hurdles
- usability practices
- SEO tactics
- overall user flow throughout the site/application
- mock designs
- database storage and retrieval designs

(Yes, it's a lot. What did you think, I just thought about the design?)

I may add more to this list as need be, but at least it's a start.

Tags:#thought #process #websites #webapps #css #jquery

RSS Feed

Bachelor for a Week 2013: Day 2

I did not report in yesterday because I was in immense pain, almost flu-like symptoms. Needless to say, I spent most of the day in bed, surrounded by cats.

Today, however, was much better. For me, but not for the weather.

(Seriously: a major downpour of rain today, snow last Thursday, great short-sleeve weather on previous weekends, then heavy gusts throughout the month....all that we're missing is hail)

I moved the Wii into the guest room/office so I could have some entertainment while I coded away. Let's just say that if I had a fridge and a toilet in this room, I'd never leave.

I watched a good chunk of Enterprise today. Now, I'm only 6 episodes away from the end. What's on my "To Watch" list next?

I also wrote 3 articles for Shadow Dev, which will be premiering over the course of the following week.

I worked on the small blurbs and larger fancyboxes of our new pricing page, which should also be premiering sometime soon.

I lastly worked on the Portal 2.0. I made some great stride with window.location.hash when trying to reload pages based on post-hash URI's. jQuery just became a lot better now.

Here's what I am happy about today:
	$('#db_menu').find('a').live('click', function(){
		var link_id = $(this).attr('id');
			type: "GET",
			url: "/get_box.php",
			data: { q: link_id },
			success: function(data){

	var path = window.location.hash;
	if (path==""){
		window.location.hash = "#main";

I basically had to scrap the whole project and start from almost square 1. I kept the original login scripts along with the database structures in tact. My main starting point was from the Dashboard and so on.

My plan over the following week is to improve the new Portal to a point that it is ready to launch. The plan to launch Portal 1.0 with the new site launch had a small...drawback. It didn't convert with the new CSS well, and had a few delayed bugs in it, along with a good chunk missing for the Clients. My goal is for Portal 2.0 to fix that.

I don't usually like scrapping projects during development, but the pro is that the revamp comes out much cleaner than originally expected. Only time (and late nights) will tell if my feats become useful.

On a some-what related note, I was told by Keat (I don't recall if it was today or yesterday, as both days are a bit of a blur) that it is 4° out in Frisco right now. I would have been okay (that's a joke) with 4° Celsius, but we're in America, and that's 4° Fahrenheit. I do wish her the best in that frigid temperature. I'll stick with the rainy 40° here.


Also, I used a gift code from StateFarm to order the next Star Trek/Doctor Who Crossover Vol. 2 comic book today. It only cost me $5.71 (and that was with shipping and tax). It would have cost me somewhere around $18 in a shop. Although I do support local shops, I had a gift code that I had to use or it would have expired.

Tags:#jquery #javascript #enterprise #startrek #projects #garfield #keat #articles #xkcd #doctorwho #comics

RSS Feed

End of November Catchup

Where to begin, where to begin......

Ok, here's the rundown:

  • I've become a fan of Rules of Engagement. It's actually a pretty good show, and Patrick Warburton is doing well for a sitcom.

  • I participated in my Fraternity's Initiation Night on Friday, and since I can't tell too much, all I can say is that we finally used the FPAC for I-night and it was visually exciting! I wish that the planning was a little better so things went a little smoother than "Okay, it's been 2 hours! What are we supposed to do?" and turning into "We have 2 hours left! RUSH EVERYTHING!"

  • Keat and I were in charge of the Turkey for her parent's Thanksgiving. After all of the criticism, questioning, confronting, questioning, "process correction", questioning, and so on, we did the following:
    - Brined the Turkey for roughly 12 hours
    - stuffed it with an apple, onion, rosemary and other spices
    - baked at 500 for 30 minutes
    - put on a turkey triangle, baked at 350 for 1.5 hours
    - rest for about an hour
    - carved, eat, nap, repeat
    Overall, the Turkey was the best turkey we'd ever had! Now, my parents want us to do it for their Christmas, and Keat's parents have put us on permanent Turkey duty.

  • We are moving our office from the 200 sq ft space to (just under) 900 sq ft! Progress is really going well, and we should be done by Dec 20 (photos are here: )

  • We landed a new client: Omega Safety, and a Contest Winner. PR will be released soon

  • Our facebook page reached 100 likes! Yes, through a combination of a Facebook Advertising Beta program (which gave us $100 worth of FB advertising) and some article sharing, we reached 100 likes today! Yay!

  • I created 2 items with jQuery that I thought were really cool: play sound with jQuery and Color blocks with jQuery - most jQuery "Masters" may think that they are super simple, but I thought they are great because I thought about them and created totally from scratch (although the blocks require the jQuery UI plugin)

  • My dad had a weird change-of-careers. Let's just say he doesn't have his job anymore, but has been hired back on with the same company with the same job responsibilities working his own hours at 3x the pay. Yeah, go figure. Apparently, his company got rid of his position, but hired him back on as a Consultant to do his same job. Yeah, that just happened.

  • Found a good solution for our online payment conundrum. WePay is an integrated payment system with an API for automatic charging. Otherwise: a solution to manually monitoring Paypal and manually typing into Square.

  • I started watching the classic Doctor Who episodes (at least, all of the ones available on Netflix Instant) from Hartnell through Baker (translation: First Doctor through Fourth)

I'll stop it there. November was busy, and I'm expecting December to be twice as busy (as always).

Until next update.....

Also, I found out that this blog is just over 2 years old. You can easily see what kind of updates I post on this thing.

Tags:#doctorwho #jquery #november #turkey #keat #dad #pilambdaphi #fpac #japan

RSS Feed

Calling it a night


After 2.5 weeks working on the same thing, I'm calling it a night. I finally have the advanced record modifier done for a client. It uses jQuery to find eligible fields, turns them into a textbox on click, allows for editing of the content, and auto-saves it when the field is clicked out. I spent the past few weeks trying to get the .live function to work with the .bind function, only to have the whole system backfire on me. I finally did a small-scale model from scratch, and made the whole system work in 25 lines (with error trapping and notifications). I was baffled that I could get this 25-line jQuery to work properly and more, but couldn't get it in my original 200+ line script. I finally decided to scrap that and use my small scale model to do that. After some initial tweaking, it finally worked. I then had to add some features covering drop down boxes, and that worked as well. Afterwards, I made a tutorial video for the client showing the New system in action, and just emailed them about that. Here's the code now:
  $("div.clickbox").live('click', function(){
    // find the box's name and value
    var boxname=$(this).attr('name');
    var boxval=$(this).text();
    if ($(this).has('form').length==0){ // dont add form if it exists
"); $("#box").focus(); } $("#box").blur(function(){ var boxname=$("#box").attr('name'); var boxval=$("#box").val(); $.post("save.php", {name: boxname, box: boxval}, function(data){ //alert(data); //troubleshooting }); $.get('fetch.php', false, function(data){ $("#results").html(data); //get the results as we add more }); // replace the text box with the value $(this).parent().parent().html($("#box").val()); }); //dont submit the form if someone presses Enter $('#boxform').submit(function(){ return false; }); }); $('#results').load('fetch.php'); //initially show the results });
I'm sure there is an easier way to do this, but for the basic jQuery knowledge I have, this works.

On the flip side, I have a lot to do for this client. My todo list is already growing, and it seems that they keep emailing me with new features and ideas. I hope they know that we have other clients waiting to get work done as well.

I came in this morning (early afternoon?) and was determined to finish the jQuery record modifier. I also received word that a tenant had some internet issues, so I made sure to take care of that first since I didn't get to see her Friday (like I promised). After about an hour of debugging and troubleshooting, I guessed that the wireless device was bad, so I went to the office, got a spare one (thank god), and replaced it. She was up and running in a matter of minutes.

I then got an email from the Executive Director of the building asking for some Tech help with installing a program. He was out of the office at the time, so I emailed him saying to tell me when he got back in and I'd take a look at it. I got a text from Keat saying to pick her up from school, and a short moment later, the Executive Director walks in and says he's here. I ask him to wait about 30 minutes, and I'll be right in. I went to go pick up Keat, got back, helped him install a piece of software, and got back in the office. By this time, it was 2:15. I hadn't even touched the system.

I finished up my Reader and went to tidy up some loose ends I had yesterday. IE was giving me a headache because of a new request the Client had asked (switching two sections on the main page). Everything was fine yesterday until I went to email them saying it was done, but I got the idea to check the page in IE first. I did that, and (of course) IE messed everything up. I tried to insert some IE-specific CSS, but IE didn't want that. I finally made the code inline, and still no luck - that's when I went home last night. After re-looking at it, I made one small change (deleting the space between -- and [ for the IE-specific CSS comment), and that worked. Finally, 1 task down. Time to work on the Record modifier.

...and that brings us to the beginning of the post. I'm glad to call that Task complete, but I can guarantee that for every 1 task completed for this client, I'm gonna get 2 more. It seems like my todo list will never end.

I'm trying to teach Keat how to do some basic coding (do cover some of the more basic work while I work on the advanced stuff), but it seems that we either can't find a common time to do it, or every time we CAN do it, something comes up and we can't train. We're looking to hire an additional developer soon (if this work load keeps up) and an HR person down the road. Don't know how salary will be, but I'll look into that once I'm done with this ever-growing todo list.

PS: I also beat R&C: Up Your Arsenal last night. It took forever to get R&C 1 to the point where I could get the 10% discount on weapons, and the boss fight only took me 4 tries, but I will give the overall game a 9/10 on fun.

Tags:#jquery #ie #css #dilbert #todo #video #ratchetandclank

RSS Feed

Coefficient x Progress

Coefficient x Progress- xkcd

As you may (or may not) know, I did work on the comment system this morning (last night?) and got it mostly, if not completely, done. The biggest issue I was running into last night was that Chrome and Safari were caching the old js file and I couldn't figure out why the cache wasn't being cleaned (after having extensions in Chrome clean it, and manually going in and cleaning it myself in both browsers, the cache issue was still there). Luckily, they finally gave up the cache and I was able to finish the comment system.

I was also informed by a family member that there was a small bug in the Tag system, but that was a quick 3-second fix. There was also an issue with the comments being inserted into the database, and that was solved as well. While on a roll, I also received my first spam bot, and implemented a feature to (hopefully) block spam bots.

After this morning's wake-up call, I dropped Keat off at school early and then went to the Ribbon Cutting ceremony at the newly remodeled Hardee's in Canton (Clyde? I don't know the exact town since both were being used interchangeably today). That was fun, although I didn't make any referrals or new business connections. I did get to meet a lot of the staff of the Champion Credit Union, since a lot of them recognized me but couldn't place what Champion did for us. That's another story for another time. After the ribbon cutting, we all went inside and the manager of the Hardee's allowed us to get a free lunch! Can't beat that: a free lunch at Hardee's! I wanted to try something new since this is a rare opportunity, but I ordered what I always order ($6 combo with a Monster Energy drink) since I didn't want to waste a free lunch. Not bad for a Thursday morning.

So that was this morning. Now onto the afternoon.....
I found a small issue with the Fire & Ice site after I implemented the new "Show More" jquery feature. Apparently, the slideshow feature that I have on a lot of sites uses the same commands as jQuery but didn't use the jQuery library, so it was getting confused and didn't work. Fixed that.

I'm also a part of the "Help a Reporter Out" (or HARO) community, and saw that a reporter was looking for "Freelance Web Designers" for a book. I thought, "What the hey?" and sent in a pitch to see if I could help out. I received an email about 10 minutes later saying that I was one of the few programmers that responded, the person was glad to have me contact them, the book deadline is at the end of this month, and I was given a 7-page interview sheet to fill out. Wow - didn't expect that.

I also received the check from a client today, so now we can upgrade the servers. Tomorrow's a little busy for me, so I'll have to do that next week. But at least we got the money to do that now.

Lastly, I paid my Progress energy bill last Thursday and the payment station we paid at said that they processed the full amount asked (I pay half, Keat pays half). Keat says that her bank account shows the check processed a few days ago. I checked my account, and no check had been processed (even after a week). I checked Progress's site and they said they received the full amount. Don't know what's going on with that. I'll contact the bank next week if it doesn't get processed by then.

After Keat and I got home, we slept for a bit since we were both tired. But it was hard to sleep when our neighbor decided to go outside and started singing. Ever heard nails across a chalkboard? Kinda like that. I'd rather take their dog howling for hours on end from separation anxiety (and being crated for hours) than her singing. But I won't go into details about that.

CJ says there is more trouble at LMP. Although I do feel somewhat responsible for the issues at LMP (since I put the new President in place), I can't help but think that I released an infection (the new president) there and everything has slowly deteriorated. I just wish I could have been there for another year (or more) to make sure things went smoothly.

That's it from me tonight. I'll see about adding a few more features to the blog and try to work on the accelerator. The server upgrade will have to wait until after the check processes (or else we can't pay the server company).

Tags:#xkcd #comment #hardees #champion #jquery #haro #progress #lmp

RSS Feed

Wednesday is here, now it's gone...

I thought I'd go ahead and get this post out of the way before I forgot tonight (knowing how busy I'll be with cleaning the apartment for "Inspection" on the 30th). You may have also noticed that I'm including comics in the posts. I'm doing this not because I can draw (really, I can't), but these are some of my favorite comics from various sources. They may have something to do with the content of the post, they may not. It depends on what I find that day.
Pearls Before Swine - May 23, 2010

After I posted this morning's post, thing got crazy. First, the web server suffered from a MySQL hiccup. I couldn't get anything to load or edited, which got really annoying, especially since a lot of the sites I create run from our main MySQL database server. After multiple attempts to get it restarted (and stay ON), I sent an email off to my hosting provider, and they said "We restarted it, try it now." I did that, and same thing. Then it hit me: I'm doing a massive download of the main server to a backup server for the hosting server changeover. Could the FTP requests be hogging the sockets and denying MySQL the sockets it needs to access the page information? Maybe. So I slowed down the FTP service I had from 10 files at a time to 3, and limited the download speed. After about 15 minutes, no more MySQL errors. Crisis averted.....for now.

For the majority of the day, I worked on the Blog design and features. The main things I changed were the background (like it?), moved the Social Network features to the top, automatic syntax highlighting for source code, and the toggling (togglation?) of the archive listings (that took me all day). jQuery is certainly being challenging, but I think I'm getting the hang of the basics.

I also learned that the loan that we applied for (won't say though who) was turn down. This isn't the first time, but I'm a grown person, and instead of whining to some random Internet reader or forum list (or to the person's/committee's face), I'm going to say "Ok, thanks for the opportunity. What can I do to improve the business so I can reapply for the loan?" We'll see where it goes from there.

I'm still working on the "Projects" tab, and that should be up by next week (hopefully). I also worked on the F&I site, unifying the Ticket section along with writing a news which should help in the PR/SM department.

This is actually the first day in a month that I've worked without a TV show in the background. Exactly 1 month from yesterday, I started watching Heroes on Netflix and finished 16 days later. The next day, I started Eureka and finished yesterday. Today, I just listened to music on Pandora and worked. It's amazing what a non-distraction workplace can do for the attention span.

I was also asked why I am doing this blog. The purpose is actually 3-fold: #1) to provide family members with updates to what I am doing and the progress I have for our advisors/project owners, which mirrors #2) update our advisors and project owners on the status and progression of their projects, and #3) give myself a personal log to track what I've done over time and where I am going (just in case I forget - say, over a long vacation). I'm also using the Blog as a personal sandbox where I can test and refine new techniques and functions without having to mess up other sites. This way, I can show off what I know and nobody's site will go down because of it........I hope.

I had some criticism about the content of the blog, saying that it was not relevant to some of the viewers, but I want to assure you (generically) that this is more for the advisors and myself. If I include too much jargon in a post, please either let me know or Google it. It would be really stressful to maintain 3 separate blogs (if that many) to update the individual audiences, so I'm going to try to create a function which can extract the appropriate information per audience depending on what is searched. Maybe that's the wrong direction? I won't know until I get responses.

Since the Blog design is basically finished, I'm going to go back to working on the Accelerator. I have a new business idea in mind that I'm really excited about, but I'm not going to say anything until the idea is ready to go public (news-wise, not IPO).

Tags:#heroes #eureka #jquery #netflix #pandora #mysql #ftp #pearlsbeforeswine

RSS Feed

Tueday's over already?

Laser Pointer

Yesterday seemed to fly by. Keat didn't have class in the morning, but she still had to be there to sign in, so we were up and out of the apartment by noon. I actually got a lot of sleep on Monday night, but I was always so tired during the day. Can't figure that out.

Anyway, after I got to the office, I decided to spruce up on th jQuery I'd been studying. I fixed a few Fire & Ice issues (along with implementing jQuery on the spot), and did a little sales work on the side. Didn't get 1 of our potential customers that I'd been working with for about 3 weeks, but that's okay. Sooner or later, we'll get more customers.

I also figured out that by using a border-code in CSS, I can eliminate the "rounded box images" I had been using so much. This actually makes it easier for me because I don't have to create custom-color images for each rounded box I want. The CSS automatically rounds the box for me, and uses the supplied div/img without any additional markup! What a time-saver!
.round_border, .round_box{
	-khtml-border-radius: 12px;
	-webkit-border-radius: 12px;

I also added a few features to the blog; the main one being the "Search" feature (others being the bottom gear margin fix and the Newer/Older buttons, but the Search feature took me the longest to add/fix). Using the round box CSS method, I also made that input field rounded as well. How cool is that? I wanted to use jQuery to automatically highlight the searched term when found in the context, but that took too long. With my limited knowledge and the examples from, it turns out that the example I was using would actually go through the whole context and replace every word with &;lt;span>word, which can get very resource-heavy and it took about 10-20 seconds for the page to load. After unsucessfully finding a method for $('#content').find(':contains('+query+').replaceWith(''+query+''), only to find that the jQuery statement would end up in a recursive loop, I decided to make it server-side and have the replacement function in PHP instead of jQuery. That actually made things a lot faster and I found a case-insensitive function that allowed for replacement of the original capitalization (if existed). That saved me a few hours.

On to a different topic: I finally successfully implemented the Active/Inactive feature on the Business Accelerator form builder, but it took me forever to figure out why the variable wasn't being passed right. It turns out that I actually had my custom function get each array type in the form and (after passing it through a "Save" page with jQuery and AJAX), compile the whole thing into an orderly form with proper syntax. So in order to find the Active/Inactive variable, the function was trying to find a variable in an array that didn't exist, which is why the variable wasn't being passed. After I realized that, I took the custom parser out and made the Active/Inactive and Debug variables parse first (since they're only checkboxes), and parse the rest of the array-based form later. That solved that issue.

I'm still working on the form builder, and Milestone 4 should be done within a day or so (with respect to the world around me). If things go right, I should have it done by Spring. That'd be awesome.

I'm also going to be adding a "Projects" tab to this site for project tracking. Let's see how well that goes.

On another topic, I finished Eureka 3.5 and I'm excited to see what happens next. Season 4 isn't out on Netflix Instant yet, and Hulu only has episodes 5-9 until the season returns in 2011. I may watch 4:5-9 and watch 4:1-4 when Instant comes out, but I don't know right now. I may not be able to hold the excitement if Season 4 has 20 episodes, which means Instant is a ways off.

After yesterday's long work day (I got home around 9ish), Keat and I cooked dinner and watch the Eureka Pilot. It's a good series, I don't mind watching it again, plus Keat wanted to watch it from the beginning. She went to bed around 11 (maybe 12?), and I was up working on a few loose ends before I hit the sack around 2 (and missed the post for the day). Then, this mornings alarm woke me up around 8. Why must the winter be so cold? I wanted to call it a "sick day" and crawl back under the covers. But, work has to get done........

Tags:#eureka #netflix #xkcd #css #jquery #search #accelerator #hulu

RSS Feed

It just had to be Monday


Last night was fun for me, especially since I was on a roll with the .fadeIn()/.fadeOut() jQuery functions, along with a few animated sequences that I'm proud of. However, I was also working on making the .remove() function working as well with the "parent of the parent" issue. Luckily, I got that resolved.

However, I was up till about 4am last night working on the form builder, and I'm glad to see how far I am, but I regret staying up till 4. Keat had class this morning at 9:30, which meant that we had to get up at 8-ish. Knowing me, I usually kill the alarm and go back to bed till the last possible moment. And it doesn't help that Winter is unofficially here and it felt good to be under the nice warm covers and soft pillows. I wanted to call it a "sick day" if I could, but I knew that stuff had to be done and other requirements needed my attention, so cancel the "sick day" idea. How I desperately wanted to go back to sleep........

While Keat had class issues and presentation due at 7:30pm, I used the majority of the day fixing the data submission feature of the form, along with catching up on Eureka. I finished up Season 2, proceed to Season 3 3.5, and finished watching Ep. 7 earlier this evening, but let me back up a bit.

Since jQuery is still kinda new to me, I decided to study up on the form submission process, along with the AJAX background structure. I still prefer server-side coding to client-side, but getting to play around with a new, exciting language is just fun!

I found out about the .ajax() feature, and experimented with a lot of the .ajax() features, but the ones that interested me the most for this task were .submit(), .serialize(), and .serializeArray(), all of which come with their own pros and cons.

It turns out that I had to submit information via jQuery .ajax() method and send it in POST format, which was the idea until I saw that the original data stream for the tutorial was only in GET format (example: page.php?id=3&sel=Hi&p=4q), so I researched and found out that I could switch out the .submit() and .serialize() functions for .serializeArray(), which submitted the information in their original Array format instead of a serialized string (GET). Afterwards, I had to write a function that sorted through all of the fields (which were all arrays) and set up the database form structure based on the array placement, type, and name (along with maintaining the tableDnD library to allow the rows to be moved dynamically). Overall, it was quite a challenge, but I believe that Milestone 4 is 90% complete.

That brings me to about 7pm. Keat had to leave for class, and I thought about another sub-feature: What if the person designing the form needs to make a form go in-active, or they need to take it offline for a while to make some corrections? That's when I thought about adding a "Active" boolean variable to make forms active or not. And what better way to allow for this option (along with showing it off) than the iButton jQuery plugin! Most people see this on mobile versions of WordPress pages, but I found a custom library from Giva Labs which allows for custom iButtons side from the default On/Off.

Maybe a little show-y, but I like to test new features I learn.
Business Accelerator Progress - Form Builder:

Tags:#jquery #eureka #netflix #ajax #miletsone #ibutton #garfield #tracker

RSS Feed

Milestone 3: Complete!

YAY! I've successfully completed Milestone 3 of the Accelerator. It was a bit of a challenge, since I'm still learning jQuery, but I accept challenges for coding - especially when using a language that I barely know anything about and am willing to learn. Just to recap: M3 was to successfully remove a dynamically inserted row. Using a combination of .empty() .remove(), .parent(), and .live(), I was able to successfully remove dyanmicaly inserted rows using the .append() function and the tableDnD library.
$('.remove_box').live('click', function() { 
    /* get parent (td), then parent again (tr), and empty the tr */ 
Edit: 2010-11-14 20:12:35 .empty() was replaced by .remove() since the latter keeps the tableDnD library in place and requires the DOM features to be kept for the move features Now on to Milestone 4: field submission with database structure building rules - let's see how that goes....
Business Accelerator Progress - Form Builder: 60%

Tags:#milestone #accelerator #jquery #tracker #tutorials

RSS Feed

What a way to end a week

Well, I finished Eureka Season 2 today. Gotta love Netflix and all of their Instant shows, right? I mean, I could have watched SyFy (or SciFi as it was known) when it came on, for example: Tuesdays at 9, and I usually operate on a "must have a time slot" schedule for most things, but not TV shows. Instead of waiting each week for a certain day at a certain time for a TV show to come on (if it comes on), I prefer to watch it online. Sure, I can't do that with current shows (waiting on new Psych episodes is killing me), but who else can say that they watched all 4 seasons of Heroes in 16 consecutive days? I know I can.

But on to more important things: Keat went out shopping with Kat today, which left me home alone for about 5-ish hours. My main goal was to figure out Milestone 3 of the form building algorithym. I found out about the .empty() portion of the jQuery binding function (example: $('.to_delete').click(function() { $('#box').empty(); });), which is 80% of the Milestone. Now all I have to do is get the form builder to have multiple fields recognize the self-emptying feature with 1 function instead of having 1 auto-built function per row (which can get very confusing and very redundant).

I'm still playing with jQuery to better understand it. Although I'm all for building my own functions and features from scratch, I gotta admit: jQuery is probably the best of AJAX scripting libraries I've ever come across. jQuery makes everything that I've done with AJAX (such as the repetitive function $(box){ return document.getElementById(box); }, which simplifies a lot of the element claiming) seem like 1st grade.

If I keep working at this tomorrow, I should have Milestone 3 done by evening (I hope). Although one thing that always bugs me about the Fall/Winter season is the shortening of daylight. In the Summer, I like how at 7pm, you can see the oncoming of the night, and by 9, the night us upon us. However in the Fall/Winter, it's day at 5:30pm, as soon as 6 o'clock, nighttime comes and it's pitch black.

So far, the progress is coming along nicely. I'm awaiting payment from a client, which will allow us to afford the server upgrade, and then I'll spend some time getting the cURL installed and getting their site up. After that's done (est. time: 1 week), I should be back on the Accelerator and hopefully have the form builder done by Xmas, which means the whole system (form builder, form editor, validation and submission, payment, and more) should be done by March.

Tags:#jquery #netflix #heroes #eureka #milestone #xmas #psych #curl

RSS Feed

2 down, 3 to go!

I'm so excited about this, I have to talk about it!

The Business Accelerator I've been working on just passed it's 2nd major milestone! For the form builder, I wanted to merge the Field Adder (click "Add Field", a new text field is added to the form without erasing the current info) with the Row Mover (the "Netflix Queue" effect). In my mind, it worked perfectly. In real life, it was a pain to get to. But now that I made it, I'm excited!

Milestone 1 was getting the Field Adder put in place and tested. It worked right out of the box.

Milestone 2 was adding the Row Mover. After much testing, Milestone 1 had to be re-worked from scratch. After much testing and many, many edited pages, the Row Mover worked (many thanks to for the jQuery field adder and for the drag-and-drop jQuery feature). As of today: M2 has been reached and passed!

Milestone 3 will be for field deletion without messing up the current field structure. Should be easy (I hope)

Milestone 4 will be for field submission with database structure building rules (basically: taking the data and putting it in the database to be re-constructed as a form on the fly)

Milestone 5 will be testing the database insertion to make sure the form is built correctly.

Can't wait to get back in the code!
Business Accelerator Progress - Form Builder:

Tags:#jquery #netflix #milestone #accelerator #tracker