Use Dropbox As a Web Server. Kinda.

  • Dropbox can serve files over HTTP
  • To view the file over http users don’t need to have any Dropbox account
  • You can share only static web resources pages, e.g. HTML, CSS, JS and images, of course
  • For images Dropbox sends header cache-control: max-age=0. That means that images are not cached at client side.
  • Dropbox also generates content type header based on file extension. e.g. for png files it send the header Content-Type:image/png
  • Everything in Public Folder is automatically shared and generates a URL
  • Files and folders from locations other than Public Folders can also be shared

Source: How to use dropbox as mini webserver

AngularJS Directive’s Scope

scope:falseDirective uses its parent scope. Changes are reflected in both parent & child

scope:true - Directive gets a new scope. Changes are reflected only in child but not in parent

scope:{} - Directive gets a new isolated scope. No inheritance & changes are not reflected at all.

In the third option, we need to declare parameters in order to pass values from parent:

scope: {
    name: ‘@’, // expression
    age: ‘=’,     // model name
    emailAddress: ‘&’   // method

<user-card class=”myClass” name=”{{ myName }}” age=”myAge” email-address=”getMyMail()” />

@ - Text binding / one-way binding
= - Direct model binding / two-way binding
& - Behavior binding / Method binding

Source: Mastering the Scope of the Directives in AngularJS

Async vs. Defer Script Attributes



Script tag - no attributes:

<script src=”someScript.js”></script>


  1. HTML rendering
  2. Reach to script tag - rendering halts
  3. Script downloading
  4. Script downloaded - script execution
  5. HTML rendering - continues till completion

Script tag - Async attributes:

<script src=”someScript.js” async></script>


  1. HTML rendering
  2. Reach to script tag - rendering continues + script downloading
  3. Script downloaded - rendering halts + script execution
  4. HTML rendering - continues till completion

Script tag - Defer attributes:

<script src=”someScript.js” defer></script>


  1. HTML rendering
  2. Reach to script tag - rendering continues + script downloading
  3. HTML rendering - continues till completion + script downloaded
  4. Script execution

Source: async vs defer attributes

Responsive Web Design Useful Links

Few notes I took on UXI 2014 seminar

UX in the real world by Nir Kosover:

  • Always think one step ahead of your user – examine your flows to track tasks that user is required to and see how you can make it easier for them.
  • Add “delights” to your app – delights are those special features and animations, the x-factor that causes the “Wow” effect. Users constantly look for these delights in app.

Lessons learned by Eran Kaspin:

  • People do not use your app as you think they do - Go to you clients and see how they use your app, you might be surprised.
  • A text button is better than any icon button.
  • Users prefer ease of use over their privacy. For example, if you already asked his Facebook credentials, use it to fill the required details that you were about to ask.
  • A personal marketing letter is better than a “fancy shmancy” designed template.
  • Spot the best part of you app experience-wise and empower it, make users really appreciate it.
  • Know when to stop adding new features – see MS word, for example, which has tons of features which no one uses. You could instead polish your app.
  • Test everything, even the most obvious parts, you might find there interesting bugs.
  • Use analytic tools to learn more about your users and how they use your app (GA, heat maps etc.).
  • Contact your clients – may it be an email, a short survey or whatever, Users like it when their opinions are valued.
  • Use the search widget to learn what your users miss or want by recording their queries.
  • Test the necessity of a new feature by counting clicks on its “coming soon” link.

The folds of the brain by Yoram Rozner:
Yoram talked about the analytic map and intuitive map that our brain is “based” on:
Intuitive are those things that we do automatically, without having to think about it too much, whereas analytic refers to those tasks that requires “CPU”.
The bottom line is to strive plan interfaces that requires the intuitive thinking (for example: do not write 20% discount and make the user do the math – write 200$ discount).

Finally, a sentence that I heard and believe in:

Put the X in the U. It’s not for U.