Mountain View, California. The heart of Silicon Valley. Where in our local streets, you can actually find roundabouts. Yes the type you see everywhere in Australia and UK. Not the norm for US. But, something is difference. The Roundabouts here also have a Stop sign. Yes, the traditional stop sign you see at just about every street in the USA. Now we know a roundabout’s purpose is to keep traffic moving while a stop sign’s is to stop traffic. The 2 together are counter intuitive right? Even for a Google Self-Driving Car, bu tof course even self driving cars might need the https://towingless.com/ service.
Now what would happen when you have a roundabout and you must give way to your left? Confused? Me too. Even for the new 100% automated robots cruising the local streets of Mountain View. Those cute bubble Google Self-Driving Cars. These cute self-driving vehicles with car wraps have been around Mountain View for the past few months. They are the future of transportation. An awe of inspiration to see. A Borg like intelligence, developed by mankind up the road at Google HQ, is making autonomous decisions in transporting humans. This is the pinnacle of human innovation! They are still in closed Beta mode. Carry max 2 people. One day I hope to get an opportunity to order a lift from my smartphone. If you sustained serious injuries because of other driver’s reckless driving, a personal injury attorney can help you get compensation for your medical bills.
So back to the roundabout and stop sign issue. We know the scene. We know the car. Now check out the video my wife recorded of this Google self driving car getting confused as it pulls up to such a roundabout with a stop sign.PS. I did some edits to the video to add character in good spirit.Enjoy!
Here is a simple review of Zemotor for Sale and a look at whether or not this is actually a legitimate business opportunity.
“How do you compare Sydney to SV, in terms of work-life balance, housing costs and traffic?”
So here goes. The following is based on my 3 years of experience working in the valley with over 8 years from Sydney. Some things may have changed in the last 3 years but I’m certain most still hold true till today. If I messed up anything let me know and I will correct it. Happy reading!
Work-life balance
Sydney
Silicon Valley
Mainly corporate companies dominated land scape and thus a very corporate lifestyle. Wage is mainly just salary and the manager rules in the workplace. There are few exceptions like Atlassian but overall startups are rare. Like in London, most Aussies head to the pub after a 8 hr work day (especially Friday) for a drink and chat with their mates leaving weekends for the beach.
Very startup orientated landscape and thus a very casual work lifestyle. Great Software Engineers are like gold and always hunted & looked after with great compensation (wage & stock options), tools (Mac) and free food. If you are at a startup it is common to be working 11 hr days 6 days a week or hanging out at a hackerspace building a new online or mobile product. Not much pubs or beach going on here unless you live in San Diego.
Australia has a “public” health system and also the option for private health. Your health is not tied to your company like in the USA. Taxation is different and higher but also wage dependent – see your tax agent for details. Most people are encouraged to buy an investment property to reduce it via the many benefits available for investors. Thus most Aussies are financially savvy.
Check out my previous post on employment & contracts in the valley. It has many things to watch out for. Especially the dreaded health system being tied to your work. No job no health cover unless its via your partner’s employer. With tax you pay the federal & state taxes but it will still work out for the better by 3-5% for software engineers working here vs Australia.
Software Engineers do not exist. They call them IT or programmers whom are treated (at corporate firms) like reusable hanky. Managers & big titles rule the floor here.
Good Software Engineers are what makes companies great. Always the last to go when head count is being reduced. Without good software engineers there is no business.
Conclusion: If you’re a good software engineer then you belong in silicon valley. Here’s a guide how to get to silicon valley. Otherwise Australia is better for lifestyle.
Housing costs
Sydney
Silicon Valley
Buy: Real estate prices in Australia are (currently) valued at more than they are worth. Median house price is around $500K. This of course fluctuates based on popular cities like Sydney & Melbourne. Check out the property update for latest data.
Buy: Varies based on county & sub zip code. San Mateo is around $500K & Santa Clara around $460. Let’s take Mountain View. 3 different zip codes 3 different prices: 94040 – $950K, 94041 – $699K & 94043 – $545K. Los Altos (next door to Mountain View) is $1.5m.
Rent: The closer you are to the city the more you will pay. In Wollstonecraft (10 mins from city) average 1 bedroom will set you back around $430 per week. The newer and closer to transport the higher that figure will go up.
Rent: City (San Francisco) is still expensive to live in but so is living 1 hour down into the valley (San Mateo county) where all the tech companies (and jobs) are located. In Mountain View(home of Google et al) expect to pay anywhere from $400 to $500 per week for a 1 bedroom apartment.Moutain view benefits – lifestyle
Conclusion: Expect similar buy & rent prices between the 2 locations. In Sydney you will live inner city and pay the same as you would in the valley away from the city.
Traffic
Sydney
Silicon Valley
Not all roads are free. Sydney is cursed with british influence of 2 lane (each way) freeways. Most major public roads have been cut back to 1 lane forcing people to use the mostly private 110 km Sydney Orbital Network to get around. Sections of this have different owners and different prices via electronic means. Expect to pay around $20+ to do a full loop. Disaster! Traffic gets bad as LA near the city.
All roads are free except the Golden Gate Bridge ($6 south bound). Freeways can span up to 6 lanes each way. Huge arteries run thru the valley like 101 & 280 – see here. Also a good chance you will run into many bad drivers. More people on the road = more bad drivers. The one pet hate I have is the lack of use of indicators. Such a common event it angers me cops aren’t doing anything about it.
People are angry & fearful to drive faster due to cash safety cameras (speed & red light cameras) all around Sydney. It’s madness. So traffic is going to be slow on roads (mentioned above) which are already crammed up. Please bring electric self driving cars to Sydney and stop this camera madness as a way to save lifes.
No safety cameras anywhere except for few in San Francisco. Most motorists drive fast on the freeway averaging 80 miles/hr. I’ve seen a cop car zoom in front of a batch of cars and slow everyone down with lights blinking and moving between lanes. That’s manners!
Public transport is very good & reasonably priced in Sydney with bus lanes in most busy suburbs & throughout the city. Highly recommend using the bus if you have access to it else you will be left with City Rail. City Rail has been a disaster (delays & service cancellations) but it’s getting better.
Most people drive their cars to work. The HOV is there to encourage American’s to carpool & use electric vehicles to get around even faster. During business hours even the freeways clog up but traffic still moves. More on public transport options & commuting here.
Conclusion: In Sydney use public transport. Sydney is congested due to bad & expensive road infrastructure. You will also save more money that way. If you prefer to drive than USA is the king of the road.
few more of my own additions…
Misc
Sydney
Silicon Valley
During summer it is hot, sticky and humid around 40°C (104 °F). Winters are dry and cold dropping to 2°C (35.6°F). Australia is very brown. Not as green as USA.
During summer it is farken amazing! Excuse the F word but this is the BEST place in the world for weather. Dry and sunny sometimes peeking at 40°C (104 °F). Winters are rainy and cold dropping to 2°C (35.6°F).
Go to USA to shop for clothes for choice & price. 2 major grocery retailers (Coles & Woolworths) play a game of monopoly with consumers keeping prices high and pushing the smaller players out.
Clothes & cars are half price of Australia. Competition is high here with many many retailers. Competition is healthy to bring prices down & increase consumer service. If you buy organic free range food here it is as much as in Australia for standard supermarket food.
A large island in the middle of the South Pacific with a population of 20m. Most of Australia is dry/red, population lives in isolated centers on the edges of the island with nothing in the middle but deserts and deadly animals. Flights to Sydney from USA average around 14 hrs. Few places like Great Barrier Reef exist but not the diversity you get in the USA.
Massive population of 300m spread across most of USA. Opportunities galore. Urszula has met and attended events ran by gurus in her industry. All those books she read the authors are based in the USA. Same goes for travelling for holidays. Every state is different and has something to show and see. Plenty to do and explore all under few hours of flight or drive.
The following list is by no means complete or exhaustive of everything one needs to know to travel in the USA. This is a list of stuff I learnt in the last 1 year of travelling around USA including the visit to a mountain resort with entertainment. These I share with you now and will regularly update as I learn more and any corrections along the way.
If you are planning a road trip I recommend you to consider the option of the campers that camper trailers Sydney have available for this purpose.
Tips
Use a “SuperShuttle” to and from the airport. http://www.supershuttle.com/it’s a shared taxi van of around 9 people. It’s dirt cheap vs. crazy taxi fares and you get to see more of the area as they drop off people around town.
If you live in the valley and have your own car and are taking a short trip of around a week it is cheaper esp. with a coupon & more convenient to leave your car at any of the available airport parking companies. Some which are further away from the airport have shuttle buses that take you to the airport and back for free so don’t worry if it’s 5 minutes outside the airport.
If flying out of Oakland International we use Park ‘N Fly and use this coupon to get a discount on parking.
If flying out of SFO International we use SkyPark and use this coupon to get a discount on parking.
Don’t be shy with the coupons. Everyone in America uses coupons to bring the price down even further!
If you are arriving to the USA don’t bother bringing your wardrobe. Clothes here are cheap. Dirt cheap. Brands and all. Especially during public holidays like Thanks Giving or Christmas time by average 50% off.
If you need to rent a car do it through Enterprise. I find them the most reliable and mostly the cheapest. Sign up on their website to receive regular coupons to bring that price down and don’t forget to read my post on car rental hidden costs to save even further.
For accommodation I highly recommend AirBnB. Airbnb is an online service that matches people seeking vacation rentals and other short-term accommodations globally with locals with rooms to rent. It’s fun, cheaper than hotels, you can be very selective on location (not restricted by hotels location), meet interesting people and live like a local. It works really well in big cities like New York, San Francisco, Los Angeles, etc. Why spend big $$$ on a hotel when all you need is a place to sleep and store your luggage. Use the money you save to buy some fashion!
Americans drive fast on freeways that stretch up to 5 lanes each way. Get ready. Either hire a GPS or bring your own so you’re not slowing traffic down. As long as you’re not doing anything dangerous on the road you will be fine to keep up with the communal speed limit. I’ve seen police sway across all lanes to slow traffic down when it gets too fast.
When it comes to food there are great restaurants in every corner, asking the locals helps a lot as well. For example, I was highly recommended Biloxi Buffet and it did not let down!
The only dangerous creatures are Bears (especially Grizzly) & Mountain Lions. You wont see poisonous spiders, snakes or crazy insects.
For more tips visit each of the places mentioned below. The posts include their own unique tips.
Some of the great places we have visited
New York City (Manhattan) – The city that never sleeps. My favorite! One of the most densely populated areas in the world. Known for its financial and fashion center of both the United States and the world.
Los Angeles – West Hollywood. Home of the movie industry.
Hawaii – Made up entirely of islands like Big Island, Maui etc. Natural scenery, warm tropical climate, abundance of public beaches and oceanic surrounding, and active volcanoes make it a popular destination for tourists.
Monterey – 1-hr drive south of the valley. A beautiful coastal city.
Carmel-by-the-sea – a hidden gem round the corner from Monterey. The beachy town is known for its natural scenery and rich artistic history.
Yosemite National Park – Designated a World Heritage Site recognized for its spectacular granite cliffs, waterfalls, clear streams, Giant Sequoia groves, and biological diversity. Almost 95% of the park is designated wilderness.
Yellowstone National Park – a national park located primarily in the U.S. state of Wyoming known for its wildlife and its many geothermal features. If you’re traveling with a group, you’ll want to consider the Nest Travel Trailer. The Nest Travel Trailer from Airstream has much to offer: a sleek design profile, soft touch panels, and a beautiful exterior. In addition, it provides a full onboard wet bath, space to work and eat, and comfortable sleeping quarters. Whether planning a weekend getaway or a cross-country journey, this travel trailer is the perfect solution to your travel needs.
Las Vegas – The Strip. Internationally renowned major resort city for gambling, shopping, partying (clubs) and fine dining, according to every review on established gambling review sites like piramindwelt.com.
I will be posting individual posts to each of those locations with photos so come back soon.
Right, let’s dig into my favorite language. Python. It’s super easy to read & learn, it’s concise and one of the hot languages in Silicon Valley. In fact, Python is also one of the easiest languages to grasp if you want to learn to code on mobile.
The following assumes you understand basic software engineering concepts.
A bit about Python
Design philosophy emphasizes on code readability. Important because software engineers spend most of their time trying to understand code. (Ref Coding Horror)
Has a nice MVT open-source web framework called Django. Django emphasizes reusability and pluggability of components, rapid development, and the principle of DRY (Don’t Repeat Yourself).
It features a fully dynamic type system with late binding (duck typing) and automatic memory management, similar to that of Scheme, Ruby, Perl, and Tcl. More here.
Currently one of the hottes languages (alongside Ruby/Ruby on Rails) in Silicon Valley especially among startups.
Sample of popular sites build in Python
Google, Dropbox, Reddit, Disqus, FriendFeed (Sold to Facebook to drive their News Feeds), YouTube, Quora (rising star), Douban. Comprehensive list here.
Python
Uses whitespace indentation, rather than curly braces or keywords, to show & delimit block structure. I prefer 4 spaces.
Everything is an object (first class) and everything has a namespace accessed by dot-notation.
Naming convention UpperCamelCase for class names, CAPITALIZED_WITH_UNDERSCORES for constants, and lowercase_separated_by_underscores for other names. See Python style guide and The Zen of Python for guiding principles for Python’s design into 20 aphorisms. Basically write self-documenting code by chosing explicit naming convention.
A comment starts with a hash character (#). For longer then a line (and as Doc strings) use triple quotes: ”’ xyz ”’.
Variable names have to start with a letter or underscore, and can contain numbers but no spaces or other symbols.
File extension is always .py. If you see .pyc this is source code compiled into bytecode for execution by a Python VM (virtual machine).
Use command line python shell to test assumptions by getting immediate results.
No case/switch statements. Switch is better solved with polymorphism (object that has more than one form) instead. Good example here.
Data types
Immutable (can’t be updated or changed): strings, tuple, int, float, complex, bool
Mutable (can be updated or changed): list, dictionary (dict) & mutable except for it’s keys
Editors I use: IDLE (for basic shell work & comes with Python.org install), PyCharm (with Django support) and Sublime Text 2 (lightweight TextMate replacement).
Basics
Arithmetic
Boolean
2 > 3 → False
2 == 3 → False
2 The opposite of == is != (“not equals”):
2 != 3 → True
You can chain together comparison operators:
2 < 3 < 4 → True
Equality works on things besides numbers:
“moose” == “squirrel” → False
True and True → True
True and False → False
True or False → True
not False → True
(2 < 3) and (6 > 2) → True
Under the hood,
True is equal to 1,
and False is equal to 0.
Booleans are a subtype of integers.
Operators
==
Equal to
!=
Not Equal to
is
Identical
and
Boolean and
or
Boolean or
&
Bitwise and
|
Bitwise or
not
Boolean not (not the !)
Built in functions that are always available
len(s)
Return the length of an object. Can also be a sequence (string, tuple or list) or a mapping (dictionary).
print(obj)
Print object(s) to the stream file.
help(list)
See basic help on any object.
dir(list)
Return a list of valid attributes for that object.
# define a new function with 1 default argument. Can also have no arguments.
def function_purpose(arg1=1):
''' This is a doc string '''
print 'Python code'
return (arg1, arg1+7,) # returns 2 values as a tuple (note the comma), else None
# call the function, returns a tuple that we assign to 2 variables
item1, item2 = function_purpose(1)
If you want to assign a value to a variable outside the function within a function you must prepend the variable with “global”.
Calling methods on objects
Just like calling functions, but put the name of the object first, with a dot
words = 'some monkeys here'
e = words.count('e')
# returns 4
Strings
Are a sequence of characters.
# creation
name = 'Ernest Semerda'
# accessing, returns 's'
name[4]
# splitting, returns a list ['Ernest', 'Semerda']
the_string.split(' ')
Strings can be subscripted/sliced like the list (see lists in Data Structures below).
# selected range returns 'nest '
name[2:5]
# get first two characters returns 'Er'
name[:2]
# get everything except the first two characters returns 'nest Semerda'
name[2:]
Sample of some string methods. They come with 8-bit & Unicode support.
name.capitalize() # changes to 'ERNEST SEMERDA'
name.find(sub[, start[, end]])
name.lower()
name.split([sep[, maxsplit]]) and new_name.join(list)
Python is strongly typed which won’t allow you to automatically converted from one type to another.
Python also has a strong tradition of duck-typing (dynamic typing) in which an object’s current set of methods and properties determines the valid semantics. Trusting that those methods will be there and raising an exception if they aren’t. Be judicious in checking for ABCs and only do it where it’s absolutely necessary.
An important feature of Python is dynamic name resolution (late binding), which binds method and variable names during program execution.
# fails because (str + int + str) != str
'There are ' + 8 + ' aliens.'
# perfect, str() = type conversion
'There are ' + str(8) + ' aliens.'
To achieve Reflection, a process by which a computer program can observe and modify its own structure and behavior, use the built-in functions. I.e. getattr
Over a “sys” module’s method “path”:
path = getattr(sys, "path")
Over a function1 with sample input:
result = getattr(sys.modules[__name__], "function1")("abc")
And/or use the Reflection Utilities API for deeper execution frame, execution model, class/obj inspection for methods & attributes etc… See: http://docs.python.org/c-api/reflection.html
Data Structures
Dictionary
Set of key:value pairs. Keys in a dictionary must be unique. Values Mutable.
# creation, empty dictionary
peopleDict = {}
# creation, with defaults
aliensDict = {'a':'ET', 'b':'Paul', 'c':42}
# accessing, returns 'ET'
aliensDict['a']
# deleting, 'Paul' is removed from dictionary
del alientsDict['b']
# finding, returns False (note capital F)
aliensDict.has_key('e')
# finding, returns ['a', 'c']
aliensDict.keys()
# finding, returns [('a', 'ET'), ('c', 42)]
aliensDict.items()
# finding, returns True
'c' in aliensDict
Lists
Lists can carry any items ordered by an index. Lists are Mutable.
Apply set(list) and it becomes a set – an unordered collection with no duplicate elements. Also support mathematical operations like union, intersection, difference, and symmetric difference.
Tuples
Tuples are similar to lists: they can carry items of any type & useful for ordered pairs and returning several values from a function. Tuples are Immutable.
# creation, empty tuple
emptyTuple = ()
# note the comma! = tuple identifier
singleItemTuple = ('spam',)
# creation, with defaults of any type
codesTuple = 12, 89, 'a'
codestuple = (12, 89, ‘a’)
# accessing, returns 1
codesTuple[0]
# Collection iterator over dictionary w/ tuple string formatting
people = {"Ernest Semerda":21, "Urszula Semerda":20}
for name, age in people:
print "%s is %d years young" % (name, age)
To loop over two or more sequences at the same time, the entries can be paired with the zip() function.
# Iterate over a sequence (list) of numbers (1 to 10) with if/else Conditionals. The range function makes lists of integers.
for x in range(1, 10):
if x == 8:
print "Bingo!"
elif x == 10:
print "The End"
else:
print x
While loop
# using request to ask user for input from interactive mode
request = "Gimme cookie please: "
while raw_input(request) != "cookie":
print "But me want cookie!"
Switch-statements do not exist. In OO they are irrelevant & better solved with polymorphism instead. Examples here.
[x * x for x in [1, 2, 3, 4, 5]]
# returns [1, 4, 9, 16, 25]
Can get messy & complicated to read.
print [x * x for x in range(50) if (x % 2 ==0)]
def is_palindrome(word):
word = re.compile(r'[!? ]').sub("", word.lower())
return True if word == word[::-1] else False
Files
# open, defaults to read-only + note single forward slash
contents = open('data/file.txt')
# accessing, reads entire file into one string
contents.read()
# accessing, reads one line of a file
contents.readline()
# accessing, reads entire file into a list of strings, one per line
contents.readlines()
# accessing, steps through lines in a file
for line in contents:
print line
All methods (but not functions) are closures – see “self” below. A closure is data attached to code. All variables are public, private variables are established by convention only.
# SuperHero inherits from Person class - also supports multiple inheritance using comma
class SuperHero(Person):
# constructor
def __init__(self, name):
self._name = name
# method
def shout(self):
print "I'm %s!" % self._name
The __name__ below allows Python files to act as either reusable modules, or as standalone programs. Also think Unit Tests benefits!
if __name__ == '__main__':
# instantiate the class
batman = SuperHero('Batman')
# call to method in class, returns "I'm Batman!"
batman.shout()
# returns "I'm Batman!"
SuperHero.shout(batman)
Modules are Libraries that hold common definitions and statements. They can be combined into an importable module.
More on modules here: http://docs.python.org/tutorial/modules.html
To use a module, use the import statement:
import math
# returns 1.0
math.sin(math.pi / 2)
Some commonly used modules
math – trigonometry, the constants e and pi, logarithms, powers, and the like.
random – random number generation and probability distribution functions.
os – tools for talking to your OS, including filesystem tools in os.path.
sys – various system information, as well as the handy sys.exit() for exiting the program.
import sys
try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
except IOError as (errno, strerror):
print "I/O error({0}): {1}".format(errno, strerror)
except ValueError:
print "Could not convert data to an integer."
except:
print "Unexpected error:", sys.exc_info()[0]
raise
Released in Google App Engine on April 7, 2008. The antigravity module (http://xkcd.com/353/) can be enabled like this:
import antigravity
def main():
antigravity.fly()
if __name__ == '__main__':
main()
Speed – always a common topic
Classic computer programs had two modes of runtime operation = interpreted (as code runs) or static (ahead-of-time) compilation.
Just-In-Time compilation (JIT), also known as dynamic translation is a new hybrid approach. It caches translated code (bytecode into native machine code) to minimize performance degradation. Used in .NET, Java & Python via PyPy.
PyPy is a fast, compliant alternative implementation of the Python language. It has several advantages and distinct features like Speed (Just-in-Time JIT compiler), Memory usage (better then CPython), Compatibility (works with twisted & django frameworks), Sandboxing (run untrusted code), Stackless (providing micro-threads for massive concurrency). Check it out: http://pypy.org/
Finally, it is important that you have a network of like minded people around you whom you can regularly work on Python with, bounce ideas & question and support (help) each other out.
Happy Learning and if you have any questions please contact me. Always happy to help.
Is moving to work in Silicon Valley on your goals list? Are you a software engineer or work with technology and always craved for more? Then get your @$$ to Silicon Valley and start making a difference disrupting an industry and learning a ton load of new things in the process. Oh and Happy New Year!
Make sure you are up to date with the latest tech. Australian corporate world (common work environment) is behind with technology so moving to Silicon Valley you may need to ramp up on the tech side. There is also plenty of free education online you can take advantage of.
Organize an E3 (faster & easier for Aussies) or H1B (the common) Visa. You can come to Silicon Valley on your Visa Waiver Program (VWP) for 90 days (3 months), find a job and then get the Visa sponsored by the company.
Find a place to live in the Bay Area (also known as Silicon Valley) / San Francisco areas. If you come on a Visa Waiver Program just rent out a bedroom via AirBnB anywhere you like. Super easy and convenient until you lock down a more long-term accommodation.
Find a job / startup to work at. Or just contact me and I can help you out – we are hiring! A friend came here on a Visa Waiver Program and scored plenty of interviews and locked in a great job in 2 weeks.
Understand employment & contracts in the bay area. There are plenty of perks for great software engineers including long-term financial gains via stock options. Unlike Australia where getting stock options is next to unheard of for software engineers. Check out glassdoor.com to get a feel for the salary range in Silicon Valley.
Before you leave Australia make sure you have attended to the going away checklist; changed to non-resident for tax purposes, notified your banks, given power of attorney to someone you trust etc…
Need help or still not sure?
Look. If you’re a good engineer with the right attitude and want more out of life you need to be in Silicon Valley. If you fear the change it’s ok. It means your human. Contact me and I will help you with your journey from Australia to Silicon Valley and connect you with startups in the bay area.
Don’t waste another day, start today and make a difference in your career and life.
Last weekend myself and Omid Mozayani (another Aussie; recent addition to the valley) spent the weekend of Saturday and Sunday, October 8th and 9th, 2011 at Silicon Valley Code Camp 2011. Held at the Foothill College in Los Altos/CA with an attendance of well over 2,000 (registered 3,417) people and 209 sessions organized in a University style setup over these 2 days. Impossible to attend each one but plenty to cherry pick from. It felt like I was back at Uni(versity) running between lectures. I loved it! Here’s what happened.
What is Code Camp
Code Camp is a new type of free community event by and for the developer community where developers learn from fellow developers. It is 2 full days of talking about code with fellow developers. Sessions range from informal “chalk talks” to presentations. Basically there is lots of education, networking and good food.
Choosing what sessions to attend was key since it was impossible to attend everything when you consider that each session took around 45 min. Here is a wrap of the 3 areas I focused on; ECMAScript (JavaScript) with code encapsulation, Writing Clean Code and Web Analytics. This website will highlight key points.
ECMAScript 5 (JavaScript)
Douglas Crockford ran 2 sessions on ECMAScript 5: The New Parts and ECMAScript: What Next?. Crockford is involved in the development of the JavaScript language and popularizing the data format JSON (JavaScript Object Notation), and for developing JSLint. You may recall me talking about JSLint in a previous blog post on JavaScript Patterns.
Old JS compiler ignores it so it’s safe to use today in all your JavaScript.
A bug in JS used to advantage today for backward compatibility.
“Strict mode” will break old bad programs. If you are writing good programs they will just work.
No more implied global variables within functions.
Yipee! Major fail in JavaScript where undefined variables would chain to the prototype making it very difficult to isolate your code, and to reuse it in new contexts.
If you forget to “var” a variable it now becomes undefined so you can address it vs. letting it slide by. Bad coders beware!
To append something to the global object add “window.function/var”.
“apply” and “call” do not default to the global object.
No “with” statement. Read why it was considered harmful to use.
Shawn Van Ittersum presented ideas for organizing, encapsulating, and simplifying JavaScript code, including: creating JavaScript objects and classes with truly private members, using Douglas Crockford’s module pattern and classical inheritance constructs provided by Dean Edward’s Base.js, Prototype, and MooTools; abstracting JavaScript code from HTML templates, CSS styling, and the DOM; designing with polymorphism (duck typing) for code reuse and simplicity; and using JSLint to identify problems in your code before runtime.
The idea behind the power of Encapsulation is simple:
Encapsulation limits widespread interconnection,
Gives you Freedom to change internal implementations without affecting external code and
is referred to as Loose Coupling – an approach viewed as positive in the field of computer science to remove dependency between systems and allow horizontal scaling.
Theo Jungeblut ran this session and basically the crust of the presentation was that writing clean code makes us more efficient.
This presentation was based on C# and Visual Studio 2010. However the following patterns and practices can be applied to every other programming language too.
Over the lifetime of a product, maintaining the product is actually one – if not the most – expensive area(s) of the overall product costs. Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code.
Readability
Follow coding guidelines.
Simplification and Specialization
KISS (Keep it simple, Stupid!) – most systems work best if they are kept simple rather than made complex.
SRP (Single responsibility principle) – every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.
OCP (Open/closed principle) – software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification aka inheritance & encapsulation.
Decoupling
LSP (Liskov substitution principle) – guarantee semantic interoperability of types in a hierarchy, object types in particular.
DIP (Dependency inversion principle) – high-level modules should not depend on low-level modules. Both should depend on abstractions. And abstractions should not depend upon details. Details should depend upon abstractions.
IHP (Information hiding principle) – prevent certain aspects of a class or software component from being accessible to its clients aka encapsulation.
Contracts – 2 categories: preconditions and postconditions where a precondition states that certain things must be true before a method can execute, and a postcondition states that certain things must be true after a method has executed.
LoD (Law of Demeter or Principle of Least Knowledge) – specific case of loose coupling where units (code) only talk to immediate friends (not strangers) assuming as little as possible about the structure or properties of anything else.
IoC (Inversion of control) – reusable generic code controls the execution of problem-specific code. It carries the strong connotation that the reusable code and the problem-specific code are developed independently, which often results in a single integrated application.
SOA (Service-oriented architecture) – develop code in business functionalities (discrete pieces of code and/or data structures) that can be reused for different purposes.
Avoiding Code Blow
DRY (Don’t repeat yourself) – reduce repetition of information.
YAGNI (You ain’t gonna need it) – do not add functionality until it is necessary.
And don't forget, Scout rule = leave a better place!
Recommended book
SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) is a mnemonic acronym introduced by Robert C. Martin
Web Analytics
Massimo Paolini presented on Google Analytics. The most profound thing he said which delivered a strong message is:
"Web analytics is about Revenue NOT traffic."
Bang! Right there. Too many site owners are mislead into trying to decipher visitor totals vs. focusing on the true picture; and that is how to understand and optimize their site visitors across online marketing efforts. The process is then rinse & repeat.
Finally, Web Analytics is NOT a precise science. You are looking for trends. Differences. To help you make decisions moving forward. This is because some people clean their systems ie.delete cookies etc..
Presentations from Silicon Valley Code Camp
For more presentations from these 2 days follow the link below to presenter uploaded presentations to SlideShare. Includes 2011 and previous years. Enjoy!
There are over 17,000 Australians living in San Francisco and the Bay Area (Silicon Valley). And some of these Aussies are making their presence felt in the Valley’s high-tech scene.Back in March 2009, when I arrived in the Valley full-time, I had no clue about the extent of the Aussie footprint here. As time ticked on and I got familiar & orientated around the tech scene the area has to offer I got fired up and inspired. I started to see what fellow Aussies were up to, the impact they were/are leaving and great opportunities this area provides.
Below is a list of these Super Aussies and the companies they are running (have run & sold) in the high-tech scene of Silicon Valley.
Aims to empower consumers with tools for planning and forecasting your finances. Presented at Finovate NYC.
Last updated: Sept 2011
Advance.org – Global Australians. Global Networks.
Advance.org helps create opportunities for Australians living abroad. They organise events/forums in and around San Francisco / Bay Area to help Aussies to connect together, share ideas, spark mentorship & marketing programs. More here: advance.org
Bardia Housman (see above ref Adobe) has purchased a 36,000 sq foot building (at 880 Harrison Street, San Francisco, CA 94107), in the heart of San Francisco, to transform it into an incubator for Australian start-ups. It’s currently being built up but will most definitely be a kick ass place for Aussies enterprunrs. More on this project with Elias Bizannes (see above ref StartupBus) in the video below. All the best guys! Looking forward to paying a visit.
Media coverage: Recently published in the Sydney Morning Herald (SMH)
Tony George from Austrade in Los Angeles helps Australian start-ups get a foothold in the US.
Austrade provides grants, helps entrepreneurs with research, advice about market entry, referrals to service providers such as lawyers and accountants, and most importantly hooking them up directly with potential customers.
Pollenizer and Startmate are helping the Australian tech start-up scene grown. But the conventional wisdom is still that start-ups needed to go to the US to raise funds and be exposed to the movers and shakers in the tech industry.
If you know of other Aussies in Silicon Valley/SF that are steaming ahead with their product/s please let me know and I will add them to this list above. Thanks!
So you have the itch.. the entrepreneur’s itch. Being in Silicon Valley it’s hard not to have it when you get to rub shoulders with many founders and investors on a weekly basis at the many meetup events organized by like minded individuals. There you hear many inspiring stories and adventures in entrepreneurship and how you too can walk that path when you set your mind to it. Read Cortney Fletcher’s eCom babes course reviews to get you rolling on this journey. I also have my top 8 books listed below which are sure to fuel your entrepreneurial itch!
Keys to the Vault: Lessons From the Pros on Raising Money and Igniting Your Business
I purchased this book after being inspired by Keith during a presentation on business entrepreneurs. Keys to the Vault is The Formula, the recipe, for raising money and creating a successful business. No fat in this book, just pure step by step here’s how the industry works and here’s how you can do it yourself – step by step! My favorite of the lot.
I purchased this book after being inspired at Startup School, by YCombinator. Founders at Work is a collection of interviews with founders of famous technology companies about what happened in the very earliest days. Some of the companies in question include Apple, Flickr, PayPal, Gmail, Twitter etc. You will learn that these founders had no special human powers but persevered during hard times and worked hard towards their vision.
Never Get a “Real” Job: How to Dump Your Boss, Build a Business and Not Go Broke
by Scott Gerber, serial entrepreneur, angel investor, media personality, public speaker and the most-syndicated young entrepreneurship columnist in the world.
I purchased this book after being inspired by a very successful Silicon Valley CEO – his company is mentioned inside this book. Never Get a “Real” Job is straight to the point, no bullshit, that having a JOB (Just Over Broke) suxs! Being an employee is not rewarding enough as being an entrepreneur. This book is a wake up call and tells you how to make dramatic changes from an employee to an entrepreneur without going broke.
Innovation and Entrepreneurship
by Peter F Drucker, who was a writer, management consultant, and self-described “social ecologist.”.
Peter shares with us an excellent framework for innovation providing some general guidelines for identifying innovative opportunities. The key take away is that successful entrepreneurs do not wait until having a “bright idea”; they go to work. He was ahead of his time, a man of pure genius!
37signals business model of profits from the word go inspires me hence why I purchased this book. Rework is a collection of the best posts from Signal vs. Noise, a weblog by 37signals about design, business, experience, simplicity, the web, culture, and more. The book can be read in 2 hours and it damn straight to the point. It will make you extremely uncomfortable. But that’s why it’s so good because it breaks through all the bullshit and tells you how it really is.
The Monk and the Riddle : The Education of a Silicon Valley Entrepreneur
by Randy Komisar, a new breed of executives who have been called “virtual CEO’s with a wealth of experience under his belt.
Randy takes the reader through a hypothetical Silicon Valley start-up and what it takes to get a business running, funded and profitable. This books reminds me of The Monk Who Sold His Ferrari: A Fable About Fulfilling Your Dreams & Reaching Your Destiny with a focus on Silicon Valley startup.
Drive: The Surprising Truth About What Motivates Us
by Daniel H. Pink, an American writer, speechwriter, and motivational speaker.
The holy grail of people management. Daniel shares with us the surprising truth. People want Autonomy (control over their work), Mastery (get better at what they do) and Purpose (to be part of something that is bigger than they are). It’s that simple. Yet many employers fail to see this and use old aged approaches. Here’s a fantastic 10 minute animated cap by RSA of what the book is about: http://www.youtube.com/watch?v=u6XAPnuFjJc
Brain Rules: 12 Principles for Surviving and Thriving at Work, Home, and School
by John Medina, a developmental molecular biologist and research consultant whom publishes fascinating insights on his Brain Rules website about what’s really going on inside our heads.
I am also a life hacker, and as such, this book had to sit in my book shelf. If workplaces had nap rooms, multitasking was frowned upon, and meetings were held during walks, we’d be vastly more productive. Brain Rules reveals – in plain English – 12 ways our brains truly work. Killer killer killer content – it will reshape how you do business and function on a daily basis.
ReadingList – what else am I reading?
If you like my suggestion of books I highly recommend you run my Facebook App called ReadingList where I share with my followers all the cool books I’m reading, my reviews and comments. Give it a shot, it’s a FREE app. Go there now: http://apps.facebook.com/readinglist
I love comments so don’t forget to say G’day to this Aussie in Silicon Valley.
November 2010 and another fellow Aussie touched down in the high tech land known as Silicon Valley. Last week I had the pleasure meeting this Aussie who arrived from Sydney, Australia. His name is Vincent Turner and he is the founder of Pisces Communication. To find out what his experience has been like so far in Silicon Valley and what his plans are, I decided to pick his brains. Here’s what happened.
What service / product does your company provide?
Qualification & Pricing Software to banks and brokers.
What role do you play?
CEO
How long have you been running / working on your product / service?
I originally founded the company in 2000 in Perth as a messaging company however evolved to software for banks in the last 5 years. We changed strategy from a platform to a services model 2 years ago and redeveloped our capability to underpin that model which has allowed us to look at new markets, hence why I am in the US now setting up our operations here (since Nov 2010).
Technology
What personal hardware are you using?
I use Apple personally, I’m sick of Windows and seeing as my work is email, word, excel and Powerpoint and Mac Office 2011 is out (and good) I have no need for Windows. Macbook 11-inch is my current laptop.
What Solution Stack is your business built on?
We have a very strong philosophy of choosing the technology that is right, not simply what we know. Our current market positioning (enterprise end users) means we have both Java & .Net in the stack. We also use GWT for our user front end. We have very little reliance on the database as we dont’ store customer data within our services. We run everything on the cloud, Amazon is our current provider. As part of our business we also work with CRM packages including Dynamics and Salesforce but do little to no development on these components. As we move more into the consumer facing aspects of the business we expect to take on Ruby on Rails, but early days on that for the moment.
What decision(s) lead you to go with that Solution Stack?
We want to have an each way bet with Java and .Net and like to provide our developers with the opportunity to know and work with both. We have customers who are running both and although our architecture is all services based, certain aspects of integration are simplified when you’re running the same stack so this was part of the thinking.
In terms of front end, GWT was the obvious choice for RIA for us when we started our redevelopment 2 years ago as the libraries were extensive and well road tested and as it is basically Java meant our guys could easily get hands on within eclipse etc. I don’t see us using GWT for our next breed of consumer facing interfaces however.
Top 3 Favourite online services you couldn’t live without?
Xero.com – online accounting, with real-time bank data feeds.
URL: http://www.xero.com/
Skype – I’d go sans phone if I could, but Skype need to sort their chat out something chronic.
URL: http://www.skype.com/
Silicon Valley
What made you come to Silicon Valley?
If you’re an actor, you go to Hollywood. If you’re in IT you come to Silicon Valley.
What are 3 Top Challenges you faced upon arrival in Silicon Valley?
Probably too early for me on this but to date:
Sorting out the wheat from the chaff in terms of who can help you in this city and who is just going to waste your time.
Domain expertise and industry terminology for our market (lending) – hard to have meaningful conversations when you’re not sure of the right word to describe your approach.
Roles & Titles – seems like everyone here is the VP of something. Makes it hard to know if you’re talking to the right person.
How about Visa or finding a place to live?
I don’t think I’m having too many issues with the visa process or finding places to live. I found a good immigration lawyer early on.. and Craigslist for accommodation before I left.
What resources did you turn to overcome these challenges?
google.com
theroadtosiliconvalley.com
networking events
australian expats
Bay Area or San Francisco to settle?
I’d love to say this decision is made but far from it. I almost think that the Bay Area & SF need to sort it out!
Eventually I will end up back in or near the city. Probably Duboce triangle area as this is so central to the Muni and I think any regular car user in this day and age needs to seriously re-evaluate.
In terms of office, this will always be a decision to be made with the team as I think it is part of the culture of the business and something that is reached by the early team members. I’d ideally live nearish work.
Which part of San Francisco?
Duboce triangle and surrounds.
Why did you make this decision?
Central to everything (in SF).
1 word of advice for our Aussie entrepreneurs wanting to come to Silicon Valley and start their own business?
The best advice I got was ‘just come here’ .. get on the ground and work it out. I had the good fortune/planning/luck to be able to continue to work for my AU business while getting out here for 3 months on a travel visa, while setting up and I think this has allowed me the time to do things properly, meet people, walk around and consider my options in a measured & balanced way.
If you’re in IT, then to date in my travels I can safely say there is not place like the bay area. The level of activity here every week is amazing and it will motivate you and empower you. Also, get on meetup and find some networking groups that suit you.
Thank you for doing this interview Vincent. And for sharing these golden nuggets of experience with the readers of The Road to Silicon Valley.