1MB Updated

Updated https://www.1mb.ca to be responsive and update itself to function differently on different screen sizes.

1mb mobile

The original look and feel of the home page was preserved and the content has been essentially stripped down to the basics. The content management system is still there as well as the original ‘secret’ back-end with all of the bells and whistles.

~JCF

Update hell

One of our major sites requires some components that were essentially invented about a year ago and I prefer to install things via package.  In the spirit of getting going with it, I requested that our data center team installs a few packages on the existing platform not thinking much about it.

Well… I guess I should have thought more about it.  They decided to upgrade all of the packages on the server; about 400 in total.  Every library and every component shot forward in time about 6 years.

PEACFUL

The platform itself runs well and has been stable for quite some time; now all of a sudden strange things started happening.  We had to decide if we wanted to try to downgrade the libraries or stay the course and upgrade our software to work with the updates.  We chose the latter.

In the course of two days, we touched thousands of lines of code and pushed everything up to a newer version.  Fortunately we have been anticipating the need to upgrade and a lot of the pieces were in place.  It was a bit tricky as we had to maintain linkage between our dev and production sites so that we don’t ‘upgrade’ the software in the future and wipe out the site and yet still maintain the major release that we have been developing for about 7 months.

I’m happy to say that the entire day went by and we didn’t hear anything is wrong.  The logs look clear and sales are continuing to go up.  Phew… I’m glad I don’t have to do that again!

~JCF

Moving Day

Well… I moved again.  I feel like I move all of the time even though I stayed at the last place for 2 years.  This time the family and I have landed in beautiful Palo Alto, California.  We feel very grateful for the place that we get to live in and I am especially grateful for all of the mature fruit trees on the property.  Plums, loquats, herbs, cherries and more!

The best part is the screaming fast Internet speed. By today’s standards it is not really that fast but here in the Silicon valley you don’t always get the best Internet connection.  I think it has something to do with all of the original equipment around.  You would think with companies like Google, Cisco and Facebook around that they would cough up the dough to upgrade everything and make it a showcase of what it could be like._DSC0467

These days I am working on improving our queue management system and tuning databases.  More to come on that when I get through it.

~J

Be Responsive

I’ve decided to work on a world class product marketplace.  Part of developing that marketplace has forced me to look at modern development philosophy in a new way.

I have been developing ‘responsive’ sites for years before they were called ‘responsive’.  I am very glad to see that I no longer need to do it the hard way and can rely on mature libraries like bootstrap.  It was tedious getting HTML 4 to spread over multiple screens and devices.  Whenever I solved the stretchy screen dilemma I would always arrive at the point where I would have to slice up my design and start wrapping it with dynamic code.  Once you start doing this; modifying that original design can be tricky even when using modern approaches such s MVC. With that in mind we developed a template editor years ago that could handle that scenario.  The next three months involve working on version 3 of that editor.

I decided to take a look at the new fluid layouts in Dreamweaver and concluded that they are almost the exact same thing as bootstrap only it was ‘adobe’d’.  I guess both work just as well… in the end I opted to use bootstrap over Dreamweaver CC to do this.  Although I did find the Dreamweaver implementation very easy to use and is a good choice if you are just starting out. I just felt for what I am doing that I didn’t want to locked into a product.

 

dw CC fluid

Once I started laying out the marketplace, I found myself thinking about marketing and design again [currently enrolled in MKTG396 course].  Often times I get stuck here or caught up in the technical details.  Instead of dwelling; I decided to just ‘build’ the coolest things I could. 50 pages later I was looking at a masterpiece of responsive ART.

I look at the site every day and click and refine things.  The development team at 1MB is working on integrating item variations across platforms and we are using responsive layout to drive the solution.

In the end I think we will have a serious international contender for a hosted selling platform. We will launch with 280,000 products in a few short months.

~JCF

Continuous Integration Engine

I have been working with our brand new continuous integration engine for about 1 year now and I have to say it is the best thing that happened to our programming team.

For those that don’t know what continuous integration is the definition from wikipedia:

Continuous integration (CI) is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day.

There are many implementations of CI in the world.  We work mostly with PHP, Javascript and MySQL and chose to glue it all together with a free application called Jenkins.  Jenkins allows us to automate all of the release, build and testing tasks that we would otherwise have to remember and coordinate across our team.

Jenkins

Our solution uses subversion to store our code in a repository.  There are many other solutions out there and you can read about my reasons to choose subversion here. So whenever we check something into our repository we have it configured to notify Jenkins.  Jenkins then kicks off a job that checks out a build copy and stands it up in our development website.  The whole process takes a couple of seconds.

The system is designed to use unit testing (J-J-J-J-J UNIT!) to validate the changes and with confidence produce a staging release copy.  The staging release copy is filtered in a special way to include only the relevant files in the release as there are a number of files we don’t want from our development site like the database configuration and theme files for example.

If everything checks out the system releases to our staging environment automatically.  It merges the release from earlier with some other files required to make the staging site unique.  We run through a series of tests and again if everything checks out it is released into production.

Integrate-In-Jenkins

 

Diagram of a common SVN/Jenkins build process.

One of the biggest challenges we had with this system was handling the code changes combined with the database changes.  Our DB in development, staging and production are all different.  In our case we take a replicated copy of the production database and restore it into staging and run some modification scripts against it to simulate the same thing that will happen in the production release.  Perhaps a future post will elaborate on how this is achieved.  At any rate we are happily collaborating and releasing into production without breaking things and stepping on toes; this is a major advancement for our team as we have been doing it the other way for so long.

~JCF

iVendere 2.0

1MB is very pleased to announce that we are in the final testing and release stages of iVendere 2.0.

What is ivendere? iVendere is an easy to use multi-channel selling platform like no other.  It aggregates listings across many selling channels to maximize your profits and keep track of everything so that you don’t have to.

We are about to release the next version of the platform that integrates remote updating technology with our continuous release engine to produce a system that is not only stable but stays up to date for the client so that the they can focus on one thing, sales.

ivendere.com

The entire system has been overhauled and can now scale to about 10 times the size.  1MB has been with the iVendere project from the beginning and we quickly learned that this is going to be a big thing.

The release will occur in December and enable 1MB to release software features more rapidly than any other eCommerce company in the world on such a scale.  The best thing is that the end user doesn’t have to do anything… all they do is sit back and collect their profits.

In a couple of short years the project has scaled to millions of dollars of sales per month with only a few employees.  If you would like to know more about the project or are interested in becoming a client please contact us at your leisure and we will be happy get you up in running quickly.  For more information please review the main site at http://www.ivendere.com

~JCF

Long time, shouldn’t have left you…without a dope beat to step to.

So looking at my blog and I notice I haven’t actually posted anything on here for a VERY long time.  A lot has happened since I posted last.  1MB has been busy project after project; setting them up and knocking them down.

Probably the biggest news is that I have moved to California and now work for Stanford.

intro_about

What a great place to be! Its sunny and I am surrounded by technology.  Google, Nasa, Facebook, Apple… its like I am a kid in a candy store.  The thing about this candy store is that I truly am a kid since I have never truly experienced the American system before.  From my drivers license to healthcare it has been a wild ride.

I’ve also decided to go back to school full time; why not right?  With a full course load, moving to a new country, starting a new job and running 1MB I had to neglect something; and i chose this blog.  🙂

At any rate; I think I can find a moment or two to dump some ideas into the world so stay tuned.

~JCF

My favorite ssh client

Writing this note today to mention my favorite ssh client for windows.  My unix admin duties have required me to use ssh for years and I have tried many clients including puTTy, kiTTy, ZOC and secureCRT.

I have various problems with the mentioned clients as they don’t all meet my requirements.

My ssh client must:

  • save credentials (not just keys although that is a good practice)
  • save sessions
  • have a tabbed view
  • handle editors nicely with color including nano and vi
  • allow one click or command line access
  • integrate into windows nicely
  • allow me to transfer files in and out over the same connection

I presently don’t use my ssh client for proxy type connections although I suppose that is a valid reason for many.

After many years I found Xshell from NetSarang (http://www.netsarang.com/download/down_xsh.html).  It meets all of my requirements and comes with a 30 day eval or full school/home license.

xshell 4

~JCF

Custom Schema Updater

1MB Corporation has created a custom e-commerce updating and deploying technology using something called a schema updater.  What we have done is create a portable website that will automatically deploy on another web server.  It works very much like a one click installation such that you supply a database, a web folder and upload a few setup files.

Once the site is created we send some data and files over to the remote site including html templates, css, images, categories, shipping, navigation and products.  Automatically creating a web site so that you can start selling instantly.

You might think to yourself that is pretty great and it is.  What makes it special is the ability we have to heal our software with updates. We essentially run a master preview copy on the main web server and can test all of the previously deployed websites against the latest version of the software.  Whenever we add a new feature or fix a bug we are able to push that update to all of the remote websites at once.  Self healing and updating updates means that our clients don’t have to do that “technical stuff” since we do it for them.

schemaTo make it all work we built an interface that looks at the preview copy and selectively grabs tables and files from the preview, adds some stuff and packages everything into what we call a schema.  Using our custom deployment software we can rebuild a large 1000 item website in minutes and upgrade it in seconds.

Imagine how great it is to purchase a website from us that gets better over time.  We are constantly adding features for everybody to use including marketing to social media, video support, automatic site maps and dynamic navigation.  If we ever make a mistake we just downgrade to the older version of the software and everything continues.

Email info at 1mb.ca for more information.

~JCF