Skip to main content

Mobomo webinars-now on demand! | learn more.

graphic-netherlands-embassy-website

Mobomo recently launched the new website NLintheUSA (Netherlands in the USA). The Embassy of Netherlands was looking to improve the cosmetic appearance of their site. They were seeking to make it user friendly and more appealing to the eye, they were hoping these changes would improve the relations between the two countries as well as foster cultural exchange, business opportunities and promote Holland’s leading role in the scientific and technology fields.

There are many aspects that stand out on this site. The colorful palette is probably one of the first things that you notice, we wanted to incorporate vibrant colors as it speaks of the diversity of the Dutch community and their cheerful and polite manner. But the most remarkable feature on their new site is the high-quality custom made infographics and illustrations that accompany the different sections. Aside from adding a creative to appeal to the eye, each infographic specifically illustrates the content that is on the site, making the reading pleasant and swift, and ensuring high memorability of the content.

We created over 54 infographics, and for those of you who are not designers, each infographic could take anywhere from 1-16 hours to create depending on the complexity. Each infographic was tailored to Holland’s landmarks, architectural structures and cities. In the process some infographics were left aside because the client decided to highlight a different aspect of the text, other times new pieces of content replaced old ones. The infographics that we created that aren’t currently on their website are stored in a library resource so that they can be used in the future whenever the site needs to be updated. For now, they can be used in collateral pieces such as brochures, posters, postcards, etc.

Our design team worked closely with Netherlands team every step of the way, through the creation of the infographics to the revisions and now to the launch, we were all committed to the end goal. 

Learn more about our web design & development services!

Categories
Author

unnamed-5

Agile, sprints, scrum - all these words are thrown around endlessly in software development. So, what are they and how do they work? Before embarking on a 10 hour passenger ride to Georgia, I picked up Microsoft’s Agile Project Management with Scrum from our Mobomo library to give a better perspective.

What is Agile and why should I use it?

No secrets here, agile is what it says - agile. Agile is a type of project management different from the traditional waterfall style in which company X is obligated to produce a product for customer Y by a set deadline. Unlike Agile, the waterfall method doesn’t allow much, if any, room for changes within the dedicated timeline. As a Project Manager, I know that customer and business needs change with no regard for your timeline. At Mobomo, we understand that change isn’t bad, it’s awesome so we should make room for it. Agile helps your development team balance changes with your customer and business needs.

Ok, cool - now I know that agile is flexible, but why is it good for business?

Agile saves you time and money. Software development is complex, but it’s predictable in itself. People, on the other hand, are not. Agile allows for this margin of unpredictability with a defined, empirical process called Scrum. Using Scrum, your product can be built with a focus on a minimum viable product. Creating a product with a minimum set of features provides value by testing your business’s concept before continuing development. This iterative approach builds on your highest priority features (i.e. sprints) and saves you time and money by building a product that people want to use and pay for over a product filled with excessive, unvalidated features.

I particularly enjoyed Schaber’s book because it describes real, lessons-learned use cases without having to experience failure first hand.

Tell me more about Scrum!

I love Scrum because it’s intuitive and fact-based. It’s foundation empowers the development team while also putting customers first. Managers love it because its style is rooted in helping others achieve their goals in a common-sense learning process.

Here at Mobomo, we’re always employing Scrum in our Agile Methodology to get our clients the best product possible with value in mind. I could go on and on about Scrum and Agile, but I hope this a valuable insight to our goals and processes at Mobomo!

 

Categories
Author

We love working with government agencies, with doing so we always abide by the U.S. Government website regulations. Section 508 of the Rehabilitation Act of 1973 requires all federal electronic data to be accessible, this section was added in 1998 to articulate those standards. The law (29 U.S.C. § 794 (d) applies to all Federal agencies when they develop, procure, maintain, or use electronic and information technology. Under Section 508, agencies must give disabled employees and members of the public access to information that is comparable to access available to others.

The following is our checklist of standards that we must check the box on while developing a product for the government:

Sub-Section I – Images

Sub-Section II – Video

Sub-Section III – Visual Contrast

Sub-Section IV – CSS

Sub-Section V – Links

Sub-Section VI - Imagemaps

Sub-Section VII – Tables

Sub-Section VIII – Advanced Tables

Sub-Section IX – Frames/iFrames

Sub-Section X – Flicker/Refresh Rates

Sub-Section XI – Text-only Options

Sub-Section XII – Javascript

Sub-Section XIII - Screen Readers

Sub-Section XIV - Forms

Sub-Section XV – “Skip Links”

Sub-Section XVI - Dynamic Content

 

508 Checkpoint Criteria Yes
(Pass)
No
(Fail)
N/A
1.1 Do images that convey contextual content have equivalent alternative text specified in the alt attribute of the img element?      
1.2 Do images that are purely decorative, and not contextual, have empty, or null, alternative text specified, e.g. alt=""?      
1.3 Does the alternate text convey contextual relevance to the page it is on?      
1.4 Do images that convey complex content have longdesc attributes or equivalent text content available elsewhere on the page?      
1.5 Does text content contained in images disappear when images are not available, i.e. is there text contained in the images?      
1.6 Do image map area elements have the link destination correctly titled? If the title attribute is used, it ought not to duplicate the alt text.      
1.7 Do form non-text controls, e.g. input type image, provide a text alternative that identifies the purpose of the non-text control?      
1.8 Do noframes elements have appropriate equivalent or alternative content for user agents that do not support frames?      
2.1 Is a full text transcript provided for all prerecorded audio?      
2.2 Is a full text transcript provided for all prerecorded video?      
2.3 Are open or closed captions provided for all synchronized video?      
2.4 Is fully synchronized text alternative or sound track provided for all video interaction that is not otherwise described?      
3.1 Is information conveyed by color also conveyed by context, markup, graphic coding, or other means?      
3.2 Does a contrast ratio of at least 4.5:1 exist between text, and images of text, and background behind the text?      
3.3 Is a correct contrast ratio maintained when images are not available?      
3.4 Is a correct contrast ratio maintained when CSS is disabled?      
3.5 Are links distinguished from surrounding text with sufficient color contrast and is additional differentiation provided when the link receives focus, e.g. it becomes underlined?      
4.1 With CSS disabled, is color and font information rendered in the browser's default CSS?      
4.2 With CSS disabled, are headings, paragraphs, and lists obvious and sensible?      
4.3 With CSS disabled, does the order of the page content make sense as read?      
4.4 With CSS disabled, is most text, other than logos and banners, rendered in text rather than images?      
4.5 With CSS disabled, does any content that was invisible before stay invisible?      
4.6 With CSS disabled, is any content or functionality provided by the CSS through mouse action also provided through keyboard-triggered event handlers?      
4.7 When tables are used for layout, does the content linearize properly when layout tables are turned off?      
5.1 Are links in server-side image maps repeated elsewhere in the page that are non-graphical, e.g. a normal list of links?      
6.1 Are client-side image maps used instead of server-side image maps?      
6.2 Do client-side image maps have appropriate alternative text for the image, as well as each hot spot region?      
7.1 For tables containing data, do th elements appropriately define every row and/or every column headers?      
7.2 For tables containing data, do th elements contain the scope attribute for row and/or column headers that are not logically placed, e.g. in the first row and first column as applicable?      
7.3 For tables containing data, is the summary attribute used to explain the meaning of the table if it is not otherwise evident from context?      
7.4 For tables that are used for layout, are the elements or summary, headers, scope, abbr, or axis attributes NOT used at all?      
8.1 For complex tables, do the elements appropriately define row and/or column headers?      
8.2 For complex tables, does each th element contain an id attribute unique to the page and/or does each thelement and any td element that acts as a header for other elements contain a scope attribute of row, col, rowgroup, or colgroup?      
8.3 For complex tables, does any td element that is associated with more than one th element contain a headers attribute that lists the id attribute for all headers associated with that cell?      
8.4 Are the summary attribute and thead and tbody elements used to clarify the table meaning and structure if needed?      
9.1 Does each frame and iframe element have a meaningful title attribute?      
9.2 Does the page have equivalent content in a noframes element for user agents that do not support frames?      
10.1 Does any page element NOT flicker at an unhealthy rate, e.g. less than three flashes per second?      
10.2 Does any page NOT contain the marquee and blink elements?      
11.1 Does a document have a text-only version? If so, does it meet all Section 508 criteria?      
11.2 Does the text-only version contain the same exact information as the original document?      
11.3 Does the text-only version provide the functionality equivalent to that of the original document?      
11.4 Is an alternative provided for components, e.g. plug-ins & scripts, which are not directly accessible?      
12.1 Is any content or functionality provided by JavaScript through mouse action also provided through keyboard-triggered event handlers?      
12.2 Are link-type behaviors created with JavaScript on ONLY focusable elements?      
12.3 If content or functionality provided by JavaScript can not be provided to assistive technology, is equivalent content or functionality provided without JavaScript?      
13.1 Are links provided to any special readers or plug-ins that are required to interpret page content?      
13.2 Do special readers or plug-ins comply with the requirements of Section 508 paragraphs §1194.21(a)-(l)?      
14.1 Does each appropriate input element or form control have an associated and visible label element or title attribute?      
14.2 Are all cues for filling out the form available to users of assistive technology, e.g. mandatory fields, help boxes, error messages?      
14.3 Is the tab order to reach the form and the tab order between form elements logical and consistent with the normal and visual order of entering form data?      
14.4 Are logically-related groups of form elements identified with appropriate fieldset and legend elements?      
 14.5 Is placeholder text, if used, NOT redundant or distracting to users of assistive technology?      
14.6 Do form error messages identify the error(s) to the user and describe them to the user in text?      
15.1 If repetitive navigation links are at the beginning of the source of the HTML page, can a user navigate via a link, the “skip link”, at the top of each page directly to the main content area?      
15.2 If a “skip link” is provided, does the anchor element contain text content that is visible with CSS disabled?      
15.3 If a “skip link” is provided and it is hidden with CSS, is it available to users of assistive technology, e.g. not using the display:none method?      
15.4 Can a user navigate over groups of links, between multiple groups of links, and between sections of the page content by means of section headings or visible and audible local links?      
15.5 Are heading elements used to convey logical hierarchy and denote the beginning of each section of content?      
16.1 Is enough time provided to allow users to read and interact with content?      
16.2 Is the functionality of the content predictable, i.e. will a user experience contextual changes when unbeknownst to them?      
16.3 Does the user have control over the timing of content changes?      
16.4 If a page or application has a time limit, is the user given options to turn off, adjust, or extend that time limit?      
16.5 Can automatically moving, blinking, or scrolling content that lasts longer than 3 seconds be paused, stopped, or hidden by the user?      
16.6 Can automatically updating content be paused, stopped, or hidden by the user or the user can manually control the timing of the updates, e.g. automatically redirecting or refreshing a page, a news ticker, AJAX updated field, a notification alert, etcetera?      
16.7 Can interruptions be postponed or suppressed by the user, e.g. alerts, page updates, etcetera?      
16.8 If an authentication session expires, can the user re-authenticate and continue the activity without losing any data from the current page?      

 

Categories
Author

One of the main questions I am asked about my job is how I manage to stay productive while working from home, especially since the company that I work for is a group of app developers in DC. I live in  Argentina working as a graphic designer for Mobomo’s Design Team and have been since October 2014. Even though Mobomo is a U.S based company, I can honestly say I have loved working remotely for a company that truly invests in their employees even though they are thousands of miles away. Working remotely is only possible with professional and reliable people. I can admit, working from home is a skill that needs to be developed because it requires knowing how to manage your time without someone supervising you 24/7. It also takes someone that knows how to take calculated risks without asking for permission, and making that solution work.

 

Even though it’s not your traditional office setting, we have our own ways to stay connected. Our design team meets each morning on Hangouts to discuss what each of us are working on that day and if we need help with something then would be the time to ask. Some would ask ok but how does your team keep your tasks tracked? We use tools like Jira to help us stay organized with our to-do lists and it allows you to know who’s working on what and when it should be completed. When we want to communicate in a more relaxed way with our co-workers, we use Slack as our ‘water cooler’ we share gifs and talk about music or which new game we are playing.

 

From time to time, we have ‘Mobomo Days’ where we get together and work in an office. Recently we had an end of the year party where we spent a day at a rented country house where we could enjoy a pool and a dinner together. It is great being able to come together as a team to share laughs and jokes even though we don't see one another day in and day out. 

 

mobomo-design-development-team

 

I have had an amazing experience working for Mobomo this past year, it has helped me grow professionally in many aspects, and it has given me the opportunity to meet awesome people, not only in the Buenos Aires team, but also in the U.S. I’m really excited to see what 2016 has in store and I’m fully charged to tackle on the new projects that come along.

Categories
Author

body_image_a

 

It’s been a little while since our last post, but none the less I’m back and ready to talk about the third portion of Forming A Design Team. We covered Structure, and Process so far, and with this post we’ll talk about the tools that will enable you and your team to excel. To me, tools can be sorted into three categories, Wireframing, Interface, and Prototyping, and we’ll cover each one and it associated apps.

I think it’s important point out that not each of these tools will work for every team, and you may already have your tool set established, which is awesome! These are the tools that we have started to use at Mobomo and so far they’re working very well for us...but who knows what the new year will bring. New tools and programs come out every month, so this list could be updated to reflect better ways of working. Below are the categories I mentioned previously, with the tools associated with them.

WIREFRAMEING

INTERFACE

PROTOTYPING

 

Like I said before, these might not necessarily work for your team and some are bound to change or be updated, but for the moment they are working they have proven to be great for us. It should also be noted that not every tool is right for every job, so make sure when deciding which program to use you let the project dictate that and not your feelings toward it.

Categories
Author

unnamed-4

 

 

By nature, tables of data have a rigid structure and capitalize on screen width. When screen size is limited, table data will often not fit on the screen at once. This has been an interesting challenge throughout the brief history of responsive design since a key feature with responsive design eliminates the horizontal scroll factor.

 

The simplest way to work with tables that exceed the width of small screens is to place them inside a scrolling container. This generally works and it allows the table structure to be maintained. The only drawback is that it results in horizontal scrolling which we are often trying to avoid in responsive design. With that said, the value of simplicity makes this option a great default setting for tables across a site. This is the method employed by popular frameworks like Bootstrap and Foundation.

 

More complex solutions should be used on a case by case basis for tables that require more attention. You should test the experience of using modified tables at the relevant screen sizes to catch any unexpected issues like text wrapping or overflowing.

 

If you are seeking to eliminate horizontal scrolling but do not mind a potentially enormous increase in vertical scrolling, the following solution may suit your needs. It is an elegant yet fairly simple solution that stacks every item within the table vertically and cleverly places a label next to each item using some css trickery. The downside to this approach is that it is not easy to scan multiple items in common categories at one time.

 

An easily scannable solution that also prevents horizontal scroll will require significantly more complexity to strategically hide and reveal portions of data using javascript. Advanced responsive table plugins such as FooTable and DataTable allow developers to choose which columns are hidden at specific breakpoints. A user can then quickly scan through the existing columns to find an entry and reveal the hidden column data for that entry. Once we reach this level of complexity, we gain access to a variety of features like sorting, filtering, and pagination.

Categories
Author

 

mobomo-code

Each New Year brings new resolutions that people promise to keep whether it’s hitting the gym, saving money, eating healthy, the list is endless and I am sure everyone has heard their fair share. While strategy and commitment are key components to resolutions, keeping yourself focused and on track are just as important.

 

Mobomo had quite the 2015, if you haven’t heard we merged with another web & mobile app development company, Intridea! Aside from the merger we found ourselves hiring new employees each month and reaching new heights and potentials in the tech world that we never could have imagined. Although the past year seemed to be full of change, we made sure that our focus was in check so that we could strive as a new identity. We made it our mission to take our energy and direct it towards our clients.  Seems pretty simple, but it’s not always the case with employees working all over the world, two companies becoming one as well as producing successful products for our clients.

 

The tech world is not slowing down in 2016 and neither is Mobomo, so for us our outlook for 2016 is relatively simple. We wanted to share a few resolutions that our brand has adopted, if you are in the market for some fresh resolutions feel free to join us in our commitment.

 

Fully Charged: Energy for us is never an issue. We want to keep implementing our energy and poise that we put forth towards each project. We will continue to take our energy and passion for this field and portray it through our work. Who wants to work with someone who is boring? That’s why you can always count on us to bring the spunk and enthusiasm in each project.

Reshape Reality: Can anyone really tell you what reality is? Reality can be anything that you perceive it to be; people can view reality through different lenses, why let someone else try to tell us what reality it when we can create our own.

Limit Limits: Who says you have to have a limit? When you have limits are you really reaching your full potential? We have adopted this outlook to ask ourselves why limit limits? Sounds crazy but think about it.. If you are limiting your potential how can you find out the potential if it is limited? We are encouraging ourselves to constantly think and reach new potentials not just stopping at our limit. 

 

To put it simply, we are not settling this year, why settle when we can create, design and deploy new and exciting projects with our clients that are innovative while potentially hovering over “the next big thing.” We could not be more excited to start 2016... with a jolt of energy of course.

Categories
Author

MAoN8zO2f-DiYAqhV8BZPY8i1cftBP0tVFuNxi9qj2M

Clients come to us with an array of problems that need innovative solutions. Recently one of our clients came to us with an issue, their website was not configured to auto scale. To those of you that are not familiar, auto scaling ensures that your platform has the correct instances of servers to account for traffic or load. Due to the industry our client is in, breaking news and events can occur instantly which results in an increased amount of traffic to their website at any given time. Their site could be manually scaled; however, this retroactive intervention isn't always fast enough. We were able to create a solution to account for sporadic increases in traffic to their site that would be successfully maintain platform uptime.

In order to do this, we used a multi-server locust setup to run load tests against which allowed us to test multiple different slow and fast test scenarios. These different tests allowed us to see how much further we could scale instances to maintain acceptable uptime rates then we ever could do before. Once we decided on the type of tests that we wanted to run, it was then time to identify our “standard” for how many users we wanted to test at once. We ultimately decided to test for 100,000 concurrent users to account for usage traffic seen hitting our CDN during high traffic events. We then collected a list of our 2500 most requested queries for our test users to use during the tests.

We experimented with the slow test first, which meant that we gradually added users in a more predictable and normal situation. This test added servers as needed and overall there was no immediate impact to the speed that the content was handled. Overall pretty dull…Which was wonderful! 100k users a minute and all statistics showed a happy healthy site.

The fast test allowed thousands and thousands of users to visit the site within a few minutes. During this test we went from 0 to 100k users in roughly six minutes. This caused the site to serve 500's while the servers were being added. Our 500’s are mostly absorbed at our cache layer which is where we served stale content until the requests were fulfilled. Our findings proved that when we increased the speed of users it caused a tremendous amount of stress on the server. Our auto scale group added two servers every three minutes until we got to nine servers, through prior testing we knew this was likely the appropriate amount of servers that could handle the load. Once we reached around five servers the 500's disappeared.  After we reached nine servers the request queue cleared up latency between our cache and application layer looked nominal. All in all this process took about 20 minutes to become "normal" at 100k users per minute.

During the peak of the quick test when the servers were under the most pressure we decided to do the unthinkable and clear our drupal site cache. I know, sounds like a great idea, but we love a challenge. We pressed the clear cache button and waited 10 to 15 minutes but to our surprise nothing happened.. the drama that we were anticipating never played out. The application saw a slight jump in latency and the statistics were raised or lowered by about 5-10% for about one minute and then returned to normal. That was it...no fireworks, only the lingering taste of sweet sweet success! This is due in large part to the site being anonymous, but cache policies still require frequent invalidation.

Overall both tests to 100k users is above and beyond the highest traffic we have seen in an hour timespan due to the CDN layer. We were able to successfully complete the 100K users a minute test, which we roughly estimated at one request every 10 seconds. We found that the results of each test to be relevant because of the scale our client can now operate; they can go from a site having minimal traffic to 50x that amount of traffic in a short amount of time. Problem solved!

Categories
Author

Monte Jade DC has recently announced that they have nominated Mobomo’s President, Ken Fang, as their Chairman of the Board. Ken has been on the Monte Jade DC board since 2013.

Ken Fang

“It is indeed a great honor to be nominated to lead this great organization. Over the past few years of involvement with Monte Jade, I have seen incredible relationships grow as business owners connect, students and mentors learn from one another, and professionals network to build bonds with one another. It is a fantastic connection for the Asian community in DC."

Monte Jade is an organization that aids in resources for starting, funding and growing high technology businesses. Their commitment is to assist future entrepreneurs, students, researchers, scientists, scholars and business people to advance their careers in becoming leaders and executives in their organizations or assist those that have interest in becoming entrepreneurs and business owners. They accomplish this through the experience and knowledge our prestigious board and other key members that include C-level executives, managers, and directors leading, operating, and developing some of the most successful science and technology firms in the Greater Washington area.

Ken Fang is the President of Mobomo, primarily overseeing the strategy and operations of the company. He works closely with clients to create mobile solutions to meet their strategic needs, and is adept at developing apps on all major mobile platforms, including iOS, Android, Blackberry, Windows Phone, and mobile web. In addition to running Mobomo, Ken is the founder and chairman of Altum, Inc., the market leader of enterprise grants management and performance management solutions for federal and philanthropic organizations. Ken has published a number of titles and articles in educational software and advanced computing technology. He holds a B.S. and an M.S. in Computer Science from Pennsylvania State University, an M.B.A. from the University of Maryland, College Park, and a certificate in Bioinformatics from Stanford University.

Categories
Author

 

snap 1

Modev started in 2008 as a Meetup group and over the years they have led the industry by organized conferences,strategic initiatives and provided executive leadership coaching to ensure those we engage with operate at peak performance.We were thrilled to have the opportunity to speak at the fifth annual Modev Conference on December 10th. Adam presented on the Ionic HTML5 hybrid mobile framework, where he talked about the framework’s background, as well as provided a quick dive into Angular.js, the popular javascript framework it’s built on.  

 

snap 4

Be sure to visit http://withinsight.github.io/modev-ionic/ to see the full presentation 

Categories
Author
Subscribe to General