Geeky Wallpapers #3 . that’s what i do when i get Bored

Leave a comment

this time it’s not very Geeky :)

feel free to set them as ur desktop wallpaper  but remember to use settings fit  &  black background

if u liked the past ones , then most probably you will like those too

AGain :

i use  black Background to ease elaboration of icons on the desktop

i use white font   i prefer Century Gothic 

and finally any icons/images/linedrawings and  i convert it to White

if you are having a Black line drawing image  , press Cntrl+ i  (in pohtoshop ) to invert the colors

try it by yourself  :) and tag me with your results  @hadyelsahar

check some of my wallpapers posted on  http://vs2010wallpapers.com/

special thanks   special thanks for the  Guys who did the calligraphy

and finally : يسقط يسقط حكم العسكر  :)

Happy 3eed Google Doodle bookmarklet

Leave a comment

Happy feast my dear friends , family , community & strangers :D

i thought that google didn’t publish it’s doodle yet for the feast . so i thought  to make this in case google forgot  to make one :D

1st :download the bookmarklet from here

2nd : drag & drop the picture to the bookmarks bar

3rd : whenever you open Google Give a click to the bookmarklet  :)

or you can skip the following steps and follow the sheep instruction

feel free to share with your beloved friends & families , enjoy the vaccation :)

Building and Consuming Web services in Windows phone 7

7 Comments


this article is further details on my session in #Wp7Spark  it’s an event organized by Microsoft student partners #mspegypt  in Egypt in 3 different governorates parallel  , i was from the Team in Zagazig Governorate the day consists of 10 sessions in round 10 hours  and my session was about Building and consuming WCF services in windows phone 7 platform . in this Blog post we will discuss all what was explained in the session with further details .

you can find the powerpoint presentation  here 

this post doesn’t assume that u have any background on what the services is , so let’s start with a simple definitions

Service-oriented architecture :

simply it’s when your architecture is divided into separated components of code each one have it’s own functionality and they communicate together through a standard protocol of communication  , so these services or components can communicate interoperably also each component can serve multiple clients so it can be reused from different domains

Main benefits from SOA  

  • interoperability : for example a Java based project could use a .net based web service , because the use same communication standard
  • reuse : let’s assume a translator web service written once and could serve   millions of applications ( phone , desktop , web applications )
  • scalability  and agility : the same translator web service when i change in it’s functions or add new dictionaries or languages i don’t need to contact all the clients that use this service to rechange their code . i can just change the service and it’s changed in all clients because they don’t copy the code they only use the service . as long as i keep the same contract

WEB services : 

it’s a standard way for communication between web based applications in two  devices over a network (internet ) using XML , SOAP , WSDL  . XML is used to tag data and SOAP is the protocol of sending data  and WSDL is the web services describing language used to describe the available webservice . unlike normal web applications  WEBservices don’t need a browser also it doesn’t offer a GUI

web services examples :

  • bing search service
  • Microsoft translator service
  • IMDB service
  • AMAZON services
  • Twitter / Facebook services
  • Google API services

some drawbacks of WEBservices :

  • internet connection is required
  • transfer of large data across the internet may affects the performance

WCF services : 

a part of the .NET Framework that provides a unified programming model for rapidly building service-oriented applications that communicate across the web and the enterprise.

WCF ABC : 

  • address : it’s the uri of the service or where you can find the service on the web
  • binding : Specifies how a service is accessible. In other words: how the two parties will communicate in terms of transport (HTTP , TCP ,NamedPipe , Peer2Peer ,MSMQ)
  • contract : it’s simply what the service can do  ( the data and methods that the service can provide )
and now comes the Fun Part

DEMO1 : Building a WCF service:

open microsoft visual studio and open a new project
from the open window choose C# , WCF  and from the left choose new WCF service
after creating the new project  you will find the project explorer file called IService.cs
which is the Interface the service  the “web contract”  mentioned before which contains all the methods and data variables
that the service offers
methods offered by the services their definition is written and  followed by [OperationContract]
to add a new method in the service  add the function definition in the Iservice.cs  file followed by [OperationContract]
and in the file  service1.cs  add the function code inside the service1 class that implements the Iservice1 interface   
now you can run the service this is the landing page of the created  service in which you can find the service address from the service url of written in the page

DEMO2 : Consuming a WCF service from Windows phone 7 :

this will be a sample demo on how to consume a webservice in windows phone 7

the only difference between normal consumption of webservices  in WP7 and in any normal application

is that in normal application the communication is synchronous  ( application calls web services and services responds in the same time to the application )   but in WP7 it’s asynchronous communication ( in which when windows phone calls the webservice the response in not in the same time but when the web service is done with the response it fires an event in the windows phone and we need to write in the event handler the code that needed to utilize the response ) don’t get confused with the above comparison , it will be elaborated in the code below

to consume a webservice , let’s take for an example microsoft translator web service which we can find on this link

http://msdn.microsoft.com/en-us/library/ff512435.aspx

the service uri  (adress) is : http://api.microsofttranslator.com/V2/Soap.svc

now open a new windows phone project

from the project explorer right click the project icon and add service reference

copy paste the service URL :  http://api.microsofttranslator.com/V2/Soap.svc   in the address field and click Go

then change the namespace to  TranslatorService for example  in which all the Generated code will be under this namespace

once you added a reference to the web service now you can create new object of the service client class this object you will use it to call all the methods of the service

so open the mainpage.xaml.cs file and let’s write some code

let’s assume that the program that we are writing will translate  the sentence in the textbox1   in french and show it in a text Block called textblock1 when we click a button called button1

from the toolbox drag  a textbox  textblock and a button  , it’s supposed to look like this  after changing the page title and subtitle and labels of the components

double click the button to handle the on click event

in the on click event  , initialize a new object from the service  by writing the following code :

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            TranslatorService.LanguageServiceClient myclient = new TranslatorService.LanguageServiceClient(); 

        }

after this myclient object is the object that i’ll use to call all the service methods

now we are going to call the translateasync  function to translate  it takes appid , text , from , to , contenttype , category

you can create your own appid or just feel free to use my temp one i’d generated

you can see the function documentation in the service website

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            TranslatorService.LanguageServiceClient myclient = new TranslatorService.LanguageServiceClient();

            myclient.TranslateAsync("5F5CBEB15E4D9847AEB2C93B525EAC9B2A89465", textBox1.Text, "en", "fr", "text/plain", "general");
        }

we know that when the service is done with the response  a translatecompleted  event will be fired so we will add to this event a new event handler  with arguments inside the <>  and  the function name to be executed between the ()

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            TranslatorService.LanguageServiceClient myclient = new TranslatorService.LanguageServiceClient();

            myclient.TranslateAsync("5F5CBEB15E4D9847AEB2C93B525EAC9B2A89465", textBox1.Text, "en", "fr", "text/plain", "general");

            myclient.TranslateCompleted += new EventHandler<TranslatorService.TranslateCompletedEventArgs>(translatecompleted);

        }
  • <TranslatorService.TranslateCompletedEventArgs>  is the event args to be passed to the invoked function when executed 
  • tanslatecompleted is then name of the function to be executed  of the new event handler 

and we will add the function implementation in a separate function

        private void translatecompleted(object obj , TranslatorService.TranslateCompletedEventArgs e )
        {

            textBlock1.Text = e.Result.ToString();

        }

the object ” e ” of type  TranslatorService.TranslateCompletedEventArgs

contains the event arguments and it’s attribute Result contains the results of the invoked method in the webservice

which will be the translated text which then we will convert it to string and display it in the textblock1

the whole file would look like this :

now we are done let’s compile Run and try to see if there will be any bugs

now you are supposed to know:

  • what’s the SOA , and webservices , WCF services
  • how to build a WCF services
  • how to consume a web service in windows phone 7 applcations
imagine the unlimited number of applications that you can build and creative ideas you can generate depending on existing webservices that gives u a lot of capabilities
and always remember those available services when Generating ideas for WP7 applications
for any Questions or feedback don’t hesitate to ask me here or  on twitter @hadyelsahar 
and to keep updated with all Microsoft  similar Events  follow the hashtag #mspegypt and the twitteraccount   @mspegypt  on twitter  or our Fanpage

Wallpapers #2 . that’s what i do when i get Bored

2 Comments

Once Again Bored and making wallpapers :D  

if u liked the past ones then most probably you will like those too 

AGain :

i use  black Background to ease elaboration of icons on the desktop

i use white font   i prefer Century Gothic 

and finally any icons/images/linedrawings and  i convert it to White

if you are having a Black line drawing image  , press Cntrl+ i  (in pohtoshop ) to invert the colors 

try it by yourself  :) and tag me with your results  @hadyelsahar

check some of my wallpapers posted on  http://vs2010wallpapers.com/ 

special thanks for the Guys who Drew Steve Jobs , and Gates :D  

and special thanks for the  Guys who did the calligraphy 

Geeky Wallpapers , thats what i do when i Get Bored

1 Comment

Geeky Wallpapers  , this what i do when i Get Bored

i use  black Background to ease elaboration of icons on the desktop

i use white font   i prefer Century Gothic 

and finally any icons i convert it to B&W

try it by yourself  :) and tag me with your results  @hadyelsahar

Feel free to share those wallpapers with your friends  and put them on your desktop :)

wait for more to be posted when i get Bored :D

if you done a Good  VS or .NET  related wallpapers  you could post them on  http://vs2010wallpapers.com/ it’s a website done by scot hanselman   Gathering all Microsoft related wallpapers check it out :)

sorting algorithms #2

2 Comments

and we are back :) , now let’s continue with  some other sorting algorithms  if you haven’t read part one of this Blog post you can  find it here  Sorting algorithms 

selection sort O(n^2)  : 

Selection sort worst case  \mathcal{}  n^2  average case  \mathcal{}  n^2  best case   \mathcal{}  n^2  disadvantages : it doesn’t ever benefit from presorted arrays 

lets start again with a stupid slow  sorting algorithm  , it’s the selection sort   it’s a very basic algorithm even more basic than bubble sort , it’s logic like when you have a bunch of numbers  and you want to sort them , you take the smallest one  , then the second smallest one , then the 3rd smallest one and so on .

and from here comes the naming  ( selection ) , and every time you have to loop on the array to decide the smallest item  (complexity O(n) ) and you repeat this n times in order to pick  n items ,   so the overall complexity will be O( n^2 )

 

 

 

 

 

why the selection turtle is dumber than the Bubble turtle  ?   

selection sort never takes benefit from  presorted arrays or even presorted elements every time it loops on the total array to decide the minimum rest element to pick it   so if we have a presorted array  which will be the best case 
the bubble sort  will sort it in  n iterations  , while Bubble sort will have complexity of  n^2 which makes it the dumbest ever :D  

_____________________________

Quick Sort  : 

Quicksort  best case  : \mathcal{} n \log n   average case : \mathcal{} n \log n  worst case : \mathcal{} n^2

 

 

 

 

 

 

Quick sort  , who called it Quick ?    

 dunno . maybe it was the Quickest then ?  :D 

kidding :D , Quick sort is one of the most efficient algorithms  it has n^2  as a worst case but it often reaches it’s worst case it’s also faster than those  nlogn algorithms in practice 
 because its inner loop can be efficiently implemented by most architectures ( array , linked list ..etc ) 

actually : Quick sort also  competes with merge sort  ,  that Quick sort could be implemented on Linked lists  and as well as that it takes a little Memory utilization needed usually ( Log(n) )  unlike merge sort wich needs  (n) extra memory when using arrays 

let’s see how does Quick sort works : 

Quick  sort Algorithm :

it is from (divide and conquer algorithms , like the  Merge sort )

  1. Divide : using a pivot ( random number selected )
  2. sort  all the numbers less than the Pivot on  before it  
  3. sort all the numbers greater than the pivot after it 
  4. then you have two arrays one all it’s element smaller than the pivot and the other larger than the pivot 
  5. repeat all those steps recursively on the two arrays 

step  2  and  3  are done as following : 

*we use two pointers , one points to the top of the array  ,and the other at the bottom  and in the middle lies the pivot  move the left pointer until you find an element greater than the pivot ( it should to to the next side )

* on the other side move the right pointer until it hit a number less than the pivot  ( it should go to the next side )

*replace the two numbers

*  repeat those steps until you reach the pivot then the left array will become less than the pivot , and the right is more than the pivot

check this video it elaborates will the using of two pointers : 

 you can check this video for further demonstration  and some code snippets :

_____________________________

 

Heap Sort :

Heapsort  best case \mathcal{} {n \log n}  average case \mathcal{} {n \log n}  worst case \mathcal{} {n \log n}

this post is supposing that you have a pre-knowlege of what’s heap if you don’t , you can check this video  or this  

Heap sort is an efficient  kind  of  Selection sort  ( yeah the Dumbest one ever ) :D  

How ? ? 

in selection sort we used to search for the smallest number in the array  so it was a complex algorithm of complexity n^2 

but in heaps you can easily search for elements inside it .  i needs number of iterations = height of the Tree = log(n) 

so it Gives an overall complexity of  O(nlog(n)) 

this is how it works 

  • Step 1: Build a heap
  • Step 2: removeMin()

the minimum item in the heap will be always the Root of the Heap so we will always remove it and reconstruct the heap again and it will be super easy when you are dealing with a Heap class that have remove Function

removing item from the heap

when you remove the root of the heap you and replace it with the last element in the heap

then you compare it with it’s two children , and replace the root with the minimum of it’s two children

then repeate those steps with the replaced item untill the root is smaller than it’s children

( if you don’t Get this , it’s recommended to revise the Heap removal )

the worst case here is when you compare the item to the Bottom element of the TREE , then you will do log(n) iterations

for removing n items you will have and overall complexity of O(nlog(n)) which is the complexity of the heap sort

comparing to the Selection sort (O(n^2)) it’s a Huge progress, although both based on the same logic

__________________________________________________________________

till now we are Done :)

yet let’s do some conclusions :D
from different searching algorithms above and in the last post we found that

in the average case :

our three heroes will be the : Merge sort , Quick Sort , Heap sort

and our Loosers will be : the Bubble sort and the Selection sort and the insertion sort

in case of a preordered array :

the true heroes will be : the bubble and the Intersion sort for having a O(n) complexity

and the looser will be : the dumb turtle :D the Insertion sort

Finally that most of us before using the Algorithms was using the Bubble sorting algorithm to sort Arrays

so it once again will be the Hero as the Most Famous Sorting Algorithm 

______________________________________________________________

DO IT yourself  :D 

 :  

those people who do folk  algorithmic dances watch their youtube channel 

those Guys are awesome :)

it’s the best practice now to watch their Dances and try to map them to what you’ve  learnt on different sorting algorithms

also follow their fanpage

________________________________

and once again Credit Goes to :

  • MIT opencourse ware :  introduction to algorithms course , with charles and Eric  :)  i recommend to watch the Full playlist  or take a look on  the full course with the slides and exercises  the from the MIT opencourseware website  here  thank you MIT :)
  • thanks to wikipedia for the Amazing animated Gif  images  :)
  • Google for images of  Rabbits and Bunnies  :D

Sorting algorithms

1 Comment

why different sorting algorithms ?

why people are in need of different sorting algorithms ?

there are a lot of metrics to compare sorting algorithms on  like :

  • complexity ( usually it resembles the time taken in sorting ) in the best cases , worst cases & random cases as well  
  • memory usage < some sorting algorithms need to make a temporary locations to store data which needs more memory >
  • adaptability  < there are some sorting algorithms that benefits from the presorted elements even they have high complexity  > it’s not reasonable to resort millions of entries when one element only is not sorted 
let’s take a look how complexity could be a big deal : 
if we have 3 sorting algorithms  n , nlogn , n^2  

n

   10

   100

 1000

 10000

 100000

 10^6

  10^7

  10^8

nlogn   

   10       

   200        

 3000  

 40000   

 500000  

 6 X 10^6  

  7 X 10^7 

  8 X 10^ 8  

n^2

   100

  10000

 10^6

 10^8

 10^10

 10^12

  10^15

  10^16

if we used the 3 sorting algorithms above to sort 10^8 elements   :

if  the first algorithm of complexity n  took 27 hours  

the second one of complexity nlogn  will take 8 times the time above 222 hours  ,

But the third algorithm  could take about  325114 YEARS  !!!!!!!!! 

Complexity Chart

before Going through different sorting algorithms , i wanted to share a Funny Video that demonstrates 

3 different sorting algorithms :) , it will ease explanation of them afterwards . 

Bubble sort  (  complexity O(n^2 ) ) : 

Bubble sort best case complexity \mathcal{} n  average case complexity \mathcal{} n^2 worst case complexity  \mathcal{} n^2 advantages :  Tiny code size  

it’s a simple sorting algorithm to write it’s code yet it’s  very complex algorithm , it could take days to sort few millions of elements

even  Obama Know this  :D 

it depends on 3  simple steps :

 repeat those 3 steps until the array is sorted : 

  1. loop on the array 
  2. compare each to consecutive elements , and switch them if they are not sorted 
  3. go to step 1   

watch this video , it explains  a lot  ( you can skip the other kind of sorting ) 

you can check it’s code 

void bubbleSort (Array S, length n) {
 boolean isSorted = true ; 

while(!isSorted) { // repeat until it's sorted isSorted = true; 
for(i = 0; i<n-1; i++) { // step one loop on the elements 

if(S[i] > S[i+1]) // compare each two consecutive elements 
 { 
int temp = S[i];
S[i] = S[i+1]; 
S[i+1] = temp ; 

isSorted = false; // if all elements are sorted the flag wont change 
 } 
}
}
n--;
} 

the best case here is when the array is already sorted or  consecutive elements are only unsorted  so it will be sorted by one while  loop only so it has complexity  

the worst case  here will occur if the array is reversed  , you will need to loop in the while loop for n times so it’s complexity will be n^2

insertion sort  (O(n^2)) : 

Insertion sort best case  \mathcal{}  n  average case  \mathcal{}  n^2  worst case   \mathcal{}  n^2

so it’s a  basic algorithm like sorting a pile of cards ,from left to right  you pick a card and insert in into the right place then the preceding another card  and so on till the pile is sorted

take a look on this video

yet another way of stupid slow sorting  algorithm :D   the only difference than before is that Obama forgot to mention it  kidding :D

actually insertion sort is faster than bubble sort when dealing with presorted elements in the array  , how ??

imagine you are handling the element that already in sorted in it’s place ,

all that you need it to compare it to the largest element in the left sorted array to recognize it’s bigger than it and it’s in the right place

Merge sort  ( O(nlog(n))  ):

Merge sort Best case  n log (n)  average case  n log (n)  worst case  n log (n)  advantages : too fast compared to n^2 complexity

it’s considered as a fast search algorithm and least complexity , it  depends on a basic rule , is that sorting and merging small arrays is too much faster than sorting large array .

it uses 3 basic rules :

  • arrays of one element only are already sorted
  • divide any array into two halves and so on till you have  n arrays  each of one element
  • merging each two consecutive arrays  in order //  so if we need to merge those two arrays in figure we will need to compare the first elements in each array then drop down the smaller into the new array

then compare the next two selected elements  and so on till the whole array is merged

take a look on this video :

so why it has complexity of  nlog(n) ??? :

 each level   consists of n elements  ,  merging depends on comparison of each to elements  so merging each  level will have complexity of  O(n)   and since we have  log(n) levels  , so merging will be repeated log(n) times
over all we will have complexity of  O(nlog(n)) .

…to be continued with more Sorting algorithms  ( quick sort , selection sort , heap sort , BST sort  )  =)

click here for part two 

thanks goes to :

Social Media Tips – develop a social Media strategy

Leave a comment

lots of  startups with  small Business models , individuals companies , small brands  began to be aware with social media  their importance and their role

in fact social media is something too encouraging to start using  as it ‘s totally free and it always yields a promising results just the problem occurs when people starts messy to execute random tactics feeling that it’s  the only thing to do like a fan-page and twitter account  starting to reply , share and tell people to share the page of follow your account

Most of the cases here start with rapid slope then in a short time they reach their  peak and  really it’s a inconvenient  peak then to a saturation state no new followers , fans nor  interactions .  the momentum Goes and back to where they had started

if you are seeking to build a convenient remarkable Social Media existence that grows day by day to enrich your Brand name you must first tart with a Strategy 

and here’s some of the steps that you should take inconsideration when developing your strategy

1- define yourself : 


some people calls it the “Elevator Pitch “ who are you what do you do targeting whom in less than a tweet “140 characters  ”

- – - – - – - – - – - – - – - – - – - – - – - – -

2- know your audience :

this seems to be repetitive but trust me it’s too important to know your audience which segment are you speaking to . then adapt all your actions , offers promotions event the Tweets to these segment , reach them but not too low  , act wise but not too high

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -

3-  your Brand is your Trademark :

always remember to have a unique brand , a significant edge that you compete with something to be remembered with , in every single word remember your Brand , in every action taken measure how this will benefit your brand

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -

 4- seek for proper social media tools :

once you knew your audience it’ll be a lot easy too pick up social networks that you will use or start with this situation is totally up to you , also it’s not a must to start with them all  you can start a successful strategy with one or two then starting to engage new ones and here’s a small tips :

  • use FACEBOOK  for documenting  info , pictures , campaigns promotions  , sharing Materials , news
  • use Twitter   for events FEED and more personal Stuff , networking and engagement to unique Bloggers , Celebs collecting allies 
  • use Flickr  For uploading pictures Flicker is a good tool for documenting  professional neat photos of  your events / campaigns / work environment .  you can always share collections on facebook and twitter 
  • use  YOUTUBE for videocasts , promotional adds and Campaigns videos . 
  • use Linkedin  for a professional Work profile or your company and also you should consider initializing a linkedin group of your company
  • Start Blogging :  initialize a Blog engage all your thought leaders in , write a rich useful content for your audience not Promotions and adds , post video casts , webcasts  and articles about related topics to your company

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -

 5- dedicate time to plan your content  (content planning ) : 

once you started believing in social media you must then dedicate time to it you can’t regard it as a thing that you could do by the end of your day 

research , research and research . plan what you will post to audience , are seeking  remarkable audience ? start posting topics that are interesting to them .  as we said before it’s not about Questions and answers on the wall .

campaigns :   usually campaigns , promotions & competitions like (best retweeter , the coolest picture …etc ) are healthy for your business  and creates more interactions on your page

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -

6- Define metrics :Tape Measure

it’s one of  most  important points .Metrics must be set to measure your success  ( likes, tweets , retweets , mentions , followers , interactions  , +ve comments , shares , pages visits , contect uploaded  , interaction , +ve feedbacks )

use social media services that offer statistics like

  • facebook insights  is a super tool that gives statistics  and too detailed statistics about interactions ..etc
  • Klout.com   is a Good tool to measure your influence and Twitter behavior and character
  • Social mention , What’s the trend  are good tools to collect statistics about a certain topic , keyword , #hashtag that you created

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - -

7- Set GOALS :

actually this point should to be in the top but i preferred to be here because you can’t set goals without even set metrics  to well define your Goals .

those Goals must be SMART Goals and ofcourse you can revisit your goals from time to time to edit in some or higher your ceiling some of the common Goals :

  •  Numbers  of followers , Fans   within this time frame
  • engagement of celebrities
  • Gathering  allies from though leaders and public speakers ( who , how many ?  )
  • Branding your self
  • getting a wide attention from people ( other companies . Bloggers , MEdia …etc )
  • a good positive impact on people  ( +ve feedback numbers )
  • know your defects ( how many successful feedbacks did you get and took it in a professional way )

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - -

8-  Don’t spray and pray  :  

social media depends on interaction and conversation let it be so  engage with users talk to them  create your top followers and top fans let the give you feedbacks and advices always listen to them and work on your faults , then you will gain audience respect interaction and will have a +ve impact on them

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -

if you think this is useful share/tweet  it with your Friends , startups and entities you know 

also one of the Books that i recommend to read is  :  Twitter marketing for dummies by  Kyle Lacy @kyleplacy 

- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -

now it’s your turn to speak-up :


what social media tactics do you think will be useful when  you  first engage social media ???
- – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – - – -

NameSpaces “using namespace std “

Leave a comment

actually most of us when beginning to write a C++ code for example we write

using namespace std ;

but most of us doesn’t recognize what does that mean and what’s the Namespace  so this topic basically will talk about namespaces

what’s the NAMESPACE :

it’s and entity that can group inside it a number of classes , object and functions . it’s name is divided into two section ” name ” , ” space ” so actually it’s a space designed for the name of the variable , to prevent the collision of names , suppose you have a function called connect ()  and you want to make a newer version of it inside the same File , and you don’t want to go through alot of naming Connect_new , Connect_newer  …etc so we assign a namespace for  each one

to access elements inside the name space we need to use the operator  ” :: ”  ;

for example

namespace  mynamespace
{
int x , y ;
} 
void main () {
mynamespace::x ;
mynamespace::y ;
}

multiple name spaces in the same file :


more things that make naming collision :

if you are including two header files, those header files have a common function naming inside it which function will get  executed when called ?  acutally nothing will get executed and and error appears calling

 error C2084: function 'connect()' already has a body

the using operator :

using operator is a keyword that introduces a certain namespace to a specific region so when you write

using namespace mynamespace  ;

you can call connect function without using the operator ::

mynamespace::connect () ;
using namespace mynamespace ;
connect() ;    // it should work now  =)

Namespace STD :

all standard libraries inside C++ standard library lies in the name space std , so we  always write the name space std to call the attributes at once  instead of writing

std::cout<<"hellow world " ;
std::cin>> x ;
using namespace std ;
cout <<"now no need to use std:: " ;

that’s it , this is acutally every thing about the explanation of ” using namespace std ; ” for any further questions  don’t hesitate to ask here or DM me  i always check my DMs  @hadyelsahar

Linked Lists in C++

Leave a comment

First of all :

working with linked lists requires a good knowledge about pointers so if you still finding pointers is a hard topic you can practice out this topic
linked listsLinked lists are type of data structures :

In computer science, a linked list (or more clearly, “singly-linked list”) is a data structure that consists of a sequence of nodes each of which contains a reference (i.e., a link) to the next node in the sequence.

source :wikipedia

so the linked list is a type of datastructure that can stand alone or used to create other data structures it consists of Nodes and each node has the reference to the next node ie : “linked to it ”  until the final node where it doesn’t have anything to point to

you can Create a linked list using Classes or Structures but we are using structure and may it be a good thing just to remember how to deal with structures

here’s a little example about how to initialize a Linked list Item and fill any of it’s data

#include <iostream>
#include <string>
using namespace std ;

 struct  listItem {
 string  name  ;  // name of the item 
listItem * next ;  // pointer points to the next node 
 } ;

void main (){
listItem * head ; // pointer will always points on the first node
listItem * myListItem ;   // creating a new instant from ListItem  
myListItem.name = " Greetings Egyptian Geeks "  ; //filling it's data 
cout << myListItem.name ;
head = &myListItem ;  // making the pointer to the adress of the First Item
}

download from here

simple enough !! , it’s a normal Structure  ,  So let’s Move to the NEW part !

Adding New Item to the beginning of the LinkedList

listItem   myListItem2 ;   // creating a new instant from ListItem 
 myListItem2.name = " add me to the beginnning  "  ; //filling it's data 

 myListItem2.next = head ; // making it point to the Next item -that was first- 

 head = & myListItem2 ;  // making the Head pointer points to the new head one

Adding new element to the End

mylastListItem.Next = &newLastItem ;

Addin new element in the Middle

we have two list items listitem1 and listitem2 we want to put middleListItem in the middle we create a new temp pointer to save the adress of listitem2 in it  - as we can’t access it unless by  listitem1.next

temp = listitem1.next ;
listitem1.next = & middleListItem ;
middlelistItem.next = temp ;

Delete elements after a specific number of nodes (n):

temp = head ;
For( i =0 ; i< n ; i++ )
{
temp = temp->next ;  //  hint : there's no something called *temp.next
}
temp = Null ;  // we usually check Temp.next = null then this is the final node

of course this topic doesn’t cover all the operations done on the linked lists , it’s all about the concept but other operations don’t contain any new concepts it’s a Mix between conditions and Pointers

for any suggestions or adds , feel free to post below  or DM me on twitter @hadyelsahar i do always check my DMs

Older Entries

Follow

Get every new post delivered to your Inbox.

Join 476 other followers