If it won't be simple, it simply won't be. [Hire me, source code] by Miki Tebeka, CEO, 353Solutions

Tuesday, February 27, 2018

Python's iter & functools.partial

Python's built-in iter function is mostly used to extract an iterator from an iterable (if you're confused by this, see Raymond's excellent answer on StackOverflow).

iter has a second form where it takes a function with not arguments and a sentinel value. This doesn't see that useful but check out the readline example in the documentation. iter will call the function repeatably until it the function return the sentinel value and then will stop.

What happens when the function  producing the values require some arguments? I this case we can use functools.partial to create a zero arguments function.

Here's an example of a simple HTTP client using raw sockets, we can directly use join on the iterator.

Sunday, February 11, 2018

353Solutions - 2017 in Review

A little late, but here's a summary of 2017.

Numbers

  • Total of 255 calendar days where worked for a customer (including partial days)
    • Up 62 days from 2016
    • Out of 260 work days in 2016
  • Median work day is 6:53h
  • Normalized work days (total divided by 8) is 171.6
    • Up from 158.1 normalized days in 2016
  • Of these 30 days were in workshops and the rest in consulting
  • 10 workshops
    • Down from 18 last year
    • First video course on Lynda (over 100K viewers already)
    • Teaching in Israel, UK, US and Poland
  • Several new client including PayPal, CommonSense Robotics, Iguazio and others
  • Revenue down by 5%
    • But earnings are up :)
  • First newsletter went out

Insights

  • Personal social network keep bringing all the work
  • Very big workshops customer cut down a lot - picked up the difference with more consulting with is less lucrative
  • Python & Data Science in demand for workshops
  • Much more Go in consulting
  • Free 1/2 day open class did not bring any work
    • However will do some more - it was fun
  • We need to get better on marketing open classes

Last Year's Goals

  • Work less while keeping same revenue
    • Failed here. Worked more to keep about the same revenue
  • Work more from home
    • Success here
  • Publish my book
    • I can't believe this is not done yet.
  • Publish a video course
    • Done (with two more to come)
  • More open enrollment classes
    • Tried that but not enough enrollment, need to get better at marketing

Goals for 2018

  • Work less while increasing revenue
  • Publish my book
    • Learned from last year and reserved serveral days this quarter to finish it
  • More workshops and less consulting
    • Two open enrollment workshops
    • Two free 1/2 workshops
  • Keep working from home
    • Attend at least 3 conferences
  • Give at least 4 talks in meetups or conferences
    • First talk was Jan 1 on PyWeb-IL, have another one slated for March
  • Get better at marketing

Blog Archive