May 8, 2013 § Leave a Comment
After using wordpress.com for a couple of years now, it’s time to move on…
The new blog link is: http://blog.bassemdy.com
A new theme and more interesting content will be published soon.
May 5, 2013 § Leave a Comment
Maybe the title is a bit vague and this specific topic has been used, abused and dwelt upon by so many. Nevertheless, I believe if the topic is to be treated from one’s personal experience and perspective value can be found.
Many claim that motivation, creativity, perfectionism, work life balance and many other hacks and shortcuts are keys to success or at least achievement. Articles keep pouring in the online streams with stories about leveraging different key ingredients of success. There’s a lot of truth in them, but a component is missing. Discipline.
Let’s ignore the negative connotation associated with discipline because here I’m talking about Self-Discipline: willpower, self motivation despite irregular emotional states, hard work, persistence, endurance, capacity augmentation, perseverance, objectivity, personal rectification of inadequate behavior. In short “The Hard Way”.
We keep looking for these magical shortcuts that promise life changing results submerging ourselves into an incapacitative state of mental numbness and non fruitful, never ending search for a non existing ultimate solution.
I have been writing code for a decade now, there simply are no shortcuts in this endeavor whatsoever! It’s a never-ending hardcore training journey that requires one to constantly keep pushing the boundaries over and over again. It has been and still is very daunting at times, boring at others and painful even (the countless overnights spent starring at the screen). If it weren’t for self-discipline enriching a goal oriented mindset I developed, I would have failed miserably. The same applies to many other aspects of my life: My projects, startups, research, implementation of ideas even writing this and other blog posts etc…
The only way for acquiring this skill, I call it a skill because you need to develop it, hone it, harness its power and keep pushing it without ever giving up or making exceptions, starts with a decision. It’s not a short path, it’s a long one so be prepared.
Step 1: Decision
It starts here. Start now, as soon as you finish reading this post, start immediately. Do not postpone, do not procrastinate.
Step 2: Trial and Error
It will never work out from the first trial. Keep that in mind. It takes time, keep iterating.
Step 3: Making no exception
We are emotional beings and we have this powerful instinct to protect and shield ourselves from whatever we deem is harmful or unpleasant. For you to reach advanced levels of self-discipline, you cannot make exceptions! Reduce them to a bare minimum. If you fail, go back to step 1 and start all over again quickly. Do not let it drag.
Step 4: Acknowledging the achievements and the failures
The sense of achievement is what keeps me going personally. Hard work that is rewarded (in so many different ways) is my positive reinforcement that I try to maximize as much as possible. Although the result is not always guaranteed and hiccups are due to occur, during these bad times, do not quit. Keep pushing.
I failed many times at reaching my self-set goals. I will fail more. However I succeeded in so many others and overachieved beyond my wildest imagination.
P.S: This blog will no long be updated and will only remain as an archive. The new blog location is: http://blog.bassemdy.com/
March 2, 2013 § Leave a Comment
The first round soliciting early adopters (Glass Explorers) for Project Glass has been concluded. Lucky are the engineers/hackers who will first lay their hands on what is undoubtedly the ‘Next Big Thing’ in the augment reality field. I say so because for long we’ve been playing around and exploring augment reality applications, and even though some were very good at showcasing the potential of this field in the near feature and its impact on people’s lives, these apps lacked a primordial component. Glass.
What mobile phones couldn’t offer, Glass can. The ability to apply augmented information on top of real life visual feedback is a crucial element for an immersive augmented reality experience. Google through its videos of Glass has shown the world some basic features tightly related to their products. Now (or very soon) it will be up to the developers to explore the new realm of endless possibilities and applications for this new technology.
My personal interests revolve around meshing AI (Artificial Intelligence) with AR, which inevitably is the next technological leap. Even though AI is still in a very premature phase, algorithms have reached a very satisfying level in data analysis thus statistical machine learning, predictive abilities, computer vision and image processing as well as speech recognition.
Alright, now what?
Now, Imagine The Following Scenarios
Coincidence or not, the Eulerian Video Magnification Algorithm has been developed and its open source implementation has already already been shared with the online community. To better understand what this computer vision algorithm is, watch the video below:
The relevant part of the video and the part to be discussed in this post is the capacity to amplify frames from live streams of a camera to see things that are not visible to the naked eye. Merging this new ability with post-rendering analysis and nothing prevents the implementation of a Lie Detection module, currently feasible with a Polygraph or a Body Language interpretation module providing Glass with the capacity to suggest behavioral conduct.
Face.com have developed a platform for efficient and accurate facial recognition, which makes mapping a name to a face a simple matter of querying a large database of tagged faces. No one will be anonymous anymore. If you have a profile image of yourself somewhere on the web, chances are, mapping that face to a name is not a difficult thing to do.
I believe it’s only a matter of half a decade or so before we will be able to implement almost all the features of Sight depicted in the shortfilm below:
The technology is mature enough to allow the development of an application that is capable of detecting a face among many other objects in a specific scene, map a name to the detected face, aggregate all publicly available information related to the name and finally display the relevant results on the HUD.
And it doesn’t require a multi-million dollar company or a research facility to develop the prototype! Most of the components necessary have already been developed and well documented, even variations of their implementations are available for free online. Heck, if I had Glass in my hands now, that’s the first thing I would be doing!
Privacy no more
Yep, well you guessed it, being anonymous to a group of people will be very hard soon. The only way to be totally anonymous is to be offline, but really, who is? Most people are discussing the matter of privacy on the level of social media sharing of footage and snapshots. That’s really only the first layer of the issue. I can’t predict the impact this will have on the daily human interactions knowing that one’s actions can be analysed in real time by a system, always, watching…
I suppose people will adapt, just like they did to previous life changing technologies. A lot will resist in the beginning but eventually everyone will be forced to be part of the new culture.
It happened before and it will happen again.
December 26, 2012 § 1 Comment
A mind map, as Wikipedia defines it, is a diagram used to visually outline information. The concept is simple: reduce the topic of discussion, idea, problem, write-up or concept to one word and branch out from there. It’s a Tree (similar to the CS Tree data structure). The high level overview of a mind map depicts spider webbing. The number of nodes is unlimited whereby each node can also branch into further sub-topics and sub-nodes creating an indefinite depth. What I love most about mind maps is depth, and I’ll discuss why shortly.
During the research I’ve done for this blog post, I wasn’t able to clearly pinpoint a single originator of the technique (allow me to call it technique). Multiple sources declared Tony Buzanas the inventor of mind mapping however multiple other sources argue otherwise. It is claimed that the earliest examples of a mind map were developed by Porphyry of Tyros (Go Lebanon!). In the quest of discovering the true origins of mind mapping I posted a question on Quora, maybe someone with factual information can shed some light on the bright mind behind this prolific technique.
Why use it?!
Mind mapping is very intuitive!
When I first picked up the fundamental rules of this technique I was very comfortable in immediately applying them to depict my line of thought. And follow it. It was like second nature to me, simply because when I usually take notes they take the shape of general wording scrambled around the main topic and associated via connection threads.
It’s very fast
Once you adapt to the almost standardized shortcuts of mind mapping software tools, your line of thought will be seamlessly depicted and outlined. Minimal rules or actually no rules apply in the creation of a mind map. There’s only one relation to respect: Hierarchy.
Oh how much I love to analyze a topic in depth. It’s very necessary sometimes to detail a concept up to its minutest detail and jump right away to higher levels. Mind mapping allows you to do that with ease. Follow the branches and jump swiftly from one node to the other without the overhead of looking for the relationship. While analyzing a diagram, going back and forth is essential. The faster this shift happens the less likely you are to lose your line of thought.
When to use it?
The general use cases of mind mapping are diverse. Let’s not limit the power of this technique to what others have used it before and invent your own needs for it. Trust me, there are plenty.
What tools should I use?
There is an arsenal of tools developed with which you can create your mind maps. However, from my personal experience, my two favorites are the following:
MindManager – MindJet
Since I’m currently using a PC with Windows as an OS, MindManager was my choice. It’s a bit expensive to buy, but it’s worth it. It’s the only tool I found that:
- Is user-friendly. The interface is similar to multiple MS Office tools.
- Has a good arsenal of micro tools to create complex mind maps.
- Is extendable.
- Allows you to export your mind maps in multiple formats, even interactive ones which allow the receiving party to walkthrough your mind map.
Curio is by far the best tool that was ever created for designing mind maps. Unfortunately, it’s only available for Macs with no support whatsoever for other platforms. It’s the most beautiful, most user-friendly, and most diversified in terms of micro tools.
Mind mapping is one of the best, intuitive techniques that help you map your thoughts into a clear and relational visual pattern. Use it, breathe it, live it. Harness the true power of mind maps and mapping your thoughts and ideas will become fun again!
October 14, 2012 § 1 Comment
Finally, I found a pretty sweet and affordable deal for a VPS. I have no pressing need for a VPS at the moment, however, I have some un-hosted domains that have been lying around the web for quite some time now and thought it’s time to configure a home for them. In addition to that, I needed a place to host my web experiments, a server to use for HTTP tunneling (Anonymous web browsing), somewhere I can experiment a bit with different server configurations and web application usage simulations under different loads and regions, security and networking. Every developer needs a VPS at some point in his life
I’ve had quite some fun customizing and configuration the server for my needs (especially with the green and black terminal). Don’t ask why Ubuntu, I prefer Arch (one of the best distros ever made), but in this case the choice is not mine to make. Alright, so to be get back on track, The Problem: What admin panel should I use to manage this VPS?!
Don’t get me wrong, SSH and CLI are perfect and are more than enough, but the need for readable analytics, reports, and the handling of some maintenance tasks promptly and from different locations make it critical to find a suitable web based administration solution…
CPanel and VHM would have been perfect, but for this specific scenario, paying 250$+ annually as license fees is not an option. Ajenti comes to the rescue. This minimal, simple and nice looking free open source project is perfect for my personal use. It’s at version 0.6.1 (at the time of writing this post), and it provides all the basic features I would expect from a server management solution.
Ajenti comes with around 31 easily downloadable and configurable plugins that will help you control everything from power management to security. It also features some plugins which provide you with much needed performance numbers (Disk IO, Bandwidth usage, CPU usage, Memory usage, HDD usage, Daemons and Services management etc…). It’s built using python. The web interface is clean and easy to navigate. Trust me, it’s much better looking than the horrific 1990 style webmin, AlternC, ISPConfig 3, GNUPanel …
What’s more interesting is the active community behind it, continuously fixing bugs and adding more features to the project. I like it so much that I think I’m gonna be writing some plugins myself for this platform sometime soon. (Already have some ideas in mind of features I need myself).
If you are managing your personal VPS and you need an administration panel that does the job on a small scale, Ajenti is your best bet. There are some annoying cons such as bugs that make the web interface crash (nothing that can’t be fixed by a page reload, but still), the need for more information and better scenario handling (some use cases are not covered yet). It’s not fully robust yet, but it’s getting there and it does a great job in the meantime.
Developer docs: http://wiki.ajenti.org/dev:intro
Here are some screenshots of Ajenti operating on my server:
If you’re interested in similar posts you should probably follow me on Twitter: Follow @BassemDy
September 29, 2012 § Leave a Comment
It’s very disappointing when companies compromise quality for the sake of strategic deadlines. Anyway, that’s a topic for later. iOS6 seems to have a problem with the video encoder.
I’m currently using an iPhone 4S and have upgraded to iOS6. If you shoot a video, copy it to your PC (using Windows 7 64-bit) and try to play it using Quicktime 7.7.2 you will simply get a blank black screen. You can still hear the audio, but no video at all. If you try to re-encode the video from MOV to mp4 or H.264 or any other format, you will end up with a green screen…
Other videos that were shot before the upgrade work properly with no issues.
This solution that worked for me and i’m using Windows 7 (64bit):
Uninstall Quicktime 7.7.2 and reinstall the older version 7.7.1, here’s the link for it:
This old (well not so old) version of Quicktime seems to work just fine.
This is simply a nasty bug, not sure of the reason for it, but I hope it will be solved soon. A lot of people have reported this issue since mid-September I believe with no response from Apple.
If you’re interested in similar posts you should probably follow me on Twitter: Follow @BassemDy
September 26, 2012 § Leave a Comment
The V motion project
It’s projects like the V motion project that really make wonder, what the hell am I wasting my time on… I cannot hold back the mixture of awe and anger as I see videos online such as the below. The first feeling comes from a well staged, well executed, choreographed, mixture of art and technology and appreciation to developers and producers. The later from the regret of not spending my time doing something quite similar, having the technical know-how.
Enough bullshit, here’s the action:
The project is the child of Fugitive. Kudos.