blog @ beilabs

 

Kids can change the world as entrepreneurs


Presentation Overview:

  • I was raised to be an entrepreneur
  • We miss opportunities to find these kids with entrepreneurial traits
  • As kids we have passions (these are crushed early)
  • Promote kids passions
  • No-one says "Become an entrepreneur"
  • Teach kids to open a business instead of accepting government handouts
  • We teach out kids to go after really good jobs
  • Media says go for fame (become a model, singer, celebrity)
  • MBA programs do not teach kids to be entrepreneurs
  • Bipolar disorder is nicknamed the CEO disease
  • Entrepreneurs cheat!  We don't do accounting, we hire accounting.
  • An entrepreneurs definition: "A person who organizes operates and assumes the risk for a business venture"
  • Hate the thought of having a job and love the thought of employing people.
  • Become an entrepreneur at a young age.
  • Buy low, sell hi. Don't sell to the poor people, sell to the rich kids.
  • Don't reveal your source
  • Manual labor sucks but recurring revenue is great
  • Make more money faster (10 dollars for 1 hour is better than 10 dollars for 5 hours)
  • Why not give your kids games to teach entrepreneur ship
  • Ensure that your kids never waste a penny
  • Allowances teach the wrong habbits, entrepreneurs will never get a regular paycheck
  • Always negotiate with your kids
  • 50% of money goes into a bank account (house account), 50% of money goes to whatever they want (toy account)
  • Get your kids a broker
  • Don't always read stories to your kids, have them read stories to you (Get them to talk)
  • Show kids what a bad employee is like and what a good employee is like (Point out bad / good customer service)
  • Do not medicate your kids for ADD unless it is impossible to live with!
  • Teach your kids: 
    • Problem solving
    • To ask questions
    • To be creative
    • To lead others
    • To learn from mistakes
    • How to save money
    • To want to make Money
    • How to sell
    • To ask for help
    • Public speaking
    • To never give up
    • To see solutions
  • Rank entrepreneur ship right up with Law and Medicine!

My view

Very inspiring stuff, When I do have kids I'll be instilling these values at a very early age.  Love the idea of negotiating with my kid, everything is negotiable - it's something they should learn at a very early age.

About the presenter

Business Mentor. Business Coach. CEO Coach. Cameron Herold has taken 20 years experience operating some of the biggest business success stories in North America and turned it into a flourishing career as both a motivational speaker and management consultant. Cameron is a business coach and mentor to several small businesses, and a CEO coach to large corporations throughout Canada and the United States.  There's no secret to his business success; Cameron loves helping entrepreneurs make their dreams come true.

Filed under  //   entrepreneurship   presentation  

Comments [0]

Two Books to Read......

Two books I'm really looking forward to reading over the next few weeks:

The Fortune at the Bottom of the Pyramid: Eradicating Poverty Through Profits
The bottom of the (economic) pyramid consists of the 4 billion people living on less than $2 per day. For more than 50 years, the World Bank, donor nations, various aid agencies, national governments, and, lately, civil society organizations have all done their best, but they were unable to eradicate poverty.  Aware of this frustrating fact, C.K. Prahalad begins his book: "The Fortune at the Bottom of the Pyramid" with a simple yet revolutionary proposition: If we stop thinking of the poor as victims or as a burden and start recognizing them as resilient and creative entrepreneurs and value-conscious consumers, a whole new world of opportunity will open up.  

Rework
Expecting a lot from Rework, but I've been a fan of Signals Vs Noise for quite some time so I'm guessing a lot of SvN will be just regurgitated onto a page. "Jason Fried and David Hansson follow their own advice in REWORK, laying bare the surprising philosophies at the core of 37signals' success and inspiring us to put them into practice. 

Any other recommendations for me?

Filed under  //   books  

Comments [0]

Robert Martin - What Killed Smalltalk could kill Ruby

 

Synopsis of this presentation

  • Smalltalk & Ruby are deeply interrelated.
  • Much of the same syntax between the two languages
  • From 1970s Smalltalk was the language to watch
  • Smalltalk epitomized Object Orientated Design
  • Described C++ as a mans language (need balls to code in it and make it work)
  • Describes Java as an estrogen type language (presuming he means only women code in it?)
  • Smalltalk had a productivity benefit of a factor of 5.  Compared to a C application.
  • Refactoring in Smalltalk was a breeze
  • What killed Smalltalk? ( umm, at this stage I have no idea, he jumps to a new topic)
  • Definition of clean code - "when you look at a routine and its pretty much what you expected"
  • Best metric for clean code is 0 WTFs per minute
  • What killed Smalltalk is that it was just too easy to make a mess (Finally, 20 mins in!) Quote from Ward Cunningham
  • So easy to make an indirect and impenetrable system over time
  • Companies developing in Smalltalk were screwed up at the time
  • You can make a mess in Ruby, simple, elegant, wonderful language; still easy to make a mess
  • Projects in Ruby start well, but the framework is often violated over time; making a mess...
  • Boyscout rule, leave the campground cleaner than when you entered it. (Actual quote - leave life better than you found it) - apply this to your source code.  Would make code get better and better as time goes by. Most of the time, cleaning code is hard!
  • Quote of the presentation - "If you touch it, you will break it.  If you break it, it becomes yours.  The best policy is to walk away, run. the messes are hard to clean"
  • Test Driven Development is the solution
  • Rails and Ruby is great for Test Driven Development. 
  • Other languages have TDD, was born in Smalltalk.
  • Talks about TDD methods; If you follow TDD, regularly write and run tests, then there is no fear to change code.
  • Nothing makes a system more maintainable than a suite of tests
  • He loves Rspec and Cucumber (Behaviour Driven Development BDD)
  • TDD never really became a part of Smalltalks culture but is integral to the Ruby community
  • TDD will keep your code clean
  • There was an arrogance to the Smalltalk community ( I sometimes can see this in the Ruby community )
  • Our tools are so good, our language is so good we don't need to follow the rules.  Smalltalk people didn't want to do regular programming (Enterprise Applications, etc)
  • Your language may be powerful, but you must be careful with it.  just because we can do a thing, it does not necessarily mean we must do that thing (Star Trek quote) Us vs them feeling in the Smalltalk community.
  • Ruby community is not going to go down this path because:
  • Discipline - TDD makes you feel good inside
  • Professionalism - did the doctor wash their hands, did you write your tests?
  • Acceptance - we need to solve the dirty problems ( Need to adapt to the enterprises needs - do not solve only the problems you like.)
  • We have a great tool in Ruby, we can kill it, let's not do that!

My view

Great presentation style, he's quite funny.  Very inspirational lecturer for developers confirming that TDD/BDD are the ways forward for software engineering.

About the presenter

Robert C. Martin has been a software professional since 1970. In the last 35 years, he has worked in various capacities on literally hundreds of software projects. He has authored "landmark" books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, and C++ Programming. He has published dozens of articles in various trade journals. Today, He is one of the software industry's leading authorities on Agile software development and is a regular speaker at international conferences and trade shows. He is a former editor of the C++ Report and currently writes a monthly Craftsman column for Software Development magazine.

 

Filed under  //   presentation   ruby  

Comments [0]

Bananajour broken in Ruby 1.9, lets get it working.

There are seven sleeps to Railscamp, Bananajour remains the must have application for this event.  So last night I wiped my ailing laptop and installed the latest and greatest Ubuntu OS.  Unfortunately Ruby 1.9.1 breaks the Bananajour build.  

Bananajour is local git repository hosting with a sexy web interface and Bonjour discovery. It's like a bunch of adhoc, local, network-aware githubs!

Unlike Gitjour, the repositories you're serving are not your working git repositories, they're served from ~/.bananajour/repositories. You can push to your bananajour repositories from your working copies just like you do with github.

There are a few things you need to do to get it working on Ruby 1.9 and Ubuntu 9.10 (Karmic).

Aheller did a few fixes here: http://github.com/ahaller/bananajour to bring it up to 1.9 speed.
  • update md5 to digest/md5
  • get rid of fancypath
  • Update gems (grit (2.0.0) - rainbow (1.0.1) - thin (1.2.5)
This led me to discover this issue with dnssd:

NoMethodError: undefined method `zero?' for "\f":String dnssd/lib/dnssd/text_record.rb:37:in `decode'

Fortunately there is a couple of fixes to this for the dnssd gem; check commit 0b7f31c out.

Happy hacking and see ya'll at Railscamp in Canberra next weekend.

Filed under  //   git   ruby  

Comments [0]

Thoughts on Software Engineering

I'm a software engineer. I've been calling myself one since 2003, my first application was built on a ZX Spectrum Sinclair in the late 1980's. After working with a variety of frameworks over the past number of years I can realistically say that I have never been more excited about software design than I am now.   

Historically, software engineering has been viewed as a black hole by many corporations. Software engineering projects can often take years to develop, they can arrive well over budget, become delayed due to a variety of reasons and ultimately may not achieve what the customer envisaged. This is a common theme amongst many initiatives and can be attributed to a variety of reasons, under-scoping the project, not following proper standards, bad project management to name but a few.

Software is the only profession that I can ever see myself working within. It is the one profession where I can learn something brand new every day and receive satisfaction from approaching a problem in a different way, but achieve much better results each time; very few professions allow for this to occur.  

Software engineering currently impacts all aspects of modern life from banking to medicine to publishing. Whilst only having been around since the 1960's the fact that it has introduced engineering disciplines into the software development process speaks volumes.  

Software, by nature, is intangible; by intangible we mean that it is quite easy to observe the progress of a building or aeroplane whilst it is being built however it is difficult to gauge the same level of progress within a software engineering project.

According to Wasserman, software engineering practices have dramatically changed throughout the past number of decades. He suggested that there were eight fundamental notations in software engineering that form the basis for an effective discipline of software engineering.

Abstraction: Instead of jumping straight into a problem, trying to figure out the various minuscule details that eventually bog down any engineer in complexity, he recommends that we should step bag and simply concentrate on the core aspects of the problem. As a Ruby software developer I certainly feel that this method is being implemented through Behaviour Driven Development (BDD). BDD allows developers to simply focus on why the code should be created, rather than diving into the technical details, it also allows stakeholders to get more involved as they can understand the domain much easier.

Analysis and Design notations: Wasserman felt that there was too much misinterpretation and miscommunication between software engineers and stakeholders. He recommends the use of a standard notation to avoid such issues, UML and various other approaches have done much to make things as clear as possible for all participants involved in the process.

Prototyping: It has been said that a picture paints a thousand words, well a prototype prevents a thousand misconceptions from being formed. Prototyping allows for people to get a clearer picture about an application rather than just imagining it on paper. Clicking buttons on an interface, albeit dummy buttons, can have a profound influence on stakeholders. Many just like to see something that is tangible and something coming about after much discussion and business analysis.

Software Architecture: Software architectures play a major role in determining system quality and maintainability. Wasserman recommends a modular approach and expects that each unit should have a published interface. This is evident in the modern OOP world, by operating a divide and conquer approach, the application can be split into smaller modules allowing for developers to rapidly develop and test each seperate module.

Software Process: This is quite a simple concept. There is not a one size fits all, different projects require different processes. Some systems can be rapidly developed by one or two engineers whilst more technical projects may require teams of individuals across many levels working in conjunction. Within more complex projects, control is leveraged away from the developer and towards the project managers.

Reuse: Part of why I develop is to provide tools for myself, my team and others that can be re-used over and over again within many other applications. Developing a function, say an authentication system, which is used only once is very wasteful. Packaging the system as a plugin to be dropped into any future application is one which is happening more often within the Ruby world. This cuts down on overall costs, development and time to market.

Measurement: Whilst we previously discussed how software is intangible, there will always be discussion on how we can measure the status of the project. Some mention lines of code (LOC), others mention feature count. LOC is of course a spurious measurement, a function in Ruby takes 3 lines whilst it takes 20 lines in PHP. The goal should always be to write as small and fast an application as possible, the LOC metric only encourages people to write broken, sloppy and terrible code which is often unmaintainable. Ultimately what must be measured within a project is the outcome and not the output.

Tools: Wasserman mentions that we need tools to enhance software development. Such tools are constantly being developed. Plugins are constantly making life much more easier for developers, with the advent of meta-meta-meta programming we now have scripts that create code which creates code for a developer. Such tools allow for rapid development, ensuring that the wheel is not constantly being created.

Someone once said that with great power, comes great responsibility however the software profession is not regulated as much as the medical profession even though much of what an engineer can design can be directly used within medical practice. As a result, there are some bodies that exist who define what a practising engineer ought to know, based on their education and work experience. The Software Engineering Body of Knowledge (SWEBOK) is a product of the Software Engineering Coordinating Committee and is sponsored by the IEEE Computer Society and a number of other partners. Many claim that the document may not accurately reflect the community's view of software engineering and recognize the effort to try to define the profession. (ACM 2000). The body of knowledge just represents best known practice, it is not the perfect solution for everybody.

IEEE-CS and ACM 2004 implemented a joint initiative which guides insitutions of higher education on how to design curricula for undergraduate programmes in software engineering. The core body of knowledge is known as Software Engineering Education Knowledge (SEEK). This knowledge mainly includes relevant content from appropriate disciplines such as mathematics computer science, economics, engineering and software engineering etc.

There is no single right way to approach a software project. Each one is different, relying on the customers input, the development's team experience, etc. Overall, there is no substitute for experience and any tools or qualifications which extend the knowledge and ability of a software engineer can only be regarded as a boon. Too many software projects have become victim to feature creep, design bloat, excessive miscommunication and overdue deadlines. By equiping engineers with best practices and coding guidelines, an engineer can provide best value to the customer as well relatively straightforward hangovers between fellow software engineers. So what is the current state of software engineering? Well, the future is bright, software development on the whole is on the increase, new social mediums are allowing for bootstrapped startups to realize exceptional new ideas and develop them in rapid time.

Regulation will eventually come about within the software industry. Corporations tired of excessive bloat within their processes will ultimately combine together and enforce strict codes of conduct, in-depth peer reviews, and ultimately I thoroughly believe there will be a register of a Software Engineers performance throughout their career on various projects; a rate my software engineer if you will.

In this time of doom and gloom, software departments will be feeling the pressure to cut costs; cutting costs does not mean cutting quality, through new approaches and modern techniques software can be made rapidly and of high quality. Through enforcing and adhering to a code of ethics/standards, projects can avoid the bloat. The future is bright, the future is and will always remain within software engineering. 

Filed under  //   pondering   regulation   software engineering  

Comments [0]

A lunch with Publishers Australia

Just back in the door from the Publishers Australia monthly get together.  We met this month in the Waters Edge, a beautiful venue on Pier 1, down by the Rocks of Sydney.  Really beautiful views and a few pints of beer early in the afternoon set the stage for an enjoyable afternoon.

 

Publishers Australia represents publishers of quality targeted media in Australia.Members specialise in engaging people through a variety of highly defined magazine and online media environments. 
 
A non-profit, member-based organisation with its head office in Sydney, they provide peer support and help publishing businesses manage key issues, including legal, commercial, technological, and those affecting business growth. They also provide assistance with postal affairs, distribution, copyright and privacy. 
 
Wilson da Silva gave of Cosmos fame gave a great talk about operating a magazine in Australia and in doing so he opened the eyes of many publishers to what could be achieved if they commit to having an online presence. 
 
Google presented the entire get together, showing off their many tools which they were hoping would be adopted by the publishing community.  Many people seemed genuinely frightened of going online, Adwords, Adsense and Analytics seemed to be foreign creatures which they understood very little of.  By the time the Google presenter showed off a video from Wired I could see the fear radiating from the masses, they could see the future, many seemed quite nervous about it.  Some of these publsihers have the bare minimum of a website, future technologies such as the iPad scare the living shit out of them, good reason to be afraid I suppose.
</object>
 
Another tidbit I learned, there are plans to switch on Google Buzz for Google Apps, it is being tested inside of Google apparently, expect it very soon.  That is the main reason why I am not using Google buzz.
Lamb for entree, Steak for main course and beer for desert; who could ask for more. Sleep time now, my belly is full.  Oh, and I was gifted $150 bucks for Adsense and Adwords campaigns...sweet.

Filed under  //   Google Buzz   IPad   Publishers Australia   

Comments [0]

Off to WebBlast Sydney Tonight

So what's a WebBlast?

From their website:

WebBlast is an opportunity for all people involved in the web community in Sydney to get together and have a drink.  And chat.

WebBlast started out three years ago as the brainchild of Russ Weakley to have an end of year party for us web types, and has been fiercely successful ever since, selling out each time.  So we thought, why not expand it out to other times in the year?  Theres certainly no other event out there that attracts all people in the web game – developers, designers, producers, media planners, account managers, social media types, the list goes on..

Sounds great, see ya'll there...

Filed under  //   sydney event  

Comments [0]

A fresh start

So I've abandoned Tumblr and jumped ship to Posterous.  It's a fresh and exciting start, one I should have made long ago.  Regardless of which blogging platform I find myself on, from Mephisto to Wordpress, Blogger to Tumblr, the one thing I really need to focus on is actually doing a lot more posting. 

It begins today....

Filed under  //   beginning  

Comments [2]