Roger Huang

Roger is an entrepreneur who has co-founded a social network entitled ThoughtBasin that looks to connect students looking to make a difference with organizations looking for difference makers. This experience has given him some setbacks, but also some priceless insights. He is deferring admission from the law school of University of Toronto to pursue his dream of creating impact through entrepreneurship, and he is constantly looking to learn and create, and to do more. He contributes to social entrepreneurship projects with his fellow Global Shapers, coordinates a volunteer tutoring site, and on his off time he unwinds by reading, writing, and dancing---sometimes, all at the same time. Follow him on Twitter at https://twitter.com/Rogerh1991.

Learning Lists, Uncategorized

Learn Machine Learning With These Six Great Resources

Learn Machine Learning 

A friend of code(love), Matt Fogel is doing awesome things with machine learning at fuzzy.io. He’s shared this valuable list of resources to learn machine learning that he usually gives his friends who ask him for more information.

You’ll see his original post here: https://medium.com/@mattfogel/master-the-basics-of-machine-learning-with-these-6-resources-63fea5a21c1c#.ta2bhsq8y

Learn machine learning with code(love)

Learn machine learning with code(love)

Great blog posts, podcasts and online courses to help you get started

It seems like machine learning and artificial intelligence are topics at the top of everyone’s mind in tech. Be it autonomous cars, robots, or machine intelligence in general, everyone’s talking about machines getting smarter and being able to do more.

Yet for many developers, machine learning and artificial intelligence are dense terms representing complex problems they just don’t have time to learn.

I’ve spoken with lots of developers and CTOs about Fuzzy.io and our mission to make it easy for developers to start bringing intelligent decision-making to their software without needing huge amounts of data or AI expertise. A lot of them were curious to learn more about the greater landscape of machine learning.

You can describe machine learning as using techniques to help computers learn new ways of uncovering insights from data. This deep dive into the topic will explore many elements outside of this short guide if you’re interested in learning more.

What you need to understand before you learn machine learning is that it’s not a magic buzzword that will help solve every problem with you. Machine learning is a practical way to get more data insights with less work. Nothing more, nothing less. 

To quote a professor in the field, “Machine learning is not magic; it can’t get something from nothing. What it does is get more from less. Programming, like all engineering, is a lot of work: we have to build everything from scratch. Learning is more like farming, which lets nature do most of the work. Farmers combine seeds with nutrients to grow crops. Learners combine knowledge with data to grow programs.”

If that excites you, here are some of the links to articles, podcasts and courses about machine learning that I’ve shared with my friends who were eager to learn more. I hope you enjoy!

Learn machine learning with code(love)

Learn machine learning with code(love)

1A Gentle Guide to Machine Learning

This guide, written by the awesome Raul Garreta of MonkeyLearn, is perhaps one of the best I’ve read. In one easy-to-read article, he describes a number of applications of machine learning, the types of algorithms that exist, and how to choose which algorithm to use.

2A Visual Introduction to Machine Learning

This piece by Stephanie Yee and Tony Chu of the R2D3 project gives a great visual overview of the creation of a machine learning model that determines whether an apartment is located in San Francisco or New York based on the traits they hold. It’s a great look into how machine learning models are created and how they work in practice.

Podcasts

3Data Skeptic

A great starting point on some of the basics of data science and machine learning. Every other week, they release a 10–15 minute episode where the hosts (Kyle and Linhda Polich) give a short primer on topics like k-means clustering, natural language processing and decision tree learning. They often use analogies related to their pet parrot, Yoshi. This is the only place where you’ll learn about k-means clustering via placement of parrot droppings.

4Linear Digressions

This weekly podcast, hosted by Katie Malone and Ben Jaffe, covers diverse topics in data science and machine learning. They teach specific advanced concepts like Hidden Markov Models and how they apply to real-world problems and datasets. They make complex topics extremely accessible, and teach you new words like clbuttic.

Online Courses

5Intro to Artificial Intelligence

Plan for this online course to take several months, but you’d be hard-pressed to find better teachers than Peter Norvig and Sebastian Thrun. Norvig quite literally wrote the book on AI, having co-authored Artificial Intelligence: A Modern Approach, the most popular AI textbook in the world. Thrun’s no slouch either. He previously led the Google driverless car initiative.

6Machine Learning

This 11-week long Stanford course is available online via Coursera. Its instructor is Andrew Ng, Chief Scientist at Chinese internet giant Baidu and one of the pioneers of online education. 

This list is really only scratching some of the complex and multifaceted topic that is machine learning.  If you have your own favorite resource, please suggest it in the comments and start a discussion around it!

 

Open News

Shake: The Bitcoin Debit Card Perfect for Travel or Anything Else

If you’ve ever been hit by foreign transaction fees, you’ll probably have remembered your dream trip around the world less fondly.

We live in a global economy, but the infrastructure to deal with it doesn’t seem to have caught up. Financial companies still charge you for the crossing of borders and you’re largely restricted to a set of charge and bank cards you have to collect in your mailbox or go to a branch to get.

Shake: A new Bitcoin debit card

Shake aims to change all of that. You can issue as many cards as you’d like digitally for a variety of expenses by loading them with Bitcoin.

Importantly, you can choose to issue a card in different foreign currencies. Foreign currency charges still apply if you charge a card differently than the currency you issued it in, but since Shake seamlessly allows you to create as many cards as you want, you can simply prevent those charges by making sure that you issue a card for every situation.

You can also choose to receive SMS notifications every time a transaction is approved or denied on your Shake Bitcoin debit card.

This bypasses several financial constraints. You can travel around the world without worrying about foreign transaction fees. You can load your card with Bitcoin, and spend it wherever you want in whatever currency you issue, bypassing stores that don’t accept Bitcoin. Shake allows you to take advantage of NFC (near-field communications) payment technology, the same technology that powers Apple Pay.

Shake uses Visa’s financial infrastructure to back an innovative approach to democratizing the spend of bitcoin that comes with the security and ease of use required for anybody to start spending their money around the world.

I played around with it and figured out that you could issue a Bitcoin debit card with no daily purchase limit. The first tier of cards (dubbed the KYC Level 1) allowes you to issue cards up to a value of $2,500 USD. If you want an unlimited amount, you’ll have to upgrade to the KYC Level 2, though that’s free of charge. The interface was slick and easy to navigate: in other words, nothing like your typical experience with a bank.

While I was there, I thought I glimpsed a bit of the financial future, one where transactions were as seemless and as costless as possible, and one where banks cared about end users in every way. I don’t know if Shake will be a large part of that vision in the future, but I do know they are moving the needle on it, and that given the right moves, the company could help transform financial transactions.

For now though, they’re in Alpha, and Shake is merely your key to unlocking an ultramodern financial system, on-demand–which for most people, may be more than they’ll ever need.

Learning Guides

Python List Comprehension: An Intro and 5 Learning Tips

Python list comprehension: an introduction and 5 great tips to learn

Python list comprehension empowers you to do something productive with code. This applies even if you’re a total code newbie. At code(love), we’re all about teaching you how to code and embrace the future, but you should never use technology just for its own sake.

Python list comprehension allows you to do something useful with code by filtering out certain values you don’t need in your data and changing lists of data to other lists that fit specifications you design. Python list comprehension can be very useful and it has many real-world applications: it is technology that can add value to your work and your day-to-day.

To start off, let’s talk a bit more about Python lists. A Python list is an organized collection of data. It’s perhaps easiest to think of programming as, among other things, the manipulation of data with certain rules. Lists simply arrange your data so that you can access them in an ordered fashion.

Let’s create a simple list of numbers in Python.

numbers = [5,34,324,123,54,5,3,12,123,657,43,23]
print (numbers)
[5, 34, 324, 123, 54, 5, 3, 12, 123, 657, 43, 23]

You can see that we have all of the values we put into the variable numbers neatly arranged and accessible at any time. In fact, we can access say, the fifth variable in this list (54) at any time with Python list notation, or we can access the first 5 and last 5 values in the list.

print(numbers[:5]); print(numbers[-5:]); print(numbers[4])
[5, 34, 324, 123, 54]
[12, 123, 657, 43, 23]
54

If you want to learn more about how to work with Python lists, here is the official Python documentation and an interactive tutorial from Learn Python to help you play with Python lists.

Python list comprehensions are a way to condense Python for loops into lists so that you apply a formula to each value in the old list to create a new one. In other words, you loop a formula or a set of formulae to create a new list from an old one.

What can Python list comprehensions do for you?

Here’s a simple example where we filter out exactly which values in our numbers list are below 100. We start by applying the [ bracket, then add the formula we want to apply (x < 100) and the values we want to apply it to for (x in numbers -> numbers being the list we just defined). Then we close with a final ] bracket.

lessthan100 = [x < 100 for x in numbers]
print (lessthan100)
[True, True, False, False, True, True, True, True, False, False, True, True]
#added for comparision purposes
[5, 34, 324, 123, 54, 5, 3, 12, 123, 657, 43, 23]

See how everything above 100 now gives you the value FALSE?

Now we can only display which values are below 100 in our list and filter out the rest with an if filter implemented in the next, which is followed by the if trigger.

lessthan100values = [x for x in numbers if x < 100]
print(lessthan100values)
[5, 34, 54, 5, 3, 12, 43, 23]

We can do all sorts of things with a list of numbers with Python list comprehension.

We can add 2 to every value in the numbers list with Python list comprehension.

plus2 = [x + 2 for x in numbers]
print (plus2)
[7, 36, 326, 125, 56, 7, 5, 14, 125, 659, 45, 25]

We can multiply every value by 2 in the numbers list with Python list comprehension.

multiply2 = [x * 2 for x in numbers]
print(multiply2)
[10, 68, 648, 246, 108, 10, 6, 24, 246, 1314, 86, 46]

And this isn’t just restricted to numbers: we can play with all kinds of data types such as strings of words as well. Let’s say we wanted to create a list of capitalized words in a string for the sentence “I love programming.”

codelove = "i love programming".split()
codelovecaps = [x.upper() for x in codelove]
print(codelove); print(codelovecaps)
['i', 'love', 'programming']
['I', 'LOVE', 'PROGRAMMING']

Hopefully by now, you can grasp the power of Python list comprehension and how useful it can be. Here are 5 tips to get you started on learning and playing with data with Python list comprehensions. 

1) Have the right Python environment set up for quick iteration

When you’re playing with Python data and building a Python list comprehension, it can be hard to see what’s going on with the standard Python interpreter. I recommend checking out iPython Notebook: all of the examples in this post are written in it. This allows you to quickly print out and change list comprehensions on the fly. You can check out more tips on how to get the right Python setup with my list of 11 great resources to learn and work in Python.

2) Understand how Python data structures work

In order for you to really work with Python list comprehensions, you should understand how data structures work in Python. In other words, you should know how to play with your data before you do anything with it. The official documentation on the Python website for how you can work with data in Python is here. You can also refer again to our resources on Python.

3) Have real-world data to play with

I cannot stress enough that while a Python list comprehension is useful even with pretend examples, you’ll never really understand how to work with them and get things done until you have a real-world problem that requires list comprehensions to solve.

Many of you came to this post with something you thought list comprehensions could solve: that doesn’t apply to you. If you’re one of those people who are looking to get ahead and learn without a pressing problem, do look at public datasets filled with interesting data. There’s even a subreddit filled with them!

Python list comprehension with code(love)

Real-world data with code(love)

4) Understand how to use conditionals in list comprehensions

One of the most powerful applications of Python list comprehensions is the ability to be able to selectively apply different treatments to different values in a list of values. We saw some of that power in some of our first examples.

If you can use conditionals properly, you can filter out values from a list of data and selectively apply formulas of any kind to different values.

The logic for this real-life example comes to us from this blog post.

Imagine you wanted to find every even power of 2 from 1 to 20.

In mathematical notation, this would look like the following:

A = {x² : x in {0 … 20}}

B = {x | x in A and x even}

square20 = [x ** 2 for x in range(21)]
print(square20)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400]
evensquare20 = [x for x in square20 if x % 2 == 0]
print (evensquare20)
[0, 4, 16, 36, 64, 100, 144, 196, 256, 324, 400]

In this example, we first find every square power of the range of numbers from 1 to 20 with a list comprehension.

Then we can filter which ones are even by adding in a conditional that only returns TRUE for values that when divided by 2 return a remainder of 0 (even numbers, in other words).

We can then combine the two into one list comprehension.

square20combined = [x ** 2 for x in range(21) if x % 2 == 0]
print(square20combined)
[0, 4, 16, 36, 64, 100, 144, 196, 256, 324, 400]

Sometimes, it’s better not to do this if you want things to be more readable for your future self and any audience you’d like to share your code with, but it can be more efficient.

5) Understand how to nest list comprehensions in list comprehensions and manipulate lists with different chained expressions

The power of list comprehensions doesn’t stop at one level. You can nest list comprehensions within list comprehensions to make sure you chain multiple treatments and formulae to data easily.

At this point, it’s important to understand just what list comprehensions do again. Because they’re condensed for loops for lists, you can think about how combining outer and inner for loops together. If you’re not familiar with Python for loops, please read the following tutorial.

This real-life example is inspired from the following Python blog.

list = [(x,y) for x in range(1,10) for y in range(0,x)]
print(list)
[(1, 0), (2, 0), (2, 1), (3, 0), (3, 1), (3, 2), (4, 0), (4, 1), (4, 2), (4, 3), (5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 6), (8, 0), (8, 1), (8, 2), (8, 3), (8, 4), (8, 5), (8, 6), (8, 7), (9, 0), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8)]

If we were to represent this as a series of Python for loops instead, it might be easier to grasp the logic of a Python list comprehension. As we move from the outer loop to the inner loop, what happens is that for each x value from 1 to 9 (for x in range(1,10)), we print out a range of values from 0 to x.

for x in range(1,10):
    for y in range(0,x):
        print(x,y)
1 0
2 0
2 1
3 0
3 1
3 2
4 0
4 1
4 2
4 3
5 0
5 1
5 2
5 3
5 4
6 0
6 1
6 2
6 3
6 4
6 5
7 0
7 1
7 2
7 3
7 4
7 5
7 6
8 0
8 1
8 2
8 3
8 4
8 5
8 6
8 7
9 0
9 1
9 2
9 3
9 4
9 5
9 6
9 7
9 8

The chain of for loops we just went over has the exact same logic as our initial list comprehension. You’ll notice though that in a for loop, you will print seperate values while in a list comprehension it will produce a new list, which allows us to use Python list notation to play with the data.

With this in mind, you can make your code more efficient and easily manipulable with a Python list comprehension.

I hope you enjoyed my introduction to Python List Comprehensions. If you want to check out more content on learning code, check out the rest of my content at code-love.com! Please comment if you want to join the discussion, and share if this created value for you 🙂

Interactive Items

The best programming language for beginners to learn (an interactive list)

[playbuzz-item url=”//www.playbuzz.com/rogerhuang10/what-is-the-best-programming-language-for-beginners-to-learn-interactive”]

At code(love), we believe in interactivity and participation.

Instead of treating our opinions as facts, we’ve decided to let people from all over vote and comment on what the best programming language for beginners is. Feel free to participate: all input is valued!

Comment below on why you voted for the programming language you chose, and argue your way civilly with proponents of other languages.

Learning Lists

11 Great Resources to Learn and Work in Python

Python is one of our favorite languages at code(love). Versatile, and yet easy to grasp, it’s one of the best languages at expressing the logic behind code with a simplicity that is sometimes breathtaking in its elegance.

If you happen to be more practical, Python always ranks among one of the programming languages that draws the highest median annual salaries, hovering around the magic $100,000 USD mark.

Despite how simple it is, Python is also surprisingly powerful. It can help introduce you to the basics of machine learning, it can slice and dice relatively big datasets for you, and it can even help you build entire web platforms. Pinterest often uses Python to serve millions of images around the world.

The language itself grows ever more versatile with its community. If you want to join this healthy, vibrant network of builders and learn how to do awesome things with Python, you’ve come to the right place. Here are eleven places you should start.

Python is poetry

Python is poetry

1-Read about Python

Learn Python the Hard Way was my first introduction to Python and several programming concepts. Author Zed A. Shaw made the book accessible online for free, but he has a special place in his heart and inbox for people who pay the small sum of $29.95. The practical exercises within are well worth going through. Make sure you write out as much of the code as possible: it’s only through mastery of the basics that you can become an expert.

2-Watch Python Videos

If you’re more of a visual learner, you can learn about the fundamentals of using Python for the web with this excellent free Udacity course. Of course, there’s more where that came from, with a variety of courses from everything to data fundamentals in Python to machine learning. I went through the series myself, and though it’s a bit long (and there are a lot of exercises that I didn’t think added that much value), the end result was that I came out of the tutorial with a deeper understanding of how data moves across the web.

You can also catch plenty of Python videos on Coursera, Treehouse and Udemy.

Udacity with code(love)

Udacity with code(love)

3- Look through lists of Python Learning Resources

This might be a little bit meta, but I love lists of resources. One of the hidden secrets to finding those great resources are going through Github repositories. Github is the Google Docs of code, a great collection of “repositories” where coders can “commit” their code to a shared codebase. It’s also a place where people love compiling great collections of programming resources.

This particular link above is a favorite collection of mine. I hope you enjoy it as much as I do.

4- Anaconda and iPython Notebook

Anaconda and iPython Notebook are what I commonly refer to as the “Excel” of Python. It can be hard to work with the Python interpreter (the command line prompt where you enter Python code if you install it from Python.org) as is. You can’t really refer back to the work that you’ve done before very easily without saving a whole variety of Python files, and it can be pretty hard to share your code with the web at large in HTML form, especially with different charts and graphs and a structured flow you want to convey that goes beyond just one Python script.

iPython Notebooks allow you to write your code in Notebook form.

iPython Notebook with Python

This is what Notebook form looks like.

Python Interpreter with code(love)

This is what the Python interpreter looks like. Source: http://2.bp.blogspot.com/-Duisv8kz1l0/T9q30qpexeI/AAAAAAAAAAM/hxsQB-tLt7E/s1600/python-interpreter.png

Anaconda and iPython Notebook make it intuitive and visually appealing to organize different Python software modules, and bring them together so that you can work and show your results as easily as possible with nbviewer, which generates a HTML version of your Notebooks that you can share on Github. A lot of popular modules we talk about like Pandas are pre-installed, saving you some time. When you click on the next link, you’ll see exactly what it looks like using iPython Notebook.

5-Slice and dice data with Pandas

Built on the aforementioned iPython Notebook, Julia Evans has created a “cookbook” for the Pandas module, a collection of Python code that can help you handle relatively large data sets with ease.

Python can only help you process what you can fit in memory on your computer, but that’s more than enough for most of your data needs. Pandas will help you efficiently process that data: you’ll be able to read from very large CSVs and clean them up so you can find great data insights and visualize them (more on that in point #10!)

6-Build something small with Flask

Flask is what is termed as a micro-framework, a set of code that you can lean on to build small web projects. It has a bunch of reuseable components that help you build interactive websites that can both receive and transmit data. Give it a try: in a few lines of codes, you can get something interactive going on the web!

7-Build something big with Django

If you’re tired of the word micro, and want to go with a full web framework, build something with Django! Django is used to this day to build very large websites including Pinterest, and Instagram.

django with code(love)

Take a bite out of the web with Django!

8-Play around with Python APIs and even more!

We had a list of learning resources before on Github, now we can explore a list of the things that make Python awesome! I especially love using Python to play with Application Programming Interfaces or APIs. APIs are a set of rules for servers to communicate data with one another: what this means is that with Python, you can scrape your personal fitness information from your Fitbit or work with Google Sheets automation easily. You can do anything that involves getting data from a server willing to give it to you.

You’ll find a list of really cool APIs above that will allow you to play with all sorts of cool data!

9-Do some machine learning with Python

Have you heard of machine learning? It’s all the rage today and the reason why is because it allows you to do more with less. By having machines learn patterns in your data and by being able to infer conclusions from smaller data sets to larger populations with their insights, machine learning lets you know more about the world around you with less data points.

This Github repository offers a fantastic dive into the fundamentals of machine learning, and gets you to practically embark on your machine learning adventure with sample code sets.

10-Tell data stories with Plotly

Data doesn’t mean anything unless you can storytell with it. You can throw all the numbers in the world at people but it won’t mean they’re any closer to understanding your point. You really have to break down your data into meaningful chunks for it to go anywhere.

Thankfully, Plot.ly can help with that. With a few lines of Python, you’ll be well on your way to doing bar graphs, charts, and figures of all kinds.

Plotly with code(love)

An example of what you can do with Plotly!

11-Do coding challenges in Python

Now that you’re done learning all of the fun stuff in Python, it’s time to put yourself up to the test! Use HackerRank challenges to test your skills: you could even get a job out of it!

HackerRank allows you to complete problems in the coding language of your choice and allows you to demonstrate your skill with clean code that solves problems in a short amount of time.

Python is a wonderful language for programming beginners, and powerful enough to explore multiple areas of data, machine learning, artificial intelligence and other advanced computer science concepts. It’s the perfect mix for anybody who is getting into programming or who wants to develop their skills further. With these resources you’ll be able to learn and work in Python!

Share this list of resources if it can help somebody–and let me know what else could be added to this list in the comments 🙂

Source for featured image: http://www.slideshare.net/audreyr/python-tricks-that-you-cant-live-without

Open News

The 15 Most Popular Programming Languages on Github

There’s always a lot of questioning when it comes to the most popular programming languages in use.

Github, the network of programming repositories, is always a good place to gauge programmer activity and the trending languages you want to know.

Loggly, “a fast-growing startup helping thousands of cloud-centric organizations to turn log file data into insight and action” has helped do the hard work of finding those languages. Here are the results:

15 Most Popular Programming Languages on Github

15 Most Popular Programming Languages on Github

Technology and Society

The real reason why net neutrality matters

A lot of people think the core of net neutrality is site speed: the amount of time information is served to users. They’re partially right, but there’s a fundamental flaw in keeping the explanation to just those confines.

The Internet at its core is a bunch of servers (computers up 24/7) that receive HTTP requests from clients: your web browser or mine.

The whole point of the Internet is that it abstracts away physical location so that you can consume data created elsewhere: data in the form of textual input/images/ and technical assets such as CSS/Javascript files (NYT’s digital website) or video (Netflix) or in the case of things like Kimono which creates what is known as an Application Programming Interface out of static websites, a structured auto-updated data feed that can be interpreted by your server so you can, for example, scrape data from Yahoo Finance and create your own auto-updating personal dashboard of leading stock picks.

Now the reason why the net neutrality debate has focused on bandwidth and speed of transfer rather than the fundamentals of the Internet are because most people approach it from a user point of view rather than a server/builder point of view, as there are vastly more Internet users than builders so we focus on the paid connections clients have to use to access servers.

Net Neutrality with code(love)

Net Neutrality with code(love)

The crux of the debate isn’t that your Netflix is slower than it should be or that the “tubes” carrying data are filled up and so you will get shittier Internets.

The real core of the debate is that from the builder side, if one were to discriminate based on content type or volume, services like blogs, peer-to-peer cryptocurrency, and more would be threatened because as soon as they show business viability, a monopoly in another industry can arbitrarily decide to toll them either to discourage that growth or to profit from it as much as possible.

This kills innovation. We saw it with the destruction of Google Wallet and the degradation of bittorrent. We will see it when the next Netflix or Spotify fails to ever start because the cost of paying monopoly fees at an early stage will crush any hopes of late-stage returns.

The real argument around net neutrality is whether you trust a monopoly of telecom companies, users, or the government to determine what services the Internet should provide.

I obviously prefer users, but given that the power of the government is being balanced with corporate power, I lean towards the former not because I love governmental intervention but because it is the lesser of two evils. The US government barring its recent spate of backdoor hacking has done a reasonably good job with, for example, giving more power to ICANN (the organization responsible for managing the domain name system) so that innovation is spurred by non-government sources.

Meanwhile, new technologies have constantly been attacked by ISPs.

https://www.techdirt.com/articles/20…-problem.shtml

“Even in the U.S., there have been some major violations by small and large ISPs. These include:

The largest ISP, Comcast, secretly interfering with peer-to-peer technologies, including some of the most popular basic technologies used to distribute online TV and music (2005-2008);

A small telephone ISP called Madison River blocking Vonage, a company providing competing telephone service online (2005);

Apple blocking Skype on the iPhone, subject to a secret contract with AT&T, a company that competes with Skype in providing telephone service (2008-2009);

Verizon, AT&T, and T-Mobile blocking the functionality of Google Wallet on Nexus devices, while all three of those ISPs are part of a competing mobile payments joint venture called Isis (late 2011- +today);

and Comcast’s disputes with Level 3 and Netflix over termination fees, and the appearance that Comcast is deliberately congesting its network connections to force Netflix to pay Comcast for an acceptable connection (2010- +today).

In other countries, including democracies, there are numerous violations. In Canada, rather than seeking a judicial injunction, a telephone ISP used its control of the wires to block the website of a union member during a strike against that very company in July 2005. In the Netherlands, in 2011, the dominant ISP expressed interest in blocking against U.S.-based Whatsapp and Skype.”

I don’t want to live in a world where monopolistic ISPs determine what innovations thrive and which ones die.

IN SUMMARY

The fundamental problem in net neutrality isn’t how fast services can be rendered to clients, it’s that if ISPs have their way, those services users want will never get the chance to prove themselves and survive.

Photo credit: https://www.flickr.com/photos/36540382@N08/3419555567/

Learning Lists

Nine free, brilliant resources to learn data mining

I’m a big fan of playing with data.

In my earlier corporate life, I often used Excel to look through thousands of lines of spreadsheet goodness. I assumed what I was doing was “big data”, and I prided myself on my association with a trendy buzzword.

I know better now. A lot better.

If you’ve ventured here, you’re probably looking into data science, the mysterious science that seems to verge on mysticism in the press. The virtues of data are constantly praised as innovative and disruptive. They seem like the domain of an exclusive few practitioners lifting numbers into actionable insight.

Harvard Business Review went as far as to saying that the data scientist was the sexiest job of the 21st century.

It seems that data scientists create many of the most exciting projects at the cutting-edge of technology. The people you may know on LinkedIn appear thanks to data mining. Amazon’s book recommendations rely on computers to mine your book preferences and select the one book that is most likely to appeal to you. Facebook finds what posts you like, and serves you more of the same. Google finds out who you are, and filters search results and ads for you.

If I like computers, the search term Python will return me the programming language. If I like snakes, it will return me a whole bunch of snakes.

This is all down to the magic of data mining. You’re here because you want to look behind the veil and learn how to do all this.

It’s hard, but not as hard as you think. Data science, at its’ core, is all about using computing power to parse through huge data sets.

Learn Data Mining with code(love)

Learn Data Mining with code(love)

Here are nine free, brilliant resources to do just that.

1- Coursera’s Specialization in Data Mining (level: beginner) 

https://www.coursera.org/specialization/datamining/20

Coursera brings the best from the University of Illinois at Urbana-Champaign, ranked in the top 5 for computer science schools in America. It’s a useful introduction to data mining–the application of data science and computing power to find patterns in large collections of data.

2- A UCLA professor’s overview of data mining (level: beginner)

http://www.anderson.ucla.edu/faculty/jason.frand/teacher/technologies/palace/datamining.htm

This blogpost delves deep into the specifics of data mining. It provides an overview and a set of definitions that will help bring you up to scratch.

3-Introduction to R (level: beginner)

https://www.codeschool.com/courses/try-r

The coding language R is the workhorse of scientific data analysis and visualization. Codeschool offers an interactive and gamified approach to learn it, similar to Codecademy. Working with R will give you insight into how to move and dance with digital data, a skill that is the foundation of data science.

4- Kaggle’s Wiki on Python (level: beginner) 

https://www.kaggle.com/wiki/GettingStartedWithPythonForDataScience

Kaggle is a platform for crowdsourced data challenges. The website has a ton of resources on how to get started with data science. This particular link leads to their guide on Python, one of the most versatile programming languages for data analysis.

5- Data Science 101 (level: beginner)

http://101.datascience.community/

This blog knows how to describe itself: “Data Science 101 is about learning to become a data scientist.” Simple, clear and to the point.

6- W3’s Tutorial on SQL (level: beginner) 

http://www.w3schools.com/sql/

W3 hosts a bunch of interactive tutorials on the basics of programming. This set of tutorials goes through SQL, a language that allows you to access data from most web databases. The tutorials will give you a glimpse into how data is structured for many websites and they will give you enough knowledge so that you would know how to play with data.

7-Horton’s Hadoop Sandbox (level: intermediate)

http://hortonworks.com/products/hortonworks-sandbox/

Have you ever wanted to play with big data? Learn the basics here and experiment with them. Hadoop helps distribute data across multiple servers, helping to process large amounts of data as seemlessly as possible.

8- Machine Learning on Coursera with Andrew Ng (level: intermediate)

https://www.coursera.org/course/ml

Learn about data mining and the algorithms you can create to make your data analysis job so much easier from a master in the field: the founder of Coursera Andrew Ng, a Stanford professor who has recently become Baidu’s chief scientist.

9- A Programmer’s Guide to Data Mining (level: advanced) 

http://guidetodatamining.com/

If you can work with Python at a proficient level, this book will help you implement different algorithms that will sort, filter, and manipulate your data for you. A must-read for people looking into the practical applications of data mining.

I hoped that helped get you set on the path to data mining. What resources do you think I’m missing? Comment below. 🙂

Open Stories

This is how you build a business of 130k users.

Peter is the founder of Brickflow, a web application that analyzes Tumblr profiles, and provides photos and videos that will suit the poster’s tastes.

Here is his honest, candid take on what it takes to build a digital idea to a business with tens of thousands of users. 

To be honest, my founding partners and I were pretty clueless when we started Brickflow. After more than two years, I can confidently say that we know how to validate and get initial traction for your startup, and we know what it takes to build a business. Moreover we have learned how to build a product and manage a team. Since then, with more experience and deeper integration of best practices, we can move faster to build our business.

Back at the beginning Tamas Kokeny worked at Prezi as a junior developer, Mihaly Borbely was a hobby-geek and photographer, whereas I worked at a Harvard founded ArtScience Labs incubator in Paris.

We had a lot ahead of us in terms of customer and product development. We did our homework by learning about lean, agile and other methods, but we were not successful implementing these practices.

At first, we built Brickflow in a typical waterfall way without any real validation. But we had passion and courage to learn and do it better. Much better. This is what Startup Wise Guys and Startup Chile realized, so they gave us a chance. SWG was like school with a vertical network of mentors, whereas SUP gave us time to build the product and connected us to the world’s biggest horizontal startup network. These 8 months in Estonia and Chile gave me more than my undergrad studies ever did when it comes to the foundation I needed to build a business.

We launched the first version when SUP ended, but we were not satisfied with user engagement. We realized that we need to test and iterate more, moreover that we need to improve execution significantly. This was the time, when we realized that we have not been applying the best practices that we have been thought. Facing this changed our mindset, and helped sharpen our focus to finding something that would work to build our business. After iterating the product for 6 months, we found something that really works. We arrived at product-market-fit and since then grow our active user base day by day.

But not only our user base grew but the team itself too. In one year we hired 6 people, so we have tripled the team. It was yet again a great challenge to integrate new people into the team and find our own roles as real executives. This is the first time when management and company culture become crucial to the building of our business.

Today, we are agile, we work in strict weekly sprints and do daily stand-ups. We use kanban boards to manage development. Getting used to estimating each task and giving them business value made management smooth. Moreover, we experiment every week with defined assumption – KPI pairs. Each modification of our design, copy and features is based on these experiments. We do not build or change anything without having it tested and validated. Backing everything with metrics made decision making faster and less of an emotional or hierarchical argument.

Being data driven makes our life easier and serves our customers much better.

Being data driven makes our life easier and serves our customers much better. Besides the quantitative experiments we have weekly in-person UX tests too. It is key to listen to the users. If there’s one thing you want to take out of this it’s this: find your users. Make sure you’re building something they want. 

If you liked that story, you should check out our other open stories. 

Build a business with code(love)

Build a business with code(love)

 

Open News

GitColony makes open source projects fun

Mariano Focaraccio is the CEO and co-founder of Gitcolony. I met him during the Dublin Web Summit, where he talked about his solution to help people contribute to open source solutions. Gitcolony has a matching system to help pair coders with open source code they can contribute the most to, and a review system that allows for developers to be given great feedback, and a standardized score, for contributing to open source code. 

Here are questions I asked him.

Open Source Projects with code(love)

Open Source Projects with code(love)

1) What’s your vision for Gitcolony?

We want to redefine the code review experience, help open source projects and build a reputation system for developers.

a) Redefine the code review experience both for open source projects and private repositories: we notice the process is broken and developers use meetings and emails to give feedback on code. This is highly inefficient and not effective as information gets lost. Also, because reviewing code is the most boring part of developers’ role, code reviews get done on a rush before the code needs to get pushed to production.

b) Help open source projects by spreading the responsibility of the revision of the quality of the code. Shellshock and Heartbleed happened because nobody ever revised those pieces of code in 27 years!

Nowadays only the small core teams of open source projects need to review the pull requests they receive. With our voting functionality, a broader community can decide which pull requests are of good quality and are ready to be merged.

c) Build a reputation system by evaluating both the quality of the code and the quality of the code reviews. We’ll allow the community to know which developers are good.

2) What are some tangible examples of how this helped build communities/contributions around open source projects? That’s notoriously difficult to do.

We recently launched Gitcolony but we are already helping build stronger and larger communities around both very well known open source projects like Laravel, WordPress and Rails and smaller and completely unknown projects.

Also, several companies are using Gitcolony internally, for their private repositories to level up the quality of their code and ensure they are building scalable, maintainable, reliable, cohesive and efficient.

3) What are your thoughts on open source projects, and how Gitcolony can encourage more participation in the movement?

We never stop surprising ourselves of how software developers collaborate, give feedback and share solutions with the open source community. Think about it… there’s no other area where this kind of selfless sharing happens.

Until now, developers could contribute with open source projects by coding or documenting. With Gitcolony, they can also do code reviews and we are seeing how code reviews is already getting new developers involved and interested in open source projects. Developers who did not use to participate in the community.

Gitcolony is also a good way to spread the word about open source projects.

Interesting? Check out other cool things you can build with open source at our Open News section.