May 29, 2013

Moving from wordpress

Posted by Ismail Marmoush

Embedding Github gists was working fine in wordpress but after I imported most of the blog posts from wordpress I lost many things including some tags and categories. Then using the blogspot dynamic template the script embedding of GitHub Gists wasn't working so I had to go through all the posts and do somework around, but then 2 days after when I found that blogspot had some cool themes around the internet I decided to install one but unfortunately the workaround didn't work with that them but lucky me the original embedding script worked.

My sincere apologies to all who have went to my website and haven't found the actual code, yes some people say it's better to add the code itself to the page instead of embedding github gists but I think that's better way incase anyone added modifications to gists it automatically reflects to the page.

If you've found any post with any flaw, missing image/code etc please let me know and i'll fix it right away.

April 19, 2013

RSI Repetitive Strain Injury

Posted by Ismail Marmoush

for those who stay for long hours in front of a screen, chatting or surfing and who doesn't these days, RSI isn't fatal disease or injury don't take this article too serious it's not cancer we're talking about but it's really annoying and stressful and can go seriously bad. It could happen to anyone. With more tasks and jobs being done through computers, It will certainly happen to more people, and you need to act against it, if you care

So, What is RSI ?


According to Wiki Repetitive strain injuries (RSIs) are "injuries of the musculoskeletal and nervous systems that may be caused by repetitive tasks, forceful exertions, vibrations, mechanical compression (pressing against hard surfaces), or sustained or awkward positions".[1] RSI is also known ascumulative trauma disordersrepetitive stress injuriesrepetitive motion injuries or disordersmusculoskeletal disorders, and [occupational] overuse syndromes.

Cure


If your case is serious I advice you to visit a doctor directly, if you're in early phase just do the following and hopefully you'll be fine, If you didn't then you must go.

So first you need to Adjust Your Sitting


I can not insist more on this, I was the guy who would put the laptop on his lap, lay or sit on bed and all the  postures you can think of, and that when my hands and rest started to hurt me, When it started to happen more frequently I was unable to code, I was literally going mad,  I'm about to lose my job and maybe career, it can not be more serious than this, and I don't like going to doctors unless I have to, so I google and googled and everytime I read something new; first answers were adjust your sitting posture, I ignored it and started buying different ergonomic keyboards and mice/mouses, I ended up with more than 9 keyboards and 10 or more mouses, I spent a fortune I bought different makes and from the lowest to highest, problem wasn't fixed until I figured out I just have to sit straight as the book said.

what are the secrets behind that perfect posture ?

  1. The chair

  2. Again The chair

  3. elbows free and 90 degrees with keyboard

  4. Screen height

  5. strong chair back

Change your habits

There's a say that brain can't concentrate more than 50 min on a specific subject and will often need a break, so have a break every 50 min for 10 minutes just try don't sit there for hours and have a walk along the place.

Mouse the source of trouble

If the mouse was the source of your pain then you're reading the right article because this was exactly my condition, Try to avoid any as they're the main cause of RSI, the alternatives are (Touchscreens, good touchpads, good keyboards, memorizing and printing Windows/linux/ Mac  shortcuts. At the end of the article you'll find some tips if you need to use a mouse as a backup.

Internet surfing with only a keyboard

Use Vimium it's an extension on Chrome it's just perfect, you press f and suddenly all the links on the page have alphabetic shortcuts of one or two alphabets it's just amazing and quick, try it and read the description over there I won't explain much.

Touchscreens


Whether it's a tablet or a touchscreen they're good choices but not always, sometimes you just need a mouse and keyboard for a desktop, either you're out of budget or you're at work.

Keyboards


I've tried many keyboards best ones for me as PC(linux/windows) user:

Generally speaking laptop keyboards are the best specially Dell Inspiron, any Mac, and most VAIO's are good. I have no idea why Desktop keyboards aren't similar to those, it's very rare to find a desktop keyboard that has the following properties:

Thickness:  Short

Touch sony VAIO and Mac users will know what I mean, try to find the non slippery ones

Feel 

Keys with long press aren't my favorite, you'll find them in normal Qwerty keyboards. My favorite are the ones where you feel a click when you press them.

I've found the perfect click one it was called Microsoft Arc keyboard though the design was horrible the guy who made it made a terrible mistake he made one Arrows key instead of four it looked like a game controller and in the casing you wouldn't see that pitfall it's like they realized it and covered it with an icon, but when you get the keyboard out and you have sense of detail you'll see it.

Design this is very important because when you're at the mall your eyes get blurry by different designs trust me Just stick to the design you're originally comfortable with, for me the best is the minimal with spaces between keys, (you can see that clearly in Macs keyboards)

Mouse

There is no way of avoiding a mouse, at the end of the day you'll need one just to use in case of anything, so just don't start using the quirky ones you find with strange and sometimes fancy design, your best bet is to stick to Logitech those guys know what they're doing, specially in mouse designs. Also wireless mouse are the best not because they're just wireless no because the wire increases resistance against your moves which causes stress for your psychological state, and affects the muscles gradually, I'm no doctor but this is exactly what it feels like when switching between a wired and wireless mouse.

Note

I wish you and myself well and good quality of life. Though don't forget about those who can't afford anything of what we're talking about in here, we're certainly blessed (if you're believer) lucky (if your non believer) so when you buy good thing for yourself whether it's pricey or not, remember them and try to help.

April 18, 2013

Egypt as a company with 90 Million employees

Posted by Ismail Marmoush

The revolt was like fireworks inside a sewer system under that company, it wasn't a gas explosion because the employee who fired them didnd't want to get hurt along with everyone else but as a result rats and roaches are out and are in everyone's office. the following isn't the stereotypical conspiracy theory it's just stating some facts and you can build your own theory with the set of enemies of your choice as you used to do with each piece of news you hear and start accusing anyone you dislike, yes we're all that person even the original poster. So something is just going wrong in Egypt don't you think ?

  1.  Ultras Ahlawy, zmalek etc ( I call them attention seeking cheerleaders ) irresponsible actions is praised by media, then they get hasty unfair court verdicts to calm them. Now everyone thinks this is the rightway to get things done (ignorant kids/elders now naturally working against government and everyone following the same route with no respect to any law or authority)

  2. With the previous in mind, Traffic is your daylight-mare

  3. Internet is mostly terribly slow since the cable shit (youth and business)

  4. Bottled water is now much less since NESTLE's factory caught on fire

  5. The packaging factory UNIPACK one of the top also burned down 500 millions losses as much as i remember (business mainly food, packaging is essential for delivery)

  6. Fanatic religious groups from both sides increasingly in action (driving normal religious people to higher levels of congestion)

  7. Occasional accidents in trains, metro, surprisingly appeared and suddenly vanished from news

  8. Oil and gas prices going higher, with unpredictable availability

  9. If power generators and electricity started to fail more this summer; then tap water will also start to do so and maybe in higher ground areas more, cause pumps work.

There is no way out of a nose dive for a country like Egypt except for one!.... to you it's not what I think it is and vice-versa so until we both accept one; both ways will fail and because we both are humans we will always be in debate. Until someone enforces his way (board member who owns 51% of the shares). That's why wars and conflicts will never end. so be always prepared as much as you can cause tomorrow is unpredictable, more is to be written, later

April 12, 2013

E-Commerce and the Paypal vibe in Egypt

Posted by Ismail Marmoush


UPDATE 14-5-2013:
kindly read the comments there is bad news  regarding paypal not accepting bank accounts yet and only accepting credit cards which means you can pay and yest receive but you can't withdraw the money to a credit card or debit, so if you're in necessity of using paypal you should then use indirect ways to get that cash to your hand, anyway when door closes another opens there is a website called 2Checkout which the original poster of the comment said he's using it and working for him. I'm going to register on 2checkout.com but not planning to use and confirm now,  All in all I'm a bit sad for knowing these news about paypal, quarter of the article is now gone :D but anyway it's still good step and more to come hopefully in the near future.

April 03, 2013

Writing good software in agile production environment

Posted by Ismail Marmoush

A man walks into a bar he finds a guy banging his head against the wall, there are two men in suits talking and totally ignoring the guy over there, the bartender orders a waitress to ask the guy if he's finished or not yet. The man who just got in writes a note and walks out.

To me success is not about making the right choices over the long coarse of life but it's just writing down the failure experience without mentioning the date which it happened in; in a fast pace production line in a giant factory wasted hours cost thousands if not millions of dollars, and in an agile working environment in a Software house it will cost creativity, scalability and much of usability.

Agility


In general, agility is defined as "the ability of a [system] to rapidly respond to change by adapting its initial stable configuration".[1] With that in mind our everyday challenges as gentlemen developers with agile software production forces us to make compromises of time taken to think of better optimizations, writing more unit tests, having the leisure of being creative, and being open to new possible forms of requirements.

RAD, Agile and XP SDLCs are now being forced in many business apps getting the maximum output in the shortest time risking many ethical values regarding a software being written, due to the fact that clients have deadlines and that successful time estimator managers are lacking the developer spirit, being ashamed of it sometimes or maybe unintentionally trying to keep their hands clean organizationally or socially they have estimated the lowest possible time that the project x will be finished within, they haven't spoken to the tech leads or the guys behind cubicles they just expect everything to work out just fine because they have good resources.

Everything works out fine until next bug report comes in and that's when developers enter the maze and start blaming themselves for writing such a horrible doc lacking code, and take it as a challenge and start fixing issues.

Inside Man


Yeah I meant the bank robbery movie,  walks in finishes the job and walks out after a while, he has set his environment to be ready for his stay for days as much as I remember, he has calculated much of possibilities and dealt with unknown and unexpected incidents quietly.

If the next project should be done in days then hire Roles and do not hire Resources !. Having too many developers doesn't fix your problem hiring an experienced analyst who does get involved with the requirement investigation sessions with the client is a must, hiring System Architect does matter too. Let the technically experienced heads discuss the possible delivery dates and write escaping plans.

Straight forward


Cyclists usually stick to straight lines for their own sake. A drivers behind has no idea what is their next turn he just wants to pass and go home; So for developers stick to your process and talk about it, always write down what you've done, what you're supposed to be doing and what you're currently doing but never ever say how you're planning to do it; It's your code you own it if you believe in yourself don't discuss how you do things you can ask technical general questions and elaborate healthy discussions but without showing any sign of interest in a specific solution to a problem people naturally tend to argue and object either to stand out or to mark their authority.

Suggest and discuss do not be defensive or unbelievable, do not just give opinions without backing scientific facts always refer to the references you've read which backs up your say until you have your reputations and that's when people will start trusting your judgement. Also you should be flexible if you're required to skip something skip it just write down and raise the flag that you've, come back to it later (that's why you've written it, Right ?), there will always be time for the documentation work.

Adaptation Strategy


Software Engineering Related

  • Never Stop reading before making any decisions; the world is full of books and articles of ancestors and fellow colleagues Make Use of It.

  • A software that has a strong architecture will survive the nose dives, always let the experienced shine and discuss requirements, closing a deal doesn't mean accepting lack of information, look for someone who's technically involved one who can lead and ask things nicely, still he doesn't bother clients with much detailed questions, a good software architect is the one who has both high technical and communication skills.

  • "The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc)". http://www.12factor.net/ It was written by brilliant men who are behind Heroku.com one of the leading cloud PAAS in the world which currently hosts most if not all Facebook apps.

  • Testing Testing Testing watch this The Clean Code Talks google developers.

  • Never give up the idea of a restful application.

  • Stay open-source as much as possible, meaning make use of the current open source projects they're cheaper, have future, they're not afraid of showing the inner code, they accept issues, you're more than welcome to contribute, and pay  gladly for their VIP support.

  • Stay alert for changes butterfly effect.

  • Invest in the start up and planning time of any application.

  • The simplest solutions are usually the best.

  • Use plugins and softwares which analyse your code for bugs and saves you from bad practices for example Crap4j is a Java implementation of the CRAP (Change Risk Analysis and Predictions) software metric – a mildly offensive metric name to help protect you from truly offensive code, or  something like findbugs.sourceforge.com

  • Documentation will always save you.

  • Must keep an eye on Separation of concerns, Cohesion, Low Coupling, and IOC.

  • Don't try to be creative just be patient and do your job professionally you'll find yourself becoming creative all of a sudden.

March 31, 2013

JSP Document HTML5 Compliant

Posted by Ismail Marmoush

There is a difference between a JSP Page and JSP Document; Jsp documents are XML formatted the documents incorporate the well-defined structure that XML provides making the parsing of these documents easy for computer software, including the Java EE Web Container at run time when the JSP is first requested.

The following is a JSP Document Sample code which will generate HTML5 compliant code. If you run this code on your server you can then check the html generated code for html5 compliance from the following link: http://validator.w3.org/#validate_by_input

So here is your JSP:

March 24, 2013

Simplicity Project

Posted by Ismail Marmoush

A restful boilerplate Java Web Application. Currently runs over JDK 7 and you can easily downgrade to JDK 6 because it's a startup project so no java 7 related code was written all you'll need is to change some maven and eclipse configurations.

Code Ethics

Frontend

Backend

Google App Engine Java 1.7.5 Native Maven Plugin

Copyright (C) 2010-2012 Google Inc.
Requires Apache Maven 3.0 or greater, and JDK 6+,7+ in order to run.
To build, run
mvn package
Building will run the tests, but to explicitly run tests you can use the test target
mvn test
To start the app, use the App Engine Maven Plugin that is already included in this demo. Just run the command.
mvn appengine:devserver
For further information, consult the Java App Engine documentation.
To see all the available goals for the App Engine plugin, run
mvn help:describe -Dplugin=appengine

Contact

Background

This project was inspired by Motomapia project

June 07, 2012

E-Learning When you don't have time nor money for college

Posted by Ismail Marmoush

Remember the MIT free online courses initiative in 2007 ? well, stanford and harvard joined I guess in early 2010 and after lots of trials starting from academicearth.org, udemy.com and MIT(ocw.mit.edu) here comes Coursera.org one of the best and simple systems for e-learning I've ever seen. I'm not going to write a time wasting review you should go visit the previous links and try them out.

May 01, 2012

Missing beneath a hundred years

Posted by Ismail Marmoush

the perfect ideology for the most unexplained fact is estranged and outcasted. for that those who apply it perfectly are missing, though we know they exist till the fact is inherited and that makes up our tragedy however all we need to do is to be radical with the doctrine and flexible with the rest then we'll eventually meet after or before

"إن الله يبعث على رأس كل مائة عام من يصلح لهذه الأمة أمر دينها"،

April 16, 2012

Three Decision making methodologies in personal life

Posted by Ismail Marmoush

On daily basis one is all of the following three, but on long term is one of them only
1-Lucky and blessed: investigates one thing and he's lucky enough that it's the best for him. he doesn't waste time, but sometimes wonder about other subjects/choices

2-Hardworker and plan freak: investigates (experiment or analyze) every possible subject. then decides what's best for him. he wastes some time, but will never wonder, and is always sure and confident of what he's doing. no room for wrong choices

3-Unlucky and Fool: investigates one subject but unfortunately it's not best for him, he knows there are other choices still foolish and stubborn may be lazy or afraid to try others. Wastes his life doing something he doesn't really like, more years pass the more it's hard to go back and choose, unsuccessful but peaceful and is ok with what life gives him, in most cases he is living with no specific goals and definitions.