Categories
Startups Thinking

Academia is failing but not for everyone

Recently I have some mounting problems and stress at work, and while it would be easy to write it off as unfortunate circumstances, I felt like I need to dig into the causes much more to understand and try to fix them. It seems that it’s not just me having problems, my entire “industry”, the Academia has some fundamental difficulties. Can hardly say things about other fiends, but I have some overview of the atomic physics research done around the world, and nothing indicates that the issues are confined to physics alone. These are the problems I try to explore here.

I’m a physicist, working still as such, in my 5th year as a post-doctoral researcher (this is my second post-doc position). Altogether I think I am in physics for about 14 years now (or 20 if we count the high school where I was already conquered by it, just wasn’t quite aware of it yet).

Usual lab scene
In the lab

At my lab I felt there are some things that could be done better, to have a better group and research quality. I tried to bring some ideas from my old lab, from the startup world, from computer science, and my ideas what research should be like. Most of those changes were shot down, and many of the changes experienced became very frustrating, I felt like I’m on the wrong track.

Recently I got to read Peopleware: Productive Projects and Teams, and while it is aimed mostly at the IT industry, plenty of things are completely general. It was one of those reads that I was on the verge of tears in the end, because recognized so many things that went wrong in my environment.

One of the most important thing I felt was that our lab should be a team, a consciously cultivated team to really achieve its potential. The upper level always indicated that they took the fact that we work in the same lab as a sign that we already have a team, and that’s just one of the problems.

From the book it feels that the entire success or failure of projects mostly depends on the people and their connection with each other. Looking at the Academia, it feels like almost everything is set against building a great team. Not consciously, many people have lofty goals of efficiency, productivity, and similar things, but they go around naively to achieve those, and in the same time they destroy the resources that would create efficiency and productivity and creativity.

Looking at Peopleware’s Chapter 20 about Teamicide, they list a number of things that inhibit team formation or crush working teams:

  • defensive management
  • bureaucracy
  • physical separation
  • fragmentation of people’s time
  • quality reduction of the product
  • phony deadlines
  • clique control

I have experienced pretty much all of this in the labs here. Defensive management, people cannot be trusted to make the right decisions, because it reflects bad on you, so you have to make the choices for them and push it through, generally thinking that the people you got for the job are actually incapable of doing it. Bureaucratic, have plenty of stories about that, everyone has, even worse in Taiwan than general. Physical separation is less of an issue here, we are all in the same office. Fragmentation of people’s time, even when working on apparently “priority project that you need to drop everything else until it’s done”, it’s still “hope in the same time you can help out with X & Y”. Quality reduction, this is the worst one for people who believe in their abilities, having to work on something that I know it would be worse by far than other solutions I could bring, but it’s squarely ruled out, and now I’m feeling I’m spending my time building essentially waste. Phony deadlines, there are plenty of them, because people think that setting a deadline will make people work harder, which is missing the point – the hardest workers are those who are not pressured and have been given worthwhile goals”. Clique control, stopping efforts that would mainly be about knowing each other, effortless communication, and feeling that we work “together” instead of “in the same space”.

In later chapters they also point out a few more parts. High turnover poisons everything. Management don’t invest in training, people are not invested in their work, it’s just something “temporary”, why to give it all the effort (consciously or subconsciously)? Academia is almost designed for high turnover. Masters students for 6 months to 2 years max. PhD students from 3-8 years (though the long time is more problematic in terms of exploitation), postdocs from 1-2 years, and you are expected to move on and move up. Become a professor “somewhere else”, and start your own high turnover lab. The whole thing is quite often just milking the current place for results, or milking the new workers for their energy until they leave, because they are known to be leaving soon.

This also gives rise to thinking of people as building blocks. How often it is heard that “I need more masters students to do this project”, or “you should hire a post-doc for that”. Not ability, but function.

There’s often very little training about generally useful things, because of the high turnover is so etched into people’s mind: if my student will leave soon anyways, why teach him, or why teach the group in general something that is not immediately useful for their work? Why waste time with that?

There are lot of other problems as well, which mainly comes from how people get their jobs. To run a research group and become a professor, one needs to have: academic skills, teaching skills, management skills.

The first one people demonstrate through papers, passing exams and so on, so usually they have indeed good skills (don’t want to dispute that). The other two skills are on the other hand never tested, and just taken for granted, taken as the “easy” part. On the contrary, most people who think they can manage people (me included), are naive and make a lot of mistakes, even be completely counterproductive. Many professors are terrible teachers and managers, while they think they are doing okay or even great, so they don’t have to examine their level, nor improve on it.

Because of these things, that are so ingrained into the Academia, I’m even surprised that there’s so much success as there is. I would argue, many times the success is temporary and because of people’s skills to persevere against the odds. In some subset, actually, things fall into place. In my previous research group at Oxford, things were like that: professors let students to experiment and try things even if they don’t agree or see the point at the time (within limits, of course), people stayed on after their PhD, or spent their masters there as well, so much lower turnover, they took the bureaucracy out of the picture so if I needed something I just had it, no overtime because everyone knew that people need a life (and dinner at college starts at 5:30, so got to leave before that), and natural team building, like the tradition of whole departmental coffee (morning) & tea break (afternoon). We talked about everything, got to know each other, exchanged ideas, never got stuck in our work. And everyone was happy. I think I got spoiled by that, and took such environment for granted.

Of course, most of the things I mention here are not new nor original observation. To understand the situation, I started to read some books that supposed to guide new professors, for example New Faculty: A Practical Guide For Academic Beginners. I was wildly agreeing with the picture they paint of the problems in the preface, and starting to see some of the things a little better, while it still feels as if it falls short: most people trying to fix the problems by better assimilating themselves into the existing community, instead of shaking up the way “things are done here”.

That’s not necessarily bad, as another book I got recommended, the Orbiting the Giant Hairball showed me. There are a lot of resources that even a troublesome environment can provide. Still, how much one’s energy should be invested into fighting the system, and how much into the things we want to do to change the world?

Crossover Labs

Looking at the whole situation, my last 5 years were good lesson in life, while they left me almost nothing to go ahead in Academia. Joined labs that were stuck, or still building up, so I learned a lot, but haven’t got anything published, which is almost the single thing they need in the Taiwanese system to enter the professor level. Also, as I mentioned, most of the problems seems to be by design, so it feels I can do relatively little from the inside, if I want to change things. And I really do want.

I don’t want to leave physics behind either, research is what I’d like to do.

Instead, let’s think of something crazy: there were really successful non-academic research laboratories, let’s take Bell Labs. Unfortunately they have stopped fundamental physics research, but what if that tradition would be revived? If Bell Labs needed a powerful mother company to run it, how would we do a similar thing “21st Century Style”? Can we get some inspiration by non-conventional research and technology, learn from the old Bell, from SpaceX, from the HP garage, from the MIT Media Lab, from firms like IDEO, from Formula 1 teams, from Japanese innovation at Honda/Toyota/others, from IBM, from Sparkfun? These are all a bit wild examples, while I believe all of them have some insight that will or have changed me for the better.

Can I find a place where I can test my theories of research, how the 20% time would work in a lab; finish side projects that are right now dissuaded and covered up with just throwing grant money on it; see how people would probe the universe without the pressure to publish or perish; when people can change fields and become useful in research in a way they find fitting as well; when learning and training are priorities; when the quality of results is not been sacrificed…

I kinda think that I could do this in one obvious, but very scary way: I’d have to start it myself.

Thus it seems the path forward is taking my time at the current position till the contract runs out at the end of this year. Learn as much as I can. Do things as well as I can. Than based on all those experience, found a new laboratory, let’s give it a working title of Crossover Labs, and see what can be done on a shoestring.

Set up a laboratory that puts research first, based on the people. Make it so that it can fund itself from its byproducts in good Cambridge style where successful research is spin off into companies. Let’s have a place which doesn’t have to push people to do things, because they want to do, just get out of the way of them kicking ass. How to do this will need a lot more thinking and will definitely write about it more.

It is easier to say than to do, so if this vision is something that resonates with you as well, then let me know, that would be already helpful!

And I’m a bit sad that I got to the stage of “calling in well”, but it feels it has to be done:

Chances are you’ve heard of people calling in sick. You may have called in sick a few times yourself. But have you ever thought of calling in well?

It’d go like this: You’d get the boss on the line and say, “Listen, I’ve been sick ever since I started working here, but today I’m well and I won’t be in anymore.”

– Tim Robbins: Even Cowgirls Get The Blues (via Peopleware)

 Thanks David and Nathan for feedback before the publication of this post.

Categories
Admin

Fighting forum spam

As one of the managers of Ignite Taipei, I’m trying to come up with new ways to let the community communicate, new ways to share information, advice and all. A while ago I have set up a forum at http://bbs.ignitetaipei.tw/ and I thought that will be an interesting experiment. Well, so far it is useless for communication, but turned out to be a very interesting experience from the sysadmin point of view.

I used FluxBB, because it looked simple enough, seemed to be quite fast (for low traffic volume at least), and well configurable. Except that within a very short time I run into a spam problem, so many fake users registered, and lots of algorithmically generated garbage text with a bit of advertisement here and there.

First I looked into FluxBB’s own solutions, and looks like it might not have been a great choice, because many of the spam-fighting plugins are out of date, or not supported anymore, or just a real pain to set up. The immediate practical step I could take was updating my security questions, roll my own version of “written with words, how much is 5 + 4?”, the regular low-tech captcha on FluxBB. Looks like the original answers are already in the database everywhere, so had to write my own set, which seemed to work for a while, cutting down on red-flagged registrations. But it’s not ideal, since I want to make this a dual-language forum (Ignite Taipei has both English & Chinese as official language).

Instead I turned on email confirmation. When someone registers, the password is sent to their email and have to use that to sign in. It was okay for a tiny bit, then crazy registration boom happened. I think I might be the only one real member of the board (I said that it is a failure so far for communication:) and there are 500 other spam members. Looking at their email addresses, it seems all of them have Hotmail. That kinda suggests a giant failure at Hotmail to restrict automatic registration, which is probably a problem overall. I cannot just throw out Hotmail addresses either, because it’s a popular mail provider here in Taiwan too (my first email was Hotmail too, but that was a looooong time ago, before it was Microsoft property).

So captcha don’t work, email don’t work. What to do instead? At the time I was playing around with Cloudflare, to act as an easy to use CDN. I tried it before for our Ignite Taipei blog, which is hosted on Tumblr, and that doesn’t play well with Cloudflare unfortunately. Couldn’t use it for this blog before because of my DNS provider, but now I switched, so started playing with it again.

The dashboard of the Cloudflare interface
Cloudflare stats snapshot (parts of it)

Instead of enabling Cloudlfare for the entire ignitetaipei.tw domain, just turned it on for the forum, since it’s hosted elsewhere. And that totally did it. Spam stopped that very moment, and haven’t returned since. I think what happens is that Cloudflare knows globally a lot of web/forum/email span hosts, and can challenge them or generally ignore them. Can even see where those spammers are coming from.

List of captured threats on the Cloudflare threats console
Cloudflare Threats Console

One weird (but actually not that surprising) thing is that the most active web crawler on the site (Cloudflare gives that info as well) was Baidu by far, so I guess more people knew about the site in China than elsewhere. Why’s that? Some forums that share vulnerable sites, or something like that? I barely had any Chinese content at that time, so it cannot be that. And since I turned on the threat control part, Baidu seem to have dropped quite a bit (submitted the site to Google so now that’s the busiest crawler).

All in all, Cloudflare is an interesting experiment. I can really mess up my DNS with it, and could blocked my own site for several hours, but in general it worth it. Just have to be careful. For example when testing, use their own name servers to check the information, and maybe instead if “automatic” time-to-live, set some very short time first. I usually use Google’s 8.8.8.8, and they pick up the first wrong setting really quickly, then it takes hours to pick up the correction I made just minutes after the first one.

After a bit of playing around, at least I have no spam anymore (keep fingers crossed). Now just have to get people to use the forums. :)

Categories
Computers

Editing talk videos for Ignite Taipei

As an organizer for Ignite Taipei, there are plenty of technical things that I need to take care of. Managing people’s slides (plenty of fun there), runing the presentations (it needs the Ignite type 15s autoadvance), setting up web stream (where everything can go wrong), recording the talks themselves. One thing I haven’t done yet, is editing the videos.

For all previous events we got some more experienced people to help out. The results were okay, nothing surprisingly great but plenty usable. It still did take a lot of time to do that, and I don’t like to ask people favours. Instead this time, for Ignite Taipei #7, after almost a month of procrastination I decided to do it myself. Ignite is an experimental ground for me, where I try a lot of things I think about startups (even if it is a non-profit organization, it can have a startup like “organization”), and I thought if I was a CEO I would make it such that “the buck stops” really here with me. Have to experience the work myself to be able to find better people doing it later. And I like video editing (from the good-old DVD ripping days, that came really handy this time as well).

Recording

The recording was done with my Canon EOS550D. When I got the camera, I could have gotten a 600D, but I thought “I won’t be using this for videos!” Duh! Now I have to put up with freaking large files, because 550D cannot compress them on the fly. Also, need to check whether I can get better SD cards, because at 1080p it broke the recording last time (that’s why the Ignite #6 videos are still not edited). 720p (at 50fps) seemed to work somehow, and looks good too. Will try to fix that still in the future. Now I have a GoPro Hero3, that  can do 1080p without even breaking sweat, and I plan to use that one for the next Ignite.

Title screen

A video starts with good title screen. Previous editors could manage animations and all the works, which I didn’t have any idea how to do this time, so just keep it simple: a static page. But still have to add my own spice: not just a simple title and header, but something good-looking, and expressing the spirit of our organization. So got a cool HDR photo of Taipei City (well, actually Zhonghe, the suburbs to the south) from my friend, Chia-Da Hsu, tuned it a bit to be a background image, and plugged it into Inkscape.

Editing window of Inkscape
Creating the video titles in Inkscape

I like Inkscape a lot, open source, capable, fun.

Put in the background, position the text. The font used by Ignite, and thus for most of our own text is Insignia LT. To make it more readable (20% gray setting), make a black outline to the text: Copy/Paste in Place/Stroke paint to black/Make it thick (20px thickness for us), and blur with a suitable parameter value (was 2 for us), then move the layer one below. Voila, outlined text, drapper. Just had to make one, then replace the text (and recreate the outline).

Editing

I needed to put together the video with the slides, side by side, with synchronized timing, so it would look similar to the original talk. First, I needed to get the slides in image format, that I keep doing with ImageMagick, whit this script:

Unfortunately, the ImageMagick on my ArchLinux seem to be chocking on this script, that used to work so well 6 months ago. Looks like it outputs only the first slide. I had another computer with an older version of ImageMagick and it worked like a charm. Got to investigate it – or wait until the next Ignite and hope the problem goes away.

Next I had to find a suitable software for editing. As much as I looked, Linux didn’t have many good ones, or even many of any kind. Avidemux don’t like MP4, and it has bitten me in the butt before, Cinelerra didn’t work for some other reason, and these are the two in the official ArchLinux repo that I could find. Had to look more to get to Flowblade, an editor written in Python. I got to say, it’s such an amazing bugfest, that it drove me nuts sometimes, but got the work done, and that’s more than I can say about the rest of the candidates.

Combining the video on one channel, and the slide images on the other channel, translation to move them side by side, then finally a blending compositor so that the layers don’t overlap.

Flowblade window during editing
Combining the video and slides in Flowblade

Looks quite good, was a rocky start to figure out how it went, but when it went well, then I got one talk done in about 10 minutes, which is great! It helps that the Ignite format is predictable (15s each, could just add an image, and found the new insertion point for the next one in a very short time. Though now I see that Acrobat Reader that I use to display the slides, don’t do accurate timing usually.

Then it came the rendering. Originally I used a pre-compressed version of the videos (from 2Gb for 5 minutes to about 200MB), but the quality just wasn’t that good after the joint rendering. Went back to the original source, and tweaked the parameters. In the end, discarded the entire stock parameter setting, and used these ones manually. To get a good result, the important ones are preset (from ultrafast to veryslow, increasing quality) and crf (lower number means better quality, 18 is good, 17 a bit overkill because I like that, about 20% larger file than 18):

Too bad that Flowblade cannot do 2-pass encoding, maybe can do that another time differently, for better quality and smaller filesize. Also, had to make sure that I marked the beginning and the end of the video well and just rendered that part, otherwise it crashed right at the end of the job. Not good, considering that it took about 40 minutes each to be done.

Flowblade is unfortunately using absolute paths to remember things, and cannot edit the settings very easily, so couldn’t move the rendering onto a more powerful machine. Maybe could make a tool for save-file conversion, it’s all Python anyways…

When that done, I remembered from listening to a lot of Youtube videos, that the sound had something to desire, and all I had was puny DSLR microphone recording, so I run it through a normalization to tweak the level of the audio.

Upload

Time to upload to Youtube. Fortunately the network is great here in Taiwan, so it was a very short time, sometimes the postprocessing took longer than the actual upload.

The Youtube video info editing window
Editing all the options for the uploaded video on Youtube

From the settings I always go for Creative Commons, not that anyone had remixed our videos yet. Also set some tags, maybe that can improve our visibility in search, as well as the recording date and location. The description writing is tricky. Most of our videos are found through recommendation on the Youtube website, so it should be good. I wonder what would make it work better?

Ready to share

All that done, just created a playlist to tie the videos together, and found this new (to me at least) look, which is not too bad:

Youtube playlist window with all the uploaded videos
Finally, got the playlist ready

Now, after 2 days we have over 200 views, which is not bad considering that I could barely advertise yet, only friends sharing on Facebook and such (and you know how Facebook hides everyone’s precious updates, so it’s a surprise we even have this many).

Finally, the results can be all enjoyed.

 

Categories
Life

Counting down to the next

Since living in Taiwan, the Western style new year feels a bit arbitrary for me. The Lunar New Year is at least tied to something, it is easy to define, even if it’s more complicated in its own traditions. Nevertheless, I like the New Year, and it’s good to have some periodic semi-forced review time. When it’s cold, it’s even better (sorry Southern Hemisphere).

Sunset over Taipei
Sunset over Taipei

This year felt a bit like growing up. I was grown-up before (can’t afford not to be at the age of 31), but my way of thinking have matured a lot, and it feels like that happened because of all the limitations and stress and projects and winding path I took on.

In 2012 somehow extended on the projects I worked on, like building a certain portfolio. Ignite Taipei is still there (maybe the main drive behind my experimentation), while it got company in the form of Future Shorts Taipei, the continuation of the Geek Dinners, later OpenHack Taipei and the (preliminary) Taipei Hackerspace. They seem to have a common theme – building local events related to technology, innovation and art. I hope I can continue with this theme, and see where it takes me. Kickstarter, social networks helped a lot to expand my world in these directions. Not sure if all these projects will survive next year (at least not with me at the wheel), but will definitely learn from all of them.

There were some really good books this year, discovered Pynchon, Tolstoy, and Calvino, as well as many smaller ones. Keep rediscovering Tolkien, Asimov, Murakami, Vonnegut, Beckett. Had a lot of brainy-books too. My shelf is still totally full, I can be sure, that the next year will be just as busy in terms of reading and just as mind-blowing.

In research I wasn’t that successful, though I have learned a lot. Will see what can we do in the next year in the lab. We were building a new experiment and it is not a real surprise that the results are still ahead. Whether my true way is down on academia lane or not, that remains to be seen.

I have a lot of startups related influence around me, and for years I’ve been hatching plans without any results. Next year supposed to see me set some hard deadlines for decisions (different visa for Taiwan, that lets me do more, for example).

There were some great travels this year, a big European tour for the first time since I moved to Asia, and in Japan for the first time ever. No plans for travel for the next year yet, maybe more within the country and more purposeful choices of destinations? Though I like quick changes of plans and surprises. And visitor friends from countries are good too.

This time it feels strongly that I’m in “in-between”, with choices ahead. The Sun is already setting on 2012 here, let’s make 2013 count.

Categories
Programming

The Gift of Code

I like advent calendars a lot. They can bring a lot of surprise, preparation, focus, and joy. They can come in many shapes and forms, and they encourage DIY – make your own calendar, count the things that are important.

This year, I got to play with a very interesting “advent calendar”, called 24PullRequests. It is the kind of thing that I don’t understand why people haven’t done it before. The mission: help out open source projects by submitting enhancements and fixes (i.e. “pull requests“), and do that for 24 days counting down to Christmas.

my 24 Pull Requests calendar
my 24 Pull Requests calendar

I had to take part in that one, and while the result wasn’t as successful as I wanted, it was so far my best contribution to open source.

My pull requests

Instead of 24, I managed to make 4 enhancements that were ready to be sent off. That’s not consoling me that it seems nobody managed 24, but never mind. Here are the things I made:

  • SmoothieCharts: make the charts use newer browser animation technologies that have better performance, and save on battery as well. This one was prepared somewhat earlier than December, but the final version was pushed within the right time frame. Being tested, not merged yet.
  • OpenHack: I’m organizing the event in Taipei, and noticed that some other place has broken image link. Hunted down the same pic from Google Cache, and set it up again.
  • Python Guide: added some info about installing certain Python packages in Arch Linux and Ubuntu. This is embarrassingly tiny fix, there’s so much more to do here
  • AngularJS: this is fixing that one couldn’t run the build script if the system Java can’t run in 32bit mode. I didn’t know that this was a Google project, until they sent me a request to sign some contributor agreement. I feel strangely humbled.

Lessons learned

Four contributions were already a lot of experience, because all of them were so different. Here are some lessons learned:

  • Write good pull requests – that starts with writing good commit message! People keep saying that, but seriously, no excuse not to do that.
  • When the changes have been sent in, don’t mind that they are not accepted yet. Every project have their own pace. Keep working on whatever you like
  • I was looking for ow hanging fruit, but one has to go in there still to make some meaningful contribution.
  • The issue tracker is a good start to see what to fix, but not always helpful, as it can be difficult to understand what propblem the others try to describe, if you are new to the project. On the other hand, try to use the code, I’m sure you’ll find some pain points right away (that was AngularJS). Also, the busiest issue trackers are not the best, they are full of things that would side-track you for a long time. Projects with a medium count are good for such an improve-and-run contribution.
  • Don’t be afraid to do things, but still do them the best you can. Your contribution doesn’t always feel meaningful, but still a little improvement is more than most people do. (just like PythonGuide was)
  • Keep things simple – easier to do, easier to pull. Even if sometimes that takes longer to write (the AngularJS contribution srunk to the quarter of its size while I was trying to figure out the simplest way to achieve what I wanted)
  • If interested, don’t worry if the project uses programming language you don’t know. You can pick up new things easier than it seems. Also, many projects give you feedback on your contribution, to help you improve it.
  • This project don’t encourage to work on your own stuff, but that doesn’t matter, there are another 11 months for that, or every day after these contributions are done
  • How to do this for the whole year? Bug squashing day in general? Still need to get deeper in projects, but go and explore. Can also see CodeTriage and ContribHub, linked from 24PullRequests
  • If stuck in the fixing, but the problem is interesting, don’t worry if it doesn’t fit in the 24 days. Keep working on it, the recipients will be happy any time (I have have 1 or 2 such patches)

Now let’s be a better coder in 2013.