tag:blogger.com,1999:blog-336694832024-02-19T03:31:56.220+02:00Neo OfficialGeeks are us :DAhmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.comBlogger115125tag:blogger.com,1999:blog-33669483.post-10261878713892646992014-11-22T01:19:00.004+02:002014-11-22T01:19:58.307+02:00Am I alone?<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
For some reason since I started my company I had the feeling that I am alone, I don’t know why.<br />
May be because I am single founder?<br />
May be because I am the one who came up with the idea?<br />
May be because I am the most experi...<br />
<br />
read the full story at <a href="https://medium.com/@neo_4583/am-i-alone-60cc36a059b1">https://medium.com/@neo_4583/am-i-alone-60cc36a059b1</a></div>
Ahmed Essamhttp://www.blogger.com/profile/09322671620650700405noreply@blogger.com0tag:blogger.com,1999:blog-33669483.post-65219122879312243192014-11-21T23:20:00.001+02:002014-11-21T23:22:37.284+02:00The story of finding family's home.<div dir="ltr" style="text-align: left;" trbidi="on">
Read the full story at <a href="https://medium.com/@neo_4583/the-story-of-finding-familys-home-6b17c9680afa">https://medium.com/@neo_4583/the-story-of-finding-familys-home-6b17c9680afa</a></div>
Ahmed Essamhttp://www.blogger.com/profile/09322671620650700405noreply@blogger.com0tag:blogger.com,1999:blog-33669483.post-54813876425173987402014-11-21T23:19:00.004+02:002014-11-21T23:22:17.462+02:00I am rusty<div dir="ltr" style="text-align: left;" trbidi="on">
Read the full story at <a href="http://medium.com/@neo_4583/i-am-rusty-3b6779380891">http://medium.com/@neo_4583/i-am-rusty-3b6779380891</a></div>
Ahmed Essamhttp://www.blogger.com/profile/09322671620650700405noreply@blogger.com0tag:blogger.com,1999:blog-33669483.post-28994727857383344512014-11-21T23:19:00.001+02:002014-11-21T23:21:58.598+02:00This is my story<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Read the full story at <a href="http://medium.com/@neo_4583/this-is-my-story-ca8f8438e397">http://medium.com/@neo_4583/this-is-my-story-ca8f8438e397</a></div>
Ahmed Essamhttp://www.blogger.com/profile/09322671620650700405noreply@blogger.com0tag:blogger.com,1999:blog-33669483.post-68178104471281040592014-11-21T23:18:00.001+02:002014-11-21T23:21:43.257+02:00More stories at Medium<div dir="ltr" style="text-align: left;" trbidi="on">
Hi there<br />
<br />
For some reason I feel that Medium is little bit better as a platform for publishing new posts.<br />
<br />
this is my account there, I hope you follow me :)<br />
<br />
<a href="https://medium.com/@neo_4583">https://medium.com/@neo_4583</a><br />
<br />
Thanks for your time.<br />
<br />
Ahmed Essam</div>
Ahmed Essamhttp://www.blogger.com/profile/09322671620650700405noreply@blogger.com0tag:blogger.com,1999:blog-33669483.post-87151977893038128152013-11-09T18:18:00.000+02:002013-11-09T18:18:50.979+02:00I will blog again.<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
I don't know if people who used to read what I write still here or not, anyways, it feels bad not to share, so I decided that I will get back to blogging to get some thoughts and situations/reactions, may be something is helpful for someone.<br />
<br />
Now, What happened, I almost disappeared for 2 years, the simple answer is "I started my company", I used to be involved in couple of things related to startups and I was never the core but in this one it was all me, I am the CEO, I am the guy who know it all, I am the visionary who should make it worth billions, in fact after all this time, I knew that I am the one who will get screwed until it works.<br />
<br />
Startups are not fun and you will not enjoy the ride, you will get ton of experience but GOD knows if you will ever use this experience or not, simply it may get very hard that you leave and this experience worth nothing.<br />
<br />
Startups will be fun and you will enjoy the "passed journey" when you make it, all that time you spend, sleepless nights are just sacrifices for what could be something big, the chances you make it is very low, I don't have clear numbers for how much people success or fail but I know for sure it is very low, in my region it is little bit higher and success can come instantly and much easy than US/Europe because Middle east still green market, everything is picking up here.<br />
<br />
I have learnt a lot, I owe "Draper university" a book, Yes I will write a book, I am collecting the material and the things I will write about, it will not be the type of book who will make you happy, it will be more about shit I faced, about lot of failures and disappointment, in short I was thinking of "I will fail again" as a title for the book.<br />
<br />
I am not pessimistic person but I like to be realistic as much as possible, I like to dream/day dream :D but I don't like to take this and speak like someone who know nothing about real life, I like to face the problems so in my head and put scenarios so it can be little bit easy when I face the real thing.<br />
<br />
I have changed a lot, I became totally different man and I think I owe the community what I have this is why I think I will write about lot of things related to startups, the community taught me a lot, people I don't know wrote helpful tips and things that changed my life and this is part of why I am back.<br />
<br />
This post is considered useless for some but I will try hard next time to make it worth the your time :)<br />
<br />
wish me luck.</div>
Ahmed Essamhttp://www.blogger.com/profile/09322671620650700405noreply@blogger.com0Street 253, Maadi as Sarayat Al Gharbeyah, Al Maadi, Cairo Governorate, Egypt29.9563578 31.273991429.9554978 31.2727309 29.9572178 31.2752519tag:blogger.com,1999:blog-33669483.post-51829033275896072932011-09-11T14:40:00.001+02:002011-09-11T14:40:59.665+02:00Dream Full of surprises<span style="font-family: arial;">Peace be upon you<br /><br />Today I have got a very nice dream, the dream has lots of the human feelings (Fear, happiness, ...) let us take it from the start<br /><br />The dream started where I was in a place that has lots of torn down buildings, the strange thing that most of this buildings was new, and under construction, I was walking in this buildings ruins, I was jumping from place to place, I made lots of successful jumps but I faced one that I stopped and I couldn't have the courage to complete, the jump was between 2 buildings + down the buildings is the land wasn't even, there was lots stones and rocks, the only thing that hold me down and stop me from doing this was the responsibility, someone was with me and I couldn't take chances while some life in my hands, so I step back, if I was alone, I may did this jump because I was going to do it but when I remember the people that hanging on me I step back, after that I moved to other place.<br />this place was so white, it was a lab at Samsung facility, imagine who I met there, I met Steve Jobs, he was missing with his iPhone, he was at Samsung to follow up some issues related to a product with the guys at the lab, suddenly happen something that was very strange, it is earthquake it was so strong, the Samsung building has part of it under ground connected to tunnel, this tunnel drops to City downtown, some how we managed to run from the building while it was collapsing, it was me and Steve and there was lots of people running, I found some kind of Van Car it takes about 14 passenger, I was of this passenger, I was setting at the last chair at the middle that's how I saw everyone in the van, it was white van, also all people in that car was very smart this was obvious from there personal devices, lots of small electronic devices, I forgot to tell you that I was the only one that has searchlight, suddenly we stop at the end of the tunnel, it was like disaster all the town is torn down, all buildings was mostly collapsed, I saw some kids trying to move from collapsed building to the normal land, when I reached there, I saw small girl about 7 or 8 years old, I ask her to give me her hand to help her, she said no, I will do it my self, and she told me lots of physics low stuff, she was calculating how to jump with minimum damage effect, suddenly I saw small kid also about 7 years old, he was saying very wise words about teaching the other kids something that make them gain their confidence again, all look at this kid and laugh while I was the only one who smiles to him and go with him, suddenly I woke up, I wished to know the rest :D, but for this point I am very happy, I hope that anyone analysis this :)<br /><br />Thanks for your time.<br /><br />BR<br />Ahmed Essam</span><br />
<span style="font-family: arial;"><br /></span><br />
<span style="font-family: arial;">P.S: I have had this dream in 2008 :D, nice to remember such a dream.</span>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com2tag:blogger.com,1999:blog-33669483.post-44016887356909526492011-06-02T15:24:00.003+02:002011-06-02T15:32:56.269+02:00Me, Cairo Startup weekend and Balooshy.Peace be upon you<div><br /></div><div>How are you? I am really sorry for not writing as usual but I promise to write more :)</div><div><br /></div><div>First, I wasn't ignoring my blog or something, I was very loaded doing many things, isA I will disclose soon about the past month and why I wasn't on the blog so often</div><div><br />In 28th April 2011, Cairo Startup weekend took place in AUC, I participated with a project called "Balooshy", I didn't win any cash but I won "GEP Entrepreneurship master class", for me it was much better.</div><div><br /></div><div>Now, I quite my job to start new thing that I wish it will work, it is called "Smartizer", Balooshy is one product of our company.</div><div><br /></div><div>Read the story in Business monthly June 2011 issue.</div><div><br /><div><img style="cursor:pointer; cursor:hand;width: 289px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFIDYtb4dU1UU1jDPrFauc54asSVREeMywAmFtK9U___q054hwxlP4NVoYO10ZBnt5yBZXON-VI9R2_dQAwjwjgqeyUlhO-taOuNE4az9ljg3wUpjMyXPG8deeimDQOztsoLXy/s400/023335.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5613613346869101810" /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0S9XXTPGo0MaU6QUradJnjhWyyB7bUwFj51oJArnJqLNuraPr9TpakRoySN5JJDOppb9erVgbzOJqLWdOsMtIaBDt32JSzmkM261mNU1Nn3yugQrA6sPqwpMTlhy-5IP7evrm/s1600/023509.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="cursor:pointer; cursor:hand;width: 400px; height: 289px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0S9XXTPGo0MaU6QUradJnjhWyyB7bUwFj51oJArnJqLNuraPr9TpakRoySN5JJDOppb9erVgbzOJqLWdOsMtIaBDt32JSzmkM261mNU1Nn3yugQrA6sPqwpMTlhy-5IP7evrm/s400/023509.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5613613401794441346" /></a><img style="cursor:pointer; cursor:hand;width: 369px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEintCq7cNw6bJuXt3-cV0g1RqC273OFITpUqlFTgTckwvJ6yoCCRLgwo1SFcEBDvhj3l4yi01UYtIVSUV8UZOmgOgFYm6YFguBlFJ0xcbIW9Su0o8nOnCXPKAVzffioxZWE1CWf/s400/023619.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5613613408921636290" /><br /><br /></div></div><div>I really wish to be able to write more in the blog and I wish that I can give you all knowledge I have :)</div><div><br /></div><div>BR</div><div>Ahmed Essam<span class="Apple-tab-span" style="white-space:pre"> </span></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com1tag:blogger.com,1999:blog-33669483.post-42456376441859486932011-01-26T01:29:00.002+02:002011-01-26T01:36:46.652+02:00Getting twitter feed while Twitter is blockedI don't know if u know what is going on in Egypt but there is lots of problems with the government and they blocked twitter.<div><br /></div><div>anyways, I think I do know how to get over it, the matter is simple, try to get any of twitter's IPs' and then connect to it using the IP</div><div><br /></div><div>The problem with it is, the browsers will use it The IP as a Host in the HTTP header, I have tried with many plugin to use something else but I always get "the redirect code" but when I did telnet on the IP and Wrote the http my self it did work :D "how do write HTTP :D"</div><div>anyways, I looked for a simple client and I tried something and it is 100% working</div><div><br /></div><div><br /></div><div><br /></div><div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #1f3cf5"><span style="color: #008425"><br /></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #1f3cf5"><span style="color: #008425">// I have got this code from <a href="http://www.pcs.cnu.edu/~dgame/sockets/client.c"><span style="color: #1f3cf5">http://www.pcs.cnu.edu/~dgame/sockets/client.c</span></a></span></p></div><div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78482f">#define PORT <span style="color: #2c2ecf">80</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78482f">#define HOST <span style="color: #d12c26">"128.121.243.228"</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78482f">#define DIRSIZE <span style="color: #2c2ecf">8192000</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12c26"><span style="color: #78482f">#define HTTP_HEADER<span class="Apple-tab-span" style="white-space:pre"> </span></span>"GET /statuses/user_timeline/Neo_4583.json HTTP/1.1\nHost: twitter.com\n\n"</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">char</span>* strToSend = <span style="color: #78482f">HTTP_HEADER</span>;</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">char</span> hostname[<span style="color: #2c2ecf">100</span>];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">char</span> dir[<span style="color: #78482f">DIRSIZE</span>];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">int</span><span class="Apple-tab-span" style="white-space:pre"> </span>sd;</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">struct</span> sockaddr_in pin;</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">struct</span> hostent *hp;</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #78482f">strcpy</span>(hostname,<span style="color: #78482f">HOST</span>);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">if</span> ((hp = <span style="color: #3e1f7c">gethostbyname</span>(hostname)) == <span style="color: #2c2ecf">0</span>) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #3e1f7c">exit</span>(<span style="color: #2c2ecf">1</span>);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #78482f">memset</span>(&pin, <span style="color: #2c2ecf">0</span>, <span style="color: #bb2d9d">sizeof</span>(pin));</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #713ea3"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre"> </span>pin.</span>sin_family<span style="color: #000000"> = </span><span style="color: #78482f">AF_INET</span><span style="color: #000000">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>pin.<span style="color: #713ea3">sin_addr</span>.<span style="color: #713ea3">s_addr</span> = ((<span style="color: #bb2d9d">struct</span> in_addr *)(hp-><span style="color: #78482f">h_addr</span>))-><span style="color: #713ea3">s_addr</span>;</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>pin.<span style="color: #713ea3">sin_port</span> = <span style="color: #78482f">htons</span>(<span style="color: #78482f">PORT</span>);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">if</span> ((sd = <span style="color: #3e1f7c">socket</span>(<span style="color: #78482f">AF_INET</span>, <span style="color: #78482f">SOCK_STREAM</span>, <span style="color: #2c2ecf">0</span>)) == -<span style="color: #2c2ecf">1</span>) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12c26"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color: #3e1f7c">perror</span><span style="color: #000000">(</span>"socket"<span style="color: #000000">);</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #3e1f7c">exit</span>(<span style="color: #2c2ecf">1</span>);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">if</span> (<span style="color: #3e1f7c">connect</span>(sd,(<span style="color: #bb2d9d">struct</span> sockaddr *) &pin, <span style="color: #bb2d9d">sizeof</span>(pin)) == -<span style="color: #2c2ecf">1</span>) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12c26"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color: #3e1f7c">perror</span><span style="color: #000000">(</span>"connect"<span style="color: #000000">);</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #3e1f7c">exit</span>(<span style="color: #2c2ecf">1</span>);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">if</span> (<span style="color: #3e1f7c">send</span>(sd, strToSend, <span style="color: #3e1f7c">strlen</span>(strToSend), <span style="color: #2c2ecf">0</span>) == -<span style="color: #2c2ecf">1</span>) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #3e1f7c">exit</span>(<span style="color: #2c2ecf">1</span>);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #bb2d9d">if</span> (<span style="color: #3e1f7c">recv</span>(sd, dir, <span style="color: #78482f">DIRSIZE</span>, <span style="color: #78482f">MSG_WAITALL</span>) == -<span style="color: #2c2ecf">1</span>) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #3e1f7c">exit</span>(<span style="color: #2c2ecf">1</span>);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>}<span style="color: #bb2d9d">else</span> {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008425"><span style="color: #000000"><span class="Apple-tab-span" style="white-space:pre"> </span></span>// The data is ready to be served </p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #3e1f7c">printf</span>(<span style="color: #d12c26">"%s\n"</span>, dir);</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #3e1f7c">close</span>(sd);</p><div><br /></div></div><div><br /></div><div>"Next step, modify the HTTP header in the browser so it works correctly with twitter"</div><div>Enjoy the code</div><div>Thanks for your time </div><div><br /></div><div>BR</div><div>Ahmed Essam</div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com4tag:blogger.com,1999:blog-33669483.post-83217189954347445812010-11-19T04:36:00.002+02:002010-11-19T04:41:52.545+02:00iOS SDK Text To Speech in one linePeace be upon you<div><br /></div><div>How are you guys? I am so glade that I am writing to you, todays post will be short and hopefully useful.</div><div><br /></div><div>While I was digging in iOS's private frameworks one library caught my attention, "VoiceServices" after some playing around it I found that there is away to use the "VoiceOver" capabilities out of its context, Here is video explaining the whole thing.</div><div><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/dnlVTV5uOjw?fs=1&hl=en_US&color1=0x2b405b&color2=0x6b8ab6"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/dnlVTV5uOjw?fs=1&hl=en_US&color1=0x2b405b&color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object><br /></div><div><br /></div><div>Here is the code for it.</div><div><br /></div><div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span style="color:#000000;">[[[</span><span style="color:#3e1f7c;">NSClassFromString</span><span style="color:#000000;">(</span>@"VSSpeechSynthesizer"<span style="color:#000000;">) </span><span style="color:#3e1f7c;">new</span><span style="color:#000000;">]</span><span style="color:#3e1f7c;">autorelease</span><span style="color:#000000;">] startSpeakingString:</span>@"I like to speak everywhere"<span style="color:#000000;">];</span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span style="color:#000000;"><br /></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;"><span class="Apple-style-span" style="font-size: 16px;">As you can see, with this line u can make the iOS speak whatever to you, just find useful use for it, something to read the twits or RSS feeds.</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;"><span class="Apple-style-span" style="font-size: 16px;"><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;"><span class="Apple-style-span" style="font-size: 16px;">Enjoy :)</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;"><span class="Apple-style-span" style="font-size: 16px;"><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;"><span class="Apple-style-span" style="font-size: 16px;">BR</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#d12c26;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;"><span class="Apple-style-span" style="font-size: 16px;">Ahmed Essam</span></span></p></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com6tag:blogger.com,1999:blog-33669483.post-47097197511590239952010-11-04T02:56:00.004+02:002010-11-04T03:19:22.872+02:00Extending TBXMLPeace be upon you<div><br /></div><div>How are you my beloved reader :)? I hope things is going Ok with you.</div><div><br /></div><div>today I have added something to the library "TBXML" to extend the functionality to help reading XML in easier way.</div><div>Here is link for the library <a href="http://tbxml.co.uk/">http://tbxml.co.uk/</a></div><div><br /></div><div>the functions that I have wrote simply reads the XML and turn it into "Dictionary (Hash table)" the functions that I have wrote neglects the attributes, such code will help transforming the complex hierarchy of XML into dictionary that has key value (the value code be string, array or another dictionary )</div><div><br /></div><div>Here is the code that I have added to the library (Add this code to the class "TBXML")<br /><br /></div><div><br /></div><div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco">+ (<span style="color:#713ea3;">NSMutableDictionary</span>*) getXMLNodeInDictionary:(<span style="color:#4e8186;">TBXMLElement</span> *)element {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>NSMutableDictionary<span style="color:#000000;">* retDict = [</span>NSMutableDictionary<span style="color:#000000;"> </span><span style="color:#3e1f7c;">new</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#bb2d9d;">do</span> {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#bb2d9d;">if</span> (element-><span style="color:#4e8186;">firstChild</span>) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#bb2d9d;">if</span> ([retDict <span style="color:#3e1f7c;">valueForKey</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">elementName</span>:element]]==<span style="color:#bb2d9d;">nil</span>) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>[retDict <span style="color:#3e1f7c;">setObject</span>:[<span style="color:#bb2d9d;">self</span> <span style="color:#31595d;">getXMLNodeInDictionary</span>:element->firstChild] <span style="color:#3e1f7c;">forKey</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">elementName</span>:element]];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}<span style="color:#bb2d9d;">else</span> <span style="color:#bb2d9d;">if</span> ([[retDict <span style="color:#3e1f7c;">valueForKey</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">elementName</span>:element]] <span style="color:#3e1f7c;">isKindOfClass</span>:[<span style="color:#713ea3;">NSMutableArray</span> <span style="color:#3e1f7c;">class</span>]]) {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>[[retDict <span style="color:#3e1f7c;">valueForKey</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">elementName</span>:element]] <span style="color:#3e1f7c;">addObject</span>:[<span style="color:#bb2d9d;">self</span> <span style="color:#31595d;">getXMLNodeInDictionary</span>:element->firstChild]];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}<span style="color:#bb2d9d;">else</span> {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>NSMutableArray<span style="color:#000000;">* arr = [</span>NSMutableArray<span style="color:#000000;"> </span><span style="color:#3e1f7c;">new</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>[arr <span style="color:#3e1f7c;">addObject</span>:[retDict <span style="color:#3e1f7c;">valueForKey</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">elementName</span>:element]]];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>[arr <span style="color:#3e1f7c;">addObject</span>:[<span style="color:#bb2d9d;">self</span> <span style="color:#31595d;">getXMLNodeInDictionary</span>:element->firstChild]];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>[retDict <span style="color:#3e1f7c;">setObject</span>:[arr <span style="color:#3e1f7c;">autorelease</span>] <span style="color:#3e1f7c;">forKey</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">elementName</span>:element]];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}<span style="color:#bb2d9d;">else</span> {</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>[retDict <span style="color:#3e1f7c;">setObject</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">textForElement</span>:element] <span style="color:#3e1f7c;">forKey</span>:[<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">elementName</span>:element]];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; min-height: 19.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>} <span style="color:#bb2d9d;">while</span> ((element = element-><span style="color:#4e8186;">nextSibling</span>)); </p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#bb2d9d;">return</span> [retDict <span style="color:#3e1f7c;">autorelease</span>];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco">}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; min-height: 19.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco">+ (<span style="color:#713ea3;">NSMutableDictionary</span>*)getXMLFileInDictionary:(<span style="color:#713ea3;">NSString</span>*)filenameWithFullPath{</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#713ea3;">NSString</span>* str = [[<span style="color:#713ea3;">NSString</span> <span style="color:#3e1f7c;">alloc</span>]<span style="color:#3e1f7c;">initWithContentsOfFile</span>:filenameWithFullPath];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#4e8186;">TBXML</span> * tbxml = [<span style="color:#4e8186;">TBXML</span> <span style="color:#31595d;">tbxmlWithXMLString</span>:str];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#4e8186;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#bb2d9d;">if</span><span style="color:#000000;"> (!tbxml.</span>rootXMLElement<span style="color:#000000;">) {</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#bb2d9d;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>return<span style="color:#000000;"> </span>nil<span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#31595d;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#bb2d9d;">return</span><span style="color:#000000;"> [</span><span style="color:#bb2d9d;">self</span><span style="color:#000000;"> </span>getXMLNodeInDictionary<span style="color:#000000;">:tbxml.</span>rootXMLElement<span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco">}</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco">Thanks for your time :)</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco">BR</p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco">Ahmed Essam</p></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com1tag:blogger.com,1999:blog-33669483.post-46652621951064971692010-08-06T16:36:00.005+02:002010-08-06T17:25:05.452+02:00Right To Left iPhone UIPeace be upon you.<br /><br /><div>I have been working on Arabic Apps for iPhone, sometimes I need to do things quickly rather than making the whole UI components from the beginning, I came up with good trick to enable me doing Right To Left UIs with minimum effort, it is not perfect but it is working just fine.</div><div><br /></div><div>There is something in Core Graphics called Affine transformations , this set of function all you doing anything related to image manipulation, as the UI elements turned to be image at the end, the property "transform", it has the typical 2d Array of image manipulation </div><div><br /></div>based on that fact I started playing with the UI controls here is what I have got playing with the tab bar controller and Table view controller<div><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh11-kKK5Xb1bUDJ54hyphenhyphenEmUGnvegk4Se8nljTWQSmZbjprWh4K2XQFc50mCsFiObLG5I6_i2JxJ4o-eHilIsBjgwAS-ftDusSJ2AFMh3y-ybN5KVQKIn6wzHwyRYqsgwcT3R9_C/s1600/Screen+shot+2010-08-06+at+5.31.16+PM.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh11-kKK5Xb1bUDJ54hyphenhyphenEmUGnvegk4Se8nljTWQSmZbjprWh4K2XQFc50mCsFiObLG5I6_i2JxJ4o-eHilIsBjgwAS-ftDusSJ2AFMh3y-ybN5KVQKIn6wzHwyRYqsgwcT3R9_C/s400/Screen+shot+2010-08-06+at+5.31.16+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5502306542500837250" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh11-kKK5Xb1bUDJ54hyphenhyphenEmUGnvegk4Se8nljTWQSmZbjprWh4K2XQFc50mCsFiObLG5I6_i2JxJ4o-eHilIsBjgwAS-ftDusSJ2AFMh3y-ybN5KVQKIn6wzHwyRYqsgwcT3R9_C/s1600/Screen+shot+2010-08-06+at+5.31.16+PM.png"></a>Normal view, no changes , as u can see the tabs aren't arrange in the Arabic Logic </div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSga-Azm-WrFCrPTvG8eF9jL1acnc3R_uYOcBJ5hWP9e68UDSfzrcPW7FdHMDr31CsoqBB-zuqgAY3KcgwDQK8RtzYSFil1Pp_rzej5vumSFcl3KE-S0-ynzMKld4oFuedhDOv/s1600/Screen+shot+2010-08-06+at+5.31.34+PM.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSga-Azm-WrFCrPTvG8eF9jL1acnc3R_uYOcBJ5hWP9e68UDSfzrcPW7FdHMDr31CsoqBB-zuqgAY3KcgwDQK8RtzYSFil1Pp_rzej5vumSFcl3KE-S0-ynzMKld4oFuedhDOv/s400/Screen+shot+2010-08-06+at+5.31.34+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5502306546214380770" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSga-Azm-WrFCrPTvG8eF9jL1acnc3R_uYOcBJ5hWP9e68UDSfzrcPW7FdHMDr31CsoqBB-zuqgAY3KcgwDQK8RtzYSFil1Pp_rzej5vumSFcl3KE-S0-ynzMKld4oFuedhDOv/s1600/Screen+shot+2010-08-06+at+5.31.34+PM.png"></a>I started by "rotating" the whole bar 180º </div><div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXJF8wUGN7mzX9_Hcq3S3_lpGNmAhMsJDwQs116u-Ezy81qCyQHJ3J0aa3cUJ_bxLKMhwFl4UD9WMJSov2_VXcqlNARR9ayqxb2LBcTVTHL_hZG-ETGglAnIOTtgsDi3zYmEkI/s1600/Screen+shot+2010-08-06+at+5.31.48+PM.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXJF8wUGN7mzX9_Hcq3S3_lpGNmAhMsJDwQs116u-Ezy81qCyQHJ3J0aa3cUJ_bxLKMhwFl4UD9WMJSov2_VXcqlNARR9ayqxb2LBcTVTHL_hZG-ETGglAnIOTtgsDi3zYmEkI/s400/Screen+shot+2010-08-06+at+5.31.48+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5502306550125794882" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXJF8wUGN7mzX9_Hcq3S3_lpGNmAhMsJDwQs116u-Ezy81qCyQHJ3J0aa3cUJ_bxLKMhwFl4UD9WMJSov2_VXcqlNARR9ayqxb2LBcTVTHL_hZG-ETGglAnIOTtgsDi3zYmEkI/s1600/Screen+shot+2010-08-06+at+5.31.48+PM.png"></a>I did loop through the buttons and rotate them 180º so it end up with correct view for the view, flipping flipped image makes it look correct<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnS5tsKpU9neYL8IexwJ7HrZENVWvUgWcKDzE90J5p1iVzR40zj6KLiJ4YNSlyK2HMBjb7tcX7qGXUd7pmDSaYJyiLaYZXXsmZvCKlj5dc8eDpolVjL0avrt2GBi4PI1T6OiNt/s1600/Screen+shot+2010-08-06+at+5.32.07+PM.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnS5tsKpU9neYL8IexwJ7HrZENVWvUgWcKDzE90J5p1iVzR40zj6KLiJ4YNSlyK2HMBjb7tcX7qGXUd7pmDSaYJyiLaYZXXsmZvCKlj5dc8eDpolVjL0avrt2GBi4PI1T6OiNt/s400/Screen+shot+2010-08-06+at+5.32.07+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5502306553965678130" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnS5tsKpU9neYL8IexwJ7HrZENVWvUgWcKDzE90J5p1iVzR40zj6KLiJ4YNSlyK2HMBjb7tcX7qGXUd7pmDSaYJyiLaYZXXsmZvCKlj5dc8eDpolVjL0avrt2GBi4PI1T6OiNt/s1600/Screen+shot+2010-08-06+at+5.32.07+PM.png"></a>I have added more than 5 tabs and I have got the same thing with the more button, the items are viewed from left to right<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZTaOO9Sb6MkIc38qEnx6t2ODwkLib5ox_ZD8jDVWkoyv_-PeLAMrhps2yTgd6nJLwR_uXeWy3NJDFZ0h1y_Lh8kdZex4Cgg227bWb0nvvUMouTwjlsNhvmZt1Zdh1QeIGwJ5c/s1600/Screen+shot+2010-08-06+at+5.32.36+PM.png"></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZTaOO9Sb6MkIc38qEnx6t2ODwkLib5ox_ZD8jDVWkoyv_-PeLAMrhps2yTgd6nJLwR_uXeWy3NJDFZ0h1y_Lh8kdZex4Cgg227bWb0nvvUMouTwjlsNhvmZt1Zdh1QeIGwJ5c/s1600/Screen+shot+2010-08-06+at+5.32.36+PM.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZTaOO9Sb6MkIc38qEnx6t2ODwkLib5ox_ZD8jDVWkoyv_-PeLAMrhps2yTgd6nJLwR_uXeWy3NJDFZ0h1y_Lh8kdZex4Cgg227bWb0nvvUMouTwjlsNhvmZt1Zdh1QeIGwJ5c/s400/Screen+shot+2010-08-06+at+5.32.36+PM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5502306563633944770" /></a></div><div>I did loop through the cell of the table and I did rotation for the whole cell, then correcting the text by rotating it 180º .</div><div><br /></div><div>The thing is little bit UI buggy but with some time it can be fixed to look Ok, </div><div>here is the code for this thing, All U have to do is replacing the code for the function "<span class="Apple-style-span" style=" ;font-family:Monaco;font-size:14px;">didFinishLaunchingWithOptions</span>"</div><div><br /></div><div><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><br /></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; "></span></p><hr /><br /><p></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;">UIViewController<span style="color:#000000;">* cont1 = [[</span>UIViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">alloc</span><span style="color:#000000;">]</span><span style="color:#3e1f7c;">init</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>UIViewController<span style="color:#000000;">* cont2 = [[</span>UIViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">alloc</span><span style="color:#000000;">]</span><span style="color:#3e1f7c;">init</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>UIViewController<span style="color:#000000;">* cont3 = [[</span>UIViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">alloc</span><span style="color:#000000;">]</span><span style="color:#3e1f7c;">init</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>UIViewController<span style="color:#000000;">* cont4 = [[</span>UIViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">alloc</span><span style="color:#000000;">]</span><span style="color:#3e1f7c;">init</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>UIViewController<span style="color:#000000;">* cont5 = [[</span>UIViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">alloc</span><span style="color:#000000;">]</span><span style="color:#3e1f7c;">init</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>UIViewController<span style="color:#000000;">* cont6 = [[</span>UIViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">alloc</span><span style="color:#000000;">]</span><span style="color:#3e1f7c;">init</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; min-height: 19.0px"><span class="Apple-tab-span" style="white-space:pre"> </span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>UINavigationController<span style="color:#000000;">* contBar = [[</span>UINavigationController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">alloc</span><span style="color:#000000;">] </span><span style="color:#3e1f7c;">initWithRootViewController</span><span style="color:#000000;">:cont1];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>contBar.</span>tabBarItem<span style="color:#000000;">.</span>title<span style="color:#000000;"> = </span><span style="color:#d12c26;">@"</span><span style="font: 14.0px Baghdad; color:#d12c26;">واحد</span><span style="color:#d12c26;">"</span><span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont2.</span>tabBarItem<span style="color:#000000;">.</span>title<span style="color:#000000;"> = </span><span style="color:#d12c26;">@"</span><span style="font: 14.0px Baghdad; color:#d12c26;">أثنين</span><span style="color:#d12c26;">"</span><span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont3.</span>tabBarItem<span style="color:#000000;">.</span>title<span style="color:#000000;"> = </span><span style="color:#d12c26;">@"</span><span style="font: 14.0px Baghdad; color:#d12c26;">ثلاث</span><span style="color:#d12c26;">"</span><span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont4.</span>tabBarItem<span style="color:#000000;">.</span>title<span style="color:#000000;"> = </span><span style="color:#d12c26;">@"</span><span style="font: 14.0px Baghdad; color:#d12c26;">أربع</span><span style="color:#d12c26;">"</span><span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont5.</span>tabBarItem<span style="color:#000000;">.</span>title<span style="color:#000000;"> = </span><span style="color:#d12c26;">@"</span><span style="font: 14.0px Baghdad; color:#d12c26;">خمس</span><span style="color:#d12c26;">"</span><span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont6.</span>tabBarItem<span style="color:#000000;">.</span>title<span style="color:#000000;"> = </span><span style="color:#d12c26;">@"</span><span style="font: 14.0px Baghdad; color:#d12c26;">سته</span><span style="color:#d12c26;">"</span><span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont1.</span>view<span style="color:#000000;">.</span>backgroundColor<span style="color:#000000;"> = [</span>UIColor<span style="color:#000000;"> </span><span style="color:#3e1f7c;">redColor</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont2.</span>view<span style="color:#000000;">.</span>backgroundColor<span style="color:#000000;"> = [</span>UIColor<span style="color:#000000;"> </span><span style="color:#3e1f7c;">blueColor</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont3.</span>view<span style="color:#000000;">.</span>backgroundColor<span style="color:#000000;"> = [</span>UIColor<span style="color:#000000;"> </span><span style="color:#3e1f7c;">grayColor</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont4.</span>view<span style="color:#000000;">.</span>backgroundColor<span style="color:#000000;"> = [</span>UIColor<span style="color:#000000;"> </span><span style="color:#3e1f7c;">purpleColor</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cont5.</span>view<span style="color:#000000;">.</span>backgroundColor<span style="color:#000000;"> = [</span>UIColor<span style="color:#000000;"> </span><span style="color:#3e1f7c;">yellowColor</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#bb2d9d;">const</span> <span style="color:#bb2d9d;">id</span> objs[<span style="color:#2c2ecf;">6</span>] = { contBar,cont2,cont3,cont4,cont5,cont6};</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#713ea3;">NSArray</span>* vuCont = [<span style="color:#713ea3;">NSArray</span> <span style="color:#3e1f7c;">arrayWithObjects</span>:objs <span style="color:#3e1f7c;">count</span>:<span style="color:#2c2ecf;">6</span>];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#4e8186;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>tabBarController<span style="color:#000000;">.</span><span style="color:#713ea3;">viewControllers</span><span style="color:#000000;"> = vuCont;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#3e1f7c;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#4e8186;">tabBarController</span><span style="color:#000000;">.</span><span style="color:#713ea3;">tabBar</span><span style="color:#000000;">.</span><span style="color:#713ea3;">transform</span><span style="color:#000000;"> = </span>CGAffineTransformMakeRotation<span style="color:#000000;">(</span><span style="color:#2c2ecf;">3.142857142857143</span><span style="color:#000000;">);</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color: #008425"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#4e8186;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#bb2d9d;">for</span><span style="color:#000000;"> (</span><span style="color:#bb2d9d;">id</span><span style="color:#000000;"> d </span><span style="color:#bb2d9d;">in</span><span style="color:#000000;"> </span>tabBarController<span style="color:#000000;">.</span><span style="color:#713ea3;">tabBar</span><span style="color:#000000;">.</span><span style="color:#713ea3;">items</span><span style="color:#000000;">) {</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span><span style="color:#713ea3;">UIView</span>* vu = [d <span style="color:#3e1f7c;">valueForKey</span>:<span style="color:#d12c26;">@"_view"</span>];</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#3e1f7c;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>vu.</span><span style="color:#713ea3;">transform</span><span style="color:#000000;"> = </span>CGAffineTransformMakeRotation<span style="color:#000000;">(</span><span style="color:#2c2ecf;">3.142857142857143</span><span style="color:#000000;">);</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>UITableView<span style="color:#000000;">* tbl = [</span><span style="color:#4e8186;">tabBarController</span><span style="color:#000000;">.</span>moreNavigationController<span style="color:#000000;">.</span>topViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">view</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#713ea3;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>tbl.</span>separatorColor<span style="color:#000000;"> = [</span>UIColor<span style="color:#000000;"> </span><span style="color:#3e1f7c;">clearColor</span><span style="color:#000000;">];</span></p> <p color="#713ea3" style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; "><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span style="color:#bb2d9d;">for</span><span style="color:#000000;"> (</span>UITableViewCell<span style="color:#000000;">* cl </span><span style="color:#bb2d9d;">in</span><span style="color:#000000;"> [[</span><span style="color:#4e8186;">tabBarController</span><span style="color:#000000;">.</span>moreNavigationController<span style="color:#000000;">.</span>topViewController<span style="color:#000000;"> </span><span style="color:#3e1f7c;">view</span><span style="color:#000000;">] </span><span style="color:#3e1f7c;">visibleCells</span><span style="color:#000000;">]) {</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#3e1f7c;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cl.</span><span style="color:#713ea3;">transform</span><span style="color:#000000;"> = </span>CGAffineTransformMakeRotation<span style="color:#000000;">(</span><span style="color:#2c2ecf;">180</span><span style="color:#000000;">*</span><span style="color:#2c2ecf;">0.0174532925</span><span style="color:#000000;">);</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#3e1f7c;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cl.</span><span style="color:#713ea3;">textLabel</span><span style="color:#000000;">.</span><span style="color:#713ea3;">transform</span><span style="color:#000000;"> = </span>CGAffineTransformMakeRotation<span style="color:#000000;">(</span><span style="color:#2c2ecf;">180</span><span style="color:#000000;">*</span><span style="color:#2c2ecf;">0.0174532925</span><span style="color:#000000;">);</span></p> <p color="#713ea3" style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; "><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span>cl.</span>textLabel<span style="color:#000000;">.</span>textAlignment<span style="color:#000000;"> = </span><span style="color:#3e1f7c;">UITextAlignmentRight</span><span style="color:#000000;">;</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; min-height: 19.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco"><span class="Apple-tab-span" style="white-space:pre"> </span>}</p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; min-height: 19.0px"><span class="Apple-style-span" style="color:#008425;"><span class="Apple-style-span" style="color:#000000;"><br /></span></span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#4e8186;"><span style="color:#000000;"> [</span>window<span style="color:#000000;"> </span><span style="color:#3e1f7c;">addSubview</span><span style="color:#000000;">:</span>tabBarController<span style="color:#000000;">.</span><span style="color:#3e1f7c;">view</span><span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#3e1f7c;"><span style="color:#000000;"> [</span><span style="color:#4e8186;">window</span><span style="color:#000000;"> </span>makeKeyAndVisible<span style="color:#000000;">];</span></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; min-height: 19.0px"><br /></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#bb2d9d;"><span style="color:#000000;"><span class="Apple-tab-span" style="white-space:pre"> </span></span>return<span style="color:#000000;"> </span>YES<span style="color:#000000;">;</span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#bb2d9d;"><span style="color:#000000;"><br /></span></p><hr /><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#bb2d9d;"><span style="color:#000000;"><br /></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#bb2d9d;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;color:#000000;"><span class="Apple-style-span" style="font-size:16px;">Thanks for your time :)</span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#bb2d9d;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;color:#000000;"><span class="Apple-style-span" style="font-size:16px;"><br /></span></span></p><p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color:#bb2d9d;"><span class="Apple-style-span" style="font-family:Georgia, serif;font-size:130%;color:#000000;"><span class="Apple-style-span" style="font-size:16px;">Ahmed Essam</span></span></p></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com4tag:blogger.com,1999:blog-33669483.post-82781081842180301012010-03-03T20:27:00.003+02:002021-08-29T22:27:17.546+02:00My Session Resource (Cairo Code Camp 2010)Peace be upon you<div>How are you guys? First of all I would like to thank everyone at Cairo Code Camp, I really enjoyed ever minute there.</div><div>Here is the most amazing part, I gave a session at Cairo Code camp about iPhone development using C#, I thought that few people will be interested in such thing and the amazing thing is, the hall was full of people + there was some people setting on the ground (not a lot but it happen :D ), I have got amazing feed backs, I really can't believe that such thing happen :D, I would agree if 10 people attend the session :D but I got about 150 which is great, Now I am officially a technical speaker :).</div><div>anyways, Here is the source code and the presentation, I hope you like it.</div><div>
</div><div>Here is the path for the folder </div><div><a href="http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/Code%20For%20blog/MonoTwit.zip">MonoTwit</a> fitch the timeline and post twits</div><div><a href="http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/Code%20For%20blog/MonoFlick.zip">MonoFlick</a> Search for keyword and view the photos </div><div><div>
<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vSGi-8QvXifpmu07cYyE7G6lGKgL6hp7wNHbZOaadoC-baG_71QDAigYdCyP-Ap-lF06zeKUZpN1idS/embed?start=false&loop=false&delayms=3000" frameborder="0" width="100%" height="480" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
</div><div>
</div><div>I hope you like the slides, thanks for your time :)</div><div>
</div><div>BR</div><div>Ahmed Essam</div></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com1tag:blogger.com,1999:blog-33669483.post-83110616050962572502010-03-03T20:08:00.003+02:002010-03-03T20:20:09.425+02:00VB script that speak ( something to read for you )Peace be upon you<div><br /></div><div>As sometimes I lose the focus and ability to read from the screen, sometimes I prefer listening to what I want to read, I use Mac most of the time and I really like the TTS support on it, it really feels very much like human, anyways, I liked to do so on Windows, I collected some code that can speak what's on the clipboard, so all you have to do, is put this code in file and put extension to file "VBS" , after that copy any text u like to hear and double click the vbs file, it will say the contents of the clipboard</div><div><br /></div><br /><div style="border:#000000 1px solid"><br />Option Explicit<br /><br />Const SVSFlagsAsync = 1<br />const SVSFPurgeBeforeSpeak = 2<br /><br />Dim Speech<br />Dim FSO<br /><br />CreateObjects<br />Main<br />DestroyObjects<br />Quit<br /><br />Sub Main<br /> Dim sText<br /> Dim oIE<br /> Set oIE = WScript.CreateObject("InternetExplorer.Application")<br /> oIE.navigate "about:blank"<br /> sText = oIE.document.parentWindow.clipboarddata.getData("text")<br /> Set oIE = Nothing<br /> 'sText = InputBox("text", "Text2Speech")<br /> sText = Trim(sText)<br /> If sText <> "" Then<br /> SpeakText sText<br /> End If<br />End Sub<br /><br />Sub SpeakText(sText)<br /> On Error Resume Next<br /> Speech.Speak sText, SVSFlagsAsync + SVSFPurgeBeforeSpeak<br /> Do<br /> Sleep 100<br /> Loop Until Speech.WaitUntilDone(10)<br />End Sub<br /><br />Sub StopSpeaking()<br /> On Error Resume Next<br /> Speech.Speak vbNullString, SVSFPurgeBeforeSpeak<br /> Set Speech = Nothing<br />End Sub<br /><br />Sub CreateObjects<br /> Set Speech = CreateObject("SAPI.SpVoice")<br /> Set FSO = CreateObject("Scripting.FileSystemObject")<br />End Sub<br /><br />Sub DestroyObjects<br /> Set Speech = Nothing<br /> Set FSO = Nothing<br />End Sub<br /><br />Sub Sleep(nTimeout)<br /> WScript.Sleep nTimeout<br />End Sub<br /><br />Sub Quit<br /> WScript.Quit<br />End Sub<br /></div><br /><br />thanks for your time and I hope this trick is useful to you<div><br /></div><div>BR</div><div>Ahmed Essam</div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com0tag:blogger.com,1999:blog-33669483.post-81726845673289702192009-12-30T01:29:00.001+02:002009-12-30T02:01:43.219+02:00Security presentation<span class="Apple-style-span" style="font-family:arial;">Peace be upon you</span><div><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div><span class="Apple-style-span" style="font-family:arial;">Today I will not talk to much I have presentation to do I thought that it is better to add first on the blog :), anyways, this should the presentation at "Data Security" subject at the academy I am doing my diploma at, here is the presentation, please your feed back is very important</span></div><div><span class="Apple-style-span" style="font-family:arial;"><br /><br /></span><span class="Apple-style-span" style="font-family:arial;"><iframe src="http://docs.google.com/present/embed?id=dc7j3gdr_92jt23rkdp" frameborder="0" width="410" height="342"></iframe><br />Thanks for your time.</span></div><div><span class="Apple-style-span" style="font-family:arial;"><br /></span></div><div><span class="Apple-style-span" style="font-family:arial;">BR</span></div><div><span class="Apple-style-span" style="font-family:arial;">Ahmed Essam</span></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com5tag:blogger.com,1999:blog-33669483.post-88870124420939425642009-12-14T02:15:00.005+02:002009-12-14T02:41:16.142+02:00MARS on iPhone<div>Peace be upon you </div><div><br /></div><div>How are you guys? today I am going to show you something I have done as a data security assignment, the assignment was a presentation and application, me and other 3 guys were suppose to write something about MARS and Application, I helped in the Presentation and took the application :D, do you understand anything?</div><div><br /></div><div>Well, let us begin the whole thing is about encryption algorithm called MARS, developer by IBM, you can find more about it</div><div><a href="http://en.wikipedia.org/wiki/MARS_(cryptography)">http://en.wikipedia.org/wiki/MARS_(cryptography)</a></div><div><br /></div><div>And here is the presentation </div><br /><iframe src="http://docs.google.com/present/embed?id=dc7j3gdr_39czn9wccj&size=m" frameborder="0" width="555" height="451"></iframe><br /><div>So, the idea is to make application for the ready made code of IBM, so the plane was todo simple application that do simple encryption and decryption, here is snapshots for the application, you can find the code here (Cocoa Touch Objective C project)</div><div><a href="http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/Code%20For%20blog/iMARS.zip">http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/Code%20For%20blog/iMARS.zip</a></div><div><br /></div><div>Lets see the application.</div><div><br /></div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE5plQsVhZskX6Pky3JjvK2KQu53hPcFkz918w-KMH84Fpo-QRYH8rEuLDJSZnXuf6Qd4RaQZGOlBkFOXwaKR7DkFw9iKzzW3urVbG8RnqYbE3FdfeTsSock5A-rAZGCGayAo1/s1600-h/IMG_0174.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE5plQsVhZskX6Pky3JjvK2KQu53hPcFkz918w-KMH84Fpo-QRYH8rEuLDJSZnXuf6Qd4RaQZGOlBkFOXwaKR7DkFw9iKzzW3urVbG8RnqYbE3FdfeTsSock5A-rAZGCGayAo1/s400/IMG_0174.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414879732599820562" /></a><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE5plQsVhZskX6Pky3JjvK2KQu53hPcFkz918w-KMH84Fpo-QRYH8rEuLDJSZnXuf6Qd4RaQZGOlBkFOXwaKR7DkFw9iKzzW3urVbG8RnqYbE3FdfeTsSock5A-rAZGCGayAo1/s1600-h/IMG_0174.PNG"></a>The application starts with the operation, you have to select wither you want to encrypt or decrypt<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQYPlxWTMvYxWhljtTogAfW6Y8XJGzy-iC9yTtOefvazR8b5V_T96ElR5GR_IhHXnBBb9MEvPYtVwj_UhdzUoV6Bap8XNTHwr4g6mbg69HklTPd4WGx4PlK7GWeeJApE9K2-17/s1600-h/IMG_0175.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQYPlxWTMvYxWhljtTogAfW6Y8XJGzy-iC9yTtOefvazR8b5V_T96ElR5GR_IhHXnBBb9MEvPYtVwj_UhdzUoV6Bap8XNTHwr4g6mbg69HklTPd4WGx4PlK7GWeeJApE9K2-17/s400/IMG_0175.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414879736174260562" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQYPlxWTMvYxWhljtTogAfW6Y8XJGzy-iC9yTtOefvazR8b5V_T96ElR5GR_IhHXnBBb9MEvPYtVwj_UhdzUoV6Bap8XNTHwr4g6mbg69HklTPd4WGx4PlK7GWeeJApE9K2-17/s1600-h/IMG_0175.PNG"></a>Enter the operation Key, in this case the "Encryption key"<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9kFWeP1Q2cH5Qcv-hz8UImXzu3WNoryOtn9sY1F9NS7EiOhZA87RbFAiyJioWgaYB7V9CfSxHQMaPVVcUROvyqZwPR6MbiXXDQT-631IaTeCG6aDc0v8MfIugCYA9ia1RwRwB/s1600-h/IMG_0176.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9kFWeP1Q2cH5Qcv-hz8UImXzu3WNoryOtn9sY1F9NS7EiOhZA87RbFAiyJioWgaYB7V9CfSxHQMaPVVcUROvyqZwPR6MbiXXDQT-631IaTeCG6aDc0v8MfIugCYA9ia1RwRwB/s400/IMG_0176.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414879740338078770" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9kFWeP1Q2cH5Qcv-hz8UImXzu3WNoryOtn9sY1F9NS7EiOhZA87RbFAiyJioWgaYB7V9CfSxHQMaPVVcUROvyqZwPR6MbiXXDQT-631IaTeCG6aDc0v8MfIugCYA9ia1RwRwB/s1600-h/IMG_0176.PNG"></a>Enter the data that you want to encrypt.</div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgffniUrAMAhJs8E3AvBnnpANVkbaiXJHA13LBQZoUmvd3IaSA5Cfw7r2_V8c4noMsGinkUHdV66g2-SrTZPCj_ww-95rMb0a4RA8TJQaTqyunLPjO-SpQG96ghUutr38Snnk-A/s1600-h/IMG_0177.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgffniUrAMAhJs8E3AvBnnpANVkbaiXJHA13LBQZoUmvd3IaSA5Cfw7r2_V8c4noMsGinkUHdV66g2-SrTZPCj_ww-95rMb0a4RA8TJQaTqyunLPjO-SpQG96ghUutr38Snnk-A/s400/IMG_0177.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414879750885097346" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgffniUrAMAhJs8E3AvBnnpANVkbaiXJHA13LBQZoUmvd3IaSA5Cfw7r2_V8c4noMsGinkUHdV66g2-SrTZPCj_ww-95rMb0a4RA8TJQaTqyunLPjO-SpQG96ghUutr38Snnk-A/s1600-h/IMG_0177.PNG"></a>Here is the result, and as we use OFB + Random IV, when you reencrypt by just clicking back and next, you will get anther result<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXyhmeN4NXuzP246oekUFKAqAg5pYH4JHouLr9d7cSg8pffe-XZeJ4COUWUiIy5BXq4Jy27LbceX7B7dn-WNYHIhRyxVQdFLRfHzIb5e1vi31qrQgjR7iliWWiw_RPFcc9rn2-/s1600-h/IMG_0178.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXyhmeN4NXuzP246oekUFKAqAg5pYH4JHouLr9d7cSg8pffe-XZeJ4COUWUiIy5BXq4Jy27LbceX7B7dn-WNYHIhRyxVQdFLRfHzIb5e1vi31qrQgjR7iliWWiw_RPFcc9rn2-/s400/IMG_0178.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414879743819938002" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXyhmeN4NXuzP246oekUFKAqAg5pYH4JHouLr9d7cSg8pffe-XZeJ4COUWUiIy5BXq4Jy27LbceX7B7dn-WNYHIhRyxVQdFLRfHzIb5e1vi31qrQgjR7iliWWiw_RPFcc9rn2-/s1600-h/IMG_0178.PNG"></a>HEre is anther result for the encryption due to the IV + OFB<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWvq7QKuXAE54nnovLYbKmr9SXSBeOzcNj5iZ3fK4EA6mOeRE-tBoEzS-p4LiMPU7dXSS8dhBdFnphL-Tr6DuS-V2mgAB1XSKRKajFYZcLF1Fj2n6jN1vjNlyt9cxWdPvGPNu-/s1600-h/IMG_0179.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWvq7QKuXAE54nnovLYbKmr9SXSBeOzcNj5iZ3fK4EA6mOeRE-tBoEzS-p4LiMPU7dXSS8dhBdFnphL-Tr6DuS-V2mgAB1XSKRKajFYZcLF1Fj2n6jN1vjNlyt9cxWdPvGPNu-/s400/IMG_0179.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414880192182196306" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWvq7QKuXAE54nnovLYbKmr9SXSBeOzcNj5iZ3fK4EA6mOeRE-tBoEzS-p4LiMPU7dXSS8dhBdFnphL-Tr6DuS-V2mgAB1XSKRKajFYZcLF1Fj2n6jN1vjNlyt9cxWdPvGPNu-/s1600-h/IMG_0179.PNG"></a>3rd result , Thanks to the OFB and IV<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDm6fJVCmlcy0J4oOBM-AzOmngX_FOWNPF-XDDH7Y12pneJW0RRqaS6RgmxI809Q-SNfXidtqm3m1fKMGaBQ0DtrWP79pmxPn-4lUAFrxCjB5EZSoLO0zlQ43QQMZnsoEBNdMG/s1600-h/IMG_0180.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDm6fJVCmlcy0J4oOBM-AzOmngX_FOWNPF-XDDH7Y12pneJW0RRqaS6RgmxI809Q-SNfXidtqm3m1fKMGaBQ0DtrWP79pmxPn-4lUAFrxCjB5EZSoLO0zlQ43QQMZnsoEBNdMG/s400/IMG_0180.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414880196433922338" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDm6fJVCmlcy0J4oOBM-AzOmngX_FOWNPF-XDDH7Y12pneJW0RRqaS6RgmxI809Q-SNfXidtqm3m1fKMGaBQ0DtrWP79pmxPn-4lUAFrxCjB5EZSoLO0zlQ43QQMZnsoEBNdMG/s1600-h/IMG_0180.PNG"></a>Save the file</div><div><br /></div><div>Lets do decryption for what we have encrypted<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE5plQsVhZskX6Pky3JjvK2KQu53hPcFkz918w-KMH84Fpo-QRYH8rEuLDJSZnXuf6Qd4RaQZGOlBkFOXwaKR7DkFw9iKzzW3urVbG8RnqYbE3FdfeTsSock5A-rAZGCGayAo1/s1600-h/IMG_0174.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE5plQsVhZskX6Pky3JjvK2KQu53hPcFkz918w-KMH84Fpo-QRYH8rEuLDJSZnXuf6Qd4RaQZGOlBkFOXwaKR7DkFw9iKzzW3urVbG8RnqYbE3FdfeTsSock5A-rAZGCGayAo1/s400/IMG_0174.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414879732599820562" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE5plQsVhZskX6Pky3JjvK2KQu53hPcFkz918w-KMH84Fpo-QRYH8rEuLDJSZnXuf6Qd4RaQZGOlBkFOXwaKR7DkFw9iKzzW3urVbG8RnqYbE3FdfeTsSock5A-rAZGCGayAo1/s1600-h/IMG_0174.PNG"></a>Select Decryption<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgENv3p3FHqcHmRIebMenZsXFVM4OBhljT_e8LNp6AGCUA2na1FPCd-h4PRG-bQ4g0wc-LQLyLht5XsfBRUhipJnfY-MSmlrndcgQRZJA7gNheEdTVw0gWYM0-GyZhY6FFx3ofN/s1600-h/IMG_0181.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgENv3p3FHqcHmRIebMenZsXFVM4OBhljT_e8LNp6AGCUA2na1FPCd-h4PRG-bQ4g0wc-LQLyLht5XsfBRUhipJnfY-MSmlrndcgQRZJA7gNheEdTVw0gWYM0-GyZhY6FFx3ofN/s400/IMG_0181.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414880198493090658" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgENv3p3FHqcHmRIebMenZsXFVM4OBhljT_e8LNp6AGCUA2na1FPCd-h4PRG-bQ4g0wc-LQLyLht5XsfBRUhipJnfY-MSmlrndcgQRZJA7gNheEdTVw0gWYM0-GyZhY6FFx3ofN/s1600-h/IMG_0181.PNG"></a>Then enter the key<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1xP1d6MnEhNtAMhlvx1NoYBrCAmIaoed71-x-YXykqPPb_Deetwy32FBaQF36Cbjolu4tEJcL-envLRHzeU-gkMg2MOet0uu0ebvKpbp2fMpjZB8OC4wNX7dGJRW2De4rarGP/s1600-h/IMG_0182.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1xP1d6MnEhNtAMhlvx1NoYBrCAmIaoed71-x-YXykqPPb_Deetwy32FBaQF36Cbjolu4tEJcL-envLRHzeU-gkMg2MOet0uu0ebvKpbp2fMpjZB8OC4wNX7dGJRW2De4rarGP/s400/IMG_0182.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414880201103262738" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1xP1d6MnEhNtAMhlvx1NoYBrCAmIaoed71-x-YXykqPPb_Deetwy32FBaQF36Cbjolu4tEJcL-envLRHzeU-gkMg2MOet0uu0ebvKpbp2fMpjZB8OC4wNX7dGJRW2De4rarGP/s1600-h/IMG_0182.PNG"></a>Select the file name, you can enter free text in this page.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnufpDdWveI5m01oPqZgS9XSUIaG-tjENyRVVHcxgzfO-HA4Lsvmfa-Tjc9KHipUmgsTdzqw7u4dGD6uCmDbZZ1vplw4K8FVpMmimj6Dn0K-Dc9l56yR2F52FRbJkAhbIIBVWS/s1600-h/IMG_0183.PNG"><img style="cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnufpDdWveI5m01oPqZgS9XSUIaG-tjENyRVVHcxgzfO-HA4Lsvmfa-Tjc9KHipUmgsTdzqw7u4dGD6uCmDbZZ1vplw4K8FVpMmimj6Dn0K-Dc9l56yR2F52FRbJkAhbIIBVWS/s400/IMG_0183.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5414880209362608866" /></a></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnufpDdWveI5m01oPqZgS9XSUIaG-tjENyRVVHcxgzfO-HA4Lsvmfa-Tjc9KHipUmgsTdzqw7u4dGD6uCmDbZZ1vplw4K8FVpMmimj6Dn0K-Dc9l56yR2F52FRbJkAhbIIBVWS/s1600-h/IMG_0183.PNG"></a>Now you have got your data<br /><br /><div><br /></div><div>I have added little part for some fun it is the Mode of Operation , you can read more about it here </div><div><a href="http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation">http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation</a></div><div><br /></div><div>The mode that I have used was "OFB, output feed back"</div><div><br /></div><div>I hope that you enjoy the application and the presentation :)</div><div>Thanks for your time.</div><div><br /></div><div>BR</div><div>Ahmed Essam</div></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com2tag:blogger.com,1999:blog-33669483.post-41854881733383736772009-12-07T16:21:00.007+02:002009-12-07T16:44:04.981+02:00Calling all innovators, The story of Nokia in Middle East<span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;">Peace be upon you<br /><br />How are you guys? Today is not going to be a technical post.<br /><br />Me and couple of people I consider to be Geniuses made 2 applications and submitted it to Nokia Bel3rabi competition.<br /><br />I would like to congratulate the First winner "Enpronomics" I know their Marketing Manager, Hany Waziri, and I wish them best of luck<br /><br />The point today is I want to demonstrate what we have done<br /><br />1- We did 2 Application Mixing 2 Technologies which is S60 platform and Flash lite<br />2- Few people dare to take such a step because it takes hell of time to do it<br /><br />To be able to maintain powerful flash lite application for Symbian it need lots of system services to be able to do what it should do. Based on that we have built a HTTP Server competitive to Kunneri Lite and Janus in Symbian C++ as a way of inter-process communication. The idea was to develop two killer applications and end up with a server API that can be used by the community to enable Flash Lite applications.<br /><br />Some (not all) things we loaded that server with<br /><br />1- ADVANCED way to get the location without GPS, We managed to do amazing server that uses cell information and signal strength while you are on the go to get accurate location, this server runs on Symbian device collects information about the Cell towers and Signal strength, using the vector maps, we draw the way that user is taking, after that we can with only, cell tower info + signal strength we can EXACTLY resolve where the user is without GPS. Why we did that because the Location APIs in Symbian used to take so long to get us a location.<br />2- We did a proxy server, because in certain cases, security restrictions my prevent HTTP request local and to the internet in same time, we beat that by a proxy server that routes the requests from the flash to the internet and returns the response to Flash<br />3- Sending MMS in the background<br />4- Record Video<br />5- Record Audio<br />6- Advanced web server that do lots of math, Media server (Something like youtube)<br /><br />But what is our applications about?<br /><br />1- Ol2ot, this Arabic and English application is a social based application, u can snap photo, video, Audio and send it to our server, SEAMLESSLY in 3 clicks, u can publish a photo with very minimal delay, and it geo tags it for you.<br /><br />2- Wassal, it is service directory application, this application work in very seamless way, you open the application, select what you want ( food, entertainment, etc ) based on your location you will get results near to you, showed in a map, also there is free text search<br /><br />Guess what is in the free text search, it is WHOLE new technology, I wish I can talk about but we are working on patenting it, believe me it is something that no one ever done before, reach accurate results<br /><br />I don't mean anything negative by the next phrase, but the wining app is "Here I Am", send the GPS location using (SMS or Web). It is like one feature of our application. I think that it also sends the message that we live in dangerous country and need a "help button"<br /><br />From Nokia wiki there is sample for how to get the location using the LBS APIs (it is easy), for the SMS there is sample too, and guess what there is sample to send data over the web. mmm, it has decent interface, it is normal lists and buttons, so almost I can't see anything new. This application can be made by anyone in a few hours and I can extract its functionality from our applications.<br /><br />For the 2nd place application, I have no comment, it is application that uses lookup tables for calculate the intake calories per day, I can do that in almost week or so<br /><br /></span><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;">The competition was about Innovation, they calm that they are looking for something new, we have made "new media based social network (ol2ot)", if I knew that they where looking for things like the 1th and 2nd place application, I would do 15 Application like that and post them :D and of course I would get the first and 2nd places :D . But as far as I can tell, Nokia didnt even test our application</span></span><span class="Apple-style-span" style="font-family:arial;"><br /><br />At the end, although I am dissapointed, 1st and 2nd place guys did a great job by just submitting, my only problem is, when will we start supporting the things that take vision to see, the things that i really related to innovation. Integration of many complex technologies into usable service that can generate both revenue and valuable data.</span></span><div><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;">I am sorry for the long post and thanks for reaching to this line :-)</span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;">Thanks for your time.</span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;"><br /></span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;">BR</span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><span class="Apple-style-span" style="font-family:arial;">Ahmed Essam</span></span></div><div><span class="Apple-style-span" style="font-family:'lucida grande', serif;"><span class="Apple-style-span" style="font-size:medium;"><br /></span></span></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com4tag:blogger.com,1999:blog-33669483.post-4708883581659669502009-12-04T16:12:00.005+02:002009-12-04T19:37:49.757+02:00Code to monitor your self<span style="font-family:verdana;">Peace be upon you</span> <div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span style="font-family:verdana;">How are you? today I am giving you piece of code that I think it might be useful for most of us if you care about watching your self.</span></div><div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span style="font-family:verdana;"></span> <span style="font-family:verdana;">The code that I am talking about is very simple, the code is just make a snapshots of your open windows and save it in file, it is saved in XML like format, The application collect the open window titles every 10 minutes.</span></div><div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span class="Apple-style-span" style="font-family:verdana;">The code uses Windows API called "EnumWindows" to collect all the open window, after that there is a check if this window is in task bar or not, let us see the code, the code has enough comment as I think</span></div><div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span class="Apple-style-span" style="font-family:verdana;">Before getting to the code here is link for the full source code, I recommend you build it your self, to avoid any thing bad might come from the binary.</span></div><div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span class="Apple-style-span" style="font-family:verdana;">http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/Code For blog/SanpWindows.zip</span></div><div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><br /></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><div>// Written by:<span class="Apple-tab-span" style="white-space:pre"> </span>Ahmed Essam Naiem</div><div>// Blog:<span class="Apple-tab-span" style="white-space:pre"> </span>http://www.ahmed-essam.com</div><div>// Summery, The code take snapshoot of the open windows every 10 minutes</div><div><br /></div></span></div><div><span class="Apple-style-span" style="font-family:verdana;"><div>// used in the file operations, fopen, wfprintf,fclose</div><div>#include <stdio.h></div><div>// used in the file exist check,_access</div><div>#include <io.h></div><div><br /></div><div>// Public file handle will be used by many functions.</div><div>FILE* fileHandle = NULL;</div><div><br /></div><div>// The function creates the directory that will contain the monitor files</div><div>void PrepareDirectoreis()</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>CreateDirectory(L"C:\\MyOpenWindows",NULL);</div><div>}</div><div><br /></div><div>// Call back function for "EnumWindows", the function will get all opened functions</div><div>// by their handle, then other operations can be done for that handle</div><div>BOOL CALLBACK WindowsEnumerator(HWND hWnd, LPARAM lParam)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Allocating space for the window title buffer</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// I did it very large to avoid any lose, also </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// I prefer stack variable to avoid memory fragmentation</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// in Replacement for that u can use GetWindowTextLength </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// then dynamiclly allocate the memory in the heap then do </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// what ever with the buffer then deallocate it at the end</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// at the end of the function</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>TCHAR strBuffer[256];</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Clearing memory to avoid memory rubbish</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>memset(strBuffer,0,sizeof(strBuffer));</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Get the window text in the buffer that we have prevoiusly </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// talked about, You will notice that I have used the buffer</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// with 1 character less, this kept for the string terminator</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>GetWindowText(hWnd,strBuffer,255);</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Check if the buffer has something, also check if the window</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// is visiable window, without IsWindowVisible we will have TONS </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// of windows that we actually don't need</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>if(wcslen(strBuffer)>0 && IsWindowVisible(hWnd)){</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// This line put the buffer in the opened file, with </div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// XML like format.</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>fwprintf(fileHandle,L"\t\t<open name="\">\n",strBuffer);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// The function return true to keep the getting window handles.</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>return TRUE;</div><div>}</div><div><br /></div><div>// The main application function, "the Entry Point"</div><div>int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Preparing the directories that will hold the monitor fiels.</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>PrepareDirectoreis();</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Getting the current time</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>SYSTEMTIME sysTime;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>GetLocalTime(&sysTime);</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Generating monitor file name that is based on the current date (Day, Month, Year)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>char strFileName[256];</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>sprintf(strFileName,"C:\\MyOpenWindows\\MyOpenWindows[%02d-%02d-%02d].xml",sysTime.wDay,sysTime.wMonth,sysTime.wYear);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Loop for ever</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>while(true)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>{</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Get the current time to create the monitoring entry ( Hours, Moments )</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>GetLocalTime(&sysTime);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>bool doAddHeader = false;</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Check if the file exist or not, to set a flag to construce XML hearder</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>if(_access(strFileName, 0))</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>doAddHeader = true;</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Open file for append, this will help us keeping the old data</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// The file handle is a public variable this will help the other</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// functions to use this handle</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>fileHandle = fopen(strFileName,"at");</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Check if the application need to have a header</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>if(doAddHeader)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>fwprintf(fileHandle,L"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<root>\n");</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Add the entry to the file, it is added with the current time (Hour, moments)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>fwprintf(fileHandle,L"\t<at time="\">\n",sysTime.wHour,sysTime.wMinute);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Enumerate the opened windows.</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>EnumWindows(WindowsEnumerator,0);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Close the entry</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>fwprintf(fileHandle,L"\t</at>\n");</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Close the file, this will allow other applications to see the latest update,</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// also will give chance to delete the file (in case u don't like it :D)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>fclose(fileHandle);</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>// Sleep for 10 minutes, of course u can change this intervale</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>Sleep(1000 * 60 * 10);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>} // While closure.</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>return 0;</div><div>}</div></span></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com0tag:blogger.com,1999:blog-33669483.post-46319973671833143502009-06-28T15:15:00.007+02:002009-06-28T15:43:22.320+02:00Tethering iPhone over any network<div><div><span style="font-family:verdana;">Peace be upon you<br />I have figured out away to tether your iPhone with any mobile network, let us start<br /></span></div><br /><div><span style="font-family:verdana;">The first thing we will need is to write the configuration file, Here is link for sample configuration file, actually it is working for Egypt Mobinil users</span></div><br /><a href="http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/MISC/eg%7C_mobinil.mobileconfig"><span style="font-family:verdana;">http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/MISC/eg%7C_mobinil.mobileconfig</span></a><br /><br /><p><span style="font-family:verdana;">Now, for each network it will need little bit of effort to make it work, we have to edit the configuration file, here is snapshot for the keys that is going to be modified<br /></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtzDFAnsAulcyylTZ0b2iI4EFaH02Vr-npasBpXHy8n0R9STPv9AgtXlXOigeNUbJmfJKiUgTiZO_G3fZXhnagDWF1KaKl48ltoS5jAB62NMWP6CU30wb_MefYypeumG3aQlqz/s1600-h/Tethering.PNG"><span style="font-family:verdana;"><img id="BLOGGER_PHOTO_ID_5352366767977262818" style="WIDTH: 293px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtzDFAnsAulcyylTZ0b2iI4EFaH02Vr-npasBpXHy8n0R9STPv9AgtXlXOigeNUbJmfJKiUgTiZO_G3fZXhnagDWF1KaKl48ltoS5jAB62NMWP6CU30wb_MefYypeumG3aQlqz/s400/Tethering.PNG" border="0" /></span></a><span style="font-family:verdana;"><br /></span></p><br /><div><span style="font-family:verdana;">"APN" , this is the string that has the Access Point Gateway, you can get this from the operator, or u can get it from any phone with internet capabilities , </span></div><br /><br /><div><span style="font-family:verdana;">"password" , This is the access point password, get it from the Operator</span></div><br /><div><span style="font-family:verdana;"></span> </div><br /><div><span style="font-family:verdana;">"Username", This is the access point username, get it from the Operator<br /></span></div><br /><div><span style="font-family:verdana;">"PayloadIdentifier", becareful with this one, because it may change something that u don't deser, I recommend for this one is to be like this pattern "<country>.<network>.profile.apn"</network></country></span></div><br /><br /><div><span style="font-family:verdana;">for instance </span></div><br /><div><span style="font-family:verdana;">eg.mobinil.profile.apn</span></div><br /><div><span style="font-family:verdana;">This keys is the keys that have effect and will make your tethering work.</span></div><br /><br /><div><span style="font-family:verdana;">After that, put the file on a Web Server and log to it from Safari mobile and install it</span></div><br /><div><br /><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMc4pELGOSXP5kAGRFr7zt4uA92vEXFm8ue_DT65TqPHpUjUrnQgv7I1icOZraw2oMLjM5P2d-YTC9w-MT_3HxTwDHPeR6QwfnpP-8LOXzBu61obVMN37nSNicp88ZVnvzIWTN/s1600-h/IMG_0024.PNG"><span style="font-family:verdana;"><img id="BLOGGER_PHOTO_ID_5352371324602642434" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMc4pELGOSXP5kAGRFr7zt4uA92vEXFm8ue_DT65TqPHpUjUrnQgv7I1icOZraw2oMLjM5P2d-YTC9w-MT_3HxTwDHPeR6QwfnpP-8LOXzBu61obVMN37nSNicp88ZVnvzIWTN/s400/IMG_0024.PNG" border="0" /></span></a></div><br /><br /><div><span style="font-family:verdana;"></span></div><br /><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnO7XJVbKtTyFD_Hk5bvw_ijnMdbj4w60EyLROCwyR10giRPkmFrEGmQNhC5_v32TRCZZR2YSQ3eyRpJg5T-wZsJYXc3zSYQHJ7fT9ZTq53mtOcx5WzRxntdqhZYoAfMGe2YIq/s1600-h/IMG_0025.PNG"><span style="font-family:verdana;"><img id="BLOGGER_PHOTO_ID_5352371323651545730" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnO7XJVbKtTyFD_Hk5bvw_ijnMdbj4w60EyLROCwyR10giRPkmFrEGmQNhC5_v32TRCZZR2YSQ3eyRpJg5T-wZsJYXc3zSYQHJ7fT9ZTq53mtOcx5WzRxntdqhZYoAfMGe2YIq/s400/IMG_0025.PNG" border="0" /></span></a></div><br /><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiJZ2GHicMkAWgrN8KQjM9KdrrSZPrwW_VrvFR9c_jMoqG05jNleKtsOUJDv9aVSdQn0niivk4YZulyYBrbhomwcUlE4Z1w1RxIK3_CK7RApxISErdkaX-2NXkoG_AbKjDZozY/s1600-h/IMG_0026.PNG"><span style="font-family:verdana;"><img id="BLOGGER_PHOTO_ID_5352371330025624146" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiJZ2GHicMkAWgrN8KQjM9KdrrSZPrwW_VrvFR9c_jMoqG05jNleKtsOUJDv9aVSdQn0niivk4YZulyYBrbhomwcUlE4Z1w1RxIK3_CK7RApxISErdkaX-2NXkoG_AbKjDZozY/s400/IMG_0026.PNG" border="0" /></span></a><span style="font-family:verdana;"><br /></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNfRmOp1bHb5JCb3gpC2AP0Lh9-r9k9N6qym96uo5VXWr8fvWIPcmrsyJfBLtxkOKdKzYVggsCA6wpaQbFK297rDpIVvipMk8P3m2L2NKQpKRghAiLYcUsaaesZfjTNysGGlkO/s1600-h/14561970.png"><span style="font-family:verdana;"><img id="BLOGGER_PHOTO_ID_5352371806935947234" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNfRmOp1bHb5JCb3gpC2AP0Lh9-r9k9N6qym96uo5VXWr8fvWIPcmrsyJfBLtxkOKdKzYVggsCA6wpaQbFK297rDpIVvipMk8P3m2L2NKQpKRghAiLYcUsaaesZfjTNysGGlkO/s400/14561970.png" border="0" /></span></a><span style="font-family:verdana;"><br /></span></div><br /><div><span style="font-family:verdana;"></span> </div><br /><div><span style="font-family:verdana;">Happy tethering :)</span></div><br /><div><span style="font-family:verdana;"></span> </div><br /><div><span style="font-family:verdana;">Thanks for your time.</span></div><br /><div><span style="font-family:verdana;"></span> </div><br /><div><span style="font-family:verdana;">BR</span></div><br /><div><span style="font-family:verdana;">Ahmed Essam<br /></span></div><span style="font-family:verdana;"></span></div></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com1tag:blogger.com,1999:blog-33669483.post-56536653126557057022009-06-07T10:36:00.002+02:002009-06-07T10:53:16.451+02:00Cheap way to develop for iPhonePeace be upon you<div><br /></div><div>How are you guys? I am sorry for not posting a lot.</div><div>Today I am gonna write how to start iPhone development in a very cheap way, first let us talk about why, I thought about that.</div><div>In Egypt we have don't have Apple it self, we have punch of people who has the reseller logo, they offer SUCK service, high prices for nothing, they are even not cool in manner of human treatment, it is like "we sell Apple products, we are from heaven (YAKHHHHH)"</div><div>anyways, I have noticed that people likes the idea of developing for the iPhone and how it can get quite good money for simple application, this is happen because of the huge number which is use 1 place to shop for software "App store", the only thing that makes people step back is the prices of the Apple machines, in Egypt we pay double prices so there is always something to be done to get out of this CRAP, high price and need of equipment, so I have started messing around the netbooks as a low end machines that can do HELL of things (little monster)</div><div><br /></div><div>so what do u need to start?</div><div> - MSI Wind U123x</div><div> - Externel DVD reader</div><div> - Mac OS X (10.5.2 (this what I have tried) or higher) -> Kalyway (get it from http://wiki.osx86project.org/wiki/index.php/Main_Page )</div><div> - Combo Update to (10.5.3)</div><div> - iPhone SDK (get it for free from http://developer.apple.com/iphone )</div><div> - Chain0 (get it from http://wiki.osx86project.org/wiki/index.php/Chain0 )</div><div><br /></div><div>Here is snapshots for what the operation </div><div><br /></div><div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4AHSUKDIBMJOw-TnWk9MU4EaSJbni9ZSMlVGpD0oqA_YFHJ3nTIJek21KW45TKtSxC5xIKFPDYUqsvKmUesLqP6RDjpymWBz4iTu3I2AjSFuY2KYbgluAYjThWBtf_Y_UxGkN/s1600-h/01062009236.jpg"><img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4AHSUKDIBMJOw-TnWk9MU4EaSJbni9ZSMlVGpD0oqA_YFHJ3nTIJek21KW45TKtSxC5xIKFPDYUqsvKmUesLqP6RDjpymWBz4iTu3I2AjSFuY2KYbgluAYjThWBtf_Y_UxGkN/s400/01062009236.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5344502406335325986" /></a></div><div>Insert the Mac OS X Kalyway DVD and boot<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-MkoRXjkIE2FTzZctUgVM7GiaOfmcBHriJOOp9DiBB5iv-zzuB_6YLmtHUSOKdZTuva3bGL9n8YIbZmiJmNkldmYnjGfDLrmKL0EselhuEMDrDlwWpU430R6fPsrk2Et6uali/s1600-h/01062009239.jpg"><img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-MkoRXjkIE2FTzZctUgVM7GiaOfmcBHriJOOp9DiBB5iv-zzuB_6YLmtHUSOKdZTuva3bGL9n8YIbZmiJmNkldmYnjGfDLrmKL0EselhuEMDrDlwWpU430R6fPsrk2Et6uali/s400/01062009239.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5344502409975017634" /></a></div><div>From the customize screen select the proper kernel and VGA driver <br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5QJjfR_BDvasIC8cJdVFEwFwNr5vC52GX7NMncpBpj2jv41rUnQ6vHQwQhksVjZ3-DY4iFEegapppoFpGFIK3NOSILwG4SxQERz0IxdWwbBpb6wk32xG6Ckzh_AzHRzUA3z60/s1600-h/MSI+Mac.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 231px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5QJjfR_BDvasIC8cJdVFEwFwNr5vC52GX7NMncpBpj2jv41rUnQ6vHQwQhksVjZ3-DY4iFEegapppoFpGFIK3NOSILwG4SxQERz0IxdWwbBpb6wk32xG6Ckzh_AzHRzUA3z60/s400/MSI+Mac.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5344502414035905346" /></a></div><div>Now after installing the combo update (VERY TRICKY to be installed) and installing the XCode and iPhone SDK everything up and running and 100% running <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb3y96c425Xo9xQ2EwmXdcU-6_d-org0IhemO7W9kAx0asPSQlwVVnTkiSJBDRT1c5rKjacMVUCKqiJu4X_nGesz1LuSkrYVtd1LyZrUCiP-Oy-XBlJzgUpjuJAC9nIxqryqd8/s1600-h/MSI+XCode.png"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb3y96c425Xo9xQ2EwmXdcU-6_d-org0IhemO7W9kAx0asPSQlwVVnTkiSJBDRT1c5rKjacMVUCKqiJu4X_nGesz1LuSkrYVtd1LyZrUCiP-Oy-XBlJzgUpjuJAC9nIxqryqd8/s400/MSI+XCode.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5344502419635042530" /></a></div><div>Screen shot from the MSI Wind U123x after having a simple trail.</div><div><br /></div><div>I will post in detail how to make everything running, I have exams this days so pray for me and I hope that I have much time for my BELOVED blog and BELOVED readers, I really miss the nice feeling when I write something</div><div><br /></div><div>Thanks for your time.</div><div>BR</div><div>Ahmed Essam</div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com8tag:blogger.com,1999:blog-33669483.post-89933978845115056142009-05-09T16:35:00.005+02:002009-05-09T17:17:30.031+02:00NSOpreationPeace be upon you<div><br /></div><div>How are you guys? I am sorry that it has been long time since last post, but I have exams, work and my beloved iPhone projects.</div><div><br /></div><div>Now, let us get to the point of todays post, it is about something called NSOpreation and NSOpreationQueue, this classes are part of the "iPhone Threading programming", which means that this things are mostly used when u do some threading in the iPhone app</div><div><br /></div><div>The point here that makes me really get stunned was that this thing manages that queue of tasks, it is really critical to have something like that done for you, this thing manages that threads combined with locks combined with queue management, imagine that you have some kind of big thing, I will never have example better than Standford CS193p sample, flicker, imagine that you get some list of information from flicker and u wanna display it, considering that it is coming from the web, it will take some time, so there will be a need to handle it really wisely to make user feels Ok and don't get bored from your application, if I am going to do it on Windows, I may use "Threads", "Locks" to handle it and I think it will be a bit headache.</div><div><br /></div><div>In the iPhone development "as far as I know such class is not exist for Mac OS yet", this classes will save all that time that will be sucked by implement this stuff, I really recommend downloading the sample and check it out, it is available online on the CS193p page, I really wish that I have some time to write example to show you how much it can be efficient to use such thing.</div><div>ohh, I forgot to mention that iPhone considered a subset of unix, which means internally it uses the pthread, I think it has all the POSIX , can u imagine that this little device runs UNIX :D</div><div><br /></div><div>anyways, it was nice writing to you :) and I hope u like it as I do ;)</div><div><br /></div><div>thanks for your time.</div><div><br /></div><div>BR</div><div>Ahmed Essam</div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com2tag:blogger.com,1999:blog-33669483.post-32079141939169133052009-04-14T12:56:00.004+02:002009-04-14T13:21:22.949+02:00Arabic in iPhone Safari Sourcsecode<span style="font-family: arial;">Peace be upon you</span><br /><br /><span style="font-family: arial;">This days, I have forward my focus into iPhone development, actually I have figured out too many things that I miss by not working for Mac :D</span><br /><span style="font-family: arial;">I am not going to get into debate or something like that but all I am going to say is "Apple definition for the word 'Framework' is much much much much better than anyone else"</span><br /><span style="font-family: arial;">Let us get to what I am coming to say today.</span><br /><br /><span style="font-family: arial;">Today I would like to demonstrate some stuff related to Arabic inside WebKit which the core of Safari</span><br /><span style="font-family: arial;">I will sort then explain, as I don't have much time I will explain in hurry :D</span><br /><span style="font-family: arial;">First, to get the code , you have to download it from Apple Opensource section, here is link </span><br /><span style="font-family: arial;">http://www.opensource.apple.com/darwinsource/iPhone/</span><br /><span style="font-family: arial;">in the Article I have used the 2.2.1</span><br /><span style="font-family: arial;">so let us start with BiDi related function , this function called BidiCharacterRung, I put it here because I have noticed that it has some kind of detection for the Right To Left issue</span><br /><br /><a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSO-YbNWTx-Vt0l-0r83XKKJYTq6YOoshUInYbtlRsv1pCIYir7GAvWf81TG_WKUBWjFT4Ak-XDu7n-SktbHuSN1_2bbqGMn1eMJT8_3xZvrsbXc_MuJOwmQjb5okBOSBN40b-/s1600-h/RTL.PNG"><img style="cursor: pointer; width: 400px; height: 256px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSO-YbNWTx-Vt0l-0r83XKKJYTq6YOoshUInYbtlRsv1pCIYir7GAvWf81TG_WKUBWjFT4Ak-XDu7n-SktbHuSN1_2bbqGMn1eMJT8_3xZvrsbXc_MuJOwmQjb5okBOSBN40b-/s400/RTL.PNG" alt="" id="BLOGGER_PHOTO_ID_5324500239748519442" border="0" /></a><br /><br /><span style="font-family: arial;">shapeArabic, If you know about Arabic representaion, the reshaping is the phase which make the Arabic readable by the user</span><br /><a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSxJAbyEnXmStHbrhYjM_XXcx3qpXANKVEk3v_wJxcsbpZ8_vTWYhDUTo6u53vIDrqsBD4WDYJKS844Jr6RhVpcMDKUPtu9t81Ll6UxzRH5f3FtxqCuImva4OBQocBuQZ8jgj0/s1600-h/Reshap+function.PNG"><img style="cursor: pointer; width: 400px; height: 65px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSxJAbyEnXmStHbrhYjM_XXcx3qpXANKVEk3v_wJxcsbpZ8_vTWYhDUTo6u53vIDrqsBD4WDYJKS844Jr6RhVpcMDKUPtu9t81Ll6UxzRH5f3FtxqCuImva4OBQocBuQZ8jgj0/s400/Reshap+function.PNG" alt="" id="BLOGGER_PHOTO_ID_5324500238312581458" border="0" /></a><br /><span style="font-family: arial;">This line I like very much, this code prevent from showing "boxes" if the font is not exist</span><br /><a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQW3_ZLmuZQzAL7foO8Ct9U7chAuDN6IEM9T4X6J_-qSggAr1M_9vGKdIKnCk7kQ4JtZ5kP2uVtYacLePiWrjUNJEocwylmuE5nRnRqhkVf-RxNHbIGSkCnyNi6weXvdJeMGo9/s1600-h/Detect+Font+and+resolve+the+Boxes+issue.PNG"><img style="cursor: pointer; width: 400px; height: 54px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQW3_ZLmuZQzAL7foO8Ct9U7chAuDN6IEM9T4X6J_-qSggAr1M_9vGKdIKnCk7kQ4JtZ5kP2uVtYacLePiWrjUNJEocwylmuE5nRnRqhkVf-RxNHbIGSkCnyNi6weXvdJeMGo9/s400/Detect+Font+and+resolve+the+Boxes+issue.PNG" alt="" id="BLOGGER_PHOTO_ID_5324500232117822082" border="0" /></a><br /><br /><span style="font-family: arial;">The function related to previous figure</span><br /><a style="font-family: arial;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1EWnHNol9kOgrA_nXAqWmDA9xlipcx78niyXEBGRsnQvzF-8quT2vP_q4wGZGOAlR5Dc60dPbfGKxRAQHB3PBGTewzOsT-3_sI5OZGZBNbqfCfhtSOGoH6IVm-wSKqur40dEA/s1600-h/Detect+Font+and+resolve+the+Boxes+issue+1.PNG"><img style="cursor: pointer; width: 400px; height: 183px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1EWnHNol9kOgrA_nXAqWmDA9xlipcx78niyXEBGRsnQvzF-8quT2vP_q4wGZGOAlR5Dc60dPbfGKxRAQHB3PBGTewzOsT-3_sI5OZGZBNbqfCfhtSOGoH6IVm-wSKqur40dEA/s400/Detect+Font+and+resolve+the+Boxes+issue+1.PNG" alt="" id="BLOGGER_PHOTO_ID_5324500233640146354" border="0" /></a><br /><br /><ol style="font-family: arial;"><li>The first image shows that the Arabic is really solved in manar of character direct, this doesn't mean RTL, you can notice that in Safari because actually it showes Arabic is resolved and corrected but not Shaped<br /></li><li>The code showes that there is some work done in many levels, there is some code also to solve Arabic in the SVG render engine, which means that it is ready, I don't know why they didn't use it, may be it is little buggy</li><li>I like this part very very much, in OS X, when you use font that doesn't have the glphy"the shape of the character" of the character, it will find anther font that does have a font containe the character, why this thing is very important, it think it is better to see the character than seeing squares :D, you can easily see this in Windows mobile if it doesn't has Arabic support by 3rd party</li></ol><span style="font-family: arial;">What do I think about this code is, this code is somekind of memory conuming, as I understand that the code doubles the buffer to manage to solve the bidi issue</span><br /><span style="font-family: arial;">I think it should be optimized some how.</span><br /><span style="font-family: arial;">anyways, I like the code it is very well commented, I really recommend you to review it, </span><br /><span style="font-family: arial;">it doesn't require any thing from Apple products to review this stuff.</span><br /><br /><span style="font-family: arial;">I hope that anyone correct me if there is anything wrong</span><br /><br /><span style="font-family: arial;">Thanks for your time.</span><br /><br /><span style="font-family: arial;">BR</span><br /><span style="font-family: arial;">Ahmed Essam</span>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com2tag:blogger.com,1999:blog-33669483.post-19516046176310407622009-03-26T00:53:00.003+02:002009-03-26T01:07:14.039+02:00iPhone OS 3.0 Has full Arabic SupportPeace be upon you<br /><div>As you know that I have started my tries with the iPhone and I was very annoied because there is no Arabic Support for this Amazing device, now with iPhone OS 3.0 (the used to call it OS X now they call it iPhone OS) you can read Arabic , check out the images </div><div><br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyTdtPvJxFVSqje4ttK8Tjg9X0ggM-PemW_thleN3fQLsq_hXixAypC_gE3PRUxKLMcHeXPGzFnP5h8zAMC8IjJ-hLnSFx1Mi-x3lBRKLH5Y0fmCWrKXKHSmiAVJCKs5k9-Si-/s1600-h/Picture+2.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyTdtPvJxFVSqje4ttK8Tjg9X0ggM-PemW_thleN3fQLsq_hXixAypC_gE3PRUxKLMcHeXPGzFnP5h8zAMC8IjJ-hLnSFx1Mi-x3lBRKLH5Y0fmCWrKXKHSmiAVJCKs5k9-Si-/s400/Picture+2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5317264326596004866" /></a><div>Arabic in the local application, it means that the strings are in the application, there is nothing I have done more than showing the string.</div><div><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEHSWM8GHD600dbkm4WUEE2jB7spx5k2EuOrqUvJZk-UVFVHG9S0mb1ns3DeUtfvoTMcRO5wyKU5UGU2XoR4w6pZKfUmdwpNEd3ob48QFE0wm-D95Eq3TZM8gCB3kv0vxxQqgn/s1600-h/Picture+5.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEHSWM8GHD600dbkm4WUEE2jB7spx5k2EuOrqUvJZk-UVFVHG9S0mb1ns3DeUtfvoTMcRO5wyKU5UGU2XoR4w6pZKfUmdwpNEd3ob48QFE0wm-D95Eq3TZM8gCB3kv0vxxQqgn/s400/Picture+5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5317264331308885202" /></a></div><div>in the settings you will see that there is Arabic Key board<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiVzED2xLgen6vD1Wv1vAObWL1HbeDLWryhUshqmSGX77R41mpOcWZ-jHeNhKYfHOjX49I8bEuBz9HCPiv-83ny9In8ijmQrglERPyuTklvod8i5LdWphkFazWX1Pxs6NU9vN0/s1600-h/Picture+4.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiVzED2xLgen6vD1Wv1vAObWL1HbeDLWryhUshqmSGX77R41mpOcWZ-jHeNhKYfHOjX49I8bEuBz9HCPiv-83ny9In8ijmQrglERPyuTklvod8i5LdWphkFazWX1Pxs6NU9vN0/s400/Picture+4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5317264330569246274" /></a></div><div>Now I have tried to use the Arabic keyboard and it is working "I liked it, but it didn't give right to left"<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisrZbNxxoPXX_eLPSy7Y4mLYTCTNCDd9qUyBgX-RHeDVCtVJbVaT2Kbvlf8qgd0aAcSxg75B-EVKgAB-OSWc4leEiM9VPgfyECyvncMbTmVBNKLQ6DP3K551HF1QP_dOSpCsUB/s1600-h/Picture+3.png"><img style="cursor:pointer; cursor:hand;width: 215px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisrZbNxxoPXX_eLPSy7Y4mLYTCTNCDd9qUyBgX-RHeDVCtVJbVaT2Kbvlf8qgd0aAcSxg75B-EVKgAB-OSWc4leEiM9VPgfyECyvncMbTmVBNKLQ6DP3K551HF1QP_dOSpCsUB/s400/Picture+3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5317264329291380530" /></a><br /></div><div>The best of all "Safari" now the browser supports the Arabic and it is working very nice, it is really nice experience to have.</div><div><br /></div><div>I will not be able to talk much about the iPhone OS 3.0 because of the Agreement.</div><div><br /></div><div>I am sorry for the low rate of posting but I promise I will be focusing in the blog soon</div><div><br /></div><div>Thanks for your time.</div><div><br /></div><div>BR</div><div>Ahmed Essam</div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com12tag:blogger.com,1999:blog-33669483.post-8403717960157558222009-02-02T18:11:00.007+02:002009-02-02T19:06:53.713+02:00Meizu M8, The area that no one tries before<span style="font-family:arial;">Peace be upon you<br /><br />Today I am going to show you something that is really make me very excited, it is new device, people call it "iPhone clone" but I don't think it is like that, it has the same them but not the point that we call it clone, anyways<br />first u have to see the device </span><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin3n8Wd9orx2haWxVwQZQ47HaLBZKdnn1cepW3YaCY_OIkirqUq1MxXxl_gSCA8CI69V4v2i-V_rFwppHz0K4SkcJrusNa6VCGaOjSp9Zf0ErWnz41sE_YbB6uYYn8hAzzx2oU/s1600-h/n3.jpg" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298242840800381618" style="WIDTH: 330px; CURSOR: hand; HEIGHT: 249px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin3n8Wd9orx2haWxVwQZQ47HaLBZKdnn1cepW3YaCY_OIkirqUq1MxXxl_gSCA8CI69V4v2i-V_rFwppHz0K4SkcJrusNa6VCGaOjSp9Zf0ErWnz41sE_YbB6uYYn8hAzzx2oU/s400/n3.jpg" border="0" /></span></a><span style="font-family:arial;"><br />as you can see, :D it is very much like the iPhone, but it has some extra buttons </span><br /><span style="font-family:arial;">here is link for the web site</span><br /><a href="http://en.meizu.com/" target="_blank"><span style="font-family:arial;">http://en.meizu.com/</span></a><span style="font-family:arial;"><br /><br /></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUn1P1RJesHhjLWe5zPlfnM2uHSYsfQo1RBR2M7kJHN6FEgHHXDKuO_wGsFvinD8MM5KMgypzix7Z87wYqfSfmy7dJ_PAgFPq0XP56ylLjlkjiO9agNJqojpC-b_0345lgg3bg/s1600-h/1.JPG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298234073558382370" style="WIDTH: 266px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUn1P1RJesHhjLWe5zPlfnM2uHSYsfQo1RBR2M7kJHN6FEgHHXDKuO_wGsFvinD8MM5KMgypzix7Z87wYqfSfmy7dJ_PAgFPq0XP56ylLjlkjiO9agNJqojpC-b_0345lgg3bg/s400/1.JPG" border="0" /></span></a><span style="font-family:arial;"><br />This is the loading window<br /><br /><br /></span><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO_2ZRHOhLi1rtHYgDPgdevA8n70An0E3wZvODtQ-kPL36urb2RoT7ZRabxtriaw5dUsVo_dk1FHmK4_j9mywnefbufZ0xzIhF5i57vcnu8aZoDvnEO1WDq7fggS5BcUJJyZ8f/s1600-h/CEZoom0.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298234073682822530" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO_2ZRHOhLi1rtHYgDPgdevA8n70An0E3wZvODtQ-kPL36urb2RoT7ZRabxtriaw5dUsVo_dk1FHmK4_j9mywnefbufZ0xzIhF5i57vcnu8aZoDvnEO1WDq7fggS5BcUJJyZ8f/s400/CEZoom0.PNG" border="0" /></span></a><span style="font-family:arial;"><br />Desktop or whatever they call it :D<br /><br /></span><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmsconPjJJ0LGMn0ylAm7i7ySGjCtGPv1NfhIzg2i_W8BpV7t-ww359UN078PtlDefmrBd0n0aL7FN59udb7J_1zVk-CtI72zwjP256zfsdNgEHN5Tu79hb9658XcYBDe4QvAb/s1600-h/CEZoom1.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298234075984552978" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmsconPjJJ0LGMn0ylAm7i7ySGjCtGPv1NfhIzg2i_W8BpV7t-ww359UN078PtlDefmrBd0n0aL7FN59udb7J_1zVk-CtI72zwjP256zfsdNgEHN5Tu79hb9658XcYBDe4QvAb/s400/CEZoom1.PNG" border="0" /></span></a><span style="font-family:arial;"><br />File Manager, it is in some east Asia language that I don't know<br /><br /></span><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSEM9MIE7CB5HkOjt5VPe9bywmzT4Vx6-hbYXFSzV_QaJ-byz7hD8sCB_pKRZM8Zx1EI48XuJQBpxkOEO_lR75AcLzHY8dYuFo7Eg2Re_ayqrkcc256niJxGRxpI6m_VybQ6eI/s1600-h/CEZoom2.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298234075548047394" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSEM9MIE7CB5HkOjt5VPe9bywmzT4Vx6-hbYXFSzV_QaJ-byz7hD8sCB_pKRZM8Zx1EI48XuJQBpxkOEO_lR75AcLzHY8dYuFo7Eg2Re_ayqrkcc256niJxGRxpI6m_VybQ6eI/s400/CEZoom2.PNG" border="0" /></span></a><span style="font-family:arial;"><br />File Manager, I meant to show anther photo for it to show you the left side "path Navigation"</span></div><div><span style="font-family:arial;"><br /></span> </div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZyDH0Ea3NGoRqmMxjHhHoTeCy7Xy6Q1Gnx5C4GY7jYu-k5GZv1teF298-EEULNscnCLlBP4QxYmiX2BUCqNTaZUaDMPnTGUK1ZSRFpkR-02ufxmqBAKvoquCnJ7_3IJ8X8x-n/s1600-h/CEZoom3.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298234083968165874" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZyDH0Ea3NGoRqmMxjHhHoTeCy7Xy6Q1Gnx5C4GY7jYu-k5GZv1teF298-EEULNscnCLlBP4QxYmiX2BUCqNTaZUaDMPnTGUK1ZSRFpkR-02ufxmqBAKvoquCnJ7_3IJ8X8x-n/s400/CEZoom3.PNG" border="0" /></span></a><span style="font-family:arial;"> </span></div><div><span style="font-family:arial;">Normal "Windows Mobile Application", sure there is no fancy interface because I don't use their libraries<br /></span></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinMmozeprQ9W5E3_VrpBSz3MZntiLPkHgLJ7SgyhTy_TKIkv80X1K_LXiHScTtccP1SaH4BQtwZR4U_Z0VJnOPjgy6dSEAKM7Bgd-CTFHQrO6OMUch0wlZB2j_gdw4WDDPlxE-/s1600-h/CEZoom4.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298237156159491826" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinMmozeprQ9W5E3_VrpBSz3MZntiLPkHgLJ7SgyhTy_TKIkv80X1K_LXiHScTtccP1SaH4BQtwZR4U_Z0VJnOPjgy6dSEAKM7Bgd-CTFHQrO6OMUch0wlZB2j_gdw4WDDPlxE-/s400/CEZoom4.PNG" border="0" /></span></a><span style="font-family:arial;"><br />Calender "Looks very cool"<br /><br /></span><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1088VBDg1e9cl9wd0Guw6_fVBRSLEtco68ryVOHzZmVzXwBchvHXfr-Y734Ns-vvDiWcOekJsVgHKNYLu8YHfnc8VbttNsJP0dUHEfF-_wUE4Kn2eoeAQERNseRoFRL1ZHOlK/s1600-h/CEZoom5.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298237161305270866" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1088VBDg1e9cl9wd0Guw6_fVBRSLEtco68ryVOHzZmVzXwBchvHXfr-Y734Ns-vvDiWcOekJsVgHKNYLu8YHfnc8VbttNsJP0dUHEfF-_wUE4Kn2eoeAQERNseRoFRL1ZHOlK/s400/CEZoom5.PNG" border="0" /></span></a><span style="font-family:arial;"> </span></div><div><span style="font-family:arial;">The keyboard, it is VERY much like the iPhone one<br /></span></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZHhjVndw1w_QkXTr0atXYhkehr69R177EiPB0kSi9tGviA7i1-vzg2yN9T-yfaZaPzg1B14mrAoT-lIeW4HzW07x5lB-Mq67tHwJqB7N5OX3J3OyXToQJ468b6DTO4GusQGev/s1600-h/CEZoom6.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298237163299123394" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZHhjVndw1w_QkXTr0atXYhkehr69R177EiPB0kSi9tGviA7i1-vzg2yN9T-yfaZaPzg1B14mrAoT-lIeW4HzW07x5lB-Mq67tHwJqB7N5OX3J3OyXToQJ468b6DTO4GusQGev/s400/CEZoom6.PNG" border="0" /></span></a><span style="font-family:arial;"><br />When you start writing the "Auto Complete" will help you "Nice feature".<br /></span><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig85fuXH423fh0k6LjGk6FW_7ifWp5KxqI1c245ZebPT1JiMBZwXnUdbTgJ8PN-fe1DlkcAiLv8BZZRChSiqphWytcZeZEUj4g-LkvXC3vkMltq73woCJpXFPHvz7l28wya2fO/s1600-h/CEZoom7.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298237162558244242" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig85fuXH423fh0k6LjGk6FW_7ifWp5KxqI1c245ZebPT1JiMBZwXnUdbTgJ8PN-fe1DlkcAiLv8BZZRChSiqphWytcZeZEUj4g-LkvXC3vkMltq73woCJpXFPHvz7l28wya2fO/s400/CEZoom7.PNG" border="0" /></span></a><span style="font-family:arial;"> </span></div><div><span style="font-family:arial;">The stop watch :D, Cool application<br /></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2MdAKby8U9SKwV8uGHancWqcq4hFRLYqg2glqMybeo0RWVDUsHoM46TFZTvT1jRFH0Krh91ZZDNMILl548M0mxm9myloVVCcY_CJvdramof7mpfloGVQHHG4_VSvfzOA-9-Ft/s1600-h/CEZoom8.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298237166931003938" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2MdAKby8U9SKwV8uGHancWqcq4hFRLYqg2glqMybeo0RWVDUsHoM46TFZTvT1jRFH0Krh91ZZDNMILl548M0mxm9myloVVCcY_CJvdramof7mpfloGVQHHG4_VSvfzOA-9-Ft/s400/CEZoom8.PNG" border="0" /></span></a><span style="font-family:arial;"><br />After pressing the start button, very nice interface interaction</span></div><div><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_9BHV98UBKdjNaT0B7vogpt0le13O-vDSZcmZaE4xaxcG5hvGB5-hIliOTqB2iXT1DcAI43Ih7a3mtDdIltNbUaZ2ZWqlpnMf6vxO-n1LYrP_blVRhWuySe3M3hQ2MXEbDo2/s1600-h/CEZoom9.PNG" target="_blank"><span style="font-family:arial;"><img id="BLOGGER_PHOTO_ID_5298240981633998770" style="WIDTH: 267px; CURSOR: hand; HEIGHT: 400px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK_9BHV98UBKdjNaT0B7vogpt0le13O-vDSZcmZaE4xaxcG5hvGB5-hIliOTqB2iXT1DcAI43Ih7a3mtDdIltNbUaZ2ZWqlpnMf6vxO-n1LYrP_blVRhWuySe3M3hQ2MXEbDo2/s400/CEZoom9.PNG" border="0" /></span></a><span style="font-family:arial;"><br />The calculator<br /></span></div><div><span style="font-family:arial;">I didn't get this device all I have done is I just downloaded the SDK that they provide and I start it simple and clear, here is the link for the SDK</span></div><div><div><a href="http://www.meizume.com/meizu-news/7735-first-version-sdk-has-been-released-m8.html" target="_blank"><span style="font-family:arial;">http://www.meizume.com/meizu-news/7735-first-version-sdk-has-been-released-m8.html</span></a></div><div><span style="font-family:arial;"></span></div><div><span style="font-family:arial;"></span> </div><div><span style="font-family:arial;">The nice thing is, that this device is "Power by Windows mobile", for all this years there is lots of vendors work on Windows mobile but they never do something like that, this proof that the "Windows Mobile" is very flexible and can do too many things, the nice thing that Windows mobile supports many "Architecture" which is "more than good", this guys "MEIZU guys" have done great work and I really think that they are very professional, </span></div><div><span style="font-family:arial;">Anyways, I was just trying to show you how much this thing is amazing, by the way, to have the fancy interface you will have to use there library, which is very complex to use regarding to the documentation that is written in Chinese "Please don't tell me to use google to translate it, it is SUCKS + sometimes it gives strange statements"</span></div><div><span style="font-family:arial;"></span> </div><div><span style="font-family:arial;">Thanks for your time :)</span></div><div><span style="font-family:arial;"></span> </div><div><span style="font-family:arial;">BR</span></div><div><span style="font-family:arial;">Ahmed Essam</span></div></div></div></div></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com1tag:blogger.com,1999:blog-33669483.post-70777896013623679342009-01-18T16:56:00.006+02:002021-08-29T19:04:41.846+02:00Converting assembly to machine codePeace be upon you
I am sorry because I am not posting to much enough in the last period, I am working on my diploma and eats all the time.
Here is something good I have got from this diploma, it is assignment to convert assembly program into machine code.
here is the link for the manual that I have used to convert the assembly code into machine code
<a href="http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/Manuals/intel%7C_manual.pdf">http://cid-e2c1100334a33877.skydrive.live.com/self.aspx/.Public/Manuals/intel%7C_manual.pdf</a>
and here is the presentation <div><br /></div><div>
<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vSxYxO_GQJPGyBYGYJ9PrQY7TjnLryk7Qp3cU0YJWTy2njds0IJJmzKXJINxUdDYMvarNvOkGhWUsdT/embed?start=false&loop=false&delayms=3000" frameborder="0" width="100%" height="480" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
Thanks for your time,
I hope that it is useful.</div></div>Ahmed Essamhttp://www.blogger.com/profile/13454834805550035720noreply@blogger.com3