Planet FoxPro

September 18, 2014

Alex Feldstein

September 17, 2014

VisualFoxProWiki

Alex Feldstein

September 16, 2014

Alex Feldstein

September 15, 2014

Craig Bailey

Innovation: Idea versus Execution

When it comes to understanding innovation, it’s easy to fixate on the idea, and neglect the execution. It’s why for example when Apple announced that their new iPhone 6 devices had NFC chips to facilitate their Apple Pay offering they were criticised for not being innovative, and instead just copying something many Android devices have had for years. “That’s not innovation!”, the critics cry.

And when it comes to the idea, the criticism is valid, but when it comes to the execution, well, let’s see what happens. Because the key here will be whether Apple can take the idea, and actually execute it well. As opposed to Android (and specifically Google Wallet) which hasn’t had much traction to date.

It’s about taking the idea, and actually making it happen. That’s usually the really, really difficult part. In many ways, coming up with the idea is the easy part.

And as a further note, being the first to market doesn’t necessarily mean you came up with the idea first. It just means you marketed it first. The real objective is to be the first to market success.

Let’s quickly review what innovation actually is. From Wikipedia (emphasis mine):

Innovation is a new idea, device or process. Innovation can be viewed as the application of better solutions that meet new requirements, inarticulated needs, or existing market needs. This is accomplished through more effective products, processes, services, technologies, or ideas that are readily available to markets, governments and society. The term innovation can be defined as something original and, as a consequence, new, that “breaks into” the market or society.[3]

While a novel device is often described as an innovation, in economics, management science, and other fields of practice and analysis innovation is generally considered to be a process that brings together various novel ideas in a way that they have an impact on society.

Innovation differs from invention in that innovation refers to the use of a better and, as a result, novel idea or method, whereas invention refers more directly to the creation of the idea or method itself. Innovation differs from improvement in that innovation refers to the notion of doing something different rather than doing the same thing better.

The above quote from Wikipedia isn’t ideal (at times I think it actually contradicts itself slighty (eg the last paragraph), but the overall gist is there: Innovation is different to Invention.

And this is what makes the Apple announcements interesting. Have they invented anything new? Not much. If anything. But then again, have they ever really invented something new? MP3 players, smartphones, computers, and perhaps even tablet like devices had been invented long before Apple made their versions. As had technologies for touch input, gyroscopes, GPS, etc. But the difference is that Apple executed unlike most other suppliers. Sure design is a part of this execution, but it’s not everything. In many ways they have been highly innovative in the ways they’ve brought products to market – even down to the supply chain advancements they’ve put in place.

And thus, when I see ads like this, I do see the funny side, but I also think there’s more to it:

Missing the point

Limiting innovation to be just the listing of ideas or components is missing the larger point.

Let’s consider a few of the announcement topics, starting with Apple Pay (ie NFC payments).

Apple Pay

Has Apple been innovative with Apple Pay? It’s too early to say. If their offering does take off and radically change the way a sizeable portion of the consumer base pays for things, then yes, it has been highly innovative. But if it stumbles and fails, then they’ll instead just be a company that copied an idea but didn’t provide enough improvement to the process to be innovative. Notice that the use of ‘impact on society’ in the Wikipedia definition above – it’s key to the discussion.

Apple Watch

And it works both ways in terms of critics as well. For example, many of the reviews of the Apple Watch described the use of the crown as the input device as innovative. But from an idea perspective it’s hardly new – that’s what watches have used as their UI for centuries :-). No, the innovation is whether Apple has come up with a way that significantly improved the use and interaction of wearables. If consumers embrace it (ie unlike just about all other wearables to date), then it’s likely an innovation. If it sinks and dies then it’s not.

What about the common sound bites Steve Jobs fans throw around about Tim Cook. Apple hasn’t done anything innovative since Jobs died, etc, etc[1]. Based on the above, I suspect they are actually just saying: Apple hasn’t released an obviously new idea since Jobs died.

Should Apple be criticised for copying ideas from other suppliers. Yes, probably. It seems like a fair criticism (although not in the same shameless way that say Xiaomi has copied Apple).

But should Apple be criticised for not being innovative. I suspect not. But it’s too early to tell.

Patents

It’s risky to raise the topic of patents – it’s so complex and impassioned it can detract from the overall discussion. But I will mention it here briefly, because it’s easy to see why the focus on ideas versus execution is so prevalent – just take a look at the whole patent process: they are idea focussed.

Patents exist in order to protect an invention (idea or process), but they don’t extend (much) to overall execution. The role of a patent is to protect the patent holder so that they can execute on (sometimes referred to as commercially exploit) the invention. And in many ways that’s a good thing. It’s designed to protect. But inventions are just ideas, and as such patents can also be a negative.

Patent the idea of a payment process and it’s yours for $50K-100K in legal fees (assuming you are first). But spend millions working on all the finer details of partnerships and in-store relationships, and you’re not quite as covered.

Novel ideas != Innovation

Yes, innovation can include new ideas, but it’s only part of the story.

Novel ideas aren’t automatically innovation. Executing well on a novel idea is.

 

Notes:

[1] I’m not immune from this

The post Innovation: Idea versus Execution appeared first on Craig Bailey.

by Craig Bailey at September 15, 2014 07:09 PM

Alex Feldstein

September 14, 2014

Alex Feldstein

September 13, 2014

Alex Feldstein

September 12, 2014

FoxProWiki

ChicagoFUDG

Editor comments: September meeting details

September 12, 2014 01:15 PM

Alex Feldstein

Sandstorm's Blog (Home of ssClasses)

For you Kuya Obet and for OFWs!

Some of my friends know that my eldest brother recently passed away at a very young age of 46.  We were devastated as it is totally unexpected. During those times I repeatedly thought of creating an entry here because I wanted to immortalize my Brother's memories.  I have done that for other people, so why should I not do it for my departed Brother (Kuya Obet)?

The problem I have is how can I put into words my brother's story without boring readers.  Why am I so concerned about it?  Well any writer's goal is to make the topic interesting that the readers will take time to read the entirety.  Otherwise my goal of introducing my late brother to the world will fail.  Anyway, I will try my best and I hope I will do good here.  The stories come from my memories and from Kuya Obet's own accounts (his life in Papua New Guinea) mentioned to me over bottles of beers in 2006.

My earliest memories

We grew up from a very tightly knitted family which is common to most Filipinos especially the poor ones because that is our only wealth, i.e., strong love and affection for each other.  We were born poor that in most days our meal consists mostly of rice+saluyot, on good days rice+carabao's milk + salt (my favorite) and on worse days rice + plain water + sugar. But while we lack a lot of things, we were very happy growing; abundant with love for each other that we don't care much about those.  We were physically fit and being children do not complain much.

My eldest brother (8 yrs old then) assists on farming chores like planting, weeding and harvesting.  My elder sister (7 yrs old) and I (5 yrs old) only assists on weeding. By weeding means we will be asked to sit between palay stems for hours and grope under the water, our butts under the water as well, for weeds pulling those out including the roots.  That is my father's alternative to spraying herbicide (weed killer).  We were given each rows to clean and to fight boredom we turned it into a play, a competition who can uproot most weeds or who can clean most rows. Of course I always loose at the competition.


During harvesting, even though it is our own field, our father gave my brother a salary equivalent to what he has harvested.  I on the other hand since still very young were not allowed to do that because harvesting is done by hands wielding a sickle.  However, I was allowed to follow the harvesters to await and pick up fallen pieces or pluck those overlooked uncut small stems of palay.  You can imagine how I always wish two or more twigs to fall from the shoulders of our harvesters because when it happens, those are mine no matter what.

My brother at that very young age already knows his responsibilities as the eldest and never complains much.  Very serious and is always there to look after his siblings.  For when there is something wrong, he always gets the blame from our father with the words "It is your responsibility being the eldest to ensure that nothing untoward happen to your brothers and sister when we are not around!".  So his character is forged at that tender age. 

I remember one time me and our youngest (3 years old) argued and fought and he tried to stop the fight. But we never heed to his call and continued, so in anguish and in teary eyes he cried "Please take pity of me, I will be punished because of you two!".  And that spontaneously put out the fight between me and our youngest brother. And surprisingly we never fought from there on because we understood even at that young ages that it is really unfair for Kuya Obet being punished for our mischief. :)

Young Entrepreneurs

Now like I said we were very poor.  But at those young ages, we were already smart.  We observed that while our barrio dwells into rice farming, most of the neighbors from our barrio and adjacent ones are sort of lazy. 

Ricefield snails are both considered as pests and a delicacy.  So every weekend, what the three of us do (except the youngest) is wade onto the water to collect those snails braving snakes (they almost never appear during wet period but the possibility is harrowing) and leeches (abundant). 

We wade from field to field collecting snails placing those into a small net tied around our waists.  When it gets heavy, we transfer those into a bucket we left somewhere in the dry corner of the field.   I remember one time I felt an itch on my left hand, between my fingers, where absentmindedly I scratched it.  I was surprised of the gummy touch I received, looked down at my hands and saw to my horror a leech getting bigger by the second. I frantically rubbed my hand on the field grasses to no avail.  Then in panic, I grabbed the net where I put my snails and rubbed my hand there without thinking if my hand will be lacerated; and it did the trick.  The leech was dismantled in pieces.  I saw my brother laughing hard at me where I returned with dagger-like eyes.

One day, he got a leech of his own and both my sister and I laughed hard when he runs from places to places yelling in horror and disgust "get it off me!". 

So each of us collected snails, put those in our own net, and transferred those to that huge plastic bucket.  Once that big bucket is full, my brother creates a turban out of an extra shirt, straighten his scrawny figure then with our help bravely and gamely lifts the bucket up to his head.  Then we are on the go marching down the hot stony road of the barrios where my sister would start yelling "snail for sale, snail...".  I being the youngest will simply echo once in a while "Snail..." in a singsong playful manner while skipping ahead or behind my siblings. We will go around 2 to 3 barrios and mostly after around 2 to 3 hours will be able to sell everything.  

What I admire about this and why I share this part of our lives is I can't imagine how heavy a bucket full of snails is especially for a skinny 8 year old boy, carrying it up on his head for 2 to 3 hours straight.  But my brother has done this without complain because he cares for what will be the reward after, not for himself because all the money were given to our Mom to add food to the table, but for the sake of all of us.

Are we unique in this flight?  In the world no, there are less fortunate but in our place, yes we are.  While the rest of the kids are playing on weekends, there we are working our butts to do something fruitful.  Mind you, our parents never asked us to do those.  The idea and decision is from the 3 of us (actually I just tag along).

We did this so often that in the end it is our frustration not able to find much snail left in our fields.  So we approached the owners of the neighboring ricefields offering our services to get rid of their snail pets...err pests for them.  It is a mutual beneficial move that allowed us to prolong our selling spree.

The Golden Years

Throughout our lives growing up, we were able to engage from one business scheme to another.  Our financial capability back then has already improved. In my brother's college days though, during holidays he and his friend since childhood, Kuya Al, spends it on earning extra money by selling cigarettes in a nearby cockpit arena. Of course, seeing it gives them extra money I followed suit. 

My brother eventually graduated as a Doctor of Veterinary Medicine with the help of our Aunt Fen in California and thereafter worked hard as a salesman of poultry products. My brother is so good in his job that he was awarded as Salesman of the Year by the company he worked at, on a nationwide level for 2 consecutive years.  He then took care of sending me and our youngest brother to school (our sister has just started working as a nurse volunteer).  Riding in a flashy car with pocket full of money, those were his real Golden Years.

.

Shattered Dreams

But while there are ups, there are also down.  During the outbreak of FMD (Foot and Mouth Disease on hoofed animals), my brother saw the opportunity and has resigned to engage into a poultry business.  Since almost no one dares eat pork meats then, his poultry business became a success that later 4 more relatives eagerly joined. Since there is a boom, others also followed suit and so the emergence of innumerable poultry businesses at that time.

Then suddenly the turn of tide shifted.  FMD outbreak was lifted and people deprived of pork meats for a long time never wanted to touch, smell nor even look at poultry meat anymore. Those chickens became a huge feast for flies in the market, all-throughout the country. That resulted to lots of bankruptcies and that included my brother and his partners.  Financial obligations were suddenly recalled and it became so hard because even the vendors who owe my brother huge money weren't able to pay him back.  Sad thing is my brother is the front-man, so the lenders went after him alone; and the rest of his partners left him on that predicament. 

So he fled out of the country and went to Papua New Guinea not to run away from those obligations but to be able to find a source to pay those back slowly at a time.  No one helped him.  One good character that was inculcated on all of us is we always pay our obligations and does our best to make true of our promises.  My brother though paid more than he owed because he has shouldered all the financial obligations of the whole firm, alone.  When business go sour, expect that your partners will leave you alone hanging dry to save their own hides, relatives or not.

My brother's account of his life here in PNG.

I was never told of this portion of his life per my brother's request.  He recounted these stories only after he came back and he visited me on my apartment as we try to bridge the years in front of beers. As far as I know, he hasn't recounted these events in his life to any one else the way he has recounted this over to me.

His Flight

The poultry business went down the drain a month after his only son was born.  The only solution he can think of back then is to try his luck abroad.  He was introduced to someone who assured him that if he can raise PHP 80,000 that time that he can arrange for my brother to travel here in PNG as a tourist and be given a job thereafter.  And that someone will be waiting for him at the airport to drive him straight to his new boss.  For lack of option, my father sold our house and lot to be able to raise said amount then we moved back to my mother's birthplace.

In the plane, my brother cried silently, continuously, not for himself but because he is thinking of his newly born son and his wife for he doesn't know what awaits him on this foreign land and what future it may bring.  And he doesn't know until when he can come back to Philippines.  He has resolved he won't come back until all his (and his partners') financial obligations were paid in full.  So he spent 5 years in PNG and paid something close to a million pesos before he was able to come back.  He bore without complain the 5 long years of being away from his family because of his integrity; he wanted to clear his name.

His Hopes

The plane normally arrives at 5am in Jackson Airport in Port Moresby.  Al-throughout the day, my brother waited but the promised someone who will pick him up never showed.  And so my brother never eaten nor drank any water the whole day.  How can he, he has no money left on him.  On a foreign land, Very afraid and hungry, he tried not to loose hope and faith and silently prayed......until the airport closed.

His Gamble

Then a local guy approached him saying "Hey bro, I work here!  And I have been observing you since morning, do you know where you are going? Are you expecting someone?".  And so my brother confessed that he did but the guy never showed up. 

There are all sorts of people here in PNG. Con men and rascals who instead of helping someone in need, will rob the person of his few belongings and might kill him afterwards especially an expatriate like my brother.  In their eyes, we are a good source of money.  This local guy told my brother that he used to work with Filipinos.  And so he offered to bring Kuya Obet to a "wantok", meaning a fellow countryman.  With no option left, he gambled his faith and his life on the hands of this local guy.

His Reception

True to his words, the guy did brought my brother to the house where Filipinos live.  Sadly, nobody wants anything to do with my brother each arguing "we have tons of problems of our own, why add more?"; in front of him.  Until the owner of the house, an old guy, who is also a Filipino was not able to help himself swore "(cussing), Shame on all of you!  If none of you will help this poor fellow, I will! Maybe this will pave a way for me to heaven".  The guy has a cancer. 

Teary eyed, my brother thanked and promised to help in household chores and do anything to give back something in return. The old man said "Don't think about it, eat and rest first.  You sleep with my son in his room!".  Truly there are still good men around the world.

His Acceptance

The guy is a gambler, loves to bet on a cockfight. My brother saw this so he offered to build for him an incubator for the eggs of his fighter cocks.  Surprised that my brother can do that, my brother then explained that he actually is a Doctor of Veterinary Medicine.  Those others who shunned him before got surprised of the revelation and slowly gave my brother a respect he deserves.  The old man was very happy when a lot of eggs hatched. 


Don't Give Up

And so if you remember that me and my brother used to sell cigarettes, he did that here as well to earn a small living, selling cigarettes in the concealed cockpit arena where his friend the owner of the house gambles.  One time, he put his best dress and makes himself as good looking as he is (did I mention he is a good looking guy?).  The boarders quipped "Hey Doc!  Something special? You look very nice today!"  where my brother replied "Nah, I am just going for a walk!". 

He went back to the cockpit arena, bought himself a local beer called Live Lave (I think a pidgin for Liver Lover), bought some lamb clops (those two being cheapest drink and food) and sat on a silent corner away from everyone.  Then in a very weak voice lest someone hear him.... sang "Happy Birthday to Me!" then chomps on the meat and swigs on the bottle.  "Happy birthday to me....", chomps and drinks.


The dawn of a fresh day

Days go fast until Kuya realized his tourist visa is about to expire within days and so he became deeply worried again as nothing really positive has happened yet. Then a new-found friend visited him for a drink and a chat where he asked "Bro, do you know someone who needs a worker? My Visa is about to expire!"  The other replied "Hey, my boss is looking for another manager, I will introduce you to him!".  A ray of hope on a cloudy day.


A Ray of Sunshine

So he went for an interview with this Chinese guy.  My brother is not that fluent in English and with added pressure of landing a job outright, stammered along the way.  Until the Chinese guy spoke in fluent Tagalog (Filipino Language).  Wide-eyed, my brother uttered "Boss, you can speak in Tagalog!" and the Chinese man laughingly replied "Of course I do, I am Pintsik (slang for a Pinoy/Filipino Chinese) kabayan (fellow countrymen), my father is Chinese and my mom is a Filipina!". 

With huge sigh of relief, my brother grabbed both of his hands and said in our native tongue "Boss, please give me a job and you won't regret it!".  And so he was given a job there and then.  Then my brother said "Boss, I have a problem, my tourist visa will expire 3 days from now" where his new boss replied "No problem, give me your passport and I will take care of it!".  Then my brother said  again "Boss, I have one more problem!" where his boss said "What again?" and he replied "Can you give me an advance, my wife has just recently given birth to our son and they don't have money!".  The new boss laughed amused and said "Okay, I will give you your salary for the month in advance!".  Lucky he is part Filipino for he understood? :)

A Great Beginning

To make the long story short, my brother speedily went up the ladder.  He is a hardworking guy, capable, straight, trustworthy and really has the skills and brain.  When he brought me here in PNG in 2007, he is already the Best Manager of the first Company I worked here.  And after our company filed bankruptcy in 2009, he became the General Manager of another company, handling several businesses; while I jumped into this Company I am working now.  Needless to say, he is already earning good.

He had paved the way for all of us who are now here in this Country. Me, my wife, his wife, his in-laws, our cousins, and other non-relatives.  Even all the people I was able to bring here for employment later is because of him for if he has not given me the way, how would I be able to help others as well?

At Present

Through all those trials and hardships, my brother has never changed.  Sure there are times we don't see eye to eye which is natural, but that do not last long.  The next morning we forgive and forget each other without further words.

One attitude that is very unique with my brother is on all of us siblings, he is the most caring, the one who always finds time to call his family.  There are times I wonder how he was able to find time to check on us.  He keeps ringing me just to check on how I was doing. 

We worked very far apart and whenever I broach my plan to go visit him when there is a long weekend, he dissuades me saying it is too far. That I have to fly to Wewak and from there travel hard for 7 to 8 hours on almost impassable muddy roads and rivers to Aitape, his place.  If the water is high, that I have to turn back to Wewak.  That if I succeed, it will only be for max 3 to 4 hours then I have to turn back again so I can report back for work on time.  He wants to be with me but is thinking about my safety and how hard it would be for me to reach him that he kept on dissuading my plans. 

But while we are that far apart, whenever he hears I am traveling to Port Moresby for maybe a reliever admin job, an IT job, troubleshooting, or other matters or before I am going for holidays, he will arrange to fly there as well just so he can see me, his wife and our cousins.  I remember coming back from DevCon, he surprised me again when I arrived back in Port Moresby and saw him.  We drank, tell stories, sang and do a lot of fun stuff for 2 days and 1 night. And during times like those is when I can see him happiest, being with his loved ones

Unlike me surrounded by hundreds of Filipinos here in Lae, he is the only Filipino there on that desolate corner of the country near the mountains and the sea. And he sometimes jokes that his constant drinking buddies who listens to his stories are his two dogs he named Marimar and Fulgoso.  That the moment one of those dogs talks back... that is an indication he needed to go back home to Philippines without argue.

Nevertheless, anyone can imagine how lonely his life is there.  But while he complains now and then about his loneliness, he squared his shoulder because he is being himself, the responsible eldest who always thinks about his love ones and what that salary can provide for his son and partly our family. 

Sadly until the day he died I was not even able to go there; for I met his body in Wewak.  He was choppered halfway and halfway they traveled by road.  My only consolation is that I am the one who brought his body back to the Philippines.  So I have been with him longer until he was buried.

A Bit of Surprise

During the days and nights of his wake, we were all surprised on how many friends and relatives came to be with him during his last days here on earth.  His wake took 6 days and night and our cousin has estimated the average number of people per day and night combined to be around 200.  Those are relatives from both our father and mother's sides and from his wife, previous peers, his highschool friends, new veterinary students from his alma mater CLSU, neighbors and some more people.  Some even traveled very far for a day or two before reaching his house.

But actually we were not that surprised considering how we knew him to be a lovable guy.  For he is a good friend, relative and by far the best kuya not only to me but also to our cousins.  No matter what he says first, in the end he always helps those who are in dire financial needs.  He is the best father for Ivan and the best son of our Mom.  I won't and can't compete on that level.


Lasting Memories

When he is still living, sometimes, I get sort of annoyed especially when I am up to my neck and he would call just to say "How are you?" or repeatedly asks me about some simple things. I created this write up as the moment I arrived back in my office Wednesday morning, I suddenly half expected his calls asking "Jun, how is your vacation? How is your flight?  You okay? How is your wife? How is mom and Ivan?".  Simple words that I sometimes took for granted is now echoing back on my mind and is stabbing deeply in my heart. I never thought before how lucky I am to have a big brother who always wants to ensure that everything is okay on our side.

My brother died very young at the age of 46 years old of stroke.  But his legacy will live on with all of us younger siblings and relatives.  And so I always say when someone mentioned that he died young that "While it is indeed short, it is nevertheless a colorful and a fruitful life!" which is what I do believe in my heart. 

I never for once thought there is something called Best Kuya (Big Brother) but now I know and believe there is.  Kuya Obet, you are the best kuya for me and without argument to our younger cousins.  Everyone of us believes your soul is finally at peace with the Almighty God.  That is how we who loves you console each other.

OFWs Around The World

Overseas Filipino Workers (OFWs), in our country are envied by others.  Because we do earn more than our peers back in the Philippines.  They always say how lucky we are and that sort but they fail to consider the sacrifices we do to earn money for the family.  How hard it is for us to be working very far away for and from our love ones.

My late brother is a good example of this.  Despite his isolation and loneliness, despite his health conditions, he shrugged his shoulders and braved the times.  He has told me countless times how tired he is already working abroad and how he yearned to be working back in the Philippines to be with his son and our Mom.  While I told him he can count on my assistance, time and time again however he has second thoughts about this because he is always taking in consideration the bread that will be brought to the table so to speak.  That is how OFWs think.

Most of the time, we post our pictures with all smiles as if we are really very lucky and have no worries in life.  But the truth is those are the rare moments we smile and laugh.  So we immortalize those pictures for our love ones to see; so they won't worry.  Here is one OFW quote I saw, author unknown:

"When there's a problem, just cry it out,  wipe the tears,  adjust the dress, comb the hair, then SMILE.  Life goes on!"



by Jun Tangunan (noreply@blogger.com) at September 12, 2014 05:01 AM

September 11, 2014

FoxProWiki

FoxForum.Com

Editor comments: Down?

September 11, 2014 11:36 PM

FoxCentral News

Chicago FUDG meets Monday 15 Sep 2014

 September's Chicago FUDG meeting will feature Toni Feltman practicing her SWFox sessions; "I Need a REST!" and "Should I be Concerned?" More info and detailed descriptions at http://www.ChicagoFUDG.com. Save the date for our next meeting: Tuesday 14 Oct 2014 featuring Christof Wollenhaupt as our speaker.

by Chicago FoxPro Users and Developers Group at September 11, 2014 10:27 PM

FoxProWiki

ChicagoFUDG

Editor comments: September meeting details

September 11, 2014 09:20 PM

UpcomingEvents

Editor comments: Chicago FUDG upcoming meetings
A place to list upcoming Visual FoxPro events like conferences, meetings, user groups, open training sessions...
Closest at the top please, and please remove past events.

September 11, 2014 09:05 PM

Alex Feldstein

September 10, 2014

VisualFoxProWiki

SouthwestFox

Editor comments: Updated news

Southwest Fox 2014


October 16-19, 2014
SanTan Elegante Conference & Reception Center > in Gilbert, Arizona<br> <br> <a href=http://swfox.net
Blog: http://swfox.net/blog/index.php
RSS/Atom: http://swfox.net/blog/feed
Twitter: http://twitter.com/swfox

September 10, 2014
Alaska Software is offering special discounts on Xbase++ 2.0 for Southwest Fox and Southwest Xbase++ 2014 attendees.

August 22, 2014
Alaska Software has a news release titled "Xbase++ meets Visual FoxPro" in which they discuss the relationship between Xbase++ and VFP and what their sessions at Southwest Xbase++ will cover.

July 28, 2014
Listen to Andrew MacNeill interview Rick Schummer, Tamar Granor, and Doug Hennig about Southwest Fox 2014 on the
FoxShow #79. If you haven't registered yet, be sure to listen for a special offer in the show.

July 11, 2014
The winners of the White Light Computing scholarships are Michael Hogan and David Dulberg. The winner of the Tomorrow's Solutions scholarship is Patrick Murtaugh. The winner of the Stonefield Query SDK is Randy Godfrey.

 class= May 27, 2014
Registration for Southwest Fox and Southwest Xbase++ 2014 is now open.

 class= May 15, 2014
Speakers and sessions for Southwest Fox and Southwest Xbase++ 2014 have been announced.

 class= March 6, 2014
Geek Gatherings invites prospective speakers to submit session proposals for Southwest Fox and Southwest Xbase++ 2014. See http://www.swfox.net/CallForSpeakers.aspx for details.

January 7, 2014
The dates for Southwest Fox and Southwest Xbase++ 2014 have been announced: October 16-19, 2014.

We look forward to seeing you in Arizona in October!

Regards,
Rick Schummer
Doug Hennig
Tamar Granor

September 10, 2014 10:01 PM

FoxCentral News

Southwest Fox/Xbase++ 2014: Discounts Announced

Alaska Software is offering special discounts on Xbase++ 2.0 for Southwest Fox and Southwest Xbase++ 2014 attendees, as follows: 1) Xbase++ 2.0 is available and shipping September 30, 2014. 2) Prerequisite for this offer is registration to Southwest Xbase++ or Southwest Fox conference 2014. 3) Get a 30% discount for all new customers purchasing Foundation Edition 2.0 (regular price USD $1,199) or Professional Edition 2.0 (regular price USD $1,999). 4) Get an additional 10% Competitive Upgrade, if you provide proof of purchase of VFP 9 or Clipper. 5) All attending Southwest Xbase++ who have a subscription (purchased in last 12 months) get 3 months extension for their current subscription. How does this offer work? Simple: you contact Alaska Software at their booth during the conference, place your order, and get the boxed Xbase++ 2.0 DVD on the spot. This is also true for the active Xbase++ users who stop in at the Alaska Software booth. Regardless of which edition of Xbase++ 2.0 you purchase, your savings goes a long way towards paying for the conference ticket. We want to make Alaska?s offer even more attractive, so we?re extending our early-bird pricing for Southwest Fox/Xbase++ right up until Xbase++ 2.0?s September 30 ship date. Register for either conference before midnight September 30 and get a $50 discount; pay only $745.

by Southwest Fox Conference at September 10, 2014 09:59 PM

Shedding Some Light

Southwest Fox/Xbase++ 2014: Discounts Announced

Alaska Software is offering special discounts on Xbase++ 2.0 for Southwest Fox and Southwest Xbase++ 2014 attendees, as follows:

  • Xbase++ 2.0 is available and shipping September 30, 2014.
  • Prerequisite for this offer is registration to Southwest Xbase++ or Southwest Fox conference 2014.
  • Get a 30% discount for all new customers purchasing Foundation Edition 2.0 (regular price USD $1,199) or Professional Edition 2.0 (regular price USD $1,999).
  • Get an additional 10% Competitive Upgrade, if you provide proof of purchase of VFP 9 or Clipper.
  • All attending Southwest Xbase++ who have a subscription (purchased in last 12 months) get 3 months extension for their current subscription.

How does this offer work? Simple: you contact Alaska Software at their booth during the conference, place your order, and get the boxed Xbase++ 2.0 DVD on the spot. This is also true for the active Xbase++ users who stop in at the Alaska Software booth.

Regardless of which edition of Xbase++ 2.0 you purchase, your savings goes a long way towards paying for the conference ticket.

Geek Gatherings wants to make Alaska’s offer even more attractive, so we’re extending our early-bird pricing for Southwest Fox/Xbase++ right up until Xbase++ 2.0’s September 30 ship date. Register for either conference before midnight September 30 and get a $50 discount; pay only $745.

by Rick Schummer at September 10, 2014 09:55 PM

Doug Hennig

Discounts for Southwest Fox/Xbase++ 2014 Attendees

Alaska Software is offering special discounts on Xbase++ 2.0 for Southwest Fox and Southwest Xbase++ 2014 attendees, as follows:

  • Xbase++ 2.0 is available and shipping September 30, 2014.
  • Prerequisite for this offer is registration to Southwest Xbase++ or Southwest Fox conference 2014.
  • Get a 30% discount for all new customers purchasing Foundation Edition 2.0 (regular price USD $1,199) or Professional Edition 2.0 (regular price USD $1,999).
  • Get an additional 10% Competitive Upgrade, if you provide proof of purchase of VFP 9 or Clipper.
  • All attending Southwest Xbase++ who have a subscription (purchased in last 12 months) get 3 months extension for their current subscription.

How does this offer work? Simple: you contact Alaska Software at their booth during the conference, place your order, and get the boxed Xbase++ 2.0 DVD on the spot. This is also true for the active Xbase++ users who stop in at the Alaska Software booth.

Regardless of which edition of Xbase++ 2.0 you purchase, your savings goes a long way towards paying for the conference ticket.

We want to make Alaska’s offer even more attractive, so we’re extending our early-bird pricing for Southwest Fox/Xbase++ right up until Xbase++ 2.0’s September 30 ship date. Register for either conference before midnight September 30 and get a $50 discount; pay only $745.

by Doug Hennig (noreply@blogger.com) at September 10, 2014 08:48 PM

Alex Feldstein

Photo of the Day



Another view of the Sawyer Glacier in Tracy Arm Fjord (Southeast) Alaska, between Ketchikan and Juneau.
The weather in Ketchikan was rainy as always so the colors are subdued due to the clouds and mist. They call the area the "Misty Fjords" for a reason!

by Alex Feldstein (noreply@blogger.com) at September 10, 2014 05:09 AM

September 09, 2014

Alex Feldstein

Photo of the Day


Celebrity Solstice
Too close and too big to take a whole-ship photo.
This was when docked in Victoria, BC, Canada on our trip to Alaska.

by Alex Feldstein (noreply@blogger.com) at September 09, 2014 11:58 PM

September 08, 2014

Alex Feldstein

Rick Strahl's Web Log

A .NET QueryString and Form Data Parser

Querystring and form data parsing and editing is something that I seem to run into from time to time in non-Web applications. Actually, it’s easy enough to do simple parsing in Web applications that use System.Web using the HttpUtility.ParseQueryString() method or simply using HttpWebRequest’s methods. If you’re inside of an ASP.NET Web app, see the end of this article.

But if you’re not working within the scope of System.Web, there’s not a ton of support for manipulating form data or query string values via code. Heck it’s a pain even in ASP.NET Web API or SignalR if you’re self or OWIN hosting,  where there’s no real interface to create or even easily read raw form and query string data. For client side applications in particular the lack of this functionality can be a pain. I’ve been guilty of adding System.Web from time to time just for this functionality, which is not a good idea due to the sheer size of System.Web.

It makes you wonder why this sort of functionality isn’t provided natively in the base framework in System.NET since it’s needed for all sorts of client side HTTP scenarios, from constructing client side requests with HttpWebRequest to server side manipulation of URLs, or even using the frameworks that don’t have built in parsing and update support. Even the new HttpClient class doesn’t have good support for form data creation although it can at least be done. Either way I’ve run into having to manipulate url encoded often enough that it’s gotten me to do something about it.

To wit, currently I’m working on West Wind WebSurge and one useful feature improvement request I’ve had is to add the ability to override provided query string parameters with custom query string key/value pairs provided by the user when a test is run. Internally I use HttpWebRequest to fire previously captured requests, and each request is filtered/modified based on a number of request modifiers that can be set. For querystring values this is useful for changing fixed ids or ‘license plate’/token query string parameters when the URL executes to match a specific user context. You can also change other things like Cookies or Authentication headers, but that’s not part of this discussion here.

A UrlEncodingParser Class

I’ve  needed to parse, write or update querystrings or form data a few times before and because it’s not exactly rocket science I’ve usually in-lined a bit of code that handles the simple things I needed to do – it worked but it’s ugly. Well, no more! This time I decided to fix this once and for all by creating a small helper class that handles this problem more generically.

The class does the following:

  • Takes raw Query String or Form data as input
  • Optionally allows a full URL as input – if a URL is passed the query string data is modified
  • Allows reading of values by key
  • Allows reading of multiple values for a key
  • Allows modifying and adding of keys
  • Allows for setting multiple values for a single key
  • Allows writing modified data out to raw data or a URL if a URL was originally provided

This is perfect for URL injection or for applications that need to build up raw HTTP form data to post to a server.

Using UrlEncodingParser

This class is based on the NameValueCollection class, which is also used by System.Web’s various key value collections like QueryString, Form and Headers. One of the unique things about this collection class is that it’s optimized for fast retrieval and explicitly supports multiple values per key.

My simple implementation of UrlEncodingParser subclasses NameValueCollection and adds the ability to parse an existing urlencoded string or full URL into it, allows for modification including adding multi-values for keys, and then can output the urlencoded data including a full URL if one was passed in using ToString().

Because of the reuse of NVC using UrlEncodingParser should feel familiar. Here’s is an example:

[TestMethod]
public void QueryStringTest()
{
    string str = "http://mysite.com/page1?id=3123&format=json&action=edit&text=It's%20a%20brave%20new%20world!";

    var query = new UrlEncodingParser(str);

    Assert.IsTrue(query["id"] == "3123");
    Assert.IsTrue(query["format"] == "json","wrong format " + query["format"]);
    Assert.IsTrue(query["action"] == "edit");

    Console.WriteLine(query["text"]);
    // It's a brave new world!

    query["id"] = "4123";
    query["format"] = "xml"; 
    query["name"] = "<< It's a brave new world!";

    var url = query.ToString();

    Console.WriteLine(url);
    //http://mysite.com/page1?id=4123&format=xml&action=edit&
    //text=It's%20a%20brave%20new%20world!&name=%3C%3C%20It's%20a%20brave%20new%20world!
}

This code passes in a full URL, checks the input values, then modifies and adds one, then writes out the modified URL to a new string. I’m using a URL here which allows preserves the original base URL and simply appends the new/modified query string. But you could also pass the raw URL encoded data/querystring in which case you get just that data back.

The parser also supports multiple values per key, since that’s a supported feature for Form variables at least (not for query strings though).

[TestMethod]
public void QueryStringMultipleTest()
{
    string str = "http://mysite.com/page1?id=3123&format=json&format=xml";

    var query = new UrlEncodingParser(str);

    Assert.IsTrue(query["id"] == "3123");
    Assert.IsTrue(query["format"] == "json,xml", "wrong format " + query["format"]);
    Console.WriteLine(query["text"]);

    // multiple format strings
    string[] formats = query.GetValues("format");
    Assert.IsTrue(formats.Length == 2);

    query.SetValues("multiple", new[]
    {
        "1",
        "2",
        "3"
    });

    var url = query.ToString();

    Console.WriteLine(url);

    Assert.IsTrue(url ==
    "http://mysite.com/page1?id=3123&format=json&format=xml&multiple=1&multiple=2&multiple=3");
            
}

Show me the Code

The implementation of this simple class is straightforward, although I ended up experimenting a bit with various dictionary types before I realized that I had to support multiple values per key in order to support Form data, which led me to the NameValueCollection class. The beauty of that is that very little code is required as the key/value management is completely handle by the base – I only had to add parsing a couple of specialty overrides.

Here’s the complete code (you can also find the code on Github):

/// <summary>
/// A query string or UrlEncoded form parser and editor 
/// class that allows reading and writing of urlencoded
/// key value pairs used for query string and HTTP 
/// form data.
/// 
/// Useful for parsing and editing querystrings inside
/// of non-Web code that doesn't have easy access to
/// the HttpUtility class.                
/// </summary>
/// <remarks>
/// Supports multiple values per key
/// </remarks>
public class UrlEncodingParser : NameValueCollection
{

    /// <summary>
    /// Holds the original Url that was assigned if any
    /// Url must contain // to be considered a url
    /// </summary>
    private string Url { get; set; }

    /// <summary>
    /// Always pass in a UrlEncoded data or a URL to parse from
    /// unless you are creating a new one from scratch.
    /// </summary>
    /// <param name="queryStringOrUrl">
    /// Pass a query string or raw Form data, or a full URL.
    /// If a URL is parsed the part prior to the ? is stripped
    /// but saved. Then when you write the original URL is 
    /// re-written with the new query string.
    /// </param>
    public UrlEncodingParser(string queryStringOrUrl = null)
    {
        Url = string.Empty;

        if (!string.IsNullOrEmpty(queryStringOrUrl))
        {
            Parse(queryStringOrUrl);
        }
    }


    /// <summary>
    /// Assigns multiple values to the same key
    /// </summary>
    /// <param name="key"></param>
    /// <param name="values"></param>
    public void SetValues(string key, IEnumerable<string> values)
    {
        foreach (var val in values)
            Add(key, val);
    }

    /// <summary>
    /// Parses the query string into the internal dictionary
    /// and optionally also returns this dictionary
    /// </summary>
    /// <param name="query">
    /// Query string key value pairs or a full URL. If URL is
    /// passed the URL is re-written in Write operation
    /// </param>
    /// <returns></returns>
    public NameValueCollection Parse(string query)
    {
        if (Uri.IsWellFormedUriString(query,UriKind.Absolute))
            Url = query;

        if (string.IsNullOrEmpty(query))
            Clear();
        else
        {
            int index = query.IndexOf('?');
            if (index > -1)
            {
                if (query.Length >= index + 1)
                    query = query.Substring(index + 1);
            }

            var pairs = query.Split('&');
            foreach (var pair in pairs)
            {
                int index2 = pair.IndexOf('=');
                if (index2 > 0)
                {
                    Add(pair.Substring(0, index2), pair.Substring(index2 + 1));
                }
            }
        }

        return this;
    }

    /// <summary>
    /// Writes out the urlencoded data/query string or full URL based 
    /// on the internally set values.
    /// </summary>
    /// <returns>urlencoded data or url</returns>
    public override string ToString()
    {
        string query = string.Empty;
        foreach (string key in Keys)
        {
            string[] values = GetValues(key);
            foreach (var val in values)
            {
                query += key + "=" + Uri.EscapeUriString(val) + "&";
            }
        }
        query = query.Trim('&');

        if (!string.IsNullOrEmpty(Url))
        {
            if (Url.Contains("?"))
                query = Url.Substring(0, Url.IndexOf('?') + 1) + query;
            else
                query = Url + "?" + query;
        }

        return query;
    }
}

Short and simple – makes you wonder why this isn’t built into the core framework, right?

This code is self-contained so you can just paste it into your app, or you can get it as part of the Westwind.Utilities library from Nuget.

Applying it in my App

So inside of WebSurge I need to do URL replacement and it’s a cinch to do now by simply reading the original URL and its query string parameters and updating it with values from the list that the user provided.

The helper function that does this looks like this:

private string ReplaceQueryStringValuePairs(string url, string replaceKeys)
{
    if (string.IsNullOrEmpty(replaceKeys))
        return url;

    var urlQuery = new UrlEncodingParser(url);
    var replaceQuery = new UrlEncodingParser(replaceKeys);

    foreach (string key in replaceQuery.Keys)
    {
        urlQuery[key] = replaceQuery[key];
    }

    return urlQuery.ToString();
}

Notice that this routine passes in a full URL and the URL is preserved by the parser which is a nice bonus feature and avoids having to deal with the logic of extracting and then re-appending the query string reliably with or without the ? required, which makes the app level code much cleaner.

If using System.Web, you can use HttpUtility

As I mentioned at the beginning if you’re inside of the context of a Web application you can easily use the HttpUtility class and it the ParseQueryString() method which provides you with a NameValueCollection that provides most of the same functionality. It won’t parse existing URLs and return them to you, but it will let you manage the actual UrlEncoded data.

Here’s an example of manipulating raw data similar to what I showed earlier:

var str = "id=123312&action=edit&format=json";
var query = HttpUtility.ParseQueryString(str);
query["Lang"] = "en";
query["format"] = "xml";
Console.WriteLine(query.ToString());
// id=123312&action=edit&format=xml&Lang=en

You can also create an empty collection that you can add to with:

var query = HttpUtility.ParseQueryString("");

It’s just a bummer that these general formatting routines are tied up in System.Web, rather than in System.Net with all the rest of the URI related formatting where it belongs. Well, maybe in the future.

In the meantime the above helper class is a way to easily add this functionality to your non-Web apps. Hope some of you find this useful.

Resources

© Rick Strahl, West Wind Technologies, 2005-2014
Posted in .NET  ASP.NET  C#  

by Rick Strahl at September 08, 2014 05:28 PM

Alex Feldstein

September 07, 2014

Alex Feldstein

Alaska!


Last week we took a cruise to Alaska!
We went on the Celebrity Solstice, from Seattle to Southeast Alaska.
The photos you saw here last week were pre-posted, from photo outings earlier this year.
I came back with lots of images from the trip, which will be showing up here in the future (and always all of them in my website of course).

This is the Sawyer Glacier in Tracy Arm in Southeast Alaska, between Ketchikan and Juneau.
The weather did not help in Ketchikan, rainy as always (no wonder they call the area the Misty Fjords!).

by Alex Feldstein (noreply@blogger.com) at September 07, 2014 11:48 PM

September 06, 2014

Alex Feldstein

September 04, 2014

Alex Feldstein

September 03, 2014

Rahul Desai's Blog

Verifying the Security of Cloud Services for Australian Government

Guidance on verifying the security of cloud services for Australian Government…

The Australian Attorney Generals Department has released a revised framework for assessing compliance and risk for cloud services.  Microsoft welcomes this forward-looking guidance that describes a streamlined decision-making process while reinforcing the need for risk assessment and compliance with Australian security requirements.

Microsoft is making available an assurance handbook consistent with this new guidance that enables any organisation to compare alternative cloud services on the basis of capability, compliance and risk.  This handbook is technology and service agnostic and can be used for any cloud service from any cloud provider….more @ the link below:

Verifying the Security of Cloud Services for Australian Government – GovTech – Microsoft Australia Government Affairs Blog – Site Home – MSDN Blogs

by Rahul Desai at September 03, 2014 10:47 PM

Government rolls back dual ministerial offshore cloud approval

Government departments will no longer need to seek ministerial approval from their portfolio minister and the attorney-general to move their cloud-based IT services offshore, with the Australian federal government rolling back the requirement which was introduced by the previous Labor administration…more @ the link below:

Government rolls back dual ministerial offshore cloud approval | ZDNet

by Rahul Desai at September 03, 2014 05:35 AM

Alex Feldstein

September 02, 2014

VisualFoxProWiki

UpcomingEvents

A place to list upcoming Visual FoxPro events like conferences, meetings, user groups, open training sessions...
Closest at the top please, and please remove past events.

September 02, 2014 09:12 PM

FoxCentral News

Philadelphia VFP User Group meets September 9--Tamar Granor on T-SQL

The next meeting of the Philadelphia VFP User Group will be Tuesday, September 9at 7 PM in Room 158, DeVry University, 1140 Virginia Drive, Fort Washington, PA. As usual, feel free to bring something to eat and arrive as early as 6:30. We continue our Southwest Fox previews this month. Tamar Granor will be rehearsing her session ?Go Beyond VFP's SQL with SQL Server?. Abstract: The subset of SQL in Visual FoxPro is useful for many tasks. But there's much more to SQL than what VFP supports. Those additions make it easy to do a number of tasks that are difficult in VFP. In this session, we'll solve some common problems, using SQL elements that are supported by SQL Server, but not by VFP. Among the problems we'll explore are combining a set of values contained in multiple records into a delimited list in a single record, working with hierarchical data like corporate organization charts, finding the top N records for each group in a result, and including summary records in grouped data.

by Philadelphia Visual FoxPro User Group at September 02, 2014 08:18 PM

VFP Philly

September 9: Tamar Granor on SQL Server



Our next meeting will be next Tuesday, September 9. We continue our Southwest Fox previews this month. Tamar Granor will be rehearsing her session “Go Beyond VFP's SQL with SQL Server”.

Abstract: The subset of SQL in Visual FoxPro is useful for many tasks. But there's much more to SQL than what VFP supports. Those additions make it easy to do a number of tasks that are difficult in VFP.

In this session, we'll solve some common problems, using SQL elements that are supported by SQL Server, but not by VFP. Among the problems we'll explore are combining a set of values contained in multiple records into a delimited list in a single record, working with hierarchical data like corporate organization charts, finding the top N records for each group in a result, and including summary records in grouped data.

Southwest Fox previews will continue on October 14 when Toni Feltman will present (remotely) both of her Southwest Fox sessions: I Need a REST!and
Should I be Concerned?


by Tamar E. Granor (noreply@blogger.com) at September 02, 2014 08:09 PM

Articles

How to avoid accidental app purchase

Handing over your Droid to one of your children might be an option to entertain them but be aware that one of the highest revenue is generated by advertisement, app and in-app purchases. Sometimes, this might be kind of surprising for you to discover that your credit card has been charged. You should keep an eye on the payment settings on your device, too.

Lately, we were joking about this on some social media network, and we heard about some expensive adventures from our friends...

Check your credit card statements regularly

If you don't... Well, eventually you might find some "unknown" transactions on your credit card statement. I already had this pleasure thanks to my little engineers (read: cutie monsters). Yesterday night I went to check the balance and transactions of last month and was kind of surprised to see this:

Check your credit card statements regularly for unknown transactions.
Check your credit card statements regularly for unknown transactions. Specifically those ones prefixed by "Google *". It might be surprising...

Yup, clearly a transaction I'm 100% sure that it wasn't done by myself.

Let's do a quick root cause analysis

Finding the source of this issue was quite easy. I started with a search on Google using the keyword presented on the account statement: 7Druids. Skimming the results brought me directly into the Play Store, and I was presented with quite a number of apps for children and some for grown-ups, too.

7Druids GmbH has a selection of apps for children and adults.
7Druids GmbH has a selection of apps for children and adults.

Following the breadcrumbs I found out which app might have been the root cause. Turns out someone likes to paint on Android...

Well, children usually like Kids Play Puzzle Paint. The app seems to be available for free but in-app purchases not.
Well, children usually like Kids Play Puzzle Paint. The app seems to be available for free but in-app purchases not.

But at least in our house-hold one question remained open: One which device did it happen?

{loadposition content_adsense}

Even though the app has been installed already, you can still again on the Installed button and you will be presented with a drop-down selection of compatible devices. But most interestingly, you will also get the information on which smartphone or tablet the app has been installed already.

Finding out on which device the app has been installed is visible in the drop down selection.
Finding out on which device the app has been installed is visible in the drop down selection.

Aha, there we go... Not my one! I guess, I have to have a word with my BWE. Anyway, let's see how we can avoid this kind of unattended in-app purchase.

How to prevent accidental purchases?

Actually, it's very simple to improve the situation on your device. In case that you have multiple devices running on the same Google account, you have to go through the steps on every smartphone or tablet in order to maximise protection.

  • Go into the Settings of the Play Store app,
  • Check the User Controls section, and
  • Adjust the setting of Require password for purchase.

By default it's configured as Never.
Change it to one of the other available options, confirm the change with your Google account password and you're done.

BTW, this is official procedure from the Help section of the Google Play Store: Use password protection for purchases

Anything else?

Yes, there are additional options you might take into consideration, like not providing any credit card at all in Google Wallet. In my case, I'm actually using a dedicated credit card which I more or less use for online expenses exclusively. Furthermore, the credit limit on that particular card is very low. In case of the inevitable event the damage won't be too high after all.

Did you already have this kind of experience?
Do you have any additional tipps and tricks dealing with this kind of situation?

Leave a comment... 

by Jochen Kirstaetter (jochen@kirstaetter.name) at September 02, 2014 04:09 PM

Alex Feldstein

September 01, 2014

Alex Feldstein

August 31, 2014

www.atoutfox.org - Contributions

Fonctions avec Active Directory et LDAP

Voici quelques fonctions utiles pour gérer les usagers dans Active Directory avec Foxpro. Ces fonctions requiert que vous soyez sur le meme serveur (ou sur le meme LAN) qu'Active Directory. Et il faut agir comme administrateur.

by Mike Gagnon at August 31, 2014 06:02 AM

Alex Feldstein

Articles

MSCC: Entrepreneurship and start-up culture (in Mauritius)

Logo of the Mauritius Software Craftsmanship CommunityAfter skipping a monthly meetup back in July it was highly anticipated that we are going to get together again during August. And wow, what an experience it has been... Not only the event itself but also the week before, and topics and conversations during the meeting, and the first responses and comments these days. But let's start from the beginning and let me directly announce this: New Record!

Yes, we did it once more again, and topped the previous number of attendees. Prior to the meetup we already had 29 member and 3 guest registration, and yesterday we had about 35 IT-loving craftsmen literally cramped into both meeting rooms at the Ebene Accelerator - Thanks again!

Quite frankly, it was packed early, and new arrivals were still coming. Awesome!

Meetup announcement: Entrepreneurship and start-up culture (in Mauritius)

Having the idea of starting your business is always a great opportunity. And with the right concepts, perseverance and consistency of doing things, you will likely be successful. But the path to success is full of obstacles and problems to be solved. Just too often it happens that young people fail in their persuade to glory due to small issues not thought about or misleading information.

This month's meetup is about the experience of existing start-ups and recent entrepreneurs here on the island. We are going to have a group of people to report about their journey, to share their knowledge, and to exchange about some nasty issues that might arise on your way to run your own business.

Everyone is largely invited to join our community meetup, and get some inspiration, some answers, and maybe also great ideas for new business opportunities on the way.

Our guest speakers in order of appearance:

As you can see, the meeting was put up with a high emphasis on real world experience and sharing of knowledge. Something surely to talk about and discuss in a room.

My first thoughts...

Alright, let me quickly note down my first impression of our get-together and then guide you through some of the details:

"It was a very interesting monthly meetup and lots of information, different opinions and serious business advice. It was great to see the variety of obstacles faced and managed...

And thanks to our mixture of speakers from Mauritius, Switzerland, India, and indirectly from France and Germany at least I had a good insight on various topics, attitudes and recommendations.

Looking forward to a follow up on this topic in the near future... Maybe as an Happy Hour at another premise. ;-)"

Truly, it was a great experience to have this kind of variety in terms of business experience and opinions. I got a lot of new input for my own business at IOS Indian Ocean Software Ltd. and some great advice to follow up during the next couple of weeks.

Reactions of other attendees

As usual, I'd like to give you feedback from other craftsmen first:

"Oh it was very inspiring, learned new Awesome stuffs and enjoy a lot to discover new opportunities, tips and tricks and most of all I got to increase my networking with new guys with crazy horizon :)" -- Shamsher on event comments

"Great session - I loved the different perspectives presented today." -- Dan on event comments

"This community is doing some Great stuffs and I recommend to any developer to check them out. You have everything to gain from it, nothing to lose I was so focused on the presentations that I just couldn't take more pics" -- Kevin on Facebook

"They [Vincent and Louis] stressed on the facilities provided by Ebène Accelerator and how it was relatively easy to set up a business in Mauritius. As at date they have a lot of Mauritian customers and shared tips that should be useful to those wishing to have their startup at the incubator." -- Ish on Talks on Entrepreneurship

"Absolutely awesome guys, very interesting to hear all those opportunities & challenges facing startups in Mauritius." -- Parvez on event comments

Overall, I’m glad I attended the session. Clearly, the MSCC is gaining traction! I’ve never seen that conference room so full. Soon, we’ll need a new venue. I’ll be inviting some of my colleagues to more of these sessions later on. I highly recommend them. -- Sean on MSCC: Talks on Entrepreneurship

Getting such an early (and spontaneous) feedback from our members is just great, and tells me that we really hit a nerve here on the island. The Mauritius Software Craftsmanship Community is steadily growing and until today we have more than 180 registered people. Hopefully, we will be able to cross the 200 before the end of the year.

Aspects of entrepreneurship (by experience)

Dear reader, the following bullet points are related to the conversations and exchange we had during our meeting and are purely based on subjective experience of each and everyone. I'm trying to sum up some of the more relevant aspects of our various conversations and Q&A sessions. So, please don't take all of this for granted and evaluate some statements clearly as opinions, eventually as some guidance. Now, let the fun begin...

Gain some experience as an employee first

Through out the bench of guest speakers all of them started as an employee. Except myself, I had to learn it the hard way and went into employment after one year of miserable results in my first company. In general, it is clearly advised by each and every one sharing their experience as a business owner that should get into business as an employee first. See how the real world of labour is ticking, take notes and learn from others experience. Yes, you might argue that it's faster to jump into the pond to learn how to swim but you know there have been cases where people simply drowned.

Of course, you should be selective regarding your first job(s) and take care that you're not working for some miserable low salary but your focus should be learning about customer facing situation, how to deal with contracts and learn about negotiations with your superiors or during meetings with clients.

If you have a look at the big shots of our time, a huge number of founders, CEOs, and managing positions were employees for a couple of years in the first place. In most cases their own business spun off with an idea left unsatisfied by their employer. And that's something you should take into consideration.

A problem to be solved...

As just mentioned, a lot of company founders develop a business idea based on an existing, real-world problem which hasn't been addressed by anyone else before (or in a very poor, unsatisfying way). This is even more important to recognise when you're about to develop your business around a product or services compared to freelancing. More about that below.

As you might start to work as an employee always keep your eyes open for existing problems. Take customer complains or requests as a source of opportunity. Always remember the following proverb:

One man's trash is another man's treasure

Discovering, exploiting and solving a problem is much likely a permission to print money. Pay attention to what people are saying regarding their problems and surely you'll find a bunch of ideas and business opportunities.

Communication, communication, and... communication

As a business owner you have to be customer facing and somehow outgoing. If you're an introvert person, please think twice if that's what you're after.

Communication I - You should have the ability to converse with your clients and leads regarding the services and products you're offering in your company. As for speaking to leads you have to be focus on the pitch and be spot-on right about the terms you use. This also depends on the type of audience you're addressing but usually it involves to leave the tech-talk in the lowest drawer at home. Know and learn how to speak business and seize all kind of opportunities to get in touch with people. Keep your perseverance and don't get discouraged on denials. Always keep the conversation on a professional level.

Communication II - Have regular meetings with your partners and team members. It's not about checking on them but to get yourself into the right spot to understand their ideas, perspective and concerns regarding the business in general or specific products. Remember, your own ideas always appear brilliant to yourself but get them validated by others and listen to their feedback. Develop the ability to handle criticism in a positive way because if something has been voiced out there's always a reason to do so, and your own experience is obviously limited to yourself, so take advantage from other people's input and use it as an opportunity to learn, to improve, and to provide a better solution than what you're offering right now.

Communication III - Proper choice of media. Although, it wasn't explicitly mentioned I'd like to add this based on my own way of communicating with my peers, and on recent conversations I had with a good number of contacts in my professional network. Give yourself a guideline regarding your choice and preferred type of communication. Most of the time it should be in a written manner like email or instant messaging, especially when dealing with clients. But sometimes, there are occasions when it is more appropriate to actually pick up the phone (or any voice-based solution) and have a decent one-to-one conversation.

And last but not least keep in touch with your clients irregularly. It's always great to show your appreciation for their business and that you're actually caring about them. And you never know, knocking at someone's door just to say "Hello" might give you opportunities and generate new business, too.

Lone warrior or team player?

Well, on this aspect we had clearly two parties and opinions...

Personally, I'd recommend to team up with someone you trust and can rely one, but the arguments regarding souvereignty and decision making processes puts some weight on the other side of the equation. Frankly, I'd say this is a very personal decision as it is hard to find the right people to go into business with, especially while founding a start-up and you need to know whether the relationship will make it or break it during tough times, too.

As an entrepreneur you'll have to go extra-miles without any doubts, and you ask yourself whether you have the perseverance to push through it on your own or whether you prefer to have a professional business partner at your side who might be able to literally kick your ass to keep things moving forward. Of course, it's not an easy decision but having a look at some of the most successful companies nowadays might give you a hint (or not) ;-) - Talking about Apple, Google, Facebook, Tesla Motors, LinkedIn, Amazon, Microsoft, etc.

Get experts on board (from the very beginning)

Despite your initial decision whether you're going to start your business on your own or to team up with another co-founder you should always take care to get a professional from the accounting department and another expert in the legal department into your company. There are a variety of ways on how to achieve that. And quite frankly it doesn't matter how to get them on board but don't proceed without those two essential knowledge assets.

In terms of priority you should get an accountant first, legal support might come into business on its own. But more on that below.

Freelancing / services or product oriented business?

Whether you are about to start freelancing and offering your resource and knowledge to other people or you're going to develop a set of professional services or products doesn't really matter in terms of starting your own business as long as you're about to solve an existing problem of others. During the various stints of our speakers it was mentioned multiple times that a business is more likely to be focused on a specific field of operations.

Some were addressed by friend or another business owner whether it would be possible to help to improve their workflows with some software to be written, or to spice up someone's online marketing with a newly designed and developed web site, or by providing a shopping experience here on the island. Clearly, there was always a very specific problem that ignited a business idea and then developed into a solution to that.

But you should also take into consideration that your choice of business model has different aspects of revenue. If you're more likely to operate on a freelancing mode you have to take care of acquisition of new clients on a regular base. Meaning you going to spend to good number of hours per day, per week, per month to look out for potential projects and business opportunities. Not only does this reduce your productive time (meaning chargeable to the client) but it might be cumbersome doing it all over again and over a long period of time. Yes, you might start your business based on an initial project or assignment but bear in mind that this assignment is going to be completed and done one day. It's in your responsibility to monitor the market for new projects and keep up a continuous flow of income. If you're more likely to provide a product-oriented solution you might have to face a initiation phase without being able to generate any kind of revenues. Since a couple months (or even years) there is a growing movement towards crowd-founding such product-based solutions.

Getting more money into the business - Do's and Don'ts

Be truthful, financial aid for your business is always welcoming and it will give you peace of mind. Knowing that there are enough funds on the bank account allows you to focus on your work or product(s), and nurtures your curiousity to delve deeper in some fields of business or technology. Without any source of regular income or proper funding it won't be "fun" to start your business but let's not forget that some great businesses where literally build on nothing.

Okay, let's see what should take into consideration for your business. During the meeting we came across a variety of potential solutions - partly contradictory to each other and served with different levels of experience - positive as well as negative ones.

One argument somehow stood out clearly compared to others: Don't ask your (or any) bank for money.

Although the procedures of writing your business plan, summing up the figures, your estimations on expenses and your predictive forecast on the revenues during the first, second and follow-ups isn't a bad exercise after it remains most commonly an exercise while dealing with the board committees at the bank. Don't get me wrong on this here, yes write a business plan but don't take it to a bank. They literally won't be able to grasp your business idea(s): "They simply don't get it."

Dealing with your bank is inevitable and you clearly should stay in good terms with your account executive but don't put yourself into the hassle and headache of providing them with the details of your business. Competition is everywhere and unfortunately there have been cases of "flattery" here on the island.

What else has been mentioned? Well, some reported of good experience with the local Mauritius Business Growth Scheme (MBGS), about the positive effects of inviting Angel Investors into your business concepts and last but least the collaboration with Venture Capital providers. As for Mauritius, the last two options might be a little bit tricky at the moment but I'm aware that there is a growing interest of foreign investors, especially coming from the U.S.A., in jump-starting or assisting young entrepreneurs.

And the other side there are also options to improve your management of expenses as the Mauritian government has public bodies and institutions in place which can clearly be useful in order to grow your business. One opportunity is related to the Youth Employment Programme (YEP) which has a database of potential employees for your business. Another way is to get in touch with the Ministry of Finance and Economic Development in Port Louis.

So, despite common understanding that there is hardly any support by the local government our meetup was an eye-opener for a good number of attendees, including myself. For sure, I'll register my business with YEP, and I'm going to propose one or two open positions before the end of the year.

The importance of a proper cash flow

ALWAYS take care of your income, payment, royalties or whatever source of money for your business first. Your company doesn't operate on love and good promises from your clients but hard cash only. Send out a signal to your clients that you're serious about business and you're a professional company owner. Don't get into any compromises regarding payment from your clients. If it's about new work ask for a certain percentage of down-payment upfront (50% of the total seems to be a common and agreeable condition). Be clear about the payment conditions on your invoices and chase your client immediately when you have suspicions regarding their liquidity.

Remember, you have monthly obligations to fulfill and your business relies on a proper cash-flow and in-time payments from your clients. Some of the speakers could report that businesses went into bankruptcy only due to outstanding payments by their clients. Don't let this happen to you, and get your accounting and legal department cracking on the nuts and bolts of your contracts as well as the proper handling of your reminder system.

Also, if possible (depending on the country) see whether you can run a background on your leads prior to get into business with them. Here in Mauritius companies have to file their annual business reports publicly to the registrar of companies. Once again, leave this kind of work to your professionals in the accounting department.

Hire slow and the right people

As mentioned above regarding communication it is very essential and vital for your young business to work with the right people on the team. Whether it is with contracted experts like an accountant or a lawyer it is also important to put a high emphasis on your hiring process of UI designers, software developers, or product workers. Having people on the team which are not in the spirit of working in an agile environment of a start-up, or entertaining a so-called "social welfare case" doesn't help to prosper your business. Aux contraire, it's going to slow you down immensely.

Pay attention and put some energy into your hiring process, it won't hurt you at all but provide you the right talent for your company. There are great examples available on the world-wide web for free but I'd like you to read the following blog article "How to hire a lot of talented people, very quickly" of Ryan Carson, CEO of Treehouse, explicitly. It was inspiring for me and I set up a similar process using Trello, too.

Yes, you should hire more people but in a steady way, always in regard to your business revenues, and only stock up your staff with people you're sure they can live up to aims of your business.

Networking - the offline way

Honestly, I can't remember how often we talk about the importance of growing and entertaining a professional network - both online using platforms like LinkedIn or Xing as well as offline by attending any kind of organised events related to business owners. While running a business you have to get the word out that you are actually operational, and of course you have to let people know about the kind of professional services or products you are offering. This is related to self-marketing and you should practice so-called "elevator pitches" prior to going out.

Ask yourself:

  • Would you be able to describe and summarize your business in less than 5 seconds?
  • Are you able to your profile into one paragraph of 2 to 3 sentences?
  • What are the outstanding benefits your business could offer compared to your competition?

If you cannot answer those questions, you should reflect on them and get in better shape for your next get-together with other business people.

Some visual impressions

Pictures are courtesy of Pritiv and Kevin.

MSCC: Sharing my experience on founding and running a start-up. There have been ups and downs throughout the years
MSCC: Sharing my experience on founding and running a start-up. There have been ups and downs throughout the years.

MSCC: Crowded audience - we had 35 attendees during our sessions on Entrepreneurship and start-up culture in Mauritius
MSCC: Crowded audience - we had 35 attendees during our sessions on Entrepreneurship and start-up culture in Mauritius.

MSCC: Paying close attention to other speakers' experience as entrepreneurs - at least I got quite some new ideas during those couple of hours
MSCC: Paying close attention to other speakers' experience as entrepreneurs - at least I got quite some new ideas during those couple of hours.

Upcoming Events and networking

With such high quality of information and lots of bombshell to talk about and exchange we clearly exceeded our time frame but I'd say it was absolutely worth it. Furthermore, I had the impression that we should have a similar get-together in the near future to continue our intensive conversations.

What are the upcoming events here in Mauritius? So far, we have the following ones (incomplete list as usual) in chronological order:

Hopefully, there will be more announcements during the next couple of weeks and months. If you know about any other event, like a bootcamp, a code challenge or hackathon here in Mauritius, please drop me a note in the comment section below this article. Thanks!

My resume of the day

Get some real world experience first, build a network of professional contacts, and then think about doing your own business!

Seriously, even though the idea of starting a business right after graduation might be tempting, take into consideration that there's a lot to learn and it's definitely not the "big bucks" you should be after. Building your own company takes a lot of energy and investment in terms of time and money. Better to be prepared (at least a bit) than to run into some dumb mistakes thousands of others have already been through. Be smart, learn from others' experience, team up in start-up if you prefer a more flexible life-style.

Despite the level of self-marketing of some of our speakers there was huge amount of information regarding tips and advice for future business owners. And there were a good number of hiring opportunities, too. Almost everyone was mentioning that they are having open positions. I guess that's one of the cool aspects during our meetups, isn't it?

And.... special thanks to Santosh Achari to provide his laptop for the various presentations.

Reminder to myself: Bring the DisplayPort-VGA and HDMI-VGA adapters next time...

by Jochen Kirstaetter (jochen@kirstaetter.name) at August 31, 2014 04:51 AM

August 30, 2014

Alex Feldstein

Calvin Hsia's WebLog

Logo Turtle Graphics in WPF

Logo is a programming language that somehow involves a turtle. Imagine a turtle on a large piece of paper on the floor. The  turtle has a pen. You can command the turtle to go forward, turn right, then repeat 4 times to draw a square. The last time...(read more)

by CalvinH at August 30, 2014 02:02 AM

August 29, 2014

Alex Feldstein

August 28, 2014

FoxCentral News

Conference early-bird deadline approaches; So does Xbase++ 2.0

We have some very exciting news as we approach the early-bird registration deadline this Sunday, August 31st. Alaska plans to ship Xbase++ 2.0 in September, so this will be the first conference where developers can learn all about the newly released Xbase++ v2.0. In addition, Alaska has deep discounts to offer conference attendees whether you?re upgrading from a prior version of Xbase++ or doing a competitive upgrade from Visual FoxPro or Clipper. So whether you are coming from an Xbase++, Clipper, or Visual FoxPro background, Alaska has a product you can learn about at the conference, buy at the conference, and start using immediately when you get home! Southwest Fox and Southwest Xbase++ is the place to be in October. Please sign up now to get the conferences? $50 early-bird discount (http://geekgatherings.com/registration), which expires on September 1st. More details on the Xbase++ discounts coming soon.

by Southwest Fox Conference at August 28, 2014 10:54 PM

Shedding Some Light

Southwest conf early-bird deadline approaches

So does Xbase++ 2.0!

We have some very exciting news as we approach the early-bird registration deadline this Sunday, August 31st.

Alaska plans to ship Xbase++ 2.0 in September, so this will be the first conference where developers can learn all about the newly released Xbase++ v2.0. In addition, Alaska has deep discounts to offer conference attendees whether you’re upgrading from a prior version of Xbase++ or doing a competitive upgrade from Visual FoxPro or Clipper. So whether you are coming from an Xbase++, Clipper, or Visual FoxPro background, Alaska has a product you can learn about at the conference, buy at the conference, and start using immediately when you get home!

Southwest Fox and Southwest Xbase++ is the place to be in October. Please sign up now to get the conferences’ $50 early-bird discount (http://geekgatherings.com/registration), which expires on September 1st. More details on the Xbase++ discounts coming soon.

Every registered attendee gets admission and white papers to all regular conference sessions. Don’t miss this chance to learn from the best and mix with your peers.

by Rick Schummer at August 28, 2014 10:46 PM

Doug Hennig

Conference early-bird deadline approaches; So does Xbase++ 2.0

We have some very exciting news as we approach the early-bird registration deadline this Sunday, August 31st.

Alaska plans to ship Xbase++ 2.0 in September, so this will be the first conference where developers can learn all about the newly released Xbase++ v2.0. In addition, Alaska has deep discounts to offer conference attendees whether you’re upgrading from a prior version of Xbase++ or doing a competitive upgrade from Visual FoxPro or Clipper. So whether you are coming from an Xbase++, Clipper, or Visual FoxPro background, Alaska has a product you can learn about at the conference, buy at the conference, and start using immediately when you get home!

Southwest Fox and Southwest Xbase++ is the place to be in October. Please sign up now to get the conferences’ $50 early-bird discount, which expires on September 1st. More details on the Xbase++ discounts coming soon.

Every registered attendee gets admission and white papers to all regular conference sessions. Don’t miss this chance to learn from the best and mix with your peers.

by Doug Hennig (noreply@blogger.com) at August 28, 2014 04:30 PM

Alex Feldstein

August 27, 2014

Alex Feldstein

August 26, 2014

Alex Feldstein

August 25, 2014

Alex Feldstein

August 24, 2014

Alex Feldstein

August 23, 2014

Alex Feldstein

August 22, 2014

Beth Massi - Sharing the goodness

Fun with the Interns: Zach Montoya Builds a Visual Studio Designer for .NET Native

A few weeks ago when I was up in Redmond I had the pleasure of interviewing some interns on the .NET team to talk about their experience as an intern at Microsoft and to show off the projects they are working on. In this interview I sit down with Zach Montoya, a Developer Intern on the .NET Runtime team, and we chat about his internship experience and summer project.

Zach built a Visual Studio extension that allows maintaining and configuring runtime directives for .NET Native right from Visual Studio. .NET Native compiles .NET code to native machine code. Runtime directives are used to provide additional information to the .NET Native tool chain that tell the compiler what APIs you intend to call dynamically so those APIs can also be included.

Watch: Fun with the Interns: Zach Montoya Builds a Visual Studio Designer for .NET Native

And for all those students out there pursuing a career in computer science, you should consider an internship at Microsoft. You can help build real software that helps millions of people! Learn more about the Microsoft internship program here.

Enjoy!

by Beth Massi - Microsoft at August 22, 2014 06:12 PM

Alex Feldstein

August 21, 2014

Craig Bailey

Too much to ask

Reply from Malcolm Gladwell when asked about a child’s birth month being an advantage (emphasis mine):

Question: In Outliers, you discuss why a hugely disproportionate number of professional hockey and soccer players are born in January, February and March. I can’t begin to imagine how many to-be parents you influenced to try and have their offspring be born in those months!

MG: Well, I have heard that some parents took that to heart. I should add, however, that when it comes to academic achievement, the problem of being the youngest in class is most pronounced for kids with other challenges. If you are from a lower-income, broken home, and you have a learning disability, AND you are the youngest, that’s too much to ask. For the typical middle-class kid from a good, well-educated family, I’m not sure it matters so much. In other words, the kinds of people who took that message to heart are probably the people who least needed to take it to heart.

The post Too much to ask appeared first on Craig Bailey.

by Craig Bailey at August 21, 2014 11:34 PM

Beth Massi - Sharing the goodness

Fun with the Interns: Santiago Fernandez on LLVM Based Optimizer for MSIL

A few weeks ago when I was up in Redmond I had the pleasure of interviewing some interns on the .NET team to talk about their experience as an intern at Microsoft and to show off the projects they are working on. In this interview I sit down with Santiago Fernandez, a Developer Intern on the .NET team, and we chat about his internship experience and summer project.

Santiago really likes being close to the metal. So he investigated what it would take to use LLVM in the .NET Native code generator. Here he patiently helps me understand what the heck it's all about! LLVM is a cross platform, open source collection of modular and reusable compiler and tool chain technologies. Santiago shows us how it can be used to optimize MSIL. It's some very cool, geeky stuff. It's also awesome to hear about Santiago's dream to work at Microsoft.

Watch: Fun with the Interns: Santiago Fernandez on LLVM Based Optimizer for MSIL

For all those students out there pursuing a career in computer science, you should consider an internship at Microsoft. You can help build real software that helps millions of people! Learn more about the Microsoft internship program here.

Enjoy!

by Beth Massi - Microsoft at August 21, 2014 10:07 PM