HNHacker News
TopNewBestAskShowJobs

dmunoz

645 karma · joined June 13, 2013

submissionscomments
dmunoz··on Why did it take so long for Windows to support multi-monitor taskbars?
I forget where I read this, but the Windows team is certainly aware of virtual desktops and has made a conscious choice not to include them, even as an option.

The Sysinternals Suite has a utility for this: Desktops v2.0 [0].

[0] http://msdn.microsoft.com/en-us/library/cc817881.aspx

dmunoz··on Apple WWDC 2014 Live Streaming
How is an attachment meaningfully encrypted through iCloud if someone who isn't using a Mac can download the file through a link in the email they receive? If that link can be generated for them, it can be generated for anyone.

Edit: Even if a link is generated client side along with an access key, it's sent plain text and anyone who sees it can click it.

dmunoz··on Scott Meyers: The Last Thing D Needs [video]
I watched the talk live. I'll throw this out there just to see if anyone disagrees or has a different perspective.

It's basically Scott bashing C++ in his incredibly informed style. He shares some of the parts of C++ that everybody hates: the gotchas. This is what he has been doing for a few decades now with his Effective C++ series.

The conclusion was that the last thing D needs is someone like him. Someone to explain D like he has had to in his Effective C++ series and talks. Some of the crowd comments that D doesn't need this because it has less gotchas.

I admit to being let down by the talk mostly due to my expectations of what this talk could be about. I was massively excited to see Scott give a presentation about D. In the end, it was hardly about D.

dmunoz··on Ask HN: What's the best programming book you've read recently?
I also read this earlier in the year. I used Erlang in a few projects at university, but never formally learned much about it beyond what I needed.

I invite you you to hop back into the book. I found it to be a fairly quick read for a technical book. The chapters are well motivated, and the code samples were well placed.

Since you have some additional experience with Erlang now, you might want to skip directly to the later chapters on libraries and frameworks, or on building real applications.

dmunoz··on Three Optimization Tips for C++
Another presentation by Andrei on similar matters from GoingNative 2013: Writing Quick Code in C++, Quickly [0]. From memory, it has (at least) these three majors points

* Measure, then optimize

* Pay attention to data layout to keep the cache hot

* Techniques for devirtualization

[0] http://channel9.msdn.com/Events/GoingNative/2013/Writing-Qui...

dmunoz··on GopherCon 2014 Videos
> So, in the keynote, Rob underlines again that there'll be no generics. Ever.

No. He said there were no plans for generics, which has been the story for some time. The official FAQ still states [0]:

> Generics may well be added at some point. We don't feel an urgency for them, although we understand some programmers do.

> Generics are convenient but they come at a cost in complexity in the type system and run-time. We haven't yet found a design that gives value proportionate to the complexity, although we continue to think about it. Meanwhile, Go's built-in maps and slices, plus the ability to use the empty interface to construct containers (with explicit unboxing) mean in many cases it is possible to write code that does what generics would enable, if less smoothly.

It is my understanding that what Mr. Pike means by there being no plans for generic is in relation to the sentence

> We haven't yet found a design that gives value proportionate to the complexity, although we continue to think about it.

[0] http://golang.org/doc/faq#generics

dmunoz··on Simple steps to implementing a programming language
I found that as well, but it is not what inetsee described in his post.

I was interested specifically in "using Racket's macro system to implement a slight variation of Algol 60", which is not what that section or the Racket guide section on macros [0] does.

It's not clear what was meant by "the Racket tutorial".

[0] http://docs.racket-lang.org/guide/macros.html

dmunoz··on Fix HackerNews Issue #11, which is driving us all crazy: Unknown or expired link
Here is dang's official response on the matter from 10 days ago:

[0] https://news.ycombinator.com/item?id=7651770

dmunoz··on The next version of DuckDuckGo
There is ddg.gg already.
dmunoz··on The next version of DuckDuckGo
I'm fairly certain that they do not proxy searches to Google.

I heave heard that they do use Bing and Yahoo search APIs, but this could be incorrect.

dmunoz··on Simple steps to implementing a programming language
There is also SICP Chapter 4: Metalinguistic Abstraction. More precisely, 4.1 The Metacircular Evaluator [0]. Chapter 5 is about compiling to a toy register machine, as well.

I'm a big fan of the approach taking in Programming Languages: Application and Interpretation (PLAI). The Brown course from 2012 has video lectures available [2]. This one uses what is very close to Racket as the implementation language. It's typed, and called plai-typed.

The course these days uses the later chapters of Programming and Programming Languages (PAPL). This uses a new language, Pyret [3]. It's a bit more clear, due to the implementation language and source language having obviously different syntax, compared to plai-typed vs. the s-expression based language implemented.

[0] https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-26.htm...

[1] http://cs.brown.edu/courses/cs173/2012/book/

[2] http://cs.brown.edu/courses/cs173/2012/Videos/

[3] http://www.pyret.org/

dmunoz··on Simple steps to implementing a programming language
Could you please link to this? I didn't find anything when searching for the relevant keywords, or see anything of the sort at http://docs.racket-lang.org/.
dmunoz··on Ask HN: What do you use to organize your knowledge?
I have written a few scripts to manage my abundant note taking.

In a specific directory, I arrange notes according to subject in directories, and the script parses them and spits out HTML files that displays them in a fashion I find useful. With MathJax, I can render LaTeX. It also spits out an index files so I can see at a glance my subjects and notes on those subjects.

I've been giving some thought to doing something more involved, so I can get full text search capabilities from the index page. It's something I play around with every so often as the inspiration hits me. I will not be surprised if this posts leads me back to playing with it for a bit, although I am busy for the upcoming week already.

You can trivially get something similar with something like vimwiki [0]. The only reason I went further was that I wanted greater levels of customization.

[0] https://code.google.com/p/vimwiki/

Edit: The full text search from the index is just a nicety given the way I like having the notes displayed. I can already grep from the command line, of course. I have other ideas about nice-to-have dynamic behaviour, but a lot of the stuff falls into the lower percentages of the 20% of the 80-20 split.

In The Pragmatic Programmer, one of the tips advocates keeping knowledge in plain text:

> Keep Knowledge in Plain Text

> Plain text won’t become obsolete. It helps leverage your work and simplifies debugging and testing.

The full text expands on the benefits, such as searchability and other stuff I can't recall at the moment.

I try to stay as close to possible to plain text as I can. Even Markdown is a bit heavy for the task, although I have given some thought to adopting it and avoiding needing any custom parsing.

Lastly, I wasn't clear why I output to HTML. I put them up on a server so that I can access them remotely. I can also upload notes, or input a quick note to a textarea and submit it. It's device-agnostic; I just need a browser. I haven't bothered to implement making currently existing notes editable.

dmunoz··on Nimrod for C programmers
I only know a little bit about Nimrod. My understanding of it is limited.

That being said, I believe a big draw is its metaprogramming abilities. In Nimrod, metaprogramming is done using Nimrod. In C++ you have the very limited, backwards compatible to C, C++ preprocessor and template metaprogramming. C++ is progressing slowly towards metaprogramming in C++ with constexpr. constexpr support is much stronger in C++14.

D is similar. In D, the metaprogramming language is (I believe) D itself, or at least very similar to it. D also has strong support for compile time function execution.

Nimrod also does a lot more to guarantee safety. C++ can only do so much, due to its (mostly) backwards compatibility to C.

dmunoz··on Thinking in Types
I understand the critique being made, but this seems like a slightly outdated view of Haskell. There is quite a bit of software being written in Haskell these days. One project that got some press recently is a long existing project that recently went open source, Cryptol [0].

While lots of projects in Hasekll continue to be libraries written for Haskell, there are also lots of languages using Haskell for their implementation language. Browse the GitHub trending repositories listing for Haskell [1] for an idea of what is being done with it.

[0] http://cryptol.net/

[1] https://github.com/trending?l=haskell

dmunoz··on Code Fellows Alumni Stats
It's not only the application process. Some of these programs kick out some successful applicants in the first few weeks, further reducing the field from which they pluck these success figures.

To be fair, Code Fellow seems to be upfront about this, since only 88% of successful applicants actually graduate.

Edit: More related to your point above, they are also up front about previous degrees held. 82% of their students had degrees before entering their program.

dmunoz··on The Story Of Larry Page's Comeback
It's not just journalists. Both Amazon's Betas and HBO's Silicon Valley could not resist the temptation to make Asperger's jokes in their first episodes. HBO's Silicon Valley's usage even made it into the trailer. To be fair, I suppose an argument can be made that the shows are reflecting the common view of people in technology.

It's weird to me, because I don't think being nervous around people you're not familiar with is at all odd. Plenty of people I have worked with are very shy around new people, but absolutely open up as you get to know them. I don't think many of them at all are with any significance "on the spectrum", ignoring the trivial argument you can make for everyone being on it to unnoticeable degrees.

dmunoz··on Elsevier journals – some facts
This is a long post, with a wealth of information that will take some time to digest. The comment section also has contribution from well targeted participants, and replies from Timothy Gowers himself, so it's probably best to comment anything substantial there.

However, I would just like to say that I am very happy to see Timothy Gowers is still on this case.

dmunoz··on Ask HN: jumping back into C++ after 4 years, what did I miss?
You're asking more specific questions that what I will cover, and they're good ones. It will be interesting to read how others reply.

For the other people looking, Stroustrup's A Tour of C++ [0] is the guide for getting quickly up to date with the "new C++", C++11 and onwards. It doesn't specifically cover C++14, but if you understand C++11, the few things coming in C++14 are for the most part minor enhancements to what is in C++11.

Scott Meyers should finish up the C++11/14 version of the Effective C++ series this year, and many are waiting for this. For now, his notes Overview of the New C++ (C++11/14) [1] are available for purchase.

If you like videos, there is a wealth of information from last years GoingNative conference [2]. More recently, at this years Build conferece, Herb Sutter gave a presentation on Modern C++: What You Need to Know [3].

Finally, come visit up over on reddit in /r/cpp [4]. Some heavyweights in the C++ world participate there, and the larger portion of participants are similarly knowledgeable in C++ as a whole.

[0] http://www.amazon.com/Tour-In-Depth-Series-Bjarne-Stroustrup...

[1] http://www.aristeia.com/Licensing/personalUse.html

[2] http://channel9.msdn.com/Events/GoingNative/2013?direction=a...

[3] http://channel9.msdn.com/Events/Build/2014/2-661

[4] http://www.reddit.com/r/cpp

dmunoz··on Ask HN: Your favorite YouTube channels?
Confreaks is great. The youtube page linked to is nicely organized, and looks to get more attention that my pointers, but three other resources are

* The Confreaks homepage at http://confreaks.com/

* The Confreaks listing by conference at http://confreaks.com/events

* The list of recently added videos at http://confreaks.com/videos

The last one is a bit hidden, as you get to it by clicking on Search on the main page

dmunoz··on Ask HN: What source code is worth studying?
I'm interested in this as well. Working on tooling to make this a more efficient process is something that I daydream about often, so it would be interesting to hear some perspectives.

Do you generate tags and hop around functions as you discover them? Do you do a high level overview of the important bits first, and then dive in later? I am sure it is different for everyone, but would still be interested to read about others approaches.

I've had this idea for awhile about bringing up a project in a methodical way in its source control history, and adding new features in a similar manner, so that it would be easier to introduce a codebase to those starting out in it. The problem with lots of large codebases is that as time goes on, configuration details or special cases are added on that obscure the meat of the program. If it were trivial to see the early version, and its evolution, it would be easy to pick out the mental model of what the code actually does.

dmunoz··on Ask HN: What source code is worth studying?
Great series of books! There are three now, and a fourth is being worked on which is very relevant to this posts query. There isn't much too it yet, but its working title is 500 Lines or Less, and it aims to implement some manner of a working application in 500 lines or less. There is a GitHub repo [0] where the project is being coordinate.

[0] https://github.com/aosabook/500lines

dmunoz··on C/C++ Fiddle
GCC Explorer is awesome, but I would not call it a "C/C++ Fiddle".

It's really slow (unusable) at the moment due to, I reckon, being on HN. Do revisit it later!

I have had some issues with it in the past when importing just iostream and trying to see the output for a small example. The combined source is too large, and GCC Explorer refuses to compile and show the assembly sometimes for even small examples.

Do play with the settings. Colourise is especially nice.

The code is on GitHub [0], so I suppose you can self host it, although I have not tried to do so yet.

[0] https://github.com/mattgodbolt/gcc-explorer

dmunoz··on Is There Anything Beyond Quantum Computing?
> What’s more, there are recent developments in quantum gravity that seem to support the opposite conclusion: that is, they hint that a standard quantum computer could efficiently simulate even quantum-gravitational processes, like the formation and evaporation of black holes. Most notably, the AdS/CFT correspondence, which emerged from string theory, posits a “duality” between two extremely different-looking kinds of theories. On one side of the duality is AdS (Anti de Sitter): a theory of quantum gravity for a hypothetical universe that has a negative cosmological constant, effectively causing the whole universe to be surrounded by a reflecting boundary. On the other side is a CFT (Conformal Field Theory): an “ordinary” quantum field theory, without gravity, that lives only on the boundary of the AdS space. The AdS/CFT correspondence, for which there’s now overwhelming evidence (though not yet a proof), says that any question about what happens in the AdS space can be translated into an “equivalent” question about the CFT, and vice versa.

If you would like to read more about this, the author of this article has another blog post [0] that discusses the Susskind paper "Computational Complexity and Black Hole Horizons" [1] in its first half.

They key point, for those who don't have time to read the post:

> On one side of the ring is AdS (Anti de Sitter), a quantum-gravitational theory in D spacetime dimensions—one where black holes can form and evaporate, etc., but on the other hand, the entire universe is surrounded by a reflecting boundary a finite distance away, to help keep everything nice and unitary. On the other side is CFT (Conformal Field Theory): an “ordinary” quantum field theory, with no gravity, that lives only on the (D-1)-dimensional “boundary” of the AdS space, and not in its interior “bulk.” The claim of AdS/CFT is that despite how different they look, these two theories are “equivalent,” in the sense that any calculation in one theory can be transformed to a calculation in the other theory that yields the same answer. Moreover, we get mileage this way, since a calculation that’s hard on the AdS side is often easy on the CFT side and vice versa.

[0] http://www.scottaaronson.com/blog/?p=1697

[1] http://arxiv.org/abs/1402.5674

dmunoz··on Show HN: Learning SICP with Understudy
> only in synchronous conversation will you get the back-and-forth "wait what? How's that work?"

There is something to be gained from synchronous conversation, but what you've listed can be done asynchronously.

In either case, my point was IRC doesn't have to always be synchronous. When you're both available, the conversation can be synchronous.

I agree that there is a huge benefit from having a synchronous, spoken conversation, but my reply was contesting that "Understudy gives you is a one-to-one relationship with another person who cares" in contrast to IRC. IRC can do exactly that, so what sells Understudy is certainly something different.

dmunoz··on Show HN: Learning SICP with Understudy
Not really. The submitter here replied in a post "Why and How to Start Your SICP Trek" [0] with how this app could assist, and now it's a blog post.

[0] https://news.ycombinator.com/item?id=7546244

dmunoz··on Show HN: Learning SICP with Understudy
You said the (exact) same thing in the thread this blog post spun out from, and I didn't bother to challenge it, but I will now.

You're not being fair to IRC. IRC can just as easily give you a one-to-one relationship with another person who cares. Private messages exist, among other means. Moreover, the experience can be completely asynchronous. You don't have to both be available to make progress.

The main benefit of something like Understudy is to mediate the introduction of users to mentors. There is something to gain from a sustained conversation with the same mentor, but Understudy can make no more guarantees about the availability of your mentor than IRC can. Furthermore, that both the mentor and the mentee have to pay $5 if they're using the app more than two hours a month demolishes the potential userbase, not to mention that you also need an iOS device. IRC is multi-platform, free, and already attracts the sort of individuals that would be capable and willing to mentor users in something like SICP.

dmunoz··on GHC 7.8.1 released
Learn You a Haskell for Great Good! has already been recommended, which I would have said if it had not yet been.

There is also Real World Haskell [0]. It's a lot less long winded than LYaH, which is good or bad depending on how you like to digest information.

Also, check out FP Complete's FP Haskell Center [1]. It contains community written tutorials with inline runnable code examples, so you can really get a feel for Haskell by manipulating and playing with the examples right on the site.

[0] http://book.realworldhaskell.org/read/

[1] https://www.fpcomplete.com/business/fp-haskell-center/

dmunoz··on Rust 0.10 released
> Most likely the tutorial didn't get updated. It doesn't get a lot of love.

Ah, that's a shame. I actually just mentioned the tutorial as an awesome resource in another comment.

Maybe my understanding of the Rust language isn't as good as I thought it was, as most of it comes from reading the tutorial and the related guides linked at the end.

I'm a big fan of high quality documentation, and I assumed since the current tutorial was so well written, it was being handled actively already. This is actually one area I would love to step up and help Rust with. I've previously gone so far as to read some of the compiler implementation, but my experience with programming languages is still stuck in the interpreters stage, so it didn't get very far.

dmunoz··on Rust 0.10 released
It's hard to say, as it depends on what your previous experience is with similar languages to Rust.

Plenty of people are suggesting Rust for Rubyists, which is a good resource. I personally found it too simple, which is not a reflection on the resource but instead what I was looking for. It is likely to be exactly what plenty of people are looking for.

I wanted to give some motivation for keeping on at the official tutorial. Some of its contents went over my head initially as well, but I read it again a couple of weeks later, and everything clicked into place. It's a really awesome guide to the language, and the links at the end to guides to various more specialized parts of the language are similarly awesome.

← PreviousPage 2 of 6Next →