All posts by mfouad

2015 in review – Productivity and TV addiction

So I left my day job by the end of 2014 to bootstrap my own business, and learn some new stuff..

Lot’s of people share that Facebook’s Year in Review photo album as a way to look back at their year. I think that is lazy, you have to look back at your year and feel proud of your accomplishments; and feel stupid for the stuff you did wrong.

I believe in numbers, so instead of sharing long stories, I will share stats of 2015 versus 2014 and also .. long stories.

Here are the areas I will cover:

  1. Productivity. (this post)
  2. Social life and Networking. (coming Soon)
  3. Side Projects & Learning. (coming Soon)
  4. Business Ideas and Startups. (coming Soon)

Productivity

I work remotely from home, both at my old job and as a freelancer.

2014
2014

You can see I had no problem with social media, it consumed less than 9% of my time, but I do have a huge problem with TV.

In 2014 I wasted 20% of my year watching TV. That was a huge red flag for me back then because it was double the time I spend in 2013 and I thought it was because of boredom, that I did not challenge my self enough. As a friend commented back then, I became stale. That was one of the reasons I had quit my job.

Now In 2015, it actually got worse, almost doubled to a 35%, that is a third! .

2015
2015

 

How it really affects me

Did I mention that when you watch TV, you also tend to eat? It is almost worse than smoking or drug addiction, atleast you lose weight consuming that crap.

But the numbers still show that even though I am not living up to my potential, I did get alot done. There so much coding that you can do before it starts to become counter-productive and full of bugs. Note that I coded for 500 hours in 2015, slightly more than 2014.

And I think I am learning and working on projects that I am more passionate about in 2015 than 2014. The pace is slow, and I can do better isA.

Family and Friends

I think it affects my social life more, this should be family and friends time. I am not the best husband and father there is and I do need alot of work to fix that.

Edit: I just realized that I am the only one who’s wife now has the numbers to prove that he is a lousy husband!. There are plenty of husbands who spend their nights in bars or at coffee-shops, but none of them was stupid enough to share stats about it!

You could blame working from home

No, and I have the numbers to prove it. I was waaay more productive in 2013 even though I worked from home. I don’t have number dating before that, but I am sure that the TV problem was under control compared to today.

2013
2013

Working from home definitely feeds this addiction, but this does not explain what changed between 2013 and 2015, something else broke.

You could blame will power

I don’t believe in will power as an answer to everything. Will power, as any other resource, gets depleted the more you use it, and living in Egypt can deplete anything, so I won’t burden my self with that too.

Instead I believe in Systems, follow a routine. Need to lose weight? get a job that you can walk to. Need to quit smoking? befriend an asthmatic person. Need to stop watching Youtube? Sell your laptop.

The real reason, I think, is lack of Communication!

Upon close inspection you can see that after I quit my job, I stopped chatting and making calls with my team, almost 20% of my time , because I worked alone most of 2015, so it stopped, and TV time expanded to fill in the void.

Not to mention that I did lots of pair-programming at my old job. And I did learn alot back then. Maybe I should pay it forward to someone younger.

But I think I found a short term solution..

Co-Working Spaces

by week

Also in 2015 you can see a productivity spike near December, that is when I started going to a co-working space regularly. I hate that I can’t have my Dual-Screen setup, but it did get things moving and got me releasing some stuff, even if I did not go everyday.

Checkout this crowd-sourced list of Co-Working Spaces in Cairo. and please suggest any missing ones by editing the document directly.

A Note on time tracking:

Image result for rescuetime logo

I love RescueTime, but remember that monitoring your time does not magically make you more productive! You still have to look back and reflect. But tracking helps you identify the problem and maybe to close down to the culprit too.

If you do track your own time, would love to compare notes :D, leave a comment here or on @_fouad.

Lessons:

  • I need to Chat way more! (so unintutive if you ask me)
  • Enroll in some studies or courses (I tried MOOCs and Pluralsight they were great but, TV always won!)
  • Go to a co-working space regularly, I recommend MyCoOffice. You can’t sleep or watch TV there.
  • Use social media more? (what advice is this).

Summary:

If you are working from home, either have a very engaging, challenging team, or find a co-workspace.

 

Slow Downloads from Egypt

Beside the slow internet speeds we get in Egypt, many servers are located far away with no mirrors or CDN that we can’t download files at a humane speed.

Recently I was trying to install Umbraco, and the download was very slow, just 15MB but it would take forever, then eventually fail.

So I ran a trace route to see where the server is hosted (which country), it seems the site is hosted on Azure Blob Storage

Side Note: anyone else notices that Office365 is so slow in Egypt as well?

>tracert umbracoreleases.blob.core.windows.net

Tracing route to blob.am2prdstr07a.store.core.windows.net [168.63.3.46]

over a maximum of 30 hops:

1 3 ms <1 ms 1 ms . MY_ROUTER

2 31 ms 29 ms 42 ms SOME_SERVER [163.121.171.184]

3 82 ms * 91 ms host-163.121.211.134.tedata.net [163.121.211.134]

4 * * * Request timed out.

5 242 ms 235 ms 119 ms 10.37.242.30

6 59 ms 34 ms 44 ms 10.35.2.157

7 * * 95 ms 10.37.242.181

8 106 ms 55 ms 109 ms 10.37.242.169

9 44 ms 36 ms 40 ms 10.37.241.25

10 84 ms 83 ms 81 ms msft-decix-01-fra.ntwk.msn.net [80.81.194.52]

11 210 ms * 139 ms ae12-0.fra-96cbe-1b.ntwk.msn.net [191.234.84.121]

12 271 ms 94 ms 107 ms ae6-0.ams-96c-1b.ntwk.msn.net [207.46.42.52]

13 169 ms 333 ms 125 ms ae11-0.amb-96cbe-1b.ntwk.msn.net [191.234.81.179]

14 160 ms 123 ms 95 ms ae14-0.ams04-96cbe-1b.ntwk.msn.net [191.234.82.184]

15 * * * Request timed out.

16 * * * Request timed out.

17 * * * Request timed out.

18 * * * Request timed out.

..

So it seems Umbraco are not using a CDN (Content-Delivery Network) or mirroring for their downloads. My download request goes from Egypt to France to the Netherlands then it times out. Till now, I do not know in which country the server resides.

According to YouGetSignal, here is the complete visual route, I don’t think it is perfect, but it does not contradict with tracert output

Tor to the rescue

So I decided to try Tor, They offer a customized version of Firefox that connects to the Tor network automatically, it is dead simple to use. It is basically a glorified secure proxy

Tor’s users employ this network by connecting through a series of virtual tunnels rather than making a direct connection

From <https://www.torproject.org/about/overview>

Tor circuit step two

Now the download was completed in less than a couple of seconds!

Without Tor (4 KBps)


With Tor (180 KBps)

PS

I tried again today to download Umbraco without Tor and the speed improved dramatically, no idea why!, probably because I don’t need it urgently today 😀

Lessons for team leaders and developers that no one will tell you

After three years of being a team leader. I like to write down the lessons that I learned so far, (some of them the hard way), or else I or someone else will fall for them again tomorrow.

Some of you will think: duh! these are so obvious!.
And maybe they are, but it seems that you don’t learn life’s lessons until they bite you. And if they were so obvious to you, why didn’t you share them?!

Some of these advices apply to software developers in general, but they became more valuable to me as a team leader.

Remember, You read it on the internet. These are not facts, I have been proven very wrong many times. I might even have blogged opposite opinions in the past!

#1 – Don’t work too hard

Especially if you company allows or pays well for overtime. Or if they ask you to do it all the time. Also, if you have flexible hours, don’t work all your 40 hours in one day and then play the rest of the week!. Here is why ..

Throwing time at a task, makes it take longer

If you give a task 10 hours, you will finish it in 10, even if it is a 1 hour task. So, working overtime makes you burn time and health working on useless tasks. tasks that if you think about, are not that important or urgent. Instead, Work smarter, not harder.

30 hours work week: some startups are moving to a 30hours work per week. this way, if an employee has to finish 10 tasks in 30 hours instead of 40, he will think very hard about the fastest, most simple, smartest way to work on each task.

“work expands so as to fill the time available for its completion”  – Parkinson’s law

But beware, Parkinson’s law does not apply to hard workers, it applies to slack-offs. So do not use it against yourself. Never compromise the quality of the task by giving it less time that it deserves. Just don’t work 80 hours a week!

Overtime will become the norm, and no one will thank you for it

If you give more, more will be expected from you. If you work 5 extra hours and finish 10 tasks a day for a month. It will be come the normal. If you dial back to working 8 hours and only finishing 5 tasks a day, your management will accuse you of under-performing.

given time, instead of appreciating that you spend more hours in the office, they will expect you to do it, then they will blame you to do it. It is just human nature.

As a team leader, it could be the other way around for you. of your team members are awesome hard workers. You will keep delegating too much to them and taking more work for the team. Then you will find yourself owning too many projects. and the team has a task list for years to come, and they have to work on their own while you have no time to teach or transfer your experience. Projects will transform to a hairy beasts that take years to complete, and everyone is working late and eating at their desks with no time to connect or learn anything new.

#2 – Never multitask

Multitasking is for people who are lazy to prioritize. Work on one project only at a time.

When we feel overwhelmed we think that we need to put more effort in finishing all the things in our list. Don’t If you have too many things to do, drop some!

We should know better, we know that we have one brain (processor), and when you multi-task on one processor, you waste time in context switching!.

So how to do it? Ask your manager to order your tasks according to priority, the most valuable stuff should be at the top. So, focus on the highest priority item. Anything else is a waste of time.

#3 – You should not die for Deadlines

Deadlines are not set in stone. you will always face problems. don’t face them by working late everyday.

Whenever you feel like you won’t make a deadline, communicate that fact to your management. Do not wait till after you miss the date to say

“hey, sorry I missed the date 2 days ago. I faced a problem with that useless feature that you probably would have told me to ignore if you knew it is hard to do”.

Instead, say

we have faced a problem X ,
and we will solve it using Y,
and this will make us late by Z days

Usually the reply will save you lots of frustration. at least someone will try to help you solve this problem. They can buy you more time, cut some features, assign you more people to help. Anything that is better than working so late every day!

#4 – Invest in people first, not technology

Leads always look for the latest and coolest tools to improve productivity or raise the quality. we try methodologies, applications and practices. We sometimes become very desperate, we would try anything. like a desperate patient, we would even try magic if someone sells it.

But we forget that people are the ones who operate technology. it does not matter if you have the latest and greatest Source Control Management system if no one use it right. or if no one uses it at all.

Instead of using the new communication tool. Consider teaching your team to communicate effectively first.

Instead of getting a better SCM, consider teaching your team to actually use the one you have first. Because we use it wrong man!

Instead of using a new super Intellisense tool. that tells you where the function is buried deep in the code. Consider teaching your team to write more organized code and to stick to object oriented design. If you get that tool, it will encourage you to write even worse code, because the tool will help hide the problem but not treat it.

#5 – A day in QA is worth a year in Dev

never compromise in quality. if you are super late, and you finished all your tasks, but did not test the project good enough, or not confident enough in it. Do not push it to QA.

No matter how tempting it gets, don’t do it man!, really.

The thing is. QA will always always find bugs. That is the ultimate truth. The only difference is that if you skip testing at the end, bugs will increase exponentially.

It goes like this, you make a small tiny change, you compile, it builds, all cool. Now you could spend an hour or two testing that the tiny change did not break anything, or you could make it someone else’s problem and ship it. After all, it is a tiny change, what could possibly go wrong?!.

You wake up a day or two later, with a letter from QA that there is that critical bug, you think about it for a second and then you realize that if you spent that extra hour testing, you would not have wasted 2 days in QA, then a day for you to fix it, then two more days in QA. Going back and forth will cost you a lot of wasted time, communication, debugging, emails. You will end up wasting much more time.

#6 – Don’t become indispensible

knowledge is power. No, wait!,  knowledge just drains your power.

You become so important, and full of knowledge and information that you are almost indispensible. When you are young, you love that feeling!

image

But then you realize that everyone waits on you for some piece of information. You get IMs @11:00PM. Your phone rings on weekends. You can’t have a week long vacation without holding a meeting or two.

Where I work, my manager asks us to log important notes about every task you work on into a common wiki. he calls it Project Notebook. it is brilliant and it saves us lots questions and communication and wasted time.

To be free to manage your time, every bit of info you know must be written down and searchable. Even if your company does not require it. It is a must if you like to be on a vacation without someone calling you.

One company I read about forces to never take any calls from you colleagues during vacation, or answer emails. This forces them to be on their own and learn what you do.

I suggest a Wikimedia, OneNote, Evernote for business, Or Sharepoint if you need to customize your workflow.

#7 – Keep your friends close

Friends work better together (just by observation, I don’t have hard data or proof). So allow your team to create friendships, let them breathe and don’t make work the intolerable place that they need to escape from and don’t want to befriend anyone in it. If you can hire developers who are already friends that will be even better.

Communication is hard. But communication bandwidth between friends is so huge. They might even hangout after work and chat about work, how awesome is that for your company!

One-to-One meetings also help you to keep in touch with your team members, to get feedback about how you are doing, give them feedback about how they are doing, exchange news about the company and the products, and it keeps your team in the loop of what is going on!

#8 – Read about it

Team leaders got promoted because they were good software developers. Then they try to manage humans the same way they manage software, while both are very different problems. Becoming a team leader is a little bit like changing your career. so treat it as such and read more about it here: (a.k.a. References)

A Picture maybe worth a thousand words. But a video is not worth a thousand books!

Just watch

I used to think that because of YouTube and the million video tutorial out there, that I no longer have to read books.

To learn a new programming language syntax or a new technology, I could just search for a video and watch for an hour or two and I will be an expert.

I thought it will be the end of books.

How vs. Why

A step by step video can teach you how to create a website, but you will never understand how a browser works. and believe me any developer worth his salt should know how it works and why it works this way.

Give me a fish, I’ll eat for a day.
Teach me to fish, I will eat for a lifetime

Videos vs. School

Tutorials are a form of a non-interactive school. Schools have been around for centuries. They are a live person playing a video every day. teaching you, walking you through steps. still, no one thought that school made him need books less.

In fact, it is the other way around. You need a teacher to explain a book or ease your way through it, not the other way around.

I read blogs..

A book is worth a million blog posts

Since I got my android phone and had access to Pocket, I read lots and lots of blog posts. they are bite-sized, concentrated, engaging pieces of knowledge.

Two years and 3,000 blog posts later, I don’t feel any wiser. I remember the bites, but never felt like I ate the meal. Never felt full.

Blog posts are not always right. They are just musings, thoughts, summaries, and lots of crap. just like this post!

Don’t believe me? check out the following interesting and useful topics ..

image

.. they were auto generated by Hubspot’s Blog Topic Generator.

Books vs. The Internet

Some would argue that anything that you can find in a book, can be found in blog posts or stackoverflow or just by googling it. So, go and collect every piece of information about the topic that you can find online. you will waste weeks of your time and you will end up with an untangled web of unrelated information.

Books are just curated knowledge, well written, organized and based on real experience.

If I have something valuable and useful, why would I give it to you for free! Why would I put my pearls of wisdom or years of experience in a blog post that I write @8AM while drinking my morning coffee? How would it even fit in a post?

It is my greatest intention to make stackoverflow.com highly complementary to these sorts of timeless, classic programming books. It is in no way, shape, or form meant as a replacement for them.

Jeff Atwood – From <http://www.codinghorror.com/blog/2008/04/programmers-dont-read-books—-but-you-should.html>

7 signs that you are an old developer

You know you are old when you..

Remember Floppy disks or WindowsMe

When you make jokes about Floppy disks that no one understands, because they never used one. Or talk about the days when all applications shared the same address space.

Still think about RAM as an expensive resource

image

when you find yourself thinking, this array will take up to 2MB. Is this too much? Now that the average laptop has 4GB of RAM and a browser consumes 1GB or RAM easily. you should not worry too much about 1 or 2 MB or RAM.

Even when you think about Disk I/O. Now that SSD disks are easier to come by,  developers worry less about writing too much to disk.

In fact, even without RAM and SSD. Virtualization and Cloud Computing allows you to throw hardware at your problems much easier and cheaper than we ever did before.

 

Cloud Scale-Up vs Scale-Out
Scale-out  by adding more small servers instead buying a larger one
Image by Navcode.info

But still, according to Wirth’s law, soon you will find that your applications run slower over time. then your skills in optimizing stuff will prove worthy.

“software is getting slower more rapidly than hardware becomes faster”

Have a book about MFC

When you find a book on your hard drive or bookshelf about a technology that died or nobody uses anymore (Perl, MFC, VB, ?)

Planed to learn Flash

Or when you find another book that you always planned to read about a technology that died, and you still did not get to read the book ..
You feel like “Thank God .. I don’t have time to learn WPF, SilverLight, Flash, SOAP”

Can’t learn new things

image

When you hit a new concept or language that you just can’t wrap your head around it. take Node.js, Hadoop
You just feel that you have no room in your brain and you have to forget something else – free(cpp_syntax); – in order to learn this new piece of information.

On a related issue. Excuse me, but I am supposed to understand this gibberish?

fib n = fibs !! n
        where fibs = 0 : 1 : next fibs
              next (a : t@(b:_)) = (a+b) : next t

The older you get, the less you get paid


This movie SUCKED!

The ultimate sad fact about our industry. You are too busy or too old to learn the new stuff. so you hire kids who know these stuff and pay them more that you earn even though they have no experience. Just because they know Mobile development or Knockout or whatever technology that is hyped now

Remember when you where the only one who knew ASP.Net?. Yes, You have been that overpaid kid once before .. so stop whining old man!”

No longer have interest in trolling

Remember when someone asked you “Java or C#?”, “Linux vs. Windows?” or the all time classic: “Open or Closed source?”
Remember how you could go for hours arguing which is better and why?

Now that you are old. if you are asked the same question. you will come up with a lame answer like “Each has its advantages” or “Why can’t we play together”

Now that we have a new language each month. we can sit back and watch the trolls

So which is better: Dart, GO, Clojure, CoffeeScript or TypeScript?

Tools I used in 2013

These are the tools I used in 2013 to get things done. They are apps I use almost everyday, and they are just awesome.

If you like power tools, check out Scott Hanselman’s Ultimate Developer and Power Users Tool List for Windows.

A picture is worth a thousand words, if you like the app’s icon, check it out.

Chrome Apps

image

Windows Store Apps

image

 

Android Apps

Content and Podcasts:

clip_image001clip_image002image

Interactive Lock Screens, keeps my daughter busy while I work:

imageimage

 

This post was created with screenshots in 10 minutes thanks to LightShot. an awesome screen capture tool that hooks to the PrntScr key.

image

Hire these guys ..

I have worked with many developers. their performance always varies. but the ones who performed so well, had one or more of the following traits…

 

These traits or qualities are not related to development, not related to design, coding, or testing. they are just related to how they work. and they apply to any other field other than Software Engineering I guess.

 

The Doer / The Soldier

I guess doers are the best performers. they are people who can work on their own. They could be working on a very hard and complex problems with new technologies, and still achieve good results. They never stop growing and are always hungry for more.

 

How to spot a doer?

  1. He knows stuff that they don’t teach in college.
  2. his graduation project is very hard and complex. sometimes it is a research topic at the time he started it.
  3. He has a blog. because if you do something you are passionate about, you have to talk about it or you will explode!

 

The Hacker

A hacker is a guy who understands a system so well, that he can control it how he pleases. If you don’t know your tool, how can you expect to control it well.

 

Since I develop real-time systems, I really care about the following topics:

 

  1. Memory Management.
  2. Networks and Communication. basically, how data flows between systems.
  3. Threading.

 

And No. Knowing or reading about these topics is not enough. If you have not written a multi-threaded application, then you know nothing about threads. (Here is when the doer part kicks-in, a doer would have done a project that taught him these stuff)

 

But even if they are not real-time (or mission critical) systems. If a web developer does not understand the life cycle of the HTTP page that he sees when he types http://google.com in the address bar, then he is not worth his salt IMHO.

 

I like to work with software Engineers. not just guys who can write code!

 

The Mentor

A mentor is someone who has some knowledge, and cannot wait to spread it.

 

A mentor is not just someone who knows something. He/She is someone who communicates what he knows.

 

He knows. And everybody knows that he knows

 

You know that guy you always turn to when something is not working right? when you have questions? or you don’t know how to finish that task? The guy whom you know will know the answer? That is the mentor.

 

 

.Net’s Http Classes are a mess

This is a trolling rant. Reader discretion is advised!

Duty Callshttp://xkcd.com/386/

 

.Net is elegant

image

Whenever I have to deal with Http in C#, I am reminded that .Net is a very elegant framework. Why?, because Http classes in .Net are the exact opposite of elegant.

While everything in .Net encourages reusability, encapsulation and inheritance. Http classes are quite the opposite.

 

Itchy-T-T-P

Obviously Microsoft is so in love with Http that they decided to spawn like a hundred HTTP request classes.

so every time you want to make an http call, you have to pick from a handful of classes:

  1. you get HttpWebRequest, to deal with Request streams.
  2. you get HttpRequest to deal with IIS requests in ASP.Net pages.
  3. you get HttpListenrRequest to deal with self-hosted servers.
  4. you get HttpRequestMessage to deal with HttpClient.
  5. and the list goes on..

Ok, but requests are not created equal, but you get the same response, right? NO. each of these requests has its own response.

And none of them is powerful enough on its own. In one, you get a content stream, the other has the stream as a body property. the third gives you http headers in one place, the forth gives you the content headers in a separate collection (don’t get me started on how each class defines the header collection!).

so basically, whichever class you choose, you are screwed, and you will have to implement the parsing and helpers that are already implemented in the other class!

Seriously?! haven’t they heard about inheritance? reusability? conforming to standards?. I know MS has a problem with standards, but these are your OWN standards!

Enter NuGet

so Yay!. now every other open source framework can re-write their half-baked http client. Making it impossible to find a good one. Just what we needed.

Enter IntelliSense

you mean IntelliDull! You can never write C# code without using ReSharepr or VisualAssistX or the other 100 alternatives that everyone has to use. You can never tell on your own if a collection uses .Count or .Size or .Length or .Count(). You can never tell if you need to use GetImputStream() or InputStream or Stream using just intellisense.

 

image

el Bahwa2a

means loosely fitting. like wearing a shirt 3 sizes bigger.

Where I work, I code in C++ a lot, and I hate it, and I count the lines till I can get back to .Net. But whenever I am back after a while. I can’t resist the feeling that .Net is no longer a solid framework. Sure it rarely has issues, and it is well tested, but it is like every MS employee is writing his own class with his own implementation. and I am sure this is not the case.

But I am also sure that there is no one in MS walking around and beating developers on their head with a standard!

Bitwise Cheat sheet

The problem

I have lived long enough to see lots of code. and I usually find that if you force a developer to do some bit manipulation, he will write very complicated, very hard to read, and usually WRONG code. for example:

 

// check if a window is not minimized and not hidden:

isDialog = (WndStyle & (~IS_VISIBLE) &&  (WndStyle & (~IS_MIN))

 

Who should read this?

I work in a company where we deal a lot with FileSystems, and their APIs tend to overuse Flags. Lots of Access Masks and ACLs etc. So I am often faced with a situation where I need to do extensive bit-manipulation.

Here I tried to collect all the tricky bitwise operations you will need to do if you are a normal developer, a young geek. Those working on Cryptology or Networks, are major geeks, and, will need a more comprehensive list of operations than this one. I suggest you check Hacker’s Delight

Another smart idea is to collect all these operations in a header file like bithacks.h

Who can read this?

I assume you are already familiar with basic bitwise operations. If you are not sure if you need to read this article, answer the following question. If you can’t, then this article is not for you.

What is the difference between Bitwise AND &,and Logical AND &&?

 

Conventions

I use the C language Bitwise operators, they are almost the same in every other language I used except Assembly

AND

&

OR

|

XOR

^

NOT

~

Shift Left

<<

Shift Right

>>

Flags:

Check if a flag is set

#define  VISIBLE  0x01

isVisible = var & VISIBLE 

Complex Flags

Some times a flag is more complex, a set of different flags:

#define  VISIBLE  0x011C00

isVisible = (var & VISIBLE) == FLAGX

Check if a flag is not set

isHidden = Var & (~VISIBLE)

 

Test if n-th bit is set

isSet = (x & (1<<n))

Arithmetic

Check if an integer is odd:

isOdd = (Var & 1);

 

Print a variable in Hexadecimal:

int var = 0xcf14L;

printf(“0x%.8X”, Var);

outputs: 0x0000CF14

 

Characters

 

to Lowercase

OR with a space ‘ ‘. Works even if the letter is already lowercase. check an ASCII chart to understand why.

‘a’ == (‘A’ | ‘ ‘)

to Uppercase

Remove the space bits. or AND by an underline ‘_’.

‘A’ == (‘a’ & ~’ ‘)

‘A’ == (‘a’ | ‘_’)

 

Invert Case (lower to upper, upper to lower)

Flip the space bits. Flip means XOR

‘A’ == (‘a’ ^ ‘ ‘)

‘a’ == (‘A’ ^ ‘ ‘)

 

These are the basics. let me know if you have some tricks up your sleeves…

 

و كسبت سيارة تيــرافيـــرس

لو فعلا مش حاسس انك سمعت الجمله دى مليون مره فى رمضان اللى فات و مش حاسس انها مضايقاك متكملش قرايه. كلامى على برامج المسابقات الجميلة اللى كانت واحده تتصل
و تقول “المنبه ورا الدبدوب” و تكسب 10 آلاف جنيه! .. و تجاوب على سؤال “ما هو الغاز الذى يخرج من الجهاز التنفسى للانسان و يبدأ بحرف الثاء؟ و عندك 10 اختيارات و ابقى جربى ثانى اكسيد الكربون” و لما تجاوبه تكسب سيارة شيفروليه “تيييرااافيييرس”! .. كده بدون اى مجهود
او تعب!

الجميل ان نفس القناه قبلها بساعه بتجيب برنامج Reality Show امريكى عن ناس تخان شويتين بيتعذبوا و بيحاربوا فعليا علشان يخسوا شويه .. و اللى بيكسب (بعد عذاب لمده 6 شهور مش
6 ثوانى) بياخد 250 الف دولار ..

لو فكرت بمقاييس الاقتصاد الامريكى و اعتبرت ان 250 الف دولار لعائله الامريكيه لها نفس قيمة  250 الف جنيه مصرى لعائلة مصرية .. هتكتشف انه نفس تمن السيارة الشيفروليه “تيرافيييرس”!

و احكيلى عن اطفال اتربت و هيا بتشوف ناس بتكسب بالفهلوه .. و اطفال اتربت و هيا بتشوف ناس بتتعب 6 شهور علشان تكسب و يمكن ميكسبوش.