Even though my 13-inch MacBook Pro (early-2011) seems to be pretty old I still like to work on it. Unfortunately running Windows 10 and two instances of Visual Studio 2015 kills it slowly. Mostly because of lack of memory and continuous usage of the swap file. And totally by accident I found out that Apple cheated users in this spec of an equipment saying it can support only up to 8GB of RAM. Another unofficial spec in the contrary claimed it can easily support up to 16GB. Wow, that would be something!

I gave it a chance and bought the stuff, what nowadays was not so expensive at all:

Corsair MacMemory - 16GB - DDR3 1666MHz


Then followed the RAM-replacement guide on ifixit.com. Started the machine and checked system preferences on my both OSes. And looks like it is really worth the trouble!


MacBook-Early2011-16GB  Win10-16GB


Hope this helps you too!


EDIT 2016-07-10:

That was a correct move, the performance of the machine is visibly better.


Usually it’s not a big deal, when a HTTP request to a remote server is not working on a desktop Windows machine. There are plenty of useful tools, that could help in the process:

  • one, which work like a proxy and dump the whole traffic, that we might be interested in (Fiddler would be the best example here)
  • others, that interact with the TCP/IP stack itself and look much deeper for sent packets (like WireShark or Microsoft Message Analyzer).

BTW. Do you know, that there is a way to visualize HTTP traffic in Fiddler, that was originally captured by Wireshark or MMA?
Simply export packets from WireShark as pcap file (File –> Export –> Export as .pcap file) and import it directly into Fiddler (File –> Import Session… –> Packet Capture).
Many thanks to Rick Stahl, for showing me this feature.

Mobiles are totally different world. Mostly because applications are running in a dedicated sandbox and there isn’t at all internal or external access on system level. There is not much to do beside debugging of our own code. But if this doesn’t help, it doesn’t mean we stay blind. Take a look at http://httpbin.org/ (project sources available on GitHub). It’s the server you always wanted to write yourself – server that returns info about client accompanied by a list of headers, info about content for all kinds of submitted requests and even some random binary data, if you like. Respective behavior is selected by dedicated path on the httbin.org server and response is of course in JSON format (maybe beside for the binary data request).

Typically request paths:

  • /get
  • /post
  • /put
  • /delete – all of them to know, how the request really looks like
  • /status/<code> – to verify, if the application handles given error respectively
  • /bytes/<size>
  • /stream-bytes/<size> – both to download some random binary block of bytes from server.

It *won’t* simulate your destination server at all nor any more advanced interactions. And you will need to to hack your application to be able to issue requests against this server and dump somewhere the JSON response. Still remember, it’s only during application development and while fighting with a non-working request against remote server you totally have no control over, so additional #ifdef won’t hurt at all ;)

Final thought – the trick described above could be also without any problem used inside desktop or Windows Store application. It’s not only dedicated to mobiles!