Showing posts with label ios. Show all posts
Showing posts with label ios. Show all posts

Friday, 24 September 2021

App Review: Clubhouse

Remember the days of IRC, where you could meet people all over the world and communicate with them via text chat? Well, the world just got a whole lot cooler.


Clubhouse is a Social Media audio app - basically the voice-based version of IRC. You create or join rooms full of other users, hearing their voices as they speak. How awesome is that?!

Clubhouse is available on both iOS and Android, and the features may vary on each platform. Today, I will only be covering the features on Android.

The Premise

In Clubhouse, users congregate in rooms - open, closed or Social. These could be standalone or under a club. There, they speak to each other, Follow accounts the same way one might in other Social Media like  Instagram or Twitter, and generally communicate. The functions are simple.


As a user, you can join and leave rooms, create them (in which case you become a Moderator of that room), and do the same for clubs. You can schedule rooms and add other users as co-hosts. Users can send text messages to other users, or groups of users.


As a Moderator, you can bring people on stage, send people off the stage or even out of the room, mute people on stage and end the current room.


The Aesthetics

Cream, white, green and a dash of orange. These are the basic colors used by Clubhouse's user interface. It's not pretty, but it is clean and that is arguably more important.




The Experience

Audio Social Media as a whole, can be pretty addictive. The app? It'll last you a while, for sure.

The Interface

The icons are generally intuitive and the screen elements such as buttons and selectors, don't require a great deal of cognitive load to identify and use. In other words, the interface is simple enough to navigate even if one adds on Moderator functions.

What I liked

App logo. The phone app icon changes every now and then, incorporating the faces of some well-known personalities. I like it!


The Backchannel feature is a very simple messaging component for you to send messages to other users. You can include links and emojis, but not pics or videos... so far. Good thing too, or it'd be dick pic city. Being able to archive threads is a nice touch as well.


Clubhouse relies a lot on standard emojis for illustration and this is probably deliberate - while not exactly sleek-looking, the familiarity users have with emojis will play into how easily they learn to use the app.


The creators of this app have kept the interface relatively simple, and that is invaluable. An app being easy to use is one of the contributing factors towards user retention.

Frequent updates. The creators of this app take feedback seriously and keep making improvements. By the time I release this blogpost, I wouldn't be surprised if some of the things I don't like about it (see below) have been addressed.

What I didn't

The Block feature is cumbersome and complicated, and quite frankly, open to abuse. Currently, if you are on Stage in any room, that room is invisible to those you have Blocked. And if the Blocked user is in a room, that room is hidden from you unless you scroll allll the way to the bottom of your Hallway and click on the Show Hidden Rooms button. This is clumsy AF.


Adding clubs. The plus buttons to add clubs only appears at the end of the list of clubs you are a member of, in your profile. If you have membership in many clubs, that's a lot of scrolling to do. Besides, it would be nice to have all your clubs listed in a section without all that horizontal scrolling.



Button placement can be problematic in some places. For example, it's way too easy to accidentally open a Private room with other users even when your intention was to scroll through the list of current active users or reply to a message.



In addition, as a Moderator, it's easy to accidentally kick someone off-stage if you're trying to do something as innocuous as reading their profile. It's also easy to accidentally give Moderator status to a troublemaker on stage when you're trying to kick him or her off-stage. The former is a mere annoyance, but the latter is a disaster waiting to happen, and it's all due to the placement of the buttons, all right next to each other.

Co-hosting a room is another potential minefield. When scheduling a room, the user can add anyone as a co-host... without his or her explicit permission. The co-host may be offline and not even aware of it. Now, what if the title of the room was something contentious, like "Black Lives Don't Matter" or "Women belong in the kitchen"?


Speaking of scheduling rooms, it's all well and good when you only want to schedule a one-off room. But what if you want to schedule a daily or even weekly room? Going through the process every single time is a pain in the ass.

It would be nice if we could change the titles of the rooms we open, without having to shut down and restart the room. Sometimes, typos happen. Conversation topics change.

Notifications and pinging can be a pain in the ass, especially if you're the one getting the pings or the notifications.



Conclusion

There's a lot to like about Clubhouse. There's also quite a lot not to like about Clubhouse. Certainly plenty of room for improvement, but the good news is that most of it is fixable by designing the interface carefully.

The idea behind Clubhouse is certainly innovative, but it's by no means the only one of its kind right now. Already, knockoffs of this app are saturating the market. Whether or not Clubhouse can stay afloat in a world full of copycats, remains to be seen.

My Rating

6.5 / 10

Leaving quietly and landing my plane,
T___T

Wednesday, 6 January 2021

Uproars over user data privacy

This blogpost was meant as a commentary on what has transpired lately between tech giants Facebook and Google, but in light of recent events, has been somewhat expanded.

If you haven't heard about the latest spat between Apple and Facebook by now, you're probably living under a rock somewhere, or this stuff just doesn't interest you very much. Honestly, I wouldn't blame you either. These two have a love-hate relationship that goes way back when.

The most recent one started when Apple announced Privacy Policy changes with their new operating system, iOS 14. This would compel developers who wish to make iOS apps, to inform the app's users as to how their data is being tracked, and seek these users' explicit permission to do so. A year before that, Apple's CEO Tim Cook appeared to take a shot at Facebook in this column.
Consumers shouldn't have to tolerate another year of companies irresponsibly amassing huge user profiles, data breaches that seem out of control and the vanishing ability to control our own digital lives.

Shots fired.


Facebook responded by putting up full-page ads criticizing Apple's latest initiative, and claiming that those changes would hurt small businesses.

And then it was on.

The back-and-forth has only grown over the course of the past week, though from personal observation, public opinion seems decidedly tilted in Apple's favor. Still, the two sides of the argument are not without their respective merits and I beg your indulgence as I examine them here.

Apple's side

Apple's stated position is fairly straightforward, as it were - users should be informed as to how they are being tracked, and they should have a choice.

The slightly less straightforward part is that currently, users that are being tracked are invariably using some free service somewhere, and this is bad for Apple's subscription-based business model. So does this mean that Apple aren't genuinely concerned abut user privacy? I think a more useful question here would be - do users actually stand to gain if Apple gets their way?

Facebook's side

Facebook argues that being able to track user data, and thus, provide targeted ads, is a great source of revenue and helps keeps services and content free. Granted, giving users a choice invariably means that many of them aren't going to make choices that would please Facebook.

They are also arguing that small businesses (many of which apparently also depend on Facebook) would suffer if users were able to disallow tracking, though I really don't know anybody who actually buys that Facebook is really that concerned about small businesses. Even some of their own employees think that this is corporate bullshit.

My side

What do I think about all this? For starters, regardless of Apple's true intentions, I see no harm (to users anyway) in giving users a choice. Knowledge is power, after all. Apple isn't disallowing tracking on iOS - but ensuring that users know about it and can choose whether or not to let it happen. That's all right in my book.

On the other hand, I don't actually have a problem with allowing the likes of Facebook and Google to track me... and if I do have a problem, I can always choose not to use their services. Say what you like about Google and Facebook, but their services, even the free ones, are quality. They provide me many conveniences in life such as email, maps, site analytics and Social Media. But nothing in life is actually free, and certainly nothing stays free forever. I accept that if I want to continue using their products without paying a cent for them, I am going to have to give something back. And in this case, it means my data - browsing history, geographical locations, online purchases, and so on. Do I like it? No, I certainly don't. But I can live with that tradeoff.

Mark Zuckerberg, CEO of Facebook, has this motto: Move fast and break things. Well, it looks like Zuckerberg is going to have to do some of that fast-moving if Apple gets its way. Or perhaps the problem is precisely that Facebook moved too fast in capitalizing on targeted data as a main source of revenue, and now it's too late to course-correct. After all, it's been years and certain things are entrenched.

How much do you value your privacy, then? I'm sure plenty of people would choose not to be tracked, and that's fair. Would they be open to having to actually pay for the services they use? Because we can't have it both ways. We've all had it good up to now, but change is inevitable.

In other news...

Yesterday, Singapore had her own little furore when it was revealed during a Parliamentary Session that the TraceTogether tokens that I wrote about last June, could indeed be used to trace people. Apparently, the Criminal Procedure Code gives the Singapore Police Force blanket permission to do so. This was at odds with the statement Minister of Foreign Affairs Vivian Balakrishnan had made back then, that the data from TraceTogether would only be "purely for contact tracing. Period.".

Amid the cries of righteous fury from the unwashed masses, I'm willing to give Balakrishnan the benefit of the doubt when he says that he forgot about that provision. The man's a doctor by trade, not a lawyer. And there were more pressing concerns at the time... such as a global pandemic. Cynically, he could have, of course, decided to omit that little detail deliberately. And knowing what drama queens some of my fellow Singaporeans are, I find it hard to blame him.

But blame him, I shall.

Man, did it ever occur to him that this would come back to bite him in the ass later? No one of reasonably sound mind is arguing that terrorists and criminals should be exempt from having the data in their TraceTogether tokens tracked (though, if you are, feel free to take the next shuttle to Mars - I don't think you and I belong on the same planet), and yes, it's common sense that the police should have the power to use every means available to them to track down criminal activity. But why, in that case, make such an easily disprovable statement at all? So silly.
This can be used to track you.

However, my position regarding this apparent breach of data privacy remains similar to my stance towards Facebook and Google tracking my data; mainly, I don't give a shit. Sure, I value my privacy. I just happen to value my civic duty a little more.

And to all those lovely folks raising a ruckus over this, here's some food for thought.

Just because the police can use that data against you, it doesn't follow that they will. What possible reason would they have to do so? Your phones are connected to the internet. You probably drive a car that has a GPS installed. There's CCTV all over the island. And you're worried about this token? Are you for real?

This would be like if I had a loaded gun in one hand, and a Swiss Army knife in the other, both of which could be used to kill you... and you obsessed over that stupid knife.

Get a grip, children!
Not-so-privately,
T___T

Thursday, 25 June 2020

Making the contact tracing effort mandatory

Singapore is still in the middle of the COVID-19 battle; indeed, so is the rest of the world no matter what New Zealand claims. All due respect to NZ, but as long as an effective vaccine has not been created, the war is not over and all celebration is premature.

To that end, Singapore is intending to distribute the wearable TraceTogether token, which functions pretty much like the app of the same name. The app, along with the SafeEntry app (which is basically an online form called by scanning a QR code - rudimentary but effective) were rolled out the past few months as aids to help the contact tracing effort. However, they have not been altogether adequate.

The TraceTogether app

This app uses the Bluetooth feature on mobile phones, tracking all similarly enabled mobile phones within a radius. Therefore, in theory, one should be able to trace whomever an infected user was in close contact with.

Using TraceTogether.

Unfortunately, this does not work so well on iOS devices, and even on Android devices. It also has the annoying side-effect of hogging the Bluetooth signal. As long as this app is on, your mobile can't use Bluetooth for anything else.

Also, the older population may not be tech-savvy enough to actually know how to use a mobile phone, much less install an app.

The SafeEntry app

This solution is deployed at the entrances of all buildings, and every shop within a mall. Upon entry, the user is supposed to scan the QR code, go to the page and click the "Check-in" button after entering details such as NRIC and mobile number. Upon exit, the user should click the "check-out" button.

SafeEntry is useless in the open.

Not only is this troublesome AF, it's all too easy to forget to "check-out". And one can even more easily lose track of all the places checked in at. Just try going to any building from the underpass at Orchard MRT.

In addition, this method is deployed only at entrances of businesses. Meaning, it doesn't do jackshit to help trace people who might have contracted COVID-19 out in the open.

What the TraceTogether token solves

Basically, anything that involves considerable conscious effort on the part of the user, is suspect. People are human; they get lazy and slipshod. Wearing the token ensures that tracking will be done everywhere, without the need to install apps or click buttons.

Along with that, the Singapore Government might be about to make the wearing of this token mandatory; that is, if you are found not to have that token on your person, you will be fined and/or jailed. This has predictably raised a ruckus, with people signing some lame petition against it, just about guaranteeing that the law will be passed.

People are concerned, despite pretty much handing their data over to Facebook and Google every time they use their mobile phones (or even when they don't), that the Government will abuse this privilege to track their every movement. They're concerned for their freedom and privacy. They'd rather let the likes of Mark Zuckerberg and Sundar Pichai take their data for profit, but not their own Government who are trying to save their lives. Some have even suggested that the Government is using this outbreak as an excuse to implement a surveillance state.

Are you guys for real?!
Oh FFS, children. Grow up!

The token doesn't check your location. It checks who was in close contact with you. That's a whole different kettle of fish. I've found that most of the people raising a fuss aren't technically inclined... the techies I know aren't concerned in the least. Because we actually know shit, and we know this doesn't do what you think it does!

And even if it does track your every movement...

Maybe I haven't made myself perfectly clear the last few times I wrote about this, but fuck your precious privacy. Lives are at stake. In case you've been living under a rock and don't know what we're dealing with here, COVID-19 is a very infectious disease which can lead to death. The fact that only twenty-plus people have died out of a possible forty thousand infected in Singapore so far, is no reason to be complacent.

COVID-19, on its own, is not that deadly a disease. However, it is extremely contagious and Singaporeans behaving like utter retards at every opportunity makes this disease even more dangerous than it already is. We're stupid and ill-disciplined, and will willingly disregard self-preservation and the safety of others for instant gratification. That's what the past few months of observation have shown me.

If the TraceTogether token is not made mandatory, that means much faith has to be placed in the hands of Singaporeans to do the right thing for the greater good... and I'm not at all sure we're deserving of that amount of faith.

Oh, the COVIDity!
T___T

Saturday, 21 March 2020

Contact Tracing With TraceTogether

As the pandemic that is COVID-19 rages on unchecked throughout Europe, Singapore's approach to battling this outbreak has won international praise. To be sure, it hasn't all been smooth sailing. Singaporeans tend to fall into two extreme categories - those who sow distrust in the Government, adopting an every-man-for-himself approach and obstinately refusing to cooperate; and those who complacently think that the Government will handle this without them needing to lift a finger to do their part. Both are equally toxic to a situation like this, and potential poster boys for Darwin's Theory of Natural Selection.

But back to the topic. Singapore's approach has been to aggressively track down people whom infectees have been in contact with, so as to identify other possible infectees and potentially prevent more avenues of infection. It's worked - to a point. While the numbers of infected people have been increasing, without these efforts, one shudders to imagine how much worse it could have been by now.


And now, with the aid of mobile technology, Singaporeans have the opportunity (one might even say, a duty) to help.

GovTech, in conjunction with other Government statutory boards, has released a mobile app named TraceTogether. Once installed and the appropriate permissions granted, TraceTogether runs in the background and via Bluetooth, keeps records of other cellphones in the vicinity running the same app. Should any one of the owners of these phones be diagnosed with COVID-19, the Government is able to locate all those people who were in close proximity to the infectee.

This is a concept eerily similar to the plot devices of many modern movies. And it's awesome.

Of course, it would be unethical if the Singapore Government surveilled you in such a way without your express permission; thus the app takes pains to acquire it during the setup.





And even after setup, the app does not automatically upload the collected data to the Government. No, you have to explicitly do it yourself.


The setup is pretty easy, though not without some annoyances here and there. Friends inform me that the app doesn't run in the background on iOS products. The app sends an OTP but then immediately auto-approves the OTP without the user specifically keying it in, leading to some confusion. The app doesn't seem to sale very well, flashing a server overload when more than a certain number of people started signing up. The text and buttons aren't well-spaced in spots. Things like that.

But it would be grossly unfair to quibble over all that. TraceTogether is obviously a Minimum Viable Product that was hastily hammered out over the course of a couple sprints, and as such, there are sure to be a few rough edges. The concept is terrific and has the potential to greatly ease the task of contact tracing. That's all that matters at the moment.

Stuff like this is why I was interested in joining GovTech before. Projects that matter. Projects that make a difference. The dev team at GovTech sure lives in exciting times!

Final Note

Please install the app, and encourage others to do likewise. It could make all the difference.

Without a trace of irony,
T___T

Wednesday, 22 May 2019

Tough Times Ahead For Huawei?

Everyone's talking about it - everyone with a mobile phone and access to the Internet, that is.

A couple days ago, Google stunned the world by announcing that it was blocking Huawei's access to Google Play and Android updates. This was in response to the USA sanctions imposed on China trade as part of the US-China Trade War. Huawei's problems were compounded when suppliers such as Infineon Technologies and Qualcomm announced a halt to shipments to Huawei until they could figure out if said business arrangements were in violation of US Trade Law.

Is Huawei in trouble?


Is Huawei in trouble? The China tech company certainly appears to be in dire straits. After all, without suppliers, how do parts for devices get assembled? Without access to user technology such as apps, how will users use Huawei phones at all?

It would be premature to write Huawei off at this point in time. If it were any other company in any other country, maybe. But this is China, and China has its own ecosystem of apps, and more importantly, a large enough domestic market to support it. In fact, it's this very market that companies such as Facebook and Google wanted to tap back then, but failed.

Sure, Huawei phones won't be able to use Gmail. But the Chinese use QQ. True, no Google search. But the Chinese use Baidu. Getting the idea yet, or am I going to have to trot out the hundred and one alternatives for the apps that the Chinese are not going to miss? This situation really affects non-Chinese Huawei users the most... and all I can say is, tough titty, folks.

The USA may just have miscalculated, though. With a strong domestic market and their own technology, there is a distinct possibility that Huawei being forced to get creative could result in them digging deep and emerging from this with stronger, superior tech. Undoubtedly, it'll take time. But again, this is China. They've been around like, forever. They've got nothing but time.

Unfair practices?

People are going on and on about unfair practices on the part of the USA, and others are retaliating with retorts that China started it by banning Google and Facebook a while back.

First of all, China did not ban Google. Not deliberately, anyway. By default, all external parties are banned unless they adhere to China's policy of censorship. Not that I like censorship, but China's been completely consistent here. Comply, or fuck off. Google opted for the latter, because those restrictions went against the freedom of information it stands for. One could, of course, make a case for China eliminating competition for search engines and Social Media such as Baidu and Weibo, but on the surface at least, China's position is pretty legitimate.

Secondly, it's a Trade War, children. There's nothing fair or unfair about it. It is what it is.

Are you Team China or Team USA?

Personally, I couldn't give a monkey's left nut. Why do I have to choose a side? I'm a consumer. I'm on the consumer's side. And if this results in Huawei blossoming in its independence and churning out a new generation of devices that will break the Android and iOS stranglehold on global markets today, all the better. Tech wins.

As to who wins this Trade War, your guess is as good as mine. I think China and USA severely underestimate each other.

China has weathered many a storm over millennia, and this latest thing is merely a blip in a long history full of violence and turmoil. It's really difficult to see the Chinese breaking a sweat over this. They may seem arbitrary and inflexible, but damn if they don't know how to take a beating.

The USA may seem complacent and smug, but remember you're dealing with the spirit that manufactured the nuclear bomb, and even used a couple to end World War Two.

Looks like it's their wei or the highwei! (hur hur)
T___T

Sunday, 10 February 2019

How Apple came to pull the plug on Facebook and Google

Prickling privacy pirates!

There's a story that broke about last couple weeks, when Apple caused a certain amount of chaos in Facebook and Google offices.

Apple lays the smackdown.

How this came about

Apple has this policy that no apps hosted on their App Store will infringe on user privacy in any way. Facebook was running apps that, with the permission of their users, tracked their personal data to the tune of up to 20 USD per month. So was Google. Ever wonder how is it Google seems to always know exactly where you are? There's your answer.

To get around Apple's policy, Facebook ran those tracking apps through their membership in Apple's Developer Enterprise Program. For those who don't know what that is, that's a platform which allows subscribed corporations to bypass Apple's App Store when deploying apps that are meant for internal use. Like Facebook's lunch ordering app or campus bus booking app, for example.

Facebook, as mentioned earlier, was paying users for their data, but as Apple had a data privacy policy on their App Store, elected to run those apps on the Developer Enterprise Program instead, passing the users off as their own staff. Google did much the same thing. Essentially they were in violation of the policy and hoping to bypass scrutiny.

And when Apple found out, there was hell to pay.

Well, OK, not exactly. What Apple did was to pull the plug on Facebook's membership. They did the same thing to Google a day later. The main point was to invalidate the certificates to Apple's business software, which meant that the tracking apps for both Facebook and Google were no longer able to work. However, since Facebook's legitimate internal apps were also distributed via this license, this left Facebook employees scrambling as their access to internal apps was summarily cut off from their iOS phones and Macs.

Did Apple do the right thing?

There's no argument about it - they did. Look, I'm an Android user and not at all an Apple fanboy, but let's give credit where it's due.

Facebook and Google broke clearly defined rules, and even attempted to sneakily bypass those rules in Apple's own house. Purely from a selfish point of view, Apple couldn't let that stand. From an ethical point of view, even if Facebook had technically broken no rules, there are exceedingly few iPhone users (who aren't also Facebook employees) who would take Facebook's side where data privacy was concerned. Hell, there are very few smartphone users who would trust Facebook where their data privacy is concerned, period! (I personally don't give a monkey's left nut. I'm of the opinion that if something comes free, like Facebook, there's always a catch. That said, I don't use Facebook much anymore so...)

This isn't even similar to the Patreon case, where users were arbitrarily de-platformed. In this case, Apple had more than ample cause for action, and past precedent to back it up. It's telling that Facebook and Google did not argue the decision but instead issued public apologies.

Did Apple do it for the right reasons?

Now, this one's mighty contentious. While Apple said they did this to "protect user privacy", I'm of the opinion that this came at a very convenient time for Apple.

Just prior to this episode, the iPhone app FaceTime had a serious bug that enabled anyone to turn someone else's iPhone into a live mic. And just when Apple was dealing with the inevitable fallout, who else should screw up but Facebook and Google, right in their backyard. Talk about a fall guy (or guys) to distract users from Apple's own mess!

Also, it's no secret that Apple's CEO Tim Cook and Facebook head honcho Mark Zuckerberg aren't exactly enamored of each other...  Cook might have done the right thing here, but I'd bet my last dollar he was experiencing no small amount of personal satisfaction while doing it.

Is it over?

Oh hell, no it ain't over. Apple might have shown Facebook and Google who's boss in this one instance, and there's no disputing that Apple accounts for a huge chunk of mobile web traffic in case any of them feel like pulling this stunt again in future, but Apple's dominance doesn't quite extend itself to desktop browsing, where Safari is currently languishing behind the likes of Chrome.

This is just the beginning, folks. The battle of the tech giants started a while back, but now shots have been fired. And some have landed. If nothing else, Facebook and Google have egg on their faces. Round One to Apple - now let's see how it goes.

How'd you like them apples? (heh heh)
T___T

Thursday, 28 September 2017

War of the Programming Languages

What's the best language for the web?

Is it Java, the Android OS platform's poster boy?

Is it C#, currently Microsoft's darling?

Is it PHP, Python or Ruby? JavaScript, even?

Your guess is as good as mine. Proponents of any language have, and are still, engaging in vigorous debate (I'm trying to be kind here) as to why their language of choice trumps all other languages. On the web, there are ongoing bitter flame wars between fans of Java and C#. C# vs VB. Python vs PHP. And then there's the whole Object-Oriented Programming vs Functional Programming debate. Open-source vs Proprietory. List goes on forever.

This ought to put to rest the myth that techies are ruled by cold, hard logic. Now, if these were some rabid non-techie fanboys screaming about how superior iOS is to Android, that would be infinitely more forgivable. But these are tech people. Why are techies behaving like children, or worse - laypeople?

Watch any of these debaters. They'll bring out all the flaws of other languages, compare it to the amazing awesomeness of their chosen language, and fanboys of all stripes will have a field day - or a hissy fit. And when that happens, I don't see seasoned professionals. I see a bunch of woefully insecure nerds trying to obtain validation in their choices. Heaping disdain on those who choose to do things differently. Scorn. Hostility, even.

To what end? Does this shit make you guys feel clever, or something? Do techies making choices different from yours, somehow threaten you? Has choice of a programming language or platform suddenly become some kind of religion?

There are no blanket solutions

I've repeated this often, because this bears repeating: There are no blanket solutions. Not in many industries, and certainly not in the web industry. As a developer, the greatest disservice you can do to yourself is to willfully and deliberately close your eyes to the possibilities that other platforms and languages bring to the table, and the power they add to your arsenal. There is no programming or scripting language in the world without flaws. Sure, it's good to know the ins and outs of your tools, especially the environments in which they thrive most. But, using it as a justification to use one language to the exclusion of all else, is an exercise in futility. Especially on the web.

At the end of the day, languages are merely tools. Use the correct tool for the correct occasion. Because, as with the Law of the Instrument, when you only know how to use a hammer, pretty soon everything starts looking like a nail. Don't be that kind of developer.

Everything is a nail.

Everyone has invested time, sweat and tears honing their craft. No one wants to feel like they wasted all that effort on learning to use tools that aren't relevant. But no matter how much we'd love to believe in a tech meritocracy where the most objectively superior platform should be dominant, the fact is that things aren't as cut-and-dry as all that.

Some languages, like JavaScript and PHP, came to prominence back then because there weren't many other options, and they've filled their respective niches so well that uprooting them at this point would be more trouble than they're worth. You can't possibly tell people that your chosen language is absolutely superior and expect them not to snigger. There is no absolutely superior language. No such animal exists. Superiority is completely context-dependant.

Also, bear in mind that at the heart of every programming language, is a philosophy. Certain languages enforce certain practices. Certain languages make it a point not to enforce a damn thing. The kind of person you are determines the kind of languages you gravitate towards. There is nothing wrong with any of that. You like what you like. Your choice is perfectly valid, and let nobody tell you different.

It doesn't matter what you know...

Here's another line I'm fond of repeating: It doesn't matter what you know. What matters is what you can do with what you know. It is not your choice of language which you should be obsessing over.

Take PHP, for example. PHP is the go-to whipping boy of nerds who consider themselves "proper" programmers. PHP to scripting languages, is what Donald Trump is to the Presidency of the United States of America. Want to look enlightened? Want to appear clever? Pick on PHP! It's the perfect target. Point out all its flaws, and bemoan the fact that it's even still in use today. Sure, PHP is a badly designed language. Sure, PHP does object orientation poorly. Sure, PHP is a hodge-podge of features that feel tacked on. And yep, PHP enforces bad programming practices through its laxness.

So what?

You know what uses PHP? Flickr, for one. Yahoo! is another. Wikipedia. Goddamn Facebook!

Yes, I know C#, Java and Python have done pretty well too, but this isn't about what others have done using those tools. It's about what you have done using your chosen tools. Using the language of your choice, what have you created that's even half the significance of Flickr, Yahoo!, Wikipedia and Facebook?

Drawing a blank? You've done nothing to champion your chosen language other than talk about it endlessly on the Internet? Hey, this is just a suggestion, but maybe, just maybe, it would be far more productive to STFU, roll up those sleeves and get cracking!

Time to work.

Bjarne Stroustrup said this in his book The C++ Programming Language, and I think it's particularly apt even today.
"There are only two kinds of languages: the ones people complain about and the ones nobody uses."

Or, how about, say, COBOL? What, you've never heard of it and therefore it must not be important? Junior, COBOL has been around since the 1960s, and at the time of this writing, it's still kicking ass in the banking industry. It does more in a day than you've probably ever done in your hipster kiddy-script writing life, and this is not hyperbole.

All I'm saying is, show some respect. The languages you love to rag on, have earned it.

Enough is enough

Dear developers, you're part of an honored tradition that harkens back to the days of Ada Lovelace and the first algorithm. Passion is fine and all, but this empty one-upmanship is beneath you. Stop arguing. Go forth and create.

guys.chillout();
T___T

Monday, 27 March 2017

The Myth of Tech Meritocracy

The Android vs iOS debate has been raging on for years, with no end in sight. In each camp, you have devout followers that swear (sometimes very loudly) by their chosen platform.

I have a friend who's a bit of an Apple fanboy, and he absolutely despises Android technology. And I remember one day he was telling me how Android ought to die because its tech is shit.

Die, Android, die!

My opinion was that he wasn't being entirely rational about this - in fact, I was quite positive that he was looking at this from a very emotional point of view. Because things don't work that way in technology. Don't get me wrong - this isn't a debate about which technology is better. Even if, for arguments' sake, I agreed with him that Android technology is shit; Android is not going away. And for his own sake, my buddy should pray that it remains so.

Android, at this point in time, enjoys the largest market share worldwide next to Apple's iOS. What if my friend's wish comes true and Android disappears from the market forever? The void left by Android would not be readily filled, and Apple would reign supreme.

King of the hill

Sounds like a fanboy's wet dream, eh? Just wait - it goes downhill from here.

I think we can all agree that Apple isn't some benevolent mobile tech Santa giving us awesome products for the sheer joy of it. No, like all credible tech companies, Apple is a business, and is motivated by desire for consumer dollars. And its great innovations in recent years was a direct consequence of having to constantly up its game in the face of stiff competition from Android. What happens when that stiff competition is no longer present?

This is what I think happens...

Apple halves its workforce because the amount of talent on their payroll is no longer required.

Apple products slowly become shit, because Apple are now just about the only game in town and if they feel like feeding you shit, you'll eat it and like it.

Apple begins its inevitable decline.

Just a little
competition.

What I'm trying to say is - competition keeps businesses honest. But again, this isn't about Apple or Android - it's about the myth of tech meritocracy.

Let's talk about meritocracy, shall we?

The professional world isn't a perfect meritocracy. Higher management positions could be filled by people who don't deserve to have a job, much less a high-paying one. Less capable and driven folks may get that promotion simply by kissing up to the right people. Pretty girls may get ahead simply because the fellow in charge is a hum sup lou. Less qualified staff could remain employed simply by being better at keeping their jobs rather than actually doing their jobs. The lower echelons of the workforce could be teeming with a serious case of Crouching Tiger, Hidden Dragon.

There's nothing intrinsically wrong with any of that. This is simply how the world works.

Likewise, technology isn't a perfect meritocracy. Tech doesn't die simply because it's inferior. Tech rises to prominence for a variety of reasons, not just quality. And once that tech has entrenched itself as part of the ecosystem, removing it poses several problems, some of which may adversely affect that rival tech you're such a huge sucker for.

More examples

Remember classic ASP, written in VBScript? It was supposed to have been replaced by ASP.NET back in 2003. Where is it now? It's still residing on servers powering legacy systems - huge legacy systems - all over the world. It's not exactly thriving, but until Microsoft's IIS stops supporting classic ASP, no company in its right mind is going to spend money to rewrite a working system to leverage off new and (relatively) untested technology. So classic ASP stays.

Or, hey, look at JavaScript. For many years since Netscape shared it with the world, JavaScript was the only game in town, at least where client-side scripting was concerned. VBScript was client-side scripting too, but it  belonged to Microsoft and ran only on IE. By most yardsticks, JavaScript wasn't a great language. It had its warts, and I'm being generous when I say that. But decades on, it has become so pervasive that its use has expanded to frameworks, libraries and even server-side scripting. Uprooting JavaScript now would be a Herculean task.

For that matter, why are Pascal, FORTRAN and COBOL still around?

In technology, new things catch on fast. But older tech takes a while to go away if it has already entrenched itself - by being introduced at the right time, or filling some niche uncontested.

See how long HTML5 took to become a browser standard? Sure, it's starting to come into its own now, but XHTML is still alive. Because while HTML5 is superior and fixes many of the problems that came with HTML4.0 and XHTML, its introduction cannot undo decades of XHTML-based content overnight.

Such is the tech ecosystem

Tech ceases to grow when people stop using it to make new stuff. But it only truly dies when... well, almost never.

Besides, why should a piece of tech die just because some people (or several) don't like it and think it's rubbish? Technology is a vibrant and multifaceted world because of the variety, not in spite of it.

That's all for now. (ad)iOS!
T___T

Thursday, 28 January 2016

How your Mobile Apps are made

Mobile applications (or "apps"), technically, come in three different forms - native, web and hybrid. To most people, they are "mobile apps", and that's all there is to it. Laypeople have that luxury. But the web developer needs to understand that there are differences - and not just in terms of Android, iOS or Windows Phone.

Native 

Native apps are created in a language native to their platform. Native apps for iOS are written in Objective-C or Swift, and native apps for Android are written in Java. So if your app needs to function on both platforms, you will need to write that same application twice - once for each platform. As you may conclude from this, development of a native app tends to take a bit of time.

Of course, since the app is created in a native language and can interface with the device's operating system and hardware directly, it has a distinct advantage in terms of speed and versatility. Anything that your device can do, your app can manipulate. Need to access the camera on your tablet? Maybe tune the brightness and sound? No problem. It's all there.

Here's an example of Facebook's Android app.

Accessing the
native app via
an icon.


Facebook for
Android.

Web 

Web apps, in the mobile context, are like your desktop/laptop browser-based websites. You type in a URL or access a bookmark, and with a working internet connection, you're able to access the functionality of those sites. These are written in HTML5, styled with CSS and coded with JavaScript. Again, like any other website. The only difference here is that these sites are designed to fit onto the screen of your mobile device. Functionality is limited to whatever traditional web applications can do - retrieval/updating/deletion of data, animations, playing of videos, and so on.

You don't need any special skills outside of the average web developer's repertoire (I'm making some huge assumptions here, but bear with me) to create a web application. But you're severely limited by the need for a browser.

Here's an example of accessing the Facebook and Quora's mobile web apps.

First, you access
the internet via a
web browser's icon,
like Chrome.

Next, you type in the
URL of Facebook...

... or Quora.

Note that we first start up Chrome (or any web browser), then type in the URL.

Hybrid 

Hybrid apps are, simplistically put, web apps that have been ported over to a mobile device in a native app-like wrapper (via platforms such as Cordova and Phonegap) and therefore simulate the behavior of native apps. How so? Well, for starters, you no longer need to start up your browser and access a URL. You merely need to click on your app's icon, just like a native app. Limited access to the native functions of your mobile device can be accomplished via plug-ins. As you may surmise, this slows things down somewhat on the hardware side of things.

Development of a hybrid app tends to be fast, though. You're basically taking the same web app and porting them to different platforms. Write once, run anywhere. Maintenance is also markedly easier. Excellent if you just want a quick-and-dirty prototype.

Here's an example of Quora's hybrid app.

Editor's Note: It's not confirmed that Quora is a hybrid app. But the interfaces of their web app and mobile app look suspiciously similar.

As in a native app,
you access the app
directly via an icon.

Quora

 

What to use for Mobile Development? What's better? 

This probably feels like a cop-out answer but, as with most things, it really depends on what you're going for. Is this a final product or a prototype? How crucial is speed or development time? Do you foresee a lot of maintenance? Your answer will determine the direction you eventually head towards.

Thanks for reading. Much app-reciated.
T___T