Unslacking Tideways Company - <AUTHOR> https://beberlei.de/2018/10/28/unslacking_tideways_company.html <comment><USER4> Definitely agree with your decision.

After leaving slack entirely from a robotics team and a science club, our productively increased.

No longer were we going off topic wasting precious time and making everyone in the channel read every 500+ messages some people engaged in. We instead chose to make more plans during meetings and through direct chat (Messenger).

However, Slack is usefull for forums such as donkeycar.slack.com where many hobbists come in and have questions on this software/hardware project. Slack is easily accessible for anyone to ask questions and with proper use, I was pretty productive in communicating effectively across channels.

Despite this, I believe that slack in general is a waste of time in a TEAM. Why not have meetings or meet up in real life rather than hiding behind a screen without any physical interaction? Slack, however, is a great alternative for forums since there is great searching capabilities within channels and there's always someone there to help.

<comment><USER5> > where many hobbists come in and have questions on this software/hardware > project

I'm rather baffled by the use of chat for this kind of problem. (and I never clicked with IRC either)

So - I've got a problem and I come to a chat channel. It's probably been asked before. If I'm lucky I'll find my answer in a searchable chat archive and I won't need to visit at all. Otherwise I face two options:

1\. Scroll back and try and find any previous mentions. Nearly impossible in my experience.

2\. Ask my question and hope that people aren't sick of hearing it. If I'm lucky enough that a) someone is present who knows the answer and b) they respond in a timely manner then I still face the problem that - assuming it's busy enough for a and b to be likely - then my conversation is interspersed with several unrelated discussions. Also - the person helping me is likely to go quiet for long periods or disappear altogether because most probably _they are doing other stuff_.

Note that the final flaw (the interleaving of discussions) is a problem in all cases.

Now - can someone explain to me how this is better than a forum or Stack Overflow style site?

<comment><USER6> 1\. Those interleaved discussions are what makes it a worthwhile hangout for experienced users.

2\. Conversely, they also mean that maybe you'll help someone else out while you're waiting.

3\. It's easier to diagnose a problem in an informal back-and-forth than in the writing-for-posterity style that SO and fora encourage.

<comment><USER7> Chat might be ok for facilitating diagnosis, but when I'm searching for help I want an SO style answer. Bear in mind I've been doing IRC for a couple of decades, so it's not lack of experience.

<comment><USER6> Many people looking for help aren't up to asking an SO style question.

</comment></comment></comment></comment></comment><comment><USER8> When I was at a fully local company, slack was good for conversations where a few people might be actively discussing an issue and then I could come in hours later and skim the history, if it was a channel I felt relevant to be aware of.

But slack was also super easy to use wrongly and drain so much time into. It really helped to declare slack a lossy source of comms. You shall not expect people to read it and you shall not use it as a data store. Important things go into email, wiki, tickets.

On a fully remote team, slack is so important, but all the same rules need to apply.

<comment><USER9> Almost agree, but email should also be treated as lossy.

It drives me crazy when people send mass company emails with, for example, new policy or forms attached, and don't post them elsewhere. New hires only see them if someone remembers they exist and forwards them, plus it's impossible to figure out current state without spending a bunch of time playing email archeologist.

<comment><USER10> Email is generally regarded as the most reliable in my experience.

<comment><USER11> To the parent's point, how do you get a future employee to receive the information in an email that was sent before they started?

<comment><USER10> You include it in their onboarding

<comment><USER11> So now you have to store each email that includes important information in a second place, so that you remember to include it in their onboarding. Why not just post it to the intranet in a well-known location in the first place?

<comment><USER12> Ideally the information goes where it's supposed to in your permanent knowledge repo. This could be a wiki, a website, etc.

The email is sent as a notification that the content has been added, updated or moved.

Email should ideally serve as a notification system and a lossy communication system where things you want to retain need to be backed up somewhere else.

The nice thing wth email is that being an open eco system there are a lot of integrations that are supported easily.

<comment><USER11> Right. But too often, as gregmac said, "people send mass company emails with, for example, new policy or forms attached, and don't post them elsewhere". Email should be used for notification and ephemeral communication, and not for information dissemination. In that way it's the same as chat.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Doing everything in chat is pure insanity. It's great for the day-to-day collaborating on projects... but it's all short-term memory. Are you going to be referencing a chat from 3 years ago?

We use an internal forum in addition to chat. Anything substantive goes in the forum. We'll regularly reference 5 year old posts.

<comment><USER14> Any recommendations for sensible forum software? (self-hosted would be ideal)

<comment><USER15> Great question, and I'm eager to hear the results. We're going to try creating a private subreddit to test the idea of forums for "long form discussions". I used vBulletin back around the early 00s, and I loved it, but I've found a number of people don't "get" forums. Discourse is something else I'd like to try.

I'm curious why people _don 't_ like forums for discussions.

<comment><USER16> Forums rarely get things right -- that had been solved by Usenet.

Proper threading.

Read/Unread tracking.

Keyboard UI. (And the mouse UI tends to be bad as well.)

Responsiveness. (Especially: page loads which are not instantaneous.)

Killfiles.

They generally have mediocre search functions unless they are entirely visible to Google.

These are off the top of my head.

<comment><USER17> Does usenet have points? That's what I find missing in most forums, except Reddit and HN, where best comments flow towards the top, instead of being present arbitrarily deep in the timeline.

<comment><USER18> Sorry, no native point system. You can bolt on something NoCeM-like, server or newsreader based, and enjoy distributing article reputation right now. But it supplies only a show/no show signal out of the box. I think the cancelmoose would have preferred it to be somehow more nuanced and only live in newsreaders...

[http://home.httrack.net/~nocem/](http://home.httrack.net/~nocem/)

[https://www.systutorials.com/docs/linux/man/8-perl- nocem/](https://www.systutorials.com/docs/linux/man/8-perl-nocem/)

[https://www.techopedia.com/definition/18172/cancelmoose](https://www.techopedia.com/definition/18172/cancelmoose)

</comment></comment></comment></comment></comment></comment><comment><USER19> I feel that many of these objections already have solutions within Slack.

If you don't want to be disturbed by notifications, there is the Do Not Disturb option to snooze notifications.

If you don't want to lose context, use Slack threads, which localize discussion around an issue to a single place.

If you have a fear of missing out because you're piping everything to Slack - have you considered segregating your alerts into specific channels and muting those you don't care about? (Alerts are a bad example, though - really, you should use Slack for a visibility record during an incident, but the only alerts you should care about should bother you with PagerDuty or OpsGenie - <USER2> they're important, they should bother you).

I do work for a larger company (some 400 employees) and we use Slack quite effectively. One thing that's really helped us is that, by consensus, we don't make decisions in Slack - everything of actual import should have a ticket to condense everything in. Slack becomes useful for us if we need immediate assistance, have questions or need to communicate in real time during an incident. It's also invaluable when you have remote employees (!).

<comment><AUTHOR> Hey, these all sound like very good hints on how to use Slack, especially the consensus on decision making. Maybe we have used Slack wrong, but especially the context was important for me and Slack threads are hard to enforce, you can "break out of the jail" easily, often by mistake.

<comment><USER20> > Slack threads are hard to enforce, you can "break out of the jail" easily, > often by mistake.

In particular, image uploads (and possibly other attachments?) are always posted to the main channel, even if the message they were attached to was in a thread. Trying to conduct an image-heavy discussion -- like a discussion about a graphical design -- in a thread will just mean the main chat gets interrupted by a bunch of out-of-context images.

<comment><USER21> This was improved over recent months by Slack.

</comment></comment></comment></comment><comment><USER22> > _If you wait for a long time to reply to a message on chat, then the > discussion thread is already spread in the history of the chat room and > messages back and forth interleaved with many additional messages that are > not related is not helpful._

Use zulip - [https://zulipchat.com](https://zulipchat.com) . Opensource. Designed for threaded context.

<comment><USER23> I mean,slack has threads, too.

<comment><USER24> Yeah. But threads in Slack are secondary and are mostly meant for having conversations that people don't care about. Zulip has a much superior threading model. Each and every conversation is a new thread and has a topic. This model makes it extremely easier to catch up and participate in conversations.

[https://zulipchat.com/why-zulip/](https://zulipchat.com/why-zulip/)

</comment></comment></comment><comment><USER25> _Slack makes this very difficult and at least for me, is a primary cause of anxiety and fear of missing out_

I unironically wonder how widespread this problem is among the specific group of people who blame their lack of productivity on Slack, or failing that, how many people would admit their FOMO is _enhanced_ by chat apps.

So many of the "productivity killing" problems I hear people griping about with Slack aren't really issues with slack, but human issues with boundaries of what we allow to take our attention not being defined, and ultimately, yes: FOMO. Things are going to get missed, you're going to come in late to certain conversations, but I often wonder do you _need_ to be on the bleeding edge of these talks if they don't directly relate to you or even reside in the periphery of your responsibility radius?

Probably not, I would wager-but tl;dr very rarely does it seem like Slack is the cause of productivity problems, it just seems the convenient scapegoat. Especially since:

" _work never happens in a vacuum_ " (FTA) is a statement that in my opinion, cuts both ways.

<comment><USER26> > So many of the "productivity killing" problems I hear people griping about > with Slack aren't really issues with slack,

They're not specific to Slack, but they are specific to the existence of an official real time chat app. The boss expects you to read the chat, and if you just ignore it, you'll get in trouble and be deemed "irresponsible" if you aren't acting on it and participating in it.

<comment><USER27> I think this implicit assumption of how to use Slack is the problem. The only thing that we expect someone to respond to on Slack is an @ or a dm. Anything else is analogous to a conversation that happened in a room you either weren't in, or had your headphones on. An @ is like someone walking over and tapping you and asking you to take your headphones off and join the conversation and a dm is like walking into your office and asking you something.

</comment></comment></comment><comment><USER28> Check out Twist. [https://twist.com](https://twist.com)

I have no affiliation with the company/team, but love the product so much that I want to share it here!

The whole idea behind Twist is to be a team communication that doesn't have the productivity issues Slack does. I think it's a very well positioned and timed product.

We've been using it for months at our startup, Canny. Threads are a useful level of organization, such that it's always easy to find what I'm looking for. However, I don't feel like I need to check it constantly.

<comment><AUTHOR> Author here. We tried Twist a while ago and it looked great, especially as you mentioned the Threads. But at the time had performance problems with larger threads and the REST API was very complicated to add simple posts. We didn't try it again afterwards. We use Basecamp now, and it has a forum and threads as well per team or project.

</comment></comment><comment><USER29> > I have learned to be productive when I have a quiet space and can tinker on > a problem without getting interrupted. Slack makes this very difficult.

I have personally suffered from this far too long, specially when my work has been a hybrid of maker and manager. It becomes extremely hard to create pockets of maker time.

My solution has been to schedule 2-3 hour blocks of focused time around a project (Feature X) or responsibility (customer support) once or twice a day so that at the very least, I can create focus during those times. The key is to not over do it and get hung up on scheduling every minute, but just a few hours per day like this.

To facilitate this, I've built a slack bot that integrates with my calendar and I can mark these events as "Focus" events. The bot sets my status to "Do Not Disturb" during the event and if somebody tries to message me, they get a message that I am in heads down mode. They can then leave a note on why they were contacting me or if I they need me urgently, they can click a button and I get an immediate notification. When my focus time ends, I get a list of notes from my team on why they needed me and I can answer them one by one.

Effectively, I've found that once a team moves to Slack, all internal communication moves to Slack (instead of using slack for urgent sync and email for other async), and this brings back email like async model to Slack for the times when you need it.

You can try out the slack bot at [https://slack.com/apps/A5MJB641F-oliv](https://slack.com/apps/A5MJB641F-oliv)

In full disclosure, I've build the bot for my personal usage and don't intend to monetize it. It's just my way of giving back to the community. It's not very polished and doesn't have an onboarding flow, so if you need any help in using it, contact me at ishan.chhabra [at] gmail.com. I'll be happy to help.

</comment><comment> village-idiot I know everyone has their own take on why slack is bad. From the interruption factor to Electron using all their memory. For me, the issue is that it gives teams a false sense about their tech debt.

In every case I've seen, Slack slowly replaces persistent documentation. Every issue one runs into can be resolved with a quick @here to the proper channel, or a DM to the tamer of Eldritch horrors (every company has one). This reduces the incentive to eliminate footguns or properly document everything, because look at us being all collaborative and solving problems together!

The smell for this behavior is having to search Slack for that last time someone helped you solve your problem. Slack is a great way to spread information, but it's a terrible tool to organize and store information.

<comment><USER30> > The smell for this behavior is having to search Slack for that last time > someone helped you solve your problem. Slack is a great way to spread > information, but it's a terrible tool to organize and store information.

If you ever have to do this, you take it as a sign to transfer that information into a document somewhere.

<comment> village-idiot A good plan, for certain. In my experience very very few people follow this advice, myself definitely included.

</comment></comment></comment><comment><USER31> There's a great opportunity for someone to build a team communication tool that's more forum-centric than channel-centric. Let me explain the core problem with slack (or any channel-centric chat).

When I join a wide slack channel (e.g. #Design), I'm not interested in half a dozen different threads of communication happening on it everyday. But there might be couple of discussions per week that are pertinent and important for me to do my job well. There's NO way to ignore 90% of non-pertinent conversations without actually reading all the messages on the channel (yikes!).

</comment><comment><USER32> Personally, I really like Slack. It's just really useful as a centralized communication place, especially since it integrates with almost every SaaS platform under the sun.

I guess it's not suitable for every team though.

<comment><USER33> I've only ever seen Slack in 1 of 2 modes:

\- Dozens of people in every room having multiple conversations, and any comment you make is quickly lost in the flow of other discussions.

\- Ghost town.

<comment><USER34> We use Slack and don't have either of those environments.

I suppose we make heavy use to group DM's and project specific channels, but it really helps us keep communication streamlined and direct.

We don't really use email. If we need to ping someone on a PR review, it's done in Slack. If one of our systems is having issues, it's automated through a specific Slack channel.

<comment><USER33> How much planning, training, and other efforts does your company put into mainlining group DMs and team channels?

</comment></comment></comment></comment><comment><USER35> Some form of communication that's reasonable to be real-time is important. Slack is one of the better options for this.

It makes much more sense to change the expectations / culture surrounding Slack usage at a company than to drop it outright.

You can use Slack and related applications for asynchronous communication in direct messages. On the other hand, I don't want to have to wait multiple hours for a reply when I only need a quick clarification in regards to a previous e-mail.

I don't want to waste my time with e-mail, and I don't think it's a better alternative.

There is real value in Slack and programs like it, and you give that up when you _only_ use e-mail and GitHub issues and such. This is better if you have no one working remote, but it's far from ideal. Besides, if I had an office job I could ignore Slack messages. I couldn't ignore someone walking up and interrupting me in-person.

<comment><USER36> What's wrong with the phone as a real-time communication tool?

<comment><USER35> 1\. I can't easily go and look back at everything that was said in a call. Notes are not a replacement for this.

2\. Phone calls are _too_ real-time, to the point where you can't manage multiple separate phone calls near the same time or do something else if a phonecall only requires some attention.

Calls have their place, but I don't think they're a replacement for written communication.

</comment></comment></comment><comment><USER37> If _only_ Slack was the only source of interruptions!

The more responsibility you gain, the more interruptions you get. I have to make a conscious effort to ignore people for a few hours in order to get into a "flow" these days.

This can lead to some friction but I can't think of another way around the problem.

</comment><comment><USER38> I find it hard to follow these kind of no-chat articles since they usually come off as a bit contrarian rather than something that makes sense:

* Why does a _chat blackout_ naturally follow a fear of missing out?

* What's different from the good ol' IRC days? Mute the channels, see them as transient, and focus on 1on1 conversations.

* Important conversations should not be solely communicated through a short-lived channel chat, but be summarized through email or whatever.

* You're already missing out on all the 1on1 conversations you're not in.

And I write this as someone who chronically checks for slack updates.

Maybe the "fear of missing out" isn't really about missing out on important information, as I initially thought, but about missing out on _participation_ and the inevitable social/office dynamics around that?

<comment><AUTHOR> Author here.

I have never used IRC in a company, so I can't compare. Slack is the topic, because we used Slack. If we have had used IRC or HipChat or Microsoft Teams, then maybe we have come to the same conclusion.

Yes, summarization is important. However switching to E-Mail causes all its problems. New colleagues don't have the mails for example. Basecamp has chat and a forum/message board or todolists. We can easily link between these.

</comment></comment><comment><USER39> Well Slack might have not worked for you. It doesn't work for everyone! Probably it works the worst for devs? Here is a story. I was working with a team of couple people located in different corners of the city. Everyone is remote except two who share an office. Up until a month ago everything was done over email. Sometimes you would send an email and get a reply in minutes, other times after hours. This was highly inefficient, to the point where I would call people to ask them to open emails... Guess what happened since we installed Slack and a couple of general open channels?

<comment><USER40> Why can't you do something else while you're waiting?

<comment><USER39> You can, but the thing is that unlike with emails, with Slack most conversation happen in public and no one has to CC you in email (or rather remember to CC you in these convos) basically slack replaces CC and BCC part of the email really well

</comment></comment></comment><comment><USER41> Good luck finding out about free food in the office without Slack.

<comment><USER33> My coworkers go out of their way to tell each other, in person, about the free food.

</comment></comment><comment><USER26> Even in my company with just two people I could already see us making bad Slack habits. Things that should be in email/google groups/basecamp were showing up in Slack.

I still have Slack, mainly because I like the #github channel that has all the GitHub activity, and the #industrynews channel, which has a bunch of RSS feeds of industry specific news. But those could be easily replaced with google groups/basecamp too.

Maybe I will just shut down the Slack...

</comment><comment><USER42> In addition to the points in this article, I've also found real-time chat is much less efficient for deep discussions than email or voice. For some reason, people tend to break up their thoughts and post them as individual sentences. Maybe it's because that's similar to vocal communication - you want peoples' attention as you're speaking and sending what you want to say bit by bit is sort of like "having the floor". Or maybe it's the anxiety that the subject will change before you're done typing. But it's terribly inefficient because typing is slow and it results in people misunderstanding each other due to poorly structured writing. I find discussing significant plans/changes is much better done over email, where you get to craft your argument and make sure it reads well before you make several other people spend their time reading it.

</comment><comment><USER43> I think a good way to use Slack is to eliminate channel idea. No one has to constantly monitor a channel and that's expected.

Otherwise we know we can muted a channel but we cannot just do that to some certain channel because that's where the team annouencement happens.

Email isn't good either. Email can be easily get lost and not easy to search.

To me, Slack is super useful in 2 cases:

1\. 1-1 or group chat between members on same topic 2\. Archive log: I pipe all the information such as AWS activity(login, spin up server, AWS cloudtrait, Audit Log: ssh in out, K8S event...)

1\. is useful to discuss on specific topics on a specificed thing.

2\. is useful for on-call people to correlate with something, such as when AWS personal dashboard has issue we will know, when a server is added to autoscaling pool trigger Nginx reload, we may have trigger websocket reload and create a spike...those kind of things are very useful and easier to see compare to email to me.

</comment><comment><USER44> Different teams use Slack differently, so it's kind of hard to gauge whether un-slacking works for a team.

We have a team of < 20 and Slack (and other comms tools like Hipchat which we used prior) were extremely useful and barely counter productive. There are a few channels that are noisier than others, but we do have a few important ones that are low volume where discussions do take place but are often forked into a separate discussion on another channel.

It's all about how your team uses the tool IMO and your team's organization of Slack. The key to FOMO is to not FOMO - missing out on conversations is fine (there are plenty you miss out on if everyone starts communicating and meeting offline), as long as you don't miss out on the important ones (which should be in a shared important channel).

Also, in a small company, over-communication is often more important than non- communication

</comment><comment><USER45> Personally, I find it more helpful to move the locus of control inwards and teach myself how to be productive in a diversity of circumstances. In this case, that would mean being more intentional about how I use Slack, and managing others' expectations of their Slack messages to me. If you have a coworker who expects broad latitude to demand your undivided attention at a moment's notice at any time, then that's a problem that isn't necessarily exclusive to Slack. More realistically, it's fine if you batch Slack communications in your down moments like you would for any other communications (email).

</comment><comment><USER46> I'd love to see some hard evidence on the effectiveness of slack. I'm at least skeptical. I feel like it's just another channel to watch. Is there any company that got rid of email and is on slack only?

</comment><comment><USER47> I can understand the frustration with Slack but the comment about large companies using it doesn't have much ground. I'm at a 3000+ employee company and slack works great for us. I think that one thing that has helped many people is to remember that you never have to reply immediately. Also, if you're a stakeholder on something, then a final decision should not be made without your input. I'm sure that if you limit yourself to checking slack as much as you check your email, then it won't be such an issue.

<comment><USER33> > _...remember that you never have to reply immediately._

Yeah, but you have to check immediately, unless you have immense willpower. And so the distraction is already made, the focus is lost, and the time spent switching contexts can't be recovered.

</comment></comment><comment><USER48> I'm so wary of this, it has become one of my questions to interviewers - <USER3> whether, and then how, they use Slack.

</comment><comment><USER49> This is a huge problem for the open source project I work on. New users are overwhelmed with channels to plumb, and search is not great.

I'm open to advice on how to wean our project from chat to email (probably?) Or some better platform that helps new users and developers onboard without so much static

</comment><comment><USER50> Fwiw, I have found that GitHub/Lab issue work great. Not only do they serve as TODOs but those paper trails (so to speak) become part of the project's DNA and "documentation".

Someone new coming on board has a fairly organized point of entry, warts, bumps and all.

</comment><comment><USER36> With the fire of 1000 suns I despise Slack. Aside from the interruptions it creates (which is not exclusive to Slack admittedly) the PC version of the app is a resource hog. So is the android mobile version.

</comment><comment><USER51> So basically, the moral of the story is to talk with your team about what kind of communication scenarios are important to them. And find out if your current tools are making those scenarios better or worse.

</comment><comment><USER52> Slack is still good for automated purposes, i.e. piping alerts and messages from a service. I don't think I've ever found it useful for communicating with other people.

</comment><comment><USER53> Our solution to this has been to keep Slack, but only for conversations that _need_ to happen in real time.

Anything else goes into our Discourse-based internal forum.

</comment><comment><USER54> _> I have learned to be productive when I have a quiet space and can tinker on a problem without getting interrupted. Slack makes this very difficult [...] My ultimate goal is to get longer stretches of uninterrupted time to work on features, customer support or operational issues._

A question for HN for a hypothetical feature: What if the Slack client app had "ambient awareness" such that it suppressed notifications when the active window with focus is an IDE like MS Visual Studio, JetBrains, Xcode, emacs, etc. Would that help you?

Basically, it would work similar to Slack's "Do Not Disturb" feature[1]. DND could be expanded beyond "hours" to include a list of apps that shouldn't be interrupted.

Once a programmer switches away from the code IDE to the email program, that's the point the Slack chat notifications would appear. The idea is that programmers already sort of interrupt themselves[2] but since that timing is controlled by the programmer, a Slack notification is less stressful. Thoughts?

 _> Since work never happens in a vacuum, I would be happy to have only a single realtime notification tool (OpsGenie/PagerDuty) that sends notifications to poeple currently on-call, and only about problems that require realtime attention._

I don't use chat apps at work these days but when I did, I put AOL AIM, Yahoo Messenger, etc inside of a virtual machine that was minimized on screen. That way, everybody saw that I was "online" but their notifications were blocked behind the vm instead of making it to my desktop's taskbar. The vm acted like a firewall. I could then look at chat messages on my own schedule at my leisure -- typically once or twice and hour. For workplaces that expect you to reply to chat messages in 5 seconds, this hack won't work.

[1] [https://www.youtube.com/results?search_query=slack+do+not+di...](https://www.youtube.com/results?search_query=slack+do+not+disturb)

[2] [https://xkcd.com/303/](https://xkcd.com/303/)

<comment><USER29> I really like the idea around "ambient awareness". I'll look into it.

Currently, I've built a slack bot for personal use that integrates with my calendar where I can create stretches of times as "Focus" events and during that time, the bot helps me establish an async communication model.

The bot sets my status to "Do Not Disturb" during the event and if somebody tries to message me, they get a message that I am in heads down mode. They can then leave a note on why they were contacting me or if I they need me urgently, they can click a button and I get an immediate notification. When my focus time ends, I get a list of notes from my team on why they needed me and I can answer them one by one.

Effectively, I've found that once a team moves to Slack, all internal communication moves to Slack (instead of using slack for urgent sync and email for other async), and this brings back email like async model to Slack for the times when you need it.

You can try out the slack bot at [https://slack.com/apps/A5MJB641F-oliv](https://slack.com/apps/A5MJB641F-oliv)

In full disclosure, I've build the bot for my personal usage and don't intend to monetize it. It's just my way of giving back to the community. It's not very polished and doesn't have an onboarding flow, so if you need any help in using it, contact me at ishan.chhabra [at] gmail.com. I'll be happy to help.

</comment></comment><comment><USER55> I work remote for many years now and I never liked synchronous communication in general.

What are your alternative approaches?

</comment><comment><USER56> Hello! One thing I'm curious about, beberlei: is your company colocated, remote, or a mix of the two?

<comment><AUTHOR> a mix, "nearmote" :-) We all live in the same city, but everyone works remote a few hours or days per week. Also our workdays don't always match (early risers vs night owls).

</comment></comment><comment><USER57> Slack is proprietary IRC and IRC is one of the original Internet time wasters.

</comment><comment><USER58> We use email. Amazing how well it works for this. Who'd have thought?

</comment><comment><USER59> Sounds like he could have saved a whole lot of hassle just by removing some slack bots and using threads.

</comment><comment><USER60> I suspect all these people who get anxious using Slack have never used IRC or similar stuff; their only experience with IM might be whatsapp, twitter DMs, etc

</comment><comment><USER61> I don't understand why folks want _less_ information by eliminating Slack. I've adopted Slack and 2 companies so far and find it a tremendous performance optimizer. It's a tool for passively receiving info by choice about many things, and for efficient conversations - especially with folks not sitting next to me - about specific things that are important to me.

FWIW my impressions is hatred of Slack is more a hatred of "I can't control by impulse to read everything so it's a tremendous time waster." Slack's not the problem, it's the person's self-control that's the problem in these situations.

<comment><AUTHOR> Author here. You might be right, we could be using Slack wrong. But have you read the book "Hooked"? The author writes about Slack here: [https://www.nirandfar.com/2014/11/slack.html](https://www.nirandfar.com/2014/11/slack.html) \- Slack is built to addict people to use it. I don't want to fight against that, I want to have tools that support my workflow.</comment></comment>


Photos of the Eiffel Tower at night are restricted due to copyright (2017) - <AUTHOR> https://petapixel.com/2017/10/14/photos-eiffel-tower-night-illegal <comment><USER2> Classic urban legend.

> Views of the Eiffel Tower taken by private individuals for private use do > not require prior agreement. However, professionals must contact our teams, > who will inform them of the conditions of use governing images.

[https://www.toureiffel.paris/en/business/use-image-of- eiffel...](https://www.toureiffel.paris/en/business/use-image-of-eiffel-tower)

EDIT:

Just to be clear: copyright DOES NOT PREVENT ANYONE from PHOTOGRAPHING the tower at night. It only prevents you from profiting from a photograph that you took of the illuminated tower (and then only if the tower is the main feature of the photograph) without a license agreement from the copyright holder.

This is not supporting either the principle or the consequences of copyright, simply debunking the idea that photographing the tower at night is illegal.

<comment><USER3> So what? It doesn't make it any less ridiculous.

<comment><USER4> I have to agree. These are the type of stupid laws I read that completely turns me off of a country. What other ridiculous laws would I have to endure if I were to visit?

<comment><USER5> Every countries have stupid laws by the way

[https://www.stupidlaws.com/](https://www.stupidlaws.com/)

<comment><USER6> Without a source, how can I tell which ones are real?

</comment></comment></comment></comment></comment><comment><USER7> Copyright law is completely bugged. Copyright should last 10 years or the life of the creator. And putting lights on a tower shouldn't be copywritten.

<comment><USER8> The problem with that is it encourages murder. That's the reason for the lifetime + X years rule.

<comment><USER9> Putting a variable into the equation was a mistake to begin with. You shouldn't have to look a person up in an encyclopedia to know when a copyright expires. It should be a fixed 20 years, automatic, with no extensions or exceptions, and no ex-post-facto alterations of the terms.

<comment><USER8> Certainly, I agree. But the parent comment said "10 years or the life of the creator". If copyright expired the day of the creator's death, it would encourage murders. Better to have just "10 years from creation", but _much_ worse to have "10 years or the life of the creator."

</comment></comment></comment></comment><comment><USER10> France has other unusual photo standards also. Americans traveling to France should be aware that in general you CAN'T photograph an individual in public.

[https://commons.wikimedia.org/wiki/Commons:Country_specific_...](https://commons.wikimedia.org/wiki/Commons:Country_specific_consent_requirements#France)

<comment><USER11> And you find it OK for people to photograph you without your consent? Unless you are a public figure I can't see why it shouldn't be ilegal.

<comment><USER12> If I can perceive photons bouncing off of you in public with my eyes, why can't I capture an approximate record of the arrangement of those photons in a digital format?

In the former, I'm storing it in analog form in my mind. In the latter, I'm storing it in digital form on silicon.

If you really don't want to be seen, then don't go in public?

<comment><USER11> Being seen is not the same as being recorded.

Does your GF mind if you record her in bed without her consent?

Explain her your photons bouncing BS or tell her that if she doesn't want to be recorded she shouldn't undress with someone else in the same room.

</comment></comment></comment></comment><comment><USER13> The light display is under copyright! But that seems rather untenable. When do the photons emerging from the Eiffel tower sieze to be copyrighted? Would a reflection in a window or puddle be in violation? What about an aerial shot of Paris?

IANAL, but it seems to me a flimsy argument: putting a large, unpreventable artwork in the middle of a public space. IMHO, if you want your copyright to be upheld, the creator needs to show a reasonable amount of effort to limit possible copyright infringement.

<comment><USER14> > When do the photons emerging from the Eiffel tower sieze to be copyrighted?

When they cease to be recognisable as a pattern in front of a judge.

> Would a reflection in a window or puddle be in violation?

Yes, as long as reasonably recognisable and substantive of the display. Not really any different the mirror in SLR camera taking the picture.

> What about an aerial shot of Paris?

Probably not, as you wouldn't be able to see a distinguishable amount of the lights from an aerial shot. Depends on the resolution.

> IANAL

I'm not sure what you think your opinion adds then tbh.

> IMHO, if you want your copyright to be upheld, the creator needs to show a > reasonable amount of effort to limit possible copyright infringement.

For the avoidance of doubt this is not legally true in almost any circumstance in pretty much any country in the world.

<comment><USER15> > Not really any different the mirror in SLR camera taking the picture.

Pedantic point but the mirror isn't involved when a picture it taken. It flips up out of the way and the light goes directly from the lenses to the sensor/film. The mirror is only there for the viewfinder.

</comment></comment></comment><comment><USER16> So pictures that show the Eiffel Tower at night will have to be filtered by the glorious upload filters that were gifted to us by EU, Axel Voss, Germany and France yesterday. And watercolors of the Eiffel Tower at night will be filtered, too. Accidentally.

</comment><comment><USER17> For commercial use.

As opposed to Sweden where it is illegal to post pictures of public art installations online regardless of commercial use.

<comment><USER18> If someone wants to read more, this artice contains several links: [https://alj.artrepreneur.com/copyright-public- art/](https://alj.artrepreneur.com/copyright-public-art/)

</comment></comment><comment><USER19> *for commercial use. The article says quotes "Technically taking the picture is also illegal" but every other source in the article says it is not against the copyright law to simply take a picture for personal use.

</comment><comment><USER20> Given that it's due to the lights, with the day time image usage being fine, I wonder if that means you could simulate a (new) photorealistic nighttime view based on a day time image and post that subtly different image without breaking the rules?!

Obviously wouldn't be a photograph, so isn't going to help tourists, but might make enough of a point that they give up opposing it.

</comment><comment><USER21> I thought it was completely fine to photograph anything that is visible publicly. Or is that principle different for each country? The problem with this approach is if someday it became possible to create photographs from human memory, would they want to force copyright on people's brains too?

<comment><USER22> If you try to take pictures of buildings under construction in the US, state or federal facilities, or airports, you'll find yourself in hot water pretty quickly.

<comment><USER22> Not sure why this was downvoted twice... It's a fact, you will get hassled in many places in the US for taking pictures in public. It may not be illegal, but you will definitely still get angry people with guns in your face, and potentially arrested.

</comment></comment></comment><comment><USER23> Here is a link to articles that discusses 'property release' in relation to commercial photography[0][1] and[0] includes a list of several other famous properties which enjoy similar protections as Eiffel tower does.

[0] [https://help.author.envato.com/hc/en- us/articles/36000047240...](https://help.author.envato.com/hc/en- us/articles/360000472403-When-Do-I-Need-A-Model-or-Property-Release-) [1] [https://en.wikipedia.org/wiki/Photography_and_the_law#Privat...](https://en.wikipedia.org/wiki/Photography_and_the_law#Private_property_2)

</comment><comment><USER24> /me wonders whether the copyright extends to very precise drawings of the Eiffel Tower at night. Some drawings are close to photo-realistic and will look exactly like a photo when presented at the lower resolution used on the web. If such a drawing looks just like the real thing it will therefore be indiscernible from a photograph. Would such an image be subject to copyright claims? What if the artist switches around a few details, some braces which go top-left to bottom-right in the real thing go top-right to bottom-left in the drawing?

</comment><comment><USER25> What happens to me if I photograph it and live in another country?

Can France extradite me?

<comment><USER26> France would request your extradition. The country you are in would actually extradite you.

</comment></comment><comment><USER27> The last scenes of the first season of Star Trek Discovery had a shot of Paris at night (with lots of new futuristic buildings befitting a 23rd century setting)

The Eiffel Tower was dark. Looked very odd.

<comment><USER28> If the movie makers did this to avoid copyright infringement, why then couldn't they have created their own lighting pattern for the shot? If the very concept of putting any lights on the tower at night is the copyright, that's a copyright deserving neglect at every opportunity -a law begging a thumb to the nose.

<comment><USER27> That's what confused me. They did light it up as a passing shuttle's headlights briefly played over it, perhaps that was the choice, but it looked really out of place.

</comment></comment></comment><comment><USER29> So what would happen if you took a picture at night and digitally changed the light display to be something different? Is that a copy or not?

</comment><comment><USER30> relevant Tom Scott:

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

<comment><USER31> related Tom Scott:

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

</comment></comment><comment><USER32> TLDR: The light display on the Eiffel Tower is an artistic work, and is thus protected by copyright. We'll legally be able to photograph the Eiffel Tower with it's artistic light display in 1985+70 = 2055.

<comment><USER33> I've really always considered copyright timelines of more than a decade to be way too long, honestly. Same deal with patents. Once the initial impact of the work is concluded, I don't see any reason not to open it to public domain. Where did this copyright timeline come from? Who decided on 70 years in France?

<comment><USER27> Have exponential increase in renewal fees. Most things would drop out of copyright after 10 years, but you could pay $1k a year to renew for year 10, $2k for year 11, $1m for year 20, $1b for year 30, etc.

Same with patents.</comment></comment></comment>


Autocomplete as an interface - <AUTHOR> http://www.benkuhn.net/autocomplete <comment><USER2> Nitpick. The author is conflating "tab completion" and "autocomplete." The interactions are very different. Tab completion is an _active request for information_ where autocomplete is a prompt or suggestion. Pull vs Push.

Google autocompletes your search queries. Bash and zsh offer tab completion as a feature.

iPython and Sublime have both tab completion and autocomplete, but they are different interactions.

<comment><USER3> I don't think I agree. I think that autocomplete is just a better UI for what you're trying to accomplish with tab completion, and also happens to be discoverable

</comment></comment><comment><USER4> UX in its rawest sense, although with a programmer slant. That said, programmers are a subset of a wider group (spoiler: it's us!) and it would be nice to see these patterns break out of the developer world, so they can evolve further.

Consider, when was the last time you saw a website with perfect keyboard integration..? The lack of universal patterns does get in the way (as does keyboard-less devices, which are clearly a whole other paradigm), but still..

</comment><comment><USER5> I feel similarly about autocomplete (particularly the "best way to learn Python" bit) and suggest Python users looking for autocompletion similar to zsh at the command line pip install bpython (which I work on).

See [https://github.com/bpython/bpython](https://github.com/bpython/bpython) for source, [http://ballingt.com/bpython- curtsies](http://ballingt.com/bpython-curtsies) for some (old) gifs.

More generally, build your own tools like this with the excellent Python Prompt Toolkit! ([https://github.com/jonathanslenders/python-prompt- toolkit](https://github.com/jonathanslenders/python-prompt-toolkit))

<comment><USER6> I'm not sure if it's just me, but I couldn't find a list of shortcut keys in the documentation and I kind of went back to IPython. I think half of it is that the F1 key was bound to help in the terminal, so I couldn't look with that, but you may definitely want to add something to the site to list keys and features.

<comment><USER5> Great point, particularly relevant to autocompletion: IPython magics are tab completable and therefore more discoverable than bpython special keys. Real quick, they're emacs-style readline keys but with ctrl-r for undo. F1-F10 do things too.

Docs for shortcut keys, for anyone F1 doesn't work for: [http://docs.bpython- interpreter.org/configuration.html#keybo...](http://docs.bpython- interpreter.org/configuration.html#keyboard)

The F1 issue with GNOME terminal is frustrating, I agree a cheatsheet-style help page on the site would be good. I've been meaning to do this for a while and might finally get time to work through backlog next week :)

<comment><USER6> The page you linked technically has all the information I need, but it's hidden among emacs-style movement commands and is a bit cumbersome to read. Consider something like:

* F8 - Upload current session to pastebin. * F6 - Reimport everything. * F5 - Watch imports and re-run entire session if one of the imports changes.

That would both showcase these fantastic features (I didn't know about them until right now when I tried to write this comment), and allow me to try them right away in the bpython interpreter I have just installed.

I had spotted a very nice hotkey that takes you to the source of the function that was being autocompleted but I can't find it again on that page. That's how bad the current page is :P

</comment></comment></comment></comment><comment><USER7> I'm sure if it's only the work of the Ubuntu team, but they added GTK-holistic autocompletion for menus.

After seeing office workers cry everytime a menu layout changed, I'd be very interested in seeing them having fuzzy search like this.

<comment><USER8> [https://en.wikipedia.org/wiki/Ribbon_(computing)#Reaction](https://en.wikipedia.org/wiki/Ribbon_\(computing\)#Reaction)

<comment><USER7> The Ribbon backfire is pretty well known, but fuzzy search is completely orthogonal to "legacy" UX. You don't need to remove or change anything to give access to a real-time filter of all the menu "namespace".

</comment></comment></comment><comment><USER9> We need some sort of advanced autocompletion where a dictionary is used when creating variable names, for example. This would be helpful if we ever want to be able to program on tablets. It'll probably never be as fast as with a keyboard but it might be useful when taking a bus or subway.

</comment><comment><USER10> Tell Me is part of Office 2016 desktop edition [1]

It has been part of Office 365 since 2014 [2]:

Available now, an easier, faster and more convenient way of doing things in Word – Tell Me. Tell Me understands what you're trying to accomplish and helps you do it faster. So if I'm trying to make my document horizontal, Tell Me knows it's the orientation feature I'm looking for. It brings everything I need to my fingertips.

[1] [https://blogs.office.com/2015/09/22/thenewoffice/](https://blogs.office.com/2015/09/22/thenewoffice/)

[2] [https://blogs.office.com/2014/01/22/new-year-more- goodness-t...](https://blogs.office.com/2014/01/22/new-year-more-goodness- tell-me-footnotes-and-endnotes-and-more/)

</comment><comment><USER11> Re the point made at the end: there's a ton of fuzzy completion engines.</comment>


Maurice Sendak, creator of Where the Wild Things Are, dead at 83 - <AUTHOR> http://www.guardian.co.uk/books/2012/may/08/maurice-sendak-wild-things-dies-83

<comment><USER2> I submitted this story 6 hours ago: <http://news.ycombinator.com/item?id=3943379>

It did really well for a time, then in the space of about 15 minutes plummeted from about 35 in the rankings to about 470. Clearly a few people flagged it, and that was that.

I hope your submission does better, and I've upvoted you.</comment>


The largest n-tuple in Lisp - <AUTHOR>

The following expression defines a function called double which returns twice its argument:
CL-USER 17 : 8 > (defun double (x) (* x 2))
DOUBLE
Having fed this to Lisp, we can call double in other functions, or from the top level:
CL-USER 18 : 8 > (double 1)
2
CL-USER 18 : 8 > (double 2)
4
CL-USER 18 : 8 > (double 4)
8
I experimented and realised that this works with triple too :
CL-USER 21 : 8 > (defun triple (x) (* x 3))
TRIPLE
CL-USER 22 : 8 > (triple 3)
9
CL-USER 23 : 8 > (triple 6)
18
CL-USER 24 : 8 > (triple 1)
3
This works for quadruple too: I can define a function called quadruple which returns four times its argument :
CL-USER 25 : 8 > (defun quadruple (x) (* x 4))
QUADRUPLE
CL-USER 26 : 8 > (quadruple 4)
16
CL-USER 27 : 8 > (quadruple 8)
32
CL-USER 28 : 8 > (quadruple 16)
64
Works for quintuple too ! :
CL-USER 9 : 2 > (defun quintuple (x) (* x 5))
QUINTUPLE
CL-USER 10 : 2 > (quintuple 4)
20
CL-USER 11 : 2 > (quintuple 5)
25
I then tried a far larger n-tuple : centuple and it works as well !
CL-USER 12 : 2 > (defun centuple (x) (* x 100))
CENTUPLE
CL-USER 13 : 2 > (centuple 6)
600
CL-USER 14 : 2 > (centuple 8)
800
Later on, I realised that there is no limit and you can in fact define n-tuples even up to sextillion in Lisp! <comment><USER2> I am not familiar with Lisp but these don't look like n-tuples to me. Is it just a function that multiplies a value by a fixed number?

As I understand it, a tuple is a collection of typed objects. E.g. in C# the type Tuple<Int,Bool> or Haskell (Int,Bool)

<comment><AUTHOR> Yup, It is just a function that multiplies a value by a fixed number.

I just named it n-tuple because it rhymes : quadruple, centuple, but perhaps it was the wrong way to name it.

I was just surprised to realise that there is no limit to the value of n for this type of function that multiplies a value by a fixed number, so I put this on Hackernews.

It was a surprising result, at least to me ...

<comment><USER2> Same in Haskell there is Int for your normal bounded integer (28 bit I think) and there is Integer which is bounded only by the amount of memory you can allocate on the heap.</comment></comment></comment>


Ask HN: How do you inspire programmers to work with older tech? - <AUTHOR>

My company has been building a system to manage clinical trial health research for the past 5 years.
It's a really cool, useful application that helps people in the real world do really important stuff.
However -- it's not build with the latest, "coolest" technology.
I find a lot of programmers turn up their nose when asked to work on something that's not using the latest beta buzzy framework or language.
Instead, it seems like they'd rather work on the latest doomed social network craplication as long as they can program only using libraries with version numbers < 1.0.
So how do you present an opportunity working with a really cool, useful application, when it doesn't use the latest tech? <comment><USER2> So is there no NEW development going on? Is this just maintenance? If there are new pieces, maybe they'd have a chance to work in newer tech.

Also? The way you framed this question seethes with condescension. "beta buzzy framework" and "craplication" and "version numbers < 1.0" suggest a very negative attitude. Perhaps potential employees are reacting to this perceived hostility, not the lack of hip new tech. I might not mind less than bleeding edge, but I don't want to work for or with Mr Youkidsgetoffmylawn. And I AM an old fart who has been doing this for 20 years!

<comment><AUTHOR> You make a fair point.

I have been programming for a long time now (~26 years) and I do tend to roll my eyes every time some fancy "new" language/framework/library comes out that's just a re-re-re-implementation of something 20, 30, or 40 years old.

It's simply not practical to keep rewriting large, stable applications using a completely new language and architecture for marginal benefits on an ongoing basis.

I've programmed in everything from BASIC to Pascal to C/C++ to C#, Lisp, Python, PHP, Java, Javascript, can't even rememeber what else and let's be honest -- there's no silver bullet.

They all have their strengths and weaknesses, and they all compile down to machine code.

I just have trouble understanding why people refuse to work with language or framework that's more than a year old.

<comment><USER2> I don't roll my eyes at new tech, but I do roll my eyes at the idea that new tech can fundamentally solve problems, because the hard problems aren't language problems. I do, however, roll my eyes at using crufty old tech for new projects when better tech is available. I dayjob in the enterprise Java world, but I'm working on a startup at home. I'm still not quite settled on all my tools for the startup code, but I'm definitely settled on the 12 Factor App approach (<http://www.12factor.net>), and it's led me to the conclusion that mainstream enterprise middleware as expressed in J2EE is fundamentally wrong. Application servers are an inherently bad idea.

That said, my own coding is currently leaning toward Node.js for server stuff. I'm using Neo4j for data and it turns problems right on their ear - for my space (not all spaces), it's a million times better than relational and a thousand times better than document databases. So I'm looking for languages/frameworks that make my particular use of Neo4j more graceful. Started with Rails, but gave it up as the ActiveRecord ORM is kind of Neo4j-hostile in practice. I expect this is true of most ORM solutions (hence the R, for "relational"), so maybe I can make it better in a lighter-weight system.

At any rate, there are no silver bullets, but plenty of wooden ones. I lump PHP in that category. If there's an existing PHP app, then by all means maintain it, but don't use it for new projects!

<comment><AUTHOR> Well that's insightful. At least I realize the problem I have is perhaps not the problem that I thought I had.

It may just be a strong bias against PHP.

But even if we did choose to rewrite at some point, how do you choose?

Java is "enterprise-y" and people generally hate it.

As you mention, Ruby has fallen out of fashion, and it's always had a reputation for being a resource hog.

Python is a great language overall, but was never really meant for web programming so ends up being a bit kludgy.

Node is super popular with the bleeding edge crowd, but it's only been around for 3 years and speaking of wooden bullets -- Javascript has more language pitfalls than PHP! And there's still no clear winner in terms of framework stack.

Meanwhile, Google has invented its own proprietary languages , which seems like a real Microsoft in the 1990s kind of move.

So even if we started over, it's pretty unclear what we'd choose to build with.

<comment><USER3> > But even if we did choose to rewrite at some point, how do you choose?

I'd pack my bags tomorrow for a Lisp job.

</comment></comment></comment></comment></comment><comment><USER4> It depends how old. It sounds like you're working on COBOL or something. Most programmers are pretty flexible I think -- at least I am.

What's your Joel test score? <http://www.joelonsoftware.com/articles/fog0000000043.html>

It may be an indication why developers are avoiding you.

<comment><AUTHOR> It's PHP -- but solid object-oriented PHP with a popular framework (Symfony).

Hadn't seen the Joel Test before -- thanks for pointing it out.

1\. Do you use source control? Yes (Git) 2\. Can you make a build in one step? Yes (one command) 3\. Do you make daily builds? Yes (continuous integration) 4\. Do you have a bug database? Yes 5\. Do you fix bugs before writing new code? Yes 6\. Do you have an up-to-date schedule? Yes 7\. Do you have a spec? Many 8\. Do programmers have quiet working conditions? Yes (remote) 9\. Do you use the best tools money can buy? Mid-range 10\. Do you have testers? To an extent 11\. Do new candidates write code during their interview? Yes 12\. Do you do hallway usability testing? No

So we've got like a good 10/12 (I'm giving a half point each for 9 and 10 :)

<comment><USER5> Your problem isn't that PHP is old. PHP is the same age as Java and there are plenty of people willing to use that. Objective-C is trendy now, and that's 12 years older than PHP.

Your problem is that PHP has probably the worst reputation of any programming language since COBOL.

<comment><AUTHOR> Looks like I'm not the only one who has had this problem: <http://blog.mailchimp.com/ewww-you-use-php/>

</comment></comment></comment></comment><comment><USER6> You pay them a lot of money, obviously. Or do something else that makes up for the fact that you're not using technologies that developers are drawn to.

It's pretty simple economics. If you are using "cool" technologies, you basically get a discount on your developers because there are so many of them that want to work with the tech. The less desirable your tech stack is, the more you have to pay (in cash or benefits) to make up for it.

<comment><USER2> Or you outsource it to India!

<comment><AUTHOR> :) Been there, tried that. Did not go well.

</comment></comment></comment><comment><USER7> I would strive for a culture that emphasizes life balance. Reasonable deadlines, recognition, flexibility. Look for the people with kids. Offer part time. Things that the new cool can't touch.

</comment><comment><USER8> Part of the reason people want to work with the "coolest" technologies is that they want skills that will be relevant/desirable by a wide range of employers. If the skills they pick up working for you are not relevant in other areas, then they're basically wasting their time.

</comment><comment><USER9> Tell us what tech you are using and we will tell you why no one wants to work with it.

<comment><AUTHOR> PHP. Unfortunately it's earned itself a terrible reputation due to its popularity with beginners. You can start throwing tomatoes now :)

<comment><USER2> I have a hard time thinking of PHP as "old". :) C is old. FORTRAN is old. And I'd argue that PHP's terrible reputation isn't because it's old, but rather because it's primitive. It has all sorts of nasty coupling between layers, and encourages bad programming habits. On the other hand, something like 75% of the world's websites run on it, so it can't be that hard to find PHP programmers.

<comment><USER10> C is old ? I'm a 31 year old developer and I really enjoy working in C, maybe I'm just old ;)

</comment></comment></comment></comment><comment><USER11> Well the problem is if this tech isn't relevant how are they going to get their next job. The days of company loyalty are done. Insix months if you do a layoff what will they do?

</comment><comment><USER12> The problem is that php itself has been undergoing a lot of change in the past 4-5 years, and tbh, even symfony 2 is not the "coolest" PHP tech out there. In php land, laravel 4 is the rad thing these days, and from the looks of it, its gonna stay that for several more years. And since its new PHP, most of the people using it are not those who are into "new" techs, per se, but those who used to CI, or Kohana, or Cake, and avoided Symfony because of its blatant copy of Java ecosystem. As a pretty decent php-dev, I can surely say that php 5.3+ can be easily used to create better abstractions and tool-kits than Java.

Also, If you haven't yet, take a look at composer and packagist. Their are several cool php libs up there.

I am also pretty interested in knowing what are you doing about this problem, because my forte is php and JS, a bit more better at at php, and i am pretty confused about which tech to make a product I have in mind in. Since its a distributed system, PHP might offer a better reach (also because of its popularity as "easy" amongst non-devs). But JS over node is a much better lang to work with, though it would hinder getting talent and traction and would require huge amount of marketing etc.

</comment><comment><USER13> OK, maybe the "technology" is out of date, how about what you are allowing them do with it?

In my circles there are folks still writing and building new tools for the Commodore 64. Same old 6510/Commodore BASIC but employing new programs with new methods and some new add-on hardware.

So, as another respondent asked, are you offering them the ability enhance and update that older yet cool useful application (using the tried and true technology), or just merely maintaining it?

</comment><comment><USER14> You show them traction. Show them the money, the business model and sell the dream. That said, if you like someone, be open to their ideas about using new tools. Just make sure they have an incremental plan, not shotgun re-write.

</comment><comment><USER15> You don't, you find programmers who want to work with that technology instead. It's much easier to find someone who's goals align with your own rather than trying to convince someone that their goals are wrong.

</comment><comment><USER16> Old stuff is fine with me. I once considered taking a job as a mainframe programmer (RPG). There is always my free time to tinker with new stuff ( which is what I always do).

</comment><comment><USER17> You convince people that they will have a _career_ with your company and then hire for that. There are people who are looking for a good career over "bleeding edge" -- some of them are even good. (I've worked with some, although even in such institutions, those who are _good_ are in the minority -- and often incorporating newer technologies into side or non-critical projects where they make sense and save time/effort/money/bureaucracy.)

If you can't convince such talent that you can offer a career, then you may be screwed.

P.S. Is PHP significantly coincident with such "career" type positions, these days?

</comment><comment><USER3> What is it? What is it built with?

Do you offer part time? Telecommute?

<comment><AUTHOR> It's a system that manages clinical trial research data, built with PHP. Yes and yes.

<comment><USER3> Well there's the problem. It isn't that php isn't the newest technology -- but rather, that php is a horror to work with.

I'd jump at the chance to work with Lisp (which is far older than php) because it's a joy to work with.

I'd dearly love to work part-time so I could devote more time to writing and personal projects. And I'd love to be able to telecommute so I could do some traveling while working. And for those opportunities I'd happily work in Pascal, BASIC or even COBOL.

But I just can't bring myself to touch php again.</comment></comment></comment>


Random walkers illuminate a math problem - <AUTHOR> https://physicstoday.scitation.org/do/10.1063/PT.6.1.20190808a/full/ <comment><USER2> Tangentially related, I recently searched for an equation that could provide the expected mean particle displacement (at some dt) given the average particle diffusion rate. I was surprised to find out who solved this problem... Brownian motion was first described in 1827 by botanist Robert Brown while looking through a microscope at pollen immersed in water, which seemed to move with a so-called 'random walk'. Around 80 years later, the young physicist Albert Einstein published his first relatively (heh) important contribution to science - an article that worked out the math describing this stochastic motion. Here's the paper:

[http://www.maths.usyd.edu.au/u/UG/SM/MATH3075/r/Einstein_190...](http://www.maths.usyd.edu.au/u/UG/SM/MATH3075/r/Einstein_1905.pdf)

</comment><comment><USER3> I don't think that the author of the article has any idea what they are speaking about.

Retelling the article:

      - I am speaking about a result Z.
      - Here's the proof for A (obvious)
      - Here's the proof for B (obvious)
      - Here's the proof for C (obvious)
      - This is a great achievement.

I did not read the original paper, but am I missing something from the article itself?

<comment><USER4> I rather suspect the opposite problem: the author has too much math background to realize when they're using too much lingo and skipping too many steps. That or they're really just copy-pasting from someone like that. Anyway, the article did make sense eventually, mostly, after I read it three times.

<comment><USER3> So who are those PR releases are targetting?

<comment><USER4> Good question. I didn't say it was a smart way to write.

</comment></comment></comment></comment><comment><USER5> How does this relate to stock trading? There is a book A random walk down Wall Street on random walks related to trading.

[https://en.m.wikipedia.org/wiki/A_Random_Walk_Down_Wall_Stre...](https://en.m.wikipedia.org/wiki/A_Random_Walk_Down_Wall_Street)

</comment><comment><USER6> So what happens if you attempt to do proof by induction? I guess you get stuck proving that the general n+1 case equals pi/2?

I certainly expect so.</comment>


Apple WWDC15 Keynote Live Broadcast - <AUTHOR> http://www.apple.com/live/2015-june-event/ <comment><USER2> _> Live streaming video requires Safari 6.0.5 or later on OS X v10.8.5 or later; Safari on iOS 6.0 or later. Streaming via Apple TV requires second- or third-generation Apple TV with software 6.2 or later._

Apple continues to refuse acknowledgment of the existence of a heterogeneous computing environment. Many people who do not have access to an Apple computer will not be able to watch the stream. Contrast with Google who stream their keynote on YouTube. So rather than being inclusive, the company is being exclusive.

Yet Tim Cook, with regards to diversity of employees, believes "It's the future of our company... I think the most diverse group will produce the best product, I firmly believe that."[1]

Does Tim Cook not see the irony of his posturing? How can he produce the best products if he and his employees are hired to reject the reality of the technology world around them and enforce isolation rather than encourage interoperability?

[1] [http://mashable.com/2015/06/08/tim-cook-apple-diversity- wome...](http://mashable.com/2015/06/08/tim-cook-apple-diversity-women- future/)

<comment><USER3> Apple use HTTP Live Streaming (HLS) to broadcast live events. This is an entirely open standard. Indeed, it's super-simple to implement and use. AFAIK they submitted it as an Internet Draft, but I'm not sure it's gone anywhere.

HTTP Live Streaming is supported by more than just Apple devices – it'll work with recent Android devices too, and with VLC / other media players. I wouldn't expect Apple to certify the compatibility of the stream with other devices – sure, it might work, but would you expect them to explain the full gamut of software which might potentially be able to view the stream?

People get awfully worked up about this sort of thing without taking a small step back and thinking about it for a minute. This is not a horrible "let's ignore non-Apple users" conspiracy. It's just explaining the system requirements that Apple is targeting to the expected audience – basically all of whom will be using an Apple device.

<comment><USER4> Taken from a phone with 100% support for HLS

[http://www.imgur.com/VvAhSEF.png](http://www.imgur.com/VvAhSEF.png)

<comment><USER3> Here you go: [http://p.events- delivery.apple.com.edgesuite.net/15pijbnaefv...](http://p.events- delivery.apple.com.edgesuite.net/15pijbnaefvpoijbaefvpihb06/m3u8/hls_mvp.m3u8)

Since I imagine it's difficult to determine which devices support HLS in- browser, I guess they don't show the video.

<comment><USER5> It's trivially easy to detect in-browser (with mediaElement.canPlayType()). Modernizr detects HLS support out of the box.

<comment><USER6> uh huh.

and then you try to fullscreen on android and it breaks because android.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR>
      New York: 1 p.m. EDT
      Chicago: 12 p.m. CDT
      Honolulu: 7 a.m. HST
      London: 6 p.m. BST
      Paris: 7 p.m. CEST
      Moscow: 9 p.m. MSK
      Mumbai: 10:30 p.m. IST
      Beijing: 1 a.m. CST
      Seoul: 2 a.m. KST
      Sydney: 3 a.m. AEST

<comment><USER7> Thanks. You wonder why Apple still do:

'Our live broadcast begins at 10 a.m. PDT.'

Rather than detecting my location and showing me the local time.

<comment><USER8> Because for Apple, Cupertino is the center of the universe, and they don't try to hide it. That's their time zone and that's all they really care about.

<comment><USER9> They should have named their new font Cupertino.

<comment><USER10> Apple tends to reuse trademarks. San Francisco was the name of a "wacky" ransom note looking font on old Macs. Likewise, "SuperDrive" was repurposed for both the 1.4 MB floppy drive and the CD/DVD-R/RW/+R optical disc drive they used to ship.

</comment></comment></comment></comment></comment><comment><USER11> VLC Stream:

[http://p.events- delivery.apple.com.edgesuite.net/15pijbnaefv...](http://p.events- delivery.apple.com.edgesuite.net/15pijbnaefvpoijbaefvpihb06/m3u8/atv_mvp.m3u8)

<comment><USER12> This will give you a static stream, which means if your bandwidth dips or the demand spikes you may have problems.

So don't complain if you have problems with it.

<comment><USER11> Interesting, thanks.

Any idea how to get a dynamic stream in VLC?

<comment><USER13> VLC is just horrible with HLS streams unfortunately.

The app I run on my jailbroken PS3 (Movian) is actually way more capable.

</comment></comment></comment></comment><comment><USER14> Watch the WWDC from Windows on Twitch: [http://www.twitch.tv/thehogbit](http://www.twitch.tv/thehogbit)

</comment><comment><USER15> It's interesting how they've been shifting the tone of the keynotes since Jobs died. They're trying to be a bit more playful and especially this keynote has been full of jokes.

To some extent, I like how they're explicitly not trying to hold on to Jobs' way of doing things. On the other hand, they're dangerously close in 'dad trying to be cool' territory. I think this is the first keynote where I got that vibe, especially when they got Drake on stage.

Anyone have a good theory as to why they're changing the tone of the keynotes? Or am I seeing something that isn't there?

</comment><comment><USER16> Oh, it's that time of the year again, where I need to type "Safari" in to the Spotlight Search.

</comment><comment><USER17> For anyone wanting to watch this on Windows or Android, check out this article to find out how:

[http://9to5mac.com/2015/06/02/apple-wwdc-windows-android- liv...](http://9to5mac.com/2015/06/02/apple-wwdc-windows-android-livestream/)

</comment><comment><USER18> Interesting that apple.com redirects on Safari. It straight up auto-plays WWDC.

</comment><comment><USER12> This WWDC is the most underwhelming one evah!!!!

Seriously, though, I'm pretty excited. Each year is the worst ever-- kinda like SXSW these days-- to some people. I don't understand where they are coming from. Sure, some years are more fundamental than others... but Apple always has one great thing to announce.

I happened to be there, and in the audience not too far from Steve when he came out and started speaking while a coffin rose up from beneath the stage. Then he opened the coffin and placed a Mac OS 9 box in the Coffin. It was wonderful. (And I was so happy because, unlike the 1980s, I was no longer interested in classic Mac OS.)

My last regular WWDC was in 2003, and I remember being really impressed that they gave out Leather Jackets (thought that was probable 2001, now that I think about it.) Nothing like communing with the mac faithful once a year- back when being a mac developer meant having trouble finding jobs where you actually got to do mac development.

Seriously, I got hired more than once to work on a mac product, only to be shifted over to windows soon after. Consequently, I just stopped learning windows so they wouldn't think I could do it and what I did know became out of date... so I ended up working on Linux instead! But Linux is fine by me.

Once the videos started coming out regularly, it didn't make much sense to go to San Francisco for a week-- $1500 for the conference, $2,500 more all in for hotel and airfare and all that-- a $600 set of DVDs is a much better deal.

But I did go back in 2008 so my partner (we started an iOS development shop) could get the experience and get a first hand education in the just released "iPhone SDK".

One thing that's interesting-- there has been no real rumor about what's going to be released.

I haven't a clue.

And I love it.

Apple's at their best when they surprise. The amount of surprise may not reach some people's expectations...

But this day is more significant to me (as a graybeard adult) than christmas probably ever was.

So, Happy WWDC Keynote Day!

Rest in Peace, Steve!

<comment><USER7> > Then he opened the coffin and placed a Mac OS 9 box in the coffin.

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


Apple, Google continue inclusive push with new emojis - <AUTHOR> https://www.apnews.com/5892f2fe3bf040778bbdc34c7e771ca3 <comment><USER2> Well to begin with emojis were already neutral from the start until they included gender properties, skin colour, etc.

Rather than push this empty incentive on the diversity and inclusivity myth which is hugely prevalent in Silicon Valey and software engineering, perhaps they should focus their efforts in fixing the recent outages in their own infrastructure instead.

That would probably benefit everyone rather than this nonsense.</comment>


Ask HN: Site for volunteers to write software for academic/research - <AUTHOR>

Would any one know of a site that academics can ask for volunteers to write software for research purposes?
I was thinking that there's a lot of science grads writing business software (like myself) who'd like to write technical software in their spare time.
Likewise there's a lot of academics/researchers who need some software written, and struggling to find someone to do it.
A web site could get the two together, anyone know of such a site? if not I was thinking of putting one together, but thought I'd ask here. Wasn't thinking of profit, just doing something technical that wasn't another orm/language etc. <comment><USER2> You could monitor sites like seqanswers.com or biostars.org and offer coding- help when someone seems to be stuck.

I can't see the value in a site like you propose - a lot of data we analyse here (bioinformatics) is proprietary, just to touch it I had to sign two NDAs. In these circumstances it's impossible to invite strangers from the Internet to help work, the maximum we can do is hire local interns.

<comment><AUTHOR> Thanks, I had wondered about that, not all work would be like that though? Much would be open and government funded wouldn't it? or am I out of touch, when I was last in academia there was quite a bit that was still public. Probably should mention I'm in australia - things might be different here.

The other thought I had was would researchers want to use a random internetter even if not under NDA for the fear that their research would end up somewhere else? Not something I have experience with.

I do offer my 2c worth on coding sites, I will have a look at the sites you mentioned, thanks, I was thinking about larger parts of work though, small project size

<comment><USER2> I work in Australia, too :)

We are partially Government funded and partially private funded, the Government funds don't force us to openly do anything. Open Access is on the rise but that's just about your publication, and your end-results - no-one forces you to open up your preliminary data. In the long run our sequenced genomes will be public, but only after we've published them, of course.

You're right about the stolen research-fears of scientists, I hear that often, even though I don't know of a single case of stolen research in recent years. Mostly it's the fear of a rival research-group publishing their results before you can publish yours - if you share, they might get the upper hand in the race.

If you're into small projects and live near a university: Most research departments (ours too) give out small research projects to underpaid interns for a couple of hours a week, because the interns are usually students they come in for a couple of hours every morning before lectures and then leave for the day, doing the rest from home. We had one intern who worked 99% from home.

Google around a bit, I'm fairly sure a bioinformatics-dept. would take you on.

<comment><AUTHOR> I shall ask, probably easier than I think :-) Thanks.

<comment><USER2> No worries, good luck!</comment></comment></comment></comment></comment>


Programmatic Art - <AUTHOR> http://urbanape.com/blog/2013/02/19/dunno-if-its-art-but-i-like-it/

<comment><USER2> I recently gave a talk about programmatic art at Heroku's conference.

<https://vimeo.com/groups/waza2013/videos/61113159>

My lecture notes may be of interested to you also:

<http://www.runemadsen.com/printing-code>

For example:

<http://www.runemadsen.com/printing-code/lecture-form>

<comment><USER3> I just peaked at these, and I'm bookmarking a million times over. I'm very interested in this space right now, thanks so much with sharing your knowledge.

<comment><USER4> Totally agreed, this is incredible.

If someone wants to learn, what would be the best place to get started? as in - books, software etc? Also, is there a self paced course?

</comment></comment></comment><comment><USER5> I guess demoscene deserves a mention here. They kinda take the generative/programmatic art thing to the extreme, and do everything in real- time. Of course most productions these days are in 3D which makes them quite distinct from these geometric 2D ones, but there are still some similarities. Seeing a nice high-end 2D demo these days could be interesting.

<comment><USER6> I always go here to get demos: <http://www.pouet.net/>

</comment></comment><comment><USER7> There is a programming language for making really cool art called "Context Free":

"Context Free is a program that generates images from written instructions called a grammar. The program follows the instructions in a few seconds to create images that can contain millions of shapes."

The language is impressive in how complicated the resulting images can be from a few simple rules. Here is a link to one popular image in their gallery along with source code:

<http://www.contextfreeart.org/gallery/view.php?id=1162>

</comment><comment><USER8> If anyone is looking for a gentle introduction into this sort of thing, Jeremy Ashkenas (of Underscore/Backbone hame) wrote a wonderful Ruby wrapper for Processing [0]. The syntax is remarkably simple (and Ruby!). Here's an example of the Mandelbrot set [1]

[0]: <https://github.com/jashkenas/ruby-processing>

[1]: <https://gist.github.com/prezjordan/4391313>

</comment><comment><USER9> No one mentioned Processing? <http://processing.org>

</comment><comment><USER10> Pretty cool. Looks similar to what I did before creating <http://GeoKone.NET>. I was doodling with triangles, circles, lines and trying to figure out what numbers would represent if they were geometry.

This led to me developing GeoKone.NET, an interactive Sacred Geometry Generator. Check it out if you want to Create Some Recursive Geometry, it's pretty flexible in the things you can do with it :)

<http://GeoKone.NET>

Some examples of what people are doing with this tool:

<http://indigineous.tumblr.com> <http://lgo900.wordpress.com>

Check it out if you are interested in playing around with recursive geometry! :)

<comment><USER11> What does your project have to do with .NET? It seems cool, but the name is a bit misleading.

<comment><USER10> Nothing. It's an internet address that ends in .NET and I like to spell it this way.

</comment></comment></comment><comment><USER12> A few years ago I wrote WebGobbler (Gallery here: <http://sebsauvage.net/webgobbler/>). (My program would deserve an update.)

At the bottom of the page, I also listed a few more generative art projects.

</comment><comment><USER13> This work is really aesthetically pleasing. Nice one!

Programmatic art generally falls under the domain of generative creativity. A field that draws inspiration from topics as varied as biology and architecture.

In terms of visual art, some of you might enjoy the painting fool: <http://www.thepaintingfool.com/>

For an up to date and compressive overview of generative creativity, check out this book: <http://www.springer.com/computer/ai/book/978-3-642-31726-2>

</comment><comment><USER14> Very nice. Four years ago I was creating physical generative paintings: GA's that would produce physical painted works. <http://carlos.ag/painter.html>

<comment><USER15> That's awesome! I've been playing around with some machine learning stuff recently, and because of my art background, I've been wanting to tackle similar stuff to this. Did you let your genetic algorithms run on real-life paintings? i.e. Did they get refine after making a physical model, or did you do the refinement and evolution before it got the physical creation phase?

<comment><USER14> The GA was based on an open loop simulation. I tuned a digital canvas / painting simulation by hand and then evolved the paintings in simulation. After evolving the painting I would execute the painting with a robotic arm. I did some preliminary work on closing the loop: using the actual output of the painting to tune the simulation but didn't get too far. A paper on my methods / simulation and results: <http://carlos.ag/GA2008paper.pdf>

</comment></comment></comment><comment><USER16> These are pretty great -- they're making me want to dive back in to the art thing. (My old stuff from around 2000: <http://djb.deviantart.com/gallery/> and <http://wry.me/~darius/gallery/index.html> from code at <https://github.com/darius/tusdl> \-- my involvement in the actual images was limited to feedback to the program as it threw them up.)

</comment><comment><USER17> I've recently had the recurring idea that it would be awesome if I could do this with music, I found this after a quick search: <http://overtone.github.io/> (+ it's an excuse to learn clojure) Anyone have experience doing this with music, & might have some opinion on the best tools?

<comment><USER13> I have a bunch of friends studying music informatics, who are very much into algorithmic music. They never seem to stop talking about Supercollider.

One of our lecturers maintains a pretty good list of languages and tools for generative creativity: <http://www.chadmckinneyaudio.com/generativecreativity>

</comment></comment><comment><USER18> If you are into programmer art, you might like my desktop picture gallery.

There are Buddhabrots, fractal flames, recursive 3d structures made with Structure Synth and POV-ray. Most pictures are 2560x1600.

<http://www.timestretch.com/page/gallery>

</comment><comment><USER19> How eerie, I had literally just (10 min ago) searched for something like this on Google and Github; I wanted to looked into dynamic generation of patterns but the only thing I could find were simple stripes and tartans. Cool stuff.

<comment><USER20> There's an ancient book that is handy - 'Computers, Pattern, Chaos & Beauty'.

It has pseudo code and a bunch of illustrations. ([http://www.amazon.com/Computers-Pattern-Beauty-Clifford- Pick...](http://www.amazon.com/Computers-Pattern-Beauty-Clifford- Pickover/dp/0486417093))

<comment><USER21> <http://www.generative-gestaltung.de/> is a bit more fresh! And all source code is up on the site.

</comment></comment></comment><comment><USER22> these are nice. are you aware of andy gilmore? some of his work is similar - <http://crowquills.com/ANDY-GILMORE>

<comment><USER23> I've heard that Andy's work (while amazing) isn't generative. I think he actually lays it all out by hand (in Illustrator or the like). Not sure if genius or crazy, maybe both.

<comment><USER24> Yes that seems to be the case <http://www.itsnicethat.com/articles/andy- gilmore-2>

</comment></comment></comment><comment><USER25> For more inspiration (and tutorials), Generative Design[1] is awesome.

[1]: <http://generative-gestaltung.de>

<comment><USER21> Also check out Nature of Code[1]. You could read it online.

[1]:<http://natureofcode.com/book/>

</comment></comment><comment><USER26> Aza Raskin's "Algorithm Ink" project is pretty easy browser-based tool to work with. <http://azarask.in/projects/algorithm-ink/#f9ed4e9b> and <http://azarask.in/projects/algorithm-ink/#e8ff0b8c> for example. Click the "edit" button at the top to see how it's done.

</comment><comment><USER27> I too am into programmatic art. <http://fleen.org>

Are those wallpapers "live wallpapers"?

</comment><comment><USER28> Thanks for the nice comments, folks.

<comment><USER29> How about the snarky ones like "Hacker News? Really Zac?"

<comment><USER28> I love you, schwa.

</comment></comment></comment><comment><USER30> Renaissance artists didn't do much actual painting. They just sketched what they wanted, mixed colours, and had students do the rest. This is basically the same thing, only with abstract art. If this isn't art, then the renaissance didn't have any artists.

<comment><USER15> Andy Warhol had a Factory of people working for him too. Damien Hirst does now as well. It's not uncommon at all for artists to do residencies with big name artists. Have you ever had a gallery show? Let alone a whole museum at your disposal to do something with creatively - it's a ton of work, even for a group of people.

I'm agreeing with you though, this is art. Sometimes, so is my mom's cooking.

<comment><USER30> Exactly my point. Just because someone else is doing the work (or, in this case, something else) doesn't mean that the work isn't the first person's art. And yes, I suppose, anything can be technically art. But this is veritably the same kind of art we've already come to accept.

</comment></comment></comment><comment><USER31> Really, really cool.</comment>


Learning to Program - <AUTHOR>

Whats the best way for a student who will be studying computer science this fall with no programming experience to begin learning to program? <comment><USER2> One of many good ways:

[https://docs.python.org/3/tutorial/index.html](https://docs.python.org/3/tutorial/index.html)

Use Python 3 unless you know you have a reason not to.

As you progress through the tutorial, be aware of when you start to think about problems and experiments that start to pop up in your head. Pursue small pieces of those.

And if you do use Python for your beginnings, install and use the ipython shell for trying little bits and pieces of Python. Easy from the repository if you're on Linux. If you're on Windows, probably easiest is to install the Anaconda distribution; ipython comes with it.

</comment><comment><USER3> In addition to the resources mentioned, find a buddy, or a mentor, to work with (even if they're also new to programming). You'll both learn a lot more together than alone.

If you find books like "How to Design Programs" to be boring, there's a bunch of "Head First" books that might be more enjoyable. Or even "how to program" books that are aimed at a younger audience (i.e., kids) can be useful.

Just note that "Computer Science" and "programming" are two different things (yes, there's overlap, but they're different).

<comment><USER4> Definitely find someone to learn with you or to help guide you. I've been self teaching for a couple years and it can be a grind at times. Finally found a buddy to help me with data structures and algorithms (super fun btw) and it's a much better experience.

</comment></comment><comment><USER5> A good python online textbook is "How to Think Like a Computer Scientist" at [http://interactivepython.org/courselib/static/thinkcspy/inde...](http://interactivepython.org/courselib/static/thinkcspy/index.html) \- lets you type python code into the browser to try things out.

</comment><comment><USER6> Just start programming. You can do worse than the first of the Racket Tutorials:

[http://docs.racket-lang.org/](http://docs.racket-lang.org/)

and then Feilisen's _How to Design Programs_ :

[http://www.ccs.neu.edu/home/matthias/HtDP2e/](http://www.ccs.neu.edu/home/matthias/HtDP2e/)

The PLT group has been seriously studying the pedagogy of programming and computer science for more than 20 years. The use of Scheme as a teaching language goes back forty years to its inception.

Good luck.

<comment><USER7> @OP Studying HtDP is a good choice for someone entering Computer Science. HtDP is written by experienced CS professors and will introduce you to many important CS topics.

</comment></comment><comment><USER8> First I'd start by experiencing programming.

Don't be serious, take anything to start, go through [http://code.org](http://code.org) Make it easy - ensure you will have success right off. Then take what you know and try something on your own get a feel for how to write effective code. Once you get past the fear of programming then you can start enjoying it.

From there you then can think of what you want to do with programming and figure out what tools you will need and what to learn.

</comment><comment><USER9> Coursera would be a good start ... or just borrow a book on C++ from the library and follow the instructions. If you have any questions, post them on StackOverflow</comment>


The birth of AJAX - an amazing story - <AUTHOR> http://techtracer.com/2007/03/12/the-birth-of-ajax-an-amazing-story/ <comment><USER2> "Gmail was the first most interactive web based email client which actually used the XMLHttpRequest to make a rich internet interface providing asynchronus behaviour thus making the email client more user friendly than any other in those days of 2004"

Aside from the atrocious writing, it seems to me this is mistaken: wasn't Oddpost the first web-based email client to take advantage of AJAX-style techniques?

<comment><USER3> Actually, "Outlook Web Access" (OWA) was probably the first, since XMLHttpRequest was supposedly added for OWA. Gmail was the first good&popular; AJAX-style webmail client, so it helped legitimize and popularize those techniques.

</comment></comment><comment><USER4> The essence of Ajax is getting Javascript to communicate with the server without reloading the page. Although XmlHttpRequest is most convenient, there were other methods of doing this before XmlHttpRequest such as

\- loading a 1 pixel image and sending data in the image's cookie

\- loading server data through a tiny frame which contained XML or javascipt data

\- Using a java applet to fetch the data on behalf of javascript

</comment><comment><USER5> _Microsoft, because it invented the XMLHTTP object and without Google standing forth on this aspect, you wouldnt have been able to see any of the above mentioned miracles imparted to the web today_

That's the most badly constructed sentence I hope to read all day.</comment>