Saturday, October 17, 2020

Cookies, anyone?

 

Our application started having integration issues early March this year. Did I say that was intermittent? To add to our confusion, we could not replicate it in our testing environments!

The integration point is a 3rd party payment gateway. Our application logs indicated that our code was not getting hit by the payment gateway site.

We had not changed our code since years. I know. I know. That's an excuse we developers tell you if you encounter us with a problem. This was different. No code changes. No changes to settings in the payment gateway either.

What happened? What changed? Why was this occurring?

During the months of April and May, the occurrences reduced. By the time we were ready to write it off as another network issue, it resurfaced in late June. And it spiked during July, increasing its clout in August and September!

While we were rummaging through the logs (and the code) over and over again, a StackOverflow conversation appeared in our inbox - regarding a restriction imposed by Chrome on the SameSite attribute of the cookies. We were sure of neither setting any cookies nor using any ASP.NET Session in our code, BUT, the trend matched the SameSite timeline.

Why was this happening? And why not in testing environments?

During our investigation, we noticed one thing that caught our eye - there were entries in IIS logs for the integration URL (our app), with no userid (empty cs-username). The timestamp of problematic transactions in payment gateway and that of these entries matched. Where is this userid coming from? It turned out to be Siteminder, our Identity Provider.

Through our FRT (Failure Request Tracing) logs we found that SMSESSION cookie (set by Siteminder) was not being passed by the browser when navigating back from the payment gateway for these transactions. Cookie! Found the cookie! And guess what! We were not setting the SameSite attribute for the cookie! Since SMSESSION was not being returned by the browser when navigating from payment gateway, the users where getting kicked off and hence the blank userids in IIS logs (which means Access Denied).

Whew!

So, what the browser (Chrome dear Chrome) does is when you don't set the SameSite attribute to the cookie you create, it adds one for you - with a value of Lax. It is less restrictive than Strict. With one caveat - With Lax, cookies will not be preserved across different domains and if a POST is involved. The lesson learned is that if you are creating a cookie, you must specify the SameSite attribute - with the values None, Lax or Strict. With None, you have to specify secure also for it to work.

You can learn more about SameSite here. This article mentions about how SameSite attribute changes affects SMESSION on a cross-domain setting.

Finally, we deployed the change in the Siteminder agent to set the SameSite attribute to None, and hola! we started seeing more and more transactions coming in from the payment gateway. If it was not for Covid19, there would have been a party at our workplace,

Every thriller has a twist and a cliffhanger.

The twist is that SameSite is not supported by all browsers. We have to keep in mind when we implement the solution. The list of incompatible browsers are listed in the article.

The cliffhanger is that we are not able to reproduce the issue in testing environments till now.

Thursday, August 13, 2020

The Salesforce Certified System Architect Journey

As I noted in my earlier blog post, I started the journey on Salesforce this January (2020!). 

Little did I know how much I would learn, and appreciate the Salesforce landscape. It was a humbling experience indeed.  I had taken other certifications in the past (PMP, CSM, AWS etc), but this was a commitment to myself for a longer term. This was a marathon.

After 8 long months, I was able to get the System Architect certification. The work from home situation helped - it was a blessing in disguise.



System Architect Journey – SFDCFacts

I have chronicled all my experience is various posts as listed below:


Hope these posts helps someone out there. 

How I passed the Salesforce Identity and Access Management Designer Certification

This exam was the one I dreaded most. 

Security - the one aspect we (app team) take for granted. The one which is taken care by someone we dont know. Every organization has a "Security Team" or a "Security guy/gal". The learning for this exam changed my perspective on so many levels regarding security. Now I respect the them even more. 

 I was warned by many (bloggers) about this exam. Even my mentor friend Rajeev Venkitaraman did. "Be careful," he said, "Study hard". After the easy Development Lifecycle exam, this was indeed a mountain to climb. 

As usual after scoping out what I needed to learn, and then scheduling the topics, I started the trailmix. Reading, reading and then lot of reading. :) 

 My initial attempt was to make myself comfortable and confident about the topic. By reading, and watching other related YouTube videos and blogs I was able to grasp the fundamentals. Meanwhile the trailmix had lot of good resources. 

The topics I concentrated on: 
  1. SSO (You should be able to differentiate IdP (Identity Provider) initiated vs SP (Service Provider) Initiated authentication 
  2. OAuth Flows (Identify what flow is best for the given scenario) 
  3. Federated vs Delegated Authentication 
  4. 2FA (Two Factor Authentication)
  5. Identity Connect 
  6. Licenses 
You need to practice all the flows (at least the SSO ones) and also the Security settings. Only if you practice you will be able to "get it". If you have a friend who works in this domain, call that dude up and remind that you are still a good friend :) 

Anyways, this was a lot for me, but do-abble. The last week of my study was a refresher, spending my time on the Ladies Be Architects study videos. They are a blessing indeed. 

 All the best. Send me a note if you want any help preparing. I will be glad to help you out.

Thursday, July 09, 2020

How I passed Salesforce Development Lifecycle and Deployment Designer Certification

To date, this was the easiest exam I have taken so far. I am dedicating all the "easiness" to my 2 decades of software development experience in the enterprise world. 

The preparation was easy and all the contents in trailmix got absorbed into my little brain like a sponge absorbs water. 

The trailmix had topics on "how-to" technical subjects - but the exam had more on governance than technical. 

As with any SF exam prep, I did the following:

1. Go thru the trailmix diligently and religiously
2. Watch videos in Youtube on Governance (there are tons) and Version Control strategies
3. Work on mock tests (Propofs and Quizlets)

The following experiences also helped me in preparing for the exam:


Again, the Ladies Be Architects videos come to help! Big thanks to Gemma and gang! They really rock!

Before closing in, couple of main topics that I hit on the exam:
1. Sandboxes (what and when)
2. Editions (which editions can do what)
3. Source Control strategies
4. Metadata API
5. Changeset Deployment
6. Governance

The following tables helped me understand the sandbox types and various types of changes in the ALM:


Good luck!

How I passed Salesforce Integration Architecture Designer Exam

As they say, "Success motivates action". After passing the Platform Developer 1 exam, I set out to attain the Integration Architecture Designer exam. 

By this time, I had a fair idea on the Salesforce ecosystem, but had many many questions (I still have). My friend Rajeev Venkitaraman came to help again, with his pointer that the Integration Pattern and Practices PDF is the bible for this certification. He was right, as he always is. :)

Before I even start studying the scope out the entire topic. The certification guide in the Salesforce trailhead comes to help here. This exercise gives me an idea on how long it will take me to study. I also went through the trailmix for this exam and authored a schedule. A month and a half - it seemed quite right - with my full time job and the summer approaching.

The next thing I do is set out to read the experiences of other exam takers. It also gives me a fair idea and some motivation. The following blogs gave me a good lead into my preparation:


Thanks a billion!

I set out to go thru the Trailhead. At the same time I also started reading the patterns and pratices pdf. It confused me the first time. But by the 3rd time it all started to make sense. As my friend Rajeev suggested, by the 4th time I got the entire picture and was able to connect the dots. 

Once I completed the Trailmix and reading the patterns document, I started watching videos on various topics. The Ladies Be Architects study group videos really helped me a lot. 

By the time I completed half of my preparation, I had already scheduled my exam on May 21st. 

My work experience helped me understand the topic conceptually, regarding various APIs. I just had to place those into Salesforce domain. I would not say it was easy. I took dedication and time.

I also had prepared charts and post-its (which I stuck on my wall) for easy reference. The one that really helped me get through most of the questions was this one:


The exam went without much trouble. The mock tests that I took from Propofs and various Quizlets helped in shape my foundation.

For those who are going to take the exam, work experience in an Enterprise setup will really help, but if you prepare well, you will be able to make it even without that. All the best!

Wednesday, May 27, 2020

How I passed Salesforce - Platform Developer 1 Cert Exam (SP20)


On the start of the year 2020, I decided to make some changes to my career development. I have been working in Microsoft technologies over two decades (you read it right - 20 years). I decided to delve into Salesforce. I was lured into, in fact. :). I also wanted to enhance my knowledge and be uncomfortable in a good way.

First and foremost, needless to say, I made Trailhead my best friend. I started reading trailhead and going through the Platform Developer1 trailmix. For the first few weeks, I got so confused that I almost decided to give up. Coming from a custom development background, it was very difficult to get the WHY of Salesforce ecosystem. My friend and mentor, Rajeev Venkitaraman, advised me to forget the WHY for now and continue. I did. I am glad I did. :)

After a while, things started making sense. I started studying in mid January. By February mid, I was feeling pretty comfortable. Since I had a rich programming experience, Apex was a no brainer. Triggers, Controllers, LWC, all made sense. Entering March, I scheduled the exam for April 2nd week. Once I completed the trailhead, I signed up for a Udemy course on the exam. It did help me solidify the concepts and boosted my confidence. I started gathering various resources and old questions to get a hang of the certification exam. Focusonforce.com really helped in this case. If you are hard-pressed on budget, you can also go through questions in propofs.com. But, the answers might be all wrong. Use you wits to gauge.

My exam was rescheduled to the first week of  June due to the COVID-19 situation. I could not wait and I rescheduled it back to April 2nd, changing it to OLP (Online Proctored) exam.

The night before I set all things ready - cleaned the desk, took off all the post-its from my wall, arranged my webcam (so that the proctor could see my face, my hands and my keyboard). Believe me, it was not fun - it took me around 30 minutes to adjust the webcam :)

On the day of exam, I took it easy - even though I was tensed a bit. After the test started, the proctor hindered (after 2 or 3 questions) and said he could not see me. I adjusted my camera again, and continued. But he hindered again and said the same. The real issue was not my webcam, but an instance of Skype which was running in the background. Switched it off, and things started sailing smooth.

There was only one question from Governor Limits (which is an important topic though), lot of SOQL and Apex questions. I was glad that I did Focusonforce, which helped me immensely. I reviewed all the answers one more time and finally hit the "SUBMIT" button. 

So, to summarize:
  1. Go through trailhead.
  2. Understand the Salesforce ecosystem (give some time - you will get it)
  3. Do the trailmix
  4. Schedule your exam (this will motivate you to keep going)
  5. Do mock tests - Focusonforce.com (very reliable) or propofs.com (at your own risk)
    One thing to keep in mind - do not feel disheartened if you do not pass or get high scores in mock tests. GETTING HIGH SCORES IN MOCK TESTS SHOULD NOT BE OUR GOAL, CONTRARY TO WHAT MANY PEOPLE ADVISE. Our goal is to learn. Period. If you do not do good in a mock test, take that as an opportunity to learn and go read into those areas you did not do good. I enjoyed the aha moments during my mock test times.
  6. Take the exam - FINISH STRONG!

Must read if this is your first attempt at a SF certification:
How to pass each Salesforce certification: The SFDC99 Method
https://www.sfdc99.com/2017/04/18/pass-salesforce-certification-sfdc99-method/
All the best!

PS: Did I say I passed the exam? I did. :)

Thursday, January 26, 2017

What is NODE.JS doing in my UI stack?

Well, I have been doing client side development for a while. Knockout, jQuery, Bootstrap and alike.

Meanwhile I was learning Angular (the first version) too.

Then life happened, and I got busy in my day-to-day work.

I had heard about NODE.JS becoming popular among the JavaScript enthusiasts, as they could now write their favorite language for server side purposes. That sounded cool, but as I had .NET and C#, I never bothered.

Until now.

I picked up Angular 2 for including in my language cache, and I saw these plethora of client side libraries - Gulp, Bower, TypeScript, Node.js.

Wait a second! Node.js? Why? Isn't that for server side?

What is NODE.JS doing in my UI stack?

I started googling and binging around, and I got no answer that could quench my thirst. Finally, I turned to Jason Meckley. Jason is an Angular guru, who monthly presentations in our User Group got me excited to Angular in the first place.

And here is his reply to my email:

Node is a JavaScript engine. Its original intent was to execute JS on the server. However more client side developer are using node as a means to manage their UI projects. I haven't seen it being used directly for UI work. but it does play into frameworks like angular/emberJS etc. The most common usage of nodeJS for UI development is node package manager (npm). we are using npm on all our angular work. to get the local environment setup and running looks something like this

c:/projects/my-project
npm install
bower install
gulp --env=local run

within my-project is there are 3 files package.json, bower.json & gulpfile.js
package.json is the list of npm modules. 
bower.json is a list of bower modules bower is like npm but the packages are specific to web development.
usually npm will install bower and gulp and the bower will install client libraries.
These files are similar to nuget's package.config in .net projects.

gulpfile.js contains the build tasks. similar to ant, nant, rake, cake, psake, etc... we have tasks like
1. create distribution directory
2. jslint
3. minify js
4. transpile .less to css
5. copy output to distribution directory
6. run tests (karma, protractor, qunit, etc.)
7. run local web server

To sum it up, node common purpose for client side development is package management and executing compile time scripts like gulp.


Monday, March 24, 2014

DVLUP Day at NYC


When Nick Landry, our regional DVLUP ambassador told me about the DVLUP day event at New York City, I recognized it as another excuse to experience the energy of the vibrant city apart from meeting and learning from other app developers. The event was to be on March 22nd and we had plans to visit NJ anyways to attend my nephew's birthday.

On Saturday morning, myself and my brother-in-law Shibu, set out to New York City.  Shibu is an Android fan, and I was like, well this is the chance for me to baptize him (to convert to Windows Phone). LOL.



 
We hopped on the NJ Transit from Metuchen station. The good thing about spending time with Shibu is that he is as geeky as me. We share common interests and always a pleasure to chat with him. Time flew by and after a 45 minute ride, we reached Penn Station. It was almost 7:45 AM. So we had to rush as the event was supposed to start at 8. And we knew the event was over-booked. And thanks to my dear friend Giphi, who was texting images of the long line outside the event, which made us literally run :) (BTW, this event took place at the Microsoft office at Times Square).

The 10 minutes of jogging reminded me how out of shape I was. Man!

We joined the line, some 200 dudes (and some girls) back :) :(. 


 
They were giving away a Swiss Gear backpack as an early bird incentive, which Shibu managed to get.

Once we were in, I could recognize some faces who were there at the WPDevSaturday at Iselin, NJ, a month back. After chatting and having a hot coffee, we went inside the main conference room.

Nick Landry did a amazing Keynote, which gave an introduction to Windows Phone and how it is growing fast and gaining popularity.  He introduced all the speakers of the day.


 
Once the keynote was over, we spread out Into different tracks. I had taken the "Maps, Image SDK and Cloud" track.  Nick gave a very good insight into GIS abilities of WP and also how< to implement map-ing capabilities in WP apps.

As I am working on a map-based app, it was indeed an informative session for me. Lot learned. The main thing was the answers from Nick invoked from wonderful questions from the attendees. That is the main reason for attending such in-person events. This session answered lot of questions/doubts I had.
The time flew and it was time for lunch. Sandwiches, a bottle of water, and some time to code on my app. By this time Jesus Aguilar was ready to give us some great info on Azure. 

He gave insights into Azure basics and explained everything I needed to start on Azure Mobile Services.

Then came the Lightning Talks about Design, Submitting apps to Marketplace (for beginners) and  how to market our apps. The Marketing talk from Susan Wisowaty was quire informative. Jeff Harmon's talk on advertising gave a new insight to app ads. Depending on PubCenter is a dumb idea. :) Jeff also helped me solve a problem I was facing on getting map images from HERE REST APIs.

We spend some time coding afterwards and meeting other app developers. It is always a good feeling when you could share knowledge with like minded people. 

Two of the many friends I made from attending the events: Rob Irving (of Car Dash fame)  and Nick Landry. Missed snaps with Jason and Govind. Next time :)

Well, after the event, Nick did not forget to hand over the Swiss Gear bag that I won on the February app contest. Also collected the NFC card that Giphi won on the same contest.

As the NJ transit trains are sporadic on weekends, we had to run back (it was already 6:45 PM) to the station to catch the train. I did not miss the chance to take some good snaps of Times Sq.
 

Overall, it was a wonderful, happy, geeky, informative day of knowledge sharing and having fun! And at Times Sq, NYC, one of the few  places I like to spend the time at.

A BIG THANK YOU to Microsoft and Nokia for putting up an event like this.

Oh I did not mention the cost of the event. $FREE.00.

Thursday, February 27, 2014

FlashSort –a Windows Phone game

 

Every time I make an app, my daughter asks, “Why don’t you make a game”. My answer for her was “I am not a game kind of guy, you know.”

After my Autograph app, I thought of making a game. A simple one. After brooding much, this sort of “flashed” into my head… A sorting game, with flash cards.

I was planning to take a little break from app building after the autograph app, but then the WPDevSaturday happened at New Jersey, on Feb 22nd. Nick Landry, our Nokia Ambassador invited me over to attend the event as a Sensei (Mentor, that is).

WPDevDaySensei

I got hold of my good friend, Giphi Sebastian, and went to NJ. Iselin, NJ. At the Microsoft Office. And to cut the long story short, I started developing the game there.

The app is available at the Windows Phone store. Please download and have fun. And, do not forget to leave some feedback and ratings.

FlashSortBlog1FlashSortBlog2

 

258x67_WPS_Download_cyan

 

Thursday, February 20, 2014

autograph–a Windows Phone app

 

I am proud to present my 11th Windows Phone app – autograph. You guessed it right. This is an autograph collection app. As one of my reviewers aptly put it, it is paperless memories.

SignatureEntry

Now, you don’t have to worry carrying those books around, and you don’t have to go searching for that piece of paper when you bump into Harrison Ford, or the One Direction boys. Your favorite celebrities, your friends, your family, all in one place – in the autograph app.

154x40_WPS_Download_cyan

Tuesday, February 11, 2014

In-app purchases in TheHinduLife app


The new update for TheHinduLife Windows Phone app has 2 new features:


1. The ability to get rid of all the ads displayed at the bottom
2. The ability to pin any deity (or deities) to the home screen, as a live tile. The pinned tile is a Flip Tile, which can be set to 3 sizes. I am sure you will love this one.



Download TheHinduLife from Windows Phone Store



Sunday, January 26, 2014

WhatsNew - a nuget package

Inspired from Igor Ralic's ReviewBugger open source nuget package for windows phone, I set out to create a NuGet package called WhatsNew. I had posted before about the good habits of a good app in the store. Any app. Any store. One of them is notifying the user of what you did as a developer for the new update. A synopsis in few lines. I always appreciate when an app which I use tells me what to look for. Letting the users know that you had fixed the bug A which was bothering them (and you) for a while, and the feature C that you had been planning for while has been added, would be really welcoming.

So, here it is. WhatsNew, for Windows Phone. My first cut on creating a NuGet Package.  It is available HERE. You may either install using the Package Manager Console or the Manage Package Manager option in Visual Studio.

Installing WhatsNew from the Nuget package console.

Installing WhatsNew from the Package Manager

Once you install WhatsNew, two things happen.
1. A WhatsNew.cs class gets installed into your project folder.
2. Coding4Fun Toolkit assembly gets installed, and referenced. This is because WhatsNew uses Coding4Fun Toolkit's, About prompt.

WhatsNew Usage

Once you get everything set, place the below code in either your MainPage.xaml.cs constructor, or the Loaded event handler. I prefer the later.

That is all!

But, What's the catch?

Well, it's not a catch. Just that you need to see that you update the VersionNumber for every update. It is that property WhatsNew verifies to see whether to display the WhatsNew dialog or not. So VersionNumber is import. Do not forget to update it.

So, what happens next?

Nothing much. :) Once the user starts the app, for every first time use of every update, a dialog similar to the one below would appear (note the Title, Message and VersionNumber (down below) that we added in our code above.).
WhatsNew Prompt
Can I modify the WhatsNew class?

Sure you can! It is completely open source.

Thank you, Thank you!

I wouldn't have completed this without the help of these references. (And my wife and my daughter, who let me spend time this full Sunday on this endeavor.)
Igor's wonderful inspiring post.
Nuget Documentation
Scott Hanselman's post on creating Nuget Packages


Now, what are you waiting for, go download it and give your app users a better experience with this feature.
  

 

Saturday, January 25, 2014

The Hindu Life - Revived

The Windows Phone app, TheHinduLife, is being revived.

  • More prayers added to the prayer section
  • A new Prayer Index page added for easy selection of prayers
  • A tiny re-design. Its a better feel.
With this app, I have also started a habit of notifying the user(s) of the new features being added to every update.

This is a continuation... more contents to follow...





Download TheHinduLife from Windows Phone Store

Friday, January 17, 2014

Poll: Innovation is accidental, not intentional

Today, I had a discussion with one of my colleagues that every firm should let their employees spend some time in their work day to work on side projects they are passionate about. If you look at various innovation (including this blog engine - blogger) came out of side projects people were passionate about.
Innovation is accidental, not intentional.
 I thought of getting your views about it. Here is the poll. Please participate and also engage in some creative discussion on the subject.

Innovation is accidental, not intentional

Wednesday, January 08, 2014

Getting content inside a table cell using jQuery

I had a requirement of extracting the contents inside a table cell.
Suppose we have a table like below:
Here I am

Simple enough, the jQuery script goes like:
var tdContent = $('.someCSS').context.innerHtml();

Lo! We get the "Here I am" text.

Saturday, December 28, 2013

The Honeymoon is over!


The Honeymoon is over for Windows Phone developers!! Windows Phone has now started to be seen as a serious platform by consumers. More and more people have started to compare Windows Phone to other mobile platforms. So, it is time for us developers to get serious too. 

When the WP evagelists yell at us everytime to concentrate on DESIGN, DESIGN and DESIGN, they mean it. Mom and Pop apps don't get downloaded anymore. We need some good looking, vert inviting apps, which has a very rich User Experience. 

Most of my apps have an ok UX, but not to the level I expect it to be. Before delving into developing new apps,  I have decided to get them a face-lift. First in my list was HowManyThings. The re-designed app is in the marketplace now. You can download this "here".

Apart from a great user interface, what else do we need to have in an app that will enhance the user experience?

ReviewBugger
When a WP user searches for an app, it is the reviews that they trust. More often than you think they do. Reviews are also an easiest way to get feedback from your consumers. They tell what is working and what they are frustrated with. So, it is very important for a developer to succeed to have more reviews. Most of the users forget to place a review - they have other important things to do, right? So, we should prompt/request them to review our app. In a nice way. For that I use Igor Ralic's ReviewBugger package. You can get that from Nuget. Link is http://www.nuget.org/packages/ReviewBugger/. It is well documented and very easy to implement.

My setup is, a request is displayed asking the user whether he/she would like to review the app, once the user has visited the app 10 times. 


UpdateNotification
If the user launches your app, for the first time, you would want to welcome them, thanking them for using the app, and briefly tell them what major features are there in the app. A simple message box with on "OK" button. This gets useful to the users when they are launching the app first time after an update has been applied. You could explain the new features added and what bugs you fixed. It shows that you are caring for the users, than just dumping out updates after updates (which is good in a way:)).

About page
I have seen many apps without an About page. This section does tell the user all about you and the app. I use a package called Peter Kuhn's YLAD (Your Last About Dialog). It is also available in Nuget: http://www.nuget.org/packages/YLAD/.  (What will we do without Nuget, rt?) 

I usually include the following in my About section:
--> About the app - I explain what the app is all about, briefly.
--> About Me - I give out my contact details - websites/blogs/email id. This will be helpful for the users to get in touch with me.
--> Release Notes - I mention all the versions and all the major changes and features added in each versions.
--> Credits - I give credits to the co-developers and designers that helped me in developing the app. Or for that matter, anyone who have helped.
--> Help - Any help notes. Instructions for the users, particularly if you have any advanced features.

Live Tiles
Depending on the nature of the app, if you feel this is an extra feature and is not to be part of the minimum viable product, then you could add this as a in-app purchase.
You need not add Live tiles just for the sake of it.


Do you have anything else that you do in your apps? 

Tuesday, December 10, 2013

Redesigning HowManyThings

Its been quite some time that I have been into Windows Phone Development. 10 of my apps are in Windows Store. Most of them are being downloaded consistently, but not in the frequency I would like to see. Sorry, I am too shameful to let out the number - one thing I can say - they are not in the billions :)

After this lazy tenure, I decided on taking up re-painting certain apps that users are using now... one of my favs is HowManyThings - an inventory taking app for family and small shops... just taking stock of things lying around your house... You never know when this app will come handy...

I had some bugs in the app, that I fixed recently.

But, I had to get this guy a face-lift. I am not a designer, but I do know when I see a bad UI design :) HowManyThings had a bad UI. It was not inviting enough. It lacked that simplicity factor.

So, I delved into redesigning the same.

First, Icons. I made some on my own, which I trashed immediately. I approached my friend Priya Iyer, who did an amazing job in getting a wonderful icon to me. Hope you all like it. Thanks Priya. More requests on the way :)



With the UI, I took a step back and decided to go in a minimal approach. I was always a fan of "chrome takes the back set, while content comes in front." approach. But sometime, the un-imaginative designer takes over. LOL!

Here is the new look of HowManyThings. The update has been submitted to the store, which is being certified.

Well, this is not the end. More things to follow. More features to be added. More design changes to be done, based on the feedback.

Cookies, anyone?

  Our application started having integration issues early March this year. Did I say that was intermittent? To add to our confusion, we coul...