Tobin isn’t much of anything, today. It’s been sitting on my github with no attention given to it since the first few commits.
Tobin is basically a removal of the QuerySets from Brubeck. I’m trimming Brubeck to basically just be a gevent web framework. I like the idea of continuing to provide an alternative to Twisted but I don’t want to be on the hook for so many opinions. I want to encourage experimentation instead.
Thus, I have built a rough plugin system for Brubeck, put the QuerySets in a new project (Tobin), and am putting the AutoAPI in it’s own project that will probably be called Metronome.
In doing so, I am also freeing myself because other folks will identify with something like a new db layer more easily than a whole web framework that happens to have a database layer in it. This happened when I took on the name Schematics and started talking to people about its use cases outside web.
That doesn’t answer the question of what Tobin is.
In theory, I like the idea of providing CRUD on top of the most basic storage philosophy I’m aware of. Basically, just a map interface on top of whatever databases you want to use. Every piece of data has an ID and then you choose whatever the other pieces should do, but a single column with a serialized structure is the default.
This comes from what I’ve read and learned about systems using key-value’ish layouts as they grow. They become distributed hashtables and so on. Thus, my idea is to make it really easy to work with data in a format that is basically ready to be put inside distributed hashtables.
Schematics is setup to allow a bunch of ways to express keys, whether from a single field, like an id, or from a function which can do what it wants, including make a composite key of fields. It also has serialization mechanisms to handle the data conversion you need. Perhaps you’re caching some JSON or maybe you’re serializing to msgpack.
Brubeck is just about ready to put Metronome and Tobin together to get a rest api that knows how to validate data and save it to a database. That will all just be called Metronome, but it will be easy to put it together with Brubeck and Tobin for a complete system.
I don’t claim my ideas will work. But I’m interested in exploring what happens when you focus on making it really easy to build while also trying to keep the duct tape reasonably compatible with the systems used at the higher ends of scale.
I just wrote this about PG in an email to my friend and I felt like sharing it here too.
PG is VERY smart. I hear people doubt him frequently, but I have been a devoted fan for 10 years now. Learned about him while going to school in Boston.
He sometimes doesn’t get things correct, but he doesn’t run away from that. He talks about how they’re hard and he tries to figure them out. Further, he’s smart enough that he can make progress on many more things than any regular person. The combination of those two is unfuckwithable
Sebastian Kanthak overviews Spanner, covering details of how Spanner relies on GPS and atomic clocks to provide two of its most innovative features: Lock-free strong (current) reads and global snapshots that are consistent with external events.
i have been thinking about code a lot this past week and about what I want to write next. I have spent a year with some distance between me and my code, so I had built up some notions about what my frameworks should be shaped into, too. I like building my tools in addition to larger systems.
Schematics is an interesting thing for me because it has changed so much over time. It’s aged in many great ways and I’ve made a bunch of amazing friends along the way, but what I find most interesting is actually the gravitational component of it’s current design. It’s not something that was considered at it’s epoch, or even a year after, but we, the core dev team, have noticed it emerge over time.
Consider that, at its core, Schematics attempts to provide a notion of types to python, which really only has a few types: dicts, lists, numbers, and strings; the most basic types. Schematics attempts to provides types that are more useful, like email addresses, lists of things, like other structures, json friendly datetimes.
In doing so, it becomes useful in almost any programming context. It implements a much bigger idea than anything we had considered in the early days. Because of that, I am now looking at all of my other projects as things that relate to Schematics models.
Brubeck is being ripped apart and put back together right now around the idea that it should be so minimal that other libraries exist to glue Schematics with other concepts, like databases, web serving, messaging, RPC. It is abstract enough that many other ideas can happily exist as composable units in whatever you’re building.
Thus, Schematics is just a building block for other things. Schematics + databases = Tobin. Schematics + Tobin + REST will be Metronome. Anywhere where you might need structure for data, which I think is everywhere, Schematics can be helpful.
My hope is that we’ll collect around “Schematics” and share how we solved things. Some people have used it with massive amounts of data. Some have built financial processing systems with it. Some have built high throughput gaming API’s with it.
I can’t wait to see what else happens. I’ve got my own ideas too, so I’ll share them with the “Schematics” team too.
I don’t usually listen to hip hop. I like the music, but I feel like I rarely find a message I can connect with. Older stuff, like Tribe Called Quest, is great.
I found lots to like in punk rock, but I also found a way to ignore the lyrics because I could focus on what the guitar or drumming was doing. I played guitar at the time, so I felt like I was home there.
But later in life I started looking more outward and found a lot to like in hip hop. The messages seemed to be cheesy though, like talking up how much money they have.
Then came Kanye, but wtf the - dude put on a crown of thorns. Cmon.
And he started asking some big questions. He liked to glorify having sex with white women because he felt it would be offensive mostly to people who have stupid issues with race. Everyone else would celebrate it. Bold af, right?
This is a guy who can’t stop himself from expressing his opinion, years after being juvenile about it. He’s a grown fucking man, acting like one, and he’s pissed off.
Racism is so stupid and you know, for some dumb reason, it’s still here. Why?? What tf are these people missing in not celebrating all of this diversity?
And then Kanye started selling confederate flags. YES. FUCKING A. Do it, Kanye.
We needed things like occupy and a banking collapse and political leaders who are so technologically ignorant that they send dick pics over social media to allow for an environment where this message will get people to think, instead of thinking he’s some kind of eccentric radical.
The environment feel ripe for everyone to start talking about this shit. Look what Obama’s been through, for example. I’m still pissed off about how stupid racism is and Kanye stands in a place to put in everyone’s face.
Yes. Make people face this shit.
He’s an artist. His music is way outside what someone would call hip hop, but you hear a lot of hip hop in it. He’s painting something totally new and he’s fired up af with great questions. Do it, Kanye.
"Not a soul in this room doesn’t think we need to go through this transition," he said. As he stood up, his voice started to crack: "As much as I wish I could stay your CEO, I still own a big chunk of Microsoft, and I’m going to keep it."
“At first I hoped that such a technically unsound project would collapse but I soon realized it was doomed to success. Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way -and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.”—C.A.R. Hoare
“If I may make a sweeping generalization: the people who show up for something because it’s clear what the thing is — and the something sounds cool — often aren’t the people you want to have around to create a cool something out of the odds and ends of a hundred conversations.”—@whitneymcn
A friend asked me this question today. I told them I was feeling self-reflective. I have been thinking on this for the last few days, but I captured the idea in a way that feels fairly accurate and I want to share it.
I spent the weekend in Poughkeepsie, NY with some new friends. We sat around a fire and talked about different things we care about. The topics ranged from sequential technological revolutions to hacking dating services to fears of failure. It was said that I had a zen like presence and in conversation I had mentioned that I mostly focus n whether I like the stuff I’m creating enough. The conversation just flowed in that direction, which was awesome, but I kept wondering about the things I stress about. Maybe I am a positive deviation?
So I thought. I spent some time yesterday thinking about it. And then an old friend asked me directly, “James, what stresses you out?”
How did we get here again? Anyway, here is the gist of what I said.
I basically focus on creating things and don’t think about much else. I write a lot of software. I write a lot of music. I try to bring people together in different communities; one kinda became an international thing.
I think about whether or not I’m doing interesting enough stuff in those areas intensely all the time. I don’t treat that like a bad thing though. I mostly like it. But I think people generally experience it as pretty extreme stress.
I just kind of turn inward and focus on figuring things out. That sometimes repels good people, but I kind of can’t help it. The experience of *that* is stressful for me.
I want to be a more well-rounded person than I am, but my mind works in some weird hyperfocused way and I’ve only found a few places where that kind of thinking is useful. It took me a while to find my way there, which was also very stressful.
If you’re the type of person that has a True North or a Moral Compass or just some concept of what the right way to live is, the stress in life is usually from whether or not you’re following the right path. Life comes with all kinds of circumstances, but they’re tolerable when you can measure your choices against a righteous system for thought.
There are several things I consider before investing in a startup company.
The talent and passion of the team. The product. Their vision and the why behind their company. If the product has launched I will certainly look at the metrics of the product/business.
But in the final moment when I’m contemplating if I’m in or out, I try to picture myself working at the company. Can I imagine working for the founders every single day.
If I can’t comfortably answer that question positively then I tend to back off.
I’ve made the mistake of investing in a startup with a great team and interesting idea but without a strong connection and it just didn’t work for me.
Maybe I’m doing this VC thing wrong but the way I look at investing is similar to how I would look at it if I was a prospective employee.
In many ways the employee is making a choice with something much more valuable than our venture capital funds — namely, their precious time.
These days I spend a significant amount of energy helping our portfolio companies recruit the best possible people for their mission.
I love it. It’s one of the favorite parts of this job of mine.
And it feels good to say that every company I work with is one that I would feel fortunate and passionate to work at.
I think this is great. In my brief time working in investing, I have followed the same principle.
For me, it comes from how miserable I’ve felt working for crappy people. It becomes a total wall for me and I struggle to be creative, which is usually what I’m hired for. Therefore, I figure I should never put money into a place that would squash people like me.
I’ve always been passionate by how people work together as a team. It’s an area where simple things can have a big impact: the way people are seated and the tools they are using to communicate with each other are two elements I’m paying close attention to. Let’s talk about the second one, how…
I love this company a lot. Very glad Terrapin Bale invested in them.
I wrote an email to Hack And Tell yesterday that captured some things I’ve been thinking about for a long time. It expresses some thoughts on my roots and how I view the world, so I am sharing it here too.
I want to talk about something serious for a moment.
There has been a surge of interest in Hack and Tell and we haven’t been great at handling it. The reality is that this community has turned into something bigger and better than we expected and we’re learning how to organize it as we go. It was initially a group of 30+- of us just hanging out at meetup’s offices, where gWoz (Andrew, or GNU Woz which is also Andrew) worked at the time. I’d present twice, he’d present twice, and some of our friends would present stuff.
Andrew and I both grew up in punk rock communities, where people did whatever they wanted and everyone just accepted it. If you wanted anyone to care about what you were doing, you had to earn their eyes and their ears by doing something cool. Not too different from how our presenter list is made. We have ten slots to fill so we just pick the stuff we like best. If it’s neat, we’ll probably want to help you figure out more stuff too. And we know everyone else will too. That’s a big part of why we love Hack And Tell, everyone is helping everyone think in new ways. But, just like punk rock communities, if you wanna tell us to fuck off, just do it. We’ll say it back. Or maybe we already said it. (Andrew probably did).
Punk shows were easy to organize. You just find a space, a PA system, and the bands bring their gear. You can see our punk roots in Hack and Tell’s structure. We have 10 hackers instead of 4 bands. We have clean office space instead of dingy basements. I’ve still got my Dillinger hoodie on and Andrew’s still got his Bane shirt on, but we’re hacking.
When bands somehow got a following they’d go on tour. Hack and Tell kinda did that too. It’s in lots of places now. Seattle, SF, Boulder, Madison, Kansas City, DC, Berlin, Singapore, Melbourne. I was at the DC’s second Hack And Tell on Monday and did two presentations, just like the early days in NYC.
We had more people on the waiting list than at the show tonight. 200+ people wanted to come out. It’s hard to find spaces big enough to hold even half that. Needing spaces that big is a also recent thing for us. We used to be able to find spots no problem, but it’s not so easy once you get above 75 people. We only started insisting on 100 person lists some Hack And Tells ago and it looks like we need to go even higher already.
I’ll just be straight forward about it, we haven’t really been trying. This seems ridiculous in retrospect so we’re gonna change that. The wrap up email already went out. We’re gonna host the meetup more regularly, with more incentives for signing up. We’re gonna solve it.
I am implementing a radical change to my scheduling: my default is going from saying yes to a meeting request to no. For a long time I have tried to meet with pretty much everybody who sincerely…
I think this post by Albert is interesting. He says his default is yes, but sort of amends that by saying that people have to sincerely ask. The claim, however, is righteous. His time is limited and he wants some of it back. Can’t really argue with that.
I’ve definitely struggled with maintaining a schedule, but I’m pretty good at it now. Terrapin Bale invested in the solution I use, Sunrise. I can pull people stuff, like birthdays, in with Facebook, my work calendar, and my personal calendar. An interesting thing that also happened is that I use Foursquare more. Sunrise shows my checkins as part of what it knows I’ve done. I was here at this time, so it shows that.
I feel I am close to finishing my full transition over to scheduled time, from hacker time, where time basically doesn’t matter. From 0 to 100% in a year, or so.
In hacker time you just make stuff as fast as you can, all the time. It’s paradise, in some ways. Scheduled time means you make time for other people. They hold schedules too. Maybe really tight schedules. I don’t really consider hackers late if they’re 15 minutes late. They always drag their feet. But not everyone knows that, and sometimes it’s easy to forget.
My need to create music never ceases. It just doesn’t. It’s both the bane of my existence and one of two favorite things. Tech is the other. I have had to make time for music for years and years. I usually block off Sundays and play for most of the day. I try for Monday and Thursday nights too, but it’s less predictable.
I now schedule when I code and on which projects I’ll work on. You kinda have to go all in. If you don’t book your personal life in a calendar, you’re gonna double book and that’s pretty annoying. Just a matter of time.
Along with it, has come a massive change in my efficiency. My time is limited. I need time for music. I need time to meet a lot of people. I need time to hack. I need time to think. It all goes in. And the better I am at context switching, the more I can handle. But… Having a lot is not necessarily the right answer.
I need to fall into that mode where ideas just flow. I do this with almost every idea I hear. And that’s really time consuming. It’s hard. I read a description of the idea and then I think for a few days.
In reclaiming your time, you must also make time to do nothing. This is that thinking time. Have nothing in particular to do and you just want to do something that lets your mind wander. It should be a long period of time, like 4 hours. Maybe more. It’s up to you, but it’s important to understand what you need and make time for it.
As John Cleese says, "it’s easier to do trivial things that are urgent than it is to do important things that are not urgent, like thinking, and it’s also easier to do little things we know we can do than to start on big things that we’re not so sure about." Give yourself time to think on those big things. Sometimes you can’t get rid of all the small things, but you can work around them.
for char in [" ", ".", ",", ";", "\n"]:
text = text.replace(char, "")
# This approach is o(n), problem can be solved with o(n/2)
# I am using this approach for brevity
return word == word[::-1]
palindrome(sanitize("madam")) # True
palindrome(sanitize(u"விகடகவி")) # False
Here is the hand made version for Tamil
# Assign the variable meal the value 44.50 on line 3!
# hex values from க..வ
for char in [" ", ".", ",", ";", "\n"]:
text = text.replace(char, "")
dependent_vowel_range = range(0xbbe, 0xbce)
front, rear = 0, len(text) - 1
#We will start checking from both ends
#If code reached centre exit
if front == rear or abs(front - rear) == 1:
if ord(text[front+1]) in dependent_vowel_range and ord(text[rear]) in dependent_vowel_range:
if text[front] == text[rear-1] and text[front+1] == text[rear]:
front += 2
rear -= 2
if text[front] == text[rear]:
front += 1
rear -= 1
print palindrome_tamil(sanitize(u"விகடகவி")) == True
text = u"""
யாமாமாநீ யாமாமா யாழீகாமா காணாகா
காணாகாமா காழீயா மாமாயாநீ மாமாயா
print palindrome_tamil(sanitize(text)) == True
“In case we needed another reason to close the 15 extra browser tabs we have open, Clifford Nass, a communication professor at Stanford, has provided major motivation for monotasking: according to his research, the more you multitask, the less you’re able to learn, concentrate, or be nice to people.”—What Multitasking Does To Your Brain (via khuyi)