HNHacker News
TopNewBestAskShowJobs

mace

4,158 karma · joined May 7, 2008

python, golang, erlang, elixir, c, and javascript hacker.
submissionscomments
mace··on Why Uber Engineering Switched from Postgres to MySQL
I think a fair summary is "We had a few problems with PostgreSQL mostly due to our rapid growth. We rethought the problem and changed the way we use a relational database for large-scale storage and are now using MySQL as a dumb key-value store."

The conclusion reinforces this: "Postgres served us well in the early days of Uber, but we ran into significant problems scaling Postgres with our growth."

I read this a both endorsement of PostgreSQL as well as highlighting some of the problems that any large-scale use of it would run into.

mace··on Ask HN: Who is hiring? (June 2016)
June (https://juneoven.com/) is hiring! | Full-time | SF

June is a team on a mission to transform the kitchen. Our first product is the June Intelligent Oven. A built-in camera and sensors makes June able to identify commonly cooked foods, recommend a cooking program and execute to perfection. With a touch screen, instant-on carbon fiber heating elements, advanced moulded insulation and a finely tuned cooking cavity, we’re bringing restaurant-level performance to the home.

We're looking for Software and Hardware engineers.

See https://juneoven.com/jobs.html

mace··on Ask HN: Who is hiring? (August 2015)
June is hiring! — San Francisco, CA

We just came out of stealth and are looking for smart and creative software and hardware engineers to join us on our mission to bring innovation to the kitchen and home.

Specifically, we're looking for:

  • Android UI Engineers
  • Embedded Engineers
  • Mechanical Product Design Engineers
  • Hardware Engineers
  • Server Engineers
Send us your resume at https://juneoven.com/jobs.html
mace··on Ask HN: Who is hiring? (July 2015)
★★★ June is hiring! — San Francisco, CA ★★★

We just came out of stealth and are looking for smart and creative software and hardware engineers to join us on our mission to bring innovation to the kitchen and home. Specifically, we're looking for:

  • Android UI Engineer
  • Embedded Engineer
  • Mechanical Product Design Engineer 
  • Hardware Engineer
  • Server Engineer
Send us your resume at https://juneoven.com/jobs.html
mace··on H̶a̶l̶f̶ ̶a̶ ̶b̶i̶l̶l̶i̶o̶n̶ 600M unsuspecting FreeBSD users
Agreed. I think this title is a bit flippant and I'm sure the 600M+ WhatsApp users don't care what the servers are running.

The important takeway is that FreeBSD and Erlang have worked really well for WhatsApp allowing them to grow their userbase insanely fast while still staying relatively small.

mace··on PeerServer: A Server in a Browser with WebRTC
This should no longer be true. Chrome v31 (http://googlechromereleases.blogspot.com/2013/11/stable-chan...) added SCTP support for reliable DataChannels and allowing compatibility with Firefox.
mace··on Lanyrd: From idea to exit – the story of our startup
This is a really nice writeup of the whole startup process. Thanks for this!
mace··on Python vs Go - Requests per Second
Bottle uses `wsgiref` (https://github.com/defnull/bottle/blob/master/bottle.py#L263...) by default as its server. Per the name, it is a reference implementation of a WSGI server. No one should really use `wsgiref` for an application they care about. This test is invalid for this and lots of other reasons.
mace··on Poll: What chat service are you using for internal communication with your team?
I suspected many in the community here would host their own XMPP server.

What XMPP server are you using or would you use?

mace··on SQLite improves performance with memory-mapped I/O
The SQLite site continues to offer a wealth of information about SQLite internals. Most of the pages (ex. http://www.sqlite.org/fileio.html) are a good read for anyone interested databases or creating good system software.
mace··on Spanner: Google's Globally-Distributed Database
PostgreSQL uses MVCC to ensure ACID compliance without read locks. Uncommitted concurrent transactions are isolated from each other.
mace··on 2012 Startup School, Oct 20 at Stanford
@pg: How many hackers attend each year? I forget to count ;)
mace··on Show HN: Beautiful login and signup views for iOS with a few lines of code
Not related. But their blog served over HTTPS throws an error: https://blog.parse.com/
mace··on Go version 1 is released
Anyone care to share their experience writing something in go? I've toyed with it but not built anything in production.

FWIW, the go dashboard (https://godashboard.appspot.com/) has a number of interesting projects.

mace··on Go version 1 is released
The Go tour (http://tour.golang.org/) is a pretty good introduction to the language.

It provides an interactive in-browser panel to try out the language while presenting its features.

mace··on You used Python for what?
Not coincidentally, 'drafting' is what led me to first use Python. Prototyping and working out the architecture/logic of a piece of code is very fast in Python.

Many libraries (standard and 3rd-party) are generally well-designed and are of a very high quality (ex. django, twisted, sqlalchemy, numpy)

mace··on Django 1.4 final released
1. Check the docs and release history of the projects/apps; if they have not been updated prior to v1.3, it's likely to break with v1.4.

2. Run the test suite of the apps.

3. Run the apps with v1.4 and warnings turned on via:

   python -Wall manage.py runserver.  
Not only will you quickly see what's broken, but Django will dump helpful deprecation warnings for things that will eventually break at some point.
mace··on Django 1.4 Released
The release notes can be found here: https://docs.djangoproject.com/en/1.4/releases/1.4/
mace··on [dead]
#7 surprised me. But after looking at the the bytecodes, it's clear why. The while-True adds 3 byte codes to the loop body, the while-constant (using any constant 'truthy' value) adds 1:

  >>> import dis
  >>> def a(): 
  ...   while 1: pass
  ... 
  >>> def b():
  ...   while True: pass
  ... 
  >>> dis.dis(a)
    2           0 SETUP_LOOP               3 (to 6)
          >>    3 JUMP_ABSOLUTE            3
          >>    6 LOAD_CONST               0 (None)
                9 RETURN_VALUE        
  >>> dis.dis(b)
    2           0 SETUP_LOOP              10 (to 13)
          >>    3 LOAD_GLOBAL              0 (True)
                6 POP_JUMP_IF_FALSE       12
                9 JUMP_ABSOLUTE            3
          >>   12 POP_BLOCK           
          >>   13 LOAD_CONST               0 (None)
               16 RETURN_VALUE
mace··on In 2011 Google Spent $1.9 Billion Acquiring 79 Companies
It also spent spent $9.7 million on lobbying in 2011 (http://wapo.st/yanxMo) The powerful is getting even more powerful. Next stop 'too big to fail'.
mace··on New York City gets a Software Engineering High School
I went to Brooklyn Tech as well and 'majored' in CS. Going into college, it was a huge advantage (maybe disadvantage in hindsight since I became bored in most of my 1st and 2nd year courses.)

I haven't seen the curriculum for this new school, but I hope they balance the theoretical with the practical. I hope it doesn't churn kids who end up being cheap labor for the big IT companies in NYC and who don't see Computer Science as a discipline and an art.

Looking back to my CS classes at Tech, I still recall what I learned about basic data structures and common algorithms. Heck, I still remember and find useful the things I learned about assembly.

The things I don't find useful and wish I could forget: Visual C++ and Windows programming.

mace··on A Python Optimization Anecdote
This is slightly better, IMHO: http://www.python.org/doc/essays/list2str.html

Some best practices when optimizing CPython code:

* Re-evaluate your algorithm (an inefficient quicksort is still faster than an optimized bubblesort)

* Use Python functions and constructs implemented in C (ex. most builtins, list comprehensions)

* Move loops from outside functions to inside (function call overhead is high)

* Use try/except to handle uncommon cases rather than using conditional checks in a loop.

* Eliminate dots (attribute lookup) in tight loops (create a local alias if needed)

See also: http://wiki.python.org/moin/PythonSpeed/PerformanceTips

mace··on Deep C
This is brilliant. It contains simple and direct explanations of C's (and C-based languages) rough edges that many programmers encountered or been bitten by but few have taken the time and effort understand.

I appreciate the presentation style too. The characters clearly represent the difference between deep understanding and casual knowledge of the subject. Good stuff.

mace··on SQLAlchemy, an Architectural Retrospective
Slides from talk: http://techspot.zzzeek.org/files/2011/sqla_arch_retro.key.pd...
mace··on Work for Pie: A Github/HN/SO Metascore for Developers
They have literally replaced the resume:

http://resume.github.com/?alex

http://resume.github.com/?jacobian

http://resume.github.com/?ask

http://resume.github.com/?kennethreitz

http://resume.github.com/?rpetrich

http://resume.github.com/?jtauber

Neat idea, though. This is something I've also hacked on lately.

mace··on Django Offline Docs
I've always used (Sphinx and other deps required):

  git clone git://github.com/django/django && cd django/docs && make html
The Python docs can similarly be built for offline reading.
mace··on Fabric hits 1.0
You're referring to a fork of fabric that was posted to HN a few weeks ago: http://news.ycombinator.com/item?id=2250001

The author of that fork wants to contribute those changes back to the fabric project. But that did not happen before the 1.0 release.

mace··on Ask HN: Who's Hiring? (February 2011 Edition)
MochMedia (San Francisco, CA) - http://www.mochimedia.com/jobs/

Mochi is hiring engineers (Python, Javascript and Erlang). We bulid highly distributed and reliable systems to help independent game developers distribute and monetize over 30,000 casual games across the web.

We also love open source and have contributed back to the community with simplejson, mochiweb, mochikit and other projects.

Benefits/perks:

- Competitive Salary, Robust Medical Benefits & 401k

- 20% Mochi Labs R&D Time

- Equity in Shanda Games Limited (NASDAQ: GAME)

- Catered Family Style Lunches 2x Per Week

- $3,000 Education Budget

mace··on Rackspace Buys Server Management Platform Cloudkick (YC W09)
> Let them work for two years. For $8MM, I have my own cloudkick, right?

Assembling all the pieces that make a product does not make a product. There are lots of risks involved in creating new products and generally as companies get larger they become more risk-averse.

Even assembling the pieces involves jumping hurdles in any significantly large company (ie. various levels of approval, staffing, inertia). Acquisitions avoid product development risks and the acquirer also get a group of people that demonstrated they can create a successful product.

mace··on Graphical Vim Cheatsheet
This cheatsheet was great when I started using vim years ago.

I highly recommend http://vimcasts.org/ It has neat little tutorials that cover a lot of vim's powerful features.

Page 1 of 4Next →