Cross Platform Development with Mono - <AUTHOR> http://stephenhaunts.com/2014/04/28/cross-platform-development-with-mono/

<comment><USER2> I must strongly recommend against using Gtk+ as a GUI toolkit for any serious application except on GNU/Linux. The biggest reason for me is that Gtk+ has zero accessibility support on Windows or Mac. That is, it doesn't work with assistive technologies which people with some disabilities need, such as screen readers for blind people. If you develop an application using an inaccessible toolkit, you're erecting a barrier for some people who might need to use your app, particularly if it's going to be used in an educational or business setting.

So, what should you use instead? Qt is better, but not great. It's still bad enough that TeamTalk, a voice chat app that's popular among blind people, has a cross-platform Qt app but also a "classic" MFC app for Windows. The latter used to be the official Windows client, but is now maintained just for blind users.

wxWidgets is better in some ways, because it uses native controls on each platform. Except where it doesn't; for example, the data view control is non- native on Windows, whereas the list view control is non-native in the Mac and GTK ports. and wxHTML is non-native across the board. Still, with some pain, wxWidgets can be made to work for cross-platform accessible apps.

SWT might be a good choice, if you can make it work for .NET/Mono using IKVM.NET. SWT is better than wx in that where it has to use non-native controls, it implements the platform accessibility APIs; it helps that SWT is backed by IBM, which has the resources to put into this kind of thing, and the incentive to do so in the form of sales to government agencies and the like.

<comment><USER3> I'd be interested to know what kind of problems Qt has with accessibility, I have personally not used the QAccessible* classes yet and would appreciate any tips from the field.

Some potentially interesting blog posts: [http://blog.qt.digia.com/blog/category/accessibility/](http://blog.qt.digia.com/blog/category/accessibility/) I wonder what came out of the major upgrade in Qt 5, from looking around the web it seems to support MSAA fully and also I2A in some form.

<comment><USER2> I haven't looked at the state of accessibility in Qt 5. I'll have to check that out.

</comment></comment></comment><comment><USER4> Interesting to see all the recent activity on HN about cross platform development. Seems like, as far as native code solutions go, C#/.NET is our best bet. As a C# junkie I'm excited about this, but also kinda sad that HTML5 cross platform development never really took off.

Edit: When I said "native code", I meant that Mono allows you to wrap native libraries with greater ease than anything else I've ever encountered.

<comment><USER5> .NET isn't native code.

<comment><USER6> There are multiple native compilers for .NET. Xamarin uses one for iOS and Android apps (well, in the case of Android, you're compiling to Dalvik bytecode, but it's just as native as any other Android app).

<comment><USER7> Xamarin.Android apps do not compile to Dalvik bytecode. Every app ships with MonoVM which runs side-by-side with Dalvik.

<comment><USER6> Thank you for the correction; I seem to have had Xamarin on Android confused with Xamarin on iOS, which does compile to native code.[1]

1) [http://docs.xamarin.com/guides/ios/advanced_topics/limitatio...](http://docs.xamarin.com/guides/ios/advanced_topics/limitations/)

</comment></comment></comment></comment></comment><comment><USER8> Have they fixed the bug where you can't copy/paste between mono apps and native OS X apps yet?

[https://bugzilla.xamarin.com/show_bug.cgi?id=3106](https://bugzilla.xamarin.com/show_bug.cgi?id=3106)

\--

Steps to reproduce the problem:

1\. Copy some text in any non-mono application

2\. Paste it to mono application.

Actual Results:

Copy&Paste doesn't work.

Expected Results:

Working clipboard.

How often does this happen?

Always.

\--

Wow. So by cross platform they mean "unusable GUI apps on Macs"

<comment><USER9> If you were going to develop a mono app on osx you'd be better off using monomac than gtk#. Mono develop is written in gtk# and cut and paste works just fine on osx.

<comment><USER8> My use case is the most basic one possible:

-Build a GUI app in C# -Run in on both my Windows dev machine (Windows 7), and my main desktop (OS X)

That's it. I don't care even what I have to use to build the app (Windows Forms, Stetic, etc).

Any advice?

<comment><USER10> Have you considered using node-webkit, AngularJs, and Bootstrap for your cross platform GUI needs?

<comment><USER9> The problem with this is you only get 1 thread for the UI and other stuff to run on.

</comment></comment></comment></comment></comment><comment><USER11> "I still really like the .NET environment and C# language, ... "

This is not my case, but I really do find value in learning a technology that helps you build cross-platform solution. I seriously considered using it.

"Thankfully, there is the Mono .NET implementation that I can use and it is really well supported."

But it's kind of unsupported and most of the time it lags behind. Currently on my brand new ubuntu system, it's version 3.2, on my "stable" ubuntu its 2.10. The current version is 3.4.

" As well as being open source, Mono also has a company, Xamarin, sponsoring its development as they use the mono system for their IOS and Android ..."

You cannot develop iOS nor Android application on Linux with Xamarin, You need Windows or OS X.

This is old bug still accurate. [https://bugzilla.xamarin.com/show_bug.cgi?id=142](https://bugzilla.xamarin.com/show_bug.cgi?id=142)

This is an actual deal breaker for us. Haft of the team is using OS X and the other haft Ubuntu.

<comment><USER6> "But it's kind of unsupported and most of the time it lags behind. Currently on my brand new ubuntu system, it's version 3.2, on my "stable" ubuntu its 2.10. The current version is 3.4."

Isn't that more of a problem with Debian/Ubuntu than it is Mono? You're not comparing what Mono's released to Microsoft's .NET runtime, you're comparing what Ubuntu ships to what Mono themselves have released.

<comment><USER11> I understand that is not the actual status and capabilities of mono. But if you want to ship your app and use the latest feature, this is a problem.

If it's a couch-developed app for your own use, this is not an issue.

<comment><USER6> Sure, but that's an issue in packaging software for Linux that goes far beyond Mono/Xamarin. Any software you develop for Linux that has external dependencies is dependent upon the decisions of at least a dozen major distributions on what to support, package and ship. Solving that problem is way behond the scope of the Mono runtime.

</comment></comment></comment></comment><comment><USER12> Do these people actually use Monodevelop daily? Because my and a lot of other people's experience beyond a Hello World program is dismal.

And until you actually have cross platform development _tools_ that don't suck, .NET is not a viable option.

<comment><USER13> The authoring platform doesn't matter as long as the product is cross- platform. Just use Windows to get the best development experience. I mean people use Sublime which is like a notepad on steroids and don't complain.

<comment><USER12> > The authoring platform doesn't matter as long as the product is cross- > platform.

I think it matters a lot. That's why a lot of people don't care about .NET/C# actually, because they can't stand Windows.

</comment></comment></comment><comment><USER14> This post inspired me to fire up my Linux mint virtual box and test mono. I'm every impressed by its potential. It does lack some awesome c# features like async/await. I've been using Xamarin for a while now and love it. My only fear for mono on Linux is the lack of XAML like interface equivalent. I dislike GTK. I'm keeping my fingers crossed :)

<comment><USER15> I'm pretty sure async/await is supported

Source: I'm using async/await in Xamarin.Android

Maybe it's because Linux Mint doesn't have the latest version of Mono in the package repository?

</comment></comment><comment><USER16> Nice, I just gave a talk on Xamarin and building cross-platform native apps at a mobile workshop this weekend.

</comment><comment><USER17> I haven't used it in a while but Tcl/Tk with Tile (now known as ttk) used to be a decent solution for cross-platform GUIs with native-looking widgets. Among other things it had top-tier Unicode support and a declarative layout system (compare: QML). Is it still viable?

</comment><comment><USER18> I love Mono Develop / Xamarin studio, but it needs split panes desperately.

</comment><comment><USER19> Mono is not "cross" platform. It infects your environment with .NET which is very much a platform.

<comment><USER20> It is an environment that allows your code to run on multiple platforms. It is cross platform.</comment></comment>


Ask HN: What's been your best investment? - <AUTHOR> I'm curious what everyone here considers their best investment.  Not necessarily from a financial standpoint (thought it certainly could be, and that'd be interesting to hear too) ... but maybe your best investment has been the time you spent to learn something new, or the time you've spent with your family.  What's your best? <comment><USER3> Invested in myself by doing things that scare the shit out of me - <USER2> junior year of HS I realized I had nothing to lose (I was pure white trash, still am, really.) so if something looked impossible, I went for it. I wound up in an ivy leagueish college, worked my ass off, I starved, went out with beautiful girls, photocopied text books because I couldn't afford them, I drove an old porsche I found in a junkyard, went on tour with my band, went to europe with $80 in my pocket. Made a lot of mistakes, but god damn it was fun.

<comment><USER4> > I drove an old porsche I found in a junkyard

This (along with a lot of other stuff you mentioned...) is interesting, what happened? Were you just looking around a junkyard and stumbled across it? What state did you get it in and how much did you know about cars when you got it?

I found this on your site but it didn't give much background info: <http://trickykegstands.com/porsches.html>

<comment><USER3> Wait, What? Normal people don't know what kinds of cars are sitting in their local junk yards? heh... somehow we knew it was there.

I grew up in a family of backyard mechanics and my brother had a 924 parts car in the driveway. He graciously let me pick and pull parts for free and helped a LOT.

Believe it or not, as long as it isn't wrecked too badly, you can probably get almost any car back on the road with $100 craftsman tool set and a good sized hammer. Or, better yet, find tools for really cheap at garage sales.

</comment></comment></comment><comment><USER5> Writing a code generator. It was so difficult that every other programming task since was easy in comparison.

Conventional wisdom advises not to try anything too hard because you might fail. True, but that advice discounts the biggest dividend of all: who you become in the process.

I didn't realize how important this was until I saw how easy it was for me to do most ordinary programming gigs. It was like playing basketball with a regulation hoop when I had already practiced with a smaller one. Other programmers struggled because they hadn't seen that problem before and they had never stretched themselves.

Building hard things on my own made me a much better programmer when I did work for others. By far, my best investment ever.

<comment><USER6> I've seen you mention this code generator in a few comments. Can we get more details about this project? I'm sure many here would be interested to know. If you've written another comment on HN explaining it in more depth, or written a blog post about it, I for one would love to check it out.

<comment><USER5> I wrote the original in Basic as a tool that we used in our service business. We collected requirements and entered them into the app as "blueprints". File layouts, form parameters, process parameters, etc. The generator read the blueprints, then built the data base and wrote all the necessary custom functions and routines. Most of the programs were already there as parameter driven shells.

I rewrote it in Visual Basic, then in php.

This was a handy tool for systems analysts who knew what they were doing, but not for the average user. There were 2 basic problems: collecting requirements and entering them as parameters is hard and you still had to convert the data.

Now I'm working on a front end to the 3rd generation of the generator. It will read existing data files and use an artificially intelligent process to build the parameters then were previously collected by a human. It will also populate the new data base. This is the basis of my start-up.

I will keep the community updated with my progress. I also got your email from your profile and will give you (and anyone else who's interested) an update. Thanks for your interest.

</comment></comment></comment><comment><USER7> When I had cash[1], I mostly kept large cash positions, you'll pretty always find something valuable to do with cash eventually. Whereas getting out of bad/sub-optimal assets is trickier. I've had opportunities to invest cash along with labor to get some pretty good stakes in a couple businesses that turned out right. I also didn't realize this at first, so I tried to buy stocks and mutual funds, thus missing out on a couple great deals later when I didn't have the cash.

If you're good with money, don't be in such a hurry to get out of cash. If you sit on cash for two years, then make a 60% return on it in year 3, you've outperformed anyone making 10% each year. I'm sure there's a personality type that goes crazy if they're sitting on a significant amount of cash for two years that isn't doing anything, but that's not me. I'd rather be liquid than to have money in bad or even just sub-optimal assets.

[1] After the crash, I had enough to live for ~3 years without working too much. I wrote the first draft of a book, wrote some specs out on business ideas to see if any of them really resonated, studied some rationality, biochemistry, and the history of lots of different regions of the world. Did some martial arts, read lots of books, and traveled in a pretty spartan way, mostly slumming it through a dozen or so countries. A couple months ago I felt like it was time to get back into things, my newest professional endeavor soft-launches next Wednesday.

<comment><USER8> Reminded me of the rule I've developed when it comes to evaluating job, contract or startup opportunities: cash is never wrong.

Because equity may or may not yield significant value for you. Because the work may or may not be interesting. Because a project may succeed or fail. Because you don't know how long the relationship will last, or whether it will lead to better things via contacts and word of mouth, etc. (though it certainly may.) But getting cash pay is never wrong.

Once you have cash, there are tons of other things you can do with it. It can be used to buy you more free time later, more energy, more opportunities, more convenience, more capital for your own startups, better health, more happiness, more security, more toys, more tools, a bigger/healthier family, and, perhaps indirectly, and despite what some people tell you, and _most especially_ if you're a _man_ , money DOES help buy love.

Cash is never wrong.

</comment></comment><comment><USER9> Best mattress, duvet, pillows and sheets I could afford - makes a massive difference to the start and end of the day - no matter what else happens in- between.

<comment><USER10> Honestly, I've found I sleep best when I'm traveling and forced to sleep on my foam mattress pad (not the inflatable variety) and sleeping bag.

Though it may be more traveling and being out in the world and doing things that causes me to sleep soundly.

<comment><USER11> I do this voluntarily. It works pretty well, most of the time.

</comment></comment></comment><comment><USER12> Learning Statistics. I never would have picked it, but was forced into it thanks to my economics minor, and I've used it more than most of my CS courses.

I've never met anyone who regretted learning more math. It's the safest investment there is.

<comment><USER13> I found probability and statistics to be a very valuable thing to learn as well. I wouldn't have done it on my own because it just seemed so boring compared to the other maths(calc, linear algebra, etc...) but it really has a lot of use in those disciplines that you now have the context to understand. Thankfully my college had it as a requirement for cs.

</comment></comment><comment><USER14> My underdog consulting "startup"; it cost me $10 for the domain and 3 days to do the site html. I just wanted somewhere to document previous side gigs just so I can have a line-item in my resume.

Holly crap! in the last 10 days it has been on FIRE. Three different B2B projects and it's paying more than my last full time job, which was by every measure a very posh gig.

It's such an specialized technical niche, the entire global search volume for it is less than 5k annually. A fact I didn't even care to research before I "sunk" 3 days into it. I just wanted something on my resume.

And this is all I have to say about it :-)

<comment><USER15> So you put your previous work up and they found you?

Just out of my curiosity for how this could develop that quickly, are these long-term projects or quick projects that you've already completed but pay well because of their specialized nature?

Care to elaborate more on the type of work it is?

<comment><USER14> _So you put your previous work up and they found you?_

Hah! I wish. No, I actively pushed it within its first 2-3 weeks and bid on bucket-loads of projects and proposals. Even started blogging actively while transitioning from being employed in Australia, to returning to the U.S. with not much to do.However, I heard back from no one. For some reason I took active interest in this random field and started reaching out to NGOs, government agencies and academia; helping them make good use of this. I even attended a few webinars, some boring shit, because I cared and wanted to make sure these public institutions got this mundane application of technology right.

This _does_ sound like a lot of work, but for me it was more like a game; I would have my laptop on the kitchen counter while cooking or prancing around the house, and ooh, a project! "typety typety type!". Mostly as a joke for me and my girlfriend since we had a few weeks between finishing my work contact, and actually taking the flight out of the country. It was just something we did mostly as tongue in cheek "hey, we're important" sort of a thing.

Out of the goddamn blue, almost 2 months later, here they are, private sector.

The work is best described as "research and analysis"; the deliverables are usually a report, an spreadsheet, a simple "API", or in most extreme cases a yes/no answer :-)

Come'on man ... this conversation ends here, I am not patio11.

<comment><USER16>
       this conversation ends here, I am not patio11.

That's a real shame. (and I'm not being sarcastic)

I enjoy hearing about the successes and thought processes of people who are doing well.

<comment><USER8> ... and the industry/market and problem domain. So we can get in on it too. ;)

<comment><USER17> Competition is good.

As they say.

<comment><USER14> For the consumer.

<comment><USER17> Exactly.

Contrary to the wisdom presented here by many.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Recently? Probably deciding to go downtown for coffee with Thomas (tptacek) last Christmas break, which lead to a very enlightening conversation about consulting. (Short version: "People will pay you money to consult for them." I did not know this. For real.)

All time? I've got to go with the wee little project that was supposed to pay for a video game or two, even though that is a pandering answer here. If not that, working hard academically and financially to get into WashU, which offers opportunities roughly equivalent to many schools _except_ the quality of their Japanese program ended up being lifechanging for me.

Financially? I had a burrito at this new restaurant called Chipotle, read that McDonalds was spinning them off, and bought a few hundred dollars worth of stock over the next few years. Don't do that -- invest in index funds. That said, burritos now make up a larger contributor to my net worth than anything save bingo cards.

</comment><comment><USER19> It's really hard to pin down just one thing, but I'll try. :)

The big thing for me, both personally and professionally, has been networking socially. Whether that meant going to Defcon last year to get away from it all (and meeting a ton of awesome people in the process), or utilizing my contacts at work to get where I wanted and needed to be to do my best.

Learning how to effectively do that has been an incredible blessing. It's also given me a ton of friendships I wouldn't have otherwise.

<comment><USER20> that's a great response! i think all too often, members of the hacker community view 'social networking' as somewhat of a slimy, schmoozy 'MBA-type' of necessary evil, but when done properly (like OP apparently has), it can lead to true personal connections and friendships which can benefit both parties

<comment><USER21> I am pretty sure they meant actually talking to and meeting people in real life.

</comment></comment></comment><comment><USER22> A couple friends & I pooled our cash and gave a buddy $150 for a week's vacation. Our buddy ended up meeting his wife on that trip. Best money I ever spent.

</comment><comment><USER23> Spending generously on a great wedding photographer is the single best purchase I've ever made.

</comment><comment><USER24> I used California's Paid Family Leave program to take the entirety of July off work. My daughter just turned 4 months and every day she learns something new. Even though I'm at a rapidly-growing company, I wouldn't trade time with family for anything.

</comment><comment><USER25> "The best investment you can make is in yourself." ~Warren Buffet

He's absolutely right. As long as you remain alive and able bodied, your investment is protected and will yield a return and you will derive the enjoyment and benefit from that return directly, without delay and continuously.

I'll add one caveat: Before you go and spend $120,000 on an education, make sure you are acquiring the knowledge and other assets you hope to gain in the most efficient and cost effective way as possible.

<comment><USER26> The quote is spot-on. Almost every investment in oneself will generate a healthy ROI in the long run in my opinion.

Minor footnote: Maybe it is just a pet peeve of mine but I cannot count how many times I have seen the name of Warren Buffett spelled as _Warren Buffet_. (<http://www.google.com/search?q=warren+%2Bbuffet>)

</comment></comment><comment><USER27> I can't pick one so I'll say:

Learning Common Lisp;

Making my own (unreleased) web framework from scratch;

Learning the Rete algorithm (very fast matching of many patterns against many data items). It's the most elaborate algorithm I can implement, it was hard to learn mostly because of how incredibly abstract the descriptions of it are, but it's applicable in many situations to make really cool features possible so it was well worth it.

<comment><USER14> Re: Rete, that's really good. I can only imagine the breadth of knowledge you had to acquire just to grok it, much less implement it.

<comment><USER27> There actually isn't a lot of prerequisite knowledge before you can learn Rete, just general knowledge of graphs I think.

I did spend a lot of time trying to understand how it all works with pen and paper, reading the original Rete description and the wikipedia article, it's a bit annoying because it seems descriptions of Rete are very few AND they use different terminology and approaches to explaining, AND there are really a lot of implementation choices to make depending on the specifics of your problem, so I had a lot of difficulty wrapping my head completely around the concept.

In fact, the first implementation I made was very contrived and I unknowingly bypassed a lot of problems and I didn't even know my understanding was still incomplete. It's only when I tried to make another implementation for a more difficult problem that I realized and fixed my lackings.

Now that I really understand it though, it really doesn't sound that complicated to me anymore, it's pretty "simple and intuitive". If I didn't remember all the pain I had to go through to understand it, I might think that it's in fact a pretty simple algorithm. I think the way too abstract and obtuse descriptions of it are to blame for much of the difficulty because there really isn't a lot to the fundamentals of the algorithm (though the explosion of implementation choices can get messy to sort through).

I guess about now would be a great time for me to start a blog. ;)

</comment></comment></comment><comment><USER28> Several good life investments, but I'll go with a monetary one...using all my savings at the time (a shade under $6k) and convincing my Dad to lend me a bit more cash so I could purchase Google's dutch auction IPO shares.

I have the confirmation email from Google laminated and framed in my office. :-)

Plus I got to pay my Dad back with a nice bonus too!

</comment><comment><USER29> One of the best investments we've made has been in allocating time for family.

An example is finding a night nurse after we had our first child. It allowed my wife to recover from a tough birth, both of us to have some quiet together time, and it allowed me to get the rest I needed in order to keep working. The nurse would show up around 9-10pm each night and took off at 6am, and would wake my wife for the late night feedings as necessary.

It was pure gold and those 4 weeks allowed us to recover and adapt to the strange new world of parenting (and it also gave us a bit more confidence to handle novel situations as they arose).

</comment><comment><USER30> As soon as I realized I had to be involved with startups, I quit grad school, bought a one-way plane ticket to California and haven't looked back since. Best $500 spent ever.

You truly can't appreciate the pace, the spirit and the community that is Silicon Valley without physically living in it. These past few years have been the greatest and most fulfilling time in my life so far.

<comment><USER31> That's pretty badass :) How'd you realized you "had to be involved with startups"?

<comment><USER30> When I began to realize I was spending more time building random web apps with a friend instead of doing my research. To be fair, my research was pretty bland, so it wasn't that hard to get distracted :)

</comment></comment></comment><comment><USER32> My college degree - partially for the name that led to great internships/jobs that gave me insightful experience, but mostly for the friends (including my cofounder), social experience, and general maturing that happens there.

3 years & $150k and I think it's paid for itself in the 1 year I've been out of school.

</comment><comment><USER33> Personal: Time with family.

Professional: Obsessive software hacking in my teens and 20s combined with PhD in computer science. Basically, doing what I love and putting in my 10000 hours.

Financial: Time and money invested in startups.

<comment><USER20> looking back, what aspects of your Ph.D. training do you find most useful now? was it deep expertise in one particular sub-field? was it a certain type of work ethic or approach to problems? was it the doors it opened for you professionally? etc.

<comment><USER33> The field certainly helped. I worked in databases, data structures and algorithms, and the exposure to those ideas has been a huge benefit since I'm still working in those areas. I'm constantly surprised at how things that are just intuitively obvious to me are alien to many others. Grad school is when much of that intuition was absorbed, I think.

I think that "work ethic" (mine, at least) is just hardwired. Same for approach to problems. I wouldn't say that grad school influenced these so much as help me realize what they were. I actually goofed off quite a bit in grad school. My work ethic (as in long hours, and job above all else) wasn't tested until I joined my first startup.

Opening doors: not so much. My thesis adviser was not in the mainstream of our field, and most of my friends were in other fields. My professional contacts started developing when I joined my first startup. I was extremely lucky at this startup in three ways: 1) working with world-class engineers, 2) in a well-conceived and well-funded startup, and 3) they were willing to take me, an academic who actually liked writing software, and give me a chance.

Having a PhD was a potential problem early on. I tried teaching/research after grad school, and discovered that it wasn't for me. (This may have been the transition from a Canadian school with easy access to small amounts of funding, to a grant-writing powerhouse in the US, where professors seemed to spend all of their time pursuing grants.) I was lucky in my transition to the software industry -- I have friends who wanted to make that transition and were not able to. And in fact, at my first startup, there was vague suspicion of me just for having the degree. But now, years later, I think that it was time well spent, better probably than what I'd get out of the usual first jobs after college.

Another thing to keep in mind is what sort of PhD you do. A highly theoretical focus is rarely good preparation for life in the software industry. A highly applied focus is great preparation, (I'm thinking of the long list of developers who have come out of UC Berkeley, and of course, there are the google founders.)

</comment></comment></comment><comment><USER34> Aeron chair. Happy butt makes for long and productive coding hours :)

</comment><comment><USER35> My best investment is telling my wife in front of other people that she's my best investment.

</comment><comment><USER36> Personally: time with family.

Professional: trying to write an HA/clustered "Hello World" app. The knowledge of the deployment and operational aspects has served me well in my software career.

Financial: actively managing my own real estate investments.

The key differences between running one's own software business and actively managing one's properties are:

\- it's a turn-key business where the "product" is so simple and in such high demand that it is relatively hard to screw up by any reasonable person

\- a deeper understanding of the tax system; software consulting typically touches either Schedule C _or_ Sched E (Part 2), while real estate involves schedules A, C, _and_ E(part 1 and 2).

\- a deeper understanding of protecting myself legally

</comment><comment><USER37> I spent $600 on a train ticket from Halifax to Vancouver with stops along the way, and did it by myself. Besides being a great trip, I was exposed to a greater variety of people than I usually have a chance to interact with.

<comment><USER38> The interesting thing I've found out about taking a train cross country (one of those big double-decker Amtraks with observation deck) is that the people on these trains are relaxed. And interesting. I met a couple of cute girls who were doing something inscrutable - it turned out they were making their own Sudoku puzzles by hand with pen and paper. Even the families are cool. Because if you're traveling on the train from Chicago to New York, you're not in a hurry.

The only drawback is if you don't pay for the expensive sleeper cars - sleeping is difficult. To put it this way, there are times where I remember not not sleeping.

<comment><USER37> Definitely. One of my fellow passengers said it best: it's like a hostel on wheels. I would do it again in a second.

I agree about sleeping being difficult, especially as a tall guy. At some point though, rolling through the prairie provinces in the middle of the night and looking up at the stars from the observation car while playing cards or talking with new friends, sleep seems overrated anyway.

</comment></comment></comment><comment><USER39> My startup. It's hard to find a better investment for either time or money than investing in yourself.

</comment><comment><USER40> Early 1995: viewed source in Netscape, saved the file to my desktop, modified the file, and opened the file back up in my browser.

Of course, I was (very luckily) ready for what I saw; I had been doing graphic design at the time and had read Powershift and Neuromancer :)

</comment><comment><USER41> Good private education for our son - I'm not naturally a fan of private education but it is _so_ much better than state education it's really quite sad.

</comment><comment><USER42> Leaving a dead-end job and taking one that paid less but had far more opportunities for learning and growth. I'm now paid twice as much as I was then.

RBS shares. Bought when they dropped from £7.00 to £0.10, now back up to £0.43. Profit!

<comment><USER43> Was it hard taking the lower paying job at the time? Did you feel like you were letting yourself down?

How long did it take for your salary to come back up?

<comment><USER42> It took it about two years to come back up, and another 6 to get me where I am now.

I didn't feel I was letting myself down, but then it helped that I hated the job I had at the time, and because of that I wasn't very good at it :->

</comment></comment></comment><comment><USER44> Learning to shut up (both mouth and mind) when it matters - i.e. listening more than I talk. There are no refunds on what you've said.

</comment><comment><USER45> I might get knocked on the head by HN for saying this, but .... my MBA. Wait, wait, before you hit me, let me explain. My undergrad major was in CS and I did a minor in economics, but I never took marketing classes, I never took a class in organizational behaviour, in pricing theory, accounting etc. I was exposed to a lot of this during my MBA program and it has helped me immensely in the startups I've done since finishing my MBA.

I find that people who have always been entrenched in technical fields have a hard time stepping back and it seeing issues through the eyes of the "average" person - for some definition of average.

But a close second in terms of investment, a second monitor. For programming, having two screens is essential I find. I'd say my productivity increased by 20% (e.g. being able to iteratively prototype more readily, leading to quicker turnaround)

</comment><comment><USER46> Learning English as my second language.

</comment><comment><USER47> From a financial standpoint, buying Apple shares in 1998.

Careerwise, spending all my time at university working on the uni newspaper instead of working on my degree.

<comment><USER48> I can give you a horrible APPL-related investment. I bought AAPL in '02 when it was $12-13 and sold 6 months later because I needed the funds. Purchased a hedged position via a CFD, was worth $400k, which would be worth $10M+ today

Lesson: do buy stock in companies whose products you use and like, and companies who are actually doing something new and interesting. I bought the stock on the back of OS X, which I was a beta tester of, and also on the iPod becoming an entire platform, hence Apple moving into consumer electronics and taking out Sony. Second part of the lesson would be to stick to your initial instincts and not doubt yourself. I ended up making some money from it, but sold far too early because a lot of people whose opinions I valued at the time told me I was crazy for investing so much in a 'tech stock'.

<comment><USER49> The "buy what you know" mantra will get you in serious trouble if you only take it at face value. Its important to know and like the product(s), but that will only get you so far, it won't necessarily make for a sound investment decision.

Knowing and liking the companies products is a nice bonus at best. If your primary motivation for investing in a company is any reason other than a stellar financial outlook, you're not investing wisely. Some horribly despised products have made some of the best investments (cigarettes), while some truly loved products (General Motors) have made terrible investments.

The two ideas aren't completely detached from one another, but when it all boils down, the most important reason is always about the financials of a company and their ability to make money.

<comment><USER50> Your examples aren't very good. Cigarettes are a politically incorrect product, and GM cars are a more politically correct product, but I can't imagine many people who know better to actually prefer GM cars over the competition. Likewise, if an enthusiastic smoker wanted to invest in his favorite tobacco company, maybe that would work out.

A better example than GM might be Krispy Kreme, which was a terrible investment even though the doughnuts are delicious.

<comment><USER49> That's exactly my point though. Whether the product is good or not has little or no bearing on whether the stock is a good buy. It's all about the underlying financial fundamentals of the company.

<comment><USER50> I gave you a decent example of your point, but I'm still not sure the point is good in the general case. GM was a bad investment _and_ a bad bunch of cars.

<comment><USER49> Then I don't understand what the general case is that you're referring to. That overall if people invest in products they like then overall they'll get good investment returns?

I'm saying that someone liking or not liking a product and investing for that reason is irrelevant to the investment returns they can expect, because that decision is based entirely on preference -- the movement of the stock on the other hand is driven entirely by the financials.

<comment><USER50> See, that's not true at all. Someone liking or disliking a product is based largely on whether the product is crap or not, _just like the success of the company_.

<comment><USER49> No it's not. Someone liking or disliking a product is based on their own perception of it's value. There will never be universal agreement on whether a product is good. Who's to say you're right vs. your neighbor who says the product is crap? How can you possibly use that as the basis for an investment decision?

I wish you the best of luck with that investment strategy. To look at a company and say "Hmmm, I like their product. I'll buy the stock!" is horrible advice to give. That's what amateurs do. You haven't looked at the underlying fundamentals of the company. You haven't looked at the management team. You haven't looked at it's current valuation. You have no basis to say that investment is going to succeed -- it could be wildly overvalued, but you wouldn't know because you're investing based on emotion and feelings, not based on facts.

<comment><USER50> You're saying there's no such thing as an objectively good product, simply because people disagree on the matter of which products are good and which are bad. But disagreement isn't any sign that there's no fact to the matter-- people disagree about matters of fact all the time.

A good product might not be sufficient or necessary to make a good stock, but it seems like a major influence--and I would be very reluctant to invest in a company which pathologically produces poor products (GM, Microsoft, Dell, HP). Of course there are other factors to consider, and investing in individual stocks is a fool's errand anyway.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER51> Travelling.

Especially when I was 19 I finished high school (standard time at Czech Republic) and move to UK for few months. I was quite young, barely speak English, have very little money (like 500 pounds) and don't know anybody there.

These few months learn me a lot about independence and such.

</comment><comment><USER52> The best investment I ever made was education. In the form of quitting school and learning on my own. Classroom learning never worked for me. My only regret is not being able to do it earlier in life.

</comment><comment><USER53> HTML Brochures. People Love Them and respond almost 2x as often.

<comment><USER54> What do you mean by "HTML brochures" and what are you comparing them to to get the 2x uplift number from? Curious.

<comment><USER53> Typical boilerplate email response letters using plain text vs HTML email response using brochure type format, they even respond better to the generic HTML than to the customized plain text email.

These are emails to people posting job work available on any site, or "friends of customers wondering what we've done".

These brochures are based off email list type designs, such as would be used to solicit donations for a charity or to keep past customers informed of happenings at a retail outlet.

<comment><USER55> I'm not quite sure in what kind of context and what kind of audience: is it for contract/freelance kind of jobs to present yourself? (or your company)

Your comment made me wonder how that would work for full-time job applications and at first thought, I'd think it would annoy people more than anything because you'd be more likely to send them to your peers. (and the HN-type tend IMO to prefer plain text)

But, I'm ready to challenge that idea. If people have used HTML emails for job applications/cover letters with success, I'd be very interested to read about it because it sounds like it's not the right place to do so, but it would still make one pop out of the pile.

</comment></comment></comment></comment><comment><USER56> I don't spend time working on paying gigs so I could put money in other people's businesses.

Instead, I take as few of those jobs I can and invest my time in me.

</comment><comment><USER57> Life is time machine. My best investment is that I spend almost half and one year to do what I love and love what I do. It's really amazing to be myself and Be truely myself. I love my unique life no matter what happened but only precious memory and I learned why once the poor stranger man wanted to frighten me , even wanted to bully me and he really wanted to steal my money to just have a meal. In other words, I really hope he can have a decent life. I was totally shocked by this big gap between the rich and the poor. I am also one of the poor.

and What's more? In this free and care-free, happy year, I know TED talks and I join the big Global communities to share the ideas worth spreading and Sharing in actions. I know what's my great interest and my passion and I can do better and improve daily. I deserve what I give. So I am lucky dog. Certainaly, my very precious inverstment is include the family and friends too in this half and one year. More and more precious things in this Gap Year. okay.

</comment><comment><USER58> Going to college. It paid for itself after about 1.5 years. If I didn't go to college, I probably never would have believed that I could start a successful business. I went to college hoping for a good job when I got out. I left college hoping to retire at an early age.

</comment><comment><USER59> Finding and seeing a good therapist.

</comment><comment><USER60> Here is my best and worst investments. When I was around 14, I wanted to get into the stock market. So, I heard that AMD had beat Intel to the punch with x86-64 chips and Intel was planning on licensing the technology. So I invested in AMD at around 10 and I ended up selling it at around 18. Then took that money and invested in a treasure hunting company at .70 a share and it dropped to .10 a share. They had claimed to have a new technology for finding gold that did not disrupt the reefs, so they would be able to get permits to look for sunken Spanish galleons. Didn't really work out for me, but I was young and I thought it was cool to say that I invested in a gold mining company.

</comment><comment><USER61> 1\. I used to be a graphic designer so teaching myself programming literally doubled my salary.

2\. My safari.oreilly.com account, see #1. $40/m for access to almost every dev book ever written is a steal.

<comment><USER62> No, technically downloading every dev book ever written in pdf via bit torrent is 'a steal'.

</comment></comment><comment><USER63> I spent a taking English classes at a local community college so I could graduate a year early from high school. I consider the decision to graduate early one of the best I've ever made. Staying there a year longer would have been a complete waste of time, and life since then has been so much better.

In terms of programming, my best investment has definitely been learning Vim. I sacrificed a little productivity for a week or so, and now I'm way more productive than I was before.

</comment><comment><USER64> Probably learning a new language. Wanted to develop a JP site so after 2 years and lots of studying starting to get a handle on the lang, and having lots of fun doing it. Very rewarding so far.

Financially, probably China. Only problem is can't convert RMB -> USD so it's like monopoly money. Maybe one day can buy gold and send it over on a container vessel :)

<comment><USER65> Getting money out of China is pretty easy and it seems everyone with a lot of RMB does it.

</comment></comment><comment><USER66> The best investment I've made has been quitting a well-paid, big company job to work for an early Rails software startup.

I worked many more hours and was paid less money (the investment).

I had an amazing time, learned very valuable skills, and am in a much better place in my career because of it.

This will continue paying dividends in salary and enjoying my work for the rest of my life.

</comment><comment><USER67> "Programming Perl" (the first edition) by Wall and Schwartz. Reading that book helped me land my first programming job.

</comment><comment><USER68>
      1) My kids.
      2) My health (and I couldn't have gotten well without the help of my kids).
      3) Time spent getting to know some really interesting people who broadened my horizons.
      4) "Travel" (well, more accurately, living different places).

</comment><comment><USER69> Reading "Happiness: A Guide to Developing Life's Most Important Skill" from Matthieu Ricard.

<comment><USER61> Couldn't agree more, this book opened my eyes (or mind). The Mingyur Rinpoche books are great too.

</comment></comment><comment><USER70> A second monitor.

</comment><comment><USER71> Unconditionally loving people for who they are, _not_ who I want them to be.

</comment><comment><USER72> This is financial, but good move on my part. I invested in Apple the day before the release of the first iPhone ($120 a share). I then recently used some of it to buy a car way out of my league ($270 a share).

<comment><USER73> AAPL has been very good to me as well, I bought in at $73.25 in 2006. I bought more in 2009 right around the 3gs announcement at $140.66. Then in 2010 when the iPad was announced I bought a couple of times (especially when it went below 200 at an average price of $201)

I have found it tends to dip right around or after announcements, there are usually good chances to buy especially if the announcement doesn't blow everyone out of the water.

</comment></comment><comment><USER74> LASER eye surgery. Best money I ever spent.

</comment><comment><USER75> Land. By far.

But I have high hopes for learning Haskell.

</comment><comment><USER76> Anything I end up giving away.

</comment><comment><USER77> Education and friendships.

</comment><comment><USER78> My education.

</comment><comment><USER79> Real estate.

</comment><comment><USER80> education

</comment><comment><USER81> attending university</comment>


Beyond the PDP-11: Processor support for a memory-safe C abstract machine [pdf] - <AUTHOR> http://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/201503-asplos2015-cheri-cmachine.pdf

<comment><USER2> This is a really interesting paper which I haven't been able to finish in detail yet. Just a couple of quick reactions:

> We would like to be able to make a const pointer a guarantee that nothing > that receives the pointer may write to the resulting memory. This allows > const pointers to be passed across security-domain boundaries.

I've always wished that were the case too. It would also allow the compiler more optimization opportunities, because it could assume that a call to f(&x) will not change x unless a non-const pointer to x has escaped.

> Container describes behavior in a macro common in the Linux, BSD, and > Windows kernels that, given a pointer to a structure member, returns a > pointer to the enclosing structure [20]. This may or may not be permitted > behavior according to the standard, due to the ambiguous definition of > 'object'.

I'm not sure what interpretation of the C standard would disallow this. For the initial member of a structure it seems particularly clear-cut that it is allowed:

C99, 220.127.116.11.13:

"A pointer to a structure object, suitably converted, points to its initial member (or if that member is a bit-field, then to the unit in which it resides), and vice versa. There may be unnamed padding within a structure object, but not at its beginning."

This seems to pretty unambiguously state that you can convert a pointer to an initial member to a pointer to the enclosing struct. I can't imagine what interpretation of the standard would disallow this, or even disallow using offsetof() to convert a non-first member to a pointer to the struct.

<comment><USER3> The C standard guarantees Pointer to Struct ~ Pointer to (transitively)-initial Member (through casts, either directly or via `void*` or via `intptr_t`). It doesn't guarantee Pointer to Struct + offset ~ Pointer to non-initial Member for any value of offset.

<comment><USER2> So you can easily use &struct_var->member to go from pointer-to-struct to pointer-to-member.

It sounds like you are claiming that there is no way to go back.

</comment></comment></comment><comment><USER4> I worked on a 68K emulator that supported heap tagging, so you could:

\- detect multiple frees of the same memory, even when pointers had been returned by subsequent allocation calls (e.g., alloc => A, free(A), alloc => A', free(A) would trap, where A and A' have the same program-observable values)

\- trap reads and writes to free'd memory, even if the memory had been subsequently re-allocated

\- do strong bounds checking (can't read or write heap block B with an offset of a pointer to A, even if you computed a valid address in B)

\- trap reads of uninitialized memory (you _did_ mean to zero that buffer you allocated, right?), clear down to "that read of 32 bits included 8 bits that weren't initialized, did you mean that?"

It wasn't perfect (you could do pointer arithmetic and smuggling operations that foiled the tagging), but we found some nice bugs with it.

You can approach this with MMU games, but tagging all your values is more powerful.

<comment><USER5> Could you point me to some more info on this?

<comment><USER4> Internal project for a company I worked for about 15 years ago. Proprietary and dead.

I can say that a modern CPU ran the 68K emulator at an instruction ratio of well over 100 to 1, with similar ratio of memory footprint, and that you can do quite interesting things with all those extra resources.

</comment></comment></comment><comment><USER6> They built a custom CPU on an FPGA that is memory-safe for widely used C undefined behavior. They still need "fat pointers"; this doesn't let them run existing executables, or anything close to them. It's neat that they were able to do this. It's painful that they had to.

The "container"/"offsetof" problem is strange. If you only have a pointer to a member of a struct, you don't really know the type of the containing struct. You don't even know if there _is_ a containing struct. "offsetof" implies an unchecked cast, violating type checking. Why is that used anywhere, let alone in the Linux kernel? (In decades of C/C++ programming, I never wanted to do that.)

This is why I really hope Rust can replace C. (As I write occasionally, "Rust guys, please don't screw it up".) Rust is complicated, but it's simpler than the semantics of C undefined behavior. That may be the answer to use on C programmers who think Rust is too complicated. All those little issues in C, such as "can you dereference the element one past the end of the array" and "after dereferencing, what happens if you then test for a null pointer" require a good understanding of the machine model and how an optimizing compiler works.

<comment><USER3> > why Linux uses offsetof

Essentially, downcasting with "multiple inheritance" (non-linear subtyping) and thin pointers - objects can be members of several intrusive linked lists, held by different parts of the kernel, and container_of is used to get an object from the LL pointer after you know the type.

</comment></comment><comment><USER7> Pretty cool. If C was designed to run nicely on the PDP-11 its slightly strange that that could be a better machine for it to run on. Maybe in the future somebody will make a language for the CHERI machine.</comment>


Ask HN: How do you handle "corporate IT" needs at a startup? - <AUTHOR>

Large companies have an internal IT department to manage disk encryption monitoring, support, firewalls, virus scanner installation and upgrades, etc. Smaller startups, how do you handle this stuff?
Most of the IT companies that are willing to quote services beyond the basic "let your users call us for help" usually offer outdated disk encryption software, secure thumb drives and on-premise Active Directory installations. Yikes! I'd think someone would offer to manage Google Apps, set up multi-factor auth, and provision and manage various cloud services. Also, if users are calling for help, I want the IT company to have experience with cloud services, so that the IT support is efficient.
Pipe dream or is there a "corporate IT for startups" startup or provider out there? <comment><USER2> There are lots of companies offering those services, you just have to find one who balances a good price, good service and availability for when you really need them. Many of them could offer an integral package, but some others just offer an specialty at a reduced price. E.g. I have a quite specialised service where I review packet captures for you: [http://www.netstrikeforce.com](http://www.netstrikeforce.com) We use ZenDesk as the communications interface (over HTTPS, not over email) due to the nature of the information exchanged.

On the other hand you may want to have a look at managed cloud service providers where you've got a bunch of quite tenured sysads available 24x7.

</comment><comment><USER3> Do you really need an IT department to handle all that? Why not let the employees be responsible for their own machines?

Google apps is not that hard to manage: definitely setup a script to make it easy to create new users and add them to groups, because it takes about 7000 clicks otherwise.

</comment><comment><USER4> Microsoft Intune tries to do that for SMBs. Haven't tried it however, so cannot say I recommend it, but if they're mostly Windows machines it might work for you.

For the $6/user/month you also get a Windows 8 Enterprise licence I believe (although check with them re:that).

</comment><comment><USER5> At least some MSPs are managing cloud services for their customers, so ask around. Maybe Google/MS have lists of their resellers somewhere?</comment>


Microtransaction startup inspired by lessons from my failed new media site - <AUTHOR> http://picopass.com <comment><AUTHOR> I was trying to build a new media site for several months but I faced several problems.

(1) They are capital-intensive, even at small scale

(2) Audience growth is either slow and free or paid and really bad

(3) It struck me as perverse that the only good way to get paid for work and content is by conversions luring your audience to advertisers

The first two aren't terrible sins. Some industries are harder to break into than others. I'm not terribly high on capital or time right now, so it just didn't make sense for me.

But number 3 really stuck out to me.

I've talked to a lot of people about the problem now, and while some just aren't willing to pay for any content ever, a lot expressed frustration that they'd love to read paywalled articles from time-to-time except it's not worth getting an entire subscription to do it.

Some people even talked about wanting "some way to let a website know how amazing" some articles are.

This spawned Pico-- a microtransaction platform we hope will eventually become ubiquitous on the internet for one-time micropayments for articles, videos, you name it. A lot of the internet isn't (and shouldn't) be behind paywalls, so Pico will also have microtip options (and will tally microtips with a "X users Picotipped this" sort of message to let people know how popular content is).

We're going to have a bit of a chicken-egg challenge: Pico is worthless to users if creators and publishers aren't adopting it, and its not beneficial to creators and publishers if there aren't any users to pay them on it. But we think if we start small, demonstrate the potential of this revenue stream both for creators to generate more revenue and for users to reward and incentivize good content, and push hard to grow it, Pico could change the way we pay for content on the internet.</comment>


Richard Hamming - You and your research - <AUTHOR> http://www.cs.virginia.edu/~robins/YouAndYourResearch.pdf <comment><USER2> Hey fogus, reading 'Coders at work too ?' :)</comment>


How can I identify primary article text when scraping news pages - <AUTHOR> I suspect this is a hard problem and that deep learning is the state of the art.  But maybe I'm missing something?
Just to be clear, given the html of a wapo article I want to discard all the affiliate links/comments and focus on the article text.  I want a generalized solution for many blogs and news sites.
Any tips? <comment><USER2> I've had some good luck with "Unfluff"[0], a credible Node.js package that uses a cascade of logical conditions to figure out what to extract.

It's a very practical start.

I thought the science of it was called "envelope detection" but I'm not getting any relevant hits on that keyword. Will report back if I recall the name.

[0] [https://www.npmjs.com/package/unfluff](https://www.npmjs.com/package/unfluff)

</comment><comment><USER3> You haven't give any details about programming language preferences but if you're interested in a Python approach then Newspaper3k is worth a look

[https://github.com/codelucas/newspaper](https://github.com/codelucas/newspaper)</comment>


Ask YC: Which OS are you using on your app's server(s)? - <AUTHOR>

I'm just curious as to what OS everyone is using for their app (e.g., CentOS, Debian, FreeBSD, NetBSD, Solaris, Ubuntu) and did you have any particular reason for choosing that OS?<p>For me, I just have a 'play' VPS right now that I'm running Ubuntu 7.10 on. I like Debian-based distros. <comment><USER2> Definitely Debian. Had some adventures into the world of FreeBSD, but I have been using Debian for many years, and I know where everything is located and it's pretty solid and stable, if you know your deal. I'll probally stick around for a while.

Does anybody have experience with Ubuntu Server? While Ubuntu is a great distro for people new into the linux-world and people who just need something that Work's Out Of The Box, are there any advantages over Debian, with the server edition, that is?

<comment><USER3> """Does anybody have experience with Ubuntu Server?"""

Ubuntu is great. We decided to go for Ubuntu because at the time we made that decision, Debian was still at 3.1 and very outdated. They have played catchup since then and 4.0 is much more modern (i'm mostly talking about more recent versions of popular stuff like postfix, postgres, mysql, gcc, etc.).

We standardized on 6.06/LTS but I've been also been playing with the 8.04/LTS release that is coming up. Looks very nice and we will probably switch to it. For new installations. Old stuff still runs rock solid.

<comment><USER2> But I suppose the server-edition is not as 'bloated' as desktop? Personally I'm not much for using Ubuntu on the desktop, because the standard installation contains way too much bloat. Like a `bluetoothd` running standard. But if the server-edition comes pretty 'unbloated' out of the box, I might consider that for my next setup.

<comment><AUTHOR> The default installation is pretty bare just like Debian. I've had no issues with it, and it does offer more up-to-date software compared to Debian (as well as Python 2.5 being the default unlike Debian, if you're using that).

</comment></comment></comment></comment><comment><USER4> I've written at length about this:

<http://www.obsceneart.com/?p=30>

Our software runs on millions of servers world-wide running every OS imaginable, and so I'll self-righteously claim the exclusive privilege of making bold pronouncements and expecting everyone just to go along with them.

</comment><comment><USER5> I use CentOS on my server, mostly because I'm the most familiar with Red Hat- based distributions. I like Ubuntu a lot more on the desktop. If I was using an Ubuntu desktop full-time, I'd certainly consider using Ubuntu on the server as well.

</comment><comment><USER6> In my opinion you should choose what know best, assuming what you know is at least a semi-popular production server OS, especially if you have some decent experience already with said OS.

I recently looked into (Open)Solaris for DTrace and ZFS, but unless I want to put in a lot of time understanding the differences between Solaris and what I'm familiar with (recent GNU/Linux), I don't want to be in an "oh god what do I do something is wrong?!" state. In the end, I don't see enough value in DTrace/ZFS to relearn everything, because in the end it's just infrastructure.

</comment><comment><USER7> FreeBSD.

Makes most sense to me, but I have nothing against other oses. Just what I started with and what I keep coming back to.

<comment><USER8> I also found my way back to FreeBSD when I wandered -- so often, in fact, that now I don't use anything else except OS X on my PowerBook.

</comment></comment><comment><USER9> Seems like Debian/Ubuntu is the popular choice around here. Same with me. OS X on my dev box, Ubuntu on our backup server and Debian on our live server. I've used Fedora/Red Hat for a while as well, but just don't like/trust the package management like I do with apt.

</comment><comment><USER10> I run Debian exclusively on my servers. I don't have any great reason why it's better than any other distro, it's just what I learned first and I know where everything is.

</comment><comment><USER11> FreeBSD (6.3) on one, OpenBSD on another.

Both choices were made mostly for the fact that I'm familiar with them, and they seem trustworthy (reliable, lacking gaping security holes out of the box, though I'd hope the latter is the case for most Linux distros as well). While I'd probably enjoy spending time improving my sysadmin-fu, it wouldn't have been a wise way to spend time for either of these projects.

</comment><comment><USER12> I use Ubuntu Server since I already useUbuntu as my desktop so there's no learning curve (besides using the console instead of X).

</comment><comment><USER3> Ubuntu. But I would love to deploy more on Solaris or Open Solaris. When you have to deal with performance issues then Solaris is king. It has so many excellent tools to figure out what applications are doing. Standard linux can't even show on a per-process basis what is causing disk io for example. Stuff like that is a no-brainer on Solaris.

</comment><comment><USER13> Slackware and Slamd64 on ~190 servers, stripped down to 120 megs. Downloads root filesystem with netboot and runs it in-memory.

</comment><comment><USER14> Ubuntu.

We used CentOS when I started (because it was the EC2 default back then or something), but as we grew everybody seemed to know Debian better, so we switched. I find it's much easier to find and install packages for Ubuntu than it was for CentOS, but I admit that may well be because I'm an idiot (esp. w.r.t. RPMs).

</comment><comment><USER15> I use fedora but striped down to the core. I like to build the webserver and other tools so that I can customize.

</comment><comment><USER16> CentOS, SuSE, Fedora, Windows Server 2003.

I've had the most enjoyment (surprisingly) with SuSE because of AppArmor's ability to cover holes in flaws for open-source PHP software we used early on. yast is also kind of handy for some of our non-Linux gurus.

</comment><comment><USER17> For my personal stuff, I run Ubuntu 7.10 because Ubuntu was my first experience with Linux (in May '07), and it's what I'm most comfortable with.

At work (I work at a startup), we're using CentOS 5 because that's all that (mt) offers.

</comment><comment><USER18> Another vote for Debian. I've been using it for years, so I know how to secure it really well, it's solid, easy to use, all that jazz. I run OS X for my local development machine, but in production I use Debian everywhere.

</comment><comment><USER19> Linux. Debian on my shared server and Ubuntu 7.10 on the laptop and dev server.

I've been looking into Solaris (for ZFS), but debian-based distros is what I know, so it's what I'll use for now.

</comment><comment><USER20> Gentoo - it's what I know.

</comment><comment><USER21> CentOS 5.1 - we started on a hosted LiquidWeb box (they were installing CentOS4 at the time), and since it worked near-flawlessly for us, decided to standardize on it as we grew.

</comment><comment><USER22> In my wanderings I see CentOS more than anything else. A lot of people here mention Debian which I haven't run across at all and of course Ubuntu is pretty frequent as well.

</comment><comment><USER23> gentoo on ~1800 virtual machines.

</comment><comment><USER24> Windows Server 2003/2008, Ubuntu 7.10, CentOS 5, and FreeBSD 6.3/7

I'm hoping to move to Windows 2008 and FreeBSD 7 or Ubuntu 7.10 everywhere.

</comment><comment><USER25> mate try and experiment with a couple - i know it is easier said than done. I am currently using Fedora 8. for an intermediate user like myself, it was not too packed and at the same time not too stripped so I could configure it as I learnt more and more.

</comment><comment><USER26> RHEL -- wanted Linux and our host doesn't offer many other variants. OS X on dev though ;)

</comment><comment><USER27> FreeBSD 6.2

I've deployed it before, it's rock solid, secure and the ports system rocks.

</comment><comment><USER28> 1.Debian 2\. CentOs

Debian is more stable and just holistically better in my opinion...

</comment><comment><USER29> ubuntu 6.06 LTS.

I will probably upgrade to the next LTS when it becomes available.

</comment><comment><USER30> Slackware. Call me crazy.

</comment><comment><USER31> FreeBSD 7.0 on dedicated server, Ubuntu 7.10 on 512mb RAM VPS.

</comment><comment><USER32> Debian Stable.

It is called "stable" for a reason, you know.

</comment><comment><USER33> CentOS, because it seemed best supported by VirtualMin Free

</comment><comment><USER34> rPath Linux. I used the public rBuilder to create a recipe and then build both an EC2 AMI and a local Xen DomU image with everything I needed in a day.

</comment><comment><USER35> Gentoo on Xen host.

</comment><comment><USER36> Test server is gentoo, production may vary.

</comment><comment><USER37> ubuntu 7.10 on EC2. Chosen simply because of familiarity, excessive documentation and the ease of apt-get.

</comment><comment><USER38> A mixture of Ubuntu and Mac OS X.

</comment><comment><USER39> gentoo, I'm a control freak...

</comment><comment><USER40> debian, ubuntu, novell netware, mac os x, win 2k3

</comment><comment><USER41> Debian and RedHat

</comment><comment><USER42> Fedora 7 64-bit.

</comment><comment><USER43> Only Debian.

</comment><comment><USER44> os x tiger</comment>


Apple CEO Tim Cook says he wouldn't be in the situation Mark Zuckerberg is in - <AUTHOR> https://www.washingtonexaminer.com/policy/technology/apple-ceo-tim-cook-says-he-wouldnt-be-in-the-situation-mark-zuckerberg-is-in <comment><USER2> No idea why Cook feels the need to comment on any of this, just seems like virtue signalling really.

>Tim Cook said if his company wanted, it could treat customers like a product and monetize from it

Could they? I mean the fact every move into social or advertising has failed for Apple says otherwise.</comment>


Why Norway is a BS argument for higher taxes - <AUTHOR> https://www.sovereignman.com/lifestyle-design/why-norway-is-a-bs-argument-for-higher-taxes-8235/ <comment><USER2> This is wrong on so many accounts that is not even funny. Corporate tax is 28%. It is low by many standards. That 78% applies only if one is in the oil/gas business.

My personal income tax is about 35% on a salary that is much higher than average. For households it is noticeably lower especially if one takes into account direct payments for children. Even for cases when both parents have high salary the total tax will be around 50K USD per year.

Yes, VAT is 25%, but it is not particularly high by European standards. Poland is not known for high taxes, but VAT there is 23%.

Now consider the benefits. Given that University education is free and students can get loans from the state on very attractive terms to cover living expenses, after 6 years of studies one may accumulate a debt of 30-40K USD if one just studies with no income from any jobs.

I have no idea where the author took that 31 hour of working per weak. The standard number is 37.5 hours. True in some big companies like banks it is OK to submit time sheets with 127 hours per month, but this is rare. From my experience on engineering positions in SMB overtime is expected, just not all the time.

Most people work in SMBs, not government bureaucracies or government-owned companies or big businesses. Businesses are very competitive. Just consider that Opera browser, the QT library and Mali GPUs are developed in Norway. I personally consulted a company that won engineering contracts against Siemens in Germany and a company that we share the office with like 20 people just won a contract in France competing against big French companies.

<comment><USER3> Don't forget healthcare costs in the US. Which are about 33% of median income per capita.

<comment><USER4> And worse outcomes: it's more money for worse care. Also, the individual risks going bankrupt. If an individual gets some cancer that's crazy expensive to treat, they lose everything they own in the US and sometimes still can't afford treatment.

</comment></comment></comment><comment><USER5> _As an example, the office complex across from my hotel room was a ghost town by 5:06pm yesterday afternoon. And work hours in general here have declined steadily over past decades to just 31 hours per week._

Sounds good to me.

 _Sure, the system gives them lots of leisure time to enjoy… but this is not necessarily a choice they make freely, rather the only choice they have._

People don't have any choice about their free time in the Anglo-sphere either. Out of the two options I know which most people would choose.

 _People who think that 'we should just be like Norway' are missing an even greater point: all of this central planning is made possible by huge oil reserves… and for that matter, oil reserves that are DECADES past their peak production._

It seems to me out of all the oil rich countries Norway has managed the in- balance in their economy the best.

 _Simon Black is an international investor, entrepreneur, and founder of Sovereign Man. His free daily e-letter Notes from the Field is about using the experiences from his life and travels to help you achieve more freedom, make more money, keep more of it, and protect it all from bankrupt governments._

Well there you go, conveniently forgetting he didn't make the land, bury create the oil, educate the population ...

<comment><USER6> > to help you achieve more freedom, make more money, keep more of it, and > protect it all from bankrupt governments

The author bio could do with some work. Norway owns the biggest sovereign wealth fund in the world, with a population of 5 million.

</comment></comment><comment><USER7> Well, that was amusing. All the best elements of comedy and fiction combined. It's the writer an accomplished author in this genre?

</comment><comment><USER8> sweet conflict of interest, what is this? a cheeky text selling something smelling like tax evasion at its bottom!

</comment><comment><USER9> There are always trade offs. Norway seems focused on the well-being of its people rather than exhausting them to maximise the results(with collateral victims, of course). It seems most of them like to be happy and vote for this system, it's a democracy after all.

I'm actually surprises that it works so well. They are many unhappy socialist states(in EU as well) that don't deliver on their promise.

Norway is not a big country(5.3 mil) so you should't expect it to invent much.

I think the OP argument against NW is actually BS. If anything, Norway is socialism done right.</comment>


Brainstorming with Marc Andreessen - <AUTHOR> http://fortune.com/2015/04/10/brainstorming-with-marc-andreessen/ <comment><USER2> Interesting point he made about how innovation will bring down prices in healthcare / education, and in turn there will be a boom in demand in places in the world that don't currently have ability to afford these services.

What I think is left to be decided is what kind of innovations will happen in these spaces, which plays into the above point as to how much the innovation will either create or destroy jobs in those sectors.

For example, Khan Academy. For someone with an internet connection they can teach themselves and/or leverage the community when they come across something they're having trouble understanding. These days there are so many resources available about so many things, it's hard to imagine people will suddenly become more inclined to want to pay for something they can get for free online. So perhaps the only jobs that are truly safe in education are those on the fringe / cutting edge. Theorists / researchers, etc.

In healthcare it's more hazy I think, but still the innovations will either try to tackle "enabling" technologies which make it easier for doctors to do their job, or cut the middle man entirely and go direct to consumer. For example, why would I need a doctor to tell me I have cancer if I have a compact portable device that can tell me the answer to this question with 99.99% accuracy?

So, then perhaps those who are truly safe are surgeons or researchers. Then again with more early detection / preventative innovation my hunch is, as a result, far fewer people will end up on the operating table.</comment>


Effects of Titanium Dioxide Nanoparticles Exposure on Human Health–A Review - <AUTHOR> https://link.springer.com/article/10.1007/s12011-019-01706-6 <comment><AUTHOR> Please see [https://j.mp/titanium-dioxide](https://j.mp/titanium-dioxide) for some more publications showing harm.</comment>


How WordPress Ate the Internet in 2016 and the World in 2017 - <AUTHOR> http://www.forbes.com/sites/montymunford/2016/12/22/how-wordpress-ate-the-internet-in-2016-and-the-world-in-2017/#2b69d1934b24 <comment><USER2> Having built Wordpress CMS systems in a variety of scenarios I find it an incredibly frustrating piece of technology. For common framework expectations / patterns in 2016 it feels at least 5-10 years behind. It's difficult to migrate, have multiple environments, deploy, and so much more. In almost every respect I find alternatives such as Craft CMS (php/yii) or Wagtail (Python/Django) vastly superior and much easier to customize. The only reason I find it continues its momentum is that it has word of mouth for managers, mindshare with editors / content managers who know the admin ui well and expect more of the same, and it has a very large plugin/theme ecosystem for people who want to get started very quickly. The problem, especially with some of these themes is that they are almost impossible to extend and maintain and they are very bloated. I find that lately I either choose a flat file CMS for a client (Kirby, Grav) or if its a very simple site I use either Squarespace or Webflow and for other cases I choose Craft CMS, Wagtail or others which need a database backend.

<comment><USER3> > It's difficult to migrate, have multiple environments, deploy, and so much > more.

Sorry, that's kind of silly. WordPress can be incredibly frustrating, for sure, but there's a multitude of migration, deployment, and local development options.

We use Roots tools exclusively -

[https://roots.io/](https://roots.io/)

<comment><USER4> Agreed. I started using Roots in 2015 and never looked back.

</comment></comment></comment><comment><USER5> I helped a local non-profit launch a WordPress site recently, having not kept up to date on WordPress for about a decade.

If you ignore the security implications, the plugin mechanism is astonishingly productive - I needed some 301 redirects, so I searched the plugin dashboard for "redirect", clicked "install" and instantly had a new control panel for setting custom redirects.

The variety and quality of available themes is even more impressive. I'm beginning to understand why the overall ecosystem is such a powerhouse, especially as a tool to enable technical-but-not-software-engineer people to build and deploy their own complex sites.

<comment><USER6> To play the devil's advocate, how fundamentally different is it from searching for a gem that allows some function and copy-pasting some example other than that a non-software engineer can do it?

I know, it caters to different kind users, and libraries are typically meant for code consumption (and show the source code up-front and encourage peer contribution), but there is a similar vector here.

<comment><USER5> It was a one-click install - I clicked a button in the Wordpress admin panel and I could start using the functionality. No text editor, no SSHing anywhere, everything happened in my browser. Definitely fundamentally different from copy and pasting code or installing a gem.

</comment></comment></comment><comment><USER7> I love WordPress. The security of the core software and its ecosystem of plugins is so horrible that's it's guaranteed a steady source of income for me for years from dozens of clients.

There are lots of small businesses that are dedicated to creating WordPress sites for their clients. They just download a theme (sometimes pirated) and add info relevant to the client, then charge them for the work (once), for every modification and for the hosting every year.

Make yourself a friend of the owner of that business and every time one of their client's sites gets hacked, that's going to be the easiest buck you'll ever make--download the entire FTP tree and hunt for the obvious.

</comment><comment><USER8> The opening paragraph is just an unadulterated train wreck. Forbes continues its path down being nothing more than a mouthpiece for PR folks.

"WordPress is the most popular CMS in the world and is used by nearly 75 million websites. According to WordPress, more than 409 million people view more than 23.6 billion pages each month and users produce 69.5 million new posts and 46.8 million new comments every month. It also powers more than 25% of the world's websites."

<comment><USER9> I hate Forbes as well, but what's wrong with this expression? Care to explain?

</comment></comment><comment><USER3> If I remember correctly being part of the Forbes "contributor network" is a small step up (or a few steps down) from saying "Hey, I have my own blog".

"According to WordPress..." what does that even mean? According to the foundation? Automattic?

I'm surprised this article is even posted here, my guess is the author posted it himself.

<comment><AUTHOR> I think "According to WordPress..." means as posted on the wordpress.com site: [https://wordpress.com/activity/](https://wordpress.com/activity/)

I posted it and am not the author. WordPress is interesting from the business point of view even if the tech is a bit ropey.

Author this bloke: [https://www.youtube.com/watch?v=ug8un9XCo-g&feature=youtu.be...](https://www.youtube.com/watch?v=ug8un9XCo-g&feature=youtu.be&t=5m52s)

</comment></comment><comment><USER10> It's reached the "nobody got fired for buying IBM" stage; Wordpress has sufficiently high name recognition and base of users that it's the default choice. In fact, it saves a lot of research and frustration. Don't worry about what your needs are, just install wordpress.

</comment><comment><USER11> A bit fluffy. I think that WordPress will continue to see strong adoption and the rest API will definitely help things, but I don't see it taking over the world.

<comment><USER12> Good job by Automattic's PR hacks on pushing the CMS ("not just blogging") angle.

<comment><USER3> It's definitely not something from Automattic, smart people work there.

<comment><USER12> No, of course not. Some guy at Forbes just decided to wake up one morning and extol the virtues of WordPress.

<comment><USER3> > No, of course not. Some guy at Forbes just decided to wake up one morning > and extol the virtues of WordPress.

In spite of your sarcasm you pretty much nailed it, except the guy doesn't work for Forbes. He's part of the contributor network, which is essentially a few thousand bloggers that get paid based on how much traffic they generate for the site.

Do your homework next time.

</comment></comment></comment></comment></comment><comment><USER13> PR or not, good writing should lead the reader along smoothly and not make you go "what the hell did he just say?"

</comment><comment><USER14> Oh, dear. So many CPU cycles wasted.</comment>


Show HN: Save, Invest, Achieve Kids Dreams with Loved - beta testers? - <AUTHOR> Hi guys - looking for some insightful beta testers for Loved - the World's first investing app designed with kids in mind. Achieve goals, create a portfolio and we'll educate your kids for a better financial future. Download our app just released to the app store below and please pass on comments here or to firstname.lastname@example.com
https://itunes.apple.com/us/app/loved-invest-for-your-kids/i... <comment><USER2> > __ _No matter how big or small your child 's dream, Loved allows you to > achieve it. Add your children then we'll hope you start saving & investing > for them by setting goals and creating a portfolio of investments for their > future. From college, to their first car, a bicycle, Christmas present, gap > year travel, rainy day fund, or seed money for a business - you can achieve > it all with Loved._ __

Should that say ... HELP you start...?

It still reads fine - but, seems like you meant to say help.

\---

The FAQ on your website 404s

There is no contact/info on who you are as a company.

You have multiple names/domains which seems/feels shady: loved.com LovedWealth.com ElevatedPrinciples

this URL is mis-spelled: [https://www.loved.com/carrers.html](https://www.loved.com/carrers.html)

and there is still a wait-list link on that page, even though you've launched in the app store.

The copy on how it works is weak.

Connecting ones bank account would be something to do if you were more known...

The multiple URLs, and no idea who you are, the failing FAQ link dont inspire confidence.

</comment><comment><AUTHOR> Also thanks for passing on these comments, we've been more focussed on the app itself than our website which is in v0.1 - really appreciate your comments though and looking for a great web developer to drive that part of it

</comment><comment><AUTHOR> Thanks! Typo, fixing that now @Samstave - love if you can try it out for a son/daughter, nephew/niece or other child you care for!</comment>


The Problem with EULAs (sneaky bitcoin mining) - <AUTHOR> https://www.schneier.com/blog/archives/2013/12/the_problem_wit_5.html

<comment><USER2> What if some intern at Sony adds a little mining-when-idle module to the next PS4 update? Surely this would generate decent profit?</comment>


Ask HN: How can you save money while living on poverty level? - <AUTHOR> I freelance remotely, making roughly $1200 a month as a programmer because I only work 10 hours maximum each week (limited by my contract). I share the apartment with my mom, and It's a section 8 so our rent contributions are based on the income we make. My contribution towards rent is $400 a month.
Although I make more money than my mom (she's of retirement age and only works 1-2 days a week), while I'm looking for more work I want to figure out how to move out and live more independently on only $1200 a month.
I need to live frugally and want to know what I can cut more easily. I own a used car (already paid in full), and pay my own car insurance, electricity, phone and internet. After all that I have about $400 left each month which can be eaten up by going out or some emergency funds.
More recently I had to pay for my new city parking sticker so that's $100 more in expenses this particular month. I would be satisfied just living in a far off town paying the same $400 a month, I feel my dollars would stretch further since I now get 100% more privacy for the same price.
On top of that this job is a contract job so I need to put money aside to pay my own taxes. This $1200 is basically living on poverty level. Any ideas to make saving work? Is it very possible for people in the US to still save while on poverty? <comment><USER2> That's not a living wage (or a full time job). There are lots of job search sites.

Spending some time on a good resume / CV / portfolio would probably be a good investment with positive ROI.

Is there a nonprofit that you could volunteer with to increase your hireability during the other 158 hours of the week?

Or an online course with a credential that may or may not have positive ROI as a resume item?

Is there a code school in your city with a "you don't pay unless you land a full time job with a living wage and benefits" guarantee?

What is your strategy for business and career networking?

From [https://westurner.github.io/hnlog/#comment-17894632](https://westurner.github.io/hnlog/#comment-17894632) :

> _Personal Finance (budgets, interest, growth, inflation, retirement)

Personal Finance [https://en.wikipedia.org/wiki/Personal_finance](https://en.wikipedia.org/wiki/Personal_finance)

Khan Academy > College, careers, and more > Personal finance [https://www.khanacademy.org/college-careers-more/personal- fi...](https://www.khanacademy.org/college-careers-more/personal-finance)

"CS 007: Personal Finance For Engineers" [https://cs007.blog](https://cs007.blog)

[https://reddit.com/r/personalfinance/wiki](https://reddit.com/r/personalfinance/wiki) _

</comment><comment><USER3> If you can do programming now, and you have a remote gig... then I'm guessing you can get more work.

You have a lot of potential to earn more income to do more of the same work you're doing already. That's probably the easiest and most efficient way to get (and save) more income.

How did you get the gig that you're working now?

</comment><comment><USER4> Start with a budget to see where every penny goes. You need to make sure you're not wasting money on frivolous items. Going out and entertainment should be cut. You can have some on special occasions but you really can't afford it. Get a second job. Does not have to be in tech but you need to continue to look for a job that's in tech so you continue with your career. Goto to tech meetups to MEET contacts. Do not stay on the side by yourself. You need to make sure you make contacts.

Rethink the car, seems to me like you really can't afford it, now. You will in time.

Don't be afraid to be cheap. People criticize cheap people but those critics aren't ready to help with cash. They just criticize and never help.

Determine how much you can save and make sure you put that amount in the bank the moment you get your check.

Your best bet is to stay where you're at right now and put all your effort into finding a job. A full-time job in tech will earn you a good living. Don't move out until you have a full-time job.

I assume that you're healthy and you have a vocation that is in demand. Poverty is not an absolute but it can become a mindset that overpowers you. I strongly suggest you start reading self-improvement books that will let you see alternatives. Also, biographies of people you admire. I suggest Benjamin Franklin's. His autobiography is online. It's free. It's easy to read even though it was written 200+ years ago and it opens one's eyes as to what a person can accomplish, if you have the right prespective.

</comment><comment><USER5> You are eligible for hud housing and Medicaid it is worth looking into that.

Looks like you are pretty resourceful and smart about your situation.

I like to checkout goodwill every time I go grocery shopping to see what they have. I usually find a pretty nice shirt or pair of dress pants. If you go often you can be selective. Sometimes I find cloths that still have price tags on them. One time I found a dollar bill from a pair of pants I bought.

At restore I picked up 7 cds for twenty five cents each. New they must have been more than 8 bucks each.

Thrift is how I do most of my "retail therapy"

Then when I get tired of it I just donate it back if it is in good shape.

When I had money I blew a ton of it on online shopping. So many times I would order something forget about it and four days later say wtf is this package. I could not remember what I ordered. Proof I didn't need it.

</comment><comment><USER6> 30 usd a hour is not a fair wage for a programmer (considering 10 hours a week, 40 hours would be a different story) - you need to increase it. Please note your employer benefits from having an employee with decent living conditions. He knows, you know. If he's not willing to increase either your hours or rate I suggest to find something new.

<comment><AUTHOR> The only reason I accepted is because the alternative is having no work. It's harder to bargain for a fair wage when you're unemployed.

When we were discussing rates, I proposed $60/hr which is perfectly passable in the city I'm in for a contractor with my experience, but they couldn't do higher than $35. I am seeking something new but I need a plan to live comfortably in the interim.

<comment><USER7> So why are you paying $25/hour to develop someone else's product for them?

I'm not trying to be facetious here. Imagine yourself a talent broker (even if that talent happens to be you). If the going rate is $60 and you're only collecting $35, you're paying the extra $25 to get the work done.

I get that you're in a tight spot. That sucks and I hope it gets better for you. But "I can't go higher than $35" should be firmly met with "I can't go lower than $60". If the product really isn't worth developing at that rate, it might be a product that shouldn't exist at all. At the very least, you should be bargaining to own about 29% of the completed work since you're subsidizing it.

<comment><AUTHOR> It is harder to walk away from a subpar offer when you have no other job to fall back on.

</comment></comment></comment></comment><comment><USER8> You can't.</comment>