Rideshare boycott sparked by murders in China - <AUTHOR> https://www.theatlantic.com/technology/archive/2018/08/didi-murder/568660/?single_page=true <comment><USER3> I thought this NYT article gave some good context. Didi promoted the ride sharing service as a way to meet people and for hooking up: [https://www.nytimes.com/2018/08/29/technology/china-didi- chu...](https://www.nytimes.com/2018/08/29/technology/china-didi-chuxing- women-killed.html)

> So through suggestive ads hinting at hookups through driving, Didi pushed > Hitch's romantic possibilities. In a 2015 interview with the Chinese online > portal NetEase, Ms. Huang compared Hitch cars to cafes and bars.

And:

> While it wasn't obvious to female passengers that their drivers might want > to hook up, the drivers knew. Until Didi deactivated Hitch, the car-pooling > service allowed drivers to share comments with other drivers on the looks of > their passengers, leading some male drivers to seek out the ones others had > declared attractive.

Murder is very rare in China. Very few Western countries have a lower intentional homicide rate (America's is 8.5 times higher), and I believe other violent crime is similarly low.

(I hope this comment is okay.)

<comment><USER4> I'm not saying that you're wrong, as it does feel like an incredibly safe country, but most statistics published by the Chinese government range from questionable to outright fabrications.

</comment></comment><comment><USER5> Has anyone worked out what the base rate expectation of murder would be?

I think I read in the FT that Didi has booked a few billion rides in that period. How many people (and women) would normally be murdered in cabs?

The stories cited are obviously horrific and it sounds like Didi could have prevented them with a better system. But, I'd nonetheless be interested to know how safe this is to the alternative, and also how many murders we would expect in a few billion human interactions.

At that scale all our intuitions are off and we need to look at stats.

<comment><USER6> This, and before that taxi driver murderers were also heard of often in China (though I'm not sure if they were more likely to be murderers than average).

Also, Chinese police are overworked (China is extremely under policed ironically enough) and so tend to focus on seemingly easy but impractical solutions to fighting crime.

<comment><USER7> Do you have data supporting data for your claim? I'm a Chinese and this kind of murders are really rare. The last one I heard in my hometown (a small costal city) is over 10 years ago.

And with taxi-hailing apps' commence, this is becoming really rare since the driver can easily pin-pointed (by cross-referencing ubiquitous street cams). Actually in this case the murderer got arrested soon afterwards.

While I agree China is under policed, they are generally more effective in body offenses and thanks to street cams (again). These years even home break- ins are rare. As who lived in SF for a year, it's definitely better than SFPD.

<comment><USER6> In Beijing it wasn't uncommon to hear of a PKU student every few years being murdered by a taxi driver (especially black taxis), once they went full in on satellite campuses causing lots of transit headaches. And like I said originally, I don't know if it was higher than average or just well publicized when it happens.

Ride sharing and taxi hailing apps have definitely made taking a taxi mug safer. Conserving how didi has replace black cabs, that is definitely a good thing. I'm not sure why the government wants didi to shutdown its ride sharing business rather than rely on it as a sure fire way of at least solving murders after the fact. Even full background checks won't solve murders 100%, and knowing you'll get caught is a great deterrent.

Property crimes are still a huge problem in China, there is a reason all 2nd tier apartments are still barred like crazy. Chinese police don't really care, they are not using the CCTVs to actually fight property crime, rather for other things.

<comment><USER8> > I'm not sure why the government wants didi to shutdown

You finally mention it. Without the government wanting it, this story wouldn't have broken. It seems like the c. gov could easily hide hundreds of murders.

</comment></comment></comment></comment></comment><comment><USER9> I live in China currently and teach at a University. Students and others I have met here in Chengdu use taxis and Didi on a daily basis. Yes, they know what happened, but murders are so rare in China.

And one million users in a country with a billion people is nothing, statistically. Didi can deal with that, but the publicity is still bad.

</comment><comment><USER10> True - there are millions of passengers every day using didi. True - <USER2> got murdered in cabs too.

But, I'd say Didi is at least 50% responsible for this tragedy.

1\. The killer was reported sexual harassment by another female customer one day before the girl got killed. Didi still lets him drive.

2\. The girl's friend called the police when she realized the girl was missing. The police called Didi's customer service. The guy who answered the phone refused to provide the driver's info, (license, phone number, location, etc.) and said that he needed to report to Didi's safety department. Then he even called the driver himself, asking: do you have the passenger on your car? did you kill her? The driver said no and hang up the phone.

3\. The police finally got the driver's information from Didi almost two hours after they requested. But it was too late.

Didi's poor background check on drivers and unprofessional customer service killed the girl. I don't think it would happen if it's uber.

</comment><comment><USER11> Western media loves reporting on instances of rape, murder in India, China even though statistics reveal they are lower per capita than in the West. Hegemony in action.

<comment><USER12> This. I moved to to Shanghai from North Europe and while there are dangers here in the traffic, food safety etc. violence is not one of them.

The violent crime here and in China in general from western point of view is almost non-exisistent.

<comment><USER13> Or is is that such crimes are under-reported by the state-controlled media? Or that statistics for such crimes cannot be easily located, or at all? Someone else has posted on this thread stating they couldn't find relevant statistics easily. What you are saying may well be correct, it just seems that it's hard to verify with hard information.

<comment><USER14> Murders are under-reported in the mass-media in America because it would make for boring news.

Imagine, day after day, the news saying, "and another 47 people were murdered today in America, including 13 in Chicago, and 4 each in Baltimore and Houston".

While the homicide rate in the United States is dropping, there were still ~17000 of them in 2016.

<comment><USER15> When you put it like that, it doesn't seem so bad? Less than half the number of car crash fatalities, anyway. Past a certain age, we're more likely to die from any number of different health reasons...

</comment></comment></comment></comment></comment><comment><USER16> What is the logic in this? How could the company behind the app possibly prevent this and what is it meant to do now? What if a librarian would go nuts and kill somebody, would they burn the library to ashes?

<comment><USER7> In this case, the driver is already reported in another misbehaving. But Didi still allows the driver to take more passengers.

Most Chinese people are not boycotting the Rideshare as a way of transportation, they are claiming Didi is not working effectively in this case.</comment></comment>


Ask HN: Effective Voting Mailers? - <AUTHOR> What would make an effective mailer that would prompt you to go vote? I'm asking everyone but specifically the under 20 crowd.
I was thinking something like a postcard that you could put on your fridge. " VOTE: Tuesday Nov 3, 2020 at 4321 Elm Road.
Hello John Smith,
You live at 1234 Main street, your poling location for this next election is at 4321 Elm Road. Below is a map from your house to your polling place which is a 4 minute drive.
Remember, 82% of people who are similar to you voted in the last election! "
Also this is non-partisan, just trying to find ways to contribute and get people to vote. <comment><USER2> I'd be cautious here. Especially this year, polling locations are moving around in response to COVID (mine moved for the primary, and its unclear if its moving back for the general election or not).

A mailer with the wrong polling location could do more harm than good, especially for the under-20 crowd that may not have voted before.

Perhaps reaching out now to ensure they are registered is more effective (and less error prone)</comment>


Dafny: Verification-Aware Programming Language - <AUTHOR> https://github.com/dafny-lang/dafny <comment><USER2> I found a good summary on StackOverflow:

"Dafny is based on a Java or C# like imperative language with the ability to write Hoare logic style state invariants, this allows users of the languages to verify properties about methods, and objects that use mutable state, loops, arrays, and so on. Dafny's core theory is a custom program logic mostly designed by Rustan and a handful of collaborators. Dafny discharges the verification conditions it generates by compiling them to Boogie an intermediate verification language, which in turn compiles them into queries which are passed to an SMT solver such as Z3 or CVC4 to discharge." \- jroesch

</comment><comment><USER3> If you don't want to install anything, you can get a taste of Dafny by looking at its online tutorial.

[https://rise4fun.com/Dafny/tutorial](https://rise4fun.com/Dafny/tutorial)

Dafny is a good example of what formal verification looks like for imperative languages (as opposed to e.g. dependent types for functional languages). Gotta love loop invariants!

<comment><USER4> Dafny (and formal verification for imperative languages) is a lot of fun.

But does Dafny have any library documentation? Is it .Net?

<comment><USER3> I'm not quite sure what you mean.

Dafny compiles to .NET indeed. What do you mean by library documentation? Dafny doesn't have many (any? I certainly haven't used any...) libraries to begin with.

<comment><USER4> I thought Dafny has access to the .NET infrastructure. But when I played with Dafny a while back, the only library interface I saw was printing to stdout (IIRC), which would imply that Dafny was a toy language intended for playing with verification and not much else. On the other hand, I've heard otherwise ---it's been used for Windows drivers?---but without any documentation or examples, I lost interest.

</comment></comment></comment></comment><comment><USER5> Good stuff. Can anyone comment on how it compares against SPARK Ada?

At a glance it looks like Dafny has functional programming features, and looks quite approachable. Its compiler targets .Net, unsuitable for critical-systems work. Are there plans for it to get an industry-strength compiler, or is the emphasis on research rather than critical-systems software development?

SPARK examples for the curious:

* [http://docs.adacore.com/spark2014-docs/html/ug/en/source/bas...](http://docs.adacore.com/spark2014-docs/html/ug/en/source/basic.html)

* [https://github.com/tofgarion/spark-by-example](https://github.com/tofgarion/spark-by-example)

<comment><USER3> I've only ever watched SPARK Ada from afar and never written code using it, so keep in mind that my comment might be a bit one-sided.

I doubt Dafny will have native targets (which I assume is a prerequisite for the "critical-systems" work you're talking about) any time soon if ever. There's just not enough resources behind it. AFAICT, basically all the development, Stack Overflow answering, etc. is all powered by a single dude (Rustan Leino). So I don't think it'll be competing in the same space as SPARK Ada any time soon simply due to resource availability.

Nonetheless Dafny as a language is, I think, strictly more expressive than SPARK. For example, Dafny's functions (vs methods) allow for the very nice expression of arithmetic invariants that I don't think SPARK supports (look at the Fibonacci example in the online tutorial here: [https://rise4fun.com/Dafny/tutorial](https://rise4fun.com/Dafny/tutorial) that has the standard mathematical definition of Fibonacci numbers as a function and then implements it as a method).

<comment><USER5> > I doubt Dafny will have native targets (which I assume is a prerequisite for > the "critical-systems" work you're talking about) any time soon if ever

Fair enough. Still a really neat project.

I forgot to ask an obvious question: Dafny uses .Net's garbage collection, right? If so, that presumably rules out its use on hard real-time systems.

> the Fibonacci example in the online tutorial

For anyone struggling to find it, ctrl-f for _completed Fibonacci_

I agree the Dafny syntax is very tidy.

Surprisingly I wasn't able to find a directly comparable SPARK program. The closest I could manage was populating an array with the Fib sequence, by someone on StackOverflow (I haven't verified it) [0]

[0] [https://stackoverflow.com/a/57169728/](https://stackoverflow.com/a/57169728/)

<comment><USER6> Perhaps worth noting is Armada

[https://github.com/microsoft/Armada](https://github.com/microsoft/Armada)

which is built upon Dafny and targets a C-like language.

<comment><USER5> Thanks, I hadn't heard of that project. Their paper is at [0] (which I've only skimmed terribly quickly). I'm not quite sure what to make of 'targets a C-like language'. Does that mean, put bluntly, that it's not practical? Can it be made to target standard C?

While we're here, a shoutout to ZZ / ZetZ, [1] which we discussed 5 months ago at [2]. It's a verifiable C-style language which compiles down to standard C. I'm not sure how mature the language is at this point. (It still pains me that my prominent comment at [2] turned out to be fundamentally mistaken.)

And let's finish up the tour with a quick mention of Frama-C [3] and the (sadly proprietary) Escher C Verifier, [4] both of which work with C directly.

[0] [https://jamesrwilcox.com/armada.pdf](https://jamesrwilcox.com/armada.pdf)

[1] [https://github.com/zetzit/zz](https://github.com/zetzit/zz)

[2] [https://news.ycombinator.com/item?id=22245409](https://news.ycombinator.com/item?id=22245409)

[3] [http://frama-c.com/acsl_tutorial_index.html](http://frama-c.com/acsl_tutorial_index.html)

[4] [https://www.eschertech.com/products/ecv.php](https://www.eschertech.com/products/ecv.php)

<comment><USER6> From the paper you can see that they actually target CompCertTSO (a C subset)

[https://www.cl.cam.ac.uk/~pes20/CompCertTSO/doc/](https://www.cl.cam.ac.uk/~pes20/CompCertTSO/doc/)

from the CompCert folks - who do formally verified C compilers (also worth looking at, btw). Targeting a subset of C allows them to preserve their behavioral guarantees in way that would be challenging I think with the full C language. So it's not an unreasonable subset to pick if you're serious about predictable outcomes.

<comment><USER5> Thanks. I read _Via a C-like language_ to mean their language compiles to a non-standard language resembling C, but as you say, they mean they defined a novel language that resembles C, and it compiles down to standard C (specifically, the C subset named _ClightTSO_ suitable for use with the CompCertTSO compiler).

Nowhere in Armada's overview [0] is it stated that the ultimate goal is to produce verified C code.

I've heard of CompCert. Pity it hasn't got more traction. Also a pity about its licensing situation. The Free and Open Source community is not interested in semi-Free software. The DMD compiler showed us this.

[0] [https://github.com/microsoft/Armada](https://github.com/microsoft/Armada)

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> This .... This kind of approach could and should replace rust. That is, if the language developers are interested in commercial adoption a sweet spot is a memory safer c++. Rust has that going on but it'll never make it as a truly safe language in memory and other aspects without specification and verification. I'm arguing real progress may include rust like impulses but can't be complete without built in tla+ or other formal tool support

<comment><USER5> It wasn't a mistake for Rust not to emphasise formal verification. Going that route would have been very restrictive. Rust is aiming to offer a safer alternative to C, not a more approachable formally verifiable language.

That said, it looks like the good ideas from Rust may find their way into SPARK, a highly restrictive programming language for critical systems development with formal verification. [0][1]

[0] [https://www.adacore.com/papers/safe-dynamic-memory- managemen...](https://www.adacore.com/papers/safe-dynamic-memory-management- in-ada-and-spark)

[1] [https://arxiv.org/abs/1805.05576](https://arxiv.org/abs/1805.05576)

</comment></comment><comment><USER8> This is really cool! Having verification and Hoare logic as first-class language features seems like a better approach than trying to verify a language that wasn't built to be verified (like what sel4 is doing with C).

</comment><comment><USER9> In the same vein: [http://whiley.org/about/overview/](http://whiley.org/about/overview/)

</comment><comment><USER10> also similar is why3 [http://why3.lri.fr/](http://why3.lri.fr/)

</comment><comment><USER11> But what is that logo? Yikes...</comment>


The 5-minute Guide to C Pointers - <AUTHOR> http://denniskubes.com/2012/08/16/the-5-minute-guide-to-c-pointers/ <comment><USER2> 30 second guide to C pointers, from _Alice in Wonderland_ :

`It's long,' said the Knight, `but very, very beautiful. Everybody that hears me sing it -- either it brings the tears into their eyes, or else -- '

`Or else what?' said Alice, for the Knight had made a sudden pause.

`Or else it doesn't, you know. The name of the song is called "Haddocks' Eyes."'

`Oh, that's the name of the song, is it?' Alice said, trying to feel interested.

`No, you don't understand,' the Knight said, looking a little vexed. `That's what the name is called. The name really is "The Aged Aged Man."'

`Then I ought to have said "That's what the song is called"?' Alice corrected herself.

`No, you oughtn't: that's quite another thing! The song is called "Ways and Means": but that's only what it's called, you know!'

`Well, what is the song, then?' said Alice, who was by this time completely bewildered.

`I was coming to that,' the Knight said. `The song really is "A-sitting On A Gate": and the tune's my own invention.'

The song that the Knight is referring to is this one: <http://en.wikipedia.org/wiki/Haddocks%27_Eyes>

<comment><USER3> Over the past four months I wrote a library in C. In said library exists the following chain:

typedef hidden pointer -> object -> dictionary -> attribute object -> linked list -> object

Then the whole thing can start again from the last object. At both the linked list and dictionary points the pointers have been cast to void. During development there was linked list in place of the dictionary. Since this was before I wrote output debuging involved manually walking the two linked lists.

Else where a function takes a void * array of structs yet needs to access the contents and thus requires a pointer to an accessor function.

I love C but it can get _confusing_. My plan is to spend the next few weeks in recovery learning RoR.

<comment><USER4> You might want to look at Go. It always felt like a revised version of C with great standard library and sane defaults.

</comment></comment></comment><comment><USER5> Every time someone tries offering a simplified explanation of pointers, I've countered with the old Buddhist saying that, "The pointing finger is not the moon," followed by a brief foray into syntax and operators, e.g.,

      moon* finger = &luna;

As often as not, enlightenment occurs.

<comment><USER6> void* finger = &luna;

Don't force the finger to only point to the moon.

</comment></comment><comment><USER7> Pointers are sometimes not arrays. :)

        extern int *x;
        extern int y[]

x is a pointer to an int and y is a pointer to an array of ints of unspecified size. It's equivalent to saying float x and then extern int x somewhere else. They're type mismatched.

If you said 'x is a char pointer', you mean lookup symbol table for address of x, then do a memory address dereference and then get the contents of the memory at dereferenced address.

If you said 'x is a char array', you mean use the symbol table to get the address, then calculate offset and get contents from that address.

When you define it one way and then do it another, you end up doing both of those above. get contents of x, then get value of offset, add it to the contents of x, then get contents of the resulting address+offset.

The issue is the declaration which can happen many times and the definition which occurs just once.

Now, you can have an array and a pointer be equivalent if it is used in an expression because the compiler converts array references to pointers.

<comment><USER8> Arrays and pointers are _completely different entities_ in C. The only reason people think there's any sort of equivalence is because:

1\. The "array indexing operator" [] actually works only on pointers.

2\. Arrays are automatically converted to a pointer to the first array element whenever necessary.

3\. Arrays are _really uncommon_ in C, and many things we think of as arrays are not arrays as C considers them. Declare a function parameter with []? That's a pointer, not an array. Malloc a bunch of memory? Not an array.

</comment></comment><comment><USER9> > Imagine an array variable like a pointer that cannot be changed that holds > the memory address of the first element of the array it points to.

Nope. Arrays are not pointers; pointers are not arrays. This is perhaps the most common misconception about C, and a "Guide to C Pointers" should not propagate it.

For more information about why this is wrong, read section 6 of the [comp.lang.c FAQ](<http://www.c-faq.com>).

<comment><USER10> Well for a quick sum up:

An array is like a constant pointer, it's always pointing at the first element of the the array. To try to point it at something else is an error.

        array[2]

is short for

        *(array + 2*sizeof(<type of array>))

which takes the address of the first element and adds the appropriate number of bytes to it in order to access the requested element, then it dereferences the "pointer" and you get the value of the element.

If this isn't 100% correct, please let me know.

<comment><USER11> Just as with pointer arithmetic (because that's what this actually is) you don't multiply by the size of its elements. This:

      array[2]

is the same as this:

      *(array + 2)

The compiler knows what the type of data the pointer refers to and can produce the byte offset itself. Also:

      "...it's always pointing at the first element of the the array"

Eh... an array can degrade into a pointer when needed, but what does the following produce?

      char arr[10];
      ??? x = &arr;

Is "x" a pointer to pointer to char? From your assessment it would seem so, but in reality the type of "x" is

      char (*)[10]

i.e., pointer to array of char 10. An array is an array, and arrays can degrade into pointer types.

<comment><USER12> Additionally, (as you know, but merely pointing out for the curious), `sizeof arr` returns the size of arr in bytes, not the size of a pointer to the first element of arr.

</comment></comment></comment></comment><comment><USER13> When printfing pointers you need to cast them to (void\ _). %p only prints void\_ and there is no guarantee two pointer types have the same size. And I can't figure out how to write an astrix.

I also think it is a mistake to bring up memory addresses so early. The first paragraph is incredibly confuses.

A pointer is simple. It's a variable that points at something. You can change where it points and you can change the value that it is pointing to. (&) is the pointer-to operator and gives you a pointer to something.

I think that is roughly all that needs to be said. The all of locations, memory, addresses is just confusion.

<comment><USER13> Pedantic notes:

\- "The cast isn't explicitly needed in C but it does make things more readable" - I think many people would disagree with this, including me. Casting is ugly, error prone, and conceals errors. Don't do it, there is no need. If you think it is helping you because you can see what type things are then your functions are too large and incoherent, fix that problem instead.

\- "Here we print out the values of our uninitialized and NULL pointers. Notice that our uninitialized pointer has a memory location" - This behaviour is completely undefined and it is doing injustice to those who would benefit from this blog post. All code people run on an example site should be well- defined. "Worst case the program crashes badly" - No, worst case is you have no idea what could happen! Old versions of gcc ran nethack when it detected undefined behaviour at compile time. In practice, crashing is actually the best case since you can see the error. In worst case it silently corrupts data in your program and you can't find it until it's so far from the error site that it's near impossible to track down.

\- "using the NULL keyword" - NULL is not a keyword, it's a macro defined in stddef.h (maybe stdlib.h? I forget).

\- "doing so will cause a segmentation fault" - No, it's undefined behaviour. On DOS systems the memory addresses 0 was valid and writable.

\- "That being said an array variable does point to the memory address of the first element of the array." - No, it IS the first element. It decays to a pointer to its first element under various operations, though.

\- "char * fullname = "full name";" - const char * . Modifying string literals is undefined and the fact that the compiler does not require fullname to be a const char * is merely a historic oversight.

I understand the desire to learn-by-writing, but I don't feel this tutorial offers much to the discussion and confuses some of the same things the many other pointer tutorials confuse. I don't think someone new to pointers will actually come out with a superior understanding of pointers after reading this. Much of the content is not technically wrong the wording and method of introduction isn't any less confusing.

</comment></comment><comment><USER14> Here's another one with more information on pointers in C.

<http://www.thegeekstuff.com/2012/01/advanced-c-pointers/>

<comment><USER15> Another tutorial about pointers that I found quite nicely written is <http://boredzo.org/pointers/>.

</comment></comment><comment><USER16> Yet another broken C pointers guide out there to confuse people.

<comment><AUTHOR> What is broken about it? I am happy to make corrections.

<comment><USER17> Some thoughts:

>> A pointer is a variable that holds, literally points to, a memory address

What is a memory address?

How does a pointer literally point to a memory address?

<comment><USER18> It's the guide to pointers, not the guide to memory addresses—I think readers are expected to google unfamiliar terms.

<comment><USER17> I think if I understand memory addresses and assembly language, then I understand pointers. If the guide doesn't explain why pointers are useful and efficient on real hardware, then it's missing the point. Which was my point.

</comment></comment></comment></comment></comment><comment><USER19> Nice tutorial!

Maybe it shows my age, but I am yet to understand why so many developers nowadays have such a hard time grasping pointers, regardless of the language being used to teach them.

<comment><USER20> I had the same opinion at one point. Like you said, the concept of pointers is very simple, but it can get confusing in application, as you start dealing with more levels of indirection. Try coding something/understanding code that requires triple star pointers, then you'll see why they're confusing.

<comment><USER19> Easy, just grab a pencil and paper, draw the data structures and you're done.

Again, maybe it just shows my age, as I started coding with BASIC and Z80 assembly.

</comment></comment></comment><comment><USER21> > The * operator is used to both declare a pointer variable and to dereference > a pointer depending on where it appears.

You seem to be suggesting that this is an inconsistency, it isn't:

      int *ptr;

means that

      (*ptr)

is of type ptr.

      *ptr = 3;

Means the same and affect 3 to (*ptr)

<comment><USER22> Don't you mean

      (*ptr)

is of type _int_?

<comment><USER21> yes, of course.

</comment></comment></comment><comment><USER23> I expected a repost of a repost of this: <http://www.youtube.com/watch?v=f-pJlnpkLp0>

</comment><comment><USER24> thanks, also recommend to read "What do people find difficult about C pointers?" [http://stackoverflow.com/questions/4025768/what-do-people- fi...](http://stackoverflow.com/questions/4025768/what-do-people-find- difficult-about-c-pointers)

<comment><USER25> I never really had much of a problem with the syntax, but the point at which the behavior of pointers really clicked for me (after a night of many segfaults of course) was when I realized that when you pass a pointer to a function, you're sending a copy of that pointer, just like with any other primitive type. E.g:

        void foo(int *p)
        {
            /* assignment won't be persistent after foo() returns; need to send **p */
            p = (int *)malloc(1024 * sizeof(int));
        }

Not sure why my brain had decided to make an exception for pointers for the rule that all variables are passed as copies when I first learned C, but after that I never had any problems.

<comment><USER12> I experienced the same frustration. The exercise that gave me the "ah-ha!" moment I needed was prepending to a linked list via the head instead of the tail: You need to pass the address of `head` into the function so that the new head is reflected in the calling environment when you say `head = np`.

<comment><USER26> ... or have the list operation return the new list head, which can make it way cleaner. See glib's list APIs, for instance.

<comment><USER12> Well I was simply meeting exercise requirements, which aren't necessarily the most practical.

</comment></comment></comment></comment></comment><comment><USER27> Nothing on pointer pointers :( so sad.

<comment><AUTHOR> I added a pointers to pointers section. :)

<comment><USER27> You rock.

</comment></comment></comment><comment><USER28> So... What do you use them for?

<comment> mike-cardwell There are many uses. It greatly helps to understand the difference between the heap and the stack, and to understand the difference between static and dynamic allocation.

Functions in C are "pass by value" rather than "pass by reference". To simulate "pass by reference", the "value" you would pass is the memory address of the data in question, ie the pointer.

Also, if you put data on the heap, you must keep a reference to its memory address, otherwise you wont be able to access it again. You use a pointer for this. The following bit of code allocates some space on the heap, sticks an integer (5) on it and then returns a reference to that memory address, which is stored in a pointer variable named x.

      int * x = new int(5);

To understand why you would do the above instead of "int x = 5", you really need to understand what the stack and heap are, and why/when to use them.

Also, you can create read-only versions of variables this way. Eg:

      int x = 5;
      const int * y = &x;

At this point, y points to the address containing x, but can only be used to read. printing out "x" and "* y" will both give you the same result. If you want to update it, you can do "x=6", but "* y=6" will cause a compile time error, because of the const.

There are probably loads of other uses too. I only started learning C/C++ last month, in my spare time. Hmm, I seem to have learnt a few things.

<comment><USER29> Correct me if I'm wrong, but I'm pretty sure C doesn't use the 'new' keyword, it uses 'malloc'.

<comment> mike-cardwell You are correct, as you know. That was a C++ example, as you know.

</comment></comment></comment></comment><comment><USER30> The nontechnical guide to C pointers:

 _They're post office box numbers._

In this analogy, the post office is all your RAM. The big place where my analogy breaks down a bit is that, in this little world, the post office will store things bigger than one box in multiple adjacent boxes, so to get anything into or out of the post office you have to specify which box you want them to start with and how many boxes they'll have to use.

The star (dereference) operator takes as its argument a post office box number and instructs the machine to go to that post office box and start taking things out of enough boxes beginning with that box to satisfy the type of the pointer. The only things that only take one box are char values; the number of boxes everything else takes up depends greatly on the specific kind of hardware.

It's possible to put a slip of paper containing a number into a post office box; in 32-bit x86, a number long enough to encode a post office box number takes up four boxes. In 64-bit x86, it takes up eight boxes.

Using two stars means 'Go to this box, take out enough stuff from the next few boxes to make a pointer, go to the box specified by that pointer, and take enough stuff out from that box (and possibly the next few) to satisfy the type of that pointer.' Using three stars involves another go-to-box step, using four stars another, and using five stars is usually a sign of gross mental derangement.

(Oh, and if you're running under an OS much more featureful than MS-DOS, the post office box is a total lie told to your application by the OS. Getting into _that_ gets a bit complicated.)</comment>


Vlingo co-founder explains data-collection issues - <AUTHOR> http://www.androidpit.com/en/android/blog/401896/Vlingo-Privacy-Breach

<comment><USER2> I think we're well past the point where this kind of thing only raises an eyebrow.

 _"However, Vlingo admits that their app does collect certain data types before users agree to their privacy policy. This means before you agree to allow data to be sent to the company the app does, in fact, collect location, carrier and phone identification information, which is then transferred unencrypted to Vlingo's servers. According to their representatives, this is due to synchronization issues with processes that normally run in the background."_

See, it's the syncronization issues' fault. Who wrote those sync processes? Well, they don't say.</comment>


Ask HN: Who wants to be hired? (June 2014) - <AUTHOR>

Continuing jader201's thread from last month - I was surprised to not see it posted by whoishiring.
From last time:
With the blessing of dang [1], I'm starting a thread to allow those looking to be hired by a company a way to communicate that to the HN community. Think of this as the inverse of the "Who is hiring?" monthly threads [2] -- except this is not a whoishiring sponsored or monthly thread (yet).
If you're looking to be hired by a company, please use this thread to let other HN members know.
If you're looking for talent, by all means, check out the candidates below and if you see a good fit, connect! Please no recruiters, unless specifically indicated (opt-in).
If you're not hiring/looking to be hired, take a look over the candidates below and connect with them if you're aware of a potential fit for them.
Up/Down Voting: I would propose that up/down voting be reserved to help promote high quality submissions, and push down those clearly not putting in much effort or are off-topic. Use sparingly.
I am loosely proposing the following format (obviously you're welcome to use any format you'd like):

  [Location], [Remote | Relocation], [Full Time | Contract | Part Time]

  Stack: [Comma delimited list of technologies]

  Resume: [Link to resume]

  Contact: [Email address or other means of contact]

  [Brief overview, what you're looking for in a company, etc.]
 (By the way - if people want to propose changes to the template I put it on gist: https://gist.github.com/cjbarber/189c84750cd42309201d)
Note: Do not use this thread to hold meta discussion. That belongs on the original thread [1]. This thread is reserved for posts by those looking to be hired. [1] https://news.ycombinator.com/item?id=7682189
[2] https://news.ycombinator.com/item?id=7679431 <comment><USER2> Canberra Australia, considering relocation for the right position but would be happy with remote work as long as it doesn't involve me staying in Canberra, full-time (i'm not against contracts/part-time, but they would almost certainly be in conflict with my current employment with the Australian Government, but if your job is interesting enough I'd still be curious to hear from you).

Stack: SAS (data step, macro, proc sql), Common Lisp, some experience with others (see resume).

Resume: [https://dl.dropboxusercontent.com/u/10585155/Resume%20-%20La...](https://dl.dropboxusercontent.com/u/10585155/Resume%20-%20Latest.pdf)

Contact: email@example.com

I'm an expert in data linking (authoring my own system), statistics/analysis/data-science, programming, research, and economics. I've written programs to produce specific house price, household income, national accounts, labor force stats and analysis for official Australian and OECD publications. I'm skilled in algorithmic flexibility, improvement, design and efficiency, and amongst other things my programs are used to select parameters used by the Australian Bureau of Statistics in its current data linking projects, where I am currently employed.

I'm looking for interesting and challenging work above your basic entry level positions. I have reached the top of the technical hierarchy where I work and I can't advance any more without taking up managerial positions that involve higher pay but are less challenging. Since this is hacker news, I can be honest and tell you I am NOT interested in these positions. I will consider working for less if I consider your problems hard, interesting, and stimulating enough :P

I'm comfortable presenting to large groups, teaching, and I can accept roles that require some supervision, but I'm looking for flexibility and a mature/reasonable employer that wants me working for them because I can solve challenging technical/analytical/research problems that other people can't.

I am gainfully employed with a professional working wife, so I won't move without considering our combined situation and employment prospects, but we're both interested in moving if its to a location that offers more opportunities or stimulation than Canberra.

If there's anywhere with employers looking for people like me, willing to offer jobs that I might be interested in, I believe its probably on hacker news.

</comment><comment><USER3> Southern New Jersey, Philadelphia, northern Delaware // In-House or Remote // Full-Time

Stack (professional): C# + .NET (ASP.NET MVC+Razor, etc), Javascript (jQuery, React, Backbone.js, TypeScript), HTML5/CSS3, MSSQL/MySQL/PostgreSQL, RabbitMQ/ZeroMQ, Cassandra, Linux (Puppet, Pacemaker, DRBD), Xen, VoIP (Asterisk/OpenSIPS/Homer/etc), Photoshop/Illustrator

Stack (personal): C++, Lua (Embedding, OpenResty, Luvit), Python (OpenCV), Xamarin iOS, more...

Resume: [https://www.dropbox.com/s/rwftk3pj1jkm676/Resume%20-%20Alex%...](https://www.dropbox.com/s/rwftk3pj1jkm676/Resume%20-%20Alex%20Forster.pdf)

Contact: email@example.com

I've been programming since I was 14, and started doing it professionally at 20. I'm currently the "jack of all trades" programmer-and-more in a small IT department for a ~2000 employee company. I've enjoyed incredible flexibility to learn and implement different technologies in my current role, but unfortunately, I have to begin looking elsewhere as we're quickly losing our autonomy to our enterprisey parent company.

The approximate responsibility split at my current job is 60% pure software development, 20% devops, and 20% networking. I absolutely adore C#, but since it isn't as vogue as I wish it was, I should mention that I'm almost as fluent in several other languages. I'm proud of having a well-diversified set of skills, and if my "keyword soup" resume piques your interest, I'd love to have a more in-depth conversation with you.

I'm tied to the area for family at the moment, but I'd be happy to spend a bit on a coworking space and work remotely.

</comment><comment><USER4> Going to Canberra, Australia soon. Remote, Part Time

Stack:

        Python-centric stack - Django/Flask, Scipy, Numpy, Requests, Beautifulsoup and all that jazz.

        Database - Postgresql, Mongodb. I work equally well with ORMs (Django's ORM and SQLAlchemy) and raw SQL.

        Systems - DevOps in Ansible, async programming with Celery + RabbitMQ. Familiar with git, bash and general Ubuntu systems programming.

        Frontend - Decent in Javascript (React.js, jQuery), basic CSS/HTML.

Resume: Contact me.

Email: lee+hn[at]weiyen.me

Skype: wei.yen.22

Links: [https://github.com/yen223](https://github.com/yen223)

I'm a generalist software engineer, with a heavy emphasis on Python development. I will be pursuing my Master's Degree in Computer Science in July. I'm looking for part-time jobs (20 hours/week) for rent money. Will consider jobs in Canberra, or remote jobs.

</comment><comment><USER5> Location: Anywhere (I'm from Italy, currently in Shanghai), Relocation and/or Remote, preferably Full Time

Stack: JavaScript, php, Java, C++, HTML (any), CSS (any), jQuery and more.

Resume: [https://goo.gl/QifQtI](https://goo.gl/QifQtI)

GitHub: [https://github.com/zntfdr](https://github.com/zntfdr)

LinkedIn: [https://cn.linkedin.com/pub/federico- zanetello/88/1b1/50b](https://cn.linkedin.com/pub/federico- zanetello/88/1b1/50b)

Contact: my username @ gmail.com

I'm graduating this October in Computer Science from University of Padua, Italy. Born and raised in Italy, I'm now ready to work with super talented people around the world, to solve the most exciting and competitive problems, and to plan and execute tremendously complex projects.

</comment><comment><USER6> Japan, Remote, Full Time | Contract | Part Time

Stack: Full-stack Web Applications - PHP (many frameworks), Python/Django, J2EE, Perl

Portfolio: [http://mattmccormick.ca/portfolio/](http://mattmccormick.ca/portfolio/)

Contact: firstname.lastname@example.com

Looking for remote, interesting work that keeps me busy for 30 hours per week. I work best at 6 hour days so that I can be fresh and focused on the work I do for you and also put in some time every day on my own for learning and education.

I realise my timezone is difficult to work with so I'm open to giving discounts in exchange for a stress-free work environment or for learning a new technology. I'm looking to maximize my happiness, health and productivity, not my salary.

</comment><comment><USER7> India, Remote | Relocation within India, Full time

Stack: Full stack development (LAMP), Codeigniter, CakePHP, Bootstrap, jQuery, Git, Shell, Python

Resume: [https://www.dropbox.com/s/j65hhbe3cadf0kr/Shubham.pdf](https://www.dropbox.com/s/j65hhbe3cadf0kr/Shubham.pdf)

Github: [https://github.com/shubhamjain/](https://github.com/shubhamjain/)

Website: [http://coffeecoder.net](http://coffeecoder.net)

I have been programmer since I was 16. I am an enthusiast who loves to play with new technologies and work on challenging jobs which put me out of my comfort chair. I like to solve real world problems creating something which is useful for others.

</comment><comment><USER8> Testimonial: Last Month this thread landed me two onsite interviews and a job offer, which I accepted :)

</comment><comment><USER9> Southern Brazil, Remote, Full Time (preferred) or Contract

Stack: Ruby, JavaScript, EmberJS, HTML5, CSS3

Resume: [http://juliogreff.net/resume/](http://juliogreff.net/resume/) Contact is on the resume.

Spent the last few years working mostly on the backend side on long running projects, so I'm pretty comfortable around huge and legacy code bases. Looking forward to get back on doing full stack dev and actually shape a product, because I don't appreciate being just a code monkey. Think of me as a one-man startup. I've been working remotely since 2009, so I'm really effective working on my own. If you have an interesting project, let's talk.

</comment><comment><USER10> New York, NY | Long Island, NY | Remote, Full Time

Python (Django, Flask), Bash, HTML, CSS, Processing, Java (basic), Javascript (front-end)

Resume: [https://drive.google.com/file/d/0Bwagfa9ahgp0c1VvMkhuMzFmWEU...](https://drive.google.com/file/d/0Bwagfa9ahgp0c1VvMkhuMzFmWEU/edit?usp=sharing)

Contact info is on resume

Currently working in IT, but looking to move to a developer position. In addition to programming, I'm proficient in graphic design (Photoshop) and music production (FL Studio). I'm bilingual in Spanish and English and consider myself an honest & sociable person. Feel free to contact me even if you just want to keep in touch.

</comment><comment><USER11> Currently in Los Angeles, Remote/Relocation to TX OK, Full Time. Sorry, but no onsite SF or NYC.

Stack (current): PHP (no framework, but OOP of course), JavaScript+jQuery, Memcached, git/svn, on CentOS

Things I play with: Android/Java, ReactJS

Things I've played with: NodeJS, Python, Mathematica

Resume: [http://charmeleon.github.io/resume.html](http://charmeleon.github.io/resume.html)

Two years of software development experience, I'm currently in LA but I've plans to relocate to TX (currently looking at Houston/Austin) by end of year (sometime after August).

</comment><comment><USER12> Alabama, Remote-friendly (obviously), Part-time/contract (not looking specifically for full-time but willing to entertain competitive offers)

Comfortable Stack:

      - Backend: Node.js (JavaScript/CoffeeScript), Go, Ruby (on/off Rails), Clojure

      - Databases: PostgreSQL, MySQL, MongoDB, Redis, Riak

      - DevOps: Ansible

      - Front-End: Flight, React.js, Ractive.js, SCSS, LESS, Foundation, Bootstrap

Website: [http://duncanmsmith.com](http://duncanmsmith.com)

Contact: email@example.com

</comment><comment><USER13> South Bay (Sunnyvale, Mountain View, San Jose, Palo Alto...etc) Full time/Contract/Part time.

Stack: QA, QA automation, Perl, Java, SQL, Selenium, File system testing, balck-box/white box testing, Linux scripting.

Resume link: [http://goo.gl/Mlm494](http://goo.gl/Mlm494)

Contact: Please see resume.

Posting for wife. Looking for a company where her skills will be enhanced and she can build here career. Any domain is fine. Looking for Junior to Mid level position.

</comment><comment><USER14> New York, Full Time.

Stack: Python (Flask, Django), Ruby (Rails), Java, C, Haskell

Resume: bgapinski.com

Contact: firstname.lastname@example.com

GitHub: github.com/bgapinski

I'm a fresh college graduate with some practical programming experience. I am looking to challenge myself and expand what I know. Though most my experience comes from web development, I am open to any programming domain. Would be most comfortable with a more entry level position but am more than willing to take on more.

</comment><comment><USER15> I'm bitcoin and php/asp.net mvc expert. I have recently built this for a client [https://cryptocafe.com](https://cryptocafe.com) \-- a classified marketplace powered by cryptocoins-based escrow (runs on cold wallets to prevent stealing of coins.)

I'm working on decentralized crypto exchange and prediction engine and looking for someone to join me with support for business/legal sides of things.

</comment><comment><USER16> New York, Remote, Contract

Stack:

      - Ruby on Rails, Postgres, JQuery, CSS3

      - UI/UX, SEO

Resume: [http://www.emprivo.com](http://www.emprivo.com)

Contact: contact[AT]emprivo.com

We are a small team of three entrepreneurs who design, develop, and market. Done work for Chegg, StubHub, BizFilings, The Knot, and Zulily.

</comment><comment><USER17> Boston, MA.

Stack: Ruby on Rails, Sinatra, HTML5, CSS3

I just graduated thoughtbots Metis program and am now on the market. I have years of experience shipping software for clients.

Info: [http://piratebroadcast.github.io](http://piratebroadcast.github.io)

</comment><comment><USER18> Did you mean ( _July_ 2014) ?</comment>


OYO furloughs thousands of employees as revenue drops by over 50% - <AUTHOR> https://techcrunch.com/2020/04/08/indias-oyo-furloughs-thousands-of-employees-as-revenue-drops-by-over-50/ <comment><USER2> An ex-customer here. I had two worse experiences by booking on Oyo.

I got stranded along with my family in the middle of Bangalore city only because I made a payment through the Oyo app and the hotel rejected check-in.

I called the Oyo customer care, talked to 4 different staff for 2 hours, nobody takes the responsibility, neither want to resolve the problem. They finally told me to find some other room myself, refunded my money, and left like nothing has happened ever.

Begged to the hotel owner, got a room for that day, and then booked another room on MakeMyTrip for the remaining two days. The hotel owner said that NO hotels in Bangalore will accept bookings from Oyo, and this has already been communicated with Oyo, but Oyo still accepts bookings and payments.

Oyo replaces the website/phone info of hotels on Google Maps with the Oyo website and number, and this makes hard to contact a hotel directly. So I always collect hotel card/number whenever I visit a hotel.

Uninstalled the Oyo app instantly. Never used Oyo since then.

Ensured that none of my colleagues, friends, and relatives are going to use Oyo again and get cheated.

<comment><USER3> What has happened is , a good idea which is supposed to manage both demand and supply issue was what helped Oyo grow, i am assuming they worked very hard with local Indian hotels ignored by bigger international sites. However like many other startups they grew too big too fast and the pressure to justify their insane valuation probably led to all kind of tricks as long as they can get away with it.

Is it legal to replace Hotel info with Oyo no ? I am assuming they do it because a lot of small hotels do not know or understand the significance and Oyo can probably do it at scale.

<comment><USER2> They replace the numbers on Google Maps first - either by adding the hotel for the first time on Maps or by "claim this business" option. Everyone else collects the data from Google Maps (or their services) and now on every website, the hotel has Oyo's number.

<comment><USER4> Man, this is infuriating. What does Google say when the hotels call to correct the information?

<comment><USER2> I don't think hotels can do this, either the hotels don't know how to claim the business back, or this is a part of their agreement.

</comment></comment></comment></comment></comment><comment><USER5> Speaking as a customer of oyo in India I've had terrible experience with them including a lot of my friends. I've not heard a single good thing from someone who has actually used their services so I really don't understand how they have become such a massively successful billion dollar company.

I mean everyone posts amazing pics of their property compared to how it actually looks but oyo was just an outright scam for me. It was as if someone posted all together unrelated photos of something else. It was so bad that I couldn't even locate the darn hotel after passing it like 5 times.

But then the same happened recently with my Airbnb booking too so I guess it has sort of become a norm here. The scene is kinda bad for these hospitality startups in India from the customer's point of view.

<comment><USER6> They have not become a successful billion dollar company.

Some kid with a story got a few dollars from SoftBank to become Marriott/Hilton/IHG except without paying for all the quality inspectors to go around and continuously make sure hotels are up to par.

Clearly, this business doesn't scale and SoftBank was hoping to pawn it off on someone before it folded, like their other ventures.

</comment></comment><comment><USER7> Just listening to Jim Chanos on his views on gig economy ([https://www.youtube.com/watch?v=StybwIP8O8k](https://www.youtube.com/watch?v=StybwIP8O8k)). One point he makes is that companies pay a lot more on top of salaries towards unemployment pool etc that gig economy companies don't. He basically said that this entire gig economy is fraud based on transferring all these burden to tax payers unlike normal companies who have normal employees.

<comment><USER8> The entire gig economy is finding legal (and in the case of Uber they didn't even bother with that) ways to evade regulations.

<comment><USER9> Or Airbnb. Or Doordash

</comment></comment></comment><comment><USER10> Why does cheap lodging need to be subsidied by VCs? I didn't realize OYO was such a big company, but I've booked some rooms through them and it seems like it's just another booking source like booking.com or tripadvisor. The hotels had different names in person than on OYO and the only OYO thing about them was their shampoo bottles.

<comment><USER11> They're trying to become a sole-source supplier of hotel rooms. Same with WeWork, and Airbnb.

The middleman, taking a cut of every sale, while shifting all the risks to the consumer and the hotelier. Great gig if you can get it.

</comment></comment><comment><USER2> This is a good read: _Oyo Ruined My Anniversary:_ [https://oyo-ruined-my- anniversary.com/](https://oyo-ruined-my-anniversary.com/)

</comment><comment><USER12> #offmychest I detest Ritesh Agarwal and his poorly run startup. They have absolutely no culture, a friend who was working for their Bangalore sales team told me it was a dog-eat-dog world amidst them and clearly they're a good example of what not to do after you receive so much funding(lease properties in vegas lmao instead of fixing your app and doing better due diligence for the hotel listings so that some form of quality control can be expected, they just put a big sign in front of some run-down disgusting motel which says OYO), rose too quickly and now they have to resort to all sorts of tomfoolery to justify Masayoshi to stay sustainable. I have no idea how they'll ride the post corona wave when travel and hospitality have been the most hit sectors. I pray for you man ritesh goodluck.

</comment><comment><USER13> I cannot understand OYO. At least in London, it is nearly all horrendous 2* hotels which were often used for temporary emergency housing, rebranded with an OYO logo but no significant refurbishment done. The reviews are absolutely atrocious and I feel sorry for a tourist that books into them. It would be a terrible impression of the city if you were a visitor.

<comment><USER6> Understand it from the point of the VC. They were trying to sell a story about a "visionary" who could create a hotel brand without paying for the people and infrastructure that make it all work. It takes time and money to build and do quality control for quality hotels. That doesn't make for 1000x ROI though.

Easy to understand when you know they were never interested in selling quality hotel room nights, but rather trying to cash out on the equity.

</comment></comment><comment><USER14> Looks like the nails in its coffin are going in. Sorry, Softbank.

<comment><USER15> Shareholder lawsuit vs Softbank when?

<comment><USER16> You can't sue a company just because they made bad investments.

</comment></comment></comment><comment><USER17> Had three next level terrible experiences with Oyo in India. Never using them again for hotels

</comment><comment><USER18> Why are any articles on "bad news" being systematically removed from the HN front page?

</comment><comment><USER19> Whether OYO would have done well, absent Covid-19, is a debatable point, but in general companies who were expanding rapidly with a lot of borrowing, right before a recession starts, do not do well.

Things like OYO and WeWork seem like they'll be particularly badly affected by this downturn as they've got a lot of fixed costs (leases or property owned) and their main markets will be heavily impacted.

<comment><USER20> Oh ye forgot about WeWork. I guess JIT office space is not a very good business when people are supposed to work from home?

<comment><USER21> [https://news.ycombinator.com/item?id=22802790](https://news.ycombinator.com/item?id=22802790)

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

</comment></comment></comment><comment><USER22> >The startup's teams in the U.S. are most impacted by the furloughs, according to a person familiar with the matter. In a statement, Oyo confirmed the furloughs and added that India, its home market, was not impacted

This is something Is m seeing more and more in the current climate. International companies ar elooking to cut payroll to reduce expenses, and ofcourse they are going tos tart with the country with the most out of proportion salaries.

Tack on the current insane unemployment benefit package and I'm wondering why companies aren't forloughing every person they even think they might not need.

</comment><comment><USER23> It really sucks to be in the hospitality industry right now.

</comment><comment><USER24> [https://archive.is/THGGg](https://archive.is/THGGg)

</comment><comment><USER25> Anyone in the know of what is the impact on the OYO workforce here in India, which I guess is it's biggest market and where majority of it's workforce operates?

<comment><USER26> It is right there in the second para..

In a statement, Oyo confirmed the furloughs and added that India, its home market, was not impacted.

<comment><USER27> In India it's difficult if not impossible to let employees go. The Indian public will not forgive any company that fires people during this pandemic.

<comment><USER28> Capitalism and Morale does not go hand in hand.

</comment></comment></comment></comment><comment><USER29> This site breaks the back button.</comment>


Apple iPad Gets Split-Screen Multitasking in iOS 9 - <AUTHOR> http://techcrunch.com/2015/06/08/apple-ipad-gets-split-screen-multitasking-in-ios-9 <comment><USER2> It is nice to see Apple has finally started taking notice of the competition (larger phones, multi-tasking, alternative keyboards/swipe, etc). It seems like Apple stalled in terms of progression there for a few years, maybe after Jobs everyone was too scared to make any significant changes to the golden goose.

I will say I haven't seen too much "innovation" from Apple in recent years. Progression, yes, but innovation no. Apple used to lead the field, and now they're just another "me too" device seller. The Apple Watch in particular is highly disappointing compared to what existed before it (e.g. Moto 360), but for what they lack in innovation they have more than made up for with advertising dollars and celebrity endorsements.

<comment><USER3> _I will say I haven 't seen too much "innovation" from Apple in recent years. Progression, yes, but innovation no._

Agreed. The iPhone was groundbreaking. The iPad somewhat. Since then they've done some great work on their laptop line, but that's about it. They were even late to the game with smartwatches.

Of course, the problem with complaining about things like this is that I have no idea what I actually want Apple to do, except surprise me.

<comment><USER2> I'd say that things like the integrated fingerprint reader (2012) on the home button was pretty innovative/bleeding edge. It was a bit of a gimmick, but ultimately they pushed the boundaries of what anyone else had done. Ditto with Siri (2011), while Windows Vista had basic speech recognition in 2006, Siri was able to merge the latest speech recognition with the user's data, to give the user compelling results.

So I don't think Apple needs another iPad/iPhone to be called innovative, it can be new software features, or little hardware features. I just genuinely cannot remember the last time I've legitimately been jealous of an Apple exclusive feature. Maybe Lightning's reversible-ness in 2012? What since then? That was three years ago.

<comment><USER4> Literally the first smart phone I owned had that. [http://en.wikipedia.org/wiki/Motorola_Atrix_4G](http://en.wikipedia.org/wiki/Motorola_Atrix_4G)

It was sort of gimmicky (as were a lot of the features of the Atrix) but it existed on Android first.

Of course it never worked once I switched to cyanogen mod and I never used it even when it did work.

<comment><USER5> The Atrix had a fingerprint sensor, but it didn't really do anything other than unlock the phone. The sensor on iOS allowed for far deeper integration into the system. That was innovative.

<comment><USER6> It seems obvious to me. Perhaps it's hindsight, but Apple's full-stack control of hardware and software make it obvious.

It's non-obvious on Android/pre-Android because software developers won't care much about an API for a fraction of an OS's market. Which is why I'd venture to guess most Android apps still don't take advantage of fingerprint sensors.

</comment></comment></comment></comment></comment></comment><comment><USER7> I remember watching a video awhile back that noted how Steve Jobs, being keen on eastern religions, brought Zen principals into his surrounding environment. In that particular case, they showed how his home was very spartan, eliciting an expression of focus and elimination of distractions from the task at hand. The point they were making was that this showed through his products. On the iPad, you can only do one thing at a time. You have to focus on that one thing, and are not able to be bothered by distractions such as other windows/programs.

Of course, having multiple apps open on the earlier iPads would have been quite challenging anyway, so this was either a happy coincidence or an excuse/interpretation made after the fact. But the idea was cool none the less. It made me think about how distracting and unfocused work on a normal desktop can feel like compared to an iPad. The downside, of course, is that while this inability to have multiple things open side-by-side is fine for casual usage and entertainment, it makes a lot of tasks related to creation and work quite difficult.

So it will be a relief to finally have this feature on iOS. It certainly was a pain point. But that concept of focusing on a single task without distractions is still something worth remembering.

<comment><USER8> > But that concept of focusing on a single task without distractions is still > something worth remembering.

Apple has a habit of pooh-poohing any idea that they don't currently support right up until the moment that they do support that idea.

<comment> vezzy-fnord Gonna have to side with this. The parent poster is effectively trying to rationalize what is a technical regression by most interpretations under a veil of woo and mysticism.

<comment><USER9> I'm not sure about this specific scenario (seems to me you're right, it's technical), but this principle has been actually used before and abandoned recently. The size of the iPhone 6 is a great example of something Jobs dismissed under usability notions, despite them certainly having the technical ability to do it. Now it's done.

Although not sure if Jobs changed his mind, or if this was a "post-Jobs" decision. Apple's product development timeline would make that seem unreasonable.

<comment><USER10> Apple Watch offers a new screen to work with. Single-hand operation is still possible. It does not match the experience before for the moment, but it will get better. Viewing it as user surrounded by devices, it will offer a clearer picture.

<comment><USER11> You need two hands (or rather two arms and one hand) to operate an Apple Watch.

<comment><USER10> I think voice control (Siri here) will reduce the need for another hand to get involved in operation. Actually, we could categorize all the operations. I guess for most of those high frequency operations, voice control + wrist triggered display + customized settings would be fine for many users, if they are working well. I believe Apple has fact-based analysis on this and made their choice. How that would deliver is another story.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> One reason that I do not use my iPad as a productivity device is that I do not understand the security model. I would need a terminal app with ssh capabilies. But how do I know if the maker of the app is sending my SSH credentials to his server or something? Does apple check that? Is the process how apple prevents this documented somewhere?

At the moment, I only use software that is in the debian repos. At least I understand the security model of debian to some degree. And it is open and verifiable to everybody.

I wonder why the Linux distros are so slow to adapt to tablets.

<comment><USER13> > I wonder why the Linux distros are so slow to adapt to tablets.

Tight hardware integration. Most tablets have locked-down bootloaders that make it difficult to replace the default OS.

You've also pretty much got to start over when it comes to drivers. Linux used to have _terrible_ driver support back in the day -- I remember carefully choosing motherboards and laptops because I wanted a Linux-compatible chipset -- those days are over on the desktop (except for a few esoteric peripherals), but it's going to hit hard on mobile. Imagine booting your tablet onto Linux but not being able to use the GPS or some other piece of connectivity.

And then, you've got to take all your established GUI code and throw it in the trash and start over. Nothing from the desktop world is going to be usable in a touch environment. The big desktop environments all have heritage going back to the late '90s. You can still see some KDE 1 and GNOME 1 layouts used in their modern KDE Applications and GNOME 3 descendants, and the stuff that was replaced was replaced one app at a time. Throwing everything out and starting over is harder than it looks.

But, still, we've got some attempts at this. Look at Ubuntu Touch, Sailfish, and Plasma Active, for example. In the past, we had Maemo 5, which was amazing, and it was everything I wanted in a touch-based Linux distro, but the only company that had pockets deep enough to fund its development turned away from the platform, and the closest thing it has to a successor (Sailfish) has been a disappointment. Also, even that required the distro developer be an established hardware manufacturer: Maemo 5 couldn't have worked if it was just an OS that could only be installed on third-party devices.

<comment><USER14> I'm running Ubuntu on my Windows tablet (Acer Iconia W700) now, typing from it in fact. Interestingly enough, I had no driver issues (everything as far as I can tell worked perfectly with a fresh Ubuntu install), but I've had more software issues with touch support. I thought Ubuntu was supposed to be better with that, and while multitouch gestures seem to work with Unity, there are very few places where they are implemented.

</comment></comment></comment><comment><USER15> One of the few features from Windows 8 I was hoping Apple and others would adopt. 8 really did have some interesting innovations in the 'productive tablet' world, it was just... well, we all know what it was.

Think they'll bring in a "charms" thing for quick actions, maybe from the left side?

</comment><comment><USER16> This is a feature I love on my Windows 8 tablets. Glad to see iOS will be getting this.

<comment><USER17> I've loved the snapping apps to sides of a screen on my Surface for the past few years, however does anyone know whether the full-screen snapping is still around in Windows 10? It seems like Microsoft may have removed it in favor of a simply snapping apps within the desktop.

<comment><USER2> Windows 10 has two "modes." Tablet mode, which is very similar to 8.1, and desktop mode which is a mash up between 8.1 bits and Windows 7 bits (e.g. apps in windows, no full screen Start Screen, etc).

So in answer to your question: If you're in tablet mode then it will still offer that in Windows 10.

</comment></comment></comment><comment><USER18> Great feature. I used to love doing this with my Amiga.

<comment><USER19> it is pretty crazy how computers are going backwards lately

</comment></comment><comment><USER20> Note that as of the moment, this will only be available on the iPad Air 2.

<comment><USER21> Probably because of memory limitations; I would be surprised to see it ever come to older devices because they were already pretty memory-constrained.

<comment><USER22> The only reason to do this is increase the sales of the latest iPad, there is no technical reason. Again apple treats it's customers like shit

<comment><USER23> This seems like a bold claim to throw out without substantiation. It is undeniable that older devices are more resource-limited, and do run the latest OS faster. Sure, Apple probably is trying to push sales of new devices (which is their right—they have no obligation to retrofit the latest-and-greatest features to old devices); but to say that's the _only_ reason seems rather strong.

<comment><USER22> I should have said, I meant the fact that the iPad Air won't get it. It's almost the same device, fair enough older iPads won't receive it.

<comment><USER24> The Air 2 has twice as much ram as the Air, and memory has long been the constraining factor on the iPad.

</comment></comment></comment></comment></comment></comment><comment><USER25> If Apple introduces a larger iPad Pro with multitasking, this will shine more (blue) light on human eyes and create a need for platform-wide color temperature adjustment in iOS. At present, this is only available in a few apps. On desktops, it is available via fl.ux.

<comment><USER26> f.lux is available on jailbroken ios devices.

<comment><USER25> Anyone who uses iPad at night would benefit from blue light control in iOS. This is a larger group of people than those who are willing and able to jailbreak their iPad.

</comment></comment></comment><comment><USER27> If only they allowed the iPhone 6 Plus to do some of these neat iPad features. Surely some of them would work at least in landscape mode.

<comment><USER28> Nobody has really implemented landscape mode in their apps on iPhone 6 plus. I expect the same will be true for this feature.

<comment><USER29> Well if the iPhone6+ is in landscape, it would fit two "portrait" mode apps side by side.

<comment><USER28> That's not quite what I meant.

iOS 8 with the launch of iPhone 6 Plus promised to allow developers to make their portrait mode apps also run in landscape mode on the larger device.

No developers actually made use of this feature, so it's pointless.

<comment><USER29> Oh, do you know where I can read about that? Never heard about it before.

<comment><USER28> Nothing solid but this is a start: [http://thenewsprint.co/2014/12/17/the- state-of-the-iphone-6-...](http://thenewsprint.co/2014/12/17/the-state-of-the- iphone-6-plus-landscape-screen/)

<comment><USER29> It seems developers still have to implement a specific controller/something for that. I thought you mean something different where it would all be somewhat automatic.

<comment><USER28> That's exactly my point. When it was announced it wasn't obvious that this didn't come for "free" and I am saying the new dual pane feature is likely to need the same such implementation which won't attract developers.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> I've always thought tiling window managers were the future (as they're just flat out superior to windowing systems for many, many workflows). I just didn't know it would be Apple that would make it popular. But, maybe tiling will become the de facto UI for everything in the next few years. I'd like that.

<comment><USER4> A vague tiling like functionality has been available in Windows since 7. In 10 it looks they're finally expanding this to have more options then just halves, something I've been doing with a third party program for awhile now (it has halves, thirds, and quarters).

This is not a true tiling WM but I've personally found their use a bit limited as there are times when it makes sense to have multiple windows overlapping, at least in my own work.

</comment></comment><comment><USER31> I will wait until this ships, but I don't think that I will like it more than quickly switching apps with a sideways swipe. For example: I write a lot on my iPad, keeping a text editor open to a markdown file and a PDF open in an adjacent app. I sometimes quickly swipe back and forth when making edits.

I recently bought a keyboard cover for my iPad, which I don't often use, but an iPad Air with a keyboard cover overlaps some laptop use cases, and the split screen might be useful.

<comment><USER25> Which iOS tools do you use to generate PDFs from Markdown?

<comment><USER31> leanpub web service, reads manus rope from dropbox and put generated pdc, kindle, and I book files back into dropbox.

</comment></comment></comment><comment><USER32> Not going to make any difference. The plain fact is that iOS sucks for any real work and the OSX UI is a disaster that came out of not wanted to let go of an idea that worked OK on a little 9 inch Mac screen.

The second assertion is the easiest to prove. Setup a Mac to drive a wall of six or nine HD or better 65 inch monitors and see how quicly you end up at the doctor with carpal tunnel and intense shoulder and arm pain. Not so with most Linux platforms, Windows and even going back to Irix and Solaris.

On he iOS front, well, it's mostly good for games, browsing and very simple tasks (like credit card scanners). Anything beyond that where there's far more user involvement the whole touch thing falls apart very quickly. Try entering a few thousand transactions into an accounting program, maintaining a large codebase or working with a non-trivial Excel file. It's a great "fun and games" interface, but that's about it.

Apple Watch. Dead as a doornail.

I am getting the feeling that Apple is noe entering into the downward slope that ultimately happens once all the smoke and bullshit clears out.

Context: We develop for all platforms and have been using Macs since the Original 9 inch CRT models.

<comment><USER32> The thing about down-votes is that they don't change reality one bit. They might provide the voter immediate satisfaction but the truth of the matter isn't modified in any way.

Let's see how this Apple thing plays out over the next few years. I run into more and more people every day that are sick and tired of their i-device and I have yet to hear anyone at all say they have any interest whatsoever on the Apple watch.

So, down-vote or not, whether you agree with me or not is immaterial at this stage. The only thing that matters is whether or not my opinion today will hold true a few years from now. I think it will. And, of course, I could be wrong. That's the way it goes.

<comment><USER33> Thing is, people have been saying "Let's see how this Apple thing plays out over the next few years" since 2007 and they keep growing.

"I have yet to hear anyone at all say they have any interest whatsoever on the Apple watch"

A million pre-orders on day one would suggest you might not be representitive here.

The watch definitely interests me - smart notifications on the Garmin 920XT have convinced me of the utility.

</comment></comment></comment><comment><USER34> Many years ago - 2010 to be precise - I installed Desktop for iPad by Aqua Eagle. I don't think it ever got updated. It is still installed, still works on iOS 7.1.2, but is no longer in the store nor, interestingly, does it show up in my list of installed Apps. It implements split screen multitasking, albeit with their own versions of each App. I never use it.

</comment><comment><USER35> I was expecting an OS X-toting, keyboard-wielding Surface 3-like iPad Pro instead.

Now when Apple squeezed multitasking into a regular one, I am not so sure whether to expect the iPad Pro. Maybe in autumn, with/instead of the supposed iPad update? I wouldn't rule out the secret homebrew CPU that could replace the x86 Core M.

<comment><USER36> If there's going to be an iPad Pro, they'll announce it at an iPad event like they've done in the past.

<comment><USER37> All the features they announced (including force touch trackpad) seemed to indicate "iPad pro is coming". At this point, I'd say better-than-even money that they will announce it to coincide with the actual release of the OS.

</comment></comment></comment><comment><USER38> I wonder if this will lead to wider screen formats long term.

<comment><USER39> I really hope not. I have a Thinkpad Tablet 2 with a wide screen and it's nice to watching movies or having apps running side by side but it's awful to try to hold one-handed. It's far too long.

</comment></comment><comment><USER40> Congratulations, Windows 3.0 level achieved!

</comment><comment><USER41> BSD 4.4 was released 1994 it has multitasking which the Darwin kernel in OS X and also ios are based upon. Talking about 1994, NT also has had preemptive multi tasking since 1993. Multics the father of UNIX had multi tasking in 1965.

<comment><USER42> I know the headline is talking about something different, but I always think something along the same lines when someone talks about iOS multitasking. Does the kernel have a Process Control Block? Is there interrupt-driven preemption? Well, then it's a multitasking OS in the technical sense.

But using the term "multitasking" to mean two applications on screen at the same time goes back to the Amiga days, maybe even earlier. I've just accepted it at this point.

</comment></comment><comment><USER43> Google's, but especially Sundar Pichai's, stubborness to make Android more PC- like to the detriment of Chrome OS meant that Apple gets to do multi-windows natively before Android - which should've had it at least two or three years ago.

Sure, Android M is likely to get multi-windows as well when they announce the final version (maybe), but we've still moved from Android getting some features two or three years before iOS, to Android and iOS launching very similar features about the same time.

This is a big problem for Google because Apple can release the new OS with the new features to 50% of its users within a week and to 85% of its users within a year. It takes a certain version of Android to do that at least 3 years.

If Google can't release its major Android features years before iOS anymore, then it _needs_ to make upgrading Android devices by itself an even bigger priority, rather than leaving it to others.

<comment><USER12> Why do Android users update slowly? I have a few Android devices and I think they pop up with a message from time to time "new os version ready to install". But I am not sure. That shows how much I care :-) But I guess it _is_ that way and then why would anybody _not_ update?

<comment><USER44> Android users update slowly because Android updates depend on the OEMs, and the OEMs update slowly or not at all.

With iOS, Apple releases an update, and then everyone with an iOS device made in the past N years (where N is 4 or so at the moment) can download it more or less immediately.

With Android, Google releases an update. Then the OEMs slowly start working on updates for their various devices. If they feel like it. Often they just don't bother. Then if you're lucky your OEM finally gets their job done and you can update. And by the time that happens, you're lucky if it's only one or two point releases behind what's now the latest.

<comment><USER45> And for phones distributed through carriers, once the OEM provides an update, it then (probably) gets tested by the carrier, and only then (eventually) pushed out. Sometimes the carriers don't even distribute updates the OEMs provide.</comment></comment></comment></comment>


Apple to finally offer Mac bug bounty program - <AUTHOR> https://www.forbes.com/sites/thomasbrewster/2016/09/28/apple-iphone-hacker-meet-cupertino/ <comment><USER2> should say in the title that this is from 2016.

<comment><AUTHOR> Sorry about that - wrong link.

Apple never instituted the Mac bug bounty, but is rumored to be doing so later this week:

Apple Hands Hackers Secret iPhones In A Bid To Boost Security, Sources Say [https://www.forbes.com/sites/thomasbrewster/2019/08/05/apple...](https://www.forbes.com/sites/thomasbrewster/2019/08/05/apple- is-giving-out-hacker-friendly-iphones-plots-mac-bug-bounty-sources/)

" _It 'll also be announcing an Apple Mac bounty, so anyone who can find security issues in macOS will get rewarded, sources claimed._"</comment></comment>


Yahoo To Shut Down MyBlogLog On May 24 - <AUTHOR> http://techcrunch.com/2011/02/24/yahoo-to-shut-down-mybloglog-on-may-24/ <comment><USER2> Related (a few days ago on HN): "What happens after Yahoo acquires you (37signals.com)" -- <http://news.ycombinator.com/item?id=2251705>

</comment><comment><USER3> Selling a startup is like selling a horse in a parallel universe where the glue factories are paying more than the horse racers.

</comment><comment><USER4> Oh no, isn't that what runs Bob Loblaw's Law Blog?

<comment><USER5> He may be a customer, but it is hardly what runs his blog, as it is an analytics tool.

</comment></comment><comment><USER6> I don't think the Internet is losing anything by the closing of MyBlogLog. It became obscure and useless even before Yahoo bought them. One man's opinion.

<comment><USER7> I agree. I was a user, and MyBlogLog was nothing but a circle jerk badge of honor for bloggers.

</comment></comment><comment><USER8> Another project closed by Yahoo! Do they buy em just to close them in the end?

I wounder when is Yahoo shutting down.

<comment><USER9> "I wounder when is Yahoo shutting down."

Perhaps if they bought _themselves_ ...

</comment></comment><comment><USER10> Yahoo to Shut Down MyBlogLog - Miss it? <http://Publishedin.com> Might Be Of Help [http://blog.publishedin.com/post/3519850188/yahoo-to-shut- do...](http://blog.publishedin.com/post/3519850188/yahoo-to-shut-down- mybloglog-miss-it-publishedin)

</comment><comment><USER11> Wait, who uses this service? Anyone care?

</comment><comment><USER12> Its been a long time since we've heard Yahoo announcing anything new. Makes me wonder if all the doom predictions are true..

<comment><USER13> Is two weeks a long time?

[http://www.zdnet.com/blog/btl/meet-livestand-yahoos- attempt-...](http://www.zdnet.com/blog/btl/meet-livestand-yahoos-attempt-to- digitize-magazines-content/44693)

</comment></comment><comment><USER14> yahoo .. where startups go to die.</comment>


Show HN: Ignite. Code, compile and share, all in real time web editor. - <AUTHOR> http://ignite.io/#

<comment><AUTHOR> Also if you would like to see how real time works you can visit: <http://ignite.io/code/50105ff2ef167bf967000000>

Or just hit save and share with a friend!</comment>


Qualities of An Ideal Opportunity - <AUTHOR> http://blog.bincsearch.com/?p=379

<comment><USER2> _"... As a recruiter, I love dealing with candidates who are passionate about their work and are in their profession for the right reasons ..."_

Close to spam but relates to this post <http://news.ycombinator.com/item?id=229160> by <http://news.ycombinator.com/user?id=DaniFong> which is a much better post to read.</comment>


Skype for Mac Has Dangerous Security Vulnerability - and No Word From Skype - <AUTHOR> http://www.disruptivetelephony.com/2011/05/skype-for-mac-has-dangerous-security-vulnerability-and-theres-no-public-word-from-skype.html

<comment><USER2> patch to come next week, says a spokesperson.</comment>


Rendering Improvements - <AUTHOR> http://blog.atom.io/2015/06/24/rendering-improvements.html

<comment><USER2> Tiled rendering is a bog-standard approach for GPU-accelerated Web browser compositing since Mobile Safari came out in 2007. I'm surprised their version of Chromium wasn't doing it already (and I know at least some Chromium configurations can, for example on mobile). Seems odd that they'd have to do it themselves.

In fact, it's odd that they'd have to use translate3d at all. Just changing the scroll offset on a native scrolling root should cause the compositor's tiled rendering infrastructure to automatically do the right thing.

</comment><comment><USER3> It's kind of cute watching the web optimize itself. In contrast, the stuff they pulled off in the 80s on an NES is like powerful, ancient magic.

<comment><USER4> What's the point of sarcastic comments like this? If this is so obvious why didn't you suggest it years ago?

<comment><USER5> i think that part of the issue is that these problems are so far down the optimization stack at this point, that they are seen as late optimizations.

development _should_ start simple, and problems should be solved as they become apparent. to do otherwise would be counter-productive.

imagine how complex development of a text editor would be if we assumed that we had such major constraints? at this point, it is good to revisit some of those optimization, as we strive for small improvements, but to entertain going all the way to bare metal is just ludicrous.

while i am grateful for the knowledge from such resource-driven development (i did that too, writing video games for 286/386 and 68040 we were quite restraint-driven), i am happy that we can think of these sorts of optimizations as further down the pipeline optimizations, and don't need to consider them day to day.

<comment><USER6> As the saying goes, "Kill the closest snake". Do as Instagram does: [http://www.fastcompany.com/3047642/tech-forecast/do-the- simp...](http://www.fastcompany.com/3047642/tech-forecast/do-the-simple-thing- first-the-engineering-behind-instagram)

</comment></comment></comment></comment><comment><USER7> I can forgive using a web browser as a renderer, I mean you have to use something, but man why are they using GPU acceleration to render text.

</comment><comment><USER8> Does this mean files of any size can finally be opened in Atom? Or was that fixed before?

I remember something about a 2MB (or was it 2GB?) limit at some point.

<comment><USER9> They did raise or remove the limit I believe, though long lines, particularly minified files, do still pose a problem and force me to kill Atom.

Edit: Confirmed that the 2mb limit was removed. While viewable and editable, depending on the operation you attempt you may see issues.

I tried copy/pasting the contents of a 3mb json file several times and eventually it caused exceptions to be thrown (but no crash). Same test worked in Sublime Text, albeit with freezing. They do still have some work to do on the edge cases but it's been nice to see progress.

</comment></comment><comment><USER10> How are changes to the dom handled? Incrementally, with a minimum of recomputed state?

<comment><USER11> Atom uses react. It has a virtual dom that changes (instead of the actual dom) which itself can set off its own events and start more changes).

When the changes to the virtual dom are complete it will compare the dom as it is to the virtual dom, find the differences and apply only the differences to the actual dom.

It's super fast since the virtual dom only has to support what it needs, as opposed to the actual dom with around 2 decades of outdated functions and properties.

<comment><USER12> I know Atom stopped using React for the editor component in February [0]. Do they continue to use React elsewhere?

[0] [https://github.com/atom/atom/pull/5624](https://github.com/atom/atom/pull/5624)</comment></comment></comment>