Zicutake [Audio]

USAComment.com
Zicutake USA Comment | Search Articles










Zicutake Formation University:

USAComment.com | Search Articles of Onion.to
Search Articles of Onion.to:

Shorten that long URL into a tiny URL:
Example, enter the url: http://zicutake.usacomment.com = Tinyurl.com/hox5dyn


USAComment.com | TALK

 
Tweets by Zicutake


SEND YOUR HISTORY:

Contact Us

Sunday, July 26, 2015

Bad Decision



I live with a semi long term boyfriend, I keep making him move out and always end up letting him move back in after his pleading to treat me better and get a job, yeah, 28 years old and sits up on the couch all day doing nothing and when I get off work, he wants to go out to eat and then to the clubs till late on a work night for me.


We have been together for nearly five years, I had hoped Brad would change and grow up, get a job and contribute to the relationship. He keeps asking for a joint checking and savings account but I put my foot down and told him there had to be joint income before that would happen, I would be at work while he drained my bank account to nothing if I were to do that.


When I kick him out he goes to his parents’ house and eats them out of house and home while refusing to get a job, in the past his dad tried to pay me to take him back, he called it “helping to pay Brad’s share” but it was really to get him out of the house.


Driving home from work I was about at my last straw with him, I loved him and he is a sweet guy, very good looking and all but I think that was his downfall. All he had to do is smile his charming smile at about anyone and they would give in or do what he wanted, it seems the “pretty” people really do get more out of life.


I walked in the door from the cold ice and blowing snow to fine brad sitting on the couch naked, as usual.


“Hi Joey, how was work today baby?” Brad asked.


“Well if you are that interested in it, maybe you could get a job and find out for yourself.”


“Joe, please don’t fight with me, it is always the same, always about me getting a job, there are no jobs out there, and I have tried so hard.”


“When was that? You have not gotten dressed at all in three days, you stay in the house naked all day long.”


“I try to give you some eye candy after you work so hard all day and all I get is attitude.” Brad said.


“Come here Brad, I want to show you something.” I said taking him by the hand and walking him to the front door.


Brad looked out the open door to the white frozen tundra.


“What is it baby, did you buy me a new car?”


I pushed Brad out onto the front porch naked and closed and locked the door.


“I am over this and over you, you need to go and NOW!” I yelled through the door.


I went upstairs and took his clothes pushing them into a suitcase, the whole time he was knocking on the door telling me that he was freezing out there, I scooped up his cell phone and the keys to his old Chevy after taking his house key off of the ring, I opened the front door and pushing them out to Brad.


He stood there in the 20 degree weather, his cock had shriveled to a couple of inches and his balls pulled up tight to his body.


“Baby, please, don’t do this to me.”


“I have given you all the chances and you do nothing but take advantage of me.”


“Joey, I’m freezing out here.”


“Sorry Brad, but you have done this to yourself, now it is time you go find your way in life and stop living off others, I am done being an enabler.”


I looked out the peep hole on the door to see this sexy looking man freezing on my porch, his nipples tightening from the coldness to the size of dimes with the tips sticking out hard, it was all I could do to stay strong.


Brad grabbed the suitcase and keys off of the porch and ran through the snow to his car before trying to get dressed, I bet that vinyl car seat was cold on his bare ass, he cranked the engine for a while and the old car barely started.


He called the house phone but I would not pick up, he left a message saying he was sorry for whatever I was mad at and could he please come back inside?


He still did not even get why he was out again, he just wanted to say he was sorry, smile and give me a blowjob and make things better.


I called his parents and let them know that he was probably on his way back to their house and that I would not be taking him back in. His Dad yelled for his wife to pack a bag quick, they were leaving town for a few days before Brad get there move back in and take root.


I can’t blame them, if fact an out of town trip sounded great, I had been avoiding a vacation for the last year or so because I could not give that to Brad, rewarding him with a great vacation when his life is already a holiday.


I called my boss knowing that he would still be at work.


“Hey Jim, I know you like more notice, but something just popped up and I would like to get out of town for a while and take some vacation time, you think that would be okay?”


“Sure Joey, you always do a great job and I don’t mind the short notice at all, enjoy yourself.”


“Two weeks would be great, that would put me coming back at the end of the month.”


“No problem.”


“Thanks Jim, I really appreciate it, more than you could know.”


I about ran to the computer and started looking up places to vacation. Vegas, Mexico, Canada, hell, it’s probably colder in Canada than here. I needed some place warm, the Bahamas, yes, I booked a ticket for the next day, it was not cheap without notice but I didn’t care at this point, I booked a hotel that had a little gay rainbow flag on the web site and said “gay resort” and had tons of beautiful pictures of white sand, tan men and turquoise water.


The next day I drove to the airport long term parking garage, it was freezing out but I took off my coat and gloves, leaving them in the car, I didn’t want to carry them to the tropics.


I got on the plane and had a grin ear to ear, settling into the seat when the flight attendant walked by and smiled at me.


“I’m going to the Bahamas.” I said.


“Yes sir, we all are, it is a non-stop flight.” She said with a wry grin.


“Oh, well now I feel silly, I just haven’t had a vacation in a long time, bad relationship just ended and I am free.”


“I understand all too well.” She said as she walked on down the aisle.


The plane was about to taxi out onto the runway and was far from full, the Captain was making announcements about the flight time and weather in the Bahamas when the flight attendant tapped me on the shoulder.


“Come with me sir.” She said.


I gave her a quizzical look I stood up and followed her, beyond the forbidden curtain into first class.


“We have a vacant seat up here and I thought you might enjoy this better.”


I about kissed her, this never happens to me and getting bumped to first class on this long of a flight, well it was wonderful.


I saw the flight attendant talking with the one that serves first class, I am not sure what she said but I was pampered the whole flight with snacks, drinks and the wider seat was wonderful.


She came to check on me towards the end of the flight, I could not thank her enough, and I explained a generic version of breaking up and needing this vacation so very badly. She smiled and patted my shoulder before returning to the rear section of the plane.


Stepping off of the plane into the tropical warm humid weather was insane, it felt so good. I claimed my bags and grabbed a taxi to my hotel, the drive was nice, and I was looking out the window at palm trees, beaches, watching the tourists and locals going about their day.


I stepped up to the hotel registration, a very tan staff member got me checked in and called for a bellhop over to assist me, taking my bags and showing me to my bungalow near the beach.


“As you know this is an all-male gay resort, we offer a clothing optional pool and the beach between the markers, you will see it when you head down that way, but if you have any questions, please call the concierge desk.” The bell hop said as I tipped him.


“Wow, I didn’t know about that, sounds intriguing.”


I closed the door and put my clothes away, it was time to put some board shorts and a tee shirt on, I stripped and rinsed off in the shower before looking into a full length mirror. Not bad, I thought as I looked at my naked reflection, nothing like Brad but decent looking at least.


Why was I thinking of Brad, fuck, I needed to get him out of my head. I had not turned on my cell phone back on after the flight, and tossed it onto the bed, I’m on vacation from the phone too.


I walked out bare foot to the gift shop in the lobby and bought some flip flops, sunscreen and sunglasses.


“No bag needed, just cut the tags off please.”


I dropped the flip flops onto the cool tiled floor and stepped into them, tucked the tube of sunscreen into my pocket and walked out into the sun as I put on the sunglasses.


Wow, I thought, I never want to leave here, it is truly paradise. And to think just 24 hours ago I was fighting the snow and icy roads to get to work.


I walked over to the beach bar, it was typically tropical looking with thatched palm roof and plenty of bamboo of course, just what I needed.


“What would you like to drink?” the shirtless bartender asked.


“Surprise me, whatever you think would be refreshing.” I said with a smile.


Within moments the bartender gave me a traditional red fruity drink with lots of rum, a pineapple wedge and umbrella stuck on the side. After the first sip, I knew I would drink several more of these.


Walking down to the beach I came to the marker that said “clothing optional beach” to the left, “clothing required” to the right with a tiki-tropical arrow pointing each way.


I walked to the right, for now anyway, walking down to the water realizing that there was really no boundary between the two beaches after the markers. Looking to the left I could see several naked men, some playing Frisbee while men splashed in the water or sunned on towels.


I walked in the ankle deep water and ventured into the clothing optional side while sipping my tropical drink. A guy or two gave me a nod as I passed, it was refreshing seeing naked men out having fun in the sun.


“Drop your boardies and enjoy.” A blond haired guy with an Australian accent called out.


“My what?” I asked.


“Your Boardies, board shorts, get naked man! Looks like you’ve got allot inside them.”


I looked at my crotch and smiled before pulling out the tube of sunscreen. We both laughed, he saw the thick tube and thought it was my cock.


His accent melted me, he as a good looking guy in a general way but it was his outgoing personality that caught my attention.


“I didn’t bring a towel or anything with me, was not planning anything but a quick walk on the beach.” I said.


“What’s your name mate?” I’m Jeff.”


“My name is Joey.”


“Like a little roo?”


“Yeah, I guess.”


“Well you gonna give it a burl?”


I looked at him as I had no idea what he meant, it was English but still.


“Get naked man, come drop your things at my towel.”


We walked over to his towel, he had rented a large umbrella to give respite from the sun. I handed him my drink to hold while I pulled my tee over my head tossing it onto the sand before unbuttoning my shorts and letting them drop alongside my shirt as I stepped out of them.


“Damn, you are pale, but sexy, I might crack a fat.”


“What? Your gonna crack a fart?”


“No, crack a fat, you know, woody, hard on…” He said laughing.


“Let’s get into the water, I’ve done nothing but get my feet wet so far.”


We walked into the water about waist deep before Jeff started playing and splashing me, I dove onto him dragging him under the water, and it was thrilling to feel his naked body against mine as we played in the water.


I jumped onto Jeff’s back and rode him like a seahorse through the water while we both laughed.


Jeff dumped me off into the water and ran for the shade of the umbrella with me right behind him, the air was hot so there was no real need to dry off but Jeff took a towel and dried the water off of my face before leaning over kissing my lips.


I have never gotten into casual kissing or sex but I felt like I need to be healed of Brad, I kissed Jeff as I held the back of his head, pulling him in tightly.


“I am gonna burn to a crisp out here, would you put lotion on me please?” I asked as I handed Jeff the suntan lotion tube.


I turned over backside up, Jeff squirted some lotion onto his hands before rubbing it into my back and shoulders. He was massaging me more than just adding sun protection, I let him go at it, giving a moan now and then.


He worked his way down my back until he got to my ass cheeks, he rubbed lotion onto them after he moved down sitting on my lower legs. His fingers roamed into my ass crack as he pushed the mounds apart, I knew he was getting a good look at my asshole as I could feel his thumbs pulling the skin open and in a moment his fingers caressed my sphincter and I was surprised to feel a finger slide inside my puckered hole. He moved some and parted my legs a bit as he played inside me.


“Roll over mate, time for the other side.”


I hesitated for a second when he gave my side a tap, I rolled over showing that my cock was hard as ever.


“I’ve cracked a fat.” I said with a giggle.


“I see.”


Jeff looked around and found that no one could see us except for a couple of guys that were well out in the water playing together. Jeff dropped down and took my boner into his mouth, it took my breath away, I almost shot a load right there, it felt so good, so right, out here in the heat of the Bahamas listening to the waves crash.


Jeff sucked me for a couple of minutes before he took his hand to my stiff member, jacking it as he watched from only a few inches away. I arched my hips some as the feelings of a climax got closer, Jeff returned his finger of his left hand into my ass, finger fucking me while he jacked me off.


My body was tense, and starting to move around as the cum got closer to flying free, Jeff fingered my hole faster and faster as I let my ejaculate go, I moaned loudly as my cum flew onto my chest and lips.


I laid back, breathing hard, Jeff slid his finger out of my ass, leaned in and kissed my lips as he tasted the salty cum that had splattered onto them.


“Fuck me, that felt good.” I said in a low whisper.


“Oh, you want me to fuck you too?” Jeff said with a smile.


“Out here?” I asked with hesitation.


“Well, no, I had thought it better in my bungalow but I could give it a go out here.”


Jeff spread some lotion onto his uncut prick, adjusted the umbrella so no one up beach could see us and slid his cock into my ass in one push. It felt as if he had the umbrella pole in my ass, his cock was bigger than I was used to but felt great.


Jeff lifted my legs tucking my knees back toward my chest while plowing my hole, he talked dirty the whole time and his accent was so hot, I didn’t always understand what he said, but got the drift that he was enjoying himself.


I looked into his face, the beads of sweat on his forehead grew as he fucked me out on the sand, his nipples had hardened and his chest was reddening and I knew he would cum soon. My fuck hole was on fire, as he sped to full bore while he shot his load. He was more of a vocal than I had expected, and I think half of the resort heard him as he shot his jizz into my ass.


He fell forward on top of me, out sweat mixing between our chests, Jeff took my hand helping me up and ran for the cool water to clean off the sweat and cum, his cock was still mostly hard and bobbed as he ran into the water.


“Damn, that felt good, I really needed that.” I said.


“Yeah mate, it was good, I feel like a nap in the coolness of my room I reckon, want to join?


“Yeah sounds good.” I said as I walked out of the water.


“I love your accent mate.” He said.


“Mine? I don’t have one.” I replied.


“You do to me, say the oddest things too but I catch allot of it.” Jeff said as we collected our belongings and put our shorts back on.


We got into Jeff’s room, pretty much the same as mine, we stripped off our shorts, rinsed off the salt water in the shower and cuddled in bed and Jeff fell asleep in moments. It felt good to be with Jeff, he is fun and carefree, I bet he had a job back home too, I ran my hands over his chest while I spooned him, and I let my hand rest on his cock and fell asleep too.


I woke up to Jeff’s movement, I looked into his handsome face, drinking in his good looks and the excitement of being with someone new.


“Are you here alone?” I asked.


“Nah, my boyfriend will be back anytime, he was off at the gym, a bodybuilder.”


I started to jump up from the bed when Jeff, laughed.


“Just pulling your chain mate, I am on holiday alone and I am single.”


I punched his shoulder.


“Bastard.”


“What are your plans while in the Bahamas?” Jeff asked.


“I have no idea, I just knew that I needed to go someplace warm and get away from home for a while mostly.”


“There is a gay cruise tomorrow evening, a sunset dinner cruise, would you like to come?”


“Sure, where do I get a ticket or boarding pass?” I asked.


“I will take care of everything.”


That evening we went to dinner together having a seafood feast loaded with lobster, scallops and huge fried prawns, I drank four of the red tropical drinks and was pretty well on my lips before the walk back to my room, Jeff helped steady me and get me inside and to my bed.


I thanked him for the help, he gently pushed me back onto the bed, took off my flip flops, slid my shorts off and sat me up to peel off my tee shirt. I kissed him while his lips were close to mine, I was now naked on the bed while Jeff looked me over.


“What a pretty sight.” He said with a laugh.


I was not used to drinking that much rum and was talking all silly and slurring a bit, I wanted him to stay with me, to feel the heat of his body against mine.


“Get naked Jeffie, stay with me tonight.”


“I think you’ve had too much punch, I will stay but I don’t thing sex is a good idea.”


Jeff stripped and stood alongside of the bed, I reached out and took hold of his foreskin that hung past the tip of his cock, running my finger inside between the foreskin and his cockhead.


“You like my foreskin Joey?”


“Yeah I love it.”


I pulled at his foreskin and could see the big head of his cock inside the skin.


Jeff straddled my thighs and put his cock tip to mine and pulled his foreskin over my cockhead slowly jacking them together.


Both cocks were hard in no time, it felt great having his skin over my cockhead and his pre cum getting everything inside the skin wet and slick.


Jeff jacked both cocks until he shot his load, the foreskin could not hold all of the hot jizz and it leaked out all over my cock but he kept jacking and within moments I could not hold back any longer, my cum blasted against his cockhead with our cum mixing inside his double cock filled hood.


I fell asleep and woke up in the morning to Jeff spooning against my backside with his arm over my chest, I felt safe and good in his arms. Jeff must have cleaned us up last night as there was no dried cum on me.


We went to breakfast together before Jeff excused himself, he said he had things to get ready for the cruise and would meet me back at my bungalow at seven PM.


I walked around in town a bit and bought a few things including a couple of rum cakes and a subdued, semi-tasteful tropical button down shirt for tonight.


I went to a small aquarium checking out the fish and displays before heading back to my room to change for the beach, this time I went right to the clothing optional side, slipped out of my shorts and splashed around in the water some, there were not too many men were out on the beach yet today, it was very hot so I decided to walk back to my room and take a shower and a short nap.


In the shower I let my hands roam across my soap covered chest, one went to my cock giving it a good squeeze and the other to my ass, running my fingertips into my crack, I lifted one leg to the soap tray and fingered my ass, it felt so good.


My cock jutted straight up next to my body, I jacked off in the cool running water as I fingered my hole, I wanted Jeff’s hard cock in my ass so bad, my eyes closed as I blew my jizz into the air and onto the wet shower floor.


I woke from my nap about an hour later, the room was dark and cool compared to the hot outside temperature. I had little information about the cruise so I figured that wearing the tropical shirt I had bought in town earlier along with some loose fitting slacks would be good for casual or semi dress wear.


I walked up to the tiki bar and ordered a red punch drink and a small cheese and bread plate appetizer to hold me over until dinner. A few guys that I had seen on the nude beach were sitting nearby were drinking the same drink as I was, they spoke loudly and seemed to be having a good time, one came over and sat next to me.


“Hello, my name is Philip.”


“Hey Philip, my name is Joey.”


“I saw you out one the beach earlier, I think you are very sexy.” Philip said.


“I think you are very drunk because I am not all that sexy.”


“What are your plans for tonight?” He asked in a slight slur.


“I am going on a gay sunset cruise with a friend.”


“There are no gay sunset cruises here, I have been coming here for years and I would have known about it.”


“Whatever, that is what I have been told.”


“You must have misunderstood, you should come with me back to my room, we can have some fun and play around, what do you think about this?”


“You should go to your room and have a cool shower and start without me, I “will” be going on a cruise in a few minutes.” I said with a wink.


“I will and when you find that there is no cruise, you may join me at 107, it is just down the path.” Philip said as he slid off the bar stool and reached around from behind hugging my chest with his arm.


‘Okay Philip, sounds like a plan.” Knowing that I would never go to his room.


I went to my room and waited only a couple of minutes when I heard a knock at the door, it was Jeff, and he was dressed similarly to what I had chosen for the evening. I leaned in giving him a hug and a slight kiss.


“Let’s head to the dock, the boat must be there already, I am anxious to get out on the water before the sun sets.” Jeff said with a smile that warmed my heart.


We walked along the paths through the hotel property to the sparkling water and down to the dock, there was a yacht tied up to the cleats, but no one in sight on the boat.


“Where is everyone?” I asked.


“The captain must be inside, it is pretty warm out here.”


Just as we stepped onto the dock, a crew member came out, welcoming us aboard.


“We will be underway momentarily gentlemen.”


I looked at Jeff with puzzlement.


“Where is everyone?”


“What do you mean? this is a sunset cruise, we are gay and well.”


“Did you arrange the cruise just for the two of us?” I asked.


“Yeah, I kind of did, I wanted to spend some quiet time with you.”


“Wow, well let’s get this night started then.” I said pulling Jeff close, kissing him deeply.


The boat motored away from the dock as we sat on the deck chairs watching the shoreline grow farther away.


A male crew member came by with drinks and appetizers while we watched the sunset grow pink and to a final dark orange reflecting up into the clouds before it passed beyond sight, the sea breeze was wonderful. After dark we moved inside the cabin where the crew served us a feast of lobsters, steaks, shrimp and roasted potatoes, we were so full I waved off the platter full of sweets they brought to our table.


We talked and laughed so much my sides hurt, Jeff smiled and touched my thigh while I told him about Brad and all the heartache he had caused by not wanting to grow up and accept responsibilities, he especially laughed when I told him how I locked him out on the porch naked.


At dockside we thanked the crew and walked back up the walkway to the hotel.


“Please come stay with me tonight” Jeff said quietly.


“I would love to, you have been a charming and wonderful man, and I would like to spend as much time with you as I can until I go home.”


Inside Jeff’s room we stripped naked and slid into his bed dimming the lights and turning on the ceiling fan for a cool circulation.


“About holiday ending, mine ends soon, tomorrow is my last day here, I have to get back to Australia.”


My heart stopped cold, I guess I had to know that this would not last forever but I hoped it would be closer to when I have to leave.


“I have been here only a few days, is there any way you can extend your trip?” I asked.


“I have a better idea, why don’t you fly to Australia with me and stay with me?”


“That sounds wonderful but I don’t think I could afford a ticket that far without booking with plenty of notice, even then it is expensive.”


“Leave it to me.”


“No, I can’t let you pay for my flight, it is out of the question, Thanks, I really appreciate the offer but I could not take it.”


“I am going to book the flight for you and if you choose not to take it, well, it will go unused and a loss. Just do it, it would mean a lot to me to see you and show you around my home town.”


His sexy accent melted my heart and the thought of not seeing him again did not sit well with me.


“Whatever you say.” I said as I snuggled my head into his shoulder.


The next day we hit the clothing optional beach, played naked in the surf and lay out on the beach towels getting plenty of sun. I went to the hotel desk and told them I was cutting my trip short and would be checking out in the morning.


The flight to Australia was long, but it seems that Jeff was accustom to flying first class and for my second time in my life, I was enjoying the perks of the wider seats and being spoiled with special attention from the flight attendants. I reached over taking Jeff’s hand into mine and looked into his beautiful eyes.


“Hi.” I said with a smile.


Jeff smiled and winked at me.


“Do you have kangaroos running around your yard?”


“No, the dingoes ate them all.” He said with a belly laugh.


I blushed and poked Jeff in the ribs.


“I live in the city, if you want to see dingoes, we can go bush bashing if you like.”


“Bush bashing, is that anything to do with lesbians?”


“No, four wheeling out in the bush, looking for wildlife.” Jeff said with a chuckle.


“Sounds cool.”


We landed at Tullamarine airport in Melbourne, it is a huge airport, and we hustled to baggage claim where we came across a driver holding a sign that had Jeff’s name on it, we collected our bags while the driver used a trolley to get them to the car.


We piled into the backseat and letting the air conditioning cool us from the heat, was a bit odd having opposite seasons here. I watched out the window taking the bustling city in, it seemed familiar as any big city, yet it has that Aussie flavor.


We got to Jeff’s apartment dropping the bags in the living room, we were exhausted from the near 20 hour flight.


“Let’s grab a shower and hit the bed for a few hours.”


Looking around, this is no normal apartment, everything seemed pretty expensive and upscale, I followed Jeff to the bathroom and stripped my clothes off. We both stood in the large walk in shower letting the cool water splash over our bodies. I pulled Jeff tight against my body and kissed him, his hands roamed to my ass cheeks pulling them apart letting his fingers play inside my ass crack.


We dried off and slipped between the white sheets of Jeff’s bed, he scooted over against me and kissed me.


“See you in a few hours, if you wake up before me, help yourself to anything in the kitchen, there are cold drinks in the refrigerator, but I would rather you wake me when you get up.”


We cuddled as we fell asleep, Jeff woke up first and was busy on his computer catching up on things, I walked behind him slipping my arms around to his chest hugging him and kissing his neck.


“Hi baby, how was your sleep?” Jeff asked.


“I slept great, what are you up to?”


“Just doing a little work, I can do a little here and there and not have to go into my office for a few days, just call my staff each day.”


“Ohhh,, your staff, how nice, how many staff do you have in your empire?”


“A little over 1800 give or take.” Jeff said with a smile.


“Oh my God, what do you do for a living? Run a drug running business?” I asked in a joking manner.


“I own the largest chain of steakhouses in the country.”


“Don’t tell me you own the Outback Steakhouse chain.”


“No mate, that is not a real Aussie steakhouse, I’ll take you out to one tonight for dinner if you like?”


“Hell yeah, I would love to, it sounds great.”


That night Jeff had a car pick us up and drive us to dinner, the manager met us at the door whisking us past the tables full of people to a nice booth in the back.


“Great to see you Mr. Williams, please have a seat, Michael will be right with you, but first, may I get you each a drink?”


Jeff looked at me. “I’d like a Coke with lots of ice please.” I said.


“A Coke for Joey and a beer for me.”


“Very good.” The Manager said as he turned to have the waiter bring our drinks.


The waiter, Michael brought set our drinks down, Jeff ordered for us after asking me how I liked my steak.


“I am kind of feeling nervous, I didn’t know you were a tycoon, this is impressive.”


“Nah, not a tycoon, I have worked very hard and have taken many chances to build what I have.”


“I didn’t mean to imply anything inappropriate.”


Jeff smiled and gave my hand a pat. “It’s all good.”


“I can’t believe that all these people have such sexy accents.” I said with a laugh.


“Well, we are in Australia, but to us we don’t notice it, it’s normal, and you have the sexy accent mate.”


Our steaks and skewers of grilled shrimp were served and were perfectly cooked and so very tender, I would expect they were all fussing over the food in the kitchen knowing it was coming out to the owners table.


I ate until I felt I would pop but still managed to follow up dinner with a drink from the bar, I was truly impressed with Jeff and his accomplishments. I knew nothing of this before coming to his country, what a difference between what he has done and how Brad has wasted his life thus far.


Jeff was very professional with the staff but did not hide the fact that we were together as a date, we thanked the staff and walked back out to the car, and the driver took us to a club on Wellington St. Called The Peel, it is a darkly painted building with black trim with a large tower on the corner, kind of foreboding.


Inside the place was full of young men, many with their shirts off and were dancing to the loud blast of music, we made our way to one of the three bars and ordered drinks, Jeff managed to find a small table where we could park our drinks while we danced several songs before returning to the table.


“Grab your drink and let’s head to the patio for some fresh air.”


I followed Jeff out the door where the deafening music seemed to die off as the door closed.


“Great place.” I said as I sat next to Jeff putting my arm around his waist.


“Yeah, I come by now and then, they have a drag show that is a riot.”


We had a few more drinks before heading back to Jeff’s house, stripped and fell right into the bed naked and exhausted. The next morning I woke to Jeff sucking my rock hard morning wood.


“Wow, good morning, what a wakeup call.”


Jeff fingered my ass some before rubbing lube between my legs and onto his prick, he slid his thick cock inside me in one slow movement. I lifted my ass giving him as much room to play as possible, his cock felt so good inside me his speed increased and his breathing went ragged as he pumped me harder and harder calling my name as he blasted his jizz inside me before laying on my stomach, I could feel his cock growing limp and slipping out of my ass slowly, he moved up a bit resting his head on my chest.


Jeff started sucking my cock, he would take me close to cumming then slow up a bit, my heart was pounding and I wanted to cum badly. I could hardly hold still, my hips were bucking as I held his head in place, where it belonged, on my cock.


I was getting so close I could not keep quiet, groaning and moaning, begging to cum. Jeff started jacking my cock fast while keeping his mouth close by, when I started shooting, Jeff stopped jacking and sucked my shaft into his mouth, bobbing up and down while I blasted my salty cum into his throat.


He did not stop when my cum was spent, my cock was so sensitive and I was I moving all over trying to pull away but he kept sucking, my shaft stayed hard and in a few moments I was shooting again with Jeff gulping at my jizz while he twisted on my left nipple.


The days blew past and was time for me to leave and head back to the frozen tundra of home, I didn’t want to go, and Jeff made me feel like this is where I belong. My bags were packed and we were headed to the airport, Jeff drew me close as we walked to the security gate giving me a huge long hug.


I had tears in my eyes as I have always been emotional, I did not want to let this man go.


“It has been so nice having you come to my house and spend your vacation with me, I will miss you greatly, have a safe flight baby.”


“What a nice vacation it was, meeting you was the best part of all, I hate going back and leaving you here, but it’s time to get back to my house and work.” I said.


I gave Jeff a final parting kiss and walked through the gate, I looked over my shoulder to see that Jeff had not walked away, he stood there smiling and waving goodbye to me.


The plane ride home was cramped and hectic, I was not lucky enough to get bumped into first class again and had a guy that kept falling asleep and leaning over into my airspace, the plane was full and there was no vacant seats to move into.


I finally pulled into my driveway and got to the door, I found seven notes from Brad begging to come back and a small box from a local florist, I got the box and my bags inside, turned up the heat and took the package to the kitchen, probably a lame gesture from Brad.


I opened the box to find a small stuffed kangaroo and a note card, it said, “To my little roo Joey, I miss you already and hope to see you soon, Love Jeff.”


I took a shower and dropped into the bed with my laptop, checking email, there was one from Jeff.


“Baby, I hope you like the little roo, I am going to book a ticket for you to come back in three months, If your boss won’t let you take off work, tell him you have a new job working along my side and I would love it if you would consider moving to Australia and being my mister. I feel like we have what it takes to make a good life together, I didn’t fully realize how much I love you until you were gone, now I want you back so badly.


Don’t write me back yet, sleep on it, and think about what would make you happy, let me know if I should book a round trip visit or a one way ticket to be with me forever. My hopes are that you will use the three months to pack and give notice at work, come live with me and never look back.


Sweet Jeff, I tried to sleep but could not even come close until I wrote you back. A one way ticket is what I want, I have missed you every minute since I left your side. We will have to look into a green card or visa for me to stay there, I would love to be with you and work alongside of you, I think now that I have given you an answer, I can get to sleep, I look forward to your response and will Skype with you later when I get up, I love you, Joey.


When I woke up about four hours later, I reached for my laptop anxious to see if Jeff had written back.


Joey, I love you, I can’t wait until you are with me again, after you are here awhile and we are sure of things, we can marry to give you citizen status in Australia forever.


I checked the house phone answering machine, nineteen messages from Brad, I picked up the phone and made the call I dreaded.


“Hi Brad, I hope you found a place to live and are not on the streets.”


“Joey, oh my God, I have missed you and have so much to tell you. I have found a place to live, I met a guy named Kyle, he loves me and everything, I moved in with him three days ago.”


“I am so happy for you, where were you staying up till then?”


“I had a hide a key at mom and dads and stayed there, I have no idea where they went, they had not said anything about going on a vacation but I got there and they were gone, I think they are getting forgetful, they had left the TV on in the living room and a half eaten sandwich on a plate in the kitchen, looked like they just up and left in a hurry.”


“Brad, I went on vacation and met a guy in Australia and, well, I am moving there to be with him in a few months.”


“Wow, you went to Australia without me?” Brad asked.


“Brad, we are not together anymore, and besides, I went to the Bahamas, met Jeff and he flew me to Australia.”


“You went to the Bahamas without me?”


I shook my head, he just does not get it, and am sure that his parents will be seeing allot of him in the future unless this new boyfriend wants to have a boy toy to sit up in his house that relies on him for everything.


“Well, Brad, I am happy for you, I need to go, I have to get unpacked, do laundry and hit the grocery store for a few things before going back to work tomorrow.


I went to the store, put the laundry on and texted Jeff to Skype me when he gets time and left my laptop open on the kitchen counter and made a sandwich and poured a cup of coffee when I heard the Skype chime, answering it the screen opened to show Jeff naked and smiling.


“Hey mate, how is the weather there?”


“Hi baby, it’s frozen and lots of snow, Mom is here, wants to say hi”


Jeff jumped out of sight of the video camera only peeking back when he heard me laughing.


“You bastard, your mother is not there is she?”


I could not stop laughing.


“No, she is not here, I am sorry my crazy sense of humor kicked in and I could not resist.”


“Well maybe I won’t let you see my bits then.” Jeff said laughing.


“No, baby, I want to see your bits.” I said taking a bite of my sandwich.


“You more interested in your sandwich?” Jeff said with a big smile on his face.


I grabbed a sandwich sized zipper bag and put my lunch away until I finished our Skype call, with a flick of the buttons on my jeans and my pants were at my ankles, I stroked my cock to a full stiff mast in seconds while looking at Jeff half a world away as he lay naked on his bed.


Jeff moved his laptop to an upward side view as he jacked his rod and rubbed his balls, I knew that he was watching me do the same. Jeff flipped over and went to his knees while he fingered his ass, I could hear his moaning, it was almost like being with him.


“Mmm baby, I want that ass, I wish I could shove my thick cock right into that hole.”


“I wish you were here with me too love, it won’t be long.”


“I’m getting close baby, it feels so good.”


“Shoot it love.”


I jacked rapidly and shot my jizz into my hand filling my palm with sweet man juice.


“Lick it up baby.” Jeff said while he pumped his cock.


I leaned into the camera and licked the cum from my hand swallowing it while my lover watched.


Jeff had flipped onto his back again and started moaning loudly as he shot ropes of cum into his face and across his chest and belly.


He lay there spent, breathing hard but had a hell of a smile on his face, I could still taste the jizz in my mouth. I moved the camera down and showed my plump mostly soft cock to Jeff.


“I want that in my mouth and can’t wait to see you again. Jeff said softly.


We chatted for another twenty minutes before saying our good byes, I finished my lunch and went back to packing and setting boxes of things that I would not take to Australia that would be given to charity.


I had to be ready to sell my house for well under market in order to sell it fast, the last few days I would stay in an extended stay hotel, my boxes had been picked up and would be going over on a ship in a small cargo container, I would only be taking the few things that I really needed on the plane with me.


Finally, the day had come, I was flying to my baby, to my new home, and to my new life. I got little sleep the night before, I was so excited all I could do is think of Jeff and Australia.


I stepped off of the plane and headed up the ramp weary from the long flight but still very excited to see my man, I came around the corner to the waiting area near baggage claim and there he was, Jeff stood with a huge grin and a large bouquet of roses, He was not shy being in public with me, he grabbed me kissing my lips and handed me the roses.


“Aww thanks baby, they are beautiful, I am so happy to be here with you.”


“And I am happy that you are here, I am yours and you are mine.”


We got back to Jeff’s house, err, our house and dropped the bags, before stripping and getting between the sheets.


“I stayed up all night so I would match how tired you are, we can both sleep a while and get up and eat something, after sex that is.” Jeff said with a huge smile.


We snuggled under the sheets and fell asleep in moments forever in each other’s arms.



Saturday, July 25, 2015

Lisp + Unix = Linux :D

The Hundred - Year Language
The Hundred-Year Language
obviously a copy paste from Paul Graham's.
http://www.paulgraham.com/hundred.html





The Hundred-Year Language

April 2003

(This essay is derived from a keynote talk at PyCon 2003.)

It's hard to predict what life will be like in a hundred years. There are only a few things we can say with certainty. We know that everyone will drive flying cars, that zoning laws will be relaxed to allow buildings hundreds of stories tall, that it will be dark most of the time, and that women will all be trained in the martial arts. Here I want to zoom in on one detail of this picture. What kind of programming language will they use to write the software controlling those flying cars?

This is worth thinking about not so much because we'll actually get to use these languages as because, if we're lucky, we'll use languages on the path from this point to that.



I think that, like species, languages will form evolutionary trees, with dead-ends branching off all over. We can see this happening already. Cobol, for all its sometime popularity, does not seem to have any intellectual descendants. It is an evolutionary dead-end-- a Neanderthal language.

I predict a similar fate for Java. People sometimes send me mail saying, "How can you say that Java won't turn out to be a successful language? It's already a successful language." And I admit that it is, if you measure success by shelf space taken up by books on it (particularly individual books on it), or by the number of undergrads who believe they have to learn it to get a job. When I say Java won't turn out to be a successful language, I mean something more specific: that Java will turn out to be an evolutionary dead-end, like Cobol.

This is just a guess. I may be wrong. My point here is not to dis Java, but to raise the issue of evolutionary trees and get people asking, where on the tree is language X? The reason to ask this question isn't just so that our ghosts can say, in a hundred years, I told you so. It's because staying close to the main branches is a useful heuristic for finding languages that will be good to program in now.

At any given time, you're probably happiest on the main branches of an evolutionary tree. Even when there were still plenty of Neanderthals, it must have sucked to be one. The Cro-Magnons would have been constantly coming over and beating you up and stealing your food.

The reason I want to know what languages will be like in a hundred years is so that I know what branch of the tree to bet on now.



The evolution of languages differs from the evolution of species because branches can converge. The Fortran branch, for example, seems to be merging with the descendants of Algol. In theory this is possible for species too, but it's not likely to have happened to any bigger than a cell.

Convergence is more likely for languages partly because the space of possibilities is smaller, and partly because mutations are not random. Language designers deliberately incorporate ideas from other languages.

It's especially useful for language designers to think about where the evolution of programming languages is likely to lead, because they can steer accordingly. In that case, "stay on a main branch" becomes more than a way to choose a good language. It becomes a heuristic for making the right decisions about language design.



Any programming language can be divided into two parts: some set of fundamental operators that play the role of axioms, and the rest of the language, which could in principle be written in terms of these fundamental operators.

I think the fundamental operators are the most important factor in a language's long term survival. The rest you can change. It's like the rule that in buying a house you should consider location first of all. Everything else you can fix later, but you can't fix the location.

I think it's important not just that the axioms be well chosen, but that there be few of them. Mathematicians have always felt this way about axioms-- the fewer, the better-- and I think they're onto something.

At the very least, it has to be a useful exercise to look closely at the core of a language to see if there are any axioms that could be weeded out. I've found in my long career as a slob that cruft breeds cruft, and I've seen this happen in software as well as under beds and in the corners of rooms.

I have a hunch that the main branches of the evolutionary tree pass through the languages that have the smallest, cleanest cores. The more of a language you can write in itself, the better.



Of course, I'm making a big assumption in even asking what programming languages will be like in a hundred years. Will we even be writing programs in a hundred years? Won't we just tell computers what we want them to do?

There hasn't been a lot of progress in that department so far. My guess is that a hundred years from now people will still tell computers what to do using programs we would recognize as such. There may be tasks that we solve now by writing programs and which in a hundred years you won't have to write programs to solve, but I think there will still be a good deal of programming of the type that we do today.

It may seem presumptuous to think anyone can predict what any technology will look like in a hundred years. But remember that we already have almost fifty years of history behind us. Looking forward a hundred years is a graspable idea when we consider how slowly languages have evolved in the past fifty.

Languages evolve slowly because they're not really technologies. Languages are notation. A program is a formal description of the problem you want a computer to solve for you. So the rate of evolution in programming languages is more like the rate of evolution in mathematical notation than, say, transportation or communications. Mathematical notation does evolve, but not with the giant leaps you see in technology.



Whatever computers are made of in a hundred years, it seems safe to predict they will be much faster than they are now. If Moore's Law continues to put out, they will be 74 quintillion (73,786,976,294,838,206,464) times faster. That's kind of hard to imagine. And indeed, the most likely prediction in the speed department may be that Moore's Law will stop working. Anything that is supposed to double every eighteen months seems likely to run up against some kind of fundamental limit eventually. But I have no trouble believing that computers will be very much faster. Even if they only end up being a paltry million times faster, that should change the ground rules for programming languages substantially. Among other things, there will be more room for what would now be considered slow languages, meaning languages that don't yield very efficient code.

And yet some applications will still demand speed. Some of the problems we want to solve with computers are created by computers; for example, the rate at which you have to process video images depends on the rate at which another computer can generate them. And there is another class of problems which inherently have an unlimited capacity to soak up cycles: image rendering, cryptography, simulations.

If some applications can be increasingly inefficient while others continue to demand all the speed the hardware can deliver, faster computers will mean that languages have to cover an ever wider range of efficiencies. We've seen this happening already. Current implementations of some popular new languages are shockingly wasteful by the standards of previous decades.

This isn't just something that happens with programming languages. It's a general historical trend. As technologies improve, each generation can do things that the previous generation would have considered wasteful. People thirty years ago would be astonished at how casually we make long distance phone calls. People a hundred years ago would be even more astonished that a package would one day travel from Boston to New York via Memphis.



I can already tell you what's going to happen to all those extra cycles that faster hardware is going to give us in the next hundred years. They're nearly all going to be wasted.

I learned to program when computer power was scarce. I can remember taking all the spaces out of my Basic programs so they would fit into the memory of a 4K TRS-80. The thought of all this stupendously inefficient software burning up cycles doing the same thing over and over seems kind of gross to me. But I think my intuitions here are wrong. I'm like someone who grew up poor, and can't bear to spend money even for something important, like going to the doctor.

Some kinds of waste really are disgusting. SUVs, for example, would arguably be gross even if they ran on a fuel which would never run out and generated no pollution. SUVs are gross because they're the solution to a gross problem. (How to make minivans look more masculine.) But not all waste is bad. Now that we have the infrastructure to support it, counting the minutes of your long-distance calls starts to seem niggling. If you have the resources, it's more elegant to think of all phone calls as one kind of thing, no matter where the other person is.

There's good waste, and bad waste. I'm interested in good waste-- the kind where, by spending more, we can get simpler designs. How will we take advantage of the opportunities to waste cycles that we'll get from new, faster hardware?

The desire for speed is so deeply engrained in us, with our puny computers, that it will take a conscious effort to overcome it. In language design, we should be consciously seeking out situations where we can trade efficiency for even the smallest increase in convenience.



Most data structures exist because of speed. For example, many languages today have both strings and lists. Semantically, strings are more or less a subset of lists in which the elements are characters. So why do you need a separate data type? You don't, really. Strings only exist for efficiency. But it's lame to clutter up the semantics of the language with hacks to make programs run faster. Having strings in a language seems to be a case of premature optimization.

If we think of the core of a language as a set of axioms, surely it's gross to have additional axioms that add no expressive power, simply for the sake of efficiency. Efficiency is important, but I don't think that's the right way to get it.

The right way to solve that problem, I think, is to separate the meaning of a program from the implementation details. Instead of having both lists and strings, have just lists, with some way to give the compiler optimization advice that will allow it to lay out strings as contiguous bytes if necessary.

Since speed doesn't matter in most of a program, you won't ordinarily need to bother with this sort of micromanagement. This will be more and more true as computers get faster.



Saying less about implementation should also make programs more flexible. Specifications change while a program is being written, and this is not only inevitable, but desirable.

The word "essay" comes from the French verb "essayer", which means "to try". An essay, in the original sense, is something you write to try to figure something out. This happens in software too. I think some of the best programs were essays, in the sense that the authors didn't know when they started exactly what they were trying to write.

Lisp hackers already know about the value of being flexible with data structures. We tend to write the first version of a program so that it does everything with lists. These initial versions can be so shockingly inefficient that it takes a conscious effort not to think about what they're doing, just as, for me at least, eating a steak requires a conscious effort not to think where it came from.

What programmers in a hundred years will be looking for, most of all, is a language where you can throw together an unbelievably inefficient version 1 of a program with the least possible effort. At least, that's how we'd describe it in present-day terms. What they'll say is that they want a language that's easy to program in.

Inefficient software isn't gross. What's gross is a language that makes programmers do needless work. Wasting programmer time is the true inefficiency, not wasting machine time. This will become ever more clear as computers get faster.



I think getting rid of strings is already something we could bear to think about. We did it in Arc, and it seems to be a win; some operations that would be awkward to describe as regular expressions can be described easily as recursive functions.

How far will this flattening of data structures go? I can think of possibilities that shock even me, with my conscientiously broadened mind. Will we get rid of arrays, for example? After all, they're just a subset of hash tables where the keys are vectors of integers. Will we replace hash tables themselves with lists?

There are more shocking prospects even than that. The Lisp that McCarthy described in 1960, for example, didn't have numbers. Logically, you don't need to have a separate notion of numbers, because you can represent them as lists: the integer n could be represented as a list of n elements. You can do math this way. It's just unbearably inefficient.

No one actually proposed implementing numbers as lists in practice. In fact, McCarthy's 1960 paper was not, at the time, intended to be implemented at all. It was a theoretical exercise, an attempt to create a more elegant alternative to the Turing Machine. When someone did, unexpectedly, take this paper and translate it into a working Lisp interpreter, numbers certainly weren't represented as lists; they were represented in binary, as in every other language.

Could a programming language go so far as to get rid of numbers as a fundamental data type? I ask this not so much as a serious question as as a way to play chicken with the future. It's like the hypothetical case of an irresistible force meeting an immovable object-- here, an unimaginably inefficient implementation meeting unimaginably great resources. I don't see why not. The future is pretty long. If there's something we can do to decrease the number of axioms in the core language, that would seem to be the side to bet on as t approaches infinity. If the idea still seems unbearable in a hundred years, maybe it won't in a thousand.

Just to be clear about this, I'm not proposing that all numerical calculations would actually be carried out using lists. I'm proposing that the core language, prior to any additional notations about implementation, be defined this way. In practice any program that wanted to do any amount of math would probably represent numbers in binary, but this would be an optimization, not part of the core language semantics.



Another way to burn up cycles is to have many layers of software between the application and the hardware. This too is a trend we see happening already: many recent languages are compiled into byte code. Bill Woods once told me that, as a rule of thumb, each layer of interpretation costs a factor of 10 in speed. This extra cost buys you flexibility.

The very first version of Arc was an extreme case of this sort of multi-level slowness, with corresponding benefits. It was a classic "metacircular" interpreter written on top of Common Lisp, with a definite family resemblance to the eval function defined in McCarthy's original Lisp paper. The whole thing was only a couple hundred lines of code, so it was very easy to understand and change. The Common Lisp we used, CLisp, itself runs on top of a byte code interpreter. So here we had two levels of interpretation, one of them (the top one) shockingly inefficient, and the language was usable. Barely usable, I admit, but usable.

Writing software as multiple layers is a powerful technique even within applications. Bottom-up programming means writing a program as a series of layers, each of which serves as a language for the one above. This approach tends to yield smaller, more flexible programs. It's also the best route to that holy grail, reusability. A language is by definition reusable. The more of your application you can push down into a language for writing that type of application, the more of your software will be reusable.

Somehow the idea of reusability got attached to object-oriented programming in the 1980s, and no amount of evidence to the contrary seems to be able to shake it free. But although some object-oriented software is reusable, what makes it reusable is its bottom-upness, not its object-orientedness. Consider libraries: they're reusable because they're language, whether they're written in an object-oriented style or not.

I don't predict the demise of object-oriented programming, by the way. Though I don't think it has much to offer good programmers, except in certain specialized domains, it is irresistible to large organizations. Object-oriented programming offers a sustainable way to write spaghetti code. It lets you accrete programs as a series of patches. Large organizations always tend to develop software this way, and I expect this to be as true in a hundred years as it is today.



As long as we're talking about the future, we had better talk about parallel computation, because that's where this idea seems to live. That is, no matter when you're talking, parallel computation seems to be something that is going to happen in the future.

Will the future ever catch up with it? People have been talking about parallel computation as something imminent for at least 20 years, and it hasn't affected programming practice much so far. Or hasn't it? Already chip designers have to think about it, and so must people trying to write systems software on multi-cpu computers.

The real question is, how far up the ladder of abstraction will parallelism go? In a hundred years will it affect even application programmers? Or will it be something that compiler writers think about, but which is usually invisible in the source code of applications?

One thing that does seem likely is that most opportunities for parallelism will be wasted. This is a special case of my more general prediction that most of the extra computer power we're given will go to waste. I expect that, as with the stupendous speed of the underlying hardware, parallelism will be something that is available if you ask for it explicitly, but ordinarily not used. This implies that the kind of parallelism we have in a hundred years will not, except in special applications, be massive parallelism. I expect for ordinary programmers it will be more like being able to fork off processes that all end up running in parallel.

And this will, like asking for specific implementations of data structures, be something that you do fairly late in the life of a program, when you try to optimize it. Version 1s will ordinarily ignore any advantages to be got from parallel computation, just as they will ignore advantages to be got from specific representations of data.

Except in special kinds of applications, parallelism won't pervade the programs that are written in a hundred years. It would be premature optimization if it did.



How many programming languages will there be in a hundred years? There seem to be a huge number of new programming languages lately. Part of the reason is that faster hardware has allowed programmers to make different tradeoffs between speed and convenience, depending on the application. If this is a real trend, the hardware we'll have in a hundred years should only increase it.

And yet there may be only a few widely-used languages in a hundred years. Part of the reason I say this is optimism: it seems that, if you did a really good job, you could make a language that was ideal for writing a slow version 1, and yet with the right optimization advice to the compiler, would also yield very fast code when necessary. So, since I'm optimistic, I'm going to predict that despite the huge gap they'll have between acceptable and maximal efficiency, programmers in a hundred years will have languages that can span most of it.

As this gap widens, profilers will become increasingly important. Little attention is paid to profiling now. Many people still seem to believe that the way to get fast applications is to write compilers that generate fast code. As the gap between acceptable and maximal performance widens, it will become increasingly clear that the way to get fast applications is to have a good guide from one to the other.

When I say there may only be a few languages, I'm not including domain-specific "little languages". I think such embedded languages are a great idea, and I expect them to proliferate. But I expect them to be written as thin enough skins that users can see the general-purpose language underneath.



Who will design the languages of the future? One of the most exciting trends in the last ten years has been the rise of open-source languages like Perl, Python, and Ruby. Language design is being taken over by hackers. The results so far are messy, but encouraging. There are some stunningly novel ideas in Perl, for example. Many are stunningly bad, but that's always true of ambitious efforts. At its current rate of mutation, God knows what Perl might evolve into in a hundred years.

It's not true that those who can't do, teach (some of the best hackers I know are professors), but it is true that there are a lot of things that those who teach can't do. Research imposes constraining caste restrictions. In any academic field there are topics that are ok to work on and others that aren't. Unfortunately the distinction between acceptable and forbidden topics is usually based on how intellectual the work sounds when described in research papers, rather than how important it is for getting good results. The extreme case is probably literature; people studying literature rarely say anything that would be of the slightest use to those producing it.

Though the situation is better in the sciences, the overlap between the kind of work you're allowed to do and the kind of work that yields good languages is distressingly small. (Olin Shivers has grumbled eloquently about this.) For example, types seem to be an inexhaustible source of research papers, despite the fact that static typing seems to preclude true macros-- without which, in my opinion, no language is worth using.

The trend is not merely toward languages being developed as open-source projects rather than "research", but toward languages being designed by the application programmers who need to use them, rather than by compiler writers. This seems a good trend and I expect it to continue.



Unlike physics in a hundred years, which is almost necessarily impossible to predict, I think it may be possible in principle to design a language now that would appeal to users in a hundred years.

One way to design a language is to just write down the program you'd like to be able to write, regardless of whether there is a compiler that can translate it or hardware that can run it. When you do this you can assume unlimited resources. It seems like we ought to be able to imagine unlimited resources as well today as in a hundred years.

What program would one like to write? Whatever is least work. Except not quite: whatever would be least work if your ideas about programming weren't already influenced by the languages you're currently used to. Such influence can be so pervasive that it takes a great effort to overcome it. You'd think it would be obvious to creatures as lazy as us how to express a program with the least effort. In fact, our ideas about what's possible tend to be so limited by whatever language we think in that easier formulations of programs seem very surprising. They're something you have to discover, not something you naturally sink into.

One helpful trick here is to use the length of the program as an approximation for how much work it is to write. Not the length in characters, of course, but the length in distinct syntactic elements-- basically, the size of the parse tree. It may not be quite true that the shortest program is the least work to write, but it's close enough that you're better off aiming for the solid target of brevity than the fuzzy, nearby one of least work. Then the algorithm for language design becomes: look at a program and ask, is there any way to write this that's shorter?

In practice, writing programs in an imaginary hundred-year language will work to varying degrees depending on how close you are to the core. Sort routines you can write now. But it would be hard to predict now what kinds of libraries might be needed in a hundred years. Presumably many libraries will be for domains that don't even exist yet. If SETI@home works, for example, we'll need libraries for communicating with aliens. Unless of course they are sufficiently advanced that they already communicate in XML.

At the other extreme, I think you might be able to design the core language today. In fact, some might argue that it was already mostly designed in 1958.



If the hundred year language were available today, would we want to program in it? One way to answer this question is to look back. If present-day programming languages had been available in 1960, would anyone have wanted to use them?

In some ways, the answer is no. Languages today assume infrastructure that didn't exist in 1960. For example, a language in which indentation is significant, like Python, would not work very well on printer terminals. But putting such problems aside-- assuming, for example, that programs were all just written on paper-- would programmers of the 1960s have liked writing programs in the languages we use now?

I think so. Some of the less imaginative ones, who had artifacts of early languages built into their ideas of what a program was, might have had trouble. (How can you manipulate data without doing pointer arithmetic? How can you implement flow charts without gotos?) But I think the smartest programmers would have had no trouble making the most of present-day languages, if they'd had them.

If we had the hundred-year language now, it would at least make a great pseudocode. What about using it to write software? Since the hundred-year language will need to generate fast code for some applications, presumably it could generate code efficient enough to run acceptably well on our hardware. We might have to give more optimization advice than users in a hundred years, but it still might be a net win.



Now we have two ideas that, if you combine them, suggest interesting possibilities: (1) the hundred-year language could, in principle, be designed today, and (2) such a language, if it existed, might be good to program in today. When you see these ideas laid out like that, it's hard not to think, why not try writing the hundred-year language now?

When you're working on language design, I think it is good to have such a target and to keep it consciously in mind. When you learn to drive, one of the principles they teach you is to align the car not by lining up the hood with the stripes painted on the road, but by aiming at some point in the distance. Even if all you care about is what happens in the next ten feet, this is the right answer. I think we can and should do the same thing with programming languages.



Notes

I believe Lisp Machine Lisp was the first language to embody the principle that declarations (except those of dynamic variables) were merely optimization advice, and would not change the meaning of a correct program. Common Lisp seems to have been the first to state this explicitly.

Thanks to Trevor Blackwell, Robert Morris, and Dan Giffin for reading drafts of this, and to Guido van Rossum, Jeremy Hylton, and the rest of the Python crew for inviting me to speak at PyCon.

Japanese Translation




 You'll find this essay and 14 others in Hackers & Painters.

Tuesday, July 21, 2015

Introduction to Network Programming using TCP/IP !

The client server programming is the most common type(other is P2P network) of network applications. A server is a program(like Google,Yahoo) that provides services to client(like You). A client is a program that access these services by connecting to a server program.
A socket is the mechanism that most popular operating systems provide to give programs access to the network. It allows messages to be sent and received between applications on different networked machines. There are several different types of sockets that determine the structure of the transport layer .The most common types are stream sockets(TCP) and datagram sockets(UDP). Sockets are created using a system call, and each socket created by the operating system is identified by a small integer called a socket descriptor.The system calls for establishing a connection are somewhat different for the client and the server, but both involve the basic construct of a socket. When an application calls a socket, the operating system allocates a new data structure to hold the information needed for client server communication. Once a socket has been created, it either waits for an incoming connection, called a passive socket,or initiates a connection, called an active socket. A server creates passive socket and a client creates an active socket.
Server Examples : web server(port 80) , FTP server(port 21), Mail server(port 25)
Client Examples : Web-browsers.

Socket Functions :
These functions have their prototypes defined in /usr/include/sys/sockets.h.
1. socket() : create an endpoint for communication
SYNOPSIS : socket(int domain, int type, int protocol);

2. connect() : initiate a connection on a socket.
SYNOPSIS : connect(int fd, struct sockaddr *remote_host, int addr_length);

3.bind() : bind a name to a socket
SYNOPSIS :bind(int fd, struct sockaddr *local_addr, socklen_t addr_length);

4. listen() : listen for connections on a socket.
SYNOPSIS : listen(int fd, int backlog_queue_size);

5.accept(): accept a connection on a socket.
SYNOPSIS : accept(int fd, sockaddr *remote_host, socklen_t *addr_length);

6. send() : Sends n bytes from *buffer to socket fd.
SYNOPSIS :send(int fd, void *buffer, size_t n, int flags)

7. recv() : Receives n bytes from socket fd into *buffer.
SYNOPSIS :recv(int fd, void *buffer, size_t n, int flags)

The steps involved in establishing a socket on the client side are as follows:
1.Create a socket with the socket() system call
2.Connect the socket to the address of the server using the connect() system call
3.Send and receive data. There are a number of ways to do this, but the simplest is to use the read() and write() system calls.

The steps involved in establishing a socket on the server side are as follows:
1.Create a socket with the socket() system call
2.Bind the socket to an address using the bind() system call. For a server socket on the Internet, an address consists of a port number on the host machine.
3.Listen for connections with the listen() system call
4.Accept a connection with the accept() system call. This call typically blocks until a client connects with the server.
5. Send and receive data

This can be understood by a simple diagram :

                                                      



Socket Addresses :
Many of the socket functions reference a sockaddr structure to pass address information that defines a host.
Generic socket addresses :
struct sockaddr {
    uint8_t sa_len;                /* total length of address  */
    sa_family_t sa_family;         /*  family of address */
    char sa_data[14];              /*   the address itself*/
};

sa_data contain a destination address and port number for socket.

To deal with struct sockaddr, programmer created a parallel structure i.e. struct  sockaddr_in(IPv4)

struct sockaddr_in {
    uint8_t sin_len;               /*  total length of adress */
    sa_family_t sin_family;         /*   family of address */
    in_port_t sin_port;             /*  port to connect to */
    struct in_addr sin_addr;         /*  host's IP address */
    char sin_zero[8];                 /* padding, ignored  */
};


Here we deal with Internet Protocol version 4, which is the protocol family PF_INET,  using the address family AF_INET.

                                           


.
Network Byte Order:
The internet protocols specify a format in which binary numbers are passed around between hosts.This format is called network byte order.The port number and IP address used in the AF_INET socket address structure are expected to follow the network byte ordering, which is big-endian. This is the opposite of x86’s little-endian byte ordering, so these values must be converted.
There are several functions specifically for these conversions.

htonl(long value) : Host-to-Network Long
Converts a 32-bit integer from the host’s byte order to network byte order.

htons(short value):  Host-to-Network Short
Converts a 16-bit integer from the host’s byte order to network byte order

ntohl(long value) :Network-to-Host Long
Converts a 32-bit integer from network byte order to the host’s byte order

ntohs(long value)
: Network-to-Host Short
Converts a 16-bit integer from network byte order to the host’s byte order

Internet Address Conversion :

ASCII to Network : inet_aton(char *ascii_addr, struct in_addr *network_addr)

This function converts an ASCII string containing an IP address in dottednumber

format into an in_addr structure.

Network to ASCII : inet_ntoa(struct in_addr *network_addr)

This function converts the other way. It is passed a pointer to an in_addr structure containing an IP address.

Reference : "Hacking: The art of exploitation"
                   "Google"

In the next tutorials we will learn how to write server-client programs.
Note : All the codes given in this blog have been tested under Kali-linux using gcc C compiler.
If you're stuck somewhere, Please feel free to comment !

Why do hackers need to network programming ?

Machines can also talk to each other by means of networking. Similarly, programs can become much more powerful when they have the ability to communicate with other programs via a network. In this world, you will find most systems connected in networks rather than individual. Therefore, to be a complete hacker, you must need some networking knowledge.

So now question is why hacker needs network programming ?
Network programming is an essential part of becoming a hacker.It helps in  create your own hacking tools which can communicate over the internet. Let's discuss some practicle uses of network programming in real world :
* Designing malware : Suppose you are writing your own keylogger which capture keystroke(Each keyboard key press is a keystroke) and send to you. But how  keylogger can send you keystorke When you physically can not access the victim's computer? It makes use of the network programming.By network programming you can send/receive data from the victim's computer.

* Developing remote exploits : If you find a vulnerability in software, say Internet explorer. As you know internet explorer is installed by default on winodws. Now you want exploit this vulnerability in your victim's system remotely. You can't exploit your victim without the network programming. With networking, you  write remote exploit which exploit the vulnerability in software.
 
* Attacking network application like SMTP, FTP :  There are many networking applications like Apache http server, FTP(File transfer protocol), ssh. Now suppose you attacking ssh(Secure shell, port no.22 ) for username and password through brute force attack. To communicate with ssh for username and password you need to network programming in your brute-force program.


Learn networking  :
Knowing as much as you can about how a network operates, including basics such as what an IP address, port, protocol, and the thousands of other networking definitions, can be yet another vital thing to learn about.

OSI Network Layer Model :
Before we start learn about network, let's first we discuss about network architecture. ISO designed the standardized architecture of networks known as OSI (Open Systems Interconnection). The OSI architecture is a layered model of an ideal network. The OSI model provides standards that allow hardware, such as  routers and firewalls, to focus on one particular aspect of communication that applies to them and ignore others. The OSI model is broken down into conceptual layers of communication.

                                    
       



Physical Layer: This is the 1st layer of OSI model. This layer is composed of hardware. The network cables and other network hardware devices lie in this layer.

Data Link Layer: This is the 2nd layer of OSI model. The Ethernet protocol works in this layer. The devices in this layer are addressed using their hardware address also known as MAC (Media Access Control) address.

Network Layer: This is the 3rd layer of OSI model. The networks are broken into logical segments into this layer. The networked systems are identified with IP (internet protocol) addresses into this layer.

Transport Layer: This is the most important layer. The transport layer is the 4th layer of OSI model. The TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) work in this layer.

Session Layer: Te session layer as name suggests keeps track of all connections (sessions). This layer keeps track of the data provided by the upper layers and sends them to their respective lower layer circuits.

Presentation Layer: This layer is most important from security point of view. The encryption if applied can be applied here on the data.

Application Layer: This layer is the main application, i.e. the program, which may or may not be interacting with the user.

When data is communicated through these protocol layers, it’s sent in small pieces called packets. Each packet contains implementations of these protocol layers. Starting from the application layer, the packet wraps the presentation layer around that data, which wraps the session layer, which wraps the transport layer, and so forth. This process is called encapsulation. Each wrapped layer contains a header and a body. The header contains the protocol information needed for that layer, while the body contains the data for that layer. The body of one layer contains the entire package of previously encapsulated layers, like the skin of an onion or the functional contexts found on a program’s stack.

Concept of classes in python !

In all our python programs till now, we have designed our program around functions or blocks of statements which manipulate data. This is called the procedure-oriented way of programming. There is another way of organizing your program which is to combine data and functionality and wrap it inside what is calledan object. This is called the object oriented  programming paradigm.

Before move to advance, let's Overview of OOP Terminology :
 Class: A user-defined prototype for an object that defines a set of attributes that characterize any object of the class. The attributes are data members (class variables and instance variables) and methods, accessed via dot notation.
 

Class variable: A variable that is shared by all instances of a class. Class variables are defined within a class but outside any of the class's methods. Class variables aren't used as frequently as instance variables are.
 

Data member: A class variable or instance variable that holds data associated with a class and its objects.
 

Function overloading: The assignment of more than one behavior to a particular function. The operation performed varies by the types of objects (arguments) involved.
 

Instance variable: A variable that is defined inside a method and belongs only to the current instance of a class.
 

Inheritance : The transfer of the characteristics of a class to other classes that are derived from it.

Instance: An individual object of a certain class. An object obj that belongs to a class Circle, for example, is an instance of the class Circle.
 

Instantiation : The creation of an instance of a class.
 

Method : A special kind of function that is defined in a class definition.
 

Object : A unique instance of a data structure that's defined by its class. An object comprises both data members (class variables and instance variables) and methods.

Operator overloading: The assignment of more than one function to a particular operator.

Python is fully object-oriented: you can define your own classes, inherit from your own or built in classes, and instantiate the classes you've defined.The self Class methods have only one specific difference from ordinary functions - they must have an extra first name that has to be added to the beginning of the parameter list, but you do do not give a value for this parameter when you call the method, Python will provide it. This particular variable refers to the object itself, and by convention, it is given the name self.Although, you can give any name for this parameter, it is strongly recommended that you use the name self - any other name is definitely frowned upon.

Creating a Class :
class Person:
pass # An empty block


We create a new class using the class statement followed by the name of the class. This follows an indented block of statements which form the body of the class. In this case, we have an empty block which is indicated using the pass statement.

Using Object Methds :
class Person:
    def sayHi(self):
        print 'Hello world'


                           
      


The __init__ method :
The method is useful to do any initialization you want to do with your object. Note that The __init__() method can accept parameters, but does not return anything. It sets the internal state of the object.

class Person:
    def __init__(self, name):
        self.name = name
    def sayHi(self):
        print 'Hello, my name is', self.name



we define the __init__ method as taking a parameter name (along with the usual self). Here,we just create a new field also called name. Notice these are two different variables even though they have the same name. The dotted notation allows us to differentiate between them.
Most importantly, notice that we do not explicitly call the __init__ method but pass the arguments in the parentheses following the class name when creating a new instance of the class. This is the special significance of this method.

Built-In Class Attributes:

Every Python class keeps following built-in attributes and they can be accessed using dot operator like any other attribute:

    __dict__ : Dictionary containing the class's namespace.

    __doc__ : Class documentation string or None if undefined.

    __name__: Class name.

    __module__: Module name in which the class is defined. This attribute is "__main__" in interactive mode.

    __bases__ : A possibly empty tuple containing the base classes, in the order of their occurrence in the base class list.