Ask HN: Would you use a free proposal, invoicing and project management tool? - <AUTHOR> We spent our time in lockdown building Workspace (https://www.tapchief.com/workspace), a full-stack toolkit for freelancers.
With Workspace freelancers can send invoices, oversee their projects, craft proposals and do everything they need to grow their business, for free.
Here's a bit on why we built Workspace.
4 years ago we launched TapChief from our college dorm room, a marketplace for freelancers to discover and work on remote gigs. Over the course of 25,000 gigs and 2M$ earnings on TapChief, we noticed major challenges with the way freelancers worked with clients on projects.
We saw our users having to jump between 10 tools and ultimately rely on a good ole spreadsheet and email to make it all work together. Projects were all over the place, work was siloed and expensive to manage with these tools. And thus was born Workspace.
Workspace is in the works and we're looking for early adopters to try it out and help us build something that freelancers around the world will love. Get early access here - (https://www.tapchief.com/workspace/coming-soon) <comment><AUTHOR> Adding a clickable link to check out Workspace [https://www.tapchief.com/workspace](https://www.tapchief.com/workspace)

</comment><comment><USER2> It's an interesting idea. What is the business model?

<comment><AUTHOR> We make money when any Workspace user takes up a gig on the TapChief Marketplace. So while Workspace in itself is completely free, we make money as a percentage fee of the earnings of our users from a gig.

</comment></comment><comment><USER3> Nice tool very useful for now days.

</comment><comment><USER4> There are many project management tools out there..whats unique with this one? It would be cool if i can directly send invoices to clients using your product.

<comment><AUTHOR> Workspace is a project management tool that also gives you proposals and invoices, completing the full-life cycle of a project, from pitching to a client to getting paid. You can also create invoices directly from tasks on Workspace. This way you're always invoicing on time and getting paid on time.

<comment><USER4> Subscribed

</comment></comment></comment><comment><USER5> We were looking for something like this. I have subscribed. Kindly keep updated via mails! Looking forward.

</comment><comment><USER6> Can remote worker use this to track and manage their tasks or it is just for freelancers?

</comment><comment><USER7> Just subscribed for early access! I am very excited to use it , please keep me posted

</comment><comment><USER8> Looking forward to how this product compares to other project management tools.

</comment><comment><USER9> Is it free forever or is it a freemium plan that you're talking about?

<comment><AUTHOR> Workspace is completely free to use. There's no time limit or usage limit either.

<comment><USER10> Awesome

</comment></comment></comment><comment><USER11> Great tool, will start using as soon as it launches!

</comment><comment><USER12> This is amazing. When is Workspace rolling out?

<comment><AUTHOR> Glad you liked it! Workspace will be going live sometime mid-june.

<comment><USER12> Nice. Looking forward to the launch.

</comment></comment></comment><comment><USER13> Interesting</comment>


Tracking state in Fexl - <AUTHOR> http://fexl.com/tracking_state

<comment><AUTHOR> This is a follow-up to <http://news.ycombinator.com/item?id=2552180> . I aim to do more and more of my production code in Fexl if possible. The hedge fund accounting software I wrote in Perl is quite complex, managing a large amount of intricate state. I chose to represent all that state as a completely flat key-value store in memory, where I write out the keys that changed at the end of each batch.

Naturally that approach seems at odds with a purely functional language such as Fexl, but I'm trying to overcome that apparent mismatch by just doing the key-value stuff in Fexl.

There are some fans of Fexl out there, myself included, who are not yet completely clear on how to use it for production code. The jury's still out. I hope that samples like this will help.</comment>


CSS Variables published as First Public Working Draft - <AUTHOR> http://lists.w3.org/Archives/Public/www-style/2012Apr/0227.html <comment><USER2> Coming from Less.js, the first example does not exactly fill me with joy:

        :root {
          var-header-color: #06c;
        }
        h1 {
          background-color: var(header-color);
        }

Compare that to Less:

        @header-color: #06c;
        h1 {
          background-color: @header-color;
        }

I can understand why they opted out of the @-notation in favor of something a bit more in line with existing CSS, but it just looks overly complicated to me.

<comment><USER3> Yep, I'd be happy with this:

        $header-color: #06c;
        h1 {
            background-color: $header-color;
        }

<comment><USER3> Or even this:

        :vars {
            header-color: #06c;
            header-font: helvetica;
        }
        h1 {
            font-family: $header-font;
            background-color: $header-color;
        }

<comment><USER4> @, : and $ are already well used though.

</comment></comment></comment></comment><comment><USER5> I can't wait to use them when this is implemented in 2020.

<comment><USER6> This was exactly my first thought, too.

Neat feature. Probably won't be relevant by the time it's approved.

<comment><USER7> The browser-makers seem to have grown tired of the approval-process. Implementation happens before that.

</comment></comment></comment><comment><USER8> I'm probably a tiny minority but I don't like that CSS is becoming so bloated with features that overlap fully-fledged programming languages. Yes, it's becoming more powerful but I wonder if some of this is due to an inherent "right, what can we add next?" attitude which takes it further away from its presentational role.

I also mourn the loss of a simplicity that meant that curious teenagers (like myself way back when) could look at a site's code and easily learn from it.

<comment><USER9> Well, I'm a curious teenager. Personally, I think source is somewhat easier to understand on modern sites.

The use of CSS and divs instead of tables for layouts has had an interesting side effect: most elements of a page have IDs or classes. This makes it far more obvious what they are there for without having to use a web page inspector.

That said, the continuing expansion of HTML, CSS and JavaScript APIs worries me too, but for a different reason. I'm worried that the stack will become so big that there is no possibility of new rendering engines or browsers.

<comment><USER8> Good points. I hadn't thought about the increased barrier to entry for new rendering engines but you're quite right.

</comment></comment></comment><comment><USER10> <http://dev.w3.org/csswg/css-variables/>

<comment><USER11> for posterity's sake, here is the Working Draft version, to go along with the above posted Editor's Draft link:

<http://www.w3.org/TR/2012/WD-css-variables-20120410/>

</comment></comment><comment><USER3> For those asking why, color replacement is enough to have them implemented. Once your stylesheet grows, you'll have your theme colors scattered all over the place. So having them in one place at the top and making minor changes to the theme is a great time saving feature.

</comment><comment><USER12> The spec allows the same variable to be defined multiple times, and have cascading determine which value is used.

As far as I can see this completely removes the ability to implement variables in a preprocessor (i.e. serve a style sheet with variables substituted with their values to Internet Explorer). So developers can't use the feature until it's made available on all browsers.

Consider the following code. It can't be translated back into standard CSS without knowing the DOM structure of the document it will be applied to.

        #nav { var-color: red; }
        #side { var-color: blue; }
        body p { color: var(color); }

</comment><comment><USER13> I don't understand the use of something like this. Instead of:

.selector-1{a:b;color:red;} ...hundreds of other things... .selector-2{c:d;color:red;}

someone can just:

.selector-1, .selector-2{color:red;} ...hundreds of other things...

It seems to me most cases where variables are used they are needed because of writing bad css in the first place. Use a colour only once and you only need to change it in 1 place, why do you need a variable for that?

<comment><USER14> First, I think it is inappropriate to down vote this comment as it is a valid point that you can actually solve the color problem in current CSS.

However, building your CSS in this way probably takes a lot longer to render since the selectors are expensive and setting attributes is cheap. Further, I have never seen a page of any complexity where this would make sense.

</comment></comment><comment><USER15> Maybe this is a bad practice, but I've just been using PHP inside CSS for quite a while. You may need to tweak your .htaccess to allow PHP in .css files, assuming you're on Apache.

      p {color: <?php echo $mainColor; ?>}

I did some basic testing and it didn't seem to hurt resource usage, but it wasn't a large site or anything.

</comment><comment><USER16> This guarantees that people will write programs in CSS now. And they will be horrible.</comment>


A Light in India - <AUTHOR> http://opinionator.blogs.nytimes.com/2011/01/10/a-light-in-india/ <comment><USER2> I enjoy stories like this.

\- Iteration of a product to continuously improve the system while reducing costs.

\- Realizing that a users choice can make the system more efficient (using lower wattage cfl bulbs) and _acting_ on that.

\- Second derivative waste product used to provide 500 additional jobs.

\- Realizing that once you have a customer channel open they are susceptible to additional sales of a different nature (soaps, etc).

\- Generic product improvements on the side to help manage core business (cheap smart card readers)

\- Environmental goodness

Lean product development in a lean environment. Well played.</comment>


GCC 4.8 Has Automatic Return Type Deduction - <AUTHOR> http://yapb-soc.blogspot.ru/2012/12/gcc-48-has-automatic-return-type.html

<comment><USER2> a three lines program generates 95 lines of error messages; let's throw a _template_ into it, so that it goes up to 112 lines, but look: at the beginning you'll see the error we added!

coupled with the: "To be fair, this doesn't entirely replace decltype. auto doesn't perfect forward. But it seems to work as expected, most of the time" it goes a great way to instil me a sense of safety.

not.

that post should be taken as an example of why C++ has become a liability, and the day won't come too soon when this joke on the whole industry finally gets dumped like COBOL in the nearest ditch, along with the corpses of all the projects that made the mistake of actually using it.

if it were a living thing, I'd shoot C++ in the face to put it out of its misery.

<comment><USER3> Or you can use Clang.

Feel free to shoot C++ in the face. Don't forget to rewrite most of compilers and operating systems in use in the process.

<comment><USER4> Linux doesn't use C++ and AFAIK the BSDs also don't.

So go ahead, I won't have a problem with a dead C++. :-)

<comment><USER5> Then prepare to drop GCC. Then drop whatever browser you are using and most of the cross platform compatible GUI frameworks (GTK, QT etc).

<https://lwn.net/Articles/390016/>

<comment><USER6> GTK is written in C, not C++.

<comment><USER5> Sorry was thinking of something else.

</comment></comment></comment></comment></comment></comment><comment><USER7> What many people don't understand is that C++ has at least two target audiences: (1) people writing low level libraries using templates and other esoteric stuff; and (2) people writing application code. (1) is needed because C++ is a language that can target multiple environments and operating systems. The template craziness is necessary to make the system fast and easy to use for application developers. If you are writing applications, however, you should try to use only bread and butter features, along with standard libraries such as STL and semi-standard stuff like Qt. Once you understand this, your life will be much easier with C++.

</comment><comment><USER8> I used to be c++ "guru" some years ago, but right now code like this scares me as hell. The language is getting less-used and it's a good thing <http://www.tiobe.com/index.php/paperinfo/tpci/C__.html>

How many years would you give it to stay ubiquitous? I bet on 15 years

<comment><USER9> I was just about to make a similar comment. There isn't much about C++98 I don't know, but having ignored C++11 for too long I feel utterly lost looking at stuff like this now.

What concerns me even more is that it must be pretty much impossible for a beginner to pick up C++ today.

<comment><USER10> Anyone can pick it up if they really care.

They don't need to know the complete language on day 1.

<comment><USER11> As a beginner programmer (a.k.a. CS student) I was able to pickup the basic of the language in the last 2 months and work on a real world (not a school project, it's a library that other universities use) cuda c++ project. I read a book so I have an idea of what can and can't be done, but when I need to implement something unusual (ie function object) I need to lookup it in the book or ask for help to my mentor. I still need help to understand gcc errors, cuda uses an "old" version (3.4 I think) so we don't get the improvements of the new versions.

<comment><USER10> Yes, you always need to look things up.

In the projects I take part on, with teams from 20 - 100 developers, you cannot know everything regardless of the language.

</comment></comment></comment></comment></comment><comment><USER12> You know when you get in a really fancy sports car and sit down and look at the console and go "What the fuck?" as your brain tries to parse the myriad of options relating to _everything_ that are usually highly non-intuitive and often buried under many layers of cruft and you need to sit and read the manual that's as thick as a phone book? That's kind of what C++ is getting towards.

There's a simple solution, don't touch all the fancy and extreme language features, use the core, keep your sanity. I code in C++ professionally using Qt, the last time I wrote any code using anything overly fancy was probably when I was in University. It's often not needed, it's guaranteed to make your code base a nightmare, and it's usually horrid to read back over. If you're sensible and put some constraints on what you're doing C++ is a great language choice, but often people stray into using all these areas of C++ that basically make the code an unmaintainable mess.

(note, defining core as the things guaranteed to work on 95%+ of current compilers, if it's non-standard I would really, really thing twice about using it)

</comment><comment><USER13> It'll take years before it becomes part of the spec and all other implementations will catch up. D had it for ages.

</comment><comment><USER14> I'm curious: how popular is it to use syntax that's not available in other compilers and how often do programmers regret the decision?

<comment><USER15> Coverity, maker of c++ static analysis software, and where I used to work, has published a paper about their experience trying to parse customer code. It turns out that 'The language people code in? The strings their compiler accepts'

So yes, it is quite common to use syntax not available in other compilers. Most code is vetted against only one compiler to begin with.

<http://www.stanford.edu/~engler/BLOC-coverity.pdf>

<comment><USER16> Do you use EDG or another frontend? I can only assume that parsing C++ is quite problematic especially with all those compiler extensions and the current transition to C++11.</comment></comment></comment>


Not owning a cellphone gives you time to ruminate and to rest - <AUTHOR> https://aeon.co/ideas/not-owning-a-cellphone-gives-you-time-to-ruminate-and-to-rest <comment><USER2> Why do I suspect the real reason boils down to "it makes me feel special"</comment>


March Madness live game chat - <AUTHOR> http://www.LiveCollegeBasketballChat.com Hi All, I'm the founder of http://www.LiveChatConcepts.com/sites
We've launched our 14th website today http://www.LiveCollegeBasketballChat.com for people who want to chat live during the March Madness games.
We're running a mega chat during the super sunday bracket selection prcoess ina  few hours so swing past and check it out. <comment><AUTHOR> Hi All, I'm the founder of <http://www.LiveChatConcepts.com/sites>

We've launched our 14th website today <http://www.LiveCollegeBasketballChat.com> for people who want to chat live during the March Madness games.

We're running a mega chat during the super sunday bracket selection prcoess ina few hours so swing past and check it out.</comment>


Proof that the end is near - <AUTHOR> http://www.scripting.com/stories/2008/03/30/proofThatTheEndIsNear.html

<comment><USER2> I agree with Dave. I post on my blog very occasionally because I try to limit it to mostly original content. Keep the signal to noise ratio high.

I never liked the term "blogosphere" because it seemed like the people who associated themselves with that term were the ones who have all these little meta conversations about... the blogosphere.

Of course, this post adds yet another layer to the people talking about people talking about etc etc etc. _Sigh_.</comment>


Ask HN: How to deal with first BIG client? - <AUTHOR>

You've set up your business, excited about potential new customers. You pitch to the big hitters, start a dialogue, send them a quote, and all of a sudden they say, to your horror, "Sure". Oh dear.
It's the first & largest project you've ever undertaken since going solo. You're loathed to turn the work down, but you know that this could be a sink or swim moment.
How do you deal with that first big client?
How do you manage their expectations?
Is it wrong to admit you might be out of your depth but still take the job on?
Should you break the job down into smaller parts and create a constant feedback loop? <comment><USER2> My 2c:

Only take a job if you are 100% sure you can do it.

Close a deal first. Deal is not closed until you have your contract signed.

Get and stay in touch with your champions/ decision-makers inside a company

Set realistic roadmap and deadlines. Realistic = youthinkitwilltake x ±2 (imho)

Keep communication strong and regular.

Be a nice guy, not just soulless contractor who suck money.

Work hard.

</comment><comment><USER3> Don't over promise and under-deliver.</comment>


Show HN: A simple HTML framework - <AUTHOR> https://custommarkup.ml <comment><USER2> How is this different from a CSS framework besides the custom HTML tags you're specifying on the stylesheets?

What's the advantage of using custom HTML tags and not CSS classes?

<comment><AUTHOR> If you want to use a css framwork also you can add classes to that tag.</comment></comment>


Ask HN: What do you think of this page to get more freelance work? - <AUTHOR>

This is just an idea to get some projects and freelance work and want to see what you guys think.  See the post at https://medium.com/tech-blogging/29e1dbfb0c39 <comment><USER2> You are giving up representing yourself. I find sales people always oversell.

<comment><AUTHOR> I still represent myself, I am just looking for more leads/introductions.</comment></comment>


Amazon is recruiting entrepreneurs to start delivery networks - <AUTHOR> https://www.cnbc.com/2018/06/27/amazon-is-recruiting-entrepreneurs-to-start-delivery-networks.html <comment><USER2> This sounds awful. I have had so much trouble getting packages deceived by Amazon Logistics. Sometimes they are marked as delivered but not really delivered. UPS on the other hand does a great job with my packages. If Amazon has issues with a company they directly control(Amazon Logistics), it is going to be a nightmare with a bunch of small independent contractors. See also people's issues with OnTrac.

<comment><USER3> Same here. Packet supposedly handed to resident. No, it wasn't! And the carriers have even left packages on the doorstep (London) on occasion.

</comment></comment><comment><USER4> Because Amazon has decided to leave a profitable business to others?

Or more likely, it's pushing its costs onto others. We call this a "predatory customer" where I come from.

</comment><comment><USER5> "Entrepreneurs"

<comment><USER6> More like franchisees.</comment></comment>


Programmers are not 'resources' [comic] - <AUTHOR> http://blog.codeboff.in/2010/07/13/programmers-and-recruiters-are-from-different-planets-2/

<comment><USER2> 1st slide ruins the surprise.

<comment><AUTHOR> I made this comic.

There had been no explanatory panel in the first version but I discovered after a bit of 'user testing' that unfortunately the joke carried over in the real world; a lot of people didn't know who Stroustrup was.

<comment><USER3> Maybe the 1st panel should be the last.

<comment><USER4> Definitely. That's how comics with jokes like that are usually organized. SMBC does that quite often: [http://www.smbc- comics.com/index.php?db=comics&id=1911#c...](http://www.smbc- comics.com/index.php?db=comics&id=1911#comic)

</comment></comment></comment></comment><comment><USER5> It's just a disconnect in cultures - when an old school businessperson uses the term "human resources", they don't actually mean it in a negative, malicious, or callous way. The term partially started out that way during war planning - "our natural resources and our human resources to fight the war" - but it evolved to get a positive meaning to it in the 50's and 60's. Positive psychologists would talk about how "natural resources are wasted by using them up, but human resources are wasted by not using them", and it became a pleasant term.

Think about it - almost all personnel departments are called HR for a reason; it used to have very positive connotations. The term kind of devolved as the modern corporate culture grew, and it's kind of an anachronism that a young businessman is more careful of using. I'd guess the term will completely leave usage in the next 20-40 years.

Its usage when it grew in popularity was generally understood to be a positive thing - something similar to what happened to the word "welfare", which used to have overwhelmingly positive connotations as "the welfare of the people." Now welfare is out, social safety net is in. Likewise, human resources is gradually being replaced; actually, the main reason it's hanging around is probably because there isn't a really clear alternative term for "all organizationally-yet-not-operationally-focused personnel decisions."

<comment><USER6> > It's just a disconnect in cultures - when an old school businessperson uses > the term "human resources", they don't actually mean it in a negative, > malicious, or callous way.

Oh absolutely not, they don't mean anything bad by handling people as they handle objects. They just don't give a damn.

Is that supposed to make those considered objects happy?

I will note that, in my experience, the only people to ever defend calling people "resources" are managers.

> Now welfare is out

How? Where? Apart from fox news, I haven't seen welfare as being "out".</comment></comment>


DRM for textbooks could be good for students - <AUTHOR> http://www.baeronline.com/2008/07/26/textbooks-next-to-try-drm-raises-prices-for-students-by-a-lot/

<comment><USER2> The conclusion that DRM could be good is based on the assumption that a DRM'd textbook would be priced at $25 compared to $209.95. The same article that draws this conclusion says the current price for a DRM'd e-book version is $109.99. It's also worth mentioning that the title of the article is "Textbooks next to try DRM - raises prices for students by a lot!". What the heck is the author trying to say? The title and conclusion are polar opposites. Furthermore, the conclusion is based on completely made up information. This is simply ludicrous.

I suppose in some fantasy world where DRM is used to allow for per-semester rentals of textbooks at a drastically reduced price it would be a good thing, but we all need to understand this will never happen. The entire point of DRM as it's used now- and how the textbook publishers propose to use it- is to enforce old and broken business models, not to enable new ones. As markets change and as new technologies become available the value to price ratio of certain goods will fluctuate. A low value to price ratio promotes piracy. DRM is only a means to avoid adjusting to these changes.

</comment><comment><USER3> The headline isn't what the author concluded.

<comment><AUTHOR> Read down to the end of the article =)

If DRM is priced competitively to the cost of "renting" a used book, then DRM could work.</comment></comment>


Optimizing Hash-Array Mapped Tries for Fast Immutable JVM Collections (2015) [pdf] - <AUTHOR> https://michael.steindorfer.name/publications/oopsla15.pdf <comment><USER2> The author presented a talk about this at the JVM Language Summit last year: [https://www.youtube.com/watch?v=pUXeNAeyY34&list=PLX8CzqL3Ar...](https://www.youtube.com/watch?v=pUXeNAeyY34&list=PLX8CzqL3ArzUY6rQAQTwI_jKvqJxrRrP_&index=4)

Github repo for those interested: [https://github.com/usethesource/capsule/](https://github.com/usethesource/capsule/)

<comment><USER3> Interesting talk in a way but god the amount of wasted neurons from java-like OOP.. all this to xi..xn,yi...yn instead of xi,yi...,xn,yn ..

</comment></comment><comment><USER4> What is the real world use case for a HAMT data structure? Tree based associative arrays (like c++'s std::map) tend to have poor real world performance

<comment><USER5> More efficient (in both CPU and memory) immutable/persistent collections, which have the advantage that they're intrinsically thread-safe. They can also be used to implement lock-free concurrent maps (Ctrie)

> Tree based associative arrays (like c++'s std::map) tend to have poor real > world performance

That's something HAMT significantly improve upon. You're not going to get linear performances out of them but basic operations are generally O(ln N) where N is usually 32.

<comment><USER6> Is there any research on the tradeoff between this kind of thread safety and the penalties incurred on the memory management side (specifically the fact that now you have far more heap allocations with immutable data and they have to synchronize too)?

<comment> joe-user I don't know of any formal research, but in Clojure, where HAMTs are a fundamental part of the language, the philosophy is more oriented towards paying for things (such as thread safety) with memory and CPU first, benchmarking to find bottlenecks second, and if there are any bottlenecks, optimizing accordingly. It was written with this in mind, which is why it requires world-class VMs like the JVM, CLR, and V8/JSC/SpiderMonkey/etc. that can deal with the GC and (in many cases) make runtime optimizations.

Also, I'm fairly certain synchronizing isn't an issue because there's nothing to synchronize on since the data structures are immutable. Am I understanding you correctly?

<comment><USER6> > Also, I'm fairly certain synchronizing isn't an issue because there's > nothing to synchronize on since the data structures are immutable. Am I > understanding you correctly?

No -- I'm referring to synchronization on the heap itself (think new()/delete()). Multiple threads allocating memory need to synchronize in order to avoid trampling on each other. You can't just get rid of synchronization entirely.

</comment></comment></comment></comment></comment><comment><USER7> So would this be a good structure to store the recently discussed password hash dump, basically a fixed set of 300 million SHA1-sums where the only interesting operation is checking if the sum is or is not contained in the set?

<comment><USER8> It would probably be better to use a trie directly, maybe a radix trie or a b-trie.

</comment></comment><comment><USER9> Does this add something that the Clojure implementation doesn't?

</comment><comment><USER10> I wish the paper carried a GitHub link to the repo of reference implementation.

<comment><USER11> Indeed, wasn't easy to track down:

[https://github.com/msteindorfer/oopsla15-artifact](https://github.com/msteindorfer/oopsla15-artifact)

Still trying to find out if there's a video of the OOPSLA15 presentation.

<comment><USER11> Some commentary on a blog, that I encountered along the way: [https://blog.acolyer.org/2015/11/27/hamt/](https://blog.acolyer.org/2015/11/27/hamt/)</comment></comment></comment>


Is Hacker News just for YC startups or is everyone invited ? - <AUTHOR>

just a doubt that i had looking at the post on allowing job posts by other startups <comment><USER2> Everyone seems to be invited. I enjoy it :) Great crowd.

Job posts are just for YC startups, afaik.</comment>


Ask HN: Licensing Question – MIT on Top of GPLv3? - <AUTHOR> I am not a lawyer and respect those who are.
I oversee an open source project, https://github.com/westonplatter/phashion.
A person recently asked (https://github.com/westonplatter/phashion/issues/68) if the project needs to be licensed per GPLv3 to match the phash source code license, which is "included" in the library. By included, I mean that the ruby gem actually carries a copy of the phash source code in the source code. Said differently, phashion does NOT reference a locally installed version of phash.
My question, in order to legally adhere to the phash GPLv3, should I change the license to GPLv3?
PS - I will view all comments as opinions, and do expect them to embody or be intended as legal advice. Just looking for second person's perspective. <comment><USER2> What I know about this is from 10 years ago. It's one of the "Twenty questions about the GPL" listed at [https://jacobian.org/2009/jul/13/gpl- questions/](https://jacobian.org/2009/jul/13/gpl-questions/) .

One of the responses is at [https://gist.github.com/Neurogami/146713](https://gist.github.com/Neurogami/146713) :

> "Unfortunately all the FSF can provide on a number of these questions is > their opinion on the matter. Having spoken with the Software Freedom Law > Center about the import issue recently the reality is there is no answer to > some of these questions because no one has ever taken them to court."

The HN thread about those 20 questions is at [https://news.ycombinator.com/item?id=702304](https://news.ycombinator.com/item?id=702304) .

My view is to follow the intent of GPLv3 and either make your package GPLv3 (though you can leave the copyright to your own code as MIT), or remove the GPLv3 package.

</comment><comment><USER3> A lot of people want to treat copyright licenses as code, but law doesn't work like that. The question is what a court/judge would think about the work as a whole and how it functions.

If you gave a non-technical person a copy, would they look at the project as a single work or two work that simply interact with each other. If it is the later and you think that is what most people would interpret it as, then no need to change the license. If not then you should change the license as what you got is a combined work which GPLv3 has specific requirements for.

</comment><comment><USER4> GPL is "viral". If your code has inside a copy (perhaps with some modifications) of a project that has the GPL license, then you must use the GPL license for the whole project. [https://en.wikipedia.org/wiki/Viral_license](https://en.wikipedia.org/wiki/Viral_license)

That is the reason why some people love the GPL license.

That is the reason why some people hate the GPL license.

</comment><comment><USER5> Yes. The license is GPL not LGPL so there is no other way to interpret the situation.

Even if you use locally installed version of phash library, you still must license under GPLv3. They way the library package is installed has nothing to do with the license you must choose.

</comment><comment><USER6> Vivaldi is BSD with GPL Chromium code.

<comment><USER5> Chromium is multi-licensed. None of the code is exclusively GPL as far as I know.</comment></comment>


How big are PHP arrays (and values) really? - <AUTHOR> http://nikic.github.com/2011/12/12/How-big-are-PHP-arrays-really-Hint-BIG.html

<comment><USER2> As the author mentions, if you run into a use-case where you need to store 100000 integers in memory, then you should use one of the many alternative structures available. Some of them were explicitly designed to store integers in an efficient manner. Arrays weren't designed to store integers efficiently or anything else for that matter. They were designed to be fast and easy to use.

<comment><USER3> I wouldn't call using 56 bytes to store 8 bytes of actual data efficient.

<comment><USER4> That'd be why he said "arrays weren't designed to store integers efficiently".

<comment><USER5> From the comment:

> then you should use one of the many alternative structures available. Some > of them were explicitly designed to store integers in an efficient manner.

From the article:

> But if you do want to save memory you could consider using an SplFixedArray > for large, static arrays. ... It basically does the same thing, but if you > run it, you'll notice that it uses "only" 5600640 bytes. That's 56 bytes per > element ...

EDIT: formatting.

<comment><USER2> That is only one of the alternatives and in my opinion, not a very good one. I forget the exact details, but there is an extension by the guy who wrote igbinary that is specifically designed for this use-case.

</comment></comment></comment></comment></comment><comment><USER6> Did anyone else even try running his suggested code? I think maybe he has a problem with his setup. I don't get those numbers.

      My numbers for PHP 5.3.8:
      Windows 7 -
      8524568 bytes (using range)
      3600584 bytes (using SplFixedArray)

      Fedora 14 -
      7724600 bytes (using range)
      3200568 bytes (using SplFixedArray)

*edit - Added numbers for SplFixedArray

<comment><USER7> Yep, I already got some comments on that. You are either using a 32 bit system or a 32 bit binary (at least I think that the binaries PHP distributes for Windows are compiled for 32 bit, so even if you are on a 64 bit Windows you'll still get 32 bit numbers).

The Windows number still is 8 bytes per element larger than the number I wrote (76 per element). This might have various reasons, one could be that it was compiled with head protection :)

<comment><USER6> Ah. Yes. I think you're right. I think PHP is still complied for 32-bit on Windows. That makes more sense.

</comment></comment></comment><comment><USER8> > A union is a means to make some value accessible as various types. For > example if you do a zvalue_value->lval you'll get the value interpreted as > an integer. If you use zvalue_value->ht on the other hand the value will be > interpreted as a pointer to a hashtable (aka array).

This is not valid C usage of unions. They are _only_ for use as a method to save space, not for conversion between types, despite it being a very common usage of unions.

This can cause all manner of problems when compiler optimizations such as type-based alias analysis are used.

EDIT: Turns out I'm completely wrong on this and it's fine from C99 onwards.

<comment><USER9> Actually, the upcoming C1X standard makes type punning via union legal. In C99, alias analysis works behaves exactly as you said, but using unions to convert between floats and ints is so common that it's legal in C1X, VC++, and I believe gcc.

<comment><USER10> Type-punning through unions is already legal in C99, but there's a known error in Annex J, listing it incorrectly as unspecified behaviour.

See <http://stackoverflow.com/a/8513748/48015>

<comment><USER8> I stand corrected :/

<comment><USER10> Don't feel bad about it - the C standard can be quite subtle, and I've been known to spread lies about it as well.

Things about which I have stumbled somewhat recently:

* restrict-qualified pointer-to-const parameters do not guarantee that the pointed-to object won't be modified as restrict only applies if the pointer is actually used to access the object, which calling code can't know (ie restrict only enables optimizations in the called code and not reordering in calling code)

* functions with differently qualified, but otherwise compatible parameter types have compatible type (which is only mentioned in the last, parenthesized sentence of section 18.104.22.168)

</comment></comment></comment></comment></comment><comment><USER11> Has anyone run similar tests on the soon-to-be-released PHP 5.4? From what I understand, one of the changes in that release is reduced memory consumption. Andi Gutmans has said that PHP 5.4 could lower PHP's memory footprint by as much as 35%.

<comment><USER7> I actually did most of my tests with PHP 5.4 and trunk binaries, but also tested PHP 5.3 and the numbers didn't change. PHP 5.2 used 8 bytes less, because the circular GC was introduced only in PHP 5.3.

By the way, you can test that yourself too. The codepad I posted the same on has a switch for PHP 5.2, 5.3 and 5.4, so you can easily see for yourself :)

</comment></comment><comment><USER12> Interesting. Wonder how this compares to python and ruby memory handling.

<comment><USER13> Since PHP arrays are within a factor of two for the theoretical optimum for a dynamically typed language that unifies arrays and hashes, all these languages (add javascript to the list) should have roughly comparable behaviour unless they do some ugly special casing for hashes where all keys are integers. [edit: see the comment by InfernalH for a measurement that indicates that ruby seems to do this.] You have to look that up in the relevant documentatio and/or source code. Perl on the other hand should fare better, as it distinguishes arrays and hahes. If you want performance, use a real programming language.

<comment><USER14> Python and Ruby both have separate arrays and hashes. They're completely different data structures in both cases.

Python's _dict_ type is a hash table like you'd expect. Python's _list_ is a pointer-array-backed list. (it may inline ints/similar things--I don't remember if CPython does, and exact details are implementation-dependent), and raw arrays are in the standard library if you need them.

From a very quick check, a list of 100k ints in CPython is ~1.5mb, and a dict of 100k ints -> other ints is ~6mb.

Ruby's _hash_ and _array_ implementations are similar, I think, although I don't know Ruby as well, so I don't know the specifics.

<comment><USER15> Good info about Python, but you are incorrect about Ruby. Hashes and arrays are totally different in the Ruby implementations I know of.

EDIT: Sorry, I misread you. Ruby MRI and CPython are indeed similar.

At least in Ruby MRI (the mainline) arrays are implemented as a struct with a size and a pointer to a normal C array which contains the object references (references in MRI are pointers to object structs which use the lower bits to inline integers of <= 31 or 63 bits, true, false, nil and symbols).

Hashes in MRI I have not looked that much into but I believe they are a hash tables which in ruby 1.9 retain insertion order using pointers like a singly linked list.

<comment><USER16> > Good info about Python, but you are incorrect about Ruby. Hashes and arrays > are totally different in the Ruby implementations I know of.

From its context, I'm guessing samdk is saying:

> Ruby's hash and array implementations are similar [to Python's dict and > list]

not that they're similar to one another, which would make absolutely no sense considering his comment starts with:

> Python and Ruby both have separate arrays and hashes.

so I'd say you agree with him and misread his comment.

</comment></comment></comment></comment></comment><comment><USER17> What does memory_get_usage() actually do ? Does it report the "heap" size assigned to the process, or does it use PHP internal counters for the allocated user data/variables ? A C malloc subsystem will assign a whole lot of virtual memory, in steps of pages, or more if it decides to attach a piece using mmap().

In order to make this test case relevant, I'd say one have to know what memory_get_usage() does - it's at least meaningless to determine the overhead of an array based on it, if for whatever reason creating the 1. PHP array in a program also initializes "big" memory pools that count towards the memory usage.

<comment><USER18> This is easy to check in the source. memory_get_usage() calls zend_memory_usage(), which accesses the size field on a global structure mm_heap, which is updated by PHP's memory allocation system (e.g. if you call *_zend_mm_alloc_int)

<comment><USER19> I was debugging a php memory issue yesterday, and noticed that at some point my get_memeory_usage() value became much, much smaller than the memory footprint recorded by top (20 MB in get_memory_usage(), 500 MB in top RES). It was a sudden jump during a loop execution according to top. Does top give accurate memory estimates for php scripts?

</comment></comment></comment><comment><USER20> A coworker just pointed me to: <http://us.php.net/SplFixedArray>

</comment><comment><USER21> php is not unique in having big memory footprint. AFAIC Python and Ruby are also memory hogs. An interesting question is how memory efficient a dynamic PL can be. Given that in modern computers memory access (cache misses) is fairly expensive it probably makes sense to trade instructions for memory.

<comment><USER16> > AFAIC Python and Ruby are also memory hogs.

Even more so in some areas, for instance a Python `int` is not a machine integer but a full-blown object.

<comment><USER22> It's only _always_ a full-blown object in CPython. Smarter implementations, notably PyPy, will do escape analysis, and never actually end up allocating those objects.

(My point is that not having unboxed types does not imply being a memory hog. You just need a smarter implementation.)

<comment><USER16> > Smarter implementations, notably PyPy, will do escape analysis, and never > actually end up allocating those objects.

Objects in a collection (which is what we're talking about here) escape kind- of by default.

Until type-specialized collections are merged in PyPy (if they are not yet), it'll have the same issue as CPython.

</comment></comment></comment></comment><comment><USER23> PHP arrays are not really arrays, they are sort of hash-maps.

You can do things like

        $arr = array(1 => 10, "1" => 11);

Or even

        $arr = array('他妈的我的生活' => 5);

But at the same time you can treat them as regular zero-based arrays.

        $arr = array();
        $arr[] = 1;
        $arr[] = 2;
        $arr[] = 3;
        $arr[] = 'dog';

<comment><USER24> It's funny. I don't have much experience with php, and I had to actually run your last example to know that it appended the values (instead of recreating the array with a single value each time).

Is there an append operator, or something more explicit ? '+=' seems to do something strange..

<comment><USER25> [] IS the append operator. And += only works right if both sides are arrays. If not the right side will be converted. += is really intended for hashmaps, not integer indexes, for those use [].

<comment><USER26> += does union-by-key: any keys present in the right array, and not in the left, are appended to the left.

`array_merge` will append _all_ numeric keys from the right array to the left, under new key values, as if you used [] one-by-one; for string keys, _all_ keys from the right are copied into the left, possibly overwriting what was there.

In real code, I either have all-numeric or all-string keys, and `array_merge` does what I want in bulk operations: it's essentially equal to Python list.extend and dict.update, respectively. `+` on arrays is basically useless for me.

</comment></comment></comment></comment><comment><USER27> I'm kinda hijacking this thread because I always wonder how to handle vars in PHP. Should we use short named vars like $a, $b? Should we avoid always using the same var and changing its type? $a = 30; $a = "thing";

<comment><USER25> Someone downmodded you for being offtopic, but I'll answer you anyway.

The name of the var doesn't matter at all. And you can change the type of a var at will. There is nothing at all in PHP that will be better if you avoid changing the type, so just do what is clearest for your program.</comment></comment>


Speech an Indian administrative officer gave at a Women's Day celebration [pdf] - happy-go-lucky https://github.com/srigalibe/inspiration-for-IAS-aspirants/blob/master/Speech_by_Smitha_Sabarwal_IAS_ver2.pdf <comment> happy-go-lucky This is a transcript of the video: [https://www.youtube.com/watch?v=t1jwf2dMoc0](https://www.youtube.com/watch?v=t1jwf2dMoc0)</comment>


Working on a single page search engine, DDG inspired (no data collection) - <AUTHOR> http://select.ly I'm working on a single page style search engine that allows you to get a result set all on a single page, (videos, web, news, social, images etc...), It's still early alpha and very buggy. DDG inspired (we don't collect personal search data) <comment><USER2> This is awesome, I love it! may I ask what is the technology behind it?

<comment><AUTHOR> PHP/ MySQL we're using some Python for some backend processes some of the results we're pulling from APIs but we are working on our own crawler that we'll mashup with other data to make better results...

</comment></comment><comment><AUTHOR> (iPhone native version + mobile web version coming soon too)</comment>


Rooms irc app removed after 4 minutes in app store - <AUTHOR> http://www.roomsapp.mobi/blog/2010/07/worst-review-evar/ <comment><USER3> The whole story is very skimpy on details but it seems this guy is trying to pull off quite a bit of hacky and "clever" tricks (I'm gathering this from the posts about two previous rejections). Considering this, this doesn't seem to be as frivolous act of Apple as it is made to be.

On top of this, the complaint that Apple do not respond doesn't ring true with me. In my experience, at the very least in the past 6 months Apple have become very prompt in responding, especially to rejection issues, and have provided a contact phone number to further expedite the process.

To me this looks like some guy venting his frustration that Apple are calling his bluffs and is a good excuse for people to gratuitously bag on Apple.

<comment><USER4> The updates on a linked article[1] seem to point to his distribution credentials having expired.

1) [http://www.roomsapp.mobi/blog/2010/07/roomspulled-from- store...](http://www.roomsapp.mobi/blog/2010/07/roomspulled-from-store/)

<comment><USER5> Your reading of that article isn't accurate. His distribution provisioning profile (basically his name, address, phone, etc) expired. All he had to do was go in and (for some unknown reason) just save his profile again to "renew" it. You'd think he'd get 5 emails that his profile was about to expire (why expire at all?).

</comment></comment></comment><comment><USER6> At this point, anyone who develops an iTunes app is bringing this on their own head. Apple's arbitrary stupidity is a _known risk_. If you don't want to get bit, then don't play with the pit bull.

<comment><USER7> It seems the developer just let his 1 year distribution certificate expire. This is really careless on his part and blame should not be automatically placed on Apple.

If you distribute a web app using SSL, and let your Verisign certificate expire, are you going to complain that Verisign is unfair because now your customers are getting security warnings/errors in their browsers?

<comment><USER5> False. He did not let his distribution certificate expire - his "distribution provisioning profile" expired.

Read this carefully: [http://www.roomsapp.mobi/blog/2010/07/roomspulled-from- store...](http://www.roomsapp.mobi/blog/2010/07/roomspulled-from-store/)

<comment><USER8> Sounds like he set up a provisioning profile early on and hated the process so much he just kept using the same one for his final project.

</comment></comment></comment></comment><comment><USER9> That really sucks, but it is the risk you take when you allow someone else a say in the operation of your business. If you want to have a solid income stream you'd do well to stay miles away from walled gardens where some flunky behind a desk can destroy your business with a click of their mouse.

<comment><USER10> Indeed. Port it to Android and make a bunch of money there. Or in Nokia's OVI store.

<comment><USER11> Bad advice... The money on Android is terrible compared to iPhone. I know this from continuing experience.

Anyone doing mobile and wanting to bootstrap needs to do iPhone first.

<comment><USER12> I think that was his point. iPhone is where the money is (for the top X developers).

</comment></comment></comment></comment><comment><USER13> Maybe its because I've contributed to Mobile Colloquy (Rooms' competition), but, I can't bring myself to be pissed off here. The guy actively ignored his app for periods at a time. That his certs expired at some point isn't surprising. And then he proceeds to abuse APIs in a way that Apple has specifically said not to do. And acts surprised at rejection?

You know what? We had the _exact_ same issues when working on Mobile Colloquy. We managed to figure out a way to not get removed from the app store. And we're BSD! All he had to do was copy what we did (yet again; Rooms' core is based on Colloquy's Chat Core)!

</comment><comment><USER14> Did anyone honestly believe that use of the VoIP in background API was going to be allowed for non-VoIP stuff, though?

Having said that, the rest of the story seems conflicting and with confusing back-and-forth.

<comment><USER15> The NPR application appears to be using it to stream audio which is not strictly VOIP.

<comment><USER16> There is a separate mode for background audio, pandora uses it

<comment><USER15> I thought this was playing audio not streaming it. A streaming app would need both background network access and the ability to play audio in the background. See the Background Audio section at [http://developer.apple.com/iphone/library/documentation/iPho...](http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH5-SW4). It is not clear here that network access is permitted. Being vague in the permitted application functions for each mode makes it difficult to know what exactly os permitted.

<comment><USER17> It's completely clear that network access is permitted because Pandora uses it, which is the app everyone thinks of when they think background audio. It also works for Rdio and many other apps.

</comment></comment></comment></comment></comment><comment><USER18> I can't tell if the programmer was using the VoIP mechanisms to allow the app to run continuously in the background, though it does look that the programmer was attempting that. Apple isn't going to allow continuous background. If your application needs that, then that's likely best an Android application and not an iOS application.

And this comment: "It's just not possible to tell them to hold the chatline, send a Push Message, and resend the text to the app when it comes online…"? That's arguably less of a limit, and more of a potential opportunity. Why not create the servers necessary to do that; to allow off-line IRC, and deliver via push? There are folks already using a similar scheme - bouncers - to do that with existing IRC clients and servers, after all. Package that and sell it, and (if your end-user agreements are clear about the potential for dual- use of the servers) package and sell the feed, too.

<comment><USER13> _Why not create the servers necessary to do that; to allow off-line IRC, and deliver via push? There are folks already using a similar scheme - bouncers - to do that with existing IRC clients and servers, after all. Package that and sell it, and (if your end-user agreements are clear about the potential for dual-use of the servers) package and sell the feed, too._

We considered running a service like this for Mobile Colloquy. We ultimately decided that it wasn't worth doing. Too many different IRC networks out there, too much potential for abuse. This page is slightly out of date, but explains our reasoning for not running a bouncer service on our own: <http://colloquy.mobi/push.html>

Instead, we host a push server and let people use a bouncer that they host on their own for push. There's support for ZNC, Colloquy and irssi. Plus an SDK- type thing, so any other bouncer with a plugin system can, in theory, work.

</comment></comment><comment><USER19> He really needs to calm down. The tone of his blog posts on this, while understandable, is not conducive to a good business relationship.

</comment><comment><USER20> As much as this all sucks, it just seems like a reviewer clicked the wrong button. "Whoops, undo".

</comment><comment><USER21> I'm finding it really hard to be sympathetic after hearing so many of these kind of stories.

There's no way in hell I'd develop anything for iOS while the only way to distribute is via the app store.

I have some serious cognitive dissonance going on though; I have an iPad, and it's great. I'm glad people do run the app store gauntlet so I have nice apps to play with.

</comment><comment><USER22> The first iPhone app I submitted got rejected for having "minimum user functionality". I resubmitted it, and it got approved. I'm not saying that this will necessarily work in your case, but it might be worth a try. Sometimes approval/rejection is simply a matter of which person is looking at the app.

</comment><comment><USER23> How could he not know that this is what is going to happen when you develop for the Apple store? I mean the first few times, one could understand it - <USER2> assume others are reasonable - but this is story number, what 30?

<comment><USER24> If this is story 30, and there are 225k apps in the App Store (<http://en.wikipedia.org/wiki/App_Store>), then you have a 0.01% chance of this happening. So it's understandable that the author didn't know that this is what was going to happen.

</comment></comment><comment><USER25> Huge market, single point of distribution with known history of 'complicated' app validation. I feel bad for the developers in the same way I feel bad for people that lose in the final stages of a poker tournament. Its not always the quality of your app or idea, but sometimes its just luck.

With the recent ruling reinforcing the legal standing of jail-breaking a device to load applications, does that mean that third party application market places are also legal? I know there has been some debate about that, would be an interesting spot for someone to consolidate a multi platform app store.

</comment><comment><USER26> removed from sale, sometimes happens when you change the app languages or app world store availability. check to go to app country availability and select all countries

</comment><comment><USER27> As the creator of typefrag pointed out... once you rely on a platform as part of your business model, you take that platform ugliness and all with you. Don't like it? Don't develop for the app store. There is no better way to protest than to not support them. But we all know the allure is all too much for developers and they will eat apple's cake at any price.

</comment><comment><USER28> Absolutely disgraceful treatment of a very reasonable person.

</comment><comment><USER29> Man, this is depressing. As are Apple's terms for the iPhone/iPad store. I'd advise anyone who wants to develop for the iPhone/iPad to stop dealing with iTunes, distribute their work themselves (free and open source) and invite people to jailbreak their products in order to install it.

<comment><USER30> And lose out on whatever chance they had of making a decent profit? I doubt that this jailbreak ruling is going to result in a spate of common-joe iPhone hacking.

<comment><USER29> I agree it's not ideal profit-wise, and neither do I expect every iPhone user to be interested, let alone technically savvy, enough to jailbreak their iPhone. But I find the fact that the executable won't be free even if my source code is (and I don't mean free as in "free of charge" - people deserve to get paid for their work and then some) a farce, at best.

<comment><USER31> How is that a farce? The distribution model of the App store has been clear from the start... It's take it or leave it - but depending on jailbreaking for a mass market app is clearly not going to work.</comment></comment></comment></comment>


Hacked Sony Emails Will Change the Way You Look at Snapchat's CEO - <AUTHOR> http://www.inc.com/business-insider/leaked-emails-show-snapchat-CEO-s-business-savvy.html?cid=sf01002

<comment><USER2> If the people who wrote these emails don't approve of them being disseminated publicly, then I don't think people in the news should be doing so.

Private / corporate email is not the same as government ( which should have high transparency ). This is not like wikileaks. There is no moral obligation to share stolen Sony data.

My request to the hacker news community: Please stop posting links to people illegally posting stolen Sony data.

</comment><comment><AUTHOR> To me, this article seemed more like a PR text promoted by Spiegel himself (turning an incident into an advantage), than a violation of his privacy.

I've read many articles in the past that teased him or called him a "dick". This particular one is simply on a different level. I really respect his opinions on the new mobile market, and how he values to be a revenue generating company, contrary to the companies Snapchat was competing against at the time.

</comment><comment><USER3> More proof that as as society, we don't care about privacy. Let that sink in for a minute. Especially when you feel your privacy violated....

</comment><comment><USER4> Oh brother. Why not just get it over with and have a ticker-tape parade for the guy. Wow, are we hurting for news or what.</comment>


FreeBSD on the Lenovo Thinkpad - <AUTHOR> https://www.davidschlachter.com/misc/t480-freebsd <comment><USER2> Please stop cargo culting all the loader tunables and sysctls you've seen :) You need approximately zero i915 related ones because they're enabled by default just like on Linux. You especially don't need both drm.i915 and compat.linuxkpi copies. (The former is for older drivers, the latter is for new ones)

Also moused is not a great way to use a touchpad. At least on 12-stable (idk if it made it into a 12.x-release) EVDEV_SUPPORT is enabled out of the box, so you can just set kern.evdev.rcpt_mask=12 and get proper evdev events, separately for the trackpoint and touchpad, with full gesture support on the touchpad.

And since you like i3, might want to try Sway – HiDPI is much better supported on Wayland ;)

<comment><USER3> This is why I won't use open source for a desktop anymore. It's so convoluted and changes so often that I have to constantly keep track of multiple kernel and userland systems in order to know what tweaks I _don 't_ need to make.

"Don't use the faffle-fille.123456 tweak, that's for the 2016 driver; the 2019 driver inherits the booble-babble hack from the nzudzu core. Also, the 611-double-decker-dev release added FOO_MANCHU support so you just need the abcdefghijk=999 argument to set up all the things you would expect to work by default."

I just want to pay someone to make my computer work the way it's designed to.

<comment><USER4> If you are hinting to proprietary systems in your last sentence, you can go ahead and pay someone to lock you into their ecosystem. This is how Free Software works and I wouldn't have it any other way. People work on their own and bring it together into one whole system, and that can cause incompatibilities. However lock-step design is also one of the key ways to destroy innovation. If you lack the desire to learn how to configure your system, then you will probably not want to use a Free system. That's just how it is.

<comment><USER5> I hope this doesn't sound rude, but that is exactly why desktop Linux and friends are a piss-poor experience compared to their proprietary counterparts.

There is a negative feedback look here. With enough of that kind of "customization freaks only, casuals need not apply, enjoy your non-innovative proprietary shitware" talk, user bases stay small and niche, people get alienated, and don't contribute to or use free OSes.

It's perfectly reasonable to want to trade customizability for usability. Chasing people who think that away from free software helps nobody.

<comment><USER2> There's plenty of free polished out-of-the-box experiences, from Ubuntu/Mint/elementary/whatever to _hardware_ from Purism and system76.

There's definitely some "customization freaks only" assholes on the internet too, but…

very very often, it seems like some people perceive _that_ when a non-out-of- the-box OS just _exists_ and people like using it just _personally for themselves_.

<comment><USER5> There is definitely progress here since the early '00s. However, there's a very long way to go until even the most polished home-user Linux distros approach the level of usability (and supportability, even more critical) of proprietary OSes for non-power-users.

And I wasn't trying to paint everyone who wants to tinker with the same "gatekeeping" brush, sorry if I came off that way. GP equated proprietary software with "pay[ing] someone to lock you into their ecosystem" and "destroy[ing] innovation", and ended with

> If you lack the desire to learn how to configure your system, then you will > probably not want to use a Free system. That's just how it is.

That's the sentiment I had trouble with. Not the existence of knobs (which should continue existing! Just with better tuning experience for casual users, and saner defaults).

</comment></comment></comment></comment></comment></comment><comment><USER6> Would this be considered the standard amount of things someone would need to work out to get a bsd laptop up and useable?(or are there more preconfigured images?) Are Thinkpads best for support?

<comment><USER7> As someone who's just (last week) started to get Arch Linux up and running on a T490 I would assume that: Yes, this is _at least_ the amount of things you need to do but if my experience is any indication this is only like 10% of it.

Most of the things in Thinkpads work but not all (notably the latest WWAN LTE Modems don't have support).

I could write up my experience if there's interest.

<comment><USER8> I just set up a new laptop with fedora because I figured Arch would be too much effort. Is it really that easy to get running? I figured with arch when you run into an issue it must be much harder to fix than fedora or ubuntu. I just want to open up an ide, terminal, and a browser but arch seems to be a whole hobby in itself.

<comment><USER9> If you like to tinker for hours, Arch. Otherwise Manjaro, which works out of the box and still gives you the benefits of Arch.

<comment><USER10> Manjaro is strictly worse when it comes to the quality of software.

I wouldn't agree that installing Arch is that big of a hassle - yes, you don't a nice menu based installer, but really, after setting up all of your partitions, installing the root filesystem, adding a user, and installing some packages, and installing hte bootloader, what else is there to do? To be fair, the install process has become easier over the years, as things like timezones and locales are becoming easier to configure due to systemd. But I must concede, if you've never partitioned a drive manually, or added a user, you'll want to take your time. And I always read the wiki's install instructions anyway. And whilst this does mean that there's a bit more complexity associated with setting up Arch, if you're using installing a non-standard OS on your hardware, the knowledge you gain will by doing so will almost always turn out to be useful in some way. As far as tinkering with it, I've never had to explicitly tinker with exotic configs to get my hardware to work as good or better than it would on Ubuntu, and to get my exotic config requirements to work is far easier on Arch than it is on Debian, Ubuntu or Fedora. Manjaro is so broken that I can't even boot the gnome installer on a VM. Besides, it's far easier to manage my machine if there's no auto-updater grabbing a lock on my package manager on for the first 15 minutes of a boot, every boot (looking at you Fedora), or having an update process that may leave you with a severely outdated kernel even though you jumped through the hoops to get a recent kernel (Looking at you Ubuntu 16.04 LTS).

<comment><USER9> > Manjaro is strictly worse when it comes to the quality of software.

I haven't made this experience with Manjaro on several systems.

Setting up Arch isn't just about partitioning and adding a user. That's trivial stuff that I'm simply not talking about. Though somehow Arch's documentation has become significantly worse for complete newbies ever since they got rid of the new user's guide and you end up having to read a bunch of utterly irrelevant stuff in order to find the magic incantation that actually works (and no, it doesn't actually explain anywhere why it works the way it does).

I've had to do tons of messing around with settings just to get Arch working properly on different systems. I had problems with resume working properly on my Thinkpad for forever, and less decently supported systems had more issues. I'm just not that kind of user anymore and I don't want to be my own tech support. I have enough to juggle in userland pertaining to my actual job that I simply do. not. want. anything going wrong that I'll have to dig into some obscure config file somewhere to fix.

Manjaro gives me most of the benefits of Arch without having to waste my time with setting up an Arch system just perfectly so it simply works. I have access to the AUR and I have reasonably up-to-date packages (and I do run unstable on my laptop, which usually works fine).

Some people just want to use Linux, not _live and breath_ Linux, and this constant resistance against users who don't want to wade knee-deep in config bullshit is completely infuriating.

You run Arch. Successfully. Congratulations. You're better than everybody else.

<comment><USER10> I never tried to imply that running one distribution implies any kind of supremacy, so I do apologize if I came across like that. My opinion that Manjaro provides bad software stems from two things - my short experiences trying to set it up to test userland things that did not work correctly on Manjaro and a significant amount of bug reports coming in from Manjaro when compared to other distros. But this being Linux, it's feasible that you've had a much better experience with Manjaro, and since I don't have any good statistical data about the bug reports I am aware of, I'll concede that is is just a fluke. However, the packages do seem to lag behind by quite a bit. I'll have to disagree that the current installation wiki is worse than the beginner's guide - it might containt irrelevant things, but that is only because there isn't one correct way to install Arch, and most of the duplication stems from different filesystem setups and different bootloaders. It's not meant to be read as prose, but the original beginners guide wasn't either, since it too had a lot of duplication of steps to deal with the multiplicity of installation options.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Things like these are still the reason I am not switching away from Mac OS

<comment><USER12> Congrats, now you literally can't switch away from macOS! Thanks for the new T2 chip you can't use native Linux/BSD (anything other than Windows and macOS.)

UEFI is fine booting a third party OS when SecureBoot is disabled BUT the T2 chip blocks accessing the internal storage from those OSs [1][2]

[1] [https://www.reddit.com/r/linux/comments/a4thsc/the_actual_fu...](https://www.reddit.com/r/linux/comments/a4thsc/the_actual_full_story_about_apples_t2_chip_from/?utm_source=share&utm_medium=ios_app)

[2] [https://twitter.com/LinusTech/status/1067232394934083584](https://twitter.com/LinusTech/status/1067232394934083584)

<comment><USER13> T2 chip doesn't block access, Linux just didn't have a suitable driver ("It's not NVMe compliant, hence it won't work with the in-kernel NVMe driver" [https://bugzilla.kernel.org/show_bug.cgi?id=202567](https://bugzilla.kernel.org/show_bug.cgi?id=202567)). There's a kernel patch to make it work: [https://github.com/Dunedan/mbp-2016-linux/issues/71#issuecom...](https://github.com/Dunedan/mbp-2016-linux/issues/71#issuecomment-507325112)

</comment></comment></comment><comment><USER14> I am trying to think of valid reasons why someone would use FreeBSD in this day and age as a desktop. I'm not being snarky, I'm genuinely curious.

I used FreeBSD a TON from around 1998-2004 or so. I did it because I could configure an environment to develop in that ran fast on the hardware.

At some point the type of development I do (Web) really took off on Linux and OSX so I drifted that way.

I'm going to spin up a VM of FreeBSD just to check it out, but why are folks using it as a Desktop these days?

<comment><USER15> I think the reason to use it over desktop Linux is pretty similar to the time range you talk about. It has a different feel and some people are more comfortable with the *BSD way.

The difference in personality has widened a bit as Linux comes up with things like systemd. If you just want a light Unix workstation that isn't trying to imitate Windows or Mac, the BSDs will get in your way less. That or a very conservative Linux distro.

<comment><USER14> I'm an Arch user right now, for the last 8 or 9 years. I've gotten very comfortable in that ecosystem. I don't imagine things would be much different doing what I do now in BSD I would just need a good reason to switch. In the past, much of it was based on performance and being able to script everything, which I still get with Arch.

<comment><USER15> In my limited use of arch it does seem to be one of the distros that someone with *BSD type aesthetics wouldn't mind.

</comment></comment></comment></comment><comment><USER16> may have a crack at this, ive been meaning to look into desktop freeBSD for a while and i suspect these tweaks should be similar for the X1C6

</comment><comment><USER17> So I could put this on my X1 Extreme? I wonder if it would improve battery life.

<comment><USER18> Only if you are willing to invest lots of time to get it somewhat usable, and if you don't use too many peripherals.

I can't even get Ubuntu to run properly on my X1E, the 4K display completely breaks grub and the dual GPU situation causes loads of problems when connecting an external display though thunderbolt. Battery life is worse compared to Windows (3h vs 5h).

<comment><USER19> FWIW, I installed Ubuntu 19.04 on my X1E-4k using this [0] guide and it has been working flawlessly (with an external display via thunderbolt).

The battery life _is_ much worse than on Windows, can't deny that.

0: [https://bauklimatik- dresden.de/privat/nicolai/index.html?htt...](https://bauklimatik- dresden.de/privat/nicolai/index.html?https&&&bauklimatik- dresden.de/privat/nicolai/html/en/lenovo_x1_extreme_ubuntu1804.html)

<comment><USER18> Thanks for the link, looks like there are some good tips on there! I'll try it out tonight.

One of the problems I've ran into is that my external 4k monitor (40") runs at 100% scaling and my laptop 4k monitor at 200%, which causes all sorts of rendering bugs. After some searching I found that this has nothing to do with the X1E or Ubuntu for that matter. It's a X11/Wayland issue that just isn't properly implemented yet.

Edit: it looks like this guide also instructs to switch to 'discrete graphics' in the BIOS. This is a hack and not what you want. This causes the nVidia graphics chip to be always on (instead of letting the OS choose). This causes terrible battery life. Don't do that.

</comment></comment></comment></comment><comment><USER20> The comments about using macOS instead of Linux or {Free,Open}BSD are getting downvoted in somewhat obscure reasons.

It's not that Linux isn't usable with minimal tweaking, I'm pretty sure macOS users also do a fair amount of tweaking (with, e.g. mapping keys with Karabiner (swapping Control & Caps Lock doesn't need third-party apps BTW), making the TouchBar useful again with HapticKey, etc...).

The problem is that Linux doesn't get fundamental things (in a user- perspective) right. It's a few months ago, so I'm not sure if the bug still remains, but the latest version of Ubuntu still has HiDPI problems (at least in VMware Fusion - and VMs are pretty standard to test OSes, right?) related to mouse pointer size, sleep doesn't work without configuring with systemd for a few hours about one-third of all of my Linux laptops, WPA2 Enterprise Wi-Fi connecting is an hassle, configuring input-systems for CJK languages require making a systemd service manually(!), installing packages are needed to use exFAT USB (I've heard that the Linux Kernel has now gained exFAT support by Microsoft, but it's still months later for the user), adding apt repository hangs when done with aptitude so the user has to touch /etc/, and the list goes on...

Are these issues really 'configurable' issues? They aren't, but everyone kinda says, 'Fiddle with {systemd and you will get manageable {battery life,Wi-Fi connection,HiDPI support, etc...}' And that's the reason why people just use macOS instead.

<comment><USER21> I don't go around macOS stories with "macOS sucks, this is why I use Linux". It's off-topic noise at best, and just pointless caring about what systems other people run at worst.

So yeah, -1 from me to all of those posts, and also the Arch Linux one (I'm typing this from an Arch machine). I don't think the reasons are that obscure: it's off-topic and doesn't contribute. Your post at least has some depth to it, but on the other hand, it's the same discussion ... every time.

<comment><USER3> If someone posted a story called "Driving on Water", and it was all about how you could modify your car to get it to drive on a lake... sure, it's interesting... but it would certainly be worth pointing out that boats exist, and that boats are perhaps much easier at doing what you're trying to do, which is transportation on water. Maybe there's some reason the original posters aren't using boats, and they can share that information. We don't know until we start communicating about it.

<comment><USER21> Everyone here is already familiar with all the major operating systems, including macOS. There is no value in rehashing this debate all over again here – which isn't even what most comments are doing, they're just digs at FreeBSD/Linux.

<comment><USER3> I don't think we're trying to debate as much as point out problems unique to some OSes, and how we wish it were different. I would very much like to use Linux as a desktop, if setting it up weren't a garbage fire. It doesn't have to be this way.

</comment></comment></comment></comment></comment><comment><USER22> It's such a risk you take by getting a WQHD screen on Linux. I've had trouble to get things to scale, setting for the workable (albeit far from perfect) option to scale fonts. I wonder how well this setup works with different UIs, system icons, etc.

<comment><AUTHOR> Lots of things are not quite right (e.g. save dialogs never seem to be sized logically), most things are okay though. What I use most (terminal, browser) are great.

</comment></comment><comment><USER23> Arch Linux is the only Linux. It's so easy to learn and use. Arch Linux is the only operating system. It takes 20 minutes to learn arch if you know Linux and Unix.

<comment><USER24> arch feels to me like an over-engineered mess. For a truer unix experience I'd rather suggest void or slack.

<comment><USER25> I used to run Slackware, and the user experience is pretty terrible compared to Arch or OpenBSD. The absence of a package manager that tracks dependencies is not a "truer" Unix experience. All the BSDs provide a more Unixy experience than Linux and they all track dependencies.

If Slackware was updated more often, the system would work better. The dynamic libs are always way out of date, and god help you if you want to install a newer version.

<comment><USER24> this depends on your point of view. For me, being able to install a package even when some dependences are not met is a fundamental feature.

Regarding the versions, slackware-current is a very up-to-date rolling distro (e.g. much more so than ubuntu).

<comment><USER25> I mean, you can install packages without deps with Arch as well. Also, why is that important to you?

<comment><USER26> Same for Debian and its forks (dpkg --ignore-depends) and I'm pretty sure rpm/yum has a similar option.

</comment></comment></comment></comment></comment></comment><comment><USER27> And this is why I still use a mac

<comment><USER28> Haha, right? I understand if someone genuinely enjoys configuration.

But gosh I just need my machine to get up and going so I can make some money and then go back to living.

<comment><USER29> FreeBSD is for people that like to thinker with OS. Same as Arch on Linux side. I'm using Ubuntu for pretty much everything for over 10 years now and everything is just easy and fast. My current installation of Ubuntu Mate has been done 3.5 years ago as 16.04. Since then I went trough 4 distro upgrades, 16.04 > 16.10 > 17.04 > 17.10 > 18.04LTS and since in 18.04 they introduced snaps I decided to stick to LTS releases with my apps like JetBrains apps installed via snaps for latest updates. Somewhere in that update cycle I upgraded my machine and just pulled SSD from old machine and plugged it in into the new one and it just worked. The system is also being backed up into Synology NAS so when in meantime I bought small laptop for travel I basically "restored" my main PC into that laptop so I didn't have to manually setup everything. It's pretty simple. Unfortunately it doesn't move applications like TimeMachine does, only the settings so I had to install apps like SublimeText myself but settings was already in there.

If your workflow can be moved outside of MacOS ecosystem then it's worth to checkout Linux especially Ubuntu (and all it flavors) as an alternative.

<comment><USER28> I actually do use Ubuntu every day for development. I also use macOS every day. They both get the job done relatively painlessly. I enjoy macOS more in general, but I like using Ubuntu in a VM because I can snapshot and restore.</comment></comment></comment></comment>


US Copyright Office sides with cable companies against FCC's set-top rules - <AUTHOR> http://arstechnica.com/information-technology/2016/08/us-copyright-office-sides-with-cable-companies-against-fccs-set-top-rules/ <comment><USER2> Cable television is a worse experience than watching video on the internet in every way. I really don't understand why people are still doing it.

<comment><USER3> Channel surfing. I don't get it either, but my I know lots of people who do. Streaming services are great if you want to pick something and watch it start to end. Not so great if you want background noise and the ability to quickly flick between many sources.

<comment><USER2> How does this differ from surfing shows on the internet?

</comment></comment></comment><comment><USER4> Cable companies: "OMG we need to be able to keep fucking over our paying customers with overpriced equipment rentals so we'll insist competing devices might be used for piracy."

Customers: "Excellent point. This pirate box means I don't have to keep paying you dickbags at all. See ya!"

</comment><comment><USER5> Meh. Would've been nice, but to be honest, there are more important hills to die on than set-top boxes. Net neutrality, oligarchies, and Comcast's "pay up for privacy" are all far more concerning. And let's be honest, there's a finite number of consumer-friendly actions the FCC can reasonably enact before someone from the cable companies puts a bullet through Wheeler's head. Cross one of the other ones off the list, first.

</comment><comment><USER6> 3rd party set-top boxes will enable piracy. That's why we want them.

It's 2016... Can we stop accepting the name "piracy" to describe "sharing"?

I mean, can we get a god-fearing, red-blooded USAmerican family man to say "How DARE you call me a pirate!?" on prime-time television?</comment>


Psychological Factors in the Failed World Depth Record Attempt 2015 - <AUTHOR> http://scubatechphilippines.com/scuba_blog/guy-garman-world-depth-record-fatal-dive/

<comment><USER2> Interesting read, thanks for posting this. I was flabbergasted to see that he had only been diving for 4 years when he made the attempt.

Two points in this article really rang true to me in particular:

\- the tendency for divers to speed through increasingly more advanced dive certifications. Often I'll be at the dive shop waiting on a tank fill, and I'll overhear somebody talking about how they had such a fun time during their beginner open water certification that they signed right up for advanced and divemaster courses. There's nothing wrong with educating oneself, but I think the false sense of mastery instilled by these courses is clearly a potential danger. The material learned in the class must be complemented by real-world experience for the concepts to become second-nature. The dive shops make money on this mindset too and so share lots of the guilt.

\- going deep for the sake of going deep. There's always that one guy (it's always a guy in my experience) whose goal is to get deeper than everybody else on the boat. As far as I can tell, it's pure machismo. Not only does it lead to accidents like this, but you have less bottom time, worse visibility due to lower light, and in most places the richest animal life is not at the deepest part of the dive. So it's stupid. This article seems like that mindset taken to the extreme.

I don't want to speak callously of the dead, but this guy appears to have had it coming. And I think the dive shop that sponsored him should bear a big chunk of the responsibility for this accident, as outlined in the article.

</comment><comment><USER3> Very nicely written article. You could apply the principles discussed here to any other dangerous sports, like boxing, racing etc. It is sad that our society rewards egoistic thoughts. People are happy to applaud someone boasting how deep they have gone underwater, yet no one wants to tell them that greater depths poses greater risk on the physiology of the body and psychology of the mind.

</comment><comment><USER4> Am I the only one distracted by the blogger's blatant misuse of the semicolon?

<comment><USER5> Not just the semicolons, the excessive use of ellipses............ and many other details of his style left me just skimming over the topics and not reading the whole thing, which felt like it could've been shorter!</comment></comment>


Ask HN: General advice to grow my network - <AUTHOR> What mode of communication (LinkedIn InMail, Facebook Messages, email, phone or something else) do you use when trying to build your network? What general advice do you have for someone who is starting to grow their professional network? <comment><USER2> You have to ask yourself; what's the purpose of this network? Is it to have a group of like-minded engineers so that if you lose your job you can get first hand referrals for a new job? Are you looking to establish yourself as a consultant? Are you looking to meet higher level executives in hopes of becoming them one day?

Whatever the case, if you email them with an shallow request of "looks like you're doing cool things let's get coffee", your request will probably be ignored. Everyone is busy, there's no time for random coffee with a stranger.

But if you can ask a very specific question regarding their work, you'll pique their interest. Offer to teach them something in return, now you're on the path to a mutually beneficial professional relationship.

Don't send out the same message to different people. Do the hard work; research each person's background, send an email specific to their likes/interests. Be strategic when making a request from someone and if you can offer something in return, even better.

I'm really good at writing these types of emails. Drop me an email at firstname.lastname@example.com if there's something you want me to review.

Good luck!

<comment><USER3> What do you mean by "Be strategic" here?

<comment><USER4> Figure out what you want to accomplish long term before initiating contact.

And tactically: figure out how you can make meeting you of value to the other person, what you want to accomplish (result) and do in that meeting. Basically: do your homework.

</comment></comment></comment><comment><USER5> 1) If you read or hear about someone you think are doing something great, contact them, tell them, ask them.

2) If you see someone who is doing something amazing, go over to them, tell then how great you think it is, ask them how they do it.

3) If there is something you want to understand but don't, figure out who do and ask them.

4) Get out amongst people.

5) Build, create, write, launch something put it out there for the world to see.

In other words.

Just be genuinely interested in the people you interact with and you will be building the best possible network without feeling you are being insincere. It doesn't matter if it's in person, by mail, via a tweet.

<comment><USER6> I read this, and this _feels_ like good advice, and then also _seems_ like good advice, I think it might actually be good advice - which is sometimes hard to come by when it comes to questions like "How can I network more effectively?" Bravo, ThomPete, I really think you're on to something here, and I reckon I will try it out! :)

</comment></comment><comment><USER7> I drink beers with people usually. Basically, I make a lot of high level friends / associates at every place I have worked or random meet ups and I do a lot of lunches or after work drinks to keep up with those people.

I usually spend at least one happy hour a week after work + one lunch a week with those types and then one or two lunches a week with current co workers and people closer to me that I consider super talent that I'd like to always stay in touch with.

I just drop random messages to folks saying "Hey it's been about year since we last chatted and it'd be awesome to learn about what you're working on and catch up in general. Do you have anytime for a lunch or pint after work in the next week or two?"

If you do stuff like that you'll get invited to other social gatherings and eventually you'll start meeting their friends and people they consider talented.

What I described above is actually work (I enjoy it though) and requires time and effort.

<comment><USER8> > _I drink beers with people usually._

It occurs to me that this is a good way to increase the number of "hops" in your network.

/me ducks

<comment><USER9> A rye smile spreads across his face

<comment><USER7> You!!! You guys!!! Clever. Let's have a drink and catch up.

</comment></comment></comment></comment><comment><USER10> I can only speak for myself, but sitting at a computer has not done me any good for networking.

I did one speaking engagement talking about my career and what I do and that did more for my network than everything else I've ever done...combined.

Going outside, in my opinion, is the only way to network. Following up on Linkedin etc etc is only the aftermath.

</comment><comment><USER11> You might hear an advice about going out to conferences or meetups and networking physically. For me this doesn't work as good.

Believe it or not, emailing an author about their blog post is much better than randomly talking to someone who shares your interests at a conference. The former being more targeted and personal.

<comment><USER12> With conferences, a strategy that worked for me is to research the attendees beforehand. Some conferences let you tweet "I just bought my ticket to XYZ Conference!", and I would then search for that & add everyone who tweeted it to a Twitter list of attendees. Then you can read their tweets, check out their websites, and get a sense of those people before you ever meet them. You'll quickly discover who you find interesting & resonate with.

[If your conference is savvy enough to have an attendee profile page, definitely take the time to browse though them.]

Then, you can engage with those people over Twitter, via email etc. If you end up building a friendship, then before the conference has even begun, you might arrange meeting up in the hallway between keynote presentations - finally meet that person you've been talking to on Twitter!

Another thing that has worked for me is to always take the extracurricular conference activity. I've always gone skydiving or bungee jumping when the conference offered it, and that's been how I've made some of my awesome new friends. I'm not a thrill junkie or anything, but there's something about sharing an experience like that with people, you end up opening up to people as you share your collective fear / vulnerability & excitement.

</comment></comment><comment><USER13> > What general advice...

Make an authentic connection. Find out what is most important to someone else. See if you can help them in some way, shape, or form. Be a value creator. Finally, stay in touch.

On this subject, Larry Benet is brilliant > [https://www.youtube.com/watch?v=-39qOKErh10](https://www.youtube.com/watch?v=-39qOKErh10)

</comment><comment><USER14> Go to the dev meetup after parties and bring coke. That's how I landed my research gig

<comment> gm-conspiracy Beverage or powder?

<comment><USER15> Why not both?

<comment><USER8> Why not both is that someone who has brought the powder has done more than enough for the party to be excused from also doing grocery store runs for beverage.

</comment></comment></comment></comment><comment><USER16> Just do something useful for somebody in your network today. Focus on being there for the people, it just the numbers. For instance: Did you see a job opening that cold be a good fit or someone you know? Email him/her. The same applies to news, or sales prospects.

Keep connections warm and be helpful.

</comment><comment><USER17> You can either approach this small-scale (you want to actually _know_ the people in your network) or large-scale (you want millions of readers/twitter followers, etc).

For small-scale:

* Industry talks and conferences -- it's very common for tech companies to give talks or even conferences. An information security / pentesting consultant company held an event where some of their employees presented research that they were taking to a larger conference. From their side, it was for marketing reasons, but this was kept out of their presentations completely (which focused entirely on their work). From my side, I got to spend a fun few hours being wined and dined (for free) and got to chat to some interesting people in the coffee breaks about their work. We still keep in touch. Pros: smaller groups of people who probably share interests with you (you chose the same event). Cons: It's a bit harder to find out about events like these, but definitely possible if you keep your eyes and mind open.

* Reach out to people who used to be in your network -- university professors, old colleagues, etc. They have surprisingly good memories, and probably won't be at all unhappy to get a quick update from you. They might even mention some opportunities ;)

* Make stuff -- even if it's small, such as a blog post or a useful script, it's probably enough to get a few people to notice you, and perhaps one or two to follow you on Twitter or email you and ask you for help with debugging

For large-scale:

* Give people free stuff in return for an email address. Spam them (even if it's not a lot of emails, it's super targeted and you'll get results). Follow people on Twitter, and DM them with offers with free stuff (video, white paper, blog post). Some will react badly (like most of the HN crowd, including me) and report you as spam, block you, unfollow you. A majority of people will lap it up and your 'network' will grow exponentially. [Note: I haven't really tried this myself, but as an experiment I created a Twitter account and started tweeting cheap motivational bullshit. I gained followers pretty quickly and saw how the marketers with hundreds of thousands of readers operated as they were amongst the first to notice my bullsh.t account. Unfortunately what they were doing was working].

In either case, remember that there are a lot of people looking to grow their networks because having a large network is beneficial, so they look for other people who can _provide value_ and network with them. Instead of being one of these people, and focusing on what your network can do for you, rather focus on the value you can provide to others, and then give it to them. The network will flock to you.

<comment><USER18> What value did your motivational bullshit provide that appeal ed to people? You call it bullshit so I'm assuming it wasn't quality material.

</comment></comment><comment><USER18> That an interesting question on in person or virtual networking. I personally have been having trouble leaving the house to go to meetups, etc., for some reason lately. It's partly habit having worked from home for more than 10 years now. But I would like to start getting out more but it's hard to break habits.

</comment><comment><USER19> networking is best done when you see it as relationship building - which takes time & effort. as few others said here, a non-transactional approach is the best way to create a network with value.

one of my all-time favorite resource in this regard is this book: "Work The Pond". it totally alligns with my own philosophy + values.

[https://www.goodreads.com/book/show/894407.Work_the_Pond_](https://www.goodreads.com/book/show/894407.Work_the_Pond_)</comment>


Kaiser Permanente CEO Bernard Tyson Dies Unexpectedly in Sleep - <AUTHOR> https://www.sfgate.com/bayarea/Kaiser-Permanente-CEO-Bernard-Tyson-dies-at-60-14824201.php <comment><USER2> Didn't thrive.

I know bad. But more seriously, what does this mean for Kaiser?</comment>


SoftBank Seeks Multibillion-Dollar Stake in Uber - <AUTHOR> https://www.wsj.com/articles/softbank-seeks-multibillion-dollar-stake-in-uber-1500958957 <comment><AUTHOR> If this were to happen, I suspect the terms will be (1) flat or very modest wrt topline valuation and (2) very onerous clauses for downround dilution protection and upside guarantee a-la the Square situation of recent memory.</comment>


Why do millions of Chinese people want to be 'spiritually Finnish'? - <AUTHOR> https://www.theguardian.com/world/shortcuts/2018/aug/05/why-do-millions-of-chinese-people-want-to-be-spiritually-finnish <comment><USER2> The Guardian likely sourced this story from here: [https://www.sixthtone.com/news/1002595/socially-awkward- mill...](https://www.sixthtone.com/news/1002595/socially-awkward-millennials- claim-theyre-spiritually-finnish)

Otherwise if not, Sixth Tone provides more details.</comment>