Using deep learning to listen for whales - <AUTHOR> http://danielnouri.org/notes/2014/01/10/using-deep-learning-to-listen-for-whales/ <comment><USER2> By the way, this is written by the sixth-place winner of last year's Kaggle Competition for detecting Whales. [1]

I think another very interesting point brought up was when that even such a well-ranked model on Kaggle did a poor job when applied to an different dataset and had to be retained, which is a nice example of over-fitting.

Excellent article and nice details, thanks!

[1] [http://www.kaggle.com/c/whale-detection- challenge/leaderboar...](http://www.kaggle.com/c/whale-detection- challenge/leaderboard)

<comment><AUTHOR> And third-place winner of the second whale challenge :-) [https://www.kaggle.com/c/the-icml-2013-whale-challenge- right...](https://www.kaggle.com/c/the-icml-2013-whale-challenge-right-whale- redux)

This second challenge actually featured a different dataset with different hydrophones used etc. But even without retraining (which was rather trivial to do at that point; the hard work of finding the right hyper parameters had already been done), I would have still scored well above 90%. And I think Nick Kridler reported the same.

So overfitting yes, but not too much considering there was a different sensor.

</comment></comment><comment><USER3> I have no idea if it's a common technique or not, but a couple years ago I met some guys similarly using image analysis of spectrograms. They were trying to diagnose sleep apnea based on of heart rate data. They had a company developing a device and claimed to have patents on the technique, but I forget the name. I just remember that it seemed like a convoluted algorithm to me, and they agreed, but they claimed it worked better than any traditional approach they tried.

<comment><AUTHOR> The nice thing about these convolutional neural nets is that they're not convoluted at all. ;-) It's basically feed the raw data, in this case spectrograms. Traditional approaches in this field are usually much more convoluted, because they involve a complex feature extraction part. Which tends to be specific to a certain species.

</comment></comment><comment><USER4> Converting it to a spectrogram was a nice step.

From the perspective of other source data, I wonder if that limits you to five features (X,Y and RGB) or whether you could extend to fictional/non-human- visible colours as extra features and just be unable to view them in the weight maps.

<comment><USER5> It mentions in the article that the spectrogram is really grayscale instead of having RGB channels.</comment></comment>


Ask HN: How to take advantage of living in the Bay? - <AUTHOR> Before moving to the Bay, I had hoped that the Bay to America would be like America to the rest of the world.
I grew up in a developing country with an authoritarian government. Moving from there to an American liberal arts college, I learned a lot more about how the world works: politics, economy, technology, history, arts--the whole gamut. But a lot of that learning didn't happen just because I was in America. It happened also because I reached out the right people and was open the right opportunities.
Now I'm in the Bay area working in data science for one of FAANG. My daily life so far has been 9-5 at the company, 3 meals at the company, conversions with people at the company. The work is interesting, but certainly not mind-blowing (given that I'm quite similar to my teammates--we're all hired by the same standards after all.)
How to take advantage of being in the Bay to grow intellectually? Like when I moved to the States,  I want to make a conscious effort to grow. Should I reach out more to people doing great work at my big corp? Do I need to go out (then where?) Where are the ideas that challenge my beliefs and work that forces me to learn? <comment><USER2> You should keep an eye on the events calendars - and not just tech meetups. Get outside of the tech bubble.

Here are some things I've enjoyed:

Live Jazz at Club Deluxe, Madrone Art Bar, Revolution Cafe, Amnesia, Mr. Tipples, SFJAZZ

First Fridays in Oakland - check out some local art

Get a museum membership and visit all of the museums, attend events, or check out some street art.

Extension courses at Berkeley Extension or City College of San Francisco, GIS Education Center, etc. Take something random like a foreign language or art class.

Free city walking tours to learn about the history of different SF neighborhoods:

[http://www.sfcityguides.org/current_schedule.html](http://www.sfcityguides.org/current_schedule.html)

Wander around to different views of the city like Corona Heights, Tank Hill, Buena Vista Park, tiled steps, etc. There are some meetups that do this kinda stuff together also.

Rent a bike and ride through Golden Gate Park to Cliff House.

Return of the Cypher live freestyles and often breakdancing at the Boom Boom Room.

Volunteer your time and skill for educational orgs like ScriptEd or TEALS or social/political purposes like GeoCorps SkillShare or Code For America.

Eat at places besides your company. The Bay Area has so many different cuisines from around the world.

Go to one of the Nerd Nite / science events at a place like Rickshaw Stop or meet some other types of people at bar trivia.

Join an intramural league or go to a board game night.

<comment><USER3> This is a great list. Thank you for sharing!

</comment></comment><comment><USER4> If you want to get away from the computer and do something with your hands I'd thoroughly recommend The Crucible [[https://thecrucible.org/](https://thecrucible.org/)].

They offer lessons in all kinds of crafts including blacksmithing and glass working and there are loads of interesting artists with studios in the building.

<comment><USER5> What andypea said ^^^ Crucible is awesome. How could you not want a chance to work with molten metal? And the wide range of people == wide range of perspectives. Lots of kind, creative, and smart people

</comment></comment><comment><USER6> Don't forget to enjoy some of the best hiking in the world. Go to mt tam and Muir beach. Enjoy the redwoods.

</comment><comment><USER7> You can grow intellectually in only one single domain in the Bay Area, which is Tech. That's what it's known for, that's also why high figures like Thiel, Ferriss, etc. left the Bay. It is good for a short period of time, but if you're above average in terms of curiosity as a whole, you need to move out to grow intellectually. You'll get stuck in the Bay otherwise.

<comment><USER8> You can grow intellectually anywhere.

<comment><USER7> You'd 10x your intellectual growth in a diverse environment.

<comment><USER9> Why does this have to be with the available info and communication possibilities of the internet? Mixed with a bit of travel for events/conferences?

<comment><USER7> This is a very simple version of learning you're discribing :) the Internet and conferences... the world outside of the Valley doesn't work this way.

Here are some answers from a broad perspective, couldn't find the Elon Musk answer:

[https://www.youtube.com/watch?v=v_NhYV63K5E](https://www.youtube.com/watch?v=v_NhYV63K5E)

[https://www.youtube.com/watch?v=Vkawh2kiAYQ](https://www.youtube.com/watch?v=Vkawh2kiAYQ)</comment></comment></comment></comment></comment>


ARM clockless processors (power savings for mobile devices) - <AUTHOR> http://www.handshakesolutions.com/Technology/Index.html

<comment><USER2> Maybe I simply wasn't willing to digg deep enough, but that seemed more like marketing material than anything technical of real value to hacker-type people.

Some circuit designs, examples etc of how you can make truly clockless designs that "just plug and play" would have been appreciated.</comment>


Is Romantic Desire Predictable? Machine Learning Applied to Initial Attraction - <AUTHOR> https://www.ncbi.nlm.nih.gov/pubmed/28853645?dopt=Abstract <comment><USER3> It's also so timing-dependent. My wife and I are not sure we would have been attracted to each other if we had met during quite a few other times in our past lives. There have to be some factors about a person that are about timing and emotional state, beyond simply just being single and available.

EDIT: "past lives" refers to the past of each of our lives, not reincarnation. :-)

</comment><comment><USER4> ... They should run convnets on pictures on the subjects, would be much more accurate, I'm sure. Speed dating is a first impressions thing. Physical attractiveness is huge, I'm sure. I don't know if the convnet would have time to learn what attractiveness means, but that's more of a technical (albeit important) detail. Meta learning (including transfer learning) and more data could help a lot with this

<comment><USER5> But we don't see in the same way photographic cameras see. We have a very narrow field of vision and compensate for it by constant eye motion. Vision is never static. And vision is only part of the attraction equation -- there's so much we smell without consciously articulating...

<comment><USER6> Good point. Maybe this 'scope' could eventually be handled with another layer to predict eye trace. It would require a lot of eye tracking data. I used to be a film editor and I think this might be similar to how composition influences cut techniques. I think this sort of thing is pretictable in context of film editing but that we don't have enough words to describe it.

Example: When cutting a scene with a lot of people eyes, you can really push the limits because of the high likelyhood that the audience will have a certain amount of focus on some eyes.

<comment><USER5> Separate, less tangential reply.

I think what could really help computer vision is not as much emulating human eye tracking as it is understanding images as short durations rather than instantaneous shots. The point is that during the eye's saccade reality is always changing.

Think of how close-distance flirting works: you can't use your stereo vision to focus on both her eyes at once -- you have to alternate ever so slightly, occasionally meet her eyes focusing on yours and then lose them. All of this happens automatically -- our visual perception of the situation is intrinsically dynamic.

Of course, here we're getting close to Henri Bergson's ideas about time and duration and Hubert Dreyfus' reading of Heidegger as a theoretician of situated existence. This is the same Hubert Dreyfus who told Simon, Minsky, etc. in the 50s they didn't have a chess computer yet and has recently passed away as a skeptic of automated cars.

Did you notice self-driving cars are slowly disappearing as a near-term possibility? We still haven't figured it out -- we're trying to teach computers with frozen cases (MNIST, Imagenet, etc.) when the real problem is training them on actual situations.

They don't need to emulate humans at all. They just need to exist in the same precise sense we exist. Computing power will keep increasing and I assume so will "deep learning" optimizers, but we need to figure out how to give computers a Dasein.

<comment><USER7> > we're trying to teach computers with frozen cases (MNIST, Imagenet, etc.) > when the real problem is training them on actual situations

They are training AI agents on simulators, which are dynamic datasets as opposed to ImageNet which is a "frozen" dataset).

> we need to figure out how to give computers a Dasein.

Google and the whole AI community have been hard on the Reinforcement Learning bangdown. RL is based on situating an agent in the environment (real world or sim) where it learns to interact and achieve goals. That's situated AI.

My intuition is that simulators are key to the next AI phase - where a neural net would be like a scientist creating new hypothesis and experiments, and the simulator would be like a lab, testing out those ideas (simulation + MC search + neural nets)

<comment><USER5> > My intuition is that simulators are key to the next AI phase

I hope so. Reinforcement learning and apprenticeship learning (inverse RL where the machine watches a human dealing with the problem) are probably the ground zero before which everything will look like toys and Kaggle problems.

</comment></comment></comment></comment></comment></comment><comment><USER8> This is just a log way of saying we are looking at the wrong metrics. Good on them for publishing a 'negative' finding, and not clawing for some trivial clickbait casualty for attention.

<comment><USER9> I mean, I'd start at the very question - romantic desire? I mean, were they testing against likelihood for partners to make out? Go home and sleep together? Go on second dates? Admit mild attraction but not instigate further action? Date a whole lot and eventually break up? Or marry?

The things people look for in a partner to go home with for the night are different from the things people find "just generally attractive" (oh he's hot) which are different from the things people find good for long-term dating. I mean, obviously, but my point is the layer of complexity doesn't just start at "different things that cause attraction."

</comment></comment><comment><USER10> Here is the full paper: [http://journals.sagepub.com/doi/10.1177/0956797617714580](http://journals.sagepub.com/doi/10.1177/0956797617714580)

</comment><comment><USER11> > Each participant met each opposite-sex participant attending a speed-dating > event for a 4-min speed date

I wonder if the results would be different if the participants got to know each other better. In 4 minutes you're not going to know your partner very well, and any judgment would probably be based entirely on physical attraction.

<comment><USER12> I've done speed dating twice. Within a few minutes you can usually tell whether or not you'd even want to go on a first date because while physical attraction is one thing, so is having a conversation. I've certainly struggled to talk to a few women who quite frankly have very little in common with me or who could barely muster a few words throughout the conversation. That was enough to basically not want to ever go on a first date with them.

<comment><USER13> It's a tricky issue. There's lots of studies showing that people form pretty meaningful impressions quickly, as you're saying, and I think speed dating captures some of that.

On the other hand, there's lots of evidence suggesting that the things they were measuring are important for things like long-term relationship survival, etc. There's also studies showing that these "thin slices", while accurate, are not as accurate as what you'd get from intimate long-term knowledge of someone.

This isn't anything astonishing, but I have difficulty interpreting this as much more than "things like personality and attitudes are not very predictive of your superficial attractions to potential partners." I don't mean "superficial" dismissively, I just mean it in the sense of "not based on very much information."

Another way of looking at it is: how _could_ you predict attraction in that time frame based on longer-term, deeper-seated attributes, when that kind of timeframe doesn't allow for assessment of those sorts of things? It's one prediction, but I doubt if you stepped back and came at it without knowledge of this study, that you'd make that prediction. I certainly wouldn't (I'm trying to imagine me predicting my relationships from the first 4 minutes-- sure, I'd be able to guess pretty well who I _definitely wasn 't_ attracted to, and maybe who I was _definitely was_ attracted to, but beyond that? pbfbfbtttt...)

I wasn't able to predict my most meaningful relationships from a month or so of being around them, sometimes on daily bases. Looking back at them, I might have had some kind of subconscious reaction I wasn't able to process, but I wasn't aware of what it meant at the time, which renders it useless.

<comment><USER7> What looks amazing from the outside might be quite stressful from the inside, and vice-versa. I think we aren't able to predict a relationship before we experience it because each person adapts to the other, and the result is undetermined before the process starts. A person becomes changed in a relation, we can't predict even how we are going to be, let alone the significant other. That has been my experience - I'm rather pessimistic at dating services being able to match people up. It's more of a game of chance.

<comment><USER14> Astute observations.

However, do dating services ever do consistently better than chance (whatever chance means in such situations)? Plenty of Fish IIRC used to publish lots of stats.

</comment></comment></comment></comment></comment><comment><USER15> Last sentence of the abstract:

> These results suggest that compatibility elements of human mating are > challenging to predict before two people meet.

<comment><AUTHOR> That's a pretty generous definition of "suggest." Could be that they aren't studying the right metrics before meeting.

<comment><USER16> Exactly. It's possible there are other features that would have more predictive power, they just haven't figured out how to quantify them. The title of the paper could be, "We're still not very good at describing what makes people attractive."

</comment></comment></comment><comment><USER17> Judging a book by its cover, maybe... but personality is a huge, _huge_ component of romance, and simple questionnaires, even with free-form, essay- style text responses, are unlikely to reveal enough to predict anything by survey alone.

Arranged marriages certainly seem to permit a capacity for arbitrary pairings, but when you consider the hereditary aspects behind an arranged marriage, where parents are choosing for children, the reality is that a parent's approximate attraction to someone they select for their children, even by proxy through that someone's parents, will probably land closer to what their children would intuitively approach on their own, than random chance.

<comment><USER18> An arranged marriage is going to be a social and economic positive to at least on party and neutral or positive to the other.

A marriage is less likely to fail when it causes enough upsides to be worth the downsides.

People don't like the concept of trophy wives, gold diggers and strategic marriages because the pros and cons each side brings to the table are incredibly dissimilar in nature and the perceived value of them is highly subjective so to most people they look like a bad deal for at least one party. On the other hand only two people have to think it's a good deal for it to work out.

<comment><USER19> I don't think we can necessarily assume that an arranged marriage is positive- to-neutral for both members of the couple, however. Parents may act in their own best interests or those of other members of the family, even if they tell themselves they are putting their child's interests first. Practices like dowries, and issues of gender inequality and the socio-economic status of families and clans, further cloud the issue.

Which is not to say that leaving it up to the kids themselves is always successful...

<comment><USER20> So parents pick suitors and daughters have the power of veto. That way parents filter out bad boy thugs (who may damage her face) and those of lower economic/social classes (who may reduce her to penury). Daughter filters out people she finds _repulsive_. The traditional model as I understand it.

</comment></comment></comment></comment><comment><USER21> This explains tinder's success.

Cut the "matching", just use first impressions as the primary filter.

Though, this raises all sorts of new problems in the romantic ecosystem.

<comment><USER18> Exit strategies aren't just for startups.

</comment></comment><comment><USER22> If they find anything, they oughta not publish and start a science-based dating site. ;)

</comment><comment><USER23> Yes it is predictable. Based upon the immunohistological complex of the participants. You won't find anything but red herrings otherwise.

</comment><comment><USER24> Two exact same people can meet in different circumstances and either fall in love or not.

If anyone has a subscription to YouTube Red I would recommend watching this episode from many years ago:

[https://youtu.be/EMeW6hSiZ6Q](https://youtu.be/EMeW6hSiZ6Q)

<comment><USER25> > YouTube Red

FWIW, I have YouTube Red, and this video says I need to buy a $150 season to watch it.

If anyone has hulu, here's a link

Star Trek: Voyager S4 E22 Unforgettable [https://www.hulu.com/watch/441748#i0,p20,s4,d0](https://www.hulu.com/watch/441748#i0,p20,s4,d0)

</comment></comment><comment><USER26> We live in strange days! Really we can think that desire is predictable and measurable? The right question shoud be how much we dont know of the human nature?

<comment><USER27> > _Really we can think that desire is predictable and measurable?_

We don't have to think of it philosophically.

If researchers can train some ML algorithm to predict it, then it is predictable, end of story.

If not, it's open (it could still be predictable and they couldn't come with the right algorithm, or it could just be too fuzzy, or even impossible to measure).

That said, if we drop it from "love" to simple "desire", then most of it should be fairly predictable and measurable with very small margin of error.

Humans are not that much of unique snowflakes as they say. In a given culture, the majority of the population will converge a lot in what they find attractive and what they don't -- this has been studied before.

</comment></comment><comment><USER28> Alright, who's ready to learn some uncomfortable truths? Background: for fun I used to help friends improve their standing in dating, and now I am turning this into a side business focused on increasing men's success rates for online dating. To great effect btw.

> Matchmaking companies and theoretical perspectives on close relationships > suggest that initial attraction is, to some extent, a product of two > people's self-reported traits and preferences.

Right from the first sentence, I can tell the results are going to be awful.

Here's the truth: appearance is significantly more important than anything else. I mean the face, the headshot from the chest and up, the body. But mostly the face. This is for both male and female attractiveness. The rest of one's "profile", their traits and preferences, just make for conversation topics unless there's something so polar opposite that it becomes a deal- breaker. I.e. in my research these are "threshold factors" not continuous variables for correlation.

> Each participant met each opposite-sex participant attending a speed-dating > event for a 4-min speed date. Random forests models predicted 4% to 18% of > actor variance and 7% to 27% of partner variance; crucially, however, they > were unable to predict relationship variance using any combination of traits > and preferences reported before the dates.

And there are the poor results, as I expected.

We are shallow. Or so it seems. But we are actually incredibly complex processing machines. I can tell your levels of strength, aggression, trustworthiness, and intelligence fairly decently from looking at your face. I can also tell what your diet is like, how healthy you are.

Maybe not explicitly, but subconsciously. And women are amazing at this (we're better at looking at breasts and hip-to-waist ratios). Here's an interesting video getting into some of this: [https://www.youtube.com/watch?v=rVE6kZW88lc](https://www.youtube.com/watch?v=rVE6kZW88lc)

So how do I literally 10x a man's results in terms of his OkCupid profile? In terms of measured message responses received, and dates achieved?

I get them in shape. I fix their diet. I cut them to <12% bodyfat while adding pounds of lean muscle. I increase their testosterone levels as much as naturally possible over a 90 day period to start (that's my basic service). And then I take proper photos -- men, don't ever use a smartphone for a headshot. Smartphones have terrible focal lengths, lengthening your faces and making you look more feminine. Since it slims the face, I suspect a lot of social media heavy women are letting themselves gain weight because in their selfie photos (taken from a slightly inclined angle, no less) they look significantly slimmer.

I don't change shit in what they write on their profiles. Because that pretty much doesn't matter. Believe me, I've experimented. But the hardcore truth is that you need to look more masculine, unless you can show through photos that you're a multimillionaire. And even that I wouldn't recommend as being your main attraction asset (but it does work).

Maybe I should release some independent studies sometime, I have some great datasets :)

Edit - nice downvotes but no rebuttals. Happy to have a discussion, these kind of things bothered me to no end as someone who wanted to bank on being a software engineer with a good personality in order to get dates.

<comment><USER29> Focal lengths slimming the face / tilting the scales towards heavier women (pun intended) is an interesting theory.

But natural T increase? This sets off my quack-o-meter.

<comment><USER28> I've read so many studies that show how diet and exercise and vitamin supplementation can boost your natural T levels (still within the natural range, though). And sleep of course. I encourage you to search around the web.

What's kind of scary is that the natural range is so large - like 300 - <USER2> ng/dl for testosterone, but you will literally feel like a different person if you fix all of the above factors properly and go from say 350 to 600. And living in that higher T state for months and years at a time, you will start to look different as well (generally in a good way for men).

</comment></comment></comment><comment><USER30> So, then the aromantics ?

</comment><comment><USER31> Betteridge's Law: No, romantic desire is not predictable.

<comment><USER24> Feynman would be happy that negative results like these are published!

<comment><USER31> that's true. I am, as well. Just remarking that the title _is_ predictable (and a little clickbait-y).

</comment></comment></comment><comment><USER32> Sarcastic tl;dr... Nerds try to use computers to get a date. Surprisingly, it doesn't work.</comment>


Ellen Ullman on the importance of making algorithms accessible to the public - <AUTHOR> https://slackhq.com/programmer-and-author-ellen-ullman-on-why-hackers-need-the-humanities-94f09d4584c7 <comment><USER2> Tangibly related due to it being Ellen Ullman.

Oh wow. So I read "The Bug" of hers just after it came out (14 years ago) and it's such a poignant read about someone being slowly driven mad because he can't find a very peculiar bug which unpredictably haunts the sales people demo'ing their product. It's a great read and I highly recommend it to anyone here. The technical accuracy is hilarious too but you don't need to be a programmer whatsoever to understand the novel. I won't spoil the reveal of the actual bug or the ending but it's very much worth it.

After reading it I loaned my hardcover copy out to a guy named Boris when I told him how much I liked it. Boris; I don't know where you are and what you're up to nowadays; but if you somehow end up reading this; I kinda want it back. Ping me.

<comment><USER3> [http://blog.woodpie.com/the-man-who-shared-his-books-and- mul...](http://blog.woodpie.com/the-man-who-shared-his-books-and-multiplied- them/)

</comment></comment><comment><USER4> > The beauty of language is that we can be imprecise and still be understood.

And the terrifying thing about language is that we can still strive to be precise and yet (perhaps even unknowingly) be wildly misunderstood...perhaps malevolently. I've heard someone describe programming as telling a very precise story to a very stupid human. However, I think it would be better to describe a compiler as a more _humble_ listener. One who is willing to say "I'm sorry, you just told me to multiply a string, and I think I'm misunderstanding you." Thinking of compiler errors as an expression of humility can explain the comfort one finds in a stronger type system.

It is the same comfort one finds by not speaking publicly on twitter but speaking to a person who has the charity to say "huh? I think you just said this thing that sounds wildly offensive, and I think I'm misunderstanding you."

<comment><USER5> I don't think ascribing humility to a piece of code makes any kind of sense.

</comment></comment><comment><USER6> I would love to see an article on this topic - this one is not it though. The reason: we struggle at many major universities to determine this balance. On the one hand, students need _a lot_ of CS in order to become mildly proficient; there is just so much to learn. On the other, school is a last chance to expose students to some of the big ideas of the world, the stuff (as Keating says in Dead Poets) that makes life worth living. How can you do both in 4 short years?

<comment><USER7> > On the one hand, students need a lot of CS in order to become mildly > proficient

Most of the CS students learn in school will be obsolete in a few years, and they probably won't be using it in their job anyway.

But the humanities they learn will be useful their whole lives.

<comment><USER8> If it becomes obsolete, then it isn't computer science.

<comment><USER9> We could argue quicksort could be rendered obsolete soon.

<comment><USER8> We still teach all sorts of slow and inefficient sorting algorithms, because it helps to understand the core principles of sorting algorithms and computational complexity. I don't think I've ever actually used a bubble sort or a selection sort in anger, but the process of studying those algorithms taught me to reason more generally about algorithms, which is really the entire point. Computer science is a branch of mathematics; mathematics isn't really about knowing things, but about knowing how to work things out.

I suspect we'll be teaching quicksort forever, because it's a really good example of a divide and conquer algorithm.

<comment><USER9> I don't disagree! It has didactic value.

But that's not really the premise I was responding too. Plus, I obviously enkoying being The Person In The Room talking about how the state of the art in sort puts it at linear time and right up against the edge of the information theoretical limits for bitwise comparisons.

</comment></comment></comment></comment></comment></comment><comment><USER10> She strikes me as a person who has a lot of interesting things to say, I haven't read her books so I thank the author for the exposure.

However, if I had one criticism it would be that the interview and resulting article focus quite a bit on her being a victim of prejudice rather than focusing on the great work she has done. But maybe that's me.

<comment><USER7> I recently finished her "Close to the Machine", and I loved it.

</comment></comment><comment><USER11> Can someone point me to what the argument here is for why "hackers need the humanities"? I can't seem to find it at the link.

<comment><USER12> In the article, she never directly states that hackers need to study the humanities. What she was basically saying - in the part about Vacca - is that there needs to be human oversight to algorithms that affect public policies (school districting, police paroles, ...). So the implication, in that example, is that programmers should work with people in the social sciences to deliver solutions that may not be algorithmically optimal, but better meet the needs of the community.

<comment><USER13> > may not be algorithmically optimal, but better meet the needs of the > community

Yeah, that sounds a bit like a blank check for someone to corrupt the generated output under the guise of a nebulous "It's better for our community" while scaremongering about the big bad algorithm.

<comment><USER12> Corruption could happen in any case, but I still agree with having human oversight [1].

[1] [https://en.wikipedia.org/wiki/All_models_are_wrong](https://en.wikipedia.org/wiki/All_models_are_wrong)

</comment></comment></comment></comment><comment><USER14> This is a nice little interview, but the title is very misleading! The word "humanities" only appears once outside the title and the answer doesn't really address the title's claim.

I think it's an interesting topic, though. Do tech companies need more humanities grads? I'm skeptical because plenty of other industries have caused their own social problems, and the humanities haven't saved them. Look at advertising, which was originally _built_ by artists rather than hackers.

It may well be true that big tech companies need to be more socially aware and environmentally conscious, but that doesn't mean "the humanities" is necessarily the answer.

<comment><USER15> I don't believe she's necessarily calling for the hiring of humanities grads.

What would help, as a start, is an appreciation for the values (and value) of the humanities.

On HN specifically, you frequently see something akin to Schadenfreude when referring to students of the liberal arts serving fries to tech grads. That is to some degree just factually wrong, considering many liberal arts undergrads go on to rather lucrative careers in law, or powerful careers in politics.

But it is also short-sighted, because history has always been a two-step process, with technology enabling us to do new things, and other disciplines enabling us to use these capabilities for something resembling the "common good".

I always like this thought experiment: Would you rather live in a world with the middle age's social/political/law system and today's technology–or the other way around?

This doesn't mean that social and political progress are the exclusive domain of those who studied greek mythology. In fact, this article explicitly argues that it shouldn't be: Hackers should engage with that community.

But what it does take is, sometimes, a bit of humility. Too often, I feel the tech community is looking at technological solutions to social and political problems. See cryptocurrencies, or the encryption debate as examples where you can feel cynicism, bordering on disdain, for the political process.

The problem with that is, first, that it's wrong: a lot of power rests in politics, and China is a living example that the internet community is currently unable to win a direct confrontation with the power of the state. It is also wrong in that it portraits all governments as equally bad, all laws as subject to changed or broken when expedient, when clearly there are differences in the rule of law between countries, and there are differences in the willingness of politicians to act with integrity.

Secondly, using technology to create facts is somewhat undemocratic in itself. The Federal Reserve may be committing all sorts of errors. But it is hard to deny that derives legitimacy through a transparent, tested, process much more democratic than bitcoin. It is also an illusion to suggest that bitcoin is free of ideology, only because that ideology takes the form of an algorithm decided in the past, ticking away with almost no method to influence it.

<comment><USER16> > Too often, I feel the tech community is looking at technological solutions > to social and political problems. See cryptocurrencies, or the encryption > debate as examples where you can feel cynicism, bordering on disdain, for > the political process.

You say that as though technology isn't _part of_ the political process.

If the last few years have taught us anything it's that the general population is not a fan of the existing banking laws. But that hasn't resulted in reform because the banks and law enforcement agencies have undue disproportionate political power and prevent that reform.

Technologies that can disrupt the balance of power that keeps the broken status quo aren't apolitical, but that doesn't make them _dirty_. They're a tool that can be used for good or for ill. It's not as if the other side isn't using their own tools. AES didn't exist in 1950 but neither did ISMI catchers, room 641A, the Utah Data Center, always-on surveillance devices in everyone's pocket, etc.

And resisting government overreach with maths is a whole lot cleaner than doing it with bullets and IEDs, which are _also_ part of politics.

<comment><USER14> I guess what I'm reacting to is not specifically this interview, but the notion I've seen in a few places that "big tech companies need the humanities". For example, John Naughton in the Guardian: [https://www.theguardian.com/commentisfree/2017/nov/19/how- te...](https://www.theguardian.com/commentisfree/2017/nov/19/how-tech-leaders- delivered-us-into-evil-john-naughton)

Ullman's book probably doesn't oversimplify like that, but the title of the article alludes to it.

What I would like to know is, what are some good examples of industries that are doing the right thing, that could be used to guide the way forward for tech companies?

I'm very skeptical that there are _any_ industries that have successfully self-policed in this way. But there are many examples of industries that have exploited shared resources and human weaknesses for a quick profit, and inflicted lasting harm in the process: oil, tobacco, intensive farming, fashion, cars, guns, advertising. (And just like social media, most of those have their good points too!)

Tech and social media in particular is an outlier because it's so successful, but even so it's not totally unique -- the economic and social media effect of oil is massive too.

One possible positive example that occurs to me is nuclear weapons. They _could_ have proliferated massively, but so far they haven't quite. Those weapons are developed by states rather than corporations, though.

I really object to the stereotype of socially-awkward programmers being to blame for everything, because we don't understand how real squishy humans work. The problems we face are the same ones that have faced every highly successful and transformative industry. They're at the root of business and capitalism.

<comment><USER15> This is a contentious opinion, but I believe journalism, at least in part, may be a good example.

The publications generally regarded as the top, auch as The Economist, the New York Times, and, until this year, The Wall Street Journal: they are not catering to the lowest instincts. When they have made mistakes (somebody will inevitably bring up Judith Miller), they have self-corrected, with new policies, and by firing people.

I also wouldn't consider the wish for "more humanities in tech" as an attack on you personally, or any single person. In fact, Google, Apple, and many smaller companies have an excellent track record on many issues. Their leadership actually has an appreciation for non-Technology issues far better than most companies'. Yet the example of Apple engineers preparing to go to jail to protect their customers stands out, because others (Yahoo, AT&T) so eagerly cooperated to intrude on customers' privacy.

<comment><USER14> You're right, journalism is a good positive example.

I do worry, though, that it's being degraded by the widespread removal of the firewall between the news side and the advertising side of the business.

</comment></comment></comment></comment></comment></comment><comment><USER17> Everyone needs the humanities. You go to Princeton and you're gonna find Brian Kernighan teaching computer science and digital humanities crossover class and explaining tech basics to the 'educated laymen'. The people at the top of the field know this; why haven't the rest of us figured this out yet?</comment>


Why is Smalltalk Dead? - <AUTHOR> http://c2.com/cgi/wiki?WhyIsSmalltalkDead <comment><USER3> The Early History of Smalltalk: [http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html](http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html)

If you have an extra hour, there's a beautifully written People's History sort of thing by Alan Kay. SmallTalk was born out of _necessity_ and was basically an operating system implemented in a very elegant and academic manner.

Alan had an idealistic vision of the masses not using computers as end users do now, but as programmers. SmallTalk had a very strong educational slant. They even tried to teach Xerox executives how to code.

I'd say it lives on in languages like Python and Ruby which are much more pragmatic when it comes to OOP and getting stuff done. I'd also say a lot of its charm and elegance is gone from the world. But the good ideas from it are with us.

<comment><USER4> Smalltalk lives on in Objective-C :)

I learned the syntax of Objective-C from a tiny reference guide. I learned how to _program_ in Objective-C by reading Chamond Liu's "Smalltalk, Objects, and Design".

<comment><USER5> > Smalltalk lives on in Objective-C :)

Not in any way, shape or form. _Some_ of smalltalk's _syntax_ lives in objective-c, but that's it. None of smalltalk's intentions or goals do.

<comment><USER4> For me, the most Smalltalk-like aspect of it was that I could send any message to any object. This was radically unlike, for example, C++, where I could only call functions on objects when those functions actually existed.

What I'm really saying here is that I disagree with you, and I believe you are incorrect in stating that none of Smalltalk's objectives live on in Objective-C "in any way, shape or form", and that's an example of something from Smalltalk that lives on in Objective-C.

<comment><USER6> You can do the same in ruby, or with lisp. Objective-C doesn't provide a REPL for constant feedback, you find that in ruby, lisp and python. It lives more in those languages than in ObjC.

<comment> david-given I don't know Ruby or Lisp, but Python, at least, doesn't like it if you call methods on nil. Smalltalk and Objective C both let you do that (they do nothing and return nil).

<comment><USER5> > I don't know Ruby or Lisp, but Python, at least, doesn't like it if you call > methods on nil.

That's false. Python likes it every bit as much as if you call methods on any other object: it works fine if you wall a method which exists on the object, raises an AttributeError if you try to access an attribute which does not exist and raises a TypeError if you try to call an attribute which isn't callable.

        >>> None.__hash__()
        -9223372036578437293

> Smalltalk let you do that (they do nothing and return nil).

That is also false. While UndefinedObject responds to a fair number of messages (compared to NoneType anyway), sending an "unknown" message to `nil` will signal an exception as it would just about anywhere else (because it'll defer to the standard Object implementation of #doesNotUnderstand). You can redefine `UndefinedObject doesNotUnderstand` so that it does something (or does nothing and return `nil`), but that definitely isn't the default behaviour, and it isn't generally considered a good idea.

<comment> david-given >> Smalltalk let you do that (they do nothing and return nil).

> That is also false.

Oops, you're absolutely right --- I was thinking of Objective C:

[http://stackoverflow.com/questions/156395/sending-a- message-...](http://stackoverflow.com/questions/156395/sending-a-message-to- nil)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Beyond the fact that I wouldn't use a language without a native code compiler, the worst obstacle seems to be that you can't integrate Smalltalk into other OSs. You have to "boot" into a Smalltalk universe and do everything in its terms. There's no vim(1) there and all my other shell utilities are useless. It feels like I have to re-learn everything from scratch and do it differently, just for the benefit of using that one language. For me, that's just too much to ask. It doesn't scale.

<comment><USER8> I agree, but I sometimes stay in Emacs all day for no good reason other than I can - browsing, writing, email, which is like being on a different OS or system and using its utilities, apps and compilers. I find I do the same in Smalltalk. I am currently playing with μO (muO) music composition playground [1]. I just go fullscreen, and I am in the Squeak world all day :) As far as share work, the distributed image, although big, is complete and crossplaform. I boot into different VMs the same way, with the exception that the tooling is more common across platforms.

[1] [http://www.zogotounga.net/comp/squeak/sqgeo.htm](http://www.zogotounga.net/comp/squeak/sqgeo.htm)

Edit: added link

<comment><USER9> That's a valid and easy to miss point, thanks!

</comment></comment></comment><comment><USER10> Really hard to collaborate with it. How do we share code between our images? I think this was largely solved later, but...

Similarly, how do you ship code to a customer? Later there were tools developed to pare down images, but my first introduction to Smalltalk was via a breakout game on an Alto my division at NBS had been loaned. You could start the game and then drop into the Smalltalk-76 environment with ^C or something like that and start mucking around with code. Pretty much all of Smalltalk had to come along with what you shipped.

Performance sucked for a long, long time. One of my favorite books is "Smalltalk 80: Bits of History, Words of Advice" which describes the porting efforts of several teams at Tektronix, Apple and so forth, and their efforts to get _anything_ running, followed by what it took to get acceptable performance.

Smalltalk is my favorite language that I will never be able to do real work in. It's a shame.

</comment><comment><USER11> I worked at a company that was a Smalltalk shop right through the middle of the 0's. I personally loved Smalltalk for it's simplicity and productivity and miss it to this day. Our company finally let go of it because: 1) We needed to develop web applications and at the time there was no credible web app framework. 2) Licensing was expensive and complicated. We were using Parcplace/ObjectShare and had to deploy on Mac, Windows and different flavors of Unix. Most of our work was for internal consumption but we would also license our work to other companies and they had to call the ParcPlace sales people to negotiate licenses on the runtimes. Everyone hated the hassle and the expense. 3) While developing in Smalltalk was a dream, building and deploying was always a big pain. 4) Java showed up. Sun pushed it hard and aligned it with the development of the web. It was multiplatform, you could do servlets and (cr)applets with it. And it was free!

In my personal opinion, the Java language, base libraries, and development experience were inferior to Smalltalk in just about every way in the 0's (ok, I welcomed static typing, but why did it take more than a decade to get lambdas?). Even Java performance was worse than Smalltalk for a while (the first Java releases were interpreted). But Smalltalk was a fragmented ecosystem that did not adapt to the web and to a well-funded, well-marketed, free competitor (Java) that offered some of the same benefits. Smalltalk was always a niche technology. It is still alive, but the niches are smaller.

</comment><comment><USER12> It tried to replace the entire tool-chain instead of playing nicely with existing tools.

While revolutionizing the entire tool-chain at once is theoretically possible, it is also unlikely to succeed in practice. Successful tools and languages knew how to incrementally improve things within the current system. This may make some people angry, but that's how the world works (see the apocryphal but not entirely untrue story about the width of a horse and the size of the space shuttle). The reason is that decision makers need to reduce risks, and switching everything at once is risky and stupid. Perhaps that's a Nash equilibrium, but without something external to force a revolution, anyone fighting that equilibrium is likely to fail.

<comment><USER13> Smalltalk's history starts in the early seventies. Unix also tried to replace the entire tool-chain. It just happened to succeed more widely. Though Smalltalk has been extremely influential.

The early history of Smalltalk: [http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html](http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html)

<comment><USER14> > Unix also tried to replace the entire tool-chain. It just happened to > succeed more widely.

I think Unix's success is much more about actual practical reasons that mere chance 'happening' to favour it.

Unix wasn't at all controlling and limiting in the way Smaltalk was. Unix provided complementary tools in an open environment. If you wanted to, you could write your own tools for Unix from the ground up starting from assembler even. The first thing people did on Unix was port over existing languages and tools such as Fortran from previous systems, and even to this day some of the base math libraries are implemented in Fortran. That sort of thing wasn't feasible with Smalltalk.

<comment><USER15> > That sort of thing wasn't feasible with Smalltalk.

Sure it was.

The Genera Lisp Machines had compilers for C, Ada and Pascal available.

If one really wanted to have a Fortran compiler in a Smalltalk environment, s/he just needed to port it, just like Symbolics did for its Lisp Workstations.

<comment><USER16> > The Genera Lisp Machines had compilers for C, Ada and Pascal available.

Also Fortran and Prolog. Though added language were expensive. Usually it would also be useful to have a FPU option.

Thus a Lispm with Fortran would cost something like $100000 in the mid 80s. Which makes it possible to use Fortran, but not to an attractive price. ;-) 'Exotic systems' \+ software ported to exotic systems => expensive or not available. For decade the Symbolics approach was available and expensive, later it moved to 'mostly not available'...

</comment></comment></comment></comment></comment><comment> david-given Incidentally, people who are interested in Smalltalk may like to check this out:

[http://amber-lang.net/](http://amber-lang.net/)

It's a Smalltalk that runs in a browser; bolt it on to a web page and you get a tradition Smalltalk IDE that pops up at the bottom of the page at the press of a button. It seamlessly interacts with Javascript. There's a backend which allows state to be saved, so it's theoretically possible to write your entire web client using the browser as your IDE, while the client is running.

It's a bit overengineered for my taste --- the backend's quite complex and requires node, where I'd prefer for the client to just talk WebDAV. But it's a very interesting reinvention of Smalltalk for the modern world.

</comment><comment><USER17> After barely scraping the surface of Smalltalk, I got a feel for "Why the hype?"...or maybe I should say why the hype isn't entirely unjustified. Smalltalk suggested that the places where I have struggled with OOP-WTF? are more linked to particular design decisions around particular OOP languages than the possibilities of OOP itself.

It got me to thinking that Smalltalk is in some ways where Lisp was ten years ago, struggling along with an aging infrastructure where the internet and gigabytes of RAM and open-source anthropologies are mostly bolted on to a core optimized for a time of scarcity relative to the right now. The revitalization of Lisp as a commercial language required the equivalent of chucking the image for Smalltalk. Clojure got rid of `cons` as the underlying abstraction.[1] Instead of developing a standard library, and platform, and toolchain it grafted itself onto an existing one [2].

Which is to say, I wonder if a similar tacking strategy would let Smalltalk work its way upwind more easily than continuous patching of the Squeak image. One price of course would be a new IDE. IMO, that's a good thing. I don't look at plethoras of randomly located popup windows with the same sense of wonderment I did thirty years ago...I have email, I don't really need to manage unbounded quantities of windows, too. [Sorry for the rant].

Anyway, to me Smalltalk seems to be too much intellectual goodness to ever really die. It just needs to continue to move toward a future where people say "smalltalks" in the same way they can say "lisps" today.

[1]: Racket "got rid" of mutable `cons`s.

[2]: Technically, two originally then three with the browser.

</comment><comment><USER18> I read that Kent Beck said something like "I always knew one day Smalltalk would replace Java. I just didn't know it would be called Ruby."

<comment><USER19> I've heard it claimed a number of times that Ruby/Python are SmallTalk-esque.

Can anyone speak to that? In what ways is that so?

I've also read Peter Norvig claim that Python is a LISP with C-Syntax, so I'm not sure what to think.

<comment><USER20> It seems that programmers take their favorite feature of a programming language for comparing it to others:

If you like first-class functions, then Javascript becomes "Scheme in the browser." If you miss having a REPL and then discover Python, it becomes "LISP with C-syntax." If you like objects responding to arbitrary messages, then Ruby is "Smalltalk without images" and so on.

</comment></comment></comment><comment><USER21> I was very enthusiastic about Smalltalk in the late 80's when I got Digitalk's System V to play with. And one thing torpedoed its use for me - <USER2> variables in code blocks are local to the code object, not the execution stack, so you cannot use them for instance data in multiple instances of persistent State Machines. I thought this was a bug, but Digitalk told me no, it's in the language specification. Since that is my preferred way of achieving hard Real Time event driven concurrency, I could no longer use it and switched to hand-rolled OOP in C.

Why not C++? you might ask. The year was 1988. I needed to run on Macs as well as PCs. The only company advertising C++ for Mac at the time was AT&T (the purely Preprocessor implementation). When I called them to order a copy they said "Really? C++ for Mac? You're only the sixth person ever to ask for it, so we have not done it yet". At the same time, Objective C was similarly not available in Windows.

</comment><comment><USER22> The technical oddities (Image, etc.) with Smalltalk are fixable, but given my experience the vendors killed the language with high prices and "Develop a Java solution" syndrome.

Little Smalltalk and Gnu Smalltalk both are command line implementations. There was an attempt at a .NET version called S# that would have been based on traditional tools.

[edit] also, F-Script was a pretty neat version for OS X that had some APL heritage.

</comment><comment><USER23> Too much dynamicity? Ward Cunningham: "What killed Smalltalk was it was just too easy to make a mess" (source: [https://www.youtube.com/watch?v=YX3iRjKj7C0](https://www.youtube.com/watch?v=YX3iRjKj7C0))</comment>


Pagedraw is shutting down and going open source - <AUTHOR> https://pagedraw.io/ <comment><USER2> One absolute rule for success in software is that there are no absolute rules.

From their post mortem [https://medium.com/@gabriel_20625/technical-lessons- from-bui...](https://medium.com/@gabriel_20625/technical-lessons-from- building-a-compiler-startup-for-3-years-4473405161cd)

> Performance is never a justification for anything if you haven't measured it

This just isn't true. Anyone with a reasonable amount of experience is often able to look ahead - well before any code is written - and see how performance could be better if road A is taken instead of road B.

Its madness in that case to blindly choose a road without even thinking about performance - even if it is unmeasurable and in the future.

There's more in the same vein:

> Go back to step 2 and make sure you completely ignore performance, because > you probably haven't.

Now I have to imagine that these guys don't genuinely believe what they wrote - but in that case, ditch the words "never" and "completely ignore" and go for something more reasonable.

(Of course that would make the phrasing less dramatic and click-baity, which is maybe what it takes to get eyeballs these days)

<comment><USER3> Its comments like this that make people hate HN. I agree with their writeup fully. They focused wayyyy too much on performance and not enough on an MVP, pivoting, marketing, growth, and staying agile.

I would love to get all these "Performance First! Its so easy" engineers in a room for a week. Hell, give em three weeks and they still wouldn't have a single line of code written. But they would still be arguing about the best way to deal with their upcoming 1 million hits per second.

Rule #1 of any business: Sales cures all. You know what's really hard to sell? A product that hasn't even made it out of the damn door yet.

<comment><USER4> How I've always put it:

"Steak before sizzle"

Get something done and working, even if performance sucks. Then do your performance logging and optimizations. Don't attempt to pre-optimize, because you may make a good situation worse.

That doesn't preclude selecting correct algorithms and such beforehand; ie - don't be stupid about it. But don't try to be clever before you know you need it, either.

Second thing I always think should be necessary for any software project:

Get your security design working first.

Don't try to patch in security after the fact; if this isn't at the top of your design and planning, it should be (assuming the project needs it or can be foreseen to need it). Too often I have witnessed the opposite - and it almost never works without major refactoring (or scrapping and starting over).

<comment><USER5> > "Steak before sizzle"

I like it!

> That doesn't preclude selecting correct algorithms and such beforehand; ie - > don't be stupid about it. But don't try to be clever before you know you > need it, either.

Exactly. "Avoid premature optimisation" doesn't mean "make it as slow as possible", it just means "use std::vector until it becomes an issue instead of hand-coding some arcane data structure in assembler".

<comment><USER6> Except that salespeople say "don't sell the steak, sell the sizzle!", so this could get confusing.

<comment><USER5> Isn't that the point, though? You sell the sizzle... but you can't deliver without the steak.

<comment><USER6> Actually, this is now possible, as Kubernetes makes it easy to deploy steakless applications. I think i heard that.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> > Ultimately, we think Pagedraw is the wrong product. We think you can get 90% > of the benefits of Pagedraw by just using JSX better. Our findings on this > will be controversial, as they go entirely against the current "best > practices," so we'll save them for a later blog post.

I'd like to hear more about this. I'm not sure if it was ever turned into a blog post? I don't understand how using JSX differently can eliminate the need for a visual editor for components.

<comment><USER7> You've probably seen their blog post from other comments, which doesn't directly address the issue. They essentially made a visual editor for developers - this is the crux of the issue. It's easy for developers to add, preview, and edit components without a purpose-built visual editor. They appear to suggest that following some of the "technical lessons" in their blog post is what these devs really need - not a visual editor. Having said that, a visual editor would be great for designers who don't want to get their hands dirty with coding.

<comment><USER8> That's exactly the whole problem with web editors:

\- If they abstract a lot, you can target designers but then it inevitably produce unmaintainable spaghetti code because it does not know exactly where you are going

\- If you abstract it less, you can only target developers but what's the point for developers to use an UI when they have to know how to code in the first place?

<comment><USER9> That's true for now, but I believe we will get there eventually. Who is writing assembly code anymore ? You can argue that compilers produce unmaintanable spaghetti assembly code, which is certainly true. But almost no one will look at the assembly output.

The next step we are currently in: a lot of new languages compile to C. And it produces absolutely unreadable code. But who _wants_ to read and write C when you can get the same speed with a much nicer language ?

I agree visual editing may be more complicated than compiling / transpiling, but I believe we'll get there eventually, and people will no longer read and write css manually.

</comment></comment></comment></comment><comment><USER10> I like the subtle nod through capitalization in the phrase "It's been An Incredible Journey".

<comment><USER11> Though unlike an Incredible Journey, this is the right way to shut down: Open up your code and contribute what you did to society.

<comment><USER12> I think it isn't meant so much as a gift to society as it is a best-efforts gesture to your existing users regarding their sites and investment:

> _We're releasing it open source both so you can keep using it, and so we can > share our ideas about how to build UI tools_

<comment><USER13> It was both of those two things— we wanted to do right by our users who trusted us with a dependency, but also because we think we did some things differently than your average WYSIWYG builder, and wanted those ideas to help move the standard forward.

</comment></comment></comment></comment><comment><USER14> More details on the shutdown here, with some good insights: [https://medium.com/@gabriel_20625/technical-lessons-from- bui...](https://medium.com/@gabriel_20625/technical-lessons-from-building-a- compiler-startup-for-3-years-4473405161cd)

</comment><comment><USER15> We've been writing HTML for a couple of decades now. There have been dozens (hundreds?) of WYSIWYG editors and nothing has really caught on.

My hypothesis is that unlike other mediums like paper or video, the elastic nature of the web makes understanding the positioning paradigms/box model/etc a necessity that no visual tool can really abstract. By the time you understand all that, it's just faster to write and maintain code.

<comment><USER16> SquareSpace, Wix, Shopify, and Elementor (a WordPress plugin) have all caught on. The first three are more than page-builders, but the page-builder is an important component.

They're just not popular with the HN crowd.

<comment><USER7> So true, I have seen total beginners create nice looking pages with the tools you've mentioned, but if they stay in it for the long haul they find themselves limited by these tools - after which they either gain the technical skills required and move away from the page-builder or hire a dev. That's why I personally won't use such tools. They make it quicker to begin with, but I'll inevitably find myself fighting against the tool.

<comment><USER17> What kind of beginners? If someone wants to make websites for a living, of course they need to get the skills. If they just want one website, those tools are often enough.

<comment><USER7> I'm not referring to individuals who wants to make money as a web devs. What I'm referring to is the entrepreneur who lacks technical skills but is able to put up a nice little website using page-builders, and after a while wants to take it further and add features not supported by the page-builder.

</comment></comment></comment></comment></comment><comment><USER18> Sorry to hear about the shutdown, and it looks like it was a pretty useful tool. Great that they open sourced it.

The source code looks very interesting (and a bit unusual for a React app.) [1]

Looks like Coffeescript + "Coffeescript JSX", which I hadn't heard of before.

I didn't look too closely, but I didn't see how they're doing state management in the editor. No Redux in the package.json [2]. I was hoping that I might be able to repurpose some of this for a new project I'm working on, but it all looks very foreign to me [3], and the file organization doesn't seem to follow any conventions that I'm familiar with.

[1] [https://github.com/Pagedraw/pagedraw/tree/master/src](https://github.com/Pagedraw/pagedraw/tree/master/src)

[2] [https://github.com/Pagedraw/pagedraw/blob/master/package.jso...](https://github.com/Pagedraw/pagedraw/blob/master/package.json)

[3] [https://github.com/Pagedraw/pagedraw/blob/master/src/editor/...](https://github.com/Pagedraw/pagedraw/blob/master/src/editor/edit- page.cjsx)

<comment><USER13> [http://www.paulgraham.com/avg.html](http://www.paulgraham.com/avg.html) is how we felt about Coffeescript + JSX

<comment><USER19> Frankly, picking a non-conventional language in order to associate yourself with "true hackers" is PG's least useful advice. I am not even sure if he would still agree today. Hackers use the language they are most comfortable with and that gets things done. Everything else is secondary. I wrote a blog post on the subject [1].

[1]: [https://shubhamjain.co/2018/12/01/why-paul-graham- wrong/](https://shubhamjain.co/2018/12/01/why-paul-graham-wrong/)

<comment><USER13> Yeah we didn't do it for the hipster cred— we did it because I agree with PG that some languages are better than others, and Coffeescript is just better than Javascript.

</comment></comment></comment></comment><comment><USER20> I'm actually really disappointed that I found out about them because they're shutting down. This looks perfect to me because I've been wanting to make some sites fast but I don't have the time to expand my React skills currently. Does anyone have a good recommendation for an alternative?

<comment><USER21> Use the open-source desktop app they released.

<comment><USER20> Interesting, is the desktop app on their Github the final version?

<comment><USER13> Yes, it's the final app from Pagedraw... but we encourage forks! There's some good stuff in there :)

<comment><USER20> Thank you for releasing all your hard work to the community!!

</comment></comment></comment></comment></comment><comment><USER22> I tried using PageDraw for LetsBet when we ported our ClojureScript + React codebase to desktop with Electron. All of our designs are done in Figma, by our designer, so we were trying to rely on the Figma project importer. Unfortunately, the importer was very unreliable, bringing in something that looked like a Vangough-like representation of what had been designed. Basically, our designer would have to use Pagedraw's editor to build the UI, but it simply lacked the feature set compared to PageDraw.

Integrating with ClojureScript ended up working, but it was a real pain. That's less on them than us though, so I won't fault them for not supporting every language which compiles to JS.

However, PageDraw never worked in Firefox. Perhaps now that it's going open source, this can be prioritized, but it was a serious issue for me, since don't use anything else. Just for PageDraw, I installed Chromium; they had a desktop app, but it was much less stable than the site, in my experience.

PageDraw had some annoying bugs, as well. Invisible components in Figma would be imported as visible, but I could work around that. However, there were codegen issues with multi-states which required me to go into the code and make tweaks. I had reached out to Gabriel several times with reproduction cases and debug info, but never heard back.

Aside from that, a slew of UX issues (copied right from my notes):

* Add a "Select children" button when only one item is selected; it shows up when multiple are selected, but not one

* Add a "Delete branch" button which deletes the selected and all children

* Allow searching for component within project

* Allow viewing of an image's source, if it's imported from Figma

* Allow inter-project component references, so I can not have every screen in the same project

* Allow importing of path-based icons with overlaps from Figma; currently, they're all broken

* Allow selecting multiple items with overlapping properties and setting them all at once

I love the idea of PageDraw and I wanted so badly for it to help us with our app development and converting Figma designs to React code which we can use from ClojureScript. Alas, the experience was viable for neither me nor my designer.

Thanks for trying, PageDraw devs, and thanks even more for open sourcing your work as part of this shut down. Best of luck in your future endeavors.

</comment><comment><USER23> Interesting that they launched pagedraw exactly 1 year ago (Feb 26th, 2018) and I remember reading that launch post [0]

So it took them 1 year to shut it down ? Is that a quick failure ? Wonder why they didn't go any further. Was it Funding related ? Curious.

[0] [https://news.ycombinator.com/item?id=16467387](https://news.ycombinator.com/item?id=16467387)

<comment><USER24> I think a year is more than enough to figure out if you have the wrong product.

Kudos to the team - they might have been able to raise money to keep plugging away, but they've seen the writing on the wall.

I know nothing about their company or their team, but I do know that product- market fit is something you have, or you don't. There's no real middle ground, so if you don't have it, you need to madly iterate/pivot until you do, or cut your losses and move onto the next project.

</comment></comment><comment><USER25> Ever heard of them, but love the concept. Perhaps the right thing would be someone like Sketch to incorporate this and make it mature and maintained. They could charge a nice extra for doing so.

</comment><comment><USER26> very interested in the vuejs implementation. How soon is soon, now that its moving to open source?

<comment><USER27> Odds are, never. If some volunteer open-source developer decides to pick it up, it might happen, but as the company's shutting down, any "soon" promised by them in the past is obviously now a "never".

Note: That page is clearly just their old homepage + the shutdown message; whatever it says was written pre-shutdown.

<comment><USER28> Sad but true, from having seen upfront a similar process. It takes just a fraction of work to bundle all the tech up for open source, but at the point of shutdown everyone is usually just toast... sadness to it too. Most people can't put in that day or two required to jettison it into open source land, right now, and then in a month or two the rot has already set in.

Hopefully these guys buck the trend, because there looks like there is some cool stuff in there.

<comment><USER29> The link to the source is right on the page? [https://github.com/Pagedraw/pagedraw](https://github.com/Pagedraw/pagedraw)

</comment></comment></comment></comment><comment><USER30> Sad.

Some time ago someone asked if they still in business and they said they had planned some things.

I liked their idea, but well.

Looking into Draftbit and FramerX right now.

</comment><comment><USER31> The really funny thing that the same cycle repeats in jsland that we have seen in java land a decade ago. XD I can't even put into words how hilarious is this. We need visual editors. We don't need visual editors. We need visual editors. We don't need visual editors... Etc

<comment><USER13> We pretty explicitly said "hey, the web is a regression from the 90s... let's just make a company that fixes that"

</comment></comment><comment><USER32> looks like they just did not find the type of investors who would help them all the way to the finish line. i hate to see products that are trying to solve hard problems but falls short due to funding.

</comment><comment><USER33> I'd love to have a similar product, but will produce only the React Element in json form only.

</comment><comment><USER34> Was this like a wysiwyg editor for badly performing web applications?</comment>


Dude, where's my car? - <AUTHOR> http://www.coalfire.com/The-Coalfire-Blog/October-2014/Dude-where-is-my-car <comment><USER2> Google cache: [http://webcache.googleusercontent.com/search?q=cache:cy5Rf1S...](http://webcache.googleusercontent.com/search?q=cache:cy5Rf1StGlQJ:www.coalfire.com/The- Coalfire-Blog/October-2014/Dude-where-is-my-car&hl=en&gl=us&strip=1)

</comment><comment><USER3> It's a strange feeling if I step back for a minute, but reading about exploits in car entertainment systems got me _excited_, not scared. I wanted this article to share 'this is how you root your car' style material.

Maybe _that_ reflects badly on the car manufacturers [1], creating expensive and often obsolete/bad environments, that make me long for a 'root hack'?

1: Audi driver here, but I haven't seen something that didn't feel like a design from 5 years ago and sluggish like hell in any car so far.

</comment><comment><USER4> I am less concerned that it's possible to exploit the entertainment system from a phone, and far more worried that the it's possible to exploit the security-critical subsystems from the entertainment system. I realize that the screen is part of the entertainment system and it sometimes needs to display information about the car functioning, so it needs to have read access to very critical systems. But is there any reason for it to have write ability over any other subsystem at all? Couldn't it just get one-way status updates from the other subsystems and then simply chose how to display them?

I mean, sure, you can still write an evil car virus that gives the driver false speed information or hides the fact that the gas is running out. But a) that still seems less disturbing than an evil car virus that disables your breaks or pops out an airbag, b) you could always have emergency notification lights or beeping alarms not integrated with the infotainment system for really critical conditions (which for the most part, cars already do have).</comment>