1,956 karma · joined October 7, 2011
The opinions I express here represent my own and not those of my employer.
Historically, the "spirit" of Open Source (or the motivation to part from the FSF, which was the birth of the movement) was to present whatever was happening in the Free Software world to businesses precisely with the goal of attracting money. Loads of it.
Open Source is a method of work. It says, my value is not in my source code, I'm not afraid of sharing it with the world (as a matter of facts, I get more value by doing so). But it is furthermost a methodology aimed at helping businesses make more money. (Or else all this commotion would've never happened in the late 90s and we'd all be still calling it Free Software).
Canonical is a business. It needs money and if you've ever owned a business, or worked in a financial position in one, you know there's no such thing as "getting enough". If they don't make money, they'll die and the project might terminate. Take it or leave it.
That being said, I chose to leave it a while back, for very similar reasons (I moved to Debian which was familiar and more ... free). But I cannot say I'm surprised they do similar deals, and cannot stand by when people accuse them of ... not following some convenient definition that was never there to begin with.
The first months or so, it's perfectly understandable that a new developer doesn't "get" the application, how it works, or even what it does. The myth of the ninja programmer turning things around, applying a mix of beautiful elegance and sharp efficiency to save the business big bucks, is just that, a myth.
Actually, during this period, a new recruit should focus on one thing only: survival.
Deliver the mindless code, even if it doesn't make sense (or seems plain wrong), but deliver it on time. Do not slack off on your hours, show up (at least) ten minutes early and leave (at least) ten minutes late. You may be the genius programmer who delivers in an hour a day's worth of an average programmer's productivity; but now's not the time for cleverness. Now, I repeat, is the time for survival.
It is also the good time for getting to know (and being accepted by) your colleagues and your direct managers. Coffee/cigarette/you-name-it breaks are important. Do not miss those.
So when do you get the chance to behave like the great programmer you always thought you were? From experience the milestone has always been the same: The next batch of recruits (which in my case has always been around 8-12 months in large enterprises).
As soon as you're not the "new guy" anymore, things automatically change. Not only have you already earned the acceptance and trust of people around you, but you've also seen enough of the code and interacted enough with business analysts. You have much more elements in hand to be creative and take initiatives.
In short, I'd add one thing to this article: Be patient. It's true that you can never see the whole picture, but as time passes, you can definitely detect the places where you can have an impact. Until then, you simply have to turn on your survival mode.
The problem is that authorities are sending me, and thousand of other computer literate people like me across France, a very clear message:
It's okay to download music illegally as long as you don't do it from your own connection. Couple that with the fact that most home routers are still running on default WEP (?!) encrypted connections, and we're virtually outside the reach of this law.
This law is a terrible one, I really hope the government will do something about it. Thankfully, it looks like the victim is "only" going to be fined for 150euros. But what if the next scapegoat won't be as lucky? (In all honesty, the madness going on in US courts give me the creeps...)
Also why do they refer to GNOME as a "research" project?
For the past year or so, every time I worked on a non-trivial problem, I did it on a sheet of paper. It definitely took discipline at first but now I couldn't do it any other way.
My motivation for adopting this approach came from reading a blog post by Guido Van Rossum (http://neopythonic.blogspot.fr/2011/07/before-python.html).
Then I went to university in Amsterdam to study mathematics and they had a computer that was free for students to use!
(Not unlimited though. We were allowed to use something like one second of CPU time per day. :-)
"One second of CPU time per day" got me thinking. Sure there are benefits to having modernly cheap computers, but how did they do it before?No invention is truely innovative, not a single product on the market today is truely original. We're all influenced by the same factors and we're all trying to push the same limits in technology.
I don't have nearly the means to go to court against a company like Apple (or any company at all for that matter). If I launch my product today, I would be afraid of being successful, because I know I'll be bullied by others.
And when patent lawsuits can win you a Billion dollars, patent bullies are happy and waiting for me.
But yeah, I agree patents are a driving force behind innovation...
- As mentionned by others, I wouldn't pay for this data. It's not that it's not worth it, it's because I would only need it at the beginning of a project, which is rare enough to justify the monthly fee. That said, if I were a manager responsible for 10 ongoing projects at any time, I'd be very interested.
- About the pricing, the one thing that bothers me is that I have no idea what a "technology category" is, and how much do I actually need. I have no idea if 5 is enough or not. Maybe you explained this and I missed it. Maybe a demo would help picture what it is. It's up to you to figure it out, but as far as I'm concerned, I spent over 3 mins on the (otherwise very appealing) website and did not find the info.
That said, I think it's a good idea, and while I have no clue whether it's a profitable one (or how you should proceed to make it so), I think it's a really cool project capable of providing real value. Congrats and good luck for the launch.
- As soon as installed, the app will download emacs from a 3rd party repo. You have the option to specify your own, I picked the default one.
- The app consists apparently of a terminal emulator and a Bourne shell (clone?). emacs will reside inside this emulator and the shell.
- The app seems very young, segfaults are frequent. A common cause seems to be font-size. If font size != 20px at startup, app will segfault. (you can change it once the app is running).
- The buffers do not resize dynamically when I show/hide the keyboard. On my SGS2 in landscape mode, that leaves very little screen space for the buffers.
- The app greatly benefits from Hacker's Keyboard or any similar advanced keyboard.
Math is the language of science[...]. There are many ways to learn a language, but I think they all have something in common. You have to spend a lot of time learning, reading and writing. The writing is quite important. You have to write the language to be good at it.
He's not arguing that scientists should drop writing math altogether (although you have to admit that they are spending huge amount of efforts making the computers do the calculation for them). He's addressing the more general issue of "teaching math in elementary schools". Why do we do it today? not everyone is going to be a scientist!
The thing about math is that currently to write as it is supposed to look like can only be done most conveniently on paper. Writing a math formula in Mathematica or Wolfram alpha requires a latex-like mini language[...].
Yeah writing math formulas on a computer is a pain. But:
- you and I come from a generation of pen and paper math solving. The idea of markup annotation of your text is still very young, but is it so far fetched to imagine that in few generations, all text will be filled with metadata and tags? LaTeX is a pain because of our current primitive keyboards and screens.
- more people should work towards improving this. Wolfram Alpha is doing good things, they're not the only ones working on this either, but we still need to bring more attention to the issue.
Also, who cares if he sells WA. Let's talk about his idea, not his persona.
Basically you have two choices, depending on the Unix you're using:
- find ... -print0 | xargs -0 wc -l
- find ... -exec wc -l {} +
The second one is defined by POSIX and, as far as I know, works on every Unix except for OpenBSD (who only implemented this feature starting version 5.1 in 2012).
The first one is non-POSIX so several Unices do not implement -print0.
To the best of my knowledge, GNU find should work fine with both.
More info: http://unix.stackexchange.com/a/41745/4098
Of course, the two shells may be equivalent in terms of power or number of features, and any contest a la "Can your shell do this?" would be futile. To me, it's a matter of cultural differences. Think of it this way: a shell operates in two mode, script or interactive (the new fancy word now is REPL). How much time does your average PowerShell user spend in REPL mode?
In comparison, a Unix hacker spends all his time in the shell, even for doing the most trivial tasks. As you practice more and more, the shell becomes a favorite way to operate a computer. Even tasks that may seem easier on a point-and-click interface (like selecting a few files from one directory and copying them into a new one) come more natural to me on the command line than with a mouse. The day I discovered that you can run 'for' loops from your interactive shell as naturally as a script, I almost uninstalled X :)
My only point is that the shell fits in the overall philosophy. You probably heard of the famous McIlroy vs Knuth story (legend?), where a pipe of a few commands turned out to be more efficient than a Knuth data structure. That's beyond my point. What I want to show is more the ending paragraph of this story, what McIlroy had to say about it:
> Very few people can obtain the virtuoso services of Knuth (or afford the equivalent person-weeks of lesser personnel) to attack nonce problems such as Bentley’s from the ground up. But old UNIX hands know instinctively how to solve this one in a jiffy.
That last sentence. Unix hands know how to solve these problems because of all the time spent on their command line.
Overall I'm glad that Microsoft is developing PowerShell, and I absolutely agree that it is far more adapted to their Windows platform than the old "all-is-text" mentality of bash and the POSIX tools. However, PowerShell is still treated as a second class citizen in the Windows eco-system, and that is, imho, its biggest weakness.
Vim is one of these tools that isn't obviously better, so that you don't really understand its power until you try it (for a few months or so).
I enjoyed this article exactly because the author didn't try to rationalize the superiority of his tool, rather depict in an entertaining way, a familiar (to me) feeling of empowerment said tool can give you.
If you've never been through it, here's what it boils down to:
- "Cancel my account" link was hidden and relatively hard to find. (I guess this one's normal)
- You have to give a reason why you're quitting, out of a major radio-button list that felt more like a survey.
- No matter which choice you pick, you get some bogus argumentation on why you shouldn't close your account. I bet some manager in the company is so happy about how much this would reduce the number of possible cancelations. I'm sure she even has some bogus data to back her claims up. To me, it felt like an uber annoying phone sales representative who won't let you hang up the phone even though you're clearly not interested in the product.
- If you pick the field 'Other', you have to fill the text field explaining why.
- After all this, you have to enter your password and/or read a captcha (I don't remember exactly)
- It ends with Facebook telling you that your data is still there, ready and waiting for when you'll be back. I don't remember the exact wording, but to me, it came off as extremely smug.
My point is, canceling has to be easy. It has to be so seamless I could do it in a few seconds. It's a matter of respect. I felt that Facebook didn't care about making me hop through their hoops. Their final message, that I'll be back, added to the insult.
It's a great thing to survey cancelling customers, and yes, you could probably learn a lot and mayve save a few of them. But for the love of God, let your surveys be as non-intrusive as can be.
Generally, certifications, however, are appreciated by the stereotype of the HR department and non-technical managers of large organizations. If you have a certification from a brand name stating that you know how to use a particular technology, then no one is going to be blame for hiring you, even if it doesn't work out. That's the stereotype and unfortunately, it is far from uncommon.
You were spot on that people "can just clear this certification program just by preparing through previous question dumps. Does this do any good to anyone", but that's a broader problem relative to standardized test. To a large extent the same could be said about your degree.
Finally, as mentioned globally in the comments, experience is far more interesting than certifications. However, I may add that, for programmers, nothing, absolutely nothing, beats a code portfolio.
Also, I don't think QNX is necessarily more obscure. It may not evolve on the desktop/server market, but it is an industry standard in its field.
I definitely agree with this! That's what I had been thinking the whole time while reading the articles and the comment threads. This is also my motto, here in the office.
It's too simple to say that there are differences between writers and programmers. I think "writer" should be treated as an umbrella term that encompasses braod ranges of skills. After all, a journalist, a poet, a technical writer and a translator aren't really doing the same thing, are they? I like to believe that the core subset of skills needed to be one of these is also needed (or at least highly valued) to be a good programmer.
Programming is writing. Absolutely.
Pirate Bay/Youtube vs Sony/Viacom have one thing in common: content creator doesn't understand new means of distributions, gets angry, sues the platform, pisses the internet off.
The Oatmeal acted differently. When he got angry at the new means of distributions, he didn't sue, he didn't even threaten to do it. He accepted the situation, made a funny/angry comment about it (where he didn't lie nor even exaggerate the situation), and went back to his comic drawing business. Is it unfair? probably. But his "moving-on" attitude draws respect.
We're all cheering for The Oatmeal because he didn't attack, he got attacked. The internet is generally favorable for artists who don't make a big deal out of freely copying their work. Once they get attacked, at least, the internet always got their back (and as the IndieGoGo campaign showed, those freeloaders are more than willing to spend the big bucks to protect their proteges).
It also, and this may be a personal impression more than an absolute truth, was the Unix to play the most insistent role on the desktop. I, like many, got introduced to Unix through Linux (Ubuntu to be exact - the year was 2006). Sure I fell in love with Unix and quickly moved on to other distros/unices, but at the end of the day, I still believe that I, and a lot of people my age, only discovered Unix because somebody somewhere fought for the desktop, something neither Solaris nor HP-UX deemed "profitable" enough.
1. an inherent part of the Operating System.
2. the only way Linux can be used.
The first point is debatable. In academic circles (where Linus has spent a big part of his career), operating systems usually designate the kernel. In commercial products, the kernel by itself is not very useful, so you'd add a few userland utilities to your definition.
The second point is simply wrong. Busybox is a very widely used alternative to GNU, and Android, arguably the most successful mass consumption Linux system to date, has zero GNU tool.
As much as I appreciate GNU, the FSF and rms, this constant demand for credit is, too often, misplaced and above all, a bunch of misguided rhetoric.
Can't we simply be happy for an engineer who fully deserves the recognition he's getting?
- bash and make are completely separate programs. As a matter of fact, I spend half of my time developing with ksh and Solaris make. The two programs you mention don't go 'hand in hand'.
- `find | xargs grep` is a terrible construct. 99% of the time (if not a lot more) you'd prefer using something like `find -exec`, I have yet to come across a version of `find` that wouldn't work that way.
My point is not to be an arrogant prick, and criticize the parent post. These kind of misconceptions usually indicate poor understanding of the larger Unix philosophy. By her own admission, my parent "just do[es]n't know enough".
I believe that in order to truly use Unix as an IDE, one has to go beyond the (arguably bad) reflexes taught by common GUI IDEs. It's not simply a matter of "What command can replace feature X from Netbeans/Eclipse/Visual Studio/...?" Modern IDEs weren't conceived with sed/awk in mind, aren't (for the most part) scriptable like most Unix shells are, and aren't sitting on top of a freaking Lisp machine like emacs is (you know the whole enlightment deal, lisp is superior, bla bla bla).
I am sounding like an evangelist, Unix tend to do that to me. I am trying to make a simple point:
It's normal to feel that something is missing if one is simply transposing her knowledge from point-and-click IDEs to the Unix shell.
(To answer your question, a combination of sed and awk does wonder to rename across the code base. And SO much more ...)
The article is not about rms, but about the venue where the celebrity got robbed.
Also, thanks for Lanyrd, it does seem to answer my needs, and good luck with your venture :)
Does anyone know how or where can I get to know them? What are the upcoming conferences happening in the area? What are the active communities?
I do not necessarily abide by this point of view, but I do respect the kind of harsh discipline it advocates. Valgrind is definitely useful, really useful, but great C programs (and programmers) existed long before it appeared.
One thing I realized, is that reading C is more tedious than code in other languages. Sure that's a gross generalization and is not true for every piece of code out there. However, I find I have less troubles picking up a Python project, understanding how it's written and start contributing than I have with C.
A few weeks ago, I was looking at the code of Qemu. The code relies heavily on preprocessor macros and some weird gcc-only syntax that made my head hurt. It was difficult.
I guess what I'm trying to say, my only problem with C is that it doesn't force the programmer to write in a clear understandable way. Or maybe that's just me.
For instance in Lua:
function abs(x)
test = {
[true]=-x,
[x>0]=x,
[x==0]=0}
return test[true]
end
> print (abs(-3))
3
To understand this code, think that `test[true]` is overwritten at initialization time by the last predicate to evaluate to True.It's not the best way to do this, but maybe it'will help understand the above construct.
It shows the negotiating power of the Internet to the world. After all, the bill was defeated by online communities like Reddit, Wikipedia or HN right here. If anything that's an admission that online communities should be listened to, much more often.
And I like that. When people ask me where I'm from, I often jokingly answer "From the Internet", I'm sure a lot of people here can relate to this feeling. I'm not a US citizen, but being from the Internet I am directly impacted by these laws. I am glad to think that my "people" (fellow interneteese) and I can make ourselves heard.
I am not arguing that musicians should not make money, far from it. I am merely saying that any business model that relies on "pretending Internet/Technology cannot do this" is flawed, no matter how many laws and regulations you throw at it.
Technology can be very disruptive for some businesses. The 'backspace' button on your keyboard cost a lot of typists their jobs. Machines are driving cinema clerks out of jobs and fridges make ice-hunting obsolete (there was an article featured here on HN about a guy whose job is to get ice off the mountain and distribute it to villages).
To answer your question: I don't know about people here, but if it were up to me, programmers should be held to similar standards I suggest for musicians.
Now don't get me wrong, I think that selling music in the internet age is a fundamentally broken model, so much more than the donate one. At a time where distributing media is as simple as one click, trying to make money off of distribution is just wrong. Take into account how widespread internet access is today, and do the most basic ecnomical analysis, take "Porter five force" for instance and you'll quickly realize how non-viable this model is. Labels who act as middle men between the artist and their audience might have been needed 20 years ago, but today, what are their added values?
Now, if I do not believe that selling music is profitable, that doesn't mean that musicians cannot make money. Here's a simple business model for you: Make money off concerts and use your records as promotion units. Give your music away for free, hope for success, give a concert, make money.
Labels want to scare you into thinking that their distribution model is the only guarantee that music/art will survive. Let's not forget that musicians existed and made money long, very long before technology allowed businessmen in suits to make money off of them.