Open Side Menu Go to the Top
Register
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** ** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

09-17-2016 , 07:27 PM
Quote:
Originally Posted by daveT
But why aren't you seeing a doctor for this? This sounds serious. They can, at the least, give you medicine, some advice, and perhaps prescribe Rolfing.
denial, not having health insurance, pretty sure it's just rsi, etc
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-18-2016 , 06:00 PM
Quote:
Originally Posted by candybar
Yeah microservices (well like anything else in software) for standard web apps and such are more about solving social and institutional problems that come from having a shared responsibility over something that is too big for anyone to understand. In a monolith, it becomes hard to say who owns what code, who owns what data and data models, who is responsible when X breaks and who should have veto power over certain types of decisions. Hard boundaries can make management easier and keep people accountable - it's much easier to say, your service was down than to say, your code leaked memory so this other code that I wrote stopped working. But the overhead is real and in general you shouldn't go there until you're forced to. It's much easier to break up a monolith than to consolidate microservices.

There are exceptions (maybe one service has to scale out to 1000 machines, another is fine on 5) but again, it's rare to run into situations like this without also having a correspondingly large engineering team.
If microservices is a solution to an organizational problem that is indicative of major org problems (with an inappropriate technical solution). Microservices help to solve scaling and reliability in a large system. Independent development, development, and scaling, and reduce single point of failures.

You can definitely have ownership in a monolith. And in many cases the monolith is much easier to reason about and understand at a global level than microservices.

I strongly strongly disagree that it's easier to break up a monolith and consolidate services. I have done both and breaking up monoliths is generally much much harder. It's extremely slow and challenging to extract out logic and services from monolith applications that share a common database. Moving out api's is fairly simple but extracting data models from a shared model is very hard in practice.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-18-2016 , 08:00 PM
Quote:
Originally Posted by muttiah
If microservices is a solution to an organizational problem that is indicative of major org problems (with an inappropriate technical solution).
Most companies have major org problems and the nature of business is such that you don't always get to fix things the right way in the right place especially if there's a cheaper way to duct-tape things elsewhere. It's like evolution. Very often, death is the cleanest solution.

Quote:
Microservices help to solve scaling and reliability in a large system. Independent development, development, and scaling, and reduce single point of failures.
It's rare that microservices are used this way - technical necessity for separate services comes when you have components that have drastically different scaling or reliability needs than other components in the system. And solutions to these problems are usually not considered to be "microservices" - people typically don't describe RDBMS, an asynchronous queue or custom services of that nature as microservices. It's much more common to use the term to describe a situation where you're splitting up a broad service into multiple services of the same nature in the same tier. Like an animal service into horse/cat/dog/mouse services. That's generally the industry context in which "microservices" are used in my experience. Splitting up services due to technical necessity generally falls under SOA unless "technical necessity" is something along the lines of "our complex service with lots of endpoints has to restart every 5 minutes and we have no idea why."

Quote:
You can definitely have ownership in a monolith.
The problem is that you have to have global ownership as well as local ownership. Clear and separate ownership of different components is not enough because you also need engineers to able to trace across components to be able to even let another team know that they are the ones responsible for a given problem.

Quote:
And in many cases the monolith is much easier to reason about and understand at a global level than microservices.
Of course it's easier to reason about monoliths at a global level. But this is useless unless you have engineers that are willing to do the reasoning. It's hard enough to find such engineers in the first place and lots of companies have organizational culture that explicitly discourages this.

Quote:
I strongly strongly disagree that it's easier to break up a monolith and consolidate services. I have done both and breaking up monoliths is generally much much harder. It's extremely slow and challenging to extract out logic and services from monolith applications that share a common database.
This is presumably because monoliths you broke up are old complex beasts, while microservices you consolidated are fairly new and simple. I mean you were breaking up complex things and bringing together components that wouldn't add to something all that complex, right? Otherwise, why are you moving in that direction? And you likely didn't have to consolidate anything that was unnaturally separated, nor do consolidation much beyond simply bringing a bunch of services under a single runtime/umbrella - it's completely different to replace service calls that accumulated over the years with simple method calls, replace over-specified disparate interface with a more coherent, unified interface, properly refactor years-old services who have developed completely independent and idiosyncratic ways to do the exact same thing and somehow properly translate different services written in different languages into a single codebase in a single language that can be easily worked on as a coherent whole by one person.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 12:14 AM
Can anyone explain to me in very simple terms why I would want to use pushd/popd over cd and cd - ? I've read several thousand word on pushd and am more confused than ever. I swear *nix people love complication for the sake of complication.

http://unix.stackexchange.com/questi...-popd-commands

http://unix.stackexchange.com/questi...it-a-good-idea

I love the "Here let me illustrate with a simple several hundred line example".
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 12:25 AM
cd - only lets you flip back and forth between 2 directories, if you go from /var/www/html/hello/src/app/components/jigglypuff to /etc/apache2 to /etc/apache2/sites-enabled using cd, you won't be able to get back to /var/www/html/hello/src/app/components/jigglypuff without typing it out
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 12:48 AM
That's what I was thinking. So literally the only reason to use pushd is if you want to toggle between more than 2 directories? Why can't they just come out and say that? Why write a 1000 word treatise on the topic? HYATCHIHATCHIHATCHI

No this is much simpler lol.

Quote:
See a simple example below.

First, let's create example folder structure.

user@vb:~$ mkdir navigate
user@vb:~/navigate$ mkdir dir1
user@vb:~/navigate$ mkdir dir2
user@vb:~/navigate$ mkdir dir3
Then you can add all your folders to the stack:

user@vb:~/navigate$ pushd dir1/
~/navigate/dir1 ~/navigate
user@vb:~/navigate/dir1$ pushd ../dir2/
~/navigate/dir2 ~/navigate/dir1 ~/navigate
user@vb:~/navigate/dir2$ pushd ../dir3/
~/navigate/dir3 ~/navigate/dir2 ~/navigate/dir1 ~/navigate
You can look it up by:

user@vb:~/navigate/dir3$ dirs -v
0 ~/navigate/dir3
1 ~/navigate/dir2
2 ~/navigate/dir1
3 ~/navigate
To navigate safely, you need to add the last (zero) folder twice, since it will be always rewritten:

user@vb:~/navigate/dir3$ pushd .
user@vb:~/navigate/dir3$ dirs -v
0 ~/navigate/dir3
1 ~/navigate/dir3
2 ~/navigate/dir2
3 ~/navigate/dir1
4 ~/navigate
Now, you can jump around through these folders and work with stack as with aliases for the folders. I guess the following part is self explanatory:

user@vb:~/navigate/dir3$ cd ~4
user@vb:~/navigate$ dirs -v
0 ~/navigate
1 ~/navigate/dir3
2 ~/navigate/dir2
3 ~/navigate/dir1
4 ~/navigate
user@vb:~/navigate$ cd ~3
user@vb:~/navigate/dir1$ dirs -v
0 ~/navigate/dir1
1 ~/navigate/dir3
2 ~/navigate/dir2
3 ~/navigate/dir1
4 ~/navigate
user@vb:~/navigate/dir1$ touch text.txt
user@vb:~/navigate/dir1$ cp text.txt ~2
user@vb:~/navigate/dir1$ ls ~2
text.txt
user@vb:~/navigate/dir1$ dirs -v
0 ~/navigate/dir1
1 ~/navigate/dir3
2 ~/navigate/dir2
3 ~/navigate/dir1
4 ~/navigate
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 01:11 AM
that is pretty useful in showing how ~0 behaves, imo.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 01:26 AM
Basically my confusion all stems from the usage of this repo (oauth stuff, which is confusing enough):

Quote:
npm install -g jade

git clone https://github.com/coolaj86/example-...e-consumer.git
pushd example-oauth2orize-consumer/
npm install
jade public/*.jade
I was wondering what the hell pushd is doing, and apparently the author is just using it in place for cd for some reason. Nice 15 minute detour reading about pushd. Well 5 minutes anyway. But I was at my confusion saturation point.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 01:37 PM
pushd is insanely useful. I'm doing something in dir X, need to switch to dir Y to do something there & in its subdirectories before going back - what's easier, "cd /full/path/to/X" or "popd"?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 01:38 PM
cd - works for that though. I use pushd a lot because sometimes I want to go multiple levels deep, but cd - is definitely simpler.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 02:04 PM
Quote:
Originally Posted by goofyballer
need to switch to dir Y to do something there & in its subdirectories
Quote:
Originally Posted by RustyBrooks
cd - works for that though.
Not once I switch to a subdirectory of Y.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 02:50 PM
Cmd t then cd to do work in new tab. Close tab when done. Dead simple
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 02:53 PM
I don't use them in my day-to-day life (although I probably could more often), but they're useful in some scripts.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 05:23 PM
Quote:
Originally Posted by jjshabado
I don't use them in my day-to-day life (although I probably could more often), but they're useful in some scripts.
+1 - it's not useful often enough for me to be fluent with it in an interactive shell.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-19-2016 , 08:49 PM
Quote:
Originally Posted by blackize5
Cmd t then cd to do work in new tab. Close tab when done. Dead simple
I do basically this, but Ctrl-b c for a new tmux window. I guess if I was completely fluent with pushd/popd, that would replace like 75% of what I use tmux for. But tmux powerline statusbar is so pretty.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 01:21 AM
Lol Forbes: http://www3.forbes.com/leadership/te...when-im-hiring

After reading that, what do they actually care about?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 02:06 AM
Come on Suzzer. I think you are better than that. Typical forbes, always putting out 1 paragraph useless content spread out over 10 pages just so they can increase their click through ad rate. Just pure aids
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 02:19 AM
Well yes. But I tend to take an exception when a) it's still ostensibly a reputable news magazine and b) it's on the subject of what an interviewer looks for. (Since I was on like a 20 interview winning streak, then lost 3 in a row)

I still didn't expect it to be that bad. Forbes does publish a lot of terrible political stuff. I guess they've completely jumped the shark.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 03:18 AM
well... I had my first technical / coding interview since about February. Guess it just had to be about matrices, which is a super weak area for me. Ugh, I totally bombed. I kept the web-based code editor opened, got more down on myself as I thought about it, then proceeded to finish the test anyways, which took a whopping 10 minutes once I just sat and did it with no pressure. They were still on the page and possibly watching all that happen. I'm so irritated right now because legit, I didn't have to do that bad on the coding test.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 11:06 AM
Can you share some questions? Trying to practice currently
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 11:36 AM
He posted one in one of the Interview threads. But yes, post more please.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 12:16 PM
Oh awesome, I probably need to explore more of this sub
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 02:46 PM
I added a JS answer. That was fun.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 07:23 PM
My solution would involve a recursive function that prints and removes the first row of the matrix, left-rotates it then calls itself. The base case would be when the input is a 1x1 matrix.

Too lazy to write it out right now.

edit:
I grunched but it looks like most people came up with that type of solution. And I guess recursion isn't needed since there's no problem throwing away the data that you've already outputted. For some reason it instinctively felt like a recursion problem to me.

Last edited by Wolfram; 09-20-2016 at 07:35 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
09-20-2016 , 08:27 PM
Yeah that's what I did. It is recursion in the sense that it keeps happening until all the data is gone.

Also you don't always get a 1x1 matrix, if your matrix isn't square to begin with.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote

      
m