skysight-inc/HackerNews huggingface dataset:
software architects are a company anti-pattern

This depends on the company processes, business-level goals and challenges, and available resources.

UML

Fuzzy pictures of boxes and arrows. - Leslie Lamport

Unnecessary Management Lingo. - @iamdevloper

A language that was invented first and then people came around to try to get semantics. - Leslie Lamport

...

As usual, I think Lamport gets to the heart of the problem. Expressing things in an imprecise way can be of limited or even negative utility when it comes to actually nailing down code. However, a whole lot of decisions that need to be made in organizations that produce or employ hardware and software systems require knowledge, experience and communication outside of actual system design or selection.

Skip the architects, make the monkeys do the design. Have them vet it with each other, preferably in a formal setting with your entire engineering team. Everyone codes, and everyone architects.

This works if your people have experience and communicate well. Other times, not, like this example I had in London. CTO: "solve X really-stupid problem that my poor architecture that is not accepting of feedback created". Me: "OK, literally just-hired (some are first coding job ever!) type team: 'X is problem, Y is timeframe, Z is general proposed solution in data-oriented terms [always a good start], feedback?'" Result: Shit on walls, followed by gentle coaxing 'here's how to achieve Z, lets do it' and lots of babysitting. We got there, with just a little overtime, averted disaster on the high-penalty very large client contract, and still had time for beer. Conclusion: Guidance is useful, sometimes.
> the numbers suggest most of the people affected probably didn't have enough income to even service their debt.

Consider the analogue of the UK, where the banks have a duty to consider the ability of a persons ability to service a debt before letting them take out the loan.

Failure to do so will let the person who have taken out the loan get the debt stricken off, as the bank will have broken the law...

In that light this doesn't seem terribly shocking to me.
Show HN: Health Scout – An app I wrote for a mother traveling with a sick child
Why the drone revolution can’t get off the ground
The 50% rejection rate over pricing is reasonable given the degree to which Jaques has established himself. For a newly minted independent, the percentage of potential clients who will only pay ~$0 is much higher than for someone with a strong reputation among people who have a strong sense of the business value expertise adds.

The sorts of leads a new consultant gets are more along the lines of can-you-do-me-a-favor personal connections. There's much more "You're a jerk for expecting me to pay money" and "I didn't think a suspension bridge across the Colorado Canyon would cost more than $500."

New independents deal with amateurs more frequently than is typical for established consultants. The race to the bottom is a function of that, not always ignorance. Pricing is a good way to get to "No" quickly.

For a newly minted independent, "no" is still better than bad projects which end with not getting paid. The critical rejection rate for a newly minted independent is the rejection rate over retainers. Sure with your former company, so long as they are not downsizing because of a financial shortfall, then payment down the road might be acceptable. But with amateurs, retainers are critical both in terms of financial safety but for screening the amateurs who will view you as a professional from those who will treat you as a rube.
While on vacation, I spoke to a mother who often had to be aware of emergency rooms around her because her child had health problems. I built this simple app for her. It's my first app and I'm looking for suggestions on how to make it better. Right now it only works in the USA but I'm hoping to expand to Canada very soon.
So here is another example. If I start a Kickstarter campaign and raise $100,000 from multiple backers and never deliver on the product but keep the money. Should I feel guilty? After all, it's just debt..right? Or does this only apply to "evil" bankers?

If everyone had this thinking, nobody except the rich would get loans. As a bank, why would I ever loan someone money if they felt like they were entitled to it and never had any intention of paying me back?

Wiping away debt is just a bad idea. My cousin declared bankruptcy around 10 years ago. She had accumulated $100,000 in credit card debt with nothing to really show for it. This wasn't even school loans, just big name electronics and a multitude of other things she really didn't need.

After her debt was wiped clean, she promptly got right back into debt again and had to declare bankruptcy a second time this past August. The over-spending continued (and still continues to this day).

If someone knows they can spend all they want with no consequences, they will treat it like free money. The only people that will hurt are the rest of us that will suffer with an increased difficulty in getting a loan and increased interest rates and fees.

We shouldn't reward irresponsibility.
Every time this is mentioned, the discussion devolves into coffee aficionados saying this and that method of coffee delivery is far superior and it exasperates me.
Location: Stavanger, Norway

Remote: Yes

Willing to relocate: No

Technologies: Polyglot software development for desktop, mobile, web, and backend.

Résumé/CV: https://no.linkedin.com/in/oleavr

Email: oleavr at gmail dot com

---

I'm the founding author of several open source projects like http://www.frida.re, https://github.com/frida/cryptoshark, and https://code.google.com/p/ospy/.
Extremely passionate about reverse-engineering, which started with libmimic, where I reverse-engineered a proprietary video codec from scratch (see: http://tech.slashdot.org/story/05/04/05/0240236/logitech-msn...).
Have a diverse background spanning IM protocols, video conferencing, codecs, automotive hacking, dynamic binary instrumentation, GUI toolkits, web technologies, and most recently the music industry (Soundrop.fm and Show.co).

As you can see from the source code in the projects mentioned, I master C, C++, C#, Vala, Python, JavaScript, etc., and I'm also fluent in assembly for several architectures (IA-32, x86-64, ARM, AArch64, etc.). I also have years of experience building GUI apps for Windows, Mac, Linux, iOS and Android, and did a lot of backend development in Erlang. Through my experience building Frida I implemented features ranging from dynamic rewriting of function prologues for x86 and ARM 32- and 64-bit, dynamic trampolines, all the way to building a code tracer based on dynamic recompilation (see: https://medium.com/@oleavr/anatomy-of-a-code-tracer-b081aadb...)

I am available for both individual projects and long-term positions, but I can only work remotely.
I hate the misuse of the term "steep learning curve". If something has a steep learning curve it actually means you are learning it fast.
Horrible link title: "They said high level languages relieved us from thinking about memory issues"

High level languages do relieve us from thinking about memory. The linker allows you to forget about program layout in memory and executable. C and other "system" languages free you from managing byte alignment for your structures, byte order and more, and very high level languages even manage your memory use with automatic garbage collection. Locality is a concern in all these languages, and there's no abstraction for that (yet).

The simple solution to the issue presented in the article itself is any of the following:

1. Remove the call to len(). Handle the empty case from the drop/get/peek call, which would appear to be the idiomatic style for Erlang.

2. Track the size of the queue as is suggested in the docs, to improve the efficiency of this specific call.

Or, you could tackle the underlying issue, which is a lack of locality in the list data type following a GC cycle. This would probably involve allocating a chunk of nodes at once so it's the size of a cache line on the platform that's running the VM. Seems to me like that would make a patch worthy of being merged upstream rather than prefetching random chunks of memory.

EDIT: formatting

EDIT: After looking up the offending function: https://github.com/rabbitmq/rabbitmq-server/blob/master/src/...
it appears that they can't just remove the call to len, since it is part of the API. So please ignore my first "solution"
Honest questions: How to become software architect? What are the relevant qualifications/industry standards? Can any current or past architects on HN share their life experiences? Thanks.
Yes. I am not an economist but it troubles me that economists would be unawares (or claim to be unawares) about this aspect of the history of debt. As usual Wikipedia (the wise, the all-knowing) has a page[1] about it. Mass debt relief and forgiveness is unexceptional in history and certainly has precedent.

Even as recently as the turn of the century (only a decade-and-a-half ago!) there was an international movement[2] calling for the cancellation of a great deal of so-called third world debt as many countries spend more on debt reparations (just paying off the interest) than on building up the infrastructure of their countries or spending on health or education.

[1] http://en.wikipedia.org/wiki/Debt_relief

[2] http://en.wikipedia.org/wiki/Jubilee_2000
Could you clarify how the front-end developers are using Node.js? It seems pretty exlusively a back-end tool.
I apologise in advance for the sarcastic tone (I could not help myself): If you can run Facebook at Facebook's scale with no more than a dozen servers, I'm going to hire you for my next project because man, that would be something! I suggest you send a CV to Google because they are running an even bigger scale than Facebook and if you can dilute them to say 100 servers - its a win!
Facebook's infra is unique. If it was built today it might have been different but it would still run on MANY servers across MANY geographical locations. It would still cost millions to run every month. This is why companies like Google are building data centres. Its cheaper for them in the long run to own the infra from the ground up, literally (i.e., owning the actual land the DC is on).
It's a B-tree alike, with a fixed depth of 3, built on top of cached (at the query layer), immutable storage. There's a "atom" stored in consistent storage (and in memory on all processes), with a UUID pointer to the immutable tree. The root of the immutable tree contains pointers to "directories", which are the second layer. The third layer contains the actual data, in chunks of ~1k facts per segment. All of the immutable tree is stored in riak/dynamo/cassandra/postgres or whatever (it's just binary blob storage by k/v, so it's pretty easy to implement). There are several indexes that are in different orders, all of them covering indexes.

The transaction log also goes into a tree, but that tree is structured rather differently (for performance reasons). For example, it maintains a "linked-list" (in storage!) of the latest N transactions, which it then rolls up into one tree node once that list gets to a certain size.

The missing part about how transactions are available "immediately" (which is a word that doesn't make sense for a distributed database ;), is that the transactor (which is a separate process/system from those that answer questions), streams new transactions (as they happen) to the query boxes (known as "peers"). A peer is just your usual client process: for example your Java frontend webserver process (at this time only JVM clients are properly supported in this model)

Indexing is done in the background every ~33mb of transaction data (in the transactor) (and it allows that to build up during new indexing jobs, applying back pressure if it gets too much in memory data). Indexing isn't append only at all - it creates a new tree (that very often shares a lot of data with the old tree, however).

To answer queries, the "peers" merge the new transactions they've received (that are in memory), with the durable index.
That's how new transactions get seen quickly - the peers have recent data in memory, and other data in long term durable storage.

Transactions are visible as soon as the transactor's streaming sends them to peers. There is also a mechanism to say "wait until this transaction has arrived at this peer" before querying.

Because the data in the indexes is immutable, it's trivial to cache in the client processes. Many smaller databases can fit entirely in memory, in which case querying only hits main memory, not the network on the peer process, which makes them (potentially) many orders of magnitude faster than querying a traditional RDBMS).
How common a mistake, though. It's not uncommon for people to even suicide over a debt. Even if the debt isn't something legally enforceable.
The Magazine Channel / Full-Time / Austin, Texas (Onsite only for now) Ruby Developer

We're building the world's largest distribution service for magazine articles. Our goal is to bring the thousands of print magazines into a modern era of digital distribution by bringing personalization tools to readers. Read about anything, anytime, anywhere from top-tier magazines.

Our backend engineer will join a small engineering team and have latitude to build out the best syndication engine for millions of new magazine articles. We're well funding and growing our reach. Please reach out to info@themagazinechannel.com
Now I'm just waiting for them to do this in the USA for student loans
Location: California/Travelling

Remote: yes

Willing to relocate: yes

Technologies: Ruby, Rails, MySQL, Postgres, JS, Jquery, Coffeescript and TDD(Rspec, capybara)

resume: https://www.linkedin.com/in/moneerbandy, https://github.com/barhum

Email: mbcomm + shift2 + gmail.com

I am currently trying out Meteor and Mongo.
Nice work op, thanks for sharing.

Be nice if you could use the enter / return key when inputing task titles to move to a new task. I think the delete button is strangely placed. This would normally be an accept button. Maybe just have a trashcan icon or something on the task itself.
Yes, and you're ok to sell yourself for that? Man, really??

Bands? subscribe to YouTube channels or twitter or mailing lists or what else , your friends? Call them. IT? Come here or use Reddit. This is just over simplification of it, I have ten times more interests than that, and it's not at all hard to manage them without Facebook. You could use some browsers specifically designed with integration of content as their primary feature, I don't remember the names but at some point I've tried a couple and was really impressed.

But again, most importantly, are you really ok with selling yourself for ANY hypothetical advantage FB platform could offer. I never would...
See, for instance, http://blog.cr.yp.to/20140205-entropy.html for a writeup by djb on a possible way to exploit this in practice.
Academia (www.academia.edu) – Generalists and UI Engineers.

Full Time in San Francisco (near the Montgomery Bart Station)

We are part of the Open Science movement. Our agile team of 12 Engineers are building a disruptive platform that will allow researchers to share their work more quickly, obtain greater peer-review coverage, and innovate faster. We are building this platform using Rails, Coffeescript, Backbone, PostgreSQL, and hosting it on AWS.

Our interview process is very straight forward: apply to hiring@academia.edu and Ashley John will respond to your email within 48 hours. We are seeking developers who love to code, who want to use their technical skills to make a huge difference, work in a fast paced startup, and enjoy solving complex technical challenges. We offer amazing perks including an unlimited book budget. We devour books!

We look forward to hearing from you.
Welcome to Democracy! :) As long as you can make fun of the politicians and not go to jail, things are nominal.
Sure, but it's not due to implementing MVCC. And, as the article illustrates, that type of optimistic approach doesn't come for free.
Location: Copenhagen, Denmark;

Remote: Maybe?;

Willing to relocate: No;

Technologies: Ruby on Rails, PHP, Java, HTML, CSS, Javascript, jQuery, MySQL;

Experience: 2 years of Web Development

Résumé/CV: email me for a CV;

Email: adrian.bordinc@gmail.com;

I'm a CS student super curious about different technologies. I'm looking for a student position preferably with Ruby on Rails. Recently I got interested in non-relational databases and I'm also planning to mess around with a front-end JS framework (Ember, Angular) to see what's all the hip about. :)
I believe you mean Fred Hebert.
Show HN: an iPhone app for #SuperBowl news that'll shut down next week ($)
You cannot and you are right there. The only way to target individuals is by having specific lists of emails or ids that you can upload and create custom audiences (or via their notion of retargeting through pixel fires). Even then though you don't know WHO saw your ads. Its a walled garden and impossible to get per user data as you would in traditional retargeting campaigns. That is why the bidding system is impossible to game (despite some claims from some companies). You have no idea WHO is seeing your ads - only the DEMOGRAPHIC of the ad views/clicks and only if you segmented your campaigns in a way you can track that.
Wat helpt tegen brandend maagzuur en reflux
dotenv is a good way to handle such configuration problems - https://github.com/bkeepers/dotenv

Just .gitignore the .env file.
I wonder though if Facebook will be able to leverage it's massive database of psychological profiling to stay ahead of the curve. Over time companies have lost their spot at the top but this is the first time technology has been powerful enough to reward the company on top with incredibly powerful information reserves. I think Facebook is going through an awkward growing phase but will smarten up and begin using it's role as facilitator of social influence much more effectively.

These psychological factors are much more powerful in this field then an engineer's solution.
A systems analyst is (usually) someone who is only semi technical and functions as a bridge between management , customers and technical people.

A software architect is usually a senior programmer or computer scientist who makes high level tech decisions.

At least, that's how I have always seen these titles used.
I wish someone wrote a slick React based web interface for red#matrix (http://redmatrix.me/).
"Don't be Google" is a good motto. http://doonesbury.washingtonpost.com/strip/archive/2014/06/0...
Perl Jam and Wu-Tang Clan disagree.
Too late to edit, you're absolutely right.
SEEKING WORK - Remote or Toronto

Seeking short term contracts to supplement existing employment.

I am a human/machine interface developer. My work consists of "from scratch" UX and interface design, from the napkin to nginx. I have considerable experience with Ruby and Javascript, years of experience with Rails, and extensive knowledge of client-side MVC.
I've made contributions to Ember.js, and have written multiple 10k+ LOC apps - starting with 0.9 up to the latest 1.9.1 (one was featured on Venture Beat: http://venturebeat.com/2013/07/22/uniiverse-releases-direct-...). I am acutely aware of the challenges/strategies associated with migrating server side architecture into the browser, leaning down views, and fattening up controllers.

I am the author of an open source project called Quant (https://github.com/jdjkelly/quant) - a Rails API + Angular.js app to track "quantified self" data from every manufacturer willing to give it up. My work here was featured on The Verge alongside a similar project by the founder of Foursquare (http://www.theverge.com/2013/6/4/4392996/fitness-tracker-dat...)

Recently, I also contributed to the development of an iOS app, which is now in the app store: https://itunes.apple.com/ca/app/ticket-manager-by-uniiverse/.... I was responsible for integrating a credit card device reader with an existing checkout API, testing, and delivering a final build to the app store.

Languages and frameworks I've used: Ruby, Rails, Mongo, Postgres, Sinatra, Node, Objective-C, Javascript (ES6 too!), Coffeescript, Sass, Ember.js, Backbone.js, Angular.js, jQuery, HTML5, CSS3, Neo4j, Redis, Logstash, ElasticSearch, EC2, S3, AWS generally

Other tools in the box: Git, Zsh, pencils, pens, paper, Photoshop
Contact is in my profile.
If you're a driver then you know that steep curves are taken slowly. (Unless you're going downhill, and in that case it's probably a sign that your brakes have failed...)
Nope. I'm barely literate in Erlang, but it looks like they haven't fixed it, unless they've wrapped the backing queue somewhere:

https://github.com/rabbitmq/rabbitmq-server/blob/master/src/...
It's rather rich to say that length should be fast, then describe a pointer chasing loop.
> The Internet archive is a 501c(3) corporation, isn't it?

That's just the way the US tax code labels it. The main distinction is that as a non-profit, single-purpose organization the Internet Archive exists only to archive things and isn't subject to changing shareholder whims or takeovers.

It's much easier to imagine e.g. Google getting pressure to drop Google Books if it was deemed unprofitable.
SEEKING WORK - SF / Bay Area, Remote

I am an independent software consultant looking to HELP YOU SOLVE YOUR PROBLEMS efficiently and effectively without any ego or non-sense.

Can help you with:

* Scala, Java, Python, Matlab, Julia, Ruby, Javascript, C/C++

* Hadoop, Spark, Hive, Pig, Lucene/Solr, pandas, numpy/scipy

* Data pipelines, data visualization, Crowdsourcing (data collection and cleaning)

* AWS, Digital Ocean, Rackspace

* Technical phone screening and candidate code assessment

* IOS, Android

Qualifications:

* Data Engineer for 3.5 years at Online Ad Targeting company (acquired recently)

* BS/MS Computer Science (MS Specialization in Machine Learning/Computer Vision)

* US Citizen

Contact:

tony [at] sfdatajobs <dot> com
What I thought was hilarious is that the #2 job, Video Game Designer, had a "Low Stress" rating of A.

It's almost like CNN doesn't know how much gamers hate the people that make games. I would never go back to the video game industry without protections in place to keep ragey gamers from swatting my house, sending death threats my way, or so forth.
The 'Year of the Data Breach' Needs No Sequel
Runscope (http://www.runscope.com/) - Account Execs, and Engineers of the DevOps, Data and Product variety

Full time in San Francisco (3rd St. and Market)

We're a team of people who are passionate about building excellent developer tools for people who use API's. We're all very passionate about building great tools that we would (and do!) use ourselves on a daily basis to get our jobs done.

Read more about our available positions and what we're up to: https://www.runscope.com/work_at_runscope
Don’t know what to eat? Ask Emacs
AvantCredit - Chicago, IL - Software Engineer

Just got a $225M Series D making us the fastest growing company in Chicago. You'll be working with technologies like Ruby on Rails, Angular, CoffeeScript, Heroku, Resque, Postgres, and REDIS on a team focusing on the customer application process, admin portal backend, loan servicing, fraud fighting, deep learning neural network modeling, infrastructure, or quality assurance.

* Very flat, unstructured organization with high transparency

* Really challenging problems to be solved as we scale into new markets/products

* Full benefits, unlimited PTO, casual dress code, and breakfast/lunch provided daily

I'll be happy to answer any questions regarding the position.
Keep in mind that facebook filters your default feed view by who you interact with the most. So if you want more of a certain person's posts, make sure to like/comment on anything they post (and hopefully they do the same to you). It sounds like maybe you went passive so they can't surface what you want any more.
Another fun Erlang memory investigation https://blog.heroku.com/archives/2013/11/7/logplex-down-the-...