HN user

luikore

97 karma

github.com/luikore

Posts0
Comments82
View on HN
No posts found.

Aminoapps fired all employees and is handing the app to an outsourcing company to scavenge the remaining user values.

Seems you are not very familiar with TextMate.

For TextMate, cmd+E, cmd+F then the selection is in the search box. Or, you don't even have to open the search box with cmd+F, just cmd+G to next selection or cmd+opt+F to multi-cursor edit all occurrences.

The regex in TextMate is also very powerful (the unicode support is more powerful). New lines can be matched with \n. Another way is to select new line and repeat the cmd+E trick.

TextMate column selection is even better: you can enter column select mode simply by pressing opt. It is in fact multi-cursor editing, many editing commands like completion / copy / paste can work for each row individually.

Cmd+N or ctrl+cmd+N in TextMate.

The last one, not in TextMate. Though cmd+E then cmd+opt+F can highlight and start multi-edit on all instances of the word.

Some key advantages:

1. Fast and responsive 2. If you write a plugin, you know TextMate is Unix (forked child process, communicate through shared fd, you invoke a command named dialog2 to let TextMate popup any dialogs or completion menu...). You can add editor commands in any language -- you can even make TextMate display complex UI dialog with bash. 3. File browser is nearly a finder (drag and drop like finder, and most finder shortcuts work) 4. Search (there are some hidden shortcuts, but when you master it you feel very fluent)

There are weakness too: TextMate is losing the market, many bundle developers switched to other editors. You can't find many new bundles nowadays. It still doesn't support vim-like keyboard operation... etc

I think another (important) cause of microservice is politics:

When every department wants the easiest job with max outcome and the boss decides to split the cake equally, then an easy job X can be cut into N services which are usually named "micro", resulting in a huge project of complexity (X/N)^N for each team.

I suggest you use one repo with sub directories, one directory for API part, one directory for front end part, one for the server part ...

Then, when you change the API, you don't have to create 3 pull requests across 3 repos, just ONE pull request and teams can review all the changes together.

And your problem of searching for issues assigned to one person across multiple repos is not a problem any more.

There are already many good examples of managing multiple modules inside one repo:

https://github.com/apache/thrift

https://github.com/rails/rails

One project with multiple repos just adds unnecessary work of integration and management. Or, your definition of project is something big, vague and blurry.

Some people are eager to divide their project into multiple repos in spite of git being a distributed version control system. Having many teams doesn't mean you should have many repos. Why not just let your team work on one small directory inside the repo?

Really?

| Event driven architecture with per CPU core worker processes

So each process should be able to handle a lot of concurrent connections, just like nginx.

And I tried the websocket example, and saw only the first worker process responding whenever a websocket is created.

The problem didn't say the price must be > 0. So they may all lowered the price to 0 after lunch time, so the price before lunch time can be $5, $7, or $35 in this case...

If the price must be > 0, assume the it is `a` cents before lunch, `b` cents after lunch, and farmers sold `x`, `y`, and `z` chickens before lunch, where `a`, `b`, `x`, `y`, `z` are all unsigned integers satisfying:

    ax + b(10-x) = 3500
    ay + b(16-y) = 3500
    az + b(26-z) = 3500
Note 10 + 16 - 26 = 0, we can sum the above equations into:
    (a-b)(x + y - z) = 3500
let c = a - b, we know that c is positive integer (price before lunch is higher than after lunch). There are two obvious facts:

1) c is a factor of 3500

2) since x + y - z <= 26, c must be >= 3500/26 = 134

We also know that 3500/c is integer, with the equations we know 10(b/c), 16(b/c), 26(b/c) are all unsigned integers, so 2b/c is unsigned integer, assume d = 2b/c, we have:

    x = 3500/c - 5d
    y = 3500/c - 8d
    z = 3500/c - 13d
Remember that we are investigating the cases of b > 0, so d > 0, so 3500/c >= 13, then we have the fact:

3) c <= 3500/13 = 269

with 1), 2), 3), c = 140, 175 or 250

when c = 140, 3500/c = 25, so d = 1, x = 25 - 5 * 1 = 20 > 10, not valid

when c = 175, 3500/c = 20, so d = 1, x = 20 - 5 * 1 = 15 > 10, not valid

when c = 250, 3500/c = 14, so d = 1, x, y, z are all valid, we get b = 125, a = 375

Answer: the price before lunch is $3.75, after lunch is $1.25

AngularJS 1.3.0 12 years ago

And as we announced back in December, AngularJS 1.3.0 no longer supports IE8. This allowed us to make improvements and performance enhancements that otherwise would not be possible.

It is possible, see how rivetsjs did that years ago. But it is still a very nice thing to drop IE8.

A Diablo 3 Story 12 years ago

Money in bank is just a record in database, and they earn much more by trading money that do not exist.

Variable is a BIG change in CSS. If a browser doesn't support variable, then new stylesheets are already broken in that browser. It makes little difference to make the syntax compatible.

Once an easy-to-use syntax is published, toolchains that parse CSS will update as fast as they can! But "--"? Everybody will stick to the old standard and never want to upgrade.