Profile cover photo
Profile photo
Hammad Fauz
Where's the fun in "just works"?
Where's the fun in "just works"?


Post has attachment
Jebel Hafeey, Al Ain

Post has attachment
Courtyard of Grand Mosque, Abu Dhabi

Post has attachment
Zayed Grand Mosque, Abu Dhabi

Post has shared content
Yay, GitHub finally released traffic analytics:

Apparently, ga-beacon helped convince them that it's worth building:

Lesson learned: build more 1K star repos to get more features on GitHub! Also, for those wondering about "fate" of ga-beacon: you can use it alongside "native" GitHub analytics if you want real-time reports, and you can also use it outside of GitHub.. it's a generic beacon! Anywhere you can embed an image / pixel tag, you can gather real-time data and view it in GA.

Post has attachment
I posted this as an answer to someone on a community asking for help with basic coding. I think it can benefit a wider audience. (With some additions)

Here are the basics of coding (language doesn't matter)

Expression A step that performs a computation. It is the most basic unit of code. 2+3 is an expression that evaluates to 5, 2 > 3 is another expression, which evaluates to false.

Variable A (named) location in memory, you can used to store values in. Expressions do not need to evaluate to something every time. Sometimes, they just perform operations like moving values around in the memory. a = 3 is such an expression. It stores the value 3 in the location named a. Variables can be assigned values of different Types. When you use the variables in expressions, they evaluate to the values assigned to them, before evaluating the expression itself.

Type Different Types of values are treated differently by the computer. Some operations might be valid for some types, while being invalid for other types. An example of a type is number  like 5 and text like hello. You could multiply two numbers together, but not two texts. Different languages call types by different names (C calls a number, an int, a decimal number is a different type in C, called float, texts are called strings in C). Types define how the values are encoded when stored as binary values in memory (memory can only contain binary representations). There are simple Types (also called primitive types) and complex types.

Complex types are defined as different arrangements of Primitive types.

An Array is a complex type, which is basically an ordered collection of a single primitive type. So, in C, an int array would be an ordered collection of ints. An int array could be defined like this: [5 2 1 9] this array has 4 ints. You can select any int in the array by its index which is the position of the int you want to select. Index often start from 0, so the first item in the array above (5) has an index of 0. The Third item (1) has an index of 2. The nth item has an index of n-1.

Another example of a complex type is a Tuple also called a dictionary in some languages. It is an array of items that have user-defined values as indexes. And example of a dictionary would be, [(hammad, akhwand), (jae, yong)]. Here hammad could be used as index to select akhwand. You can combine, and mix and match complex types to make even more complex types, depending on the language you are using. I could have an array of items in the place of akhwand in the dictionary above, which would be returned on calling index hammad.

Complex types are also created by just grouping different types. C has such a type called struct, other languages may have something similar called objects. Such complex types make it easier to write code for real-world applications. We could have a struct or object called person which would be a combination of first name (a string), last name, (another _string), age (an int). There is a whole class (pun not intended) of languages called Object-oriented languages that use and define objects in fun and useful ways (using things like classes and prototypes, which are not strictly basic coding stuff).

It would get really boring and tedious if we had to code from scratch every time, or implement the same stuff over and over again. That is why languages have Functions. Some languages call them routines. A function is a group of lines of code that can be grouped together as a single operation, and 'called' when you need the same set of operations performed again. An example of a function would be something to calculate the area of a circle. Functions may take values or parameters as input to perform same operations of different sets of values. AreaOfCircleWith(Radius) could be a function which takes Radius as its parameter, and outputs Area. Not all functions might evaluate to a value. AreaOfCircleWith(Radius) function could have code for operations to Square the Radius, then, multiply it by 2, and then by Pi.

The most fun thing about coding is its flow. You can define in your programs, which part of the code you want to run(Conditional), and for how many times(Loop).

Conditional flow defines what you want the code to do, depending on different conditions. If else is a common way to define a conditional. If (user presses key) close window, else if (user clicks button) play sound, else wait for input, is an example of a conditional flow.

Loops have many common manifestations, a while loop will keep on repeating a block of code while some expression is valid. Loops are kind of like repeating conditionals. Specific conditions are checked after each end of loop. A for loop would just repeat executing a block of code, for a specified list or array of items. Lots of different languages have different ways of defining loops.

Now that the concepts have been introduced, here are tips for getting your hands dirty:
1. Choose a programming language. For learning purposes, choose something general, with a lot of community on the internet, so you can find someone to help you out if when you get stuck. To get you started, 

2. Once done, google how to set up <language-name> development environment. Replace <language-name> with the language you chose in step 1. At the very basic, coding consists of creating or editing text files, and providing them as input to the language compiler or run-time. A lot of times, languages have many different dev-environment setups. Some use IDEs (Integrated Development Environments) which is like Photoshop for coding. They will provide all the tools, skeleton code (also called boiler-plate) , code editor with syntax-checking capability, code explorer, etc. Some setups are simpler, just consisting of your favorite text-editor (I personally like vi) and the run-time or compiler executable. My recommendation, for learning purposes is to use the simplest most minimal environment available. This is so that you get to know about the inner workings of programs, and how code is usually structured. IDEs will make stuff easier, but might cause you to skip the learning part.

3. Once your development environment is set up, you're ready to crack your knuckles and get coding. Decide what you want to make the computer do, and code it. When you get stuck, google the concepts introduced above for your specific languages (To see how to write a loop in Python, google Python loops or python looping or python for loop). is a website that will prove to be very helpful for very specific problems (like cryptic compiler errors and warnings).

Happy coding!

(Original post here:

Post has shared content
That's 10 Million Bytes, you guys. Only $3.39(8) for ten thousand Bytes!
Introduction of a Hard Drive from the Past.

Not sure how many people reading this post actually remember the time of 5.25" & 3.5" floppy disks and cassettes before that. Arrival of the magnetic hard drive was a big thing.

Who remembers loading software from a cassette player connected to a BBC micro computer and waiting almost an hour before getting anything on The screen?


Post has shared content
A classic case of what happens when your client-side is decoupled from your server-side.
Look, maybe someone has had troll issues in the past, and they decided to set their posts to only allow comments from people in their circles. I can get that. But for the love of Christ, +Google+, can you please give us some indicator so we don't spend a bunch of time on a comment only to find out at submit that we're not allowed to? Just some tiny UI hint that we're wasting our time?

There is nothing more frustrating than seeing a really great post, crafting a thoughtful and relevant comment, and then getting the finger.

Post has shared content
Woah! This is happening!

Post has shared content
Allah is the protector of those who have attained to faith, He takes them out of the darknesses and into the light.
(Quran 2:257)

Post has attachment
Here are the faces, the actual people, living human beings. Flesh and blood, with hopes and dreams, like the rest of us. The dots in drone strike videos.
Wait while more posts are being loaded