Hacker Newsnew | past | comments | ask | show | jobs | submit | marte's commentslogin

Location: Asia-Pacific (e.g. Philippines, Singapore, Australia)

Remote: Yes (and only)

Skills: Python, SQL/NoSQL & Database Design, Desktop APIs (e.g. macOS/Cocoa, Windows), Web/Cloud APIs (e.g. Google, Microsoft, OAuth), JavaScript & HTML/CSS, Data Structures & Algorithms, Networking, Security, DevOps, Linux, Product Development, Startups, Architecture & Design of whole systems

Resume: https://talaksan.com

Email: marte [at] talaksan [dot] com

Looking for: problems to solve! I'm available for consulting / freelancing. If you have a problem, I'll help you develop ideas to solve it. If you have an idea, I can quickly prototype a system to implement it. If you have a system, I can help improve and fix issues in it.


SEEKING WORK | Asia-Pacific | Remote

https://talaksan.com

I love solving problems through application development, from ideation to launching and iteration. If you have a problem, I'll help you develop ideas to solve it. If you have an idea, I can quickly prototype a system to implement it. If you have a system, I can help improve and fix issues in it.

As (former) CTO of Insync (https://insynchq.com/), I became proficient in many technologies (e.g. Python, SQL/NoSQL Databases, macOS & Windows APIs, JavaScript, Web/Cloud APIs, Networking, HTML/CSS, Linux) and different aspects of software engineering (e.g. Architecture & Design, DevOps, Security, Training, People Management). As its co-founder, I had great experience in product development and cultivating company culture.

I built a solid foundation by having fun doing sport programming, which made me fluent in data structures & algorithms, and joining hackathons, which exposed me to new paradigms & problem domains. I've won (or placed) in plenty of competitions along the way (see my website for details).

Hit me up at marte [at] talaksan [dot] com if you have problems to solve!


No, it does. There's a type in Python called "deque" that more closely resembles the performance characteristics of a linked list.

I agree that this is not the main point of the discussion, though.


It's there, the UI just obscures it. It's actually an accordion and when you click "The Nobel Peace Prize 2010" tab you can see more like the "Press Release".

Regarding the typo: it happens all the time to all kinds of sites.


virtualenv


I'd say that seems to cover both bases for not needing a VM.

Every language should have something as simple as these. Heck, it should be part of the OS, IMO; why I can't (easily) run two different versions of Firefox with two different profiles at the same time is beyond comprehension.


It's been a while since I've done this; but:

* Install your different Firefox versions in different locations (so one doesn't overwrite the other)

* Use "firefox -ProfileManager" to create at least one different 'profile', which is Firefox's user data set

* Use "firefox -P <profilename> -no-remote" to launch Firefox. -no-remote allows multiple Firefox instances to run on the same machine. -P profilename is necessary because you need a separate profile for each running instance.

More info at http://kb.mozillazine.org/Command_line_arguments


Ooh, I'll have to try that. I've been using different profiles, but didn't know about the last step.

Still; mindboggling. Different version = different binary launched, which accesses a different and non-locked profile. Why the hell does it instead open a new window of the currently-running version?

As a heads-up to anyone considering this: Sync doesn't (currently) like multiple versions. 3.6.10 won't sync now that I've hooked up some 4 betas.


You do need a VM if you use memcached/redis/some other thing and don't want to install it on your machine. Other than that (for 90% of cases), virtualenv has you covered.


A VM is a constant time investment, doing it for every language is linear with the number of languages.

Unless there's some serious increases in clock speeds, I'm not sure doing it for every language is worth it. As it is, VMs are a great, general purpose system that are easy to set up, use, and replicate.


The same can be done for Gmail (and probably Google Apps) users through GDocs. Just share a document to an email address, and GDocs will show you their name.


But that ends up sending an email to the account you extend the sharing request to. It might raise a red flag to some people.

This 'vulnerability' doesn't contact the victim, so it can be done in combination with, like the report said, a phishing scheme to gain the real names of the users of an email list.

I'm not saying that this is some massive privacy issue. It opens up a vector to make other attacks, specifically email based attacks, seem more legitimate, which is a bad thing.


There is an option to not send an email. And it's not a request - once you share it, the recipient doesn't need to accept. The users can see them in their GDocs list though. But if you quickly unshare them and they're not currently viewing their list, they'll be unaware of it.


I didn't think that it was an option, but I did check. You are right. Of the three checkbox options, notifying the recipient of a share invitation is the only one checked by default.

Either way, my main point stands. This isn't a major privacy issue. Though, I've always been taught that when developing an authentication mechanism, one should not distinguish between a bad password or bad email address/user name in the error message provided to the user. Specifically the latter, since a "Invalid password supplied for John Doe" gives confirmation that the username provided is valid, and a bruteforce or dictionary attack on the name will probably successful.


Would they pursue for the proof in the first place, if not for the prizes (recognition, among others)? I think it's just analogous to how businesses work, with competition, secrecy, etc. And the debate on whether this approach to proof is good or not overall is similar to the debate of capitalism vs. communism.


Some examples:

Even though Winograd's algorithm (matrix multiplication) is theoretically faster than Strassen's, the constant is so high that Winograd's is only faster in matrices so large you can't practically compute in the first place.

Quicksort is a more familiar example. Although its worst case complexity is O(n^2), many techniques have been invented to avoid the worst cases and execute in just O(n log n) (average case), and it's usually faster than merge sort in practice.


Technically, you can't ever guarantee that you'll avoid the worst case of quicksort. All the techniques to make it nlogn are probabilistic, and you can always engineer a pathogenic input that will make quicksort run quadratic. Mathematically this is expected, but I'm not disagreeing that quicksort is in practice even faster than the true nlogn comparison sorts.

I don't consider this a limitation of big O notation at all, but rather a common misconception among students when they first learn about the notation.



Is it true that quicksort is worst-case O(n lg n) if you always select the median? What if there are a lot of duplicate values at the median? My understanding has always been that for any quicksort algorithm on given hardware you can construct a pathogenic input that will be sorted in quadratic time.


Hardware is irrelevant. The analysis is mathematical and abstract. The model that people typically work in when doing this analysis is the comparison model: one < comparison costs 1 (http://en.wikipedia.org/wiki/Comparison_sort). There are other models that more closely resemble computers. For example, in the cell probe model (http://www.itl.nist.gov/div897/sqg/dads/HTML/cellProbeModel....) you have a word size (e.g. 32 bits, but the exact number is irrelevant) and you can construct radix sort in that model.

If all values in your set of numbers to sort are unique, then quicksort is indeed O(n lg n) worst case if you pivot about the median. If there are duplicate values, can you think of a way to still guarantee worst case O(n lg n)?


Yeah, but if we continue that logic and fill up that "etc etc" it would seem that the other languages have their own bad features and PHP combines them all.


That "all" is what I'm referring to when I mentioned confirmation bias. PHP programs don't segfault when you have a typo. You don't have macro expansion problems. It's not particularly verbose. Most languages have a ton of issues. Imho, the stuff in the PHP list is pretty minor compared to some of the warts in some other languages.


Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: