samedi 8 octobre 2016

SharePoint rant

We were forced to switch from Google Documents to Microsoft SharePoint at work. This article is just a rant to outlet my deep frustration. 😁


In short, SharePoint is a crappy piece of software, and here is why:


First, let's start by mentioning what happened to some folders during the migration. Some of them got duplicated, yielding one version with the correct name and another one with a cropped name. See below - the top part was how folders looked like in Google Documents and the bottom part is what they became in SharePoint:


Lots of commands are hidden in the FILES and LIBRARY tabs. It took me a long time to find them. To copy a file, you have to go to FILES and Send to. Come on, couldn’t you call it “copy” as in “copy and paste”? There is no browse option when you copy, so you have to know the exact file path. There is no proper command to move a file. You have to copy it and then remove the original. You can't rename the extension of a file.

The search is very unhelpful. Have a look at the example below. The required file only appears in 28th position, although none of the titles of the other file names contain anything remotely related.


The Word web app is way less elaborate than Word. Collaboration with other users is just indescribably buggy. When closing a file, it doesn’t remember if it has been saved so it warns you that you may lose data, although you obviously won’t because you just saved it. In some cases you may even come across this kind of curious error message:

As we just mentioned, SharePoint is a collaborative document edition system. When someone adds comment on documents you've shared to them, you would expect to receive these comments in some way. Good news: you can set up email alerts. Bad news: you have to set them up yourself. Here's how: go to folder view (1), find the file you want an alert to (yes, of course you have to do this for each file), tick the checkbox next to it (2), open the FILES tool bar, click Alert, set up the alert in the dialog, click OK, receive a confirmation by mail and you're done! For comparison, in Google Drive, all this is only a single step: you're done. If you've managed to go through all the hassle, you will finally receive notifications, saying that your file has changed. Click on the links to your file and you're welcome to read the whole document and comments to find out by yourself where the changes are.

(1) Going back to folder view from file view: there is a tiny link in the top left corner of the file view. Only it is very misleading. The text is the name of the top directory of your SharePoint file system. However, when you click on it, it directs you to the containing folder.

(2) Selecting files in the folder view: on the left of each item in the list of files, there is an checkbox to select them. Only the developers decided it was a good idea to make those checkboxes invisible unless you hover them.


Finally, here's a funny graphical bug I saw in Excel. It's not exactly related to SharePoint, but it's still Microsoft, so I might as well share it here. The weird light yellow shape is meant to be a comment box related to the cell on the left:

In conclusion, if you ever have to choose a document management and storage system, don't choose SharePoint.

dimanche 19 janvier 2014

Mobile app to meet one another

Edit: No, it's not Tinder.

Two people who know each other want to meet up. They both have a smartphone with a GPS device.


There could be an app to spare them planning a meeting point, and that would instead calculate for each of them the shortest path from one person to the other and update it every now and then.

samedi 18 janvier 2014

Communication AI

I have an idea of an AI with which you could communicate to ask questions, teach facts, give orders, and that would have an interactive behavior.

In a console you could write a sentence using a specific syntax. This sentence would be analyzed and interpreted in three different ways. If it ends with a point, then the AI will recognize it as a statement that it should learn and store in its database. If it ends with an interrogation mark, then the AI will interpret it as a question and try to answer it. If it ends with an exclamation mark, then the AI will interpret it as a command and will have to execute it.

To answer questions, it would query its own local knowledge database, as well as online semantic web databases, that is, convert your sentence into SPARQL to query the databases. For example the sentence what has-family Crambidae? (the syntax is not decided yet) would return the list of animals that belong to the Crambidae. The application would implement question words such as what, who, when, where, how-many...

What do I mean by interactive behavior?
The syntax of statements would allow some flexibility and allow you to either ask for something very precise with all details needed to avoid any ambiguity, or omit omit some details which are obvious or which would have a predefined default value. For every other missing piece of information, the AI would first ask for them before executing your command, a bit like a human would do. For example you could ask:
> send email to george
and it would answer something like:
You are not connected to a mail service. Do you want to log in? 
> yes 
Please enter your email address:
> edward@gmail.com
Please enter your password:
> ********* 
Do you want to send it to George Jones or George Smith? 
> george smith
Ok. Please enter your subject:
and so on.

The guiding rule would be: if someone said that sentence in real life, what would another human answer. But the AI should implement this not trying to be the most realistic possible like some chatbots do to pass the Turing test, but rather trying to consider the best behavior expected from a human: nice, useful, intelligent, obedient...

The whole thing would be developed in Python or Perl because those are powerful languages that I think are adapted for that kind of application.

samedi 14 septembre 2013

Differences between iOS and Android development

Android is programmed in C, C++ or Java, whereas iOS is programmed in C, C++ or Objective-C.

In a commercial point of view, Android seems to have a bigger market share.

People argue that iOS have better apps: all iOS devices have identical specs and features, disregarding resolution. It is easier for a developer to take advanatage of the whole screen, trust it will run smoothly... Android devices are different.

Developing Android apps for Android on Eclipse requires tons of module installations, AVD configuration. The default Xcode installation requires absolutely no complementary configuration. The app can be launched directly once the project is created.

Rhythmbox review

I've been using the music library software Rhythmbox for a while, and quickly decided to go back to Banshee. Here is why.

What useful features lack to Rhythmbox:

  • Browsing music with album covers. (I read about Rhytmarty, but I don't know how to use it.)
  • Seeing the cover of the selected track, not only the track being played
  • Seeing the cover of a track in its properties!
  • Stopping when song is finished
  • Showing a track of a playlist in the library (like in iTunes) (lacks to Banshee too)
  • Modifying metadata directly in playlists (lacks to Banshee too)


Bugs to fix:

  • It stops playing when it fails to find a file (in DJ mode).
  • If source of file not found, it plays selected.
  • It indicates unfound files one line before where they really are.

samedi 10 août 2013

A Prolog-based media search engine

I am currently carrying out an internship project consisting in a visual search engine. This made me think of how Google handled its image searches using the names and the descriptions of images on the web to match with the queried words. Here, images are only associated with clouds of words. So I thought, wouldn't it be better if they were associated with meaningful sentences that describe their content?

Prolog is in my opinion the perfect way to do this. We would create a knowledge base in the form of Prolog statements like height(img.jpg, 500). , shows(tree.png, tree). , uniform_background(tree.png). , background_color(tree.png, white). , etc. The downside is this would be a huge amount of work to do, so this task would probably have to be done collaboratively by the community of users (or Santa's dwarves). Then a query could be for example: shows(X, tree), background_color(X, white). and Prolog would answer that X is tree.jpg. The name of the images would in fact be their URL on the web and of course the search engine would be provided some rules to make deductions on statements.

Associated with a very good language analysis AI, this could allow users to make a search in the form of real sentences like "photo of a tree in northern England and a sunset in the background" and get very accurate results − better than if that sentence had been queried in a Google Image search. This could also help machine learning: bots would be able to make the text search they want, and use the results to learn how to associate an image with a statement regarding this image. In turn they would be able to generate statements on new images.