Verizon charge extra for Android tethering, think users are fools

May 25 2010 Published by Salvatore Iovene under Tech

This is really silly. And by silly, I mean even sil­lier than unlim­ited data plans capped at 5GB. Mr and Mrs Ver­i­zon have appar­ently decided that teth­er­ing your Android phone should cost you money.

Let me remind you what teth­er­ing means: your phone will cre­ate an ad-hoc WiFi net­work, and will share its 3G con­nec­tion with all the devices con­nected to that net­work. A typ­i­cal use-case might be pay­ing for a 3G con­nec­tion from your Android phone, and then con­nect­ing other phones, com­put­ers, tablets or what­ever to the Inter­net, shar­ing the same connection.

Pre­sum­ably, though, your con­nec­tion has a max­i­mum speed, and also a monthly data cap, so this means that whether you enjoy that con­nec­tion from one or from ten devices, the cost of oper­a­tion for Ver­i­zon will be exactly the same. Why are they charg­ing for this, then? Because they think they can, obvi­ously. To give you the impres­sion that they are indeed giv­ing you some­thing more, buy­ing teth­er­ing will actu­ally bump your unlim­ited 5GB con­nec­tion to some unlim­ited 10GB, which is dou­ble the amount of unlim­ited! Jokes apart, it looks to me as they’re sell­ing you some­thing you don’t want, masked as some­thing you want but should be free.

This is even more fool­ish than unlim­ited data plans capped at 5GB, because I see how “unlim­ited” is a mar­ket­ing word. Most peo­ple have no idea of how much 5GB is, and if that’ll be enough for them. But unlim­ited… that’s a dif­fer­ent deal, isn’t it? It sounds so much bet­ter. Again, most peo­ple will never encounter the cap, because the same peo­ple that don’t know what 5GB are, are unlikely to use them in a month, from their mobile device.

So you see, I kind of see the point of play­ing with words with “unlim­ited”, even though it’s not really fair. But charg­ing for teth­er­ing? I call that steal­ing; charg­ing the users more, when they’re really get­ting the same, and it’s cost­ing the oper­a­tor the same.

One response so far

Stop whining about Facebook privacy issues

May 18 2010 Published by Salvatore Iovene under Tech

The Inter­net is now com­pletely sat­u­rated by peo­ple whin­ing about pri­vacy on Face­book, or lack thereof. I hon­estly fail to see, for instance, how its pri­vacy set­tings should be a bewil­der­ing tan­gle of options. Face­book has hun­dreds of mil­lions of users, so yes, it is going to be com­pli­cated to han­dle the pri­vacy set­tings. Besides the fact that it really isn’t. And so what if its pri­vacy state­ment has a larger word count than the Con­sti­tu­tion of the USA? Face­book has a hun­dred mil­lions users more than USA has cit­i­zens. One glove does not fit all hands, and they need their legalese.

I agree: upgrad­ing pri­vacy set­tings so that they are less secure than they used to is not the right way to go, but every­body is free to change them the best way they can. The more I observe the debate evolve, the more it looks like it’s founded on con­spir­acy the­o­rist delusions.

This isn’t sim­ply a mat­ter of “Face­book is the only game in town, so they can and will do what­ever they want”. Face­book comes for free, and it’s not really some­thing I would include amongst the must-have ser­vices, like fresh water. So you don’t need it, and don’t have to use it. If the sole fresh water sup­plier in your town started to pol­lute the water inten­tion­ally, say so that they could sell med­i­cine with the other com­pany they own, then you would have a problem.

Oth­er­wise, there’s noth­ing here. What? Rais­ing pub­lic aware­ness? I see. You can do that with­out try­ing to orga­nize Facebook-quitting days. It’s OK to talk about it, and indeed I’m doing it right now myself. But I’m just doing it in a more con­struc­tive way: check the safety of your pri­vacy set­tings by fol­low­ing the instruc­tions at http://www.reclaimprivacy.org/, and fix them to suit your needs.

Just don’t go blog­ging that Face­book is evil. You think you can just found a start-up and make a non-evil Face­book replace­ment? How long until you’re sink­ing in the bills from the host­ing com­pany, and start think­ing that “hey, maybe I should put ads on this thing”, and then, when the ads don’t pay enough, you start think­ing that “hey, per­haps I should tar­get the ads bet­ter: I need to share more infor­ma­tion about the users with the ad providers”. And so on.

One response so far

Win32 odyssey: who needs documentation?

Feb 14 2008 Published by Salvatore Iovene under Software

Dur­ing my cod­ing adven­tures, I have just found myself hav­ing to port an exist­ing Win32 appli­ca­tion to CMake. After writ­ing a mere 283 lines CMakeLists.txt file, and get­ting the appli­ca­tion suc­cess­fully com­pile, I fired it up to see if it worked, of course. I found it fail­ing when doing a WSAA­sync­S­e­lect, and fail­ing there didn’t seem to make any sense. So, to get to the point, I decided I’d just care­fully com­pare the compiler’s options gen­er­ated from CMake with the ones that were in the orig­i­nal Visual Stu­dio project file. After find­ing the dif­fer­ence, I decided I was gonna learn what those flags meant, so I googled for “visual c++ com­piler flags” and guess what? Noth­ing use­ful. The right string to google would be “visual c++ com­piler options”. But before get­ting to it, I had to unsuc­cess­fully go thru “visual stu­dio com­piler options”. You’d think that would cut it, right? Since “visual c++ com­piler options” did it. But, sur­pringly, “visual stu­dio com­piler flags” did actu­ally find what I wanted. Inter­est­ing combination.

I don’t really feel like blam­ing Google on this. Repro­duc­ing the same search pat­tern in the inter­nal Help func­tion of Microsoft Visual Stu­dio gave me the same success/no-success scheme. Besides, the whole point-and-click pro­ce­dure is a ter­ri­bly uncom­fort­able expe­ri­ence. Not only I have to get my hands off my key­board (inher­ently a waste of time), but also do I have to (mind: have to) wan­der my mouse around for a while to get to the information.

So, I won­dered, is there an alter­na­tive? I went to my rxvt ter­mi­nal emu­la­tor (which I run through Cyg­win, can’t really be both­ered with using the native Win­dows Ter­mi­nal), and tried to get some help from cl.exe. No luck. After some try-and-fail recur­sion, the least use­less thing I would find was cl.exe -help which would give me 106 (one hun­dred and six!) lines of doc­u­men­ta­tion. Wow, impres­sive, isn’t it? Com­par­ing, gcc’s man­ual page is 7820 lines, as for the lat­est stable.

2 responses so far

Leaving closed protocols behind

Oct 23 2007 Published by Salvatore Iovene under Personal,Software

In order to ful­fill what has been a propo­si­tion of mine for quite a long time, as of Decem­ber the 1st 2007, I will no longer use any Instant Mes­sag­ing ser­vices based on a closed pro­to­col, e.g. MSN, ICQ, AIM or Yahoo. The only way you will be able to con­tact me (besides con­ven­tional meth­ods such as phone and email) will be through my Jab­ber ID: salvatore.iovene at googlemail.com (replace “at” with “@”). This also works from GMail.

Rea­son

Pro­pri­etary IM sys­tems have a ter­ri­ble flaw: MSN users can’t chat with Yahoo users, AIM can’t chat with ICQ, and so on. So if I have friends who only use MSN and other friends who only use ICQ, I will have to use both to keep in touch with every­body. The rea­son for this is the cor­po­rate greed tak­ing advan­tage of the net­work effect. Wikipedia says:

The net­work effect is a char­ac­ter­is­tic that causes a good or ser­vice to have a value to a poten­tial cus­tomer depen­dent on the num­ber of cus­tomers already own­ing that good or using that service.

This also reflects the fact that cor­po­rates are valu­ing their own profit bet­ter than the final user’s sat­is­fac­tion. More­over, I don’t like the idea of using a closed pro­to­col. “Closed pro­to­col” means that the data (e.g. chat mes­sages) exchanged by two com­put­ers involved in a trans­ac­tion, is rep­re­sented with a secret for­mat, that the user is not allowed to study. Jab­ber, on the other hand, uses an open pro­to­col, based on XML. Every­body is allowed to study the pro­to­col, and write clients or servers that sup­port it. This allow col­lab­o­ra­tion and coöper­a­tion. Greedy cor­po­rates, instead, keep the pro­to­col secret in order to be the only ones able to write a client and a server for it, so they impose you the use of their clients (such MSN) which might be bloated with spy­ware and advertisements.

Since I’ve decided that I don’t want to sup­port this kind of behav­iour, I will unsub­scribe from the closed pro­to­col ser­vices that I use. You don’t have to do the same, but just get your­self a Jab­ber account in order to keep in touch with me, and, pre­ferrably, con­vince your friends to do the same.

What is Jabber?

When you hear some­one (prob­a­bly me) talk­ing about Jab­ber, they are usu­ally refer­ring to one of the following:

  • The XMPP (Jab­ber) Protocol
  • The Pub­lic Fed­er­ated Jab­ber Net­work (PFJN)
  • The Jab­ber Plat­form (which includes the pre­vi­ous items, as well as jab­ber chat clients, devices, trans­ports, etc.)

Jab­ber is, strictly speak­ing, the infor­mal name of an open-standard decen­tral­ized instant mes­sag­ing pro­to­col offi­cially called XMPP.

NOTE: It is also the name of a com­pany called Jab­ber Inc., which sells Jabber-based prod­ucts. How­ever, the Jab­ber plat­form is much larger than this sin­gle com­pany. Don’t let this con­fuse you! If you want to go to the author­i­ta­tive web­site about jab­ber, that would be jabber.org, not jabber.com!

The net­work of inde­pen­dent Jab­ber servers on the inter­net make up the Pub­lic Fed­er­ated Jab­ber Net­work. If you have an account on a server on the PFJN, then you can com­mu­ni­cate with any­one else who has an account on a PFJN server. This means that Google Talk users can com­mu­ni­cate seam­lessly with Gizmo-Project users (and vice-versa), as both of these ser­vices are on the Pub­lic Fed­er­ated Jab­ber Network.

How can I use Jabber?

To use Jab­ber you need a Jab­ber client and an account on a server. Here’s a list of pop­u­lar clients:

MS Win­dows

MacOS X

GNU/Linux

Then you will need an account. Most of the listed clients will allow you to cre­ate a Jab­ber account choos­ing from a list of servers, or, if you want, you can run your own server.

Google Talk

If you have a gMail account, then you have a jab­ber id via Google Talk! Your jab­ber id is the same as your email address. You can use either the native google talk client or any other jab­ber client.

Gizmo Project

Also, if you use the Gizmo Project, you too have a jab­ber account. Your jab­ber ID is login-name@chat.gizmoproject.com.

jabber.org

The Jab­ber Soft­ware Foun­da­tion is prob­a­bly the best known Jab­ber server out there. They just recently switched over to ejab­berd for their soft­ware, so they should be quite solid now.

3 responses so far

Fujitsu-Siemens shame on you

Oct 17 2007 Published by Salvatore Iovene under Software

I found myself in the process of real­iz­ing a dual-boot sys­tem on a lap­top, with Win­dows XP and Ubuntu 7.10. After wip­ing out the con­tent of the disk and par­ti­tion­ing it appro­pri­ately, I pro­ceed to the instal­la­tion of Win­dows XP (know­ing that I needed to install it first, since it would over­write the MBR and com­pletely dis­re­gard and dis­re­spect user’s free­dom), so I put in the so-called Recov­ery Disk pro­vided with that par­tic­u­larly Fujitsu-Siemens lap­top. After a lit­tle while, the Recov­ery Disk was propos­ing me to install Win­dows XP either using the full disk, or in two par­ti­tions, with a 10 GB “data” par­ti­tion. I was aston­ished and out­raged. It seems that the Fujitsu-Siemens peo­ple were think­ing that the user wasn’t smart enough to be able to choose what par­ti­tion use for his or her Win­dows install. They would rather limit the user’s free­dom, and not give him or her some choice. I sus­pect this was the result of some pres­sure from the Microsoft end: this “trick” basi­cally stops the user from installing other Oper­at­ing Sys­tems along Win­dows, unless he or she buys a new non-branded copy.

Fujitsu-Siemens and Microsoft: shame on you!

One response so far

Who wants to talk about patent infringement?

May 15 2007 Published by Salvatore Iovene under Software

After all the dust raised again by Microsoft about Linux and the Open Source com­mu­nity allegedly com­mit­ting patent infringe­ments (235 this time, they were 228 in 2004), I really feel the need to spend a few words about the mat­ter, or then, a few images.

It looks like the jeal­ous Redmond’s zealots, avidly fight­ing to pro­tect the unique­ness of their work (sar­casm intended), didn’t real­ize that they have been play­ing copy­cat for a long time, rein­vent­ing the wheel and doing a bad job at it. Do the fol­low­ing screen­shots tell you anything?

Search page

search.jpg

Search results

search2.jpg

Image search

images.jpg

News search

news.jpg

Maps search

maps.jpg

No responses yet

How to improve the quality of programmers

Mar 09 2007 Published by Salvatore Iovene under Software

After claim­ing that most pro­gram­mers just can’t pro­gram, and actu­ally address­ing most of the prob­lems to the lack of pas­sion of peo­ple who decide to start a career as a pro­gram­mer, I would also like to express my point of view on a tightly related sub­ject: what can be done to improve the sit­u­a­tion? The prob­lem that I was try­ing to bring up in the spot­lights, is that a lot of peo­ple just start (or wish to start) a career in the IT for no par­tic­u­lar rea­sons. Those are the ones who don’t love and don’t loathe pro­gram­ming, and they just see it as some­thing that pays their bills. Well, maybe the first ques­tion that I should address, actu­ally is: why is this bad? Sure there are so many jobs which don’t require pas­sion at all, and peo­ple just do them because a job is just a job, and don’t really care. In my opin­ion, being a pro­gram­mer is different.

There are many peo­ple, espe­cially the ones who sit high in the hier­ar­chy of a com­pany, who see pro­gram­mers as the last and least impor­tant step of a lad­der. They often think that pro­gram­ming is quite of an auto­mated and repet­i­tive task, and it could basi­cally be done by any­one, with just a lit­tle train­ing. Unsur­pris­ingly, this seems to be the opin­ion of most com­mon peo­ple, who ignore what pro­gram­ming really is. I wouldn’t want to dis­crim­i­nate among dif­fer­ent types of pro­gram­ming, or dif­fer­ent pro­gram­ming lan­guages, but it’s obvi­ous to me that pro­gram­ming, to some extent, actu­ally can become an auto­mated an repet­i­tive task. That’s quite the minor­ity of cases, though, so I will sim­ply ignore them, and focus on the rest.

As any­body who’s a pro­gram­mer knows, pro­gram­ming is a highly cre­ative task, that requires good imag­i­na­tion and great prob­lem solv­ing skills. Every­body else might just see it as “typ­ing stuff on a com­puter”, and believe me, there’s a whole lot of edu­cated peo­ple who think that pro­gram­ming is a mon­key mat­ter. Hence the term “code mon­key”. This term has his­tor­i­cally been abused a lot, by even pro­gram­mers them­selves. A “code mon­key” is said to per­form a pro­gram­ming task so easy that even a mon­key could do, as the image sug­gests. There are two truths about this phe­nom­e­non: first of all, luck­ily, pro­gram­ming requires far more skills than it’s usu­ally believed; sec­ondly, and sadly, the major­ity of peo­ple just ignore it.

The prob­lem with lousy pro­gram­mer is kind of sim­i­lar to a medal: it’s dou­ble faced. You could actu­ally call it a dog try­ing to bite its own tail: as pro­gram­ming is believed to be an eas­ier and eas­ier task, more pro­gram­mers are needed; as more and more pro­gram­mers are needed, more peo­ple will jump on the field; as more and more peo­ple try to become pro­gram­mers, the lousier the aver­age qual­ity of pro­gram­mers gets. Unfor­tu­nately, what aver­age non-programming peo­ple miss to under­stand is that although it doesn’t really take a hard train­ing to become a lousy pro­gram­mer, it takes a damn hard one to excel in the art of pro­gram­ming. More­over, most peo­ple just lack the innate logic mech­a­nisms that make you a poten­tial pro­gram­mers. Such mech­a­nisms are devel­oped in your mind when you’re very young, and it’s quite rare to develop them after your twenty-somethings. With this, though, I’m not deny­ing that there are a lot of peo­ple who actu­ally do develop those mech­a­nisms in advanced age. I’m just try­ing to think of the big num­bers, here.

So, get­ting to the point, what went wrong and how can it be fixed? I don’t think it would be wise to say that what’s wrong is that there’s too much need of pro­gram­mers, ergo the aver­age qual­ity was inevitably doomed to lower and lower over the time. I rather think that the prob­lem is with edu­ca­tion. Of course I can’t speak for all the uni­ver­si­ties and col­leges in the world, but I can at least try and speak for the one I’ve known per­son­ally, or through peo­ple who have stud­ied there. It seems that, as more and more peo­ple apply to Com­puter Sci­ence or related depart­ments, the eas­ier it gets to get in (sorry for the pun), and to get through with it, i.e. to graduate.

I know this hap­pens most likely in any other fac­ul­ties, but see­ing that there are peo­ple who have been study­ing CS for three or more years, and still can’t get through the most sim­ple con­cepts, just doesn’t seem right to me. Yes­ter­day night, I was sit­ting in an IRC chan­nel about the C pro­gram­ming lan­guage, when some­body joined in and asked:

“I just started study­ing struc­tures in C, and I don’t get them. Can any­one explain to me what’s the use for them?”

Ok, I don’t really think there’s any­thing wrong in not get­ting the point of C struc­tures right away, but after a lit­tle chat­ting, it turned out that the guy was in his sec­ond year of Com­puter Sci­ence, and this was the sec­ond time he took the C class. Still that wouldn’t be a rea­son of hatred, of course (not that I have any hatred), but after another small while it turned out that the guy didn’t like pro­gram­ming at all, but he just got him­self into it because he applied to CS since he liked to “fid­dle around with com­put­ers”.

What’s really needed, in my opin­ion, is a harder and less tol­er­ant edu­ca­tional sys­tem, that would be more selec­tive, rather than push­ing every­one for­ward. Peo­ple that find out to be really not made for it, should just give up and move their focus on some­thing less.

I’m actu­ally very well aware that a lot of pro­gram­ming work, nowa­days, is not really rocket sci­ence, still this doesn’t mean that it should be done by com­pletely unqual­i­fied peo­ple. If what Jeff Atwood says in his post about pro­gram­mers who can’t pro­gram is true, and that is that 199 out of 200 appli­cants (not pro­gram­mers, appli­cants) can’t write any code what­so­ever, than it obvi­ously means that some­thing is wrong. Look­ing at the num­bers pro­vided by Joel Spol­sky, it looks like a lot of these basi­cally incom­pe­tent peo­ple are going to end up work­ing on an actual pro­gram­ming job, and maybe their code will end up on The Daily WTF (Paula, are you there?).

Unfor­tu­nately, the edu­ca­tion is not the only one to blame. No mat­ter how much edu­ca­tion will improve, there will always be unqual­i­fied peo­ple who are going to apply for jobs that require a lot of skills, and in the end the odds will help them, so they’ll man­age to get a job as a pro­gram­mer. Is it so bad, con­sid­er­ing that it’s most likely not going to be any crit­i­cal posi­tion, and the only ones that will be dam­aged will be the own­ers of the com­pany that hired them? Well, the point is that this is not true. There’s some­one else who gets dam­aged, in this sce­nario. I’m talk­ing about the com­mu­nity out there, the good pro­gram­mers, who find them­selves com­pet­ing with new­bies who’re happy to earn peanuts. The salaries keep going down, and cus­tomers are not able to dis­tin­guish a good job from a good one.

In a com­ment on the pre­vi­ous post of mine about this sub­ject, Hoowie Good­ell really gets a great point with this paragraph:

“There has been a great effort to indus­tri­al­ize pro­gram­ming, too. Again, there are many good fea­tures, and it’s a field I’m inter­ested in. Build­ing a large pro­gram requires a struc­tured approach. Lan­guage design, libraries, pro­gram­ming frame­works and IDEs can and should incor­po­rate as much exist­ing human knowl­edge as pos­si­ble: com­puter sci­ence, domain knowl­edge, solid pre-written code and human inter­face prin­ci­ples. (Check out Thomas Greene’s “Cog­ni­tive Dimen­sions of Nota­tions” for some of the lat­ter: I think of how pro­gram­ming tools fail to use them on a daily basis!)”

In a way, this sug­gests that the whole sys­tem is not ready yet, as it’s indeed years and years behind sev­eral other engi­neer­ing fields, and that’s a good rea­son, prob­a­bly, to explain why it’s so easy to fail at being a good pro­gram­mer. Let’s just try to get some insight­ful inspec­tion points, in order to build bet­ter gen­er­a­tion of programmers:

  1. Bet­ter edu­ca­tion.
    The whole higher edu­ca­tional sys­tem should be improved in sev­eral way. World­wide. Nowa­days, it looks to me that in many coun­tries grad­u­a­tion is just a direct con­se­quence of apply­ing to an Uni­ver­sity. Unfor­tu­nately, this kind of prob­lem must be addressed on a country-basis, to prop­erly iden­tify the spe­cific issues, but still the options that I would like to con­sider are worth men­tion­ing. It all comes down to a sin­gle point: there should be less tol­er­ance towards peo­ple that don’t learn. The thresh­olds for suc­ceed­ing in a course should be raised to greater dif­fi­culty. Cur­rent mod­els of test­ing should be seri­ously revised, so to ensure that stu­dents that really didn’t under­stand the sub­ject are not going to make it.
  2. Bet­ter tools.
    Are we try­ing to make pro­gram­ming just like a fac­tory chain or are we not? If we are, as it seems nowa­days, then the tools are not ready yet to sec­ond our inten­tions. Pro­gram­ming is too error prone and too time-consuming.
  3. Bet­ter process.
    Soft­ware process that doesn’t con­form to some stan­dards, say ISO-9000 (sorry if it’s inap­pro­pri­ate, I’m not an expert on this kind of stan­dards), shouldn’t be allowed to sell. Qual­ity insur­ance com­mit­tees should be taken more seri­ously as being part of the process. This might be against all prin­ci­ples of lib­er­al­ism, I know, as bad soft­ware, you may say, will not sell any­way. I know many bad soft­ware that did sell well, for greatly dif­fer­ent rea­sons than its (non) good quality.
  4. Bet­ter judg­ment when hir­ing.
    I’m not going to try to teach you how to run your com­pany, nor how to hire your crew. But some­times really crazy thing hap­pen (again, is Paula around?). A very inter­est­ing post by Joel Spol­sky (I’m sorry, I can’t find it any­more: does any­body know the link?) talks about only hir­ing “A”-people, where “A” means top class. If you’re ever hir­ing a “B”-person, he’s quite likely to hire a “C”-person, some­day. After that, it’s chaos. I rec­om­mend any­one not to lower their canons of per­fec­tions. Here’s another great arti­cle by Joel, about hir­ing good devel­op­ers, I rec­om­mend it.

Con­clud­ing, improv­ing the qual­ity of pro­gram­mers seems really to be a tough issue, and the whole thing depends on so many fac­tors that track­ing a pre­cise prob­lem is impos­si­ble. Cul­tural and tech­ni­cal dif­fi­cul­ties arise all the time, and get­ting clues is hard. I’ve tried to get around the prob­lem and give some insight­ful opin­ions: what do you peo­ple think?

11 responses so far

Why most programmers are lousy

Mar 08 2007 Published by Salvatore Iovene under Software

I’ve been in the IT field long enough to get to know many pro­gram­mers, both expe­ri­enced and just wanna­bies. Dur­ing this time, I’ve real­ized that most of them are just bad pro­gram­mers, sim­ply said. I find myself agree­ing with a bril­liant post by Jeff Atwood, which alleges that pro­gram­mers can’t pro­gram. What are the rea­sons for this? Many. Prob­a­bly, IMHO, the main fault has to be addressed to the lousy edu­ca­tion that peo­ple receive. But then again, the abil­ity of giv­ing edu­ca­tion remains directly pro­por­tional to the abil­ity of get­ting it, and where I see peo­ple com­plain­ing about low qual­ity of edu­ca­tion in Uni­ver­sity, I also see stu­dents with no inter­est in learn­ing. Let’s see some of the rea­sons why pro­gram­mers can’t really program.

  1. Young peo­ple study Com­puter Sci­ence just because it’s a trend. It sounds almost unbe­liev­able to me, but I must admit it’s mostly true. The vast major­ity of my old Uni­ver­sity mates just applied to the Com­puter Sci­ence depart­ment because… well: every­body was doing so. They fol­lowed the rest of the sheep.
  2. Young peo­ple study Com­puter Sci­ence because they wouldn’t know what else to do. That’s really another strong source of appli­ca­tions to Com­puter Sci­ence. A lot of young peo­ple in their teenage years just don’t know what they want to do as grownups. Com­puter Sci­ence still seems to be a good career oppor­tu­nity, so they just go for it.
  3. Young peo­ple study Com­puter Sci­ence because they think it’s a sure way of get­ting a job. 10-something years ago there was a big boom, and if you just knew some HTML, were thought to be a com­puter guru. These types of belief mark a deep foot­print on pop­u­lar say­ings, hence the wave of peo­ple apply­ing to Com­puter Sci­ence just because they can work, is still there.
  4. Many of today’s pro­gram­mers, were doing noth­ing else than surf­ing the net or using Word till last year. Espe­cially in small and ver­ti­cal based mar­kets, impro­vi­sa­tion just rules. Peo­ple learn some­thing, and lit­er­ally throw them­selves on the field. Draw­backs for qual­ity of their work are sim­ply inevitable. This is not only a group of illit­er­ate peo­ple that just jumped in to catch the big wave (what big wave, nowa­days?), but peo­ple with no pas­sion what­so­ever. In other words, I don’t think it’s pos­si­ble, nowa­days, to become a great pro­gram­mer if you didn’t start get­ting some inter­est in the field when you were very young, say about 10 years old (with the due excep­tions, of course).
  5. Many of today’s Com­puter Sci­ence stu­dents have no inter­est what­so­ever in what they’re force­fully study­ing. Just put together the pre­vi­ous items in this list and what do you get? A bunch of peo­ple who just don’t care, who want to get their piece of paper (the degree) as soon as pos­si­ble, and have absolutely no pas­sion in what they learn. That’s the worst. I strongly believe that pro­gram­ming is not just a job like many oth­ers, but you need pas­sion to get best at it.
  6. A lot of pro­gram­mers just don’t like to pro­gram. This goes for 100% of my ex Uni­ver­sity mates! Think of that: 100%. Of course it’s not the whole world but it makes a small statistics.
  7. A lot of pro­gram­mers just don’t get it. Not even the easy things. I was asked, few weeks ago, by a friend of mine who’s been study­ing Com­puter Sci­ence for now 4 years, what the dif­fer­ence is between a private and protected method in Java. Appar­ently read­ing the books isn’t enough any­more, nowa­days. Another guy asked me: “I’ve stud­ied point­ers in C, and I think I under­stood them. Still I can’t find any use for them… are they really used at all?”.
  8. Basi­cally all of the pro­gram­mers, or wannabe pro­gram­mers, men­tioned above, are miles away from the tech­ni­cal com­mu­nity. These peo­ple will totally ignore the exis­tence of:

    Slash­dot and sim­i­lar
    RSS
    Usenet
    IRC (“Is that like MSN?”)
    SVN and similar

As you can see, a really strong point, in my opin­ion, is the lack of care and pas­sion for the sub­ject of pro­gram­ming itself. Lousy pro­gram­mers are bound to pro­gram to take a wage home; good ones are bound to pro­gram for the sake of pro­gram­ming itself. Or course you can do that but still miss to be a good pro­gram­mer, but all falls down to numbers.

86 responses so far

Please stop talking about iPhone clones

Feb 13 2007 Published by Salvatore Iovene under Software

I can read, basi­cally every other day, some web­site going nuts about some iPhone clone. Just few min­utes ago I read about the nVidia GoForce 6100, and googling for “iPhone clone” really con­firms the fuss. Well, the truth is that the iPhone actu­ally is the one com­ing late, pos­si­bly the cloner, rather than the cloned.

I’m not work­ing at Apple Inc., but, being a soft­ware devel­oper and hap­pen­ing to have also worked for a while in the devel­op­ment process of a high tech device, I know, as many oth­ers, that the process that leads to the birth of a com­pli­cated gad­get like the iPhone, takes years.

Digg.com has gone com­pletely crazy about the sub­ject. A Google Search about that sub­ject on Digg, returns 5520 results.

Given that Apple Inc. will release the iPhone only next Fall, and that there are many devices already out there, which have been yelled at as mere “clones” (absolutely dis­re­spect­fully, IMHO), how can you peo­ple abuse the term so much? I’m assum­ing that noth­ing really seri­ous leaked from Apple, so the com­peti­tors didn’t just rush to make their own touch screen phones. The truth is that the tech­nol­ogy started to be ready, and the mar­ket started to be ready too, at the same time. Some peo­ple missed the oppor­tu­nity and couldn’t even accept it, some other real­ized the chance and went for it.

I hope that the abuse of the word “clone” will cease to exist, and that, from now on, every­body will just talk about “another touch screen phone”.

Here’s a photo-list of alleged “iPhone clones” so far.

Samsung’s Ultra Smart F700 Asus Aura
Samsung's Ultra Smart F700 Asus Aura
Meizu M8 LG KE850
Meizu M8 LG KE850

No responses yet

Please drop SVN

Feb 08 2007 Published by Salvatore Iovene under Software

SVN might be sta­ble, it might be mature, it might be suc­cess­ful, and it might be the win­ning source con­trol sys­tem of the moment. There’s always a big risk of result­ing unpop­u­lar, when crit­i­ciz­ing some­thing that actu­ally did find its way to suc­cess, but I have to say that SVN sounds ter­ri­bly antique sometimes.

I have already given a brief intro­duc­tion to the Darcs source con­trol sys­tem, and I would like here to talk about a very strong point it’s got against SVN.

Just yes­ter­day, at work, I needed to com­mit cer­tain mod­i­fi­ca­tion to SVN. As I exam­ined the diff of my local copy with:

svn diff

I real­ized that one of the file also con­tained some other mod­i­fi­ca­tions that I didn’t want to com­mit. After using Darcs for sev­eral months, I was sud­denly hit by the shock­ing truth: SVN doesn’t allow inter­ac­tive and par­tial patches, which Darcs names hunks.

What do you do in that case? Pro­vided that there are peo­ple who actu­ally abuse the Save as… func­tion of their edi­tor by sav­ing mul­ti­ple copies of the same file accord­ing to the log­i­cal patch they con­tain (which I find absolutely hor­ri­ble), the quick­est way I could find was to:

  1. Mak­ing a diff: svn diff > logical_patch_1.diff
  2. Edit the diff man­u­ally, until I had two files, which rep­re­sented the two log­i­cal diffs
  3. Revert the pris­tine: svn -R revert .
  4. Apply the first diff: patch -p0 < logical_patch_1.diff
  5. Com­mit: svn commit
  6. Apply the sec­ond diff: patch -p0 < logical_patch_2.diff
  7. Com­mit: svn commit

With Darcs, all you have to do is issue the darcs record com­mand (which records your changes):

  1. Record: darcs record -m "First logical patch (fixes bug 1234)"
  2. Answer “yes” to the first hunk, and “no” to the second.
  3. Record again: darcs record -m "Second logical patch (fixes bug 5555)"
  4. Answer “yes” to the only hunk

Can you see the dif­fer­ence? It’s not just about the num­ber of oper­a­tions needed, but the qual­ity of them, and the fact that Darcs is per­fectly ori­ented to this kind of flex­i­bil­ity. Please con­sider switch­ing to Darcs for your projects and work, as it’s a mature and bet­ter system.

19 responses so far

Next »