HNHacker News
TopNewBestAskShowJobs

Shamanmuni

386 karma · joined January 6, 2012

submissionscomments
Shamanmuni··on Typelevel Scala and the future of the Scala ecosystem
The fork means nothing dramatic. I'll make a short summary of both positions:

Typesafe: we need to offer our clients a good guarantee on stability and compatibility with Java 8 or they won't take Scala seriously. So, for the moment we won't introduce new features or make big changes in the compiler.

Typelevel: we are OK with compatibility and stability, but there are some features that we really want which either don't exist or are a bit quirky with the current compiler. So we will make a fork in which we can add these things while staying binary and merge compatible with yours.

If they make it work, this is great news. There wouldn't be fragmentation as "bleeding edge Scala" would be binary and merge compatible with "stable Scala". And nobody should have hurt feelings, both positions are completely sensible.

Shamanmuni··on Quantum Gravity Expert Says "Philosophical Superficiality" Has Harmed Physics
I don't think there's a contradiction. Modern philosophy never claimed to be science, while modern Theoretical Physics (science) in many parts strongly resembles philosophy, as you said, while never acknowledging it. Theoretical Physics is supposed to be a complement to Experimental Physics, explaining or predicting things that could later be confirmed by the Experimental branch.

I think string theory as a theory of everything is an excellent example. From the outside at first it seemed promising, but nowadays looks more like a very complex mathematical chimera which we don't have a particular way of proving nor disproving. But string theorists insist that these aren't merely thought experiments, this is SCIENCE, even if we have to add dimensions and multiple universes we never experimentally detected to try to make it work. Maybe it works in a blackboard, ¿but how do we know it reflects reality?

Philosophy of Science should be useful to check if we are doing science right or are being carried away by beautiful math and thought experiments. Maybe a scientist doesn't need philosophy a priori to do science, as a doctor doesn't need philosophy to cure people, but both epistemology and ethics are useful to contemplate if we are doing it right or something should be improved. At least that's my opinion.

Shamanmuni··on Quantum Gravity Expert Says "Philosophical Superficiality" Has Harmed Physics
You are completely missing the point. He didn't say that beliefs are disconnected from actual historical events, but that written down beliefs shouldn't be held as unquestionable truths.

For example, if the Bible says that God created the Universe as it is now in 6 days and we have lots of information confirming that it took way longer, then you have two sensible options: 1) You update the Bible so that it reflects what we know about the universe, 2) You leave the Bible as written but now you know that it doesn't reflect the truth about that at all. What you shouldn't do is leave it as it is and claim that's the truth, nobody except fanatics will take you seriously.

You know, religious texts were written a long time ago by people who didn't know many things that today we teach to kids in primary school. It's incomprehensible to take all these people said as unquestionable truth, makes us look dumb.

Shamanmuni··on Entitlement issues (2009)
I feel this kind of reasoning is weird. If an author writes a book as a part of a series he's clearly telling you "this book is part of a bigger story which I have my most sincere intention of telling and reaching its conclussion, eventually". There's clearly a convention here, which doesn't necessarily translate into an actionable obligation (which is what you wanted to say).

You don't want to get into that implicit contract? Then don't write a series, or write it for yourself and don't publish it. I don't agree with those who whine because Martin doesn't finish the series, but I also don't agree with those who say that we should expect nothing from him.

When I started reading this series (about 15 years ago) they were supposed to be 4 books to be released at 2-year intervals. Then he added more books, took a lot of time to write them (between 5 and 6 years for the last 2) and now I can't even say "could I at least expect that you will finish the series sometime?".

Shamanmuni··on KDE Ships Second Beta of Next Generation Plasma Workspace
It has some minor issues, sure, but I'm completely missing the atrocious part. In fact, I think it's quite nice, hope to use this UI soon. It would be great if you could send an email to the developers with your observations as, you know, it's a beta and some help is always needed.

I wonder why so many design-related critiques sound as if someone comitted a crime against humanity. C'est la vie, I suppose.

Shamanmuni··on Haskell, and Why It Might Be My New Favourite Language
I get the feeling that many programmers have been bitten by weak typing too many times and have come to appreciate the benefits of stronger typing.

If you want to apply defensive programming, which is always a good idea, you usually encounter this pattern: "I'm expecting an Int. Is this an Int? No, this is a string. But if I converted it, would the result be an Int? No? OK, then we have a problem, what should I do about it?". Some languages even have automatic type coercion, in which the final result depends entirely on what the language decides, and varies across languages. It's a mess.

Languages like Haskell or the ML family, with their type systems and type inferences, simply won't compile if you say you are expecting an Int and some other part of the program sends anything else. Maybe it's more work for the programmer upfront, but it reduces future headaches, and it's not difficult once you get the hang of it. Many times you don't even have to state the types explicitly, the compiler just knows. Thanks Hindley-Millner!

Shamanmuni··on GopherCon 2014 Videos
It's similarly trivial to make syntactically correct code that breaks in Go. Example:

  if (a == 1) {
      return a }
  else { return b }
This won't compile in Go. But whitespace wasn't significant in Go, right? Take out the curly braces, add a couple of colons and this will run without a problem in Python.

My point is, there isn't such a big difference between Go and Python. Significant whitespace doesn't mean "whatever Python does differently", it means that whitespace is syntactically meaningful. Any whitespace in any part of your program has the potential for changing the meaning of it. If it does, then it's significant.

It's trivial to make a text editor show tabs and insert spaces even if you press tab. It's trivial to make a program that will switch leading tabs for the number of spaces that you want from a file. I don't say it's trouble-free, but it isn't such a big issue; and automatic semicolon insertion isn't trouble-free either, as you can see. You won't have problems with any of them if you take a little care.

In Python, leading whitespace and newlines are syntactically significant. In Go, newlines are in many cases syntactically significant. In both of them space around many keywords is significant (try to write packagemain in Go, see how it goes), and you can't put whitespace in names.

Shamanmuni··on GopherCon 2014 Videos
Sorry, I forgot, you can also do this in Python:

  def my_func():a=1;return a;
Try it, it works!
Shamanmuni··on GopherCon 2014 Videos
Did you know that almost all your example is perfectly doable in Python? Try this:

  def       my_func     (      )    :
      
      a        =      1

      return       a
It will run without a problem because only leading space is significant. Then you can mix tabs and spaces, add the space you want, blank lines, etc.

The Python coding style guideline (PEP 8) is very specific in that it recommends the use of 4 leading spaces per level. You can use a very simple program with regular expressions to solve any problem you could have in the mix of tabs and spaces in your files.

Now, try this example in FORTRAN.

  parameter(x=2)
  print*,"The parameter is ",x
Why can't I use commas or parentheses to delimit all the tokens in Go? Why does it insert semicolons without asking? Is such an arbitrary and problematic decision as the significant leading whitespace in Python.
Shamanmuni··on LXQt – The next generation of the Lightweight Desktop Environment
Problem 1: you have a slightly old machine (512MB or 1GB of RAM) or something like a Raspberry Pi and you want a resource-efficient but modern-looking desktop.

Problem 2: you want a VM with a DE but don't want to spend too much resources in it.

Problem 3: you have a modern computer but prefer to have a lightweight DE and let the rest of the resources be used by your applications.

Both LXDE and Razor-qt consumed about 100MB of RAM, I would expect something similar from LXQt. All the other DEs are heavier, XFCE is just a bit heavier but at least for me LXQt looks a lot nicer.

And as it was pointed out, it's a merger of LXDE and Razor-qt, so it's the complete opposite of the "many Gnomes" situation. Kudos to that.

Shamanmuni··on Qt 5.3 Release Candidate Available
> What it sounds like you're saying is that programming languages should not require expertise.

No, I think he says that C++ is overly complex and unsafe without a real need for that complexity and unsafety. And it seems that what you define as "expertise" translates to "the developer learned to make up for the language flaws". Expertise should mean having the necessary knowledge to make software quickly and efficiently, not avoiding the language pitfalls. When you have to read so much text in order to use a language correctly, then there probably is some problem in it.

Take a look at Rust, it's aiming for the same niche as C++ while being less complex and giving safety guarantees. And they seem to be having success at that. It's doable.

I recommend you the post that I link below. It tries to explain to a C++ programmer why he should learn Rust. It has modules, generics, green threads and concurrency built in. There's much to love. http://featherweightmusings.blogspot.com.ar/2014/04/rust-for...

Shamanmuni··on GopherCon 2014 Videos
I think the way Go treats coding styles is great. I don't have any problems following a one true convention enforced by the language and being aware about the minute details of code structuring in order to avoid problems in translation. Funnily, the language that taught me all that was Python.

As willvarfar points out, I feel Rob Pike is being disingenous when he talks about this. Golang uses less significant whitespace than Python, but it exists, the difference is in degree. If he prefers to minimize the impact of whitespace in Go code, that's fine. But why does he have to talk about it as an error or misjudgment?

If significant whitespace is such a bad idea, why do exist keywords that require whitespace around them in Go (package, func, type, etc.? Why can't I use whitespace in names in Go? This didn't happen in good old FORTRAN ;)

Shamanmuni··on GopherCon 2014 Videos
It means that you have to be careful about how you treat whitespace (mostly newlines and how they relate to curly braces), otherwise a semicolon could be inserted where it shouldn't or gofmt could format your code in a way you didn't mean to. So, the whitespace is significant in Go too.
Shamanmuni··on Porting the Go compiler from C to Go
I know it's crazy difficult to do it, that's why I was talking about dreams.

But maybe a set of guidelines about translatable C code plus a translator which is good enough for a variety of cases would make refactoring the resulting code such a manageable task that many projects could consider switching to Go directly.

You are technically correct in that compile already implicates a translation, but we usually use that term refering to a translation into a lower level language and not another language at the same level. You can say transpiler or source-to-source compiler for those cases and I think it's clearer and more accurate for the reader.

Shamanmuni··on Porting the Go compiler from C to Go
It's great that they are aiming for an automated conversion from C to Go. It's clear they aspire to convert their code which was written in a certain way. But I think it would be a huge boost in Go usage if they could eventually aim to transpile any C code into Go code.

A little dream of mine would be if in the future when Rust is stable Mozilla developed a transpiler from C++ to Rust. That would be brilliant.

By the way, all the other talks at GopherCon seem pretty interesting, I hope someone uploads videos of them soon.

Shamanmuni··on Microsoft Open Sources C# Compiler
Thank you. I think I understand what you say but I simply disagree. einhverfr worked at Microsoft but it's fallacious to think that his view can't be naive because of that.

For me copyleft without assignment is the safer choice, the others depend on future goodwill or a view of the market self-regulating which I don't see happening with such a big gorilla. After the clarification about assignment, I don't see how it's misleading or wrong in any way. If copyleft licenses can be abused in certain situations it doesn't mean non-copyleft ones can't or are the better option here.

I'm interested but worried about the long term viability of this free compiler. I don't want to depend on Microsoft getting the value of FOSS or not. They can give guarantees today that even if they change their mind tomorrow they can't go back in this decision.

I know copyleft licenses can be a pain and that they have problems on their own. I use GPL and LGPL software daily, so I know it. But those issues are orthogonal to the one I'm talking about here (the guaranteed free access to future versions to the community).

And sorry but unless we are talking about another software giant, there's simply no way Microsoft could feel threatened about a third party version of the compiler which works on their framework which is used by their IDE on their OS. They either don't mind what you are doing, will replicate it easily or if everything else fails will keep you away from their framework or IDE.

But I'll shut up as my opinions are continously downvoted by some who can't be bothered to explain even why. I saw some perfectly reasonable comments by einhverfr downvoted too, so it's not just me. I feel HN is becoming toxic. Thanks anyway for the response.

Shamanmuni··on Microsoft Open Sources C# Compiler
Copyleft licenses are more conductive to dual licensing because they give you no other choice if you want to sell a closed source premium version. That's the only reason. And for that to work you have to get copyright assignment.

I think your view is pretty naive. They develop the platform and own the IDE that's synonymous with it. They can keep any other compiler off the IDE if they want that, you would be competing with them at their house, which is doomed to fail.

With copyleft without assignment at least any later version would effectively remain free for all, whether Microsoft wants it or not. You don't have to believe and hope, it's just the way it is.

Shamanmuni··on Microsoft Open Sources C# Compiler
Well, I was surely thinking about the option without copyright assignment. Everybody giving assignment to Microsoft? Yeah, that's a bigger and much more obvious trap.

I don't understand what was so upsetting about my previous comment thatgot so many downvotes. Microsoft has a history of being hostile to FOSS. I will agree that they have changed their attitude when they make a serious effort to assure us that there aren't potential traps in this move. Otherwise I'll say thanks but no thanks.

Shamanmuni··on Microsoft Open Sources C# Compiler
I don't know, I see this as a good sign but for me it's still "too little too late". At least release it under a copyleft license, make it usable with previous versions of Visual Studio (it only works with 2013) and I'll feel more confident that you aren't setting a trap.

Non-copyleft licenses can easily align with the "embrace, extend, extinguish" strategy. The value of .NET for most developers is closely associated with Visual Studio. They can make the next version closed source and have Visual Studio only accept that one and we are back to the same old Microsoft. Sure, you'd still have the previous open source version, but who cares when most people will probably just move on to the next.

Shamanmuni··on You are a Marxist – but don't worry
That's a major point of the article. In his work you have a part in which he identifies the problems (eg Das Kapital) and another part which proposes a solution (eg The Communist Manifesto). In medical terms Marx made a good diagnosis, but a bad prognosis (as demonstrated by history).

I think it's important to differentiate them. Marx wasn't a religious prophet, you can take the good stuff and leave out the bad. Even he said in his later life that his goals could be achieved by democratic means.

Shamanmuni··on Grids From Typography
I get that it can be a bit easier in the eye, but for me this style doesn't work on many levels.

1) You have to scroll a lot, and scrolling means a tiny pause, move to the next point and resume reading; which done regularly becomes distracting.

2) You see the text in pretty tiny amounts. Maybe it's fine for a short and simple blog post like this one, but if it was displaying a complex text in longform this style would make it harder for you to understand it.

3) Finally, from a purely aesthetic and subjective point of view, a text with a very big font, lineheight and short lines looks like a book for children.

I think the optimal the solution is easy, let the user at least choose the font size he prefers. Line-height and width would be great, but just the font size should be enough. Of course, having a good default is very nice, but an opinionated design which gives you no way to tweak it is a nightmare when you feel uncomfortable with it.

Shamanmuni··on Mathematicians are chronically lost and confused
That's odd, I found the 100 doors example is the most efective way of explaining it.

It's easy, pick a door, then the host discards 98 doors in which the car isn't. Do they still think that the probability of the other door left is the same than the one they picked? I want to play gambling games with them!

Shamanmuni··on Apple's First Public Demonstration of the Mac, Unseen Since 1984 [video]
Well, we have millions and millions of people using Windows, and in my experience when viruses and malware affect them, they usually blame themselves more than Microsoft. So, no, I don't think they'd put the blame in Apple.

And if that would have been the case, remember the Antennagate? First they told their customers to hold the phone differently, then they said it was a software problem, and finally they said the problem was the antenna, but that all smartphones had a similar problem (which was a lie). So, in that case I would have expected Steve Jobs' reality distortion field in full power blaming everyone except Apple.

Shamanmuni··on Clang and FSF's strategy
Oh, I think you are right, esr was talking about using GCC as a plugin and I understood plugins for GCC. Apparently Alexandre Oliva and many of us made the same mistake.

Considering that, I mostly agree with David Kastrup; it doesn't make sense for the FSF to bend its principles and help propietary software in order to get market-share. But, unfortunately, it's also affecting FOSS developers.

Shamanmuni··on Clang and FSF's strategy
There's a reply to esr by Alexandre Oliva which touches this point. I'll quote what he says:

"That GCC plugin interface is not sufficiently stable for major uncoordinated developments by third-parties is just as true as that Linux's module interface is constantly changing, and complaints about its lack of stability in it are often responded with such phrases as contribute your driver and we'll even help you keep it up-to-date".

I don't know about the subject but it seems a quite reasonable stand and it certainly doesn't hinder the Linux kernel development, I don't see why it wouldn't work in GCC.

Shamanmuni··on Wozniak: “Actually, the movie was largely a lie about me”
Most of what's usually said about Steve Jobs' role in Pixar is a complete myth. It's quite outrageous the level of falsehood when you read about it from those who were there before Pixar was big.

For starters, Steve Jobs didn't invest in the Pixar that you know (the one which makes films), it was a hardware company and it never occured to him to make an animated movie, just sell hardware. It was the people working there that saw the potential for films made 100% with computers.

He didn't even pay much attention to Pixar until after they made the deal with Disney to make Toy Story and critics started saying it was going to be huge. After that the "visionary" took charge and, of course, took all the credit for himself.

You can read more about it in the link below. You aks who Alvy Ray Smith is? Well, one of the cofounders of Pixar and its first Vice President. And by the way, he was the inventor of the Alpha Channel. http://alvyray.com/Pixar/PixarHistoryRevisited.htm

Shamanmuni··on Go by Example
You don't fool anybody, the subject didn't come up untill you brought it. The thread is about a site that shows examples of Go code and explains them, there's no discussion about the advantages or disadvantages of their design decisions, just matter of fact statements.

Of course, you can do whatever you want, but that doesn't mean that the rest of us won't probably look at your comments thinking "Here come the generics whiners again" and look in the other direction. You are alienating your audience with your indiscriminate repetition.

And, if the disclaimer helps you, I'd like generics in Go, they are useful sometimes. I just don't see the point in such zealotry over something which is merely convenient.

Shamanmuni··on Go by Example
I tend to think that you and the rest of "Generics or death!" crowd make a disservice to your own cause when you lazily come and repeat the same arguments. The rest gets bored and frustrated. Yeah, we get it, you like generics, it makes sorting stuff easier, and you're repeating the same stuff over and over again for our own good because you are true altruists, etc. Can we get over that?

If there's another thread which talks about good and bad points of the Golang design then, by all means, bash the language as much as you like. But if there's something you don't like it doesn't mean you get a free pass to repeat yourself whenever something with Go in the title appears in HN, whatever it is. Context matters, you aren't helping anybody, just trolling.

Shamanmuni··on Scaling Mercurial at Facebook
I suspect many of us use Git because it was made by Linus Torvalds ( I think everyone agrees that he is a great developer) and is used in the Linux kernel. If it can handle that, then you can be pretty sure it will handle whatever you throw at it (unless you are Facebook, it seems).

Add Github to that mix and you can see why so many developers sleep like babies at night. Of course it's not rigorous, but the choice is not irrational.

Shamanmuni··on KDE Frameworks 5 Tech Preview
The problem at that time was that Qt wasn't free nor open sourc software (you could see the code but could not redistribute modifications). Both GTK and Gnome were started as truly free alternatives to Qt and KDE. If only Qt had implemented a dual licensed model like they do now, the history of Linux's DEs would be very different.
← PreviousPage 2 of 5Next →