Fork me on GitHub
#off-topic
<
2020-07-13
>
p-himik05:07:13

This topic always makes me remember the quote by Steven Wright: "I intend to live forever. So far, so good." :)

sogaiu07:07:49

i've found variations on the following to help sometimes: > Plans are worthless, but planning is essential.

šŸ‘ 12
sveri07:07:16

> And 6 weeks was about as a far as they can plan ahead, further than that just doesn't seem to work for them I would agree with this for detailed plans. But I assume a 5 year plan is more a direction that you want to follow with a few rough goals.

sveri07:07:16

I like that one from Mike Tyson: > Everyone has a plan 'till they get punched in the mouth You still need a plan, even if it means getting punched in the mouth šŸ˜„

orestis07:07:31

Having a rough idea of where you want to be makes you open and accepting of opportunities, that get you out of your comfort zone and help you grow as a personn.

orestis07:07:08

Iā€™ve read somewhere that people overestimate what they can do in a week (day, monthā€¦) and really underestimate how much they can do in 10 years.

ā˜ļø 6
Mno12:07:37

@seancorfield My idea is to go down the software architect path as well, any tips, recommendations, or lessons learned that stand out as important to you?

seancorfield17:07:47

@hobosarefriends The landscape is quite different these days, compared to when I was moving up into that role. I'd say you will need a good grasp of cloud-based services and understand their trade offs -- which wasn't really a thing twenty years ago. You need to be able to recognize engineers who can do the practical research and evaluation of new technologies that you want to consider introducing (you can't do it all yourself and, besides, you need buy-in from engineers if you're planning large scale changes to the systems they work on).

seancorfield17:07:36

You also need to make a fundamental decision about which architect role you want to go for: software architect and systems architect are quite different, for example, and there are several other specialized architect roles (more these days than there were twenty years ago). I chose software architect but also had to dance on the edge of systems architecture (I was Macromedia's senior architect for all IT projects, and I had a team of architects that covered web infrastructure, database, and information systems -- we didn't have a dedicated systems architecture function back then).

seancorfield17:07:31

At Macromedia, being the senior architect meant C-level meetings so good communication skills with the heads of various divisions was key, especially with non-IT-savvy executives. It also meant good negotiation skills since you often need to get buy-in from management across all the departments you're trying to affect.

Mno17:07:51

That makes sense! I suppose trying to deploy apps in different providers and in different ways would be a good investment of my time then. Iā€™ve been leaning more to software architect, which I suppose would probably involve more code-style and library choice decisions. I suppose working as a project lead would probably have benefitted me more in this regard, and I will express my interest in that in the future. For now, I suppose continuing to freelance will also help in most of these cases.

Mno17:07:59

Thanks for taking the time to answer! I appreciate the level of detail and the concrete examples.

seancorfield17:07:30

Re: leadership -- yeah, the choices are either "team lead" -> "team manager" -> moving up the "people" side of things vs "technical lead" -> "technical analyst" -> "architect" -> moving up the "technical" side of things. But a lot of companies don't really have a distinct, recognizable "architect" role.

seancorfield17:07:18

For example, when Adobe acquired Macromedia, my role was essentially eliminated -- I was "Director" level at that point, but had no direct reports since I floated from large project to large project advising on software choices and, well, architecture. Adobe told me "We do not have architects" so I got "demoted" to a glorified technical lead at a "Manager" level... which turned out to be so frustrating that I quit within a year. Macromedia was a relatively easy company in which to effect change -- Adobe was very set in its ways and resisted nearly all my efforts to change how stuff was done (after several initiatives I tried to steer through IT had gotten "stuck" due to folks not wanting to change anything, I gave up and focused on "team management" instead, which I hated really).

Mno18:07:11

Adobe does have a reputation for resisting change, even on their product sideā€¦ My limited experience with large companies has been as a consultant, which is probably different from working with them directly. Since these more ā€œBigger pictureā€ type roles are much more prevalent in larger companies, I should probably weigh my preferences with the downsides of working for these types of companies (including getting acquired). Maybe Iā€™ll do what my father did and go the entrepreneurial route. Though I canā€™t say Iā€™m very fond of the risks involved in that path šŸ˜…

seancorfield18:07:50

Yeah, I've been a consultant in both the UK and the US, working with clients worldwide. It has a lot of pros, but also a lot of cons. I don't know that I would go back to it at this point -- the variability of income and sometimes the high-stress crunch of being driven by the client's needs can be very wearying šŸ˜

scriptor12:07:06

Planning also gives you more benefits than just having estimates or timelines. It can force you to evaluate trade offs, identify known and unknown unknowns, come up with backup plans, etc.

scriptor12:07:32

That's been my interpretation of the plans vs planning quote

ordnungswidrig13:07:01

@hobosarefriends as an architect I recommend that you have solid understanding of fundamentals, e.g. queuing theory and relational algebra fundamentals. I see projects often struggle with the details of the technical implementation and running into problems because they have more fundamental design problems.

souenzzo13:07:39

On both CI that I use (AWS CodePipeline // Heroku) it pretty hard to know "which is the commit of the current code" both at build time and at runtime (ATM I don't know either). There is some wired paths like "use the cli-tool to get the current commit from API" but it has no guarantee that is right(i can push after a build trigger and before API call) Why do CI's don't include in it's env OR the .git OR the GIT_SHA ?? I am the only one with this problem?

p-himik13:07:28

Re .git - because it can be HUGE. And it should not be needed for your app. Re GIT_SHA - because you can deploy by multiple means, even the very same app on the very same dynos (talking about Heroku here), some of which don't know anything about Git.

p-himik13:07:48

Sounds like you just need to implement some versioning, maybe the one that uses sha.

noisesmith14:07:51

I have a plugin that adds the git status info to your resources, so that it's present for examination in an artifact

noisesmith14:07:57

a few others have done similar

souenzzo14:07:22

@U2FRKM4TW - .git can be huge: there is a lot of "tweaks" to "clone just the current commit" - don't know anything of git: yeah, but the thing that "cloned the source" know. It can say to CI pipeline "i successfully download the current source, place include COMMIT_ID=123 in the pipeline env". Even if the trigger was launched by one push, and it clone another another (more recent) commit. And just include a extra info @U051SS2EU Do you commit a UUID/sha into resource? I also do it in another project. but it generate a lot of useless commits I can't understand how both "how can it be hard to heroku" either "how can it not be included on platform basic requirements"

noisesmith14:07:34

my understanding is that outside pathological cases / intentional deception, a git hash is unique within a repo, and when applied to that repo exposes the exact state of every file

noisesmith14:07:00

so all you need is the current git hash, plus verification that there are no unstaged changes (or an enumeration of those changes in the worst case)

noisesmith14:07:29

that plus access to the repo exposes all the info

noisesmith14:07:58

there's no need to commit the file exposing the sha into git - in fact that seems quite silly

souenzzo14:07:19

Also, heroku shows Deployed 3517b1fc in dashboard So this information is present in the pipeline, it just not exposed in "build"/"run" trigger

chucklehead15:07:36

I don't use heroku myself, but according to https://devcenter.heroku.com/articles/buildpack-api#bin-compile-summary the commit hash should be available as SOURCE_VERSION during the build. For CodeBuild you can use CODEBUILD_RESOLVED_SOURCE_VERSION

chucklehead15:07:33

if you need it somewhere else in CodePipeline the CodeCommit and Github actions ouput a CommitId variable that you can access by adding a namespace to the Github/CodeCommit action and referencing as #{WhateverNamespace.CommitId} in some other action.

souenzzo15:07:37

@U015879P2F8 I'm also heroku noob ATM But "buildpack" is a "create your own environment" option ATM I'm using the "docker buildpack", provided by heroku itself But thanks, I will try to see in github if I PR their "docker buildpack"

souenzzo15:07:23

There is no "docker buildpack" docker is just "a magic env" inside heroku

vemv17:07:19

are you sure the sha is not present in CI? try performing env | grep CI_ the CI_ prefix is quite conventional across providers, you might find a wealth of info there

souenzzo17:07:31

already printed all env on heroku on AWS I don't interact directly, it's de "ops" team but I'm waiting the COMMIT_ID for more then a month to add at audit info

chucklehead18:07:30

does heroku build the container images or do you build/publish them in aws and just deploy from a registry on heroku?

Vincent Cantin16:07:32

Is there a channel for metabase users?

walterl18:07:17

No channel that I'm aware of, but our Discourse is a great place to ask questions: https://discourse.metabase.com/

šŸ‘ 3
ec20:07:51

For a social network like Twitter with the scale of it, imagining queries like who follows who, who posted something that has these hashtags mentions that posted in N days etc. Would a property graph like Neo4j makes more sense than RDF store JanusGraph? Eventhough neo4j seems makes more sense, since JanusGraph has cassandra storage backend Iā€™m assuming it would scale easier still providing same func. What do you think?

noisesmith20:07:54

I've worked with twitter APIs doing graph analysis. Your best bet is to do an estimate on the amount of data you need to process and make some stress tests. Ideally tests where your code isn't all on one machine so you see the real impact of network overhead. Either of those DBs might work, or neither. We found kafka always held up under even the biggest loads we could throw at it, but it's not a graph db or even a db, you need to walk through the topic afterward to construct a view.

ec21:07:26

thx for the tip