HNHacker News
TopNewBestAskShowJobs

esfandia

461 karma · joined August 4, 2011

babak@sce.carleton.ca http://www.sce.carleton.ca/faculty/esfandiari.html
submissionscomments
esfandia··on Science’s Pirate Queen
I wonder if university libraries around the world could federate their efforts and take on the burden of publishing and hosting articles. The money they currently spend on subscriptions should more than cover the expenses.
esfandia··on CSS Grid changes everything [video]
Reminds me of GridBagLayout in Java Swing. Can anyone here who has experience with both confirm this?
esfandia··on Amazon Health
They could then also force people to eat healthy (i.e., at Whole Foods) or else lose their health coverage! ;)
esfandia··on How Schopenhauer’s thought can illuminate a midlife crisis
Yes, to use the terms of the article, it would be about turning the "telic" into an "atelic".
esfandia··on Thunderbird Starts Working on Improving Its Interface
I don't really care either way about the colors and the fonts. I care more about functionality, and the current version still has a very annoying bug, where there's a type of spam email that Thunderbird will choke on when trying to download it using POP. I have to use webmail to go manually delete the offending email so that Thunderbird can download the rest of the emails. Last time I investigated this, it seems that others have reported this problem, but nothing's been done about it. I'm very close to moving to Outlook now (which would also help with calendaring, but that's a whole other can of worms), and a simple re-design isn't what's going to keep me as a Thunderbird user.
esfandia··on The Rise of the State Machines
Couple of questions/comments/nitpicks about the article:

- does the turnstile example in the article actually need a state machine? When you insert a coin it unlocks, when you push it locks. No need to remember the state you are in.

- in the data-fetching example, it says that in the "fetching" state it is not /accepting/ any clicks. But then shouldn't this be explicitly specified in the state machine, by having the click event loop back into the fetching state? I think it would be less error-prone and more systematic to account for all the events in all the states.

esfandia··on Older Adults' Forgetfulness Tied to Faulty Brain Rhythms in Sleep
Interesting. It's like the Refactoring phase of TDD. So basically during the day you experience new observations ("tests" if you will), you address/process them however you can on the spot ("green bar"), then during sleep you take stock and generalize so you can reuse the experiences of the day for the future ("refactor").

I've been seeing this TDD process in a lot of things lately. Scientific progress seems to follow the same process as well (at least that's one way to capture what Popper or Lakatos have been telling us, not that I've actually read them yet mind you).

esfandia··on What ORMs have taught me: just learn SQL (2014)
What's the current state of object-oriented databases? Any progress since good old Gemstone? Why was Gemstone unsuccessful? Cost? Performance? Tie-in with Smalltalk? Is there any promising OODB being used these days? Because now that would take care of the OO-relational impedance problem.
esfandia··on The science that’s never been cited
It seems to me, based to some extent on my own experience, that a paper has a harder time getting cited when it's a bit off the beaten track (and might in fact be more original, trail-blazing and interesting), because by definition it's a bit lonely in its field. Conversely, when the work is fairly derivative it gets lumped in with others and is easier to cite as part of the related work section of another paper, even if its influence is minimal.
esfandia··on Decentralized Web Primer
I agree, it seems disingenuous to describe IPFS as the only way to implement a decentralized web. For example in our group we've explored the idea of essentially a decentralized Merkle tree where the document id's are resolved via P2P gossip, like in early versions of Gnutella.
esfandia··on Waymo now testing its self-driving cars on public roads with no one at the wheel
What simulators, if any, do these self-driving car companies use for testing and development? Is any of these simulators available to the general public (I'm guessing probably not)? I read about something called Carcraft in Waymo's case, but it doesn't seem available.
esfandia··on Kotlin Features I miss most in Java
Regarding the conciseness of lambdas and collections, why doesn't Java offer methods such as map(), filter() etc directly in AbstractCollection? The implementations would then delegate to stream internally, so no need for the programmer to invoke stream(). I realize there are different kinds of streams, but having a sequential stream as a default would be useful. That would be one step closer to the Kotlin example.
esfandia··on What have been the greatest intellectual achievements?
McCarthy, as one of the founders (+ Lisp!) should probably be there.
esfandia··on Hasse diagram of the 2008 Olympic medal table
I did this exact thing (even the part where I displayed the results using Graphviz) to come up with a partial ordering of General Managers of Major League Baseball teams. The partial order was simply:

GM_of_Team A > GM_of_Team B iff (endofseason_ranking (A) > endofseason_ranking(B)) and (budget(A) < budget(B))

So this would capture how much "bang for the buck" a GM is getting. I did it for a couple of years, and not surprisingly, there's quite a bit of year-to-year variability. Teams go through cycles where they increase the budget to capitalize on a favorable situation, but then they get saddled with bad contracts and are disadvantaged in the draft, etc. Still, if you do this over the long term, there could some teams/GMs that are consistently good.

I remember that my first attempt generated really busy diagrams because the ordering is transitive, so if you simply draw an arrow whenever the ordering holds you end up with the transitive closure. A couple of hacks later (basically, add a test to check if this ordering can be obtained by triangulation, and if so, don't display it) I managed to end with the same kind of diagram as the OP.

esfandia··on Interview with Ryan Dahl, Creator of Node.js
> Edit: Heck, NGINX was an asynchronous, event driven web engine released in 2004 and written in C:

In the interview, he mentions himself that Node was inspired by Nginx.

esfandia··on The significance of plot without conflict (2012)
Antonioni's movies are like that. Contemplative pace, not much dialogue or plotline, beautiful pictures and actors/actresses, ennui, some philosophical thematic. Yet it's all highly engrossing.
esfandia··on The significance of plot without conflict (2012)
I agree. Maybe tension/release are better terms to use then than "conflict". In both the structures presented in the blog you see tension followed by release. It's also pervasive in Western music (don't know enough about Eastern or African music to know how they work).
esfandia··on Machine Learning for Humans: A Beginner's Guide to AI/ML
They have a link at the bottom of the page where you can send them an email to get a pdf. You might receive more than just the pdf...
esfandia··on On Living and Thinking in Two Languages at Once
I started frequenting online forums precisely to help we practice expressing my thoughts in English. I try not to get into arguments though. :)
esfandia··on Data Structures for Coding Interviews
The problem with links is that you don't know where they are going to take you. When I have such a nice piece of text to read I don't want to click and potentially land in a completely different site, have to click "back" and all that distracting stuff. That's probably why your link didn't "register" with me. In your case in turns out the link nicely expands in place, so that's pretty cool. I'd still just inline that little explanation on Big O, since you keep referring to it in the rest of the text. It's more than a mere footnote.

Now this is all my own experience, and others may disagree, so don't necessarily go changing things just on my account!

esfandia··on Data Structures for Coding Interviews
Your explanations were excellent. I especially liked the way you introduced hash tables using a simple array where the indices had special meaning.

The diagrams are clear and helpful.

Only nitpick: not sure how somebody who is supposed to learn what an array is by reading this is supposed to already know the meaning of Big O notation. So maybe a little intro to Big O complexity somewhere in there would help as well.

esfandia··on Ask HN: What books had the greatest effect on how you structure your code?
In early Java versions, functions were not objects, and therefore could not be passed as parameters. So you needed patterns such as Command or Observer. In Javascript, for example, you wouldn't need them. More recent versions of Java, with the introduction of lambdas for example, are also reducing the need for these patterns.
esfandia··on Is Software Engineering Possible?
Calling the discipline Software "Engineering" was the worst thing that could be done, at least given the current state of the art. Because of that, people thought you should write software the way you build a bridge or a car. The waterfall method came out of that, and it took decades to realize and recover.

Software development is more reliant on discrete math (and more generally the ability to reason abstractly) than math that helps model the physical world. Hopefully, Professional Engineering bodies will one day realize this and will adapt their program accreditation criteria accordingly.

esfandia··on The US has forgotten how to do infrastructure
I wouldn't be surprised if infrastructure costs and delays were going up everywhere though, including France. Would be nice to have actual data.

I think it comes down to new non-functional requirements: safety, environmental concerns, accessibility, liability protection, etc. With these requirements, Paris or London or New York would have never had a subway system in the late 1800's or early 1900's. By now though, all these systems have been maintained and modified to comply to the new non-functional requirements over time.

So if you added the accumulated cost of running a subway system today, while adding all the maintenance costs over time, it might be the case that the cost of building the same thing from scratch would be cheaper, but unfortunately without the benefit of having passengers enjoy it (and pay for it) for over 100 years (thus partially subsidizing the maintenance costs).

So you could even consider something as rigid as a subway system built in an "agile" way, with a quick and literally dirty MVP out of the way early, and additional non-functional requirements added over the course of decades. It's just that those requirements weren't known or wanted initially.

Now would it be ok to do the same now? Have a subway system in a city that needs it, but without bathrooms in stations, with no pollution requirements initially, not accessible to the disabled, (name your other requirements not necessary for a MVP), but with the benefit that at least it exists now, it can be subsidized by passengers that are willing to use it, so that over time those other requirements are met. Better have them later than never.

esfandia··on The US has forgotten how to do infrastructure
I can't explain the difference, but I bet that infrastructure costs have gone up drastically there as well.
esfandia··on Narrows: online storytelling system
I always liked this idea of a "ruleless, diceless RPG". I was always too lazy to read the RPG manuals, I didn't necessarily like the Tolkien universe, and I never liked randomness in battle outcomes. So the only way you could get me to be the gamemaster was to just let me create my own universe and let me decide on the outcome without resorting to dice. Usually plain common sense is enough: if you decide to attack a fully armed soldier barehanded, well you just die.
esfandia··on Uncensorable Wikipedia on IPFS
There doesn't need to be a merge. Just pick the most promising version and edit it to create a new version. The old version sticks around. An add-only data structure.
esfandia··on Uncensorable Wikipedia on IPFS
An alternative is to eschew conflict resolution altogether, and have various edits co-exist. That would basically be like the fork model on GitHub. The main issue then is how to help the user choose between competing edits. That's where metrics based on upvotes or the social network topology can help.

We have some prior work on building a peer-to-peer wiki and dealing with the issues above: http://onlinelibrary.wiley.com/doi/10.1002/cpe.3420/abstract

esfandia··on Kazakhstan spells out plans for alphabet swap
I hope this question is relevant enough to the thread to ask here: what language did the people of Turkey, and by extension most of the Turkic-speaking countries, speak before the Mongolian invasion? Are there traces of that former language in their current one? I know that there's definitely plenty of Arabic and Persian words still in use, and since Ataturk there's been a lot of French/other latin languages added as well.
esfandia··on Textbook manifesto (2016)
I just implemented the reading quiz idea this term, and I thought that it went really well. Give the students a manageable chunk of reading material (in my case, the material came from various sources, not a single textbook), and give them an offline quiz to test their reading comprehension. The quizzes were graded by a TA, but the weight was quite small; small enough not to matter if they cheated (and cheating won't help them in the final exam. Aside: is it cheating if they didn't read the material but just hunted for the answers by skimming?) but enough to provide extra incentive to read.

In class we go over the answers to the quiz. I don't post the answers (the TA will have provided them the feedback they need when grading); rather we make it an interactive session. I answer questions the students have, we go over examples, I supplement the reading with slides if need be. Effectively, a flipped classroom.

This was done more out of necessity: first time teaching the course, no proper textbook (and in a quickly changing tech landscape for the topic at hand), lack of confidence in my own understanding of the material (I also tried gathering student questions beforehand so I could investigate them offline and come to class prepared to answer them), but now I think I'm going to stick to this way of teaching this course in the next installment next year.

← PreviousPage 5 of 8Next →