Profile

Cover photo
Mauricio Scheffer
Lived in buenos aires
281 followers|294,104 views
AboutPostsPhotosVideos

Stream

Mauricio Scheffer

Shared publicly  - 
 
A 5-page post on a "scripting guys" blog describing how to navigate GUIs and websites to upgrade Powershell.

Microsoft still doesn't get automation.

http://blogs.technet.com/b/heyscriptingguy/archive/2014/11/09/weekend-scripter-install-powershell-4-0-in-windows-7.aspx
1
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
"Your website is broken", a rant:

If you show me a link and I can’t ctrl-click or right-click on it and open it in a new window/tab, your website is broken.

If I click the browser back button and it doesn’t take me back to where I was, your website is broken.

If I bookmark a public URL and then I visit it later and it doesn’t take me to where I was, your website is broken.

If I have to press the “end” or “page down” key for several seconds to find something in your website, your website is broken.

If the “favorites” feature on your website does anything that a simple bookmark can’t do, your website is broken.

If I google something and I click a result from your website and it gives me a 404, your website is broken.

If I have to google something with “site:yourwebsite.com” to find some content on your website, your website is broken.

If I accidentally click on a link or button and I lose all of the work I was doing in the current page without any warning, your website is broken.

If your website doesn’t handle unicode input, your website is broken.

And for the love of $DEITY read Nielsen’s design mistakes: http://www.nngroup.com/topic/design-mistakes/
14
2
Mauricio Scheffer's profile photoAgustin Liguori's profile photoGustavo Guerra's profile photoMichael Newton's profile photo
3 comments
 
Muy bueno
 ·  Translate
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
 
I just loved this. 
I have grown increasingly frustrated with the world as people have become more and more convinced that "schema-less" is actually a feature to be proud of (or even exists). For over ten years I've worked with close to a dozen different databases in production and have not once seen "schemaless" ...
1
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
Can't say I have the same reaction. "Duplication is far cheaper than the wrong abstraction" ( https://twitter.com/BonzoESC/status/442003113910603776/photo/1 ), and frameworks too often implement wrong abstractions while also making it really hard to escape them.
If the legacy code hasn't been developed with a framework, it's usually light on (enforced) abstractions which means I can plug in my own fairly easily as needed.

http://thecodinglove.com/post/88466761936/when-i-have-to-work-on-legacy-code-which-has-not-been
2
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
"Haskell excels in situations where program correctness needs to be ensured" says this article : http://arstechnica.com/science/2014/05/scientific-computings-future-can-any-coding-language-top-a-1950s-behemoth/

I see this often and always ask myself: where are the programs where correctness doesn't need to be ensured? I still haven't found them.

I'm mainly a regular web developer (which some people say are not even real programmers, whatever that means), and in my job I'm constantly thinking about purity, totality, composability as a means for correctness and maintainability.
Cutting-edge research still universally involves Fortran; a trio of challengers wants in.
1
Sandro Magi's profile photo
 
Pretty much the only domain where correctness takes a real back seat is rapid prototyping while exploring a poorly understood problem domain. I'm honestly not at all sold that programming is what you need to explore such a domain though. Sounds like books, a pencil and paper, and some time to think would serve you better.
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
Strachey introduced ad-hoc vs parametric polymorphism in 1967 ( http://www.itu.dk/courses/BPRD/E2009/fundamental-1967.pdf ).
Every day at work I see code unnecessarily broken because the programmer didn't know about this, or the importance of it.
I went to university, yet I only learned about it much later through Haskell, just a couple of years ago.
Information is so easy to access today, but we still need education to make sense of it, and education is failing hard to curate and explain it.
7
2
Anton Tayanovskyy's profile photoMauricio Scheffer's profile photoYusuf Motara's profile photoLone Ffog's profile photo
4 comments
 
Thanks for that perspective, Yusuf. As usual, there's a huge chasm between the perceived results of a complex civilization construct like "formal education" and the myriad of causes that inform  those results.
I'm not sure that CS educators not spending time in industry is a problem, at least in my country most of the professors work also as consultants because salaries in education here are appalling. The real problem is that apparently they're not spending time in academia. Even if they can't teach some subject due to internal politics or not being in the curriculum, they can't simply ignore these fundamental concepts.
Also it's not about teaching what they've been teaching for the last 20 years. Some of the concepts I'm referring to are much older than that, so maybe 20 years ago they could have been teaching about ad-hoc vs parametric polymorphism. What really bothers me is that educators should be learning ten times more than I am, because it's their job to do so in order to prepare the curriculum. And with easy access to information today, they have no excuse not to do so.
I realize I'm probably overgeneralizing here. I did have a lot of good professors in university (not many in CS though).
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
'One of the goals of the Haskell commitee was to adopt "off the shelf" solutions to problems wherever possible.'
-- Philip Wadler, "How to make ad-hoc polymorphism less ad-hoc".

http://homepages.inf.ed.ac.uk/wadler/topics/type-classes.html
2
1
Mauricio Scheffer's profile photoSandro Magi's profile photoLone Ffog's profile photo
2 comments
 
The more interesting paper to me is "A second look at overloading". I had never seen it before, and it's definitely an interesting approach. Solves a few problems that are still an issue in Haskell.
Add a comment...
Have him in circles
281 people
Jason Yandell's profile photo
Robert Oschler's profile photo
musawo mutuza's profile photo
André Lesa's profile photo
Xah Lee's profile photo
Natalia V's profile photo
Neil Carrier's profile photo
Dobes Vandermeer's profile photo
Daniel Hölbling-Inzko's profile photo

Mauricio Scheffer

Shared publicly  - 
 
WARNING: LONG AND MOSTLY POINTLESS RANT AHEAD. DO NOT READ IF YOU DON'T WANT TO WASTE YOUR TIME.

I love Mono as a concept but every time I try to do something with it, it just doesn't work.

For a long time Mono's packages for Ubuntu were not up to date. So Mono would release 3.0, 3.1 etc with must-have improvements and bug-fixes but the latest packages available were for 2.x. The recommended work-around was to build from source. I did this about a year ago so I don't remember all the details but this was a small nightmare of its own, involving getting a bootstrap compiler that was not documented (or buried in the docs) and some other missing dependencies that triggered obscure compilation errors instead of just saying "you're missing dependency X".

Building monodevelop from source seemed impossible. I gave up after chasing gtk-sharp 2.0 (or something like that, I don't quite remember) everywhere, I could never find it (or manage to build it) for Mono 3.x.

Fast forward to present day, there are up-to-date packages, so there's no need to build from source. So I install the monodevelop package but upon launching it complains about some missing obscure type or assembly. "Probably a Mono version mismatch", I think, so I remove all mono-related packages (including monodevelop) and while I'm doing that I see that there's a cool repository with MonoDevelop 5 and Mono 3.4 ( http://askubuntu.com/a/407715/35816 ) (the official packages are still at Mono 3.2.8 / MonoDevelop 4). So I install that and then find out that it doesn't install any build tools in the PATH and more importantly the F# add-in is not available for this version of MonoDevelop yet.

So back to removing everything and installing the official packages.

I open a solution in MonoDevelop. For whatever reason it marks a couple of projects in the solution as "not built in active solution" even though that's not the case when I open them in Visual Studio.

I hit "build all" and get this IDE error (not a compilation error, an IDE error):

System.NullReferenceException: Object reference not set to an instance of an object

Server stack trace: 
  at MonoDevelop.Ide.Gui.Pad..ctor (MonoDevelop.Ide.Gui.DefaultWorkbench workbench, MonoDevelop.Ide.Codons.PadCodon content) [0x00000] in <filename unknown>:0 

I try again and it works (?) but with a compilation warning saying that it can't find FSharp.Core.dll, even though I've already installed the F# add-in.

I try installing the `fsharp` package, now when I open the solution in Monodevelop I get a lot of errors "Unsupported or unrecognized project". Re-install the F# add-in, re-open the solution, it can't find FSharp.Core and the strong-name key file, even though xbuild can compile everything just fine.

I remove the snk reference, and then find out that the solution is missing several projects. No warnings or hints whatsoever about this. Fine, I add the missing projects again and it compiles. But some of the tests fail, apparently Type.GetType() does not behave as in .NET, now I have to investigate how it differs and why and how to make it work in both .NET and Mono.

This isn't the first time I have issues with Mono breaking .NET compatibility (and not for nix-related reasons). In my very brief incursions into Mono, I've seen it not reading extension methods correctly ( https://github.com/mausch/Fuchu/commit/9bcf93bba9d8f634b745baa512b9129454e2b3f6 ) and having an incorrect behavior around Cultures ( https://twitter.com/mausch/status/477967161613631488 ). Sure a huge project like Mono having bugs is common, but this is *foundational stuff that every project uses, not some niche library.

On Windows, I run this console application on Mono 3.2.3 and get:

Missing method .ctor in assembly xxx.exe, type Microsoft.FSharp.Core.EntryPointAttribute.

I have no idea what this means and googling the error doesn't say much.

I really want see Mono work, which makes this all the more frustrating, but it still seems to be awfully buggy everywhere and I'm not even using it in anger. Maybe I'm just used to Visual Studio/.NET's quirks so much that I don't see them any more. But at the very least, if you want to dabble in Mono, prepare to put in a lot of time towards just getting things to work as in .NET.

And please do not take this rant as a review of Mono in general, I know there are people that have been using it happily for years.
2
Jaime J. Febres Velez's profile photoMauricio Scheffer's profile photo
8 comments
 
+Jaime J. Febres Velez  Yo he notado lo mismo... salvo que uno realmente necesite ser compatible con Mono, el trabajo que implica no vale la pena. Lamentablemente no es tan transparente como uno quisiera... al menos no todavía.
 ·  Translate
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
1. Find useful technique/pattern in another language.
2. Introduce it to your language/community under a different name. People don't know about the original pattern so they think it's your invention and widely cite you everywhere.
3. Profit!

This annoys me to no end.
1
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
Here's one of the busiest avenues in Buenos Aires right now. Spooky.
2
Mauricio Scheffer's profile photoHamilton Verissimo (hammett)'s profile photo
3 comments
 
oh, world cup. 
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
TIL apparently you can't move a 100-year-old piano with ivory keys into the USA, but you can bring in two elephant heads per year.
WTF.

http://www.squarepianotech.com/?page_id=320
1
Add a comment...

Mauricio Scheffer

Shared publicly  - 
 
 
Immutable Sasa.Collections.Tree vs. System.Collections.Dictionary vs. C5 HashDictionary
I've previously posted about Sasa's hash-array mapped trie, but I never posted any benchmarks. I recently came across this post on Stackoverflow which provided a decent basic benchmark between .NET's default Dictionary<TKey, TValue>, the C5 collection's hash...
I've prevously posted about Sasa's hash-array mapped trie, but I never posted any benchmarks. I recently came across this post on Stackoverflow which provided a decent basic benchmark between .NET's default Dictionary<TKey, T...
1
Add a comment...
People
Have him in circles
281 people
Jason Yandell's profile photo
Robert Oschler's profile photo
musawo mutuza's profile photo
André Lesa's profile photo
Xah Lee's profile photo
Natalia V's profile photo
Neil Carrier's profile photo
Dobes Vandermeer's profile photo
Daniel Hölbling-Inzko's profile photo
Work
Occupation
Programmer
Basic Information
Gender
Male
Story
Introduction
I like banging on keyboards, computer and piano.
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Previously
buenos aires